- exported a few of Duke's decorations

This commit is contained in:
Christoph Oelckers 2022-12-14 16:24:31 +01:00
parent 551e0af58d
commit 82d04756be
7 changed files with 97 additions and 74 deletions

View file

@ -135,30 +135,13 @@ void initactorflags_r()
setflag(SFLAG_TRIGGER_IFHITSECTOR, { RTILE_EXPLOSION2, RTILE_EXPLOSION3 });
setflag(SFLAG_MOVEFTA_MAKESTANDABLE, {
RTILE_RUBBERCAN,
RTILE_EXPLODINGBARREL,
RTILE_WOODENHORSE,
RTILE_HORSEONSIDE,
RTILE_CANWITHSOMETHING,
RTILE_FIREBARREL,
RTILE_FIREVASE,
RTILE_NUKEBARREL,
RTILE_NUKEBARRELDENTED,
RTILE_NUKEBARRELLEAKED
});
// non-STAT_ACTOR classes that need CON support. For compatibility this must be explicitly enabled.
setflag(SFLAG3_FORCERUNCON, {
RTILE_EXPLODINGBARREL,
RTILE_WOODENHORSE,
RTILE_HORSEONSIDE,
RTILE_FIREBARREL,
RTILE_FIREVASE,
RTILE_NUKEBARREL,
RTILE_NUKEBARRELDENTED,
RTILE_NUKEBARRELLEAKED,
RTILE_TOILETWATER,
RTILE_RUBBERCAN,
RTILE_STEAM,
RTILE_CEILINGSTEAM,
RTILE_SHOTSPARK1,
@ -180,7 +163,6 @@ void initactorflags_r()
setflag(SFLAG_NOFLOORFIRE, { RTILE_TREE1, RTILE_TREE2 });
setflag(SFLAG_HITRADIUS_FLAG1, { RTILE_BOX, RTILE_TREE1, RTILE_TREE2, RTILE_TIRE });
setflag(SFLAG_HITRADIUS_FLAG2, { RTILE_QUEBALL, RTILE_STRIPEBALL, RTILE_BOWLINGPIN, RTILE_DUKELYINGDEAD });
setflag(SFLAG_CHECKSLEEP, { RTILE_RUBBERCAN, RTILE_EXPLODINGBARREL, RTILE_WOODENHORSE, RTILE_HORSEONSIDE, RTILE_CANWITHSOMETHING, RTILE_FIREBARREL, RTILE_NUKEBARREL, RTILE_NUKEBARRELDENTED, RTILE_NUKEBARRELLEAKED });
setflag(SFLAG_NOTELEPORT, { RTILE_TRANSPORTERSTAR, RTILE_TRANSPORTERBEAM, RTILE_BULLETHOLE, RTILE_WATERSPLASH2, RTILE_BURNING, RTILE_FIRE, RTILE_MUD });
setflag(SFLAG_SE24_NOCARRY, { RTILE_BULLETHOLE, RTILE_BOLT1, RTILE_BOLT2, RTILE_BOLT3, RTILE_BOLT4, RTILE_CRANE, RTILE_CRANE1, RTILE_CRANE2, RTILE_BARBROKE });
setflag(SFLAG_SE24_REMOVE, { RTILE_BLOODPOOL, RTILE_PUKE, RTILE_FOOTPRINTS, RTILE_FOOTPRINTS2, RTILE_FOOTPRINTS3 });
@ -188,12 +170,12 @@ void initactorflags_r()
setflag(SFLAG2_EXPLOSIVE, {RTILE_RPG, RTILE_RADIUSEXPLOSION, RTILE_SEENINE, RTILE_OOZFILTER });
if (isRRRA()) setflag(SFLAG2_EXPLOSIVE, { RTILE_RPG2 });
setflag(SFLAG2_BRIGHTEXPLODE, { RTILE_SEENINE, RTILE_OOZFILTER });
setflag(SFLAG2_DOUBLEDMGTHRUST, { RTILE_RADIUSEXPLOSION, RTILE_RPG, RTILE_HYDRENT, RTILE_DYNAMITE, RTILE_SEENINE, RTILE_OOZFILTER, RTILE_EXPLODINGBARREL, RTILE_POWDERKEG });
setflag(SFLAG2_DOUBLEDMGTHRUST, { RTILE_RADIUSEXPLOSION, RTILE_RPG, RTILE_HYDRENT, RTILE_DYNAMITE, RTILE_SEENINE, RTILE_OOZFILTER, RTILE_POWDERKEG });
if (isRRRA()) setflag(SFLAG2_DOUBLEDMGTHRUST, { RTILE_RPG2 });
setflag(SFLAG2_BREAKMIRRORS, { RTILE_RADIUSEXPLOSION, RTILE_RPG, RTILE_HYDRENT, RTILE_DYNAMITE, RTILE_SEENINE, RTILE_OOZFILTER, RTILE_EXPLODINGBARREL, RTILE_POWDERKEG });
setflag(SFLAG2_BREAKMIRRORS, { RTILE_RADIUSEXPLOSION, RTILE_RPG, RTILE_HYDRENT, RTILE_DYNAMITE, RTILE_SEENINE, RTILE_OOZFILTER, RTILE_POWDERKEG });
if (isRRRA()) setflag(SFLAG2_BREAKMIRRORS, { RTILE_RPG2 });
setflag(SFLAG2_CAMERA, { RTILE_CAMERA1 });
setflag(SFLAG2_GREENBLOOD, { RTILE_OOZFILTER, RTILE_NUKEBARREL });
setflag(SFLAG2_GREENBLOOD, { RTILE_OOZFILTER });
setflag(SFLAG2_ALWAYSROTATE1, { RTILE_RAT, RTILE_CAMERA1, RTILE_CHAIR3 });
setflag(SFLAG2_ALWAYSROTATE2, { RTILE_RPG });
setflag(SFLAG2_DIENOW, { RTILE_RADIUSEXPLOSION });

View file

@ -81,9 +81,6 @@ static void cachespritenum(DDukeActor* actor)
case RTILE_FORCERIPPLE:
maxc = 9;
break;
case RTILE_RUBBERCAN:
maxc = 2;
break;
case RTILE_TOILETWATER:
maxc = 4;
break;
@ -263,12 +260,6 @@ static void cachespritenum(DDukeActor* actor)
case RTILE_DRONE:
maxc = 6;
break;
case RTILE_EXPLODINGBARREL:
maxc = 3;
break;
case RTILE_NUKEBARREL:
maxc = 5;
break;
case RTILE_VIXEN:
maxc = 214;
for (j = actor->spr.picnum; j < actor->spr.picnum + maxc; j++)

View file

@ -197,28 +197,6 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
case DTILE_CEILINGSTEAM:
ChangeActorStat(act, STAT_STANDABLE);
break;
case DTILE_RUBBERCAN:
act->spr.extra = 0;
[[fallthrough]];
case DTILE_EXPLODINGBARREL:
case DTILE_HORSEONSIDE:
case DTILE_FIREBARREL:
case DTILE_NUKEBARREL:
case DTILE_FIREVASE:
case DTILE_NUKEBARRELDENTED:
case DTILE_NUKEBARRELLEAKED:
case DTILE_WOODENHORSE:
if (actj)
act->spr.scale = DVector2(0.5, 0.5);
act->clipdist = 18;
makeitfall(act);
if (actj) act->SetOwner(actj);
else act->SetOwner(act);
act->spr.cstat = CSTAT_SPRITE_BLOCK_ALL | randomXFlip();
ChangeActorStat(act, STAT_ZOMBIEACTOR);
break;
}
return act;
}

View file

@ -529,27 +529,6 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
ChangeActorStat(act, STAT_STANDABLE);
break;
case RTILE_RUBBERCAN:
act->spr.extra = 0;
[[fallthrough]];
case RTILE_EXPLODINGBARREL:
case RTILE_HORSEONSIDE:
case RTILE_FIREBARREL:
case RTILE_NUKEBARREL:
case RTILE_FIREVASE:
case RTILE_NUKEBARRELDENTED:
case RTILE_NUKEBARRELLEAKED:
case RTILE_WOODENHORSE:
if (actj)
act->spr.scale = DVector2(0.5, 0.5);
act->clipdist = 18;
makeitfall(act);
if (actj) act->SetOwner(actj);
else act->SetOwner(act);
act->spr.cstat = CSTAT_SPRITE_BLOCK_ALL | randomXFlip();
ChangeActorStat(act, STAT_ZOMBIEACTOR);
break;
case RTILE_RRTILE63:
act->spr.cstat |= CSTAT_SPRITE_INVISIBLE;
act->spr.scale = DVector2(REPEAT_SCALE, REPEAT_SCALE);

View file

@ -296,6 +296,15 @@ spawnclasses
603 = DukeNaked
1294 = DukePodFemale
1324 = DukeBloodyPole
1238 = DukeExplodingBarrel
1026 = DukeHorseOnSide
1248 = DukeFireBarrel
1227 = DukeNukeBarrel
1390 = DukeFireVase
1228 = DukeNukeBarrelDented
1229 = DukeNukeBarrelLeaked
904 = DukeWoodenHorse
1062 = DukeRubberCan
@ -335,6 +344,7 @@ spawnclasses
1880 = DukeDrone
2420 = DukeTurret
2360 = DukeRotateGun
675 = DukeEgg
}

View file

@ -109,6 +109,7 @@ version "4.10"
#include "zscript/games/duke/actors/waterbubble.zs"
#include "zscript/games/duke/actors/smallsmoke.zs"
#include "zscript/games/duke/actors/steam.zs"
#include "zscript/games/duke/actors/dukedecos.zs"
#include "zscript/games/duke/actors/dukeitems.zs"
#include "zscript/games/duke/actors/batteryammo.zs"

View file

@ -0,0 +1,82 @@
class DukeExplodingBarrel : DukeActor
{
default
{
pic "EXPLODINGBARREL";
}
override void Initialize()
{
if (!self.mapSpawned)
self.scale = (0.5, 0.5);
self.cstat = CSTAT_SPRITE_BLOCK_ALL | randomXFlip();
self.clipdist = 18;
self.ChangeStat(STAT_ZOMBIEACTOR);
}
}
class DukeHorseOnSide : DukeExplodingBarrel
{
default
{
pic "HORSEONSIDE";
}
}
class DukeFireBarrel : DukeExplodingBarrel
{
default
{
pic "FIREBARREL";
}
}
class DukeNukeBarrel : DukeExplodingBarrel
{
default
{
pic "NUKEBARREL";
}
}
class DukeFireVase : DukeExplodingBarrel
{
default
{
pic "FIREVASE";
}
}
class DukeNukeBarrelDented : DukeExplodingBarrel
{
default
{
pic "NUKEBARRELDENTED";
}
}
class DukeNukeBarrelLeaked : DukeExplodingBarrel
{
default
{
pic "DTILE_NUKEBARRELLEAKED";
}
}
class DukeWoodenHorse : DukeExplodingBarrel
{
default
{
pic "WOODENHORSE";
}
}
class DukeRubberCan : DukeExplodingBarrel
{
default
{
pic "RUBBERCAN";
}
override void Initialize()
{
super.Initialize();
self.extra = 0;
}
}