.float crylink_waitrelease;
.entity crylink_lastgroup;
+.entity crylink_owner; // we can't use realowner, as that's subject to change
+
.entity queuenext;
.entity queueprev;
#endif
void W_Crylink_Dequeue(entity e)
{
- W_Crylink_Dequeue_Raw(e.realowner, e.queueprev, e, e.queuenext);
+ W_Crylink_Dequeue_Raw(e.crylink_owner, e.queueprev, e, e.queuenext);
}
void W_Crylink_Reset(entity this)
a = bound(0, 1 - (time - e.fade_time) * e.fade_rate, 1);
.entity weaponentity = e.weaponentity_fld;
- if(e == e.realowner.(weaponentity).crylink_lastgroup)
- e.realowner.(weaponentity).crylink_lastgroup = NULL;
+ if(e == e.crylink_owner.(weaponentity).crylink_lastgroup)
+ e.crylink_owner.(weaponentity).crylink_lastgroup = NULL;
float isprimary = !(e.projectiledeathtype & HITTYPE_SECONDARY);
if(totaldamage && ((WEP_CVAR_BOTH(crylink, isprimary, linkexplode) == 2) || ((WEP_CVAR_BOTH(crylink, isprimary, linkexplode) == 1) && !W_Crylink_Touch_WouldHitFriendly(this, WEP_CVAR_BOTH(crylink, isprimary, radius)))))
{
.entity weaponentity = this.weaponentity_fld;
- if(this == this.realowner.(weaponentity).crylink_lastgroup)
- this.realowner.(weaponentity).crylink_lastgroup = NULL;
+ if(this == this.crylink_owner.(weaponentity).crylink_lastgroup)
+ this.crylink_owner.(weaponentity).crylink_lastgroup = NULL;
W_Crylink_LinkExplode(this.queuenext, this, toucher);
this.classname = "spike_oktoremove";
delete(this);
proj = new(spike);
proj.reset = W_Crylink_Reset;
proj.realowner = proj.owner = actor;
+ proj.crylink_owner = actor;
proj.weaponentity_fld = weaponentity;
proj.bot_dodge = true;
proj.bot_dodgerating = WEP_CVAR_PRI(crylink, damage);
proj.weaponentity_fld = weaponentity;
proj.reset = W_Crylink_Reset;
proj.realowner = proj.owner = actor;
+ proj.crylink_owner = actor;
proj.bot_dodge = true;
proj.bot_dodgerating = WEP_CVAR_SEC(crylink, damage);
if(shots == 1) {