]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
csqc projectile types for vehicles, and models
authorJakob MG <jakob_mg@hotmail.com>
Sat, 2 Apr 2011 16:08:05 +0000 (18:08 +0200)
committerJakob MG <jakob_mg@hotmail.com>
Sat, 2 Apr 2011 16:08:05 +0000 (18:08 +0200)
17 files changed:
models/vehicles/bomblet.md3 [new file with mode: 0644]
models/vehicles/clusterbomb.md3 [new file with mode: 0644]
models/vehicles/clusterbomb_fragment.md3 [new file with mode: 0644]
models/vehicles/rocket01.md3 [new file with mode: 0644]
models/vehicles/rocket02.md3 [new file with mode: 0644]
models/vehicles/rockets.tga [new file with mode: 0644]
models/vehicles/rockets_gloss.tga [new file with mode: 0644]
models/vehicles/rockets_glow.tga [new file with mode: 0644]
models/vehicles/rockets_reflect.tga [new file with mode: 0644]
qcsrc/client/projectile.qc
qcsrc/client/vehicles/vehicles.qc
qcsrc/common/constants.qh
qcsrc/server/vehicles/racer.qc
qcsrc/server/vehicles/raptor.qc
qcsrc/server/vehicles/spiderbot.qc
qcsrc/server/vehicles/vehicles.qc
scripts/vrockets.shader [new file with mode: 0644]

diff --git a/models/vehicles/bomblet.md3 b/models/vehicles/bomblet.md3
new file mode 100644 (file)
index 0000000..a45d24a
Binary files /dev/null and b/models/vehicles/bomblet.md3 differ
diff --git a/models/vehicles/clusterbomb.md3 b/models/vehicles/clusterbomb.md3
new file mode 100644 (file)
index 0000000..5481c57
Binary files /dev/null and b/models/vehicles/clusterbomb.md3 differ
diff --git a/models/vehicles/clusterbomb_fragment.md3 b/models/vehicles/clusterbomb_fragment.md3
new file mode 100644 (file)
index 0000000..c2c63c2
Binary files /dev/null and b/models/vehicles/clusterbomb_fragment.md3 differ
diff --git a/models/vehicles/rocket01.md3 b/models/vehicles/rocket01.md3
new file mode 100644 (file)
index 0000000..329f277
Binary files /dev/null and b/models/vehicles/rocket01.md3 differ
diff --git a/models/vehicles/rocket02.md3 b/models/vehicles/rocket02.md3
new file mode 100644 (file)
index 0000000..ab40879
Binary files /dev/null and b/models/vehicles/rocket02.md3 differ
diff --git a/models/vehicles/rockets.tga b/models/vehicles/rockets.tga
new file mode 100644 (file)
index 0000000..553fdf0
Binary files /dev/null and b/models/vehicles/rockets.tga differ
diff --git a/models/vehicles/rockets_gloss.tga b/models/vehicles/rockets_gloss.tga
new file mode 100644 (file)
index 0000000..d62e764
Binary files /dev/null and b/models/vehicles/rockets_gloss.tga differ
diff --git a/models/vehicles/rockets_glow.tga b/models/vehicles/rockets_glow.tga
new file mode 100644 (file)
index 0000000..14c9f30
Binary files /dev/null and b/models/vehicles/rockets_glow.tga differ
diff --git a/models/vehicles/rockets_reflect.tga b/models/vehicles/rockets_reflect.tga
new file mode 100644 (file)
index 0000000..0c16166
Binary files /dev/null and b/models/vehicles/rockets_reflect.tga differ
index 96150a0bb8e00029eec14a7f0680eea1b0fec523..dd87f79a3ac8786dd02d8dabfdce6e428d825f04 100644 (file)
@@ -27,10 +27,12 @@ void Projectile_ResetTrail(vector to)
        self.trail_oldorigin = to;
        self.trail_oldtime = time;
 }
+
 void Projectile_DrawTrail(vector to)
 {
        vector from;
        float t0;
+
        from = self.trail_oldorigin;
        t0 = self.trail_oldtime;
        self.trail_oldorigin = to;
@@ -294,7 +296,14 @@ void Ent_Projectile()
                        case PROJECTILE_TAG: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum("TR_ROCKET"); break;
                        case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.mdl"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_SEEKER"); break;
                        case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.traileffect = particleeffectnum("TR_SEEKER"); break;
-                       case PROJECTILE_RAPTORBOMB: setmodel(self, "models/vehicles/raptor_bomb.dpm"); self.gravity = 1; self.avelocity  = '0 0 180'; self.traileffect = particleeffectnum(""); break;
+
+                       case PROJECTILE_RAPTORBOMB:    setmodel(self, "models/vehicles/clusterbomb.md3"); self.gravity = 1; self.avelocity = '0 0 180'; self.traileffect = particleeffectnum(""); break;
+                       case PROJECTILE_RAPTORBOMBLET: setmodel(self, "models/vehicles/bomblet.md3");     self.gravity = 1; self.avelocity = '0 0 180'; self.traileffect = particleeffectnum(""); break;
+                       case PROJECTILE_RAPTORCANNON:  setmodel(self, "models/plasmatrail.mdl"); self.traileffect = particleeffectnum("TR_CRYLINKPLASMA"); break;
+
+                       case PROJECTILE_SPIDERROCKET: setmodel(self, "models/vehicles/rocket02.md3"); self.traileffect = particleeffectnum("TR_ROCKET"); break;
+                       case PROJECTILE_WAKIROCKET:   setmodel(self, "models/vehicles/rocket01.md3");  self.traileffect = particleeffectnum("TR_ROCKET"); break;
+                       case PROJECTILE_WAKICANNON:   setmodel(self, "models/laser.mdl");  self.traileffect = particleeffectnum(""); break;
                        default:
                                error("Received invalid CSQC projectile, can't work with this!");
                                break;
@@ -389,6 +398,18 @@ void Ent_Projectile()
                                self.mins = '-3 -3 -3';
                                self.maxs = '3 3 3';
                                break;
+            case PROJECTILE_RAPTORBOMBLET:
+                               break;
+            case PROJECTILE_RAPTORCANNON:
+                               break;
+            case PROJECTILE_SPIDERROCKET:
+                loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM);
+                               break;
+            case PROJECTILE_WAKIROCKET:
+                loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM);
+                               break;
+            case PROJECTILE_WAKICANNON:
+                               break;
                        default:
                                break;
                }
@@ -429,7 +450,12 @@ void Projectile_Precache()
        precache_model("models/rocket.md3");
        precache_model("models/tagrocket.md3");
        precache_model("models/tracer.mdl");
-       precache_model("models/vehicles/raptor_bomb.dpm");
+
+       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");
index aac436fb097379452d4029b34ca70dc0c8103f3a..9ec28d61fd1e9b582a68f1b2d433c744a13787e3 100644 (file)
@@ -300,6 +300,7 @@ void CSQC_RAPTOR_HUD()
     {
         dropmark = spawn();
         dropmark.owner = self;
+        dropmark.gravity = 1;
     }
 
     if(reload == 1)
index 0d19e0320961bbc4eaf7061cf45f33260aca5237..d5c24313d49e22b0453b89ed60fb01daf4815e38 100644 (file)
@@ -491,7 +491,13 @@ float PROJECTILE_CRYLINK_BOUNCING = 20;
 float PROJECTILE_FIREBALL = 21;
 float PROJECTILE_FIREMINE = 22;
 float PROJECTILE_BULLET_GLOWING_TRACER = 23;
-float PROJECTILE_RAPTORBOMB = 24;
+
+float PROJECTILE_RAPTORCANNON   = 24;
+float PROJECTILE_RAPTORBOMB     = 25;
+float PROJECTILE_RAPTORBOMBLET  = 26;
+float PROJECTILE_SPIDERROCKET   = 27;
+float PROJECTILE_WAKIROCKET     = 28;
+float PROJECTILE_WAKICANNON     = 29;
 
 float SPECIES_HUMAN        =  0;
 float SPECIES_ROBOT_SOLID  =  1;
index 69177137e95e78d645cb8aa7f16a154a2aa76967..d5466fc5e026f2fc401fd99686923ba75d62dabd 100644 (file)
@@ -165,7 +165,7 @@ void racer_fire_cannon(string tagname)
 
     pointparticles(particleeffectnum("wakizashi_gun_muzzleflash"), bolt.origin, bolt.velocity, 1);
 
-    CSQCProjectile(bolt, TRUE, PROJECTILE_LASER, TRUE);
+    CSQCProjectile(bolt, TRUE, PROJECTILE_WAKICANNON, TRUE);
 }
 
 void racer_rocket_groundhugger()
@@ -292,7 +292,7 @@ void racer_fire_rocket(string tagname, entity trg)
     rocket.nextthink        = time;
     rocket.enemy            = trg;
 
-    CSQCProjectile(rocket, TRUE, PROJECTILE_ROCKET, TRUE);
+    CSQCProjectile(rocket, TRUE, PROJECTILE_WAKIROCKET, TRUE);
 }
 
 .float fire1_waspressed;
index ad33235a2ac42465457a2fec76e36000ddd10fd3..43624e40707fd53237228ed1e8c120f93355b725 100644 (file)
@@ -117,17 +117,16 @@ void raptor_bomb_burst()
         bomblet = spawn();
         setorigin(bomblet, self.origin);
 
-        bomblet.scale       = 0.5;
-        bomblet.solid       = SOLID_TRIGGER;
+        //bomblet.solid       = SOLID_TRIGGER;
         bomblet.movetype    = MOVETYPE_TOSS;
         bomblet.touch       = raptor_bomblet_touch;
         bomblet.think       = raptor_bomblet_boom;
         bomblet.nextthink   = time + 5;
-        bomblet.owner   = self.owner;
+        bomblet.owner       = self.owner;
         bomblet.realowner   = self.realowner;
         bomblet.velocity    = normalize(normalize(self.velocity) + (randomvec() * autocvar_g_vehicle_raptor_bomblet_spread)) * vlen(self.velocity);
         PROJECTILE_MAKETRIGGER(bomblet);
-        CSQCProjectile(bomblet, TRUE, PROJECTILE_RAPTORBOMB, TRUE);
+        CSQCProjectile(bomblet, TRUE, PROJECTILE_RAPTORBOMBLET, TRUE);
     }
 
     remove(self);
@@ -165,6 +164,7 @@ void raptor_bombdrop()
     bomb_1.owner     = bomb_2.owner      = self;
     bomb_1.realowner = bomb_2.realowner  = self.owner;
     bomb_1.solid     = bomb_2.solid      = SOLID_BBOX;
+    bomb_1.gravity     = bomb_2.gravity      = 1;
 
     PROJECTILE_MAKETRIGGER(bomb_1);
     PROJECTILE_MAKETRIGGER(bomb_2);
@@ -207,7 +207,7 @@ void raptor_fire_cannon(entity gun, string tagname)
     pointparticles(particleeffectnum("raptor_cannon_muzzleflash"), bolt.origin, bolt.velocity, 1);
     //pointparticles(particleeffectnum("spiderbot_minigun_muzzleflash"), bolt.origin, bolt.velocity, 1);
 
-    CSQCProjectile(bolt, TRUE, PROJECTILE_CRYLINK, TRUE);
+    CSQCProjectile(bolt, TRUE, PROJECTILE_RAPTORCANNON, TRUE);
 }
 
 void raptor_think()
@@ -666,8 +666,8 @@ void raptor_dinit()
     setattachment(self.vehicle_viewport, world, "");
 #endif
 
-    setmodel(self.bomb1,"models/vehicles/raptor_bomb.dpm");
-    setmodel(self.bomb2,"models/vehicles/raptor_bomb.dpm");
+    setmodel(self.bomb1,"models/vehicles/clusterbomb.md3");
+    setmodel(self.bomb2,"models/vehicles/clusterbomb.md3");
     setmodel(self.gun1, "models/vehicles/raptor_gun.dpm");
     setmodel(self.gun2, "models/vehicles/raptor_gun.dpm");
 
@@ -734,7 +734,7 @@ void spawnfunc_vehicle_raptor()
     precache_model ("models/vehicles/raptor_gun.dpm");
     precache_model ("models/vehicles/spinner.dpm");
     precache_model ("models/vehicles/raptor_cockpit.dpm");
-    precache_model ("models/vehicles/raptor_bomb.dpm");
+    precache_model ("models/vehicles/clusterbomb.md3");
 
     self.think = raptor_dinit;
     self.nextthink = time + 1;
index 090b53149fbf1fe72a493dd5d3b869d67f981120..79d2504d15ef3dfa4e30210951b4dcc37f35e558 100644 (file)
@@ -225,7 +225,7 @@ void spiderbot_rocket_do()
     rocket.solid           = SOLID_TRIGGER;
     rocket.pos1            = trace_endpos;
 
-       CSQCProjectile(rocket, FALSE, PROJECTILE_ROCKET, FALSE); // no culling, has fly sound
+       CSQCProjectile(rocket, FALSE, PROJECTILE_SPIDERROCKET, FALSE); // no culling, has fly sound
 
     self.tur_head.frame += 1;
     if (self.tur_head.frame == 9)
index 1ec83dabbe3ab12f0429ce837256ad23b53b011e..13b52ce228439c53540126e2abda583b00dbed82 100644 (file)
@@ -595,7 +595,6 @@ float vehicle_initialize(string  net_name,
        addstat(STAT_VEHICLESTAT_AMMO2,   AS_INT,   vehicle_ammo2);
        addstat(STAT_VEHICLESTAT_RELOAD2, AS_FLOAT, vehicle_reload2);
 
-
     if(bodymodel == "")
         error("vehicles: missing bodymodel!");
 
diff --git a/scripts/vrockets.shader b/scripts/vrockets.shader
new file mode 100644 (file)
index 0000000..84d071f
--- /dev/null
@@ -0,0 +1,8 @@
+models/vehicles/rockets
+{
+       dpreflectcube textures/cubemap/sky
+ {
+       models/vehicles/rockets.tga
+       rgbgen vertex
+ }
+}
\ No newline at end of file