]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge remote branch 'origin/mrbougo/weaplast_on_spawn'
authorSamual <samual@xonotic.org>
Mon, 26 Sep 2011 00:21:32 +0000 (20:21 -0400)
committerSamual <samual@xonotic.org>
Mon, 26 Sep 2011 00:21:32 +0000 (20:21 -0400)
69 files changed:
balance25.cfg
balanceFruit.cfg
balanceLeeStricklin.cfg
balanceXonotic.cfg
balancetZork.cfg
qcsrc/client/autocvars.qh
qcsrc/client/tuba.qc
qcsrc/common/constants.qh
qcsrc/common/util-pre.qh
qcsrc/menu/xonotic/dialog_settings_audio.c
qcsrc/menu/xonotic/dialog_settings_input.c
qcsrc/server/autocvars.qh
qcsrc/server/bot/scripting.qc
qcsrc/server/cl_client.qc
qcsrc/server/cl_weaponsystem.qc
qcsrc/server/defs.qh
qcsrc/server/g_damage.qc
qcsrc/server/g_hook.qc
qcsrc/server/vehicles/vehicles.qc
qcsrc/server/w_hagar.qc
qcsrc/server/w_seeker.qc
qcsrc/server/w_tuba.qc
qcsrc/server/w_uzi.qc
sound/weapons/tuba_note-1.ogg [deleted file]
sound/weapons/tuba_note-10.ogg [deleted file]
sound/weapons/tuba_note-11.ogg [deleted file]
sound/weapons/tuba_note-12.ogg [deleted file]
sound/weapons/tuba_note-13.ogg [deleted file]
sound/weapons/tuba_note-14.ogg [deleted file]
sound/weapons/tuba_note-15.ogg [deleted file]
sound/weapons/tuba_note-16.ogg [deleted file]
sound/weapons/tuba_note-17.ogg [deleted file]
sound/weapons/tuba_note-18.ogg [deleted file]
sound/weapons/tuba_note-2.ogg [deleted file]
sound/weapons/tuba_note-3.ogg [deleted file]
sound/weapons/tuba_note-4.ogg [deleted file]
sound/weapons/tuba_note-5.ogg [deleted file]
sound/weapons/tuba_note-6.ogg [deleted file]
sound/weapons/tuba_note-7.ogg [deleted file]
sound/weapons/tuba_note-8.ogg [deleted file]
sound/weapons/tuba_note-9.ogg [deleted file]
sound/weapons/tuba_note0.ogg [deleted file]
sound/weapons/tuba_note1.ogg [deleted file]
sound/weapons/tuba_note10.ogg [deleted file]
sound/weapons/tuba_note11.ogg [deleted file]
sound/weapons/tuba_note12.ogg [deleted file]
sound/weapons/tuba_note13.ogg [deleted file]
sound/weapons/tuba_note14.ogg [deleted file]
sound/weapons/tuba_note15.ogg [deleted file]
sound/weapons/tuba_note16.ogg [deleted file]
sound/weapons/tuba_note17.ogg [deleted file]
sound/weapons/tuba_note18.ogg [deleted file]
sound/weapons/tuba_note19.ogg [deleted file]
sound/weapons/tuba_note2.ogg [deleted file]
sound/weapons/tuba_note20.ogg [deleted file]
sound/weapons/tuba_note21.ogg [deleted file]
sound/weapons/tuba_note22.ogg [deleted file]
sound/weapons/tuba_note23.ogg [deleted file]
sound/weapons/tuba_note24.ogg [deleted file]
sound/weapons/tuba_note25.ogg [deleted file]
sound/weapons/tuba_note26.ogg [deleted file]
sound/weapons/tuba_note27.ogg [deleted file]
sound/weapons/tuba_note3.ogg [deleted file]
sound/weapons/tuba_note4.ogg [deleted file]
sound/weapons/tuba_note5.ogg [deleted file]
sound/weapons/tuba_note6.ogg [deleted file]
sound/weapons/tuba_note7.ogg [deleted file]
sound/weapons/tuba_note8.ogg [deleted file]
sound/weapons/tuba_note9.ogg [deleted file]

index 843bd634fdfedb6b7da041a49327245c3dd9f0d8..81381f4638cbc21084ac14e196e476554331e121 100644 (file)
@@ -542,6 +542,8 @@ set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
 set g_balance_hagar_secondary_load 0
 set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
 set g_balance_hagar_secondary_load_max 4
 set g_balance_hagar_secondary_load_hold 0
 set g_balance_hagar_secondary_load_releasedeath 1
@@ -695,6 +697,7 @@ set g_balance_tuba_damage 5
 set g_balance_tuba_edgedamage 0
 set g_balance_tuba_radius 200
 set g_balance_tuba_force 40
+set g_balance_tuba_pitchstep 6
 // }}}
 // {{{ fireball
 set g_balance_fireball_primary_ammo 40
index 5a078e44cfe7dd5a7e10664f51ed33b5e288cf35..9e73743e9d6bf5a695c860dad883467d0c4ad8f3 100644 (file)
@@ -542,6 +542,8 @@ set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
 set g_balance_hagar_secondary_load 0
 set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
 set g_balance_hagar_secondary_load_max 4
 set g_balance_hagar_secondary_load_hold 0
 set g_balance_hagar_secondary_load_releasedeath 1
@@ -695,6 +697,7 @@ set g_balance_tuba_damage 5
 set g_balance_tuba_edgedamage 0
 set g_balance_tuba_radius 200
 set g_balance_tuba_force 40
+set g_balance_tuba_pitchstep 6
 // }}}
 // {{{ fireball
 set g_balance_fireball_primary_ammo 40
index 02e804e798ed7aca25363201c6c120632cfc917a..b73360f204f479af25598a4ecb83559a3abd4a94 100644 (file)
@@ -542,6 +542,8 @@ set g_balance_hagar_primary_ammo 2
 set g_balance_hagar_secondary 1
 set g_balance_hagar_secondary_load 0
 set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
 set g_balance_hagar_secondary_load_max 4
 set g_balance_hagar_secondary_load_hold 0
 set g_balance_hagar_secondary_load_releasedeath 1
@@ -695,6 +697,7 @@ set g_balance_tuba_damage 5
 set g_balance_tuba_edgedamage 0
 set g_balance_tuba_radius 200
 set g_balance_tuba_force 40
+set g_balance_tuba_pitchstep 6
 // }}}
 // {{{ fireball
 set g_balance_fireball_primary_ammo 5
index 0c46451f4a2a1b1929d8a03104f11a4a228e2047..182e66cb1ccb486be92967163d2036a128321033 100644 (file)
@@ -144,7 +144,7 @@ set g_balance_fuel_limit 999
 // }}}
 
 // {{{ misc
-set g_balance_selfdamagepercent 0.75
+set g_balance_selfdamagepercent 0.65
 set g_balance_weaponswitchdelay 0.15
 set g_weaponspeedfactor 1 "weapon projectile speed multiplier"
 set g_weaponratefactor 1 "weapon fire rate multiplier"
@@ -286,13 +286,13 @@ set g_balance_uzi_burst_force 20
 set g_balance_uzi_burst_ammo 3
 
 set g_balance_uzi_first 1
-set g_balance_uzi_first_damage 16
+set g_balance_uzi_first_damage 14
 set g_balance_uzi_first_force 5
 set g_balance_uzi_first_spread 0.03
-set g_balance_uzi_first_refire 0.2
+set g_balance_uzi_first_refire 0.4
 set g_balance_uzi_first_ammo 1
 
-set g_balance_uzi_sustained_damage 14
+set g_balance_uzi_sustained_damage 12
 set g_balance_uzi_sustained_force 5
 set g_balance_uzi_sustained_spread 0.04
 set g_balance_uzi_sustained_refire 0.1
@@ -480,8 +480,8 @@ set g_balance_crylink_reload_time 2
 // {{{ nex
 set g_balance_nex_primary_damage 90
 set g_balance_nex_primary_force 400
-set g_balance_nex_primary_refire 1.25
-set g_balance_nex_primary_animtime 0.3
+set g_balance_nex_primary_refire 1.5
+set g_balance_nex_primary_animtime 0.4
 set g_balance_nex_primary_ammo 6
 set g_balance_nex_primary_damagefalloff_mindist 0 // 1000    For tZork ;3
 set g_balance_nex_primary_damagefalloff_maxdist 0 // 3000
@@ -530,11 +530,11 @@ set g_balance_minstanex_reload_ammo 0 //default: 50
 set g_balance_minstanex_reload_time 2
 // }}}
 // {{{ hagar
-set g_balance_hagar_primary_damage 30
-set g_balance_hagar_primary_edgedamage 15
+set g_balance_hagar_primary_damage 25
+set g_balance_hagar_primary_edgedamage 12.5
 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_radius 60
+set g_balance_hagar_primary_spread 0.04
 set g_balance_hagar_primary_speed 2000
 set g_balance_hagar_primary_lifetime 5
 set g_balance_hagar_primary_refire 0.15
@@ -542,6 +542,8 @@ set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
 set g_balance_hagar_secondary_load 1
 set g_balance_hagar_secondary_load_speed 0.5
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
 set g_balance_hagar_secondary_load_max 4
 set g_balance_hagar_secondary_load_hold 1
 set g_balance_hagar_secondary_load_releasedeath 0
@@ -550,7 +552,7 @@ set g_balance_hagar_secondary_damage 40
 set g_balance_hagar_secondary_edgedamage 20
 set g_balance_hagar_secondary_force 50
 set g_balance_hagar_secondary_radius 80
-set g_balance_hagar_secondary_spread 0.05
+set g_balance_hagar_secondary_spread 0.06
 set g_balance_hagar_secondary_speed 2000
 set g_balance_hagar_secondary_lifetime_min 10
 set g_balance_hagar_secondary_lifetime_rand 0
@@ -563,7 +565,7 @@ set g_balance_hagar_reload_time 2
 set g_balance_rocketlauncher_damage 80
 set g_balance_rocketlauncher_edgedamage 40
 set g_balance_rocketlauncher_force 400
-set g_balance_rocketlauncher_radius 100
+set g_balance_rocketlauncher_radius 110
 set g_balance_rocketlauncher_speed 1500
 set g_balance_rocketlauncher_speedaccel 1500
 set g_balance_rocketlauncher_speedstart 800
@@ -581,7 +583,7 @@ set g_balance_rocketlauncher_guidedelay 0.2 // delay before guiding kicks in
 set g_balance_rocketlauncher_guidestop 0 // stop guiding when firing again
 set g_balance_rocketlauncher_remote_damage 70
 set g_balance_rocketlauncher_remote_edgedamage 35
-set g_balance_rocketlauncher_remote_radius 100
+set g_balance_rocketlauncher_remote_radius 110
 set g_balance_rocketlauncher_remote_force 400
 set g_balance_rocketlauncher_reload_ammo 0 //default: 25
 set g_balance_rocketlauncher_reload_time 2
@@ -695,6 +697,7 @@ set g_balance_tuba_damage 5
 set g_balance_tuba_edgedamage 0
 set g_balance_tuba_radius 200
 set g_balance_tuba_force 40
+set g_balance_tuba_pitchstep 6
 // }}}
 // {{{ fireball // this is a superweapon -- lets make it behave as one. 
 set g_balance_fireball_primary_ammo 20
index 57c4996871f3fc2fa46719ec04ac9e46cdf1aa75..fd229feb9f394aa8157e749d210ab8cd0b751e57 100644 (file)
@@ -541,6 +541,8 @@ set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
 set g_balance_hagar_secondary_load 0
 set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
 set g_balance_hagar_secondary_load_max 4
 set g_balance_hagar_secondary_load_hold 0
 set g_balance_hagar_secondary_load_releasedeath 1
@@ -694,6 +696,7 @@ set g_balance_tuba_damage 5
 set g_balance_tuba_edgedamage 0
 set g_balance_tuba_radius 200
 set g_balance_tuba_force 40
+set g_balance_tuba_pitchstep 6
 // }}}
 // {{{ fireball
 set g_balance_fireball_primary_ammo 40
index 8f3372a6c821726040637f3abdc07d8e351a21f3..7451ee7c300a13b54d9f0bb56f1898798434d23e 100644 (file)
@@ -121,6 +121,7 @@ float autocvar_g_balance_damagepush_speedfactor;
 float autocvar_g_balance_tuba_attenuation;
 float autocvar_g_balance_tuba_fadetime;
 float autocvar_g_balance_tuba_volume;
+float autocvar_g_balance_tuba_pitchstep;
 float autocvar_g_warmup_limit;
 var float autocvar_g_waypointsprite_uppercase = 1;
 var float autocvar_g_waypointsprite_alpha = 1;
index 04114d324ab4b9c31590b9c9056bf15f9d71f790..379f9c675057222e439e4d2077b1a67fb2a4216f 100644 (file)
@@ -1,6 +1,77 @@
-#define TUBA_STARTNOTE(n) strcat((checkextension("DP_SND_SETPARAMS") ? "weapons/tuba_loopnote" : "weapons/tuba_note"), ftos(n), ".wav")
-.float cnt; // note
+#define TUBA_MIN -18
+#define TUBA_MAX  27
+
+#define TUBA_STARTNOTE(n) strcat("weapons/tuba_loopnote", ftos(n), ".wav")
+.float note; // note
 .float attenuate; // if set, attenuate it
+.float cnt; // current volume
+.float count; // initial volume
+
+float Tuba_PitchStep;
+
+void tubasound(entity e, float restart)
+{
+       string snd1;
+
+       snd1 = string_null;
+
+       if(Tuba_PitchStep)
+       {
+               string snd2;
+               float f1, f2;
+               float p1, p2;
+               float m;
+
+               f1 = 1;
+               p1 = 1;
+               snd2 = string_null;
+               f2 = 0;
+               p2 = 1;
+
+               m = mod(e.note, Tuba_PitchStep);
+               if(m)
+               {
+                       if(e.note - m < TUBA_MIN)
+                       {
+                               if(restart)
+                                       snd1 = TUBA_STARTNOTE(e.note - m + Tuba_PitchStep);
+                               p1 = pow(2.0, (m - Tuba_PitchStep) / 12.0);
+                       }
+                       else if(e.note - m + Tuba_PitchStep > TUBA_MAX)
+                       {
+                               if(restart)
+                                       snd1 = TUBA_STARTNOTE(e.note - m);
+                               p1 = pow(2.0, m / 12.0);
+                       }
+                       else
+                       {
+                               if(restart)
+                                       snd1 = TUBA_STARTNOTE(e.note - m);
+                               f1 = 1 - m / Tuba_PitchStep;
+                               p1 = pow(2.0, m / 12.0);
+                               if(restart)
+                                       snd2 = TUBA_STARTNOTE(e.note - m + Tuba_PitchStep);
+                               f2 = m / Tuba_PitchStep;
+                               p2 = pow(2.0, (m - Tuba_PitchStep) / 12.0);
+                       }
+               }
+               else
+               {
+                       if(restart)
+                               snd1 = TUBA_STARTNOTE(e.note);
+               }
+
+               sound7(e, CH_TUBA, snd1, e.cnt * f1, e.attenuate * autocvar_g_balance_tuba_attenuation, 100 * p1, 0);
+               if(f2)
+                       sound7(e.enemy, CH_TUBA, snd2, e.cnt * f2, e.attenuate * autocvar_g_balance_tuba_attenuation, 100 * p2, 0);
+       }
+       else
+       {
+               if(restart)
+                       snd1 = TUBA_STARTNOTE(e.note);
+               sound(e, CH_TUBA, snd1, e.cnt, e.attenuate * autocvar_g_balance_tuba_attenuation);
+       }
+}
 
 void Ent_TubaNote_Think()
 {
@@ -13,22 +84,26 @@ void Ent_TubaNote_Think()
        self.nextthink = time;
        if(self.cnt <= 0)
        {
-               sound(self, CH_SHOTS_SINGLE, "misc/null.wav", 0, 0);
+               sound(self, CH_TUBA, "misc/null.wav", 0, 0);
+               if(self.enemy)
+               {
+                       sound(self.enemy, CH_TUBA, "misc/null.wav", 0, 0);
+                       remove(self.enemy);
+               }
                remove(self);
        }
        else
-               sound(self, CH_SHOTS_SINGLE, "", self.cnt, self.attenuate * autocvar_g_balance_tuba_attenuation);
+       {
+               tubasound(self, 0);
+       }
 }
 
 void Ent_TubaNote_UpdateSound()
 {
        self.enemy.cnt = bound(0, VOL_BASE * autocvar_g_balance_tuba_volume, 1);
        self.enemy.count = self.enemy.cnt;
-#ifdef PITCHSHIFT
-       sound7(self.enemy, CH_SHOTS_SINGLE, TUBA_STARTNOTE(0), self.enemy.cnt, self.enemy.attenuate * autocvar_g_balance_tuba_attenuation, 100 * pow(2.0, self.cnt / 12.0), 0);
-#else
-       sound(self.enemy, CH_SHOTS_SINGLE, TUBA_STARTNOTE(self.cnt), self.enemy.cnt, self.enemy.attenuate * autocvar_g_balance_tuba_attenuation);
-#endif
+       self.enemy.note = self.note;
+       tubasound(self.enemy, 1);
 }
 
 void Ent_TubaNote_StopSound()
@@ -42,13 +117,18 @@ void Ent_TubaNote(float bIsNew)
        float f, n;
        f = ReadByte();
        n = floor(f / 2) - 42;
-       if(n != self.cnt || bIsNew)
+       if(n != self.note || bIsNew)
                if(self.enemy)
                        Ent_TubaNote_StopSound();
        if(!self.enemy)
        {
                self.enemy = spawn();
                self.enemy.classname = "tuba_note";
+               if(Tuba_PitchStep)
+               {
+                       self.enemy.enemy = spawn();
+                       self.enemy.enemy.classname = "tuba_note_2";
+               }
                bIsNew = TRUE;
        }
        if(f & 1)
@@ -58,6 +138,8 @@ void Ent_TubaNote(float bIsNew)
                self.enemy.origin_z = ReadCoord();
                setorigin(self.enemy, self.enemy.origin);
                self.enemy.attenuate = ReadByte();
+               if(self.enemy.enemy)
+                       setorigin(self.enemy.enemy, self.enemy.origin);
        }
        self.think = Ent_TubaNote_StopSound;
        self.entremove = Ent_TubaNote_StopSound;
@@ -65,7 +147,7 @@ void Ent_TubaNote(float bIsNew)
        self.enemy.nextthink = time + 10;
        if(bIsNew)
        {
-               self.cnt = n;
+               self.note = n;
                Ent_TubaNote_UpdateSound();
        }
 }
@@ -73,13 +155,18 @@ void Ent_TubaNote(float bIsNew)
 void Tuba_Precache()
 {
        float i;
-#ifdef PITCHSHIFT
-       precache_sound(TUBA_STARTNOTE(0));
-#else
-       for(i = -18; i <= +27; ++i)
+       Tuba_PitchStep = autocvar_g_balance_tuba_pitchstep;
+       if(Tuba_PitchStep)
+       {
+               if(!checkextension("DP_SND_SOUND7_WIP2") && !checkextension("DP_SND_SOUND7"))
+               {
+                       print("^1NOTE:^7 requested pitch shifting, but not supported by this engine build\n");
+                       Tuba_PitchStep = 0;
+               }
+       }
+       for(i = TUBA_MIN; i <= TUBA_MAX; ++i)
        {
-               precache_sound(TUBA_STARTNOTE(i));
+               if(!Tuba_PitchStep || (mod(i, Tuba_PitchStep) == 0))
+                       precache_sound(TUBA_STARTNOTE(i));
        }
-#endif
-       //precache_sound(""); // we want to change volume of existing sounds
 }
index fe5f9bcd24ea137c4725726344459305501f179c..ebad7a6f045135c320a26046f94bf26245a034d6 100644 (file)
@@ -442,6 +442,7 @@ float CH_WEAPON_B = 5; // only on players and entities
 float CH_PAIN = 6; // only on players and csqc
 float CH_PAIN_SINGLE = 6; // only on players and csqc
 float CH_PLAYER = 7; // only on players and entities
+float CH_TUBA = 5; // only on csqc
 #else
 float CH_INFO = 0;
 float CH_TRIGGER = -3;
@@ -457,6 +458,7 @@ float CH_WEAPON_B = -1;
 float CH_PAIN = -6;
 float CH_PAIN_SINGLE = 6;
 float CH_PLAYER = -7;
+float CH_TUBA = 5;
 #endif
 
 float  ATTN_NONE                               = 0;
index f5633ab3f31dec7546438633407c4feb6edede7a..e61d57fb65e8721660aa369acb81628e20f9abd9 100644 (file)
@@ -2,6 +2,6 @@
 #pragma flag enable lo
 
 #ifndef NOCOMPAT
-# define WORKAROUND_XON010
-# define COMPAT_XON010_CHANNELS
+//# define WORKAROUND_XON010
+//# define COMPAT_XON010_CHANNELS
 #endif
index 69d6af6b01898b0d3370f9217d52a3824ede7ce1..f85c2877cc6f8c82e44be48ed91582eb634eea20 100644 (file)
@@ -87,7 +87,7 @@ void XonoticAudioSettingsTab_fill(entity me)
        me.TR(me);
                me.TDempty(me, 0.2);
                s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_channel1volume");
-               makeMulti(s, "snd_channel5volume"); // legacy
+               makeMulti(s, "snd_channel5volume"); // @!#%'n Tuba
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Weapons:")));
                me.TD(me, 1, 2, s);
                setDependentStringNotEqual(e, "mastervolume", "0");
index 3ebcb69f0bf355e7e1d7740a5b8a920049d1a94c..440d00d8b1aefc0b07d7f555ec7c45a8abb4780e 100644 (file)
@@ -25,8 +25,8 @@ 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.3, kb = makeXonoticKeyBinder());
-       me.gotoRC(me, me.rows - 1, 0);
+               me.TD(me, me.rows - 4, 3.3, kb = makeXonoticKeyBinder());
+       me.gotoRC(me, me.rows - 3, 0);
        me.TR(me);
                me.TD(me, 1, 1.1, e = makeXonoticButton(_("Change key..."), '0 0 0'));
                        e.onClick = KeyBinder_Bind_Change;
index 7b7a3fcef0e66ff00f44a5e2828ead66486fcb69..e9d34ce17e8564ab7b9d683ab3e331a297992adf 100644 (file)
@@ -325,6 +325,8 @@ float autocvar_g_balance_hagar_primary_speed;
 float autocvar_g_balance_hagar_secondary;
 float autocvar_g_balance_hagar_secondary_load;
 float autocvar_g_balance_hagar_secondary_load_speed;
+float autocvar_g_balance_hagar_secondary_load_spread;
+float autocvar_g_balance_hagar_secondary_load_spread_bias;
 float autocvar_g_balance_hagar_secondary_load_max;
 float autocvar_g_balance_hagar_secondary_load_hold;
 float autocvar_g_balance_hagar_secondary_load_releasedeath;
@@ -337,6 +339,8 @@ float autocvar_g_balance_hagar_secondary_lifetime_min;
 float autocvar_g_balance_hagar_secondary_lifetime_rand;
 float autocvar_g_balance_hagar_secondary_radius;
 float autocvar_g_balance_hagar_secondary_refire;
+float autocvar_g_balance_hagar_secondary_speed;
+float autocvar_g_balance_hagar_secondary_spread;
 float autocvar_g_balance_hagar_reload_ammo;
 float autocvar_g_balance_hagar_reload_time;
 float autocvar_g_balance_health_limit;
index e540a438d55f07e88cccb96126ed3830290d46bd..63151cac1b8e845e4be1e26663984dc24661775a 100644 (file)
@@ -21,6 +21,28 @@ void bot_queuecommand(entity bot, string cmdstring)
        }
 
        bufstr_set(bot.bot_cmdqueuebuf, bot.bot_cmdqueuebuf_end, cmdstring);
+
+       // if the command was a "sound" command, precache the sound NOW
+       // this prevents lagging!
+       {
+               float sp;
+               string parm;
+               string cmdstr;
+
+               sp = strstrofs(cmdstr, " ", 0);
+               if(sp < 0)
+               {
+                       parm = "";
+               }
+               else
+               {
+                       parm = substring(cmdstr, sp + 1, -1);
+                       cmdstr = substring(cmdstr, 0, sp);
+               }
+               if(cmdstr == "sound")
+                       precache_sound(cmdstr);
+       }
+
        bot.bot_cmdqueuebuf_end += 1;
 }
 
@@ -131,11 +153,12 @@ entity bot_getplace(string placename)
 #define BOT_CMD_BARRIER         20
 #define BOT_CMD_CONSOLE                        21
 #define BOT_CMD_SOUND                  22
-#define BOT_CMD_WHILE                  23      // TODO: Not implemented yet
-#define BOT_CMD_WEND                   24      // TODO: Not implemented yet
-#define BOT_CMD_CHASE                  25      // TODO: Not implemented yet
+#define BOT_CMD_DEBUG_ASSERT_CANFIRE 23
+#define BOT_CMD_WHILE                  24      // TODO: Not implemented yet
+#define BOT_CMD_WEND                   25      // TODO: Not implemented yet
+#define BOT_CMD_CHASE                  26      // TODO: Not implemented yet
 
-#define BOT_CMD_COUNTER                        23      // Update this value if you add/remove a command
+#define BOT_CMD_COUNTER                        24      // Update this value if you add/remove a command
 
 // NOTE: Following commands should be implemented on the bot ai
 //              If a new command should be handled by the target ai(s) please declare it here
@@ -241,6 +264,9 @@ void bot_commands_init()
        bot_cmd_string[BOT_CMD_SOUND] = "sound";
        bot_cmd_parm_type[BOT_CMD_SOUND] = BOT_CMD_PARAMETER_STRING;
 
+       bot_cmd_string[BOT_CMD_DEBUG_ASSERT_CANFIRE] = "debug_assert_canfire";
+       bot_cmd_parm_type[BOT_CMD_DEBUG_ASSERT_CANFIRE] = BOT_CMD_PARAMETER_FLOAT;
+
        bot_cmds_initialized = TRUE;
 }
 
@@ -448,6 +474,9 @@ void bot_cmdhelp(string scmd)
                        case BOT_CMD_SOUND:
                                print("play sound file at bot location");
                                break;
+                       case BOT_CMD_DEBUG_ASSERT_CANFIRE:
+                               print("verify the state of the weapon entity");
+                               break;
                        default:
                                print("This command has no description yet.");
                                break;
@@ -1066,6 +1095,48 @@ float bot_cmd_sound()
        return CMD_STATUS_FINISHED;
 }
 
+.entity tuba_note;
+float bot_cmd_debug_assert_canfire()
+{
+       float f;
+       f = bot_cmd.bot_cmd_parm_float;
+
+       if(self.weaponentity.state != WS_READY)
+       {
+               if(f)
+               {
+                       self.colormod = '0 8 8';
+                       print("Bot wants to fire, inhibited by weaponentity state\n");
+               }
+       }
+       else if(ATTACK_FINISHED(self) > time)
+       {
+               if(f)
+               {
+                       self.colormod = '8 0 8';
+                       print("Bot wants to fire, inhibited by ATTACK_FINISHED\n");
+               }
+       }
+       else if(self.tuba_note)
+       {
+               if(f)
+               {
+                       self.colormod = '8 0 0';
+                       print("Bot wants to fire, bot still has an active tuba note\n");
+               }
+       }
+       else
+       {
+               if(!f)
+               {
+                       self.colormod = '8 8 0';
+                       print("Bot thinks it has fired, but apparently did not\n");
+               }
+       }
+
+       return CMD_STATUS_FINISHED;
+}
+
 //
 
 void bot_command_executed(float rm)
@@ -1144,12 +1215,16 @@ float bot_execute_commands_once()
 {
        local float status, ispressingkey;
 
-       if(self.deadflag!=DEAD_NO)
-               return 0;
-
        // Find command
        bot_setcurrentcommand();
 
+       // if we have no bot command, better return
+       // old logic kept pressing previously pressed keys, but that has problems
+       // (namely, it means you cannot make a bot "normal" ever again)
+       // to keep a bot walking for a while, use the "wait" bot command
+       if(bot_cmd == world)
+               return FALSE;
+
        // Ignore all commands except continue when the bot is paused
        if(self.bot_exec_status & BOT_EXEC_STATUS_PAUSED)
        if(bot_cmd.bot_cmd_type!=BOT_CMD_CONTINUE)
@@ -1165,9 +1240,6 @@ float bot_execute_commands_once()
        // Keep pressing keys raised by the "presskey" command
        ispressingkey = !!bot_presskeys();
 
-       if(bot_cmd==world)
-               return ispressingkey;
-
        // Handle conditions
        if not(bot_cmd.bot_cmd_type==BOT_CMD_FI||bot_cmd.bot_cmd_type==BOT_CMD_ELSE)
        if(self.bot_cmd_condition_status & CMD_CONDITION_TRUE && self.bot_cmd_condition_status & CMD_CONDITION_FALSE_BLOCK)
@@ -1254,6 +1326,9 @@ float bot_execute_commands_once()
                case BOT_CMD_SOUND:
                        status = bot_cmd_sound();
                        break;
+               case BOT_CMD_DEBUG_ASSERT_CANFIRE:
+                       status = bot_cmd_debug_assert_canfire();
+                       break;
                default:
                        print(strcat("ERROR: Invalid command on queue with id '",ftos(bot_cmd.bot_cmd_type),"'\n"));
                        return 0;
index f14a259c9218d01ddd5d9fd7d7f3941108bf378e..bddb5933233ba91f7d422a85820852276344722e 100644 (file)
@@ -705,6 +705,7 @@ void PutObserverInServer (void)
        self.model = "";
        self.modelindex = 0;
        self.weapon = 0;
+       self.weaponname = "";
        self.switchingweapon = 0;
        self.weaponmodel = "";
        self.weaponentity = world;
@@ -1109,6 +1110,7 @@ void PutClientInServer (void)
                self.switchweapon = w_getbestweapon(self);
                self.cnt = -1; // W_LastWeapon will not complain
                self.weapon = 0;
+               self.weaponname = "";
                self.switchingweapon = 0;
 
                if(!self.alivetime)
index 0b73f36144994867b931c422980d4b348e28348f..af76117fec8f2ae7cdb50f539e9b7c31784decfa 100644 (file)
@@ -293,7 +293,6 @@ vector weapon_adjust = '10 0 -15';
 .vector weapon_morph4origin;
 .vector weapon_morph4angles;
 .float  weapon_morph4time;
-.string weaponname;
 #define QCWEAPONANIMATION_ORIGIN(e) ((weapon_offset_x + e.view_ofs_x) * v_forward - (weapon_offset_y + e.view_ofs_y) * v_right + (weapon_offset_z + e.view_ofs_z) * v_up + weapon_adjust)
 
 /*
@@ -583,9 +582,9 @@ void CL_Weaponentity_Think()
                        self.weaponentity.model = "";
                return;
        }
-       if (self.cnt != self.owner.weapon || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag)
+       if (self.weaponname != self.owner.weaponname || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag)
        {
-               self.cnt = self.owner.weapon;
+               self.weaponname = self.owner.weaponname;
                self.dmg = self.owner.modelindex;
                self.deadflag = self.owner.deadflag;
 
@@ -789,9 +788,9 @@ void CL_ExteriorWeaponentity_Think()
                self.model = "";
                return;
        }
-       if (self.cnt != self.owner.weapon || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag)
+       if (self.weaponname != self.owner.weaponname || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag)
        {
-               self.cnt = self.owner.weapon;
+               self.weaponname = self.owner.weaponname;
                self.dmg = self.owner.modelindex;
                self.deadflag = self.owner.deadflag;
                if (self.owner.weaponname != "")
index 01966039c7e4a5d96742cb0a0ad0c8ab2770c620..bc05d1b04849b05ced40ef7b3ae1a20f0f7c36c8 100644 (file)
@@ -206,6 +206,7 @@ void setanim(entity e, vector anim, float looping, float override, float restart
 //.float weapon; // current weapon
 .float switchweapon; // weapon requested to switch to
 .float switchingweapon; // weapon currently being switched to (is copied from switchweapon once switch is possible)
+.string weaponname; // name of .weapon
 
 .float autoswitch;
 float weapon_action(float wpn, float wrequest);
index 40887ad933c5d61329e18301a41083b253eeae07..994ee260baefb3384a4522de33f146b2d562bcdb 100644 (file)
@@ -543,12 +543,15 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
        }
        else
        {
+               /*
+               skill based bot damage? gtfo. (tZork)
                if (targ.classname == "player")
                if (attacker.classname == "player")
                if (!targ.isbot)
                if (attacker.isbot)
                        damage = damage * bound(0.1, (skill + 5) * 0.1, 1);
-
+        */
+        
                // nullify damage if teamplay is on
                if(deathtype != DEATH_TELEFRAG)
                if(attacker.classname == "player")
index 76faad923281b026a45773f292bfc91854f78789..4f655ca5738220c1dc75da1c95849f347b2cef68 100644 (file)
@@ -296,8 +296,11 @@ void FireGrapplingHook (void)
        if((arena_roundbased && time < warmup) || (time < game_starttime))
                return;
 
-    if(self.freezetag_frozen)
-        return;
+  if(self.freezetag_frozen)
+               return;
+       
+       if(self.vehicle)
+               return;
 
        makevectors(self.v_angle);
 
index d9d77b5f5211957f539c4ee41b1057beec0980a4..6006dcf92edb6f0e2acf0bf3094211e1e4756e39 100644 (file)
@@ -428,6 +428,8 @@ void vehicles_enter()
     if(self.team)
     if(self.team != other.team)
         return;
+        
+    RemoveGrapplingHook(other);
 
     self.vehicle_ammo1   = 0;
     self.vehicle_ammo2   = 0;
index 26d2df69e89507ac3bc7bb8f10690ee96703884f..080eea39e453fe7ed7a7704bc1d6d8aae3321e45 100644 (file)
@@ -118,7 +118,7 @@ void W_Hagar_Attack2_Load_Release (void)
        // time to release the rockets we've loaded
 
        local entity missile;
-       local float counter, shots;
+       local float counter, shots, spread_pershot;
        local vector s;
        vector forward, right, up;
 
@@ -153,7 +153,13 @@ void W_Hagar_Attack2_Load_Release (void)
                setorigin (missile, w_shotorg);
                setsize(missile, '0 0 0', '0 0 0');
                missile.movetype = MOVETYPE_FLY;
-
+               
+               // per-shot spread calculation: the more shots there are, the less spread is applied (based on the bias cvar)
+               spread_pershot = ((shots - 1) / (autocvar_g_balance_hagar_secondary_load_max - 1)); 
+               spread_pershot = (1 - (spread_pershot * autocvar_g_balance_hagar_secondary_load_spread_bias));
+               spread_pershot = (autocvar_g_balance_hagar_secondary_spread * spread_pershot * g_weaponspreadfactor);
+               
+               // pattern spread calculation
                s = '0 0 0';
                if (counter == 0)
                        s = '0 0 0';
@@ -163,8 +169,9 @@ void W_Hagar_Attack2_Load_Release (void)
                        s_y = v_forward_x;
                        s_z = v_forward_y;
                }
-               s = s * cvar("g_balance_hagar_secondary_spread") * g_weaponspreadfactor;
-               W_SetupProjectileVelocityEx(missile, w_shotdir + right * s_y + up * s_z, v_up, cvar("g_balance_hagar_secondary_speed"), 0, 0, 0, FALSE);
+               s = s * autocvar_g_balance_hagar_secondary_load_spread * g_weaponspreadfactor;
+               
+               W_SetupProjectileVelocityEx(missile, w_shotdir + right * s_y + up * s_z, v_up, autocvar_g_balance_hagar_secondary_speed, 0, 0, spread_pershot, FALSE);
 
                missile.angles = vectoangles (missile.velocity);
                missile.flags = FL_PROJECTILE;
index 7071ed706bd8ffa483eb8ed364e567f0da45efbf..c108ba3cfa1707f3b69ea2135a93c4c92e58cbbd 100644 (file)
@@ -409,6 +409,8 @@ void Seeker_Tag_Touch()
        vector org2;
        entity e;
        
+       PROJECTILE_TOUCH;
+
        dir     = normalize (self.realowner.origin - self.origin);
        org2    = findbetterlocation (self.origin, 8);
 
index 7a4a9c6009927abbd0015b91c38eb93dab34fb90..dccd3dc22e6c9795c9e1b7a8774e3fa3cf97fde6 100644 (file)
@@ -229,6 +229,10 @@ float w_tuba(float req)
                weapon_setup(WEP_TUBA);
                self.current_ammo = ammo_none;
        }
+       else if (req == WR_RELOAD)
+       {
+               // TODO switch to alternate instruments :)
+       }
        else if (req == WR_CHECKAMMO1)
                return TRUE; // TODO use fuel?
        else if (req == WR_CHECKAMMO2)
index 92c81714a1a96fd1f0b606258d0dffe76645571e..4a10ecdf3a37610e63209edb72eaccac0a6a726f 100644 (file)
@@ -4,8 +4,8 @@ REGISTER_WEAPON(UZI, w_uzi, IT_NAILS, 3, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE |
 #ifdef SVQC
 
 // leilei's fancy muzzleflash stuff
-void UZI_Flash_Go() 
-{      
+void UZI_Flash_Go()
+{
        self.frame = self.frame + 2;
        self.scale = self.scale * 0.5;
        self.alpha = self.alpha - 0.25;
@@ -18,17 +18,17 @@ void UZI_Flash_Go()
                self.realowner.muzzle_flash = world;
                return;
        }
-       
+
 }
 
 void UziFlash()
-{      
+{
        if (self.muzzle_flash == world)
-               self.muzzle_flash = spawn();    
-       
+               self.muzzle_flash = spawn();
+
        // muzzle flash for 1st person view
        setmodel(self.muzzle_flash, "models/uziflash.md3"); // precision set below
-       
+
        self.muzzle_flash.scale = 0.75;
        self.muzzle_flash.think = UZI_Flash_Go;
        self.muzzle_flash.nextthink = time + 0.02;
@@ -102,14 +102,9 @@ void uzi_mode1_fire_auto()
 {
        float uzi_spread;
 
-       W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_reload_ammo);
-       
-       if (self.BUTTON_ATCK)
-               weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_uzi_sustained_refire, uzi_mode1_fire_auto);
-       else
+       if (!self.BUTTON_ATCK)
        {
-               ATTACK_FINISHED(self) = time + autocvar_g_balance_uzi_first_refire * W_WeaponRateFactor();
-               weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_uzi_sustained_refire, w_ready);
+               w_ready();
                return;
        }
 
@@ -120,27 +115,32 @@ void uzi_mode1_fire_auto()
                w_ready();
                return;
        }
-       
+
+       W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_reload_ammo);
+
        W_SetupShot (self, autocvar_g_antilag_bullets && autocvar_g_balance_uzi_speed >= autocvar_g_antilag_bullets, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, autocvar_g_balance_uzi_sustained_damage);
        if (!g_norecoil)
        {
                self.punchangle_x = random () - 0.5;
                self.punchangle_y = random () - 0.5;
        }
-       
+
        uzi_spread = bound(autocvar_g_balance_uzi_spread_min, autocvar_g_balance_uzi_spread_min + (autocvar_g_balance_uzi_spread_add * self.misc_bulletcounter), autocvar_g_balance_uzi_spread_max);
        fireBallisticBullet(w_shotorg, w_shotdir, uzi_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_sustained_damage, 0, autocvar_g_balance_uzi_sustained_force, WEP_UZI, 0, 1, autocvar_g_balance_uzi_bulletconstant);
        endFireBallisticBullet();
-       
+
        self.misc_bulletcounter = self.misc_bulletcounter + 1;
-       
+
        pointparticles(particleeffectnum("uzi_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
        UziFlash();
        W_AttachToShotorg(self.muzzle_flash, '5 0 0');
-       
+
        if (autocvar_g_casings >= 2) // casing code
                SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
+
+       ATTACK_FINISHED(self) = time + autocvar_g_balance_uzi_first_refire * W_WeaponRateFactor();
+       weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_uzi_sustained_refire, uzi_mode1_fire_auto);
 }
 
 void uzi_mode1_fire_burst()
@@ -151,16 +151,16 @@ void uzi_mode1_fire_burst()
                self.punchangle_x = random () - 0.5;
                self.punchangle_y = random () - 0.5;
        }
-       
+
        fireBallisticBullet(w_shotorg, w_shotdir, autocvar_g_balance_uzi_burst_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_sustained_damage, 0, autocvar_g_balance_uzi_sustained_force, WEP_UZI, 0, 1, autocvar_g_balance_uzi_bulletconstant);
        endFireBallisticBullet();
-       
-       
+
+
        pointparticles(particleeffectnum("uzi_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
        UziFlash();
        W_AttachToShotorg(self.muzzle_flash, '5 0 0');
-       
+
        if (autocvar_g_casings >= 2) // casing code
                SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
 
@@ -174,7 +174,7 @@ void uzi_mode1_fire_burst()
        {
                weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_uzi_burst_refire, uzi_mode1_fire_burst);
        }
-               
+
 }
 
 void spawnfunc_weapon_machinegun(); // defined in t_items.qc
@@ -197,15 +197,16 @@ float w_uzi(float req)
                {
                        if (self.BUTTON_ATCK)
                        if (weapon_prepareattack(0, 0))
-                       {                               
+                       {
                                self.misc_bulletcounter = 0;
                                uzi_mode1_fire_auto();
                        }
-                       
+
                        if(self.BUTTON_ATCK2)
                        if(weapon_prepareattack(1, 0))
                        {
                                if (!weapon_action(self.weapon, WR_CHECKAMMO2))
+                               if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
                                {
                                        W_SwitchWeapon_Force(self, w_getbestweapon(self));
                                        w_ready();
@@ -220,7 +221,7 @@ float w_uzi(float req)
                }
                else
                {
-                       
+
                        if (self.BUTTON_ATCK)
                        if (weapon_prepareattack(0, 0))
                        {
diff --git a/sound/weapons/tuba_note-1.ogg b/sound/weapons/tuba_note-1.ogg
deleted file mode 100644 (file)
index 2539692..0000000
Binary files a/sound/weapons/tuba_note-1.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-10.ogg b/sound/weapons/tuba_note-10.ogg
deleted file mode 100644 (file)
index 254a7f6..0000000
Binary files a/sound/weapons/tuba_note-10.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-11.ogg b/sound/weapons/tuba_note-11.ogg
deleted file mode 100644 (file)
index d9b0598..0000000
Binary files a/sound/weapons/tuba_note-11.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-12.ogg b/sound/weapons/tuba_note-12.ogg
deleted file mode 100644 (file)
index 855bb22..0000000
Binary files a/sound/weapons/tuba_note-12.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-13.ogg b/sound/weapons/tuba_note-13.ogg
deleted file mode 100644 (file)
index 082ab0b..0000000
Binary files a/sound/weapons/tuba_note-13.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-14.ogg b/sound/weapons/tuba_note-14.ogg
deleted file mode 100644 (file)
index 06a6c47..0000000
Binary files a/sound/weapons/tuba_note-14.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-15.ogg b/sound/weapons/tuba_note-15.ogg
deleted file mode 100644 (file)
index ecbbdff..0000000
Binary files a/sound/weapons/tuba_note-15.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-16.ogg b/sound/weapons/tuba_note-16.ogg
deleted file mode 100644 (file)
index 990d4fa..0000000
Binary files a/sound/weapons/tuba_note-16.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-17.ogg b/sound/weapons/tuba_note-17.ogg
deleted file mode 100644 (file)
index 0d6277c..0000000
Binary files a/sound/weapons/tuba_note-17.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-18.ogg b/sound/weapons/tuba_note-18.ogg
deleted file mode 100644 (file)
index d065eb9..0000000
Binary files a/sound/weapons/tuba_note-18.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-2.ogg b/sound/weapons/tuba_note-2.ogg
deleted file mode 100644 (file)
index b91b5b7..0000000
Binary files a/sound/weapons/tuba_note-2.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-3.ogg b/sound/weapons/tuba_note-3.ogg
deleted file mode 100644 (file)
index 94a56cb..0000000
Binary files a/sound/weapons/tuba_note-3.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-4.ogg b/sound/weapons/tuba_note-4.ogg
deleted file mode 100644 (file)
index 023a7d3..0000000
Binary files a/sound/weapons/tuba_note-4.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-5.ogg b/sound/weapons/tuba_note-5.ogg
deleted file mode 100644 (file)
index 25ff35b..0000000
Binary files a/sound/weapons/tuba_note-5.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-6.ogg b/sound/weapons/tuba_note-6.ogg
deleted file mode 100644 (file)
index 8bff99a..0000000
Binary files a/sound/weapons/tuba_note-6.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-7.ogg b/sound/weapons/tuba_note-7.ogg
deleted file mode 100644 (file)
index 3cc7f93..0000000
Binary files a/sound/weapons/tuba_note-7.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-8.ogg b/sound/weapons/tuba_note-8.ogg
deleted file mode 100644 (file)
index 23f5410..0000000
Binary files a/sound/weapons/tuba_note-8.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note-9.ogg b/sound/weapons/tuba_note-9.ogg
deleted file mode 100644 (file)
index c15291c..0000000
Binary files a/sound/weapons/tuba_note-9.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note0.ogg b/sound/weapons/tuba_note0.ogg
deleted file mode 100644 (file)
index 64d73c4..0000000
Binary files a/sound/weapons/tuba_note0.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note1.ogg b/sound/weapons/tuba_note1.ogg
deleted file mode 100644 (file)
index d0b26e9..0000000
Binary files a/sound/weapons/tuba_note1.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note10.ogg b/sound/weapons/tuba_note10.ogg
deleted file mode 100644 (file)
index e5e8157..0000000
Binary files a/sound/weapons/tuba_note10.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note11.ogg b/sound/weapons/tuba_note11.ogg
deleted file mode 100644 (file)
index 0421399..0000000
Binary files a/sound/weapons/tuba_note11.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note12.ogg b/sound/weapons/tuba_note12.ogg
deleted file mode 100644 (file)
index a0139f4..0000000
Binary files a/sound/weapons/tuba_note12.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note13.ogg b/sound/weapons/tuba_note13.ogg
deleted file mode 100644 (file)
index b5794c3..0000000
Binary files a/sound/weapons/tuba_note13.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note14.ogg b/sound/weapons/tuba_note14.ogg
deleted file mode 100644 (file)
index ae414fa..0000000
Binary files a/sound/weapons/tuba_note14.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note15.ogg b/sound/weapons/tuba_note15.ogg
deleted file mode 100644 (file)
index 6193dc7..0000000
Binary files a/sound/weapons/tuba_note15.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note16.ogg b/sound/weapons/tuba_note16.ogg
deleted file mode 100644 (file)
index a7c3d64..0000000
Binary files a/sound/weapons/tuba_note16.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note17.ogg b/sound/weapons/tuba_note17.ogg
deleted file mode 100644 (file)
index ce94216..0000000
Binary files a/sound/weapons/tuba_note17.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note18.ogg b/sound/weapons/tuba_note18.ogg
deleted file mode 100644 (file)
index 47f9bc1..0000000
Binary files a/sound/weapons/tuba_note18.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note19.ogg b/sound/weapons/tuba_note19.ogg
deleted file mode 100644 (file)
index d51d714..0000000
Binary files a/sound/weapons/tuba_note19.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note2.ogg b/sound/weapons/tuba_note2.ogg
deleted file mode 100644 (file)
index 4ee01b0..0000000
Binary files a/sound/weapons/tuba_note2.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note20.ogg b/sound/weapons/tuba_note20.ogg
deleted file mode 100644 (file)
index 8598e49..0000000
Binary files a/sound/weapons/tuba_note20.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note21.ogg b/sound/weapons/tuba_note21.ogg
deleted file mode 100644 (file)
index 42e4d05..0000000
Binary files a/sound/weapons/tuba_note21.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note22.ogg b/sound/weapons/tuba_note22.ogg
deleted file mode 100644 (file)
index 40c9e64..0000000
Binary files a/sound/weapons/tuba_note22.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note23.ogg b/sound/weapons/tuba_note23.ogg
deleted file mode 100644 (file)
index 81e2215..0000000
Binary files a/sound/weapons/tuba_note23.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note24.ogg b/sound/weapons/tuba_note24.ogg
deleted file mode 100644 (file)
index 8dafb9b..0000000
Binary files a/sound/weapons/tuba_note24.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note25.ogg b/sound/weapons/tuba_note25.ogg
deleted file mode 100644 (file)
index 0ded294..0000000
Binary files a/sound/weapons/tuba_note25.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note26.ogg b/sound/weapons/tuba_note26.ogg
deleted file mode 100644 (file)
index 39a7401..0000000
Binary files a/sound/weapons/tuba_note26.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note27.ogg b/sound/weapons/tuba_note27.ogg
deleted file mode 100644 (file)
index 6c87882..0000000
Binary files a/sound/weapons/tuba_note27.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note3.ogg b/sound/weapons/tuba_note3.ogg
deleted file mode 100644 (file)
index 3057d39..0000000
Binary files a/sound/weapons/tuba_note3.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note4.ogg b/sound/weapons/tuba_note4.ogg
deleted file mode 100644 (file)
index 36e22c4..0000000
Binary files a/sound/weapons/tuba_note4.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note5.ogg b/sound/weapons/tuba_note5.ogg
deleted file mode 100644 (file)
index 08c3c00..0000000
Binary files a/sound/weapons/tuba_note5.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note6.ogg b/sound/weapons/tuba_note6.ogg
deleted file mode 100644 (file)
index 2db0871..0000000
Binary files a/sound/weapons/tuba_note6.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note7.ogg b/sound/weapons/tuba_note7.ogg
deleted file mode 100644 (file)
index 89776e1..0000000
Binary files a/sound/weapons/tuba_note7.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note8.ogg b/sound/weapons/tuba_note8.ogg
deleted file mode 100644 (file)
index 0ebea71..0000000
Binary files a/sound/weapons/tuba_note8.ogg and /dev/null differ
diff --git a/sound/weapons/tuba_note9.ogg b/sound/weapons/tuba_note9.ogg
deleted file mode 100644 (file)
index dc19ff4..0000000
Binary files a/sound/weapons/tuba_note9.ogg and /dev/null differ