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:
commit
e9c2f20599
20 changed files with 2726 additions and 4685 deletions
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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[];
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -76,7 +76,6 @@ typedef enum
|
|||
|
||||
PRECIP_RAIN,
|
||||
PRECIP_SNOW,
|
||||
PRECIP_BLIZZARD,
|
||||
PRECIP_STORM,
|
||||
PRECIP_STORM_NORAIN,
|
||||
PRECIP_STORM_NOSTRIKES,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
346
src/info/mobjs.h
346
src/info/mobjs.h
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
1296
src/info/states.h
1296
src/info/states.h
File diff suppressed because it is too large
Load diff
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
3089
src/p_enemy.c
3089
src/p_enemy.c
File diff suppressed because it is too large
Load diff
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
138
src/p_inter.c
138
src/p_inter.c
|
|
@ -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))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
2246
src/p_mobj.c
2246
src/p_mobj.c
File diff suppressed because it is too large
Load diff
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue