]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into terencehill/newpanelhud
authorFruitieX <rasse@rasse-lappy.localdomain>
Tue, 29 Jun 2010 07:51:23 +0000 (10:51 +0300)
committerFruitieX <rasse@rasse-lappy.localdomain>
Tue, 29 Jun 2010 07:51:23 +0000 (10:51 +0300)
92 files changed:
balance.cfg
defaultXonotic.cfg
loadfonts.cfg [deleted file]
models/player/erebus.iqm
models/player/erebus.iqm_0.tga
models/player/gak.iqm
models/player/gak.iqm_0.tga
models/player/gakarmored.iqm
models/player/gakarmored.iqm_0.tga
models/player/gakmasked.iqm
models/player/gakmasked.iqm_0.tga
models/player/ignis.iqm
models/player/ignis.iqm_0.tga
models/player/ignishalfmasked.iqm
models/player/ignishalfmasked.iqm_0.tga
models/player/ignismasked.iqm
models/player/ignismasked.iqm_0.tga
models/player/nyx.iqm
models/player/nyx.iqm_0.tga
models/player/pyria.iqm
models/player/pyria.iqm_0.tga
models/player/seraphina.iqm
models/player/seraphina.iqm_0.tga
models/player/seraphinamasked.iqm
models/player/seraphinamasked.iqm_0.tga
models/player/umbra.iqm
models/player/umbra.iqm_0.tga
models/weapons/g_nex.md3
models/weapons/h_nex.iqm
models/weapons/v_nex.md3
qcsrc/client/hud.qc
qcsrc/client/miscfunctions.qc
qcsrc/menu/draw.qc
qcsrc/menu/item/container.c
qcsrc/menu/item/label.c
qcsrc/menu/item/modalcontroller.c
qcsrc/menu/item/nexposee.c
qcsrc/menu/xonotic/dialog_settings_input.c
qcsrc/menu/xonotic/keybinder.c
qcsrc/server/autocvars.qh [new file with mode: 0644]
qcsrc/server/bot/bot.qc
qcsrc/server/cheats.qc
qcsrc/server/cl_physics.qc
qcsrc/server/g_tetris.qc
qcsrc/server/progs.src
qcsrc/server/w_common.qc
qcsrc/warpzonelib/client.qc
qcsrc/warpzonelib/common.qc
qcsrc/warpzonelib/server.qc
quake.rc
scripts/shaderlist.txt [new file with mode: 0644]
textures/campingrifle.tga
textures/campingrifle_bump.tga
textures/campingrifle_gloss.tga
textures/electro.tga
textures/electro_gloss.tga
textures/electro_glow.tga
textures/electro_norm.tga
textures/electro_pants.tga
textures/glauncher.tga
textures/glauncher_gloss.tga
textures/glauncher_norm.tga
textures/glauncher_pants.tga
textures/glauncher_shirt.tga
textures/hagar2.tga
textures/hagar2_gloss.tga
textures/hagar2_glow.tga
textures/hagar2_norm.tga
textures/hagar2_pants.tga
textures/hagar2_shirt.tga
textures/hlac_body.tga
textures/hlac_body_gloss.tga
textures/hlac_body_norm.tga
textures/hlac_body_pants.tga
textures/hlac_body_shirt.tga
textures/hookgun.tga
textures/hookgun_gloss.tga
textures/hookgun_norm.tga
textures/hookgun_pants.tga
textures/nexgun.tga
textures/nexgun_gloss.tga
textures/nexgun_glow.tga
textures/nexgun_norm.tga
textures/nexgun_pants.tga [deleted file]
textures/nexgun_reflect.tga [deleted file]
textures/nexgun_shirt.tga
textures/shotgun2.tga
textures/shotgun2_gloss.tga
textures/shotgun2_glow.tga
textures/shotgun2_norm.tga
textures/shotgun2_shirt.tga
update-cvarcount.sh

index cb58e9a14e563876567ed9accf0ebb85b4e2b5c3..156b69aed586e61776ebd45bc3dc5ee7035f6e99 100644 (file)
@@ -16,21 +16,21 @@ set g_start_weapon_campingrifle -1 "0 = never provide the weapon, 1 = always pro
 set g_start_weapon_tuba -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_fireball -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_seeker -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
-set g_balance_health_start 100
+set g_balance_health_start 150
 set g_balance_armor_start 0
-set g_start_ammo_shells 45
+set g_start_ammo_shells 40
 set g_start_ammo_nails 0
 set g_start_ammo_rockets 0
 set g_start_ammo_cells 0
 set g_start_ammo_fuel 0
-set g_warmup_start_health 200 "starting values when being in warmup-stage"
+set g_warmup_start_health 250 "starting values when being in warmup-stage"
 set g_warmup_start_armor 100 "starting values when being in warmup-stage"
 set g_warmup_start_ammo_shells 50 "starting values when being in warmup-stage"
 set g_warmup_start_ammo_nails 150 "starting values when being in warmup-stage"
 set g_warmup_start_ammo_rockets 50 "starting values when being in warmup-stage"
 set g_warmup_start_ammo_cells 50 "starting values when being in warmup-stage"
 set g_warmup_start_ammo_fuel 0 "starting values when being in warmup-stage"
-set g_lms_start_health 200
+set g_lms_start_health 250
 set g_lms_start_armor 100
 set g_lms_start_ammo_shells 50
 set g_lms_start_ammo_nails 150
@@ -54,40 +54,40 @@ set g_balance_nix_ammoincr_fuel 2
 // {{{ pickup items
 set g_pickup_ammo_anyway 0
 set g_pickup_weapons_anyway 0
-set g_pickup_shells 30
-set g_pickup_shells_max 120
+set g_pickup_shells 15
+set g_pickup_shells_max 999
 set g_pickup_nails 80
-set g_pickup_nails_max 400
-set g_pickup_rockets 30
-set g_pickup_rockets_max 120
-set g_pickup_cells 50
-set g_pickup_cells_max 200
+set g_pickup_nails_max 999
+set g_pickup_rockets 15
+set g_pickup_rockets_max 999
+set g_pickup_cells 25
+set g_pickup_cells_max 999
 set g_pickup_fuel 25
 set g_pickup_fuel_jetpack 50
 set g_pickup_fuel_max 999
-set g_pickup_armorsmall 10
-set g_pickup_armorsmall_max 100
+set g_pickup_armorsmall 5
+set g_pickup_armorsmall_max 999
 set g_pickup_armorsmall_anyway 0
 set g_pickup_armormedium 25
-set g_pickup_armormedium_max 100
+set g_pickup_armormedium_max 999
 set g_pickup_armormedium_anyway 0
 set g_pickup_armorbig 50
-set g_pickup_armorbig_max 100
+set g_pickup_armorbig_max 999
 set g_pickup_armorbig_anyway 0
 set g_pickup_armorlarge 100
-set g_pickup_armorlarge_max 100
+set g_pickup_armorlarge_max 999
 set g_pickup_armorlarge_anyway 0
-set g_pickup_healthsmall 10
-set g_pickup_healthsmall_max 200
+set g_pickup_healthsmall 5
+set g_pickup_healthsmall_max 999
 set g_pickup_healthsmall_anyway 0
 set g_pickup_healthmedium 25
-set g_pickup_healthmedium_max 200
+set g_pickup_healthmedium_max 999
 set g_pickup_healthmedium_anyway 0
 set g_pickup_healthlarge 50
-set g_pickup_healthlarge_max 200
+set g_pickup_healthlarge_max 999
 set g_pickup_healthlarge_anyway 0
 set g_pickup_healthmega 100
-set g_pickup_healthmega_max 200
+set g_pickup_healthmega_max 999
 set g_pickup_healthmega_anyway 0
 set g_pickup_respawntime_short 15
 set g_pickup_respawntime_medium 20
@@ -104,23 +104,23 @@ set g_pickup_respawntimejitter_ammo 0
 // }}}
 
 // {{{ regen/rot
-set g_balance_health_regen 0
-set g_balance_health_regenlinear 5
+set g_balance_health_regen 0.1
+set g_balance_health_regenlinear 0
 set g_balance_pause_health_regen 5
 set g_balance_pause_health_regen_spawn 0
-set g_balance_health_rot 0
-set g_balance_health_rotlinear 5
-set g_balance_pause_health_rot 3
-set g_balance_pause_health_rot_spawn 1
+set g_balance_health_rot 0.1
+set g_balance_health_rotlinear 0
+set g_balance_pause_health_rot 5
+set g_balance_pause_health_rot_spawn 10
 set g_balance_health_regenstable 100
 set g_balance_health_rotstable 100
 set g_balance_health_limit 999
 set g_balance_armor_regen 0
 set g_balance_armor_regenlinear 0
-set g_balance_armor_rot 0
+set g_balance_armor_rot 0.1
 set g_balance_armor_rotlinear 0
-set g_balance_pause_armor_rot 1
-set g_balance_pause_armor_rot_spawn 1
+set g_balance_pause_armor_rot 5
+set g_balance_pause_armor_rot_spawn 10
 set g_balance_armor_regenstable 100
 set g_balance_armor_rotstable 100
 set g_balance_armor_limit 999
@@ -156,8 +156,8 @@ set g_projectiles_newton_style 2
 // 2: relative velocity projectiles, but aim is precorrected so projectiles hit the crosshair (note: strafe rockets then are SLOWER than ones shot while standing, happens in 1 too when aiming correctly which is hard)
 // 3: absolute velocity + player velocity component in shot direction (note: does NOT yield the right relative velocity, but may be good enough, but it is somewhat prone to sniper rockets)
 // 4: just add the player velocity length to the absolute velocity (tZork's sniper rockets)
-set g_projectiles_newton_style_2_minfactor 0.8
-set g_projectiles_newton_style_2_maxfactor 1.5
+set g_projectiles_newton_style_2_minfactor 0.7
+set g_projectiles_newton_style_2_maxfactor 5
 set g_projectiles_spread_style 0
 // possible values:
 // 0: forward + solid sphere (like Quake) - varies velocity
@@ -188,7 +188,7 @@ set g_balance_powerup_strength_selfforce 1.5
 set g_jetpack_antigravity 0.8 "factor of gravity compensation of the jetpack"
 set g_jetpack_acceleration_side 1200 "acceleration of the jetpack in xy direction"
 set g_jetpack_acceleration_up 600 "acceleration of the jetpack in z direction (note: you have to factor in gravity here, if antigravity is not 1)"
-set g_jetpack_maxspeed_side 1200 "max speed of the jetpack in xy direction"
+set g_jetpack_maxspeed_side 1500 "max speed of the jetpack in xy direction"
 set g_jetpack_maxspeed_up 600 "max speed of the jetpack in z direction"
 set g_jetpack_fuel 8 "fuel per second for jetpack"
 set g_jetpack_attenuation 2 "jetpack sound attenuation"
@@ -206,11 +206,11 @@ set g_balance_grapplehook_health 130
 
 // {{{ weapon properties
 // {{{ laser
-set g_balance_laser_primary_damage 25
+set g_balance_laser_primary_damage 35
 set g_balance_laser_primary_edgedamage 10
 set g_balance_laser_primary_force 400
 set g_balance_laser_primary_radius 70
-set g_balance_laser_primary_speed 12000
+set g_balance_laser_primary_speed 9000
 set g_balance_laser_primary_spread 0
 set g_balance_laser_primary_refire 0.7
 set g_balance_laser_primary_animtime 0.3
@@ -219,81 +219,81 @@ set g_balance_laser_primary_shotangle 0
 set g_balance_laser_primary_delay 0.03
 set g_balance_laser_gauntlet 0
 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
-set g_balance_laser_secondary_damage 25
+set g_balance_laser_secondary_damage 35
 set g_balance_laser_secondary_edgedamage 10
 set g_balance_laser_secondary_force 400
 set g_balance_laser_secondary_radius 70
-set g_balance_laser_secondary_speed 12000
+set g_balance_laser_secondary_speed 9000
 set g_balance_laser_secondary_spread 0
 set g_balance_laser_secondary_refire 0.7
 set g_balance_laser_secondary_animtime 0.3
 set g_balance_laser_secondary_lifetime 30
-set g_balance_laser_secondary_shotangle -90
+set g_balance_laser_secondary_shotangle 0
 set g_balance_laser_secondary_delay 0
 // }}}
 // {{{ shotgun
 set g_balance_shotgun_primary_bullets 6
-set g_balance_shotgun_primary_damage 8
-set g_balance_shotgun_primary_force 0
-set g_balance_shotgun_primary_spread 0.11
+set g_balance_shotgun_primary_damage 9
+set g_balance_shotgun_primary_force 60
+set g_balance_shotgun_primary_spread 0.07
 set g_balance_shotgun_primary_refire 0.5
 set g_balance_shotgun_primary_animtime 0.2
 set g_balance_shotgun_primary_ammo 1
-set g_balance_shotgun_primary_speed 8000
+set g_balance_shotgun_primary_speed 12000
 set g_balance_shotgun_primary_bulletconstant 75 // 3.8qu
 set g_balance_shotgun_secondary 1
 set g_balance_shotgun_secondary_bullets 6
-set g_balance_shotgun_secondary_damage 8
-set g_balance_shotgun_secondary_force 0
-set g_balance_shotgun_secondary_spread 0.17
+set g_balance_shotgun_secondary_damage 9
+set g_balance_shotgun_secondary_force 60
+set g_balance_shotgun_secondary_spread 0.1
 set g_balance_shotgun_secondary_refire 1.35
 set g_balance_shotgun_secondary_animtime 0.2
 set g_balance_shotgun_secondary_ammo 1
-set g_balance_shotgun_secondary_speed 8000
+set g_balance_shotgun_secondary_speed 12000
 set g_balance_shotgun_secondary_bulletconstant 75 // 3.8qu
 // }}}
 // {{{ uzi
 set g_balance_uzi_first 1
-set g_balance_uzi_first_damage 12
-set g_balance_uzi_first_force 0
+set g_balance_uzi_first_damage 30
+set g_balance_uzi_first_force 50
 set g_balance_uzi_first_spread 0.015
-set g_balance_uzi_first_refire 0.15
+set g_balance_uzi_first_refire 0.2
 set g_balance_uzi_first_ammo 1
-set g_balance_uzi_sustained_damage 7
-set g_balance_uzi_sustained_force 0
+set g_balance_uzi_sustained_damage 15
+set g_balance_uzi_sustained_force 27
 set g_balance_uzi_sustained_spread 0.05
-set g_balance_uzi_sustained_refire 0.075
+set g_balance_uzi_sustained_refire 0.1
 set g_balance_uzi_sustained_ammo 1
 set g_balance_uzi_speed 18000
 set g_balance_uzi_bulletconstant 115 // 13.1qu
 // }}}
 // {{{ mortar
 set g_balance_grenadelauncher_primary2secondary 0
-set g_balance_grenadelauncher_primary_damage 50
+set g_balance_grenadelauncher_primary_damage 70
 set g_balance_grenadelauncher_primary_edgedamage 38
 set g_balance_grenadelauncher_primary_force 400
 set g_balance_grenadelauncher_primary_radius 140
-set g_balance_grenadelauncher_primary_speed 2200
-set g_balance_grenadelauncher_primary_speed_up 220
+set g_balance_grenadelauncher_primary_speed 2000
+set g_balance_grenadelauncher_primary_speed_up 200
 set g_balance_grenadelauncher_primary_speed_z 0
 set g_balance_grenadelauncher_primary_spread 0
 set g_balance_grenadelauncher_primary_lifetime 30
 set g_balance_grenadelauncher_primary_refire 0.8
 set g_balance_grenadelauncher_primary_animtime 0.3
 set g_balance_grenadelauncher_primary_ammo 2
-set g_balance_grenadelauncher_secondary_damage 60
+set g_balance_grenadelauncher_secondary_damage 70
 set g_balance_grenadelauncher_secondary_edgedamage 38
 set g_balance_grenadelauncher_secondary_force 400
 set g_balance_grenadelauncher_secondary_radius 140
 set g_balance_grenadelauncher_secondary_speed 1400
-set g_balance_grenadelauncher_secondary_speed_up 150
+set g_balance_grenadelauncher_secondary_speed_up 200
 set g_balance_grenadelauncher_secondary_speed_z 0
 set g_balance_grenadelauncher_secondary_spread 0
-set g_balance_grenadelauncher_secondary_lifetime 1
+set g_balance_grenadelauncher_secondary_lifetime 2.5
 set g_balance_grenadelauncher_secondary_refire 0.7
 set g_balance_grenadelauncher_secondary_animtime 0.3
 set g_balance_grenadelauncher_secondary_ammo 2
-set g_balance_grenadelauncher_secondary_health 70
+set g_balance_grenadelauncher_secondary_health 10
 set g_balance_grenadelauncher_secondary_damageforcescale 4
 set g_balance_grenadelauncher_secondary_bouncefactor 0.5
 set g_balance_grenadelauncher_secondary_bouncestop 0.075
@@ -320,15 +320,15 @@ set g_balance_electro_secondary_speed 900
 set g_balance_electro_secondary_speed_up 200
 set g_balance_electro_secondary_speed_z 0
 set g_balance_electro_secondary_spread 0
-set g_balance_electro_secondary_lifetime 2.5
-set g_balance_electro_secondary_refire 0.2
-set g_balance_electro_secondary_refire2 1
-set g_balance_electro_secondary_animtime 0.2
+set g_balance_electro_secondary_lifetime 5
+set g_balance_electro_secondary_refire 0.3
+set g_balance_electro_secondary_refire2 0
+set g_balance_electro_secondary_animtime 0.3
 set g_balance_electro_secondary_ammo 2
 set g_balance_electro_secondary_health 5
 set g_balance_electro_secondary_damageforcescale 4
-set g_balance_electro_secondary_count 3
-set g_balance_electro_combo_damage 50
+set g_balance_electro_secondary_count 1
+set g_balance_electro_combo_damage 80
 set g_balance_electro_combo_edgedamage 0
 set g_balance_electro_combo_force 200
 set g_balance_electro_combo_radius 250
@@ -336,12 +336,12 @@ set g_balance_electro_combo_comboradius 0
 set g_balance_electro_combo_speed 2000
 // }}}
 // {{{ crylink
-set g_balance_crylink_primary_damage 14
+set g_balance_crylink_primary_damage 18
 set g_balance_crylink_primary_edgedamage 0
 set g_balance_crylink_primary_force -55
 set g_balance_crylink_primary_radius 80
 set g_balance_crylink_primary_speed 7000
-set g_balance_crylink_primary_spread 0.01
+set g_balance_crylink_primary_spread 0.03
 set g_balance_crylink_primary_shots 4
 set g_balance_crylink_primary_bounces 1
 set g_balance_crylink_primary_refire 0.4
@@ -357,17 +357,17 @@ set g_balance_crylink_primary_other_lifetime 0.1 // range: 700 full, fades to 24
 set g_balance_crylink_primary_other_fadetime 0.25
 
 set g_balance_crylink_secondary 1
-set g_balance_crylink_secondary_damage 10
+set g_balance_crylink_secondary_damage 18
 set g_balance_crylink_secondary_edgedamage 0
-set g_balance_crylink_secondary_force -40
-set g_balance_crylink_secondary_radius 10
-set g_balance_crylink_secondary_speed 4000
-set g_balance_crylink_secondary_spread 0.01
-set g_balance_crylink_secondary_shots 3
+set g_balance_crylink_secondary_force -55
+set g_balance_crylink_secondary_radius 3
+set g_balance_crylink_secondary_speed 7000
+set g_balance_crylink_secondary_spread 0.08
+set g_balance_crylink_secondary_shots 7
 set g_balance_crylink_secondary_bounces 0
-set g_balance_crylink_secondary_refire 0.1
-set g_balance_crylink_secondary_animtime 0.1
-set g_balance_crylink_secondary_ammo 1
+set g_balance_crylink_secondary_refire 0.5
+set g_balance_crylink_secondary_animtime 0.3
+set g_balance_crylink_secondary_ammo 2
 set g_balance_crylink_secondary_bouncedamagefactor 0.5
 
 set g_balance_crylink_secondary_middle_lifetime 5 // range: 35000 full, fades to 70000
@@ -392,43 +392,43 @@ set g_balance_minstanex_animtime 0.3
 set g_balance_minstanex_ammo 10
 // }}}
 // {{{ hagar
-set g_balance_hagar_primary_damage 30
-set g_balance_hagar_primary_edgedamage 0
-set g_balance_hagar_primary_force 50
-set g_balance_hagar_primary_radius 70
-set g_balance_hagar_primary_spread 0.05
-set g_balance_hagar_primary_speed 2400
+set g_balance_hagar_primary_damage 37
+set g_balance_hagar_primary_edgedamage 15
+set g_balance_hagar_primary_force 100
+set g_balance_hagar_primary_radius 65
+set g_balance_hagar_primary_spread 0.010
+set g_balance_hagar_primary_speed 3000
 set g_balance_hagar_primary_lifetime 30
 set g_balance_hagar_primary_refire 0.15
 set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
-set g_balance_hagar_secondary_damage 20
-set g_balance_hagar_secondary_edgedamage 10
-set g_balance_hagar_secondary_force 50
-set g_balance_hagar_secondary_radius 90
-set g_balance_hagar_secondary_spread 0.05
-set g_balance_hagar_secondary_speed 2000
-set g_balance_hagar_secondary_lifetime_min 0.1
-set g_balance_hagar_secondary_lifetime_rand 0.05
-set g_balance_hagar_secondary_refire 0.1
-set g_balance_hagar_secondary_ammo 0.5
+set g_balance_hagar_secondary_damage 37
+set g_balance_hagar_secondary_edgedamage 15
+set g_balance_hagar_secondary_force 100
+set g_balance_hagar_secondary_radius 65
+set g_balance_hagar_secondary_spread 0.015
+set g_balance_hagar_secondary_speed 1400
+set g_balance_hagar_secondary_lifetime_min 30
+set g_balance_hagar_secondary_lifetime_rand 0
+set g_balance_hagar_secondary_refire 0.15
+set g_balance_hagar_secondary_ammo 1
 // }}}
 // {{{ rocketlauncher
-set g_balance_rocketlauncher_damage 80
+set g_balance_rocketlauncher_damage 105
 set g_balance_rocketlauncher_edgedamage 40
 set g_balance_rocketlauncher_force 600
-set g_balance_rocketlauncher_radius 100
-set g_balance_rocketlauncher_speed 1600
-set g_balance_rocketlauncher_speedaccel 1600
-set g_balance_rocketlauncher_speedstart 1000
+set g_balance_rocketlauncher_radius 150
+set g_balance_rocketlauncher_speed 850
+set g_balance_rocketlauncher_speedaccel 0
+set g_balance_rocketlauncher_speedstart 850
 set g_balance_rocketlauncher_lifetime 30
-set g_balance_rocketlauncher_refire 1.2
+set g_balance_rocketlauncher_refire 1
 set g_balance_rocketlauncher_animtime 0.3
 set g_balance_rocketlauncher_ammo 3
 set g_balance_rocketlauncher_health 40
 set g_balance_rocketlauncher_damageforcescale 4
-set g_balance_rocketlauncher_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
-set g_balance_rocketlauncher_guiderate 140 // max degrees per second
+set g_balance_rocketlauncher_detonatedelay 0.2 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
+set g_balance_rocketlauncher_guiderate 90 // max degrees per second
 set g_balance_rocketlauncher_guideratedelay 0.01 // immediate
 set g_balance_rocketlauncher_guidegoal 512 // goal distance for (non-laser) guiding (higher = less control, lower = erratic)
 set g_balance_rocketlauncher_guidedelay 0.15 // delay before guiding kicks in
@@ -448,12 +448,12 @@ set g_balance_portal_health 200 // these get recharged whenever the portal is us
 set g_balance_portal_lifetime 15 // these get recharged whenever the portal is used
 // }}}
 // {{{ hook
-set g_balance_hook_primary_fuel 2 // hook monkeys set 0
+set g_balance_hook_primary_fuel 5 // hook monkeys set 0
 set g_balance_hook_primary_refire 0 // hook monkeys set 0
 set g_balance_hook_primary_animtime 0.3 // good shoot anim
 set g_balance_hook_primary_hooked_time_max 0 // infinite
 set g_balance_hook_primary_hooked_time_free 2 // 2s being hooked are free
-set g_balance_hook_primary_hooked_fuel 3 // fuel per second hooked
+set g_balance_hook_primary_hooked_fuel 5 // fuel per second hooked
 set g_balance_hook_secondary_damage 25 // not much
 set g_balance_hook_secondary_edgedamage 5 // not much
 set g_balance_hook_secondary_radius 500 // LOTS
@@ -570,7 +570,7 @@ set g_balance_fireball_secondary_damageforcescale 4
 set g_balance_fireball_secondary_damagetime 5
 set g_balance_fireball_secondary_force 100
 set g_balance_fireball_secondary_laserburntime 0.5
-set g_balance_fireball_secondary_laserdamage 30
+set g_balance_fireball_secondary_laserdamage 50
 set g_balance_fireball_secondary_laseredgedamage 20
 set g_balance_fireball_secondary_laserradius 110
 set g_balance_fireball_secondary_lifetime 7
index 909dfd6d47deaf18f25507c69e99c04629e84c1b..9edc772f299c76e27bb150f88a88aa136ed5ab13 100644 (file)
@@ -1035,7 +1035,7 @@ bind kp_minus "+userbind 18"
 set sv_vote_commands "restart fraglimit chmap gotomap nextmap endmatch reducematchtime extendmatchtime allready kick cointoss movetoteam_auto" "these commands can be voted"
 set sv_vote_only_commands ""
 set sv_vote_master_commands "movetoteam_red movetoteam_blue movetoteam_yellow movetoteam_pink" "maybe add kickban here (but then sv_vote_master 0)"
-set rcon_restricted_commands "restart fraglimit chmap gotomap endmatch reducematchtime extendmatchtime allready kick kickban \"sv_cmd bans\" \"sv_cmd unban\" status \"sv_cmd teamstatus\" movetoteam_auto movetoteam_red movetoteam_blue movetoteam_yellow movetoteam_pink"
+set rcon_restricted_commands "restart fraglimit chmap gotomap endmatch reducematchtime extendmatchtime allready kick kickban \"sv_cmd bans\" \"sv_cmd unban *\" status \"sv_cmd teamstatus\" movetoteam_auto movetoteam_red movetoteam_blue movetoteam_yellow movetoteam_pink"
 set sv_vote_call 1     "users can call a vote for the above commands"
 set sv_vote_master 1   "users can call a vote to become master"
 set sv_vote_master_password "" "when set, users can use \"vlogin PASSWORD\" to log in as master"
@@ -1787,9 +1787,6 @@ collision_endposnudge 1
 set cl_lerpanim_maxdelta_framegroups 0.05 // must be faster than fastest weapon refire
 set cl_lerpanim_maxdelta_server 0.1 // must be slower than slowest server controlled anim (e.g. animinfo stuff)
 
-// FIXME temporary
-set menu_font_size_snapping_fix 1
-
 // player ID
 seta _cl_userid "" "player ID (e.g. for tournaments)"
 
diff --git a/loadfonts.cfg b/loadfonts.cfg
deleted file mode 100644 (file)
index dd3b637..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-// When freetype support is in SVN, remove the space between vera-sans and the comma :)
-// like: loadfont user0 gfx/vera-sans,gfx/fallback 8 12 16 24 32
-// loadfont console     gfx/vera-mono,gfx/fallback $con_textsize 9 10 11
-// loadfont sbar        gfx/vera-mono
-loadfont notify      gfx/vera-sans,gfx/fallback 8 12 16 24 32
-loadfont chat        gfx/vera-sans,gfx/fallback 8 13 16 24 32
-// loadfont centerprint gfx/vera-mono
-// loadfont infobar     gfx/vera-mono
-loadfont user0       gfx/vera-sans,gfx/fallback 8 12 16 24 32
-
-// now create the real sbar_font alias
-alias sbar_font "loadfont user1 ${1},gfx/fallback ${2-}; loadfont user2 ${1}-big,gfx/fallback ${2-}; sbar_columns_set"
-// if _requested_sbar_font is empty, the string becaomse "nonempty: "
-// for the case "nonempty: " a default value is used
-// in any other case, the _requested_sbar_font is sued
-set _used_sbar_font "nonempty: $_requested_sbar_font"
-toggle _used_sbar_font "$_requested_sbar_font" "nonempty: " "gfx/vera-sans 8 12 16 24 32"
-toggle _requested_sbar_font "" "gfx/vera-sans 8 12 16 24 32" "gfx/vera-sans 8 12 16 24 32" "$_requested_sbar_font"
-sbar_font ${_requested_sbar_font asis}
-
-set menu_font_size_snapping_fix 1
index 28a3c07cc38032d61ca4ab40da7402bb83263012..ebd112b84aa04b52e7c98f48233aa48a17721677 100644 (file)
Binary files a/models/player/erebus.iqm and b/models/player/erebus.iqm differ
index ee7fb587718aa4fb54d0c621f0cb146e8a03cfd0..4fedf7713d5d990cca362a32750f2ec6add7b622 100644 (file)
Binary files a/models/player/erebus.iqm_0.tga and b/models/player/erebus.iqm_0.tga differ
index 22a1975517fa37fc75ca2449342e5d76ddde5b17..dccf325bcaacae7c8bb1b35ec515235ca5e789a5 100644 (file)
Binary files a/models/player/gak.iqm and b/models/player/gak.iqm differ
index 093b7f061deeb1fd653e17ff1181c5c18fdc119a..38a72739c1e7660414c3022bff8251c6b29ad873 100644 (file)
Binary files a/models/player/gak.iqm_0.tga and b/models/player/gak.iqm_0.tga differ
index 9df6bdb33a8ca2d4e45a264f021469a5711bb1f5..c4b574a074680ee489fe744a8ffe3e818dfaa472 100644 (file)
Binary files a/models/player/gakarmored.iqm and b/models/player/gakarmored.iqm differ
index b4a58ea31b55ff19794a3554e1630f5ee7c1bae2..0fbb375cdddee31738e590554f5e4542e547da7a 100644 (file)
Binary files a/models/player/gakarmored.iqm_0.tga and b/models/player/gakarmored.iqm_0.tga differ
index 275953dff302feae71bc5b3c10ea45fe41ce386b..646c628f86af40a66c99ae2a374169fa2bcfb93d 100644 (file)
Binary files a/models/player/gakmasked.iqm and b/models/player/gakmasked.iqm differ
index 40d2958a7e30e1801e392ab7c18733eca5449323..7b30802fc3c02533b9bdabbd1215d2347a11a0fd 100644 (file)
Binary files a/models/player/gakmasked.iqm_0.tga and b/models/player/gakmasked.iqm_0.tga differ
index cccb00c319317c96f918bc3f5d50da8f88d1fd3c..2e4749346439daa40f72b49fc420cc99d0323c62 100644 (file)
Binary files a/models/player/ignis.iqm and b/models/player/ignis.iqm differ
index 990538486d3ef5ba43bbb9df4959b71384a3262f..3ad24e0dc1efafb05dcabe885d510cd9129251ca 100644 (file)
Binary files a/models/player/ignis.iqm_0.tga and b/models/player/ignis.iqm_0.tga differ
index 5a823e2424f23877cc8dc872724e57c394f7fe40..7f5a51295eb8284bc33edbc5a0b14c642b528eb1 100644 (file)
Binary files a/models/player/ignishalfmasked.iqm and b/models/player/ignishalfmasked.iqm differ
index c0beb4ac351ee7ede131b44446093b46aec9f2f5..487a131163665f1d890e1d3af118777fc9fb3ad0 100644 (file)
Binary files a/models/player/ignishalfmasked.iqm_0.tga and b/models/player/ignishalfmasked.iqm_0.tga differ
index a165aac0733d91f010b3a5158464fe2c6d75a63b..fbf2b00faedbbadeca6ef20a2a21ff8117bd9abe 100644 (file)
Binary files a/models/player/ignismasked.iqm and b/models/player/ignismasked.iqm differ
index 572e8fe877ace319a222542f568e2c437e332bc4..8a29f813665e85140916b8aac06c27ae7b524540 100644 (file)
Binary files a/models/player/ignismasked.iqm_0.tga and b/models/player/ignismasked.iqm_0.tga differ
index 85cc5f5439f6e1f3538e50e5bf01dc68bdf18c78..505fcb9f198b0c2dbd448fc80cf4706c683b7595 100644 (file)
Binary files a/models/player/nyx.iqm and b/models/player/nyx.iqm differ
index da5cbe7f2b997de2380e20883ce2789882219621..f6bcb017c85aa62378480e80a604e8acd1cd8bc5 100644 (file)
Binary files a/models/player/nyx.iqm_0.tga and b/models/player/nyx.iqm_0.tga differ
index c4e75396f798873099880c6ced57dd3823e091db..ef2ef0509233d5810e965a83ab210f7acecb5e20 100644 (file)
Binary files a/models/player/pyria.iqm and b/models/player/pyria.iqm differ
index b155a57ec7b802501eb6e716b9b59e3ecb388f35..730ade37a7a216429447a3ec98cc40c2f17c8597 100644 (file)
Binary files a/models/player/pyria.iqm_0.tga and b/models/player/pyria.iqm_0.tga differ
index 716bcc072530c9ba20a1f78da0c4a719121880e6..7e6dbc224abbedecddc0d9d2731488d46a289bc8 100644 (file)
Binary files a/models/player/seraphina.iqm and b/models/player/seraphina.iqm differ
index 299f5a37297959123fd90a7ee7ca32a32d66e329..4a0215b832e18a36de870c373795a39d1599c536 100644 (file)
Binary files a/models/player/seraphina.iqm_0.tga and b/models/player/seraphina.iqm_0.tga differ
index 98f29be98ea7bd7f1becd1f0417b2a2329c36a79..f65dce6f0af1d489da71f59d9e25628f79168b16 100644 (file)
Binary files a/models/player/seraphinamasked.iqm and b/models/player/seraphinamasked.iqm differ
index e5a61dbef023e324facee885c33d5acf61be8e8c..7a2dc98c579c09dcb622f3bc6def59ad6d34b010 100644 (file)
Binary files a/models/player/seraphinamasked.iqm_0.tga and b/models/player/seraphinamasked.iqm_0.tga differ
index 2b53ad252d5f8e30fa18530a012b7bcb5dceacc8..f43ad6778e8dd16dfcd72f9e710816a5c81c5710 100644 (file)
Binary files a/models/player/umbra.iqm and b/models/player/umbra.iqm differ
index d3b3cc4c127a70bfbd161d1f011e37522c5ee827..4fb0941c839674ff331e4caa5a10e8d8f6c301f3 100644 (file)
Binary files a/models/player/umbra.iqm_0.tga and b/models/player/umbra.iqm_0.tga differ
index 1df904fc3b0cecb44a7459be28ec8b63b372de7c..5594558b852a17822540fb2a5b9c658fa38008e2 100644 (file)
Binary files a/models/weapons/g_nex.md3 and b/models/weapons/g_nex.md3 differ
index 22642efad854f3b847c658c9c1fda2f130d8d0a3..8b52897ffa6537a7b30f2801642f0cfb17cf2d62 100644 (file)
Binary files a/models/weapons/h_nex.iqm and b/models/weapons/h_nex.iqm differ
index 9144fa0a04f7a199d97d603cd2b8bdd422333a42..1d45edb7938b320f402ea328a47a8ce1586859e1 100644 (file)
Binary files a/models/weapons/v_nex.md3 and b/models/weapons/v_nex.md3 differ
index 9dfae2c903b1ef8d73bae21336bb2ee8c3e906df..74d10d970a38550a8ce1ea81cf9caf0843e76aa4 100644 (file)
@@ -1504,7 +1504,6 @@ void HUD_WeaponIcons_Clear()
 }
 
 entity weaponorder[WEP_MAXCOUNT];
-
 void weaponorder_swap(float i, float j, entity pass)
 {
        entity h;
@@ -1513,6 +1512,7 @@ void weaponorder_swap(float i, float j, entity pass)
        weaponorder[j] = h;
 }
 
+string weaponorder_cmp_str_save;
 string weaponorder_cmp_str;
 float weaponorder_cmp(float i, float j, entity pass)
 {
@@ -1533,19 +1533,34 @@ void HUD_WeaponIcons(void)
        mySize = HUD_Panel_GetSize(id);
 
        stat_weapons = getstati(STAT_WEAPONS);
+       weapon_cnt = 0;
        for(i = WEP_FIRST; i <= WEP_LAST; ++i)
        {
                self = get_weaponinfo(i);
                if(self.impulse >= 0)
-               {
-                       weaponorder[weapon_cnt] = self;
                        ++weapon_cnt;
-               }
        }
 
        // TODO make this configurable
        weaponorder_cmp_str = strcat(" ", weaponorder_byimpulse, " ");
-       heapsort(weapon_cnt, weaponorder_swap, weaponorder_cmp, world);
+
+       if(weaponorder_cmp_str != weaponorder_cmp_str_save)
+       {
+               if(weaponorder_cmp_str_save)
+                       strunzone(weaponorder_cmp_str_save);
+               weaponorder_cmp_str_save = strzone(weaponorder_cmp_str);
+               weapon_cnt = 0;
+               for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+               {
+                       self = get_weaponinfo(i);
+                       if(self.impulse >= 0)
+                       {
+                               weaponorder[weapon_cnt] = self;
+                               ++weapon_cnt;
+                       }
+               }
+               heapsort(weapon_cnt, weaponorder_swap, weaponorder_cmp, world);
+       }
 
        HUD_Panel_DrawBg(id, pos, mySize, 0);
        float padding;
index 0e3e58f49607542917a34d1ebfa154cd20962e22..74830223d9306f31cead7823a6f3ff590b593e7f 100644 (file)
@@ -510,18 +510,13 @@ void drawstring_expanding(vector position, string text, vector scale, vector rgb
        float sz;
        sz = expandingbox_sizefactor_from_fadelerp(fadelerp);
 
-       if(cvar("menu_font_size_snapping_fix"))
-               drawfontscale = sz * '1 1 0';
-       else
-               drawfontscale = '1 1 0';
+       drawfontscale = sz * '1 1 0';
        dummyfunction(0, 0, 0, 0, 0, 0, 0, 0);
         drawstring(position + expandingbox_resize_centered_box_offset(sz, scale, stringwidth(text, FALSE, scale * (sz / drawfontscale_x)) / (scale_x * sz)), text, scale * (sz / drawfontscale_x), rgb, alpha * (1 - fadelerp), flag);
        // width parameter:
        //    (scale_x * sz / drawfontscale_x) * drawfontscale_x * SIZE1 / (scale_x * sz)
        //    SIZE1
-
-       if(cvar("menu_font_size_snapping_fix"))
-               drawfontscale = '1 1 0';
+       drawfontscale = '1 1 0';
 }
 
 void drawcolorcodedstring_expanding(vector position, string text, vector scale, float alpha, float flag, float fadelerp)
@@ -529,15 +524,10 @@ void drawcolorcodedstring_expanding(vector position, string text, vector scale,
        float sz;
        sz = expandingbox_sizefactor_from_fadelerp(fadelerp);
 
-       if(cvar("menu_font_size_snapping_fix"))
-               drawfontscale = sz * '1 1 0';
-       else
-               drawfontscale = '1 1 0';
+       drawfontscale = sz * '1 1 0';
        dummyfunction(0, 0, 0, 0, 0, 0, 0, 0);
        drawcolorcodedstring(position + expandingbox_resize_centered_box_offset(sz, scale, stringwidth(text, TRUE, scale * (sz / drawfontscale_x)) / (scale_x * sz)), text, scale * (sz / drawfontscale_x), alpha * (1 - fadelerp), flag);
-
-       if(cvar("menu_font_size_snapping_fix"))
-               drawfontscale = '1 1 0';
+       drawfontscale = '1 1 0';
 }
 
 // this draws the triangles of a model DIRECTLY. Don't expect high performance, really...
index b504022a5174603e6fa0feb0b30c31f8ffce2ada..cec73d6c0a2f146d89b9298e21723d0976694442 100644 (file)
@@ -230,22 +230,17 @@ void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector the
 }
 void draw_Text(vector theOrigin, string theText, vector theSize, vector theColor, float theAlpha, float ICanHasKallerz)
 {
-       vector fs;
        if(theSize_x <= 0 || theSize_y <= 0)
                error("Drawing zero size text?\n");
-       if not(cvar("menu_font_size_snapping_fix")) // FIXME remove this, this is to detect old engines
-       {
-               fs = draw_fontscale;
-               draw_fontscale = '1 1 0';
-       }
+
+       //float wi;
+       //wi = draw_TextWidth(theText, ICanHasKallerz, theSize);
+       //draw_Fill(theOrigin, '1 0 0' * wi + '0 1 0' * theSize_y, '1 0 0', 0.3);
+
        if(ICanHasKallerz)
                drawcolorcodedstring(boxToGlobal(theOrigin, draw_shift, draw_scale), theText, globalToBoxSize(boxToGlobalSize(theSize, draw_scale), draw_fontscale), theAlpha * draw_alpha, 0);
        else
                drawstring(boxToGlobal(theOrigin, draw_shift, draw_scale), theText, globalToBoxSize(boxToGlobalSize(theSize, draw_scale), draw_fontscale), theColor, theAlpha * draw_alpha, 0);
-       if not(cvar("menu_font_size_snapping_fix")) // FIXME remove this, this is to detect old engines
-       {
-               draw_fontscale = fs;
-       }
 }
 void draw_CenterText(vector theOrigin, string theText, vector theSize, vector theColor, float theAlpha, float ICanHasKallerz)
 {
@@ -257,20 +252,10 @@ float draw_TextWidth(string theText, float ICanHasKallerz, vector SizeThxBye)
 {
        //return strlen(theText);
        //print("draw_TextWidth \"", theText, "\"\n");
-       vector fs;
        vector v;
        v = '0 0 0';
        //float r;
-       if not(cvar("menu_font_size_snapping_fix")) // FIXME remove this, this is to detect old engines
-       {
-               fs = draw_fontscale;
-               draw_fontscale = '1 1 0';
-       }
-       v_x = stringwidth(theText, ICanHasKallerz, boxToGlobalSize(SizeThxBye, draw_scale)) / draw_fontscale_x;
-       if not(cvar("menu_font_size_snapping_fix")) // FIXME remove this, this is to detect old engines
-       {
-               draw_fontscale = fs;
-       }
+       v_x = stringwidth(theText, ICanHasKallerz, globalToBoxSize(boxToGlobalSize(SizeThxBye, draw_scale), draw_fontscale));
        v = globalToBoxSize(v, draw_scale);
        return v_x;
 }
index b29eea0b80ea70c8ed805682d6e38665cd580b8f..d10e6a486d99d981083a26725e8f57237c2ead7e 100644 (file)
@@ -9,7 +9,7 @@ CLASS(Container) EXTENDS(Item)
        METHOD(Container, mouseRelease, float(entity, vector))
        METHOD(Container, focusLeave, void(entity))
        METHOD(Container, resizeNotify, void(entity, vector, vector, vector, vector))
-       METHOD(Container, resizeNotifyLie, void(entity, vector, vector, vector, vector, .vector, .vector))
+       METHOD(Container, resizeNotifyLie, void(entity, vector, vector, vector, vector, .vector, .vector, .vector))
        METHOD(Container, addItem, void(entity, entity, vector, vector, float))
        METHOD(Container, addItemCentered, void(entity, entity, vector, float))
        METHOD(Container, moveItemAfter, void(entity, entity, entity))
@@ -25,6 +25,10 @@ CLASS(Container) EXTENDS(Item)
        ATTRIB(Container, lastChild, entity, NULL)
        ATTRIB(Container, focusedChild, entity, NULL)
        ATTRIB(Container, shown, float, 0)
+
+       METHOD(Container, enterSubitem, void(entity, entity))
+       METHOD(Container, enterLieSubitem, void(entity, vector, vector, vector, float))
+       METHOD(Container, leaveSubitem, void(entity))
 ENDCLASS(Container)
 .entity nextSibling;
 .entity prevSibling;
@@ -33,9 +37,40 @@ ENDCLASS(Container)
 .vector Container_size;
 .vector Container_fontscale;
 .float Container_alpha;
+.vector Container_save_shift;
+.vector Container_save_scale;
+.vector Container_save_fontscale;
+.float Container_save_alpha;
 #endif
 
 #ifdef IMPLEMENTATION
+void Container_enterSubitem(entity me, entity sub)
+{
+       me.enterLieSubitem(me, sub.Container_origin, sub.Container_size, sub.Container_fontscale, sub.Container_alpha);
+}
+
+void Container_enterLieSubitem(entity me, vector o, vector s, vector f, float a)
+{
+       me.Container_save_shift = draw_shift;
+       me.Container_save_scale = draw_scale;
+       me.Container_save_alpha = draw_alpha;
+       me.Container_save_fontscale = draw_fontscale;
+
+       draw_shift = boxToGlobal(o, draw_shift, draw_scale);
+       draw_scale = boxToGlobalSize(s, draw_scale);
+       if(f != '0 0 0')
+               draw_fontscale = boxToGlobalSize(f, draw_fontscale);
+       draw_alpha *= a;
+}
+
+void Container_leaveSubitem(entity me)
+{
+       draw_shift = me.Container_save_shift;
+       draw_scale = me.Container_save_scale;
+       draw_alpha = me.Container_save_alpha;
+       draw_fontscale = me.Container_save_fontscale;
+}
+
 void Container_showNotify(entity me)
 {
        entity e;
@@ -73,7 +108,7 @@ void Container_setAlphaOf(entity me, entity other, float theAlpha)
        other.Container_alpha = theAlpha;
 }
 
-void Container_resizeNotifyLie(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize, .vector originField, .vector sizeField)
+void Container_resizeNotifyLie(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize, .vector originField, .vector sizeField, .vector fontScaleField)
 {
        entity e;
        vector o, s;
@@ -82,7 +117,9 @@ void Container_resizeNotifyLie(entity me, vector relOrigin, vector relSize, vect
        {
                o = e.originField;
                s = e.sizeField;
+               me.enterLieSubitem(me, o, s, e.fontScaleField, e.Container_alpha);
                e.resizeNotify(e, o, s, boxToGlobal(o, absOrigin, absSize), boxToGlobalSize(s, absSize));
+               me.leaveSubitem(me);
        }
        do
        {
@@ -94,7 +131,9 @@ void Container_resizeNotifyLie(entity me, vector relOrigin, vector relSize, vect
                                d = 1;
                                o = e.originField;
                                s = e.sizeField;
+                               me.enterLieSubitem(me, o, s, e.fontScaleField, e.Container_alpha);
                                e.resizeNotify(e, o, s, boxToGlobal(o, absOrigin, absSize), boxToGlobalSize(s, absSize));
+                               me.leaveSubitem(me);
                        }
        }
        while(d);
@@ -103,7 +142,7 @@ void Container_resizeNotifyLie(entity me, vector relOrigin, vector relSize, vect
 
 void Container_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
-       me.resizeNotifyLie(me, relOrigin, relSize, absOrigin, absSize, Container_origin, Container_size);
+       me.resizeNotifyLie(me, relOrigin, relSize, absOrigin, absSize, Container_origin, Container_size, Container_fontscale);
 }
 
 entity Container_itemFromPoint(entity me, vector pos)
@@ -125,16 +164,8 @@ entity Container_itemFromPoint(entity me, vector pos)
 
 void Container_draw(entity me)
 {
-       vector oldshift;
-       vector oldscale;
-       float oldalpha;
-       vector oldfontscale;
        entity e;
 
-       oldshift = draw_shift;
-       oldscale = draw_scale;
-       oldalpha = draw_alpha;
-       oldfontscale = draw_fontscale;
        me.focusable = 0;
        for(e = me.firstChild; e; e = e.nextSibling)
        {
@@ -142,16 +173,9 @@ void Container_draw(entity me)
                        me.focusable += 1;
                if(e.Container_alpha < 0.003) // can't change color values anyway
                        continue;
-               draw_shift = boxToGlobal(e.Container_origin, oldshift, oldscale);
-               draw_scale = boxToGlobalSize(e.Container_size, oldscale);
-               if(e.Container_fontscale != '0 0 0')
-                       draw_fontscale = boxToGlobalSize(e.Container_fontscale, oldfontscale);
-               draw_alpha *= e.Container_alpha;
+               me.enterSubitem(me, e);
                e.draw(e);
-               draw_shift = oldshift;
-               draw_scale = oldscale;
-               draw_fontscale = oldfontscale;
-               draw_alpha = oldalpha;
+               me.leaveSubitem(me);
        }
 };
 
@@ -163,51 +187,87 @@ void Container_focusLeave(entity me)
 float Container_keyUp(entity me, float scan, float ascii, float shift)
 {
        entity f;
+       float r;
        f = me.focusedChild;
        if(f)
-               return f.keyUp(f, scan, ascii, shift);
+       {
+               me.enterSubitem(me, f);
+               r = f.keyUp(f, scan, ascii, shift);
+               me.leaveSubitem(me);
+               return r;
+       }
        return 0;
 }
 
 float Container_keyDown(entity me, float scan, float ascii, float shift)
 {
        entity f;
+       float r;
        f = me.focusedChild;
        if(f)
-               return f.keyDown(f, scan, ascii, shift);
+       {
+               me.enterSubitem(me, f);
+               r = f.keyDown(f, scan, ascii, shift);
+               me.leaveSubitem(me);
+               return r;
+       }
        return 0;
 }
 
 float Container_mouseMove(entity me, vector pos)
 {
        entity f;
+       float r;
        f = me.focusedChild;
        if(f)
-               return f.mouseMove(f, globalToBox(pos, f.Container_origin, f.Container_size));
+       {
+               me.enterSubitem(me, f);
+               r = f.mouseMove(f, globalToBox(pos, f.Container_origin, f.Container_size));
+               me.leaveSubitem(me);
+               return r;
+       }
        return 0;
 }
 float Container_mousePress(entity me, vector pos)
 {
        entity f;
+       float r;
        f = me.focusedChild;
        if(f)
-               return f.mousePress(f, globalToBox(pos, f.Container_origin, f.Container_size));
+       {
+               me.enterSubitem(me, f);
+               r = f.mousePress(f, globalToBox(pos, f.Container_origin, f.Container_size));
+               me.leaveSubitem(me);
+               return r;
+       }
        return 0;
 }
 float Container_mouseDrag(entity me, vector pos)
 {
        entity f;
+       float r;
        f = me.focusedChild;
        if(f)
-               return f.mouseDrag(f, globalToBox(pos, f.Container_origin, f.Container_size));
+       {
+               me.enterSubitem(me, f);
+               r = f.mouseDrag(f, globalToBox(pos, f.Container_origin, f.Container_size));
+               me.leaveSubitem(me);
+               return r;
+       }
        return 0;
 }
 float Container_mouseRelease(entity me, vector pos)
 {
        entity f;
+       float r;
        f = me.focusedChild;
        if(f)
-               return f.mouseRelease(f, globalToBox(pos, f.Container_origin, f.Container_size));
+       {
+               me.enterSubitem(me, f);
+               r = f.mouseRelease(f, globalToBox(pos, f.Container_origin, f.Container_size));
+               me.leaveSubitem(me);
+               return r;
+       }
        return 0;
 }
 
index 5a6bb1c69745efc4d67333b73b08a99226f29b15..7ed6e4f68ef82daf3b33821aba270e691eba3a18 100644 (file)
@@ -22,6 +22,7 @@ CLASS(Label) EXTENDS(Item)
        ATTRIB(Label, disabledAlpha, float, 0.3)
        ATTRIB(Label, textEntity, entity, NULL)
        ATTRIB(Label, allowWrap, float, 0)
+       ATTRIB(Label, recalcPos, float, 0)
 ENDCLASS(Label)
 #endif
 
@@ -33,7 +34,7 @@ string Label_toString(entity me)
 void Label_setText(entity me, string txt)
 {
        me.text = txt;
-       me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(draw_TextWidth(me.text, me.allowColors, me.realFontSize), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft;
+       me.recalcPos = 1;
 }
 void Label_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
@@ -45,8 +46,9 @@ void Label_resizeNotify(entity me, vector relOrigin, vector relSize, vector absO
                me.keepspaceLeft = me.marginLeft * me.realFontSize_x;
        if(me.marginRight)
                me.keepspaceRight = me.marginRight * me.realFontSize_x;
-       me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(draw_TextWidth(me.text, me.allowColors, me.realFontSize), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft;
        me.realOrigin_y = 0.5 * (1 - me.realFontSize_y);
+       me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(draw_TextWidth(me.text, me.allowColors, me.realFontSize), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft;
+       me.recalcPos = 0;
 }
 void Label_configureLabel(entity me, string txt, float sz, float algn)
 {
@@ -64,10 +66,17 @@ void Label_draw(entity me)
        if(me.textEntity)
        {
                t = me.textEntity.toString(me.textEntity);
-               me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(draw_TextWidth(t, 0, me.realFontSize), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft;
+               me.recalcPos = 1;
        }
        else
                t = me.text;
+
+       if(me.recalcPos)
+               me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(draw_TextWidth(t, me.allowColors, me.realFontSize), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft;
+       me.recalcPos = 0;
+
+       //if(me.text == "Bookmark")
+       //      draw_Fill(me.realOrigin, '0 1 0' + '1 0 0' * draw_TextWidth(t, me.allowColors, me.realFontSize), '1 0 1', 1);
        
        if(me.fontSize)
                if(t)
index 4bc2fb9bdea80ba65477c1cc502f67d264a03a52..82bd6f62b8cdf1284d16b6df0a3d4c7ae7994a32 100644 (file)
@@ -52,6 +52,7 @@ void DialogCloseButton_Click(entity button, entity tab); // assumes a button has
 
 .vector ModalController_initialSize;
 .vector ModalController_initialOrigin;
+.vector ModalController_initialFontScale;
 .float ModalController_initialAlpha;
 .vector ModalController_buttonSize;
 .vector ModalController_buttonOrigin;
@@ -97,7 +98,7 @@ void DialogCloseButton_Click(entity button, entity tab)
 
 void ModalController_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
-       me.resizeNotifyLie(me, relOrigin, relSize, absOrigin, absSize, ModalController_initialOrigin, ModalController_initialSize);
+       me.resizeNotifyLie(me, relOrigin, relSize, absOrigin, absSize, ModalController_initialOrigin, ModalController_initialSize, ModalController_initialFontScale);
 }
 
 void ModalController_switchState(entity me, entity other, float state, float skipAnimation)
@@ -140,6 +141,7 @@ void ModalController_draw(entity me)
        float df; // animation step size
        float prevFactor, targetFactor;
        vector targetOrigin, targetSize; float targetAlpha;
+       vector fs;
        animating = 0;
 
        for(e = me.firstChild; e; e = e.nextSibling)
@@ -216,7 +218,9 @@ void ModalController_draw(entity me)
                // --> (maxima)
                // o' = (to * (f - f_prev) + o * (1 - f)) / (1 - f_prev)
 
-               e.Container_fontscale = globalToBoxSize(e.Container_size, e.ModalController_initialSize);
+               fs = globalToBoxSize(e.Container_size, e.ModalController_initialSize);
+               e.Container_fontscale_x = fs_x * e.ModalController_initialFontScale_x;
+               e.Container_fontscale_y = fs_y * e.ModalController_initialFontScale_y;
        }
        if(animating || !me.focused)
                me.setFocus(me, NULL);
@@ -242,9 +246,12 @@ void ModalController_addTab(entity me, entity other, entity tabButton)
 void ModalController_addItem(entity me, entity other, vector theOrigin, vector theSize, float theAlpha)
 {
        SUPER(ModalController).addItem(me, other, theOrigin, theSize, (other == me.firstChild) ? theAlpha : 0);
+       other.ModalController_initialFontScale = other.Container_fontscale;
        other.ModalController_initialSize = other.Container_size;
        other.ModalController_initialOrigin = other.Container_origin;
        other.ModalController_initialAlpha = theAlpha; // hope Container never modifies this
+       if(other.ModalController_initialFontScale == '0 0 0')
+               other.ModalController_initialFontScale = '1 1 0';
 }
 
 void ModalController_showChild(entity me, entity other, vector theOrigin, vector theSize, float skipAnimation)
index c9232b192d62b3d40b97cb460288f8cd4deb6a67..c43f44f509f38b9ee7cd2f902dfcc59fb949e885 100644 (file)
@@ -35,6 +35,7 @@ void ExposeeCloseButton_Click(entity button, entity other); // un-exposees the c
 #ifdef IMPLEMENTATION
 
 .vector Nexposee_initialSize;
+.vector Nexposee_initialFontScale;
 .vector Nexposee_initialOrigin;
 .float Nexposee_initialAlpha;
 
@@ -61,7 +62,7 @@ void ExposeeCloseButton_Click(entity button, entity other)
 void Nexposee_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
        me.calc(me);
-       me.resizeNotifyLie(me, relOrigin, relSize, absOrigin, absSize, Nexposee_initialOrigin, Nexposee_initialSize);
+       me.resizeNotifyLie(me, relOrigin, relSize, absOrigin, absSize, Nexposee_initialOrigin, Nexposee_initialSize, Nexposee_initialFontScale);
 }
 
 void Nexposee_Calc_Scale(entity me, float scale)
@@ -141,6 +142,7 @@ void Nexposee_draw(entity me)
        float a0;
        entity e;
        float f;
+       vector fs;
 
        if(me.animationState == -1)
        {
@@ -203,7 +205,9 @@ void Nexposee_draw(entity me)
                }
                me.setAlphaOf(me, e, e.Container_alpha * (1 - f) + a * f);
 
-               e.Container_fontscale = globalToBoxSize(e.Container_size, e.Nexposee_initialSize);
+               fs = globalToBoxSize(e.Container_size, e.Nexposee_initialSize);
+               e.Container_fontscale_x = fs_x * e.Nexposee_initialFontScale_x;
+               e.Container_fontscale_y = fs_y * e.Nexposee_initialFontScale_y;
        }
 
        SUPER(Nexposee).draw(me);
@@ -338,9 +342,12 @@ float Nexposee_keyDown(entity me, float scan, float ascii, float shift)
 void Nexposee_addItem(entity me, entity other, vector theOrigin, vector theSize, float theAlpha)
 {
        SUPER(Nexposee).addItem(me, other, theOrigin, theSize, theAlpha);
+       other.Nexposee_initialFontScale = other.Container_fontscale;
        other.Nexposee_initialSize = other.Container_size;
        other.Nexposee_initialOrigin = other.Container_origin;
        other.Nexposee_initialAlpha = other.Container_alpha;
+       if(other.Nexposee_initialFontScale == '0 0 0')
+               other.Nexposee_initialFontScale = '1 1 0';
 }
 
 void Nexposee_focusEnter(entity me)
index 00a056fcadc08ec838dd0bb956b96b3efdb36027..df3bd084a5ec4633be91cd4a651b598c9f092974 100644 (file)
@@ -25,20 +25,20 @@ void XonoticInputSettingsTab_fill(entity me)
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Key bindings:"));
        me.TR(me);
-               me.TD(me, me.rows - 2, 3, kb = makeXonoticKeyBinder());
+               me.TD(me, me.rows - 2, 3.3, kb = makeXonoticKeyBinder());
        me.gotoRC(me, me.rows - 1, 0);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticButton("Change key...", '0 0 0'));
+               me.TD(me, 1, 1.1, e = makeXonoticButton("Change key...", '0 0 0'));
                        e.onClick = KeyBinder_Bind_Change;
                        e.onClickEntity = kb;
                        kb.keyGrabButton = e;
-               me.TD(me, 1, 1, e = makeXonoticButton("Edit...", '0 0 0'));
+               me.TD(me, 1, 1.1, e = makeXonoticButton("Edit...", '0 0 0'));
                        e.onClick = KeyBinder_Bind_Edit;
                        e.onClickEntity = kb;
                        kb.userbindEditButton = e;
                        kb.userbindEditDialog = main.userbindEditDialog;
                        main.userbindEditDialog.keybindBox = kb;
-               me.TD(me, 1, 1, e = makeXonoticButton("Clear", '0 0 0'));
+               me.TD(me, 1, 1.1, e = makeXonoticButton("Clear", '0 0 0'));
                        e.onClick = KeyBinder_Bind_Clear;
                        e.onClickEntity = kb;
 
index bb16e0888956ca61d830a2cece4b2a5374cffd63..2eb51755dca6027427873bc4aabe7719fac22f3c 100644 (file)
@@ -297,7 +297,8 @@ void XonoticKeyBinder_drawListBoxItem(entity me, float i, vector absSize, float
                                theAlpha *= SKINALPHA_DISABLED;
        }
 
-       draw_Text(me.realUpperMargin * eY + extraMargin * eX, descr, me.realFontSize, theColor, theAlpha, 0);
+       s = draw_TextShortenToWidth(descr, me.columnFunctionSize, 0, me.realFontSize);
+       draw_Text(me.realUpperMargin * eY + extraMargin * eX, s, me.realFontSize, theColor, theAlpha, 0);
        if(func != "")
        {
                n = tokenize(findkeysforcommand(func)); // uses '...' strings
diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh
new file mode 100644 (file)
index 0000000..36334b2
--- /dev/null
@@ -0,0 +1,3 @@
+float autocvar_sv_cheats;
+float autocvar_g_bastet;
+var float autocvar_g_movement_highspeed = 1;
index 940782c8239d9538f474405d87d7b21f967dc447..3ef50481dc5eb785e6cf2d60a0d26c47078b9436 100644 (file)
@@ -136,7 +136,8 @@ void bot_setnameandstuff()
                        prio = 1;
                        FOR_EACH_CLIENT(p)
                        {
-                               if(strcat(prefix, s, suffix) == p.netname)
+                               if(clienttype(p) == CLIENTTYPE_BOT)
+                               if(s == p.cleanname)
                                {
                                        prio = 0;
                                        break;
@@ -200,8 +201,6 @@ void bot_setnameandstuff()
        else
                name = bot_name;
 
-       self.cleanname = strzone(name);
-
        // number bots with identical names
        float i;
        i = 0;
@@ -212,7 +211,11 @@ void bot_setnameandstuff()
                                ++i;
        }
        if (i)
-               name = strcat(name, "(", ftos(i), ")");
+               self.netname = self.netname_freeme = strzone(strcat(prefix, name, "(", ftos(i), ")", suffix));
+       else
+               self.netname = self.netname_freeme = strzone(strcat(prefix, name, suffix));
+
+       self.cleanname = strzone(name);
 
        // pick the model and skin
        if(substring(bot_model, -4, 1) != ".")
@@ -220,8 +223,6 @@ void bot_setnameandstuff()
        self.playermodel = self.playermodel_freeme = strzone(strcat("models/player/", bot_model));
        self.playerskin = self.playerskin_freeme = strzone(bot_skin);
 
-       self.netname = self.netname_freeme = strzone(strcat(prefix, name, suffix));
-
        self.cvar_cl_accuracy_data_share = 1;  // share the bots weapon accuracy data with the world
        self.cvar_cl_accuracy_data_receive = 0;  // don't receive any weapon accuracy data
 };
index 45eab621ea6b83caf327e662ceff0648dc2d09fe..6ef82679444fc021f0e4d53b42bf278333cf9b8f 100644 (file)
@@ -15,7 +15,6 @@ void Drag_MoveDrag(entity from, entity to) { }
 
 .float maycheat;
 float sv_cheats;
-float autocvar_sv_cheats;
 
 #define CHIMPULSE_SPEEDRUN_INIT 30
 #define CHIMPULSE_GIVE_ALL 99
index 3a405c40be8f52fe179c71cb631ec044da90213c..ac6789586793c86387026ffdfbb787d44850cebd 100644 (file)
@@ -641,7 +641,6 @@ void race_send_speedaward_alltimebest(float msg)
 string GetMapname(void);
 float speedaward_lastupdate;
 float speedaward_lastsent;
-var float autocvar_g_movement_highspeed = 1;
 void SV_PlayerPhysics()
 {
        local vector wishvel, wishdir, v;
index 3f14bf3e7ea9eaa12dc459cb2c9e15b36c850494..64226b21b2a3e16d30807a80159fd62a1edab0e5 100644 (file)
@@ -8,7 +8,6 @@ compile with -DTETRIS
 
 #ifdef TETRIS
 
-float autocvar_g_bastet;
 .vector tet_org;
 
 float tet_vs_current_id;
index d1d0d1d3af9677dc9f6470d359a82707ee8f7b9c..c174177b2002cf0251ed6bc05d8762592f7c0b24 100644 (file)
@@ -6,6 +6,7 @@ pre-builtins.qh
 builtins.qh
 extensions.qh
 post-builtins.qh
+autocvars.qh
 
 ../warpzonelib/anglestransform.qh
 ../warpzonelib/mathlib.qh
index 8f2de4e8ce27b777624ea583860d081df599e830..4427320586988352ab039c04810e2fbeeced5fdf 100644 (file)
@@ -270,7 +270,7 @@ float W_BallisticBullet_LeaveSolid(entity e, vector vel, float constant)
 
        self.W_BallisticBullet_LeaveSolid_origin = trace_endpos;
 
-       dst = vlen(trace_endpos - self.origin);
+       dst = max(cvar("g_ballistics_mindistance"), vlen(trace_endpos - self.origin));
        // E(s) = E0 - constant * s, constant = area of bullet circle * material constant / mass
        Es_m = E0_m - constant * dst;
        if(Es_m <= 0)
index 773e90d5ecd655752f4fa02ca10ac2e36f951361..e52c0d7ce8e328c03ac41a7e4b7c187a603b1ba9 100644 (file)
@@ -34,7 +34,6 @@ void WarpZone_Read(float isnew)
        WarpZone_SetUp(self, self.enemy.oldorigin, self.enemy.avelocity, self.oldorigin, self.avelocity);
 
        // engine currently wants this
-       self.avelocity = AnglesTransform_TurnDirectionFR(self.avelocity);
        self.drawmask = MASK_NORMAL;
 
        // link me
@@ -43,14 +42,6 @@ void WarpZone_Read(float isnew)
        setsize(self, self.mins, self.maxs);
 }
 
-vector WarpZone_Camera_camera_transform(vector org, vector ang)
-{
-       // a fixed camera view
-       trace_endpos = self.oldorigin;
-       makevectors(self.avelocity);
-       return self.oldorigin;
-}
-
 void WarpZone_Camera_Read(float isnew)
 {
        self.classname = "func_warpzone_camera";
@@ -72,9 +63,11 @@ void WarpZone_Camera_Read(float isnew)
        self.avelocity_y = ReadCoord();
        self.avelocity_z = ReadCoord();
 
+       // common stuff
+       WarpZone_Camera_SetUp(self, self.oldorigin, self.avelocity);
+
        // engine currently wants this
        self.drawmask = MASK_NORMAL;
-       self.camera_transform = WarpZone_Camera_camera_transform;
 
        // link me
        //setmodel(self, self.model);
index 3f6bb10a2ebe872b77bc88e45f44558beced4bb1..5cf155642bd6019d1d4587f0881093a7466171ca 100644 (file)
@@ -55,6 +55,21 @@ void WarpZone_SetUp(entity e, vector my_org, vector my_ang, vector other_org, ve
        e.camera_transform = WarpZone_camera_transform;
 }
 
+vector WarpZone_Camera_camera_transform(vector org, vector ang)
+{
+       // a fixed camera view
+       trace_endpos = self.warpzone_origin;
+       makevectors(self.warpzone_angles);
+       return self.warpzone_origin;
+}
+
+void WarpZone_Camera_SetUp(entity e, vector my_org, vector my_ang) // we assume that e.oldorigin and e.avelocity point to view origin and direction
+{
+       e.warpzone_origin = my_org;
+       e.warpzone_angles = my_ang;
+       e.camera_transform = WarpZone_Camera_camera_transform;
+}
+
 .entity enemy;
 
 vector WarpZoneLib_BoxTouchesBrush_mins;
@@ -185,6 +200,7 @@ void WarpZone_TraceBox_ThroughZone(vector org, vector mi, vector ma, vector end,
                if(--i < 1)
                {
                        dprint("Too many warpzones in sequence, aborting trace.\n");
+                       trace_ent = world;
                        break;
                }
                tracebox(org, mi, ma, end, nomonsters, forent);
@@ -201,6 +217,7 @@ void WarpZone_TraceBox_ThroughZone(vector org, vector mi, vector ma, vector end,
                if(trace_ent == wz)
                {
                        dprint("I transformed into the same zone again, wtf, aborting the trace\n");
+                       trace_ent = world;
                        break;
                }
                wz = trace_ent;
@@ -266,6 +283,7 @@ void WarpZone_TraceToss_ThroughZone(entity e, entity forent, entity zone, WarpZo
                if(--i < 1)
                {
                        dprint("Too many warpzones in sequence, aborting trace.\n");
+                       trace_ent = world;
                        break;
                }
                tracetoss(e, forent);
@@ -282,6 +300,7 @@ void WarpZone_TraceToss_ThroughZone(entity e, entity forent, entity zone, WarpZo
                if(trace_ent == wz)
                {
                        dprint("I transformed into the same zone again, wtf, aborting the trace\n");
+                       trace_ent = world;
                        break;
                }
                wz = trace_ent;
index f2b3581887536234d6614690906e444dd27f2bd9..c156299c6967c96bddf44661b8c1f32f6fe203c3 100644 (file)
@@ -300,6 +300,7 @@ void WarpZoneCamera_InitStep_FindTarget()
                error("Camera with nonexisting target");
                return;
        }
+       WarpZone_Camera_SetUp(self, self.enemy.origin, self.enemy.angles);
 }
 
 void WarpZone_InitStep_UpdateTransform()
@@ -393,21 +394,29 @@ void WarpZone_InitStep_ClearTarget()
        self.enemy = world;
 }
 
+entity warpzone_first; .entity warpzone_next;
 void WarpZone_InitStep_FindTarget()
 {
        float i;
        entity e, e2;
 
+       if(self.enemy)
+               return;
+
        // this way only one of the two ents needs to target
        if(self.target != "")
        {
+               self.enemy = self; // so the if(!e.enemy) check also skips self, saves one IF
+
                e2 = world;
-               for(e = world; (e = find(e, targetname, self.target)); )
+               for(e = world, i = 0; (e = find(e, targetname, self.target)); )
                        if(!e.enemy)
-                               if(random() * ++i < 1)
-                                       e2 = e;
+                               if(e.classname == self.classname) // possibly non-warpzones may use the same targetname!
+                                       if(random() * ++i < 1)
+                                               e2 = e;
                if(!e2)
                {
+                       self.enemy = world;
                        error("Warpzone with non-existing target");
                        return;
                }
@@ -537,7 +546,7 @@ void WarpZone_StartFrame()
                WarpZone_StoreProjectileData(e);
 }
 
-void target_warpzone_reconnect_use()
+void trigger_warpzone_reconnect_use()
 {
        entity e;
        e = self;
@@ -555,7 +564,12 @@ void target_warpzone_reconnect_use()
        self = e;
 }
 
-void trigger_warpzone_reconnect()
+void spawnfunc_trigger_warpzone_reconnect()
+{
+       self.use = trigger_warpzone_reconnect_use;
+}
+
+void spawnfunc_target_warpzone_reconnect()
 {
-       self.use = target_warpzone_reconnect_use;
+       spawnfunc_trigger_warpzone_reconnect(); // both names make sense here :(
 }
index 2dec76c772bcf12ee1e6e6d2fcbb03bb9f7bae6c..b595010c73ab57ffbff743b66feadbb054507346 100644 (file)
--- a/quake.rc
+++ b/quake.rc
@@ -4,9 +4,8 @@ exec data/campaign.cfg
 exec config_update.cfg
 exec autoexec.cfg
 stuffcmds
-exec loadfonts.cfg
 //startdemos demos/demo1 demos/demo2 demos/demo3
 //startdemos
 //play announcer/male/welcome.ogg
 
-//exec font-dejavu.cfg
+exec font-nimbussansl.cfg
diff --git a/scripts/shaderlist.txt b/scripts/shaderlist.txt
new file mode 100644 (file)
index 0000000..8a7b04a
--- /dev/null
@@ -0,0 +1,15 @@
+electro
+fireball
+flags
+hlac
+model-common
+onslaught
+portals
+pyria
+shotgun
+spiderbot
+teamfx
+tree
+tuba
+turrets
+weapons
index b707d7f583c8975b60a639d0a53be418ff2de2b4..6d719e6bcf91efe4d7d2a8013334d8182ff3a0bf 100644 (file)
Binary files a/textures/campingrifle.tga and b/textures/campingrifle.tga differ
index b319739c930af84fa541b686c6ffbf66a6ece894..28bd453d6d3351d405fd6010033094c11926e7fd 100644 (file)
Binary files a/textures/campingrifle_bump.tga and b/textures/campingrifle_bump.tga differ
index 0e0156ecdae297b4c1fa5687808dbbbf327161e4..7f4b0326dd1399d83b4246ab7c63b0c7c4504f9b 100644 (file)
Binary files a/textures/campingrifle_gloss.tga and b/textures/campingrifle_gloss.tga differ
index d6f1f8b0e024895561fd1bfe065749a252862334..1fe74b161d971d7c2077766f8408139f32be58ef 100644 (file)
Binary files a/textures/electro.tga and b/textures/electro.tga differ
index d5f259281391311595a9c5907502d2b2daa3efa7..d506dcbb0ad164e50b1afa46d1ab82ac5510c5b0 100644 (file)
Binary files a/textures/electro_gloss.tga and b/textures/electro_gloss.tga differ
index 085f0b069d5acabd35f95c06d41997e66eca300c..91736effd5bc035d29967a7d367dd015d55ce784 100644 (file)
Binary files a/textures/electro_glow.tga and b/textures/electro_glow.tga differ
index 54718a6bbda61ffc1e2d8e5d86904889f9d46b90..019abc9ce038b427eda1f71031553806a002b167 100644 (file)
Binary files a/textures/electro_norm.tga and b/textures/electro_norm.tga differ
index 9454d81a532adbc667da3ea1af902bc93cf8eb6c..b8e70848b29e232d91567a59e56ed5f0e6456b77 100644 (file)
Binary files a/textures/electro_pants.tga and b/textures/electro_pants.tga differ
index a68b0fe80c6f362b9f46b2b1e2b897f7b64bcde5..12a331a952ebf5ed2a91430bbda4dc6aa087feba 100644 (file)
Binary files a/textures/glauncher.tga and b/textures/glauncher.tga differ
index 5d9abed0feca9a1df14b2b494fc537c86db360cb..c6add3e6072f7e99e00ccf39f1a3f00d44acafc4 100644 (file)
Binary files a/textures/glauncher_gloss.tga and b/textures/glauncher_gloss.tga differ
index d8131da38accc93b9661593f145857d9a9dcadf3..910eaa1e7210a444e95db474662612e81e922be0 100644 (file)
Binary files a/textures/glauncher_norm.tga and b/textures/glauncher_norm.tga differ
index f750e1d1975f0c6c9717c2271bfa90370de403a9..1f3957e1e2ecc77b4ba4d575d27e0513d7e67ace 100644 (file)
Binary files a/textures/glauncher_pants.tga and b/textures/glauncher_pants.tga differ
index bb8be51b69c5d85895f0b2de9b2a36ffafcd2f49..853e50b69fd29ec75e0c1110324b59d51a3154af 100644 (file)
Binary files a/textures/glauncher_shirt.tga and b/textures/glauncher_shirt.tga differ
index 1a878799d3e8a6d60b8d4993d4a8206ee6b1926a..2b77dd918ec3b9e572f72ff99861a600a79e9f0a 100644 (file)
Binary files a/textures/hagar2.tga and b/textures/hagar2.tga differ
index 7b7d86d6efae3db77af7a864aaad3d51aff6aa29..f4f597a4a004eb04abb677db0e7695048079eb7c 100644 (file)
Binary files a/textures/hagar2_gloss.tga and b/textures/hagar2_gloss.tga differ
index 48f29bf98d86933f061b4a4881ccbae5fc9027ae..9fff206a2252d8dd5b4659f5487a9794384e55bc 100644 (file)
Binary files a/textures/hagar2_glow.tga and b/textures/hagar2_glow.tga differ
index 27178fd4573fb13505881d7bcdd79e3be4337808..145509deb05f62ae567281f98be1f3e55ae36e17 100644 (file)
Binary files a/textures/hagar2_norm.tga and b/textures/hagar2_norm.tga differ
index 44e4bec4fc19a0b15d7917f99b03b4909699cadf..5992dbf962be2b89364f4240b1f6be12857883fc 100644 (file)
Binary files a/textures/hagar2_pants.tga and b/textures/hagar2_pants.tga differ
index b6700dd82639f115ffa0eff132a566087a3669a8..4527f7e31acc1f1fab4ca3dd3f5f61927b114835 100644 (file)
Binary files a/textures/hagar2_shirt.tga and b/textures/hagar2_shirt.tga differ
index 49d17bb4f4c60943f644374cba4989e9f9980f85..c4c6882a20a117012d1f9fd353d361fc01332c1f 100644 (file)
Binary files a/textures/hlac_body.tga and b/textures/hlac_body.tga differ
index b362c1d13c609b011bb386283e976ab2c1581eb5..b1b517bdaeffbcf3b84787b2cd841852d08ed7f8 100644 (file)
Binary files a/textures/hlac_body_gloss.tga and b/textures/hlac_body_gloss.tga differ
index 5387a5d39be149bdd20c7762d33d25d51fe4b600..fb22b9e8363d26a9275756aed2687d79872f1287 100644 (file)
Binary files a/textures/hlac_body_norm.tga and b/textures/hlac_body_norm.tga differ
index b9ff4f1f6718e93da344a2c4b24e32974c5bd68b..32ee034605b015e575aa0cf4e19e796606611e97 100644 (file)
Binary files a/textures/hlac_body_pants.tga and b/textures/hlac_body_pants.tga differ
index 637c977110e5b08ca985d1c6c14c14350d875892..c3bddd150d9ce505f1a8c36003d1e8a6b7b0bc02 100644 (file)
Binary files a/textures/hlac_body_shirt.tga and b/textures/hlac_body_shirt.tga differ
index 5e4f8f291ff2b1d82f6f074baff807fbfcc4477b..aa65f2f555e0e6d97156794ef4941dceb604241c 100644 (file)
Binary files a/textures/hookgun.tga and b/textures/hookgun.tga differ
index ba1b5edcd085c64b098076434d4dde37acc8ba98..484c2c58cb07707c07a077da19129719a98dc306 100644 (file)
Binary files a/textures/hookgun_gloss.tga and b/textures/hookgun_gloss.tga differ
index 33ec9de397625ec5ef35e1ce88ab18a9ae2c365b..625d4771555e829efece1ea15f377370775f1fd5 100644 (file)
Binary files a/textures/hookgun_norm.tga and b/textures/hookgun_norm.tga differ
index 4091e9d6804e88d9c79128dd3d43ae8a1829eac2..327822d4ef625e2b984a4eeafbe187de7cec5b55 100644 (file)
Binary files a/textures/hookgun_pants.tga and b/textures/hookgun_pants.tga differ
index 9a0a9e10339817560a2e3dcc1db9a49ea178b729..240695f03c7f0b2aede35eb56e8c5cca54d2a6c4 100644 (file)
Binary files a/textures/nexgun.tga and b/textures/nexgun.tga differ
index 6e634fafa6b395765dd73a04abcae1c906bda8b8..73088a05220a92570517644cbfcd38316e1b0943 100644 (file)
Binary files a/textures/nexgun_gloss.tga and b/textures/nexgun_gloss.tga differ
index 162895fa53be294951a91e523403f2ea590dde55..c58c009cb814567d8fa656342392b0d4ccea1ba9 100644 (file)
Binary files a/textures/nexgun_glow.tga and b/textures/nexgun_glow.tga differ
index 29fc33bc2c58b267bd29663e5be9243d27bdf014..2dfcf0341abfee2613f50760c6f7d7e394fbdbfd 100644 (file)
Binary files a/textures/nexgun_norm.tga and b/textures/nexgun_norm.tga differ
diff --git a/textures/nexgun_pants.tga b/textures/nexgun_pants.tga
deleted file mode 100644 (file)
index c23cc0c..0000000
Binary files a/textures/nexgun_pants.tga and /dev/null differ
diff --git a/textures/nexgun_reflect.tga b/textures/nexgun_reflect.tga
deleted file mode 100644 (file)
index 86a5dfb..0000000
Binary files a/textures/nexgun_reflect.tga and /dev/null differ
index ca2681a82fbed1e784cc5600f02af3c01cff6710..eea7a6456df2e34212c58031574e88e985fcb045 100644 (file)
Binary files a/textures/nexgun_shirt.tga and b/textures/nexgun_shirt.tga differ
index 55e561a10210fcf8ecfff190bfc5ecda746727b0..cdfd47d42719c02312f54dc43b1b672dce1cd2b8 100644 (file)
Binary files a/textures/shotgun2.tga and b/textures/shotgun2.tga differ
index ef85807342a997b9cd34ce7968d666eb26b81e35..78fdd3167b88c5c890947ee51a6823029e689a3a 100644 (file)
Binary files a/textures/shotgun2_gloss.tga and b/textures/shotgun2_gloss.tga differ
index 16f6b002fa361cb51d6ec4c3afa8f991347c4f28..863f3830b5588939a962f1fbccb5c12cb27b74c7 100644 (file)
Binary files a/textures/shotgun2_glow.tga and b/textures/shotgun2_glow.tga differ
index cff6611f339e874526bcc3a3005442d2f0fc132f..100b3a4ac83f53919cd32de9ba134a7d2ab319db 100644 (file)
Binary files a/textures/shotgun2_norm.tga and b/textures/shotgun2_norm.tga differ
index ea9a7d86d7f36da0f807eed5b04567966df3bdee..442ced63a698906dbc6a1590aefc4e1fda8f98d4 100644 (file)
Binary files a/textures/shotgun2_shirt.tga and b/textures/shotgun2_shirt.tga differ
index 801314a6d82121f00f33e0766e0e4dd2ef78d2a8..10bd39d94b738433bf00628933b5185f9d2f7975 100755 (executable)
@@ -1,10 +1,8 @@
 #!/bin/sh
 
-balance_cfgs="balance25.cfg balanceSamual.cfg balanceXPM.cfg"
-
-countw=`awk '/^seta? g_/ { print $2; }' balance.cfg       | sort -u | tr -d '\r' | md5sum | cut -c 1-32`
-for b in $balance_cfgs; do
-       countb=`awk '/^seta? g_/ { print $2; }' "$b"  | sort -u | tr -d '\r' | md5sum | cut -c 1-32`
+countw=`awk '/^seta? g_/ { print $2; }' balance.cfg       | sort -u | tr -d '\r' | git hash-object --stdin | cut -c 1-32`
+for b in balance*.cfg; do
+       countb=`awk '/^seta? g_/ { print $2; }' "$b"  | sort -u | tr -d '\r' | git hash-object --stdin | cut -c 1-32`
        if [ "$countw" != "$countb" ]; then
                echo "Mismatch between balance.cfg and $b. Aborting."
                exit 1