Porting v1 objects part 1

This commit is contained in:
NepDisk 2025-04-06 12:34:50 -04:00
parent 45c09ba1a2
commit 7983b94cf3
9 changed files with 151 additions and 1141 deletions

View file

@ -101,7 +101,7 @@
extern "C" {
#endif
//#define NOMD5
#define NOMD5
// Uncheck this to compile debugging code
//#define RANGECHECK

View file

@ -4,9 +4,6 @@ _(A_Fall, FALL)
_(A_Look, LOOK)
_(A_Chase, CHASE)
_(A_FaceStabChase, FACESTABCHASE)
_(A_FaceStabRev, FACESTABREV)
_(A_FaceStabHurl, FACESTABHURL)
_(A_FaceStabMiss, FACESTABMISS)
_(A_StatueBurst, STATUEBURST)
_(A_FaceTarget, FACETARGET)
_(A_FaceTracer, FACETRACER)
@ -69,10 +66,8 @@ _(A_JetJawRoam, JETJAWROAM)
_(A_JetJawChomp, JETJAWCHOMP)
_(A_PointyThink, POINTYTHINK)
_(A_CheckBuddy, CHECKBUDDY)
_(A_HoodFire, HOODFIRE)
_(A_HoodThink, HOODTHINK)
_(A_HoodFall, HOODFALL)
_(A_ArrowBonks, ARROWBONKS)
_(A_ArrowCheck, ARROWCHECK)
_(A_SnailerThink, SNAILERTHINK)
_(A_SharpChase, SHARPCHASE)
_(A_SharpSpin, SHARPSPIN)
@ -83,9 +78,6 @@ _(A_CrushclawAim, CRUSHCLAWAIM)
_(A_CrushclawLaunch, CRUSHCLAWLAUNCH)
_(A_VultureVtol, VULTUREVTOL)
_(A_VultureCheck, VULTURECHECK)
_(A_VultureHover, VULTUREHOVER)
_(A_VultureBlast, VULTUREBLAST)
_(A_VultureFly, VULTUREFLY)
_(A_SkimChase, SKIMCHASE)
_(A_SkullAttack, SKULLATTACK)
_(A_LobShot, LOBSHOT)
@ -224,16 +216,10 @@ _(A_Boss5MakeItRain, BOSS5MAKEITRAIN)
_(A_Boss5MakeJunk, BOSS5MAKEJUNK)
_(A_LookForBetter, LOOKFORBETTER)
_(A_Boss5BombExplode, BOSS5BOMBEXPLODE)
_(A_TNTExplode, TNTEXPLODE)
_(A_DebrisRandom, DEBRISRANDOM)
_(A_TrainCameo, TRAINCAMEO)
_(A_TrainCameo2, TRAINCAMEO2)
_(A_CanarivoreGas, CANARIVOREGAS)
_(A_KillSegments, KILLSEGMENTS)
_(A_SnapperSpawn, SNAPPERSPAWN)
_(A_SnapperThinker, SNAPPERTHINKER)
_(A_SaloonDoorSpawn, SALOONDOORSPAWN)
_(A_MinecartSparkThink, MINECARTSPARKTHINK)
_(A_ModuloToState, MODULOTOSTATE)
_(A_LavafallRocks, LAVAFALLROCKS)
_(A_LavafallLava, LAVAFALLLAVA)

View file

@ -34,7 +34,6 @@ _(POINTY) // Pointy
_(POINTYBALL) // Pointy Ball
_(ROBOHOOD) // Robo-Hood
_(FACESTABBER) // Castlebot Facestabber
_(FACESTABBERSPEAR) // Castlebot Facestabber spear aura
_(EGGGUARD) // Egg Guard
_(EGGSHIELD) // Egg Guard's shield
_(GSNAPPER) // Green Snapper
@ -348,7 +347,6 @@ _(CEZPOLE1) // Pole (with red banner)
_(CEZPOLE2) // Pole (with blue banner)
_(CEZBANNER1) // Banner (red)
_(CEZBANNER2) // Banner (blue)
_(PINETREE) // Pine Tree
_(CEZBUSH1) // Bush 1
_(CEZBUSH2) // Bush 2
_(CANDLE) // Candle
@ -367,42 +365,10 @@ _(BRAMBLES) // Brambles
// Arid Canyon Scenery
_(BIGTUMBLEWEED)
_(LITTLETUMBLEWEED)
_(CACTI1) // Tiny Red Flower Cactus
_(CACTI2) // Small Red Flower Cactus
_(CACTI3) // Tiny Blue Flower Cactus
_(CACTI4) // Small Blue Flower Cactus
_(CACTI5) // Prickly Pear
_(CACTI6) // Barrel Cactus
_(CACTI7) // Tall Barrel Cactus
_(CACTI8) // Armed Cactus
_(CACTI9) // Ball Cactus
_(CACTI10) // Tiny Cactus
_(CACTI11) // Small Cactus
_(CACTITINYSEG) // Tiny Cactus Segment
_(CACTISMALLSEG) // Small Cactus Segment
_(ARIDSIGN_CAUTION) // Caution Sign
_(ARIDSIGN_CACTI) // Cacti Sign
_(ARIDSIGN_SHARPTURN) // Sharp Turn Sign
_(OILLAMP)
_(TNTBARREL)
_(PROXIMITYTNT)
_(DUSTDEVIL)
_(DUSTLAYER)
_(ARIDDUST)
_(MINECART)
_(MINECARTSEG)
_(MINECARTSPAWNER)
_(MINECARTEND)
_(MINECARTENDSOLID)
_(MINECARTSIDEMARK)
_(MINECARTSPARK)
_(SALOONDOOR)
_(SALOONDOORCENTER)
_(TRAINCAMEOSPAWNER)
_(TRAINSEG)
_(TRAINDUSTSPAWNER)
_(TRAINSTEAMSPAWNER)
_(MINECARTSWITCHPOINT)
_(CACTI1)
_(CACTI2)
_(CACTI3)
_(CACTI4)
// Red Volcano Scenery
_(FLAMEJET)
@ -991,8 +957,8 @@ _(CDTREEA)
_(CDTREEB)
// Daytona Speedway
_(DAYTONAPINETREE)
_(DAYTONAPINETREE_SIDE)
_(PINETREE)
_(PINETREE_SIDE)
// Egg Zeppelin
_(EZZPROPELLER)

View file

@ -239,21 +239,6 @@ _(CABR) // Brambles
_(BTBL) // Big tumbleweed
_(STBL) // Small tumbleweed
_(CACT) // Cacti
_(WWSG) // Caution Sign
_(WWS2) // Cacti Sign
_(WWS3) // Sharp Turn Sign
_(OILL) // Oil lamp
_(OILF) // Oil lamp flare
_(BARR) // TNT barrel
_(REMT) // TNT proximity shell
_(TAZD) // Dust devil
_(ADST) // Arid dust
_(MCRT) // Minecart
_(MCSP) // Minecart spark
_(SALD) // Saloon door
_(TRAE) // Train cameo locomotive
_(TRAI) // Train cameo wagon
_(STEA) // Train steam
// Red Volcano Scenery
_(FLME) // Flame jet

View file

@ -258,12 +258,11 @@ _(POINTYBALL1)
// Robo-Hood
_(ROBOHOOD_LOOK)
_(ROBOHOOD_STAND)
_(ROBOHOOD_FIRE1)
_(ROBOHOOD_FIRE2)
_(ROBOHOOD_JUMP1)
_(ROBOHOOD_STND)
_(ROBOHOOD_SHOOT)
_(ROBOHOOD_JUMP)
_(ROBOHOOD_JUMP2)
_(ROBOHOOD_JUMP3)
_(ROBOHOOD_FALL)
// Castlebot Facestabber
_(FACESTABBER_STND1)
@ -276,11 +275,6 @@ _(FACESTABBER_CHARGE1)
_(FACESTABBER_CHARGE2)
_(FACESTABBER_CHARGE3)
_(FACESTABBER_CHARGE4)
_(FACESTABBER_PAIN)
_(FACESTABBER_DIE1)
_(FACESTABBER_DIE2)
_(FACESTABBER_DIE3)
_(FACESTABBERSPEAR)
// Egg Guard
_(EGGGUARD_STND)
@ -298,7 +292,6 @@ _(EGGGUARD_RUN4)
// Egg Shield for Egg Guard
_(EGGSHIELD)
_(EGGSHIELDBREAK)
// Green Snapper
_(SNAPPER_SPAWN)
@ -1373,7 +1366,8 @@ _(CANNONBALL1)
// Arrow
_(ARROW)
_(ARROWBONK)
_(ARROWUP)
_(ARROWDOWN)
// Glaregoyle Demon fire
_(DEMONFIRE)
@ -1561,7 +1555,6 @@ _(CEZFLOWER)
_(CEZPOLE)
_(CEZBANNER1)
_(CEZBANNER2)
_(PINETREE)
_(CEZBUSH1)
_(CEZBUSH2)
_(CANDLE)
@ -1605,100 +1598,6 @@ _(CACTI1)
_(CACTI2)
_(CACTI3)
_(CACTI4)
_(CACTI5)
_(CACTI6)
_(CACTI7)
_(CACTI8)
_(CACTI9)
_(CACTI10)
_(CACTI11)
_(CACTITINYSEG)
_(CACTISMALLSEG)
// Warning signs
_(ARIDSIGN_CAUTION)
_(ARIDSIGN_CACTI)
_(ARIDSIGN_SHARPTURN)
// Oil lamp
_(OILLAMP)
_(OILLAMPFLARE)
// TNT barrel
_(TNTBARREL_STND1)
_(TNTBARREL_EXPL1)
_(TNTBARREL_EXPL2)
_(TNTBARREL_EXPL3)
_(TNTBARREL_EXPL4)
_(TNTBARREL_EXPL5)
_(TNTBARREL_EXPL6)
_(TNTBARREL_EXPL7)
_(TNTBARREL_FLYING)
// TNT proximity shell
_(PROXIMITY_TNT)
_(PROXIMITY_TNT_TRIGGER1)
_(PROXIMITY_TNT_TRIGGER2)
_(PROXIMITY_TNT_TRIGGER3)
_(PROXIMITY_TNT_TRIGGER4)
_(PROXIMITY_TNT_TRIGGER5)
_(PROXIMITY_TNT_TRIGGER6)
_(PROXIMITY_TNT_TRIGGER7)
_(PROXIMITY_TNT_TRIGGER8)
_(PROXIMITY_TNT_TRIGGER9)
_(PROXIMITY_TNT_TRIGGER10)
_(PROXIMITY_TNT_TRIGGER11)
_(PROXIMITY_TNT_TRIGGER12)
_(PROXIMITY_TNT_TRIGGER13)
_(PROXIMITY_TNT_TRIGGER14)
_(PROXIMITY_TNT_TRIGGER15)
_(PROXIMITY_TNT_TRIGGER16)
_(PROXIMITY_TNT_TRIGGER17)
_(PROXIMITY_TNT_TRIGGER18)
_(PROXIMITY_TNT_TRIGGER19)
_(PROXIMITY_TNT_TRIGGER20)
_(PROXIMITY_TNT_TRIGGER21)
_(PROXIMITY_TNT_TRIGGER22)
_(PROXIMITY_TNT_TRIGGER23)
// Dust devil
_(DUSTDEVIL)
_(DUSTLAYER1)
_(DUSTLAYER2)
_(DUSTLAYER3)
_(DUSTLAYER4)
_(DUSTLAYER5)
_(ARIDDUST1)
_(ARIDDUST2)
_(ARIDDUST3)
// Minecart
_(MINECART_IDLE)
_(MINECART_DTH1)
_(MINECARTEND)
_(MINECARTSEG_FRONT)
_(MINECARTSEG_BACK)
_(MINECARTSEG_LEFT)
_(MINECARTSEG_RIGHT)
_(MINECARTSIDEMARK1)
_(MINECARTSIDEMARK2)
_(MINECARTSPARK)
// Saloon door
_(SALOONDOOR)
_(SALOONDOORCENTER)
// Train cameo
_(TRAINCAMEOSPAWNER_1)
_(TRAINCAMEOSPAWNER_2)
_(TRAINCAMEOSPAWNER_3)
_(TRAINCAMEOSPAWNER_4)
_(TRAINCAMEOSPAWNER_5)
_(TRAINPUFFMAKER)
// Train
_(TRAINDUST)
_(TRAINSTEAM)
// Flame jet
_(FLAMEJETSTND)
@ -4056,8 +3955,8 @@ _(CDTREEASP)
_(CDTREEBSP)
// Daytona Speedway
_(DAYTONAPINETREE)
_(DAYTONAPINETREE_SIDE)
_(PINETREE)
_(PINETREE_SIDE)
// Egg Zeppelin
_(EZZPROPELLER)

File diff suppressed because it is too large Load diff

View file

@ -761,6 +761,40 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
S_StartSound(toucher, sfx_hoop3);
return;
case MT_EGGSHIELD:
{
fixed_t touchx, touchy, touchspeed;
angle_t angle;
if (P_AproxDistance(toucher->x-special->x, toucher->y-special->y) >
P_AproxDistance((toucher->x-toucher->momx)-special->x, (toucher->y-toucher->momy)-special->y))
{
touchx = toucher->x + toucher->momx;
touchy = toucher->y + toucher->momy;
}
else
{
touchx = toucher->x;
touchy = toucher->y;
}
angle = R_PointToAngle2(special->x, special->y, touchx, touchy) - special->angle;
touchspeed = P_AproxDistance(toucher->momx, toucher->momy);
// Blocked by the shield?
if (!(angle > ANGLE_90 && angle < ANGLE_270))
{
toucher->momx = P_ReturnThrustX(special, special->angle, touchspeed);
toucher->momy = P_ReturnThrustY(special, special->angle, touchspeed);
toucher->momz = -toucher->momz;
// Play a bounce sound?
S_StartSound(toucher, special->info->painsound);
return;
}
}
return;
case MT_BIGTUMBLEWEED:
case MT_LITTLETUMBLEWEED:
if (toucher->momx || toucher->momy)
@ -1549,13 +1583,6 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
target->fuse = TICRATE;
break;
case MT_MINECART:
A_Scream(target);
target->momx = target->momy = target->momz = 0;
if (target->target && target->target->health)
P_KillMobj(target->target, target, source, DMG_NORMAL);
break;
case MT_PLAYER:
if (damagetype != DMG_SPECTATOR)
{

View file

@ -2328,9 +2328,9 @@ boolean P_ZMovement(mobj_t *mo)
if (!mo->player && P_CheckDeathPitCollide(mo))
{
if (mo->flags & MF_ENEMY || mo->flags & MF_BOSS || mo->type == MT_MINECART)
if (mo->flags & MF_ENEMY || mo->flags & MF_BOSS)
{
// Kill enemies, bosses and minecarts that fall into death pits.
// Kill enemies and bosses.
if (mo->health)
{
P_KillMobj(mo, NULL, NULL, DMG_NORMAL);
@ -8487,7 +8487,7 @@ for (i = ((mobj->flags2 & MF2_STRONGBOX) ? strongboxamt : weakboxamt); i; --i) s
static boolean P_FuseThink(mobj_t *mobj)
{
if (mobj->type == MT_SNAPPER_HEAD || mobj->type == MT_SNAPPER_LEG || mobj->type == MT_MINECARTSEG)
if (mobj->type == MT_SNAPPER_HEAD || mobj->type == MT_SNAPPER_LEG)
mobj->renderflags ^= RF_DONTDRAW;
if (mobj->fuse <= TICRATE && (mobj->type == MT_RANDOMITEM || mobj->type == MT_EGGMANITEM || mobj->type == MT_FALLINGROCK))
@ -9492,21 +9492,6 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
case MT_FBOMB:
mobj->flags2 |= MF2_EXPLOSION;
break;
case MT_OILLAMP:
{
mobj_t* overlay = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_OVERLAY);
P_SetTarget(&overlay->target, mobj);
P_SetMobjState(overlay, S_OILLAMPFLARE);
break;
}
case MT_TNTBARREL:
mobj->momx = 1; //stack hack
mobj->flags2 |= MF2_INVERTAIMABLE;
break;
case MT_MINECARTEND:
P_SetTarget(&mobj->tracer, P_SpawnMobjFromMobj(mobj, 0, 0, 0, MT_MINECARTENDSOLID));
mobj->tracer->angle = mobj->angle + ANGLE_90;
break;
case MT_TORCHFLOWER:
{
mobj_t *fire = P_SpawnMobjFromMobj(mobj, 0, 0, 46*FRACUNIT, MT_FLAME);
@ -9617,7 +9602,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
case MT_RUSTYLAMP_ORANGE:
P_SpawnMobj(mobj->x, mobj->y, mobj->z + (69*mobj->scale), MT_MARBLELIGHT);
break;
case MT_DAYTONAPINETREE:
case MT_PINETREE:
{
angle_t diff = FixedAngle((360/mobj->info->mass)*FRACUNIT);
UINT8 i;
@ -9626,7 +9611,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
{
angle_t ang = i * diff;
mobj_t *side = P_SpawnMobj(mobj->x + FINECOSINE((ang>>ANGLETOFINESHIFT) & FINEMASK),
mobj->y + FINESINE((ang>>ANGLETOFINESHIFT) & FINEMASK), mobj->z, MT_DAYTONAPINETREE_SIDE);
mobj->y + FINESINE((ang>>ANGLETOFINESHIFT) & FINEMASK), mobj->z, MT_PINETREE_SIDE);
side->angle = ang;
side->target = mobj;
side->threshold = i;

View file

@ -5047,9 +5047,6 @@ static void P_ConvertBinaryLinedefTypes(void)
lines[i].args[2] = !!(lines[i].flags & ML_SKEWTD);
P_WriteDuplicateText(sides[lines[i].sidenum[0]].text, &lines[i].stringargs[0]);
break;
case 16: //Minecart parameters
lines[i].args[0] = sides[lines[i].sidenum[0]].textureoffset >> FRACBITS;
break;
case 20: //PolyObject first line
{
INT32 check = -1;
@ -7406,12 +7403,6 @@ static void P_ConvertBinaryThingTypes(void)
P_WriteConstant(MT_ROCKCRUMBLE1 + id, &mapthings[i].stringargs[0], "Mapthing", i);
break;
}
case 1221: //Minecart saloon door
mapthings[i].args[0] = !!(mapthings[i].options & MTF_AMBUSH);
break;
case 1229: //Minecart switch point
mapthings[i].args[0] = !!(mapthings[i].options & MTF_AMBUSH);
break;
case 1300: //Flame jet (horizontal)
case 1301: //Flame jet (vertical)
mapthings[i].args[0] = mapthings[i].angle >> 13;