- moved all RR miscellaneous actors to a subfolder.

This commit is contained in:
Christoph Oelckers 2022-12-31 12:52:13 +01:00
parent a33c5b8d14
commit cb1690dabc
19 changed files with 467 additions and 419 deletions

View file

@ -9,4 +9,5 @@ spawnclasses
2654 = DukeGenericDestructible, noskill, "*RRTILE2654", "", "GLASS_BREAKING", spawnglass
2656 = DukeGenericDestructible, noskill, "*RRTILE2656", "", "GLASS_BREAKING", spawnglass
3172 = DukeGenericDestructible, noskill, "*RRTILE3172", "", "GLASS_BREAKING", spawnglass
71 = RedneckSoundFX, noskill
}

View file

@ -57,6 +57,9 @@ spawnclasses
7233 = RedneckEmptyBoat, noskill
4352 = RedneckRASheriff
4357 = RedneckDeputy
71 = RedneckRASoundFX
7633 = RedneckBarrel
7634 = RedneckBarrel2
7636 = DukeGenericDestructible, noskill, "OLDPHOTO0", "OLDPHOTO0BROKE", "VENT_BUST"
7638 = DukeGenericDestructible, noskill, "OLDPHOTO1", "OLDPHOTO1BROKE", "VENT_BUST"

View file

@ -2,4 +2,5 @@ spawnclasses
{
5015 = RedneckShitBoss
5980 = RedneckGator
71 = RedneckSoundFX
}

View file

@ -14,7 +14,6 @@ spawnclasses
18 = DukeTorchCtrl, noskill
35 = DukeLightningCtrl, noskill
68 = DukeShadeCtrl, noskill
71 = DukeSoundFX, noskill
252 = RedneckUfoBeam, noskill
2586 = RedneckInvisible, noskill
3587 = RedneckLadder, noskill
@ -143,7 +142,6 @@ spawnclasses
55 = RedneckMoonshine
56 = RedneckSnorkel
57 = RedneckCowPie
1350 = RedneckSixpack
21 = RedneckRevolver
22 = RedneckRiflegun
28 = RedneckShotgun
@ -360,14 +358,13 @@ spawnclasses
1764 = DukeShotSpark, noskill
2094 = RedneckTeslaBall, noskill
3395 = RedneckBuzzSaw, noskill
//3845 = RedneckPlayerPawn
3845 = RedneckPlayerPawn, noskill
4983 = RedneckPigEat
2898 = RedneckBustaWin4a
2878 = RedneckBustaWin5a
2097 = RedneckTesla
1990 = RedneckTikilamp
3845 = DukePlayerPawn, noskill
380 = RedneckWaterSurface, noskill
}

View file

@ -65,16 +65,6 @@ version "4.10"
#include "zscript/games/duke/actors/player.zs"
#include "zscript/games/duke/actors/batteryammo.zs"
#include "zscript/games/duke/actors/sixpak.zs"
#include "zscript/games/duke/actors/atomichealth.zs"
#include "zscript/games/duke/actors/powderkeg.zs"
#include "zscript/games/duke/actors/redneckmisc.zs"
#include "zscript/games/duke/actors/redneckitems.zs"
#include "zscript/games/duke/actors/redneckenemies.zs"
#include "zscript/games/duke/actors/bowling.zs"
#include "zscript/games/duke/actors/nwinter.zs"
#include "zscript/games/duke/actors/dukecstuff/bloodpool.zs"
@ -205,6 +195,13 @@ version "4.10"
#include "zscript/games/duke/actors/rrraenemies/rabbit.zs"
#include "zscript/games/duke/actors/rrraenemies/rabbitspawner.zs"
#include "zscript/games/duke/actors/rrraenemies/shootout.zs"
#include "zscript/games/duke/actors/redneckstuff/ambient_rr.zs"
#include "zscript/games/duke/actors/redneckstuff/ambient_rrra.zs"
#include "zscript/games/duke/actors/redneckstuff/items.zs"
#include "zscript/games/duke/actors/redneckstuff/player.zs"
#include "zscript/games/duke/actors/redneckstuff/stuff.zs"
#include "zscript/games/duke/actors/redneckweapons/boatcannon.zs"
#include "zscript/games/duke/actors/redneckweapons/crossbow.zs"
#include "zscript/games/duke/actors/redneckweapons/ripsaw.zs"

View file

@ -1,24 +0,0 @@
class RedneckGoogooCluster : DukeItemBase
{
default
{
pic "ATOMICHEALTH";
+FULLBRIGHT;
+BIGHEALTH;
+NOFLOORPAL;
}
override void Initialize()
{
commonItemSetup((0.125, 0.125));
self.cstat |= CSTAT_SPRITE_YCENTER;
}
override bool animate(tspritetype t)
{
t.pos.Z -= 4;
return false;
}
}

View file

@ -1,12 +0,0 @@
class RedneckRifleAmmo : DukeActor
{
default
{
pic "BATTERYAMMO";
}
override void Initialize()
{
commonItemSetup((0.234375, 0.234375));
}
}

View file

@ -1,13 +0,0 @@
class RedneckBowlingBallsprite : DukeActor
{
default
{
pic "BOWLINGBALLSPRITE";
}
override void Initialize()
{
commonItemSetup((0.171875, 0.171875), -1, true);
}
}

View file

@ -142,35 +142,6 @@ class DukeShadeCtrl : DukeActor
}
}
class DukeMinecartKiller : DukeActor
{
default
{
+BADGUY;
}
override void StaticSetup()
{
self.cstat |= CSTAT_SPRITE_INVISIBLE;
}
// This has a CON scripted part.
}
class DukeSoundFX : DukeActor
{
override void StaticSetup()
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.detail = dlevel.addambient(self.hitag, self.lotag);
self.lotag = self.hitag = 0;
}
// this actor needs to start on STAT_DEFAULT.
override void Initialize()
{
self.ChangeStat(STAT_ZOMBIEACTOR);
}
}
class RedneckMinecartDef : DukeActor
{
}
@ -199,23 +170,6 @@ class RedneckKeyinfoSetter : DukeActor
{
}
class RedneckUfoBeam : DukeActor
{
default
{
pic "UFOBEAM";
+BADGUY;
ProjectileSpread 0;
}
override bool animate(tspritetype t)
{
t.cstat |= CSTAT_SPRITE_INVISIBLE;
self.cstat |= CSTAT_SPRITE_INVISIBLE;
return true;
}
}
class RedneckInvisible : DukeActor
{
default

View file

@ -8,13 +8,3 @@ class DukePlayerBase : DukeActor
}
class RedneckPlayerLyingDead : DukeActor
{
override bool animate(tspritetype t)
{
t.scale = (0.375, 0.265625);
if (self.extra > 0)
t.pos.Z += 6;
return false;
}
}

View file

@ -1,39 +0,0 @@
class RedneckPowderKeg : DukeItemBase
{
default
{
pic "POWDERKEG";
+NOFLOORPAL;
+EXPLOSIVE;
+DOUBLEDMGTHRUST;
+BREAKMIRRORS;
+INFLAME;
}
override void Tick()
{
let sectp = self.sector;
if (sectp.lotag != ST_1_ABOVE_WATER && (!(ud.mapflags & MFLAG_ALLSECTORTYPES) && sectp.lotag != ST_160_FLOOR_TELEPORT))
if (self.vel.X != 0)
{
movesprite((self.Angle.ToVector()* self.vel.X, self.vel.Z), CLIPMASK0);
self.vel.X -= 1. / 16.;
}
Super.Tick();
}
override bool shootthis(DukeActor actor, DukePlayer p, Vector3 spos, double sang) const
{
let j = actor.spawn("RedneckPowderKeg");
if (j)
{
j.vel.X = 2;
j.Angle = actor.Angle;
j.pos.Z -= 5;
}
return true;
}
}

View file

@ -1,40 +0,0 @@
class RedneckRock : DukeActor
{
default
{
pic "ROCK";
+INTERNAL_BADGUY;
}
override void Initialize()
{
self.scale = (1, 1);
self.setClipDistFromTile();
}
}
class RedneckRock2 : RedneckRock
{
default
{
pic "ROCK2";
+INTERNAL_BADGUY;
}
}
class RedneckBoulder : DukeActor
{
default
{
pic "BOULDER";
+INTERNAL_BADGUY;
}
}
class RedneckBoulder1 : DukeActor
{
default
{
pic "BOULDER1";
+INTERNAL_BADGUY;
}
}

View file

@ -1,49 +0,0 @@
class RedneckTeslaBall : DukeItemBase
{
default
{
pic "TESLABALL";
}
}
class RedneckBustaWin5a : DukeItemBase
{
default
{
pic "BUSTAWIN5A";
}
}
class RedneckBustaWin4a : DukeItemBase
{
default
{
pic "BUSTAWIN4A";
}
}
class RedneckTesla : DukeItemBase
{
default
{
pic "TESLA";
+FULLBRIGHT
}
}
class RedneckTikiLamp : DukeItemBase
{
default
{
pic "TIKILAMP";
+FULLBRIGHT
}
}
class RedneckWaterSurface : DukeActor
{
default
{
pic "WATERSURFACE";
}
}

View file

@ -0,0 +1,22 @@
class RedneckSoundFX : DukeActor
{
default
{
Strength 10;
}
override void StaticSetup()
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.detail = dlevel.addambient(self.hitag, self.lotag);
self.lotag = self.hitag = 0;
}
// this actor needs to start on STAT_DEFAULT.
override void Initialize()
{
self.ChangeStat(STAT_ZOMBIEACTOR);
}
}

View file

@ -0,0 +1,9 @@
// This differs too much from RR's version.
class RedneckRASoundFX : RedneckSoundFX
{
default
{
Strength 10;
}
}

View file

@ -1,39 +1,24 @@
class RedneckChickenArrows : DukeItemBase
extend class DukeItemBase
{
default
{
pic "RPG2SPRITE";
}
override void Initialize()
{
commonItemSetup((0.34375, 0.3125));
}
}
const CASULAMMOAMOUNT = 6;
const SHOTGUNAMMOAMOUNT_RR = 10;
const RIFLEAMMOAMOUNT = 30;
const CROSSBOWAMMOBOX = 5;
const CHICKENBOWAMMOBOX = 5;
const ALIENBLASTERAMMOAMOUNT = 33;
const DYNAMITEBOX = 5;
class RedneckMotoAmmo : DukeItemBase
{
default
{
pic "MOTOAMMO";
}
override void Initialize()
{
commonItemSetup((0.359375, 0.359375));
}
}
const MOONSHINE_AMOUNT = 400;
const SHIELD_AMOUNT = 100;
const SCUBA_AMOUNT = 6400;
const HEAT_AMOUNT = 1200;
const COWPIE_AMOUNT = 600;
const BEER_AMOUNT = 2400;
const WHISKEY_AMOUNT = MAXPLAYERHEALTH;
const BOOT_AMOUNT = 2000;
const POWDERKEGBLASTRADIUS = 3880;
class RedneckBoatAmmo : DukeItemBase
{
default
{
pic "BOATAMMO";
}
override void Initialize()
{
commonItemSetup((0.359375, 0.359375));
}
}
class RedneckMoonshine : DukeItemBase
@ -48,7 +33,37 @@ class RedneckMoonshine : DukeItemBase
commonItemSetup((0.203125, 0.140625));
}
}
class RedneckHipWader : DukeItemBase
{
default
{
pic "BOOTS";
+INVENTORY;
}
}
class RedneckCowpie : DukeItemBase
{
default
{
pic "COWPIE";
+INVENTORY;
}
override void Initialize()
{
commonItemSetup((0.125, 0.09375));
}
}
class RedneckBeer : DukeItemBase
{
default
{
pic "BEER";
}
override void Initialize()
{
commonItemSetup((0.078125, 0.0625));
}
}
class RedneckSnorkel : DukeItemBase
{
default
@ -62,109 +77,45 @@ class RedneckSnorkel : DukeItemBase
commonItemSetup((0.296875, 0.25));
}
}
class RedneckCowpie : DukeItemBase
class RedneckDoorkey : DukeAccessCard
{
override void Initialize()
{
super.Initialize();
self.Scale = (0.171875, 0.1875);
}
}
class RedneckAmmo : DukeItemBase
{
default
{
pic "COWPIE";
+INVENTORY;
pic "AMMO";
}
override void Initialize()
{
commonItemSetup((0.125, 0.09375));
}
}
class RedneckSixpack : DukeItemBase
override void Initialize()
{
commonItemSetup((0.140625, 0.140625));
}
}
class RedneckTitAmmo : DukeItemBase
{
default
{
pic "HOLODUKE";
+INVENTORY;
pic "TEATAMMO";
}
}
class RedneckRevolver : DukeItemBase
class RedneckSawAmmo : DukeItemBase
{
default
{
pic "FIRSTGUNSPRITE";
pic "SAWAMMO";
}
override void Initialize()
{
commonItemSetup(((0.25, 0.25)));
commonItemSetup((0.1875, 0.109375));
}
}
class RedneckRiflegun : DukeItemBase
{
default
{
pic "RIFLEGUNSPRITE";
}
}
class RedneckShotgun : DukeItemBase
{
default
{
pic "SHOTGUNSPRITE";
}
}
class RedneckCrossbow : DukeItemBase
{
default
{
pic "CROSSBOWSPRITE";
}
override void Initialize()
{
commonItemSetup((0.25, 0.21875));
}
}
class RedneckRipsaw : DukeItemBase
{
default
{
pic "RIPSAWSPRITE";
}
override void Initialize()
{
commonItemSetup((0.34375, 0.203125));
}
}
class RedneckTitgun : DukeItemBase
{
default
{
pic "TITSPRITE";
}
override void Initialize()
{
commonItemSetup((0.265625, 0.25));
}
}
class RedneckBlaster : DukeItemBase
{
default
{
pic "ALIENBLASTERSPRITE";
}
override void Initialize()
{
commonItemSetup((0.28125, 0.265625));
}
}
class RedneckShotgunammo : DukeItemBase
{
default
@ -177,15 +128,31 @@ class RedneckShotgunammo : DukeItemBase
if (Raze.isRRRA()) self.cstat = CSTAT_SPRITE_BLOCK_HITSCAN;
}
}
class RedneckDynamiteAmmo : DukeItemBase
class RedneckRifleAmmo : DukeItemBase
{
default
{
pic "HBOMBAMMO";
pic "BATTERYAMMO";
}
override void Initialize()
{
commonItemSetup((0.234375, 0.234375));
}
}
class RedneckBlaster : DukeItemBase
{
default
{
pic "ALIENBLASTERSPRITE";
}
override void Initialize()
{
commonItemSetup((0.28125, 0.265625));
}
}
class RedneckBlasterammo : DukeItemBase
{
default
@ -198,41 +165,104 @@ class RedneckBlasterammo : DukeItemBase
commonItemSetup((0.15625, 0.140625));
}
}
class RedneckHipWader : DukeItemBase
{
default
{
pic "BOOTS";
+INVENTORY;
}
}
class RedneckAmmo : DukeItemBase
class RedneckBowlingBallsprite : DukeItemBase
{
default
{
pic "AMMO";
pic "BOWLINGBALLSPRITE";
strength BOWLINGBALL_WEAPON_STRENGTH;
}
override void Initialize()
{
commonItemSetup((0.140625, 0.140625));
}
}
class RedneckBeer : DukeItemBase
{
default
{
pic "BEER";
}
override void Initialize()
{
commonItemSetup((0.078125, 0.0625));
commonItemSetup((0.171875, 0.171875), -1, true);
}
}
class RedneckDynamiteAmmo : DukeItemBase
{
default
{
pic "HBOMBAMMO";
}
}
class RedneckCrossbow : DukeItemBase
{
default
{
pic "CROSSBOWSPRITE";
}
override void Initialize()
{
commonItemSetup((0.25, 0.21875));
}
}
class RedneckShotgun : DukeItemBase
{
default
{
pic "SHOTGUNSPRITE";
}
}
class RedneckRipsaw : DukeItemBase
{
default
{
pic "RIPSAWSPRITE";
}
override void Initialize()
{
commonItemSetup((0.34375, 0.203125));
}
}
class RedneckTitgun : DukeItemBase
{
default
{
pic "TITSPRITE";
}
override void Initialize()
{
commonItemSetup((0.265625, 0.25));
}
}
class RedneckPorkRinds : DukeItemBase
{
default
{
pic "SIXPAK";
}
override void Initialize()
{
commonItemSetup((0.203125, 0.140625));
if (Raze.isRRRA()) self.cstat = CSTAT_SPRITE_BLOCK_HITSCAN;
}
}
class RedneckGoogooCluster : DukeItemBase
{
default
{
pic "ATOMICHEALTH";
+FULLBRIGHT;
+BIGHEALTH;
+NOFLOORPAL;
}
override void Initialize()
{
commonItemSetup((0.125, 0.125));
self.cstat |= CSTAT_SPRITE_YCENTER;
}
override bool animate(tspritetype t)
{
t.pos.Z -= 4;
return false;
}
}
class RedneckWhiskey : DukeItemBase
{
default
@ -245,35 +275,93 @@ class RedneckWhiskey : DukeItemBase
commonItemSetup((0.125, 0.125));
}
}
class RedneckSawAmmo : DukeItemBase
class RedneckRevolver : DukeItemBase
{
default
{
pic "SAWAMMO";
pic "FIRSTGUNSPRITE";
}
override void Initialize()
{
commonItemSetup((0.1875, 0.109375));
commonItemSetup(((0.25, 0.25)));
}
}
class RedneckTitAmmo : DukeItemBase
class RedneckPowderKeg : DukeItemBase
{
default
{
pic "TEATAMMO";
pic "POWDERKEG";
+NOFLOORPAL;
+EXPLOSIVE;
+DOUBLEDMGTHRUST;
+BREAKMIRRORS;
+INFLAME;
}
override void Tick()
{
let sectp = self.sector;
if (sectp.lotag != ST_1_ABOVE_WATER && (!(ud.mapflags & MFLAG_ALLSECTORTYPES) && sectp.lotag != ST_160_FLOOR_TELEPORT))
if (self.vel.X != 0)
{
movesprite((self.Angle.ToVector()* self.vel.X, self.vel.Z), CLIPMASK0);
self.vel.X -= 1. / 16.;
}
Super.Tick();
}
override bool shootthis(DukeActor actor, DukePlayer p, Vector3 spos, double sang) const
{
let j = actor.spawn("RedneckPowderKeg");
if (j)
{
j.vel.X = 2;
j.Angle = actor.Angle;
j.pos.Z -= 5;
}
return true;
}
}
class RedneckRiflegun : DukeItemBase
{
default
{
pic "RIFLEGUNSPRITE";
}
}
class RedneckDoorkey : DukeAccessCard
class RedneckMotoAmmo : DukeItemBase
{
default
{
pic "MOTOAMMO";
}
override void Initialize()
{
super.Initialize();
self.Scale = (0.171875, 0.1875);
commonItemSetup((0.359375, 0.359375));
}
}
class RedneckBoatAmmo : DukeItemBase
{
default
{
pic "BOATAMMO";
}
override void Initialize()
{
commonItemSetup((0.359375, 0.359375));
}
}
class RedneckChickenArrows : DukeItemBase
{
default
{
pic "RPG2SPRITE";
}
override void Initialize()
{
commonItemSetup((0.34375, 0.3125));
}
}

View file

@ -0,0 +1,25 @@
class RedneckPlayerPawn : DukePlayerBase
{
default
{
+DESTRUCTOIMMUNE;
Strength MAXPLAYERHEALTH;
}
}
class RedneckPlayerLyingDead : DukeActor // LNRDLYINGDEAD (3998)
{
default
{
Strength 0;
action "PLYINGFRAMES", 0, 1, 0, 1, 1;
StartAction "PLYINGFRAMES";
}
override bool animate(tspritetype t)
{
t.scale = (0.375, 0.265625);
if (self.extra > 0)
t.pos.Z += 6;
return false;
}
}

View file

@ -0,0 +1,152 @@
class RedneckRock : DukeActor
{
default
{
pic "ROCK";
+INTERNAL_BADGUY;
Strength 200;
}
override void Initialize()
{
self.scale = (1, 1);
self.setClipDistFromTile();
}
}
class RedneckRock2 : DukeActor
{
default
{
pic "ROCK2";
+INTERNAL_BADGUY;
Strength 200;
}
}
class RedneckBoulder : DukeActor
{
default
{
pic "BOULDER";
+INTERNAL_BADGUY;
}
}
class RedneckBoulder1 : DukeActor
{
default
{
pic "BOULDER1";
+INTERNAL_BADGUY;
}
}
class RedneckTeslaBall : DukeItemBase
{
default
{
Strength MORTER_WEAPON_STRENGTH;
pic "TESLABALL";
}
}
class RedneckTesla : DukeItemBase
{
default
{
pic "TESLA";
+FULLBRIGHT
}
}
class RedneckUfoBeam : DukeActor
{
default
{
pic "UFOBEAM";
+BADGUY;
ProjectileSpread 0;
Strength 100;
}
override bool animate(tspritetype t)
{
t.cstat |= CSTAT_SPRITE_INVISIBLE;
self.cstat |= CSTAT_SPRITE_INVISIBLE;
return true;
}
}
class RedneckTikiLamp : DukeItemBase
{
default
{
pic "TIKILAMP";
+FULLBRIGHT
Strength REALLYTOUGH;
}
}
class DukeMinecartKiller : DukeActor
{
default
{
+BADGUY;
Strength MEGASTRENGTH;
}
override void StaticSetup()
{
self.cstat |= CSTAT_SPRITE_INVISIBLE;
}
}
class RedneckBustaWin4a : DukeItemBase
{
default
{
pic "BUSTAWIN4A";
Strength WEAK;
}
}
class RedneckBustaWin5a : DukeItemBase
{
default
{
pic "BUSTAWIN5A";
Strength WEAK;
}
}
class RedneckBarrel : DukeActor
{
const POWDERKEGBLASTRADIUS = 3880;
const POWDERKEG_STRENGTH = 100;
default
{
spriteset "BARREL", "BARRELBROKE";
}
}
class RedneckBarrel2 : RedneckBarrel
{
default
{
spriteset "BARREL2", "BARREL2BROKE";
}
}
class RedneckWaterSurface : DukeActor
{
default
{
pic "WATERSURFACE";
}
}

View file

@ -1,14 +0,0 @@
class RedneckPorkRinds : DukeItemBase
{
default
{
pic "SIXPAK";
}
override void Initialize()
{
commonItemSetup((0.203125, 0.140625));
if (Raze.isRRRA()) self.cstat = CSTAT_SPRITE_BLOCK_HITSCAN;
}
}