return; // don't come down automatically
if (this.classname == "door")
{
- SUB_THINK(this, door_go_down);
+ setthink(this, door_go_down);
} else
{
- SUB_THINK(this, door_rotating_go_down);
+ setthink(this, door_rotating_go_down);
}
- this.SUB_NEXTTHINK = this.SUB_LTIME + this.wait;
+ this.nextthink = this.ltime + this.wait;
}
void door_hit_bottom(entity this)
if (this.state == STATE_TOP)
{ // reset top wait time
- this.SUB_NEXTTHINK = this.SUB_LTIME + this.wait;
+ this.nextthink = this.ltime + this.wait;
return;
}
if(!IS_PLAYER(player))
return false;
- int valid = (door.itemkeys & player.itemkeys);
+ entity store = player;
+#ifdef SVQC
+ store = PS(player);
+#endif
+ int valid = (door.itemkeys & store.itemkeys);
door.itemkeys &= ~valid; // only some of the needed keys were given
if(!door.itemkeys)
this.state = STATE_TOP;
if (this.spawnflags & DOOR_TOGGLE)
return; // don't come down automatically
- SUB_THINK(this, door_rotating_go_down);
- this.SUB_NEXTTHINK = this.SUB_LTIME + this.wait;
+ setthink(this, door_rotating_go_down);
+ this.nextthink = this.ltime + this.wait;
}
void door_rotating_hit_bottom(entity this)
if (this.state == STATE_TOP)
{ // reset top wait time
- this.SUB_NEXTTHINK = this.SUB_LTIME + this.wait;
+ this.nextthink = this.ltime + this.wait;
return;
}
if (this.noise2 != "")
WriteShort(MSG_ENTITY, this.speed);
WriteByte(MSG_ENTITY, this.lip);
WriteByte(MSG_ENTITY, this.state);
- WriteCoord(MSG_ENTITY, this.SUB_LTIME);
+ WriteCoord(MSG_ENTITY, this.ltime);
}
if(sf & SF_TRIGGER_RESET)
void door_init_startopen(entity this)
{
- SUB_SETORIGIN(this, this.pos2);
+ setorigin(this, this.pos2);
this.pos2 = this.pos1;
this.pos1 = this.origin;
void door_reset(entity this)
{
- SUB_SETORIGIN(this, this.pos1);
- this.SUB_VELOCITY = '0 0 0';
+ setorigin(this, this.pos1);
+ this.velocity = '0 0 0';
this.state = STATE_BOTTOM;
- SUB_THINK(this, func_null);
- this.SUB_NEXTTHINK = 0;
+ setthink(this, func_null);
+ this.nextthink = 0;
#ifdef SVQC
this.SendFlags |= SF_TRIGGER_RESET;
if (this.sounds > 0)
{
- precache_sound ("plats/medplat1.wav");
- precache_sound ("plats/medplat2.wav");
this.noise2 = "plats/medplat1.wav";
this.noise1 = "plats/medplat2.wav";
}
+ if(this.noise1 && this.noise1 != "") { precache_sound(this.noise1); }
+ if(this.noise2 && this.noise2 != "") { precache_sound(this.noise2); }
+
if (!this.speed)
this.speed = 100;
if (!this.wait)
if (!this.lip)
this.lip = 8;
- this.pos1 = this.SUB_ORIGIN;
+ this.pos1 = this.origin;
this.pos2 = this.pos1 + this.movedir*(fabs(this.movedir*this.size) - this.lip);
if(this.spawnflags & DOOR_NONSOLID)
this.speed = ReadShort();
this.lip = ReadByte();
this.state = ReadByte();
- this.SUB_LTIME = ReadCoord();
+ this.ltime = ReadCoord();
this.solid = SOLID_BSP;
set_movetype(this, MOVETYPE_PUSH);