mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-29 23:42:08 +00:00
bf577916ec
With the exception of isWorldTour, isPlutoPak and isShareware when playing Duke these are always constant and this way can be used to completely eliminate unneeded code.
230 lines
3.8 KiB
Text
230 lines
3.8 KiB
Text
|
|
class DukeActivator : DukeActor
|
|
{
|
|
override void Initialize()
|
|
{
|
|
self.cstat = CSTAT_SPRITE_INVISIBLE;
|
|
self.ChangeStat(STAT_ACTIVATOR);
|
|
}
|
|
|
|
/* this first needs work on the sector effectors.
|
|
override void onActivate(int low, DukePlayer plr)
|
|
{
|
|
switch (self.hitag)
|
|
{
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
if (self.sector.floorz != self.sector.ceilingz)
|
|
{
|
|
continue;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (self.sector.floorz == self.sector.ceilingz)
|
|
{
|
|
continue;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (self.sector.lotag < 3)
|
|
{
|
|
DukeSectIterator itr;
|
|
for(let a2 = itr.First(self.sector); a2; a2 = itr.Next())
|
|
{
|
|
// todo: move this into the effectors as a virtual override.
|
|
if (a2.statnum == STAT_EFFECTOR) switch (a2.lotag)
|
|
{
|
|
case SE_18_INCREMENTAL_SECTOR_RISE_FALL:
|
|
if (isRRRA()) break;
|
|
|
|
case SE_36_PROJ_SHOOTER:
|
|
case SE_31_FLOOR_RISE_FALL:
|
|
case SE_32_CEILING_RISE_FALL:
|
|
a2.counter = 1 - a2.counter;
|
|
a2.callsound(self.sector());
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (k == -1 && (self.sector.lotag & 0xff) == SE_22_TEETH_DOOR)
|
|
k = act.callsound(self.sector);
|
|
|
|
self.operatesectors(self.sector);
|
|
}
|
|
*/
|
|
}
|
|
|
|
class DukeLocator : DukeActor
|
|
{
|
|
override void Initialize()
|
|
{
|
|
self.cstat = CSTAT_SPRITE_INVISIBLE;
|
|
self.ChangeStat(STAT_LOCATOR);
|
|
}
|
|
}
|
|
|
|
class DukeActivatorLocked : DukeActor
|
|
{
|
|
override void Initialize()
|
|
{
|
|
self.cstat = CSTAT_SPRITE_INVISIBLE;
|
|
if (!isRR()) self.sector.lotag |= 16384;
|
|
else self.sector.lotag ^= 16384;
|
|
self.ChangeStat(STAT_ACTIVATOR);
|
|
}
|
|
|
|
/* must wait until Activator.onActivate can be done.
|
|
override void onActivate(int low, DukePlayer plr)
|
|
{
|
|
if (self.lotag == low)
|
|
{
|
|
self.sector.lotag ^= 16384;
|
|
|
|
if (plr)
|
|
{
|
|
if (self.sector.lotag & 16384)
|
|
plr.FTA(QUOTE_LOCKED, true);
|
|
else plr.FTA(QUOTE_UNLOCKED, true);
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
}
|
|
|
|
// Note: StaticSetup is run much earlier than Initialize! This is only meant for things that modify global game state.
|
|
|
|
class DukeCycler : DukeActor
|
|
{
|
|
override void StaticSetup()
|
|
{
|
|
dlevel.AddCycler(self.sector, self.lotag, self.shade, self.sector.floorshade, self.hitag, self.intangle == 1536);
|
|
self.Destroy();
|
|
}
|
|
}
|
|
|
|
class DukeGPSpeed : DukeActor
|
|
{
|
|
override void StaticSetup()
|
|
{
|
|
self.sector.extra = self.lotag;
|
|
self.Destroy();
|
|
}
|
|
}
|
|
|
|
// the following ones are only used in RR.
|
|
class DukeTorchCtrl : DukeActor
|
|
{
|
|
override void StaticSetup()
|
|
{
|
|
dlevel.addtorch(self.sector, self.sector.floorshade, self.lotag);
|
|
self.Destroy();
|
|
}
|
|
}
|
|
|
|
class DukeLightningCtrl : DukeActor
|
|
{
|
|
override void StaticSetup()
|
|
{
|
|
dlevel.addlightning(self.sector, self.sector.floorshade);
|
|
self.Destroy();
|
|
}
|
|
}
|
|
|
|
class DukeShadeCtrl : DukeActor
|
|
{
|
|
override void StaticSetup()
|
|
{
|
|
self.sector.shadedsector = 1;
|
|
self.Destroy();
|
|
}
|
|
}
|
|
|
|
class RedneckMinecartDef : DukeActor
|
|
{
|
|
}
|
|
|
|
class RedneckMinecartSound : DukeActor
|
|
{
|
|
}
|
|
|
|
class RedneckMinecartInner : DukeActor
|
|
{
|
|
}
|
|
|
|
class RedneckJaildoorDef : DukeActor
|
|
{
|
|
}
|
|
|
|
class RedneckJaildoorSound : DukeActor
|
|
{
|
|
}
|
|
|
|
class RedneckGeometryEffect : DukeActor
|
|
{
|
|
}
|
|
|
|
class RedneckKeyinfoSetter : DukeActor
|
|
{
|
|
}
|
|
|
|
class RedneckInvisible : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "RRTILE3586";
|
|
}
|
|
|
|
override bool animate(tspritetype t)
|
|
{
|
|
t.cstat |= CSTAT_SPRITE_INVISIBLE;
|
|
self.cstat |= CSTAT_SPRITE_INVISIBLE;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
class RedneckLadder : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "Ladder";
|
|
}
|
|
|
|
override bool animate(tspritetype t)
|
|
{
|
|
t.cstat |= CSTAT_SPRITE_INVISIBLE;
|
|
self.cstat |= CSTAT_SPRITE_INVISIBLE;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
class RedneckPistonSoundEnabler : DukeActor
|
|
{
|
|
override void StaticSetup()
|
|
{
|
|
ud.pistonsound = true;
|
|
self.Destroy();
|
|
}
|
|
}
|
|
|
|
class RedneckFogEnabler : DukeActor
|
|
{
|
|
override void StaticSetup()
|
|
{
|
|
ud.fogactive = true;
|
|
self.Destroy();
|
|
}
|
|
}
|
|
|
|
class RedneckSeasickEnabler : DukeActor
|
|
{
|
|
override void StaticSetup()
|
|
{
|
|
// this is so wrong... :(
|
|
Duke.GetViewPlayer().sea_sick_stat = true;
|
|
self.Destroy();
|
|
}
|
|
}
|
|
|