void generic_plat_blocked()
{
#ifdef SVQC
+ SELFPARAM();
if(self.dmg && other.takedamage != DAMAGE_NO)
{
if(self.dmgtime2 < time)
{
- Damage (other, self, self, self.dmg, DEATH_HURTTRIGGER, other.origin, '0 0 0');
+ Damage (other, self, self, self.dmg, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0');
self.dmgtime2 = time + self.dmgtime;
}
// Gib dead/dying stuff
- if(other.deadflag != DEAD_NO)
- Damage (other, self, self, 10000, DEATH_HURTTRIGGER, other.origin, '0 0 0');
+ if(IS_DEAD(other))
+ Damage (other, self, self, 10000, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0');
}
#endif
}
void plat_spawn_inside_trigger()
-{
+{SELFPARAM();
entity trigger;
vector tmin, tmax;
trigger = spawn();
- trigger.touch = plat_center_touch;
+ settouch(trigger, plat_center_touch);
trigger.movetype = MOVETYPE_NONE;
trigger.solid = SOLID_TRIGGER;
trigger.enemy = self;
}
void plat_hit_top()
-{
- sound (self, CH_TRIGGER_SINGLE, self.noise1, VOL_BASE, ATTEN_NORM);
+{SELFPARAM();
+ _sound (self, CH_TRIGGER_SINGLE, self.noise1, VOL_BASE, ATTEN_NORM);
self.state = 1;
self.SUB_THINK = plat_go_down;
}
void plat_hit_bottom()
-{
- sound (self, CH_TRIGGER_SINGLE, self.noise1, VOL_BASE, ATTEN_NORM);
+{SELFPARAM();
+ _sound (self, CH_TRIGGER_SINGLE, self.noise1, VOL_BASE, ATTEN_NORM);
self.state = 2;
}
void plat_go_down()
-{
- sound (self, CH_TRIGGER_SINGLE, self.noise, VOL_BASE, ATTEN_NORM);
+{SELFPARAM();
+ _sound (self, CH_TRIGGER_SINGLE, self.noise, VOL_BASE, ATTEN_NORM);
self.state = 3;
SUB_CalcMove (self.pos2, TSPEED_LINEAR, self.speed, plat_hit_bottom);
}
void plat_go_up()
-{
- sound (self, CH_TRIGGER_SINGLE, self.noise, VOL_BASE, ATTEN_NORM);
+{SELFPARAM();
+ _sound (self, CH_TRIGGER_SINGLE, self.noise, VOL_BASE, ATTEN_NORM);
self.state = 4;
SUB_CalcMove (self.pos1, TSPEED_LINEAR, self.speed, plat_hit_top);
}
void plat_center_touch()
-{
+{SELFPARAM();
#ifdef SVQC
if (!other.iscreature)
return;
#elif defined(CSQC)
if (!IS_PLAYER(other))
return;
- if(PHYS_DEAD(other))
+ if(IS_DEAD(other))
return;
#endif
- self = self.enemy;
- if (self.state == 2)
- plat_go_up ();
- else if (self.state == 1)
- self.SUB_NEXTTHINK = self.SUB_LTIME + 1;
+ if (self.enemy.state == 2)
+ WITHSELF(self.enemy, plat_go_up());
+ else if (self.enemy.state == 1)
+ self.enemy.SUB_NEXTTHINK = self.enemy.SUB_LTIME + 1;
}
void plat_outside_touch()
-{
+{SELFPARAM();
#ifdef SVQC
if (!other.iscreature)
return;
return;
#endif
- self = self.enemy;
- if (self.state == 1)
- plat_go_down ();
+ if (self.enemy.state == 1)
+ WITHSELF(self.enemy, plat_go_down());
}
-void plat_trigger_use()
+void plat_trigger_use(entity this, entity actor, entity trigger)
{
#ifdef SVQC
- if (self.think)
+ if (this.think)
return; // already activated
#elif defined(CSQC)
- if(self.move_think)
+ if(this.move_think)
return;
#endif
- plat_go_down();
+ WITHSELF(this, plat_go_down());
}
void plat_crush()
-{
+{SELFPARAM();
if((self.spawnflags & 4) && (other.takedamage != DAMAGE_NO))
{ // KIll Kill Kill!!
#ifdef SVQC
- Damage (other, self, self, 10000, DEATH_HURTTRIGGER, other.origin, '0 0 0');
+ Damage (other, self, self, 10000, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0');
#endif
}
else
#ifdef SVQC
if((self.dmg) && (other.takedamage != DAMAGE_NO))
{ // Shall we bite?
- Damage (other, self, self, self.dmg, DEATH_HURTTRIGGER, other.origin, '0 0 0');
+ Damage (other, self, self, self.dmg, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0');
// Gib dead/dying stuff
- if(other.deadflag != DEAD_NO)
- Damage (other, self, self, 10000, DEATH_HURTTRIGGER, other.origin, '0 0 0');
+ if(IS_DEAD(other))
+ Damage (other, self, self, 10000, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0');
}
#endif
}
}
-void plat_use()
+void plat_use(entity this, entity actor, entity trigger)
{
- self.use = func_null;
- if (self.state != 4)
+ this.use = func_null;
+ if (this.state != 4)
objerror ("plat_use: not in up state");
- plat_go_down();
+ WITHSELF(this, plat_go_down());
}
.string sound1, sound2;
-void plat_reset()
+void plat_reset(entity this)
{
IFTARGETED
{
- setorigin (self, self.pos1);
- self.state = 4;
- self.use = plat_use;
+ setorigin (this, this.pos1);
+ this.state = 4;
+ this.use = plat_use;
}
else
{
- setorigin (self, self.pos2);
- self.state = 2;
- self.use = plat_trigger_use;
+ setorigin (this, this.pos2);
+ this.state = 2;
+ this.use = plat_trigger_use;
}
#ifdef SVQC
- self.SendFlags |= SF_TRIGGER_RESET;
+ this.SendFlags |= SF_TRIGGER_RESET;
#endif
}