Merge branch 'master' into tzork/ents-onoff
authorJakob MG <jakob_mg@hotmail.com>
Tue, 28 Sep 2010 09:54:21 +0000 (11:54 +0200)
committerJakob MG <jakob_mg@hotmail.com>
Tue, 28 Sep 2010 09:54:21 +0000 (11:54 +0200)
Conflicts:
qcsrc/server/defs.qh

256 files changed:
Makefile
_hud_descriptions.cfg
balance25.cfg
balanceLeeStricklin.cfg [new file with mode: 0644]
balanceNexSVN.cfg
balanceSamual.cfg
balanceXonotic.cfg
darkplaces-icon.tga [new file with mode: 0644]
darkplaces-icon.xpm [new file with mode: 0644]
darkplaces-icon2.tga [new file with mode: 0644]
darkplaces-icon3.tga [new file with mode: 0644]
darkplaces-icon4.tga [new file with mode: 0644]
darkplaces-icon5.tga [new file with mode: 0644]
darkplaces-icon6.tga [new file with mode: 0644]
darkplaces-icon7.tga [new file with mode: 0644]
darkplaces-icon8.tga [new file with mode: 0644]
darkplaces-icon9.tga [new file with mode: 0644]
defaultXonotic.cfg
gfx/hud/default/ammo_bullets.tga
gfx/hud/default/ammo_cells.tga
gfx/hud/default/ammo_current_bg.tga
gfx/hud/default/ammo_fuel.tga
gfx/hud/default/ammo_rockets.tga
gfx/hud/default/ammo_shells.tga
gfx/hud/default/armor.tga
gfx/hud/default/border.tga [deleted file]
gfx/hud/default/border_default.tga [new file with mode: 0644]
gfx/hud/default/dock.tga [deleted file]
gfx/hud/default/dock_medium.tga [new file with mode: 0644]
gfx/hud/default/health.tga
gfx/hud/default/nexball_carrying.tga
gfx/hud/default/notify_telefrag.tga [new file with mode: 0644]
gfx/hud/default/race_newrecordserver.tga
gfx/hud/default/weapon_accuracy.tga
gfx/hud/default/weapon_ammo.tga
gfx/hud/default/weapon_complainbubble.tga
gfx/hud/default/weapon_current_bg.tga
gfx/hud/luminos/ammo_current_bg.tga
gfx/hud/luminos/border.tga [deleted file]
gfx/hud/luminos/border_default.tga [new file with mode: 0644]
gfx/hud/luminos/dock.tga [deleted file]
gfx/hud/luminos/dock_medium.tga [new file with mode: 0644]
gfx/hud/luminos/weapon_accuracy.tga
gfx/hud/luminos/weapon_ammo.tga
gfx/hud/luminos/weapon_complainbubble.tga
gfx/hud/luminos/weapon_current_bg.tga
gfx/hud/old/border.tga [deleted file]
gfx/hud/old/border_default.tga [new file with mode: 0644]
gfx/hud/old/dock.tga [deleted file]
gfx/hud/old/dock_medium.tga [new file with mode: 0644]
gfx/hud/old/num_leading.tga [new file with mode: 0644]
gfx/hud/old/voteprogress_back.tga
gfx/hud/old/voteprogress_prog.tga
gfx/hud/old/voteprogress_voted.tga
gfx/hud/old/weapon_current_bg.tga
gfx/menu/luminos/background.tga [new file with mode: 0644]
gfx/menu/luminos/background_ingame.tga [new file with mode: 0644]
gfx/menu/luminos/background_ingame_l2.tga [new file with mode: 0644]
gfx/menu/luminos/background_l2.tga [new file with mode: 0644]
gfx/menu/luminos/bigbutton_c.tga [new file with mode: 0644]
gfx/menu/luminos/bigbutton_d.tga [new file with mode: 0644]
gfx/menu/luminos/bigbutton_f.tga [new file with mode: 0644]
gfx/menu/luminos/bigbutton_n.tga [new file with mode: 0644]
gfx/menu/luminos/bigbuttongray_c.tga [new file with mode: 0644]
gfx/menu/luminos/bigbuttongray_d.tga [new file with mode: 0644]
gfx/menu/luminos/bigbuttongray_f.tga [new file with mode: 0644]
gfx/menu/luminos/bigbuttongray_n.tga [new file with mode: 0644]
gfx/menu/luminos/border.tga [new file with mode: 0644]
gfx/menu/luminos/button_c.tga [new file with mode: 0644]
gfx/menu/luminos/button_d.tga [new file with mode: 0644]
gfx/menu/luminos/button_f.tga [new file with mode: 0644]
gfx/menu/luminos/button_n.tga [new file with mode: 0644]
gfx/menu/luminos/buttongray_c.tga [new file with mode: 0644]
gfx/menu/luminos/buttongray_d.tga [new file with mode: 0644]
gfx/menu/luminos/buttongray_f.tga [new file with mode: 0644]
gfx/menu/luminos/buttongray_n.tga [new file with mode: 0644]
gfx/menu/luminos/charmap.tga [new file with mode: 0755]
gfx/menu/luminos/charmapbutton.tga [new file with mode: 0644]
gfx/menu/luminos/checkbox_c0.tga [new file with mode: 0644]
gfx/menu/luminos/checkbox_c1.tga [new file with mode: 0644]
gfx/menu/luminos/checkbox_d0.tga [new file with mode: 0644]
gfx/menu/luminos/checkbox_d1.tga [new file with mode: 0644]
gfx/menu/luminos/checkbox_f0.tga [new file with mode: 0644]
gfx/menu/luminos/checkbox_f1.tga [new file with mode: 0644]
gfx/menu/luminos/checkbox_n0.tga [new file with mode: 0644]
gfx/menu/luminos/checkbox_n1.tga [new file with mode: 0644]
gfx/menu/luminos/checkmark.tga [new file with mode: 0644]
gfx/menu/luminos/closebutton_c.tga [new file with mode: 0644]
gfx/menu/luminos/closebutton_f.tga [new file with mode: 0644]
gfx/menu/luminos/closebutton_n.tga [new file with mode: 0644]
gfx/menu/luminos/color.tga [new file with mode: 0644]
gfx/menu/luminos/colorbutton_c.tga [new file with mode: 0644]
gfx/menu/luminos/colorbutton_f.tga [new file with mode: 0644]
gfx/menu/luminos/colorbutton_n.tga [new file with mode: 0755]
gfx/menu/luminos/colorpicker.tga [new file with mode: 0755]
gfx/menu/luminos/colorpicker_m.tga [new file with mode: 0755]
gfx/menu/luminos/colorpicker_selected.tga [new file with mode: 0644]
gfx/menu/luminos/crosshairbutton_c.tga [new file with mode: 0644]
gfx/menu/luminos/crosshairbutton_d.tga [new file with mode: 0755]
gfx/menu/luminos/crosshairbutton_f.tga [new file with mode: 0644]
gfx/menu/luminos/crosshairbutton_n.tga [new file with mode: 0755]
gfx/menu/luminos/cursor.tga [new file with mode: 0644]
gfx/menu/luminos/cursor_move.tga [new file with mode: 0644]
gfx/menu/luminos/cursor_resize.tga [new file with mode: 0644]
gfx/menu/luminos/cursor_resize2.tga [new file with mode: 0644]
gfx/menu/luminos/inputbox_f.tga [new file with mode: 0644]
gfx/menu/luminos/inputbox_n.tga [new file with mode: 0644]
gfx/menu/luminos/radiobutton_c0.tga [new file with mode: 0644]
gfx/menu/luminos/radiobutton_c1.tga [new file with mode: 0644]
gfx/menu/luminos/radiobutton_d0.tga [new file with mode: 0644]
gfx/menu/luminos/radiobutton_d1.tga [new file with mode: 0644]
gfx/menu/luminos/radiobutton_f0.tga [new file with mode: 0644]
gfx/menu/luminos/radiobutton_f1.tga [new file with mode: 0644]
gfx/menu/luminos/radiobutton_n0.tga [new file with mode: 0644]
gfx/menu/luminos/radiobutton_n1.tga [new file with mode: 0644]
gfx/menu/luminos/scrollbar_c.tga [new file with mode: 0644]
gfx/menu/luminos/scrollbar_f.tga [new file with mode: 0644]
gfx/menu/luminos/scrollbar_n.tga [new file with mode: 0644]
gfx/menu/luminos/scrollbar_s.tga [new file with mode: 0644]
gfx/menu/luminos/skinpreview.jpg [new file with mode: 0644]
gfx/menu/luminos/skinvalues.txt [new file with mode: 0755]
gfx/menu/luminos/slider_c.tga [new file with mode: 0644]
gfx/menu/luminos/slider_d.tga [new file with mode: 0644]
gfx/menu/luminos/slider_f.tga [new file with mode: 0644]
gfx/menu/luminos/slider_n.tga [new file with mode: 0644]
gfx/menu/luminos/slider_s.tga [new file with mode: 0644]
gfx/menu/luminos/tooltip.tga [new file with mode: 0644]
gfx/scoreboard/accuracy_bg.tga
gfx/scoreboard/player_ready.tga
gfx/scoreboard/playercolor_base.tga
gfx/scoreboard/playercolor_pants.tga
gfx/scoreboard/playercolor_shirt.tga
gfx/scoreboard/scoreboard_bg.tga
gfx/scoreboard/scoreboard_tableheader.tga
hud_default.cfg [deleted file]
hud_luminos.cfg [new file with mode: 0644]
hud_luminos_default.cfg [deleted file]
hud_nexuiz.cfg [new file with mode: 0644]
hud_old_nexuiz.cfg [deleted file]
input-tuba.cfg
models/items/armor.tga [new file with mode: 0644]
models/items/armor_gloss.tga [new file with mode: 0644]
models/items/armor_glow.tga [new file with mode: 0644]
models/items/armor_norm.tga [new file with mode: 0644]
models/items/g_a1.md3 [deleted file]
models/items/g_a25.md3 [deleted file]
models/items/g_a50.md3 [deleted file]
models/items/g_armormedium.md3 [deleted file]
models/items/item_armor_big.md3 [new file with mode: 0644]
models/items/item_armor_large.md3 [new file with mode: 0644]
models/items/item_armor_medium.md3 [new file with mode: 0644]
models/items/item_armor_small.md3 [new file with mode: 0644]
models/player/erebus.iqm_0.sounds
physicsLeeStricklin.cfg
physicsNoQWBunny-nexbased.cfg
physicsNoQWBunny-xpmbased.cfg
qcsrc/client/Main.qc
qcsrc/client/View.qc
qcsrc/client/autocvars.qh
qcsrc/client/csqc_builtins.qc
qcsrc/client/effects.qc
qcsrc/client/hook.qc
qcsrc/client/hud.qc
qcsrc/client/hud.qh
qcsrc/client/interpolate.qc
qcsrc/client/laser.qc
qcsrc/client/miscfunctions.qc
qcsrc/client/particles.qc
qcsrc/client/progs.src
qcsrc/client/projectile.qc
qcsrc/client/scoreboard.qc
qcsrc/client/scoreboard.qh [new file with mode: 0644]
qcsrc/client/teamradar.qc
qcsrc/client/waypointsprites.qc
qcsrc/common/constants.qh
qcsrc/common/mapinfo.qc
qcsrc/common/util.qc
qcsrc/common/util.qh
qcsrc/menu/classes.c
qcsrc/menu/draw.qc
qcsrc/menu/item/slider.c
qcsrc/menu/xonotic/dialog_hudpanel_weapons.c
qcsrc/menu/xonotic/dialog_hudsetup_exit.c
qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c
qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c
qcsrc/menu/xonotic/dialog_settings_audio.c
qcsrc/menu/xonotic/dialog_settings_effects.c
qcsrc/menu/xonotic/dialog_settings_misc.c
qcsrc/menu/xonotic/slider_picmip.c [new file with mode: 0644]
qcsrc/menu/xonotic/textslider.c
qcsrc/server/anticheat.qc
qcsrc/server/antilag.qc
qcsrc/server/antilag.qh
qcsrc/server/bot/bot.qc
qcsrc/server/cheats.qc
qcsrc/server/cl_client.qc
qcsrc/server/cl_physics.qc
qcsrc/server/cl_player.qc
qcsrc/server/cl_weapons.qc
qcsrc/server/defs.qh
qcsrc/server/domination.qc
qcsrc/server/func_breakable.qc
qcsrc/server/g_damage.qc
qcsrc/server/g_triggers.qc
qcsrc/server/g_world.qc
qcsrc/server/miscfunctions.qc
qcsrc/server/t_items.qc
qcsrc/server/t_quake3.qc
qcsrc/server/t_teleporters.qc
qcsrc/server/teamplay.qc
qcsrc/server/w_common.qc
qcsrc/server/w_crylink.qc
qcsrc/server/w_electro.qc
qcsrc/server/w_fireball.qc
qcsrc/server/w_grenadelauncher.qc
qcsrc/server/w_shotgun.qc
qcsrc/warpzonelib/client.qc
qcsrc/warpzonelib/common.qc
qcsrc/warpzonelib/common.qh
qcsrc/warpzonelib/server.qc
quake.rc
scripts/leiprojectile.shader [new file with mode: 0644]
scripts/nutsandbolts.shader [new file with mode: 0644]
scripts/rocket.shader [new file with mode: 0644]
sound/nexball/shoot1.ogg [new file with mode: 0644]
sound/nexball/shoot1.wav [deleted file]
sound/player/default.sounds
sound/weapons/grenade_stick.wav [new file with mode: 0644]
sound/weather/--tenshihan.txt [new file with mode: 0644]
sound/weather/rain_1.ogg [deleted file]
sound/weather/rain_1.wav [new file with mode: 0644]
sound/weather/rain_loud.wav [new file with mode: 0644]
sound/weather/rain_medium.wav [new file with mode: 0644]
sound/weather/rain_quiet.wav [new file with mode: 0644]
sound/weather/rain_wind_thunder.wav [new file with mode: 0644]
sound/weather/thunder_background.wav [new file with mode: 0644]
sound/weather/thunder_crack.wav [new file with mode: 0644]
sound/weather/thunder_rain.wav [new file with mode: 0644]
sound/weather/wind_ambience.wav [new file with mode: 0644]
sound/weather/wind_scary.wav [new file with mode: 0644]
sound/weather/wind_strong.wav [new file with mode: 0644]
textures/f_shotgun.jpg [new file with mode: 0644]
textures/flags/flag_blue.tga [new file with mode: 0644]
textures/flags/flag_blue_cloth.tga [new file with mode: 0644]
textures/flags/flag_blue_gloss.tga [new file with mode: 0644]
textures/flags/flag_blue_glow.tga [new file with mode: 0644]
textures/flags/flag_blue_laser.tga [new file with mode: 0644]
textures/flags/flag_blue_norm.tga [new file with mode: 0644]
textures/flags/flag_red.tga [new file with mode: 0644]
textures/flags/flag_red_cloth.tga [new file with mode: 0644]
textures/flags/flag_red_gloss.tga [new file with mode: 0644]
textures/flags/flag_red_glow.tga [new file with mode: 0644]
textures/flags/flag_red_laser.tga [new file with mode: 0644]
textures/flags/flag_red_norm.tga [new file with mode: 0644]
update-cvarcount.sh
xonotic-credits.txt

index 99478f0..83abf21 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,6 @@
 SCM := $(shell if [ -d .svn ]; then echo svn; elif [ -d ../.git ]; then echo git; fi)
 FTEQCC ?= fteqcc
 PERL ?= perl
-PK3NAME ?= `date +../data%Y%m%d.pk3`
 ZIP ?= 7za a -tzip -mx=9
 ZIPEXCLUDE ?= -x\!*.pk3 -xr\!\.svn -x\!qcsrc
 DIFF ?= diff
@@ -35,23 +34,6 @@ qc-recursive: menu.dat progs.dat csprogs.dat
 .PHONY: skin
 skin: gfx/menu/default/skinvalues.txt
 
-.PHONY: pk3
-pk3: $(PK3NAME)
-
-.PHONY: pk3here
-pk3here: qc
-       $(RM) $(PK3NAME); \
-       set -ex; \
-               ABSPK3NAME=$(PK3NAME); \
-               case $$ABSPK3NAME in \
-                       /*) \
-                               ;; \
-                       *) \
-                               ABSPK3NAME=$$PWD/$$ABSPK3NAME; \
-                               ;; \
-               esac; \
-               $(ZIP) $(ZIPEXCLUDE) $$ABSPK3NAME .
-
 .PHONY: clean
 clean:
        rm -f progs.dat menu.dat csprogs.dat
@@ -71,86 +53,6 @@ menu.dat: qcsrc/menu/*.* qcsrc/menu/*/*.* qcsrc/common/*.*
 gfx/menu/default/skinvalues.txt: qcsrc/menu/skin-customizables.inc
        $(PERL) qcsrc/menu/skin-customizables.inc > gfx/menu/default/skinvalues.txt
 
-$(PK3NAME): qc
-       $(RM) $(PK3NAME)
-       set -ex; \
-               ABSPK3NAME=$(PK3NAME); \
-               case $$ABSPK3NAME in \
-                       /*) \
-                               ;; \
-                       *) \
-                               ABSPK3NAME=$$PWD/$$ABSPK3NAME; \
-                               ;; \
-               esac; \
-               TDIR=`mktemp -d -t xonoticpk3.XXXXXX`; \
-               cp -v progs.dat csprogs.dat menu.dat $$TDIR/; \
-               svn export --force . $$TDIR; \
-               cd $$TDIR; \
-               $(ZIP) $$ABSPK3NAME .
-
 .PHONY: testcase
 testcase:
        cd qcsrc/testcase && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS) -DTESTCASE="$$TESTCASE"
-
-.PHONY: update commit diff log logv logupdate logvupdate revert
-update: $(SCM)-update
-commit: $(SCM)-commit
-diff: $(SCM)-diff
-log: $(SCM)-log
-logv: $(SCM)-logv
-revert: $(SCM)-revert
-logupdate: log update
-logvupdate: logv update
-
-.PHONY: svn-update
-svn-update:
-       cd .. && svn update
-
-.PHONY: svn-commit
-svn-commit:
-       cd .. && svn commit
-
-.PHONY: svn-diff
-svn-diff:
-       cd .. && svn diff
-
-.PHONY: svn-log
-svn-log:
-       cd .. && svn log -r HEAD:BASE
-
-.PHONY: svn-logv
-svn-logv:
-       cd .. && svn log -r HEAD:BASE -v
-
-.PHONY: svn-revert
-svn-revert:
-       svn revert -- $(FILE)
-
-.PHONY: git-update
-git-update:
-       git pull origin
-
-.PHONY: git-commit
-git-commit:
-       git commit -a || true
-       if echo -n 'Also send to server? Hit Enter for yes, ^C for no. '; read -r L; then \
-               git config svn-remote.svn.url svn://svn.icculus.org/xonotic; \
-               git config svn-remote.svn.fetch trunk:refs/remotes/origin/master; \
-               git svn dcommit; \
-       fi
-
-.PHONY: git-diff
-git-diff:
-       git diff; git diff origin/master..HEAD; true
-
-.PHONY: git-log
-git-log:
-       git fetch && git log HEAD..origin/master
-
-.PHONY: git-logv
-git-logv:
-       git fetch && git log -v HEAD..origin/master
-
-.PHONY: git-revert
-git-revert:
-       git checkout -- $(FILE)
index 09860bb..ddcd45a 100644 (file)
@@ -28,6 +28,8 @@ seta hud_configure_grid "" "snap to grid when moving/resizing panels"
 seta hud_configure_grid_xsize "" "snap to X * vid_conwidth"
 seta hud_configure_grid_ysize "" "snap to Y * vid_conheight"
 
+seta scr_centerpos "" "Y position of the centerprint"
+
 seta hud_panel_weapons "" "enable/disable this panel"
 seta hud_panel_weapons_pos "" "position of this panel"
 seta hud_panel_weapons_size "" "size of this panel"
index 0250978..ec040c4 100644 (file)
@@ -318,8 +318,10 @@ set g_balance_electro_primary_refire 0.6
 set g_balance_electro_primary_animtime 0.3
 set g_balance_electro_primary_ammo 2
 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 50
-set g_balance_electro_secondary_spread 0.05
 set g_balance_electro_secondary_edgedamage 0
 set g_balance_electro_secondary_force 200
 set g_balance_electro_secondary_radius 150
diff --git a/balanceLeeStricklin.cfg b/balanceLeeStricklin.cfg
new file mode 100644 (file)
index 0000000..6df076b
--- /dev/null
@@ -0,0 +1,669 @@
+////2.4.2 weapons (with some tweaks) VS balanceLeeStricklin
+
+// {{{ weapon replacement
+// NOTE: this only replaces weapons on the map
+// use g_start_weapon_* to also replace the on-startup weapons!
+// example: g_weaponreplace_nex "nex minstanex", then Nexes become MinstaNexes 50% of the times
+// set the cvars to "0" to totally disable a weapon
+set sv_q3acompat_machineshotgunswap 0 "shorthand for swapping uzi and shotgun"
+// }}}
+
+// {{{ starting gear
+set g_start_weapon_laser -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_shotgun -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_uzi -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_grenadelauncher -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_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_rocketlauncher -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_minstanex -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_porto -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_hook -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_hlac 0 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_campingrifle -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_tuba -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_fireball 0 "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 200
+set g_balance_armor_start 115
+set g_start_ammo_shells 45
+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_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_fuel 0 "starting values when being in warmup-stage"
+set g_lms_start_health 200
+set g_lms_start_armor 100
+set g_lms_start_ammo_shells 50
+set g_lms_start_ammo_nails 150
+set g_lms_start_ammo_rockets 50
+set g_lms_start_ammo_cells 50
+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 15
+set g_balance_nix_ammo_nails 45
+set g_balance_nix_ammo_rockets 15
+set g_balance_nix_ammo_cells 15
+set g_balance_nix_ammo_fuel 0
+set g_balance_nix_ammoincr_shells 2
+set g_balance_nix_ammoincr_nails 6
+set g_balance_nix_ammoincr_rockets 2
+set g_balance_nix_ammoincr_cells 2
+set g_balance_nix_ammoincr_fuel 2
+// }}}
+
+// {{{ pickup items
+// Ammo caps copied from balanceFruit
+set g_pickup_ammo_anyway 0
+set g_pickup_weapons_anyway 1
+set g_pickup_shells 20
+set g_pickup_shells_max 45
+set g_pickup_nails 120
+set g_pickup_nails_max 300
+set g_pickup_rockets 25
+set g_pickup_rockets_max 150
+set g_pickup_cells 25
+set g_pickup_cells_max 200
+set g_pickup_fuel 25
+set g_pickup_fuel_jetpack 50
+set g_pickup_fuel_max 999
+set g_pickup_armorsmall 10
+set g_pickup_armorsmall_max 250
+set g_pickup_armorsmall_anyway 1
+set g_pickup_armormedium 25
+set g_pickup_armormedium_max 250
+set g_pickup_armormedium_anyway 0
+set g_pickup_armorbig 50
+set g_pickup_armorbig_max 250
+set g_pickup_armorbig_anyway 0
+set g_pickup_armorlarge 100
+set g_pickup_armorlarge_max 250
+set g_pickup_armorlarge_anyway 0
+set g_pickup_healthsmall 10
+set g_pickup_healthsmall_max 300
+set g_pickup_healthsmall_anyway 1
+set g_pickup_healthmedium 25
+set g_pickup_healthmedium_max 300
+set g_pickup_healthmedium_anyway 0
+set g_pickup_healthlarge 50
+set g_pickup_healthlarge_max 300
+set g_pickup_healthlarge_anyway 0
+set g_pickup_healthmega 100
+set g_pickup_healthmega_max 300
+set g_pickup_healthmega_anyway 1
+set g_pickup_respawntime_short 15
+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_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_weapon 0
+set g_pickup_respawntimejitter_ammo 0
+// }}}
+
+// {{{ regen/rot
+set g_balance_health_regen 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_regenstable 100
+set g_balance_health_rotstable 100
+set g_balance_health_limit 300
+set g_balance_armor_regen 0
+set g_balance_armor_regenlinear 0
+set g_balance_armor_rot 0
+set g_balance_armor_rotlinear 4.86
+set g_balance_pause_armor_rot 1
+set g_balance_pause_armor_rot_spawn 1
+set g_balance_armor_regenstable 100
+set g_balance_armor_rotstable 200
+set g_balance_armor_limit 250
+set g_balance_armor_blockpercent 0.6
+set g_balance_fuel_regen 0.1 "fuel regeneration (only applies if the player owns IT_FUEL_REGEN)"
+set g_balance_fuel_regenlinear 0
+set g_balance_pause_fuel_regen 2 // other than this, fuel uses the health regen counter
+set g_balance_fuel_rot 0.05
+set g_balance_fuel_rotlinear 0
+set g_balance_pause_fuel_rot 5
+set g_balance_pause_fuel_rot_spawn 10
+set g_balance_fuel_regenstable 100
+set g_balance_fuel_rotstable 999
+set g_balance_fuel_limit 999
+// }}}
+
+// {{{ misc
+set g_balance_selfdamagepercent 0.6
+set g_balance_weaponswitchdelay 0.15
+set g_weaponspeedfactor 1 "weapon projectile speed multiplier"
+set g_weaponratefactor 1 "weapon fire rate multiplier"
+set g_weapondamagefactor 1 "weapon damage multiplier"
+set g_weaponforcefactor 1 "weapon force multiplier"
+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.4
+set g_throughfloor_force 0.7
+set g_projectiles_newton_style 2
+// possible values:
+// 0: absolute velocity projectiles (like Quake)
+// 1: relative velocity projectiles, "Newtonian" (like Tribes 2)
+// 2: relative velocity projectiles, but aim is precorrected so projectiles hit the crosshair (note: strafe rockets then are SLOWER than ones shot while standing, happens in 1 too when aiming correctly which is hard)
+// 3: absolute velocity + player velocity component in shot direction (note: does NOT yield the right relative velocity, but may be good enough, but it is somewhat prone to sniper rockets)
+// 4: just add the player velocity length to the absolute velocity (tZork's sniper rockets)
+set g_projectiles_newton_style_2_minfactor 0.8
+set g_projectiles_newton_style_2_maxfactor 1.5
+set g_projectiles_spread_style 0
+// possible values:
+// 0: forward + solid sphere (like Quake) - varies velocity
+// 1: forward + flattened solid sphere
+// 2: forward + solid circle
+// 3: forward + normal distribution 3D - varies velocity
+// 4: forward + normal distribution on a plane
+// 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
+// }}}
+
+// {{{ powerups
+set g_balance_powerup_invincible_takedamage 0.2
+set g_balance_powerup_invincible_time 30
+set g_balance_powerup_strength_damage 3
+set g_balance_powerup_strength_force 3
+set g_balance_powerup_strength_time 30
+set g_balance_powerup_strength_selfdamage 1.5
+set g_balance_powerup_strength_selfforce 1.5
+// }}}
+
+// {{{ jetpack/hook
+set g_jetpack_antigravity 0.8 "factor of gravity compensation of the jetpack"
+set g_jetpack_acceleration_side 1200 "acceleration of the jetpack in xy direction"
+set g_jetpack_acceleration_up 600 "acceleration of the jetpack in z direction (note: you have to factor in gravity here, if antigravity is not 1)"
+set g_jetpack_maxspeed_side 1200 "max speed of the jetpack in xy direction"
+set g_jetpack_maxspeed_up 600 "max speed of the jetpack in z direction"
+set g_jetpack_fuel 8 "fuel per second for jetpack"
+set g_jetpack_attenuation 2 "jetpack sound attenuation"
+
+set g_grappling_hook_tarzan 2 // 2: can also pull players
+set g_balance_grapplehook_speed_fly 1800
+set g_balance_grapplehook_speed_pull 2000
+set g_balance_grapplehook_force_rubber 2000
+set g_balance_grapplehook_force_rubber_overstretch 1000
+set g_balance_grapplehook_length_min 50
+set g_balance_grapplehook_stretch 50
+set g_balance_grapplehook_airfriction 0.2
+set g_balance_grapplehook_health 130
+// }}}
+
+// {{{ weapon properties
+// {{{ laser
+set g_balance_laser_primary_damage 25
+set g_balance_laser_primary_edgedamage 10
+set g_balance_laser_primary_force 258
+set g_balance_laser_primary_radius 70
+set g_balance_laser_primary_speed 12000
+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_shotangle 0
+set g_balance_laser_primary_delay 0.03
+set g_balance_laser_primary_gauntlet 0
+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_force 375
+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_shotangle -90
+set g_balance_laser_secondary_delay 0
+set g_balance_laser_secondary_gauntlet 0
+// }}}
+// {{{ shotgun
+set g_balance_shotgun_primary_bullets 5
+set g_balance_shotgun_primary_damage 12
+set g_balance_shotgun_primary_force 60
+set g_balance_shotgun_primary_spread 0.08
+set g_balance_shotgun_primary_refire 0.5
+set g_balance_shotgun_primary_animtime 0.2
+set g_balance_shotgun_primary_ammo 1
+set g_balance_shotgun_primary_speed 12000
+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 85
+set g_balance_shotgun_secondary_melee_swing 50
+set g_balance_shotgun_secondary_melee_time 0.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
+// }}}
+// {{{ uzi
+set g_balance_uzi_first 1
+set g_balance_uzi_first_damage 26
+set g_balance_uzi_first_force 50
+set g_balance_uzi_first_spread 0.01
+set g_balance_uzi_first_refire 0.2
+set g_balance_uzi_first_ammo 1
+set g_balance_uzi_sustained_damage 15
+set g_balance_uzi_sustained_force 27
+set g_balance_uzi_sustained_spread 0.05
+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 300 // 13.1qu
+// }}}
+// {{{ mortar
+set g_balance_grenadelauncher_primary2secondary 0
+set g_balance_grenadelauncher_primary_sticky 0
+set g_balance_grenadelauncher_primary_damage 65
+set g_balance_grenadelauncher_primary_edgedamage 35
+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 200
+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_lifetime2 0.65
+set g_balance_grenadelauncher_primary_refire 0.7
+set g_balance_grenadelauncher_primary_animtime 0.3
+set g_balance_grenadelauncher_primary_ammo 2
+set g_balance_grenadelauncher_primary_health 72
+set g_balance_grenadelauncher_secondary_sticky 0
+set g_balance_grenadelauncher_secondary_damage 65
+set g_balance_grenadelauncher_secondary_edgedamage 35
+set g_balance_grenadelauncher_secondary_force 400
+set g_balance_grenadelauncher_secondary_radius 140
+set g_balance_grenadelauncher_secondary_speed 1400
+set g_balance_grenadelauncher_secondary_speed_up 200
+set g_balance_grenadelauncher_secondary_speed_z 0
+set g_balance_grenadelauncher_secondary_spread 0
+set g_balance_grenadelauncher_secondary_lifetime 2.5
+set g_balance_grenadelauncher_secondary_lifetime2 1
+set g_balance_grenadelauncher_secondary_refire 0.6
+set g_balance_grenadelauncher_secondary_animtime 0.3
+set g_balance_grenadelauncher_secondary_ammo 2
+set g_balance_grenadelauncher_secondary_health 40
+set g_balance_grenadelauncher_secondary_damageforcescale 0
+set g_balance_grenadelauncher_secondary_bouncefactor 0.7
+set g_balance_grenadelauncher_secondary_bouncestop 0.12
+// }}}
+// {{{ electro
+set g_balance_electro_lightning 0
+set g_balance_electro_primary_damage 80
+set g_balance_electro_primary_edgedamage 0
+set g_balance_electro_primary_force 550
+set g_balance_electro_primary_force_up 125
+set g_balance_electro_primary_radius 150
+set g_balance_electro_primary_comboradius 75
+set g_balance_electro_primary_speed 2000
+set g_balance_electro_primary_spread 0
+set g_balance_electro_primary_lifetime 30
+set g_balance_electro_primary_refire 0.6
+set g_balance_electro_primary_animtime 0.74
+set g_balance_electro_primary_ammo 2
+set g_balance_electro_primary_range 800
+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 60
+set g_balance_electro_secondary_edgedamage 0
+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_lifetime 3
+set g_balance_electro_secondary_spread 0.05
+set g_balance_electro_secondary_refire 0.2
+set g_balance_electro_secondary_refire2 1
+set g_balance_electro_secondary_animtime 0.3
+set g_balance_electro_secondary_ammo 2
+set g_balance_electro_secondary_health 10
+set g_balance_electro_secondary_damageforcescale 4
+set g_balance_electro_secondary_count 3
+set g_balance_electro_combo_damage 70
+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 70
+set g_balance_electro_combo_speed 400
+// }}}
+// {{{ crylink
+set g_balance_crylink_primary_damage 16
+set g_balance_crylink_primary_edgedamage 0
+set g_balance_crylink_primary_force -55
+set g_balance_crylink_primary_radius 80
+set g_balance_crylink_primary_speed 6950
+set g_balance_crylink_primary_spread 0.03
+set g_balance_crylink_primary_shots 4
+set g_balance_crylink_primary_bounces 2
+set g_balance_crylink_primary_refire 0.4
+set g_balance_crylink_primary_animtime 0.30008
+set g_balance_crylink_primary_ammo 1
+set g_balance_crylink_primary_bouncedamagefactor 0.2
+
+set g_balance_crylink_primary_middle_lifetime 5 // range: 10000 full, fades to 20000
+set g_balance_crylink_primary_middle_fadetime 5
+set g_balance_crylink_primary_star_lifetime 2 // range: 800 full, fades to 1300
+set g_balance_crylink_primary_star_fadetime 0.25
+set g_balance_crylink_primary_other_lifetime 2 // range: 800 full, fades to 1300
+set g_balance_crylink_primary_other_fadetime 0.25
+
+set g_balance_crylink_secondary 1
+set g_balance_crylink_secondary_damage 12
+set g_balance_crylink_secondary_edgedamage 0
+set g_balance_crylink_secondary_force -55
+set g_balance_crylink_secondary_radius 3
+set g_balance_crylink_secondary_speed 6950
+set g_balance_crylink_secondary_spread 0.08
+set g_balance_crylink_secondary_shots 7
+set g_balance_crylink_secondary_bounces 0
+set g_balance_crylink_secondary_refire 0.5
+set g_balance_crylink_secondary_animtime 0.3
+set g_balance_crylink_secondary_ammo 2
+set g_balance_crylink_secondary_bouncedamagefactor 0.5
+
+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
+// }}}
+// {{{ nex
+set g_balance_nex_primary_ammo 7
+set g_balance_nex_primary_animtime 0.3
+set g_balance_nex_primary_damage 140
+set g_balance_nex_primary_force 600
+set g_balance_nex_primary_refire 1.5
+set g_balance_nex_primary_damagefalloff_mindist 9999999
+set g_balance_nex_primary_damagefalloff_maxdist 9999999
+set g_balance_nex_primary_damagefalloff_halflife 9999999
+set g_balance_nex_primary_damagefalloff_forcehalflife 9999999
+
+set g_balance_nex_secondary 0
+set g_balance_nex_secondary_damage 80
+set g_balance_nex_secondary_force -500
+set g_balance_nex_secondary_refire 1.25
+set g_balance_nex_secondary_animtime 0.75
+set g_balance_nex_secondary_ammo 5
+set g_balance_nex_secondary_damagefalloff_mindist 9999999
+set g_balance_nex_secondary_damagefalloff_maxdist 9999999
+set g_balance_nex_secondary_damagefalloff_halflife 9999999
+set g_balance_nex_secondary_damagefalloff_forcehalflife 9999999
+// }}}
+// {{{ minstanex
+set g_balance_minstanex_refire 1
+set g_balance_minstanex_animtime 0.278
+set g_balance_minstanex_ammo 10
+// }}}
+// {{{ hagar
+set g_balance_hagar_primary_damage 43
+set g_balance_hagar_primary_edgedamage 15
+set g_balance_hagar_primary_force 100
+set g_balance_hagar_primary_radius 70
+set g_balance_hagar_primary_spread 0.010
+set g_balance_hagar_primary_speed 3000
+set g_balance_hagar_primary_lifetime 30
+set g_balance_hagar_primary_refire 0.15
+set g_balance_hagar_primary_ammo 1
+set g_balance_hagar_secondary 1
+set g_balance_hagar_secondary_damage 43
+set g_balance_hagar_secondary_edgedamage 15
+set g_balance_hagar_secondary_force 100
+set g_balance_hagar_secondary_radius 70
+set g_balance_hagar_secondary_spread 0.015
+set g_balance_hagar_secondary_speed 1400
+set g_balance_hagar_secondary_lifetime_min 5
+set g_balance_hagar_secondary_lifetime_rand 0
+set g_balance_hagar_secondary_refire 0.15
+set g_balance_hagar_secondary_ammo 1
+// }}}
+// {{{ rocketlauncher
+set g_balance_rocketlauncher_damage 130
+set g_balance_rocketlauncher_edgedamage 50
+set g_balance_rocketlauncher_force 597
+set g_balance_rocketlauncher_radius 185
+set g_balance_rocketlauncher_speed 900
+set g_balance_rocketlauncher_speedaccel 0
+set g_balance_rocketlauncher_speedstart 850
+set g_balance_rocketlauncher_lifetime 30
+set g_balance_rocketlauncher_refire 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_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_rocketlauncher_guiderate 140 // 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_guidestop 0 // stop guiding when firing again
+set g_balance_rocketlauncher_laserguided_speed 1000 //650
+set g_balance_rocketlauncher_laserguided_speedaccel 0
+set g_balance_rocketlauncher_laserguided_speedstart 1000
+set g_balance_rocketlauncher_laserguided_turnrate 0.60 //0.5
+set g_balance_rocketlauncher_laserguided_allow_steal 1
+set g_balance_rocketlauncher_remote_damage 120
+set g_balance_rocketlauncher_remote_edgedamage 46
+set g_balance_rocketlauncher_remote_radius 185
+set g_balance_rocketlauncher_remote_force 590
+// }}}
+// {{{ porto
+set g_balance_porto_primary_refire 1.5
+set g_balance_porto_primary_animtime 0.3
+set g_balance_porto_primary_speed 5000
+set g_balance_porto_primary_lifetime 30
+set g_balance_portal_health 200 // these get recharged whenever the portal is used
+set g_balance_portal_lifetime 15 // these get recharged whenever the portal is used
+// }}}
+// {{{ hook
+set g_balance_hook_primary_fuel 2 // hook monkeys set 0
+set g_balance_hook_primary_refire 0 // hook monkeys set 0
+set g_balance_hook_primary_animtime 0.3 // good shoot anim
+set g_balance_hook_primary_hooked_time_max 0 // infinite
+set g_balance_hook_primary_hooked_time_free 2 // 2s being hooked are free
+set g_balance_hook_primary_hooked_fuel 3 // fuel per second hooked
+set g_balance_hook_secondary_damage 25 // not much
+set g_balance_hook_secondary_edgedamage 5 // not much
+set g_balance_hook_secondary_radius 500 // LOTS
+set g_balance_hook_secondary_force -2000 // LOTS
+set g_balance_hook_secondary_ammo 50 // a whole pack
+set g_balance_hook_secondary_lifetime 30 // infinite
+set g_balance_hook_secondary_speed 0 // not much throwing
+set g_balance_hook_secondary_gravity 5 // fast falling
+set g_balance_hook_secondary_refire 3 // don't drop too many bombs...
+set g_balance_hook_secondary_animtime 0.3 // good shoot anim
+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
+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 19
+set g_balance_hlac_primary_edgedamage 10
+set g_balance_hlac_primary_force 45
+set g_balance_hlac_primary_radius 70
+set g_balance_hlac_primary_speed 9000
+set g_balance_hlac_primary_lifetime 5
+
+set g_balance_hlac_primary_refire 0.1
+set g_balance_hlac_primary_animtime 0.3
+set g_balance_hlac_primary_ammo 1
+
+set g_balance_hlac_secondary 1
+set g_balance_hlac_secondary_spread 0.15
+set g_balance_hlac_secondary_spread_crouchmod 0.5
+
+set g_balance_hlac_secondary_damage 18
+set g_balance_hlac_secondary_edgedamage 10
+set g_balance_hlac_secondary_force 100
+set g_balance_hlac_secondary_radius 70
+set g_balance_hlac_secondary_speed 9000
+set g_balance_hlac_secondary_lifetime 5
+
+set g_balance_hlac_secondary_refire 1
+set g_balance_hlac_secondary_animtime 0.3
+set g_balance_hlac_secondary_ammo 10
+set g_balance_hlac_secondary_shots 6
+// }}}
+// {{{ campingrifle
+set g_balance_campingrifle_magazinecapacity 8
+set g_balance_campingrifle_reloadtime 2 // matches reload anim
+set g_balance_campingrifle_auto_reload_after_changing_weapons 0
+set g_balance_campingrifle_bursttime 0.85 // 0.35 - 0.1 + 0.35 - 0.1 + 0.35 = three secondaries
+set g_balance_campingrifle_tracer 1
+set g_balance_campingrifle_primary_damage 75
+set g_balance_campingrifle_primary_headshotaddeddamage 90
+set g_balance_campingrifle_primary_spread 0
+set g_balance_campingrifle_primary_force 2
+set g_balance_campingrifle_primary_speed 35000
+set g_balance_campingrifle_primary_lifetime 5
+set g_balance_campingrifle_primary_refire 0.7
+set g_balance_campingrifle_primary_animtime 0.3
+set g_balance_campingrifle_primary_ammo 10
+set g_balance_campingrifle_primary_bulletconstant 130 // 56.3qu
+set g_balance_campingrifle_primary_burstcost 0 // require same cooldown as secondary, note it's smaller than primary refire time
+set g_balance_campingrifle_primary_bullethail 0 // empty magazine on shot
+set g_balance_campingrifle_secondary 1
+set g_balance_campingrifle_secondary_damage 40
+set g_balance_campingrifle_secondary_headshotaddeddamage 20
+set g_balance_campingrifle_secondary_spread 0.008
+set g_balance_campingrifle_secondary_force 1
+set g_balance_campingrifle_secondary_speed 20000
+set g_balance_campingrifle_secondary_lifetime 5
+set g_balance_campingrifle_secondary_refire 0.0006
+set g_balance_campingrifle_secondary_animtime 0.1
+set g_balance_campingrifle_secondary_ammo 10
+set g_balance_campingrifle_secondary_bulletconstant 130 // 18.3qu
+set g_balance_campingrifle_secondary_burstcost 0
+set g_balance_campingrifle_secondary_bullethail 0
+// }}}
+// {{{ tuba
+set g_balance_tuba_refire 0.05
+set g_balance_tuba_animtime 0.05
+set g_balance_tuba_attenuation 0.5
+set g_balance_tuba_volume 1
+set g_balance_tuba_fadetime 0.25
+set g_balance_tuba_damage 5
+set g_balance_tuba_edgedamage 0
+set g_balance_tuba_radius 200
+set g_balance_tuba_force 40
+// }}}
+// {{{ fireball
+set g_balance_fireball_primary_ammo 5
+set g_balance_fireball_primary_animtime 0.3
+set g_balance_fireball_primary_bfgdamage 0
+set g_balance_fireball_primary_bfgforce 0
+set g_balance_fireball_primary_bfgradius 0
+set g_balance_fireball_primary_damage 40
+set g_balance_fireball_primary_damageforcescale 4
+set g_balance_fireball_primary_edgedamage 0
+set g_balance_fireball_primary_force 100
+set g_balance_fireball_primary_health 9999
+set g_balance_fireball_primary_laserburntime 0.5
+set g_balance_fireball_primary_laserdamage 30
+set g_balance_fireball_primary_laseredgedamage 20
+set g_balance_fireball_primary_laserradius 110
+set g_balance_fireball_primary_lifetime 7
+set g_balance_fireball_primary_radius 20
+set g_balance_fireball_primary_refire 2
+set g_balance_fireball_primary_refire2 1.5
+set g_balance_fireball_primary_speed 900
+set g_balance_fireball_primary_spread 0
+set g_balance_fireball_secondary_ammo 25
+set g_balance_fireball_secondary_animtime 0.15
+set g_balance_fireball_secondary_damage 150
+set g_balance_fireball_secondary_damageforcescale 4
+set g_balance_fireball_secondary_damagetime 3
+set g_balance_fireball_secondary_force 700
+set g_balance_fireball_secondary_laserburntime 0.5
+set g_balance_fireball_secondary_laserdamage 30
+set g_balance_fireball_secondary_laseredgedamage 20
+set g_balance_fireball_secondary_laserradius 256
+set g_balance_fireball_secondary_lifetime 15
+set g_balance_fireball_secondary_refire 0
+set g_balance_fireball_secondary_speed 650
+set g_balance_fireball_secondary_speed_up 0
+set g_balance_fireball_secondary_speed_z 0
+set g_balance_fireball_secondary_spread 0
+// }}}
+// {{{ seeker
+set g_balance_seeker_flac_ammo 0.5
+set g_balance_seeker_flac_animtime 0.1
+set g_balance_seeker_flac_damage 15
+set g_balance_seeker_flac_edgedamage 10
+set g_balance_seeker_flac_force 50
+set g_balance_seeker_flac_lifetime 0.1
+set g_balance_seeker_flac_lifetime_rand 0.05
+set g_balance_seeker_flac_radius 100
+set g_balance_seeker_flac_refire 0.1
+set g_balance_seeker_flac_speed 3000
+set g_balance_seeker_flac_speed_up 1000
+set g_balance_seeker_flac_speed_z 0
+set g_balance_seeker_flac_spread 0.4
+set g_balance_seeker_missile_accel 1.05
+set g_balance_seeker_missile_ammo 2
+set g_balance_seeker_missile_animtime 0.3
+set g_balance_seeker_missile_count 8
+set g_balance_seeker_missile_damage 15
+set g_balance_seeker_missile_damageforcescale 4
+set g_balance_seeker_missile_decel 0.9
+set g_balance_seeker_missile_delay 0.25
+set g_balance_seeker_missile_edgedamage 10
+set g_balance_seeker_missile_force 250
+set g_balance_seeker_missile_health 5
+set g_balance_seeker_missile_lifetime 15
+set g_balance_seeker_missile_proxy 0
+set g_balance_seeker_missile_proxy_delay 0.2
+set g_balance_seeker_missile_proxy_maxrange 45
+set g_balance_seeker_missile_radius 80
+set g_balance_seeker_missile_refire 0.5
+set g_balance_seeker_missile_smart 1
+set g_balance_seeker_missile_smart_mindist 800
+set g_balance_seeker_missile_smart_trace_max 2500
+set g_balance_seeker_missile_smart_trace_min 1000
+set g_balance_seeker_missile_speed 700
+set g_balance_seeker_missile_speed_accel 0
+set g_balance_seeker_missile_speed_up 300
+set g_balance_seeker_missile_speed_z 0
+set g_balance_seeker_missile_speed_max 1250
+set g_balance_seeker_missile_spread 0
+set g_balance_seeker_missile_turnrate 0.65
+set g_balance_seeker_tag_ammo 1
+set g_balance_seeker_tag_animtime 0.3
+set g_balance_seeker_tag_damageforcescale 4
+set g_balance_seeker_tag_health 5
+set g_balance_seeker_tag_lifetime 15
+set g_balance_seeker_tag_refire 0.7
+set g_balance_seeker_tag_speed 9000
+set g_balance_seeker_tag_spread 0
+// End new seeker
index 0f8a8dc..6c5a746 100644 (file)
@@ -318,8 +318,10 @@ set g_balance_electro_primary_refire 0.6
 set g_balance_electro_primary_animtime 0.3
 set g_balance_electro_primary_ammo 2
 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 50
-set g_balance_electro_secondary_spread 0.05
 set g_balance_electro_secondary_edgedamage 0
 set g_balance_electro_secondary_force 200
 set g_balance_electro_secondary_radius 150
index e701578..17c3e14 100644 (file)
@@ -318,8 +318,10 @@ set g_balance_electro_primary_refire 0.6
 set g_balance_electro_primary_animtime 0.3
 set g_balance_electro_primary_ammo 2
 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 50
-set g_balance_electro_secondary_spread 0.05
 set g_balance_electro_secondary_edgedamage 0
 set g_balance_electro_secondary_force 200
 set g_balance_electro_secondary_radius 150
index 39b9b26..076a493 100644 (file)
@@ -114,7 +114,7 @@ set g_balance_pause_health_rot 1
 set g_balance_pause_health_rot_spawn 0
 set g_balance_health_regenstable 100
 set g_balance_health_rotstable 100
-set g_balance_health_limit 200
+set g_balance_health_limit 999
 set g_balance_armor_regen 0
 set g_balance_armor_regenlinear 0
 set g_balance_armor_rot 0
@@ -123,7 +123,7 @@ set g_balance_pause_armor_rot 1
 set g_balance_pause_armor_rot_spawn 0
 set g_balance_armor_regenstable 100
 set g_balance_armor_rotstable 100
-set g_balance_armor_limit 200
+set g_balance_armor_limit 999
 set g_balance_armor_blockpercent 0.7
 set g_balance_fuel_regen 0.1 "fuel regeneration (only applies if the player owns IT_FUEL_REGEN)"
 set g_balance_fuel_regenlinear 0
@@ -244,10 +244,10 @@ set g_balance_shotgun_primary_speed 12000
 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_damage 115
+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
@@ -259,7 +259,7 @@ set g_balance_uzi_first_force 35
 set g_balance_uzi_first_spread 0.03
 set g_balance_uzi_first_refire 0.2
 set g_balance_uzi_first_ammo 2
-set g_balance_uzi_sustained_damage 7
+set g_balance_uzi_sustained_damage 9
 set g_balance_uzi_sustained_force 7.5
 set g_balance_uzi_sustained_spread 0.1
 set g_balance_uzi_sustained_refire 0.075
@@ -281,7 +281,7 @@ set g_balance_grenadelauncher_primary_spread 0
 set g_balance_grenadelauncher_primary_lifetime 5
 set g_balance_grenadelauncher_primary_lifetime2 0.65
 set g_balance_grenadelauncher_primary_refire 0.8
-set g_balance_grenadelauncher_primary_animtime 0.2
+set g_balance_grenadelauncher_primary_animtime 0.4
 set g_balance_grenadelauncher_primary_ammo 2
 set g_balance_grenadelauncher_primary_health 72
 set g_balance_grenadelauncher_secondary_sticky 1
@@ -296,7 +296,7 @@ set g_balance_grenadelauncher_secondary_spread 0
 set g_balance_grenadelauncher_secondary_lifetime 5
 set g_balance_grenadelauncher_secondary_lifetime2 1
 set g_balance_grenadelauncher_secondary_refire 0.8
-set g_balance_grenadelauncher_secondary_animtime 0.2
+set g_balance_grenadelauncher_secondary_animtime 0.4
 set g_balance_grenadelauncher_secondary_ammo 2
 set g_balance_grenadelauncher_secondary_health 40
 set g_balance_grenadelauncher_secondary_damageforcescale 0
@@ -314,12 +314,14 @@ set g_balance_electro_primary_comboradius 75
 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_primary_refire 0.03333333
+set g_balance_electro_primary_refire 0.4
 set g_balance_electro_primary_animtime 0.03333333
-set g_balance_electro_primary_ammo 10
+set g_balance_electro_primary_ammo 7
 set g_balance_electro_primary_range 800
+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_spread 0
 set g_balance_electro_secondary_edgedamage 0
 set g_balance_electro_secondary_force 100
 set g_balance_electro_secondary_radius 100
@@ -343,10 +345,10 @@ set g_balance_electro_combo_comboradius 0
 set g_balance_electro_combo_speed 400
 // }}}
 // {{{ crylink
-set g_balance_crylink_primary_damage 10
-set g_balance_crylink_primary_edgedamage 8
-set g_balance_crylink_primary_force -60
-set g_balance_crylink_primary_radius 100
+set g_balance_crylink_primary_damage 8
+set g_balance_crylink_primary_edgedamage 6
+set g_balance_crylink_primary_force 40
+set g_balance_crylink_primary_radius 80
 set g_balance_crylink_primary_speed 1100
 set g_balance_crylink_primary_spread 0.1
 set g_balance_crylink_primary_shots 7
@@ -364,16 +366,16 @@ set g_balance_crylink_primary_other_lifetime 2 // range: 800 full, fades to 1300
 set g_balance_crylink_primary_other_fadetime 0.25
 
 set g_balance_crylink_secondary 1
-set g_balance_crylink_secondary_damage 4
+set g_balance_crylink_secondary_damage 2
 set g_balance_crylink_secondary_edgedamage 0
 set g_balance_crylink_secondary_force -20
-set g_balance_crylink_secondary_radius 15
+set g_balance_crylink_secondary_radius 5
 set g_balance_crylink_secondary_speed 1600
 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.1
-set g_balance_crylink_secondary_animtime 0.1
+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
 
@@ -384,25 +386,25 @@ set g_balance_crylink_secondary_line_fadetime 2
 // }}}
 // {{{ nex
 set g_balance_nex_primary_damage 80
-set g_balance_nex_primary_force 200
+set g_balance_nex_primary_force 400
 set g_balance_nex_primary_refire 1.25
 set g_balance_nex_primary_animtime 0.75
 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 4000
-set g_balance_nex_primary_damagefalloff_forcehalflife 4000
+set g_balance_nex_primary_damagefalloff_mindist 0
+set g_balance_nex_primary_damagefalloff_maxdist 4000
+set g_balance_nex_primary_damagefalloff_halflife 2000
+set g_balance_nex_primary_damagefalloff_forcehalflife 2000
 
 set g_balance_nex_secondary 1
 set g_balance_nex_secondary_damage 80
-set g_balance_nex_secondary_force -200
+set g_balance_nex_secondary_force -500
 set g_balance_nex_secondary_refire 1.25
 set g_balance_nex_secondary_animtime 0.75
 set g_balance_nex_secondary_ammo 5
-set g_balance_nex_secondary_damagefalloff_mindist 1000
-set g_balance_nex_secondary_damagefalloff_maxdist 3000
-set g_balance_nex_secondary_damagefalloff_halflife 4000
-set g_balance_nex_secondary_damagefalloff_forcehalflife 4000
+set g_balance_nex_secondary_damagefalloff_mindist 0
+set g_balance_nex_secondary_damagefalloff_maxdist 4000
+set g_balance_nex_secondary_damagefalloff_halflife 2000
+set g_balance_nex_secondary_damagefalloff_forcehalflife 2000
 // }}}
 // {{{ minstanex
 set g_balance_minstanex_refire 1.25
@@ -411,9 +413,9 @@ set g_balance_minstanex_ammo 10
 // }}}
 // {{{ hagar
 set g_balance_hagar_primary_damage 12
-set g_balance_hagar_primary_edgedamage 12
+set g_balance_hagar_primary_edgedamage 6
 set g_balance_hagar_primary_force 70
-set g_balance_hagar_primary_radius 70
+set g_balance_hagar_primary_radius 100
 set g_balance_hagar_primary_spread 0.1
 set g_balance_hagar_primary_speed 1800
 set g_balance_hagar_primary_lifetime 5
@@ -421,9 +423,9 @@ set g_balance_hagar_primary_refire 0.12
 set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
 set g_balance_hagar_secondary_damage 12
-set g_balance_hagar_secondary_edgedamage 12
+set g_balance_hagar_secondary_edgedamage 6
 set g_balance_hagar_secondary_force 70
-set g_balance_hagar_secondary_radius 50
+set g_balance_hagar_secondary_radius 100
 set g_balance_hagar_secondary_spread 0.15
 set g_balance_hagar_secondary_speed 1800
 set g_balance_hagar_secondary_lifetime_min 5
@@ -441,7 +443,7 @@ set g_balance_rocketlauncher_speedaccel 0
 set g_balance_rocketlauncher_speedstart 1000
 set g_balance_rocketlauncher_lifetime 5
 set g_balance_rocketlauncher_refire 1
-set g_balance_rocketlauncher_animtime 0.2
+set g_balance_rocketlauncher_animtime 0.4
 set g_balance_rocketlauncher_ammo 3
 set g_balance_rocketlauncher_health 0
 set g_balance_rocketlauncher_damageforcescale 0
@@ -523,12 +525,12 @@ set g_balance_hlac_secondary_ammo 10
 set g_balance_hlac_secondary_shots 6
 // }}}
 // {{{ campingrifle
-set g_balance_campingrifle_magazinecapacity 4 // make it pretty much useless in close combat
+set g_balance_campingrifle_magazinecapacity 8 // make it pretty much useless in close combat
 set g_balance_campingrifle_reloadtime 2 // matches reload anim
 set g_balance_campingrifle_auto_reload_after_changing_weapons 0
 set g_balance_campingrifle_bursttime 0
 set g_balance_campingrifle_tracer 1
-set g_balance_campingrifle_primary_damage 60
+set g_balance_campingrifle_primary_damage 50
 set g_balance_campingrifle_primary_headshotaddeddamage 50
 set g_balance_campingrifle_primary_spread 0
 set g_balance_campingrifle_primary_force 2
@@ -542,7 +544,7 @@ set g_balance_campingrifle_primary_burstcost 0
 set g_balance_campingrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_campingrifle_secondary 1
 set g_balance_campingrifle_secondary_damage 25
-set g_balance_campingrifle_secondary_headshotaddeddamage 20 // 45 damage only on head
+set g_balance_campingrifle_secondary_headshotaddeddamage 25 // 50 damage only on head
 set g_balance_campingrifle_secondary_spread 0.008
 set g_balance_campingrifle_secondary_force 1
 set g_balance_campingrifle_secondary_speed 20000
diff --git a/darkplaces-icon.tga b/darkplaces-icon.tga
new file mode 100644 (file)
index 0000000..d7a0dd0
Binary files /dev/null and b/darkplaces-icon.tga differ
diff --git a/darkplaces-icon.xpm b/darkplaces-icon.xpm
new file mode 100644 (file)
index 0000000..cdd7f44
--- /dev/null
@@ -0,0 +1,127 @@
+/* XPM */
+static char * xonotic_32_xpm[] = {
+"32 32 92 1",
+"      c None",
+".     c #000509",
+"+     c #0F0303",
+"@     c #150400",
+"#     c #1B0400",
+"$     c #010C14",
+"%     c #220700",
+"&     c #010F1A",
+"*     c #250700",
+"=     c #2B0900",
+"-     c #011321",
+";     c #310A03",
+">     c #001628",
+",     c #330B00",
+"'     c #390B03",
+")     c #400A01",
+"!     c #3C0E00",
+"~     c #051A31",
+"{     c #331103",
+"]     c #430D00",
+"^     c #4D1002",
+"/     c #0A1F36",
+"(     c #141E29",
+"_     c #451A07",
+":     c #082743",
+"<     c #0A273F",
+"[     c #4F1D08",
+"}     c #5B1B07",
+"|     c #182C3F",
+"1     c #0C2F51",
+"2     c #5D2409",
+"3     c #65240A",
+"4     c #562812",
+"5     c #4D2C1B",
+"6     c #0D3A65",
+"7     c #662A06",
+"8     c #722D0F",
+"9     c #743101",
+"0     c #2C3F53",
+"a     c #77310A",
+"b     c #1A4673",
+"c     c #7C3908",
+"d     c #683D29",
+"e     c #733B1E",
+"f     c #823A03",
+"g     c #214C76",
+"h     c #8B3E18",
+"i     c #8F410D",
+"j     c #963F11",
+"k     c #604D4A",
+"l     c #255A88",
+"m     c #255A9B",
+"n     c #295B8F",
+"o     c #9F4610",
+"p     c #984A17",
+"q     c #255EA5",
+"r     c #1761B1",
+"s     c #9A4A21",
+"t     c #A54C15",
+"u     c #475E79",
+"v     c #346399",
+"w     c #A2511E",
+"x     c #3E6792",
+"y     c #5C6272",
+"z     c #266BBB",
+"A     c #2271BD",
+"B     c #4D6C8F",
+"C     c #3C6FA5",
+"D     c #B15A26",
+"E     c #3472BA",
+"F     c #3373B4",
+"G     c #3479C1",
+"H     c #4178AE",
+"I     c #287ED1",
+"J     c #347CCA",
+"K     c #387FC7",
+"L     c #4380C1",
+"M     c #3A84D2",
+"N     c #5489C0",
+"O     c #488CD4",
+"P     c #648AB7",
+"Q     c #628DB2",
+"R     c #678DBA",
+"S     c #5691CC",
+"T     c #748CA8",
+"U     c #5F9AD7",
+"V     c #6D99CC",
+"W     c #74A4DA",
+"X     c #81A4C9",
+"Y     c #7AACDC",
+"Z     c #8DBCE9",
+"`     c #98C2EA",
+"                                ",
+"                                ",
+"         E            E         ",
+"       AUG            EUA       ",
+"      SW                WS      ",
+"     SY                  YS     ",
+"    LZr                  rZL    ",
+"   E`E            cwcppc  E`E   ",
+"   YW           pwh}h3}sp  WY   ",
+"  GXL          w8hD8^3swD  LXG  ",
+"  VR         is^]8h^ai9     RV  ",
+" zxS        p8]]]]]]Dpptf   Sxz ",
+" JlO       t}))))))))}io    OlJ ",
+" MgJ     fo]!!!!!!!!8o      JgM ",
+" MbI    ih}t!''''''8i       IbM ",
+" K6M   ijht3,,,,,,!i        M6K ",
+" K6K  otffa3;;;;;;a9        K6K ",
+" K6Fq f ftia======a        rF6K ",
+" M1nz     f!======a        An1M ",
+" Ib1K     a*******29       K1bI ",
+" rv1bJ   c[%%%%%%%%a9     Jb1vr ",
+"  K::Fq c7%%%%%%%%%*2a9  mF::K  ",
+"  Ag:1Le_############%_2eH1:gA  ",
+"   K//:Hd{############{dH://K   ",
+"   zv~~/Ck[%@@@@@@@@%[kC/~~vz   ",
+"    Jg>>>gCy4!@++@!4yCg>>>gJ    ",
+"     Jg----<lB[++[Bl<----gJ     ",
+"      Jx&&&&&|y==y|&&&&&xJ      ",
+"       AN0$$$$B55B$$$$0NA       ",
+"         KPu(.$TT$.(uPK         ",
+"           rSVQXXQVSr           ",
+"                                "};
diff --git a/darkplaces-icon2.tga b/darkplaces-icon2.tga
new file mode 100644 (file)
index 0000000..4a03aad
Binary files /dev/null and b/darkplaces-icon2.tga differ
diff --git a/darkplaces-icon3.tga b/darkplaces-icon3.tga
new file mode 100644 (file)
index 0000000..f4b281b
Binary files /dev/null and b/darkplaces-icon3.tga differ
diff --git a/darkplaces-icon4.tga b/darkplaces-icon4.tga
new file mode 100644 (file)
index 0000000..0b10c1c
Binary files /dev/null and b/darkplaces-icon4.tga differ
diff --git a/darkplaces-icon5.tga b/darkplaces-icon5.tga
new file mode 100644 (file)
index 0000000..183ec93
Binary files /dev/null and b/darkplaces-icon5.tga differ
diff --git a/darkplaces-icon6.tga b/darkplaces-icon6.tga
new file mode 100644 (file)
index 0000000..21632ac
Binary files /dev/null and b/darkplaces-icon6.tga differ
diff --git a/darkplaces-icon7.tga b/darkplaces-icon7.tga
new file mode 100644 (file)
index 0000000..3d9199a
Binary files /dev/null and b/darkplaces-icon7.tga differ
diff --git a/darkplaces-icon8.tga b/darkplaces-icon8.tga
new file mode 100644 (file)
index 0000000..3e3b1f0
Binary files /dev/null and b/darkplaces-icon8.tga differ
diff --git a/darkplaces-icon9.tga b/darkplaces-icon9.tga
new file mode 100644 (file)
index 0000000..a2270db
Binary files /dev/null and b/darkplaces-icon9.tga differ
index 3b585d7..1f90901 100644 (file)
@@ -79,9 +79,8 @@ alias movetoteam_pink "sv_cmd movetoteam $1 pink"
 alias movetoteam_yellow "sv_cmd movetoteam $1 yellow"
 alias movetoteam_auto "sv_cmd movetoteam $1 auto"
 
-// merge lightmaps up to 1024x1024 textures
-// the default of 2048x2048 is too heavy for my rig (SavageX)
-mod_q3bsp_lightmapmergepower 3
+// merge lightmaps up to 2048x2048 textures
+mod_q3bsp_lightmapmergepower 4
 
 // player defaults
 _cl_color 102
@@ -210,7 +209,7 @@ seta cl_zoomspeed 3.5       "how fast it will zoom (0.5-16), negative values mean inst
 seta cl_zoomsensitivity 0      "how zoom changes sensitivity (0 = weakest, 1 = strongest)"
 freelook 1
 sensitivity 6
-v_gamma 1.125000
+v_gamma 1
 viewsize 100
 bgmvolume 1
 volume 0.5
@@ -283,8 +282,6 @@ seta cl_voice_directional_taunt_attenuation 0.5 "this defines the distance from
 hostname "Xonotic $g_xonoticversion Server"
 set sv_mapchange_delay 5
 set minplayers 0 "number of players playing at the same time (if not enough real players are there the remaining slots are filled with bots)"
-sv_cullentities_trace 1
-r_cullentities_trace 1
 
 // restart server if all players hit "ready"-button
 set sv_ready_restart 0 "if set to 1 allow a map to be restarted once all players pressed the \"ready\" button'"
@@ -322,11 +319,12 @@ set g_allow_oldnexbeam 0 "If enabled, clients are allowed to use old v2.3 Nexgun
 seta cl_particles_oldnexbeam 0 "Uses the old v2.3 Nexgun beam instead of the new beam, only works if server allows it (g_allow_oldnexbeam 1)"
 set sv_qcweaponanimation 0
 
-set g_telefrags 1
-set g_telefrags_avoid 0
+set g_telefrags 1 "telefragging, i.e. killing someone who stands in the way of someone who is teleporting"
+set g_telefrags_teamplay 1 "never telefrag team mates"
+set g_telefrags_avoid 1 "when teleporters have a random destination, avoid teleporting to locations where a telefrag would happen"
 set g_teleport_maxspeed 0 "maximum speed that a player can keep when going through a teleporter (if a misc_teleporter_dest also has a cap the smallest one of these will be used), 0 = don't limit, -1 = keep no speed"
 
-set g_respawn_ghosts 0 "if 1 dead bodies become ghosts and float away when the player respawns"
+set g_respawn_ghosts 1 "if 1 dead bodies become ghosts and float away when the player respawns"
 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"
 
@@ -338,7 +336,7 @@ set sv_fragmessage_information_typefrag 1 "Enable typefrag display information,
 
 // use default physics
 set sv_friction_on_land 0
-exec physicsNoQWBunny-nexbased.cfg
+exec physicsNoQWBunny-xpmbased.cfg
 
 set sv_player_viewoffset "0 0 35" "view offset of the player model"
 set sv_player_mins "-16 -16 -24" "playermodel mins"
@@ -509,7 +507,7 @@ set g_casings 2 "specifies which casings (0: none, 1: only shotgun casings, 2: s
 set g_norecoil 0 "if set to 1 shooting weapons won't make you crosshair to move upwards (recoil)"
 set g_maplist_mostrecent "" "contains the name of the maps that were most recently played"
 seta g_maplist_mostrecent_count 3      "number of most recent maps that are blocked from being played again"
-seta g_maplist "accident aggressor aneurysm basement basementctf bleach bloodprison bloodprisonctf bluesky cyberparcour01 darkzone desertfactory dieselpower downer eggandbacon evilspace farewell final_rage nr_piece-o-cake ons-reborn racetrack reslimed ruiner runningman runningman_1on1remix runningmanctf silvercity skyway slimepit soylent starship stormkeep2 strength toxic warfare"
+seta g_maplist "g-23" "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"
@@ -846,6 +844,10 @@ set g_footsteps 1  "serverside footstep sounds"
 
 set g_deathglow 1.25 "when enabled, players stop glowing after they die (the value specifies glow fading speed)"
 
+set g_multijump 0      "Number of multiple jumps to allow (jumping again in the air), -1 allows for infinite jumps"
+set g_multijump_add 0  "0 = make the current z velocity equal to jumpvelocity, 1 = add jumpvelocity to the current z velocity"
+set g_multijump_speed -999999  "Minimum vertical speed a player must have in order to jump again"
+
 // effects
 r_picmipsprites 0 // Xonotic uses sprites that should never be picmipped (team mate, typing, waypoints)
 r_picmipworld 1
@@ -856,16 +858,16 @@ r_mipsprites 1
 r_mipskins 1
 r_shadow_realtime_world_lightmaps 1
 seta r_ambient 4
-cl_decals_fadetime 1
+cl_decals_fadetime 5
 cl_decals_time 2
 seta cl_gunalign 3 "Gun alignment; 1 = right, 2 = left, 3 = center or right, 4 = center or left"
 seta cl_nogibs 0 "reduce number of violence effects, or remove them totally"
 seta cl_particlegibs 0 "simpler gibs"
 seta cl_gibs_damageforcescale 3.5 "force to push around gibs"
-seta cl_gibs_lifetime 14 "average lifetime of gibs"
+seta cl_gibs_lifetime 5 "average lifetime of gibs"
 seta cl_gibs_velocity_scale 1 "gib throw velocity force scale"
 seta cl_gibs_velocity_random 1 "gib throw velocity randomness scale"
-seta cl_gibs_velocity_up 0 "extra z velocity for gibs"
+seta cl_gibs_velocity_up 1 "extra z velocity for gibs"
 seta cl_gibs_ticrate 0.1 "ticrate for gibs"
 seta cl_gibs_sloppy 1 "sloppy gibs, may temporarily penetrate walls"
 seta cl_casings 1 "enable or disable bullet casings"
@@ -1116,6 +1118,7 @@ set quit_and_redirect ""  "set to an IP to redirect all players at the end of the
 
 // singleplayer campaign
 set g_campaign 0
+set g_campaign_forceteam 0 "Forces the player to a given team in campaign mode, 1 = red, 2 = blue, 3 = yellow, 4 = pink"
 seta g_campaign_name "xonotic25"
 set g_campaign_skill 0
 set g_campaignxonotic20_index 0
@@ -1140,6 +1143,7 @@ seta sv_servermodelsonly 1
 cl_curl_enabled 1
 cl_curl_maxspeed 300
 sv_curl_defaulturl "http://www.xonotic.com/contentdownload/getmap.php?file="
+set sv_curl_serverpackages_auto 0 "automatically add packs with *.serverpackage files to sv_curl_serverpackages"
 
 set sv_motd ""
 
@@ -1307,7 +1311,7 @@ alias _userbind_call "${$1}"
 alias +userbind "_userbind_call userbind${1}_press"
 alias -userbind "_userbind_call userbind${1}_release"
 
-seta menu_skin "default"
+seta menu_skin "luminos"
 set menu_slowmo 1
 seta menu_sounds 0 "enables menu sound effects. 1 enables click sounds, 2 also enables hover sounds"
 
@@ -1325,7 +1329,7 @@ con_notifyalign 0
 
 // hud variables
 set _hud_configure 0 "1 = configure the HUD"
-seta hud_configure_teamcolorforced 1 "1 = force display of team colors in configure mode"
+seta hud_configure_teamcolorforced 0 "1 = force display of team colors in configure mode"
 seta hud_configure_checkcollisions 1 "check for collisions against other panels when in hud configure mode"
 seta hud_configure_bg_minalpha 0.25 "minimum panel background alpha when in hud configure mode"
 seta hud_configure_grid_alpha 0.15 "alpha for visible grid when in configure mode"
@@ -1334,8 +1338,9 @@ seta sbar_info_pos 0 "Y-axis distance from lower right corner for engine info pr
 
 // hud cvar descriptions
 exec _hud_descriptions.cfg
-// exec the default skin config. remember, NO menu_restart in the deafault cfg (dp segfaults at startup otherwise)
-exec hud_default.cfg
+// exec the default skin config
+// please add any new cvars into the hud_save script in qcsrc/client/hud.qc for consistency
+exec hud_luminos.cfg
 
 // user preference cvars (i.e. shouldn't be adjusted by a skin config) 
 seta hud_panel_weapons_label 1 "1 = show number of weapon, 2 = show bound key of weapon"
@@ -1352,6 +1357,8 @@ seta hud_panel_weapons_ammo_full_nails 200 "show 100% of the status bar at this
 seta hud_panel_weapons_ammo_full_cells 80 "show 100% of the status bar at this ammo count"
 seta hud_panel_weapons_ammo_full_rockets 80 "show 100% of the status bar at this ammo count"
 seta hud_panel_weapons_ammo_full_fuel 100 "show 100% of the status bar at this ammo count"
+seta hud_panel_weapons_timeout "3" "panel disappears if you don't switch weapon for this amount of seconds"
+seta hud_panel_weapons_timeout_effect "1" "disappearance effect: 0) no effect; 1) panel moves out of screen; 2) panel fades out"
 
 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"
@@ -1363,12 +1370,15 @@ seta hud_panel_radar_rotation 0 "rotation mode: you set what points up. 0 = play
 seta hud_panel_radar_zoommode 0        "zoom mode: 0 = zoomed by default, 1 = zoomed when +zoom, 2 = always zoomed, 3 = always zoomed out"
 alias hud_panel_radar_rotate "toggle hud_panel_radar_rotation 0 1 2 3 4"
 
-seta hud_panel_engineinfo_framecounter_time 1 "time between framerate display updates, smaller values yield less accuracy"
+seta hud_panel_engineinfo_framecounter_time 0.1 "time between framerate display updates"
 seta hud_panel_engineinfo_framecounter_decimals 0 "amount of decimals to show"
 seta hud_panel_engineinfo_framecounter_exponentialmovingaverage 1 "use an averaging method for calculating fps instead of counting frametime like engine does"
 seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_new_weight 0.1 "weight of latest data point"
 seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_instantupdate_change_threshold 0.5 "threshold for fps change when to update instantly, to make big fps changes update faster"
 
+seta hud_showbinds 1   "the way to show the keys to press in HUD messages: 0 displays commands, 1 bound keys, 2 both"
+seta hud_showbinds_limit 2     "maximum number of bound keys to show for a command. 0 for unlimited"
+
 // scoreboard
 seta scoreboard_columns default
 seta scoreboard_border_thickness 1 "scoreboard border thickness"
@@ -1388,6 +1398,8 @@ seta scoreboard_fadeoutspeed 5 "speed at which scoreboard fades out, higher is f
 seta scoreboard_highlight 1 "enable highlighting for rows and columns in the scoreboard"
 seta scoreboard_highlight_alpha 0.10 "highlight alpha value (depends on hud_scoreboard_highlight 1)"
 seta scoreboard_highlight_alpha_self 0.25 "self highlight alpha value"
+seta scoreboard_offset_left 0.04 "how many pixels the scoreboard is offset from the left screen edge"
+seta scoreboard_offset_right 0.148 "how many pixels the scoreboard is offset from the right screen edge"
 
 // for menu server list (eventually make them have engine support?)
 seta menu_slist_showfull 1 "show servers even if they are full and have no slots to join"
@@ -1462,6 +1474,7 @@ sys_ticrate 0.0166667
 cl_netfps 60 // should match
 sv_gameplayfix_delayprojectiles 0
 sv_gameplayfix_q2airaccelerate 1
+sv_gameplayfix_stepmultipletimes 1
 
 // delay for "kill" to prevent abuse
 set g_balance_kill_delay 5
@@ -1500,8 +1513,8 @@ unalias _cdtrack
 cd remap $g_cdtracks_remaplist
 set sv_intermission_cdtrack ""
 
-set g_cdtracks_dontusebydefault ""
-set menu_cdtrack "ninesix"
+set g_cdtracks_dontusebydefault "rising-of-the-phoenix"
+set menu_cdtrack "rising-of-the-phoenix"
 
 // maxidle (in seconds): kick players idle for more than that amount of time
 set sv_maxidle 0
@@ -1514,7 +1527,7 @@ set capturelimit 0
 // hud: font size
 seta hud_fontsize 11
 seta hud_fontsize_spec 16
-seta scr_centersize 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 \"${*}\""
@@ -1911,3 +1924,17 @@ scr_conscroll_y -0.3
 
 // DP cannot properly detect this, so rather turn off the detection
 r_texture_dds_load_dxt1_noalpha 1
+
+// particles optimization
+r_drawparticles_nearclip_min 8
+r_drawparticles_nearclip_max 16
+
+// sv_cullentities_trace is 1, so the client doesn't have to
+sv_cullentities_trace 1
+r_cullentities_trace 0
+
+// less "lagging" of other players, but also less PL tolerant... let's try this
+sv_clmovement_inputtimeout 0.05
+
+// exact gloss looks better, e.g. on g-23
+r_shadow_glossexact 1
index 8f3739d..c06e994 100644 (file)
Binary files a/gfx/hud/default/ammo_bullets.tga and b/gfx/hud/default/ammo_bullets.tga differ
index 4850763..eda3e46 100644 (file)
Binary files a/gfx/hud/default/ammo_cells.tga and b/gfx/hud/default/ammo_cells.tga differ
index 7036279..2d3aef4 100644 (file)
Binary files a/gfx/hud/default/ammo_current_bg.tga and b/gfx/hud/default/ammo_current_bg.tga differ
index 4a3a2d5..3f3a891 100644 (file)
Binary files a/gfx/hud/default/ammo_fuel.tga and b/gfx/hud/default/ammo_fuel.tga differ
index 9b34ea7..a7bf03e 100644 (file)
Binary files a/gfx/hud/default/ammo_rockets.tga and b/gfx/hud/default/ammo_rockets.tga differ
index f62c715..5fe6469 100644 (file)
Binary files a/gfx/hud/default/ammo_shells.tga and b/gfx/hud/default/ammo_shells.tga differ
index f9e4701..b52445d 100644 (file)
Binary files a/gfx/hud/default/armor.tga and b/gfx/hud/default/armor.tga differ
diff --git a/gfx/hud/default/border.tga b/gfx/hud/default/border.tga
deleted file mode 100644 (file)
index 3b76811..0000000
Binary files a/gfx/hud/default/border.tga and /dev/null differ
diff --git a/gfx/hud/default/border_default.tga b/gfx/hud/default/border_default.tga
new file mode 100644 (file)
index 0000000..651f523
Binary files /dev/null and b/gfx/hud/default/border_default.tga differ
diff --git a/gfx/hud/default/dock.tga b/gfx/hud/default/dock.tga
deleted file mode 100644 (file)
index 3163382..0000000
Binary files a/gfx/hud/default/dock.tga and /dev/null differ
diff --git a/gfx/hud/default/dock_medium.tga b/gfx/hud/default/dock_medium.tga
new file mode 100644 (file)
index 0000000..5b2d01b
Binary files /dev/null and b/gfx/hud/default/dock_medium.tga differ
index 26e4086..d19db50 100644 (file)
Binary files a/gfx/hud/default/health.tga and b/gfx/hud/default/health.tga differ
index 04ada8c..2f993e0 100644 (file)
Binary files a/gfx/hud/default/nexball_carrying.tga and b/gfx/hud/default/nexball_carrying.tga differ
diff --git a/gfx/hud/default/notify_telefrag.tga b/gfx/hud/default/notify_telefrag.tga
new file mode 100644 (file)
index 0000000..279910f
Binary files /dev/null and b/gfx/hud/default/notify_telefrag.tga differ
index 99ed22b..6bf5288 100644 (file)
Binary files a/gfx/hud/default/race_newrecordserver.tga and b/gfx/hud/default/race_newrecordserver.tga differ
index 8dcf3aa..6c7916d 100644 (file)
Binary files a/gfx/hud/default/weapon_accuracy.tga and b/gfx/hud/default/weapon_accuracy.tga differ
index de4148c..ec1b4ad 100644 (file)
Binary files a/gfx/hud/default/weapon_ammo.tga and b/gfx/hud/default/weapon_ammo.tga differ
index 349274f..1a5b4fc 100644 (file)
Binary files a/gfx/hud/default/weapon_complainbubble.tga and b/gfx/hud/default/weapon_complainbubble.tga differ
index 688d805..b9c7c80 100644 (file)
Binary files a/gfx/hud/default/weapon_current_bg.tga and b/gfx/hud/default/weapon_current_bg.tga differ
index 7036279..2d3aef4 100644 (file)
Binary files a/gfx/hud/luminos/ammo_current_bg.tga and b/gfx/hud/luminos/ammo_current_bg.tga differ
diff --git a/gfx/hud/luminos/border.tga b/gfx/hud/luminos/border.tga
deleted file mode 100644 (file)
index 3b76811..0000000
Binary files a/gfx/hud/luminos/border.tga and /dev/null differ
diff --git a/gfx/hud/luminos/border_default.tga b/gfx/hud/luminos/border_default.tga
new file mode 100644 (file)
index 0000000..651f523
Binary files /dev/null and b/gfx/hud/luminos/border_default.tga differ
diff --git a/gfx/hud/luminos/dock.tga b/gfx/hud/luminos/dock.tga
deleted file mode 100644 (file)
index 3163382..0000000
Binary files a/gfx/hud/luminos/dock.tga and /dev/null differ
diff --git a/gfx/hud/luminos/dock_medium.tga b/gfx/hud/luminos/dock_medium.tga
new file mode 100644 (file)
index 0000000..5b2d01b
Binary files /dev/null and b/gfx/hud/luminos/dock_medium.tga differ
index 8dcf3aa..6c7916d 100644 (file)
Binary files a/gfx/hud/luminos/weapon_accuracy.tga and b/gfx/hud/luminos/weapon_accuracy.tga differ
index de4148c..ec1b4ad 100644 (file)
Binary files a/gfx/hud/luminos/weapon_ammo.tga and b/gfx/hud/luminos/weapon_ammo.tga differ
index 349274f..1a5b4fc 100644 (file)
Binary files a/gfx/hud/luminos/weapon_complainbubble.tga and b/gfx/hud/luminos/weapon_complainbubble.tga differ
index 688d805..b9c7c80 100644 (file)
Binary files a/gfx/hud/luminos/weapon_current_bg.tga and b/gfx/hud/luminos/weapon_current_bg.tga differ
diff --git a/gfx/hud/old/border.tga b/gfx/hud/old/border.tga
deleted file mode 100644 (file)
index a3056c9..0000000
Binary files a/gfx/hud/old/border.tga and /dev/null differ
diff --git a/gfx/hud/old/border_default.tga b/gfx/hud/old/border_default.tga
new file mode 100644 (file)
index 0000000..a3056c9
Binary files /dev/null and b/gfx/hud/old/border_default.tga differ
diff --git a/gfx/hud/old/dock.tga b/gfx/hud/old/dock.tga
deleted file mode 100644 (file)
index 2b28659..0000000
Binary files a/gfx/hud/old/dock.tga and /dev/null differ
diff --git a/gfx/hud/old/dock_medium.tga b/gfx/hud/old/dock_medium.tga
new file mode 100644 (file)
index 0000000..2b28659
Binary files /dev/null and b/gfx/hud/old/dock_medium.tga differ
diff --git a/gfx/hud/old/num_leading.tga b/gfx/hud/old/num_leading.tga
new file mode 100644 (file)
index 0000000..0629e49
Binary files /dev/null and b/gfx/hud/old/num_leading.tga differ
index fc031ce..2348be8 100644 (file)
Binary files a/gfx/hud/old/voteprogress_back.tga and b/gfx/hud/old/voteprogress_back.tga differ
index 9f3f614..574d5d7 100644 (file)
Binary files a/gfx/hud/old/voteprogress_prog.tga and b/gfx/hud/old/voteprogress_prog.tga differ
index a21fe6a..ffc90a2 100644 (file)
Binary files a/gfx/hud/old/voteprogress_voted.tga and b/gfx/hud/old/voteprogress_voted.tga differ
index 7f3a2af..8111427 100644 (file)
Binary files a/gfx/hud/old/weapon_current_bg.tga and b/gfx/hud/old/weapon_current_bg.tga differ
diff --git a/gfx/menu/luminos/background.tga b/gfx/menu/luminos/background.tga
new file mode 100644 (file)
index 0000000..67e31a5
Binary files /dev/null and b/gfx/menu/luminos/background.tga differ
diff --git a/gfx/menu/luminos/background_ingame.tga b/gfx/menu/luminos/background_ingame.tga
new file mode 100644 (file)
index 0000000..e2c977c
Binary files /dev/null and b/gfx/menu/luminos/background_ingame.tga differ
diff --git a/gfx/menu/luminos/background_ingame_l2.tga b/gfx/menu/luminos/background_ingame_l2.tga
new file mode 100644 (file)
index 0000000..f134814
Binary files /dev/null and b/gfx/menu/luminos/background_ingame_l2.tga differ
diff --git a/gfx/menu/luminos/background_l2.tga b/gfx/menu/luminos/background_l2.tga
new file mode 100644 (file)
index 0000000..f134814
Binary files /dev/null and b/gfx/menu/luminos/background_l2.tga differ
diff --git a/gfx/menu/luminos/bigbutton_c.tga b/gfx/menu/luminos/bigbutton_c.tga
new file mode 100644 (file)
index 0000000..8ef3976
Binary files /dev/null and b/gfx/menu/luminos/bigbutton_c.tga differ
diff --git a/gfx/menu/luminos/bigbutton_d.tga b/gfx/menu/luminos/bigbutton_d.tga
new file mode 100644 (file)
index 0000000..6d64cce
Binary files /dev/null and b/gfx/menu/luminos/bigbutton_d.tga differ
diff --git a/gfx/menu/luminos/bigbutton_f.tga b/gfx/menu/luminos/bigbutton_f.tga
new file mode 100644 (file)
index 0000000..5aa55da
Binary files /dev/null and b/gfx/menu/luminos/bigbutton_f.tga differ
diff --git a/gfx/menu/luminos/bigbutton_n.tga b/gfx/menu/luminos/bigbutton_n.tga
new file mode 100644 (file)
index 0000000..4ed2a2c
Binary files /dev/null and b/gfx/menu/luminos/bigbutton_n.tga differ
diff --git a/gfx/menu/luminos/bigbuttongray_c.tga b/gfx/menu/luminos/bigbuttongray_c.tga
new file mode 100644 (file)
index 0000000..7f2c537
Binary files /dev/null and b/gfx/menu/luminos/bigbuttongray_c.tga differ
diff --git a/gfx/menu/luminos/bigbuttongray_d.tga b/gfx/menu/luminos/bigbuttongray_d.tga
new file mode 100644 (file)
index 0000000..66cecc4
Binary files /dev/null and b/gfx/menu/luminos/bigbuttongray_d.tga differ
diff --git a/gfx/menu/luminos/bigbuttongray_f.tga b/gfx/menu/luminos/bigbuttongray_f.tga
new file mode 100644 (file)
index 0000000..2dd5d29
Binary files /dev/null and b/gfx/menu/luminos/bigbuttongray_f.tga differ
diff --git a/gfx/menu/luminos/bigbuttongray_n.tga b/gfx/menu/luminos/bigbuttongray_n.tga
new file mode 100644 (file)
index 0000000..2f701a4
Binary files /dev/null and b/gfx/menu/luminos/bigbuttongray_n.tga differ
diff --git a/gfx/menu/luminos/border.tga b/gfx/menu/luminos/border.tga
new file mode 100644 (file)
index 0000000..0be23bc
Binary files /dev/null and b/gfx/menu/luminos/border.tga differ
diff --git a/gfx/menu/luminos/button_c.tga b/gfx/menu/luminos/button_c.tga
new file mode 100644 (file)
index 0000000..5c431df
Binary files /dev/null and b/gfx/menu/luminos/button_c.tga differ
diff --git a/gfx/menu/luminos/button_d.tga b/gfx/menu/luminos/button_d.tga
new file mode 100644 (file)
index 0000000..5c880ac
Binary files /dev/null and b/gfx/menu/luminos/button_d.tga differ
diff --git a/gfx/menu/luminos/button_f.tga b/gfx/menu/luminos/button_f.tga
new file mode 100644 (file)
index 0000000..d522b17
Binary files /dev/null and b/gfx/menu/luminos/button_f.tga differ
diff --git a/gfx/menu/luminos/button_n.tga b/gfx/menu/luminos/button_n.tga
new file mode 100644 (file)
index 0000000..afa5f22
Binary files /dev/null and b/gfx/menu/luminos/button_n.tga differ
diff --git a/gfx/menu/luminos/buttongray_c.tga b/gfx/menu/luminos/buttongray_c.tga
new file mode 100644 (file)
index 0000000..a287b23
Binary files /dev/null and b/gfx/menu/luminos/buttongray_c.tga differ
diff --git a/gfx/menu/luminos/buttongray_d.tga b/gfx/menu/luminos/buttongray_d.tga
new file mode 100644 (file)
index 0000000..58d4d34
Binary files /dev/null and b/gfx/menu/luminos/buttongray_d.tga differ
diff --git a/gfx/menu/luminos/buttongray_f.tga b/gfx/menu/luminos/buttongray_f.tga
new file mode 100644 (file)
index 0000000..f269885
Binary files /dev/null and b/gfx/menu/luminos/buttongray_f.tga differ
diff --git a/gfx/menu/luminos/buttongray_n.tga b/gfx/menu/luminos/buttongray_n.tga
new file mode 100644 (file)
index 0000000..cf1b987
Binary files /dev/null and b/gfx/menu/luminos/buttongray_n.tga differ
diff --git a/gfx/menu/luminos/charmap.tga b/gfx/menu/luminos/charmap.tga
new file mode 100755 (executable)
index 0000000..d8ed1d5
Binary files /dev/null and b/gfx/menu/luminos/charmap.tga differ
diff --git a/gfx/menu/luminos/charmapbutton.tga b/gfx/menu/luminos/charmapbutton.tga
new file mode 100644 (file)
index 0000000..8826245
Binary files /dev/null and b/gfx/menu/luminos/charmapbutton.tga differ
diff --git a/gfx/menu/luminos/checkbox_c0.tga b/gfx/menu/luminos/checkbox_c0.tga
new file mode 100644 (file)
index 0000000..37dbf73
Binary files /dev/null and b/gfx/menu/luminos/checkbox_c0.tga differ
diff --git a/gfx/menu/luminos/checkbox_c1.tga b/gfx/menu/luminos/checkbox_c1.tga
new file mode 100644 (file)
index 0000000..37dbf73
Binary files /dev/null and b/gfx/menu/luminos/checkbox_c1.tga differ
diff --git a/gfx/menu/luminos/checkbox_d0.tga b/gfx/menu/luminos/checkbox_d0.tga
new file mode 100644 (file)
index 0000000..4f0b001
Binary files /dev/null and b/gfx/menu/luminos/checkbox_d0.tga differ
diff --git a/gfx/menu/luminos/checkbox_d1.tga b/gfx/menu/luminos/checkbox_d1.tga
new file mode 100644 (file)
index 0000000..a1dad7e
Binary files /dev/null and b/gfx/menu/luminos/checkbox_d1.tga differ
diff --git a/gfx/menu/luminos/checkbox_f0.tga b/gfx/menu/luminos/checkbox_f0.tga
new file mode 100644 (file)
index 0000000..5f19b3c
Binary files /dev/null and b/gfx/menu/luminos/checkbox_f0.tga differ
diff --git a/gfx/menu/luminos/checkbox_f1.tga b/gfx/menu/luminos/checkbox_f1.tga
new file mode 100644 (file)
index 0000000..71aad7a
Binary files /dev/null and b/gfx/menu/luminos/checkbox_f1.tga differ
diff --git a/gfx/menu/luminos/checkbox_n0.tga b/gfx/menu/luminos/checkbox_n0.tga
new file mode 100644 (file)
index 0000000..c062f31
Binary files /dev/null and b/gfx/menu/luminos/checkbox_n0.tga differ
diff --git a/gfx/menu/luminos/checkbox_n1.tga b/gfx/menu/luminos/checkbox_n1.tga
new file mode 100644 (file)
index 0000000..37dbf73
Binary files /dev/null and b/gfx/menu/luminos/checkbox_n1.tga differ
diff --git a/gfx/menu/luminos/checkmark.tga b/gfx/menu/luminos/checkmark.tga
new file mode 100644 (file)
index 0000000..7c22294
Binary files /dev/null and b/gfx/menu/luminos/checkmark.tga differ
diff --git a/gfx/menu/luminos/closebutton_c.tga b/gfx/menu/luminos/closebutton_c.tga
new file mode 100644 (file)
index 0000000..3de1ccb
Binary files /dev/null and b/gfx/menu/luminos/closebutton_c.tga differ
diff --git a/gfx/menu/luminos/closebutton_f.tga b/gfx/menu/luminos/closebutton_f.tga
new file mode 100644 (file)
index 0000000..be0939c
Binary files /dev/null and b/gfx/menu/luminos/closebutton_f.tga differ
diff --git a/gfx/menu/luminos/closebutton_n.tga b/gfx/menu/luminos/closebutton_n.tga
new file mode 100644 (file)
index 0000000..57d76c4
Binary files /dev/null and b/gfx/menu/luminos/closebutton_n.tga differ
diff --git a/gfx/menu/luminos/color.tga b/gfx/menu/luminos/color.tga
new file mode 100644 (file)
index 0000000..3ce25a5
Binary files /dev/null and b/gfx/menu/luminos/color.tga differ
diff --git a/gfx/menu/luminos/colorbutton_c.tga b/gfx/menu/luminos/colorbutton_c.tga
new file mode 100644 (file)
index 0000000..586f9b4
Binary files /dev/null and b/gfx/menu/luminos/colorbutton_c.tga differ
diff --git a/gfx/menu/luminos/colorbutton_f.tga b/gfx/menu/luminos/colorbutton_f.tga
new file mode 100644 (file)
index 0000000..57d7d93
Binary files /dev/null and b/gfx/menu/luminos/colorbutton_f.tga differ
diff --git a/gfx/menu/luminos/colorbutton_n.tga b/gfx/menu/luminos/colorbutton_n.tga
new file mode 100755 (executable)
index 0000000..110faa1
Binary files /dev/null and b/gfx/menu/luminos/colorbutton_n.tga differ
diff --git a/gfx/menu/luminos/colorpicker.tga b/gfx/menu/luminos/colorpicker.tga
new file mode 100755 (executable)
index 0000000..6f9845b
Binary files /dev/null and b/gfx/menu/luminos/colorpicker.tga differ
diff --git a/gfx/menu/luminos/colorpicker_m.tga b/gfx/menu/luminos/colorpicker_m.tga
new file mode 100755 (executable)
index 0000000..79b0e83
Binary files /dev/null and b/gfx/menu/luminos/colorpicker_m.tga differ
diff --git a/gfx/menu/luminos/colorpicker_selected.tga b/gfx/menu/luminos/colorpicker_selected.tga
new file mode 100644 (file)
index 0000000..605e932
Binary files /dev/null and b/gfx/menu/luminos/colorpicker_selected.tga differ
diff --git a/gfx/menu/luminos/crosshairbutton_c.tga b/gfx/menu/luminos/crosshairbutton_c.tga
new file mode 100644 (file)
index 0000000..586f9b4
Binary files /dev/null and b/gfx/menu/luminos/crosshairbutton_c.tga differ
diff --git a/gfx/menu/luminos/crosshairbutton_d.tga b/gfx/menu/luminos/crosshairbutton_d.tga
new file mode 100755 (executable)
index 0000000..cba9d88
Binary files /dev/null and b/gfx/menu/luminos/crosshairbutton_d.tga differ
diff --git a/gfx/menu/luminos/crosshairbutton_f.tga b/gfx/menu/luminos/crosshairbutton_f.tga
new file mode 100644 (file)
index 0000000..57d7d93
Binary files /dev/null and b/gfx/menu/luminos/crosshairbutton_f.tga differ
diff --git a/gfx/menu/luminos/crosshairbutton_n.tga b/gfx/menu/luminos/crosshairbutton_n.tga
new file mode 100755 (executable)
index 0000000..ac94535
Binary files /dev/null and b/gfx/menu/luminos/crosshairbutton_n.tga differ
diff --git a/gfx/menu/luminos/cursor.tga b/gfx/menu/luminos/cursor.tga
new file mode 100644 (file)
index 0000000..130e282
Binary files /dev/null and b/gfx/menu/luminos/cursor.tga differ
diff --git a/gfx/menu/luminos/cursor_move.tga b/gfx/menu/luminos/cursor_move.tga
new file mode 100644 (file)
index 0000000..bd86328
Binary files /dev/null and b/gfx/menu/luminos/cursor_move.tga differ
diff --git a/gfx/menu/luminos/cursor_resize.tga b/gfx/menu/luminos/cursor_resize.tga
new file mode 100644 (file)
index 0000000..8dbabe1
Binary files /dev/null and b/gfx/menu/luminos/cursor_resize.tga differ
diff --git a/gfx/menu/luminos/cursor_resize2.tga b/gfx/menu/luminos/cursor_resize2.tga
new file mode 100644 (file)
index 0000000..bcd8c28
Binary files /dev/null and b/gfx/menu/luminos/cursor_resize2.tga differ
diff --git a/gfx/menu/luminos/inputbox_f.tga b/gfx/menu/luminos/inputbox_f.tga
new file mode 100644 (file)
index 0000000..d783eb2
Binary files /dev/null and b/gfx/menu/luminos/inputbox_f.tga differ
diff --git a/gfx/menu/luminos/inputbox_n.tga b/gfx/menu/luminos/inputbox_n.tga
new file mode 100644 (file)
index 0000000..9ce3260
Binary files /dev/null and b/gfx/menu/luminos/inputbox_n.tga differ
diff --git a/gfx/menu/luminos/radiobutton_c0.tga b/gfx/menu/luminos/radiobutton_c0.tga
new file mode 100644 (file)
index 0000000..06296d6
Binary files /dev/null and b/gfx/menu/luminos/radiobutton_c0.tga differ
diff --git a/gfx/menu/luminos/radiobutton_c1.tga b/gfx/menu/luminos/radiobutton_c1.tga
new file mode 100644 (file)
index 0000000..06296d6
Binary files /dev/null and b/gfx/menu/luminos/radiobutton_c1.tga differ
diff --git a/gfx/menu/luminos/radiobutton_d0.tga b/gfx/menu/luminos/radiobutton_d0.tga
new file mode 100644 (file)
index 0000000..b11e09d
Binary files /dev/null and b/gfx/menu/luminos/radiobutton_d0.tga differ
diff --git a/gfx/menu/luminos/radiobutton_d1.tga b/gfx/menu/luminos/radiobutton_d1.tga
new file mode 100644 (file)
index 0000000..757bb2c
Binary files /dev/null and b/gfx/menu/luminos/radiobutton_d1.tga differ
diff --git a/gfx/menu/luminos/radiobutton_f0.tga b/gfx/menu/luminos/radiobutton_f0.tga
new file mode 100644 (file)
index 0000000..83985f8
Binary files /dev/null and b/gfx/menu/luminos/radiobutton_f0.tga differ
diff --git a/gfx/menu/luminos/radiobutton_f1.tga b/gfx/menu/luminos/radiobutton_f1.tga
new file mode 100644 (file)
index 0000000..8b25bef
Binary files /dev/null and b/gfx/menu/luminos/radiobutton_f1.tga differ
diff --git a/gfx/menu/luminos/radiobutton_n0.tga b/gfx/menu/luminos/radiobutton_n0.tga
new file mode 100644 (file)
index 0000000..ee87298
Binary files /dev/null and b/gfx/menu/luminos/radiobutton_n0.tga differ
diff --git a/gfx/menu/luminos/radiobutton_n1.tga b/gfx/menu/luminos/radiobutton_n1.tga
new file mode 100644 (file)
index 0000000..06296d6
Binary files /dev/null and b/gfx/menu/luminos/radiobutton_n1.tga differ
diff --git a/gfx/menu/luminos/scrollbar_c.tga b/gfx/menu/luminos/scrollbar_c.tga
new file mode 100644 (file)
index 0000000..043f5dc
Binary files /dev/null and b/gfx/menu/luminos/scrollbar_c.tga differ
diff --git a/gfx/menu/luminos/scrollbar_f.tga b/gfx/menu/luminos/scrollbar_f.tga
new file mode 100644 (file)
index 0000000..5115c81
Binary files /dev/null and b/gfx/menu/luminos/scrollbar_f.tga differ
diff --git a/gfx/menu/luminos/scrollbar_n.tga b/gfx/menu/luminos/scrollbar_n.tga
new file mode 100644 (file)
index 0000000..62f950e
Binary files /dev/null and b/gfx/menu/luminos/scrollbar_n.tga differ
diff --git a/gfx/menu/luminos/scrollbar_s.tga b/gfx/menu/luminos/scrollbar_s.tga
new file mode 100644 (file)
index 0000000..dcbbd41
Binary files /dev/null and b/gfx/menu/luminos/scrollbar_s.tga differ
diff --git a/gfx/menu/luminos/skinpreview.jpg b/gfx/menu/luminos/skinpreview.jpg
new file mode 100644 (file)
index 0000000..9cc5343
Binary files /dev/null and b/gfx/menu/luminos/skinpreview.jpg differ
diff --git a/gfx/menu/luminos/skinvalues.txt b/gfx/menu/luminos/skinvalues.txt
new file mode 100755 (executable)
index 0000000..9cb2b59
--- /dev/null
@@ -0,0 +1,224 @@
+title Luminos
+author sev
+
+// Colors: 'Red Green Blue'
+// Suffixes: Clicked (_c), Disabled (_d), Focused (_f), Normal (_n)
+
+// Background layer scaling:
+//   Crop (c), Letterbox (l), Height (h), Width (w), Stretch (s)
+// Background layer positioning:
+//   Top Left (7), Top Center (8) Top Right (9)
+//   Middle Left (4), Middle Center (5) Middle Right (6)
+//   Bottom Left (1), Bottom Center (2) Bottom Right (3)
+// ALIGN_BACKGROUND(_INGAME) spspsp, s=Scale p=Position
+
+//------------------------------------------------------------------------------
+// Structure (e.g. positions, sizes, margins)
+//------------------------------------------------------------------------------
+// item: color picker
+//   uses "colorpicker" images
+MARGIN_COLORPICKER              '0 0 0'
+
+// item: dialog
+//   uses "border" images
+//   uses "closebutton" images
+MARGIN_TOP                      8
+MARGIN_BOTTOM                   8
+MARGIN_LEFT                     8
+MARGIN_RIGHT                    8
+MARGIN_COLUMNS                  4
+MARGIN_ROWS                     4
+HEIGHT_DIALOGBORDER             1
+
+// font sizes (used for everything)
+FONTSIZE_NORMAL                 12
+HEIGHT_NORMAL                   1.5
+FONTSIZE_TITLE                  16
+HEIGHT_TITLE                    1.5
+HEIGHT_ZOOMEDTITLE              -1
+
+// general 
+//   uses "background" images
+//   uses "background_ingame" images
+ALIGN_BACKGROUND                c5h5
+ALIGN_BACKGROUND_INGAME         c5h5
+ALPHA_BACKGROUND_INGAME         1
+ALPHA_DISABLED                  0.2
+ALPHA_BEHIND                    0.5
+ALPHA_TEXT                      0.7
+
+// mouse
+//   uses "cursor" images
+SIZE_CURSOR                     '32 32 0'
+OFFSET_CURSOR                   '0.25 0.125 0'
+ALPHA_CURSOR_INTRO              0
+
+// nexposee positions of windows (they are the scale transformation
+// centers, NOT the actual positions of the windows!)
+POSITION_DIALOG_MULTIPLAYER     '0.9 0.4 0'
+POSITION_DIALOG_SINGLEPLAYER    '0.15 0.4 0'
+POSITION_DIALOG_SETTINGS        '0.5 1 0'
+POSITION_DIALOG_CREDITS         '-0.05 1.2 0'
+POSITION_DIALOG_QUIT            '1.05 1.2 0'
+
+// tooltips
+//   uses "tooltip" images
+MARGIN_TOOLTIP                  '8 8 0'
+BORDER_TOOLTIP                  '16 16 0'
+FONTSIZE_TOOLTIP                12
+ALPHA_TOOLTIP                   0.7
+WIDTH_TOOLTIP                   0.3
+AVOID_TOOLTIP                   '8 8 0'
+
+//------------------------------------------------------------------------------
+// Colors (e.g. font colors, field colors)
+//------------------------------------------------------------------------------
+// item: campaign
+ALPHA_CAMPAIGN_SELECTABLE       0.8
+COLOR_CAMPAIGN_SELECTABLE       '1 1 1'
+ALPHA_CAMPAIGN_CURRENT          1
+COLOR_CAMPAIGN_CURRENT          '1 1 1'
+ALPHA_CAMPAIGN_FUTURE           0.2
+COLOR_CAMPAIGN_FUTURE           '1 1 1'
+ALPHA_CAMPAIGN_DESCRIPTION      0.7
+
+// item: credits list
+COLOR_CREDITS_TITLE             '1 0.4375 0'
+ALPHA_CREDITS_TITLE             1
+COLOR_CREDITS_FUNCTION          '0 0.25 0.5'
+ALPHA_CREDITS_FUNCTION          1
+COLOR_CREDITS_PERSON            '0.6875 0.84375 1'
+ALPHA_CREDITS_PERSON            1
+ROWS_CREDITS                    20
+WIDTH_CREDITS                   0.5
+
+// item: cvar list
+ALPHA_CVARLIST_SAVED            1
+ALPHA_CVARLIST_TEMPORARY        0.7    
+COLOR_CVARLIST_CHANGED          '1 0 0' 
+COLOR_CVARLIST_REVERTBUTTON     '1 0 0'
+COLOR_CVARLIST_UNCHANGED        '1 1 1'
+
+// item: list box
+COLOR_LISTBOX_SELECTED          '1 0.4375 0'
+ALPHA_LISTBOX_SELECTED          1
+COLOR_LISTBOX_WAITING           '1 1 1'
+ALPHA_LISTBOX_WAITING           0.5
+
+// item: map list
+COLOR_MAPLIST_TITLE             '1 1 1'
+COLOR_MAPLIST_AUTHOR            '0.6875 0.84375 1'
+COLOR_MAPLIST_INCLUDEDBG        '0 0.1875 0.375'
+ALPHA_MAPLIST_INCLUDEDFG        1
+ALPHA_MAPLIST_INCLUDEDBG        0.375
+ALPHA_MAPLIST_NOTINCLUDEDFG     0.25
+
+// item: nexposee
+ALPHAS_MAINMENU                 '0.8 0.9 1'
+
+// item: player model
+COLOR_MODELTITLE                '1 1 1'
+ALPHA_MODELTITLE                1
+
+// item: server info
+COLOR_SERVERINFO_NAME           '1 1 1'
+COLOR_SERVERINFO_IP             '1 0.4375 0'
+
+// item: server list
+ALPHA_SERVERLIST_FULL           0.4
+ALPHA_SERVERLIST_EMPTY          0.7
+COLOR_SERVERLIST_LOWPING        '0 1 0'
+COLOR_SERVERLIST_MEDPING        '1 0.75 0'
+COLOR_SERVERLIST_HIGHPING       '1 0 0'
+ALPHA_SERVERLIST_HIGHPING       0.4
+ALPHA_SERVERLIST_FAVORITE       0.8
+COLOR_SERVERLIST_FAVORITE       '1 1 1'
+
+// item: skin list
+COLOR_SKINLIST_TITLE            '1 1 1'
+COLOR_SKINLIST_AUTHOR           '0.6875 0.84375 1'
+
+//------------------------------------------------------------------------------
+// Images (colors multiplied to images)
+//------------------------------------------------------------------------------
+// item: button
+//   uses "button" images
+//   uses "buttongray" images
+//   uses "bigbutton" images
+//   uses "bigbuttongray" images
+COLOR_BUTTON_N                  '1 1 1'
+COLOR_BUTTON_C                  '1 1 1'
+COLOR_BUTTON_F                  '1 1 1'
+COLOR_BUTTON_D                  '1 1 1'
+
+// item: checkbox
+//   uses "checkbox" images
+COLOR_CHECKBOX_N                '1 1 1'
+COLOR_CHECKBOX_C                '1 1 1'
+COLOR_CHECKBOX_F                '1 1 1'
+COLOR_CHECKBOX_D                '1 1 1'
+
+// item: crosshair button
+//   uses "crosshairbutton" images
+
+// dialog background colors
+//   uses "border" images
+COLOR_DIALOG_MULTIPLAYER        '1 1 1'
+COLOR_DIALOG_SETTINGS           '1 1 1'
+COLOR_DIALOG_TEAMSELECT         '1 1 1'
+COLOR_DIALOG_QUIT               '1 1 1'
+COLOR_DIALOG_ADVANCED           '1 1 1'
+COLOR_DIALOG_MUTATORS           '1 1 1'
+COLOR_DIALOG_MAPINFO            '1 1 1'
+COLOR_DIALOG_USERBIND           '1 1 1'
+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_SERVERINFO         '1 1 1'
+COLOR_DIALOG_CVARS              '1 0 0'
+
+// item: input box
+//   uses "inputbox" images
+COLOR_INPUTBOX_N                '1 1 1'
+COLOR_INPUTBOX_F                '1 1 1'
+MARGIN_INPUTBOX_CHARS           1
+
+// item: key grabber
+COLOR_KEYGRABBER_TITLES         '1 1 1'
+ALPHA_KEYGRABBER_TITLES         1
+COLOR_KEYGRABBER_KEYS           '1 1 1'
+ALPHA_KEYGRABBER_KEYS           0.7
+
+// item: player color button
+//   uses "colorbutton" images
+//   uses "color" images
+
+// item: player name editor
+//   uses "charmap" images
+//   uses "charmapbutton" images
+
+// item: radio button
+//   uses "radiobutton" images
+COLOR_RADIOBUTTON_N             '1 1 1'
+COLOR_RADIOBUTTON_C             '1 1 1'
+COLOR_RADIOBUTTON_F             '1 1 1'
+COLOR_RADIOBUTTON_D             '1 1 1'
+
+// item: scrollbar
+//   uses "scrollbar" images
+COLOR_SCROLLBAR_N               '1 1 1'
+COLOR_SCROLLBAR_C               '1 1 1'
+COLOR_SCROLLBAR_F               '1 1 1'
+COLOR_SCROLLBAR_S               '1 1 1'
+WIDTH_SCROLLBAR                 16
+
+// item: slider
+//   uses "slider" images
+COLOR_SLIDER_N                  '1 1 1'
+COLOR_SLIDER_C                  '1 1 1'
+COLOR_SLIDER_F                  '1 1 1'
+COLOR_SLIDER_D                  '1 1 1'
+COLOR_SLIDER_S                  '1 1 1'
+WIDTH_SLIDERTEXT                0.333333333333
+TOLERANCE_SLIDER                '0.2 2 0'
diff --git a/gfx/menu/luminos/slider_c.tga b/gfx/menu/luminos/slider_c.tga
new file mode 100644 (file)
index 0000000..fe43eb9
Binary files /dev/null and b/gfx/menu/luminos/slider_c.tga differ
diff --git a/gfx/menu/luminos/slider_d.tga b/gfx/menu/luminos/slider_d.tga
new file mode 100644 (file)
index 0000000..aaa80f0
Binary files /dev/null and b/gfx/menu/luminos/slider_d.tga differ
diff --git a/gfx/menu/luminos/slider_f.tga b/gfx/menu/luminos/slider_f.tga
new file mode 100644 (file)
index 0000000..3dea585
Binary files /dev/null and b/gfx/menu/luminos/slider_f.tga differ
diff --git a/gfx/menu/luminos/slider_n.tga b/gfx/menu/luminos/slider_n.tga
new file mode 100644 (file)
index 0000000..e270201
Binary files /dev/null and b/gfx/menu/luminos/slider_n.tga differ
diff --git a/gfx/menu/luminos/slider_s.tga b/gfx/menu/luminos/slider_s.tga
new file mode 100644 (file)
index 0000000..f097972
Binary files /dev/null and b/gfx/menu/luminos/slider_s.tga differ
diff --git a/gfx/menu/luminos/tooltip.tga b/gfx/menu/luminos/tooltip.tga
new file mode 100644 (file)
index 0000000..d73d099
Binary files /dev/null and b/gfx/menu/luminos/tooltip.tga differ
index 2974c1d..5f26183 100644 (file)
Binary files a/gfx/scoreboard/accuracy_bg.tga and b/gfx/scoreboard/accuracy_bg.tga differ
index 0e2a31c..549eb50 100644 (file)
Binary files a/gfx/scoreboard/player_ready.tga and b/gfx/scoreboard/player_ready.tga differ
index 645457d..a09afe1 100644 (file)
Binary files a/gfx/scoreboard/playercolor_base.tga and b/gfx/scoreboard/playercolor_base.tga differ
index 608f96f..7153181 100644 (file)
Binary files a/gfx/scoreboard/playercolor_pants.tga and b/gfx/scoreboard/playercolor_pants.tga differ
index 61ad4da..316bbd8 100644 (file)
Binary files a/gfx/scoreboard/playercolor_shirt.tga and b/gfx/scoreboard/playercolor_shirt.tga differ
index 1d9ea76..6f71136 100644 (file)
Binary files a/gfx/scoreboard/scoreboard_bg.tga and b/gfx/scoreboard/scoreboard_bg.tga differ
index e43040f..04147bc 100644 (file)
Binary files a/gfx/scoreboard/scoreboard_tableheader.tga and b/gfx/scoreboard/scoreboard_tableheader.tga differ
diff --git a/hud_default.cfg b/hud_default.cfg
deleted file mode 100644 (file)
index 34fed7a..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-seta hud_skin "luminos"
-seta hud_panel_bg "border"
-seta hud_panel_bg_color "0.875 0.375 0"
-seta hud_panel_bg_color_team "1"
-seta hud_panel_bg_alpha "1"
-seta hud_panel_bg_border "6"
-seta hud_panel_bg_padding "2"
-seta hud_panel_fg_alpha "1"
-
-seta hud_dock "dock"
-seta hud_dock_color "0 0.1875 0.4375"
-seta hud_dock_color_team "0.600000"
-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 "11 0 9 2 10 14 12 6 3 13 4 8 7 1 5 "
-
-seta hud_configure_grid "1"
-seta hud_configure_grid_xsize "0.005000"
-seta hud_configure_grid_ysize "0.005000"
-
-seta hud_panel_weapons 1
-seta hud_panel_weapons_pos "0.915000 0.085000"
-seta hud_panel_weapons_size "0.060000 0.635000"
-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_ammo 1
-seta hud_panel_ammo_pos "0.190000 0.925000"
-seta hud_panel_ammo_size "0.095000 0.060000"
-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 "1"
-seta hud_panel_ammo_iconalign "0"
-
-seta hud_panel_powerups 1
-seta hud_panel_powerups_pos "0.365000 0.015000"
-seta hud_panel_powerups_size "0.262500 0.048047"
-seta hud_panel_powerups_bg ""
-seta hud_panel_powerups_bg_color ""
-seta hud_panel_powerups_bg_color_team "1"
-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_healtharmor 1
-seta hud_panel_healtharmor_pos "0.305000 0.925000"
-seta hud_panel_healtharmor_size "0.315000 0.060000"
-seta hud_panel_healtharmor_bg ""
-seta hud_panel_healtharmor_bg_color ""
-seta hud_panel_healtharmor_bg_color_team "1"
-seta hud_panel_healtharmor_bg_alpha "1"
-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_notify 1
-seta hud_panel_notify_pos "0.700000 0.740000"
-seta hud_panel_notify_size "0.280000 0.180000"
-seta hud_panel_notify_bg ""
-seta hud_panel_notify_bg_color ""
-seta hud_panel_notify_bg_color_team ""
-seta hud_panel_notify_bg_alpha "0"
-seta hud_panel_notify_bg_border ""
-seta hud_panel_notify_bg_padding ""
-seta hud_panel_notify_flip "0"
-seta hud_panel_notify_print "0"
-
-seta hud_panel_timer 1
-seta hud_panel_timer_pos "0.880000 0.012070"
-seta hud_panel_timer_size "0.100000 0.032520"
-seta hud_panel_timer_bg ""
-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.025000 0.025000"
-seta hud_panel_radar_size "0.180000 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.025000 0.925000"
-seta hud_panel_score_size "0.145000 0.060000"
-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.355000 0.205000"
-seta hud_panel_racetimer_size "0.280000 0.093333"
-seta hud_panel_racetimer_bg ""
-seta hud_panel_racetimer_bg_color ""
-seta hud_panel_racetimer_bg_color_team ""
-seta hud_panel_racetimer_bg_alpha "0"
-seta hud_panel_racetimer_bg_border ""
-seta hud_panel_racetimer_bg_padding ""
-
-seta hud_panel_vote 1
-seta hud_panel_vote_pos "0.025000 0.660000"
-seta hud_panel_vote_size "0.264218 0.102462"
-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.750000"
-
-seta hud_panel_modicons 1
-seta hud_panel_modicons_pos "0.040000 0.270000"
-seta hud_panel_modicons_size "0.084766 0.199903"
-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.545000"
-seta hud_panel_pressedkeys_size "0.177656 0.120531"
-seta hud_panel_pressedkeys_bg ""
-seta hud_panel_pressedkeys_bg_color ""
-seta hud_panel_pressedkeys_bg_color_team "1"
-seta hud_panel_pressedkeys_bg_alpha "0"
-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.775000"
-seta hud_panel_chat_size "0.627968 0.112696"
-seta hud_panel_chat_bg ""
-seta hud_panel_chat_bg_color ""
-seta hud_panel_chat_bg_color_team ""
-seta hud_panel_chat_bg_alpha "0"
-seta hud_panel_chat_bg_border ""
-seta hud_panel_chat_bg_padding ""
-
-seta hud_panel_engineinfo 1
-seta hud_panel_engineinfo_pos "0.860000 0.954667"
-seta hud_panel_engineinfo_size "0.125000 0.035000"
-seta hud_panel_engineinfo_bg ""
-seta hud_panel_engineinfo_bg_color ""
-seta hud_panel_engineinfo_bg_color_team ""
-seta hud_panel_engineinfo_bg_alpha "0"
-seta hud_panel_engineinfo_bg_border ""
-seta hud_panel_engineinfo_bg_padding ""
-
-seta hud_panel_infomessages 1
-seta hud_panel_infomessages_pos "0.340000 0.350000"
-seta hud_panel_infomessages_size "0.320000 0.085000"
-seta hud_panel_infomessages_bg ""
-seta hud_panel_infomessages_bg_color ""
-seta hud_panel_infomessages_bg_color_team ""
-seta hud_panel_infomessages_bg_alpha "0"
-seta hud_panel_infomessages_bg_border ""
-seta hud_panel_infomessages_bg_padding ""
diff --git a/hud_luminos.cfg b/hud_luminos.cfg
new file mode 100644 (file)
index 0000000..5660da4
--- /dev/null
@@ -0,0 +1,205 @@
+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_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_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_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_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_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 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_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 1
+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
diff --git a/hud_luminos_default.cfg b/hud_luminos_default.cfg
deleted file mode 100644 (file)
index 8d1436a..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-seta hud_skin "luminos"
-seta hud_panel_bg "border"
-seta hud_panel_bg_color "0.875 0.375 0"
-seta hud_panel_bg_color_team "1"
-seta hud_panel_bg_alpha "1"
-seta hud_panel_bg_border "6"
-seta hud_panel_bg_padding "2"
-seta hud_panel_fg_alpha "1"
-
-seta hud_dock "dock"
-seta hud_dock_color "0 0.1875 0.4375"
-seta hud_dock_color_team "0.600000"
-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 "11 0 9 2 10 14 12 6 3 13 4 8 7 1 5 "
-
-seta hud_configure_grid "1"
-seta hud_configure_grid_xsize "0.005000"
-seta hud_configure_grid_ysize "0.005000"
-
-seta hud_panel_weapons 1
-seta hud_panel_weapons_pos "0.915000 0.085000"
-seta hud_panel_weapons_size "0.060000 0.635000"
-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_ammo 1
-seta hud_panel_ammo_pos "0.190000 0.925000"
-seta hud_panel_ammo_size "0.095000 0.060000"
-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 "1"
-seta hud_panel_ammo_iconalign "0"
-
-seta hud_panel_powerups 1
-seta hud_panel_powerups_pos "0.365000 0.015000"
-seta hud_panel_powerups_size "0.262500 0.048047"
-seta hud_panel_powerups_bg ""
-seta hud_panel_powerups_bg_color ""
-seta hud_panel_powerups_bg_color_team "1"
-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_healtharmor 1
-seta hud_panel_healtharmor_pos "0.305000 0.925000"
-seta hud_panel_healtharmor_size "0.315000 0.060000"
-seta hud_panel_healtharmor_bg ""
-seta hud_panel_healtharmor_bg_color ""
-seta hud_panel_healtharmor_bg_color_team "1"
-seta hud_panel_healtharmor_bg_alpha "1"
-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_notify 1
-seta hud_panel_notify_pos "0.700000 0.740000"
-seta hud_panel_notify_size "0.280000 0.180000"
-seta hud_panel_notify_bg ""
-seta hud_panel_notify_bg_color ""
-seta hud_panel_notify_bg_color_team ""
-seta hud_panel_notify_bg_alpha "0"
-seta hud_panel_notify_bg_border ""
-seta hud_panel_notify_bg_padding ""
-seta hud_panel_notify_flip "0"
-seta hud_panel_notify_print "0"
-
-seta hud_panel_timer 1
-seta hud_panel_timer_pos "0.880000 0.012070"
-seta hud_panel_timer_size "0.100000 0.032520"
-seta hud_panel_timer_bg ""
-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.025000 0.025000"
-seta hud_panel_radar_size "0.180000 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.025000 0.925000"
-seta hud_panel_score_size "0.145000 0.060000"
-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.355000 0.205000"
-seta hud_panel_racetimer_size "0.280000 0.093333"
-seta hud_panel_racetimer_bg ""
-seta hud_panel_racetimer_bg_color ""
-seta hud_panel_racetimer_bg_color_team ""
-seta hud_panel_racetimer_bg_alpha "0"
-seta hud_panel_racetimer_bg_border ""
-seta hud_panel_racetimer_bg_padding ""
-
-seta hud_panel_vote 1
-seta hud_panel_vote_pos "0.025000 0.660000"
-seta hud_panel_vote_size "0.264218 0.102462"
-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.750000"
-
-seta hud_panel_modicons 1
-seta hud_panel_modicons_pos "0.040000 0.270000"
-seta hud_panel_modicons_size "0.084766 0.199903"
-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.545000"
-seta hud_panel_pressedkeys_size "0.177656 0.120531"
-seta hud_panel_pressedkeys_bg ""
-seta hud_panel_pressedkeys_bg_color ""
-seta hud_panel_pressedkeys_bg_color_team "1"
-seta hud_panel_pressedkeys_bg_alpha "0"
-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.775000"
-seta hud_panel_chat_size "0.627968 0.112696"
-seta hud_panel_chat_bg ""
-seta hud_panel_chat_bg_color ""
-seta hud_panel_chat_bg_color_team ""
-seta hud_panel_chat_bg_alpha "0"
-seta hud_panel_chat_bg_border ""
-seta hud_panel_chat_bg_padding ""
-
-seta hud_panel_engineinfo 1
-seta hud_panel_engineinfo_pos "0.860000 0.954667"
-seta hud_panel_engineinfo_size "0.125000 0.035000"
-seta hud_panel_engineinfo_bg ""
-seta hud_panel_engineinfo_bg_color ""
-seta hud_panel_engineinfo_bg_color_team ""
-seta hud_panel_engineinfo_bg_alpha "0"
-seta hud_panel_engineinfo_bg_border ""
-seta hud_panel_engineinfo_bg_padding ""
-
-seta hud_panel_infomessages 1
-seta hud_panel_infomessages_pos "0.340000 0.350000"
-seta hud_panel_infomessages_size "0.320000 0.085000"
-seta hud_panel_infomessages_bg ""
-seta hud_panel_infomessages_bg_color ""
-seta hud_panel_infomessages_bg_color_team ""
-seta hud_panel_infomessages_bg_alpha "0"
-seta hud_panel_infomessages_bg_border ""
-seta hud_panel_infomessages_bg_padding ""
-
-menu_restart
diff --git a/hud_nexuiz.cfg b/hud_nexuiz.cfg
new file mode 100644 (file)
index 0000000..93e8c99
--- /dev/null
@@ -0,0 +1,205 @@
+seta hud_skin "old"
+seta hud_panel_bg "border_default"
+seta hud_panel_bg_color "0.299327 1 0.81275"
+seta hud_panel_bg_color_team "0"
+seta hud_panel_bg_alpha "0.700000"
+seta hud_panel_bg_border "8"
+seta hud_panel_bg_padding "0"
+seta hud_panel_fg_alpha "1"
+
+seta hud_dock "dock"
+seta hud_dock_color "0 0.697965 0.418232"
+seta hud_dock_color_team "0.700000"
+seta hud_dock_alpha "0.700000"
+
+seta hud_progressbar_alpha "0.5"
+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 "0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 "
+
+seta hud_configure_grid "1"
+seta hud_configure_grid_xsize "0.01"
+seta hud_configure_grid_ysize "0.01"
+
+seta scr_centerpos "0.25"
+
+seta hud_panel_weapons 1
+seta hud_panel_weapons_pos "0.370000 0.870000"
+seta hud_panel_weapons_size "0.340000 0.060000"
+seta hud_panel_weapons_bg "0"
+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 "-5"
+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_ammo 1
+seta hud_panel_ammo_pos "0.160000 0.910000"
+seta hud_panel_ammo_size "0.190000 0.090000"
+seta hud_panel_ammo_bg "0"
+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_powerups 1
+seta hud_panel_powerups_pos "0.660000 0.910000"
+seta hud_panel_powerups_size "0.130000 0.090000"
+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 "0"
+seta hud_panel_powerups_baralign "0"
+seta hud_panel_powerups_progressbar "0"
+
+seta hud_panel_healtharmor 1
+seta hud_panel_healtharmor_pos "0.370000 0.930000"
+seta hud_panel_healtharmor_size "0.300000 0.070000"
+seta hud_panel_healtharmor_bg "0"
+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 "0"
+seta hud_panel_healtharmor_baralign "0"
+seta hud_panel_healtharmor_progressbar "0"
+
+seta hud_panel_notify 0
+seta hud_panel_notify_pos "0 0.650000"
+seta hud_panel_notify_size "0.300000 0.070000"
+seta hud_panel_notify_bg ""
+seta hud_panel_notify_bg_color ""
+seta hud_panel_notify_bg_color_team ""
+seta hud_panel_notify_bg_alpha "0"
+seta hud_panel_notify_bg_border ""
+seta hud_panel_notify_bg_padding ""
+seta hud_panel_notify_flip "0"
+seta hud_panel_notify_print "1"
+
+seta hud_panel_timer 1
+seta hud_panel_timer_pos "0.850000 0"
+seta hud_panel_timer_size "0.150000 0.060000"
+seta hud_panel_timer_bg ""
+seta hud_panel_timer_bg_color "0 0.5 0.35"
+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
+seta hud_panel_radar_pos "0.800000 0"
+seta hud_panel_radar_size "0.200000 0.260000"
+seta hud_panel_radar_bg "border_radar"
+seta hud_panel_radar_bg_color ""
+seta hud_panel_radar_bg_color_team ""
+seta hud_panel_radar_bg_alpha "0.500000"
+seta hud_panel_radar_bg_border "0"
+seta hud_panel_radar_bg_padding "0"
+seta hud_panel_radar_foreground_alpha "1"
+
+seta hud_panel_score 1
+seta hud_panel_score_pos "0.760000 0.910000"
+seta hud_panel_score_size "0.240000 0.090000"
+seta hud_panel_score_bg "0"
+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.140000"
+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.690000 0.750000"
+seta hud_panel_vote_size "0.300000 0.100000"
+seta hud_panel_vote_bg ""
+seta hud_panel_vote_bg_color "0 0.5 0.35"
+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 "-3"
+seta hud_panel_vote_alreadyvoted_alpha "0.750000"
+
+seta hud_panel_modicons 1
+seta hud_panel_modicons_pos "0.010000 0.910000"
+seta hud_panel_modicons_size "0.135000 0.090000"
+seta hud_panel_modicons_bg "0"
+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.440000 0.760000"
+seta hud_panel_pressedkeys_size "0.120000 0.094368"
+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 0.760000"
+seta hud_panel_chat_size "0.420000 0.130000"
+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 1
+seta hud_panel_engineinfo_pos "0.887500 0.870000"
+seta hud_panel_engineinfo_size "0.112500 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.700000 0.620000"
+seta hud_panel_infomessages_size "0.300000 0.100000"
+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 ""
+seta hud_panel_infomessages_flip "1"
+
+menu_sync
diff --git a/hud_old_nexuiz.cfg b/hud_old_nexuiz.cfg
deleted file mode 100644 (file)
index e803ed9..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-seta hud_skin "old"
-seta hud_bg "border"
-seta hud_bg_color "1 1 1"
-seta hud_bg_color_team "0"
-seta hud_bg_alpha "0.500000"
-seta hud_bg_border "10"
-seta hud_bg_padding "0"
-seta hud_fg_alpha "1"
-
-seta hud_dock "dock"
-seta hud_dock_color "0 0.5 0.35"
-seta hud_dock_color_team "0.700000"
-seta hud_dock_alpha "1"
-
-seta hud_progressbar_alpha "0.5"
-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 "3 7 5 6 0 2 14 4 12 11 13 9 1 10 8 "
-
-seta hud_configure_grid "1"
-seta hud_configure_grid_xsize "0.01"
-seta hud_configure_grid_ysize "0.01"
-
-seta hud_panel_weapons 1
-seta hud_panel_weapons_pos "0.370000 0.870000"
-seta hud_panel_weapons_size "0.330000 0.060000"
-seta hud_panel_weapons_bg "0"
-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 "-5"
-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 "1"
-
-seta hud_panel_ammo 1
-seta hud_panel_ammo_pos "0.160000 0.910000"
-seta hud_panel_ammo_size "0.190000 0.090000"
-seta hud_panel_ammo_bg "0"
-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_powerups 1
-seta hud_panel_powerups_pos "0.670000 0.910000"
-seta hud_panel_powerups_size "0.110000 0.080000"
-seta hud_panel_powerups_bg ""
-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 "0"
-seta hud_panel_powerups_baralign "0"
-seta hud_panel_powerups_progressbar "0"
-
-seta hud_panel_healtharmor 1
-seta hud_panel_healtharmor_pos "0.370000 0.930000"
-seta hud_panel_healtharmor_size "0.300000 0.070000"
-seta hud_panel_healtharmor_bg "0"
-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 "0"
-seta hud_panel_healtharmor_baralign "0"
-seta hud_panel_healtharmor_progressbar "0"
-
-seta hud_panel_notify 0
-seta hud_panel_notify_pos "0 0.650000"
-seta hud_panel_notify_size "0.300000 0.070000"
-seta hud_panel_notify_bg ""
-seta hud_panel_notify_bg_color ""
-seta hud_panel_notify_bg_color_team ""
-seta hud_panel_notify_bg_alpha "0"
-seta hud_panel_notify_bg_border ""
-seta hud_panel_notify_bg_padding ""
-seta hud_panel_notify_flip "0"
-seta hud_panel_notify_print "0"
-
-seta hud_panel_timer 1
-seta hud_panel_timer_pos "0.860000 0"
-seta hud_panel_timer_size "0.140000 0.045528"
-seta hud_panel_timer_bg "border"
-seta hud_panel_timer_bg_color "0 0.5 0.35"
-seta hud_panel_timer_bg_color_team ""
-seta hud_panel_timer_bg_alpha "0.800000"
-seta hud_panel_timer_bg_border ""
-seta hud_panel_timer_bg_padding "0"
-
-seta hud_panel_radar 2
-seta hud_panel_radar_pos "0.800000 0"
-seta hud_panel_radar_size "0.200000 0.260000"
-seta hud_panel_radar_bg "border_radar"
-seta hud_panel_radar_bg_color ""
-seta hud_panel_radar_bg_color_team ""
-seta hud_panel_radar_bg_alpha "0.3"
-seta hud_panel_radar_bg_border ""
-seta hud_panel_radar_bg_padding "-10"
-seta hud_panel_radar_foreground_alpha "0.800000"
-
-seta hud_panel_score 1
-seta hud_panel_score_pos "0.760000 0.920000"
-seta hud_panel_score_size "0.240000 0.080000"
-seta hud_panel_score_bg "0"
-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.140000"
-seta hud_panel_racetimer_size "0.280000 0.093333"
-seta hud_panel_racetimer_bg ""
-seta hud_panel_racetimer_bg_color ""
-seta hud_panel_racetimer_bg_color_team ""
-seta hud_panel_racetimer_bg_alpha "0"
-seta hud_panel_racetimer_bg_border ""
-seta hud_panel_racetimer_bg_padding ""
-
-seta hud_panel_vote 1
-seta hud_panel_vote_pos "0.690000 0.750000"
-seta hud_panel_vote_size "0.300000 0.100000"
-seta hud_panel_vote_bg ""
-seta hud_panel_vote_bg_color "0 0.5 0.35"
-seta hud_panel_vote_bg_color_team ""
-seta hud_panel_vote_bg_alpha "0.800000"
-seta hud_panel_vote_bg_border ""
-seta hud_panel_vote_bg_padding "-3"
-seta hud_panel_vote_alreadyvoted_alpha "0.750000"
-
-seta hud_panel_modicons 1
-seta hud_panel_modicons_pos "0.010000 0.910000"
-seta hud_panel_modicons_size "0.135000 0.090000"
-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.440000 0.740000"
-seta hud_panel_pressedkeys_size "0.120000 0.094368"
-seta hud_panel_pressedkeys_bg ""
-seta hud_panel_pressedkeys_bg_color ""
-seta hud_panel_pressedkeys_bg_color_team ""
-seta hud_panel_pressedkeys_bg_alpha "0"
-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 0.760000"
-seta hud_panel_chat_size "0.420000 0.130000"
-seta hud_panel_chat_bg ""
-seta hud_panel_chat_bg_color ""
-seta hud_panel_chat_bg_color_team ""
-seta hud_panel_chat_bg_alpha "0"
-seta hud_panel_chat_bg_border ""
-seta hud_panel_chat_bg_padding ""
-
-seta hud_panel_engineinfo 1
-seta hud_panel_engineinfo_pos "0.887500 0.870000"
-seta hud_panel_engineinfo_size "0.112500 0.030000"
-seta hud_panel_engineinfo_bg ""
-seta hud_panel_engineinfo_bg_color ""
-seta hud_panel_engineinfo_bg_color_team ""
-seta hud_panel_engineinfo_bg_alpha "0"
-seta hud_panel_engineinfo_bg_border ""
-seta hud_panel_engineinfo_bg_padding ""
-
-seta hud_panel_infomessages 1
-seta hud_panel_infomessages_pos "0.700000 0.620000"
-seta hud_panel_infomessages_size "0.300000 0.090000"
-seta hud_panel_infomessages_bg ""
-seta hud_panel_infomessages_bg_color ""
-seta hud_panel_infomessages_bg_color_team ""
-seta hud_panel_infomessages_bg_alpha "0"
-seta hud_panel_infomessages_bg_border ""
-seta hud_panel_infomessages_bg_padding ""
-
-menu_restart
index 6d8bd90..b83af07 100644 (file)
@@ -28,10 +28,10 @@ alias +tuba_c "+crouch; +tuba_$*"
 alias -tuba_c "-crouch; -tuba_$*"
 alias +tuba_j "+jump; +tuba_$*"
 alias -tuba_j "-jump; -tuba_$*"
-alias +tuba_1 "+attack"
-alias -tuba_1 "-attack"
-alias +tuba_2 "+attack2"
-alias -tuba_2 "-attack2"
+alias +tuba_1 "+fire"
+alias -tuba_1 "-fire"
+alias +tuba_2 "+fire2"
+alias -tuba_2 "-fire2"
 alias +tuba_! "echo cannot play this note, sorry"
 alias -tuba_! ""
 alias +tuba_ ""
diff --git a/models/items/armor.tga b/models/items/armor.tga
new file mode 100644 (file)
index 0000000..eebc35a
Binary files /dev/null and b/models/items/armor.tga differ
diff --git a/models/items/armor_gloss.tga b/models/items/armor_gloss.tga
new file mode 100644 (file)
index 0000000..5e9d79e
Binary files /dev/null and b/models/items/armor_gloss.tga differ
diff --git a/models/items/armor_glow.tga b/models/items/armor_glow.tga
new file mode 100644 (file)
index 0000000..416fe0e
Binary files /dev/null and b/models/items/armor_glow.tga differ
diff --git a/models/items/armor_norm.tga b/models/items/armor_norm.tga
new file mode 100644 (file)
index 0000000..c4f8471
Binary files /dev/null and b/models/items/armor_norm.tga differ
diff --git a/models/items/g_a1.md3 b/models/items/g_a1.md3
deleted file mode 100644 (file)
index 22ed73e..0000000
Binary files a/models/items/g_a1.md3 and /dev/null differ
diff --git a/models/items/g_a25.md3 b/models/items/g_a25.md3
deleted file mode 100644 (file)
index da02dcb..0000000
Binary files a/models/items/g_a25.md3 and /dev/null differ
diff --git a/models/items/g_a50.md3 b/models/items/g_a50.md3
deleted file mode 100644 (file)
index 7525f10..0000000
Binary files a/models/items/g_a50.md3 and /dev/null differ
diff --git a/models/items/g_armormedium.md3 b/models/items/g_armormedium.md3
deleted file mode 100644 (file)
index 203a936..0000000
Binary files a/models/items/g_armormedium.md3 and /dev/null differ
diff --git a/models/items/item_armor_big.md3 b/models/items/item_armor_big.md3
new file mode 100644 (file)
index 0000000..f7ac71e
Binary files /dev/null and b/models/items/item_armor_big.md3 differ
diff --git a/models/items/item_armor_large.md3 b/models/items/item_armor_large.md3
new file mode 100644 (file)
index 0000000..8be97a7
Binary files /dev/null and b/models/items/item_armor_large.md3 differ
diff --git a/models/items/item_armor_medium.md3 b/models/items/item_armor_medium.md3
new file mode 100644 (file)
index 0000000..acc90eb
Binary files /dev/null and b/models/items/item_armor_medium.md3 differ
diff --git a/models/items/item_armor_small.md3 b/models/items/item_armor_small.md3
new file mode 100644 (file)
index 0000000..f92744a
Binary files /dev/null and b/models/items/item_armor_small.md3 differ
index 831cc46..a97a073 100644 (file)
@@ -1,15 +1,15 @@
 //TAG: soldier
 //affirmative sound/player/carni-lycan/player/affirmative 0
-attack sound/player/soldier/coms/attack 2
+attack sound/player/soldier/coms/attack 0
 //attacking sound/player/carni-lycan/player/attacking 0
 attackinfive sound/player/soldier/coms/attackinfive 0
 coverme sound/player/soldier/coms/coverme 0
 defend sound/player/soldier/coms/defend 0
 //defending sound/player/carni-lycan/player/defending 0
 //droppedflag sound/player/carni-lycan/player/droppedflag 0
-flagcarriertakingdamage sound/player/soldier/player/flagcarriertakingdamage 0
+flagcarriertakingdamage sound/player/soldier/coms/flagcarriertakingdamage 0
 freelance sound/player/soldier/coms/freelance 2
-getflag sound/player/soldier/player/getflag 0
+getflag sound/player/soldier/coms/getflag 0
 incoming sound/player/soldier/coms/incoming 0
 meet sound/player/soldier/coms/meet 0
 needhelp sound/player/soldier/coms/needhelp 2
index b162e5f..03c3e5d 100644 (file)
@@ -1,23 +1,23 @@
-// These have been modified from Nexuiz 2.4.2's physicsQBR.cfg file
-sv_gravity 800
-sv_gravity 802
-sv_maxspeed 417
-sv_maxairspeed 202
+// These have been modified from Nexuiz 2.4.2's physicsQBR.cfg file and a bunch of other crap div0 threw on here :P
+// DO NOT SCREW WITH friction on land, edge friction, step height, or sv_airaccel_qw
+
+sv_gravity 818
+sv_maxspeed 420
+sv_maxairspeed 283
 sv_stopspeed 100
-sv_accelerate 5.8
-sv_airaccelerate 5.5
-sv_friction 4.1
-edgefriction 1
-sv_stepheight 34
-sv_jumpvelocity 307
+sv_accelerate 14
+sv_airaccelerate 8
+sv_friction 9.6 // higher values make you slide less
+edgefriction 1 // div0 says no! lol
+sv_stepheight 34 // was told by divVerent not to mess with this, possibly to avoid breaking maps
+sv_jumpvelocity 308
 sv_wateraccelerate -1
 sv_waterfriction -1
-sv_airaccel_sideways_friction 0.207
-sv_airaccel_qw -0.93
+sv_airaccel_sideways_friction 0 // pain in the ass to tweak without screwing up the strafing
+sv_airaccel_qw -0.93 //given a negative value to combat potential cheats, was told by divVerent not to mess with it
 sv_airstopaccelerate 0
 sv_airstrafeaccelerate 0
 sv_maxairstrafespeed 0
-sv_airstrafeaccel_qw 0
 sv_aircontrol 0
 sv_aircontrol_penalty 0
 sv_aircontrol_power 2
@@ -26,8 +26,9 @@ sv_warsowbunny_turnaccel 0
 sv_warsowbunny_accel 0.1593
 sv_warsowbunny_topspeed 925
 sv_warsowbunny_backtosideratio 0.8
-sv_friction_on_land 0
+sv_friction_on_land 0 //Was told not to mess with this by divVerent, can cause hell for anti-lag
 sv_doublejump 0
 sv_jumpspeedcap_min ""
-sv_jumpspeedcap_max ""
-sv_jumpspeedcap_max_disable_on_ramps 0
+sv_jumpspeedcap_max 0.38
+sv_jumpspeedcap_max_disable_on_ramps 1
+
index 7bb0ce6..e67832d 100644 (file)
@@ -9,7 +9,10 @@ sv_accelerate 15
 sv_airaccelerate 2
 sv_friction 8
 edgefriction 1
-sv_stepheight 34
+sv_stepheight 26
+// Q1: 16+2
+// Nex: 32+2
+// we try: 24+2
 
 // actually, what we want is 266.6666 for 180bpm
 // but 260 takes same amount of frames and is nicer to mappers
@@ -25,7 +28,7 @@ sv_maxairstrafespeed 100
 sv_airstrafeaccel_qw -0.9825
 sv_aircontrol 125
 sv_aircontrol_penalty 100
-sv_aircontrol_power 2.5
+sv_aircontrol_power 2
 sv_airspeedlimit_nonqw 0
 sv_warsowbunny_turnaccel 0
 sv_warsowbunny_accel 0.1593
index 3e1cc96..675c727 100644 (file)
@@ -1,30 +1,34 @@
 // "NoQWBunny" physics based on XPM
 sv_gravity 800
 sv_maxspeed 320
-
-sv_maxairspeed 320
+sv_maxairspeed 400
 
 sv_stopspeed 100
 sv_accelerate 15
 sv_airaccelerate 2
 sv_friction 8
 edgefriction 1
-sv_stepheight 34
+sv_stepheight 26
+// Q1: 16+2
+// Nex: 32+2
+// we try: 24+2
 
-sv_jumpvelocity 250
-sv_wateraccelerate 4
-sv_waterfriction 1
+// actually, what we want is 266.6666 for 180bpm
+// but 260 takes same amount of frames and is nicer to mappers
+sv_jumpvelocity 260
+sv_wateraccelerate -1
+sv_waterfriction -1
 sv_airaccel_sideways_friction 0
-sv_airaccel_qw -0.937
+sv_airaccel_qw -0.8
 
 sv_airstopaccelerate 3
-sv_airstrafeaccelerate 20
-sv_maxairstrafespeed 96
-sv_airstrafeaccel_qw -0.979
+sv_airstrafeaccelerate 24
+sv_maxairstrafespeed 100
+sv_airstrafeaccel_qw -0.95
 sv_aircontrol 125
-sv_aircontrol_penalty 100
-sv_aircontrol_power 2.5
-sv_airspeedlimit_nonqw 0
+sv_aircontrol_penalty 150
+sv_aircontrol_power 2
+sv_airspeedlimit_nonqw 800
 sv_warsowbunny_turnaccel 0
 sv_warsowbunny_accel 0.1593
 sv_warsowbunny_topspeed 925
index d1a7632..2fc1ce3 100644 (file)
@@ -1278,6 +1278,7 @@ void Net_WeaponComplain() {
        complain_weapon_type = ReadByte();
 
        complain_weapon_time = time;
+       weapontime = time; // ping the weapon panel
 }
 
 // CSQC_Parse_TempEntity : Handles all temporary entity network data in the CSQC layer.
index d3a5ea6..07b21d9 100644 (file)
@@ -79,11 +79,11 @@ void Porto_Draw()
                        p = p - view_up * 16;
                if(idx-1 >= portal1_idx)
                {
-                       Draw_CylindricLine(p, q, 4, "", 1, 0, '0 0 1', 0.5, DRAWFLAG_NORMAL);
+                       Draw_CylindricLine(p, q, 4, "", 1, 0, '0 0 1', 0.5, DRAWFLAG_NORMAL, view_origin);
                }
                else
                {
-                       Draw_CylindricLine(p, q, 4, "", 1, 0, '1 0 0', 0.5, DRAWFLAG_NORMAL);
+                       Draw_CylindricLine(p, q, 4, "", 1, 0, '1 0 0', 0.5, DRAWFLAG_NORMAL, view_origin);
                }
                --idx;
        }
@@ -102,7 +102,7 @@ void CheckForGamestartChange() {
        if (previous_game_starttime != startTime) {
                if ((time + 5.0) < startTime) {
                        //if connecting to server while restart was active don't always play prepareforbattle
-                       sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/prepareforbattle.wav"), VOL_BASEVOICE, ATTN_NONE);
+                       sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/prepareforbattle.wav"), VOL_BASEVOICE, ATTN_NONE);
                }
                if (time < startTime) {
                        restartAnnouncer = spawn();
@@ -354,6 +354,12 @@ void CSQC_UpdateView(float w, float h)
        float fov;
        float f, i, j;
        vector v, vo;
+       vector vf_size, vf_min;
+
+       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;
 
@@ -398,9 +404,6 @@ void CSQC_UpdateView(float w, float h)
                view_set = 1;
        }
 
-       vid_width = w;
-       vid_height = h;
-
 #ifdef BLURTEST
        if(time > blurtest_time0 && time < blurtest_time1)
        {
@@ -488,6 +491,10 @@ void CSQC_UpdateView(float w, float h)
        // ALWAYS Clear Current Scene First
        R_ClearScene();
 
+       // FIXME engine bug? VF_SIZE and VF_MIN are not restored to sensible values by this
+       R_SetView(VF_SIZE, vf_size);
+       R_SetView(VF_MIN, vf_min);
+
        // Assign Standard Viewflags
        // Draw the World (and sky)
        R_SetView(VF_DRAWWORLD, 1);
@@ -623,11 +630,6 @@ void CSQC_UpdateView(float w, float h)
                        self.draw2d();
        self = e;
 
-       // draw hud
-       if(cvar("r_letterbox") == 0) {
-               HUD_DrawCenterPrint(); // draw centerprint messages even if viewsize >= 120
-       }
-
        float hud;
        hud = getstati(STAT_HUD);
        if(hud == HUD_SPIDERBOT)
@@ -645,7 +647,7 @@ void CSQC_UpdateView(float w, float h)
                                CSQC_common_hud();
 
                // crosshair goes VERY LAST
-               if(!scoreboard_active && !camera_active) {
+               if(!scoreboard_active && !camera_active && intermission != 2) {
                        // TrueAim check
                        float shottype;
                        float bullets, ring_scale;
@@ -883,6 +885,11 @@ void CSQC_UpdateView(float w, float h)
 
        if(autocvar__hud_configure)
                HUD_Panel_Mouse();
+
+       // let's reset the view back to normal for the end
+       R_SetView(VF_MIN, '0 0 0');
+       R_SetView(VF_SIZE, '1 0 0' * w + '0 1 0' * h);
+
        // be safe against triggerbots until everyone has the fixed engine
        // this call is meant to overwrite the trace globals by something
        // unsuspicious
@@ -1204,23 +1211,29 @@ void CSQC_common_hud(void)
                                        acc_lev[i] = stof(argv(i));
                        }
 
-                       // hud first
-                       HUD_Main();
+                       HUD_Main(); // always run these functions for alpha checks
+                       HUD_DrawScoreboard();
 
-                       // scoreboard/accuracy
-                       if (intermission == 2 && !scoreboard_showaccuracy && !scoreboard_showscores) // map voting screen
+                       if (scoreboard_showscores || scoreboard_showscores_force || getstati(STAT_HEALTH) <= 0 || intermission == 1) // scoreboard/accuracy
+                       {       
+                               HUD_Reset();
+                               // HUD_DrawScoreboard takes care of centerprint_start
+                       }
+                       else if (intermission == 2) // map voting screen
                        {
                                HUD_FinaleOverlay();
                                HUD_Reset();
-                       }
-                       else if(scoreboard_showaccuracy && spectatee_status != -1)
-                               HUD_DrawAccuracyStats();
-                       else
-                               HUD_DrawScoreboard();
 
-                       if (scoreboard_showscores || scoreboard_showaccuracy || scoreboard_showscores_force || getstati(STAT_HEALTH) <= 0 || intermission == 1)
-                               HUD_Reset();
+                               centerprint_start_x = 0;
+                               centerprint_start_y = cvar("scr_centerpos") * vid_conheight;
+                       }
+                       else // hud
+                       {
+                               centerprint_start_x = 0;
+                               centerprint_start_y = cvar("scr_centerpos") * vid_conheight;
+                       }
 
+                       HUD_DrawCenterPrint();
                        break;
 
                case HUD_SPIDERBOT:
index 0c2df0e..5e72444 100644 (file)
@@ -10,7 +10,7 @@ var float autocvar_cl_gentle;
 var float autocvar_cl_gentle_gibs;
 var float autocvar_cl_gentle_messages;
 
-var float autocvar_hud_color_bg_team;
+var float autocvar_scoreboard_color_bg_team;
 
 var float autocvar__menu_alpha;
 
index ec2ab9a..760197a 100644 (file)
@@ -79,6 +79,7 @@ void ()                                                                       R_ClearScene = #300;
 void (float mask)                                                      R_AddEntities = #301;
 void (entity e)                                                                R_AddEntity = #302;
 float (float property, ...)                                            R_SetView = #303;
+vector (float property, ...)                                           R_SetView3fv = #303;
 void ()                                                                        R_RenderScene = #304;
 void (vector org, float radius, vector rgb)                            R_AddDynamicLight = #305;
 void ()                                                                        R_CalcRefDef = #306;
@@ -292,6 +293,7 @@ entity(vector org, float rad) findradius = #22;
 
 string(float uselocaltime, string format, ...) strftime = #478;
 float(float timer) gettime = #519;
+#define GETTIME_REALTIME 1
 #define GETTIME_CDTRACK 4
 
 float(string s) tokenize_console = #514;
index bbee658..2e946fc 100644 (file)
@@ -10,8 +10,8 @@ void SUB_Remove()
 
 void b_draw()
 {
-    //Draw_CylindricLine(self.fx_start, self.fx_end, self.fx_with, self.fx_texture, 0, time * 3, '1 1 1', 0.7, DRAWFLAG_ADDITIVE);
-    Draw_CylindricLine(self.fx_start, self.fx_end, self.fx_with, self.fx_texture, (self.fx_with/256), 0, '1 1 1', 1, DRAWFLAG_ADDITIVE);
+    //Draw_CylindricLine(self.fx_start, self.fx_end, self.fx_with, self.fx_texture, 0, time * 3, '1 1 1', 0.7, DRAWFLAG_ADDITIVE, view_origin);
+    Draw_CylindricLine(self.fx_start, self.fx_end, self.fx_with, self.fx_texture, (self.fx_with/256), 0, '1 1 1', 1, DRAWFLAG_ADDITIVE, view_origin);
 
 }
 void b_make(vector s,vector e, string t,float l,float z)
index b769947..c1e8383 100644 (file)
@@ -5,7 +5,7 @@
 .float HookSilent;
 .float HookRange;
 
-void Draw_CylindricLine(vector from, vector to, float thickness, string texture, float aspect, float shift, vector rgb, float alpha, float drawflag)
+void Draw_CylindricLine(vector from, vector to, float thickness, string texture, float aspect, float shift, vector rgb, float alpha, float drawflag, vector vieworg)
 {
        // I want to draw a quad...
        // from and to are MIDPOINTS.
@@ -17,7 +17,7 @@ void Draw_CylindricLine(vector from, vector to, float thickness, string texture,
        length_tex = aspect * vlen(to - from) / thickness;
 
        // direction is perpendicular to the view normal, and perpendicular to the axis
-       thickdir = normalize(cross(axis, view_origin - from));
+       thickdir = normalize(cross(axis, vieworg - from));
 
 /*
        print("from ", vtos(from), "\n");
@@ -46,11 +46,14 @@ float Draw_GrapplingHook_trace_callback_a;
 void Draw_GrapplingHook_trace_callback(vector start, vector hit, vector end)
 {
        float i;
+       vector vorg;
+       vorg = WarpZone_TransformOrigin(WarpZone_trace_transform, view_origin);
        for(i = 0; i < Draw_GrapplingHook_trace_callback_a; ++i)
-               Draw_CylindricLine(hit, start, 8, Draw_GrapplingHook_trace_callback_tex, 0.25, Draw_GrapplingHook_trace_callback_rnd, Draw_GrapplingHook_trace_callback_rgb, min(1, Draw_GrapplingHook_trace_callback_a - i), DRAWFLAG_NORMAL);
+               Draw_CylindricLine(hit, start, 8, Draw_GrapplingHook_trace_callback_tex, 0.25, Draw_GrapplingHook_trace_callback_rnd, Draw_GrapplingHook_trace_callback_rgb, min(1, Draw_GrapplingHook_trace_callback_a - i), DRAWFLAG_NORMAL, vorg);
        Draw_GrapplingHook_trace_callback_rnd += 0.25 * vlen(hit - start) / 8;
 }
 
+.float teleport_time;
 void Draw_GrapplingHook()
 {
        vector a, b, atrans;
@@ -61,6 +64,13 @@ void Draw_GrapplingHook()
        vector vs;
        float intensity, offset;
 
+       if(self.teleport_time)
+       if(time > self.teleport_time)
+       {
+               sound (self, CHAN_PROJECTILE, "misc/null.wav", VOL_BASE, ATTN_NORM); // safeguard
+               self.teleport_time = 0;
+       }
+
        InterpolateOrigin_Do();
 
        s = cvar("cl_gunalign");
@@ -251,7 +261,7 @@ void Ent_ReadHook(float bIsNew, float type)
 
        InterpolateOrigin_Note();
 
-       if(bIsNew)
+       if(bIsNew || !self.teleport_time)
        {
                self.draw = Draw_GrapplingHook;
                self.entremove = Remove_GrapplingHook;
@@ -272,6 +282,8 @@ void Ent_ReadHook(float bIsNew, float type)
                                break;
                }
        }
+
+       self.teleport_time = time + 10;
 }
 
 void Hook_Precache()
index f2b900f..c1dbede 100644 (file)
@@ -131,7 +131,7 @@ float stringwidth_nocolors(string s, vector theSize)
 #define CENTERPRINT_MAX_LINES 30
 string centerprint_messages[CENTERPRINT_MAX_LINES];
 float centerprint_width[CENTERPRINT_MAX_LINES];
-vector centerprint_start;
+float centerprint_time;
 float centerprint_expire;
 float centerprint_num;
 float centerprint_offset_hint;
@@ -182,6 +182,8 @@ void centerprint(string strMessage)
                while(getWrappedLine_remaining)
                {
                        s = getWrappedLine(vid_conwidth * 0.75, centerprint_fontsize, stringwidth_colors);
+                       if(centerprint_messages[i] != s) // don't fade the same message in, looks stupid
+                               centerprint_time = time;
                        if(centerprint_messages[i])
                                strunzone(centerprint_messages[i]);
                        centerprint_messages[i] = strzone(s);
@@ -208,8 +210,6 @@ void centerprint(string strMessage)
        if(havail > vid_conheight - 70)
                havail = vid_conheight - 70; // avoid overlapping HUD
 
-       centerprint_start_x = 0;
-
 #if 0
        float forbiddenmin, forbiddenmax, allowedmin, allowedmax, preferred;
 
@@ -260,17 +260,10 @@ void centerprint(string strMessage)
                centerprint_start_y = bound(forbiddenmax, preferred, allowedmax);
        }
 #else
-       centerprint_start_y =
-               min(
-                       max(
-                               max(scoreboard_bottom, vid_conheight * 0.5 + 16),
-                               (havail - h)/2
-                       ),
-                       havail - h
-               );
 #endif
 
        centerprint_num = i;
+
        centerprint_expire = time + cvar("scr_centertime");
 }
 
@@ -279,32 +272,39 @@ void HUD_DrawCenterPrint (void)
        float i;
        vector pos;
        string ts;
-       float a;
-
-       //if(time > centerprint_expire)
-       //      return;
+       float a, sz;
 
-       //a = bound(0, 1 - 2 * (time - centerprint_expire), 1);
-       a = bound(0, 1 - 4 * (time - centerprint_expire), 1);
-       //sz = 1.2 / (a + 0.2);
+       if(time - centerprint_time < 0.25)
+               a = (time - centerprint_time) / 0.25;
+       else
+               a = bound(0, 1 - 4 * (time - centerprint_expire), 1);
 
        if(a <= 0)
                return;
 
+       sz = 0.8 + (a / 5);
+
+       if(centerprint_num * cvar("scr_centersize") > 24 && HUD_WouldDrawScoreboard()) // 24 = height of Scoreboard text
+       {
+               centerprint_start_y = scoreboard_bottom + centerprint_fontsize_y;
+       }
        pos = centerprint_start;
        for (i=0; i<centerprint_num; i = i + 1)
        {
-               pos_x = (vid_conwidth - centerprint_width[i]) * 0.5;
                ts = centerprint_messages[i];
+               drawfontscale = sz * '1 1 0';
+               drawfont = hud_bigfont;
+               pos_x = (vid_conwidth - stringwidth(ts, TRUE, centerprint_fontsize)) * 0.5;
                if (ts != "")
                {
-                       drawcolorcodedstring(pos, ts, centerprint_fontsize, a, DRAWFLAG_NORMAL);
-                       //  - '0 0.5 0' * (sz - 1) * centerprint_fontsize_x - '0.5 0 0' * (sz - 1) * centerprint_width[i] * centerprint_fontsize_y, centerprint_fontsize * sz
+                       drawcolorcodedstring(pos + '0 1 0' * (1 - sz) * 0.5 *centerprint_fontsize_y, ts, centerprint_fontsize, a, DRAWFLAG_NORMAL);
                        pos_y = pos_y + centerprint_fontsize_y;
                }
                else
                        // half height for empty lines looks better
-                       pos_y = pos_y + centerprint_fontsize_y * 0.5;
+                       pos_y = pos_y + sz * centerprint_fontsize_y * 0.5;
+               drawfontscale = '1 1 0';
+               drawfont = hud_font;
        }
 }
 
@@ -453,6 +453,9 @@ void HUD_Panel_ExportCfg(string cfgname)
                fputs(fh, strcat("seta hud_configure_grid_ysize \"", cvar_string("hud_configure_grid_ysize"), "\"", "\n"));
                fputs(fh, "\n");
 
+               fputs(fh, strcat("seta scr_centerpos \"", cvar_string("scr_centerpos"), "\"", "\n"));
+               fputs(fh, "\n");
+
                // common cvars for all panels
                float i;
                for (i = 0; i < HUD_PANEL_NUM; ++i)
@@ -508,10 +511,13 @@ void HUD_Panel_ExportCfg(string cfgname)
                                case HUD_PANEL_PRESSEDKEYS:
                                        fputs(fh, strcat("seta hud_panel_", panel_name, "_aspect \"", cvar_string(strcat("hud_panel_", panel_name, "_aspect")), "\"", "\n"));
                                        break;
+                               case HUD_PANEL_INFOMESSAGES:
+                                       fputs(fh, strcat("seta hud_panel_", panel_name, "_flip \"", cvar_string(strcat("hud_panel_", panel_name, "_flip")), "\"", "\n"));
+                                       break;
                        }
                        fputs(fh, "\n");
                }
-               fputs(fh, strcat("menu_restart", "\n")); // force a menu update when execing config, so that the dialogs are updated
+               fputs(fh, strcat("menu_sync", "\n")); // force the menu to reread the cvars, so that the dialogs are updated
 
                print("^2Successfully exported to hud_", autocvar_hud_skin, "_", cfgname, ".cfg! (Note: It's saved in data/data/)\n");
        }
@@ -940,6 +946,10 @@ void HUD_Panel_Arrow_Action(float nPrimary)
 
        HUD_Panel_UpdatePosSizeForId(highlightedPanel)
 
+       vector prev_pos, prev_size;
+       prev_pos = panel_pos;
+       prev_size = panel_size;
+
        if (hudShiftState & S_ALT) // resize
        {
                highlightedAction = 1;
@@ -993,6 +1003,16 @@ void HUD_Panel_Arrow_Action(float nPrimary)
 
                HUD_Panel_SetPos(pos);
        }
+
+       HUD_Panel_UpdatePosSizeForId(highlightedPanel)
+
+       if (prev_pos != panel_pos || prev_size != panel_size)
+       {
+               // backup!
+               panel_pos_backup = prev_pos;
+               panel_size_backup = prev_size;
+               highlightedPanel_backup = highlightedPanel;
+       }
 }
 
 float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary)
@@ -1044,6 +1064,78 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary)
                menu_enabled_time = time;
                localcmd("menu_showhudexit\n");
        }
+       else if(hudShiftState & S_CTRL)
+       {
+               if (mouseClicked)
+                       return true;
+
+               if(nPrimary == K_SPACE) // enable/disable highlighted panel or dock
+               {
+                       if (bInputType == 1)
+                               return true;
+
+                       if (highlightedPanel_prev != -1)
+                               cvar_set(strcat("hud_panel_", panel_name), ftos(!(panel_enabled)));
+                       else
+                               cvar_set(strcat("hud_dock"), (autocvar_hud_dock == "") ? "dock" : "");
+               }
+               if(nPrimary == 'c') // copy highlighted panel size
+               {
+                       if (bInputType == 1)
+                               return true;
+
+                       if (highlightedPanel_prev != -1)
+                       {
+                               panel_size_copied = panel_size;
+                               highlightedPanel_copied = highlightedPanel_prev;
+                       }
+               }
+               else if(nPrimary == 'v') // past copied size on the highlighted panel
+               {
+                       if (bInputType == 1)
+                               return true;
+
+                       if (highlightedPanel_copied == -1 || highlightedPanel_prev == -1)
+                               return true;
+
+                       HUD_Panel_UpdatePosSizeForId(highlightedPanel_prev)
+
+                       // reduce size if it'd go beyond screen boundaries
+                       vector tmp_size = panel_size_copied;
+                       if (panel_pos_x + panel_size_copied_x > vid_conwidth)
+                               tmp_size_x = vid_conwidth - panel_pos_x;
+                       if (panel_pos_y + panel_size_copied_y > vid_conheight)
+                               tmp_size_y = vid_conheight - panel_pos_y;
+
+                       if (panel_size == tmp_size)
+                               return true;
+
+                       // backup first!
+                       panel_pos_backup = panel_pos;
+                       panel_size_backup = panel_size;
+                       highlightedPanel_backup = highlightedPanel_prev;
+
+                       string s;
+                       s = strcat(ftos(tmp_size_x/vid_conwidth), " ", ftos(tmp_size_y/vid_conheight));
+                       cvar_set(strcat("hud_panel_", panel_name, "_size"), s);
+               }
+               else if(nPrimary == 'z') // undo last action
+               {
+                       if (bInputType == 1)
+                               return true;
+                       //restore previous values
+                       if (highlightedPanel_backup != -1)
+                       {
+                               HUD_Panel_GetName(highlightedPanel_backup)
+                               string s;
+                               s = strcat(ftos(panel_pos_backup_x/vid_conwidth), " ", ftos(panel_pos_backup_y/vid_conheight));
+                               cvar_set(strcat("hud_panel_", panel_name, "_pos"), s);
+                               s = strcat(ftos(panel_size_backup_x/vid_conwidth), " ", ftos(panel_size_backup_y/vid_conheight));
+                               cvar_set(strcat("hud_panel_", panel_name, "_size"), s);
+                               highlightedPanel_backup = -1;
+                       }
+               }
+       }
        else if(nPrimary == K_UPARROW || nPrimary == K_DOWNARROW || nPrimary == K_LEFTARROW || nPrimary == K_RIGHTARROW)
        {
                if (bInputType == 1)
@@ -1226,6 +1318,7 @@ void HUD_Panel_Highlight()
 }
 
 float highlightcheck;
+vector prev_pos, prev_size;
 void HUD_Panel_Mouse()
 {
        // TODO: needs better check... is there any float that contains the current state of the menu? _menu_alpha isn't apparently updated the frame the menu gets enabled
@@ -1255,9 +1348,28 @@ void HUD_Panel_Mouse()
        if(mouseClicked)
        {
                if(prevMouseClicked == 0)
+               {
                        HUD_Panel_Highlight(); // sets highlightedPanel, highlightedAction, panel_click_distance, panel_click_resizeorigin
+                                                                       // and calls HUD_Panel_UpdatePosSizeForId() for the highlighted panel
+                       prev_pos = panel_pos;
+                       prev_size = panel_size;
+               }
+               else
+                       HUD_Panel_UpdatePosSizeForId(highlightedPanel)
 
-               hud_configure_checkcollisions = (!(hudShiftState & S_CTRL) && autocvar_hud_configure_checkcollisions);
+               if (prev_pos != panel_pos || prev_size != panel_size)
+               {
+                       hud_configure_checkcollisions = (!(hudShiftState & S_CTRL) && autocvar_hud_configure_checkcollisions);
+                       // backup!
+                       panel_pos_backup = prev_pos;
+                       panel_size_backup = prev_size;
+                       highlightedPanel_backup = highlightedPanel;
+               }
+               else
+                       // in case the clicked panel is inside another panel and we aren't
+                       // moving it, avoid the immediate "fix" of its position/size
+                       // (often unwanted and hateful) by disabling collisions check
+                       hud_configure_checkcollisions = false;
 
                if(highlightedAction == 1)
                        HUD_Panel_SetPos(mousepos - panel_click_distance);
@@ -1385,14 +1497,94 @@ void HUD_Weapons(void)
        if(!autocvar_hud_panel_weapons && !autocvar__hud_configure)
                return;
 
+       float timeout = cvar("hud_panel_weapons_timeout");
+       float timeout_effect_length, timein_effect_length;
+       if (cvar("hud_panel_weapons_timeout_effect") == 0)
+       {
+               timeout_effect_length = 0;
+               timein_effect_length = 0;
+       }
+       else
+       {
+               timeout_effect_length = 0.75;
+               timein_effect_length = 0.375;
+       }
+
+       if (timeout && time >= weapontime + timeout + timeout_effect_length && !autocvar__hud_configure)
+       {
+               weaponprevtime = time;
+               return;
+       }
+
        active_panel = HUD_PANEL_WEAPONS;
        HUD_Panel_UpdateCvars(weapons);
-       vector pos, mySize;
-       float i, weapid, fade, weapon_stats, weapon_number, weapon_cnt;
 
-       pos = panel_pos;
-       mySize = panel_size;
+       if (timeout && time >= weapontime + timeout && !autocvar__hud_configure)
+       {
+               float f = (time - (weapontime + timeout)) / timeout_effect_length;
+               if (cvar("hud_panel_weapons_timeout_effect"))
+               {
+                       panel_bg_alpha *= (1 - f);
+                       panel_fg_alpha *= (1 - f);
+               }
+               if (cvar("hud_panel_weapons_timeout_effect") == 1)
+               {
+                       f *= f; // for a cooler movement
+                       vector center;
+                       center_x = panel_pos_x + panel_size_x/2;
+                       center_y = panel_pos_y + panel_size_y/2;
+                       float screen_ar = vid_conwidth/vid_conheight;
+                       if (center_x/center_y < screen_ar) //bottom left
+                       {
+                               if ((vid_conwidth - center_x)/center_y < screen_ar) //bottom
+                                       panel_pos_y += f * (vid_conheight - panel_pos_y);
+                               else //left
+                                       panel_pos_x -= f * (panel_pos_x + panel_size_x);
+                       }
+                       else //top right
+                       {
+                               if ((vid_conwidth - center_x)/center_y < screen_ar) //right
+                                       panel_pos_x += f * (vid_conwidth - panel_pos_x);
+                               else //top
+                                       panel_pos_y -= f * (panel_pos_y + panel_size_y);
+                       }
+               }
+               weaponprevtime = time - (1 - f) * timein_effect_length;
+       }
+       else if (timeout && time < weaponprevtime + timein_effect_length && !autocvar__hud_configure)
+       {
+               float f = (time - weaponprevtime) / timein_effect_length;
+               if (cvar("hud_panel_weapons_timeout_effect"))
+               {
+                       panel_bg_alpha *= (f);
+                       panel_fg_alpha *= (f);
+               }
+               if (cvar("hud_panel_weapons_timeout_effect") == 1)
+               {
+                       f *= f; // for a cooler movement
+                       f = 1 - f;
+                       vector center;
+                       center_x = panel_pos_x + panel_size_x/2;
+                       center_y = panel_pos_y + panel_size_y/2;
+                       float screen_ar = vid_conwidth/vid_conheight;
+                       if (center_x/center_y < screen_ar) //bottom left
+                       {
+                               if ((vid_conwidth - center_x)/center_y < screen_ar) //bottom
+                                       panel_pos_y += f * (vid_conheight - panel_pos_y);
+                               else //left
+                                       panel_pos_x -= f * (panel_pos_x + panel_size_x);
+                       }
+                       else //top right
+                       {
+                               if ((vid_conwidth - center_x)/center_y < screen_ar) //right
+                                       panel_pos_x += f * (vid_conwidth - panel_pos_x);
+                               else //top
+                                       panel_pos_y -= f * (panel_pos_y + panel_size_y);
+                       }
+               }
+       }
 
+       float i, weapid, fade, weapon_stats, weapon_number, weapon_cnt;
        weapon_cnt = 0;
        for(i = WEP_FIRST; i <= WEP_LAST; ++i)
        {
@@ -1425,8 +1617,8 @@ void HUD_Weapons(void)
        HUD_Panel_DrawBg(1);
        if(panel_bg_padding)
        {
-               pos += '1 1 0' * panel_bg_padding;
-               mySize -= '2 2 0' * panel_bg_padding;
+               panel_pos += '1 1 0' * panel_bg_padding;
+               panel_size -= '2 2 0' * panel_bg_padding;
        }
 
        // hits
@@ -1449,7 +1641,7 @@ void HUD_Weapons(void)
        HUD_Weapons_Clear();
 
        float rows, columns;
-       rows = mySize_y/mySize_x;
+       rows = panel_size_y/panel_size_x;
        rows = bound(1, floor((sqrt(4 * autocvar_hud_panel_weapons_aspect * rows * WEP_COUNT + rows * rows) + rows + 0.5) / 2), WEP_COUNT);
 
        columns = ceil(WEP_COUNT/rows);
@@ -1467,8 +1659,8 @@ void HUD_Weapons(void)
 
        for(i = 0; i < weapon_cnt; ++i)
        {
-               wpnpos = pos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows);
-               wpnsize = eX * mySize_x*(1/columns) + eY * mySize_y*(1/rows);
+               wpnpos = panel_pos + eX * column * panel_size_x*(1/columns) + eY * row * panel_size_y*(1/rows);
+               wpnsize = eX * panel_size_x*(1/columns) + eY * panel_size_y*(1/rows);
 
                self = weaponorder[i];
                weapid = self.impulse;
@@ -1510,9 +1702,9 @@ void HUD_Weapons(void)
                        drawpic_aspect_skin(wpnpos, strcat("weapon", self.netname), wpnsize, '1 1 1', fade * panel_fg_alpha, DRAWFLAG_NORMAL);
 
                        if(autocvar_hud_panel_weapons_label == 1) // weapon number
-                               drawstring(wpnpos, ftos(weapid), '1 1 0' * 0.5 * mySize_y*(1/rows), '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+                               drawstring(wpnpos, ftos(weapid), '1 1 0' * 0.5 * panel_size_y*(1/rows), '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
                        else if(autocvar_hud_panel_weapons_label == 2) // bind
-                               drawstring(wpnpos, getcommandkey(ftos(weapid), strcat("impulse ", ftos(weapid))), '1 1 0' * 0.5 * mySize_y*(1/rows), '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+                               drawstring(wpnpos, getcommandkey(ftos(weapid), strcat("impulse ", ftos(weapid))), '1 1 0' * 0.5 * panel_size_y*(1/rows), '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 
                        // draw ammo status bar
                        if(autocvar_hud_panel_weapons_ammo && weapid != WEP_TUBA && weapid != WEP_LASER && weapid != WEP_PORTO)
@@ -1845,10 +2037,17 @@ void HUD_Powerups(void) {
        pos = panel_pos;
        mySize = panel_size;
 
-       float strength_time, shield_time;
-
-       strength_time = bound(0, getstatf(STAT_STRENGTH_FINISHED) - time, 99);
-       shield_time = bound(0, getstatf(STAT_INVINCIBLE_FINISHED) - time, 99);
+       float strength_time, shield_time;
+       if(autocvar__hud_configure)
+       {
+               strength_time = 15;
+               shield_time = 27;
+       }
+       else
+       {
+               strength_time = bound(0, getstatf(STAT_STRENGTH_FINISHED) - time, 99);
+               shield_time = bound(0, getstatf(STAT_INVINCIBLE_FINISHED) - time, 99);
+       }
 
        HUD_Panel_DrawBg(bound(0, max(strength_time, shield_time), 1));
        if(panel_bg_padding)
@@ -1857,12 +2056,6 @@ void HUD_Powerups(void) {
                mySize -= '2 2 0' * panel_bg_padding;
        }
 
-       if(autocvar__hud_configure)
-       {
-               strength_time = 15;
-               shield_time = 27;
-       }
-
        vector barpos, barsize;
        vector picpos;
        vector numpos;
@@ -2391,7 +2584,7 @@ void HUD_KillNotify_Push(string attacker, string victim, float actiontype, float
        killnotify_victims[0] = strzone(victim);
 }
 
-void HUD_KillNotify(string s1, string s2, string s3, float type, float msg)
+void HUD_KillNotify(string s1, string s2, string s3, float type, float msg) // s1 = attacker, s2 = victim
 {
        float w;
        float alsoprint, gentle;
@@ -2472,96 +2665,104 @@ void HUD_KillNotify(string s1, string s2, string s3, float type, float msg)
                }
                else if(type == KILL_FIRST_BLOOD)
                        print("^1",s1, "^1 drew first blood", "\n");
-               // TODO: icon!
-               else if (type == DEATH_TELEFRAG)
-                       print ("^1",s1, "^1 was telefragged by ", s2, "\n");
+               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");
+                       else
+                               print ("^1",s2, "^1 was telefragged by ", s1, "\n");
+               }
                else if (type == DEATH_DROWN) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_DROWN);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_DROWN);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was drowned by ", s2, "\n");
+                               print ("^1",s2, "^1 was drowned by ", s1, "\n");
                }
                else if (type == DEATH_SLIME) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_SLIME);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_SLIME);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was slimed by ", s2, "\n");
+                               print ("^1",s2, "^1 was slimed by ", s1, "\n");
                }
                else if (type == DEATH_LAVA) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_LAVA);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_LAVA);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was cooked by ", s2, "\n");
+                               print ("^1",s2, "^1 was cooked by ", s1, "\n");
                }
                else if (type == DEATH_FALL) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_FALL);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_FALL);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was grounded by ", s2, "\n");
+                               print ("^1",s2, "^1 was grounded by ", s1, "\n");
                }
                else if (type == DEATH_SHOOTING_STAR) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_SHOOTING_STAR);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_SHOOTING_STAR);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was shot into space by ", s2, "\n");
+                               print ("^1",s2, "^1 was shot into space by ", s1, "\n");
                }
                else if (type == DEATH_SWAMP) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was conserved by ", s2, "\n");
+                               print ("^1",s2, "^1 was conserved by ", s1, "\n");
                }
                else if (type == DEATH_HURTTRIGGER)
                {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_HURTTRIGGER);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_HURTTRIGGER);
                        if(alsoprint)
-                               print("^1",s1, "^1 was thrown into a world of hurt by ", s2, "\n");
+                               print("^1",s2, "^1 was thrown into a world of hurt by ", s1, "\n");
                } else if(type == DEATH_SBCRUSH) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was crushed by ^1", s2, "\n");
+                               print ("^1",s2, "^1 was crushed by ^1", s1, "\n");
                } else if(type == DEATH_SBMINIGUN) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 got shredded by ^1", s2, "\n");
+                               print ("^1",s2, "^1 got shredded by ^1", s1, "\n");
                } else if(type == DEATH_SBROCKET) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was blased to bits by ^1", s2, "\n");
+                               print ("^1",s2, "^1 was blased to bits by ^1", s1, "\n");
                } else if(type == DEATH_SBBLOWUP) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 got caught in the destruction of ^1", s2, "'s vehicle\n");
+                               print ("^1",s2, "^1 got caught in the destruction of ^1", s1, "'s vehicle\n");
                } else if(type == DEATH_WAKIGUN) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was bolted down by ^1", s2, "\n");
+                               print ("^1",s2, "^1 was bolted down by ^1", s1, "\n");
                } else if(type == DEATH_WAKIROCKET) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 could find no shelter from ^1", s2, "'s rockets\n");
+                               print ("^1",s2, "^1 could find no shelter from ^1", s1, "'s rockets\n");
                } else if(type == DEATH_WAKIBLOWUP) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 dies when ^1", s2, "'s wakizashi dies.\n");
+                               print ("^1",s2, "^1 dies when ^1", s1, "'s wakizashi dies.\n");
                } else if(type == DEATH_TURRET) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was pushed into the line of fire by ^1", s2, "\n");
+                               print ("^1",s2, "^1 was pushed into the line of fire by ^1", s1, "\n");
                } else if(type == DEATH_TOUCHEXPLODE) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was pushed into an accident by ^1", s2, "\n");
+                               print ("^1",s2, "^1 was pushed into an accident by ^1", s1, "\n");
                } else if(type == DEATH_CHEAT) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was unfairly eliminated by ^1", s2, "\n");
+                               print ("^1",s2, "^1 was unfairly eliminated by ^1", s1, "\n");
                } else if (type == DEATH_FIRE) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was burnt to death by ^1", s2, "\n");
+                               print ("^1",s2, "^1 was burnt to death by ^1", s1, "\n");
                } else if (type == DEATH_CUSTOM) {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_CUSTOM);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_CUSTOM);
                        if(alsoprint)
-                               print ("^1",s1, "^1 ", s2, "\n");
+                               print("^1", sprintf(s3, strcat(s2, "^1"), strcat(s1, "^1")), "\n");
+               } else if (type == DEATH_HURTTRIGGER) {
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_HURTTRIGGER);
+                       if(alsoprint)
+                               print("^1", sprintf(s3, strcat(s2, "^1"), strcat(s1, "^1")), "\n");
                } else {
-                       HUD_KillNotify_Push(s2, s1, 1, DEATH_GENERIC);
+                       HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was fragged by ", s2, "\n");
+                               print ("^1",s2, "^1 was fragged by ", s1, "\n");
                }
        } else if(msg == MSG_SPREE) {
                if(type == KILL_END_SPREE) {
@@ -2662,11 +2863,11 @@ void HUD_KillNotify(string s1, string s2, string s3, float type, float msg)
                } else if (type == DEATH_CUSTOM) {
                        HUD_KillNotify_Push(s1, "", 0, DEATH_CUSTOM);
                        if(alsoprint)
-                               print ("^1",s1, "^1 ", s2, "\n");
+                               print("^1", sprintf(s2, strcat(s1, "^1")), "\n");
                } else if (type == DEATH_HURTTRIGGER) {
                        HUD_KillNotify_Push(s1, "", 0, DEATH_HURTTRIGGER);
                        if(alsoprint)
-                               print ("^1",s1, "^1 was in the wrong place\n");
+                               print("^1", sprintf(s2, strcat(s1, "^1")), "\n");
                } else if(type == DEATH_TOUCHEXPLODE) {
                        HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
                        if(alsoprint)
@@ -2752,7 +2953,7 @@ void HUD_Centerprint(string s1, string s2, float type, float msg)
                                centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1Don't shoot your team mates!"));
                } else if (type == DEATH_QUIET) {
                        // do nothing
-               } else if (type == DEATH_KILL) {
+               } else { // generic message
                        if(gentle)
                                centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You need to be more careful!"));
                        else
@@ -2795,7 +2996,7 @@ void HUD_Centerprint(string s1, string s2, float type, float msg)
                        } else {
                                centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^4You fragged ^7", s1, s2));
                        }
-               } else if (type == KILL_FRAGGED) {
+               } else { // generic message
                        if(gentle) {
                                centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You were scored against by ^7", s1, s2));
                        } else {
@@ -2846,7 +3047,7 @@ void HUD_Notify (void)
        float width_attacker;
        string attacker, victim;
 
-       float i, j;
+       float i, j, w;
        for(j = 0; j < entries; ++j)
        {
                s = "";
@@ -2870,7 +3071,7 @@ void HUD_Notify (void)
                                a = 0;
                }
 
-               float w;
+               w = -1;
                w = DEATH_WEAPONOF(killnotify_deathtype[j]);
 
                // TODO: maybe print in team colors?
@@ -3024,6 +3225,10 @@ void HUD_Notify (void)
                        {
                                s = "notify_teamkill_red";
                        }
+                       else if(killnotify_deathtype[j] == DEATH_TELEFRAG)
+                       {
+                               s = "notify_telefrag";
+                       }
                        else if(killnotify_deathtype[j] == DEATH_DROWN)
                        {
                                s = "notify_water";
@@ -3547,6 +3752,17 @@ void HUD_VoteWindow(void)
        pos = panel_pos;
        mySize = panel_size;
 
+       if(!autocvar__hud_configure)
+       {
+               panel_fg_alpha = autocvar_hud_panel_fg_alpha;
+               panel_bg_alpha_str = autocvar_hud_panel_vote_bg_alpha;
+
+               if(panel_bg_alpha_str == "") {
+                       panel_bg_alpha_str = ftos(autocvar_hud_panel_bg_alpha);
+               }
+               panel_bg_alpha = stof(panel_bg_alpha_str);
+       }
+
        string s;
        float a;
        if(vote_active != vote_prev) {
@@ -3569,9 +3785,9 @@ void HUD_VoteWindow(void)
        if(!vote_alpha)
                return;
 
-       a = vote_alpha * bound(autocvar_hud_panel_vote_alreadyvoted_alpha, 1 - vote_highlighted, 1);
-
+       a = panel_bg_alpha * vote_alpha * bound(autocvar_hud_panel_vote_alreadyvoted_alpha, 1 - vote_highlighted, 1);
        HUD_Panel_DrawBg(a);
+       a = panel_fg_alpha * vote_alpha * bound(autocvar_hud_panel_vote_alreadyvoted_alpha, 1 - vote_highlighted, 1);
        if(panel_bg_padding)
        {
                pos += '1 1 0' * panel_bg_padding;
@@ -3597,37 +3813,37 @@ void HUD_VoteWindow(void)
        mySize = newSize;
 
        s = "A vote has been called for:";
-       drawstring_aspect(pos, s, eX * mySize_x + eY * (2/8) * mySize_y, '1 1 1', a * panel_fg_alpha, DRAWFLAG_NORMAL);
+       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.75/8), stringwidth_colors);
        if(autocvar__hud_configure)
                s = "^1Configure the HUD";
-       drawcolorcodedstring_aspect(pos + eY * (2/8) * mySize_y, s, eX * mySize_x + eY * (1.75/8) * mySize_y, a * panel_fg_alpha, DRAWFLAG_NORMAL);
+       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("not bound", "vyes"), "): ", ftos(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 * panel_fg_alpha, DRAWFLAG_NORMAL);
-       s = strcat("No (", getcommandkey("not bound", "vno"), "): ", ftos(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 * panel_fg_alpha, DRAWFLAG_NORMAL);
+       s = strcat("Yes (", getcommandkey("vyes", "vyes"), "): ", ftos(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));
+       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
-       drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_back", eX * mySize_x + eY * (3/8) * mySize_y, '1 1 1', a * panel_fg_alpha, DRAWFLAG_NORMAL);
+       drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_back", eX * mySize_x + eY * (3/8) * mySize_y, '1 1 1', a, DRAWFLAG_NORMAL);
 
        // draw the highlights
        if(vote_highlighted == 1) {
                drawsetcliparea(pos_x, pos_y, mySize_x * 0.5, mySize_y);
-               drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_voted", eX * mySize_x + eY * (3/8) * mySize_y, '0 1 0', a * panel_fg_alpha, DRAWFLAG_NORMAL);
+               drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_voted", eX * mySize_x + eY * (3/8) * mySize_y, '1 1 1', a, DRAWFLAG_NORMAL);
        }
        else if(vote_highlighted == 2) {
                drawsetcliparea(pos_x + 0.5 * mySize_x, pos_y, mySize_x * 0.5, mySize_y);
-               drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_voted", eX * mySize_x + eY * (3/8) * mySize_y, '0 1 0', a * panel_fg_alpha, DRAWFLAG_NORMAL);
+               drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_voted", eX * mySize_x + eY * (3/8) * mySize_y, '1 1 1', a, DRAWFLAG_NORMAL);
        }
 
        // draw the progress bars
        drawsetcliparea(pos_x, pos_y, mySize_x * 0.5 * (vote_yescount/vote_needed), mySize_y);
-       drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_prog", eX * mySize_x + eY * (3/8) * mySize_y, '0 1 0', a * panel_fg_alpha, DRAWFLAG_NORMAL);
+       drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_prog", eX * mySize_x + eY * (3/8) * mySize_y, '1 1 1', a, DRAWFLAG_NORMAL);
 
        drawsetcliparea(pos_x + mySize_x - mySize_x * 0.5 * (vote_nocount/vote_needed), pos_y, mySize_x * 0.5, mySize_y);
-       drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_prog", eX * mySize_x + eY * (3/8) * mySize_y, '1 0 0', a * panel_fg_alpha, DRAWFLAG_NORMAL);
+       drawpic_skin(pos + eY * (5/8) * mySize_y, "voteprogress_prog", eX * mySize_x + eY * (3/8) * mySize_y, '1 1 1', a, DRAWFLAG_NORMAL);
 
        drawresetcliparea();
 
@@ -4236,8 +4452,15 @@ void HUD_Chat(void)
        {
                panel_pos_y = panel_bg_border;
                panel_size_y = vid_conheight - panel_bg_border * 2;
-               if(panel_bg == "0")
-                       panel_bg = "border"; // force a border when maximized
+               if(panel_bg == "0") // force a border when maximized
+               {
+                       if(precache_pic(panel_bg) == "") {
+                               panel_bg = strcat(hud_skin_path, "/border_default");
+                               if(precache_pic(panel_bg) == "") {
+                                       panel_bg = "gfx/hud/default/border_default";
+                               }
+                       }
+               }
                panel_bg_alpha = max(0.75, panel_bg_alpha); // force an alpha of at least 0.75
        }
 
@@ -4305,29 +4528,32 @@ void HUD_EngineInfo(void)
                mySize -= '2 2 0' * panel_bg_padding;
        }
 
+       float currentTime = gettime(GETTIME_REALTIME);
        if(cvar("hud_panel_engineinfo_framecounter_exponentialmovingaverage"))
        {
-               frametimeavg = (frametimeavg + frametimeavg1 + frametimeavg2 + frametime)/4; // average three frametimes into framecounter for slightly more stable fps readings :P
+               float currentframetime = currentTime - prevfps_time;
+               frametimeavg = (frametimeavg + frametimeavg1 + frametimeavg2 + currentframetime)/4; // average three frametimes into framecounter for slightly more stable fps readings :P
                frametimeavg2 = frametimeavg1;
                frametimeavg1 = frametimeavg;
                
                float weight;
                weight = cvar("hud_panel_engineinfo_framecounter_exponentialmovingaverage_new_weight");
-               if(frametime > 0.0001) // filter out insane values which sometimes seem to occur and throw off the average? If you are getting 10,000 fps or more, then you don't need a framerate counter.
+               if(currentframetime > 0.0001) // filter out insane values which sometimes seem to occur and throw off the average? If you are getting 10,000 fps or more, then you don't need a framerate counter.
                {
-                       if(fabs(prevfps - (1/frametimeavg)) > prevfps * cvar("hud_panel_engineinfo_framecounter_exponentialmovingaverage_instantupdate_change_threshold")) // if there was a big jump in fps, just force prevfps at current (1/frametime) to make big updates instant
-                               prevfps = (1/frametime);
+                       if(fabs(prevfps - (1/frametimeavg)) > prevfps * cvar("hud_panel_engineinfo_framecounter_exponentialmovingaverage_instantupdate_change_threshold")) // if there was a big jump in fps, just force prevfps at current (1/currentframetime) to make big updates instant
+                               prevfps = (1/currentframetime);
                        prevfps = (1 - weight) * prevfps + weight * (1/frametimeavg); // framecounter just used so there's no need for a new variable, think of it as "frametime average"
                }
+               prevfps_time = currentTime;
        }
        else
        {
                framecounter += 1;
-               if(time - prevfps_time > cvar("hud_panel_engineinfo_framecounter_time"))
+               if(currentTime - prevfps_time > cvar("hud_panel_engineinfo_framecounter_time"))
                {
-                       prevfps = framecounter/cvar("hud_panel_engineinfo_framecounter_time");
+                       prevfps = framecounter/(currentTime - prevfps_time);
                        framecounter = 0;
-                       prevfps_time = time;
+                       prevfps_time = currentTime;
                }
        }
 
@@ -4340,6 +4566,11 @@ void HUD_EngineInfo(void)
 
 // Info messages panel (#14)
 //
+#define drawInfoMessage(s)\
+       if(autocvar_hud_panel_infomessages_flip)\
+               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize);\
+       drawcolorcodedstring(o, s, fontsize, a, DRAWFLAG_NORMAL);\
+       o_y += fontsize_y;
 void HUD_InfoMessages(void)
 {
        if(!autocvar_hud_panel_infomessages && !autocvar__hud_configure)
@@ -4383,6 +4614,12 @@ void HUD_InfoMessages(void)
        vector fontsize;
        fontsize = '0.20 0.20 0' * mySize_y;
        
+       float a;
+       if(spectatee_status != 0)
+               a = 1;
+       else
+               a = panel_fg_alpha;
+
        string s;
        if(!autocvar__hud_configure)
        {
@@ -4392,35 +4629,22 @@ void HUD_InfoMessages(void)
                                s = "^1Observing";
                        else
                                s = strcat("^1Spectating: ^7", GetPlayerName(spectatee_status - 1));
-
-                       if(autocvar_hud_panel_infomessages_flip)
-                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       o += eY * fontsize_y;
+                       drawInfoMessage(s)
 
                        if(spectatee_status == -1)
-                               s = strcat("^1Press ^3", getcommandkey("primary fire", "+attack"), "^1 to spectate");
+                               s = strcat("^1Press ^3", getcommandkey("primary fire", "+fire"), "^1 to spectate");
                        else
-                               s = strcat("^1Press ^3", getcommandkey("primary fire", "+attack"), "^1 for another player");
-                       if(autocvar_hud_panel_infomessages_flip)
-                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       o += eY * fontsize_y;
+                               s = strcat("^1Press ^3", getcommandkey("primary fire", "+fire"), "^1 for another player");
+                       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");
                        else
-                               s = strcat("^1Press ^3", getcommandkey("secondary fire", "+attack2"), "^1 to observe");
-                       if(autocvar_hud_panel_infomessages_flip)
-                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       o += eY * fontsize_y;
+                               s = strcat("^1Press ^3", getcommandkey("secondary fire", "+fire2"), "^1 to observe");
+                       drawInfoMessage(s)
 
                        s = strcat("^1Press ^3", getcommandkey("server info", "+show_info"), "^1 for gamemode info");
-                       if(autocvar_hud_panel_infomessages_flip)
-                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       o += eY * fontsize_y;
+                       drawInfoMessage(s)
 
                        if(gametype == GAME_ARENA)
                                s = "^1Wait for your turn to join";
@@ -4437,10 +4661,7 @@ void HUD_InfoMessages(void)
                        }
                        else
                                s = strcat("^1Press ^3", getcommandkey("jump", "+jump"), "^1 to join");
-                       if(autocvar_hud_panel_infomessages_flip)
-                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       o += eY * fontsize_y;
+                       drawInfoMessage(s)
 
                        //show restart countdown:
                        if (time < getstatf(STAT_GAMESTARTTIME)) {
@@ -4448,17 +4669,14 @@ void HUD_InfoMessages(void)
                                //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");
-                               drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                               o += eY * fontsize_y;
+                               drawcolorcodedstring(o, s, fontsize, a, DRAWFLAG_NORMAL);
+                               o_y += fontsize_y;
                        }
                }
                if(warmup_stage && !intermission)
                {
                        s = "^2Currently in ^1warmup^2 stage!";
-                       if(autocvar_hud_panel_infomessages_flip)
-                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       o += eY * fontsize_y;
+                       drawInfoMessage(s)
                }
 
                string blinkcolor;
@@ -4483,18 +4701,12 @@ void HUD_InfoMessages(void)
                                else
                                        s = strcat("^2Waiting for others to ready up...");
                        }
-                       if(autocvar_hud_panel_infomessages_flip)
-                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       o += eY * fontsize_y;
+                       drawInfoMessage(s)
                }
                else if(warmup_stage && !intermission && !spectatee_status)
                {
                        s = strcat("^2Press ^3", getcommandkey("ready", "ready"), "^2 to end warmup");
-                       if(autocvar_hud_panel_infomessages_flip)
-                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       o += eY * fontsize_y;
+                       drawInfoMessage(s)
                }
 
                if(teamplay && !intermission && !spectatee_status && gametype != GAME_CA && teamnagger)
@@ -4520,11 +4732,7 @@ void HUD_InfoMessages(void)
                                        if (tm.team != COLOR_SPECTATOR)
                                        if (tm.team_size == ts_max)
                                                s = strcat(s, " Press ^3", getcommandkey("team menu", "menu_showteamselect"), blinkcolor, " to adjust");
-
-                                       if(autocvar_hud_panel_infomessages_flip)
-                                               o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-                                       drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                                       o += eY * fontsize_y;
+                                       drawInfoMessage(s)
                                }
                        }
                }
@@ -4532,25 +4740,13 @@ void HUD_InfoMessages(void)
        else 
        {
                s = "^7Press ^3ESC ^7to show HUD options.";
-               if(autocvar_hud_panel_infomessages_flip)
-                       o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-               drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-               o += eY * fontsize_y;
+               drawInfoMessage(s)
                s = "^3Doubleclick ^7a panel for panel-specific options.";
-               if(autocvar_hud_panel_infomessages_flip)
-                       o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-               drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-               o += eY * fontsize_y;
+               drawInfoMessage(s)
                s = "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and";
-               if(autocvar_hud_panel_infomessages_flip)
-                       o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-               drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-               o += eY * fontsize_y;
+               drawInfoMessage(s)
                s = "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments.";
-               if(autocvar_hud_panel_infomessages_flip)
-                       o_x = pos_x + mySize_x - stringwidth(s, TRUE, fontsize); 
-               drawcolorcodedstring(o, s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-               o += eY * fontsize_y;
+               drawInfoMessage(s)
        }
 }
 
@@ -4703,10 +4899,19 @@ void HUD_Main (void)
 {
        hud_skin_path = strcat("gfx/hud/", autocvar_hud_skin);
 
+       // global hud alpha fade
        if(disable_menu_alphacheck == 1)
-               menu_fade_alpha = 1;
+               hud_fade_alpha = 1;
        else
-               menu_fade_alpha = (1 - autocvar__menu_alpha);
+               hud_fade_alpha = (1 - autocvar__menu_alpha);
+
+       if(scoreboard_fade_alpha)
+               hud_fade_alpha = (1 - scoreboard_fade_alpha);
+
+       if(intermission == 2) // no hud during mapvote
+               hud_fade_alpha = 0;
+       else if(autocvar__menu_alpha == 0 && scoreboard_fade_alpha == 0)
+               hud_fade_alpha = 1;
 
        hud_border_thickness = bound(0, cvar("hud_border_thickness"), 5);
        hud_accuracy_border_thickness = bound(0, cvar_or("hud_accuracy_border_thickness", 1), 5);
@@ -4758,9 +4963,12 @@ void HUD_Main (void)
                string pic;
                pic = strcat(hud_skin_path, "/", autocvar_hud_dock);
                if(precache_pic(pic) == "") {
-                       pic = "gfx/hud/default/dock";
+                       pic = strcat(hud_skin_path, "/dock_medium");
+                       if(precache_pic(pic) == "") {
+                               pic = "gfx/hud/default/dock_medium";
+                       }
                }
-               drawpic('0 0 0', pic, eX * vid_conwidth + eY * vid_conheight, color, autocvar_hud_dock_alpha * menu_fade_alpha, DRAWFLAG_NORMAL); // no aspect ratio forcing on dock...
+               drawpic('0 0 0', pic, eX * vid_conwidth + eY * vid_conheight, color, autocvar_hud_dock_alpha * hud_fade_alpha, DRAWFLAG_NORMAL); // no aspect ratio forcing on dock...
        }
 
        // cache the panel order into the panel_order array
index bdc533e..e311c66 100644 (file)
@@ -1,5 +1,7 @@
 float log(float f);
 
+vector centerprint_start;
+
 float panel_order[HUD_PANEL_NUM];
 string hud_panelorder_prev;
 
@@ -31,6 +33,7 @@ float ts_primary, ts_secondary;
 
 float last_weapon;
 float weapontime;
+float weaponprevtime;
 
 float teamnagger;
 float hud_accuracy_hud;
@@ -46,12 +49,19 @@ const float S_CTRL = 2;
 const float S_ALT = 4;
 
 float disable_menu_alphacheck; // 0 = enable alpha check, 1 = disable for entire hud, 2 = disable for one panel
-float menu_fade_alpha;
+float hud_fade_alpha;
 
 string hud_skin_path;
 
 var vector progressbar_color;
 
+var float highlightedPanel_backup = -1;
+var vector panel_pos_backup;
+var vector panel_size_backup;
+
+var float highlightedPanel_copied = -1; //this is good only to know if there is something copied
+var vector panel_size_copied;
+
 var float active_panel; // this panel has recently referred the UpdateCvars macro
 var string panel_name;
 var float panel_enabled;
@@ -85,7 +95,7 @@ var string picpath;
 // ----------------------
 // MACRO HELL STARTS HERE
 // ----------------------
-// Little help for the poor people who have to make sense of this: Start from the bottom
+// Little help for the poor people who have to make sense of this: Start from the bottom ;)
 
 #define HUD_Panel_GetProgressBarColor(item) \
 switch(item) {\
@@ -104,18 +114,19 @@ if(!autocvar__hud_configure && panel_bg_str == "0") {\
        panel_bg = "0";\
 } else {\
        if(panel_bg_str == "") {\
-               panel_bg = autocvar_hud_panel_bg;\
-       } else if(panel_bg_str == "0" && autocvar__hud_configure) {\
-               panel_bg = autocvar_hud_panel_bg;\
-               panel_bg_alpha_str = "0";\
-       } else {\
-               panel_bg = panel_bg_str;\
+               panel_bg_str = autocvar_hud_panel_bg;\
        }\
-       panel_bg = strcat(hud_skin_path, "/", panel_bg);\
-       if(precache_pic(panel_bg) == "") {\
-               panel_bg = strcat(hud_skin_path, "/", "border");\
+       if(panel_bg_str == "0" && !autocvar__hud_configure) {\
+                       panel_bg = "0";\
+       } else {\
+               if (panel_bg_str == "0" && autocvar__hud_configure)\
+                       panel_bg_alpha_str = "0";\
+               panel_bg = strcat(hud_skin_path, "/", panel_bg_str);\
                if(precache_pic(panel_bg) == "") {\
-                       panel_bg = strcat("gfx/hud/default/", "border");\
+                       panel_bg = strcat(hud_skin_path, "/", "border_default");\
+                       if(precache_pic(panel_bg) == "") {\
+                               panel_bg = strcat("gfx/hud/default/", "border_default");\
+                       }\
                }\
        }\
 }
@@ -162,7 +173,7 @@ if(autocvar__hud_configure && disable_menu_alphacheck == 2 && highlightedPanel =
 } if(autocvar__hud_configure && !panel_enabled) {\
        panel_bg_alpha = 0.25;\
 } if(!(disable_menu_alphacheck == 2 && highlightedPanel == active_panel)) {\
-       panel_bg_alpha *= menu_fade_alpha;\
+       panel_bg_alpha *= hud_fade_alpha;\
 }
 
 // Get value for panel_fg_alpha. Also do various minalpha checks
@@ -173,7 +184,7 @@ panel_fg_alpha = autocvar_hud_panel_fg_alpha;\
 if(autocvar__hud_configure && !panel_enabled)\
        panel_fg_alpha = 0.25;\
 if(!(disable_menu_alphacheck == 2 && highlightedPanel == active_panel))\
-       panel_fg_alpha *= menu_fade_alpha;
+       panel_fg_alpha *= hud_fade_alpha;
 
 // Get border. See comments above, it's similar.
 #define HUD_Panel_GetBorder()\
index 5593570..5ee28b0 100644 (file)
@@ -24,7 +24,8 @@ void InterpolateOrigin_Note()
        self.iorigin2 = self.origin;
 
        if(self.iflags & IFLAG_AUTOANGLES)
-               self.angles = vectoangles(self.iorigin2 - self.iorigin1);
+               if(self.iorigin2 != self.iorigin1)
+                       self.angles = vectoangles(self.iorigin2 - self.iorigin1);
 
        if(self.iflags & IFLAG_ANGLES)
        {
index 23ced4b..6703b1b 100644 (file)
@@ -35,11 +35,11 @@ void Draw_Laser()
        {
                if(self.alpha)
                {
-                       Draw_CylindricLine(self.origin, trace_endpos, self.scale, "particles/laserbeam", 0, time * 3, self.colormod, self.alpha, DRAWFLAG_NORMAL); // TODO make a texture to make the laser look smoother
+                       Draw_CylindricLine(self.origin, trace_endpos, self.scale, "particles/laserbeam", 0, time * 3, self.colormod, self.alpha, DRAWFLAG_NORMAL, view_origin);
                }
                else
                {
-                       Draw_CylindricLine(self.origin, trace_endpos, self.scale, "particles/laserbeam", 0, time * 3, self.colormod, 0.5, DRAWFLAG_ADDITIVE); // TODO make a texture to make the laser look smoother
+                       Draw_CylindricLine(self.origin, trace_endpos, self.scale, "particles/laserbeam", 0, time * 3, self.colormod, 0.5, DRAWFLAG_ADDITIVE, view_origin);
                }
        }
        if not(trace_dphitq3surfaceflags & (Q3SURFACEFLAG_SKY | Q3SURFACEFLAG_NOIMPACT))
index 0269874..ed8f84f 100644 (file)
@@ -8,7 +8,7 @@ void serverAnnouncer()
        // check for pending announcement, play it and remove it
        if(announce_snd != "")
        {
-               sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/", announce_snd, ".wav"), VOL_BASEVOICE, ATTN_NONE);
+               sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/", announce_snd, ".wav"), VOL_BASEVOICE, ATTN_NONE);
                strunzone(announce_snd);
                announce_snd = "";
        }
@@ -22,7 +22,7 @@ void restartAnnouncer_Think() {
                if (!spectatee_status) //do cprint only for players
                        centerprint("^1Begin!");
 
-               sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/begin.wav"), VOL_BASEVOICE, ATTN_NONE);
+               sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/begin.wav"), VOL_BASEVOICE, ATTN_NONE);
                //reset maptime announcers now as well
                announcer_5min = announcer_1min = FALSE;
 
@@ -34,7 +34,7 @@ void restartAnnouncer_Think() {
                        centerprint(strcat("^1Game starts in ", ftos(countdown_rounded), " seconds"));
 
                if(countdown_rounded <= 3 && countdown_rounded >= 1) {
-                       sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/", ftos(countdown_rounded), ".wav"), VOL_BASEVOICE, ATTN_NONE);
+                       sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/", ftos(countdown_rounded), ".wav"), VOL_BASEVOICE, ATTN_NONE);
                }
 
                self.nextthink = getstatf(STAT_GAMESTARTTIME) - (countdown - 1);
@@ -72,7 +72,7 @@ void maptimeAnnouncer() {
                        if not (warmuplimit == -1 && warmup_stage) {
                                announcer_5min = TRUE;
                                //dprint("i will play the sound, I promise!\n");
-                               sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/5minutesremain.wav"), VOL_BASEVOICE, ATTN_NONE);
+                               sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/5minutesremain.wav"), VOL_BASEVOICE, ATTN_NONE);
                        }
        }
 
@@ -87,7 +87,7 @@ void maptimeAnnouncer() {
                        //if we're in warmup mode, check whether there's a warmup timelimit
                        if not (warmuplimit == -1 && warmup_stage) {
                                announcer_1min = TRUE;
-                               sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/1minuteremains.wav"), VOL_BASEVOICE, ATTN_NONE);
+                               sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/1minuteremains.wav"), VOL_BASEVOICE, ATTN_NONE);
                        }
        }
 }
@@ -324,19 +324,6 @@ vector HUD_GetFontsize(string cvarname)
        return v;
 }
 
-float HUD_GetWidth(float teamcolumnwidth)
-{
-       float f;
-       f = cvar("hud_width");
-       if(f == 0)
-               f = 640;
-       if(f < 320)
-               f = 320;
-       if(f > vid_conwidth - 2 * teamcolumnwidth)
-               f = vid_conwidth - 2 * teamcolumnwidth;
-       return f;
-}
-
 float PreviewExists(string name)
 {
        float f;
index e0bbeb8..d4a95b7 100644 (file)
@@ -58,7 +58,7 @@ void Draw_PointParticles()
                        if(self.noise != "")
                        {
                                self.origin = p;
-                               sound(self, CHAN_AUTO, self.noise, VOL_BASE * self.volume, self.atten);
+                               sound(self, CHAN_TRIGGER, self.noise, VOL_BASE * self.volume, self.atten);
                        }
                        self.just_toggled = 0;
                }
index 4569e49..1334d7d 100644 (file)
@@ -22,6 +22,7 @@ autocvars.qh
 interpolate.qh
 teamradar.qh
 hud.qh
+scoreboard.qh
 waypointsprites.qh
 movetypes.qh
 prandom.qh
index 407b86c..9a77337 100644 (file)
@@ -72,7 +72,8 @@ void Projectile_Draw()
                else
                        Movetype_Physics_MatchServer(autocvar_cl_projectiles_sloppy);
                if(!(self.move_flags & FL_ONGROUND))
-                       self.angles = vectoangles(self.velocity);
+                       if(self.velocity != '0 0 0')
+                               self.angles = vectoangles(self.velocity);
        }
        else
        {
@@ -318,12 +319,12 @@ void Ent_Projectile()
                                self.maxs = '3 3 3';
                                break;
                        case PROJECTILE_GRENADE:
-                               self.mins = '0 0 -3';
-                               self.maxs = '0 0 -3';
+                               self.mins = '-3 -3 -3';
+                               self.maxs = '3 3 3';
                                break;
                        case PROJECTILE_GRENADE_BOUNCING:
-                               self.mins = '0 0 -3';
-                               self.maxs = '0 0 -3';
+                               self.mins = '-3 -3 -3';
+                               self.maxs = '3 3 3';
                                self.move_movetype = MOVETYPE_BOUNCE;
                                self.move_touch = SUB_Null;
                                self.move_bounce_factor = g_balance_grenadelauncher_secondary_bouncefactor;
index 29fb206..76b19a5 100644 (file)
@@ -595,8 +595,8 @@ string HUD_FixScoreboardColumnWidth(float i, string str)
                for(j = 0; j < hud_num_fields; ++j)
                        if(j != i)
                                if (hud_field[i] != SP_SEPARATOR)
-                                       namesize -= hud_size[j] + 1;
-               namesize += 1;
+                                       namesize -= hud_size[j] + hud_fontsize_x;
+               namesize += hud_fontsize_x;
                hud_size[i] = namesize;
 
                if (hud_fixscoreboardcolumnwidth_iconlen != 0)
@@ -760,7 +760,10 @@ vector HUD_Scoreboard_MakeTable(vector pos, entity tm, vector rgb, vector bg_siz
        tmp_y = 1.25 * hud_fontsize_y;
 
        // rounded header
-       drawpic(pos, "gfx/scoreboard/scoreboard_tableheader", tmp, (rgb * autocvar_hud_color_bg_team) + '0.5 0.5 0.5', scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+       if (teamplay)
+               drawpic(pos, "gfx/scoreboard/scoreboard_tableheader", tmp, (rgb * autocvar_scoreboard_color_bg_team) + '0.5 0.5 0.5', scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+       else
+               drawpic(pos, "gfx/scoreboard/scoreboard_tableheader", tmp, rgb + '0.5 0.5 0.5', scoreboard_alpha_bg, DRAWFLAG_NORMAL);
 
        // table border
        tmp_y += hud_border_thickness;
@@ -776,7 +779,10 @@ vector HUD_Scoreboard_MakeTable(vector pos, entity tm, vector rgb, vector bg_siz
 
        // table background
        tmp_y = body_table_height;
-       drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb * autocvar_hud_color_bg_team, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+       if (teamplay)
+               drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb * autocvar_scoreboard_color_bg_team, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+       else
+               drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
 
        // anyway, apply some color
        //drawfill(pos, tmp + '2 0 0', rgb, 0.1, DRAWFLAG_NORMAL);
@@ -877,7 +883,7 @@ float HUD_WouldDrawScoreboard() {
                return 1;
        else if (intermission == 1)
                return 1;
-       else if (intermission == 2)
+       else if (intermission == 2 && scoreboard_showscores)
                return 1;
        else if (getstati(STAT_HEALTH) <= 0 && cvar("cl_deathscoreboard"))
                return 1;
@@ -907,12 +913,15 @@ vector HUD_DrawScoreboardAccuracyStats(vector pos, vector rgb, vector bg_size)
        }
 
        drawstring(pos, strcat("Accuracy stats (average ", ftos(average_accuracy), "%)"), hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
-       pos_y += 18;
+       pos_y += 1.25 * hud_fontsize_y;
        vector tmp;
        tmp_x = sbwidth;
        tmp_y = height * rows;
 
-       drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb * autocvar_hud_color_bg_team, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+       if (teamplay)
+               drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb * autocvar_scoreboard_color_bg_team, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+       else
+               drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
        drawborderlines(hud_accuracy_border_thickness, pos, tmp, '0 0 0', scoreboard_alpha_bg * 0.75, DRAWFLAG_NORMAL);
 
        // column highlighting
@@ -1006,6 +1015,8 @@ vector HUD_DrawScoreboardAccuracyStats(vector pos, vector rgb, vector bg_size)
                pos_x -= sbwidth/weapon_cnt / 2;
        pos_x -= sbwidth;
        pos_y += height;
+
+       pos_y +=  1.25 * hud_fontsize_y;
        return pos;
 }
 
@@ -1013,9 +1024,9 @@ vector HUD_DrawScoreboardRankings(vector pos, entity pl,  vector rgb, vector bg_
 {
        float i;
        RANKINGS_RECEIVED_CNT = 0;
-               for (i=RANKINGS_CNT-1; i>=0; --i)
-                       if (grecordtime[i])
-                               RANKINGS_RECEIVED_CNT = RANKINGS_RECEIVED_CNT + 1;
+       for (i=RANKINGS_CNT-1; i>=0; --i)
+               if (grecordtime[i])
+                       ++RANKINGS_RECEIVED_CNT;
 
        if (RANKINGS_RECEIVED_CNT == 0)
                return pos;
@@ -1023,9 +1034,9 @@ vector HUD_DrawScoreboardRankings(vector pos, entity pl,  vector rgb, vector bg_
        float is_spec;
        is_spec = (GetPlayerColor(pl.sv_entnum) == COLOR_SPECTATOR);
        vector hl_rgb;
-               hl_rgb_x = cvar("scoreboard_color_bg_r") + 0.5;
-               hl_rgb_y = cvar("scoreboard_color_bg_g") + 0.5;
-               hl_rgb_z = cvar("scoreboard_color_bg_b") + 0.5;
+       hl_rgb_x = cvar("scoreboard_color_bg_r") + 0.5;
+       hl_rgb_y = cvar("scoreboard_color_bg_g") + 0.5;
+       hl_rgb_z = cvar("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);
@@ -1034,7 +1045,10 @@ vector HUD_DrawScoreboardRankings(vector pos, entity pl,  vector rgb, vector bg_
        tmp_x = sbwidth;
        tmp_y = hud_fontsize_y * RANKINGS_RECEIVED_CNT;
 
-       drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb * autocvar_hud_color_bg_team, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+       if (teamplay)
+               drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb * autocvar_scoreboard_color_bg_team, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+       else
+               drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
        drawborderlines(hud_border_thickness, pos, tmp, '0 0 0', scoreboard_alpha_bg * 0.75, DRAWFLAG_NORMAL);
 
        // row highlighting
@@ -1054,13 +1068,12 @@ vector HUD_DrawScoreboardRankings(vector pos, entity pl,  vector rgb, vector bg_
                drawstring(pos, p, hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
                drawstring(pos + '3 0 0' * hud_fontsize_x, TIME_ENCODED_TOSTRING(t), hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
                drawcolorcodedstring(pos + '8 0 0' * hud_fontsize_x, n, hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
-               pos += '0 1 0' * hud_fontsize_y;
+               pos_y += 1.25 * hud_fontsize_y;
        }
 
        return pos;
 }
 
-float scoreboard_fade_alpha;
 float hud_woulddrawscoreboard_prev;
 float hud_woulddrawscoreboard_change; // "time" at which HUD_WouldDrawScoreboard() changed
 void HUD_DrawScoreboard()
@@ -1102,13 +1115,11 @@ void HUD_DrawScoreboard()
        vector rgb, pos, tmp;
        entity pl, tm;
 
-       sbwidth = HUD_GetWidth(6.5 * hud_fontsize_y);
-
-       xmin = 0.5 * (vid_conwidth - sbwidth);
-       ymin = SCOREBOARD_OFFSET;
+       xmin = cvar("scoreboard_offset_left") * vid_conwidth;
+       ymin = cvar("con_notify") * cvar("con_notifysize");
 
-       xmax = vid_conwidth - xmin;
-       ymax = vid_conheight - 0.2*vid_conheight;
+       sbwidth = xmax = vid_conwidth - xmin - cvar("scoreboard_offset_right") * vid_conwidth;
+       ymax = vid_conheight - ymin;
 
        // Initializes position
        pos_x = xmin;
@@ -1117,10 +1128,12 @@ void HUD_DrawScoreboard()
 
        // Heading
        drawfont = hud_bigfont;
-       drawstringcenter('0 1 0' * ymin, "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_y = pos_y;
 
-       pos_y += 24 + 4;
-       pos_y += hud_fontsize_y;
+       pos_y += 24;
 
        drawfont = hud_font;
 
@@ -1136,10 +1149,10 @@ void HUD_DrawScoreboard()
                                continue;
 
                        rgb = GetTeamRGB(tm.team);
-                       drawstring(pos - '9.5 0 0' * hud_fontsize_y + '0 1 0' * hud_fontsize_y, ftos(tm.(teamscores[ts_primary])), '1 1 0' * hud_fontsize_y * 1.5, rgb, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+                       drawstring(pos - '2 0 0' * hud_fontsize_x + '0 1 0' * hud_fontsize_y, ftos(tm.(teamscores[ts_primary])), '1 1 0' * hud_fontsize_y * 1.5, rgb, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
 
                        if(ts_primary != ts_secondary)
-                               drawstring(pos - '7.5 0 0' * hud_fontsize_y + '0 2.5 0' * hud_fontsize_y, ftos(tm.(teamscores[ts_secondary])), '1 1 0' * hud_fontsize_y * 1, rgb, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+                               drawstring(pos - '2 0 0' * hud_fontsize_x + '0 2.5 0' * hud_fontsize_y, ftos(tm.(teamscores[ts_secondary])), '1 1 0' * hud_fontsize_y * 1, rgb, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
 
                        pos = HUD_Scoreboard_MakeTable(pos, tm, rgb, bg_size);
                }
@@ -1177,23 +1190,24 @@ void HUD_DrawScoreboard()
                        pos = HUD_DrawScoreboardAccuracyStats(pos, rgb, bg_size);
        }
 
-       tmp = pos + '0 1.5 0' * hud_fontsize_y;
-       pos_y += 3 * hud_fontsize_y;
-
        // List spectators
        float specs;
        specs = 0;
+       tmp = pos;
        for(pl = players.sort_next; pl; pl = pl.sort_next)
        {
                if(pl.team != COLOR_SPECTATOR)
                        continue;
-               HUD_PrintScoreboardItem(pos, pl, (pl.sv_entnum == player_localentnum - 1), specs);
                pos_y += 1.25 * hud_fontsize_y;
+               HUD_PrintScoreboardItem(pos, pl, (pl.sv_entnum == player_localentnum - 1), specs);
                ++specs;
        }
 
        if(specs)
+       {
                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;
diff --git a/qcsrc/client/scoreboard.qh b/qcsrc/client/scoreboard.qh
new file mode 100644 (file)
index 0000000..b39b48e
--- /dev/null
@@ -0,0 +1,2 @@
+float HUD_WouldDrawScoreboard(void);
+float scoreboard_fade_alpha;
index dbb8841..55b5650 100644 (file)
@@ -106,17 +106,17 @@ void(vector coord3d, vector pangles, vector rgb) draw_teamradar_player =
                rgb2 = '1 1 1';
 
        R_BeginPolygon("", 0);
-       R_PolygonVertex(coord+v_forward*3, '0 0 0', rgb2, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(coord+v_right*4-v_forward*2.5, '0 1 0', rgb2, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(coord-v_forward*2, '1 0 0', rgb2, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(coord-v_right*4-v_forward*2.5, '1 1 0', rgb2, autocvar_hud_panel_fg_alpha);
+       R_PolygonVertex(coord+v_forward*3, '0 0 0', rgb2, panel_fg_alpha);
+       R_PolygonVertex(coord+v_right*4-v_forward*2.5, '0 1 0', rgb2, panel_fg_alpha);
+       R_PolygonVertex(coord-v_forward*2, '1 0 0', rgb2, panel_fg_alpha);
+       R_PolygonVertex(coord-v_right*4-v_forward*2.5, '1 1 0', rgb2, panel_fg_alpha);
        R_EndPolygon();
 
        R_BeginPolygon("", 0);
-       R_PolygonVertex(coord+v_forward*2, '0 0 0', rgb, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(coord+v_right*3-v_forward*2, '0 1 0', rgb, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(coord-v_forward, '1 0 0', rgb, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(coord-v_right*3-v_forward*2, '1 1 0', rgb, autocvar_hud_panel_fg_alpha);
+       R_PolygonVertex(coord+v_forward*2, '0 0 0', rgb, panel_fg_alpha);
+       R_PolygonVertex(coord+v_right*3-v_forward*2, '0 1 0', rgb, panel_fg_alpha);
+       R_PolygonVertex(coord-v_forward, '1 0 0', rgb, panel_fg_alpha);
+       R_PolygonVertex(coord-v_right*3-v_forward*2, '1 1 0', rgb, panel_fg_alpha);
        R_EndPolygon();
 };
 
@@ -161,10 +161,10 @@ void draw_teamradar_link(vector start, vector end, float colors)
        c1 = colormapPaletteColor((colors & 0xF0) / 0x10, FALSE);
 
        R_BeginPolygon("", 0);
-       R_PolygonVertex(start - norm, '0 0 0', c0, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(start + norm, '0 1 0', c0, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(end + norm, '1 1 0', c1, autocvar_hud_panel_fg_alpha);
-       R_PolygonVertex(end - norm, '1 0 0', c1, autocvar_hud_panel_fg_alpha);
+       R_PolygonVertex(start - norm, '0 0 0', c0, panel_fg_alpha);
+       R_PolygonVertex(start + norm, '0 1 0', c0, panel_fg_alpha);
+       R_PolygonVertex(end + norm, '1 1 0', c1, panel_fg_alpha);
+       R_PolygonVertex(end - norm, '1 0 0', c1, panel_fg_alpha);
        R_EndPolygon();
 }
 
@@ -179,14 +179,14 @@ void teamradar_loadcvars()
 {
        v_flipped = cvar("v_flipped");
        hud_panel_radar_scale = cvar("hud_panel_radar_scale");
-       hud_panel_radar_foreground_alpha = cvar("hud_panel_radar_foreground_alpha") * autocvar_hud_panel_fg_alpha;
+       hud_panel_radar_foreground_alpha = cvar("hud_panel_radar_foreground_alpha") * panel_fg_alpha;
        hud_panel_radar_rotation = cvar("hud_panel_radar_rotation");
        hud_panel_radar_zoommode = cvar("hud_panel_radar_zoommode");
 
        // others default to 0
        // match this to defaultXonotic.cfg!
        if(!hud_panel_radar_scale) hud_panel_radar_scale = 4096;
-       if(!hud_panel_radar_foreground_alpha) hud_panel_radar_foreground_alpha = 0.8 * autocvar_hud_panel_fg_alpha;
+       if(!hud_panel_radar_foreground_alpha) hud_panel_radar_foreground_alpha = 0.8 * panel_fg_alpha;
        if(!hud_panel_radar_size_x) hud_panel_radar_size_x = 128;
        if(!hud_panel_radar_size_y) hud_panel_radar_size_y = hud_panel_radar_size_x;
 
index d7b9ee9..a001732 100644 (file)
@@ -436,11 +436,7 @@ void WaypointSprite_Load()
                for(i = 0; i < n; ++i)
                {
                        s = search_getfilename(dh, i);
-                       if(substring(s, 0, 15) != "models/sprites/")
-                               continue;
-                       if(substring(s, strlen(s) - 4, 4) != ".tga")
-                               continue;
-                       s = substring(s, 15, strlen(s) - 19);
+                       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));
index 53f37bc..5ebeb54 100644 (file)
@@ -398,7 +398,7 @@ float       CHAN_AUTO                               = 0;
        // on world: announcers, ...                     INFO
        // on players: item pickup                       ITEMS
        // on entities: UNUSED
-       // on csqc: UNUSED
+       // on csqc: announcers                           INFO
 float  CHAN_WEAPON                             = 1; // Weapon fire
        // on world: UNUSED
        // on players: weapon firing                     WEAPONS
@@ -413,7 +413,7 @@ float       CHAN_TRIGGER                    = 3; // Triggers/Items
        // on world: UNUSED
        // on players: item pickup                       ITEMS
        // on entities: platforms moving etc.            ITEMS
-       // on csqc: UNUSED
+       // on csqc: platforms moving etc.                ITEMS
 float  CHAN_PROJECTILE                 = 4; // Projectiles
        // on world: UNUSED
        // on players: projectiles hitting player        SHOTS
index 1fd2cf8..10b5943 100644 (file)
@@ -720,7 +720,7 @@ float MapInfo_Get_ByName(string pFilename, float pAllowGenerate, float pGametype
 
                for(i = 1; i <= MapInfo_Map_supportedGametypes; i *= 2)
                        if(MapInfo_Map_supportedGametypes & i)
-                               fputs(fh, sprintf("type %s %s\n", i, MapInfo_GetDefault(i)));
+                               fputs(fh, sprintf("type %s %s\n", MapInfo_Type_ToString(i), MapInfo_GetDefault(i)));
 
                fh2 = fopen(strcat("scripts/", pFilename, ".arena"), FILE_READ);
                if(fh2 >= 0)
index 72af701..f33512f 100644 (file)
@@ -1913,3 +1913,9 @@ float get_model_parameters(string m, float sk)
 
        return 1;
 }
+
+vector vec2(vector v)
+{
+       v_z = 0;
+       return v;
+}
index f2c2e67..767092c 100644 (file)
@@ -236,3 +236,5 @@ switch(id) { \
        case HUD_PANEL_CHAT: panel_name = HUD_PANELNAME_CHAT; break; \
 }\
 HUD_Panel_GetName_Part2(id)
+
+vector vec2(vector v);
index c0568b1..9ebcbb8 100644 (file)
 #include "xonotic/dialog_hudpanel_engineinfo.c"
 #include "xonotic/dialog_hudpanel_infomessages.c"
 #include "xonotic/dialog_hudpanel_weapons.c"
+#include "xonotic/slider_picmip.c"
index cec73d6..a33cac9 100644 (file)
@@ -69,6 +69,8 @@ void draw_PreloadPicture(string pic)
 
 void draw_Picture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha)
 {
+       if(theSize_x == 0 || theSize_y <= 0) // no default sizing please
+               return;
        pic = draw_UseSkinFor(pic);
        drawpic(boxToGlobal(theOrigin, draw_shift, draw_scale), pic, boxToGlobalSize(theSize, draw_scale), theColor, theAlpha * draw_alpha, 0);
 }
@@ -174,11 +176,40 @@ void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector the
        theAlpha *= draw_alpha;
        width = eX * theSize_x;
        height = eY * theSize_y;
-       if(theSize_x <= theBorderSize_x * 2)
+       // zero size? bail out, we cannot handle this
+       if(theSize_x <= 0 || theSize_y <= 0)
+               return;
+       if(theBorderSize_x <= 0) // no x border
+       {
+               if(theBorderSize_y <= 0)
+               {
+                       drawsubpic(theOrigin,                            width          + height,          pic, '0.25 0.25 0', '0.5  0.5  0', theColor, theAlpha, 0);
+               }
+               else if(theSize_y <= theBorderSize_y * 2)
+               {
+                       // not high enough... draw just top and bottom then
+                       bH = eY * (0.25 * theSize_y / (theBorderSize_y * 2));
+                       drawsubpic(theOrigin,                             width          + height * 0.5, pic, '0.25 0 0',           '0.5  0 0' + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin              + height * 0.5, width          + height * 0.5, pic, '0.25 0 0' + eY - bH, '0.5  0 0' + bH, theColor, theAlpha, 0);
+               }
+               else
+               {
+                       dY = theBorderSize_y * eY;
+                       drawsubpic(theOrigin,                            width                   +     dY, pic, '0.25 0    0', '0.5  0.25 0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin          + dY,              width          + height - 2 * dY, pic, '0.25 0.25 0', '0.5  0.5  0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + height - dY,              width                   +     dY, pic, '0.25 0.75 0', '0.5  0.25 0', theColor, theAlpha, 0);
+               }
+       }
+       else if(theSize_x <= theBorderSize_x * 2)
        {
                // not wide enough... draw just left and right then
                bW = eX * (0.25 * theSize_x / (theBorderSize_x * 2));
-               if(theSize_y <= theBorderSize_y * 2)
+               if(theBorderSize_y <= 0)
+               {
+                       drawsubpic(theOrigin,                             width * 0.5 + height,          pic, '0 0.25 0',           '0 0.5  0' + bW, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + width * 0.5,               width * 0.5 + height,          pic, '0 0.25 0' + eX - bW, '0 0.5  0' + bW, theColor, theAlpha, 0);
+               }
+               else if(theSize_y <= theBorderSize_y * 2)
                {
                        // not high enough... draw just corners
                        bH = eY * (0.25 * theSize_y / (theBorderSize_y * 2));
@@ -189,7 +220,7 @@ void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector the
                }
                else
                {
-                       dY = theBorderSize_x * eY;
+                       dY = theBorderSize_y * eY;
                        drawsubpic(theOrigin,                             width * 0.5          +     dY, pic, '0 0    0',           '0 0.25 0' + bW, theColor, theAlpha, 0);
                        drawsubpic(theOrigin + width * 0.5,               width * 0.5          +     dY, pic, '0 0    0' + eX - bW, '0 0.25 0' + bW, theColor, theAlpha, 0);
                        drawsubpic(theOrigin                        + dY, width * 0.5 + height - 2 * dY, pic, '0 0.25 0',           '0 0.5  0' + bW, theColor, theAlpha, 0);
@@ -200,7 +231,14 @@ void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector the
        }
        else
        {
-               if(theSize_y <= theBorderSize_y * 2)
+               if(theBorderSize_y <= 0)
+               {
+                       dX = theBorderSize_x * eX;
+                       drawsubpic(theOrigin,                                        dX + height,          pic, '0    0.25 0', '0.25 0.5  0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin                       + dX, width - 2 * dX + height,          pic, '0.25 0.25 0', '0.5  0.5  0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin               + width - dX,             dX + height,          pic, '0.75 0.25 0', '0.25 0.5  0', theColor, theAlpha, 0);
+               }
+               else if(theSize_y <= theBorderSize_y * 2)
                {
                        // not high enough... draw just top and bottom then
                        bH = eY * (0.25 * theSize_y / (theBorderSize_y * 2));
@@ -215,7 +253,7 @@ void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector the
                else
                {
                        dX = theBorderSize_x * eX;
-                       dY = theBorderSize_x * eY;
+                       dY = theBorderSize_y * eY;
                        drawsubpic(theOrigin,                                        dX          +     dY, pic, '0    0    0', '0.25 0.25 0', theColor, theAlpha, 0);
                        drawsubpic(theOrigin                  + dX,      width - 2 * dX          +     dY, pic, '0.25 0    0', '0.5  0.25 0', theColor, theAlpha, 0);
                        drawsubpic(theOrigin          + width - dX,                  dX          +     dY, pic, '0.75 0    0', '0.25 0.25 0', theColor, theAlpha, 0);
index 1f01cb4..c8bab9b 100644 (file)
@@ -104,7 +104,7 @@ float Slider_keyDown(entity me, float key, float ascii, float shift)
        if(me.disabled)
                return 0;
        inRange = (almost_in_bounds(me.valueMin, me.value, me.valueMax));
-       if(key == K_LEFTARROW || key == K_KP_LEFTARROW)
+       if(key == K_LEFTARROW || key == K_KP_LEFTARROW || key == K_MWHEELUP)
        {
                if(inRange)
                        me.setValue(me, median(me.valueMin, me.value - me.valueKeyStep, me.valueMax));
@@ -112,7 +112,7 @@ float Slider_keyDown(entity me, float key, float ascii, float shift)
                        me.setValue(me, me.valueMax);
                return 1;
        }
-       if(key == K_RIGHTARROW || key == K_KP_RIGHTARROW)
+       if(key == K_RIGHTARROW || key == K_KP_RIGHTARROW || key == K_MWHEELDOWN)
        {
                if(inRange)
                        me.setValue(me, median(me.valueMin, me.value + me.valueKeyStep, me.valueMax));
index a32099d..538723b 100644 (file)
@@ -4,7 +4,7 @@ CLASS(XonoticHUDWeaponsDialog) EXTENDS(XonoticRootDialog)
        ATTRIB(XonoticHUDWeaponsDialog, title, string, "Weapons Panel")
        ATTRIB(XonoticHUDWeaponsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
        ATTRIB(XonoticHUDWeaponsDialog, intendedWidth, float, 0.4)
-       ATTRIB(XonoticHUDWeaponsDialog, rows, float, 15)
+       ATTRIB(XonoticHUDWeaponsDialog, rows, float, 17)
        ATTRIB(XonoticHUDWeaponsDialog, columns, float, 4)
        ATTRIB(XonoticHUDWeaponsDialog, name, string, "HUDweapons")
 ENDCLASS(XonoticHUDWeaponsDialog)
@@ -72,6 +72,23 @@ void XonoticHUDWeaponsDialog_fill(entity me)
                                        e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
                                e.configureXonoticTextSliderValues(e);
        me.TR(me);
+               me.TDempty(me, 0.2);
+               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");
+                               for(i = 1; i <= 10; ++i)
+                                       e.addValue(e, strzone(strcat(ftos_decimals(i, 0), "s")), 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"));
+                       setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
+               me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "1", "Slide"));
+                       setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
+               me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "2", "Alpha"));
+                       setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
+       me.TR(me);
                me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Weapon icons:"));
        me.TR(me);
                me.TDempty(me, 0.2);
index d3a21c6..3f8bceb 100644 (file)
@@ -69,7 +69,7 @@ void XonoticHUDExitDialog_fill(entity me)
                        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");
+                               e.addValue(e, "Medium", "dock_medium");
                                e.addValue(e, "Large", "dock_large");
                                e.configureXonoticTextSliderValues(e);
        me.TR(me);
index 05ed898..bd54aa2 100644 (file)
@@ -163,6 +163,5 @@ void XonoticMapInfoDialog_fill(entity me)
                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
-               me.TDempty(me, 0.5);
 }
 #endif
index 8c75c1f..754da25 100644 (file)
@@ -151,7 +151,7 @@ void XonoticPlayerSettingsTab_fill(entity me)
                me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "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);
@@ -178,7 +178,6 @@ void XonoticPlayerSettingsTab_fill(entity me)
                        e.addValue(e, "Lots", "0");
                        e.configureXonoticTextSliderValues(e);
                        setDependent(e, "cl_gentle", 0, 0);
-       me.TR(me);
 
        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));