X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fturrets%2Fturret%2Fplasma_dual.qc;h=b1e7d5850aa08416e77ed650418234dc4eace550;hb=3cc1e9c4a52d70b4d7097a0a584cbb391570c6e2;hp=9874fb3cbd26bc1273a74efaead905e08300a72c;hpb=490a31934aa67cc7de5299a4d3f625d5271f8583;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/turrets/turret/plasma_dual.qc b/qcsrc/common/turrets/turret/plasma_dual.qc index 9874fb3cb..b1e7d5850 100644 --- a/qcsrc/common/turrets/turret/plasma_dual.qc +++ b/qcsrc/common/turrets/turret/plasma_dual.qc @@ -1,61 +1,36 @@ -#ifndef TURRET_PLASMA_DUAL_H -#define TURRET_PLASMA_DUAL_H - -#include "plasma_weapon.qh" - -CLASS(PlasmaDualAttack, PlasmaAttack) -/* refname */ ATTRIB(PlasmaDualAttack, netname, string, "turret_plasma_dual"); -/* wepname */ ATTRIB(PlasmaDualAttack, m_name, string, _("Dual plasma")); -ENDCLASS(PlasmaDualAttack) -REGISTER_WEAPON(PLASMA_DUAL, NEW(PlasmaDualAttack)); - -CLASS(DualPlasmaTurret, PlasmaTurret) -/* spawnflags */ ATTRIB(DualPlasmaTurret, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_MEDPROJ | TUR_FLAG_PLAYER); -/* mins */ ATTRIB(DualPlasmaTurret, mins, vector, '-32 -32 0'); -/* maxs */ ATTRIB(DualPlasmaTurret, maxs, vector, '32 32 64'); -/* modelname */ ATTRIB(DualPlasmaTurret, mdl, string, "base.md3"); -/* model */ ATTRIB_STRZONE(DualPlasmaTurret, model, string, strcat("models/turrets/", this.mdl)); -/* head_model */ ATTRIB_STRZONE(DualPlasmaTurret, head_model, string, strcat("models/turrets/", "plasmad.md3")); -/* netname */ ATTRIB(DualPlasmaTurret, netname, string, "plasma_dual"); -/* fullname */ ATTRIB(DualPlasmaTurret, turret_name, string, _("Dual Plasma Cannon")); - ATTRIB(DualPlasmaTurret, m_weapon, Weapon, WEP_PLASMA_DUAL); -ENDCLASS(DualPlasmaTurret) -REGISTER_TURRET(PLASMA_DUAL, NEW(DualPlasmaTurret)); - -#endif +#include "plasma_dual.qh" #ifdef IMPLEMENTATION #ifdef SVQC -spawnfunc(turret_plasma_dual) { if (!turret_initialize(TUR_PLASMA_DUAL)) remove(this); } +spawnfunc(turret_plasma_dual) { if (!turret_initialize(this, TUR_PLASMA_DUAL)) delete(this); } METHOD(DualPlasmaTurret, tr_attack, void(DualPlasmaTurret thistur, entity it)) { - SELFPARAM(); if (g_instagib) { - FireRailgunBullet (self, self.tur_shotorg, self.tur_shotorg + self.tur_shotdir_updated * MAX_SHOT_DISTANCE, 10000000000, + .entity weaponentity = weaponentities[0]; // TODO: unhardcode + FireRailgunBullet (it, weaponentity, it.tur_shotorg, it.tur_shotorg + it.tur_shotdir_updated * MAX_SHOT_DISTANCE, 10000000000, 800, 0, 0, 0, 0, DEATH_TURRET_PLASMA.m_id); - Send_Effect(EFFECT_VORTEX_MUZZLEFLASH, self.tur_shotorg, self.tur_shotdir_updated * 1000, 1); + Send_Effect(EFFECT_VORTEX_MUZZLEFLASH, it.tur_shotorg, it.tur_shotdir_updated * 1000, 1); // teamcolor / hit beam effect vector v = WarpZone_UnTransformOrigin(WarpZone_trace_transform, trace_endpos); - WarpZone_TrailParticles(world, particleeffectnum(EFFECT_VAPORIZER(self.team)), self.tur_shotorg, v); + WarpZone_TrailParticles(NULL, particleeffectnum(EFFECT_VAPORIZER(it.team)), it.tur_shotorg, v); } else { SUPER(PlasmaTurret).tr_attack(thistur, it); } - self.tur_head.frame += 1; + it.tur_head.frame += 1; } METHOD(DualPlasmaTurret, tr_think, void(DualPlasmaTurret thistur, entity it)) { - SELFPARAM(); - if ((self.tur_head.frame != 0) && (self.tur_head.frame != 3)) - self.tur_head.frame = self.tur_head.frame + 1; + if ((it.tur_head.frame != 0) && (it.tur_head.frame != 3)) + it.tur_head.frame = it.tur_head.frame + 1; - if (self.tur_head.frame > 6) - self.tur_head.frame = 0; + if (it.tur_head.frame > 6) + it.tur_head.frame = 0; } #endif