]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
More network savings, add shell effect for clusterbomb on split
authorJakob MG <jakob_mg@hotmail.com>
Wed, 6 Apr 2011 10:30:50 +0000 (12:30 +0200)
committerJakob MG <jakob_mg@hotmail.com>
Wed, 6 Apr 2011 10:30:50 +0000 (12:30 +0200)
qcsrc/client/Main.qc
qcsrc/client/damage.qc
qcsrc/client/progs.src
qcsrc/client/projectile.qc
qcsrc/client/vehicles/vehicles.qc
qcsrc/server/vehicles/vehicles.qc

index 6bf6443760f9fe96c43c0c81d580c6543b0a0f40..db1b9b3a9e3e8e84a6aaf3c5374cc94c6a6d972c 100644 (file)
@@ -143,6 +143,8 @@ void CSQC_Init(void)
        GibSplash_Precache();
        Casings_Precache();
        DamageInfo_Precache();
+       Vehicles_Precache();
+       
        if(autocvar_cl_announcer != cl_announcer_prev) {
                Announcer_Precache();
                if(cl_announcer_prev)
index 245ab24f78f937fffc623d9c7b7a06dad50ddf79..6aad2e57fc567eb8e1bb4ec3fa3ecfa8dfd8818d 100644 (file)
@@ -118,6 +118,16 @@ void Ent_DamageInfo(float isNew)
                 pointparticles(particleeffectnum("raptor_cannon_impact"), self.origin, w_backoff * 1000, 1);
                 break;
             case DEATH_RAPTOR_BOMB_SPLIT:
+                float i;
+                vector ang, vel;
+                for(i = 1; i <= 4; ++i)
+                {
+                    vel = normalize(w_org - (w_org + normalize(force) * 16)) + randomvec() * 128;
+                    ang = vectoangles(vel);
+                    RaptorCBShellfragToss(w_org, vel, ang + '0 0 1' * (120 * i));
+                }
+                    
+                
                 sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
                 pointparticles(particleeffectnum("raptor_bomb_spread"), self.origin, w_backoff * 1000, 1);
                 break;
index 06a445077ce43c9ef2b49e0771f904d347ad1c10..41e2dd6300b3eeea1686a99ae02b114bb1a79d2b 100644 (file)
@@ -31,6 +31,7 @@ bgmscript.qh
 noise.qh
 
 main.qh
+vehicles/vehicles.qh
 
 sortlist.qc
 miscfunctions.qc
index 0ba1e471e4e419f64b86f2da36ffe52b29f06c4d..2282723867b1ec3bb23bfc40c282c25591c5cb4d 100644 (file)
@@ -451,12 +451,6 @@ void Projectile_Precache()
        precache_model("models/tagrocket.md3");
        precache_model("models/tracer.mdl");
 
-       precache_model("models/vehicles/bomblet.md3");
-       precache_model("models/vehicles/clusterbomb.md3");
-       precache_model("models/vehicles/clusterbomb_fragment.md3");
-       precache_model("models/vehicles/rocket01.md3");
-       precache_model("models/vehicles/rocket02.md3");
-
        precache_sound("weapons/electro_fly.wav");
        precache_sound("weapons/rocket_fly.wav");
        precache_sound("weapons/fireball_fly.wav");
index 43d30f35f8e052fc7b6835695ea9eecf44b26264..14949e94051a4522e12a51622f4aa120275362d7 100644 (file)
@@ -213,13 +213,6 @@ void Net_VehicleSetup()
     }
 }
 
-void Vehicles_Precache()
-{
-       //precache_model("models/ax_shell.mdl");
-       //precache_sound("weapons/brass1.wav");
-}
-
-
 void CSQC_SPIDER_HUD()
 {
        float rockets, reload, heat, hp, shield;
@@ -464,3 +457,56 @@ void CSQC_WAKIZASHI_HUD()
        }
 
 }
+
+void Vehicles_Precache()
+{
+       precache_model("models/vehicles/bomblet.md3");
+       precache_model("models/vehicles/clusterbomb.md3");
+       precache_model("models/vehicles/clusterbomb_fragment.md3");
+       precache_model("models/vehicles/rocket01.md3");
+       precache_model("models/vehicles/rocket02.md3");
+}
+
+
+void RaptorCBShellfragDraw()
+{
+       Movetype_Physics_MatchTicrate(autocvar_cl_gibs_ticrate, autocvar_cl_gibs_sloppy);
+       if(wasfreed(self))
+               return;
+
+       self.move_avelocity += randomvec() * 15;
+       self.renderflags = 0;
+       self.alpha = bound(0, self.nextthink - time, 1);
+
+       if(self.alpha < ALPHA_MIN_VISIBLE)
+        remove(self);
+
+}
+void RaptorCBShellfragToss(vector _org, vector _vel, vector _ang)
+{
+    entity sfrag;
+    
+    sfrag = spawn();
+    setmodel(sfrag, "models/vehicles/clusterbomb_fragment.md3");
+    setorigin(sfrag, _org);
+    
+       sfrag.move_movetype = MOVETYPE_BOUNCE;
+       sfrag.gravity = 0.15;
+       sfrag.solid = SOLID_CORPSE;
+
+       sfrag.draw = RaptorCBShellfragDraw;
+
+       sfrag.move_origin = sfrag.origin = _org;
+       sfrag.move_velocity = _vel;
+       sfrag.move_avelocity = prandomvec() * vlen(sfrag.move_velocity);
+       sfrag.angles = self.move_angles = _ang;
+       
+       sfrag.move_time = time;
+       sfrag.damageforcescale = 4;
+
+       sfrag.nextthink = time + 2 * (1 + prandom() * 2);
+    sfrag.drawmask = MASK_NORMAL;
+    
+    
+}
+                    
\ No newline at end of file
index 2f37a8fef338f42e0d3cf93cbc36619300de35c3..ad5b006e3a1d23feb5273062297bf8ed03012be8 100644 (file)
@@ -655,6 +655,7 @@ void vehicles_reset_colors()
     self.vehicle_hudmodel.effects  = self.effects  = _effects | EF_LOWPRECISION;
     self.vehicle_hudmodel.colormod = self.colormod = _colormod;
     self.vehicle_hudmodel.colormap = self.colormap = _colormap;
+    self.vehicle_viewport.effects = (EF_ADDITIVE | EF_DOUBLESIDED | EF_FULLBRIGHT | EF_NODEPTHTEST | EF_NOGUNBOB | EF_NOSHADOW | EF_LOWPRECISION | EF_SELECTABLE | EF_TELEPORT_BIT);
 
     self.alpha          = 1;
     self.avelocity      = '0 0 0';