From f4e4fafabb162e073bb382a54d8cb2ffbb9dfa4e Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Sat, 7 Dec 2013 19:39:42 -0500 Subject: [PATCH] Finish moving all Laser code to Blaster code, almost finish new settings --- qcsrc/client/hud.qc | 2 +- qcsrc/client/weapons/projectile.qc | 2 +- qcsrc/common/constants.qh | 4 +- qcsrc/common/weapons/w_blaster.qc | 151 +++++++++++++-------- qcsrc/common/weapons/w_minstanex.qc | 18 ++- qcsrc/server/autocvars.qh | 20 --- qcsrc/server/bot/havocbot/havocbot.qc | 2 +- qcsrc/server/cl_client.qc | 6 +- qcsrc/server/cl_player.qc | 2 +- qcsrc/server/g_damage.qc | 2 +- qcsrc/server/miscfunctions.qc | 2 +- qcsrc/server/mutators/mutator_minstagib.qc | 2 +- qcsrc/server/mutators/mutator_nades.qc | 2 +- qcsrc/server/mutators/mutator_nix.qc | 4 +- qcsrc/server/tturrets/units/unit_ewheel.qc | 2 +- 15 files changed, 125 insertions(+), 96 deletions(-) diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index 63d96eee6..88157fafe 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -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); diff --git a/qcsrc/client/weapons/projectile.qc b/qcsrc/client/weapons/projectile.qc index 52f6e2324..aa825a533 100644 --- a/qcsrc/client/weapons/projectile.qc +++ b/qcsrc/client/weapons/projectile.qc @@ -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; diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh index 1cb3038b1..d437c3f86 100644 --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@ -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; diff --git a/qcsrc/common/weapons/w_blaster.qc b/qcsrc/common/weapons/w_blaster.qc index e77df11bd..b39180c6f 100644 --- a/qcsrc/common/weapons/w_blaster.qc +++ b/qcsrc/common/weapons/w_blaster.qc @@ -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"); diff --git a/qcsrc/common/weapons/w_minstanex.qc b/qcsrc/common/weapons/w_minstanex.qc index 15c33942f..b5bfd6b97 100644 --- a/qcsrc/common/weapons/w_minstanex.qc +++ b/qcsrc/common/weapons/w_minstanex.qc @@ -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: diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index 40d54ff45..edc5801e0 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -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; diff --git a/qcsrc/server/bot/havocbot/havocbot.qc b/qcsrc/server/bot/havocbot/havocbot.qc index fb79a3318..433fce385 100644 --- a/qcsrc/server/bot/havocbot/havocbot.qc +++ b/qcsrc/server/bot/havocbot/havocbot.qc @@ -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)) { diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 558e0c700..05b54db06 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -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; diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index e72567666..1a2711832 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -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 { diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 7b63c3866..b9d2ab9aa 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -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 } diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index c90c641b2..8d7d38c80 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -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); diff --git a/qcsrc/server/mutators/mutator_minstagib.qc b/qcsrc/server/mutators/mutator_minstagib.qc index 9c27e4df0..aee89abcc 100644 --- a/qcsrc/server/mutators/mutator_minstagib.qc +++ b/qcsrc/server/mutators/mutator_minstagib.qc @@ -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; diff --git a/qcsrc/server/mutators/mutator_nades.qc b/qcsrc/server/mutators/mutator_nades.qc index 32d73bf88..001a71a2b 100644 --- a/qcsrc/server/mutators/mutator_nades.qc +++ b/qcsrc/server/mutators/mutator_nades.qc @@ -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)) diff --git a/qcsrc/server/mutators/mutator_nix.qc b/qcsrc/server/mutators/mutator_nix.qc index 70357067e..f0f990122 100644 --- a/qcsrc/server/mutators/mutator_nix.qc +++ b/qcsrc/server/mutators/mutator_nix.qc @@ -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) diff --git a/qcsrc/server/tturrets/units/unit_ewheel.qc b/qcsrc/server/tturrets/units/unit_ewheel.qc index b98388984..e8e677ac8 100644 --- a/qcsrc/server/tturrets/units/unit_ewheel.qc +++ b/qcsrc/server/tturrets/units/unit_ewheel.qc @@ -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); -- 2.39.2