Merge pull request 'Port SRB2Kart v1 and SRB2 2.1 Objects' (#45) from portv1objects into blankart-dev

Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/45
This commit is contained in:
NepDisk 2025-04-17 06:54:20 +00:00
commit e9c2f20599
20 changed files with 2726 additions and 4685 deletions

View file

@ -465,6 +465,13 @@ static int ScanConstants(lua_State *L, boolean mathlib, const char *word)
CacheAndPushConstant(L, word, i);
return 1;
}
if (lua_compatmode)
for (i = 0; MOBJ_ALIASES[i].n; i++)
if (fastcmp(p, MOBJ_ALIASES[i].n)) {
CacheAndPushConstant(L, word, MOBJ_ALIASES[i].v);
return 1;
}
return luaL_error(L, "mobjtype '%s' does not exist.\n", word);
}
else if (fastncmp("SPR_",word,4)) {

View file

@ -128,6 +128,16 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
#undef _
};
struct int_const_s const MOBJ_ALIASES[] = {
{"BIRD", MT_FLICKY_01},
{"BUNNY" , MT_FLICKY_02},
{"MOUSE" , MT_FLICKY_12},
{"CHICKEN" , MT_FLICKY_03},
{"REDBIRD", MT_FLICKY_10},
{"COW", MT_FLICKY_11},
{ NULL, 0 }
};
const char *const MOBJFLAG_LIST[] = {
"SPECIAL",
"SOLID",
@ -947,13 +957,13 @@ struct int_const_s const INT_CONST[] = {
{"PRECIP_NONE",PRECIP_NONE},
{"PRECIP_RAIN",PRECIP_RAIN},
{"PRECIP_SNOW",PRECIP_SNOW},
{"PRECIP_BLIZZARD",PRECIP_BLIZZARD},
{"PRECIP_STORM",PRECIP_STORM},
{"PRECIP_STORM_NORAIN",PRECIP_STORM_NORAIN},
{"PRECIP_STORM_NOSTRIKES",PRECIP_STORM_NOSTRIKES},
// Carrying
{"CR_NONE",CR_NONE},
{"CR_SLIDING",CR_SLIDING},
{"CR_ZOOMTUBE",CR_ZOOMTUBE},
// Character flags (skinflags_t)

View file

@ -74,6 +74,7 @@ extern actionpointer_t actionpointers[]; // Array mapping action names to action
extern const char *const STATE_LIST[];
extern struct int_const_s const STATE_ALIASES[];
extern const char *const MOBJTYPE_LIST[];
extern struct int_const_s const MOBJ_ALIASES[];
extern const char *const MOBJFLAG_LIST[];
extern const char *const MOBJFLAG2_LIST[]; // \tMF2_(\S+).*// (.+) --> \t"\1", // \2
extern const char *const MOBJEFLAG_LIST[];

View file

@ -101,7 +101,7 @@
extern "C" {
#endif
//#define NOMD5
#define NOMD5
// Uncheck this to compile debugging code
//#define RANGECHECK
@ -492,10 +492,6 @@ extern int compuncommitted;
/// Dumps the contents of a network save game upon consistency failure for debugging.
//#define DUMPCONSISTENCY
/// Who put weights on my recycler? ... Inuyasha did.
/// \note XMOD port.
//#define WEIGHTEDRECYCLER
/// Allow loading of savegames between different versions of the game.
/// \note XMOD port.
/// Most modifications should probably enable this.

View file

@ -76,7 +76,6 @@ typedef enum
PRECIP_RAIN,
PRECIP_SNOW,
PRECIP_BLIZZARD,
PRECIP_STORM,
PRECIP_STORM_NORAIN,
PRECIP_STORM_NOSTRIKES,

View file

@ -107,7 +107,6 @@ precipprops_t precipprops[MAXPRECIP] =
{"NONE", MT_NULL, 0}, // PRECIP_NONE
{"RAIN", MT_RAIN, 0}, // PRECIP_RAIN
{"SNOW", MT_SNOWFLAKE, 0}, // PRECIP_SNOW
{"BLIZZARD", MT_BLIZZARDSNOW, 0}, // PRECIP_BLIZZARD
{"STORM", MT_RAIN, PRECIPFX_THUNDER|PRECIPFX_LIGHTNING}, // PRECIP_STORM
{"STORM_NORAIN", MT_NULL, PRECIPFX_THUNDER|PRECIPFX_LIGHTNING}, // PRECIP_STORM_NORAIN
{"STORM_NOSTRIKES", MT_RAIN, PRECIPFX_THUNDER} // PRECIP_STORM_NOSTRIKES

View file

@ -1,12 +1,10 @@
_(A_MonitorPop, MONITORPOP)
_(A_Explode, EXPLODE)
_(A_Pain, PAIN)
_(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 +67,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 +79,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)
@ -105,7 +98,6 @@ _(A_SetReactionTime, SETREACTIONTIME)
_(A_Boss1Spikeballs, BOSS1SPIKEBALLS)
_(A_Boss3TakeDamage, BOSS3TAKEDAMAGE)
_(A_Boss3Path, BOSS3PATH)
_(A_Boss3ShockThink, BOSS3SHOCKTHINK)
_(A_LinedefExecute, LINEDEFEXECUTE)
_(A_LinedefExecuteFromArg, LINEDEFEXECUTEFROMARG)
_(A_PlaySeeSound, PLAYSEESOUND)
@ -199,53 +191,18 @@ _(A_FlickyHeightCheck, FLICKYHEIGHTCHECK)
_(A_FlickyFlutter, FLICKYFLUTTER)
_(A_FlameParticle, FLAMEPARTICLE)
_(A_FadeOverlay, FADEOVERLAY)
_(A_Boss5Jump, BOSS5JUMP)
_(A_LightBeamReset, LIGHTBEAMRESET)
_(A_MineExplode, MINEEXPLODE)
_(A_MineRange, MINERANGE)
_(A_ConnectToGround, CONNECTTOGROUND)
_(A_SpawnParticleRelative, SPAWNPARTICLERELATIVE)
_(A_ParticleSpawn, PARTICLESPAWN)
_(A_MultiShotDist, MULTISHOTDIST)
_(A_WhoCaresIfYourSonIsABee,WHOCARESIFYOURSONISABEE)
_(A_ParentTriesToSleep, PARENTTRIESTOSLEEP)
_(A_CryingToMomma, CRYINGTOMOMMA)
_(A_CheckFlags2, CHECKFLAGS2)
_(A_Boss5FindWaypoint, BOSS5FINDWAYPOINT)
_(A_DoNPCSkid, DONPCSKID)
_(A_DoNPCPain, DONPCPAIN)
_(A_PrepareRepeat, PREPAREREPEAT)
_(A_Boss5ExtraRepeat, BOSS5EXTRAREPEAT)
_(A_Boss5Calm, BOSS5CALM)
_(A_Boss5CheckOnGround, BOSS5CHECKONGROUND)
_(A_Boss5CheckFalling, BOSS5CHECKFALLING)
_(A_Boss5PinchShot, BOSS5PINCHSHOT)
_(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)
_(A_FallingLavaCheck, FALLINGLAVACHECK)
_(A_FireShrink, FIRESHRINK)
_(A_SpawnPterabytes, SPAWNPTERABYTES)
_(A_PterabyteHover, PTERABYTEHOVER)
_(A_RolloutSpawn, ROLLOUTSPAWN)
_(A_RolloutRock, ROLLOUTROCK)
_(A_DragonbomberSpawn, DRAGONBOMBERSPAWN)
_(A_DragonWing, DRAGONWING)
_(A_DragonSegment, DRAGONSEGMENT)
_(A_ChangeHeight, CHANGEHEIGHT)
// SRB2Kart

View file

@ -14,6 +14,7 @@ _(REDCRAWLA) // Crawla (Red)
_(GFZFISH) // SDURF
_(GOLDBUZZ) // Buzz (Gold)
_(REDBUZZ) // Buzz (Red)
_(AQUABUZZ)
_(JETTBOMBER) // Jetty-Syn Bomber
_(JETTGUNNER) // Jetty-Syn Gunner
_(CRAWLACOMMANDER) // Crawla Commander
@ -21,12 +22,7 @@ _(DETON) // Deton
_(SKIM) // Skim mine dropper
_(TURRET) // Industrial Turret
_(POPUPTURRET) // Pop-Up Turret
_(SPINCUSHION) // Spincushion
_(CRUSHSTACEAN) // Crushstacean
_(CRUSHCLAW) // Big meaty claw
_(CRUSHCHAIN) // Chain
_(BANPYURA) // Banpyura
_(BANPSPRING) // Banpyura spring
_(SHARP) // SHARP
_(JETJAW) // Jet Jaw
_(SNAILER) // Snailer
_(VULTURE) // BASH
@ -34,29 +30,14 @@ _(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
_(SNAPPER_LEG) // Green Snapper leg
_(SNAPPER_HEAD) // Green Snapper head
_(MINUS) // Minus
_(MINUSDIRT) // Minus dirt
_(SPRINGSHELL) // Spring Shell
_(YELLOWSHELL) // Spring Shell (yellow)
_(UNIDUS) // Unidus
_(UNIBALL) // Unidus Ball
_(CANARIVORE) // Canarivore
_(CANARIVORE_GAS) // Canarivore gas
_(PYREFLY) // Pyre Fly
_(PYREFLY_FIRE) // Pyre Fly fire
_(PTERABYTESPAWNER) // Pterabyte spawner
_(PTERABYTEWAYPOINT) // Pterabyte waypoint
_(PTERABYTE) // Pterabyte
_(DRAGONBOMBER) // Dragonbomber
_(DRAGONWING) // Dragonbomber wing
_(DRAGONTAIL) // Dragonbomber tail segment
_(DRAGONMINE) // Dragonbomber mine
// Generic Boss Items
_(BOSSEXPLODE)
@ -65,7 +46,6 @@ _(BOSSFLYPOINT)
_(EGGTRAP)
_(BOSS3WAYPOINT)
_(BOSS9GATHERPOINT)
_(BOSSJUNK)
// Boss 1
_(EGGMOBILE)
@ -78,31 +58,16 @@ _(EGGMOBILE_FIRE)
_(EGGMOBILE2)
_(EGGMOBILE2_POGO)
_(GOOP)
_(GOOPTRAIL)
// Boss 3
_(EGGMOBILE3)
_(PROPELLER)
_(FAKEMOBILE)
_(SHOCKWAVE)
// Boss 4
_(EGGMOBILE4)
_(EGGMOBILE4_MACE)
_(JETFLAME)
_(EGGROBO1)
_(EGGROBO1JET)
// Boss 5
_(FANG)
_(BROKENROBOT)
_(VWREF)
_(VWREB)
_(PROJECTORLIGHT)
_(FBOMB)
_(TNTDUST) // also used by barrel
_(FSGNA)
_(FSGNB)
_(FANGWAYPOINT)
// Black Eggman (Boss 7)
_(BLACKEGGMAN)
@ -137,6 +102,7 @@ _(FLINGBLUESPHERE) // Lost blue sphere
_(BOMBSPHERE)
_(REDTEAMRING) // Rings collectable by red team.
_(BLUETEAMRING) // Rings collectable by blue team.
_(EMMY) // Special Stage token for special stage
_(TOKEN) // Special Stage token for special stage
_(REDFLAG) // Red CTF Flag
_(BLUEFLAG) // Blue CTF Flag
@ -155,7 +121,6 @@ _(FLINGEMERALD) // Lost emerald
// Springs and others
_(FAN)
_(STEAM)
_(BUMPER)
_(BALLOON)
_(YELLOWSPRING)
@ -172,11 +137,6 @@ _(REDHORIZ) // Red Horizontal Spring
_(BLUEHORIZ) // Blue Horizontal Spring
_(GREYHORIZ) // Grey Horizontal Spring
_(BOOSTERSEG)
_(BOOSTERROLLER)
_(YELLOWBOOSTER)
_(REDBOOSTER)
// Interactive Objects
_(BUBBLES) // Bubble source
_(SIGN) // Level end sign
@ -187,73 +147,51 @@ _(WALLSPIKE)
_(WALLSPIKEBASE)
_(STARPOST)
_(BIGMINE)
_(BIGAIRMINE)
_(BLASTEXECUTOR)
_(CANNONLAUNCHER)
// Monitor Boxes
_(SUPERRINGBOX)
_(REDRINGBOX)
_(BLUERINGBOX)
_(SNEAKERTV)
_(INV)
_(PRUP) // 1up Box
_(YELLOWTV)
_(BLUETV)
_(BLACKTV) // Bomb shield TV
_(WHITETV) // Jump shield TV
_(GREENTV)
_(PITYTV) // Pity Shield TV
_(EGGMANBOX)
_(MIXUPBOX)
_(RECYCLETV)
_(RECYCLEICO)
_(QUESTIONBOX)
_(GRAVITYBOX)
_(SCORETVSMALL)
_(SCORETVLARGE)
// Monitor miscellany
_(BOXSPARKLE)
// Monitor boxes -- regular
_(RING_BOX)
_(PITY_BOX)
_(ATTRACT_BOX)
_(FORCE_BOX)
_(ARMAGEDDON_BOX)
_(WHIRLWIND_BOX)
_(ELEMENTAL_BOX)
_(SNEAKERS_BOX)
_(INVULN_BOX)
_(1UP_BOX)
_(EGGMAN_BOX)
_(MIXUP_BOX)
_(MYSTERY_BOX)
_(GRAVITY_BOX)
_(RECYCLER_BOX)
_(SCORE1K_BOX)
_(SCORE10K_BOX)
_(FLAMEAURA_BOX)
_(BUBBLEWRAP_BOX)
_(THUNDERCOIN_BOX)
// Monitor boxes -- repeating (big) boxes
_(PITY_GOLDBOX)
_(ATTRACT_GOLDBOX)
_(FORCE_GOLDBOX)
_(ARMAGEDDON_GOLDBOX)
_(WHIRLWIND_GOLDBOX)
_(ELEMENTAL_GOLDBOX)
_(SNEAKERS_GOLDBOX)
_(INVULN_GOLDBOX)
_(EGGMAN_GOLDBOX)
_(GRAVITY_GOLDBOX)
_(FLAMEAURA_GOLDBOX)
_(BUBBLEWRAP_GOLDBOX)
_(THUNDERCOIN_GOLDBOX)
// Monitor boxes -- special
_(RING_REDBOX)
_(RING_BLUEBOX)
// Monitor icons
_(RING_ICON)
_(PITY_ICON)
_(ATTRACT_ICON)
_(FORCE_ICON)
_(ARMAGEDDON_ICON)
_(WHIRLWIND_ICON)
_(ELEMENTAL_ICON)
_(SNEAKERS_ICON)
_(INVULN_ICON)
_(1UP_ICON)
_(EGGMAN_ICON)
_(MIXUP_ICON)
_(GRAVITY_ICON)
_(RECYCLER_ICON)
_(SCORE1K_ICON)
_(SCORE10K_ICON)
_(FLAMEAURA_ICON)
_(BUBBLEWRAP_ICON)
_(THUNDERCOIN_ICON)
_(MONITOREXPLOSION)
_(REDMONITOREXPLOSION)
_(BLUEMONITOREXPLOSION)
_(RINGICO)
_(SHOESICO)
_(INVCICO)
_(1UPICO)
_(YSHIELDICO)
_(BSHIELDICO)
_(KSHIELDICO)
_(WSHIELDICO)
_(GSHIELDICO)
_(PITYSHIELDICO)
_(EGGMANICO)
_(MIXUPICO)
_(GRAVITYICO)
_(SCOREICOSMALL)
_(SCOREICOLARGE)
// Projectiles
_(ROCKET)
@ -269,62 +207,30 @@ _(CANNONBALLDECOR) // Decorative/still cannonball
_(ARROW) // Arrow
_(DEMONFIRE) // Glaregoyle fire
// The letter
_(LETTER)
// Greenflower Scenery
_(GFZFLOWER1)
_(GFZFLOWER2)
_(GFZFLOWER3)
_(BLUEBERRYBUSH)
_(BERRYBUSH)
_(BUSH)
// Trees (both GFZ and misc)
_(GFZTREE)
_(GFZBERRYTREE)
_(GFZCHERRYTREE)
_(CHECKERTREE)
_(CHECKERSUNSETTREE)
_(FHZTREE) // Frozen Hillside
_(FHZPINKTREE)
_(POLYGONTREE)
_(BUSHTREE)
_(BUSHREDTREE)
_(SPRINGTREE)
// Techno Hill Scenery
_(THZFLOWER1)
_(THZFLOWER2)
_(THZFLOWER3)
_(THZTREE) // Steam whistle tree/bush
_(THZTREEBRANCH) // branch of said tree
_(THZPLANT) // THZ Plant
_(ALARM)
// Deep Sea Scenery
_(GARGOYLE) // Deep Sea Gargoyle
_(BIGGARGOYLE) // Deep Sea Gargoyle (Big)
_(SEAWEED) // DSZ Seaweed
_(WATERDRIP) // Dripping Water source
_(WATERDROP) // Water drop from dripping water
_(CORAL1) // Coral
_(CORAL2)
_(CORAL3)
_(CORAL4)
_(CORAL5)
_(CORAL1) // Coral 1
_(CORAL2) // Coral 2
_(CORAL3) // Coral 3
_(BLUECRYSTAL) // Blue Crystal
_(KELP) // Kelp
_(ANIMALGAETOP) // Animated algae top
_(ANIMALGAESEG) // Animated algae segment
_(DSZSTALAGMITE) // Deep Sea 1 Stalagmite
_(DSZ2STALAGMITE) // Deep Sea 2 Stalagmite
_(LIGHTBEAM) // DSZ Light beam
// Castle Eggman Scenery
_(CHAIN) // CEZ Chain
_(FLAME) // Flame (has corona)
_(FLAMEPARTICLE)
_(FLAME) // Flame
_(EGGSTATUE) // Eggman Statue
_(MACEPOINT) // Mace rotation point
_(CHAINMACEPOINT) // Combination of chains and maces point
@ -344,65 +250,14 @@ _(REDSPRINGBALL) // Red spring on a ball
_(SMALLFIREBAR) // Small Firebar
_(BIGFIREBAR) // Big Firebar
_(CEZFLOWER) // Flower
_(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
_(CANDLEPRICKET) // Candle pricket
_(FLAMEHOLDER) // Flame holder
_(FIRETORCH) // Fire torch
_(WAVINGFLAG1) // Waving flag (red)
_(WAVINGFLAG2) // Waving flag (blue)
_(WAVINGFLAGSEG1) // Waving flag segment (red)
_(WAVINGFLAGSEG2) // Waving flag segment (blue)
_(CRAWLASTATUE) // Crawla statue
_(FACESTABBERSTATUE) // Facestabber statue
_(SUSPICIOUSFACESTABBERSTATUE) // :eggthinking:
_(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)
@ -414,29 +269,15 @@ _(FJSPINAXISB) // Clockwise
_(FLAMEJETFLAMEB) // Blade's flame
_(LAVAFALL)
_(LAVAFALL_LAVA)
_(LAVAFALLROCK)
_(ROLLOUTSPAWN)
_(ROLLOUTROCK)
_(BIGFERNLEAF)
_(BIGFERN)
_(JUNGLEPALM)
_(TORCHFLOWER)
_(WALLVINE_LONG)
_(WALLVINE_SHORT)
// Dark City Scenery
// Egg Rock Scenery
// Azure Temple Scenery
_(GLAREGOYLE)
_(GLAREGOYLEUP)
_(GLAREGOYLEDOWN)
_(GLAREGOYLELONG)
_(TRAPGOYLE)
_(TRAPGOYLEUP)
_(TRAPGOYLEDOWN)
_(TRAPGOYLELONG)
_(TARGET) // AKA Red Crystal
_(GREENFLAME)
_(BLUEGARGOYLE)
@ -456,37 +297,11 @@ _(STALAGMITE9)
// Christmas Scenery
_(XMASPOLE)
_(CANDYCANE)
_(SNOWMAN) // normal
_(SNOWMANHAT) // with hat + scarf
_(LAMPPOST1) // normal
_(LAMPPOST2) // with snow
_(SNOWMAN)
_(SNOWMANHAT)
_(LAMPPOST1)
_(LAMPPOST2)
_(HANGSTAR)
_(MISTLETOE)
// Xmas GFZ bushes
_(XMASBLUEBERRYBUSH)
_(XMASBERRYBUSH)
_(XMASBUSH)
// FHZ
_(FHZICE1)
_(FHZICE2)
_(ROSY)
_(CDLHRT)
// Halloween Scenery
// Pumpkins
_(JACKO1)
_(JACKO2)
_(JACKO3)
// Dr Seuss Trees
_(HHZTREE_TOP)
_(HHZTREE_PART)
// Misc
_(HHZSHROOM)
_(HHZGRASS)
_(HHZTENTACLE1)
_(HHZTENTACLE2)
_(HHZSTALAGMITE_TALL)
_(HHZSTALAGMITE_SHORT)
// Botanic Serenity scenery
_(BSZTALLFLOWER_RED)
@ -596,7 +411,6 @@ _(SEED)
// Environmental Effects
_(RAIN) // Rain
_(SNOWFLAKE) // Snowflake
_(BLIZZARDSNOW) // Blizzard Snowball
_(SPLISH) // Water splish!
_(LAVASPLISH) // Lava splish!
_(SMOKE)
@ -656,10 +470,8 @@ _(GOOMBA)
_(BLUEGOOMBA)
_(FIREFLOWER)
_(FIREBALL)
_(FIREBALLTRAIL)
_(SHELL)
_(PUMA)
_(PUMATRAIL)
_(HAMMER)
_(KOOPA)
_(KOOPAFLAME)
@ -699,26 +511,6 @@ _(NIGHTOPIANHELPER) // the actual helper object that orbits you
_(PIAN) // decorative singing friend
_(SHLEEP) // almost-decorative sleeping enemy
// Secret badniks and hazards, shhhh
_(PENGUINATOR)
_(POPHAT)
_(POPSHOT)
_(POPSHOT_TRAIL)
_(HIVEELEMENTAL)
_(BUMBLEBORE)
_(BUGGLE)
_(SMASHINGSPIKEBALL)
_(CACOLANTERN)
_(CACOSHARD)
_(CACOFIRE)
_(SPINBOBERT)
_(SPINBOBERT_FIRE1)
_(SPINBOBERT_FIRE2)
_(HANGSTER)
// Utility Objects
_(TELEPORTMAN)
_(ALTVIEWMAN)
@ -759,14 +551,6 @@ _(ROCKCRUMBLE14)
_(ROCKCRUMBLE15)
_(ROCKCRUMBLE16)
// Level debris
_(GFZDEBRIS)
_(BRICKDEBRIS)
_(WOODDEBRIS)
_(REDBRICKDEBRIS) // for CEZ3
_(BLUEBRICKDEBRIS) // for CEZ3
_(YELLOWBRICKDEBRIS) // for CEZ3
// SRB1 Badniks
_(SRB1_CRAWLA)
_(SRB1_BAT)
@ -854,8 +638,6 @@ _(SINK_SHIELD)
_(SINKTRAIL)
_(BATTLEBUMPER) // Battle Mode bumpers
_(BATTLEBUMPER_DEBRIS)
_(BATTLEBUMPER_BLAST)
_(DEZLASER)
@ -991,8 +773,8 @@ _(CDTREEA)
_(CDTREEB)
// Daytona Speedway
_(DAYTONAPINETREE)
_(DAYTONAPINETREE_SIDE)
_(PINETREE)
_(PINETREE_SIDE)
// Egg Zeppelin
_(EZZPROPELLER)

View file

@ -24,30 +24,18 @@ _(SKIM) // Skim mine dropper
_(TRET) // Industrial Turret
_(TURR) // Pop-Up Turret
_(SHRP) // Sharp
//_(CRAB) // Crushstacean
_(CR2B) // Banpyura
_(CSPR) // Banpyura spring
_(JJAW) // Jet Jaw
_(SNLR) // Snailer
_(VLTR) // BASH
_(PNTY) // Pointy
_(ARCH) // Robo-Hood
_(CBFS) // Castlebot Facestabber
_(STAB) // Castlebot Facestabber spear aura
_(SPSH) // Egg Guard
_(ESHI) // Egg Guard's shield
_(GSNP) // Green Snapper
_(GSNL) // Green Snapper leg
_(GSNH) // Green Snapper head
_(MNUS) // Minus
_(MNUD) // Minus dirt
_(SSHL) // Spring Shell
_(UNID) // Unidus
_(CANA) // Canarivore
_(CANG) // Canarivore gas
_(PYRE) // Pyre Fly
_(PTER) // Pterabyte
_(DRAB) // Dragonbomber
// Generic Boss Items
_(JETF) // Boss jet fumes
@ -70,18 +58,9 @@ _(SHCK) // Boss 3 Shockwave
// Boss 4 (Castle Eggman)
_(EGGP)
_(EFIR) // Boss 4 jet flame
_(EGR1) // Boss 4 Spectator Eggrobo
// Boss 5 (Arid Canyon)
_(FANG) // replaces EGGQ
_(BRKN)
_(WHAT)
_(VWRE)
_(PROJ) // projector light
_(FBOM)
_(FSGN)
_(BARX) // bomb explosion (also used by barrel)
_(BARD) // bomb dust (also used by barrel)
_(EGGQ)
// Boss 6 (Red Volcano)
_(EGGR)
@ -109,6 +88,7 @@ _(MSCB)
// Collectible Items
_(RING)
_(TRNG) // Team Rings
_(EMMY) // Special Stage Token
_(TOKE) // Special Stage Token
_(RFLG) // Red CTF Flag
_(BFLG) // Blue CTF Flag
@ -133,33 +113,27 @@ _(BMNE) // Big floating mine
_(PUMI) // Rollout Rock
// Monitor Boxes
_(MSTV) // MiSc TV sprites
_(XLTV) // eXtra Large TV sprites
_(SRBX)
_(RRBX)
_(BRBX)
_(SHTV)
_(PINV)
_(YLTV)
_(BLTV) // Force shield
_(BKTV) // Bomb shield TV
_(WHTV) // Jump shield TV
_(GRTV) // Pity shield TV
_(ELTV) // Elemental shield TV
_(EGGB) // Eggman box
_(MIXU) // Player mixing monitor
_(RECY) // Recycler (power mixing) monitor
_(QUES) // Random monitor
_(GBTV) // Gravity boots TV
_(PRUP) // 1up
_(PTTV) // Score TVs
_(TRRI) // Red team: 10 RIngs
_(TBRI) // Blue team: 10 RIngs
_(TVRI) // 10 RIng
_(TVPI) // PIty shield
_(TVAT) // ATtraction shield
_(TVFO) // FOrce shield
_(TVAR) // ARmageddon shield
_(TVWW) // WhirlWind shield
_(TVEL) // ELemental shield
_(TVSS) // Super Sneakers
_(TVIV) // InVincibility
_(TV1U) // 1Up
_(TV1P) // 1uP (textless)
_(TVEG) // EGgman
_(TVMX) // MiXup
_(TVMY) // MYstery
_(TVGV) // GraVity boots
_(TVRC) // ReCycler
_(TV1K) // 1,000 points (1 K)
_(TVTK) // 10,000 points (Ten K)
_(TVFL) // FLame shield
_(TVBB) // BuBble shield
_(TVZP) // Thunder shield (ZaP)
// Monitor Miscellany
_(MTEX) // Exploding monitor
// Projectiles
_(MISL)
@ -174,9 +148,6 @@ _(CBLL) // Cannonball
_(AROW) // Arrow
_(CFIR) // Colored fire of various sorts
// The letter
_(LETR)
// Greenflower Scenery
_(FWR1)
_(FWR2) // GFZ Sunflower
@ -184,33 +155,19 @@ _(FWR3) // GFZ budding flower
_(FWR4)
_(BUS1) // GFZ Bush w/ berries
_(BUS2) // GFZ Bush w/o berries
_(BUS3) // GFZ Bush w/ BLUE berries
// Trees (both GFZ and misc)
_(TRE1) // GFZ
_(TRE2) // Checker
_(TRE3) // Frozen Hillside
_(TRE4) // Polygon
_(TRE5) // Bush tree
_(TRE6) // Spring tree
// Techno Hill Scenery
_(THZP) // THZ1 Steam Flower
_(FWR5) // THZ1 Spin flower (red)
_(FWR6) // THZ1 Spin flower (yellow)
_(THZT) // Steam Whistle tree/bush
_(THZP) // Techno Hill Zone Plant
_(ALRM) // THZ2 Alarm
// Deep Sea Scenery
_(GARG) // Deep Sea Gargoyle
_(SEWE) // Deep Sea Seaweed
_(DRIP) // Dripping water
_(CORL) // Coral
_(CRL1) // Coral 1
_(CRL2) // Coral 2
_(CRL3) // Coral 3
_(BCRY) // Blue Crystal
_(KELP) // Kelp
_(ALGA) // Animated algae top
_(ALGB) // Animated algae segment
_(DSTG) // DSZ Stalagmites
_(LIBE) // DSZ Light beam
// Castle Eggman Scenery
_(CHAN) // CEZ Chain
@ -224,44 +181,15 @@ _(YSPB) // Yellow spring on a ball
_(RSPB) // Red spring on a ball
_(SFBR) // Small Firebar
_(BFBR) // Big Firebar
_(BANR) // Banner/pole
_(PINE) // Pine Tree
_(CEZB) // Bush
_(CNDL) // Candle/pricket
_(FLMH) // Flame holder
_(CTRC) // Fire torch
_(CFLG) // Waving flag/segment
_(CSTA) // Crawla statue
_(CBBS) // Facestabber statue
_(CABR) // Brambles
// Arid Canyon Scenery
_(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
_(DFLM) // Blade's flame
_(LFAL) // Lavafall
_(JPLA) // Jungle palm
_(TFLO) // Torch flower
_(WVIN) // Wall vines
// Dark City Scenery
@ -274,17 +202,8 @@ _(XMS3) // Snowman
_(XMS4) // Lamppost
_(XMS5) // Hanging Star
_(XMS6) // Mistletoe
_(FHZI) // FHZ Ice
_(ROSY)
// Halloween Scenery
_(PUMK) // Pumpkins
_(HHPL) // Dr Seuss Trees
_(SHRM) // Mushroom
_(HHZM) // Misc
// Azure Temple Scenery
_(BGAR) // ATZ Gargoyles
_(RCRY) // ATZ Red Crystal (Target)
_(CFLM) // Green torch flame
@ -363,7 +282,6 @@ _(BSTR) // Red Booster
// Environmental Effects
_(RAIN) // Rain
_(SNO1) // Snowflake
_(SNO2) // Blizzard Snowball
_(SPLH) // Water Splish
_(LSPL) // Lava Splish
_(SPLA) // Water Splash
@ -439,21 +357,6 @@ _(IDYA) // Ideya
_(NTPN) // Nightopian
_(SHLP) // Shleep
// Secret badniks and hazards, shhhh
_(PENG)
_(POPH)
_(HIVE)
_(BUMB)
_(BBUZ)
_(FMCE)
_(HMCE)
_(CACO)
_(BAL2)
_(SBOB)
_(SBFL)
_(SBSK)
_(HBAT)
// Debris
_(SPRK) // Sparkle
_(BOM1) // Robot Explosion
@ -656,7 +559,7 @@ _(CDMO)
_(CDBU)
// Daytona Speedway
_(DPIN)
_(PINE)
// Egg Zeppelin
_(PPLR)

File diff suppressed because it is too large Load diff

View file

@ -255,7 +255,7 @@ void K_CheckBumpers(void)
}
else if (numingame <= 1)
{
if (!itembreaker)
if (!itembreaker && cv_kartitembreaker.value)
{
// Reset map to turn on battle capsules
D_MapChange(gamemap, gametype, encoremode, true, 0, false, false);

View file

@ -583,20 +583,6 @@ boolean K_DropTargetCollide(mobj_t *t1, mobj_t *t2)
ghost->destscale = 15*ghost->destscale/2;
ghost->fuse = 10;
ghost->scalespeed = (ghost->destscale - ghost->scale)/ghost->fuse;
for (SINT8 i = 0; i < 2; i++)
{
mobj_t *blast = P_SpawnMobjFromMobj(t1, 0, 0, FixedDiv(t1->height, t1->scale), MT_BATTLEBUMPER_BLAST);
P_SetScale(blast, 5*blast->scale/2);
blast->angle = R_PointToAngle2(0, 0, t1->momx, t1->momy) + ANGLE_45;
if (i & 1)
{
blast->angle += ANGLE_90;
}
blast->destscale *= 10;
}
}
t1->flags |= MF_SHOOTABLE;

File diff suppressed because it is too large Load diff

View file

@ -1030,7 +1030,6 @@ static mobj_t *SearchMarioNode(msecnode_t *node)
case MT_SUPERSPARK:
case MT_RAIN:
case MT_SNOWFLAKE:
case MT_BLIZZARDSNOW:
case MT_SPLISH:
case MT_LAVASPLISH:
case MT_SMOKE:
@ -2456,6 +2455,14 @@ void EV_MarioBlock(ffloor_t *rover, sector_t *sector, mobj_t *puncher)
}
else
{
if (thing->type == MT_EMMY && thing->spawnpoint && (thing->spawnpoint->options & MTF_OBJECTSPECIAL))
{
mobj_t *tokenobj = P_SpawnMobj(thing->x, thing->y, topheight, MT_TOKEN);
P_SetTarget(&thing->tracer, tokenobj);
P_SetTarget(&tokenobj->target, thing);
P_SetMobjState(tokenobj, mobjinfo[MT_TOKEN].seestate);
}
// "Powerup rise" sound
S_StartSound(puncher, sfx_mario9); // Puncher is "close enough"
}

View file

@ -689,6 +689,23 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
player->pickuprings++;
return;
// Special Stage Token
case MT_EMMY:
if (player->bot)
return;
tokenlist += special->health;
if (ALL7EMERALDS(emeralds)) // Got all 7
{
P_GivePlayerRings(player, 50);
nummaprings += 50; // no cheating towards Perfect!
}
else
token++;
if (special->tracer) // token BG
P_RemoveMobj(special->tracer);
break;
// Secret emblem thingy
case MT_EMBLEM:
@ -761,6 +778,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)
@ -791,6 +842,15 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
Obj_LoopEndpointCollide(special, toucher);
return;
case MT_BIGMINE:
case MT_BIGAIRMINE:
// Spawn explosion!
P_SpawnMobj(special->x, special->y, special->z, special->info->mass);
P_RadiusAttack(special, special, special->info->damage, DMG_NORMAL, true);
S_StartSound(special, special->info->deathsound);
P_SetMobjState(special, special->info->deathstate);
return;
case MT_NIGHTSBUMPER:
// Don't trigger if the stage is ended/failed
if (player->exiting)
@ -1422,19 +1482,6 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
target->fuse = target->info->damage;
break;
case MT_BUGGLE:
if (inflictor && inflictor->player // did a player kill you? Spawn relative to the player so they're bound to get it
&& P_AproxDistance(inflictor->x - target->x, inflictor->y - target->y) <= inflictor->radius + target->radius + FixedMul(8*FRACUNIT, inflictor->scale) // close enough?
&& inflictor->z <= target->z + target->height + FixedMul(8*FRACUNIT, inflictor->scale)
&& inflictor->z + inflictor->height >= target->z - FixedMul(8*FRACUNIT, inflictor->scale))
mo = P_SpawnMobj(inflictor->x + inflictor->momx, inflictor->y + inflictor->momy, inflictor->z + (inflictor->height / 2) + inflictor->momz, MT_EXTRALARGEBUBBLE);
else
mo = P_SpawnMobj(target->x, target->y, target->z, MT_EXTRALARGEBUBBLE);
mo->destscale = target->scale;
P_SetScale(mo, mo->destscale);
P_SetMobjState(mo, mo->info->raisestate);
break;
case MT_YELLOWSHELL:
P_SpawnMobjFromMobj(target, 0, 0, 0, MT_YELLOWSPRING);
break;
@ -1443,49 +1490,14 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
target->momx = target->momy = target->momz = 0;
break;
case MT_CRUSHSTACEAN:
if (target->tracer)
{
mobj_t *chain = target->tracer->target, *chainnext;
while (chain)
{
chainnext = chain->target;
P_RemoveMobj(chain);
chain = chainnext;
}
S_StopSound(target->tracer);
P_KillMobj(target->tracer, inflictor, source, damagetype);
}
break;
case MT_BANPYURA:
if (target->tracer)
{
S_StopSound(target->tracer);
P_KillMobj(target->tracer, inflictor, source, damagetype);
}
break;
case MT_EGGSHIELD:
P_SetObjectMomZ(target, 4*target->scale, false);
P_InstaThrust(target, target->angle, 3*target->scale);
target->flags = (target->flags|MF_NOCLIPHEIGHT) & ~MF_NOGRAVITY;
break;
case MT_DRAGONBOMBER:
{
mobj_t *segment = target;
while (segment->tracer != NULL)
{
P_KillMobj(segment->tracer, NULL, NULL, DMG_NORMAL);
segment = segment->tracer;
}
break;
}
case MT_EGGMOBILE3:
{
mobj_t *mo2;
thinker_t *th;
UINT32 i = 0; // to check how many clones we've removed
@ -1501,20 +1513,10 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
if (mo->tracer != target)
continue;
P_KillMobj(mo, inflictor, source, damagetype);
mo->destscale = mo->scale/8;
mo->scalespeed = (mo->scale - mo->destscale)/(2*TICRATE);
mo->momz = mo->info->speed;
mo->angle = FixedAngle((P_RandomKey(36)*10)<<FRACBITS);
mo2 = P_SpawnMobjFromMobj(mo, 0, 0, 0, MT_BOSSJUNK);
mo2->angle = mo->angle;
P_SetMobjState(mo2, S_BOSSSEBH2);
P_RemoveMobj(mo);
if (++i == 2) // we've already removed 2 of these, let's stop now
break;
else
S_StartSound(mo, mo->info->deathsound); // done once to prevent sound stacking
}
}
break;
@ -1537,25 +1539,11 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
P_LinedefExecute(target->spawnpoint->angle, (source ? source : inflictor), target->subsector->sector);
break;
case MT_SPINBOBERT:
if (target->hnext)
P_KillMobj(target->hnext, inflictor, source, damagetype);
if (target->hprev)
P_KillMobj(target->hprev, inflictor, source, damagetype);
break;
case MT_EGGTRAP:
// Time for birdies! Yaaaaaaaay!
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)
{
@ -2254,6 +2242,10 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
K_TryHurtSoundExchange(target, source);
}
else
{
K_DestroyBumpers(player, 1);
}
if (!(type == DMG_NORMAL || type == DMG_WIPEOUT || type == DMG_VOLTAGE))
{

View file

@ -399,6 +399,8 @@ boolean P_CheckMissileRange(mobj_t *actor);
void P_NewChaseDir(mobj_t *actor);
boolean P_LookForPlayers(mobj_t *actor, boolean allaround, boolean tracer, fixed_t dist);
void P_HomingAttack(mobj_t *source, mobj_t *enemy);
mobj_t *P_InternalFlickySpawn(mobj_t *actor, mobjtype_t flickytype, fixed_t momz, boolean lookforplayers, SINT8 moveforward);
void P_InternalFlickySetColor(mobj_t *actor, UINT8 color);
#define P_IsFlickyCenter(type) (type > MT_FLICKY_01 && type < MT_SEED && (type - MT_FLICKY_01) % 2 ? 1 : 0)
@ -577,7 +579,7 @@ struct BasicFF_t
#define DMG_SPECTATOR 0x83
#define DMG_TIMEOVER 0x84
// Masks
//free 0x10 // Flag - setting this flag allows objects to damage you if you're already in spinout. The effect is reversed on objects with MF_MISSILE (setting it prevents them from comboing in spinout)
//free 0x10
#define DMG_STEAL 0x20 // Flag - can steal bumpers, will only deal damage to players, and will not deal damage outside Battle Mode.
#define DMG_CANTHURTSELF 0x40 // Flag - cannot hurt your self or your team
#define DMG_DEATHMASK DMG_INSTAKILL // if bit 7 is set, this is a death type instead of a damage type

File diff suppressed because it is too large Load diff

View file

@ -173,7 +173,7 @@ typedef enum
typedef enum
{
MF2_AXIS = 1, // It's a NiGHTS axis! (For faster checking)
MF2_SHADOW = 1<<3, // DO NOT USE: for lua compatibility only
MF2_SHADOW = 1<<1, // DO NOT USE: for lua compatibility only
MF2_DONTRESPAWN = 1<<2, // Don't respawn this object!
MF2_DONTDRAW = 1<<3, // DO NOT USE: for lua compatibility only
MF2_AUTOMATIC = 1<<4, // Thrown ring has automatic properties

View file

@ -5054,9 +5054,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;
@ -7033,13 +7030,6 @@ static void P_ConvertBinaryThingTypes(void)
case 203: //Egg Colosseum
mapthings[i].args[5] = LE_BOSS4DROP + mapthings[i].extrainfo * LE_PARAMWIDTH;
break;
case 204: //Fang
mapthings[i].args[4] = LE_BOSS4DROP + mapthings[i].extrainfo*LE_PARAMWIDTH;
if (mapthings[i].options & MTF_EXTRA)
mapthings[i].args[5] |= TMF_GRAYSCALE;
if (mapthings[i].options & MTF_AMBUSH)
mapthings[i].args[5] |= TMF_SKIPINTRO;
break;
case 206: //Brak Eggman (Old)
mapthings[i].args[5] = LE_BRAKPLATFORM + mapthings[i].extrainfo*LE_PARAMWIDTH;
break;
@ -7061,9 +7051,6 @@ static void P_ConvertBinaryThingTypes(void)
mapthings[i].args[0] = mapthings[i].angle;
mapthings[i].args[1] = mapthings[i].options & 7;
break;
case 294: //Fang waypoint
mapthings[i].args[0] = !!(mapthings[i].options & MTF_AMBUSH);
break;
case 300: //Ring
case 301: //Bounce ring
case 302: //Rail ring
@ -7368,25 +7355,12 @@ static void P_ConvertBinaryThingTypes(void)
}
break;
}
case 1101: //Torch
case 1119: //Candle
case 1120: //Candle pricket
mapthings[i].args[0] = !!(mapthings[i].options & MTF_EXTRA);
break;
case 1121: //Flame holder
if (mapthings[i].options & MTF_OBJECTSPECIAL)
mapthings[i].args[0] |= TMFH_NOFLAME;
if (mapthings[i].options & MTF_EXTRA)
mapthings[i].args[0] |= TMFH_CORONA;
break;
case 1127: //Spectator EggRobo
if (mapthings[i].options & MTF_AMBUSH)
mapthings[i].args[0] = TMED_LEFT;
else if (mapthings[i].options & MTF_OBJECTSPECIAL)
mapthings[i].args[0] = TMED_RIGHT;
else
mapthings[i].args[0] = TMED_NONE;
break;
case 1200: //Tumbleweed (Big)
case 1201: //Tumbleweed (Small)
mapthings[i].args[0] = !!(mapthings[i].options & MTF_AMBUSH);
@ -7414,12 +7388,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;

View file

@ -111,13 +111,6 @@ typedef enum
TMP_CLASSIC = 3,
} textmappushabletype_t;
typedef enum
{
TMED_NONE = 0,
TMED_RIGHT = 1,
TMED_LEFT = 2,
} textmapeggrobodirection_t;
typedef enum
{
TMMR_SAME = 0,