- pass the spawner to Initialize as an explicit parameter.

Using ownerActor is not robust, for some actors this will have unwanted side effects.
This commit is contained in:
Christoph Oelckers 2023-05-14 12:18:47 +02:00
parent fc30f76f50
commit 513de38723
111 changed files with 328 additions and 334 deletions

View file

@ -97,7 +97,7 @@ struct Dispatcher
extern Dispatcher fi;
void CallInitialize(DDukeActor* actor);
void CallInitialize(DDukeActor* actor, DDukeActor* spawner);
void CallTick(DDukeActor* actor);
bool CallOperate(DDukeActor* actor, int plnum);
void CallAction(DDukeActor* actor);

View file

@ -597,12 +597,12 @@ int LookupAI(PClass* cls, FName name)
void CallInitialize(DDukeActor* actor)
void CallInitialize(DDukeActor* actor, DDukeActor* spawner)
{
IFVIRTUALPTR(actor, DDukeActor, Initialize)
{
VMValue val = actor;
VMCall(func, &val, 1, nullptr, 0);
VMValue val[] = { actor, spawner };
VMCall(func, val, 2, nullptr, 0);
}
}

View file

@ -846,12 +846,8 @@ DDukeActor* spawninit(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>* ac
}
commonEnemySetup(act, actj);
}
else if (!(act->flags3 & SFLAG3_SIMPLEINIT))
{
act->ownerActor = actj;
}
CallInitialize(act);
CallInitialize(act, actj);
}
else
{
@ -863,7 +859,7 @@ DDukeActor* spawninit(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>* ac
ChangeActorStat(act, STAT_MISC);
else
ChangeActorStat(act, STAT_PLAYER);
//CallInitialize(act);
CallInitialize(act, nullptr);
}
return act;
}

View file

@ -1,7 +1,7 @@
class DukeActivator : DukeActor
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.ChangeStat(STAT_ACTIVATOR);
@ -59,7 +59,7 @@ class DukeActivator : DukeActor
class DukeLocator : DukeActor
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.ChangeStat(STAT_LOCATOR);
@ -68,7 +68,7 @@ class DukeLocator : DukeActor
class DukeActivatorLocked : DukeActor
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
if (!isRR()) self.sector.lotag |= 16384;

View file

@ -26,7 +26,7 @@ class DukeBloodPool : DukeActor
}
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!checkLocationForFloorSprite(6.75)) return;
SetPalette();

View file

@ -6,13 +6,13 @@ class DukeBloodSplat1 : DukeActor
+SE24_REMOVE;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_ALIGNMENT_WALL;
self.scale.X = 0.109375 + random(0, 7) * REPEAT_SCALE;
self.scale.Y = 0.109375 + random(0, 7) * REPEAT_SCALE;
self.pos.Z -= 16;
if (!self.mapSpawned && self.ownerActor && self.ownerActor.pal == 6)
if (spawner && spawner.pal == 6)
self.pal = 6;
self.insertspriteq();
self.ChangeStat(STAT_MISC);

View file

@ -6,7 +6,7 @@ class DukeBolt1 : DukeActor
spritesetindex 0;
+SE24_NOCARRY;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.temp_pos.XY = self.scale;
self.yint = 0;

View file

@ -6,7 +6,7 @@ class DukeCactusBroke : DukeActor
pic "CACTUSBROKE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;

View file

@ -8,7 +8,7 @@ class DukeCanWithSomething : DukeActor
+MOVEFTA_MAKESTANDABLE;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!self.mapSpawned)
self.scale = (0.5, 0.5);

View file

@ -7,7 +7,7 @@ class DukeCrack : DukeActor
+NOFALLER;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= (self.cstat & CSTAT_SPRITE_ALIGNMENT_MASK) ? CSTAT_SPRITE_BLOCK : (CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_ALIGNMENT_WALL);
self.extra = 1;

View file

@ -28,7 +28,7 @@ class DukeCrane : DukeActor
//
//---------------------------------------------------------------------------
override void Initialize()
override void Initialize(DukeActor spawner)
{
let sect = self.sector;
self.cstat |= CSTAT_SPRITE_BLOCK_ALL | CSTAT_SPRITE_ONE_SIDE;

View file

@ -28,7 +28,7 @@ class DukeHangLight : DukeGenericPole2
pic "HANGLIGHT";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.clipdist = 8;
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
@ -45,7 +45,7 @@ class DukeBottle10 : DukeActor
pic "BOTTLE10";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
@ -68,7 +68,7 @@ class DukeVase : DukeActor
pic "VASE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
@ -91,7 +91,7 @@ class DukeFanSprite : DukeActor
spriteset "FANSPRITE", "FANSPRITEBROKE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
@ -119,7 +119,7 @@ class DukeSatellite : DukeActor
pic "SATELITE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
@ -176,7 +176,7 @@ class DukeFetus : DukeActor
spriteset "FETUS", "FETUSBROKE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
@ -259,7 +259,7 @@ class DukeHydrant : DukeActor
+BREAKMIRRORS;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
@ -283,7 +283,7 @@ class DukePipe1 : DukeActor
spriteset "PIPE1", "PIPE1B";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
@ -349,7 +349,7 @@ class DukeSpaceMarine : DukeActor
+HITRADIUSCHECK;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.extra = 20;
@ -394,7 +394,7 @@ class DukeMonk : DukeSpaceMarine
-HITRADIUSCHECK;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;

View file

@ -5,7 +5,7 @@ class DukeDoorShock : DukeActor
pic "DOORSHOCK";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.shade = -12;

View file

@ -6,7 +6,7 @@ class DukeLetter : DukeActor
+NOFALLER;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.ChangeStat(STAT_ACTOR);

View file

@ -6,7 +6,7 @@ class DukePlug : DukeActor
pic "PLUG";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.lotag = 9999;
self.ChangeStat(STAT_STANDABLE);
@ -28,7 +28,7 @@ class DukeFemMag : DukeActor
pic "FEMMAG1";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
self.ChangeStat(STAT_DEFAULT);
@ -42,7 +42,7 @@ class DukeTag : DukeActor
pic "DUKETAG";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (ud.multimode < 2 && self.pal)
{
@ -60,7 +60,7 @@ class DukeMaskWall : DukeActor
pic "MASKWALL1";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let j = self.cstat & (CSTAT_SPRITE_ALIGNMENT_MASK | CSTAT_SPRITE_XFLIP | CSTAT_SPRITE_YFLIP);
self.cstat = j | CSTAT_SPRITE_BLOCK;
@ -76,7 +76,7 @@ class DukeFootprints : DukeActor
+SE24_REMOVE;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!self.mapSpawned)
{
@ -114,7 +114,7 @@ class DukeBulletHole : DukeActor
+NOTELEPORT;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_ALIGNMENT_WALL | randomFlip();
self.insertspriteq();
@ -136,7 +136,7 @@ class DukeGenericPole : DukeActor
pic "GENERICPOLE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (ud.multimode < 2 && self.pal != 0)
{
@ -154,12 +154,12 @@ class DukeCameraPole : DukeGenericPole
pic "CAMERAPOLE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (gs.camerashitable) self.cstat = CSTAT_SPRITE_BLOCK_ALL;
else self.cstat = 0;
self.extra = 1;
super.Initialize();
super.Initialize(spawner);
}
}
@ -170,7 +170,7 @@ class DukeNeon : DukeActor
pic "NEON1";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.ChangeStat(STAT_MISC);
@ -290,7 +290,7 @@ class DukeNaturalLightning : DukeActor
+FULLBRIGHT;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
self.cstat |= CSTAT_SPRITE_INVISIBLE;

View file

@ -7,7 +7,7 @@ class DukeFireext : DukeActor
+EXPLOSIVE;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_BLOCK_ALL;
self.extra = gs.impact_damage << 2;

View file

@ -6,7 +6,7 @@ class DukeFlammable : DukeActor
+HITRADIUS_CHECKHITONLY;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_BLOCK_ALL; // Make it hitable
self.extra = 1;

View file

@ -7,7 +7,7 @@ class DukeForceSphere : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (self.mapSpawned)
{

View file

@ -6,11 +6,11 @@ class DukeFrameEffect : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!self.mapSpawned && self.ownerActor)
if (spawner)
{
self.scale = self.ownerActor.scale;
self.scale = spawner.scale;
}
else
{

View file

@ -12,7 +12,7 @@ class DukeGreenSlime : DukeActor
sparkoffset -3;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.625, 0.625);
self.clipdist = 20;

View file

@ -5,7 +5,7 @@ class DukeCar : DukeActor
pic "DUKECAR";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.extra = 1;
self.clipdist = 32;

View file

@ -217,7 +217,7 @@ class DukeJibs2 : DukeJibs1
pic "JIBS2";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale *= 0.25; // only Duke needs this.
}
@ -262,7 +262,7 @@ class DukeJibs6 : DukeJibs1
spritesetindex 1;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (isRR()) self.scale *= 0.5; // only RR needs this.
self.setSpriteSetImage(1);
@ -561,7 +561,7 @@ class RedneckRabbitJibA : DukeJibs1
pic "RABBITJIBA";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.Scale = (0.28125, 0.28125);
}
@ -574,7 +574,7 @@ class RedneckRabbitJibB : DukeJibs1
pic "RABBITJIBB";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.Scale = (0.5625, 0.5625);
}
@ -587,7 +587,7 @@ class RedneckRabbitJibC : DukeJibs1
pic "RABBITJIBC";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.Scale = (0.84375, 0.84375);
}

View file

@ -6,7 +6,7 @@ class DukeNukeButton : DukeActor
spriteset "NUKEBUTTON", "NUKEBUTTON1", "NUKEBUTTON2", "NUKEBUTTON3";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.ChangeStat(STAT_MISC);
}

View file

@ -5,7 +5,7 @@ class DukeOoz : DukeActor
pic "OOZ";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.shade = -12;

View file

@ -11,7 +11,7 @@ class DukeOozFilter : DukeActor
+GREENBLOOD;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.shade = -16;
if (self.scale.X <= 0.125)

View file

@ -6,7 +6,7 @@ class DukeMoney : DukeActor
spriteset "MONEY", "MONEY1";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.125, 0.125);
self.counter = random(0, 2047);

View file

@ -12,7 +12,7 @@ class DukeQueball : DukeActor
+HITRADIUSCHECK;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.clipdist = 2;
self.cstat = CSTAT_SPRITE_BLOCK_HITSCAN;

View file

@ -9,7 +9,7 @@ class DukeRat : DukeActor
+ALWAYSROTATE1;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!self.mapSpawned) self.lotag = 0;
@ -17,11 +17,11 @@ class DukeRat : DukeActor
self.angle = frandom(0, 360);
self.cstat = 0;
if (!self.mapSpawned && self.ownerActor)
if (spawner)
{
self.timetosleep = 0;
self.ChangeStat(STAT_ACTOR);
if (isRR()) self.shade = self.ownerActor.shade;
if (isRR()) self.shade = spawner.shade;
}
else self.ChangeStat(STAT_ZOMBIEACTOR);
self. clipdist = 10;

View file

@ -6,7 +6,7 @@ class DukeReactor : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.extra = gs.impact_damage;
self.cstat |= CSTAT_SPRITE_BLOCK_ALL; // Make it hitable

View file

@ -23,7 +23,7 @@ class DukeRecon : DukeActor
int shift;
class<DukeActor> spawntype;
override void initialize()
override void Initialize(DukeActor spawner)
{
self.temp_data[0] = 0;
self.extra = 130;
@ -246,7 +246,7 @@ class RedneckUFO1 : DukeRecon
-NOFLOORPAL;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.ChangeStat(STAT_ZOMBIEACTOR);
@ -276,9 +276,9 @@ class RedneckUFO2 : RedneckUFO1
Pic "UFO2";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
SpawnType = "RedneckCoot";
}
}
@ -290,9 +290,9 @@ class RedneckUFO3 : RedneckUFO1
Pic "UFO3";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
SpawnType = "RedneckCow";
}
}
@ -304,9 +304,9 @@ class RedneckUFO4 : RedneckUFO1
Pic "UFO4";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
SpawnType = "RedneckPig";
}
}
@ -318,9 +318,9 @@ class RedneckUFO5 : RedneckUFO1
Pic "UFO5";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
SpawnType = "RedneckBillyRay";
}
}
@ -332,9 +332,9 @@ class RedneckUFORRRA : RedneckUFO1
Pic "UFO1_RRRA";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
if (ud.ufospawnsminion) SpawnType = "RedneckMinion";
}
}
@ -345,7 +345,7 @@ class RedneckUfoSpawnerToggle : DukeActor
{
statnum STAT_MISC;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
//case RRTILE8192:
self.scale = (0, 0);

View file

@ -6,16 +6,15 @@ class DukeShell : DukeActor
spriteset "SHELL", "SHELL1";
}
void initshell(bool isshell, double direction)
void initshell(DukeActor spawner, bool isshell, double direction)
{
let Owner = self.OwnerActor;
if (Owner && !self.mapSpawned)
if (spawner)
{
double ang;
if (Owner.isPlayer())
if (spawner.isPlayer())
{
let plr = Owner.GetPlayer();
let plr = spawner.GetPlayer();
let pactor = plr.actor;
ang = pactor.angle - Raze.BAngToDegree * (random(8, 71)); //Fine tune
@ -26,10 +25,10 @@ class DukeShell : DukeActor
else
{
ang = self.angle;
self.pos.Z = Owner.pos.Z - gs.playerheight + 3;
self.pos.Z = spawner.pos.Z - gs.playerheight + 3;
}
self.pos.XY = Owner.pos.XY + ang.ToVector() * 8;
self.pos.XY = spawner.pos.XY + ang.ToVector() * 8;
self.opos = self.pos;
if (direction > 0)
@ -51,9 +50,9 @@ class DukeShell : DukeActor
self.ChangeStat(STAT_MISC);
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
initshell(true, -1.25);
initshell(spawner, true, -1.25);
}
override void Tick()
@ -114,9 +113,9 @@ class DukeShell : DukeActor
class NamShell : DukeShell
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
initshell(true, 1.875);
initshell(spawner, true, 1.875);
}
}

View file

@ -7,7 +7,7 @@ class DukeStall : DukeActor
precacheclass "DukeToiletWater";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.OwnerActor = self;

View file

@ -6,10 +6,10 @@ class DukeTongue : DukeActor
pic "TONGUE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (self.ownerActor && !self.mapSpawned)
self.angle = self.ownerActor.angle;
if (spawner)
self.angle = spawner.angle;
self.pos.Z -= gs.playerheight;
self.vel.Z = 1 - frandom(0, 2);
self.vel.X = 4 - frandom(0, 8);

View file

@ -5,7 +5,7 @@ class DukeTrash : DukeActor
pic "TRASH";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.Scale = (0.375, 0.375);
self.angle = frandom(0, 360);

View file

@ -9,7 +9,7 @@ class DukeViewscreen : DukeActor
const VIEWSCR_DIST = 1024; // was originally 2048, was increased to 8192 by EDuke32 and RedNukem, but with high resolutions the resulting 512 map units are still too low.
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.ownerActor = self;
self.lotag = 1;
@ -100,7 +100,7 @@ class DukeCamera : DukeActor
+ALWAYSROTATE1;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (gs.camerashitable) self.cstat = CSTAT_SPRITE_BLOCK_ALL;
else self.cstat = 0;

View file

@ -5,13 +5,12 @@ class DukeWaterDrip : DukeActor
pic "WATERDRIP";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (!self.mapSpawned && owner && (owner.statnum == STAT_PLAYER || owner.statnum == STAT_ACTOR))
if (spawner && (spawner.statnum == STAT_PLAYER || spawner.statnum == STAT_ACTOR))
{
self.shade = 32;
if (owner.pal != 1)
if (spawner.pal != 1)
{
self.pal = 2;
self.pos.Z -= 18;

View file

@ -14,7 +14,7 @@ class DukeWaterFountain : DukeActor
//
//---------------------------------------------------------------------------
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.setSpritesetImage(0);
self.lotag = 1;
@ -101,7 +101,7 @@ class DukeWaterFountainBroke : DukeActor
pic "WATERFOUNTAINBROKE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.ChangeStat(STAT_STANDABLE);
}

View file

@ -6,13 +6,12 @@ class DukeWatersplash : DukeActor
+NOTELEPORT;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let Owner = self.ownerActor;
let sectp = self.sector;
if (Owner && !self.mapSpawned)
if (spawner)
{
self.SetPosition(Owner.pos);
self.SetPosition(spawner.pos);
double s = 0.125 + random(0, 7) * REPEAT_SCALE;
self.scale = (s, s);
}
@ -24,16 +23,16 @@ class DukeWatersplash : DukeActor
self.shade = -16;
self.cstat |= CSTAT_SPRITE_YCENTER;
if (Owner)
if (spawner)
{
double c, f;
[c, f] = self.sector.getSlopes(self.pos.XY);
if (Owner.sector.lotag == ST_2_UNDERWATER)
if (spawner.sector.lotag == ST_2_UNDERWATER)
{
self.pos.Z = c + 16;
self.cstat |= CSTAT_SPRITE_YFLIP;
}
else if (Owner.sector.lotag == ST_1_ABOVE_WATER)
else if (spawner.sector.lotag == ST_1_ABOVE_WATER)
self.pos.Z = f;
}
@ -85,9 +84,9 @@ class RedneckMudSplash : DukeWatersplash
+NOTELEPORT;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
}

View file

@ -12,11 +12,10 @@ class DukeBossBase : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (owner && owner is 'DukeRespawnController')
self.pal = owner.pal;
if (spawner && spawner is 'DukeRespawnController')
self.pal = spawner.pal;
if (self.pal != 0 && (!isWorldTour() || !(currentLevel.gameflags & MapRecord.LEVEL_WT_BOSSSPAWN) || self.pal != 22))
{

View file

@ -10,7 +10,7 @@ class DukeEgg : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (ud.monsters_off == 1)
{

View file

@ -17,7 +17,7 @@ class DukeLizTrooper : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (self.pal == 0 || self.pal == 2) self.pal = 22;
}

View file

@ -22,7 +22,7 @@ class DukeRotateGun : DukeActor
shootzoffset 0;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.vel.Z = 0;
}

View file

@ -13,7 +13,7 @@ class DukeShark : DukeActor
Strength SHARKSTRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
// override some defaults.
self.scale = (0.9375, 0.9375);

View file

@ -19,7 +19,7 @@ class DukeTurret : DukeActor
self.PlayActorSound("TURR_RECOG");
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_YCENTER;
}

View file

@ -10,7 +10,7 @@ class DukeBlimp : DukeActor
+SPAWNWEAPONDEBRIS;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 32;

View file

@ -9,7 +9,7 @@ class DukeToiletWater : DukeActor
Strength 0;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.shade = -16;
self.changeStat(STAT_STANDABLE);
@ -40,13 +40,11 @@ class DukeExplosion2 : DukeActor
return false;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (owner && owner != self)
if (spawner && spawner != self)
{
self.Angle = owner.Angle;
self.Angle = spawner.Angle;
self.cstat = randomXFlip();
double c,f;
@ -90,9 +88,9 @@ class RedneckExplosion3 : DukeExplosion2
pic "EXPLOSION3";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
self.scale = (2, 2);
}
@ -119,7 +117,7 @@ class DukeFloorFlame : DukeActor
Strength 0;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.shade = -127;
self.ChangeStat(STAT_STANDABLE);
@ -162,27 +160,26 @@ class DukeTransporterStar : DukeActor
//StartAction "TRANSFOWARD";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (owner == nullptr || owner == self)
if (spawner == nullptr || spawner == self)
{
scale = (0, 0);
return;
}
if (owner.statnum == STAT_PROJECTILE)
if (spawner.statnum == STAT_PROJECTILE)
{
self.scale = (0.125, 0.125);
}
else
{
self.scale = (0.75, 1);
if (owner.statnum == STAT_PLAYER || owner.badguy())
if (spawner.statnum == STAT_PLAYER || spawner.badguy())
self.pos.Z -= 32;
}
self.cstat = CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT;
self.angle = owner.angle;
self.angle = spawner.angle;
self.vel.X = 8;
self.DoMove(CLIPMASK0);
@ -209,19 +206,18 @@ class DukeTransporterBeam : DukeActor
Strength 0;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (owner == nullptr || owner == self)
if (spawner == nullptr || spawner == self)
{
scale = (0, 0);
return;
}
self.scale = (0.484375, REPEAT_SCALE);
self.pos.Z = owner.sector.floorz - gs.playerheight;
self.pos.Z = spawner.sector.floorz - gs.playerheight;
self.cstat = CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT;
self.angle = owner.angle;
self.angle = spawner.angle;
self.vel.X = 8;
self.DoMove(CLIPMASK0);
@ -266,7 +262,7 @@ class DukeSteam : DukeSteamBase
pic "STEAM";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
@ -297,13 +293,11 @@ class DukeSmallSmoke : DukeActor
Strength 0;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (owner && owner != self)
if (spawner && spawner != self)
{
self.Angle = owner.Angle;
self.Angle = spawner.Angle;
self.cstat = randomXFlip();
double c,f;
@ -332,10 +326,10 @@ class DukeBlood : DukeActor
Strength 0;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.pos.Z -= 26;
if (!mapSpawned && self.ownerActor && self.ownerActor.pal == 6)
if (spawner && spawner.pal == 6)
self.pal = 6;
self.scale = (0.25, 0.25);
temp_pos.Z = 72 * REPEAT_SCALE;
@ -345,9 +339,9 @@ class DukeBlood : DukeActor
class RedneckBlood : DukeBlood
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
self.scale = (0.0625, 0.0625);
temp_pos.Z = 48 * REPEAT_SCALE;
}

View file

@ -20,6 +20,15 @@ class DukeFemBase : DukeActor
const FREEZEANIM2 = 64;
override void Initialize(DukeActor spawner)
{
self.yint = self.hitag;
self.hitag = -1;
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
self.ChangeStat(STAT_ZOMBIEACTOR);
}
}
@ -33,7 +42,7 @@ class DukeBloodyPole : DukeFemBase
StartAction 'none';
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 8;
@ -172,7 +181,12 @@ class DukePodFemale : DukeFemBase
DukeFemBase.femflags GROWSCRAP | FREEZEANIM2 | KILLME;
}
override void Initialize(DukeActor spawner)
{
Super.Initialize(spawner);
self.extra <<= 1;
}
}
class DukeFem6Pad: DukeActor

View file

@ -11,7 +11,7 @@ class DukeBurning : DukeActor
Strength WEAK;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!self.mapSpawned)
{

View file

@ -16,9 +16,9 @@ class DukeItemBase : DukeActor
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup();
commonItemSetup(spawner);
}
@ -103,7 +103,7 @@ class DukeAccessCard : DukeItemBase
pic "ACCESSCARD";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (ud.multimode > 1 && ud.coop != 1)
{
@ -131,9 +131,9 @@ class DukeAmmo : DukeItemBase
pic "AMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.25, 0.25));
commonItemSetup(spawner, (0.25, 0.25));
}
}
@ -194,9 +194,9 @@ class DukeBatteryAmmo : DukeItemBase
pic "BATTERYAMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup();
commonItemSetup(spawner);
}
}
@ -268,9 +268,9 @@ class DukeAtomicHealth : DukeItemBase
+NOFLOORPAL;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup();
commonItemSetup(spawner);
self.cstat |= CSTAT_SPRITE_YCENTER;
}

View file

@ -16,11 +16,11 @@ class DukePlayerOnWater : DukeActor
+ALWAYSROTATE1;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!mapSpawned && self.ownerActor)
if (spawner)
{
self.scale = self.ownerActor.scale;
self.scale = spawner.scale;
self.vel.Z = 0.5;
if (self.sector.lotag != ST_2_UNDERWATER)
self.cstat |= CSTAT_SPRITE_INVISIBLE;
@ -30,9 +30,9 @@ class DukePlayerOnWater : DukeActor
override void OnHit(DukeActor proj)
{
// propagate the hit to its owner.
let owner = self.ownerActor;
if (owner && self != owner) owner.OnHit(proj);
// propagate the hit to its Owner.
let Owner = self.OwnerActor;
if (Owner && self != Owner) Owner.OnHit(proj);
}
}
@ -46,14 +46,13 @@ class DukePlayerLyingDead : DukeActor
Strength 0;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (owner && owner.isPlayer())
if (spawner && spawner.isPlayer())
{
self.scale = owner.scale;
self.shade = owner.shade;
self.pal = owner.GetPlayer().palookup;
self.scale = spawner.scale;
self.shade = spawner.shade;
self.pal = spawner.GetPlayer().palookup;
}
self.vel.X = 292 / 16.;
self.vel.Z = 360 / 256.;

View file

@ -9,7 +9,7 @@ class DukeRubberCan : DukeActor
+MOVEFTA_MAKESTANDABLE;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!self.mapSpawned)
self.scale = (0.5, 0.5);

View file

@ -7,7 +7,7 @@ class DukeSimpleItem : DukeActor
+MOVEFTA_MAKESTANDABLE;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!self.mapSpawned)
self.scale = (0.5, 0.5);
@ -82,7 +82,7 @@ class DukeWaterbubbleMaker : DukeSimpleItem
Strength 0;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.hitag = 0;
self.cstat |= CSTAT_SPRITE_INVISIBLE;
@ -109,13 +109,12 @@ class DukeWaterBubble : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (owner && owner.isPlayer())
if (spawner && spawner.isPlayer())
self.pos.Z -= 16;
if (owner != self)
self.angle = owner.angle;
if (spawner && spawner != self)
self.angle = spawner.angle;
self.scale = (0.0625, 0.0625);
self.ChangeStat(STAT_MISC);
@ -225,7 +224,7 @@ class DukeFeces : DukeActor
+BROWNBLOOD;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!mapSpawned)
self.scale = (REPEAT_SCALE, REPEAT_SCALE);
@ -248,7 +247,7 @@ class DukeStatue : DukeActor
+HITRADIUSCHECK;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.clipdist = 32;
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
@ -293,7 +292,7 @@ class DukeMike : DukeActor
pic "MIKE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.yint = self.hitag;
self.ChangeStat(STAT_ACTOR);
@ -346,7 +345,7 @@ class DukeWaterdripSplash : DukeActor
pic "WATERDRIPSPLASH";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.375, 0.375);
self.ChangeStat(STAT_STANDABLE);
@ -367,7 +366,7 @@ class DukeSeriousSam : DukeActor
statnum STAT_ZOMBIEACTOR;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.extra = 150;

View file

@ -12,7 +12,7 @@ class DukePipeBomb : DukeActor
// do not add anything here!
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
// This is only for placed items, not for armed weapons!
if (self.mapSpawned)

View file

@ -189,7 +189,7 @@ class DukeBounceMine : DukeMortar
Strength BOUNCEMINE_WEAPON_STRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
// This is only for placed items, not for armed weapons!
// Although this can be shot, it doesn't really work for that.

View file

@ -43,7 +43,7 @@ class DukeProjectile : DukeActor
property SpawnSound: SpawnSound;
override void Initialize()
override void Initialize(DukeActor spawner)
{
// do not call the parent's function here.
}
@ -364,13 +364,13 @@ class DukeCoolExplosion1 : DukeProjectile // octabrain shot.
Strength COOL_EXPLOSION_STRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!bSIMPLEINIT)
{
// looks like this case is never used anywhere.
self.cstat = CSTAT_SPRITE_YCENTER | self.randomXFlip();
self.angle = self.ownerActor.angle;
if (spawner) self.angle = spawner.angle;
self.shade = -64;
double c, f;

View file

@ -99,12 +99,11 @@ class DukeShrinkerExplosion : DukeActor
+FORCERUNCON;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
let owner = self.ownerActor;
if (owner != self)
if (spawner != self)
{
self.Angle = owner.Angle;
self.Angle = spawner.Angle;
self.cstat = CSTAT_SPRITE_YCENTER | randomXFlip();
double c,f;
[c, f] = self.sector.getSlopes(self.pos.XY);

View file

@ -26,7 +26,7 @@ class DukeTripBomb : DukeActor
+NOTELEPORT;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.0625, 0.078125);
ud.bomb_tag = (ud.bomb_tag + 1) & 32767;
@ -204,9 +204,9 @@ class DukeTripBomb : DukeActor
// the map-spawned and player-spawned trip bombs are different so let's spawn two distinct types for them.
class DukeTripBombPlaced : DukeTripBomb
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
self.ownerActor = self;
self.vel.X = 1;
@ -238,7 +238,7 @@ class DukeLaserLine : DukeActor
+NOFLOORPAL;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.5, 0.09375);
@ -251,8 +251,7 @@ class DukeLaserLine : DukeActor
self.scale = (0, 0);
}
let owner = self.ownerActor;
if (owner) self.angle = owner.temp_angle + 90;
if (spawner) self.angle = spawner.temp_angle + 90;
self.ChangeStat(STAT_MISC);
}

View file

@ -22,7 +22,7 @@ class DukeGenericDestructible : DukeActor
virtual bool DestroyAction() { return false; } // for customized subclasses
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (self.inittype & f_solid) self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.SetBroken(false);

View file

@ -1,6 +1,6 @@
class DukeMasterSwitch : DukeActor
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.yint = 0;

View file

@ -5,7 +5,7 @@ class RedneckAirplane : DukeActor
pic "AIRPLANE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.extra = self.lotag;
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;

View file

@ -6,7 +6,7 @@ class RedneckBalloons1 : DukeActor
Spriteset "BALLOONS1", "BALLOONS1BROKE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.Scale = (0.5, 0.5);

View file

@ -11,7 +11,7 @@ class RedneckBowlingPin : DukeActor
meta int behavior;
property behavior: behavior;
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.clipdist = 12;
@ -129,9 +129,9 @@ class RedneckHenstand : RedneckBowlingPin
-HITRADIUSCHECK;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
Super.Initialize();
Super.Initialize(spawner);
self.scale.Y = 234375;
}
@ -160,7 +160,7 @@ class RedneckBowlingBall : RedneckBowlingPin
-HITRADIUSCHECK;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.clipdist = 16;
self.scale = (0.171875, 0.140625);
@ -247,7 +247,7 @@ class RedneckBowlingBall : RedneckBowlingPin
class RedneckBowlingController : DukeActor
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.clipdist = 0;

View file

@ -6,7 +6,7 @@ class RedneckChickenSpawner1 : DukeActor
pic "CHICKENASPAWN";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.clipdist = 0;
@ -188,7 +188,7 @@ class RedneckChickenA : DukeActor
spriteset "CHICKENA", "CHICKENB", "CHICKENC";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_BLOCK_ALL;
self.vel.X = 2;
@ -260,7 +260,7 @@ class RedneckChickenLoaf : DukeActor
pic "CHICKENLOAF";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_BLOCK_ALL;
self.vel.X = 2;
@ -307,7 +307,7 @@ class RedneckRoastedChicken : RedneckChickenLoaf
pic "ROASTEDCHICKEN";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.vel.X = 1;
self.Scale = (0.203125, 0.203125);
@ -323,7 +323,7 @@ class RedneckChickenNugget : RedneckChickenLoaf
pic "CHICKENNUGGET";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.vel.X = 1;
self.Scale = (0.125, 0.09375);
@ -339,7 +339,7 @@ class RedneckBonelessChicken : RedneckChickenLoaf
pic "BONELESSCHICKEN";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.vel.X = 2;
self.Scale = (0.265625, 0.1875);
@ -355,7 +355,7 @@ class RedneckChickenHead : DukeActor
pic "CHICKENHEAD";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.vel.X = 0;
self.Scale = (0.203125, 0.15625);
@ -391,7 +391,7 @@ class RedneckChickenplantButton : DukeActor
spriteset "CHICKENPLANTBUTTON", "CHICKENPLANTBUTTONON";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
ud.chickenplant = 1;
}

View file

@ -7,7 +7,7 @@ class RedneckEmptyBike : DukeActor
+ALWAYSROTATE2;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (ud.multimode < 2 && self.pal == 1)
{
@ -57,7 +57,7 @@ class RedneckEmptyBoat : DukeActor
falladjustz 6;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (ud.multimode < 2 && self.pal == 1)
{

View file

@ -12,7 +12,7 @@ class RedneckGamblingMachine : DukeActor
meta Sound winsound;
property winsound: winsound;
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.lotag = 1;
self.clipdist = 0;

View file

@ -6,7 +6,7 @@ class RedneckLumberBlade : DukeActor
spriteset "LUMBERBLADE1", "LUMBERBLADE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.ChangeStat(STAT_LUMBERMILL);
self.extra = 0;
@ -67,7 +67,7 @@ Class RedneckKegHolder : DukeActor
pic "KEGHOLDER";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.ChangeStat(STAT_LUMBERMILL);

View file

@ -5,7 +5,7 @@ class RedneckPiano : DukeActor
spriteset "PIANO", "PIANOBUST";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.lotag = 5;
self.clipdist = 0;

View file

@ -6,7 +6,7 @@ class RedneckPigDisplay : DukeActor
spriteset "PIGBACK", "PIGBACK1", "PIGBACK2", "PIGBACK3", "PIGBACK4";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
cstat = 0;
self.scale = (0.25, 0.25);

View file

@ -20,7 +20,7 @@ class RedneckMusicNotes : DukeActor
pic "MUSICNOTES";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.lotag = -1;
self.clipdist = 0;
@ -41,7 +41,7 @@ class RedneckJoe9000 : DukeActor
pic "JOE9000";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.lotag = 1;
self.clipdist = 0;

View file

@ -6,7 +6,7 @@ class RedneckTeleportDest : DukeActor
pic "RRTELEPORTDEST";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self. Scale = (1, 1);
self.clipdist = 16;

View file

@ -18,7 +18,7 @@ class RedneckBillyRay : DukeActor
else self.PlayActorSound("FART1");
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.390625, 0.328125);
self.setClipDistFromTile();

View file

@ -7,7 +7,7 @@ class RedneckBubbaStand : DukeActor
Strength 100;
}
override void initialize()
override void Initialize(DukeActor spawner)
{
self.actorstayput = self.sector; // make this a flag once everything has been exported.
self.scale = (0.390625, 0.328125);

View file

@ -20,7 +20,7 @@ class RedneckCoot : DukeActor
self.PlayActorSound("CT_GET");
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.375, 0.28125);
self.setClipDistFromTile();

View file

@ -10,7 +10,7 @@ class RedneckCow : DukeActor
Strength COWSTRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.5, 0.5);
self.setClipDistFromTile();

View file

@ -9,7 +9,7 @@ class RedneckDestructo : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
// do NOT run the default init code for this one.
}
@ -29,7 +29,7 @@ class RedneckDestroyTags : DukeActor
pic "DESTROYTAGS";
+DESTRUCTOIMMUNE;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_INVISIBLE;
self.scale = (REPEAT_SCALE, REPEAT_SCALE);

View file

@ -7,7 +7,7 @@ class RedneckDog : DukeActor
+KILLCOUNT;
Strength 200;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.25, 0.25);
self.setClipDistFromTile();

View file

@ -11,7 +11,7 @@ class RedneckHen : DukeActor
Strength HEN_TOUGHER_STRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (self.pal == 35)
{

View file

@ -19,7 +19,7 @@ class RedneckHulk : DukeActor
Strength HULKSTRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.5, 0.5);
self.setClipDistFromTile();

View file

@ -14,7 +14,7 @@ class RedneckMinion : DukeActor
+TRANSFERPALTOJIBS;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.25, 0.25);
self.setClipDistFromTile();

View file

@ -18,7 +18,7 @@ class RedneckMosquito : DukeActor
floating_ceilingdist 50;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.21875, 0.109375);
self.clipdist = 32;

View file

@ -10,7 +10,7 @@ class RedneckPig : DukeActor
Strength PIGSTRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.25, 0.25);;
self.setClipDistFromTile();

View file

@ -9,7 +9,7 @@ class RedneckSheriff : DukeActor
+KILLCOUNT;
Strength LTHSTRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.375, 0.34375);
self.setClipDistFromTile();

View file

@ -15,7 +15,7 @@ class RedneckShitBoss : DukeActor
Strength 2500;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.75, 0.75);
self.setClipDistFromTile();

View file

@ -8,7 +8,7 @@ class RedneckTornado : DukeActor
+NOHITSCANHIT;
Strength MEGASTRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (1, 2);
self.setClipDistFromTile();

View file

@ -21,7 +21,7 @@ class RedneckVixen : DukeActor
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (self.pal == 34)
{

View file

@ -14,7 +14,7 @@ class RedneckSoundFX : DukeActor
}
// this actor needs to start on STAT_DEFAULT.
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.ChangeStat(STAT_ZOMBIEACTOR);
}

View file

@ -28,9 +28,9 @@ class RedneckMoonshine : DukeItemBase
pic "STEROIDS";
+INVENTORY;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.203125, 0.140625));
commonItemSetup(spawner, (0.203125, 0.140625));
}
}
class RedneckHipWader : DukeItemBase
@ -48,9 +48,9 @@ class RedneckCowpie : DukeItemBase
pic "COWPIE";
+INVENTORY;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.125, 0.09375));
commonItemSetup(spawner, (0.125, 0.09375));
}
}
class RedneckBeer : DukeItemBase
@ -59,9 +59,9 @@ class RedneckBeer : DukeItemBase
{
pic "BEER";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.078125, 0.0625));
commonItemSetup(spawner, (0.078125, 0.0625));
}
}
class RedneckSnorkel : DukeItemBase
@ -72,16 +72,16 @@ class RedneckSnorkel : DukeItemBase
+INVENTORY;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.296875, 0.25));
commonItemSetup(spawner, (0.296875, 0.25));
}
}
class RedneckDoorkey : DukeAccessCard
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
super.Initialize();
super.Initialize(spawner);
self.Scale = (0.171875, 0.1875);
}
}
@ -92,9 +92,9 @@ class RedneckAmmo : DukeItemBase
pic "AMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.140625, 0.140625));
commonItemSetup(spawner, (0.140625, 0.140625));
}
}
@ -111,9 +111,9 @@ class RedneckSawAmmo : DukeItemBase
{
pic "SAWAMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.1875, 0.109375));
commonItemSetup(spawner, (0.1875, 0.109375));
}
}
class RedneckShotgunammo : DukeItemBase
@ -122,9 +122,9 @@ class RedneckShotgunammo : DukeItemBase
{
pic "SHOTGUNAMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.28125, 0.265625));
commonItemSetup(spawner, (0.28125, 0.265625));
if (isRRRA()) self.cstat = CSTAT_SPRITE_BLOCK_HITSCAN;
}
}
@ -136,9 +136,9 @@ class RedneckRifleAmmo : DukeItemBase
pic "BATTERYAMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.234375, 0.234375));
commonItemSetup(spawner, (0.234375, 0.234375));
}
}
class RedneckBlaster : DukeItemBase
@ -148,9 +148,9 @@ class RedneckBlaster : DukeItemBase
pic "ALIENBLASTERSPRITE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.28125, 0.265625));
commonItemSetup(spawner, (0.28125, 0.265625));
}
}
class RedneckBlasterammo : DukeItemBase
@ -160,9 +160,9 @@ class RedneckBlasterammo : DukeItemBase
pic "DEVISTATORAMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.15625, 0.140625));
commonItemSetup(spawner, (0.15625, 0.140625));
}
}
@ -174,9 +174,9 @@ class RedneckBowlingBallsprite : DukeItemBase
strength BOWLINGBALL_WEAPON_STRENGTH;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.171875, 0.171875), -1, true);
commonItemSetup(spawner, (0.171875, 0.171875), -1, true);
}
}
class RedneckDynamiteAmmo : DukeItemBase
@ -192,9 +192,9 @@ class RedneckCrossbow : DukeItemBase
{
pic "CROSSBOWSPRITE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.25, 0.21875));
commonItemSetup(spawner, (0.25, 0.21875));
}
}
class RedneckShotgun : DukeItemBase
@ -211,9 +211,9 @@ class RedneckRipsaw : DukeItemBase
pic "RIPSAWSPRITE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.34375, 0.203125));
commonItemSetup(spawner, (0.34375, 0.203125));
}
}
class RedneckTitgun : DukeItemBase
@ -223,9 +223,9 @@ class RedneckTitgun : DukeItemBase
pic "TITSPRITE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.265625, 0.25));
commonItemSetup(spawner, (0.265625, 0.25));
}
}
class RedneckPorkRinds : DukeItemBase
@ -235,9 +235,9 @@ class RedneckPorkRinds : DukeItemBase
pic "SIXPAK";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.203125, 0.140625));
commonItemSetup(spawner, (0.203125, 0.140625));
if (isRRRA()) self.cstat = CSTAT_SPRITE_BLOCK_HITSCAN;
}
}
@ -251,9 +251,9 @@ class RedneckGoogooCluster : DukeItemBase
+NOFLOORPAL;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.125, 0.125));
commonItemSetup(spawner, (0.125, 0.125));
self.cstat |= CSTAT_SPRITE_YCENTER;
}
@ -270,9 +270,9 @@ class RedneckWhiskey : DukeItemBase
pic "FIRSTAID";
+INVENTORY;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.125, 0.125));
commonItemSetup(spawner, (0.125, 0.125));
}
}
class RedneckRevolver : DukeItemBase
@ -281,9 +281,9 @@ class RedneckRevolver : DukeItemBase
{
pic "FIRSTGUNSPRITE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup(((0.25, 0.25)));
commonItemSetup(spawner, ((0.25, 0.25)));
}
}
class RedneckPowderKeg : DukeItemBase
@ -337,9 +337,9 @@ class RedneckMotoAmmo : DukeItemBase
{
pic "MOTOAMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.359375, 0.359375));
commonItemSetup(spawner, (0.359375, 0.359375));
}
}
class RedneckBoatAmmo : DukeItemBase
@ -348,9 +348,9 @@ class RedneckBoatAmmo : DukeItemBase
{
pic "BOATAMMO";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.359375, 0.359375));
commonItemSetup(spawner, (0.359375, 0.359375));
}
}
class RedneckChickenArrows : DukeItemBase
@ -360,8 +360,8 @@ class RedneckChickenArrows : DukeItemBase
pic "RPG2SPRITE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
commonItemSetup((0.34375, 0.3125));
commonItemSetup(spawner, (0.34375, 0.3125));
}
}

View file

@ -6,7 +6,7 @@ class RedneckRock : DukeActor
+INTERNAL_BADGUY;
Strength 200;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (1, 1);
self.setClipDistFromTile();

View file

@ -15,13 +15,13 @@ class RedneckBoatGrenade : RedneckDynamiteArrow // RRRA only
DukeProjectile.SpawnSound "MORTAR";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.extra = 10;
self.vel.Z = -10;
self.vel.X *= 2;
super.Initialize();
super.Initialize(spawner);
}
override bool premoveeffect()

View file

@ -51,7 +51,7 @@ class RedneckChickenArrow : RedneckDynamiteArrow
DukeProjectile.SpawnSound "CHICKENBOW_FIRE";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.hitag = 0;
self.lotsofstuff("RedneckFeather", random(1, 4));

View file

@ -1,6 +1,6 @@
class DukeRespawnController : DukeActor
{
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (ud.multimode < 2 && self.pal == 1)
{

View file

@ -8,7 +8,7 @@ class DukeRespawnMarker : DukeActor
+NOFLOORPAL;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
if (!self.mapSpawned && ownerActor != null) self.pos.Z = ownerActor.floorZ;
self.scale = (0.375, 0.375);
@ -45,7 +45,7 @@ class RedneckRespawnMarker : DukeRespawnMarker
"RESPAWNMARKER8", "RESPAWNMARKER9", "RESPAWNMARKER10", "RESPAWNMARKER11", "RESPAWNMARKER12", "RESPAWNMARKER13", "RESPAWNMARKER14";
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.125, 0.125);
}

View file

@ -9,7 +9,7 @@ class RedneckBiker : DukeActor
+LOOKALLAROUND;
Strength 150;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.4375, 0.34375);
self.setClipDistFromTile();

View file

@ -10,7 +10,7 @@ class RedneckBikerB : DukeActor
gravityfactor 0.25;
Strength 300;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.4375, 0.34375);
self.clipdist = 18;

View file

@ -11,7 +11,7 @@ class RedneckBikerBV2 : DukeActor
gravityfactor 0.125;
Strength 200;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.4375, 0.34375);
self.clipdist = 18;

View file

@ -10,7 +10,7 @@ class RedneckBubbaelvis : RedneckBubbaStand
Strength 100;
}
override void initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.390625, 0.328125);
self.setClipDistFromTile();

View file

@ -11,7 +11,7 @@ class RedneckCheerleader : DukeActor
jumptoplayer_factor 1.6;
Strength 200;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.3125, 0.3125);
self.setClipDistFromTile();

View file

@ -10,7 +10,7 @@ class RedneckCheerleaderB : DukeActor
gravityfactor 0.25;
Strength 150;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.4375, 0.34375);
self.clipdist = 18;

View file

@ -11,7 +11,7 @@ class RedneckCheerBoat : DukeActor
landmovefactor 0.5;
Strength 200;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.5, 0.5);
self.setClipDistFromTile();

View file

@ -8,7 +8,7 @@ class RedneckCootplay : DukeActor
+NORADIUSPUSH;
Strength 10000;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.375, 0.28128);
self.setClipDistFromTile();
@ -27,7 +27,7 @@ class RedneckBillyPlay : DukeActor
+NORADIUSPUSH;
Strength 10000;
}
override void Initialize()
override void Initialize(DukeActor spawner)
{
self.scale = (0.390625, 0.328125);
self.setClipDistFromTile();

Some files were not shown because too many files have changed in this diff Show more