mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
- converted all simple destructible sprites.
Ironically the first item I used for testing needed a dedicated class, so here's that, too...
This commit is contained in:
parent
9e29c3970d
commit
1d52963d4b
21 changed files with 351 additions and 693 deletions
|
@ -2250,6 +2250,7 @@ static void parseSpawnClasses(FScanner& sc, FScriptPosition& pos)
|
||||||
int base = -1;
|
int base = -1;
|
||||||
int basetex = -1;
|
int basetex = -1;
|
||||||
int brokentex = -1;
|
int brokentex = -1;
|
||||||
|
int fullbright = 0;
|
||||||
FName sound = NAME_None;
|
FName sound = NAME_None;
|
||||||
FName cname;
|
FName cname;
|
||||||
sc.GetNumber(num, true);
|
sc.GetNumber(num, true);
|
||||||
|
@ -2261,14 +2262,22 @@ static void parseSpawnClasses(FScanner& sc, FScriptPosition& pos)
|
||||||
if (sc.CheckNumber(true)) base = sc.Number;
|
if (sc.CheckNumber(true)) base = sc.Number;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// prefixing the texture names here with a '*' will render them fullbright.
|
||||||
sc.MustGetString();
|
sc.MustGetString();
|
||||||
basetex = TileFiles.tileForName(sc.String);
|
const char* p = sc.String;
|
||||||
if (basetex < 0) Printf(TEXTCOLOR_RED "Unknown texture %s in definition for spawn ID # %d\n", num);
|
if (*p == '*') { fullbright |= 1; p++; }
|
||||||
|
basetex = TileFiles.tileForName(p);
|
||||||
|
if (basetex < 0) Printf(TEXTCOLOR_RED "Unknown texture %s in definition for spawn ID # %d\n", sc.String, num);
|
||||||
if (sc.CheckString(","))
|
if (sc.CheckString(","))
|
||||||
{
|
{
|
||||||
sc.MustGetString();
|
sc.MustGetString();
|
||||||
brokentex = TileFiles.tileForName(sc.String);
|
const char* p = sc.String;
|
||||||
if (brokentex < 0) Printf(TEXTCOLOR_RED "Unknown texture %s in definition for spawn ID # %d\n", num);
|
if (*p)
|
||||||
|
{
|
||||||
|
if (*p == '*') { fullbright |= 2; p++; }
|
||||||
|
brokentex = TileFiles.tileForName(p);
|
||||||
|
if (brokentex < 0) Printf(TEXTCOLOR_RED "Unknown texture %s in definition for spawn ID # %d\n", sc.String, num);
|
||||||
|
}
|
||||||
if (sc.CheckString(","))
|
if (sc.CheckString(","))
|
||||||
{
|
{
|
||||||
sc.MustGetString();
|
sc.MustGetString();
|
||||||
|
@ -2285,7 +2294,7 @@ static void parseSpawnClasses(FScanner& sc, FScriptPosition& pos)
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo: check for proper base class
|
// todo: check for proper base class
|
||||||
spawnMap.Insert(num, { cname, nullptr, base, basetex, brokentex, sound });
|
spawnMap.Insert(num, { cname, nullptr, base, basetex, brokentex, sound, fullbright });
|
||||||
}
|
}
|
||||||
sc.SetCMode(false);
|
sc.SetCMode(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -278,6 +278,7 @@ struct SpawnRec
|
||||||
int param;
|
int param;
|
||||||
int basetex, brokentex;
|
int basetex, brokentex;
|
||||||
FName breaksound;
|
FName breaksound;
|
||||||
|
int fullbright;
|
||||||
|
|
||||||
PClass* Class(int pn)
|
PClass* Class(int pn)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,3 +24,4 @@ xx(DukeGenericDestructible)
|
||||||
xx(spawnstate)
|
xx(spawnstate)
|
||||||
xx(brokenstate)
|
xx(brokenstate)
|
||||||
xx(breaksound)
|
xx(breaksound)
|
||||||
|
xx(fullbright)
|
|
@ -1437,41 +1437,7 @@ void movetransports_r(void)
|
||||||
static void rrra_specialstats()
|
static void rrra_specialstats()
|
||||||
{
|
{
|
||||||
Collision coll;
|
Collision coll;
|
||||||
DukeStatIterator it(117);
|
DukeStatIterator it(118);
|
||||||
while (auto act = it.Next())
|
|
||||||
{
|
|
||||||
if (act->spr.hitag > 2)
|
|
||||||
act->spr.hitag = 0;
|
|
||||||
if ((act->spr.picnum == RRTILE8488 || act->spr.picnum == RRTILE8490) && act->spr.hitag != 2)
|
|
||||||
{
|
|
||||||
act->spr.hitag = 2;
|
|
||||||
act->spr.extra = -100;
|
|
||||||
}
|
|
||||||
if (act->spr.hitag == 0)
|
|
||||||
{
|
|
||||||
act->spr.extra++;
|
|
||||||
if (act->spr.extra >= 30)
|
|
||||||
act->spr.hitag = 1;
|
|
||||||
}
|
|
||||||
else if (act->spr.hitag == 1)
|
|
||||||
{
|
|
||||||
act->spr.extra--;
|
|
||||||
if (act->spr.extra <= -30)
|
|
||||||
act->spr.hitag = 0;
|
|
||||||
}
|
|
||||||
else if (act->spr.hitag == 2)
|
|
||||||
{
|
|
||||||
act->spr.extra--;
|
|
||||||
if (act->spr.extra <= -104)
|
|
||||||
{
|
|
||||||
spawn(act, act->spr.lotag);
|
|
||||||
act->Destroy();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
movesprite_ex(act, DVector3(0, 0, act->spr.extra / 128.), CLIPMASK0, coll);
|
|
||||||
}
|
|
||||||
|
|
||||||
it.Reset(118);
|
|
||||||
while (auto act = it.Next())
|
while (auto act = it.Next())
|
||||||
{
|
{
|
||||||
if (act->spr.hitag > 1)
|
if (act->spr.hitag > 1)
|
||||||
|
|
|
@ -734,15 +734,12 @@ void animatesprites_r(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi
|
||||||
break;
|
break;
|
||||||
case WALLLIGHT3:
|
case WALLLIGHT3:
|
||||||
case WALLLIGHT1:
|
case WALLLIGHT1:
|
||||||
|
|
||||||
|
// none of these are active
|
||||||
case RRTILE3668:
|
case RRTILE3668:
|
||||||
case RRTILE3795:
|
case RRTILE3795:
|
||||||
case RRTILE5035:
|
|
||||||
case RRTILE7505:
|
case RRTILE7505:
|
||||||
case RRTILE7506:
|
case RRTILE7506:
|
||||||
case RRTILE7533:
|
|
||||||
case RRTILE8216:
|
|
||||||
case RRTILE8218:
|
|
||||||
case RRTILE8220:
|
|
||||||
if (!isRRRA()) break;
|
if (!isRRRA()) break;
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
case RRTILE1878:
|
case RRTILE1878:
|
||||||
|
@ -755,14 +752,6 @@ void animatesprites_r(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi
|
||||||
case RRTILE2075:
|
case RRTILE2075:
|
||||||
case RRTILE2083:
|
case RRTILE2083:
|
||||||
case RRTILE2097:
|
case RRTILE2097:
|
||||||
case RRTILE2156:
|
|
||||||
case RRTILE2157:
|
|
||||||
case RRTILE2158:
|
|
||||||
case RRTILE2159:
|
|
||||||
case RRTILE2160:
|
|
||||||
case RRTILE2161:
|
|
||||||
case RRTILE2175:
|
|
||||||
case RRTILE2176:
|
|
||||||
case RRTILE2357:
|
case RRTILE2357:
|
||||||
case RRTILE2564:
|
case RRTILE2564:
|
||||||
case RRTILE2573:
|
case RRTILE2573:
|
||||||
|
|
|
@ -76,13 +76,19 @@ static int ccmd_spawn(CCmdFuncPtr parm)
|
||||||
if (isdigit((uint8_t)parm->parms[0][0])) {
|
if (isdigit((uint8_t)parm->parms[0][0])) {
|
||||||
picnum = (unsigned short)atol(parm->parms[0]);
|
picnum = (unsigned short)atol(parm->parms[0]);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
picnum = getlabelvalue(parm->parms[0]);
|
picnum = getlabelvalue(parm->parms[0]);
|
||||||
if (picnum < 0) {
|
if (picnum < 0)
|
||||||
|
{
|
||||||
|
picnum = TileFiles.tileForName(parm->parms[0]);
|
||||||
|
if (picnum < 0)
|
||||||
|
{
|
||||||
Printf("spawn: Invalid tile label given\n");
|
Printf("spawn: Invalid tile label given\n");
|
||||||
return CCMD_OK;
|
return CCMD_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (picnum >= MAXTILES) {
|
if (picnum >= MAXTILES) {
|
||||||
Printf("spawn: Invalid tile number\n");
|
Printf("spawn: Invalid tile number\n");
|
||||||
|
@ -100,6 +106,7 @@ static int ccmd_spawn(CCmdFuncPtr parm)
|
||||||
if (set & 2) spawned->spr.cstat = ESpriteFlags::FromInt(cstat);
|
if (set & 2) spawned->spr.cstat = ESpriteFlags::FromInt(cstat);
|
||||||
if (set & 4) spawned->spr.Angles.Yaw = ang;
|
if (set & 4) spawned->spr.Angles.Yaw = ang;
|
||||||
if (set & 8) SetActor(spawned, DVector3( x, y, z ));
|
if (set & 8) SetActor(spawned, DVector3( x, y, z ));
|
||||||
|
if (spawned->spr.scale.isZero()) spawned->spr.scale = isRR() ? DVector2(0.5, 0.5) : DVector2(1., 1.); // nake sure it's visible.
|
||||||
|
|
||||||
if (spawned->sector() == nullptr)
|
if (spawned->sector() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1163,26 +1163,41 @@ y(RRTILE7579, 7579)
|
||||||
y(RRTILE7580, 7580)
|
y(RRTILE7580, 7580)
|
||||||
y(RRTILE7595, 7595)
|
y(RRTILE7595, 7595)
|
||||||
y(RRTILE7629, 7629)
|
y(RRTILE7629, 7629)
|
||||||
y(RRTILE7636, 7636)
|
y(OLDPHOTO0, 7636)
|
||||||
y(RRTILE7638, 7638)
|
y(OLDPHOTO0BROKE, 7637)
|
||||||
y(RRTILE7640, 7640)
|
y(OLDPHOTO1, 7638)
|
||||||
y(RRTILE7644, 7644)
|
y(OLDPHOTO1BROKE, 7639)
|
||||||
y(RRTILE7646, 7646)
|
y(FLAMMABLESIGN, 7640)
|
||||||
y(RRTILE7648, 7648)
|
y(FLAMMABLESIGNBROKE, 7641)
|
||||||
y(RRTILE7650, 7650)
|
y(OLDPHOTO2, 7644)
|
||||||
y(RRTILE7653, 7653)
|
y(OLDPHOTO2BROKE, 7645)
|
||||||
y(RRTILE7655, 7655)
|
y(OLDPHOTO3, 7646)
|
||||||
y(RRTILE7657, 7657)
|
y(OLDPHOTO3BROKE, 7647)
|
||||||
|
y(WILLIESGUNS, 7648)
|
||||||
|
y(WILLIESGUNSBROKE, 7649)
|
||||||
|
y(FLAMMABLE2SIGN, 7650)
|
||||||
|
y(FLAMMABLE2SIGNBROKE, 7651)
|
||||||
|
y(LABSIGN, 7653)
|
||||||
|
y(LABSIGNBROKE, 7654)
|
||||||
|
y(LABSIGN2, 7655)
|
||||||
|
y(LABSIGN2BROKE, 7656)
|
||||||
|
y(WEAPONCABINET, 7657)
|
||||||
|
y(WEAPONCABINETBROKE, 7658)
|
||||||
y(RRTILE7659, 7659)
|
y(RRTILE7659, 7659)
|
||||||
y(RRTILE7691, 7691)
|
y(SALOONSIGN, 7691)
|
||||||
y(RRTILE7694, 7694)
|
y(SALOONSIGNBROKE, 7692)
|
||||||
|
y(BANKELPESO, 7694)
|
||||||
|
y(BANKELPESOBROKE, 7695)
|
||||||
y(RRTILE7696, 7696)
|
y(RRTILE7696, 7696)
|
||||||
y(RRTILE7697, 7697)
|
y(RRTILE7697, 7697)
|
||||||
y(RRTILE7700, 7700)
|
y(SHERIFFSIGN, 7700)
|
||||||
y(RRTILE7702, 7702)
|
y(SHERIFFSIGNBROKE, 7701)
|
||||||
|
y(STORESIGN, 7702)
|
||||||
|
y(STORESIGNBROKE, 7703)
|
||||||
y(RRTILE7704, 7704)
|
y(RRTILE7704, 7704)
|
||||||
y(RRTILE7705, 7705)
|
y(RRTILE7705, 7705)
|
||||||
y(RRTILE7711, 7711)
|
y(HOTELSIGN, 7711)
|
||||||
|
y(HOTELSIGNBROKE, 7712)
|
||||||
y(RRTILE7716, 7716)
|
y(RRTILE7716, 7716)
|
||||||
y(RRTILE7756, 7756)
|
y(RRTILE7756, 7756)
|
||||||
y(RRTILE7768, 7768)
|
y(RRTILE7768, 7768)
|
||||||
|
@ -1191,11 +1206,16 @@ y(RRTILE7820, 7820)
|
||||||
y(RRTILE7859, 7859)
|
y(RRTILE7859, 7859)
|
||||||
y(RRTILE7870, 7870)
|
y(RRTILE7870, 7870)
|
||||||
y(RRTILE7873, 7873)
|
y(RRTILE7873, 7873)
|
||||||
y(RRTILE7875, 7875)
|
y(NOMOTOSIGN, 7875)
|
||||||
y(RRTILE7876, 7876)
|
y(STREETSIGN1, 7876)
|
||||||
y(RRTILE7879, 7879)
|
y(STREETSIGN1BROKE, 7877)
|
||||||
y(RRTILE7881, 7881)
|
y(NOMOTOSIGNBROKE, 7878)
|
||||||
y(RRTILE7883, 7883)
|
y(DIABLOHWAY, 7879)
|
||||||
|
y(DIABLOHWAYBROKE, 7880)
|
||||||
|
y(DANGERSIGN, 7881)
|
||||||
|
y(DANGERSIGNBROKE, 7882)
|
||||||
|
y(RADIATIONSIGN, 7883)
|
||||||
|
y(RADIATIONSIGNBROKE, 7884)
|
||||||
y(RRTILE7885, 7885)
|
y(RRTILE7885, 7885)
|
||||||
y(RRTILE7886, 7886)
|
y(RRTILE7886, 7886)
|
||||||
y(RRTILE7887, 7887)
|
y(RRTILE7887, 7887)
|
||||||
|
@ -1271,10 +1291,10 @@ y(RRTILE8462, 8462)
|
||||||
x(IRONWHEELSWITCH, 8464)
|
x(IRONWHEELSWITCH, 8464)
|
||||||
x(IRONWHEELSWITCHON, 8465)
|
x(IRONWHEELSWITCHON, 8465)
|
||||||
y(RRTILE8475, 8475)
|
y(RRTILE8475, 8475)
|
||||||
y(RRTILE8487, 8487)
|
y(BALLOONS1, 8487)
|
||||||
y(RRTILE8488, 8488)
|
y(BALLOONS1BROKE, 8488)
|
||||||
y(RRTILE8489, 8489)
|
y(BALLOONS2, 8489)
|
||||||
y(RRTILE8490, 8490)
|
y(BALLOONS2BROKE, 8490)
|
||||||
y(RRTILE8496, 8496)
|
y(RRTILE8496, 8496)
|
||||||
y(RRTILE8497, 8497)
|
y(RRTILE8497, 8497)
|
||||||
y(RRTILE8498, 8498)
|
y(RRTILE8498, 8498)
|
||||||
|
|
|
@ -941,9 +941,6 @@ static TArray<DDukeActor*> spawnactors(SpawnSpriteDef& sprites)
|
||||||
|
|
||||||
auto sprt = &sprites.sprites[i];
|
auto sprt = &sprites.sprites[i];
|
||||||
|
|
||||||
if (sprt->picnum == 7220)
|
|
||||||
sprt->picnum = 8490;
|
|
||||||
|
|
||||||
auto info = spawnMap.CheckKey(sprt->picnum);
|
auto info = spawnMap.CheckKey(sprt->picnum);
|
||||||
auto cls = info ? info->Class(sprt->picnum) : nullptr;;
|
auto cls = info ? info->Class(sprt->picnum) : nullptr;;
|
||||||
auto actor = static_cast<DDukeActor*>(InsertActor(cls? cls : RUNTIME_CLASS(DDukeActor), sprt->sectp, sprt->statnum));
|
auto actor = static_cast<DDukeActor*>(InsertActor(cls? cls : RUNTIME_CLASS(DDukeActor), sprt->sectp, sprt->statnum));
|
||||||
|
|
|
@ -1256,28 +1256,6 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GRATE1:
|
|
||||||
targ->spr.picnum = BGRATE1;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CIRCLEPANNEL:
|
|
||||||
targ->spr.picnum = CIRCLEPANNELBROKE;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
case PANNEL1:
|
|
||||||
case PANNEL2:
|
|
||||||
targ->spr.picnum = BPANNEL1;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
case PANNEL3:
|
|
||||||
targ->spr.picnum = BPANNEL3;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
case PIPE1:
|
case PIPE1:
|
||||||
case PIPE2:
|
case PIPE2:
|
||||||
case PIPE3:
|
case PIPE3:
|
||||||
|
@ -1336,21 +1314,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
|
||||||
targ->Destroy();
|
targ->Destroy();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CHAIR1:
|
|
||||||
case CHAIR2:
|
|
||||||
targ->spr.picnum = BROKENCHAIR;
|
|
||||||
targ->spr.cstat = 0;
|
|
||||||
break;
|
|
||||||
case CHAIR3:
|
case CHAIR3:
|
||||||
case MOVIECAMERA:
|
|
||||||
case SCALE:
|
|
||||||
case VACUUM:
|
|
||||||
case CAMERALIGHT:
|
|
||||||
case IVUNIT:
|
|
||||||
case POT1:
|
|
||||||
case POT2:
|
|
||||||
case POT3:
|
|
||||||
case TRIPODCAMERA:
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
||||||
for (j = 0; j < 16; j++) RANDOMSCRAP(targ);
|
for (j = 0; j < 16; j++) RANDOMSCRAP(targ);
|
||||||
targ->Destroy();
|
targ->Destroy();
|
||||||
|
|
|
@ -1018,9 +1018,9 @@ void checkhitwall_r(DDukeActor* spr, walltype* wal, const DVector3& pos, int atw
|
||||||
wal->picnum = RRTILE8623;
|
wal->picnum = RRTILE8623;
|
||||||
S_PlayActorSound(495, spr);
|
S_PlayActorSound(495, spr);
|
||||||
return;
|
return;
|
||||||
case RRTILE7657:
|
case WEAPONCABINET:
|
||||||
if (!isRRRA()) break;
|
if (!isRRRA()) break;
|
||||||
wal->picnum = RRTILE7659;
|
wal->picnum = WEAPONCABINETBROKE;
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, spr);
|
S_PlayActorSound(GLASS_HEAVYBREAK, spr);
|
||||||
return;
|
return;
|
||||||
case RRTILE8497:
|
case RRTILE8497:
|
||||||
|
@ -1631,20 +1631,7 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHAIR1:
|
|
||||||
case CHAIR2:
|
|
||||||
targ->spr.picnum = BROKENCHAIR;
|
|
||||||
targ->spr.cstat = 0;
|
|
||||||
break;
|
|
||||||
case CHAIR3:
|
case CHAIR3:
|
||||||
case MOVIECAMERA:
|
|
||||||
case SCALE:
|
|
||||||
case VACUUM:
|
|
||||||
case CAMERALIGHT:
|
|
||||||
case IVUNIT:
|
|
||||||
case POT1:
|
|
||||||
case POT2:
|
|
||||||
case POT3:
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
||||||
for (j = 0; j < 16; j++) RANDOMSCRAP(targ);
|
for (j = 0; j < 16; j++) RANDOMSCRAP(targ);
|
||||||
targ->Destroy();
|
targ->Destroy();
|
||||||
|
|
|
@ -55,6 +55,7 @@ void setFromSpawnRec(DDukeActor* act, SpawnRec* info)
|
||||||
act->IntVar(NAME_spawnstate) = info->basetex;
|
act->IntVar(NAME_spawnstate) = info->basetex;
|
||||||
act->IntVar(NAME_brokenstate) = info->brokentex;
|
act->IntVar(NAME_brokenstate) = info->brokentex;
|
||||||
act->IntVar(NAME_breaksound) = S_FindSound(info->breaksound.GetChars()).index();
|
act->IntVar(NAME_breaksound) = S_FindSound(info->breaksound.GetChars()).index();
|
||||||
|
act->IntVar(NAME_fullbright) = info->fullbright;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -285,16 +285,10 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HYDRENT:
|
case HYDRENT:
|
||||||
case PANNEL1:
|
|
||||||
case PANNEL2:
|
|
||||||
case SATELITE:
|
case SATELITE:
|
||||||
case FUELPOD:
|
case FUELPOD:
|
||||||
case SOLARPANNEL:
|
case SOLARPANNEL:
|
||||||
case ANTENNA:
|
case ANTENNA:
|
||||||
case GRATE1:
|
|
||||||
case CHAIR1:
|
|
||||||
case CHAIR2:
|
|
||||||
case CHAIR3:
|
|
||||||
case BOTTLE1:
|
case BOTTLE1:
|
||||||
case BOTTLE2:
|
case BOTTLE2:
|
||||||
case BOTTLE3:
|
case BOTTLE3:
|
||||||
|
@ -321,19 +315,10 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
|
||||||
case INDY:
|
case INDY:
|
||||||
case LUKE:
|
case LUKE:
|
||||||
case JURYGUY:
|
case JURYGUY:
|
||||||
case SCALE:
|
|
||||||
case VACUUM:
|
|
||||||
case FANSPRITE:
|
case FANSPRITE:
|
||||||
case HANGLIGHT:
|
case HANGLIGHT:
|
||||||
case FETUS:
|
case FETUS:
|
||||||
case FETUSBROKE:
|
case FETUSBROKE:
|
||||||
case CAMERALIGHT:
|
|
||||||
case MOVIECAMERA:
|
|
||||||
case IVUNIT:
|
|
||||||
case POT1:
|
|
||||||
case POT2:
|
|
||||||
case POT3:
|
|
||||||
case TRIPODCAMERA:
|
|
||||||
case SUSHIPLATE1:
|
case SUSHIPLATE1:
|
||||||
case SUSHIPLATE2:
|
case SUSHIPLATE2:
|
||||||
case SUSHIPLATE3:
|
case SUSHIPLATE3:
|
||||||
|
|
|
@ -80,15 +80,6 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
|
||||||
act->spr.cstat = 0;
|
act->spr.cstat = 0;
|
||||||
ChangeActorStat(act, 121);
|
ChangeActorStat(act, 121);
|
||||||
break;
|
break;
|
||||||
case RRTILE8487:
|
|
||||||
case RRTILE8489:
|
|
||||||
if (!isRRRA()) goto default_case;
|
|
||||||
act->spr.scale = DVector2(0.5, 0.5);
|
|
||||||
act->spr.extra = 0;
|
|
||||||
act->spr.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
act->spr.hitag = 0;
|
|
||||||
ChangeActorStat(act, 117);
|
|
||||||
break;
|
|
||||||
case RRTILE7936:
|
case RRTILE7936:
|
||||||
if (!isRRRA()) goto default_case;
|
if (!isRRRA()) goto default_case;
|
||||||
act->spr.scale = DVector2(0, 0);
|
act->spr.scale = DVector2(0, 0);
|
||||||
|
@ -257,9 +248,6 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
|
||||||
case SOLARPANNEL:
|
case SOLARPANNEL:
|
||||||
case ANTENNA:
|
case ANTENNA:
|
||||||
case GRATE1:
|
case GRATE1:
|
||||||
case CHAIR1:
|
|
||||||
case CHAIR2:
|
|
||||||
case CHAIR3:
|
|
||||||
case BOTTLE1:
|
case BOTTLE1:
|
||||||
case BOTTLE2:
|
case BOTTLE2:
|
||||||
case BOTTLE3:
|
case BOTTLE3:
|
||||||
|
@ -278,15 +266,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
|
||||||
case BOTTLE17:
|
case BOTTLE17:
|
||||||
case BOTTLE18:
|
case BOTTLE18:
|
||||||
case BOTTLE19:
|
case BOTTLE19:
|
||||||
case SCALE:
|
|
||||||
case VACUUM:
|
|
||||||
case FANSPRITE:
|
case FANSPRITE:
|
||||||
case CAMERALIGHT:
|
|
||||||
case MOVIECAMERA:
|
|
||||||
case IVUNIT:
|
|
||||||
case POT1:
|
|
||||||
case POT2:
|
|
||||||
case POT3:
|
|
||||||
case SUSHIPLATE1:
|
case SUSHIPLATE1:
|
||||||
case SUSHIPLATE2:
|
case SUSHIPLATE2:
|
||||||
case SUSHIPLATE3:
|
case SUSHIPLATE3:
|
||||||
|
|
|
@ -1123,8 +1123,8 @@ DEFINE_ACTION_FUNCTION(DDukeGenericDestructible, SetBroken)
|
||||||
PARAM_SELF_STRUCT_PROLOGUE(DDukeActor);
|
PARAM_SELF_STRUCT_PROLOGUE(DDukeActor);
|
||||||
PARAM_INT(bust);
|
PARAM_INT(bust);
|
||||||
int tilenum = self->IntVar(bust ? NAME_brokenstate : NAME_spawnstate);
|
int tilenum = self->IntVar(bust ? NAME_brokenstate : NAME_spawnstate);
|
||||||
if (tilenum > 0) self->spr.picnum = tilenum;
|
if (tilenum >= 0) self->spr.picnum = tilenum;
|
||||||
ACTION_RETURN_BOOL(tilenum > 0);
|
ACTION_RETURN_BOOL(tilenum < 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,23 @@ spawnclasses
|
||||||
1528 = DukePlayerGun
|
1528 = DukePlayerGun
|
||||||
1536 = DukePlayerLeg
|
1536 = DukePlayerLeg
|
||||||
|
|
||||||
|
595 = DukeGenericSolidUnblockingDestructible, "GRATE1", "BGRATE1", "VENT_BUST"
|
||||||
|
1113 = DukeGenericUnblockingDestructible, "CIRCLEPANNEL", "CIRCLEPANNELBROKE", "VENT_BUST"
|
||||||
|
342 = DukeGenericSolidUnblockingDestructible, "PANNEL1", "BPANNEL1", "VENT_BUST"
|
||||||
|
343 = DukeGenericSolidUnblockingDestructible, "PANNEL2", "BPANNEL3", "VENT_BUST"
|
||||||
|
4099 = DukeGenericUnblockingDestructible, "PANNEL3", "BPANNEL3", "VENT_BUST"
|
||||||
|
556 = DukeGenericSolidUnblockingDestructible, "CHAIR1", "BROKENCHAIR"
|
||||||
|
557 = DukeGenericSolidUnblockingDestructible, "CHAIR2", "BROKENCHAIR"
|
||||||
|
|
||||||
|
686 = DukeGenericSolidScrapSpawningDestructible, "MOVIECAMERA", "", "GLASS_HEAVYBREAK"
|
||||||
|
678 = DukeGenericSolidScrapSpawningDestructible, "SCALE", "", "GLASS_HEAVYBREAK"
|
||||||
|
685 = DukeGenericSolidScrapSpawningDestructible, "CAMERALIGHT", "", "GLASS_HEAVYBREAK"
|
||||||
|
689 = DukeGenericSolidScrapSpawningDestructible, "IVUNIT", "", "GLASS_HEAVYBREAK"
|
||||||
|
694 = DukeGenericSolidScrapSpawningDestructible, "POT1", "", "GLASS_HEAVYBREAK"
|
||||||
|
695 = DukeGenericSolidScrapSpawningDestructible, "POT2", "", "GLASS_HEAVYBREAK"
|
||||||
|
697 = DukeGenericSolidScrapSpawningDestructible, "POT3", "", "GLASS_HEAVYBREAK"
|
||||||
|
4444 = DukeGenericSolidScrapSpawningDestructible, "TRIPODCAMERA", "", "GLASS_HEAVYBREAK"
|
||||||
|
669 = DukeGenericSolidScrapSpawningDestructible, "*VACUUM", "", "GLASS_HEAVYBREAK"
|
||||||
}
|
}
|
||||||
|
|
||||||
tileflag TFLAG_WALLSWITCH {
|
tileflag TFLAG_WALLSWITCH {
|
||||||
|
|
6
wadsrc/static/filter/redneck.redneck/engine/engine.def
Normal file
6
wadsrc/static/filter/redneck.redneck/engine/engine.def
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
spawnclasses
|
||||||
|
{
|
||||||
|
2654 = DukeGenericGlassSpawningDestructible, "*RRTILE2654", "", "GLASS_BREAKING"
|
||||||
|
2656 = DukeGenericGlassSpawningDestructible, "*RRTILE2656", "", "GLASS_BREAKING"
|
||||||
|
3172 = DukeGenericGlassSpawningDestructible, "*RRTILE3172", "", "GLASS_BREAKING"
|
||||||
|
}
|
|
@ -30,393 +30,108 @@ spawnclasses
|
||||||
7397 = RedneckRabbitJibC
|
7397 = RedneckRabbitJibC
|
||||||
8890 = RedneckMamaJibA
|
8890 = RedneckMamaJibA
|
||||||
8895 = RedneckMamaJibB
|
8895 = RedneckMamaJibB
|
||||||
|
8487 = RedneckBalloons1
|
||||||
|
8489 = RedneckBalloons2
|
||||||
|
|
||||||
8487 = DukeGenericDestructible, "RRTILE8487", "RRTILE8488", "BALLOON"
|
7636 = DukeGenericDestructible, "OLDPHOTO0", "OLDPHOTO0BROKE", "VENT_BUST"
|
||||||
8489 = DukeGenericDestructible, "RRTILE8489", "RRTILE8490", "BALLOON"
|
7638 = DukeGenericDestructible, "OLDPHOTO1", "OLDPHOTO1BROKE", "VENT_BUST"
|
||||||
|
7640 = DukeGenericDestructible, "FLAMMABLESIGN", "FLAMMABLESIGNBROKE", "VENT_BUST"
|
||||||
/*
|
7644 = DukeGenericDestructible, "OLDPHOTO2", "OLDPHOTO2BROKE", "VENT_BUST"
|
||||||
case RRTILE8487:
|
7646 = DukeGenericDestructible, "OLDPHOTO3", "OLDPHOTO3BROKE", "VENT_BUST"
|
||||||
case RRTILE8489:
|
7648 = DukeGenericDestructible, "WILLIESGUNS", "WILLIESGUNSBROKE", "WOODBREK"
|
||||||
S_PlayActorSound(471, targ);
|
7650 = DukeGenericDestructible, "FLAMMABLE2SIGN", "FLAMMABLE2SIGNBROKE", "VENT_BUST"
|
||||||
targ->spr.picnum++;
|
7653 = DukeGenericDestructible, "LABSIGN", "LABSIGNBROKE", "VENT_BUST"
|
||||||
break;
|
7655 = DukeGenericDestructible, "LABSIGN2", "LABSIGN2BROKE", "VENT_BUST"
|
||||||
case RRTILE7638:
|
7691 = DukeGenericDestructible, "SALOONSIGN", "SALOONSIGNBROKE", "VENT_BUST"
|
||||||
case RRTILE7644:
|
7875 = DukeGenericDestructible, "NOMOTOSIGN", "NOMOTOSIGNBROKE", "VENT_BUST"
|
||||||
case RRTILE7646:
|
7876 = DukeGenericDestructible, "STREETSIGN1", "STREETSIGN1BROKE", "VENT_BUST"
|
||||||
case RRTILE7650:
|
7881 = DukeGenericDestructible, "DANGERSIGN", "DANGERSIGNBROKE", "VENT_BUST"
|
||||||
case RRTILE7653:
|
7883 = DukeGenericDestructible, "RADIATIONSIGN", "RADIATIONSIGNBROKE", "VENT_BUST"
|
||||||
case RRTILE7655:
|
7879 = DukeGenericDamagingDestructible, "DIABLOHWAY", "DIABLOHWAYBROKE", "SIGNHIT"
|
||||||
case RRTILE7691:
|
7694 = DukeGenericDestructible, "BANKELPESO", "BANKELPESOBROKE", "WOODBREK"
|
||||||
case RRTILE7876:
|
7700 = DukeGenericDestructible, "SHERIFFSIGN", "SHERIFFSIGNBROKE", "WOODBREK"
|
||||||
case RRTILE7881:
|
7702 = DukeGenericDestructible, "STORESIGN", "STORESIGNBROKE", "WOODBREK"
|
||||||
case RRTILE7883:
|
7711 = DukeGenericDestructible, "HOTELSIGN", "HOTELSIGNBROKE", "WOODBREK"
|
||||||
targ->spr.picnum++;
|
7595 = DukeGenericDestructible, "RRTILE7595", "RRTILE7705", "SIGNHIT"
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
7704 = DukeGenericDestructible, "RRTILE7704", "RRTILE7705", "SIGNHIT"
|
||||||
break;
|
8579 = DukeGenericDestructible, "RRTILE8579", "RRTILE5014", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7879:
|
7441 = DukeGenericDestructible, "RRTILE7441", "RRTILE5016", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum++;
|
7534 = DukeGenericDestructible, "RRTILE7534", "RRTILE5029", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(495, targ);
|
7545 = DukeGenericDestructible, "RRTILE7545", "RRTILE5030", "GLASS_HEAVYBREAK"
|
||||||
fi.hitradius(targ, 10, 0, 0, 1, 1);
|
7547 = DukeGenericDestructible, "RRTILE7547", "RRTILE5031", "GLASS_HEAVYBREAK"
|
||||||
break;
|
7574 = DukeGenericDestructible, "RRTILE7574", "RRTILE5032", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7648:
|
7575 = DukeGenericDestructible, "RRTILE7575", "RRTILE5033", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7694:
|
7578 = DukeGenericDestructible, "RRTILE7578", "RRTILE5034", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7700:
|
7478 = DukeGenericDestructible, "RRTILE7478", "RRTILE5035", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7702:
|
8525 = DukeGenericDestructible, "RRTILE8525", "RRTILE5036", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7711:
|
8537 = DukeGenericDestructible, "RRTILE8537", "RRTILE5062", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum++;
|
8215 = DukeGenericDestructible, "RRTILE8215", "RRTILE5064", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(47, targ);
|
8216 = DukeGenericDestructible, "*RRTILE8216", "RRTILE5065", "GLASS_HEAVYBREAK" // *prefix means fullbright.
|
||||||
break;
|
8217 = DukeGenericDestructible, "RRTILE8217", "RRTILE5066", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7636:
|
8218 = DukeGenericDestructible, "*RRTILE8218", "RRTILE5067", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum += 3;
|
8220 = DukeGenericDestructible, "*RRTILE8220", "RRTILE5068", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
8221 = DukeGenericDestructible, "RRTILE8221", "RRTILE5069", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8395 = DukeGenericDestructible, "RRTILE8395", "RRTILE5072", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7875:
|
8423 = DukeGenericDestructible, "RRTILE8423", "RRTILE5073", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum += 3;
|
8462 = DukeGenericDestructible, "RRTILE8462", "RRTILE5074", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
8475 = DukeGenericDestructible, "RRTILE8475", "RRTILE5075", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8608 = DukeGenericDestructible, "RRTILE8608", "RRTILE5083", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7640:
|
8609 = DukeGenericDestructible, "RRTILE8609", "RRTILE5084", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum += 2;
|
8312 = DukeGenericDestructible, "RRTILE8312", "RRTILE5071", "POOLBUD"
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
8567 = DukeGenericDestructible, "RRTILE8567", "RRTILE5082", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8568 = DukeGenericDestructible, "RRTILE8568", "RRTILE5082", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7595:
|
8569 = DukeGenericDestructible, "RRTILE8569", "RRTILE5082", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7704:
|
8570 = DukeGenericDestructible, "RRTILE8570", "RRTILE5082", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE7705;
|
8571 = DukeGenericDestructible, "RRTILE8571", "RRTILE5082", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(495, targ);
|
8640 = DukeGenericDestructible, "RRTILE8640", "RRTILE5085", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8611 = DukeGenericDestructible, "RRTILE8611", "RRTILE5086", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE8579:
|
8497 = DukeGenericDestructible, "RRTILE8497", "RRTILE5076", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5014;
|
8498 = DukeGenericDestructible, "RRTILE8498", "RRTILE5077", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
8499 = DukeGenericDestructible, "RRTILE8499", "RRTILE5078", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8503 = DukeGenericDestructible, "RRTILE8503", "RRTILE5079", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7441:
|
7901 = DukeGenericDestructible, "RRTILE7901", "RRTILE5080", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5016;
|
7696 = DukeGenericDestructible, "RRTILE7696", "RRTILE7697", "WOODBREK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
7806 = DukeGenericDestructible, "RRTILE7806", "RRTILE5043", "GLASS_HEAVYBREAK"
|
||||||
break;
|
7900 = DukeGenericDestructible, "RRTILE7900", "RRTILE5047", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7534:
|
7906 = DukeGenericDestructible, "RRTILE7906", "RRTILE5048", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5029;
|
7912 = DukeGenericDestructible, "RRTILE7912", "RRTILE5049", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
7913 = DukeGenericDestructible, "RRTILE7913", "RRTILE5049", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8047 = DukeGenericDestructible, "RRTILE8047", "RRTILE5050", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7545:
|
8596 = DukeGenericDestructible, "RRTILE8596", "RRTILE8598", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5030;
|
8059 = DukeGenericDestructible, "RRTILE8059", "RRTILE5051", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
8060 = DukeGenericDestructible, "RRTILE8060", "RRTILE5052", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8222 = DukeGenericDestructible, "RRTILE8222", "RRTILE5053", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7547:
|
8223 = DukeGenericDestructible, "RRTILE8223", "RRTILE5054", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5031;
|
8224 = DukeGenericDestructible, "RRTILE8224", "RRTILE5055", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
8370 = DukeGenericDestructible, "RRTILE8370", "RRTILE5056", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8371 = DukeGenericDestructible, "RRTILE8371", "RRTILE5057", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7574:
|
8372 = DukeGenericDestructible, "RRTILE8372", "RRTILE5058", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5032;
|
8373 = DukeGenericDestructible, "RRTILE8373", "RRTILE5059", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
8396 = DukeGenericDestructible, "RRTILE8396", "RRTILE5038", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8397 = DukeGenericDestructible, "RRTILE8397", "RRTILE5039", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7575:
|
8398 = DukeGenericDestructible, "RRTILE8398", "RRTILE5040", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5033;
|
8399 = DukeGenericDestructible, "RRTILE8399", "RRTILE5041", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
8385 = DukeGenericDestructible, "RRTILE8385", "RRTILE8386", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8387 = DukeGenericDestructible, "RRTILE8387", "RRTILE8388", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7578:
|
8389 = DukeGenericDestructible, "RRTILE8389", "RRTILE8390", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5034;
|
8391 = DukeGenericDestructible, "RRTILE8391", "RRTILE8392", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
7553 = DukeGenericDestructible, "RRTILE7553", "RRTILE5035", "GLASS_HEAVYBREAK"
|
||||||
break;
|
8475 = DukeGenericDestructible, "RRTILE8475", "RRTILE5075", "GLASS_HEAVYBREAK"
|
||||||
case RRTILE7478:
|
8498 = DukeGenericDestructible, "RRTILE8498", "RRTILE5077", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5035;
|
8499 = DukeGenericDestructible, "RRTILE8499", "RRTILE5078", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
2445 = DukeGenericDestructible, "RRTILE2445", "RRTILE2450", "GLASS_HEAVYBREAK"
|
||||||
break;
|
7885 = DukeGenericDamagingDestructible, "RRTILE7885", "RRTILE5045", "SIGNHIT"
|
||||||
case RRTILE8525:
|
7890 = DukeGenericDamagingDestructible, "RRTILE7890", "RRTILE5045", "SIGNHIT"
|
||||||
targ->spr.picnum = RRTILE5036;
|
7886 = DukeGenericDamagingDestructible, "RRTILE7886", "RRTILE5046", "SIGNHIT"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
7887 = DukeGenericDamagingDestructible, "RRTILE7887", "RRTILE5044", "GLASS_HEAVYBREAK"
|
||||||
break;
|
2123 = DukeGenericDamagingDestructible, "RRTILE2123", "RRTILE2124", "GLASS_BREAKING"
|
||||||
case RRTILE8537:
|
3773 = DukeGenericDamagingDestructible, "RRTILE3773", "RRTILE8651", "GLASS_BREAKING"
|
||||||
targ->spr.picnum = RRTILE5062;
|
7533 = DukeGenericDamagingDestructible, "*RRTILE7533", "*RRTILE5035", "SIGNHIT"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
3584 = DukeGenericDamagingDestructible, "RRTILE3584", "RRTILE8681", "SIGNHIT"
|
||||||
break;
|
8394 = DukeGenericDestructible, "RRTILE8394", "RRTILE5072", "SIGNHIT"
|
||||||
case RRTILE8215:
|
8461 = DukeGenericDestructible, "RRTILE8461", "RRTILE5074", "GLASS_HEAVYBREAK"
|
||||||
targ->spr.picnum = RRTILE5064;
|
8462 = DukeGenericDestructible, "RRTILE8462", "RRTILE5074", "GLASS_HEAVYBREAK"
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
8682 = DukeGenericDestructible, "RRTILE8682", "RRTILE8683", "GLASS_HEAVYBREAK"
|
||||||
break;
|
|
||||||
case RRTILE8216:
|
|
||||||
targ->spr.picnum = RRTILE5065;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8217:
|
|
||||||
targ->spr.picnum = RRTILE5066;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8218:
|
|
||||||
targ->spr.picnum = RRTILE5067;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8220:
|
|
||||||
targ->spr.picnum = RRTILE5068;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8221:
|
|
||||||
targ->spr.picnum = RRTILE5069;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8312:
|
|
||||||
targ->spr.picnum = RRTILE5071;
|
|
||||||
S_PlayActorSound(472, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8395:
|
|
||||||
targ->spr.picnum = RRTILE5072;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8423:
|
|
||||||
targ->spr.picnum = RRTILE5073;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE3462:
|
|
||||||
targ->spr.picnum = RRTILE5074;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case UWHIP:
|
|
||||||
targ->spr.picnum = RRTILE5075;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8608:
|
|
||||||
targ->spr.picnum = RRTILE5083;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8609:
|
|
||||||
targ->spr.picnum = RRTILE5084;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8567:
|
|
||||||
case RRTILE8568:
|
|
||||||
case RRTILE8569:
|
|
||||||
case RRTILE8570:
|
|
||||||
case RRTILE8571:
|
|
||||||
targ->spr.picnum = RRTILE5082;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8640:
|
|
||||||
targ->spr.picnum = RRTILE5085;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8611:
|
|
||||||
targ->spr.picnum = RRTILE5086;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case TECHLIGHTBUST2:
|
|
||||||
targ->spr.picnum = TECHLIGHTBUST4;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8497:
|
|
||||||
targ->spr.picnum = RRTILE5076;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8162:
|
|
||||||
case RRTILE8163:
|
|
||||||
case RRTILE8164:
|
|
||||||
case RRTILE8165:
|
|
||||||
case RRTILE8166:
|
|
||||||
case RRTILE8167:
|
|
||||||
case RRTILE8168:
|
|
||||||
ChangeActorStat(targ, STAT_MISC);
|
|
||||||
targ->spr.picnum = RRTILE5063;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8589:
|
|
||||||
case RRTILE8590:
|
|
||||||
case RRTILE8591:
|
|
||||||
case RRTILE8592:
|
|
||||||
case RRTILE8593:
|
|
||||||
case RRTILE8594:
|
|
||||||
case RRTILE8595:
|
|
||||||
ChangeActorStat(targ, STAT_MISC);
|
|
||||||
targ->spr.picnum = RRTILE8588;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE3497:
|
|
||||||
targ->spr.picnum = RRTILE5076;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE3498:
|
|
||||||
targ->spr.picnum = RRTILE5077;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE3499:
|
|
||||||
targ->spr.picnum = RRTILE5078;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8503:
|
|
||||||
targ->spr.picnum = RRTILE5079;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE7901:
|
|
||||||
targ->spr.picnum = RRTILE5080;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE7696:
|
|
||||||
targ->spr.picnum = RRTILE7697;
|
|
||||||
S_PlayActorSound(DUKE_SHUCKS, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE7806:
|
|
||||||
targ->spr.picnum = RRTILE5043;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE7885:
|
|
||||||
case RRTILE7890:
|
|
||||||
targ->spr.picnum = RRTILE5045;
|
|
||||||
S_PlayActorSound(495, targ);
|
|
||||||
fi.hitradius(targ, 10, 0, 0, 1, 1);
|
|
||||||
break;
|
|
||||||
case RRTILE7886:
|
|
||||||
targ->spr.picnum = RRTILE5046;
|
|
||||||
S_PlayActorSound(495, targ);
|
|
||||||
fi.hitradius(targ, 10, 0, 0, 1, 1);
|
|
||||||
break;
|
|
||||||
case RRTILE7887:
|
|
||||||
targ->spr.picnum = RRTILE5044;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
fi.hitradius(targ, 10, 0, 0, 1, 1);
|
|
||||||
break;
|
|
||||||
case RRTILE7900:
|
|
||||||
targ->spr.picnum = RRTILE5047;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE7906:
|
|
||||||
targ->spr.picnum = RRTILE5048;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE7912:
|
|
||||||
case RRTILE7913:
|
|
||||||
targ->spr.picnum = RRTILE5049;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8047:
|
|
||||||
targ->spr.picnum = RRTILE5050;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8596:
|
|
||||||
targ->spr.picnum = RRTILE8598;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8059:
|
|
||||||
targ->spr.picnum = RRTILE5051;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8060:
|
|
||||||
targ->spr.picnum = RRTILE5052;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8222:
|
|
||||||
targ->spr.picnum = RRTILE5053;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8223:
|
|
||||||
targ->spr.picnum = RRTILE5054;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8224:
|
|
||||||
targ->spr.picnum = RRTILE5055;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8370:
|
|
||||||
targ->spr.picnum = RRTILE5056;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8371:
|
|
||||||
targ->spr.picnum = RRTILE5057;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8372:
|
|
||||||
targ->spr.picnum = RRTILE5058;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8373:
|
|
||||||
targ->spr.picnum = RRTILE5059;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8396:
|
|
||||||
targ->spr.picnum = RRTILE5038;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8397:
|
|
||||||
targ->spr.picnum = RRTILE5039;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8398:
|
|
||||||
targ->spr.picnum = RRTILE5040;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8399:
|
|
||||||
targ->spr.picnum = RRTILE5041;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8385:
|
|
||||||
targ->spr.picnum = RRTILE8386;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8387:
|
|
||||||
targ->spr.picnum = RRTILE8388;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8389:
|
|
||||||
targ->spr.picnum = RRTILE8390;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8391:
|
|
||||||
targ->spr.picnum = RRTILE8392;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE7553:
|
|
||||||
targ->spr.picnum = RRTILE5035;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8475:
|
|
||||||
targ->spr.picnum = RRTILE5075;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8498:
|
|
||||||
targ->spr.picnum = RRTILE5077;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8499:
|
|
||||||
targ->spr.picnum = RRTILE5078;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE2445:
|
|
||||||
targ->spr.picnum = RRTILE2450;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE2123:
|
|
||||||
targ->spr.picnum = RRTILE2124;
|
|
||||||
S_PlayActorSound(GLASS_BREAKING, targ);
|
|
||||||
lotsofglass(targ, nullptr, 10);
|
|
||||||
break;
|
|
||||||
case RRTILE3773:
|
|
||||||
targ->spr.picnum = RRTILE8651;
|
|
||||||
S_PlayActorSound(GLASS_BREAKING, targ);
|
|
||||||
lotsofglass(targ, nullptr, 10);
|
|
||||||
break;
|
|
||||||
case RRTILE7533:
|
|
||||||
targ->spr.picnum = RRTILE5035;
|
|
||||||
S_PlayActorSound(495, targ);
|
|
||||||
fi.hitradius(targ, 10, 0, 0, 1, 1);
|
|
||||||
break;
|
|
||||||
case RRTILE8394:
|
|
||||||
targ->spr.picnum = RRTILE5072;
|
|
||||||
S_PlayActorSound(495, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE8461:
|
|
||||||
case RRTILE8462:
|
|
||||||
targ->spr.picnum = RRTILE5074;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE3584:
|
|
||||||
targ->spr.picnum = RRTILE8681;
|
|
||||||
S_PlayActorSound(495, targ);
|
|
||||||
fi.hitradius(targ, 250, 0, 0, 1, 1);
|
|
||||||
break;
|
|
||||||
case RRTILE8682:
|
|
||||||
targ->spr.picnum = RRTILE8683;
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
break;
|
|
||||||
case RRTILE2437:
|
|
||||||
S_PlayActorSound(439, targ);
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tileflag TFLAG_WALLSWITCH {
|
tileflag TFLAG_WALLSWITCH {
|
||||||
|
|
|
@ -89,8 +89,38 @@ spawnclasses
|
||||||
5602 = RedneckCootJibA
|
5602 = RedneckCootJibA
|
||||||
5607 = RedneckCootJibB
|
5607 = RedneckCootJibB
|
||||||
5616 = RedneckCootJibB
|
5616 = RedneckCootJibB
|
||||||
|
|
||||||
|
3114 = DukeGenericGlassSpawningDestructible, "RRTILE3114", "RRTILE3117", "GLASS_BREAKING"
|
||||||
|
2876 = DukeGenericGlassSpawningDestructible, "RRTILE2876", "RRTILE2990", "GLASS_BREAKING"
|
||||||
|
3152 = DukeGenericGlassSpawningDestructible, "RRTILE3152", "RRTILE3218", "GLASS_BREAKING"
|
||||||
|
3153 = DukeGenericGlassSpawningDestructible, "RRTILE3153", "RRTILE3219", "GLASS_BREAKING"
|
||||||
|
2030 = DukeGenericGlassSpawningDestructible, "RRTILE2030", "RRTILE2034", "GLASS_BREAKING"
|
||||||
|
2915 = DukeGenericGlassSpawningDestructible, "RRTILE2915", "RRTILE2977", "GLASS_BREAKING"
|
||||||
|
2893 = DukeGenericGlassSpawningDestructible, "RRTILE2893", "RRTILE2978", "GLASS_BREAKING"
|
||||||
|
3115 = DukeGenericGlassSpawningDestructible, "RRTILE3115", "RRTILE3116", "GLASS_BREAKING"
|
||||||
|
3171 = DukeGenericGlassSpawningDestructible, "RRTILE3171", "RRTILE3216", "GLASS_BREAKING"
|
||||||
|
2156 = DukeGenericGlassSpawningDestructible, "*RRTILE2156", "*RRTILE2157", "GLASS_BREAKING"
|
||||||
|
2158 = DukeGenericGlassSpawningDestructible, "*RRTILE2158", "*RRTILE2159", "GLASS_BREAKING"
|
||||||
|
2160 = DukeGenericGlassSpawningDestructible, "*RRTILE2160", "*RRTILE2161", "GLASS_BREAKING"
|
||||||
|
2175 = DukeGenericGlassSpawningDestructible, "*RRTILE2175", "*RRTILE2176", "GLASS_BREAKING"
|
||||||
|
|
||||||
|
234 = DukeGenericSolidUnblockingDestructible, "GRATE1", "BGRATE1", "VENT_BUST"
|
||||||
|
2251 = DukeGenericUnblockingDestructible, "CIRCLEPANNEL", "CIRCLEPANNELBROKE", "VENT_BUST"
|
||||||
|
343 = DukeGenericSolidUnblockingDestructible, "PANNEL2", "BPANNEL3", "VENT_BUST"
|
||||||
|
1085 = DukeGenericSolidUnblockingDestructible, "CHAIR1", "BROKENCHAIR"
|
||||||
|
1086 = DukeGenericSolidUnblockingDestructible, "CHAIR2", "BROKENCHAIR"
|
||||||
|
1158 = DukeGenericSolidScrapSpawningDestructible, "MOVIECAMERA", "", "GLASS_HEAVYBREAK"
|
||||||
|
1150 = DukeGenericSolidScrapSpawningDestructible, "SCALE", "", "GLASS_HEAVYBREAK"
|
||||||
|
1157 = DukeGenericScrapSpawningDestructible, "CAMERALIGHT", "", "GLASS_HEAVYBREAK"
|
||||||
|
1163 = DukeGenericSolidScrapSpawningDestructible, "IVUNIT", "", "GLASS_HEAVYBREAK"
|
||||||
|
1164 = DukeGenericSolidScrapSpawningDestructible, "POT1", "", "GLASS_HEAVYBREAK"
|
||||||
|
1165 = DukeGenericSolidScrapSpawningDestructible, "POT2", "", "GLASS_HEAVYBREAK"
|
||||||
|
1166 = DukeGenericSolidScrapSpawningDestructible, "POT3", "", "GLASS_HEAVYBREAK"
|
||||||
|
1141 = DukeGenericSolidScrapSpawningDestructible, "VACUUM", "", "GLASS_HEAVYBREAK"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
tileflag TFLAG_WALLSWITCH {
|
tileflag TFLAG_WALLSWITCH {
|
||||||
HANDPRINTSWITCH
|
HANDPRINTSWITCH
|
||||||
HANDPRINTSWITCHON
|
HANDPRINTSWITCHON
|
||||||
|
|
|
@ -80,6 +80,7 @@ version "4.10"
|
||||||
#include "zscript/games/duke/actors/chickenplant.zs"
|
#include "zscript/games/duke/actors/chickenplant.zs"
|
||||||
#include "zscript/games/duke/actors/lumberblade.zs"
|
#include "zscript/games/duke/actors/lumberblade.zs"
|
||||||
#include "zscript/games/duke/actors/rrcactus.zs"
|
#include "zscript/games/duke/actors/rrcactus.zs"
|
||||||
|
#include "zscript/games/duke/actors/balloons.zs"
|
||||||
|
|
||||||
#include "zscript/games/blood/bloodgame.zs"
|
#include "zscript/games/blood/bloodgame.zs"
|
||||||
#include "zscript/games/blood/ui/menu.zs"
|
#include "zscript/games/blood/ui/menu.zs"
|
||||||
|
|
69
wadsrc/static/zscript/games/duke/actors/balloons.zs
Normal file
69
wadsrc/static/zscript/games/duke/actors/balloons.zs
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
|
||||||
|
class RedneckBalloons1 : DukeActor
|
||||||
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
ScaleX 0.5;
|
||||||
|
ScaleY 0.5;
|
||||||
|
Extra 0;
|
||||||
|
Hitag 0;
|
||||||
|
Statnum STAT_ACTOR;
|
||||||
|
Spriteset "BALLOONS1", "BALLOONS1BROKE";
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Tick()
|
||||||
|
{
|
||||||
|
if (self.hitag > 2)
|
||||||
|
self.hitag = 0;
|
||||||
|
|
||||||
|
if (spritesetindex == 1 && self.hitag != 2)
|
||||||
|
{
|
||||||
|
self.hitag = 2;
|
||||||
|
self.extra = -100;
|
||||||
|
}
|
||||||
|
if (self.hitag == 0)
|
||||||
|
{
|
||||||
|
self.extra++;
|
||||||
|
if (self.extra >= 30)
|
||||||
|
self.hitag = 1;
|
||||||
|
}
|
||||||
|
else if (self.hitag == 1)
|
||||||
|
{
|
||||||
|
self.extra--;
|
||||||
|
if (self.extra <= -30)
|
||||||
|
self.hitag = 0;
|
||||||
|
}
|
||||||
|
else if (self.hitag == 2)
|
||||||
|
{
|
||||||
|
self.extra--;
|
||||||
|
if (self.extra <= -104)
|
||||||
|
{
|
||||||
|
self.spawnsprite(self.lotag);
|
||||||
|
self.Destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.movesprite((0, 0, self.extra / 128.), CLIPMASK0);
|
||||||
|
}
|
||||||
|
|
||||||
|
override void OnHit(DukeActor proj)
|
||||||
|
{
|
||||||
|
if (self.spritesetindex == 0)
|
||||||
|
{
|
||||||
|
self.SetSpritesetImage(1);
|
||||||
|
self.playActorSound("BALLOON");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class RedneckBalloons2 : DukeActor
|
||||||
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Spriteset "BALLOONS2", "BALLOONS2BROKE";
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,8 @@ class DukeGenericDestructible : DukeActor
|
||||||
{
|
{
|
||||||
TextureID spawnstate, brokenstate;
|
TextureID spawnstate, brokenstate;
|
||||||
Sound breaksound;
|
Sound breaksound;
|
||||||
bool broken;
|
int fullbright;
|
||||||
|
int broken;
|
||||||
|
|
||||||
native bool SetBroken(bool bust); // sets broken texture. Must be done natively as long as we do not have proper texture support.
|
native bool SetBroken(bool bust); // sets broken texture. Must be done natively as long as we do not have proper texture support.
|
||||||
|
|
||||||
|
@ -25,6 +26,12 @@ class DukeGenericDestructible : DukeActor
|
||||||
if (res1 || res2)
|
if (res1 || res2)
|
||||||
self.Destroy();
|
self.Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override bool Animate(tspritetype tspr)
|
||||||
|
{
|
||||||
|
if (fullbright & (1 << broken)) tspr.shade = -127;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DukeGenericDamagingDestructible : DukeGenericDestructible
|
class DukeGenericDamagingDestructible : DukeGenericDestructible
|
||||||
|
@ -45,6 +52,16 @@ class DukeGenericGlassSpawningDestructible : DukeGenericDestructible
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DukeGenericScrapSpawningDestructible : DukeGenericDestructible
|
||||||
|
{
|
||||||
|
override bool DestroyAction()
|
||||||
|
{
|
||||||
|
for(int i = 0; i < 16; i++) self.RandomScrap();
|
||||||
|
self.Destroy();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class DukeGenericUnblockingDestructible : DukeGenericDestructible
|
class DukeGenericUnblockingDestructible : DukeGenericDestructible
|
||||||
{
|
{
|
||||||
override bool DestroyAction()
|
override bool DestroyAction()
|
||||||
|
@ -54,137 +71,33 @@ class DukeGenericUnblockingDestructible : DukeGenericDestructible
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
class DukeGenericSolidScrapSpawningDestructible : DukeGenericDestructible
|
||||||
// todo: RRRA
|
|
||||||
|
|
||||||
|
|
||||||
// RR
|
|
||||||
|
|
||||||
case RRTILE3114:
|
|
||||||
targ->spr.picnum = RRTILE3117;
|
|
||||||
break;
|
|
||||||
case RRTILE2876:
|
|
||||||
targ->spr.picnum = RRTILE2990;
|
|
||||||
break;
|
|
||||||
case RRTILE3152:
|
|
||||||
targ->spr.picnum = RRTILE3218;
|
|
||||||
break;
|
|
||||||
case RRTILE3153:
|
|
||||||
targ->spr.picnum = RRTILE3219;
|
|
||||||
break;
|
|
||||||
case RRTILE2030:
|
|
||||||
targ->spr.picnum = RRTILE2034;
|
|
||||||
S_PlayActorSound(GLASS_BREAKING, targ);
|
|
||||||
lotsofglass(targ, nullptr, 10);
|
|
||||||
break;
|
|
||||||
case RRTILE2893:
|
|
||||||
case RRTILE2915:
|
|
||||||
case RRTILE3115:
|
|
||||||
case RRTILE3171:
|
|
||||||
switch (targ->spr.picnum)
|
|
||||||
{
|
{
|
||||||
case RRTILE2915:
|
override void Initialize()
|
||||||
targ->spr.picnum = RRTILE2977;
|
{
|
||||||
break;
|
self.SetBroken(false);
|
||||||
case RRTILE2893:
|
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
||||||
targ->spr.picnum = RRTILE2978;
|
|
||||||
break;
|
|
||||||
case RRTILE3115:
|
|
||||||
targ->spr.picnum = RRTILE3116;
|
|
||||||
break;
|
|
||||||
case RRTILE3171:
|
|
||||||
targ->spr.picnum = RRTILE3216;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
S_PlayActorSound(GLASS_BREAKING, targ);
|
|
||||||
lotsofglass(targ, nullptr, 10);
|
|
||||||
break;
|
|
||||||
case RRTILE2156:
|
|
||||||
case RRTILE2158:
|
|
||||||
case RRTILE2160:
|
|
||||||
case RRTILE2175:
|
|
||||||
targ->spr.picnum++;
|
|
||||||
S_PlayActorSound(GLASS_BREAKING, targ);
|
|
||||||
lotsofglass(targ, nullptr, 10);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RRTILE2654:
|
override bool DestroyAction()
|
||||||
case RRTILE2656:
|
{
|
||||||
case RRTILE3172:
|
for(int i = 0; i < 16; i++) self.RandomScrap();
|
||||||
if (!isRRRA()) break;
|
self.Destroy();
|
||||||
S_PlayActorSound(GLASS_BREAKING, targ);
|
return false;
|
||||||
lotsofglass(targ, nullptr, 10);
|
}
|
||||||
targ->Destroy();
|
}
|
||||||
break;
|
|
||||||
case GRATE1:
|
|
||||||
targ->spr.picnum = BGRATE1;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CIRCLEPANNEL:
|
class DukeGenericSolidUnblockingDestructible : DukeGenericDestructible
|
||||||
targ->spr.picnum = CIRCLEPANNELBROKE;
|
{
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
override void Initialize()
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
{
|
||||||
break;
|
self.SetBroken(false);
|
||||||
|
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
||||||
|
}
|
||||||
|
|
||||||
+
|
override bool DestroyAction()
|
||||||
case GRATE1:
|
{
|
||||||
targ->spr.picnum = BGRATE1;
|
self.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
return false;
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
}
|
||||||
break;
|
}
|
||||||
|
|
||||||
case CIRCLEPANNEL:
|
|
||||||
targ->spr.picnum = CIRCLEPANNELBROKE;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
Duke
|
|
||||||
|
|
||||||
case GRATE1:
|
|
||||||
targ->spr.picnum = BGRATE1;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CIRCLEPANNEL:
|
|
||||||
targ->spr.picnum = CIRCLEPANNELBROKE;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
case PANNEL1:
|
|
||||||
case PANNEL2:
|
|
||||||
targ->spr.picnum = BPANNEL1;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
case PANNEL3:
|
|
||||||
targ->spr.picnum = BPANNEL3;
|
|
||||||
targ->spr.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
S_PlayActorSound(VENT_BUST, targ);
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
case CHAIR1:
|
|
||||||
case CHAIR2:
|
|
||||||
targ->spr.picnum = BROKENCHAIR;
|
|
||||||
targ->spr.cstat = 0;
|
|
||||||
break;
|
|
||||||
case CHAIR3:
|
|
||||||
case MOVIECAMERA:
|
|
||||||
case SCALE:
|
|
||||||
case VACUUM:
|
|
||||||
case CAMERALIGHT:
|
|
||||||
case IVUNIT:
|
|
||||||
case POT1:
|
|
||||||
case POT2:
|
|
||||||
case POT3:
|
|
||||||
case TRIPODCAMERA:
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
|
||||||
for (j = 0; j < 16; j++) RANDOMSCRAP(targ);
|
|
||||||
targ->Destroy();
|
|
||||||
break;
|
|
||||||
*/
|
|
||||||
|
|
Loading…
Reference in a new issue