Merge branch 'master' into fruitiex/newpanelhud
authorFruitieX <rasse@rasse-lappy.localdomain>
Mon, 17 May 2010 17:17:45 +0000 (20:17 +0300)
committerFruitieX <rasse@rasse-lappy.localdomain>
Mon, 17 May 2010 17:17:45 +0000 (20:17 +0300)
380 files changed:
defaultXonotic.cfg
gfx/accident_radar.tga [deleted file]
gfx/aggressor_mini.tga [deleted file]
gfx/aneurysm_radar.tga [deleted file]
gfx/basement_radar.tga [deleted file]
gfx/basementctf_radar.tga [deleted file]
gfx/bleach_radar.tga [deleted file]
gfx/bloodprison_radar.tga [deleted file]
gfx/bloodprisonctf_radar.tga [deleted file]
gfx/bluesky_radar.tga [deleted file]
gfx/darkzone_radar.tga [deleted file]
gfx/desertfactory_radar.tga [deleted file]
gfx/dieselpower_radar.tga [deleted file]
gfx/downer_radar.tga [deleted file]
gfx/eggandbacon_mini.tga [deleted file]
gfx/evilspace_radar.tga [deleted file]
gfx/farewell_radar.tga [deleted file]
gfx/final_rage_radar.tga [deleted file]
gfx/finale.tga [deleted file]
gfx/hud/accelerometer_gradient.tga [deleted file]
gfx/hud/default/border.tga [new file with mode: 0644]
gfx/hud/default/borderx.tga [new file with mode: 0644]
gfx/hud/inv_weapon0.tga [deleted file]
gfx/hud/inv_weapon1.tga [deleted file]
gfx/hud/inv_weapon10.tga [deleted file]
gfx/hud/inv_weapon11.tga [deleted file]
gfx/hud/inv_weapon12.tga [deleted file]
gfx/hud/inv_weapon13.tga [deleted file]
gfx/hud/inv_weapon14.tga [deleted file]
gfx/hud/inv_weapon15.tga [deleted file]
gfx/hud/inv_weapon2.tga [deleted file]
gfx/hud/inv_weapon3.tga [deleted file]
gfx/hud/inv_weapon4.tga [deleted file]
gfx/hud/inv_weapon5.tga [deleted file]
gfx/hud/inv_weapon6.tga [deleted file]
gfx/hud/inv_weapon7.tga [deleted file]
gfx/hud/inv_weapon8.tga [deleted file]
gfx/hud/inv_weapon9.tga [deleted file]
gfx/hud/inv_weapon_hlacmod_renameit.tga [deleted file]
gfx/hud/inv_weaponcampingrifle.tga [deleted file]
gfx/hud/inv_weaponcrylink.tga [deleted file]
gfx/hud/inv_weaponelectro.tga [deleted file]
gfx/hud/inv_weaponfireball.tga [deleted file]
gfx/hud/inv_weapongrenadelauncher.tga [deleted file]
gfx/hud/inv_weaponhagar.tga [deleted file]
gfx/hud/inv_weaponhlac.tga [deleted file]
gfx/hud/inv_weaponhook.tga [deleted file]
gfx/hud/inv_weaponlaser.tga [deleted file]
gfx/hud/inv_weaponminstanex.tga [deleted file]
gfx/hud/inv_weaponnex.tga [deleted file]
gfx/hud/inv_weaponporto.tga [deleted file]
gfx/hud/inv_weaponrocketlauncher.tga [deleted file]
gfx/hud/inv_weaponseeker.tga [deleted file]
gfx/hud/inv_weaponshotgun.tga [deleted file]
gfx/hud/inv_weapontuba.tga [deleted file]
gfx/hud/inv_weaponuzi.tga [deleted file]
gfx/hud/keys/key_backward.tga [deleted file]
gfx/hud/keys/key_backward_inv.tga [deleted file]
gfx/hud/keys/key_bg.tga [deleted file]
gfx/hud/keys/key_crouch.tga [deleted file]
gfx/hud/keys/key_crouch_inv.tga [deleted file]
gfx/hud/keys/key_forward.tga [deleted file]
gfx/hud/keys/key_forward_inv.tga [deleted file]
gfx/hud/keys/key_jump.tga [deleted file]
gfx/hud/keys/key_jump_inv.tga [deleted file]
gfx/hud/keys/key_left.tga [deleted file]
gfx/hud/keys/key_left_inv.tga [deleted file]
gfx/hud/keys/key_right.tga [deleted file]
gfx/hud/keys/key_right_inv.tga [deleted file]
gfx/hud/num_0.tga [deleted file]
gfx/hud/num_0_stroke.tga [deleted file]
gfx/hud/num_1.tga [deleted file]
gfx/hud/num_1_stroke.tga [deleted file]
gfx/hud/num_2.tga [deleted file]
gfx/hud/num_2_stroke.tga [deleted file]
gfx/hud/num_3.tga [deleted file]
gfx/hud/num_3_stroke.tga [deleted file]
gfx/hud/num_4.tga [deleted file]
gfx/hud/num_4_stroke.tga [deleted file]
gfx/hud/num_5.tga [deleted file]
gfx/hud/num_5_stroke.tga [deleted file]
gfx/hud/num_6.tga [deleted file]
gfx/hud/num_6_stroke.tga [deleted file]
gfx/hud/num_7.tga [deleted file]
gfx/hud/num_7_stroke.tga [deleted file]
gfx/hud/num_8.tga [deleted file]
gfx/hud/num_8_stroke.tga [deleted file]
gfx/hud/num_9.tga [deleted file]
gfx/hud/num_9_stroke.tga [deleted file]
gfx/hud/num_colon.tga [deleted file]
gfx/hud/num_colon_stroke.tga [deleted file]
gfx/hud/num_dot.tga [deleted file]
gfx/hud/num_dot_stroke.tga [deleted file]
gfx/hud/num_minus.tga [deleted file]
gfx/hud/num_minus_stroke.tga [deleted file]
gfx/hud/num_plus.tga [deleted file]
gfx/hud/num_plus_stroke.tga [deleted file]
gfx/hud/old/accuracy_bar.tga [new file with mode: 0644]
gfx/hud/old/ammo_bullets.tga [new file with mode: 0644]
gfx/hud/old/ammo_cells.tga [new file with mode: 0644]
gfx/hud/old/ammo_current_bg.tga [new file with mode: 0644]
gfx/hud/old/ammo_fuel.tga [new file with mode: 0644]
gfx/hud/old/ammo_rocket.tga [new file with mode: 0644]
gfx/hud/old/ammo_shells.tga [new file with mode: 0644]
gfx/hud/old/armor.tga [new file with mode: 0644]
gfx/hud/old/border.tga [new file with mode: 0644]
gfx/hud/old/dock.tga [new file with mode: 0644]
gfx/hud/old/flag_blue_carrying.tga [new file with mode: 0644]
gfx/hud/old/flag_blue_lost.tga [new file with mode: 0644]
gfx/hud/old/flag_blue_shielded.tga [new file with mode: 0644]
gfx/hud/old/flag_blue_taken.tga [new file with mode: 0644]
gfx/hud/old/flag_red_carrying.tga [new file with mode: 0644]
gfx/hud/old/flag_red_lost.tga [new file with mode: 0644]
gfx/hud/old/flag_red_shielded.tga [new file with mode: 0644]
gfx/hud/old/flag_red_taken.tga [new file with mode: 0644]
gfx/hud/old/health.tga [new file with mode: 0644]
gfx/hud/old/highlight_1.tga [new file with mode: 0644]
gfx/hud/old/highlight_2.tga [new file with mode: 0644]
gfx/hud/old/highlight_3.tga [new file with mode: 0644]
gfx/hud/old/highlight_4.tga [new file with mode: 0644]
gfx/hud/old/key_backward.tga [new file with mode: 0644]
gfx/hud/old/key_backward_inv.tga [new file with mode: 0644]
gfx/hud/old/key_bg.tga [new file with mode: 0644]
gfx/hud/old/key_crouch.tga [new file with mode: 0644]
gfx/hud/old/key_crouch_inv.tga [new file with mode: 0644]
gfx/hud/old/key_forward.tga [new file with mode: 0644]
gfx/hud/old/key_forward_inv.tga [new file with mode: 0644]
gfx/hud/old/key_jump.tga [new file with mode: 0644]
gfx/hud/old/key_jump_inv.tga [new file with mode: 0644]
gfx/hud/old/key_left.tga [new file with mode: 0644]
gfx/hud/old/key_left_inv.tga [new file with mode: 0644]
gfx/hud/old/key_right.tga [new file with mode: 0644]
gfx/hud/old/key_right_inv.tga [new file with mode: 0644]
gfx/hud/old/kh_blue.tga [new file with mode: 0644]
gfx/hud/old/kh_bluearrow.tga [new file with mode: 0644]
gfx/hud/old/kh_pink.tga [new file with mode: 0644]
gfx/hud/old/kh_pinkarrow.tga [new file with mode: 0644]
gfx/hud/old/kh_red.tga [new file with mode: 0644]
gfx/hud/old/kh_redarrow.tga [new file with mode: 0644]
gfx/hud/old/kh_yellow.tga [new file with mode: 0644]
gfx/hud/old/kh_yellowarrow.tga [new file with mode: 0644]
gfx/hud/old/nexball_carrying.tga [new file with mode: 0644]
gfx/hud/old/num_0.tga [new file with mode: 0644]
gfx/hud/old/num_0_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_1.tga [new file with mode: 0644]
gfx/hud/old/num_1_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_2.tga [new file with mode: 0644]
gfx/hud/old/num_2_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_3.tga [new file with mode: 0644]
gfx/hud/old/num_3_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_4.tga [new file with mode: 0644]
gfx/hud/old/num_4_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_5.tga [new file with mode: 0644]
gfx/hud/old/num_5_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_6.tga [new file with mode: 0644]
gfx/hud/old/num_6_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_7.tga [new file with mode: 0644]
gfx/hud/old/num_7_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_8.tga [new file with mode: 0644]
gfx/hud/old/num_8_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_9.tga [new file with mode: 0644]
gfx/hud/old/num_9_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_colon.tga [new file with mode: 0644]
gfx/hud/old/num_colon_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_dot.tga [new file with mode: 0644]
gfx/hud/old/num_dot_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_minus.tga [new file with mode: 0644]
gfx/hud/old/num_minus_stroke.tga [new file with mode: 0644]
gfx/hud/old/num_plus.tga [new file with mode: 0644]
gfx/hud/old/num_plus_stroke.tga [new file with mode: 0644]
gfx/hud/old/race_newfail.tga [new file with mode: 0644]
gfx/hud/old/race_newrankgreen.tga [new file with mode: 0644]
gfx/hud/old/race_newrankyellow.tga [new file with mode: 0644]
gfx/hud/old/race_newrecordserver.tga [new file with mode: 0644]
gfx/hud/old/race_newtime.tga [new file with mode: 0644]
gfx/hud/old/rifle_ring_1.tga [new file with mode: 0644]
gfx/hud/old/rifle_ring_2.tga [new file with mode: 0644]
gfx/hud/old/rifle_ring_3.tga [new file with mode: 0644]
gfx/hud/old/rifle_ring_4.tga [new file with mode: 0644]
gfx/hud/old/rifle_ring_5.tga [new file with mode: 0644]
gfx/hud/old/rifle_ring_6.tga [new file with mode: 0644]
gfx/hud/old/rifle_ring_7.tga [new file with mode: 0644]
gfx/hud/old/rifle_ring_8.tga [new file with mode: 0644]
gfx/hud/old/shield.tga [new file with mode: 0644]
gfx/hud/old/statusbar.tga [new file with mode: 0644]
gfx/hud/old/statusbar_vertical.tga [new file with mode: 0644]
gfx/hud/old/strength.tga [new file with mode: 0644]
gfx/hud/old/voteprogress_back.tga [new file with mode: 0644]
gfx/hud/old/voteprogress_prog.tga [new file with mode: 0644]
gfx/hud/old/voteprogress_voted.tga [new file with mode: 0644]
gfx/hud/old/weapon_current_bg.tga [new file with mode: 0644]
gfx/hud/race/newfail.tga [deleted file]
gfx/hud/race/newrankgreen.tga [deleted file]
gfx/hud/race/newrankyellow.tga [deleted file]
gfx/hud/race/newrecordserver.tga [deleted file]
gfx/hud/race/newtime.tga [deleted file]
gfx/hud/rifle_ring_1.tga [deleted file]
gfx/hud/rifle_ring_2.tga [deleted file]
gfx/hud/rifle_ring_3.tga [deleted file]
gfx/hud/rifle_ring_4.tga [deleted file]
gfx/hud/rifle_ring_5.tga [deleted file]
gfx/hud/rifle_ring_6.tga [deleted file]
gfx/hud/rifle_ring_7.tga [deleted file]
gfx/hud/rifle_ring_8.tga [deleted file]
gfx/hud/sb_accuracy.tga [deleted file]
gfx/hud/sb_accuracy_bar.tga [deleted file]
gfx/hud/sb_ammobg.tga [deleted file]
gfx/hud/sb_armor.tga [deleted file]
gfx/hud/sb_bullets.tga [deleted file]
gfx/hud/sb_cells.tga [deleted file]
gfx/hud/sb_flag_blue_carrying.tga [deleted file]
gfx/hud/sb_flag_blue_lost.tga [deleted file]
gfx/hud/sb_flag_blue_shielded.tga [deleted file]
gfx/hud/sb_flag_blue_taken.tga [deleted file]
gfx/hud/sb_flag_red_carrying.tga [deleted file]
gfx/hud/sb_flag_red_lost.tga [deleted file]
gfx/hud/sb_flag_red_shielded.tga [deleted file]
gfx/hud/sb_flag_red_taken.tga [deleted file]
gfx/hud/sb_fuel.tga [deleted file]
gfx/hud/sb_health.tga [deleted file]
gfx/hud/sb_highlight_1.tga [deleted file]
gfx/hud/sb_highlight_2.tga [deleted file]
gfx/hud/sb_highlight_3.tga [deleted file]
gfx/hud/sb_highlight_4.tga [deleted file]
gfx/hud/sb_invinc.tga [deleted file]
gfx/hud/sb_kh_blue.tga [deleted file]
gfx/hud/sb_kh_bluearrow.tga [deleted file]
gfx/hud/sb_kh_pink.tga [deleted file]
gfx/hud/sb_kh_pinkarrow.tga [deleted file]
gfx/hud/sb_kh_red.tga [deleted file]
gfx/hud/sb_kh_redarrow.tga [deleted file]
gfx/hud/sb_kh_yellow.tga [deleted file]
gfx/hud/sb_kh_yellowarrow.tga [deleted file]
gfx/hud/sb_nexball_carrying.tga [deleted file]
gfx/hud/sb_rocket.tga [deleted file]
gfx/hud/sb_scoreboard_bg.tga [deleted file]
gfx/hud/sb_scoreboard_tableheader.tga [deleted file]
gfx/hud/sb_shells.tga [deleted file]
gfx/hud/sb_str.tga [deleted file]
gfx/hud/sb_timerbg.tga [deleted file]
gfx/hud/sbar.tga [deleted file]
gfx/hud/voteprogress_back.tga [deleted file]
gfx/hud/voteprogress_prog.tga [deleted file]
gfx/hud/voteprogress_voted.tga [deleted file]
gfx/inv_weapon0.tga [deleted file]
gfx/inv_weapon1.tga [deleted file]
gfx/inv_weapon10.tga [deleted file]
gfx/inv_weapon11.tga [deleted file]
gfx/inv_weapon12.tga [deleted file]
gfx/inv_weapon13.tga [deleted file]
gfx/inv_weapon14.tga [deleted file]
gfx/inv_weapon15.tga [deleted file]
gfx/inv_weapon2.tga [deleted file]
gfx/inv_weapon3.tga [deleted file]
gfx/inv_weapon4.tga [deleted file]
gfx/inv_weapon5.tga [deleted file]
gfx/inv_weapon6.tga [deleted file]
gfx/inv_weapon7.tga [deleted file]
gfx/inv_weapon8.tga [deleted file]
gfx/inv_weapon9.tga [deleted file]
gfx/inv_weapon_hlacmod_renameit.tga [deleted file]
gfx/keys/key_backward.tga [deleted file]
gfx/keys/key_backward_inv.tga [deleted file]
gfx/keys/key_bg.tga [deleted file]
gfx/keys/key_crouch.tga [deleted file]
gfx/keys/key_crouch_inv.tga [deleted file]
gfx/keys/key_forward.tga [deleted file]
gfx/keys/key_forward_inv.tga [deleted file]
gfx/keys/key_jump.tga [deleted file]
gfx/keys/key_jump_inv.tga [deleted file]
gfx/keys/key_left.tga [deleted file]
gfx/keys/key_left_inv.tga [deleted file]
gfx/keys/key_right.tga [deleted file]
gfx/keys/key_right_inv.tga [deleted file]
gfx/nr_piece-o-cake_mini.tga [deleted file]
gfx/num_0.tga [deleted file]
gfx/num_1.tga [deleted file]
gfx/num_2.tga [deleted file]
gfx/num_3.tga [deleted file]
gfx/num_4.tga [deleted file]
gfx/num_5.tga [deleted file]
gfx/num_6.tga [deleted file]
gfx/num_7.tga [deleted file]
gfx/num_8.tga [deleted file]
gfx/num_9.tga [deleted file]
gfx/num_colon.tga [deleted file]
gfx/num_minus.tga [deleted file]
gfx/ons-reborn_radar.tga [deleted file]
gfx/racetrack_radar.tga [deleted file]
gfx/ranking.tga [deleted file]
gfx/reslimed_radar.tga [deleted file]
gfx/ruiner_radar.tga [deleted file]
gfx/runningman_1on1remix_radar.tga [deleted file]
gfx/runningman_radar.tga [deleted file]
gfx/runningmanctf_radar.tga [deleted file]
gfx/sb_armor.tga [deleted file]
gfx/sb_bullets.tga [deleted file]
gfx/sb_cells.tga [deleted file]
gfx/sb_energy.tga [deleted file]
gfx/sb_flag_blue_carrying.tga [deleted file]
gfx/sb_flag_blue_lost.tga [deleted file]
gfx/sb_flag_blue_shielded.tga [deleted file]
gfx/sb_flag_blue_taken.tga [deleted file]
gfx/sb_flag_red_carrying.tga [deleted file]
gfx/sb_flag_red_lost.tga [deleted file]
gfx/sb_flag_red_shielded.tga [deleted file]
gfx/sb_flag_red_taken.tga [deleted file]
gfx/sb_fuel.tga [deleted file]
gfx/sb_health.tga [deleted file]
gfx/sb_invinc.tga [deleted file]
gfx/sb_key_carrying.tga [deleted file]
gfx/sb_kh_full.tga [deleted file]
gfx/sb_kh_outline.tga [deleted file]
gfx/sb_nexball_carrying.tga [deleted file]
gfx/sb_player_ready.tga [deleted file]
gfx/sb_playercolor_base.tga [deleted file]
gfx/sb_playercolor_pants.tga [deleted file]
gfx/sb_playercolor_shirt.tga [deleted file]
gfx/sb_rocket.tga [deleted file]
gfx/sb_shells.tga [deleted file]
gfx/sb_slowmo.tga [deleted file]
gfx/sb_str.tga [deleted file]
gfx/sbar.tga [deleted file]
gfx/sbar_minimal.tga [deleted file]
gfx/sbar_overlay.tga [deleted file]
gfx/scoreboard/accuracy_bg.tga [new file with mode: 0644]
gfx/scoreboard/player_ready.tga [new file with mode: 0644]
gfx/scoreboard/playercolor_base.tga [new file with mode: 0644]
gfx/scoreboard/playercolor_pants.tga [new file with mode: 0644]
gfx/scoreboard/playercolor_shirt.tga [new file with mode: 0644]
gfx/scoreboard/scoreboard_bg.tga [new file with mode: 0644]
gfx/scoreboard/scoreboard_tableheader.tga [new file with mode: 0644]
gfx/silvercity_radar.tga [deleted file]
gfx/skyway_radar.tga [deleted file]
gfx/slimepit_radar.tga [deleted file]
gfx/soylent_radar.tga [deleted file]
gfx/starship_radar.tga [deleted file]
gfx/stormkeep2_radar.tga [deleted file]
gfx/stormkeep_radar.tga [deleted file]
gfx/strength_radar.tga [deleted file]
gfx/toxic_radar.tga [deleted file]
gfx/turret_test_radar.tga [deleted file]
gfx/warfare_radar.tga [deleted file]
gfx/weapons/weapon_hlacmod_renameit.tga [new file with mode: 0644]
gfx/weapons/weaponcampingrifle.tga [new file with mode: 0644]
gfx/weapons/weaponcrylink.tga [new file with mode: 0644]
gfx/weapons/weaponelectro.tga [new file with mode: 0644]
gfx/weapons/weaponfireball.tga [new file with mode: 0644]
gfx/weapons/weapongrenadelauncher.tga [new file with mode: 0644]
gfx/weapons/weaponhagar.tga [new file with mode: 0644]
gfx/weapons/weaponhlac.tga [new file with mode: 0644]
gfx/weapons/weaponhook.tga [new file with mode: 0644]
gfx/weapons/weaponlaser.tga [new file with mode: 0644]
gfx/weapons/weaponminstanex.tga [new file with mode: 0644]
gfx/weapons/weaponnex.tga [new file with mode: 0644]
gfx/weapons/weaponporto.tga [new file with mode: 0644]
gfx/weapons/weaponrocketlauncher.tga [new file with mode: 0644]
gfx/weapons/weaponseeker.tga [new file with mode: 0644]
gfx/weapons/weaponshotgun.tga [new file with mode: 0644]
gfx/weapons/weapontuba.tga [new file with mode: 0644]
gfx/weapons/weaponuzi.tga [new file with mode: 0644]
hud_old_nexuiz.cfg [new file with mode: 0644]
qcsrc/client/Defs.qc
qcsrc/client/Main.qc
qcsrc/client/View.qc
qcsrc/client/csqc_constants.qc
qcsrc/client/d [deleted file]
qcsrc/client/hud.qc [new file with mode: 0644]
qcsrc/client/hud.qh [new file with mode: 0644]
qcsrc/client/main.qh
qcsrc/client/mapvoting.qc
qcsrc/client/miscfunctions.qc
qcsrc/client/progs.src
qcsrc/client/sbar.qc [deleted file]
qcsrc/client/scoreboard.qc [new file with mode: 0644]
qcsrc/client/teamradar.qc
qcsrc/client/teamradar.qh
qcsrc/client/waypointsprites.qc
qcsrc/common/constants.qh
qcsrc/menu/menu.qh

index 2c579ac49f137621eb316fe6e94c3d4db8ccd2ad..4752f9100ea550ff61684be578d89da4e521e0eb 100644 (file)
@@ -895,7 +895,7 @@ alias +zoom +button4
 alias -zoom -button4
 alias +crouch +button5
 alias -crouch -button5
-alias weapnext "_weapnext_${_supports_weaponpriority}${sbar_hudselector}${cl_weaponpriority_useforcycling}"
+alias weapnext "_weapnext_${_supports_weaponpriority}${hud_hudselector}${cl_weaponpriority_useforcycling}"
 alias _weapnext_000 "impulse 10"
 alias _weapnext_001 "impulse 10"
 alias _weapnext_010 "impulse 10"
@@ -909,7 +909,7 @@ alias _weapnext_111 "impulse 15"
 alias _weapnext_120 "impulse 18"
 alias _weapnext_121 "impulse 15"
 alias weaplast "impulse 11"
-alias weapprev "_weapprev_${_supports_weaponpriority}${sbar_hudselector}${cl_weaponpriority_useforcycling}"
+alias weapprev "_weapprev_${_supports_weaponpriority}${hud_hudselector}${cl_weaponpriority_useforcycling}"
 alias _weapprev_000 "impulse 12"
 alias _weapprev_001 "impulse 12"
 alias _weapprev_010 "impulse 12"
@@ -1314,34 +1314,171 @@ con_chatwidth 0.6
 con_notifysize 10
 con_notifyalign 0
 
-sbar_info_pos 50
-seta sbar_alpha_bg 0.8 "alpha value of the HUD background"
-seta sbar_alpha_fg 1 "alpha value of the HUD foreground items"
-seta sbar_border_thickness 1 "scoreboard border thickness"
-seta sbar_accuracy_border_thickness 1 "accuracy stats border thickness"
-seta sbar_accuracy_doublerows 0 "use two rows instead of one"
-seta sbar_accuracy_yellow 40 "percentage at which the accuracy color is yellow"
-seta sbar_accuracy 1 "0 = no weapon accuracy stats panel on scoreboard"
-seta sbar_accuracy_hud 1 "0 = no weapon accuracy bar on the weapon icons"
-seta sbar_color_bg_r 0 "red color component of the HUD background"
-seta sbar_color_bg_g 0.25 "green color component of the HUD background"
-seta sbar_color_bg_b 0.17 "blue color component of the HUD background"
-seta sbar_color_bg_team 0.5 "team color multiplier of the HUD background"
-seta sbar_scoreboard_alpha_bg 0.6 "scoreboard background alpha"
-seta sbar_scoreboard_alpha_fg 1 "scoreboard foreground alpha"
-seta sbar_scoreboard_alpha_name 0.9 "alpha of player text in scoreboard list other than self"
-seta sbar_scoreboard_alpha_name_self 1 "alpha of player text in scoreboard list of self" 
-seta sbar_scoreboard_fadeinspeed 10 "speed at which scoreboard fades in, higher is faster (0 = instant)"
-seta sbar_scoreboard_fadeoutspeed 5 "speed at which scoreboard fades out, higher is faster (0 = instant)"
-seta sbar_scoreboard_highlight 1 "enable highlighting for rows and columns in the scoreboard"
-seta sbar_scoreboard_highlight_alpha 0.10 "highlight alpha value (depends on sbar_scoreboard_highlight 1)"
-seta sbar_scoreboard_highlight_alpha_self 0.25 "self highlight alpha value"
-seta sbar_hudselector 1        "0 = health/armor positions flipped, 1 = default hud layout, 2 = combined health and armor display"
-seta sbar_showcurrentammo 0 "0 = show all ammo types, 1 = show only the ammo type of the current weapon"
-seta sbar_showweaponicons 1 "1 = show icons of weapons that you have"
-seta sbar_timer_increment 0 "1 = show elapsed time on the timer"
-seta sbar_timer_scale 1 "scale multiplier of the timer"
-seta sbar_vote_alreadyvoted_alpha 0.75 "alpha of the vote dialog after you have voted"
+// hud variables
+set _hud_configure 0 "1 = configure the HUD"
+
+seta hud_skin old "skin folder where to look for images"
+seta hud_bg 0 "sets the default background for the panels, file must exist in data/gfx/hud/. 0 = disable background by default"
+seta hud_bg_color "0 0.6 0.9" "sets the default background color for the panels"
+seta hud_bg_alpha 0.8 "alpha of the background"
+seta hud_bg_border 10 "sets the default border size for the panels"
+seta hud_fg_alpha 1 "alpha of the foreground"
+seta hud_progressbar_alpha "0.5" "alpha of progressbars"
+
+seta hud_configure_checkcollisions 1 "check for collisions against other panels when in hud configure mode"
+seta hud_configure_bg_minalpha 0.5 "minimum panel background alpha when in hud configure mode"
+seta hud_configure_grid 0 "snap to grid when moving/resizing panels"
+seta hud_configure_grid_x 10 "snap each X pixels"
+seta hud_configure_grid_y 10 "snap each Y pixels"
+
+seta hud_dock 1 "enable/disable a fullscreen background for the hud, useful for creating artificial docks"
+seta hud_dock_color "0 0.6 0.9" "dock color"
+seta hud_dock_alpha 0.8 "alpha of the dock"
+
+seta sbar_info_pos 50
+
+seta hud_weaponicons 1 "enable/disable this panel"
+seta hud_weaponicons_pos "-0.635295 -0.134116" "position of this panel"
+seta hud_weaponicons_size "0.352942 0.064845" "size of this panel"
+seta hud_weaponicons_number 1 "show number of weapon"
+seta hud_weaponicons_accuracy_height 3 "height of accuracy bar"
+seta hud_weaponicons_accuracy_yellow 40 "percentage at which the accuracy color is yellow"
+seta hud_weaponicons_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_weaponicons_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_weaponicons_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_weaponicons_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_weaponicons_bg_padding 0 "padding of contents from border"
+
+seta hud_inventory 1 "enable/disable this panel"
+seta hud_inventory_pos "0.179783 -0.092189" "position of this panel"
+seta hud_inventory_size "0.174227 0.092189" "size of this panel"
+seta hud_inventory_onlycurrent 0 "1 = show only current ammo type"
+seta hud_inventory_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_inventory_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_inventory_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_inventory_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_inventory_bg_padding 0 "padding of contents from border"
+
+seta hud_powerups 1 "enable/disable this panel"
+seta hud_powerups_pos "-0.311922 -0.084896" "position of this panel"
+seta hud_powerups_size "0.086719 0.077084" "size of this panel"
+seta hud_powerups_flip 1 "flip strength/shield positions"
+seta hud_powerups_mirror 0 "mirror alignment of panel items"
+seta hud_powerups_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_powerups_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_powerups_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_powerups_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_powerups_bg_padding 0 "padding of contents from border"
+seta hud_progressbar_strength_color "0 0 0.6" "R G B vector of the progress bar background color"
+seta hud_progressbar_shield_color "0.6 0 0.6" "R G B vector of the progress bar background color"
+
+seta hud_healtharmor 1 "enable/disable this panel"
+seta hud_healtharmor_pos "-0.627451 -0.066667" "position of this panel"
+seta hud_healtharmor_size "0.291174 0.066667" "size of this panel"
+seta hud_healtharmor_flip 1 "flip health/armor positions"
+seta hud_healtharmor_mirror 0 "mirror alignment of panel items"
+seta hud_healtharmor_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_healtharmor_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_healtharmor_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_healtharmor_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_healtharmor_bg_padding 0 "padding of contents from border"
+seta hud_progressbar_health_color "0.6 0 0" "R G B vector of the progress bar background color"
+seta hud_progressbar_armor_color "0 0.6 0" "R G B vector of the progress bar background color"
+seta hud_progressbar_fuel_color "0.6 0.6 0" "R G B vector of the progress bar background color"
+
+seta hud_notify 0 "enable/disable this panel"
+seta hud_notify_pos "0.1 0" "position of this base of the panel"
+seta hud_notify_size "0.1 0.1" "size of this panel with all notifications on"
+seta hud_notify_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_notify_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_notify_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_notify_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_notify_bg_padding 0 "padding of contents from border"
+
+seta hud_timer 1 "enable/disable this panel"
+seta hud_timer_pos "-0.213725 0" "position of this base of the panel"
+seta hud_timer_size "0.212735 0.054427" "size of this panel"
+seta hud_timer_increment 0 "show elapsed time instead of remaining time"
+seta hud_timer_bg border "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_timer_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_timer_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_timer_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_timer_bg_padding 0 "padding of contents from border"
+
+seta hud_radar 1 "enable/disable this panel"
+seta hud_radar_pos "0 0" "position of this base of the panel"
+seta hud_radar_size "0.215687 0.266667" "size of this panel"
+seta hud_radar_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_radar_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_radar_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_radar_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_radar_bg_padding 0 "padding of contents from border"
+
+seta hud_score 1 "enable/disable this panel"
+seta hud_score_pos "-0.225469 -0.084404" "position of this base of the panel"
+seta hud_score_size "0.225469 0.075156" "size of this panel"
+seta hud_score_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_score_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_score_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_score_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_score_bg_padding 0 "padding of contents from border"
+
+seta hud_racetimer 1 "enable/disable this panel"
+seta hud_racetimer_pos "-0.614706 0" "position of this base of the panel"
+seta hud_racetimer_size "0.231373 0.077124" "size of this panel"
+seta hud_racetimer_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_racetimer_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_racetimer_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_racetimer_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_racetimer_bg_padding 0 "padding of contents from border"
+
+seta hud_vote 1 "enable/disable this panel"
+seta hud_vote_pos "-0.321140 -0.268230" "position of this base of the panel"
+seta hud_vote_size "0.320156 0.106719" "size of this panel"
+seta hud_vote_alreadyvoted_alpha 0.75 "alpha of the vote dialog after you have voted"
+seta hud_vote_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_vote_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_vote_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_vote_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_vote_bg_padding 0 "padding of contents from border"
+
+seta hud_modicons 1 "enable/disable this panel"
+seta hud_modicons_pos "-0.571569 -0.265625" "position of this base of the panel"
+seta hud_modicons_size "0.145098 0.114105" "size of this panel"
+seta hud_modicons_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_modicons_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_modicons_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_modicons_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_modicons_bg_padding 0 "padding of contents from border"
+seta hud_progressbar_nexball_color "0.7 0.1 0" "R G B vector of the progress bar background color"
+
+seta hud_pressedkeys 1 "enable/disable this panel, 1 = show only when spectating other players, 2 = show always"
+seta hud_pressedkeys_pos "-0.571569 -0.265625" "position of this base of the panel"
+seta hud_pressedkeys_size "0.145098 0.114105" "size of this panel"
+seta hud_pressedkeys_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background"
+seta hud_pressedkeys_bg_color "" "optional R G B string of the background color, otherwise use hud default"
+seta hud_pressedkeys_bg_alpha 0 "if set to something else than 0 = override default alpha"
+seta hud_pressedkeys_bg_border 0 "if set to something else than 0 = override size of border around the background"
+seta hud_pressedkeys_bg_padding 0 "padding of contents from border"
+
+// scoreboard
+seta scoreboard_border_thickness 1 "scoreboard border thickness"
+seta scoreboard_accuracy_border_thickness 1 "accuracy stats border thickness"
+seta scoreboard_accuracy_doublerows 0 "use two rows instead of one"
+seta scoreboard_accuracy 1 "0 = no weapon accuracy stats panel on scoreboard"
+seta scoreboard_color_bg_r 0 "red color component of the HUD background"
+seta scoreboard_color_bg_g 0.25 "green color component of the HUD background"
+seta scoreboard_color_bg_b 0.17 "blue color component of the HUD background"
+seta scoreboard_color_bg_team 0.5 "team color multiplier of the HUD background"
+seta scoreboard_alpha_bg 0.6 "scoreboard background alpha"
+seta scoreboard_alpha_fg 1 "scoreboard foreground alpha"
+seta scoreboard_alpha_name 0.9 "alpha of player text in scoreboard list other than self"
+seta scoreboard_alpha_name_self 1 "alpha of player text in scoreboard list of self" 
+seta scoreboard_fadeinspeed 10 "speed at which scoreboard fades in, higher is faster (0 = instant)"
+seta scoreboard_fadeoutspeed 5 "speed at which scoreboard fades out, higher is faster (0 = instant)"
+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"
 
 // 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"
@@ -1453,17 +1590,17 @@ set sv_maxidle_spectatorsareidle 0
 // CTF capture limit placeholder cvar
 set capturelimit 0
 
-// sbar: font size
-seta sbar_fontsize 11
-seta sbar_fontsize_spec 16
+// hud: font size
+seta hud_fontsize 11
+seta hud_fontsize_spec 16
 seta scr_centersize 11
-seta sbar_width 560
-// alias sbar_font "loadfont user1 ${1},gfx/fallback ${2-}; loadfont user2 ${1}-big ${2-}; sbar_columns_set"
+seta hud_width 560
+// alias hud_font "loadfont user1 ${1},gfx/fallback ${2-}; loadfont user2 ${1}-big ${2-}; hud_columns_set"
 alias sbar_font "set _requested_sbar_font \"${*}\""
-seta sbar_columns default
+seta hud_columns default
 sbar_font gfx/vera-sans 8 12 16 24 32
-seta sbar_showbinds 1  "display actions / bound keys in the strings shown during the game. 0 displays only actions, 1 displays only bound keys, 2 displays both"
-seta sbar_showbinds_limit 2    "maximum number of bound keys to show for an action. 0 for unlimited"
+seta hud_showbinds 1   "display actions / bound keys in the strings shown during the game. 0 displays only actions, 1 displays only bound keys, 2 displays both"
+seta hud_showbinds_limit 2     "maximum number of bound keys to show for an action. 0 for unlimited"
 
 // these entities are not referenced by anything directly, they just represent
 // teams and are found by find() when needed
@@ -1511,8 +1648,8 @@ seta g_start_delay 0      "delay before the game starts, so everyone can join; recomm
 
 alias ons_map           "cl_cmd radar" // legacy alias
 alias radar             "cl_cmd radar"
-alias sbar_columns_set  "cl_cmd sbar_columns_set $*"
-alias sbar_columns_help "cl_cmd sbar_columns_help $*"
+alias hud_columns_set  "cl_cmd hud_columns_set $*"
+alias hud_columns_help "cl_cmd hud_columns_help $*"
 
 alias _gl_flashblend_update_00 "gl_flashblend 1"
 alias _gl_flashblend_update_10 "gl_flashblend 0"
diff --git a/gfx/accident_radar.tga b/gfx/accident_radar.tga
deleted file mode 100644 (file)
index 84a117c..0000000
Binary files a/gfx/accident_radar.tga and /dev/null differ
diff --git a/gfx/aggressor_mini.tga b/gfx/aggressor_mini.tga
deleted file mode 100644 (file)
index 475c86b..0000000
Binary files a/gfx/aggressor_mini.tga and /dev/null differ
diff --git a/gfx/aneurysm_radar.tga b/gfx/aneurysm_radar.tga
deleted file mode 100644 (file)
index f6535e1..0000000
Binary files a/gfx/aneurysm_radar.tga and /dev/null differ
diff --git a/gfx/basement_radar.tga b/gfx/basement_radar.tga
deleted file mode 100644 (file)
index b6d4a89..0000000
Binary files a/gfx/basement_radar.tga and /dev/null differ
diff --git a/gfx/basementctf_radar.tga b/gfx/basementctf_radar.tga
deleted file mode 100644 (file)
index 8d531c9..0000000
Binary files a/gfx/basementctf_radar.tga and /dev/null differ
diff --git a/gfx/bleach_radar.tga b/gfx/bleach_radar.tga
deleted file mode 100644 (file)
index 79482e4..0000000
Binary files a/gfx/bleach_radar.tga and /dev/null differ
diff --git a/gfx/bloodprison_radar.tga b/gfx/bloodprison_radar.tga
deleted file mode 100644 (file)
index 76e9200..0000000
Binary files a/gfx/bloodprison_radar.tga and /dev/null differ
diff --git a/gfx/bloodprisonctf_radar.tga b/gfx/bloodprisonctf_radar.tga
deleted file mode 100644 (file)
index 214fde2..0000000
Binary files a/gfx/bloodprisonctf_radar.tga and /dev/null differ
diff --git a/gfx/bluesky_radar.tga b/gfx/bluesky_radar.tga
deleted file mode 100644 (file)
index 5b5fe87..0000000
Binary files a/gfx/bluesky_radar.tga and /dev/null differ
diff --git a/gfx/darkzone_radar.tga b/gfx/darkzone_radar.tga
deleted file mode 100644 (file)
index a08a93f..0000000
Binary files a/gfx/darkzone_radar.tga and /dev/null differ
diff --git a/gfx/desertfactory_radar.tga b/gfx/desertfactory_radar.tga
deleted file mode 100644 (file)
index 6fa0686..0000000
Binary files a/gfx/desertfactory_radar.tga and /dev/null differ
diff --git a/gfx/dieselpower_radar.tga b/gfx/dieselpower_radar.tga
deleted file mode 100644 (file)
index 158c06a..0000000
Binary files a/gfx/dieselpower_radar.tga and /dev/null differ
diff --git a/gfx/downer_radar.tga b/gfx/downer_radar.tga
deleted file mode 100644 (file)
index b7782dd..0000000
Binary files a/gfx/downer_radar.tga and /dev/null differ
diff --git a/gfx/eggandbacon_mini.tga b/gfx/eggandbacon_mini.tga
deleted file mode 100644 (file)
index 578da17..0000000
Binary files a/gfx/eggandbacon_mini.tga and /dev/null differ
diff --git a/gfx/evilspace_radar.tga b/gfx/evilspace_radar.tga
deleted file mode 100644 (file)
index 8cf7ca5..0000000
Binary files a/gfx/evilspace_radar.tga and /dev/null differ
diff --git a/gfx/farewell_radar.tga b/gfx/farewell_radar.tga
deleted file mode 100644 (file)
index 2af15c8..0000000
Binary files a/gfx/farewell_radar.tga and /dev/null differ
diff --git a/gfx/final_rage_radar.tga b/gfx/final_rage_radar.tga
deleted file mode 100644 (file)
index ae58d61..0000000
Binary files a/gfx/final_rage_radar.tga and /dev/null differ
diff --git a/gfx/finale.tga b/gfx/finale.tga
deleted file mode 100644 (file)
index 18d9aed..0000000
Binary files a/gfx/finale.tga and /dev/null differ
diff --git a/gfx/hud/accelerometer_gradient.tga b/gfx/hud/accelerometer_gradient.tga
deleted file mode 100644 (file)
index 0bbad17..0000000
Binary files a/gfx/hud/accelerometer_gradient.tga and /dev/null differ
diff --git a/gfx/hud/default/border.tga b/gfx/hud/default/border.tga
new file mode 100644 (file)
index 0000000..6535f36
Binary files /dev/null and b/gfx/hud/default/border.tga differ
diff --git a/gfx/hud/default/borderx.tga b/gfx/hud/default/borderx.tga
new file mode 100644 (file)
index 0000000..8ef37d3
Binary files /dev/null and b/gfx/hud/default/borderx.tga differ
diff --git a/gfx/hud/inv_weapon0.tga b/gfx/hud/inv_weapon0.tga
deleted file mode 100644 (file)
index b66500b..0000000
Binary files a/gfx/hud/inv_weapon0.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon1.tga b/gfx/hud/inv_weapon1.tga
deleted file mode 100644 (file)
index 32f8e20..0000000
Binary files a/gfx/hud/inv_weapon1.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon10.tga b/gfx/hud/inv_weapon10.tga
deleted file mode 100644 (file)
index ae18113..0000000
Binary files a/gfx/hud/inv_weapon10.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon11.tga b/gfx/hud/inv_weapon11.tga
deleted file mode 100644 (file)
index a1f662e..0000000
Binary files a/gfx/hud/inv_weapon11.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon12.tga b/gfx/hud/inv_weapon12.tga
deleted file mode 100644 (file)
index b63c2d8..0000000
Binary files a/gfx/hud/inv_weapon12.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon13.tga b/gfx/hud/inv_weapon13.tga
deleted file mode 100644 (file)
index 0a8cf7e..0000000
Binary files a/gfx/hud/inv_weapon13.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon14.tga b/gfx/hud/inv_weapon14.tga
deleted file mode 100644 (file)
index 09da559..0000000
Binary files a/gfx/hud/inv_weapon14.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon15.tga b/gfx/hud/inv_weapon15.tga
deleted file mode 100644 (file)
index 0a8cf7e..0000000
Binary files a/gfx/hud/inv_weapon15.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon2.tga b/gfx/hud/inv_weapon2.tga
deleted file mode 100644 (file)
index 72ce481..0000000
Binary files a/gfx/hud/inv_weapon2.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon3.tga b/gfx/hud/inv_weapon3.tga
deleted file mode 100644 (file)
index 91a8ce4..0000000
Binary files a/gfx/hud/inv_weapon3.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon4.tga b/gfx/hud/inv_weapon4.tga
deleted file mode 100644 (file)
index b800f0a..0000000
Binary files a/gfx/hud/inv_weapon4.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon5.tga b/gfx/hud/inv_weapon5.tga
deleted file mode 100644 (file)
index 1a92967..0000000
Binary files a/gfx/hud/inv_weapon5.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon6.tga b/gfx/hud/inv_weapon6.tga
deleted file mode 100644 (file)
index 7523580..0000000
Binary files a/gfx/hud/inv_weapon6.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon7.tga b/gfx/hud/inv_weapon7.tga
deleted file mode 100644 (file)
index 3803159..0000000
Binary files a/gfx/hud/inv_weapon7.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon8.tga b/gfx/hud/inv_weapon8.tga
deleted file mode 100644 (file)
index bca989f..0000000
Binary files a/gfx/hud/inv_weapon8.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon9.tga b/gfx/hud/inv_weapon9.tga
deleted file mode 100644 (file)
index 444247f..0000000
Binary files a/gfx/hud/inv_weapon9.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapon_hlacmod_renameit.tga b/gfx/hud/inv_weapon_hlacmod_renameit.tga
deleted file mode 100644 (file)
index 503dad9..0000000
Binary files a/gfx/hud/inv_weapon_hlacmod_renameit.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponcampingrifle.tga b/gfx/hud/inv_weaponcampingrifle.tga
deleted file mode 100644 (file)
index 09da559..0000000
Binary files a/gfx/hud/inv_weaponcampingrifle.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponcrylink.tga b/gfx/hud/inv_weaponcrylink.tga
deleted file mode 100644 (file)
index 1a92967..0000000
Binary files a/gfx/hud/inv_weaponcrylink.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponelectro.tga b/gfx/hud/inv_weaponelectro.tga
deleted file mode 100644 (file)
index b800f0a..0000000
Binary files a/gfx/hud/inv_weaponelectro.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponfireball.tga b/gfx/hud/inv_weaponfireball.tga
deleted file mode 100644 (file)
index b90d687..0000000
Binary files a/gfx/hud/inv_weaponfireball.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapongrenadelauncher.tga b/gfx/hud/inv_weapongrenadelauncher.tga
deleted file mode 100644 (file)
index 91a8ce4..0000000
Binary files a/gfx/hud/inv_weapongrenadelauncher.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponhagar.tga b/gfx/hud/inv_weaponhagar.tga
deleted file mode 100644 (file)
index 3803159..0000000
Binary files a/gfx/hud/inv_weaponhagar.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponhlac.tga b/gfx/hud/inv_weaponhlac.tga
deleted file mode 100644 (file)
index b63c2d8..0000000
Binary files a/gfx/hud/inv_weaponhlac.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponhook.tga b/gfx/hud/inv_weaponhook.tga
deleted file mode 100644 (file)
index a1f662e..0000000
Binary files a/gfx/hud/inv_weaponhook.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponlaser.tga b/gfx/hud/inv_weaponlaser.tga
deleted file mode 100644 (file)
index b66500b..0000000
Binary files a/gfx/hud/inv_weaponlaser.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponminstanex.tga b/gfx/hud/inv_weaponminstanex.tga
deleted file mode 100644 (file)
index ae18113..0000000
Binary files a/gfx/hud/inv_weaponminstanex.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponnex.tga b/gfx/hud/inv_weaponnex.tga
deleted file mode 100644 (file)
index 7523580..0000000
Binary files a/gfx/hud/inv_weaponnex.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponporto.tga b/gfx/hud/inv_weaponporto.tga
deleted file mode 100644 (file)
index 444247f..0000000
Binary files a/gfx/hud/inv_weaponporto.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponrocketlauncher.tga b/gfx/hud/inv_weaponrocketlauncher.tga
deleted file mode 100644 (file)
index bca989f..0000000
Binary files a/gfx/hud/inv_weaponrocketlauncher.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponseeker.tga b/gfx/hud/inv_weaponseeker.tga
deleted file mode 100644 (file)
index 0a8cf7e..0000000
Binary files a/gfx/hud/inv_weaponseeker.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponshotgun.tga b/gfx/hud/inv_weaponshotgun.tga
deleted file mode 100644 (file)
index 32f8e20..0000000
Binary files a/gfx/hud/inv_weaponshotgun.tga and /dev/null differ
diff --git a/gfx/hud/inv_weapontuba.tga b/gfx/hud/inv_weapontuba.tga
deleted file mode 100644 (file)
index ba59aca..0000000
Binary files a/gfx/hud/inv_weapontuba.tga and /dev/null differ
diff --git a/gfx/hud/inv_weaponuzi.tga b/gfx/hud/inv_weaponuzi.tga
deleted file mode 100644 (file)
index 72ce481..0000000
Binary files a/gfx/hud/inv_weaponuzi.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_backward.tga b/gfx/hud/keys/key_backward.tga
deleted file mode 100644 (file)
index 4de0f33..0000000
Binary files a/gfx/hud/keys/key_backward.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_backward_inv.tga b/gfx/hud/keys/key_backward_inv.tga
deleted file mode 100644 (file)
index bef0d1c..0000000
Binary files a/gfx/hud/keys/key_backward_inv.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_bg.tga b/gfx/hud/keys/key_bg.tga
deleted file mode 100644 (file)
index fca30be..0000000
Binary files a/gfx/hud/keys/key_bg.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_crouch.tga b/gfx/hud/keys/key_crouch.tga
deleted file mode 100644 (file)
index 00b2dfe..0000000
Binary files a/gfx/hud/keys/key_crouch.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_crouch_inv.tga b/gfx/hud/keys/key_crouch_inv.tga
deleted file mode 100644 (file)
index 2cdbda8..0000000
Binary files a/gfx/hud/keys/key_crouch_inv.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_forward.tga b/gfx/hud/keys/key_forward.tga
deleted file mode 100644 (file)
index dfe2233..0000000
Binary files a/gfx/hud/keys/key_forward.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_forward_inv.tga b/gfx/hud/keys/key_forward_inv.tga
deleted file mode 100644 (file)
index 7bbea60..0000000
Binary files a/gfx/hud/keys/key_forward_inv.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_jump.tga b/gfx/hud/keys/key_jump.tga
deleted file mode 100644 (file)
index d02b2db..0000000
Binary files a/gfx/hud/keys/key_jump.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_jump_inv.tga b/gfx/hud/keys/key_jump_inv.tga
deleted file mode 100644 (file)
index c54bb37..0000000
Binary files a/gfx/hud/keys/key_jump_inv.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_left.tga b/gfx/hud/keys/key_left.tga
deleted file mode 100644 (file)
index 60fe71f..0000000
Binary files a/gfx/hud/keys/key_left.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_left_inv.tga b/gfx/hud/keys/key_left_inv.tga
deleted file mode 100644 (file)
index 92bc615..0000000
Binary files a/gfx/hud/keys/key_left_inv.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_right.tga b/gfx/hud/keys/key_right.tga
deleted file mode 100644 (file)
index 308c03b..0000000
Binary files a/gfx/hud/keys/key_right.tga and /dev/null differ
diff --git a/gfx/hud/keys/key_right_inv.tga b/gfx/hud/keys/key_right_inv.tga
deleted file mode 100644 (file)
index 8f04be4..0000000
Binary files a/gfx/hud/keys/key_right_inv.tga and /dev/null differ
diff --git a/gfx/hud/num_0.tga b/gfx/hud/num_0.tga
deleted file mode 100644 (file)
index f0ab2f1..0000000
Binary files a/gfx/hud/num_0.tga and /dev/null differ
diff --git a/gfx/hud/num_0_stroke.tga b/gfx/hud/num_0_stroke.tga
deleted file mode 100644 (file)
index e9c6e5b..0000000
Binary files a/gfx/hud/num_0_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_1.tga b/gfx/hud/num_1.tga
deleted file mode 100644 (file)
index 78f1f45..0000000
Binary files a/gfx/hud/num_1.tga and /dev/null differ
diff --git a/gfx/hud/num_1_stroke.tga b/gfx/hud/num_1_stroke.tga
deleted file mode 100644 (file)
index 1ff552f..0000000
Binary files a/gfx/hud/num_1_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_2.tga b/gfx/hud/num_2.tga
deleted file mode 100644 (file)
index 205dd03..0000000
Binary files a/gfx/hud/num_2.tga and /dev/null differ
diff --git a/gfx/hud/num_2_stroke.tga b/gfx/hud/num_2_stroke.tga
deleted file mode 100644 (file)
index 08d26df..0000000
Binary files a/gfx/hud/num_2_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_3.tga b/gfx/hud/num_3.tga
deleted file mode 100644 (file)
index 335b5da..0000000
Binary files a/gfx/hud/num_3.tga and /dev/null differ
diff --git a/gfx/hud/num_3_stroke.tga b/gfx/hud/num_3_stroke.tga
deleted file mode 100644 (file)
index a5fddda..0000000
Binary files a/gfx/hud/num_3_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_4.tga b/gfx/hud/num_4.tga
deleted file mode 100644 (file)
index 2b9f46f..0000000
Binary files a/gfx/hud/num_4.tga and /dev/null differ
diff --git a/gfx/hud/num_4_stroke.tga b/gfx/hud/num_4_stroke.tga
deleted file mode 100644 (file)
index fe87933..0000000
Binary files a/gfx/hud/num_4_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_5.tga b/gfx/hud/num_5.tga
deleted file mode 100644 (file)
index 8bb7043..0000000
Binary files a/gfx/hud/num_5.tga and /dev/null differ
diff --git a/gfx/hud/num_5_stroke.tga b/gfx/hud/num_5_stroke.tga
deleted file mode 100644 (file)
index 3a6978a..0000000
Binary files a/gfx/hud/num_5_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_6.tga b/gfx/hud/num_6.tga
deleted file mode 100644 (file)
index 1db8c0e..0000000
Binary files a/gfx/hud/num_6.tga and /dev/null differ
diff --git a/gfx/hud/num_6_stroke.tga b/gfx/hud/num_6_stroke.tga
deleted file mode 100644 (file)
index f64e178..0000000
Binary files a/gfx/hud/num_6_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_7.tga b/gfx/hud/num_7.tga
deleted file mode 100644 (file)
index 0099d68..0000000
Binary files a/gfx/hud/num_7.tga and /dev/null differ
diff --git a/gfx/hud/num_7_stroke.tga b/gfx/hud/num_7_stroke.tga
deleted file mode 100644 (file)
index 252e796..0000000
Binary files a/gfx/hud/num_7_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_8.tga b/gfx/hud/num_8.tga
deleted file mode 100644 (file)
index aa20157..0000000
Binary files a/gfx/hud/num_8.tga and /dev/null differ
diff --git a/gfx/hud/num_8_stroke.tga b/gfx/hud/num_8_stroke.tga
deleted file mode 100644 (file)
index e2cd39d..0000000
Binary files a/gfx/hud/num_8_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_9.tga b/gfx/hud/num_9.tga
deleted file mode 100644 (file)
index 87b9c21..0000000
Binary files a/gfx/hud/num_9.tga and /dev/null differ
diff --git a/gfx/hud/num_9_stroke.tga b/gfx/hud/num_9_stroke.tga
deleted file mode 100644 (file)
index 5a8d610..0000000
Binary files a/gfx/hud/num_9_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_colon.tga b/gfx/hud/num_colon.tga
deleted file mode 100644 (file)
index e22c09a..0000000
Binary files a/gfx/hud/num_colon.tga and /dev/null differ
diff --git a/gfx/hud/num_colon_stroke.tga b/gfx/hud/num_colon_stroke.tga
deleted file mode 100644 (file)
index 68ad28a..0000000
Binary files a/gfx/hud/num_colon_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_dot.tga b/gfx/hud/num_dot.tga
deleted file mode 100644 (file)
index 7fbfdd0..0000000
Binary files a/gfx/hud/num_dot.tga and /dev/null differ
diff --git a/gfx/hud/num_dot_stroke.tga b/gfx/hud/num_dot_stroke.tga
deleted file mode 100644 (file)
index 29ad696..0000000
Binary files a/gfx/hud/num_dot_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_minus.tga b/gfx/hud/num_minus.tga
deleted file mode 100644 (file)
index 10721f2..0000000
Binary files a/gfx/hud/num_minus.tga and /dev/null differ
diff --git a/gfx/hud/num_minus_stroke.tga b/gfx/hud/num_minus_stroke.tga
deleted file mode 100644 (file)
index 26455a0..0000000
Binary files a/gfx/hud/num_minus_stroke.tga and /dev/null differ
diff --git a/gfx/hud/num_plus.tga b/gfx/hud/num_plus.tga
deleted file mode 100644 (file)
index 3cb17b3..0000000
Binary files a/gfx/hud/num_plus.tga and /dev/null differ
diff --git a/gfx/hud/num_plus_stroke.tga b/gfx/hud/num_plus_stroke.tga
deleted file mode 100644 (file)
index 7df2faa..0000000
Binary files a/gfx/hud/num_plus_stroke.tga and /dev/null differ
diff --git a/gfx/hud/old/accuracy_bar.tga b/gfx/hud/old/accuracy_bar.tga
new file mode 100644 (file)
index 0000000..96e853d
Binary files /dev/null and b/gfx/hud/old/accuracy_bar.tga differ
diff --git a/gfx/hud/old/ammo_bullets.tga b/gfx/hud/old/ammo_bullets.tga
new file mode 100644 (file)
index 0000000..394fa05
Binary files /dev/null and b/gfx/hud/old/ammo_bullets.tga differ
diff --git a/gfx/hud/old/ammo_cells.tga b/gfx/hud/old/ammo_cells.tga
new file mode 100644 (file)
index 0000000..5365314
Binary files /dev/null and b/gfx/hud/old/ammo_cells.tga differ
diff --git a/gfx/hud/old/ammo_current_bg.tga b/gfx/hud/old/ammo_current_bg.tga
new file mode 100644 (file)
index 0000000..7f3a2af
Binary files /dev/null and b/gfx/hud/old/ammo_current_bg.tga differ
diff --git a/gfx/hud/old/ammo_fuel.tga b/gfx/hud/old/ammo_fuel.tga
new file mode 100644 (file)
index 0000000..d761568
Binary files /dev/null and b/gfx/hud/old/ammo_fuel.tga differ
diff --git a/gfx/hud/old/ammo_rocket.tga b/gfx/hud/old/ammo_rocket.tga
new file mode 100644 (file)
index 0000000..e2b4df2
Binary files /dev/null and b/gfx/hud/old/ammo_rocket.tga differ
diff --git a/gfx/hud/old/ammo_shells.tga b/gfx/hud/old/ammo_shells.tga
new file mode 100644 (file)
index 0000000..24e5c72
Binary files /dev/null and b/gfx/hud/old/ammo_shells.tga differ
diff --git a/gfx/hud/old/armor.tga b/gfx/hud/old/armor.tga
new file mode 100644 (file)
index 0000000..4801835
Binary files /dev/null and b/gfx/hud/old/armor.tga differ
diff --git a/gfx/hud/old/border.tga b/gfx/hud/old/border.tga
new file mode 100644 (file)
index 0000000..a3056c9
Binary files /dev/null and b/gfx/hud/old/border.tga differ
diff --git a/gfx/hud/old/dock.tga b/gfx/hud/old/dock.tga
new file mode 100644 (file)
index 0000000..2b28659
Binary files /dev/null and b/gfx/hud/old/dock.tga differ
diff --git a/gfx/hud/old/flag_blue_carrying.tga b/gfx/hud/old/flag_blue_carrying.tga
new file mode 100644 (file)
index 0000000..a8d64d1
Binary files /dev/null and b/gfx/hud/old/flag_blue_carrying.tga differ
diff --git a/gfx/hud/old/flag_blue_lost.tga b/gfx/hud/old/flag_blue_lost.tga
new file mode 100644 (file)
index 0000000..5c7e632
Binary files /dev/null and b/gfx/hud/old/flag_blue_lost.tga differ
diff --git a/gfx/hud/old/flag_blue_shielded.tga b/gfx/hud/old/flag_blue_shielded.tga
new file mode 100644 (file)
index 0000000..5da9356
Binary files /dev/null and b/gfx/hud/old/flag_blue_shielded.tga differ
diff --git a/gfx/hud/old/flag_blue_taken.tga b/gfx/hud/old/flag_blue_taken.tga
new file mode 100644 (file)
index 0000000..e6d955f
Binary files /dev/null and b/gfx/hud/old/flag_blue_taken.tga differ
diff --git a/gfx/hud/old/flag_red_carrying.tga b/gfx/hud/old/flag_red_carrying.tga
new file mode 100644 (file)
index 0000000..d1cf43d
Binary files /dev/null and b/gfx/hud/old/flag_red_carrying.tga differ
diff --git a/gfx/hud/old/flag_red_lost.tga b/gfx/hud/old/flag_red_lost.tga
new file mode 100644 (file)
index 0000000..b9d060d
Binary files /dev/null and b/gfx/hud/old/flag_red_lost.tga differ
diff --git a/gfx/hud/old/flag_red_shielded.tga b/gfx/hud/old/flag_red_shielded.tga
new file mode 100644 (file)
index 0000000..551ba61
Binary files /dev/null and b/gfx/hud/old/flag_red_shielded.tga differ
diff --git a/gfx/hud/old/flag_red_taken.tga b/gfx/hud/old/flag_red_taken.tga
new file mode 100644 (file)
index 0000000..7a1d3fc
Binary files /dev/null and b/gfx/hud/old/flag_red_taken.tga differ
diff --git a/gfx/hud/old/health.tga b/gfx/hud/old/health.tga
new file mode 100644 (file)
index 0000000..1fd71d8
Binary files /dev/null and b/gfx/hud/old/health.tga differ
diff --git a/gfx/hud/old/highlight_1.tga b/gfx/hud/old/highlight_1.tga
new file mode 100644 (file)
index 0000000..0e5233c
Binary files /dev/null and b/gfx/hud/old/highlight_1.tga differ
diff --git a/gfx/hud/old/highlight_2.tga b/gfx/hud/old/highlight_2.tga
new file mode 100644 (file)
index 0000000..0629e49
Binary files /dev/null and b/gfx/hud/old/highlight_2.tga differ
diff --git a/gfx/hud/old/highlight_3.tga b/gfx/hud/old/highlight_3.tga
new file mode 100644 (file)
index 0000000..a6fb924
Binary files /dev/null and b/gfx/hud/old/highlight_3.tga differ
diff --git a/gfx/hud/old/highlight_4.tga b/gfx/hud/old/highlight_4.tga
new file mode 100644 (file)
index 0000000..ec54137
Binary files /dev/null and b/gfx/hud/old/highlight_4.tga differ
diff --git a/gfx/hud/old/key_backward.tga b/gfx/hud/old/key_backward.tga
new file mode 100644 (file)
index 0000000..4de0f33
Binary files /dev/null and b/gfx/hud/old/key_backward.tga differ
diff --git a/gfx/hud/old/key_backward_inv.tga b/gfx/hud/old/key_backward_inv.tga
new file mode 100644 (file)
index 0000000..bef0d1c
Binary files /dev/null and b/gfx/hud/old/key_backward_inv.tga differ
diff --git a/gfx/hud/old/key_bg.tga b/gfx/hud/old/key_bg.tga
new file mode 100644 (file)
index 0000000..fca30be
Binary files /dev/null and b/gfx/hud/old/key_bg.tga differ
diff --git a/gfx/hud/old/key_crouch.tga b/gfx/hud/old/key_crouch.tga
new file mode 100644 (file)
index 0000000..00b2dfe
Binary files /dev/null and b/gfx/hud/old/key_crouch.tga differ
diff --git a/gfx/hud/old/key_crouch_inv.tga b/gfx/hud/old/key_crouch_inv.tga
new file mode 100644 (file)
index 0000000..2cdbda8
Binary files /dev/null and b/gfx/hud/old/key_crouch_inv.tga differ
diff --git a/gfx/hud/old/key_forward.tga b/gfx/hud/old/key_forward.tga
new file mode 100644 (file)
index 0000000..dfe2233
Binary files /dev/null and b/gfx/hud/old/key_forward.tga differ
diff --git a/gfx/hud/old/key_forward_inv.tga b/gfx/hud/old/key_forward_inv.tga
new file mode 100644 (file)
index 0000000..7bbea60
Binary files /dev/null and b/gfx/hud/old/key_forward_inv.tga differ
diff --git a/gfx/hud/old/key_jump.tga b/gfx/hud/old/key_jump.tga
new file mode 100644 (file)
index 0000000..d02b2db
Binary files /dev/null and b/gfx/hud/old/key_jump.tga differ
diff --git a/gfx/hud/old/key_jump_inv.tga b/gfx/hud/old/key_jump_inv.tga
new file mode 100644 (file)
index 0000000..c54bb37
Binary files /dev/null and b/gfx/hud/old/key_jump_inv.tga differ
diff --git a/gfx/hud/old/key_left.tga b/gfx/hud/old/key_left.tga
new file mode 100644 (file)
index 0000000..60fe71f
Binary files /dev/null and b/gfx/hud/old/key_left.tga differ
diff --git a/gfx/hud/old/key_left_inv.tga b/gfx/hud/old/key_left_inv.tga
new file mode 100644 (file)
index 0000000..92bc615
Binary files /dev/null and b/gfx/hud/old/key_left_inv.tga differ
diff --git a/gfx/hud/old/key_right.tga b/gfx/hud/old/key_right.tga
new file mode 100644 (file)
index 0000000..308c03b
Binary files /dev/null and b/gfx/hud/old/key_right.tga differ
diff --git a/gfx/hud/old/key_right_inv.tga b/gfx/hud/old/key_right_inv.tga
new file mode 100644 (file)
index 0000000..8f04be4
Binary files /dev/null and b/gfx/hud/old/key_right_inv.tga differ
diff --git a/gfx/hud/old/kh_blue.tga b/gfx/hud/old/kh_blue.tga
new file mode 100644 (file)
index 0000000..467b229
Binary files /dev/null and b/gfx/hud/old/kh_blue.tga differ
diff --git a/gfx/hud/old/kh_bluearrow.tga b/gfx/hud/old/kh_bluearrow.tga
new file mode 100644 (file)
index 0000000..b686d1b
Binary files /dev/null and b/gfx/hud/old/kh_bluearrow.tga differ
diff --git a/gfx/hud/old/kh_pink.tga b/gfx/hud/old/kh_pink.tga
new file mode 100644 (file)
index 0000000..b40967a
Binary files /dev/null and b/gfx/hud/old/kh_pink.tga differ
diff --git a/gfx/hud/old/kh_pinkarrow.tga b/gfx/hud/old/kh_pinkarrow.tga
new file mode 100644 (file)
index 0000000..17427e5
Binary files /dev/null and b/gfx/hud/old/kh_pinkarrow.tga differ
diff --git a/gfx/hud/old/kh_red.tga b/gfx/hud/old/kh_red.tga
new file mode 100644 (file)
index 0000000..3201f8a
Binary files /dev/null and b/gfx/hud/old/kh_red.tga differ
diff --git a/gfx/hud/old/kh_redarrow.tga b/gfx/hud/old/kh_redarrow.tga
new file mode 100644 (file)
index 0000000..edd1fab
Binary files /dev/null and b/gfx/hud/old/kh_redarrow.tga differ
diff --git a/gfx/hud/old/kh_yellow.tga b/gfx/hud/old/kh_yellow.tga
new file mode 100644 (file)
index 0000000..bb83475
Binary files /dev/null and b/gfx/hud/old/kh_yellow.tga differ
diff --git a/gfx/hud/old/kh_yellowarrow.tga b/gfx/hud/old/kh_yellowarrow.tga
new file mode 100644 (file)
index 0000000..8e754cc
Binary files /dev/null and b/gfx/hud/old/kh_yellowarrow.tga differ
diff --git a/gfx/hud/old/nexball_carrying.tga b/gfx/hud/old/nexball_carrying.tga
new file mode 100644 (file)
index 0000000..58d66f7
Binary files /dev/null and b/gfx/hud/old/nexball_carrying.tga differ
diff --git a/gfx/hud/old/num_0.tga b/gfx/hud/old/num_0.tga
new file mode 100644 (file)
index 0000000..f0ab2f1
Binary files /dev/null and b/gfx/hud/old/num_0.tga differ
diff --git a/gfx/hud/old/num_0_stroke.tga b/gfx/hud/old/num_0_stroke.tga
new file mode 100644 (file)
index 0000000..e9c6e5b
Binary files /dev/null and b/gfx/hud/old/num_0_stroke.tga differ
diff --git a/gfx/hud/old/num_1.tga b/gfx/hud/old/num_1.tga
new file mode 100644 (file)
index 0000000..78f1f45
Binary files /dev/null and b/gfx/hud/old/num_1.tga differ
diff --git a/gfx/hud/old/num_1_stroke.tga b/gfx/hud/old/num_1_stroke.tga
new file mode 100644 (file)
index 0000000..1ff552f
Binary files /dev/null and b/gfx/hud/old/num_1_stroke.tga differ
diff --git a/gfx/hud/old/num_2.tga b/gfx/hud/old/num_2.tga
new file mode 100644 (file)
index 0000000..205dd03
Binary files /dev/null and b/gfx/hud/old/num_2.tga differ
diff --git a/gfx/hud/old/num_2_stroke.tga b/gfx/hud/old/num_2_stroke.tga
new file mode 100644 (file)
index 0000000..08d26df
Binary files /dev/null and b/gfx/hud/old/num_2_stroke.tga differ
diff --git a/gfx/hud/old/num_3.tga b/gfx/hud/old/num_3.tga
new file mode 100644 (file)
index 0000000..335b5da
Binary files /dev/null and b/gfx/hud/old/num_3.tga differ
diff --git a/gfx/hud/old/num_3_stroke.tga b/gfx/hud/old/num_3_stroke.tga
new file mode 100644 (file)
index 0000000..a5fddda
Binary files /dev/null and b/gfx/hud/old/num_3_stroke.tga differ
diff --git a/gfx/hud/old/num_4.tga b/gfx/hud/old/num_4.tga
new file mode 100644 (file)
index 0000000..2b9f46f
Binary files /dev/null and b/gfx/hud/old/num_4.tga differ
diff --git a/gfx/hud/old/num_4_stroke.tga b/gfx/hud/old/num_4_stroke.tga
new file mode 100644 (file)
index 0000000..fe87933
Binary files /dev/null and b/gfx/hud/old/num_4_stroke.tga differ
diff --git a/gfx/hud/old/num_5.tga b/gfx/hud/old/num_5.tga
new file mode 100644 (file)
index 0000000..8bb7043
Binary files /dev/null and b/gfx/hud/old/num_5.tga differ
diff --git a/gfx/hud/old/num_5_stroke.tga b/gfx/hud/old/num_5_stroke.tga
new file mode 100644 (file)
index 0000000..3a6978a
Binary files /dev/null and b/gfx/hud/old/num_5_stroke.tga differ
diff --git a/gfx/hud/old/num_6.tga b/gfx/hud/old/num_6.tga
new file mode 100644 (file)
index 0000000..1db8c0e
Binary files /dev/null and b/gfx/hud/old/num_6.tga differ
diff --git a/gfx/hud/old/num_6_stroke.tga b/gfx/hud/old/num_6_stroke.tga
new file mode 100644 (file)
index 0000000..f64e178
Binary files /dev/null and b/gfx/hud/old/num_6_stroke.tga differ
diff --git a/gfx/hud/old/num_7.tga b/gfx/hud/old/num_7.tga
new file mode 100644 (file)
index 0000000..0099d68
Binary files /dev/null and b/gfx/hud/old/num_7.tga differ
diff --git a/gfx/hud/old/num_7_stroke.tga b/gfx/hud/old/num_7_stroke.tga
new file mode 100644 (file)
index 0000000..252e796
Binary files /dev/null and b/gfx/hud/old/num_7_stroke.tga differ
diff --git a/gfx/hud/old/num_8.tga b/gfx/hud/old/num_8.tga
new file mode 100644 (file)
index 0000000..aa20157
Binary files /dev/null and b/gfx/hud/old/num_8.tga differ
diff --git a/gfx/hud/old/num_8_stroke.tga b/gfx/hud/old/num_8_stroke.tga
new file mode 100644 (file)
index 0000000..e2cd39d
Binary files /dev/null and b/gfx/hud/old/num_8_stroke.tga differ
diff --git a/gfx/hud/old/num_9.tga b/gfx/hud/old/num_9.tga
new file mode 100644 (file)
index 0000000..87b9c21
Binary files /dev/null and b/gfx/hud/old/num_9.tga differ
diff --git a/gfx/hud/old/num_9_stroke.tga b/gfx/hud/old/num_9_stroke.tga
new file mode 100644 (file)
index 0000000..5a8d610
Binary files /dev/null and b/gfx/hud/old/num_9_stroke.tga differ
diff --git a/gfx/hud/old/num_colon.tga b/gfx/hud/old/num_colon.tga
new file mode 100644 (file)
index 0000000..e22c09a
Binary files /dev/null and b/gfx/hud/old/num_colon.tga differ
diff --git a/gfx/hud/old/num_colon_stroke.tga b/gfx/hud/old/num_colon_stroke.tga
new file mode 100644 (file)
index 0000000..68ad28a
Binary files /dev/null and b/gfx/hud/old/num_colon_stroke.tga differ
diff --git a/gfx/hud/old/num_dot.tga b/gfx/hud/old/num_dot.tga
new file mode 100644 (file)
index 0000000..7fbfdd0
Binary files /dev/null and b/gfx/hud/old/num_dot.tga differ
diff --git a/gfx/hud/old/num_dot_stroke.tga b/gfx/hud/old/num_dot_stroke.tga
new file mode 100644 (file)
index 0000000..29ad696
Binary files /dev/null and b/gfx/hud/old/num_dot_stroke.tga differ
diff --git a/gfx/hud/old/num_minus.tga b/gfx/hud/old/num_minus.tga
new file mode 100644 (file)
index 0000000..10721f2
Binary files /dev/null and b/gfx/hud/old/num_minus.tga differ
diff --git a/gfx/hud/old/num_minus_stroke.tga b/gfx/hud/old/num_minus_stroke.tga
new file mode 100644 (file)
index 0000000..26455a0
Binary files /dev/null and b/gfx/hud/old/num_minus_stroke.tga differ
diff --git a/gfx/hud/old/num_plus.tga b/gfx/hud/old/num_plus.tga
new file mode 100644 (file)
index 0000000..3cb17b3
Binary files /dev/null and b/gfx/hud/old/num_plus.tga differ
diff --git a/gfx/hud/old/num_plus_stroke.tga b/gfx/hud/old/num_plus_stroke.tga
new file mode 100644 (file)
index 0000000..7df2faa
Binary files /dev/null and b/gfx/hud/old/num_plus_stroke.tga differ
diff --git a/gfx/hud/old/race_newfail.tga b/gfx/hud/old/race_newfail.tga
new file mode 100644 (file)
index 0000000..cd1164b
Binary files /dev/null and b/gfx/hud/old/race_newfail.tga differ
diff --git a/gfx/hud/old/race_newrankgreen.tga b/gfx/hud/old/race_newrankgreen.tga
new file mode 100644 (file)
index 0000000..c8fa157
Binary files /dev/null and b/gfx/hud/old/race_newrankgreen.tga differ
diff --git a/gfx/hud/old/race_newrankyellow.tga b/gfx/hud/old/race_newrankyellow.tga
new file mode 100644 (file)
index 0000000..0af3c59
Binary files /dev/null and b/gfx/hud/old/race_newrankyellow.tga differ
diff --git a/gfx/hud/old/race_newrecordserver.tga b/gfx/hud/old/race_newrecordserver.tga
new file mode 100644 (file)
index 0000000..aa8bae1
Binary files /dev/null and b/gfx/hud/old/race_newrecordserver.tga differ
diff --git a/gfx/hud/old/race_newtime.tga b/gfx/hud/old/race_newtime.tga
new file mode 100644 (file)
index 0000000..c9647b9
Binary files /dev/null and b/gfx/hud/old/race_newtime.tga differ
diff --git a/gfx/hud/old/rifle_ring_1.tga b/gfx/hud/old/rifle_ring_1.tga
new file mode 100644 (file)
index 0000000..a90927c
Binary files /dev/null and b/gfx/hud/old/rifle_ring_1.tga differ
diff --git a/gfx/hud/old/rifle_ring_2.tga b/gfx/hud/old/rifle_ring_2.tga
new file mode 100644 (file)
index 0000000..6f6ca4c
Binary files /dev/null and b/gfx/hud/old/rifle_ring_2.tga differ
diff --git a/gfx/hud/old/rifle_ring_3.tga b/gfx/hud/old/rifle_ring_3.tga
new file mode 100644 (file)
index 0000000..68f6df7
Binary files /dev/null and b/gfx/hud/old/rifle_ring_3.tga differ
diff --git a/gfx/hud/old/rifle_ring_4.tga b/gfx/hud/old/rifle_ring_4.tga
new file mode 100644 (file)
index 0000000..0a5db15
Binary files /dev/null and b/gfx/hud/old/rifle_ring_4.tga differ
diff --git a/gfx/hud/old/rifle_ring_5.tga b/gfx/hud/old/rifle_ring_5.tga
new file mode 100644 (file)
index 0000000..d5cc95b
Binary files /dev/null and b/gfx/hud/old/rifle_ring_5.tga differ
diff --git a/gfx/hud/old/rifle_ring_6.tga b/gfx/hud/old/rifle_ring_6.tga
new file mode 100644 (file)
index 0000000..4a126e7
Binary files /dev/null and b/gfx/hud/old/rifle_ring_6.tga differ
diff --git a/gfx/hud/old/rifle_ring_7.tga b/gfx/hud/old/rifle_ring_7.tga
new file mode 100644 (file)
index 0000000..846212b
Binary files /dev/null and b/gfx/hud/old/rifle_ring_7.tga differ
diff --git a/gfx/hud/old/rifle_ring_8.tga b/gfx/hud/old/rifle_ring_8.tga
new file mode 100644 (file)
index 0000000..137e24d
Binary files /dev/null and b/gfx/hud/old/rifle_ring_8.tga differ
diff --git a/gfx/hud/old/shield.tga b/gfx/hud/old/shield.tga
new file mode 100644 (file)
index 0000000..f13f0b4
Binary files /dev/null and b/gfx/hud/old/shield.tga differ
diff --git a/gfx/hud/old/statusbar.tga b/gfx/hud/old/statusbar.tga
new file mode 100644 (file)
index 0000000..0bbad17
Binary files /dev/null and b/gfx/hud/old/statusbar.tga differ
diff --git a/gfx/hud/old/statusbar_vertical.tga b/gfx/hud/old/statusbar_vertical.tga
new file mode 100644 (file)
index 0000000..d63a37f
Binary files /dev/null and b/gfx/hud/old/statusbar_vertical.tga differ
diff --git a/gfx/hud/old/strength.tga b/gfx/hud/old/strength.tga
new file mode 100644 (file)
index 0000000..b19019d
Binary files /dev/null and b/gfx/hud/old/strength.tga differ
diff --git a/gfx/hud/old/voteprogress_back.tga b/gfx/hud/old/voteprogress_back.tga
new file mode 100644 (file)
index 0000000..10ffa13
Binary files /dev/null and b/gfx/hud/old/voteprogress_back.tga differ
diff --git a/gfx/hud/old/voteprogress_prog.tga b/gfx/hud/old/voteprogress_prog.tga
new file mode 100644 (file)
index 0000000..9f3f614
Binary files /dev/null and b/gfx/hud/old/voteprogress_prog.tga differ
diff --git a/gfx/hud/old/voteprogress_voted.tga b/gfx/hud/old/voteprogress_voted.tga
new file mode 100644 (file)
index 0000000..a21fe6a
Binary files /dev/null and b/gfx/hud/old/voteprogress_voted.tga differ
diff --git a/gfx/hud/old/weapon_current_bg.tga b/gfx/hud/old/weapon_current_bg.tga
new file mode 100644 (file)
index 0000000..7f3a2af
Binary files /dev/null and b/gfx/hud/old/weapon_current_bg.tga differ
diff --git a/gfx/hud/race/newfail.tga b/gfx/hud/race/newfail.tga
deleted file mode 100644 (file)
index cd1164b..0000000
Binary files a/gfx/hud/race/newfail.tga and /dev/null differ
diff --git a/gfx/hud/race/newrankgreen.tga b/gfx/hud/race/newrankgreen.tga
deleted file mode 100644 (file)
index c8fa157..0000000
Binary files a/gfx/hud/race/newrankgreen.tga and /dev/null differ
diff --git a/gfx/hud/race/newrankyellow.tga b/gfx/hud/race/newrankyellow.tga
deleted file mode 100644 (file)
index 0af3c59..0000000
Binary files a/gfx/hud/race/newrankyellow.tga and /dev/null differ
diff --git a/gfx/hud/race/newrecordserver.tga b/gfx/hud/race/newrecordserver.tga
deleted file mode 100644 (file)
index aa8bae1..0000000
Binary files a/gfx/hud/race/newrecordserver.tga and /dev/null differ
diff --git a/gfx/hud/race/newtime.tga b/gfx/hud/race/newtime.tga
deleted file mode 100644 (file)
index c9647b9..0000000
Binary files a/gfx/hud/race/newtime.tga and /dev/null differ
diff --git a/gfx/hud/rifle_ring_1.tga b/gfx/hud/rifle_ring_1.tga
deleted file mode 100644 (file)
index a90927c..0000000
Binary files a/gfx/hud/rifle_ring_1.tga and /dev/null differ
diff --git a/gfx/hud/rifle_ring_2.tga b/gfx/hud/rifle_ring_2.tga
deleted file mode 100644 (file)
index 6f6ca4c..0000000
Binary files a/gfx/hud/rifle_ring_2.tga and /dev/null differ
diff --git a/gfx/hud/rifle_ring_3.tga b/gfx/hud/rifle_ring_3.tga
deleted file mode 100644 (file)
index 68f6df7..0000000
Binary files a/gfx/hud/rifle_ring_3.tga and /dev/null differ
diff --git a/gfx/hud/rifle_ring_4.tga b/gfx/hud/rifle_ring_4.tga
deleted file mode 100644 (file)
index 0a5db15..0000000
Binary files a/gfx/hud/rifle_ring_4.tga and /dev/null differ
diff --git a/gfx/hud/rifle_ring_5.tga b/gfx/hud/rifle_ring_5.tga
deleted file mode 100644 (file)
index d5cc95b..0000000
Binary files a/gfx/hud/rifle_ring_5.tga and /dev/null differ
diff --git a/gfx/hud/rifle_ring_6.tga b/gfx/hud/rifle_ring_6.tga
deleted file mode 100644 (file)
index 4a126e7..0000000
Binary files a/gfx/hud/rifle_ring_6.tga and /dev/null differ
diff --git a/gfx/hud/rifle_ring_7.tga b/gfx/hud/rifle_ring_7.tga
deleted file mode 100644 (file)
index 846212b..0000000
Binary files a/gfx/hud/rifle_ring_7.tga and /dev/null differ
diff --git a/gfx/hud/rifle_ring_8.tga b/gfx/hud/rifle_ring_8.tga
deleted file mode 100644 (file)
index 137e24d..0000000
Binary files a/gfx/hud/rifle_ring_8.tga and /dev/null differ
diff --git a/gfx/hud/sb_accuracy.tga b/gfx/hud/sb_accuracy.tga
deleted file mode 100644 (file)
index 2974c1d..0000000
Binary files a/gfx/hud/sb_accuracy.tga and /dev/null differ
diff --git a/gfx/hud/sb_accuracy_bar.tga b/gfx/hud/sb_accuracy_bar.tga
deleted file mode 100644 (file)
index 96e853d..0000000
Binary files a/gfx/hud/sb_accuracy_bar.tga and /dev/null differ
diff --git a/gfx/hud/sb_ammobg.tga b/gfx/hud/sb_ammobg.tga
deleted file mode 100644 (file)
index 7f3a2af..0000000
Binary files a/gfx/hud/sb_ammobg.tga and /dev/null differ
diff --git a/gfx/hud/sb_armor.tga b/gfx/hud/sb_armor.tga
deleted file mode 100644 (file)
index 669bbc8..0000000
Binary files a/gfx/hud/sb_armor.tga and /dev/null differ
diff --git a/gfx/hud/sb_bullets.tga b/gfx/hud/sb_bullets.tga
deleted file mode 100644 (file)
index 394fa05..0000000
Binary files a/gfx/hud/sb_bullets.tga and /dev/null differ
diff --git a/gfx/hud/sb_cells.tga b/gfx/hud/sb_cells.tga
deleted file mode 100644 (file)
index 5365314..0000000
Binary files a/gfx/hud/sb_cells.tga and /dev/null differ
diff --git a/gfx/hud/sb_flag_blue_carrying.tga b/gfx/hud/sb_flag_blue_carrying.tga
deleted file mode 100644 (file)
index a8d64d1..0000000
Binary files a/gfx/hud/sb_flag_blue_carrying.tga and /dev/null differ
diff --git a/gfx/hud/sb_flag_blue_lost.tga b/gfx/hud/sb_flag_blue_lost.tga
deleted file mode 100644 (file)
index 5c7e632..0000000
Binary files a/gfx/hud/sb_flag_blue_lost.tga and /dev/null differ
diff --git a/gfx/hud/sb_flag_blue_shielded.tga b/gfx/hud/sb_flag_blue_shielded.tga
deleted file mode 100644 (file)
index 5da9356..0000000
Binary files a/gfx/hud/sb_flag_blue_shielded.tga and /dev/null differ
diff --git a/gfx/hud/sb_flag_blue_taken.tga b/gfx/hud/sb_flag_blue_taken.tga
deleted file mode 100644 (file)
index e6d955f..0000000
Binary files a/gfx/hud/sb_flag_blue_taken.tga and /dev/null differ
diff --git a/gfx/hud/sb_flag_red_carrying.tga b/gfx/hud/sb_flag_red_carrying.tga
deleted file mode 100644 (file)
index d1cf43d..0000000
Binary files a/gfx/hud/sb_flag_red_carrying.tga and /dev/null differ
diff --git a/gfx/hud/sb_flag_red_lost.tga b/gfx/hud/sb_flag_red_lost.tga
deleted file mode 100644 (file)
index b9d060d..0000000
Binary files a/gfx/hud/sb_flag_red_lost.tga and /dev/null differ
diff --git a/gfx/hud/sb_flag_red_shielded.tga b/gfx/hud/sb_flag_red_shielded.tga
deleted file mode 100644 (file)
index 551ba61..0000000
Binary files a/gfx/hud/sb_flag_red_shielded.tga and /dev/null differ
diff --git a/gfx/hud/sb_flag_red_taken.tga b/gfx/hud/sb_flag_red_taken.tga
deleted file mode 100644 (file)
index 7a1d3fc..0000000
Binary files a/gfx/hud/sb_flag_red_taken.tga and /dev/null differ
diff --git a/gfx/hud/sb_fuel.tga b/gfx/hud/sb_fuel.tga
deleted file mode 100644 (file)
index d761568..0000000
Binary files a/gfx/hud/sb_fuel.tga and /dev/null differ
diff --git a/gfx/hud/sb_health.tga b/gfx/hud/sb_health.tga
deleted file mode 100644 (file)
index 1a950cd..0000000
Binary files a/gfx/hud/sb_health.tga and /dev/null differ
diff --git a/gfx/hud/sb_highlight_1.tga b/gfx/hud/sb_highlight_1.tga
deleted file mode 100644 (file)
index 0e5233c..0000000
Binary files a/gfx/hud/sb_highlight_1.tga and /dev/null differ
diff --git a/gfx/hud/sb_highlight_2.tga b/gfx/hud/sb_highlight_2.tga
deleted file mode 100644 (file)
index 0629e49..0000000
Binary files a/gfx/hud/sb_highlight_2.tga and /dev/null differ
diff --git a/gfx/hud/sb_highlight_3.tga b/gfx/hud/sb_highlight_3.tga
deleted file mode 100644 (file)
index a6fb924..0000000
Binary files a/gfx/hud/sb_highlight_3.tga and /dev/null differ
diff --git a/gfx/hud/sb_highlight_4.tga b/gfx/hud/sb_highlight_4.tga
deleted file mode 100644 (file)
index ec54137..0000000
Binary files a/gfx/hud/sb_highlight_4.tga and /dev/null differ
diff --git a/gfx/hud/sb_invinc.tga b/gfx/hud/sb_invinc.tga
deleted file mode 100644 (file)
index f13f0b4..0000000
Binary files a/gfx/hud/sb_invinc.tga and /dev/null differ
diff --git a/gfx/hud/sb_kh_blue.tga b/gfx/hud/sb_kh_blue.tga
deleted file mode 100644 (file)
index 467b229..0000000
Binary files a/gfx/hud/sb_kh_blue.tga and /dev/null differ
diff --git a/gfx/hud/sb_kh_bluearrow.tga b/gfx/hud/sb_kh_bluearrow.tga
deleted file mode 100644 (file)
index b686d1b..0000000
Binary files a/gfx/hud/sb_kh_bluearrow.tga and /dev/null differ
diff --git a/gfx/hud/sb_kh_pink.tga b/gfx/hud/sb_kh_pink.tga
deleted file mode 100644 (file)
index b40967a..0000000
Binary files a/gfx/hud/sb_kh_pink.tga and /dev/null differ
diff --git a/gfx/hud/sb_kh_pinkarrow.tga b/gfx/hud/sb_kh_pinkarrow.tga
deleted file mode 100644 (file)
index 17427e5..0000000
Binary files a/gfx/hud/sb_kh_pinkarrow.tga and /dev/null differ
diff --git a/gfx/hud/sb_kh_red.tga b/gfx/hud/sb_kh_red.tga
deleted file mode 100644 (file)
index 3201f8a..0000000
Binary files a/gfx/hud/sb_kh_red.tga and /dev/null differ
diff --git a/gfx/hud/sb_kh_redarrow.tga b/gfx/hud/sb_kh_redarrow.tga
deleted file mode 100644 (file)
index edd1fab..0000000
Binary files a/gfx/hud/sb_kh_redarrow.tga and /dev/null differ
diff --git a/gfx/hud/sb_kh_yellow.tga b/gfx/hud/sb_kh_yellow.tga
deleted file mode 100644 (file)
index bb83475..0000000
Binary files a/gfx/hud/sb_kh_yellow.tga and /dev/null differ
diff --git a/gfx/hud/sb_kh_yellowarrow.tga b/gfx/hud/sb_kh_yellowarrow.tga
deleted file mode 100644 (file)
index 8e754cc..0000000
Binary files a/gfx/hud/sb_kh_yellowarrow.tga and /dev/null differ
diff --git a/gfx/hud/sb_nexball_carrying.tga b/gfx/hud/sb_nexball_carrying.tga
deleted file mode 100644 (file)
index 58d66f7..0000000
Binary files a/gfx/hud/sb_nexball_carrying.tga and /dev/null differ
diff --git a/gfx/hud/sb_rocket.tga b/gfx/hud/sb_rocket.tga
deleted file mode 100644 (file)
index e2b4df2..0000000
Binary files a/gfx/hud/sb_rocket.tga and /dev/null differ
diff --git a/gfx/hud/sb_scoreboard_bg.tga b/gfx/hud/sb_scoreboard_bg.tga
deleted file mode 100644 (file)
index 1d9ea76..0000000
Binary files a/gfx/hud/sb_scoreboard_bg.tga and /dev/null differ
diff --git a/gfx/hud/sb_scoreboard_tableheader.tga b/gfx/hud/sb_scoreboard_tableheader.tga
deleted file mode 100644 (file)
index e43040f..0000000
Binary files a/gfx/hud/sb_scoreboard_tableheader.tga and /dev/null differ
diff --git a/gfx/hud/sb_shells.tga b/gfx/hud/sb_shells.tga
deleted file mode 100644 (file)
index 24e5c72..0000000
Binary files a/gfx/hud/sb_shells.tga and /dev/null differ
diff --git a/gfx/hud/sb_str.tga b/gfx/hud/sb_str.tga
deleted file mode 100644 (file)
index b19019d..0000000
Binary files a/gfx/hud/sb_str.tga and /dev/null differ
diff --git a/gfx/hud/sb_timerbg.tga b/gfx/hud/sb_timerbg.tga
deleted file mode 100644 (file)
index 52ceaa9..0000000
Binary files a/gfx/hud/sb_timerbg.tga and /dev/null differ
diff --git a/gfx/hud/sbar.tga b/gfx/hud/sbar.tga
deleted file mode 100644 (file)
index f93ea60..0000000
Binary files a/gfx/hud/sbar.tga and /dev/null differ
diff --git a/gfx/hud/voteprogress_back.tga b/gfx/hud/voteprogress_back.tga
deleted file mode 100644 (file)
index 10ffa13..0000000
Binary files a/gfx/hud/voteprogress_back.tga and /dev/null differ
diff --git a/gfx/hud/voteprogress_prog.tga b/gfx/hud/voteprogress_prog.tga
deleted file mode 100644 (file)
index 9f3f614..0000000
Binary files a/gfx/hud/voteprogress_prog.tga and /dev/null differ
diff --git a/gfx/hud/voteprogress_voted.tga b/gfx/hud/voteprogress_voted.tga
deleted file mode 100644 (file)
index a21fe6a..0000000
Binary files a/gfx/hud/voteprogress_voted.tga and /dev/null differ
diff --git a/gfx/inv_weapon0.tga b/gfx/inv_weapon0.tga
deleted file mode 100644 (file)
index d026298..0000000
Binary files a/gfx/inv_weapon0.tga and /dev/null differ
diff --git a/gfx/inv_weapon1.tga b/gfx/inv_weapon1.tga
deleted file mode 100644 (file)
index 9a1c5d7..0000000
Binary files a/gfx/inv_weapon1.tga and /dev/null differ
diff --git a/gfx/inv_weapon10.tga b/gfx/inv_weapon10.tga
deleted file mode 100644 (file)
index b69237e..0000000
Binary files a/gfx/inv_weapon10.tga and /dev/null differ
diff --git a/gfx/inv_weapon11.tga b/gfx/inv_weapon11.tga
deleted file mode 100644 (file)
index 2f4e247..0000000
Binary files a/gfx/inv_weapon11.tga and /dev/null differ
diff --git a/gfx/inv_weapon12.tga b/gfx/inv_weapon12.tga
deleted file mode 100644 (file)
index 2f6c33a..0000000
Binary files a/gfx/inv_weapon12.tga and /dev/null differ
diff --git a/gfx/inv_weapon13.tga b/gfx/inv_weapon13.tga
deleted file mode 100644 (file)
index 1803b3e..0000000
Binary files a/gfx/inv_weapon13.tga and /dev/null differ
diff --git a/gfx/inv_weapon14.tga b/gfx/inv_weapon14.tga
deleted file mode 100644 (file)
index 2a6642b..0000000
Binary files a/gfx/inv_weapon14.tga and /dev/null differ
diff --git a/gfx/inv_weapon15.tga b/gfx/inv_weapon15.tga
deleted file mode 100644 (file)
index ba59aca..0000000
Binary files a/gfx/inv_weapon15.tga and /dev/null differ
diff --git a/gfx/inv_weapon2.tga b/gfx/inv_weapon2.tga
deleted file mode 100644 (file)
index 21b8812..0000000
Binary files a/gfx/inv_weapon2.tga and /dev/null differ
diff --git a/gfx/inv_weapon3.tga b/gfx/inv_weapon3.tga
deleted file mode 100644 (file)
index 857712a..0000000
Binary files a/gfx/inv_weapon3.tga and /dev/null differ
diff --git a/gfx/inv_weapon4.tga b/gfx/inv_weapon4.tga
deleted file mode 100644 (file)
index e753fed..0000000
Binary files a/gfx/inv_weapon4.tga and /dev/null differ
diff --git a/gfx/inv_weapon5.tga b/gfx/inv_weapon5.tga
deleted file mode 100644 (file)
index 0256781..0000000
Binary files a/gfx/inv_weapon5.tga and /dev/null differ
diff --git a/gfx/inv_weapon6.tga b/gfx/inv_weapon6.tga
deleted file mode 100644 (file)
index 9e1c14e..0000000
Binary files a/gfx/inv_weapon6.tga and /dev/null differ
diff --git a/gfx/inv_weapon7.tga b/gfx/inv_weapon7.tga
deleted file mode 100644 (file)
index d9be91a..0000000
Binary files a/gfx/inv_weapon7.tga and /dev/null differ
diff --git a/gfx/inv_weapon8.tga b/gfx/inv_weapon8.tga
deleted file mode 100644 (file)
index 94897f7..0000000
Binary files a/gfx/inv_weapon8.tga and /dev/null differ
diff --git a/gfx/inv_weapon9.tga b/gfx/inv_weapon9.tga
deleted file mode 100644 (file)
index 3080c51..0000000
Binary files a/gfx/inv_weapon9.tga and /dev/null differ
diff --git a/gfx/inv_weapon_hlacmod_renameit.tga b/gfx/inv_weapon_hlacmod_renameit.tga
deleted file mode 100644 (file)
index 8c8e873..0000000
Binary files a/gfx/inv_weapon_hlacmod_renameit.tga and /dev/null differ
diff --git a/gfx/keys/key_backward.tga b/gfx/keys/key_backward.tga
deleted file mode 100644 (file)
index 4de0f33..0000000
Binary files a/gfx/keys/key_backward.tga and /dev/null differ
diff --git a/gfx/keys/key_backward_inv.tga b/gfx/keys/key_backward_inv.tga
deleted file mode 100644 (file)
index bef0d1c..0000000
Binary files a/gfx/keys/key_backward_inv.tga and /dev/null differ
diff --git a/gfx/keys/key_bg.tga b/gfx/keys/key_bg.tga
deleted file mode 100644 (file)
index fca30be..0000000
Binary files a/gfx/keys/key_bg.tga and /dev/null differ
diff --git a/gfx/keys/key_crouch.tga b/gfx/keys/key_crouch.tga
deleted file mode 100644 (file)
index 00b2dfe..0000000
Binary files a/gfx/keys/key_crouch.tga and /dev/null differ
diff --git a/gfx/keys/key_crouch_inv.tga b/gfx/keys/key_crouch_inv.tga
deleted file mode 100644 (file)
index 2cdbda8..0000000
Binary files a/gfx/keys/key_crouch_inv.tga and /dev/null differ
diff --git a/gfx/keys/key_forward.tga b/gfx/keys/key_forward.tga
deleted file mode 100644 (file)
index dfe2233..0000000
Binary files a/gfx/keys/key_forward.tga and /dev/null differ
diff --git a/gfx/keys/key_forward_inv.tga b/gfx/keys/key_forward_inv.tga
deleted file mode 100644 (file)
index 7bbea60..0000000
Binary files a/gfx/keys/key_forward_inv.tga and /dev/null differ
diff --git a/gfx/keys/key_jump.tga b/gfx/keys/key_jump.tga
deleted file mode 100644 (file)
index d02b2db..0000000
Binary files a/gfx/keys/key_jump.tga and /dev/null differ
diff --git a/gfx/keys/key_jump_inv.tga b/gfx/keys/key_jump_inv.tga
deleted file mode 100644 (file)
index c54bb37..0000000
Binary files a/gfx/keys/key_jump_inv.tga and /dev/null differ
diff --git a/gfx/keys/key_left.tga b/gfx/keys/key_left.tga
deleted file mode 100644 (file)
index 60fe71f..0000000
Binary files a/gfx/keys/key_left.tga and /dev/null differ
diff --git a/gfx/keys/key_left_inv.tga b/gfx/keys/key_left_inv.tga
deleted file mode 100644 (file)
index 92bc615..0000000
Binary files a/gfx/keys/key_left_inv.tga and /dev/null differ
diff --git a/gfx/keys/key_right.tga b/gfx/keys/key_right.tga
deleted file mode 100644 (file)
index 308c03b..0000000
Binary files a/gfx/keys/key_right.tga and /dev/null differ
diff --git a/gfx/keys/key_right_inv.tga b/gfx/keys/key_right_inv.tga
deleted file mode 100644 (file)
index 8f04be4..0000000
Binary files a/gfx/keys/key_right_inv.tga and /dev/null differ
diff --git a/gfx/nr_piece-o-cake_mini.tga b/gfx/nr_piece-o-cake_mini.tga
deleted file mode 100644 (file)
index fb3ed08..0000000
Binary files a/gfx/nr_piece-o-cake_mini.tga and /dev/null differ
diff --git a/gfx/num_0.tga b/gfx/num_0.tga
deleted file mode 100644 (file)
index 7bbc65a..0000000
Binary files a/gfx/num_0.tga and /dev/null differ
diff --git a/gfx/num_1.tga b/gfx/num_1.tga
deleted file mode 100644 (file)
index f45427e..0000000
Binary files a/gfx/num_1.tga and /dev/null differ
diff --git a/gfx/num_2.tga b/gfx/num_2.tga
deleted file mode 100644 (file)
index cd78826..0000000
Binary files a/gfx/num_2.tga and /dev/null differ
diff --git a/gfx/num_3.tga b/gfx/num_3.tga
deleted file mode 100644 (file)
index 51d9cb7..0000000
Binary files a/gfx/num_3.tga and /dev/null differ
diff --git a/gfx/num_4.tga b/gfx/num_4.tga
deleted file mode 100644 (file)
index 23dc13c..0000000
Binary files a/gfx/num_4.tga and /dev/null differ
diff --git a/gfx/num_5.tga b/gfx/num_5.tga
deleted file mode 100644 (file)
index 284c42d..0000000
Binary files a/gfx/num_5.tga and /dev/null differ
diff --git a/gfx/num_6.tga b/gfx/num_6.tga
deleted file mode 100644 (file)
index abc3502..0000000
Binary files a/gfx/num_6.tga and /dev/null differ
diff --git a/gfx/num_7.tga b/gfx/num_7.tga
deleted file mode 100644 (file)
index 4076519..0000000
Binary files a/gfx/num_7.tga and /dev/null differ
diff --git a/gfx/num_8.tga b/gfx/num_8.tga
deleted file mode 100644 (file)
index 59e9f38..0000000
Binary files a/gfx/num_8.tga and /dev/null differ
diff --git a/gfx/num_9.tga b/gfx/num_9.tga
deleted file mode 100644 (file)
index 424e564..0000000
Binary files a/gfx/num_9.tga and /dev/null differ
diff --git a/gfx/num_colon.tga b/gfx/num_colon.tga
deleted file mode 100644 (file)
index 9179c4e..0000000
Binary files a/gfx/num_colon.tga and /dev/null differ
diff --git a/gfx/num_minus.tga b/gfx/num_minus.tga
deleted file mode 100644 (file)
index 6fabf6a..0000000
Binary files a/gfx/num_minus.tga and /dev/null differ
diff --git a/gfx/ons-reborn_radar.tga b/gfx/ons-reborn_radar.tga
deleted file mode 100644 (file)
index 4af8d83..0000000
Binary files a/gfx/ons-reborn_radar.tga and /dev/null differ
diff --git a/gfx/racetrack_radar.tga b/gfx/racetrack_radar.tga
deleted file mode 100644 (file)
index 9aef542..0000000
Binary files a/gfx/racetrack_radar.tga and /dev/null differ
diff --git a/gfx/ranking.tga b/gfx/ranking.tga
deleted file mode 100644 (file)
index 4d675d8..0000000
Binary files a/gfx/ranking.tga and /dev/null differ
diff --git a/gfx/reslimed_radar.tga b/gfx/reslimed_radar.tga
deleted file mode 100644 (file)
index ad58d6d..0000000
Binary files a/gfx/reslimed_radar.tga and /dev/null differ
diff --git a/gfx/ruiner_radar.tga b/gfx/ruiner_radar.tga
deleted file mode 100644 (file)
index 5e31386..0000000
Binary files a/gfx/ruiner_radar.tga and /dev/null differ
diff --git a/gfx/runningman_1on1remix_radar.tga b/gfx/runningman_1on1remix_radar.tga
deleted file mode 100644 (file)
index 18b883d..0000000
Binary files a/gfx/runningman_1on1remix_radar.tga and /dev/null differ
diff --git a/gfx/runningman_radar.tga b/gfx/runningman_radar.tga
deleted file mode 100644 (file)
index 6e0f297..0000000
Binary files a/gfx/runningman_radar.tga and /dev/null differ
diff --git a/gfx/runningmanctf_radar.tga b/gfx/runningmanctf_radar.tga
deleted file mode 100644 (file)
index cfbd49a..0000000
Binary files a/gfx/runningmanctf_radar.tga and /dev/null differ
diff --git a/gfx/sb_armor.tga b/gfx/sb_armor.tga
deleted file mode 100644 (file)
index 53fc319..0000000
Binary files a/gfx/sb_armor.tga and /dev/null differ
diff --git a/gfx/sb_bullets.tga b/gfx/sb_bullets.tga
deleted file mode 100644 (file)
index d3808ee..0000000
Binary files a/gfx/sb_bullets.tga and /dev/null differ
diff --git a/gfx/sb_cells.tga b/gfx/sb_cells.tga
deleted file mode 100644 (file)
index eace69a..0000000
Binary files a/gfx/sb_cells.tga and /dev/null differ
diff --git a/gfx/sb_energy.tga b/gfx/sb_energy.tga
deleted file mode 100644 (file)
index b688a01..0000000
Binary files a/gfx/sb_energy.tga and /dev/null differ
diff --git a/gfx/sb_flag_blue_carrying.tga b/gfx/sb_flag_blue_carrying.tga
deleted file mode 100644 (file)
index 7372869..0000000
Binary files a/gfx/sb_flag_blue_carrying.tga and /dev/null differ
diff --git a/gfx/sb_flag_blue_lost.tga b/gfx/sb_flag_blue_lost.tga
deleted file mode 100644 (file)
index 5e8c62e..0000000
Binary files a/gfx/sb_flag_blue_lost.tga and /dev/null differ
diff --git a/gfx/sb_flag_blue_shielded.tga b/gfx/sb_flag_blue_shielded.tga
deleted file mode 100644 (file)
index 61b9d3e..0000000
Binary files a/gfx/sb_flag_blue_shielded.tga and /dev/null differ
diff --git a/gfx/sb_flag_blue_taken.tga b/gfx/sb_flag_blue_taken.tga
deleted file mode 100644 (file)
index d167429..0000000
Binary files a/gfx/sb_flag_blue_taken.tga and /dev/null differ
diff --git a/gfx/sb_flag_red_carrying.tga b/gfx/sb_flag_red_carrying.tga
deleted file mode 100644 (file)
index 4f06f15..0000000
Binary files a/gfx/sb_flag_red_carrying.tga and /dev/null differ
diff --git a/gfx/sb_flag_red_lost.tga b/gfx/sb_flag_red_lost.tga
deleted file mode 100644 (file)
index 801bac6..0000000
Binary files a/gfx/sb_flag_red_lost.tga and /dev/null differ
diff --git a/gfx/sb_flag_red_shielded.tga b/gfx/sb_flag_red_shielded.tga
deleted file mode 100644 (file)
index fe317b8..0000000
Binary files a/gfx/sb_flag_red_shielded.tga and /dev/null differ
diff --git a/gfx/sb_flag_red_taken.tga b/gfx/sb_flag_red_taken.tga
deleted file mode 100644 (file)
index 39e9b1d..0000000
Binary files a/gfx/sb_flag_red_taken.tga and /dev/null differ
diff --git a/gfx/sb_fuel.tga b/gfx/sb_fuel.tga
deleted file mode 100644 (file)
index d761568..0000000
Binary files a/gfx/sb_fuel.tga and /dev/null differ
diff --git a/gfx/sb_health.tga b/gfx/sb_health.tga
deleted file mode 100644 (file)
index 725763b..0000000
Binary files a/gfx/sb_health.tga and /dev/null differ
diff --git a/gfx/sb_invinc.tga b/gfx/sb_invinc.tga
deleted file mode 100644 (file)
index 64ea27c..0000000
Binary files a/gfx/sb_invinc.tga and /dev/null differ
diff --git a/gfx/sb_key_carrying.tga b/gfx/sb_key_carrying.tga
deleted file mode 100644 (file)
index 2f3843b..0000000
Binary files a/gfx/sb_key_carrying.tga and /dev/null differ
diff --git a/gfx/sb_kh_full.tga b/gfx/sb_kh_full.tga
deleted file mode 100644 (file)
index 8621ae9..0000000
Binary files a/gfx/sb_kh_full.tga and /dev/null differ
diff --git a/gfx/sb_kh_outline.tga b/gfx/sb_kh_outline.tga
deleted file mode 100644 (file)
index 37dfbbe..0000000
Binary files a/gfx/sb_kh_outline.tga and /dev/null differ
diff --git a/gfx/sb_nexball_carrying.tga b/gfx/sb_nexball_carrying.tga
deleted file mode 100644 (file)
index 58d66f7..0000000
Binary files a/gfx/sb_nexball_carrying.tga and /dev/null differ
diff --git a/gfx/sb_player_ready.tga b/gfx/sb_player_ready.tga
deleted file mode 100644 (file)
index 0e2a31c..0000000
Binary files a/gfx/sb_player_ready.tga and /dev/null differ
diff --git a/gfx/sb_playercolor_base.tga b/gfx/sb_playercolor_base.tga
deleted file mode 100644 (file)
index 645457d..0000000
Binary files a/gfx/sb_playercolor_base.tga and /dev/null differ
diff --git a/gfx/sb_playercolor_pants.tga b/gfx/sb_playercolor_pants.tga
deleted file mode 100644 (file)
index 608f96f..0000000
Binary files a/gfx/sb_playercolor_pants.tga and /dev/null differ
diff --git a/gfx/sb_playercolor_shirt.tga b/gfx/sb_playercolor_shirt.tga
deleted file mode 100644 (file)
index 61ad4da..0000000
Binary files a/gfx/sb_playercolor_shirt.tga and /dev/null differ
diff --git a/gfx/sb_rocket.tga b/gfx/sb_rocket.tga
deleted file mode 100644 (file)
index 4cf9b36..0000000
Binary files a/gfx/sb_rocket.tga and /dev/null differ
diff --git a/gfx/sb_shells.tga b/gfx/sb_shells.tga
deleted file mode 100644 (file)
index b274f3a..0000000
Binary files a/gfx/sb_shells.tga and /dev/null differ
diff --git a/gfx/sb_slowmo.tga b/gfx/sb_slowmo.tga
deleted file mode 100644 (file)
index 8f09acb..0000000
Binary files a/gfx/sb_slowmo.tga and /dev/null differ
diff --git a/gfx/sb_str.tga b/gfx/sb_str.tga
deleted file mode 100644 (file)
index 131eac0..0000000
Binary files a/gfx/sb_str.tga and /dev/null differ
diff --git a/gfx/sbar.tga b/gfx/sbar.tga
deleted file mode 100644 (file)
index a79d9c1..0000000
Binary files a/gfx/sbar.tga and /dev/null differ
diff --git a/gfx/sbar_minimal.tga b/gfx/sbar_minimal.tga
deleted file mode 100644 (file)
index 29f1aa6..0000000
Binary files a/gfx/sbar_minimal.tga and /dev/null differ
diff --git a/gfx/sbar_overlay.tga b/gfx/sbar_overlay.tga
deleted file mode 100644 (file)
index aeee9e7..0000000
Binary files a/gfx/sbar_overlay.tga and /dev/null differ
diff --git a/gfx/scoreboard/accuracy_bg.tga b/gfx/scoreboard/accuracy_bg.tga
new file mode 100644 (file)
index 0000000..2974c1d
Binary files /dev/null and b/gfx/scoreboard/accuracy_bg.tga differ
diff --git a/gfx/scoreboard/player_ready.tga b/gfx/scoreboard/player_ready.tga
new file mode 100644 (file)
index 0000000..0e2a31c
Binary files /dev/null and b/gfx/scoreboard/player_ready.tga differ
diff --git a/gfx/scoreboard/playercolor_base.tga b/gfx/scoreboard/playercolor_base.tga
new file mode 100644 (file)
index 0000000..645457d
Binary files /dev/null and b/gfx/scoreboard/playercolor_base.tga differ
diff --git a/gfx/scoreboard/playercolor_pants.tga b/gfx/scoreboard/playercolor_pants.tga
new file mode 100644 (file)
index 0000000..608f96f
Binary files /dev/null and b/gfx/scoreboard/playercolor_pants.tga differ
diff --git a/gfx/scoreboard/playercolor_shirt.tga b/gfx/scoreboard/playercolor_shirt.tga
new file mode 100644 (file)
index 0000000..61ad4da
Binary files /dev/null and b/gfx/scoreboard/playercolor_shirt.tga differ
diff --git a/gfx/scoreboard/scoreboard_bg.tga b/gfx/scoreboard/scoreboard_bg.tga
new file mode 100644 (file)
index 0000000..1d9ea76
Binary files /dev/null and b/gfx/scoreboard/scoreboard_bg.tga differ
diff --git a/gfx/scoreboard/scoreboard_tableheader.tga b/gfx/scoreboard/scoreboard_tableheader.tga
new file mode 100644 (file)
index 0000000..e43040f
Binary files /dev/null and b/gfx/scoreboard/scoreboard_tableheader.tga differ
diff --git a/gfx/silvercity_radar.tga b/gfx/silvercity_radar.tga
deleted file mode 100644 (file)
index 0126208..0000000
Binary files a/gfx/silvercity_radar.tga and /dev/null differ
diff --git a/gfx/skyway_radar.tga b/gfx/skyway_radar.tga
deleted file mode 100644 (file)
index f513ae1..0000000
Binary files a/gfx/skyway_radar.tga and /dev/null differ
diff --git a/gfx/slimepit_radar.tga b/gfx/slimepit_radar.tga
deleted file mode 100644 (file)
index 9bcccf8..0000000
Binary files a/gfx/slimepit_radar.tga and /dev/null differ
diff --git a/gfx/soylent_radar.tga b/gfx/soylent_radar.tga
deleted file mode 100644 (file)
index c88fa93..0000000
Binary files a/gfx/soylent_radar.tga and /dev/null differ
diff --git a/gfx/starship_radar.tga b/gfx/starship_radar.tga
deleted file mode 100644 (file)
index 6d5dc7a..0000000
Binary files a/gfx/starship_radar.tga and /dev/null differ
diff --git a/gfx/stormkeep2_radar.tga b/gfx/stormkeep2_radar.tga
deleted file mode 100644 (file)
index dbb240d..0000000
Binary files a/gfx/stormkeep2_radar.tga and /dev/null differ
diff --git a/gfx/stormkeep_radar.tga b/gfx/stormkeep_radar.tga
deleted file mode 100644 (file)
index 82e45b6..0000000
Binary files a/gfx/stormkeep_radar.tga and /dev/null differ
diff --git a/gfx/strength_radar.tga b/gfx/strength_radar.tga
deleted file mode 100644 (file)
index 961e7cc..0000000
Binary files a/gfx/strength_radar.tga and /dev/null differ
diff --git a/gfx/toxic_radar.tga b/gfx/toxic_radar.tga
deleted file mode 100644 (file)
index d643cbf..0000000
Binary files a/gfx/toxic_radar.tga and /dev/null differ
diff --git a/gfx/turret_test_radar.tga b/gfx/turret_test_radar.tga
deleted file mode 100644 (file)
index 635cbfb..0000000
Binary files a/gfx/turret_test_radar.tga and /dev/null differ
diff --git a/gfx/warfare_radar.tga b/gfx/warfare_radar.tga
deleted file mode 100644 (file)
index c184c4b..0000000
Binary files a/gfx/warfare_radar.tga and /dev/null differ
diff --git a/gfx/weapons/weapon_hlacmod_renameit.tga b/gfx/weapons/weapon_hlacmod_renameit.tga
new file mode 100644 (file)
index 0000000..503dad9
Binary files /dev/null and b/gfx/weapons/weapon_hlacmod_renameit.tga differ
diff --git a/gfx/weapons/weaponcampingrifle.tga b/gfx/weapons/weaponcampingrifle.tga
new file mode 100644 (file)
index 0000000..09da559
Binary files /dev/null and b/gfx/weapons/weaponcampingrifle.tga differ
diff --git a/gfx/weapons/weaponcrylink.tga b/gfx/weapons/weaponcrylink.tga
new file mode 100644 (file)
index 0000000..1a92967
Binary files /dev/null and b/gfx/weapons/weaponcrylink.tga differ
diff --git a/gfx/weapons/weaponelectro.tga b/gfx/weapons/weaponelectro.tga
new file mode 100644 (file)
index 0000000..b800f0a
Binary files /dev/null and b/gfx/weapons/weaponelectro.tga differ
diff --git a/gfx/weapons/weaponfireball.tga b/gfx/weapons/weaponfireball.tga
new file mode 100644 (file)
index 0000000..b90d687
Binary files /dev/null and b/gfx/weapons/weaponfireball.tga differ
diff --git a/gfx/weapons/weapongrenadelauncher.tga b/gfx/weapons/weapongrenadelauncher.tga
new file mode 100644 (file)
index 0000000..91a8ce4
Binary files /dev/null and b/gfx/weapons/weapongrenadelauncher.tga differ
diff --git a/gfx/weapons/weaponhagar.tga b/gfx/weapons/weaponhagar.tga
new file mode 100644 (file)
index 0000000..3803159
Binary files /dev/null and b/gfx/weapons/weaponhagar.tga differ
diff --git a/gfx/weapons/weaponhlac.tga b/gfx/weapons/weaponhlac.tga
new file mode 100644 (file)
index 0000000..b63c2d8
Binary files /dev/null and b/gfx/weapons/weaponhlac.tga differ
diff --git a/gfx/weapons/weaponhook.tga b/gfx/weapons/weaponhook.tga
new file mode 100644 (file)
index 0000000..a1f662e
Binary files /dev/null and b/gfx/weapons/weaponhook.tga differ
diff --git a/gfx/weapons/weaponlaser.tga b/gfx/weapons/weaponlaser.tga
new file mode 100644 (file)
index 0000000..b66500b
Binary files /dev/null and b/gfx/weapons/weaponlaser.tga differ
diff --git a/gfx/weapons/weaponminstanex.tga b/gfx/weapons/weaponminstanex.tga
new file mode 100644 (file)
index 0000000..ae18113
Binary files /dev/null and b/gfx/weapons/weaponminstanex.tga differ
diff --git a/gfx/weapons/weaponnex.tga b/gfx/weapons/weaponnex.tga
new file mode 100644 (file)
index 0000000..7523580
Binary files /dev/null and b/gfx/weapons/weaponnex.tga differ
diff --git a/gfx/weapons/weaponporto.tga b/gfx/weapons/weaponporto.tga
new file mode 100644 (file)
index 0000000..444247f
Binary files /dev/null and b/gfx/weapons/weaponporto.tga differ
diff --git a/gfx/weapons/weaponrocketlauncher.tga b/gfx/weapons/weaponrocketlauncher.tga
new file mode 100644 (file)
index 0000000..bca989f
Binary files /dev/null and b/gfx/weapons/weaponrocketlauncher.tga differ
diff --git a/gfx/weapons/weaponseeker.tga b/gfx/weapons/weaponseeker.tga
new file mode 100644 (file)
index 0000000..0a8cf7e
Binary files /dev/null and b/gfx/weapons/weaponseeker.tga differ
diff --git a/gfx/weapons/weaponshotgun.tga b/gfx/weapons/weaponshotgun.tga
new file mode 100644 (file)
index 0000000..32f8e20
Binary files /dev/null and b/gfx/weapons/weaponshotgun.tga differ
diff --git a/gfx/weapons/weapontuba.tga b/gfx/weapons/weapontuba.tga
new file mode 100644 (file)
index 0000000..ba59aca
Binary files /dev/null and b/gfx/weapons/weapontuba.tga differ
diff --git a/gfx/weapons/weaponuzi.tga b/gfx/weapons/weaponuzi.tga
new file mode 100644 (file)
index 0000000..72ce481
Binary files /dev/null and b/gfx/weapons/weaponuzi.tga differ
diff --git a/hud_old_nexuiz.cfg b/hud_old_nexuiz.cfg
new file mode 100644 (file)
index 0000000..0eb197f
--- /dev/null
@@ -0,0 +1,112 @@
+seta hud_skin "old"
+seta hud_bg "0"
+seta hud_bg_color "0 0.6 0.9"
+seta hud_bg_alpha 0.800000
+seta hud_bg_border 10
+seta hud_fg_alpha 1
+
+seta hud_dock "1"
+seta hud_dock_color "0 0.6 0.9"
+seta hud_dock_alpha 0.800000
+
+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_weaponicons 1
+seta hud_weaponicons_pos "-0.635295 -0.134116"
+seta hud_weaponicons_size "0.352942 0.064845"
+seta hud_weaponicons_bg ""
+seta hud_weaponicons_bg_color ""
+seta hud_weaponicons_bg_alpha 0
+seta hud_weaponicons_bg_border 0
+seta hud_weaponicons_accuracy_height 3
+seta hud_weaponicons_accuracy_yellow 40
+
+seta hud_inventory 1
+seta hud_inventory_pos "0.179783 -0.092189"
+seta hud_inventory_size "0.174227 0.092189"
+seta hud_inventory_bg ""
+seta hud_inventory_bg_color ""
+seta hud_inventory_bg_alpha 0
+seta hud_inventory_bg_border 0
+seta hud_inventory_onlycurrent 0
+
+seta hud_powerups 1
+seta hud_powerups_pos "-0.311922 -0.084896"
+seta hud_powerups_size "0.086719 0.077084"
+seta hud_powerups_bg ""
+seta hud_powerups_bg_color ""
+seta hud_powerups_bg_alpha 0
+seta hud_powerups_bg_border 0
+seta hud_powerups_flip 1
+
+seta hud_healtharmor 1
+seta hud_healtharmor_pos "-0.627451 -0.066667"
+seta hud_healtharmor_size "0.291174 0.066667"
+seta hud_healtharmor_bg ""
+seta hud_healtharmor_bg_color ""
+seta hud_healtharmor_bg_alpha 0
+seta hud_healtharmor_bg_border 0
+seta hud_healtharmor_flip 1
+
+seta hud_notify 0
+seta hud_notify_pos "0.1 0"
+seta hud_notify_size "0.1 0.1"
+seta hud_notify_bg ""
+seta hud_notify_bg_color ""
+seta hud_notify_bg_alpha 0
+seta hud_notify_bg_border 0
+
+seta hud_timer 1
+seta hud_timer_pos "-0.213725 0"
+seta hud_timer_size "0.212735 0.054427"
+seta hud_timer_bg "border"
+seta hud_timer_bg_color ""
+seta hud_timer_bg_alpha 0
+seta hud_timer_bg_border 0
+
+seta hud_radar 1
+seta hud_radar_pos "0 0"
+seta hud_radar_size "0.215687 0.266667"
+seta hud_radar_bg ""
+seta hud_radar_bg_color ""
+seta hud_radar_bg_alpha 0
+seta hud_radar_bg_border 0
+
+seta hud_score 1
+seta hud_score_pos "-0.225469 -0.084404"
+seta hud_score_size "0.225469 0.075156"
+seta hud_score_bg ""
+seta hud_score_bg_color ""
+seta hud_score_bg_alpha 0
+seta hud_score_bg_border 0
+
+seta hud_racetimer 1
+seta hud_racetimer_pos "-0.614706 0"
+seta hud_racetimer_size "0.231373 0.077124"
+seta hud_racetimer_bg ""
+seta hud_racetimer_bg_color ""
+seta hud_racetimer_bg_alpha 0
+seta hud_racetimer_bg_border 0
+
+seta hud_vote 1
+seta hud_vote_pos "-0.321140 -0.268230"
+seta hud_vote_size "0.320156 0.106719"
+seta hud_vote_bg ""
+seta hud_vote_bg_color ""
+seta hud_vote_bg_alpha 0
+seta hud_vote_bg_border 0
+seta hud_vote_alreadyvoted_alpha 0.750000
+
+seta hud_pressedkeys 1
+seta hud_pressedkeys_pos "-0.571569 -0.265625"
+seta hud_pressedkeys_size "0.145098 0.114105"
+seta hud_pressedkeys_bg ""
+seta hud_pressedkeys_bg_color ""
+seta hud_pressedkeys_bg_alpha 0
+seta hud_pressedkeys_bg_border 0
+
index 8020d1a96a08cdafde018a2316d596453a99fd58..67d4b1ff7e780918379e66e7b8999f43d7df4ca6 100644 (file)
@@ -151,7 +151,6 @@ void                end_sys_fields;                 // flag for structure dumping
 float          intermission;
 float          sb_showscores;
 float          sb_showaccuracy;
-float          sbar_currentammo;
 .string                message;
 .float renderflags;
 // float               coop;
index 575f8b0622deb1b433f54702e79c17a2cf10a352..c6d03916b7cd4639d4ed86701eb704642facfc6b 100644 (file)
@@ -86,6 +86,8 @@ void CSQC_Init(void)
        // localcmd("alias order \"cmd order $*\""); enable if ctf-command thingy is used
        //registercmd("ctf_menu");
        registercmd("ons_map");
+       registercmd("hud_configure");
+       registercmd("hud_save");
        //registercmd("menu_action");
 
        registercmd("+button3");
@@ -109,14 +111,14 @@ void CSQC_Init(void)
 #ifndef CAMERATEST
        }
 #endif
-       registercvar("sbar_usecsqc", "1");
-       registercvar("sbar_columns", "default", CVAR_SAVE);
+       registercvar("hud_usecsqc", "1");
+       registercvar("hud_columns", "default", CVAR_SAVE);
 
        gametype = 0;
 
-       // sbar_fields uses strunzone on the titles!
-       for(i = 0; i < MAX_SBAR_FIELDS; ++i)
-               sbar_title[i] = strzone("(null)");
+       // hud_fields uses strunzone on the titles!
+       for(i = 0; i < MAX_HUD_FIELDS; ++i)
+               hud_title[i] = strzone("(null)");
 
        postinit = false;
 
@@ -325,9 +327,9 @@ void Playerchecker_Think()
                                e.ping_packetloss = 0;
                                e.ping_movementloss = 0;
                                //e.gotscores = 0; // we might already have the scores...
-                               SetTeam(e, GetPlayerColor(i)); // will not hurt; later updates come with Sbar_UpdatePlayerTeams
+                               SetTeam(e, GetPlayerColor(i)); // will not hurt; later updates come with HUD_UpdatePlayerTeams
                                RegisterPlayer(e);
-                               Sbar_UpdatePlayerPos(e);
+                               HUD_UpdatePlayerPos(e);
                        }
                }
        }
@@ -339,7 +341,7 @@ void TrueAim_Init();
 void PostInit(void)
 {
        print(strcat("PostInit\n    maxclients = ", ftos(maxclients), "\n"));
-       localcmd(strcat("\nsbar_columns_set ", cvar_string("sbar_columns"), ";\n"));
+       localcmd(strcat("\nhud_columns_set ", cvar_string("hud_columns"), ";\n"));
 
        entity playerchecker;
        playerchecker = spawn();
@@ -355,8 +357,8 @@ void PostInit(void)
 // CSQC_ConsoleCommand : Used to parse commands in the console that have been registered with the "registercmd" function
 // Return value should be 1 if CSQC handled the command, otherwise return 0 to have the engine handle it.
 float button_zoom;
-void Cmd_Sbar_SetFields(float);
-void Cmd_Sbar_Help(float);
+void Cmd_HUD_SetFields(float);
+void Cmd_HUD_Help(float);
 float CSQC_ConsoleCommand(string strMessage)
 {
        float argc;
@@ -368,7 +370,18 @@ float CSQC_ConsoleCommand(string strMessage)
        local string strCmd;
        strCmd = argv(0);
 
-       if(strCmd == "+button4") { // zoom
+       if(strCmd == "hud_configure") { // config hud
+               cvar_set("_hud_configure", ftos(!cvar("_hud_configure")));
+               return true;
+       } else if(strCmd == "hud_save") { // save hud config
+               if(argv(1) == "" || argv(2)) {
+                       print("Usage:\n");
+                       print("hud_save configname   (saves to hud_skinname_configname.cfg)\n");
+               }
+               else
+                       HUD_Panel_ExportCfg(argv(1));
+               return true;
+       } else if(strCmd == "+button4") { // zoom
                // return false, because the message shall be sent to the server anyway (for demos/speccing)
                if(ignore_plus_zoom)
                {
@@ -510,8 +523,8 @@ void GameCommand(string msg)
                print("Usage: cl_cmd COMMAND..., where possible commands are:\n");
                print("  settemp cvar value\n");
                print("  radar\n");
-               print("  sbar_columns_set ...\n");
-               print("  sbar_columns_help\n");
+               print("  hud_columns_set ...\n");
+               print("  hud_columns_help\n");
                GameCommand_Generic("help");
                return;
        }
@@ -530,11 +543,11 @@ void GameCommand(string msg)
        else if(cmd == "radar") {
                ons_showmap = !ons_showmap;
        }
-       else if(cmd == "sbar_columns_set") {
-               Cmd_Sbar_SetFields(argc);
+       else if(cmd == "hud_columns_set") {
+               Cmd_HUD_SetFields(argc);
        }
-       else if(cmd == "sbar_columns_help") {
-               Cmd_Sbar_Help(argc);
+       else if(cmd == "hud_columns_help") {
+               Cmd_HUD_Help(argc);
        }
 #ifdef BLURTEST
        else if(cmd == "blurtest") {
@@ -623,11 +636,16 @@ void GameCommand(string msg)
 // bInputType = 0 is key pressed, 1 is key released, 2 is mouse input.
 // In the case of keyboard input, nPrimary is the ascii code, and nSecondary is 0.
 // In the case of mouse input, nPrimary is xdelta, nSecondary is ydelta.
+float hudconf_active;
 float CSQC_InputEvent(float bInputType, float nPrimary, float nSecondary)
 {
        local float bSkipKey;
        bSkipKey = false;
 
+       if(hudconf_active)
+               if (HUD_Panel_InputEvent(bInputType, nPrimary, nSecondary))
+                       return true;
+
        if (MapVote_InputEvent(bInputType, nPrimary, nSecondary))
                return true;
 
@@ -678,7 +696,7 @@ void Ent_ReadPlayerScore()
        float isNew;
        entity o;
 
-       // damnit -.- don't want to go change every single .sv_entnum in sbar.qc AGAIN
+       // damnit -.- don't want to go change every single .sv_entnum in hud.qc AGAIN
        // (no I've never heard of M-x replace-string, sed, or anything like that)
        isNew = !self.owner; // workaround for DP bug
        n = ReadByte()-1;
@@ -724,7 +742,7 @@ void Ent_ReadPlayerScore()
                }
 
        if(o.sort_prev)
-               Sbar_UpdatePlayerPos(o); // if not registered, we cannot do this yet!
+               HUD_UpdatePlayerPos(o); // if not registered, we cannot do this yet!
 
        self.entremove = Ent_RemovePlayerScore;
 }
@@ -755,7 +773,7 @@ void Ent_ReadTeamScore()
                                o.(teamscores[i]) = ReadChar();
                }
 
-       Sbar_UpdateTeamPos(o);
+       HUD_UpdateTeamPos(o);
 }
 
 void Net_Reset()
@@ -1003,7 +1021,7 @@ void Ent_ScoresInfo()
                teamscores_label[i] = strzone(ReadString());
                teamscores_flags[i] = ReadByte();
        }
-       Sbar_InitScores();
+       HUD_InitScores();
        Gamemode_Init();
 }
 
@@ -1309,7 +1327,7 @@ string getcommandkey(string text, string command)
        string keys;
        float n, j, k, l;
 
-       if (!sbar_showbinds)
+       if (!hud_showbinds)
                return text;
 
        keys = db_get(binddb, command);
@@ -1327,7 +1345,7 @@ string getcommandkey(string text, string command)
                                        keys = strcat(keys, ", ", keynumtostring(k));
 
                                ++l;
-                               if (sbar_showbinds_limit > 0 && sbar_showbinds_limit >= l) break;
+                               if (hud_showbinds_limit > 0 && hud_showbinds_limit >= l) break;
                        }
 
                }
@@ -1335,12 +1353,12 @@ string getcommandkey(string text, string command)
        }
 
        if ("" == keys) {
-               if (sbar_showbinds > 1)
+               if (hud_showbinds > 1)
                        return strcat(text, " (not bound)");
                else
                        return text;
        }
-       else if (sbar_showbinds > 1)
+       else if (hud_showbinds > 1)
                return strcat(text, " (", keys, ")");
        else
                return keys;
index 0557db1160be5c4a8d0e7d4ae9339e9b72837aae..676c1dbc8569d223038fe22d3099ae69543242ef 100644 (file)
@@ -340,7 +340,7 @@ void CSQC_kh_hud(void);
 void CSQC_ctf_hud(void);
 void PostInit(void);
 void CSQC_Demo_Camera();
-float Sbar_WouldDrawScoreboard ();
+float HUD_WouldDrawScoreboard ();
 float view_set;
 float camera_mode;
 string NextFrameCommand;
@@ -397,6 +397,10 @@ void CSQC_UpdateView(float w, float h)
                view_set = 1;
        }
 
+       hudconf_active = cvar("_hud_configure");
+       if(hudconf_active)
+               R_SetView(VF_ANGLES, self.angles); // TODO: this should freeze the view as it is, not change it to '0 0 0' or whatever it currently does...
+
        vid_width = w;
        vid_height = h;
 
@@ -463,17 +467,15 @@ void CSQC_UpdateView(float w, float h)
                }
        }
 
-       sbar_alpha_fg = cvar("sbar_alpha_fg" ) * (1 - cvar("_menu_alpha"));
-       sbar_currentammo = cvar("sbar_showcurrentammo");
-       sbar_hudselector = cvar("sbar_hudselector");
-       sbar_accuracy_hud = cvar_or("sbar_accuracy_hud", 1);
+       hud_alpha_fg = cvar_or("hud_fg_alpha", 1) * (1 - cvar("_menu_alpha"));
+       hud_accuracy_hud = cvar_or("hud_accuracy_hud", 1);
        ColorTranslateMode = cvar("cl_stripcolorcodes");
        activeweapon = getstati(STAT_SWITCHWEAPON);
        f = cvar("teamplay");
        if(f != teamplay)
        {
                teamplay = f;
-               Sbar_InitScores();
+               HUD_InitScores();
        }
 
        if(last_weapon != activeweapon) {
@@ -523,15 +525,15 @@ void CSQC_UpdateView(float w, float h)
 
        // Draw the Crosshair
        float scoreboard_active;
-       scoreboard_active = Sbar_WouldDrawScoreboard();
+       scoreboard_active = HUD_WouldDrawScoreboard();
        R_SetView(VF_DRAWCROSSHAIR, 0); //Make sure engine crosshairs are always hidden
 
        // Draw the Engine Status Bar (the default Quake HUD)
-       R_SetView(VF_DRAWENGINESBAR, 0);
+       R_SetView(VF_DRAWENGINEHUD, 0);
 
        // fetch this one only once per frame
-       sbar_showbinds = cvar("sbar_showbinds");
-       sbar_showbinds_limit = cvar("sbar_showbinds_limit");
+       hud_showbinds = cvar("hud_showbinds");
+       hud_showbinds_limit = cvar("hud_showbinds_limit");
 
        // Update the mouse position
        /*
@@ -577,37 +579,9 @@ void CSQC_UpdateView(float w, float h)
                        self.draw2d();
        self = e;
 
-       // draw radar
-       if(
-                       ons_showmap
-                       ||
-                       (
-                        !scoreboard_active
-                        &&
-                        cvar_string("cl_teamradar") != "0"
-                        &&
-                        (
-                         cvar("cl_teamradar") == 2
-                         ||
-                         teamplay
-                        )
-                       )
-         )
-               teamradar_view();
-
-       // draw sbar
+       // draw hud
        if(cvar("r_letterbox") == 0) {
-               if (cvar("cl_showpressedkeys")) { // draw pressed keys when spectating and playing
-                       if(spectatee_status > 0 || cvar("cl_showpressedkeys") >= 2)
-                               Sbar_DrawPressedKeys();
-               }
-
-               if (cvar("cl_showspeed"))
-                       Sbar_ShowSpeed();
-               if (cvar("cl_showacceleration"))
-                       Sbar_ShowAcceleration();
-
-               Sbar_DrawCenterPrint(); // draw centerprint messages even if viewsize >= 120
+               HUD_DrawCenterPrint(); // draw centerprint messages even if viewsize >= 120
        }
 
        float hud;
@@ -627,7 +601,7 @@ void CSQC_UpdateView(float w, float h)
                                CSQC_common_hud();
 
                // crosshair goes VERY LAST
-               if(!scoreboard_active && !ons_showmap && !camera_active) {
+               if(!scoreboard_active && !ons_showmap && !camera_active && !hudconf_active) {
                        // TrueAim check
                        float shottype;
                        float bullets, ring_scale;
@@ -863,19 +837,19 @@ void CSQC_UpdateView(float w, float h)
                cvar_set("vid_conheight", h0);
        }
 
+       if(hudconf_active)
+               HUD_Panel_Mouse();
        // be safe against triggerbots until everyone has the fixed engine
        // this call is meant to overwrite the trace globals by something
        // unsuspicious
        traceline('0 0 0', '0 0 0', MOVE_WORLDONLY, world);
 }
 
-void Sbar_Draw();
 #define spider_h "gfx/vehicles/hud_bg.tga"
 #define spider_b "gfx/vehicles/sbot.tga"
 #define spider_r "gfx/vehicles/sbot_rpods.tga"
 #define spider_g "gfx/vehicles/sbot_mguns.tga"
 #define spider_s "gfx/vehicles/shiled.tga"
-
 #define spider_a1 "gfx/hud/sb_rocket.tga"
 #define spider_a2 "gfx/sb_bullets.tga"
 
@@ -980,8 +954,8 @@ void CSQC_SPIDER_HUD()
 
        if (sb_showscores)
        {
-               Sbar_DrawScoreboard();
-               Sbar_DrawCenterPrint();
+               HUD_DrawScoreboard();
+               HUD_DrawCenterPrint();
        }
 
 }
@@ -1050,8 +1024,8 @@ void CSQC_RAPTOR_HUD()
 
        if (sb_showscores)
        {
-               Sbar_DrawScoreboard();
-               Sbar_DrawCenterPrint();
+               HUD_DrawScoreboard();
+               HUD_DrawCenterPrint();
        }
 
 }
@@ -1160,8 +1134,8 @@ const float STAT_VEHICLESTAT_RELOAD2 = 66;
 
        if (sb_showscores)
        {
-               Sbar_DrawScoreboard();
-               Sbar_DrawCenterPrint();
+               HUD_DrawScoreboard();
+               HUD_DrawCenterPrint();
        }
 
 }
@@ -1169,7 +1143,7 @@ const float STAT_VEHICLESTAT_RELOAD2 = 66;
 
 void CSQC_common_hud(void)
 {
-       // Sbar_SortFrags(); done in Sbar_Draw
+       // HUD_SortFrags(); done in HUD_Draw
        float hud;
        hud = getstati(STAT_HUD);
 
@@ -1177,7 +1151,34 @@ void CSQC_common_hud(void)
        switch(hud)
        {
                case HUD_NORMAL:
-                       Sbar_Draw();
+                       // hud first
+                       HUD_Main();
+
+                       // is this needed?
+                       //HUD_UpdatePlayerTeams();
+
+                       if (intermission == 2) // map voting screen
+                       {
+                               if(sb_showaccuracy && spectatee_status != -1) {
+                                       HUD_DrawAccuracyStats();
+                               }
+                               else if(sb_showscores) {
+                                       HUD_DrawScoreboard();
+                               }
+                               else
+                                       HUD_FinaleOverlay();
+
+                               HUD_Reset();
+                       }
+                       else if (sb_showscores || sb_showaccuracy || sb_showscores_force || getstati(STAT_HEALTH) <= 0 || intermission == 1)
+                       {
+                               if(sb_showaccuracy && spectatee_status != -1)
+                                       HUD_DrawAccuracyStats();
+                               else
+                                       HUD_DrawScoreboard();
+
+                               HUD_Reset();
+                       }
                        break;
 
                case HUD_SPIDERBOT:
index a3511b1493551ada1789c2fbaad61883f4ec5ce6..2b2e674c603a2b938aa0f30984ae861a3806be6c 100644 (file)
@@ -32,7 +32,7 @@ const float           VF_ANGLES_X                                             = 16;   //(float)
 const float            VF_ANGLES_Y                                             = 17;   //(float)
 const float            VF_ANGLES_Z                                             = 18;   //(float)
 const float            VF_DRAWWORLD                                    = 19;   //(float)
-const float            VF_DRAWENGINESBAR                               = 20;   //(float)
+const float            VF_DRAWENGINEHUD                                = 20;   //(float)
 const float            VF_DRAWCROSSHAIR                                = 21;   //(float)
 const float            VF_PERSPECTIVE                                  = 200;  //(float)
 
diff --git a/qcsrc/client/d b/qcsrc/client/d
deleted file mode 100644 (file)
index d5a11c1..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- sbar.qc.BASE.4129.qc       2010-05-06 19:58:30.171990860 +0200
-+++ sbar.qc    2010-05-06 20:01:25.251979343 +0200
-@@ -3395,8 +3395,15 @@
-               rr = RACE_RECORD;
-       t = stof(db_get(ClientProgsDB, strcat(shortmapname, rr, "time")));
--      if(score && score < t || !t)
-+      if(score && (score < t || !t)) {
-               db_put(ClientProgsDB, strcat(shortmapname, rr, "time"), ftos(score));
-+              if(cvar("cl_autodemo_delete_keeprecords"))
-+              {
-+                      f = cvar("cl_autodemo_delete");
-+                      f &~= 1;
-+                      cvar_set("cl_autodemo_delete", ftos(f)); // don't delete demo with new record!
-+              }
-+      }
-       if(t != crecordtime_prev) {
-               crecordtime_prev = t;
diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc
new file mode 100644 (file)
index 0000000..e21071d
--- /dev/null
@@ -0,0 +1,3225 @@
+/*
+==================
+Misc HUD functions
+==================
+*/
+
+// a border picture is a texture containing nine parts:
+//   1/4 width: left part
+//   1/2 width: middle part (stretched)
+//   1/4 width: right part
+// divided into
+//   1/4 height: top part
+//   1/2 height: middle part (stretched)
+//   1/4 height: bottom part
+void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha, vector theBorderSize)
+{
+       vector dX, dY;
+       vector width, height;
+       vector bW, bH;
+       //pic = draw_UseSkinFor(pic);
+       width = eX * theSize_x;
+       height = eY * theSize_y;
+       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)
+               {
+                       // not high enough... draw just corners
+                       bH = eY * (0.25 * theSize_y / (theBorderSize_y * 2));
+                       drawsubpic(theOrigin,                 width * 0.5 + height * 0.5, pic, '0 0 0',           bW + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + width   * 0.5, width * 0.5 + height * 0.5, pic, eX - bW,           bW + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + height  * 0.5, width * 0.5 + height * 0.5, pic, eY - bH,           bW + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + theSize * 0.5, width * 0.5 + height * 0.5, pic, eX + eY - bW - bH, bW + bH, theColor, theAlpha, 0);
+               }
+               else
+               {
+                       dY = theBorderSize_x * 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);
+                       drawsubpic(theOrigin + width * 0.5          + dY, width * 0.5 + height - 2 * dY, pic, '0 0.25 0' + eX - bW, '0 0.5  0' + bW, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin               + height - dY, width * 0.5          +     dY, pic, '0 0.75 0',           '0 0.25 0' + bW, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + width * 0.5 + height - dY, width * 0.5          +     dY, pic, '0 0.75 0' + eX - bW, '0 0.25 0' + bW, 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));
+                       dX = theBorderSize_x * eX;
+                       drawsubpic(theOrigin,                                         dX + height * 0.5, pic, '0    0 0',           '0.25 0 0' + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + dX,                        width - 2 * dX + height * 0.5, pic, '0.25 0 0',           '0.5  0 0' + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + width - dX,                            dX + height * 0.5, pic, '0.75 0 0',           '0.25 0 0' + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin              + height * 0.5,             dX + height * 0.5, pic, '0    0 0' + eY - bH, '0.25 0 0' + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + dX         + height * 0.5, width - 2 * dX + height * 0.5, pic, '0.25 0 0' + eY - bH, '0.5  0 0' + bH, theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + width - dX + height * 0.5,             dX + height * 0.5, pic, '0.75 0 0' + eY - bH, '0.25 0 0' + bH, theColor, theAlpha, 0);
+               }
+               else
+               {
+                       dX = theBorderSize_x * eX;
+                       dY = theBorderSize_x * 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);
+                       drawsubpic(theOrigin          + dY,                          dX + height - 2 * dY, pic, '0    0.25 0', '0.25 0.5  0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin          + dY         + dX, width - 2 * dX + height - 2 * dY, pic, '0.25 0.25 0', '0.5  0.5  0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin          + dY + width - dX,             dX + height - 2 * dY, pic, '0.75 0.25 0', '0.25 0.5  0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + height - dY,                          dX          +     dY, pic, '0    0.75 0', '0.25 0.25 0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + height - dY         + dX, width - 2 * dX          +     dY, pic, '0.25 0.75 0', '0.5  0.25 0', theColor, theAlpha, 0);
+                       drawsubpic(theOrigin + height - dY + width - dX,             dX          +     dY, pic, '0.75 0.75 0', '0.25 0.25 0', theColor, theAlpha, 0);
+               }
+       }
+}
+
+// draw HUD element with image from gfx/hud/hud_skin/foo.tga if it exists, otherwise gfx/hud/default/foo.tga
+void drawpic_skin(vector pos, string pic, vector sz, vector color, float alpha, float drawflag) {
+       drawpic(pos, strcat("gfx/hud/", cvar_string("hud_skin"), "/", pic), sz, color, alpha, drawflag);
+}
+
+void drawpic_skin_expanding(vector pos, string pic, vector sz, vector rgb, float alpha, float flag, float fadelerp) {
+       drawpic_expanding(pos, strcat("gfx/hud/", cvar_string("hud_skin"), "/", pic), sz, rgb, alpha, flag, fadelerp);
+}
+
+// return HUD background color
+vector HUD_GetBgColor()
+{
+       vector color;
+       if (teamplay)
+               GetTeamRGB(myteam) * hud_color_bg_team;
+       else {
+               // allow custom HUD colors in non-teamgames
+               color_x = cvar("hud_color_bg_r");
+               color_y = cvar("hud_color_bg_g");
+               color_z = cvar("hud_color_bg_b");
+       }
+       return color;
+}
+
+// return accuracy text color
+vector HUD_AccuracyColor(float accuracy)
+{
+       vector rgb;
+       float yellow_accuracy = cvar("hud_weaponicons_accuracy_yellow"); // value at which this function returns yellow
+       if(accuracy >= 100) {
+               rgb_x = 0;
+               rgb_y = 1;
+       }
+       else if(accuracy > yellow_accuracy) {
+               rgb_x = 1 - (accuracy-yellow_accuracy)/(100-yellow_accuracy); // red value between 1 -> 0
+               rgb_y = 1;
+       }
+       else {
+               rgb_x = 1;
+               rgb_y = accuracy/yellow_accuracy; // green value between 0 -> 1
+       }
+       rgb_z = 0;
+       return rgb;
+}
+
+// draw number in the XSCALE font
+void HUD_DrawXNum (vector pos, float num, float digits, float showsign, float lettersize, vector rgb, float highlighted, float stroke, float alpha, float dflags)
+{
+       float l, i;
+       string str, tmp, l_length;
+       float minus, plus;
+       vector vsize, num_color;
+
+       vsize_x = vsize_y = lettersize;
+       vsize_z = 0;
+
+       // showsign 1: always prefix with minus sign (useful in race distribution display)
+       // showsign 2: always prefix with plus sign (useful in race distribution display)
+       // showsign 3: prefix with minus sign if negative, plus sign if positive (useful in score distribution display)
+
+       if((showsign == 2 && num >= 0) || (num > 0 && showsign == 3))
+       {
+               plus = true;
+               pos_x -= lettersize;
+       } else
+               plus = false;
+
+       if(num < 0 || (num < 0 && showsign == 3) || (showsign == 1 && num <= 0))
+       {
+               minus = true;
+               num = -num;
+               pos_x -= lettersize;
+       } else
+               minus = false;
+
+       if(digits < 0)
+       {
+               tmp = ftos(num);
+               digits = -digits;
+               str = strcat(substring("0000000000", 0, digits - strlen(tmp)), tmp);
+       } else
+               str = ftos(num);
+
+       l = strlen(str);
+       l_length = ftos(l);
+
+       if(l > digits)
+       {
+               str = substring(str, l-digits, 999);
+               l = strlen(str);
+       } else if(l < digits)
+               pos_x += (digits-l) * lettersize;
+
+       if (highlighted == 1) {
+               vector hl_size;
+               hl_size_x = vsize_x * l + vsize_x * 0.2;
+               hl_size_y = vsize_y * 1.1;
+               hl_size_z = 0;
+               if(minus)
+                       hl_size_x = hl_size_x + vsize_x;
+
+               vector hl_pos;
+               hl_pos_x = pos_x - lettersize/10;
+               hl_pos_y = pos_y - lettersize/20;
+               hl_pos_z = 0;
+
+               drawpic_skin(hl_pos, strcat("highlight_", l_length), hl_size, '1 1 1', alpha, dflags);
+       }
+
+       if (stroke == 1)
+               num_color = '1 1 1';
+       else
+               num_color = rgb;
+
+       if(minus)
+       {
+               if (stroke == 1)
+                       drawpic_skin(pos, "num_minus_stroke", vsize, rgb, alpha, dflags);
+               drawpic_skin(pos, "num_minus", vsize, num_color, alpha, dflags);
+               pos_x += lettersize;
+       } else if(plus)
+       {
+               if (stroke == 1)
+                       drawpic_skin(pos, "num_plus_stroke", vsize, rgb, alpha, dflags);
+               drawpic_skin(pos, "num_plus", vsize, num_color, alpha, dflags);
+               pos_x += lettersize;
+       }
+
+       for(i = 0; i < l; ++i)
+       {
+               tmp = substring(str, i, 1);
+               if (stroke == 1)
+                       drawpic_skin(pos, strcat("num_", tmp, "_stroke"), vsize, rgb, alpha, dflags);
+               drawpic_skin(pos, strcat("num_", tmp), vsize, num_color, alpha, dflags);
+               pos_x += lettersize;
+       }
+}
+
+// color the number differently based on how big it is (used in the health/armor panel)
+void HUD_DrawXNum_Colored (vector pos, float x, float digits, float lettersize, float alpha)
+{
+       vector color;
+       if(x > 200) {
+               color_x = 0;
+               color_y = 1;
+               color_z = 0;
+       }
+       else if(x > 150) {
+               color_x = 0.4 - (x-150)*0.02 * 0.4; //red value between 0.4 -> 0
+               color_y = 0.9 + (x-150)*0.02 * 0.1; // green value between 0.9 -> 1
+               color_z = 0;
+       }
+       else if(x > 100) {
+               color_x = 1 - (x-100)*0.02 * 0.6; //red value between 1 -> 0.4
+               color_y = 1 - (x-100)*0.02 * 0.1; // green value between 1 -> 0.9
+               color_z = 1 - (x-100)*0.02; // blue value between 1 -> 0
+       }
+       else if(x > 50) {
+               color_x = 1;
+               color_y = 1;
+               color_z = 0.2 + (x-50)*0.02 * 0.8; // blue value between 0.2 -> 1
+       }
+       else if(x > 20) {
+               color_x = 1;
+               color_y = (x-20)*90/27/100; // green value between 0 -> 1
+               color_z = (x-20)*90/27/100 * 0.2; // blue value between 0 -> 0.2
+       }
+       else {
+               color_x = 1;
+               color_y = 0;
+               color_z = 0;
+       }
+       HUD_DrawXNum(pos, x, digits, 0, lettersize, color, 0, 0, alpha, DRAWFLAG_NORMAL);
+}
+
+float stringwidth_colors(string s, vector theSize)
+{
+       return stringwidth(s, TRUE, theSize);
+}
+
+float stringwidth_nocolors(string s, vector theSize)
+{
+       return stringwidth(s, FALSE, theSize);
+}
+
+#define CENTERPRINT_MAX_LINES 30
+string centerprint_messages[CENTERPRINT_MAX_LINES];
+float centerprint_width[CENTERPRINT_MAX_LINES];
+vector centerprint_start;
+float centerprint_expire;
+float centerprint_num;
+float centerprint_offset_hint;
+vector centerprint_fontsize;
+
+void centerprint(string strMessage)
+{
+       float i, j, n, hcount;
+       string s;
+
+       centerprint_fontsize = HUD_GetFontsize("scr_centersize");
+
+       centerprint_expire = min(centerprint_expire, time); // if any of the returns happens, this message will fade out
+
+       if(cvar("scr_centertime") <= 0)
+               return;
+
+       if(strMessage == "")
+               return;
+
+       // strip trailing newlines
+       j = strlen(strMessage) - 1;
+       while(substring(strMessage, j, 1) == "\n" && j >= 0)
+               j = j - 1;
+       strMessage = substring(strMessage, 0, j + 1);
+
+       if(strMessage == "")
+               return;
+
+       // strip leading newlines and remember them, they are a hint that the message should be lower on the screen
+       j = 0;
+       while(substring(strMessage, j, 1) == "\n" && j < strlen(strMessage))
+               j = j + 1;
+       strMessage = substring(strMessage, j, strlen(strMessage) - j);
+       centerprint_offset_hint = j;
+
+       if(strMessage == "")
+               return;
+
+       // if we get here, we have a message. Initialize its height.
+       centerprint_num = 0;
+
+       n = tokenizebyseparator(strMessage, "\n");
+       i = hcount = 0;
+       for(j = 0; j < n; ++j)
+       {
+               getWrappedLine_remaining = argv(j);
+               while(getWrappedLine_remaining)
+               {
+                       s = getWrappedLine(vid_conwidth * 0.75, centerprint_fontsize, stringwidth_colors);
+                       if(centerprint_messages[i])
+                               strunzone(centerprint_messages[i]);
+                       centerprint_messages[i] = strzone(s);
+                       centerprint_width[i] = stringwidth(s, TRUE, centerprint_fontsize);
+                       ++i;
+
+                       // half height for empty lines looks better
+                       if(s == "")
+                               hcount += 0.5;
+                       else
+                               hcount += 1;
+
+                       if(i >= CENTERPRINT_MAX_LINES)
+                               break;
+               }
+       }
+
+       float h, havail;
+       h = centerprint_fontsize_y*hcount;
+
+       havail = vid_conheight;
+       if(cvar("con_chatpos") < 0)
+               havail -= (-cvar("con_chatpos") + cvar("con_chat")) * cvar("con_chatsize"); // avoid overlapping chat
+       if(havail > vid_conheight - 70)
+               havail = vid_conheight - 70; // avoid overlapping HUD
+
+       centerprint_start_x = 0;
+
+#if 0
+       float forbiddenmin, forbiddenmax, allowedmin, allowedmax, preferred;
+
+       // here, the centerprint would cover the crosshair. REALLY BAD.
+       forbiddenmin = vid_conheight * 0.5 - h - 16;
+       forbiddenmax = vid_conheight * 0.5 + 16;
+
+       allowedmin = scoreboard_bottom;
+       allowedmax = havail - h;
+       preferred = (havail - h)/2;
+
+
+       // possible orderings (total: 4! / 4 = 6)
+       //  allowedmin allowedmax forbiddenmin forbiddenmax
+       //  forbiddenmin forbiddenmax allowedmin allowedmax
+       if(allowedmax < forbiddenmin || allowedmin > forbiddenmax)
+       {
+               // forbidden doesn't matter in this case
+               centerprint_start_y = bound(allowedmin, preferred, allowedmax);
+       }
+       //  allowedmin forbiddenmin allowedmax forbiddenmax
+       else if(allowedmin < forbiddenmin && allowedmax < forbiddenmax)
+       {
+               centerprint_start_y = bound(allowedmin, preferred, forbiddenmin);
+       }
+       //  allowedmin forbiddenmin forbiddenmax allowedmax
+       else if(allowedmin < forbiddenmin)
+       {
+               // make sure the forbidden zone is not covered
+               if(preferred > (forbiddenmin + forbiddenmax) * 0.5)
+                       centerprint_start_y = bound(allowedmin, preferred, forbiddenmin);
+               else
+                       centerprint_start_y = bound(forbiddenmax, preferred, allowedmin);
+       }
+       //  forbiddenmin allowedmin allowedmax forbiddenmax
+       else if(allowedmax < forbiddenmax)
+       {
+               // it's better to leave the allowed zone (overlap with scoreboard) than
+               // to cover the forbidden zone (crosshair)
+               if(preferred > (forbiddenmin + forbiddenmax) * 0.5)
+                       centerprint_start_y = forbiddenmax;
+               else
+                       centerprint_start_y = forbiddenmin;
+       }
+       //  forbiddenmin allowedmin forbiddenmax allowedmax
+       else
+       {
+               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");
+}
+
+void HUD_DrawCenterPrint (void)
+{
+       float i;
+       vector pos;
+       string ts;
+       float a;
+
+       //if(time > centerprint_expire)
+       //      return;
+
+       //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(a <= 0)
+               return;
+
+       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];
+               if (ts != "")
+               {
+                       dummyfunction(0, 0, 0, 0, 0, 0, 0, 0); // work around DP bug (set OFS_PARAM5 to 0)
+                       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
+                       pos_y = pos_y + centerprint_fontsize_y;
+               }
+               else
+                       // half height for empty lines looks better
+                       pos_y = pos_y + centerprint_fontsize_y * 0.5;
+       }
+}
+
+void drawstringright(vector position, string text, vector scale, vector rgb, float alpha, float flag)
+{
+       position_x -= 2 / 3 * strlen(text) * scale_x;
+       drawstring(position, text, scale, rgb, alpha, flag);
+}
+
+void drawstringcenter(vector position, string text, vector scale, vector rgb, float alpha, float flag)
+{
+       position_x = 0.5 * (vid_conwidth - 0.6025 * strlen(text) * scale_x);
+       drawstring(position, text, scale, rgb, alpha, flag);
+}
+
+// return the string of the given race place
+string race_PlaceName(float pos) {
+       if(pos == 1)
+               return "1st";
+       else if(pos == 2)
+               return "2nd";
+       else if(pos == 3)
+               return "3rd";
+       else
+               return strcat(ftos(pos), "th");
+}
+
+// return the string of the onscreen race timer
+string MakeRaceString(float cp, float mytime, float histime, float lapdelta, string hisname)
+{
+       string col;
+       string timestr;
+       string cpname;
+       string lapstr;
+       lapstr = "";
+
+       if(histime == 0) // goal hit
+       {
+               if(mytime > 0)
+               {
+                       timestr = strcat("+", ftos_decimals(+mytime, TIME_DECIMALS));
+                       col = "^1";
+               }
+               else if(mytime == 0)
+               {
+                       timestr = "+0.0";
+                       col = "^3";
+               }
+               else
+               {
+                       timestr = strcat("-", ftos_decimals(-mytime, TIME_DECIMALS));
+                       col = "^2";
+               }
+
+               if(lapdelta > 0)
+               {
+                       lapstr = strcat(" (-", ftos(lapdelta), "L)");
+                       col = "^2";
+               }
+               else if(lapdelta < 0)
+               {
+                       lapstr = strcat(" (+", ftos(-lapdelta), "L)");
+                       col = "^1";
+               }
+       }
+       else if(histime > 0) // anticipation
+       {
+               if(mytime >= histime)
+                       timestr = strcat("+", ftos_decimals(mytime - histime, TIME_DECIMALS));
+               else
+                       timestr = TIME_ENCODED_TOSTRING(TIME_ENCODE(histime));
+               col = "^3";
+       }
+       else
+               col = "^7";
+
+       if(cp == 254)
+               cpname = "Start line";
+       else if(cp == 255)
+               cpname = "Finish line";
+       else if(cp)
+               cpname = strcat("Intermediate ", ftos(cp));
+       else
+               cpname = "Finish line";
+
+       if(histime < 0)
+               return strcat(col, cpname);
+       else if(hisname == "")
+               return strcat(col, cpname, " (", timestr, ")");
+       else
+               return strcat(col, cpname, " (", timestr, " ", strcat(hisname, col, lapstr), ")");
+}
+
+// Check if the given name already exist in race rankings? In that case, where? (otherwise return 0)
+float race_CheckName(string net_name) {
+       float i;
+       for (i=RANKINGS_CNT-1;i>=0;--i)
+               if(grecordholder[i] == net_name)
+                       return i+1;
+       return 0;
+}
+
+/*
+==================
+HUD panels
+==================
+*/
+
+string HUD_Panel_GetName(float id)
+{
+       switch(id) {
+               case 0: return "weaponicons"; break;
+               case 1: return "inventory"; break;
+               case 2: return "powerups"; break;
+               case 3: return "healtharmor"; break;
+               case 4: return "notify"; break;
+               case 5: return "timer"; break;
+               case 6: return "radar"; break;
+               case 7: return "score"; break;
+               case 8: return "racetimer"; break;
+               case 9: return "vote"; break;
+               case 10: return "modicons"; break;
+               case 11: return "pressedkeys"; break;
+               default: return "";
+       }
+}
+
+// Save the config
+void HUD_Panel_ExportCfg(string cfgname)
+{
+       float fh;
+       fh = fopen(strcat("hud_", cvar_string("hud_skin"), "_", cfgname, ".cfg"), FILE_WRITE);
+       if(fh >= 0)
+       {
+               fputs(fh, strcat("seta hud_skin \"", cvar_string("hud_skin"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_bg \"", cvar_string("hud_bg"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_bg_color \"", cvar_string("hud_bg_color"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_bg_alpha ", ftos(cvar("hud_bg_alpha")), "\n"));
+               fputs(fh, strcat("seta hud_bg_border ", ftos(cvar("hud_bg_border")), "\n"));
+               fputs(fh, strcat("seta hud_fg_alpha ", ftos(cvar("hud_fg_alpha")), "\n"));
+               fputs(fh, "\n");
+
+               fputs(fh, strcat("seta hud_dock \"", cvar_string("hud_dock"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_dock_color \"", cvar_string("hud_dock_color"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_dock_alpha ", ftos(cvar("hud_dock_alpha")), "\n"));
+               fputs(fh, "\n");
+
+               fputs(fh, strcat("seta hud_progressbar_alpha ", ftos(cvar("hud_progressbar_alpha")), "\n"));
+               fputs(fh, strcat("seta hud_progressbar_strength_color \"", cvar_string("hud_progressbar_strength_color"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_progressbar_shield_color \"", cvar_string("hud_progressbar_shield_color"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_progressbar_health_color \"", cvar_string("hud_progressbar_health_color"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_progressbar_armor_color \"", cvar_string("hud_progressbar_armor_color"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_progressbar_fuel_color \"", cvar_string("hud_progressbar_fuel_color"), "\"", "\n"));
+               fputs(fh, strcat("seta hud_progressbar_nexball_color \"", cvar_string("hud_progressbar_nexball_color"), "\"", "\n"));
+               fputs(fh, "\n");
+
+               // common cvars for all panels
+               float i;
+               for (i = 0; i < panel_cnt; ++i)
+               {
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), " ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i)))), "\n"));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_pos \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_pos")), "\"", "\n"));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_size \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_size")), "\"", "\n"));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg")), "\"", "\n"));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_color \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg_color")), "\"", "\n"));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_alpha ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_bg_alpha"))), "\n"));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_border ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_bg_border"))), "\n"));
+                       switch(i) {
+                               case 0:
+                                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_accuracy_height ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_accuracy_height"))), "\n"));
+                                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_accuracy_yellow ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_accuracy_yellow"))), "\n"));
+                                       break;
+                               case 1:
+                                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_onlycurrent ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_onlycurrent"))), "\n"));
+                                       break;
+                               case 2:
+                                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_flip ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_flip"))), "\n"));
+                                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_mirror ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_mirror"))), "\n"));
+                                       break;
+                               case 3:
+                                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_flip ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_flip"))), "\n"));
+                                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_mirror ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_mirror"))), "\n"));
+                                       break;
+                               case 9:
+                                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_alreadyvoted_alpha ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_alreadyvoted_alpha"))), "\n"));
+                                       break;
+                       }
+                       fputs(fh, "\n");
+               }
+
+               print("^2Successfully exported to hud_", cvar_string("hud_skin"), "_", cfgname, ".cfg! (Note: It's saved in data/data/)\n");
+       }
+       fclose(fh);
+}
+
+vector HUD_Panel_CheckLimitSize(float id, vector mySize)
+{
+       switch(id) {
+               case 0: 
+                       mySize_x = max(mySize_y * (1/10), mySize_x); // at least 1/10 * height
+                       mySize_y = max(mySize_x * (1/26), mySize_y); // at least 1/26 * width
+                       break;
+               case 1: 
+                       mySize_x = max(mySize_y * 0.7, mySize_x); // at least 0.7 * height
+                       break;
+               //case 2: 
+               //      mySize_x = max(mySize_y * 1.5, mySize_x); // at least 1.5 * height
+               //      break;
+               //case 3: 
+               //      mySize_x = max(mySize_y * 2, mySize_x); // at least 2 * height
+               //      break;
+               case 5: 
+                       mySize_y = (1/4.1) * mySize_x; // 1/4.1 * width, trial and error...
+                       break;
+               case 7: 
+                       mySize_y = (1/4) * mySize_x; // 1/4 * width
+                       break;
+               case 8: 
+                       mySize_y = (1/4) * mySize_x; // 1/4 * width
+                       break;
+               case 9: 
+                       mySize_y = (1/4) * mySize_x; // 1/4 * width
+                       break;
+               case 10: 
+                       mySize_y = (1/2) * mySize_x; // 1/2 * width
+                       break;
+               case 11: 
+                       mySize_y = 0.5898 * mySize_x; // 0.5898 * width, reason: bg has weird dimensions...
+                       break;
+       }
+       return mySize;
+}
+
+// return active status of panel
+float HUD_Panel_CheckActive(float id)
+{
+       if (cvar_or(strcat("hud_", HUD_Panel_GetName(id)), 1))
+               return 1;
+       return 0;
+}
+
+// return size of given panel
+vector HUD_Panel_GetSize(float id)
+{
+       vector mySize;
+       mySize = stov(cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_size")));
+
+       mySize = eX * mySize_x * vid_conwidth + eY * mySize_y * vid_conheight;
+
+       return mySize;
+}
+
+// return pos of given panel
+vector HUD_Panel_GetPos(float id)
+{
+       vector pos;
+       pos = stov(cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_pos")));
+
+       pos = eX * pos_x * vid_conwidth + eY * pos_y * vid_conheight;
+
+       if (pos_x < 0)
+               pos_x = vid_conwidth + pos_x;
+       if (pos_y < 0)
+               pos_y = vid_conheight + pos_y;
+       return pos;
+}
+
+float HUD_Panel_GetBorder(float id)
+{
+       float border;
+       border = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_border"));
+       if(!border)
+               border = cvar("hud_bg_border");
+       return border;
+}
+
+// draw the background/borders
+void HUD_Panel_DrawBg(float id, vector pos, vector mySize)
+{
+       if(!hud_configure && cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg")) == "0")
+               return;
+
+       string bg;
+       bg = cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg"));
+       if(bg == "")
+               bg = cvar_string("hud_bg");
+
+       if(bg != "0")
+       {
+               float border;
+               border = max(0.0000001, HUD_Panel_GetBorder(id)); // draw_BorderPicture does not like border = 0
+
+               vector color;
+               if(cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg_color")) != "")
+                       color = stov(cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg_color")));
+               else
+                       color = stov(cvar_string("hud_bg_color"));
+
+               float alpha;
+               alpha = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_alpha"));
+               if(!alpha)
+                       alpha = cvar("hud_bg_alpha");
+               if(hud_configure)
+                       alpha = max(cvar("hud_configure_bg_minalpha"), alpha);
+
+               draw_BorderPicture(pos - '1 1 0' * border, strcat("gfx/hud/", cvar_string("hud_skin"), "/", bg), mySize + '1 1 0' * 2 * border, color, alpha, '1 1 0' * (border/BORDER_MULTIPLIER));
+       }
+}
+
+vector HUD_Panel_GetProgressBarColor(string item)
+{
+       return stov(cvar_string(strcat("hud_progressbar_", item, "_color")));
+}
+
+float resizeCorner; // 1 = topleft, 2 = topright, 3 = bottomleft, 4 = bottomright
+// check if resize will result in panel being moved into another panel. If so, return snapped vector, otherwise return the given vector
+vector HUD_Panel_CheckResize(float id, vector myPos, vector mySize)
+{
+       float i;
+
+       vector myTarget;
+       myTarget = mySize;
+
+       vector targPos;
+       vector targSize;
+       vector myCenter;
+       vector targCenter;
+
+       for (i = 0; i < panel_cnt; ++i) {
+               if(i == id || !HUD_Panel_CheckActive(i))
+                       continue;
+
+               targPos = HUD_Panel_GetPos(i);
+               targSize = HUD_Panel_GetSize(i);
+
+               targPos = HUD_Panel_GetPos(i) - '1 1 0' * HUD_Panel_GetBorder(id);
+               targSize = HUD_Panel_GetSize(i) + '2 2 0' * HUD_Panel_GetBorder(id);
+
+               if(myPos_y + mySize_y < targPos_y)
+                       continue;
+               if(myPos_y > targPos_y + targSize_y)
+                       continue;
+
+               if(myPos_x + mySize_x < targPos_x)
+                       continue;
+               if(myPos_x > targPos_x + targSize_x)
+                       continue;
+
+               // OK, there IS a collision.
+
+               myCenter_x = myPos_x + 0.5 * mySize_x;
+               myCenter_y = myPos_y + 0.5 * mySize_y;
+
+               targCenter_x = targPos_x + 0.5 * targSize_x;
+               targCenter_y = targPos_y + 0.5 * targSize_y;
+
+               float k, y;
+               if(myCenter_x < targCenter_x && myCenter_y < targCenter_y && resizeCorner != 1) // top left (of target panel)
+               {
+                       if(myPos_x + mySize_x - targPos_x < myPos_y + mySize_y - targPos_y) // push it to the side
+                               myTarget_x = targPos_x - myPos_x;
+                       else // push it upwards
+                               myTarget_y = targPos_y - myPos_y;
+               }
+               else if(myCenter_x > targCenter_x && myCenter_y < targCenter_y && resizeCorner != 2) // top right
+               {
+                       if(targPos_x + targSize_x - myPos_x < myPos_y + mySize_y - targPos_y) // push it to the side
+                               myTarget_x = targPos_x + targSize_x;
+                       else // push it upwards
+                               myTarget_y = targPos_y - myPos_y;
+               }
+               else if(myCenter_x < targCenter_x && myCenter_y > targCenter_y) // bottom left
+               {
+                       if(myPos_x + mySize_x - targPos_x < targPos_y + targSize_y - myPos_y) // push it to the side
+                               myTarget_x = targPos_x - myPos_x;
+                       else // push it downwards
+                               myTarget_y = targPos_y + targSize_y;
+               }
+               else if(myCenter_x > targCenter_x && myCenter_y > targCenter_y) // bottom right
+               {
+                       if(targPos_x + targSize_x - myPos_x < targPos_y + targSize_y - myPos_y) // push it to the side
+                               myTarget_x = targPos_x + targSize_x;
+                       else // push it downwards
+                               myTarget_y = targPos_y + targSize_y;
+               }
+       }
+
+       return myTarget;
+}
+
+// TODO: checkResize
+float HUD_Panel_SetSize(float id, vector mySize)
+{
+       float didntresize;
+
+       vector oldSize;
+       oldSize = stov(cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_size")));
+
+       vector myPos;
+       myPos = HUD_Panel_GetPos(id);
+
+       // check for collisions
+       if(cvar("hud_configure_checkcollisions"))
+               mySize = HUD_Panel_CheckResize(id, HUD_Panel_GetPos(id), mySize);
+
+       mySize_x = bound(0.025 * vid_conwidth, mySize_x, vid_conwidth - myPos_x);
+       mySize_y = bound(0.025 * vid_conheight, mySize_y, vid_conheight - myPos_y);
+
+       // cap against panel's own limits
+       mySize = HUD_Panel_CheckLimitSize(id, mySize);
+
+       //mySize_x = bound(0.025 * vid_conwidth, mySize_x, vid_conwidth);
+       //mySize_y = bound(0.025 * vid_conheight, mySize_y, vid_conheight);
+
+       if(cvar("hud_configure_grid"))
+       {
+               mySize_x = floor(mySize_x/cvar("hud_configure_grid_x") + 0.5) * cvar("hud_configure_grid_x");
+               mySize_y = floor(mySize_y/cvar("hud_configure_grid_y") + 0.5) * cvar("hud_configure_grid_y");
+       }
+
+       // TODO: is this needed?
+       // this is to check if (and how) SetPos should be called
+       if(mySize_x == oldSize_x && mySize_y == oldSize_y)
+               didntresize = 3; // didnt resize either
+       else if(mySize_x == oldSize_x && mySize_y != oldSize_y)
+               didntresize = 2; // resized Y
+       else if(mySize_y == oldSize_y && mySize_x != oldSize_x)
+               didntresize = 1; // resized X
+
+       string s;
+       s = strcat(ftos(mySize_x/vid_conwidth), " ", ftos(mySize_y/vid_conheight));
+       cvar_set(strcat("hud_", HUD_Panel_GetName(id), "_size"), s);
+       return didntresize;
+}
+
+// check if move will result in panel being moved into another panel. If so, return snapped vector, otherwise return the given vector
+vector HUD_Panel_CheckMove(float id, vector myPos, vector mySize)
+{
+       float i;
+
+       vector myTarget;
+       myTarget = myPos;
+
+       vector targPos;
+       vector targSize;
+       vector myCenter;
+       vector targCenter;
+
+       for (i = 0; i < panel_cnt; ++i) {
+               if(i == id || !HUD_Panel_CheckActive(i))
+                       continue;
+
+               targPos = HUD_Panel_GetPos(i) - '1 1 0' * HUD_Panel_GetBorder(id);
+               targSize = HUD_Panel_GetSize(i) + '2 2 0' * HUD_Panel_GetBorder(id);
+
+               if(myPos_y + mySize_y < targPos_y)
+                       continue;
+               if(myPos_y > targPos_y + targSize_y)
+                       continue;
+
+               if(myPos_x + mySize_x < targPos_x)
+                       continue;
+               if(myPos_x > targPos_x + targSize_x)
+                       continue;
+
+               // OK, there IS a collision.
+
+               myCenter_x = myPos_x + 0.5 * mySize_x;
+               myCenter_y = myPos_y + 0.5 * mySize_y;
+
+               targCenter_x = targPos_x + 0.5 * targSize_x;
+               targCenter_y = targPos_y + 0.5 * targSize_y;
+
+               float k, y;
+               if(myCenter_x < targCenter_x && myCenter_y < targCenter_y) // top left (of the target panel)
+               {
+                       if(myPos_x + mySize_x - targPos_x < myPos_y + mySize_y - targPos_y) // push it to the side
+                               myTarget_x = targPos_x - mySize_x;
+                       else // push it upwards
+                               myTarget_y = targPos_y - mySize_y;
+               }
+               else if(myCenter_x > targCenter_x && myCenter_y < targCenter_y) // top right
+               {
+                       if(targPos_x + targSize_x - myPos_x < myPos_y + mySize_y - targPos_y) // push it to the side
+                               myTarget_x = targPos_x + targSize_x;
+                       else // push it upwards
+                               myTarget_y = targPos_y - mySize_y;
+               }
+               else if(myCenter_x < targCenter_x && myCenter_y > targCenter_y) // bottom left
+               {
+                       if(myPos_x + mySize_x - targPos_x < targPos_y + targSize_y - myPos_y) // push it to the side
+                               myTarget_x = targPos_x - mySize_x;
+                       else // push it downwards
+                               myTarget_y = targPos_y + targSize_y;
+               }
+               else if(myCenter_x > targCenter_x && myCenter_y > targCenter_y) // bottom right
+               {
+                       if(targPos_x + targSize_x - myPos_x < targPos_y + targSize_y - myPos_y) // push it to the side
+                               myTarget_x = targPos_x + targSize_x;
+                       else // push it downwards
+                               myTarget_y = targPos_y + targSize_y;
+               }
+       }
+
+       return myTarget;
+}
+
+void HUD_Panel_SetPos(float id, vector pos, float didntresize)
+{
+       vector oldPos;
+       oldPos = HUD_Panel_GetPos(id);
+       if(didntresize == 2)
+               pos_x = oldPos_x;
+       else if(didntresize == 1)
+               pos_y = oldPos_y;
+       else if(didntresize == 3)
+               return;
+
+       vector mySize;
+       mySize = HUD_Panel_GetSize(id);
+
+       if(cvar("hud_configure_checkcollisions"))
+               pos = HUD_Panel_CheckMove(id, pos, mySize);
+
+       pos_x = bound(0, pos_x, vid_conwidth - mySize_x);
+       pos_y = bound(0, pos_y, vid_conheight - mySize_y);
+
+       if(cvar("hud_configure_grid"))
+       {
+               pos_x = floor(pos_x/cvar("hud_configure_grid_x") + 0.5) * cvar("hud_configure_grid_x");
+               pos_y = floor(pos_y/cvar("hud_configure_grid_y") + 0.5) * cvar("hud_configure_grid_y");
+       }
+
+       if (pos_x + 0.5 * mySize_x > 0.5 * vid_conwidth)
+               pos_x = pos_x - vid_conwidth;
+       if (pos_y + 0.5 * mySize_y > 0.5 * vid_conheight)
+               pos_y = pos_y - vid_conheight;
+
+       string s;
+       s = strcat(ftos(pos_x/vid_conwidth), " ", ftos(pos_y/vid_conheight));
+
+       cvar_set(strcat("hud_", HUD_Panel_GetName(id), "_pos"), s);
+}
+
+float mouseClicked;
+float prevMouseClicked; // previous state
+float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary)
+{
+       prevMouseClicked = mouseClicked;
+       if(nPrimary == K_MOUSE1)
+       {
+               if(bInputType == 0) { // key pressed
+                       mouseClicked = 1;
+                       return true;
+               }
+               if(bInputType == 1) {// key released
+                       mouseClicked = 0;
+                       return true;
+               }
+       }
+       return false;
+}
+
+vector mousepos, mouseprevpos;
+vector panel_click_distance; // mouse cursor distance from the top left corner of the panel (saved only upon a click)
+vector panel_click_pos; // panel pos (saved only upon a click)
+vector panel_click_size; // panel size (saved only upon a click)
+float highlightedPanel;
+float highlightedAction; // 0 = nothing, 1 = move, 2 = resize
+void HUD_Panel_Mouse()
+{
+       if(mouseClicked == 0) {
+               highlightedPanel = -1;
+               highlightedAction = 0;
+       }
+
+       mousepos = mousepos + getmousepos();
+
+       mousepos_x = bound(0, mousepos_x, vid_conwidth);
+       mousepos_y = bound(0, mousepos_y, vid_conheight);
+
+       drawpic(mousepos, strcat("gfx/menu/", cvar_string("menu_skin"), "/cursor.tga"), '32 32 0', '1 1 1', 1, DRAWFLAG_NORMAL);
+
+       if(mouseClicked)
+       {
+               float i, border;
+               vector panelPos;
+               vector panelSize;
+
+               for(i = 0; i <= panel_cnt; ++i)
+               {
+                       panelPos = HUD_Panel_GetPos(i);
+                       panelSize = HUD_Panel_GetSize(i);
+                       border = HUD_Panel_GetBorder(i);
+                       if(prevMouseClicked == 0) {
+                               // move
+                               if(mousepos_x >= panelPos_x && mousepos_y >= panelPos_y && mousepos_x <= panelPos_x + panelSize_x && mousepos_y <= panelPos_y + panelSize_y)
+                               {
+                                       highlightedPanel = i;
+                                       highlightedAction = 1;
+                               }
+                               // resize from topleft border
+                               else if(mousepos_x >= panelPos_x - border && mousepos_y >= panelPos_y - border && mousepos_x <= panelPos_x + 0.5 * panelSize_x && mousepos_y <= panelPos_y + 0.5 * panelSize_y)
+                               {
+                                       highlightedPanel = i;
+                                       highlightedAction = 2;
+                                       resizeCorner = 1;
+                               }
+                               // resize from topright border
+                               else if(mousepos_x >= panelPos_x + 0.5 * panelSize_x && mousepos_y >= panelPos_y - border && mousepos_x <= panelPos_x + panelSize_x + border && mousepos_y <= panelPos_y + 0.5 * panelSize_y)
+                               {
+                                       highlightedPanel = i;
+                                       highlightedAction = 2;
+                                       resizeCorner = 2;
+                               }
+                               // resize from bottomleft border
+                               else if(mousepos_x >= panelPos_x - border && mousepos_y >= panelPos_y + 0.5 * panelSize_y && mousepos_x <= panelPos_x + 0.5 * panelSize_x && mousepos_y <= panelPos_y + panelSize_y + border)
+                               {
+                                       highlightedPanel = i;
+                                       highlightedAction = 2;
+                                       resizeCorner = 3;
+                               }
+                               // resize from bottomright border
+                               else if(mousepos_x >= panelPos_x + 0.5 * panelSize_x && mousepos_y >= panelPos_y + 0.5 * panelSize_y && mousepos_x <= panelPos_x + panelSize_x + border && mousepos_y <= panelPos_y + panelSize_y + border)
+                               {
+                                       highlightedPanel = i;
+                                       highlightedAction = 2;
+                                       resizeCorner = 4;
+                               }
+                       }
+
+                       if(highlightedPanel == i)
+                       {
+                               if(prevMouseClicked == 0)
+                               {
+                                       panel_click_distance = mousepos - panelPos;
+                                       panel_click_pos = panelPos;
+                                       panel_click_size = panelSize;
+                               }
+
+                               if(highlightedAction == 1)
+                                       HUD_Panel_SetPos(i, mousepos - panel_click_distance, 0);
+                               else if(highlightedAction == 2)
+                               {
+                                       float didntresize; // panel too big/too small, dont resize (also has to affect moving)
+                                       if(resizeCorner == 1) {
+                                               didntresize = HUD_Panel_SetSize(i, panelSize + mouseprevpos - mousepos);
+                                               HUD_Panel_SetPos(i, mousepos - panel_click_distance, didntresize);
+                                       }
+                                       if(resizeCorner == 2) {
+                                               didntresize = HUD_Panel_SetSize(i, eY * panel_click_size_y + eX * (mousepos_x - panelPos_x - (panel_click_distance_x - panel_click_size_x))
+                                                               + eY * (panel_click_distance_y + (panel_click_pos_y - mousepos_y)));
+                                               HUD_Panel_SetPos(i, eX * panelPos_x + eY * (mousepos_y - panel_click_distance_y), didntresize);
+                                       }
+                                       if(resizeCorner == 3) {
+                                               didntresize = HUD_Panel_SetSize(i, panelSize + eX * (mouseprevpos_x - mousepos_x) + eY * (mousepos_y - mouseprevpos_y));
+                                               HUD_Panel_SetPos(i, eX * (mousepos_x - panel_click_distance_x) + eY * panelPos_y, didntresize);
+                                       }
+                                       if(resizeCorner == 4) {
+                                               HUD_Panel_SetSize(i, mousepos - panelPos - (panel_click_distance - panel_click_size));
+                                       }
+                               }
+                       }
+               }
+       }
+       mouseprevpos = mousepos;
+       prevMouseClicked = mouseClicked;
+}
+
+/*void HUD_DrawDockEdge(float id, vector p1, vector p2, float target)
+{
+       vector pos;
+       vector size;
+
+       pos =
+*/ // maybe one day, since this will be quite complicated
+
+// Weapon icons (#0)
+//
+float weaponspace[10];
+void HUD_WeaponIcons_Clear()
+{
+       float idx;
+       for(idx = 0; idx < 10; ++idx)
+               weaponspace[idx] = 0;
+}
+
+entity weaponorder[WEP_MAXCOUNT];
+
+void weaponorder_swap(float i, float j, entity pass)
+{
+       entity h;
+       h = weaponorder[i];
+       weaponorder[i] = weaponorder[j];
+       weaponorder[j] = h;
+}
+
+float weaponorder_cmp(float i, float j, entity pass)
+{
+       float d, ii, ij;
+       d = mod(weaponorder[i].impulse + 9, 10) - mod(weaponorder[j].impulse + 9, 10);
+       if(d)
+               return d;
+       d = weaponorder[i].weapon - weaponorder[j].weapon;
+       return d;
+}
+
+void HUD_WeaponIcons()
+{
+       float id = 0;
+       float alpha, height, accuracybar_height, stat_weapons; // "constants"
+       vector pos, mySize, mysize, mypos, accuracy_color;
+       float i, weapid, fade, weapon_stats, weapon_hit, weapon_damage, weapon_cnt; // variables
+
+       pos = HUD_Panel_GetPos(id);
+       mySize = HUD_Panel_GetSize(id);
+       accuracybar_height = cvar_or("hud_weaponicons_accuracy_height", 3);
+
+       stat_weapons = getstati(STAT_WEAPONS);
+       for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+       {
+               self = get_weaponinfo(i);
+               if(self.weapons && (self.impulse >= 0) && (stat_weapons & self.weapons) || hud_configure)
+               {
+                       weaponorder[weapon_cnt] = self;
+                       ++weapon_cnt;
+               }
+       }
+       heapsort(weapon_cnt, weaponorder_swap, weaponorder_cmp, world);
+
+       HUD_Panel_DrawBg(id, pos, mySize);
+       float padding;
+       padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+       if(padding)
+       {
+               pos += '1 1 0' * padding;
+               mySize -= '2 2 0' * padding;
+       }
+
+       // hits
+       weapon_stats = getstati(STAT_DAMAGE_HITS);
+       weapon_number = weapon_stats & 63;
+       weapon_hits[weapon_number-WEP_FIRST] = floor(weapon_stats / 64);
+       // fired
+       weapon_stats = getstati(STAT_DAMAGE_FIRED);
+       weapon_number = weapon_stats & 63;
+       weapon_fired[weapon_number-WEP_FIRST] = floor(weapon_stats / 64);
+
+       if(cvar_or("hud_weaponicons_fade", 1))
+       {
+               fade = 3.2 - 2 * (time - weapontime);
+               fade = bound(0.7, fade, 1);
+       }
+       else
+               fade = 1;
+
+       HUD_WeaponIcons_Clear();
+
+       float rows, columns;
+       rows = mySize_y/mySize_x;
+       rows = bound(1, floor((sqrt(4 * (2/1) * rows * WEP_COUNT + rows * rows) + rows + 0.5) / 2), WEP_COUNT);
+       //                               ^^^ weapon icon aspect goes here
+
+       columns = ceil(WEP_COUNT/rows);
+       float row, column;
+       for(i = 0; i < weapon_cnt; ++i)
+       {
+               self = weaponorder[i];
+               if((self.weapons && (self.impulse >= 0) && (stat_weapons & self.weapons)) || hud_configure)
+               {
+                       weapid = self.impulse;
+
+                       alpha = (self.weapon == activeweapon) ? 1 : 0.6;
+
+                       weapon_hit = weapon_hits[self.weapon-WEP_FIRST];
+                       weapon_damage = weapon_fired[self.weapon-WEP_FIRST];
+
+                       if(self.weapon == activeweapon)
+                               drawpic_skin(pos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows), "weapon_current_bg", eX * mySize_x*(1/columns) + eY * mySize_y*(1/rows), '1 1 1', fade * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       drawpic(pos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows), strcat("gfx/weapons/weapon", self.netname), eX * mySize_x*(1/columns) + eY * mySize_y*(1/rows), '1 1 1', fade * hud_alpha_fg, DRAWFLAG_NORMAL);
+
+                       if(cvar_or("hud_weaponicons_number", 1))
+                               drawstring(pos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows), ftos(weapid), '1 1 0' * 0.5 * mySize_y*(1/rows), '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+
+                       // draw the weapon accuracy on the HUD
+                       if(hud_accuracy_hud && !(gametype == GAME_RACE || gametype == GAME_CTS))
+                       {
+                               if(weapon_damage)
+                                       weapon_stats = floor(100 * weapon_hit / weapon_damage);
+
+                               accuracy_color = HUD_AccuracyColor(weapon_stats);
+                               if(weapon_damage)
+                                       drawpic_skin(pos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows) - '2 0 0' + eY * (mySize_y/rows - accuracybar_height), "accuracy_bar.tga", eX * mySize_x*(1/columns) + eY * accuracybar_height, accuracy_color, hud_alpha_fg, DRAWFLAG_NORMAL);
+                       }
+               }
+
+               ++row;
+               if(row >= rows)
+               {
+                       row = 0;
+                       ++column;
+               }
+       }
+
+}
+
+// Inventory (#1)
+//
+float GetAmmoStat(float i)
+{
+       switch(i)
+       {
+               case 0: return STAT_SHELLS;
+               case 1: return STAT_NAILS;
+               case 2: return STAT_ROCKETS;
+               case 3: return STAT_CELLS;
+               case 4: return STAT_FUEL;
+               default: return -1;
+       }
+}
+
+float GetAmmoItemCode(float i)
+{
+       switch(i)
+       {
+               case 0: return IT_SHELLS;
+               case 1: return IT_NAILS;
+               case 2: return IT_ROCKETS;
+               case 3: return IT_CELLS;
+               case 4: return IT_FUEL;
+               default: return -1;
+       }
+}
+
+string GetAmmoPicture(float i)
+{
+       switch(i)
+       {
+               case 0: return "ammo_shells";
+               case 1: return "ammo_bullets";
+               case 2: return "ammo_rocket";
+               case 3: return "ammo_cells";
+               case 4: return "ammo_fuel";
+               default: return "";
+       }
+}
+
+void HUD_Inventory()
+{
+       float id = 1;
+       float i;
+       float stat_items;
+
+       vector pos, mySize, mysize, mypos;
+       pos = HUD_Panel_GetPos(id);
+       mySize = HUD_Panel_GetSize(id);
+
+       HUD_Panel_DrawBg(id, pos, mySize);
+       float padding;
+       padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+       if(padding)
+       {
+               pos += '1 1 0' * padding;
+               mySize -= '2 2 0' * padding;
+       }
+
+       // ammo
+       stat_items = getstati(STAT_ITEMS);
+       for (i = 0; i < 4; ++i) {
+               float a;
+               a = getstati(GetAmmoStat(i)); // how much ammo do we have of type i?
+               if(hud_configure)
+                       a = 100;
+
+               if(cvar("hud_inventory_onlycurrent")) {
+                       if (stat_items & GetAmmoItemCode(i)) {
+                               drawpic_skin(pos, "ammo_current_bg", mySize, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+                               drawpic_skin(pos + eY * 0.05 * mySize_y, GetAmmoPicture(i), '1 1 0' * 0.8 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+                               if(a < 10)
+                                       HUD_DrawXNum(pos + eX * 0.8 * mySize_y + eY * 0.25 * mySize_y, a, strlen(ftos(a)), 0, 0.5 * mySize_y, '0.7 0 0', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+                               else
+                                       HUD_DrawXNum(pos + eX * 0.8 * mySize_y + eY * 0.25 * mySize_y, a, strlen(ftos(a)), 0, 0.5 * mySize_y, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+                       }
+               } else {
+                       if (a > 0) {
+                               if(mySize_x/mySize_y >= 10) { // arrange horizontally
+                                       switch (i) {
+                                               case 0: mypos_x = pos_x;                        mypos_y = pos_y;                        break; // shells
+                                               case 1: mypos_x = pos_x + 0.25 * mySize_x;      mypos_y = pos_y;                        break; // bullets
+                                               case 2: mypos_x = pos_x + 0.5  * mySize_x;      mypos_y = pos_y;                        break; // rockets
+                                               case 3: mypos_x = pos_x + 0.75 * mySize_x;      mypos_y = pos_y;                        break; // cells
+                                       }
+                                       mysize_x = 0.25 * mySize_x;
+                                       mysize_y = mySize_y;
+                               } else if(mySize_x/mySize_y >= 2.5) { // arrange in a 2x2 grid
+                                       switch (i) {
+                                               case 0: mypos_x = pos_x + 0.5 * mySize_x;       mypos_y = pos_y + 0.5 * mySize_y;       break; // shells
+                                               case 1: mypos_x = pos_x + 0.5 * mySize_x;       mypos_y = pos_y;                        break; // bullets
+                                               case 2: mypos_x = pos_x;                        mypos_y = pos_y + 0.5 * mySize_y;       break; // rockets
+                                               case 3: mypos_x = pos_x;                        mypos_y = pos_y;                        break; // cells
+                                       }
+                                       mysize_x = 0.5 * mySize_x;
+                                       mysize_y = 0.5 * mySize_y;
+                               } else { // arrange vertically
+                                       switch (i) {
+                                               case 0: mypos_x = pos_x;                        mypos_y = pos_y;                        break; // shells
+                                               case 1: mypos_x = pos_x;                        mypos_y = pos_y + 0.25 * mySize_y;      break; // bullets
+                                               case 2: mypos_x = pos_x;                        mypos_y = pos_y + 0.5  * mySize_y;      break; // rockets
+                                               case 3: mypos_x = pos_x;                        mypos_y = pos_y + 0.75 * mySize_y;      break; // cells
+                                       }
+                                       mysize_x = mySize_x;
+                                       mysize_y = 0.25 * mySize_y;
+                               }
+
+                               if (stat_items & GetAmmoItemCode(i))
+                                       drawpic_skin(mypos, "ammo_current_bg", mysize, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+                               drawpic_skin(mypos + eY * 0.05 * mysize_y, GetAmmoPicture(i), '1 1 0' * 0.8 * mysize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+                               if (a < 10) {
+                                       if(stat_items & GetAmmoItemCode(i))
+                                               HUD_DrawXNum(mypos + eX * 0.8 * mysize_y + eY * 0.25 * mysize_y, a, strlen(ftos(a)), 0, 0.5 * mysize_y, '0.7 0 0', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+                                       else
+                                               HUD_DrawXNum(mypos + eX * 0.8 * mysize_y + eY * 0.25 * mysize_y, a, strlen(ftos(a)), 0, 0.5 * mysize_y, '0.7 0 0', 0, 0, hud_alpha_fg * 0.7, DRAWFLAG_NORMAL);
+                               } else {
+                                       if(stat_items & GetAmmoItemCode(i))
+                                               HUD_DrawXNum(mypos + eX * 0.8 * mysize_y + eY * 0.25 * mysize_y, a, strlen(ftos(a)), 0, 0.5 * mysize_y, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+                                       else
+                                               HUD_DrawXNum(mypos + eX * 0.8 * mysize_y + eY * 0.25 * mysize_y, a, strlen(ftos(a)), 0, 0.5 * mysize_y, '0.7 0.7 0.7', 0, 0, hud_alpha_fg * 0.7, DRAWFLAG_NORMAL);
+                               }
+                       }
+               }
+       }
+}
+
+
+// Powerups (#2)
+//
+float shield_maxtime;
+float strength_maxtime;
+void HUD_Powerups() {
+       float id = 2;
+       float stat_items;
+       stat_items = getstati(STAT_ITEMS);
+
+       if(!hud_configure)
+       {
+               if not(stat_items & IT_STRENGTH)
+                       if not(stat_items & IT_INVINCIBLE)
+                               return;
+
+               if (getstati(STAT_HEALTH) <= 0)
+                       return;
+       }
+
+       vector pos, mySize;
+       pos = HUD_Panel_GetPos(id);
+       mySize = HUD_Panel_GetSize(id);
+
+       HUD_Panel_DrawBg(id, pos, mySize);
+       float padding;
+       padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+       if(padding)
+       {
+               pos += '1 1 0' * padding;
+               mySize -= '2 2 0' * padding;
+       }
+
+       float strength_time, shield_time;
+
+       strength_time = bound(0, ceil(getstatf(STAT_STRENGTH_FINISHED) - time), 99);
+       shield_time = bound(0, ceil(getstatf(STAT_INVINCIBLE_FINISHED) - time), 99);
+
+       if(hud_configure)
+       {
+               strength_time = 15;
+               shield_time = 27;
+       }
+
+       float len;
+
+       vector barpos, barsize;
+       vector picpos;
+       vector numpos;
+
+       string leftname, rightname;
+       float leftcnt, rightcnt;
+       float leftalpha, rightalpha;
+       if (cvar(strcat("hud_", HUD_Panel_GetName(id), "_flip"))) {
+               leftname = "strength";
+               leftcnt = strength_time;
+
+               rightname = "shield";
+               rightcnt = shield_time;
+       } else {
+               leftname = "shield";
+               leftcnt = shield_time;
+
+               rightname = "strength";
+               rightcnt = strength_time;
+       }
+       leftalpha = bound(0, leftcnt, 1);
+       rightalpha = bound(0, rightcnt, 1);
+
+       // TODO: tile statusbars?
+       if (mySize_x/mySize_y > 4)
+       {
+               if(leftcnt)
+               {
+                       len = strlen(ftos(leftcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * 0.5 * mySize_x - eX * 0.5 * mySize_x * min(1, leftcnt/30);
+                               barsize = eX * 0.5 * mySize_x * min(1, leftcnt/30) + eY * mySize_y;
+                               picpos = pos + eX * 0.5 * mySize_x - eX * mySize_y;
+                               numpos = picpos - eX * 2 * 0.5 * mySize_y + eX * (2-len) * 0.5 * mySize_y + eY * 0.25 * mySize_y;
+                       } else {
+                               barpos = pos;
+                               barsize = eX * 0.5 * mySize_x * min(1, leftcnt/30) + eY * mySize_y;
+                               picpos = pos;
+                               numpos = picpos + eX * mySize_y - eX * (2-len) * 0.5 * mySize_y + eY * 0.25 * mySize_y;
+                       }
+
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, leftname, '1 1 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum(numpos, leftcnt, 2, 0, 0.5 * mySize_y, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+
+               if(rightcnt)
+               {
+                       len = strlen(ftos(rightcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * 0.5 * mySize_x;
+                               barsize = eX * 0.5 * mySize_x * min(1, rightcnt/30) + eY * mySize_y;
+                               picpos = pos + eX * 0.5 * mySize_x;
+                               numpos = picpos + eX * mySize_y - eX * (2-len) * 0.5 * mySize_y + eY * 0.25 * mySize_y;
+                       } else {
+                               barpos = pos + eX * mySize_x - eX * 0.5 * mySize_x * min(1, rightcnt/30);
+                               barsize = eX * 0.5 * mySize_x * min(1, rightcnt/30) + eY * mySize_y;
+                               picpos = pos + eX * mySize_x - eX * mySize_y;
+                               numpos = picpos - eX * mySize_y + eY * 0.25 * mySize_y;
+                       }
+
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, rightname, '1 1 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum(numpos, rightcnt, 2, 0, 0.5 * mySize_y, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+       }
+       else if (mySize_x/mySize_y > 1.5)
+       {
+               if(leftcnt)
+               {
+                       len = strlen(ftos(leftcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * mySize_x - eX * mySize_x * min(1, leftcnt/30);
+                               barsize = eX * mySize_x * min(1, leftcnt/30) + eY * 0.5 * mySize_y;
+                               picpos = pos + eX * mySize_x - eX * 0.5 * mySize_y;
+                               numpos = picpos - eX * len * 0.5 * mySize_y;
+                       } else {
+                               barpos = pos;
+                               barsize = eX * mySize_x * min(1, leftcnt/30) + eY * 0.5 * mySize_y;
+                               picpos = pos;
+                               numpos = picpos + eX * 0.5 * mySize_y;
+                       }
+
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, leftname, '0.5 0.5 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum(numpos, leftcnt, len, 0, 0.5 * mySize_y, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+
+               if(rightcnt)
+               {
+                       len = strlen(ftos(rightcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * mySize_x - eX * mySize_x * min(1, rightcnt/30) + eY * 0.5 * mySize_y;
+                               barsize = eX * mySize_x * min(1, rightcnt/30) + eY * 0.5 * mySize_y;
+                               picpos = pos + eX * mySize_x - eX * 0.5 * mySize_y + eY * 0.5 * mySize_y;
+                               numpos = picpos - eX * len * 0.5 * mySize_y;
+                       } else {
+                               barpos = pos + eY * 0.5 * mySize_y;
+                               barsize = eX * mySize_x * min(1, rightcnt/30) + eY * 0.5 * mySize_y;
+                               picpos = pos + eY * 0.5 * mySize_y;
+                               numpos = picpos + eX * 0.5 * mySize_y;
+                       }
+
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, rightname, '0.5 0.5 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum(numpos, rightcnt, len, 0, 0.5 * mySize_y, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+       }
+       else
+       {
+               if(leftcnt)
+               {
+                       len = strlen(ftos(leftcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos;
+                               barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, leftcnt/30);
+                               picpos = pos + eX * 0.05 * mySize_x;
+                               numpos = pos + eX * ((2-len)/2) * 0.25 * mySize_x + eY * 0.4 * mySize_x;
+                       } else {
+                               barpos = pos + eY * mySize_y - eY * mySize_y * min(1, leftcnt/30);
+                               barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, leftcnt/30);
+                               picpos = pos + eX * 0.05 * mySize_x + eY * mySize_y - eY * 0.65 * mySize_x;
+                               numpos = pos + eX * ((2-len)/2) * 0.25 * mySize_x + eY * mySize_y - eY * 0.25 * mySize_x;
+                       }
+
+                       drawpic_skin(barpos, "statusbar_vertical", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, leftname, '0.4 0.4 0' * mySize_x, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum(numpos, leftcnt, len, 0, 0.25 * mySize_x, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+
+               if(rightcnt)
+               {
+                       len = strlen(ftos(rightcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * 0.5 * mySize_x;
+                               barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, rightcnt/30);
+                               picpos = pos + eX * 0.05 * mySize_x + eX * 0.5 * mySize_x;
+                               numpos = pos + eX * ((2-len)/2) * 0.25 * mySize_x + eY * 0.4 * mySize_x + eX * 0.5 * mySize_x;
+                       } else {
+                               barpos = pos + eY * mySize_y - eY * mySize_y * min(1, rightcnt/30) + eX * 0.5 * mySize_x;
+                               barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, rightcnt/30);
+                               picpos = pos + eX * 0.05 * mySize_x + eY * mySize_y - eY * 0.65 * mySize_x + eX * 0.5 * mySize_x;
+                               numpos = pos + eX * ((2-len)/2) * 0.25 * mySize_x + eY * mySize_y - eY * 0.25 * mySize_x + eX * 0.5 * mySize_x;
+                       }
+
+                       drawpic_skin(barpos, "statusbar_vertical", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, rightname, '0.4 0.4 0' * mySize_x, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum(numpos, rightcnt, len, 0, 0.25 * mySize_x, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+       }
+
+       /* TODO: add expand from old code!
+       //strength
+       if (strength_time) {
+               dt = strength_time - time;
+               if(dt > 0)
+               {
+                       if(dt < 5)
+                       {
+                               drawpic_expanding_two(pos, "str", '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_ADDITIVE,
+                                       bound(0, (ceil(dt) - dt) / 0.5, 1));
+                       }
+                       else
+                       {
+                               drawpic_skin(pos, "str", '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_ADDITIVE);
+                       }
+                       HUD_DrawXNum(pos - '40 -2 0', ceil(dt), 2, 0, countdown_fontsize, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+               else if(dt > -1)
+               {
+                       drawpic_expanding(pos, "str", '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_ADDITIVE,
+                               bound(0, -dt / 0.5, 1));
+               }
+       }
+
+       //invincibility
+       if (invincibility_time) {
+               dt = invincibility_time - time;
+               if(dt > 0)
+               {
+                       if(dt < 5)
+                       {
+                               drawpic_expanding_two(pos - '0 -22 0', "invinc", '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_ADDITIVE,
+                                       bound(0, (ceil(dt) - dt) / 0.5, 1));
+                       }
+                       else
+                       {
+                               drawpic_skin(pos - '0 -22 0', "invinc", '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_ADDITIVE);
+                       }
+                       HUD_DrawXNum(pos - '40 -24 0', ceil(dt), 2, 0, countdown_fontsize, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+               else if(dt > -1)
+               {
+                       drawpic_expanding(pos - '0 -22 0', "invinc", '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_ADDITIVE,
+                               bound(0, -dt / 0.5, 1));
+               }
+       }
+       */
+}
+
+// Health/armor (#3)
+//
+void HUD_HealthArmor(void)
+{
+       float id = 3;
+       vector pos, mySize;
+       pos = HUD_Panel_GetPos(id);
+       mySize = HUD_Panel_GetSize(id);
+
+       HUD_Panel_DrawBg(id, pos, mySize);
+       float padding;
+       padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+       if(padding)
+       {
+               pos += '1 1 0' * padding;
+               mySize -= '2 2 0' * padding;
+       }
+
+       float armor, health, x;
+       armor = getstati(STAT_ARMOR);
+       health = getstati(STAT_HEALTH);
+
+       float fuel;
+       fuel = getstati(GetAmmoStat(4)); // how much fuel do we have?
+
+       if(hud_configure)
+       {
+               armor = 150;
+               health = 100;
+               fuel = 70;
+       }
+
+       if(health <= 0)
+               return;
+
+       float len;
+
+       // TODO!
+       /*
+       if(hud_hudselector == 2) // combined health and armor display
+       {
+               vector v;
+               v = healtharmor_maxdamage(health, armor, armorblockpercent);
+
+               vector num_pos;
+               num_pos = - '96 28 0';
+
+               x = floor(v_x + 1);
+
+               if(v_z) // fully armored
+               {
+                       // here, armorideal > armor
+                       drawpic_skin(num_pos + '78 -4.5 0', "health", '32 32 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+                       drawpic_skin(num_pos + '108 -4.5 0', "armor", '20 20 0', '1 1 1', hud_alpha_fg * armor / v_y, DRAWFLAG_NORMAL);
+               }
+               else
+               {
+                       drawpic_skin(num_pos + '108 -4.5 0', "health", '20 20 0', '1 1 1', hud_alpha_fg * v_y / armor, DRAWFLAG_NORMAL);
+                       drawpic_skin(num_pos + '78 -4.5 0', "armor", '32 32 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+               }
+               HUD_DrawXNum_Colored(num_pos, x, 3, 24, hud_alpha_fg); // draw the combined health and armor
+       }
+
+       else
+       {
+       */
+       vector barpos, barsize;
+       vector picpos;
+       vector numpos;
+
+       string leftname, rightname;
+       float leftcnt, rightcnt;
+       float leftactive, rightactive;
+       float leftalpha, rightalpha;
+       // TODO!
+       if (cvar(strcat("hud_", HUD_Panel_GetName(id), "_flip"))) { // old style layout with armor left/top of health
+               leftname = "armor";
+               leftcnt = armor;
+               if(leftcnt)
+                       leftactive = 1;
+               leftalpha = min((armor+10)/55, 1);
+
+               rightname = "health";
+               rightcnt = health;
+               rightactive = 1;
+               rightalpha = 1;
+       } else {
+               leftname = "health";
+               leftcnt = health;
+               leftactive = 1;
+               leftalpha = 1;
+
+               rightname = "armor";
+               rightcnt = armor;
+               if(rightcnt)
+                       rightactive = 1;
+               rightalpha = min((armor+10)/55, 1);
+       }
+
+       // TODO: tile statusbars?
+       if (mySize_x/mySize_y > 5)
+       {
+               if(leftactive)
+               {
+                       len = strlen(ftos(leftcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * 0.5 * mySize_x - eX * 0.5 * mySize_x * min(1, leftcnt/200);
+                               barsize = eX * 0.5 * mySize_x * min(1, leftcnt/200) + eY * mySize_y;
+                               picpos = pos + eX * 0.5 * mySize_x - eX * mySize_y;
+                               numpos = picpos - eX * 3 * 0.5 * mySize_y + eX * (3-len) * 0.5 * mySize_y + eY * 0.25 * mySize_y;
+                       } else {
+                               barpos = pos;
+                               barsize = eX * 0.5 * mySize_x * min(1, leftcnt/200) + eY * mySize_y;
+                               picpos = pos;
+                               numpos = picpos + eX * mySize_y + eY * 0.25 * mySize_y;
+                       }
+
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, leftname, '1 1 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum_Colored(numpos, leftcnt, len, 0.5 * mySize_y, hud_alpha_fg);
+               }
+
+               if(rightactive)
+               {
+                       len = strlen(ftos(rightcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * 0.5 * mySize_x;
+                               barsize = eX * 0.5 * mySize_x * min(1, rightcnt/200) + eY * mySize_y;
+                               picpos = pos + eX * 0.5 * mySize_x;
+                               numpos = picpos + eX * mySize_y - eX * (3-len) * 0.5 * mySize_y + eY * 0.25 * mySize_y;
+                       } else {
+                               barpos = pos + eX * mySize_x - eX * 0.5 * mySize_x * min(1, rightcnt/200);
+                               barsize = eX * 0.5 * mySize_x * min(1, rightcnt/200) + eY * mySize_y;
+                               picpos = pos + eX * mySize_x - eX * mySize_y;
+                               numpos = picpos - eX * 1.5 * mySize_y + eY * 0.25 * mySize_y;
+                       }
+
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, rightname, '1 1 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum_Colored(numpos, rightcnt, 3, 0.5 * mySize_y, hud_alpha_fg);
+               }
+
+               if(fuel)
+                       drawpic_skin(pos, "statusbar", eX * mySize_x * min(1, fuel/100) + eY * 0.2 * mySize_y, HUD_Panel_GetProgressBarColor("fuel"), hud_alpha_fg * 0.8, DRAWFLAG_NORMAL);
+       }
+       else if (mySize_x/mySize_y > 2)
+       {
+               if(leftactive)
+               {
+                       len = strlen(ftos(leftcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * mySize_x - eX * mySize_x * min(1, leftcnt/200);
+                               barsize = eX * mySize_x * min(1, leftcnt/200) + eY * 0.5 * mySize_y;
+                               picpos = pos + eX * mySize_x - eX * 0.5 * mySize_y;
+                               numpos = picpos - eX * len * 0.5 * mySize_y;
+                       } else {
+                               barpos = pos;
+                               barsize = eX * mySize_x * min(1, leftcnt/200) + eY * 0.5 * mySize_y;
+                               picpos = pos;
+                               numpos = picpos + eX * 0.5 * mySize_y;
+                       }
+
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, leftname, '0.5 0.5 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum_Colored(numpos, leftcnt, len, 0.5 * mySize_y, hud_alpha_fg);
+               }
+
+               if(rightactive)
+               {
+                       len = strlen(ftos(rightcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * mySize_x - eX * mySize_x * min(1, rightcnt/200) + eY * 0.5 * mySize_y;
+                               barsize = eX * mySize_x * min(1, rightcnt/200) + eY * 0.5 * mySize_y;
+                               picpos = pos + eX * mySize_x - eX * 0.5 * mySize_y + eY * 0.5 * mySize_y;
+                               numpos = picpos - eX * len * 0.5 * mySize_y;
+                       } else {
+                               barpos = pos + eY * 0.5 * mySize_y;
+                               barsize = eX * mySize_x * min(1, rightcnt/200) + eY * 0.5 * mySize_y;
+                               picpos = pos + eY * 0.5 * mySize_y;
+                               numpos = picpos + eX * 0.5 * mySize_y;
+                       }
+
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, rightname, '0.5 0.5 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum_Colored(numpos, rightcnt, len, 0.5 * mySize_y, hud_alpha_fg);
+               }
+
+               if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                       barpos = pos + eX * mySize_x - eX * mySize_x * min(1, fuel/100);
+                       barsize = eX * mySize_x * min(1, fuel/100) + eY * 0.1 * mySize_y;
+               } else {
+                       barpos = pos;
+                       barsize = eX * mySize_x * min(1, fuel/100) + eY * 0.1 * mySize_y;
+               }
+               if(fuel)
+                       drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor("fuel"), hud_alpha_fg * 0.8, DRAWFLAG_NORMAL);
+       }
+       else
+       {
+               if(leftactive)
+               {
+                       len = strlen(ftos(leftcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos;
+                               barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, leftcnt/200);
+                               picpos = pos + eX * 0.05 * mySize_x;
+                               numpos = pos + eX * ((3-len)/2) * 0.25 * mySize_x + eY * 0.4 * mySize_x;
+                       } else {
+                               barpos = pos + eY * mySize_y - eY * mySize_y * min(1, leftcnt/200);
+                               barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, leftcnt/200);
+                               picpos = pos + eX * 0.05 * mySize_x + eY * mySize_y - eY * 0.566 * mySize_x;
+                               numpos = pos + eX * ((3-len)/2) * 0.25 * mySize_x + eY * mySize_y - eY * 0.166 * mySize_x;
+                       }
+
+                       drawpic_skin(barpos, "statusbar_vertical", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, leftname, '0.4 0.4 0' * mySize_x, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum_Colored(numpos, leftcnt, len, 0.166 * mySize_x, hud_alpha_fg);
+               }
+
+               if(rightactive)
+               {
+                       len = strlen(ftos(rightcnt));
+
+                       if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                               barpos = pos + eX * 0.5 * mySize_x;
+                               barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, rightcnt/200);
+                               picpos = pos + eX * 0.05 * mySize_x + eX * 0.5 * mySize_x;
+                               numpos = pos + eX * ((3-len)/2) * 0.25 * mySize_x + eY * 0.4 * mySize_x + eX * 0.5 * mySize_x;
+                       } else {
+                               barpos = pos + eY * mySize_y - eY * mySize_y * min(1, rightcnt/200) + eX * 0.5 * mySize_x;
+                               barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, rightcnt/200);
+                               picpos = pos + eX * 0.05 * mySize_x + eY * mySize_y - eY * 0.566 * mySize_x + eX * 0.5 * mySize_x;
+                               numpos = pos + eX * ((3-len)/2) * 0.25 * mySize_x + eY * mySize_y - eY * 0.166 * mySize_x + eX * 0.5 * mySize_x;
+                       }
+
+                       drawpic_skin(barpos, "statusbar_vertical", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL);
+                       drawpic_skin(picpos, rightname, '0.4 0.4 0' * mySize_x, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL);
+                       HUD_DrawXNum_Colored(numpos, rightcnt, len, 0.166 * mySize_x, hud_alpha_fg);
+               }
+
+               if(cvar(strcat("hud_", HUD_Panel_GetName(id), "_mirror"))) {
+                       barpos = pos;
+                       barsize = eX * 0.05 * mySize_x + eY * mySize_y * min(1, fuel/100);
+               } else {
+                       barpos = pos + eY * mySize_y - eY * mySize_y * min(1, fuel/100);
+                       barsize = eX * 0.05 * mySize_x + eY * mySize_y * min(1, fuel/100);
+               }
+               if(fuel)
+                       drawpic_skin(barpos, "statusbar_vertical", barsize, HUD_Panel_GetProgressBarColor("fuel"), hud_alpha_fg * 0.8, DRAWFLAG_NORMAL);
+       }
+}
+
+// ___TODO___ !!!
+// Notification area (#4)
+//
+void HUD_Notify (void)
+{
+       float id = 4;
+       vector pos, mySize;
+       pos = HUD_Panel_GetPos(id);
+       mySize = HUD_Panel_GetSize(id);
+
+       HUD_Panel_DrawBg(id, pos, mySize);
+       float padding;
+       padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+       if(padding)
+       {
+               pos += '1 1 0' * padding;
+               mySize -= '2 2 0' * padding;
+       }
+
+       string s;
+       entity tm;
+       if(spectatee_status && !intermission)
+       {
+               drawfont = hud_bigfont;
+               if(spectatee_status == -1)
+                       s = "^1Observing";
+               else
+                       s = GetPlayerName(spectatee_status - 1);
+               // spectated player name between HUD and chat area, aligned to the left
+               pos_x = 0;
+               pos_y = - 50 - hud_fontsize_spec_y;
+               s = textShortenToWidth(s, vid_conwidth/2.5, hud_fontsize_spec, stringwidth_colors);
+               drawcolorcodedstring(pos, s, hud_fontsize_spec, hud_alpha_fg, DRAWFLAG_NORMAL);
+               drawfont = hud_font;
+
+               // spectator text in the upper right corner
+               if(spectatee_status == -1)
+                       s = strcat("^1Press ^3", getcommandkey("primary fire", "+attack"), "^1 to spectate");
+               else
+                       s = strcat("^1Press ^3", getcommandkey("primary fire", "+attack"), "^1 for another player");
+
+               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");
+
+               s = strcat("^1Press ^3", getcommandkey("server info", "+show_info"), "^1 for gamemode info");
+
+               if(gametype == GAME_ARENA)
+                       s = "^1Wait for your turn to join";
+               else if(gametype == GAME_LMS)
+               {
+                       entity sk;
+                       sk = playerslots[player_localentnum - 1];
+                       if(sk.(scores[ps_primary]) >= 666)
+                               s = "^1Match has already begun";
+                       else if(sk.(scores[ps_primary]) > 0)
+                               s = "^1You have no more lives left";
+                       else
+                               s = strcat("^1Press ^3", getcommandkey("jump", "+jump"), "^1 to join");
+               }
+               else
+                       s = strcat("^1Press ^3", getcommandkey("jump", "+jump"), "^1 to join");
+
+               //show restart countdown:
+               if (time < getstatf(STAT_GAMESTARTTIME)) {
+                       float countdown;
+                       //we need to ceil, otherwise the countdown would be off by .5 when using round()
+                       countdown = ceil(getstatf(STAT_GAMESTARTTIME) - time);
+                       s = strcat("^1Game starts in ^3", ftos(countdown), "^1 seconds");
+               }
+       }
+       if(warmup_stage && !intermission)
+       {
+               s = "^2Currently in ^1warmup^2 stage!";
+       }
+
+       // move more important stuff more to the middle so its more visible
+
+       string blinkcolor;
+       if(mod(time, 1) >= 0.5)
+               blinkcolor = "^1";
+       else
+               blinkcolor = "^3";
+
+       if(ready_waiting && !intermission && !spectatee_status)
+       {
+               if(ready_waiting_for_me)
+               {
+                       if(warmup_stage)
+                               s = strcat(blinkcolor, "Press ^3", getcommandkey("ready", "ready"), blinkcolor, " to end warmup");
+                       else
+                               s = strcat(blinkcolor, "Press ^3", getcommandkey("ready", "ready"), blinkcolor, " once you are ready");
+               }
+               else
+               {
+                       if(warmup_stage)
+                               s = strcat("^2Waiting for others to ready up to end warmup...");
+                       else
+                               s = strcat("^2Waiting for others to ready up...");
+               }
+       }
+       else if(warmup_stage && !intermission && !spectatee_status)
+       {
+               s = strcat("^2Press ^3", getcommandkey("ready", "ready"), "^2 to end warmup");
+       }
+
+       if(teamplay && !intermission && !spectatee_status && gametype != GAME_CA && teamnagger)
+       {
+               float ts_min, ts_max;
+               tm = teams.sort_next;
+               if (tm)
+               {
+                       for(; tm.sort_next; tm = tm.sort_next)
+                       {
+                               if(!tm.team_size || tm.team == COLOR_SPECTATOR)
+                                       continue;
+                               if(!ts_min) ts_min = tm.team_size;
+                               else ts_min = min(ts_min, tm.team_size);
+                               if(!ts_max) ts_max = tm.team_size;
+                               else ts_max = max(ts_max, tm.team_size);
+                       }
+                       if ((ts_max - ts_min) > 1)
+                       {
+                               s = strcat(blinkcolor, "Teamnumbers are unbalanced!");
+                               tm = GetTeam(myteam, false);
+                               if (tm)
+                               if (tm.team != COLOR_SPECTATOR)
+                               if (tm.team_size == ts_max)
+                                       s = strcat(s, " Press ^3", getcommandkey("team menu", "menu_showteamselect"), blinkcolor, " to adjust");
+
+                       }
+               }
+       }
+}
+
+// Timer (#5)
+//
+void HUD_Timer()
+{
+       float id = 5;
+       vector pos, mySize;
+       pos = HUD_Panel_GetPos(id);
+       mySize = HUD_Panel_GetSize(id);
+
+       HUD_Panel_DrawBg(id, pos, mySize);
+       float padding;
+       padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+       if(padding)
+       {
+               pos += '1 1 0' * padding;
+               mySize -= '2 2 0' * padding;
+       }
+
+       float timelimit, elapsedTime, minutes, seconds, timeleft, minutesLeft, secondsLeft;
+
+       timelimit = getstatf(STAT_TIMELIMIT);
+
+       timeleft = max(0, timelimit * 60 + getstatf(STAT_GAMESTARTTIME) - time);
+       timeleft = ceil(timeleft);
+       minutesLeft = floor(timeleft / 60);
+       secondsLeft = timeleft - minutesLeft*60;
+
+       vector timer_color;
+       if(minutesLeft >= 5 || warmup_stage || timelimit == 0) //don't use red or yellow in warmup or when there is no timelimit
+               timer_color = '1 1 1'; //white
+       else if(minutesLeft >= 1)
+               timer_color = '1 1 0'; //yellow
+       else
+               timer_color = '1 0 0'; //red
+
+       if (cvar("hud_timer_increment") || timelimit == 0 || warmup_stage) {
+               if (time < getstatf(STAT_GAMESTARTTIME)) {
+                       //while restart is still active, show 00:00
+                       minutes = seconds = 0;
+               } else {
+                       elapsedTime = floor(time - getstatf(STAT_GAMESTARTTIME)); //127
+                       minutes = floor(elapsedTime / 60);
+                       seconds = elapsedTime - minutes*60;
+               }
+       } else {
+               minutes = minutesLeft;
+               seconds = secondsLeft;
+       }
+
+       if(minutes > 999)
+               seconds = 99;
+       minutes = min(minutes, 999);
+       if(minutesLeft >= 1 || cvar("hud_timer_increment") || timelimit == 0 || warmup_stage) {
+               HUD_DrawXNum(pos + eX * mySize_x - eX * 5.1 * mySize_y, minutes, 3, 0, mySize_y, timer_color, 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+               drawpic_skin(pos + eX * mySize_x - eX * 2.57 * mySize_y, "num_colon", '1 1 0' * mySize_y, timer_color, hud_alpha_fg, DRAWFLAG_NORMAL);
+       }
+       HUD_DrawXNum(pos + eX * mySize_x - eX * 2 * mySize_y, seconds, -2, 0, mySize_y, timer_color, 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
+}
+
+// Radar (#6)
+//
+void HUD_Radar(void)
+{
+       float id = 6;
+       vector pos, mySize;
+       pos = HUD_Panel_GetPos(id);
+       mySize = HUD_Panel_GetSize(id);
+
+       HUD_Panel_DrawBg(id, pos, mySize);
+       float padding;
+       padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+       if(padding)
+       {
+               pos += '1 1 0' * padding;
+               mySize -= '2 2 0' * padding;
+       }
+
+       local float color1, color2; // color already declared as a global in hud.qc
+       local vector rgb;
+       local entity tm;
+       float scale2d, normalsize, bigsize;
+       float f;
+
+       teamradar_origin2d = pos + 0.5 * mySize; // TODO: stupid compat, should be removed
+       teamradar_size2d = mySize;
+
+       if(minimapname == "" && !ons_showmap)
+               return;
+
+       teamradar_loadcvars();
+
+       switch(cl_teamradar_zoommode)
+       {
+               default:
+               case 0:
+                       f = current_zoomfraction;
+                       break;
+               case 1:
+                       f = 1 - current_zoomfraction;
+                       break;
+               case 2:
+                       f = 0;
+                       break;
+               case 3:
+                       f = 1;
+                       break;
+       }
+
+       switch(cl_teamradar_rotation)
+       {
+               case 0:
+                       teamradar_angle = view_angles_y - 90;
+                       break;
+               default:
+                       teamradar_angle = 90 * cl_teamradar_rotation;
+                       break;
+       }
+
+       scale2d = vlen_maxnorm2d(mi_picmax - mi_picmin);
+       teamradar_size2d = mySize;
+
+       teamradar_extraclip_mins = teamradar_extraclip_maxs = '0 0 0'; // we always center
+
+       // pixels per world qu to match the teamradar_size2d_x range in the longest dimension
+       if(cl_teamradar_rotation == 0)
+       {
+               // max-min distance must fit the radar in any rotation
+               bigsize = vlen_minnorm2d(teamradar_size2d) * scale2d / (1.05 * vlen2d(mi_max - mi_min));
+       }
+       else
+       {
+               vector c0, c1, c2, c3, span;
+               c0 = rotate(mi_min, teamradar_angle * DEG2RAD);
+               c1 = rotate(mi_max, teamradar_angle * DEG2RAD);
+               c2 = rotate('1 0 0' * mi_min_x + '0 1 0' * mi_max_y, teamradar_angle * DEG2RAD);
+               c3 = rotate('1 0 0' * mi_max_x + '0 1 0' * mi_min_y, teamradar_angle * DEG2RAD);
+               span = '0 0 0';
+               span_x = max4(c0_x, c1_x, c2_x, c3_x) - min4(c0_x, c1_x, c2_x, c3_x);
+               span_y = max4(c0_y, c1_y, c2_y, c3_y) - min4(c0_y, c1_y, c2_y, c3_y);
+
+               // max-min distance must fit the radar in x=x, y=y
+               bigsize = min(
+                       teamradar_size2d_x * scale2d / (1.05 * span_x),
+                       teamradar_size2d_y * scale2d / (1.05 * span_y)
+               );
+       }
+
+       normalsize = vlen_maxnorm2d(teamradar_size2d) * scale2d / cl_teamradar_scale;
+       if(bigsize > normalsize)
+               normalsize = bigsize;
+
+       teamradar_size =
+                 f * bigsize
+               + (1 - f) * normalsize;
+       teamradar_origin3d_in_texcoord = teamradar_3dcoord_to_texcoord(
+                 f * (mi_min + mi_max) * 0.5
+               + (1 - f) * view_origin);
+
+       color1 = GetPlayerColor(player_localentnum-1);
+       rgb = GetTeamRGB(color1);
+
+       drawsetcliparea(
+               pos_x,
+               pos_y,
+               mySize_x,
+               mySize_y
+       );
+
+       draw_teamradar_background(cl_teamradar_background_alpha, cl_teamradar_foreground_alpha);
+
+       if(ons_showmap)
+       {
+               drawresetcliparea();
+
+               vector frame_origin, frame_size;
+               frame_origin = frame_size = '0 0 0';
+
+               frame_origin_x = pos_x - teamradar_size2d_x * 0.55859375; // matches the picture
+               frame_origin_y = pos_y - teamradar_size2d_y * 0.55859375; // matches the picture
+               frame_size_x = pos_x * 1.1171875; // matches the picture
+               frame_size_y = pos_y * 1.1171875; // matches the picture
+               drawpic_skin(frame_origin, "gfx/ons-frame.tga", frame_size, '1 1 1', hud_alpha_fg, 0);
+               drawpic_skin(frame_origin, "gfx/ons-frame-team.tga", frame_size, rgb, hud_alpha_fg, 0);
+
+               drawsetcliparea(
+                       pos_x - teamradar_size2d_x * 0.5,
+                       pos_y - teamradar_size2d_y * 0.5,
+                       teamradar_size2d_x,
+                       teamradar_size2d_y
+               );
+       }
+
+       for(tm = world; (tm = find(tm, classname, "radarlink")); )
+               draw_teamradar_link(tm.origin, tm.velocity, tm.team);
+       for(tm = world; (tm = findflags(tm, teamradar_icon, 0xFFFFFF)); )
+               draw_teamradar_icon(tm.origin, tm.teamradar_icon, tm, tm.teamradar_color, hud_alpha_fg);
+       for(tm = world; (tm = find(tm, classname, "entcs_receiver")); )
+       {
+               color2 = GetPlayerColor(tm.sv_entnum);
+               //if(color == COLOR_SPECTATOR || color == color2)
+                       draw_teamradar_player(tm.origin, tm.angles, GetTeamRGB(color2));
+       }
+       draw_teamradar_player(view_origin, view_angles, '1 1 1');
+
+       drawresetcliparea();
+};
+
+// Score (#7)
+//
+void HUD_Score()
+{
+       float id = 7;
+       vector pos, mySize;
+       pos = HUD_Panel_GetPos(id);
+       mySize = HUD_Panel_GetSize(id);
+
+       HUD_Panel_DrawBg(id, pos, mySize);
+       fl