]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Finish moving all Laser code to Blaster code, almost finish new settings
authorSamual Lenks <samual@xonotic.org>
Sun, 8 Dec 2013 00:39:42 +0000 (19:39 -0500)
committerSamual Lenks <samual@xonotic.org>
Sun, 8 Dec 2013 00:39:42 +0000 (19:39 -0500)
15 files changed:
qcsrc/client/hud.qc
qcsrc/client/weapons/projectile.qc
qcsrc/common/constants.qh
qcsrc/common/weapons/w_blaster.qc
qcsrc/common/weapons/w_minstanex.qc
qcsrc/server/autocvars.qh
qcsrc/server/bot/havocbot/havocbot.qc
qcsrc/server/cl_client.qc
qcsrc/server/cl_player.qc
qcsrc/server/g_damage.qc
qcsrc/server/miscfunctions.qc
qcsrc/server/mutators/mutator_minstagib.qc
qcsrc/server/mutators/mutator_nades.qc
qcsrc/server/mutators/mutator_nix.qc
qcsrc/server/tturrets/units/unit_ewheel.qc

index 63d96eee6117035dfec4fb4c83579adfca5f1b43..88157fafeddf03bce4510826395fbb76ea4230fe 100644 (file)
@@ -783,7 +783,7 @@ void HUD_Weapons(void)
                        }
 
                        // draw ammo status bar
-                       if(autocvar_hud_panel_weapons_ammo && self.weapon != WEP_TUBA && self.weapon != WEP_LASER && self.weapon != WEP_PORTO)
+                       if(autocvar_hud_panel_weapons_ammo && self.weapon != WEP_TUBA && self.weapon != WEP_BLASTER && self.weapon != WEP_PORTO) // WEAPONTODO: detect weapons which don't have ammo automatically
                        {
                                a = 0;
                                ammo_type = GetAmmoTypeForWep(self.weapon);
index 52f6e2324b5ecd578a15b1556e9ce90279fefc45..aa825a5332c9fe151afcc45e0cd9b0ae079d4011 100644 (file)
@@ -295,7 +295,7 @@ void Ent_Projectile()
                        case PROJECTILE_GRENADE: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_GRENADE"); break;
                        case PROJECTILE_GRENADE_BOUNCING: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_GRENADE"); break;
                        case PROJECTILE_MINE: setmodel(self, "models/mine.md3");self.traileffect = particleeffectnum("TR_GRENADE"); break;
-                       case PROJECTILE_LASER: setmodel(self, "models/laser.mdl");self.traileffect = particleeffectnum(""); break;
+                       case PROJECTILE_BLASTER: setmodel(self, "models/laser.mdl");self.traileffect = particleeffectnum(""); break;
                        case PROJECTILE_HLAC: setmodel(self, "models/hlac_bullet.md3");self.traileffect = particleeffectnum(""); break;
                        case PROJECTILE_PORTO_RED: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_WIZSPIKE"); self.scale = 4; break;
                        case PROJECTILE_PORTO_BLUE: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_WIZSPIKE"); self.scale = 4; break;
index 1cb3038b17e8f94806074005bc0c569bc20a29f7..d437c3f86b2964258dfa923977308587de94a17c 100644 (file)
@@ -324,7 +324,7 @@ const float ATTEN_MAX = 3.984375;
 #define VOL_BASE 0.7
 #define VOL_BASEVOICE 1.0
 
-// this sets sounds and other properties of the projectiles in csqc
+// WEAPONTODO: move this into separate/new projectile handling code // this sets sounds and other properties of the projectiles in csqc
 const float PROJECTILE_ELECTRO = 1;
 const float PROJECTILE_ROCKET = 2;
 const float PROJECTILE_TAG = 3;
@@ -333,7 +333,7 @@ const float PROJECTILE_ELECTRO_BEAM = 6;
 const float PROJECTILE_GRENADE = 7;
 const float PROJECTILE_GRENADE_BOUNCING = 8;
 const float PROJECTILE_MINE = 9;
-const float PROJECTILE_LASER = 10;
+const float PROJECTILE_BLASTER = 10;
 const float PROJECTILE_HLAC = 11;
 const float PROJECTILE_SEEKER = 12;
 const float PROJECTILE_FLAC = 13;
index e77df11bdde346e969e96a675888f215d969b217..b39180c6f93ca907092b20806c652235da624ba7 100644 (file)
@@ -12,7 +12,6 @@ REGISTER_WEAPON(
 );
 
 #define BLASTER_SETTINGS(w_cvar,w_prop) \
-       w_cvar(WEP_BLASTER, blaster, MO_BOTH, ammo) \
        w_cvar(WEP_BLASTER, blaster, MO_BOTH, animtime) \
        w_cvar(WEP_BLASTER, blaster, MO_BOTH, damage) \
        w_cvar(WEP_BLASTER, blaster, MO_BOTH, delay) \
@@ -23,6 +22,7 @@ REGISTER_WEAPON(
        w_cvar(WEP_BLASTER, blaster, MO_BOTH, refire) \
        w_cvar(WEP_BLASTER, blaster, MO_BOTH, shotangle) \
        w_cvar(WEP_BLASTER, blaster, MO_BOTH, speed) \
+       w_cvar(WEP_BLASTER, blaster, MO_BOTH, spread) \
        w_cvar(WEP_BLASTER, blaster, MO_NONE, secondary) \
        w_prop(WEP_BLASTER, blaster, reloading_ammo, reload_ammo) \
        w_prop(WEP_BLASTER, blaster, reloading_time, reload_time) \
@@ -31,7 +31,11 @@ REGISTER_WEAPON(
 
 #ifdef SVQC
 BLASTER_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP)
-#define PROJISPRIMARY(ent) ent.dmg
+.float blaster_damage;
+.float blaster_edgedamage;
+.float blaster_radius;
+.float blaster_force;
+.float blaster_lifetime;
 #endif
 #else
 #ifdef SVQC
@@ -44,36 +48,18 @@ void W_Blaster_Touch()
 
        self.event_damage = func_null;
 
-       if(PROJISPRIMARY(self))
-       {
-               RadiusDamage(
-                       self,
-                       self.realowner,
-                       WEP_CVAR_PRI(blaster, damage),
-                       WEP_CVAR_PRI(blaster, edgedamage),
-                       WEP_CVAR_PRI(blaster, radius),
-                       world,
-                       world,
-                       WEP_CVAR_PRI(blaster, force),
-                       self.projectiledeathtype,
-                       other
-               );
-       }
-       else
-       {
-               RadiusDamage(
-                       self,
-                       self.realowner,
-                       WEP_CVAR_SEC(blaster, damage),
-                       WEP_CVAR_SEC(blaster, edgedamage),
-                       WEP_CVAR_SEC(blaster, radius),
-                       world,
-                       world,
-                       WEP_CVAR_SEC(blaster, force),
-                       self.projectiledeathtype,
-                       other
-               );
-       }
+       RadiusDamage(
+               self,
+               self.realowner,
+               self.blaster_damage,
+               self.blaster_edgedamage,
+               self.blaster_radius,
+               world,
+               world,
+               self.blaster_force,
+               self.projectiledeathtype,
+               other
+       );
        
        remove(self);
 }
@@ -82,29 +68,53 @@ void W_Blaster_Think()
 {
        self.movetype = MOVETYPE_FLY;
        self.think = SUB_Remove;
-       self.nextthink = time + WEP_CVAR_BOTH(blaster, PROJISPRIMARY(self), lifetime);
+       self.nextthink = time + self.blaster_lifetime;
        CSQCProjectile(self, TRUE, PROJECTILE_BLASTER, TRUE);
 }
 
-void W_Blaster_Attack(float isprimary)
+void W_Blaster_Attack(
+       float atk_shotangle,
+       float atk_damage,
+       float atk_edgedamage,
+       float atk_radius,
+       float atk_force,
+       float atk_speed,
+       float atk_spread,
+       float atk_delay,
+       float atk_lifetime)
 {
-       float a = WEP_CVAR_BOTH(blaster, isprimary, shotangle);
-       vector s_forward = v_forward * cos(a * DEG2RAD) + v_up * sin(a * DEG2RAD);
+       vector s_forward = v_forward * cos(atk_shotangle * DEG2RAD) + v_up * sin(atk_shotangle * DEG2RAD);
 
-       W_SetupShot_Dir(self, s_forward, FALSE, 3, "weapons/lasergun_fire.wav", CH_WEAPON_B, WEP_CVAR_BOTH(blaster, isprimary, damage));
+       W_SetupShot_Dir(self, s_forward, FALSE, 3, "weapons/lasergun_fire.wav", CH_WEAPON_B, atk_damage);
        pointparticles(particleeffectnum("laser_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
        entity missile = spawn();
        missile.owner = missile.realowner = self;
-       missile.classname = "laserbolt"; // WEAPONTODO
+       missile.classname = "blasterbolt";
        missile.bot_dodge = TRUE;
-       missile.bot_dodgerating = WEP_CVAR_BOTH(blaster, isprimary, damage);
-       PROJISPRIMARY(missile) = isprimary;
+       missile.bot_dodgerating = atk_damage;
        PROJECTILE_MAKETRIGGER(missile);
 
+       missile.blaster_damage = atk_damage;
+       missile.blaster_edgedamage = atk_edgedamage;
+       missile.blaster_radius = atk_radius;
+       missile.blaster_force = atk_force;
+       missile.blaster_lifetime = atk_lifetime;
+
        setorigin(missile, w_shotorg);
        setsize(missile, '0 0 0', '0 0 0');
-       WEP_SETUPPROJVELOCITY(missile, blaster, MO_BOTH, isprimary);
+       
+       W_SetupProjectileVelocityEx(
+               missile,
+               w_shotdir,
+               v_up,
+               atk_speed,
+               0,
+               0,
+               atk_spread,
+               FALSE
+       );
+       
        missile.angles = vectoangles(missile.velocity);
        
        //missile.glow_color = 250; // 244, 250
@@ -115,7 +125,7 @@ void W_Blaster_Attack(float isprimary)
        missile.missile_flags = MIF_SPLASH;
        missile.projectiledeathtype = WEP_BLASTER; 
        missile.think = W_Blaster_Think;
-       missile.nextthink = time + WEP_CVAR_BOTH(blaster, isprimary, delay);
+       missile.nextthink = time + atk_delay;
 
        other = missile; MUTATOR_CALLHOOK(EditProjectile);
 
@@ -134,50 +144,72 @@ float W_Blaster(float request)
        {
                case WR_AIM:
                {
-                       if(autocvar_g_balance_laser_secondary)
+                       if(WEP_CVAR(blaster, secondary))
                        {
-                               if((random() * (autocvar_g_balance_laser_primary_damage + autocvar_g_balance_laser_secondary_damage)) > autocvar_g_balance_laser_primary_damage)
-                                       { self.BUTTON_ATCK2 = bot_aim(autocvar_g_balance_laser_secondary_speed, 0, autocvar_g_balance_laser_secondary_lifetime, FALSE); }
+                               if((random() * (WEP_CVAR_PRI(blaster, damage) + WEP_CVAR_SEC(blaster, damage))) > WEP_CVAR_PRI(blaster, damage))
+                                       { self.BUTTON_ATCK2 = bot_aim(WEP_CVAR_SEC(blaster, speed), 0, WEP_CVAR_SEC(blaster, lifetime), FALSE); }
                                else
-                                       { self.BUTTON_ATCK = bot_aim(autocvar_g_balance_laser_primary_speed, 0, autocvar_g_balance_laser_primary_lifetime, FALSE); }
+                                       { self.BUTTON_ATCK = bot_aim(WEP_CVAR_PRI(blaster, speed), 0, WEP_CVAR_PRI(blaster, lifetime), FALSE); }
                        }
                        else
-                               { self.BUTTON_ATCK = bot_aim(autocvar_g_balance_laser_primary_speed, 0, autocvar_g_balance_laser_primary_lifetime, FALSE); }
+                               { self.BUTTON_ATCK = bot_aim(WEP_CVAR_PRI(blaster, speed), 0, WEP_CVAR_PRI(blaster, lifetime), FALSE); }
 
                        return TRUE;
                }
                
                case WR_THINK:
                {
-                       if(autocvar_g_balance_laser_reload_ammo && self.clip_load < 1) // forced reload
+                       if(WEP_CVAR(blaster, reload_ammo) && self.clip_load < 1) // forced reload
+                       {
                                WEP_ACTION(self.weapon, WR_RELOAD);
+                       }
                        else if(self.BUTTON_ATCK)
                        {
-                               if(weapon_prepareattack(0, autocvar_g_balance_laser_primary_refire))
+                               if(weapon_prepareattack(0, WEP_CVAR_PRI(blaster, refire)))
                                {
                                        W_DecreaseAmmo(ammo_none, 1, TRUE); // WEAPONTODO is this necessary?
-                                       W_Blaster_Attack(FALSE);
-                                       weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_laser_primary_animtime, w_ready);
+                                       W_Blaster_Attack(
+                                               WEP_CVAR_PRI(blaster, shotangle),
+                                               WEP_CVAR_PRI(blaster, damage),
+                                               WEP_CVAR_PRI(blaster, edgedamage),
+                                               WEP_CVAR_PRI(blaster, radius),
+                                               WEP_CVAR_PRI(blaster, force),
+                                               WEP_CVAR_PRI(blaster, speed),
+                                               WEP_CVAR_PRI(blaster, spread),
+                                               WEP_CVAR_PRI(blaster, delay),
+                                               WEP_CVAR_PRI(blaster, lifetime)
+                                       );
+                                       weapon_thinkf(WFRAME_FIRE1, WEP_CVAR_PRI(blaster, animtime), w_ready);
                                }
                        }
                        else if(self.BUTTON_ATCK2)
                        {
-                               switch(autocvar_g_balance_laser_secondary)
+                               switch(WEP_CVAR(blaster, secondary))
                                {
                                        case 0: // switch to last used weapon
                                        {
-                                               if(self.switchweapon == WEP_LASER) // don't do this if already switching
+                                               if(self.switchweapon == WEP_BLASTER) // don't do this if already switching
                                                        W_LastWeapon();
                                                break;
                                        }
 
                                        case 1: // normal projectile secondary
                                        {
-                                               if(weapon_prepareattack(1, autocvar_g_balance_laser_secondary_refire))
+                                               if(weapon_prepareattack(1, WEP_CVAR_SEC(blaster, refire)))
                                                {
                                                        W_DecreaseAmmo(ammo_none, 1, TRUE);
-                                                       W_Blaster_Attack(TRUE);
-                                                       weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_laser_secondary_animtime, w_ready);
+                                                       W_Blaster_Attack(
+                                                               WEP_CVAR_SEC(blaster, shotangle),
+                                                               WEP_CVAR_SEC(blaster, damage),
+                                                               WEP_CVAR_SEC(blaster, edgedamage),
+                                                               WEP_CVAR_SEC(blaster, radius),
+                                                               WEP_CVAR_SEC(blaster, force),
+                                                               WEP_CVAR_SEC(blaster, speed),
+                                                               WEP_CVAR_SEC(blaster, spread),
+                                                               WEP_CVAR_SEC(blaster, delay),
+                                                               WEP_CVAR_SEC(blaster, lifetime)
+                                                       );
+                                                       weapon_thinkf(WFRAME_FIRE2, WEP_CVAR_SEC(blaster, animtime), w_ready);
                                                }
 
                                                break;
@@ -193,6 +225,7 @@ float W_Blaster(float request)
                        precache_model("models/weapons/v_laser.md3");
                        precache_model("models/weapons/h_laser.iqm");
                        precache_sound("weapons/lasergun_fire.wav");
+                       BLASTER_SETTINGS(WEP_SKIPCVAR, WEP_SET_PROP)
                        return TRUE;
                }
                
@@ -208,6 +241,12 @@ float W_Blaster(float request)
                        return TRUE; // laser has infinite ammo
                }
                
+               case WR_CONFIG:
+               {
+                       BLASTER_SETTINGS(WEP_CONFIG_WRITE_CVARS, WEP_CONFIG_WRITE_PROPS)
+                       return TRUE;
+               }
+               
                case WR_RELOAD:
                {
                        W_Reload(0, "weapons/reload.wav");
index 15c33942f33a6447d3883a43a5afb6695c7e7cdb..b5bfd6b973bde7295f16742dabd21fba19a3e2c6 100644 (file)
@@ -97,7 +97,7 @@ float w_minstanex(float req)
                        if(self.ammo_cells > 0)
                                self.BUTTON_ATCK = bot_aim(1000000, 0, 1, FALSE);
                        else
-                               self.BUTTON_ATCK2 = bot_aim(autocvar_g_balance_laser_primary_speed, 0, autocvar_g_balance_laser_primary_lifetime, FALSE);
+                               self.BUTTON_ATCK2 = bot_aim(WEP_CVAR_PRI(blaster, speed), 0, WEP_CVAR_PRI(blaster, lifetime), FALSE); // WEAPONTODO: replace with proper minstanex cvars
                                
                        return TRUE;
                }
@@ -131,8 +131,18 @@ float w_minstanex(float req)
                                        // ugly minstagib hack to reuse the fire mode of the laser
                                        float w;
                                        w = self.weapon;
-                                       self.weapon = WEP_LASER;
-                                       W_Laser_Attack(FALSE);
+                                       self.weapon = WEP_BLASTER;
+                                       W_Blaster_Attack( // WEAPONTODO: replace with proper minstanex cvars
+                                               WEP_CVAR_PRI(blaster, shotangle),
+                                               WEP_CVAR_PRI(blaster, damage),
+                                               WEP_CVAR_PRI(blaster, edgedamage),
+                                               WEP_CVAR_PRI(blaster, radius),
+                                               WEP_CVAR_PRI(blaster, force),
+                                               WEP_CVAR_PRI(blaster, speed),
+                                               WEP_CVAR_PRI(blaster, spread),
+                                               WEP_CVAR_PRI(blaster, delay),
+                                               WEP_CVAR_PRI(blaster, lifetime)
+                                       );
                                        self.weapon = w;
                                        
                                        // now do normal refire
@@ -152,7 +162,7 @@ float w_minstanex(float req)
                        precache_sound ("weapons/nexwhoosh1.wav");
                        precache_sound ("weapons/nexwhoosh2.wav");
                        precache_sound ("weapons/nexwhoosh3.wav");
-                       W_Laser(WR_INIT);
+                       W_Blaster(WR_INIT); // Samual: Is this really the proper thing to do? Didn't we already run this previously? 
                        return TRUE;
                }
                case WR_SETUP:
index 40d54ff45e9ae2e9dde058cc555e3cd956b9e4a2..edc5801e00ad6c87a2ea0385fb9755b9f3ea1b48 100644 (file)
@@ -194,33 +194,13 @@ float autocvar_g_balance_kill_antispam;
 //float autocvar_g_balance_laser_melee_time;
 //float autocvar_g_balance_laser_melee_traces;
 //float autocvar_g_balance_laser_primary;
-float autocvar_g_balance_laser_primary_animtime;
-float autocvar_g_balance_laser_primary_damage;
-float autocvar_g_balance_laser_primary_delay;
-float autocvar_g_balance_laser_primary_edgedamage;
-float autocvar_g_balance_laser_primary_force;
 //float autocvar_g_balance_laser_primary_force_other_scale;
 //float autocvar_g_balance_laser_primary_force_velocitybias;
 //float autocvar_g_balance_laser_primary_force_zscale;
-float autocvar_g_balance_laser_primary_lifetime;
-float autocvar_g_balance_laser_primary_radius;
-float autocvar_g_balance_laser_primary_refire;
-float autocvar_g_balance_laser_primary_shotangle;
-float autocvar_g_balance_laser_primary_speed;
 //float autocvar_g_balance_laser_primary_spread;
-float autocvar_g_balance_laser_reload_ammo;
-float autocvar_g_balance_laser_secondary;
-float autocvar_g_balance_laser_secondary_animtime;
-float autocvar_g_balance_laser_secondary_damage;
-float autocvar_g_balance_laser_secondary_edgedamage;
-float autocvar_g_balance_laser_secondary_force;
 //float autocvar_g_balance_laser_secondary_force_other_scale;
 //float autocvar_g_balance_laser_secondary_force_velocitybias;
 //float autocvar_g_balance_laser_secondary_force_zscale;
-float autocvar_g_balance_laser_secondary_lifetime;
-float autocvar_g_balance_laser_secondary_radius;
-float autocvar_g_balance_laser_secondary_refire;
-float autocvar_g_balance_laser_secondary_speed;
 //float autocvar_g_balance_laser_shockwave_damage;
 //float autocvar_g_balance_laser_shockwave_distance;
 //float autocvar_g_balance_laser_shockwave_edgedamage;
index fb79a3318c37748721e5da4bcf4e7beff7990629..433fce385348ad2068a86bb9afa5feceb4fe8cd8 100644 (file)
@@ -982,7 +982,7 @@ void havocbot_chooseweapon()
        {
                // If no weapon was chosen get the first available weapon
                if(self.weapon==0)
-               for(i=WEP_LASER + 1; i < WEP_COUNT ; ++i)
+               for(i=WEP_BLASTER + 1; i < WEP_COUNT ; ++i) // Samual: This seems strange compared to other weapon loops...
                {
                        if(client_hasweapon(self, i, TRUE, FALSE))
                        {
index 558e0c7003f6e49b7caa6e49fad8df091bf57780..05b54db065973bfe52b1bf5a7b4cea904b1f20fd 100644 (file)
@@ -458,13 +458,13 @@ void PutClientInServer (void)
                else
                        self.superweapons_finished = 0;
 
-               if(g_weaponarena_random)
+               if(g_weaponarena_random) // WEAPONTODO: more stuff that should be in a mutator. also: rename those cvars
                {
                        if(g_weaponarena_random_with_laser)
-                               self.weapons &= ~WEPSET_LASER;
+                               self.weapons &= ~WEPSET_BLASTER;
                        W_RandomWeapons(self, g_weaponarena_random);
                        if(g_weaponarena_random_with_laser)
-                               self.weapons |= WEPSET_LASER;
+                               self.weapons |= WEPSET_BLASTER;
                }
 
                self.items = start_items;
index e7256766607d87988296dbae02556508435423b7..1a2711832c87504dd635eeec9b9da4b7621cf3c4 100644 (file)
@@ -454,7 +454,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
                                        }
 
                                        if(sound_allowed(MSG_BROADCAST, attacker))
-                                       if(!DEATH_ISWEAPON(deathtype, WEP_LASER) || attacker != self || self.health < 2 * autocvar_g_balance_laser_primary_damage * autocvar_g_balance_selfdamagepercent + 1)
+                                       if(!DEATH_ISWEAPON(deathtype, WEP_BLASTER) || attacker != self || self.health < 2 * WEP_CVAR_PRI(blaster, damage) * autocvar_g_balance_selfdamagepercent + 1) // WEAPONTODO: create separate limit for pain notification with laser
                                        if(self.health > 1)
                                        // exclude pain sounds for laserjumps as long as you aren't REALLY low on health and would die of the next two
                                        {
index 7b63c3866016c2dd1faf904d7e78b14f3d3c01a8..b9d2ab9aae78052befe77b1cbfd31e56d78e37e1 100644 (file)
@@ -115,7 +115,7 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype)
                else if(!(attacker.weapons & WepSet_FromWeapon(culprit)))
                        culprit = attacker.weapon;
 
-               if(g_weaponarena_random_with_laser && culprit == WEP_LASER)
+               if(g_weaponarena_random_with_laser && culprit == WEP_BLASTER) // WEAPONTODO: Shouldn't this be in a mutator?
                {
                        // no exchange
                }
index c90c641b2b33f155234081abe69258a7763d31dd..8d7d38c80a5e6d5fc6cfa42cd460bbf442f8260d 100644 (file)
@@ -646,7 +646,7 @@ float want_weapon(string cvarprefix, entity weaponinfo, float allguns) // WEAPON
        else if (g_nexball)
                d = 0; // weapon is set a few lines later
        else
-               d = (i == WEP_LASER || i == WEP_SHOCKWAVE);
+               d = (i == WEP_BLASTER || i == WEP_SHOCKWAVE); // WEAPONTODO: add spawnflag for hard coded spawn weapons
 
        if(g_grappling_hook) // if possible, redirect off-hand hook to on-hand hook
                d |= (i == WEP_HOOK);
index 9c27e4df05e9556a8a158e83af1b60373e79c51a..aee89abcc5f66070f9708b8add830ffa4022dd39 100644 (file)
@@ -235,7 +235,7 @@ MUTATOR_HOOKFUNCTION(minstagib_PlayerDamage)
                }
 
                if(IS_PLAYER(frag_attacker))
-               if (DEATH_ISWEAPON(frag_deathtype, WEP_LASER))
+               if(DEATH_ISWEAPON(frag_deathtype, WEP_BLASTER))
                {
                        frag_damage = 0;
                        frag_mirrordamage = 0;
index 32d73bf88fb72e121ea617917200e11e017215e1..001a71a2b09bba7e021c8651b7025df4cb71b6ed 100644 (file)
@@ -101,7 +101,7 @@ void nade_beep()
 
 void nade_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
 {
-       if(DEATH_ISWEAPON(deathtype, WEP_LASER))
+       if(DEATH_ISWEAPON(deathtype, WEP_BLASTER))
                return;
 
        if(DEATH_ISWEAPON(deathtype, WEP_NEX) || DEATH_ISWEAPON(deathtype, WEP_MINSTANEX))
index 70357067e466c6ee429e133f06347c0917a8395a..f0f99012226324306aeb121335e2d1931af9fd35 100644 (file)
@@ -22,7 +22,7 @@ float NIX_CanChooseWeapon(float wpn)
        }
        else
        {
-               if(wpn == WEP_LASER && g_nix_with_laser)
+               if(wpn == WEP_BLASTER && g_nix_with_laser) // WEAPONTODO: rename to g_nix_with_blaster
                        return FALSE;
                if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
                        return FALSE;
@@ -138,7 +138,7 @@ void NIX_GiveCurrentWeapon()
 
        self.weapons = '0 0 0';
        if(g_nix_with_laser)
-               self.weapons &= ~WEPSET_LASER;
+               self.weapons &= ~WEPSET_BLASTER;
        self.weapons |= WepSet_FromWeapon(nix_weapon);
 
        if(self.switchweapon != nix_weapon)
index b98388984ce16a15e1d245f4c6d8bf84afac2400..e8e677ac8c1dd4a6b36c5a83d72a5b35283846fe 100644 (file)
@@ -13,7 +13,7 @@ void ewheel_attack()
     {
         turret_do_updates(self);
 
-        _mis = turret_projectile("weapons/lasergun_fire.wav", 1, 0, DEATH_TURRET_EWHEEL, PROJECTILE_LASER, TRUE, TRUE);
+        _mis = turret_projectile("weapons/lasergun_fire.wav", 1, 0, DEATH_TURRET_EWHEEL, PROJECTILE_BLASTER, TRUE, TRUE); // WEAPONTODO: this is not a projectile made by the blaster, add separate effect for it
         _mis.missile_flags = MIF_SPLASH;
 
         pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1);