]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into divVerent/speedlimit
authorRudolf Polzer <divverent@alientrap.org>
Fri, 4 Jun 2010 21:24:15 +0000 (23:24 +0200)
committerRudolf Polzer <divverent@alientrap.org>
Fri, 4 Jun 2010 21:24:15 +0000 (23:24 +0200)
35 files changed:
defaultXonotic.cfg
models/player/gak.iqm [new file with mode: 0644]
models/player/gak.iqm.framegroups [new file with mode: 0644]
models/player/gak.iqm_0.tga [new file with mode: 0644]
models/player/gak.iqm_0.txt [new file with mode: 0644]
models/player/gakarmored.iqm [new file with mode: 0644]
models/player/gakarmored.iqm.framegroups [new file with mode: 0644]
models/player/gakarmored.iqm_0.tga [new file with mode: 0644]
models/player/gakarmored.iqm_0.txt [new file with mode: 0644]
models/player/gakmasked.iqm [new file with mode: 0644]
models/player/gakmasked.iqm.framegroups [new file with mode: 0644]
models/player/gakmasked.iqm_0.tga [new file with mode: 0644]
models/player/gakmasked.iqm_0.txt [new file with mode: 0644]
physicsNoQWBunny.cfg
qcsrc/server/cl_physics.qc
qcsrc/server/gamecommand.qc
qcsrc/server/miscfunctions.qc
qcsrc/server/sv_main.qc
qcsrc/server/t_jumppads.qc
qcsrc/server/w_common.qc
qcsrc/server/w_electro.qc
qcsrc/server/w_fireball.qc
qcsrc/server/w_grenadelauncher.qc
qcsrc/server/w_hagar.qc
qcsrc/server/w_hook.qc
qcsrc/server/w_seeker.qc
textures/gak.tga [new file with mode: 0644]
textures/gak_gloss.tga [new file with mode: 0644]
textures/gak_norm.tga [new file with mode: 0644]
textures/gak_shirt.tga [new file with mode: 0644]
textures/gakarmor.tga [new file with mode: 0644]
textures/gakarmor_gloss.tga [new file with mode: 0644]
textures/gakarmor_norm.tga [new file with mode: 0644]
textures/gakarmor_pants.tga [new file with mode: 0644]
textures/gakarmor_shirt.tga [new file with mode: 0644]

index a30856168a8ffc87bbfcf16a49e039176a04e3dc..fd4c100ceb2a164ad643eb2b9dbcbdba95490c8e 100644 (file)
@@ -240,7 +240,28 @@ cl_bobcycle 0 // how long the cycle of up/down view movement takes (only works i
 cl_bob 0.01 // how much view moves up/down when moving (does not move if cl_bobcycle is 0, but still enables cl_bobmodel), default is 0.02
 cl_bobmodel 1 // whether to have gun model move around on screen when moving (only works if cl_bob is not 0), default is 1
 cl_leanmodel 1 // enables weapon leaning effect when looking around
+cl_leanmodel_side_speed 0.7 "gun leaning sideways speed"
+cl_leanmodel_side_limit 35 "gun leaning sideways limit"
+cl_leanmodel_side_highpass1 30 "gun leaning sideways pre-highpass in 1/s"
+cl_leanmodel_side_highpass 3 "gun leaning sideways highpass in 1/s"
+cl_leanmodel_side_lowpass 20 "gun leaning sideways lowpass in 1/s"
+cl_leanmodel_up_speed 0.65 "gun leaning upward speed"
+cl_leanmodel_up_limit 50 "gun leaning upward limit"
+cl_leanmodel_up_highpass1 5 "gun leaning upward pre-highpass in 1/s"
+cl_leanmodel_up_highpass 15 "gun leaning upward highpass in 1/s"
+cl_leanmodel_up_lowpass 20 "gun leaning upward lowpass in 1/s"
 cl_followmodel 1 // enables weapon pushing / pulling effect when walking
+cl_followmodel_side_speed 0.25 "gun following sideways speed"
+cl_followmodel_side_limit 6 "gun following sideways limit"
+cl_followmodel_side_highpass1 30 "gun following sideways pre-highpass in 1/s"
+cl_followmodel_side_highpass 5 "gun following sideways highpass in 1/s"
+cl_followmodel_side_lowpass 10 "gun following sideways lowpass in 1/s"
+cl_followmodel_up_speed 0.5 "gun following upward speed"
+cl_followmodel_up_limit 5 "gun following upward limit"
+cl_followmodel_up_highpass1 60 "gun following upward pre-highpass in 1/s"
+cl_followmodel_up_highpass 2 "gun following upward highpass in 1/s"
+cl_followmodel_up_lowpass 10 "gun following upward lowpass in 1/s"
+
 cl_rollangle 0 // amount of view tilt when strafing, default is 2.0
 v_kicktime 0 // how long damage kicks of the view last, default is 0 seconds
 gl_polyblend 0.5 // whether to use screen tints, default is 1
@@ -330,9 +351,9 @@ set sv_player_crouch_maxs "16 16 25" "maxs of a crouched playermodel"
 
 set sv_pogostick 1 "don't require releasing the space bar for jumping again"
 set sv_doublejump 0 "allow Quake 2-style double jumps"
-set sv_jumpspeedcap_min "" "wont perform a doublejump if z-axis speed is higher than sv_jumpvelocity * this"
-set sv_jumpspeedcap_max "" "wont perform a doublejump if z-axis speed is higher than sv_jumpvelocity * this"
-set sv_jumpspeedcap_max_disable_on_ramps 0 "disable max jumpspeedcap on ramps to preserve the old rampjump style"
+set sv_jumpspeedcap_min "" "lower bound on the baseline velocity of a jump; final velocity will be >= (jumpheight * min + jumpheight)"
+set sv_jumpspeedcap_max "" "upper bound on the baseline velocity of a jump; final velocity will be <= (jumpheight * max + jumpheight)"
+set sv_jumpspeedcap_max_disable_on_ramps 0 "disable upper baseline velocity bound on ramps to preserve the old rampjump style"
 
 seta sv_precacheplayermodels 1
 seta sv_precacheweapons 0
diff --git a/models/player/gak.iqm b/models/player/gak.iqm
new file mode 100644 (file)
index 0000000..58dbe01
Binary files /dev/null and b/models/player/gak.iqm differ
diff --git a/models/player/gak.iqm.framegroups b/models/player/gak.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/gak.iqm_0.tga b/models/player/gak.iqm_0.tga
new file mode 100644 (file)
index 0000000..093b7f0
Binary files /dev/null and b/models/player/gak.iqm_0.tga differ
diff --git a/models/player/gak.iqm_0.txt b/models/player/gak.iqm_0.txt
new file mode 100644 (file)
index 0000000..8aa7419
--- /dev/null
@@ -0,0 +1,7 @@
+name Gak
+species alien
+sex Male
+weight 85
+age 16
+
+Lightweight Xonotic Solider
diff --git a/models/player/gakarmored.iqm b/models/player/gakarmored.iqm
new file mode 100644 (file)
index 0000000..4f4e8ab
Binary files /dev/null and b/models/player/gakarmored.iqm differ
diff --git a/models/player/gakarmored.iqm.framegroups b/models/player/gakarmored.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/gakarmored.iqm_0.tga b/models/player/gakarmored.iqm_0.tga
new file mode 100644 (file)
index 0000000..b4a58ea
Binary files /dev/null and b/models/player/gakarmored.iqm_0.tga differ
diff --git a/models/player/gakarmored.iqm_0.txt b/models/player/gakarmored.iqm_0.txt
new file mode 100644 (file)
index 0000000..06ff355
--- /dev/null
@@ -0,0 +1,7 @@
+name Gak Armored
+species alien
+sex Male
+weight 90
+age 20
+
+Heavyweight Xonotic Solider
diff --git a/models/player/gakmasked.iqm b/models/player/gakmasked.iqm
new file mode 100644 (file)
index 0000000..b11e33a
Binary files /dev/null and b/models/player/gakmasked.iqm differ
diff --git a/models/player/gakmasked.iqm.framegroups b/models/player/gakmasked.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/gakmasked.iqm_0.tga b/models/player/gakmasked.iqm_0.tga
new file mode 100644 (file)
index 0000000..40d2958
Binary files /dev/null and b/models/player/gakmasked.iqm_0.tga differ
diff --git a/models/player/gakmasked.iqm_0.txt b/models/player/gakmasked.iqm_0.txt
new file mode 100644 (file)
index 0000000..aff4f75
--- /dev/null
@@ -0,0 +1,7 @@
+name Gak Masked
+species alien
+sex Male
+weight 87
+age 18
+
+Mediumweight Xonotic Solider
index d20a12a3b1cebbe0af75010f91897c8504535e1a..1e1f331dba37c435766c084c0607090f235a6f53 100644 (file)
@@ -14,9 +14,9 @@ sv_waterfriction -1
 sv_airaccel_sideways_friction -0.2
 sv_airaccel_qw -0.9475
 sv_airstopaccelerate 2.5
-sv_airstrafeaccelerate 21
-sv_maxairstrafespeed 200
-sv_airstrafeaccel_qw -0.99
+sv_airstrafeaccelerate 24
+sv_maxairstrafespeed 100
+sv_airstrafeaccel_qw -0.9825
 sv_aircontrol 125
 sv_aircontrol_power 2.5
 sv_warsowbunny_turnaccel 0
index 10086bbc43c9d01c7f2d3050187d7b831b022e27..5e70e79bd4d29902e71e6a32b247e924e80be631 100644 (file)
@@ -42,6 +42,15 @@ When you press the jump key
 void PlayerJump (void)
 {
        float mjumpheight;
+       float doublejump;
+
+       doublejump = FALSE;
+       if (sv_doublejump)
+       {
+               tracebox(self.origin + '0 0 0.01', self.mins, self.maxs, self.origin - '0 0 0.01', MOVE_NORMAL, self);
+               if (trace_fraction < 1 && trace_plane_normal_z > 0.7)
+                       doublejump = TRUE;
+       }
 
        mjumpheight = cvar("sv_jumpvelocity");
        if (self.waterlevel >= WATERLEVEL_SWIMMING)
@@ -56,6 +65,7 @@ void PlayerJump (void)
                return;
        }
 
+       if (!doublejump)
        if (!(self.flags & FL_ONGROUND))
                return;
 
@@ -86,15 +96,34 @@ void PlayerJump (void)
                mjumpheight = mjumpheight * cvar("g_minstagib_speed_jumpheight");
        }
 
+       // sv_jumpspeedcap_min/sv_jumpspeedcap_max act as baseline
+       // velocity bounds.  Final velocity is bound between (jumpheight *
+       // min + jumpheight) and (jumpheight * max + jumpheight);
+
        if(cvar_string("sv_jumpspeedcap_min") != "")
-               self.velocity_z = max(cvar("sv_jumpvelocity") * cvar("sv_jumpspeedcap_min"), self.velocity_z);
-       if(cvar_string("sv_jumpspeedcap_max") != "") {
-               if(trace_fraction < 1 && trace_plane_normal_z < 0.98 && cvar("sv_jumpspeedcap_max_disable_on_ramps")) {
-                       // don't do jump speedcaps on ramps to preserve old xonotic ramjump style
-                       //print("Trace plane normal z: ", ftos(trace_plane_normal_z), ", disabling speed cap!\n");
+       {
+               float minjumpspeed;
+
+               minjumpspeed = mjumpheight * cvar("sv_jumpspeedcap_min");
+
+               if (self.velocity_z < minjumpspeed)
+                       mjumpheight += minjumpspeed - self.velocity_z;
+       }
+
+       if(cvar_string("sv_jumpspeedcap_max") != "")
+       {
+               // don't do jump speedcaps on ramps to preserve old xonotic ramjump style
+               tracebox(self.origin + '0 0 0.01', self.mins, self.maxs, self.origin - '0 0 0.01', MOVE_NORMAL, self);
+
+               if(!(trace_fraction < 1 && trace_plane_normal_z < 0.98 && cvar("sv_jumpspeedcap_max_disable_on_ramps")))
+               {
+                       float maxjumpspeed;
+
+                       maxjumpspeed = mjumpheight * cvar("sv_jumpspeedcap_max");
+
+                       if (self.velocity_z > maxjumpspeed)
+                               mjumpheight -= self.velocity_z - maxjumpspeed;
                }
-               else
-                       self.velocity_z = min(cvar("sv_jumpvelocity") * cvar("sv_jumpspeedcap_max"), self.velocity_z) + trace_ent.velocity_z;
        }
 
        if(!(self.lastflags & FL_ONGROUND))
@@ -612,7 +641,6 @@ void race_send_speedaward_alltimebest(float msg)
 string GetMapname(void);
 float speedaward_lastupdate;
 float speedaward_lastsent;
-.float jumppadusetime;
 var float autocvar_g_movement_highspeed = 1;
 void SV_PlayerPhysics()
 {
@@ -866,14 +894,6 @@ void SV_PlayerPhysics()
 
        if(self.classname == "player")
        {
-               if(sv_doublejump && time - self.jumppadusetime > 2 * sys_frametime)
-               {
-                       tracebox(self.origin + '0 0 0.01', self.mins, self.maxs, self.origin - '0 0 0.01', MOVE_NORMAL, self);
-                       self.flags &~= FL_ONGROUND;
-                       if(trace_fraction < 1 && trace_plane_normal_z > 0.7)
-                               self.flags |= FL_ONGROUND;
-               }
-
                if (self.BUTTON_JUMP)
                        PlayerJump ();
                else
index 8a4d5ec1eb2a0bb3974365bd41535367a7cf693b..a6881b293ca52ae2754bc9f80ebfa281a386589f 100644 (file)
@@ -960,7 +960,10 @@ void GameCommand(string command)
                if(argv(1) == "w")
                        setmodel(e, (nextent(world)).weaponentity.model);
                else
+               {
+                       precache_model(argv(1));
                        setmodel(e, argv(1));
+               }
                e.frame = stof(argv(2));
                if(substring(argv(3), 0, 1) == "#")
                        i = stof(substring(argv(3), 1, -1));
index c54235d2cbdbc1a8ffe493209a72a4681cda8f5c..fa61ad8712783892d3b916701f75a163e42d2ab3 100644 (file)
@@ -1227,7 +1227,6 @@ void readlevelcvars(void)
        sv_maxidle = cvar("sv_maxidle");
        sv_maxidle_spectatorsareidle = cvar("sv_maxidle_spectatorsareidle");
        sv_pogostick = cvar("sv_pogostick");
-       sv_doublejump = cvar("sv_doublejump");
        g_ctf_reverse = cvar("g_ctf_reverse");
        sv_autotaunt = cvar("sv_autotaunt");
        sv_taunt = cvar("sv_taunt");
@@ -1916,6 +1915,13 @@ void adaptor_think2use()
     activator = a;
 }
 
+void adaptor_think2use_hittype_splash() // for timed projectile detonation
+{
+       if not(self.flags & FL_ONGROUND) // if onground, we ARE touching something, but HITTYPE_SPLASH is to be networked if the damage causing projectile is not touching ANYTHING
+               self.projectiledeathtype |= HITTYPE_SPLASH;
+       adaptor_think2use();
+}
+
 // deferred dropping
 void DropToFloor_Handler()
 {
index da576360aa259a281578ed4e9530b68f81acdd45..85ff7760b3b912e8ea836f47d53639599a81cc8d 100644 (file)
@@ -201,6 +201,7 @@ void StartFrame (void)
        sv_speedlimit = cvar("sv_speedlimit");
        teamplay = cvar ("teamplay");
        sys_frametime = cvar("sys_ticrate") * cvar("slowmo");
+       sv_doublejump = cvar("sv_doublejump");
 
        if (timeoutStatus == 1) // just before the timeout (when timeoutStatus will be 2)
                orig_slowmo = cvar("slowmo"); // slowmo will be restored after the timeout
index 4faba6d71c4aa288b55527721711721a019377e7..9bb8f7c92034d88e0de65ba2f88e0039ed4f53f5 100644 (file)
@@ -152,7 +152,6 @@ void trigger_push_touch()
        other.flags &~= FL_ONGROUND;
 
        other.velocity = self.movedir;
-       other.jumppadusetime = time;
 
        if (other.classname == "player")
        {
index 36552e930469f5361372bdc07b5505e99172acfb..8f2de4e8ce27b777624ea583860d081df599e830 100644 (file)
@@ -1,3 +1,4 @@
+
 void W_GiveWeapon (entity e, float wep, string name)
 {
        entity oldself;
index c1cb49d0ebb896c4b50f3985e95bb7eeb704a38a..c9e7d23c31eff0682d56453b594b2cfdbd115481 100644 (file)
@@ -51,7 +51,6 @@ void W_Plasma_Explode (void)
 
 void W_Plasma_Explode_Combo (void)
 {
-
        W_Plasma_TriggerCombo(self.origin, cvar("g_balance_electro_combo_comboradius"), self.owner);
 
        self.event_damage = SUB_Null;
@@ -98,7 +97,7 @@ void W_Plasma_Damage (entity inflictor, entity attacker, float damage, float dea
                else
                {
                        self.use = W_Plasma_Explode;
-                       self.think = adaptor_think2use;
+                       self.think = adaptor_think2use; // not _hittype_splash, as this runs "immediately"
                }
        }
 }
@@ -117,7 +116,7 @@ void W_Electro_Attack()
        proj.bot_dodge = TRUE;
        proj.bot_dodgerating = cvar("g_balance_electro_primary_damage");
        proj.use = W_Plasma_Explode;
-       proj.think = adaptor_think2use;
+       proj.think = adaptor_think2use_hittype_splash;
        proj.nextthink = time + cvar("g_balance_electro_primary_lifetime");
        PROJECTILE_MAKETRIGGER(proj);
        proj.projectiledeathtype = WEP_ELECTRO;
@@ -151,7 +150,7 @@ void W_Electro_Attack2()
        proj.classname = "plasma";
        proj.owner = self;
        proj.use = W_Plasma_Explode;
-       proj.think = adaptor_think2use;
+       proj.think = adaptor_think2use_hittype_splash;
        proj.bot_dodge = TRUE;
        proj.bot_dodgerating = cvar("g_balance_electro_secondary_damage");
        proj.nextthink = time + cvar("g_balance_electro_secondary_lifetime");
index c1d30ba0211f53bbd9297b4bcf2a96797a8a5851..0462cd9018b256f0febe222f9e415b3c164e3a2c 100644 (file)
@@ -98,6 +98,7 @@ void W_Fireball_Think()
        if(time > self.pushltime)
        {
                self.cnt = 1;
+               self.projectiledeathtype |= HITTYPE_SPLASH;
                W_Fireball_Explode();
                return;
        }
index 380e849fe35c276d259d84e7d76b1c398edb6d09..251137401c4a0580d934da6f6b4949313131ed59 100644 (file)
@@ -99,7 +99,7 @@ void W_Grenade_Attack (void)
        setsize(gren, '0 0 -3', '0 0 -3');
 
        gren.nextthink = time + cvar("g_balance_grenadelauncher_primary_lifetime");
-       gren.think = adaptor_think2use;
+       gren.think = adaptor_think2use_hittype_splash;
        gren.use = W_Grenade_Explode;
        gren.touch = W_Grenade_Touch1;
        W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_grenadelauncher_primary);
@@ -135,7 +135,7 @@ void W_Grenade_Attack2 (void)
        setorigin(gren, w_shotorg);
 
        gren.nextthink = time + cvar("g_balance_grenadelauncher_secondary_lifetime");
-       gren.think = adaptor_think2use;
+       gren.think = adaptor_think2use_hittype_splash;
        gren.use = W_Grenade_Explode2;
        gren.touch = W_Grenade_Touch2;
        gren.takedamage = DAMAGE_YES;
index 06ff58857860d4fd5d35910ede418287cb55fd0f..638e18bcc261f5f718de326eb40647d3640f8e6a 100644 (file)
@@ -56,7 +56,7 @@ void W_Hagar_Attack (void)
        missile.bot_dodgerating = cvar("g_balance_hagar_primary_damage");
        missile.touch = W_Hagar_Touch;
        missile.use = W_Hagar_Explode;
-       missile.think = adaptor_think2use;
+       missile.think = adaptor_think2use_hittype_splash;
        missile.nextthink = time + cvar("g_balance_hagar_primary_lifetime");
        PROJECTILE_MAKETRIGGER(missile);
        missile.projectiledeathtype = WEP_HAGAR;
@@ -91,7 +91,7 @@ void W_Hagar_Attack2 (void)
        missile.touch = W_Hagar_Touch2;
        missile.cnt = 0;
        missile.use = W_Hagar_Explode2;
-       missile.think = adaptor_think2use;
+       missile.think = adaptor_think2use_hittype_splash;
        missile.nextthink = time + cvar("g_balance_hagar_secondary_lifetime_min") + random() * cvar("g_balance_hagar_secondary_lifetime_rand");
        PROJECTILE_MAKETRIGGER(missile);
        missile.projectiledeathtype = WEP_HAGAR | HITTYPE_SECONDARY;
index 6b2270af2f26726a3120dbc6ad802a66d0ffbb81..7b4eba094df0d558318942fbb8879947102f6097 100644 (file)
@@ -77,7 +77,7 @@ void W_Hook_Attack2()
        setsize(gren, '0 0 0', '0 0 0');
 
        gren.nextthink = time + cvar("g_balance_hook_secondary_lifetime");
-       gren.think = adaptor_think2use;
+       gren.think = adaptor_think2use_hittype_splash;
        gren.use = W_Hook_Explode2;
        gren.touch = W_Hook_Touch2;
 
index 691a25251aebc1e3377414f057735158124d9d45..83d615884c89e2b81473c279404197acbd65473b 100644 (file)
@@ -28,7 +28,10 @@ void Seeker_Missile_Think()
        float dist;
 
        if (time > self.cnt)
+       {
+               self.projectiledeathtype |= HITTYPE_SPLASH;
                Seeker_Missile_Explode();
+       }
 
        if (!self.switchweapon)
                self.switchweapon = cvar("g_balance_seeker_missile_speed");
@@ -404,7 +407,7 @@ void Seeker_Fire_Flac()
        missile.bot_dodgerating = cvar("g_balance_seeker_flac_damage");
        missile.touch = Seeker_Flac_Explode;
        missile.use = Seeker_Flac_Explode;
-       missile.think = Seeker_Flac_Explode;
+       missile.think = adaptor_think2use_hittype_splash;
        missile.nextthink = time + cvar("g_balance_seeker_flac_lifetime") + cvar("g_balance_seeker_flac_lifetime_rand");
        missile.solid = SOLID_BBOX;
        missile.scale = 0.4; // BUG: the model is too big
diff --git a/textures/gak.tga b/textures/gak.tga
new file mode 100644 (file)
index 0000000..7a6075f
Binary files /dev/null and b/textures/gak.tga differ
diff --git a/textures/gak_gloss.tga b/textures/gak_gloss.tga
new file mode 100644 (file)
index 0000000..43f9d42
Binary files /dev/null and b/textures/gak_gloss.tga differ
diff --git a/textures/gak_norm.tga b/textures/gak_norm.tga
new file mode 100644 (file)
index 0000000..0df3a07
Binary files /dev/null and b/textures/gak_norm.tga differ
diff --git a/textures/gak_shirt.tga b/textures/gak_shirt.tga
new file mode 100644 (file)
index 0000000..4f9d053
Binary files /dev/null and b/textures/gak_shirt.tga differ
diff --git a/textures/gakarmor.tga b/textures/gakarmor.tga
new file mode 100644 (file)
index 0000000..b570c01
Binary files /dev/null and b/textures/gakarmor.tga differ
diff --git a/textures/gakarmor_gloss.tga b/textures/gakarmor_gloss.tga
new file mode 100644 (file)
index 0000000..137f0e5
Binary files /dev/null and b/textures/gakarmor_gloss.tga differ
diff --git a/textures/gakarmor_norm.tga b/textures/gakarmor_norm.tga
new file mode 100644 (file)
index 0000000..910c453
Binary files /dev/null and b/textures/gakarmor_norm.tga differ
diff --git a/textures/gakarmor_pants.tga b/textures/gakarmor_pants.tga
new file mode 100644 (file)
index 0000000..3bfa2f8
Binary files /dev/null and b/textures/gakarmor_pants.tga differ
diff --git a/textures/gakarmor_shirt.tga b/textures/gakarmor_shirt.tga
new file mode 100644 (file)
index 0000000..ce4b6d6
Binary files /dev/null and b/textures/gakarmor_shirt.tga differ