// DR. ROBOTNIK'S RING RACERS //----------------------------------------------------------------------------- // Copyright (C) 2024 by Kart Krew. // Copyright (C) 2020 by Sonic Team Junior. // Copyright (C) 2000 by DooM Legacy Team. // Copyright (C) 1996 by id Software, Inc. // // This program is free software distributed under the // terms of the GNU General Public License, version 2. // See the 'LICENSE' file for more details. //----------------------------------------------------------------------------- /// \file info.c /// \brief Thing frame/state LUT // Data. #include "doomdef.h" #include "doomstat.h" #include "sounds.h" #include "p_mobj.h" #include "p_local.h" // DMG_ constants #include "m_misc.h" #include "z_zone.h" #include "d_player.h" #include "v_video.h" // V_*MAP constants #include "lzf.h" // Hey, moron! If you change this table, don't forget about the sprite enum in info.h and the sprite lights in hw_light.c! // EXCEPT HW_LIGHT.C DOESN'T EXIST ANYMORE LOVE CONTINUOUSLY FALLING ON MY ASS THROUGHOUT THIS CODEBASE - Tyron 2022-05-12 // For the sake of constant merge conflicts, let's spread this out char sprnames[NUMSPRITES + 1][5] = { "NULL", // invisible object "NONE", // invisible but still rendered "UNKN", "THOK", // Thok! mobj "PLAY", "KART", "TIRE", // Enemies "POSS", // Crawla (Blue) "BARX", // bomb explosion (also used by barrel) "BARD", // bomb dust (also used by barrel) // Collectible Items "RING", "DEBT", "BSPH", // Sphere "EMBM", "SPCN", // Spray Can "MMSH", // Ancient Shrine "MORB", // One Morbillion "EMRC", // Chaos Emeralds "SEMR", // Super Emeralds "ESPK", // Prison Egg Drops "ALTM", // Interactive Objects "BBLS", // water bubble source "SIGN", // Level end sign "SPIK", // Spike Ball "SFLM", // Spin fire "USPK", // Floor spike "WSPK", // Wall spike "WSPB", // Wall spike base // Projectiles "CBLL", // Cannonball "CFIR", // Colored fire of various sorts // Greenflower Scenery "FWR1", "FWR2", // GFZ Sunflower "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 "ALRM", // THZ2 Alarm // Deep Sea Scenery "GARG", // Deep Sea Gargoyle "SEWE", // Deep Sea Seaweed "DRIP", // Dripping water "CORL", // Coral "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 "FLAM", // Flame "ESTA", // Eggman esta una estatua! "SMCH", // Small Mace Chain "BMCH", // Big Mace Chain "SMCE", // Small Mace "BMCE", // Big Mace "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 "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 // Red Volcano Scenery "FLME", // Flame jet "DFLM", // Blade's flame "LFAL", // Lavafall "JPLA", // Jungle palm "TFLO", // Torch flower "WVIN", // Wall vines // Dark City Scenery // Egg Rock Scenery // Christmas Scenery "XMS1", // Christmas Pole "XMS2", // Candy Cane "XMS3", // Snowman "XMS4", // Lamppost "XMS5", // Hanging Star "XMS6", // Mistletoe "FHZI", // FHZ Ice // Halloween Scenery "PUMK", // Pumpkins "HHPL", // Dr Seuss Trees "SHRM", // Mushroom "HHZM", // Misc // Azure Temple Scenery "BGAR", // ATZ Gargoyles "CFLM", // Green torch flame // Botanic Serenity Scenery "BSZ1", // Tall flowers "BSZ2", // Medium flowers "BSZ3", // Small flowers "BSZ4", // Tulips "BST1", // Red tulip "BST2", // Purple tulip "BST3", // Blue tulip "BST4", // Cyan tulip "BST5", // Yellow tulip "BST6", // Orange tulip "BSZ5", // Cluster of Tulips "BSZ6", // Bush "BSZ7", // Vine "BSZ8", // Misc things // Misc Scenery "STLG", // Stalagmites "DBAL", // Disco // Powerup Indicators "SSPK", // Super Sonic Spark // Flickies "FBUB", // Flicky-sized bubble "FL01", // Bluebird "FL02", // Rabbit "FL03", // Chicken "FL04", // Seal "FL05", // Pig "FL06", // Chipmunk "FL07", // Penguin "FL08", // Fish "FL09", // Ram "FL10", // Puffin "FL11", // Cow "FL12", // Rat "FL13", // Bear "FL14", // Dove "FL15", // Cat "FL16", // Canary "FS01", // Spider "FS02", // Bat // Springs "STEM", // Steam riser "BLON", // Balloons "SPVY", // Yellow Vertical Spring "SPVR", // Red Vertical Spring "SPVB", // Blue Vertical Spring "SPVG", // Grey Vertical Spring "SPDY", // Yellow Diagonal Spring "SPDR", // Red Diagonal Spring "SPDB", // Blue Diagonal Spring "SPDG", // Grey Diagonal Spring "SPHY", // Yellow Horizontal Spring "SPHR", // Red Horizontal Spring "SPHB", // Blue Horizontal Spring "SPHG", // Grey Horizontal Spring "POGS", // Pogo Spring // Environmental Effects "RAIN", // Rain "SNO1", // Snowflake "SNO2", // Blizzard Snowball "SPLH", // Water Splish "LSPL", // Lava Splish "SPLA", // Water Splash "SMOK", "BUBL", // Bubble "WZAP", "DUST", // Spindash dust "FPRT", // Spindash dust (flame) "SEED", // Sonic CD flower seed "PRTL", // Particle (for fans", etc.) // Game Indicators "DRWN", // Drowning Timer "CORK", "LHRT", // NiGHTS Stuff "HOOP", "CAPS", // Capsule thingy for NiGHTS // Secret badniks and hazards", shhhh "FMCE", "HMCE", "HBAT", // Debris "SPRK", // Sparkle "BOM1", // Robot Explosion "BOM2", // Boss Explosion 1 "BOM3", // Boss Explosion 2 "BOM4", // Underwater Explosion "LSSJ", // My ki is overflowing!! // Crumbly rocks "ROIA", "ROIB", "ROIC", "ROID", "ROIE", "ROIF", "ROIG", "ROIH", "ROII", "ROIJ", "ROIK", "ROIL", "ROIM", "ROIN", "ROIO", "ROIP", // Level debris "GFZD", // GFZ debris "BRIC", // Bricks "WDDB", // Wood Debris //SRB2kart Sprites (sort later) "RNDM", // Random Item Box "SBOX", // Sphere Box (for Battle) "RBOX", // Ring Box "ITRI", // Item Box Debris "ITPA", // Paper item backdrop "SGNS", // Signpost sparkle "FAST", // Speed boost trail "DSHR", // Speed boost dust release "BOST", // Sneaker booster flame "BOSM", // Sneaker booster smoke "KFRE", // Sneaker fire trail "KINV", // Lighter invincibility sparkle trail "KINB", // Darker invincibility sparkle trail "KINF", // Invincibility flash "INVI", // Invincibility speedlines "ICAP", // Item capsules "IMON", // Item Monitor "MGBX", // Heavy Magician transform box "MGBT", // Heavy Magician transform box top "MGBB", // Heavy Magician transform box bottom "MSHD", // Item Monitor Big Shard "IMDB", // Item Monitor Small Shard (Debris) "MTWK", // Item Monitor Glass Twinkle "SLPT", // Wavedash indicator "TRBS", // Trickdash indicator "IWHP", // Instawhip "WPRE", // Instawhip Recharge "WPRJ", // Instawhip Reject "GRNG", // Guard ring "GBDY", // Guard body "TRC1", // Charge aura "TRC2", // Charge fall "TRC3", // Charge flicker/sparks "TRC4", // Charge release "TRC5", // Charge extra "DHND", // Servant Hand "HORN", // Horncode "WIPD", // Wipeout dust trail "DRIF", // Drift Sparks "BDRF", // Brake drift sparks "BRAK", // Brake dust "DRWS", // Drift dust sparks "DREL", // Drift electricity "DRES", // Drift electric sparks "JANK", // Stair janking sparks "HFX1", // Hitlag stage 1 "HFX2", // Hitlag stage 2 "HFX3", // Hitlag stage 3 "HFX4", // Hitlag stage 4 "HFX5", // Hitlag stage 5 "HFX6", // Hitlag stage 6 "HFX8", // Hitlag stage 8 "HFX9", // Hitlag stage 9 "HFXX", // Hitlag stage 10 // Kart Items "RSHE", // Rocket sneaker "FITM", // Eggman Monitor "BANA", // Banana Peel "BAND", // Banana Peel death particles "ORBN", // Orbinaut "JAWZ", // Jawz "SSMN", // SS Mine "KRBM", // SS Mine BOOM "LNDM", // Land Mine "DTRG", // Drop Target "BHOG", // Ballhog "BHBM", // Ballhog BOOM "SPBM", // Self-Propelled Bomb "TRIS", // SPB Manta Ring start "TRNQ", // SPB Manta Ring loop "THNS", // Lightning Shield "BUBS", // Bubble Shield (not Bubs) "BWVE", // Bubble Shield waves "FLMS", // Flame Shield "FLMD", // Flame Shield dash "FLMP", // Flame Shield paper sprites "FLML", // Flame Shield speed lines "FLMF", // Flame Shield flash "GTOP", // Marble Garden Zone Spinning Top "GTAR", // Garden Top Arrow "HYUU", // Hyudoro "GRWP", // Grow "POHB", // Shrink Poh-Bee "POHC", // Shrink Poh-Bee chain "SHRG", // Shrink gun "SHRL", // Shrink laser "SINK", // Kitchen Sink "SITR", // Kitchen Sink Trail "KBLN", // Battle Mode Bumper "BEXC", // Battle Bumper Explosion: Crystal "BEXS", // Battle Bumper Explosion: Shell "BDEB", // Battle Bumper Explosion: Debris "BEXB", // Battle Bumper Explosion: Blast "TWBS", // Tripwire Boost "TWBT", // Tripwire BLASTER "SMLD", // Smooth landing // Trick Effects "TRK1", "TRK2", "TRK3", "TRK4", "TRK5", "TRK6", "TRK7", "TIRG", // Tire grabbers "RSHT", // DEZ Ring Shooter "DEZL", // DEZ Laser respawn // Additional Kart Objects "AUDI", // Audience members "BUZB", // Sapphire Coast Buzz Mk3 "SACO", // Sapphire Coast Fauna "BRNG", // Chaotix Big Ring // Ark Arrows "SYM0", "SYM1", "SYM2", "SYM3", "SYM4", "SYM5", "SYM6", "SYM7", "SYM8", "SYM9", "SYMA", "SYMB", "SYMC", "SYMD", "SYME", "SYMF", "SYMG", "SYMH", "SYMI", "SYMJ", "SYMK", "SYML", "SYMM", "SYMN", "SYMO", "SYMP", "SYMQ", "SYMR", "SYMS", "SYMT", "SYMU", "SYMV", "SYMW", "SYMX", "SYMY", "SYMZ", "ARK0", "ARK1", "ARK2", "ARK3", "ARK4", "ARK5", "BUMP", // Player/shell bump "FLEN", // Shell hit graphics stuff "CLAS", // items clash "PSHW", // thrown indicator "ISTA", // instashield layer A "ISTB", // instashield layer B "PWCL", // Invinc/grow clash VFX "GBRK", // Guard break "ITEM", "ITMO", "ITMI", "ITMN", "PWRB", "RBOW", // power-up aura "PBOM", // player bomb "HIT1", // battle points "HIT2", // battle points "HIT3", // battle points "RETI", // player reticule "AIDU", "KSPK", // Spark radius for the lightning shield "LZI1", // Lightning that falls on the player for lightning shield "LZI2", // ditto "KLIT", // You have a twisted mind. But this actually is for the diagonal lightning. "FZSM", // F-Zero NO CONTEST explosion "FZBM", // Dash Rings "RAIR", // Adventure Air Booster "ADVR", "ADVE", // Sneaker Panels "BSTP", "BSTS", "BSTT", "MARB", // Marble Zone sprites "FUFO", // CD Special Stage UFO (don't ask me why it begins with an F) "RUST", // Rusty Rig sprites // Ports of gardens "PGTR", // Egg Zeppelin "PPLR", // Desert Palace "DPPT", // Aurora Atoll "AATR", "COCO", // Barren Badlands "BDST", "FROG", "CBRA", "HOLE", "BBRA", // Eerie Grove "EGFG", // Chaos Chute "SARC", "SSBM", // Hanagumi Hall "HGSP", "HGC0", "HGCA", "HGCB", "HGCC", "HGCD", "HGCE", "HGCF", "HGCG", // Dimension Disaster "DVDD", "SPRC", "TUST", "TULE", "FWRK", "MXCL", "RGSP", "LENS", "DRAF", "GRES", "OTBU", "OTLS", "OTCP", "DBOS", // Drift boost flame "WAYP", "EGOO", "WTRL", // Water Trail "GCHA", // follower: generic chao "CHEZ", // follower: cheese "DBCL", // Drift boost clip "DBNC", // Drift boost clip's sparks "DBST", // Drift boost plume "SDDS", // Spindash dust "SDWN", // Spindash wind "EBRK", // Soft Landing / Ebrake aura stuff. "HMTR", // Down Lines "HBUB", // HOLD! Bubble "TRCK", "FLBM", "UFOB", "UFOA", "UFOS", "SSCA", "SSCB", "UQMK", "GBOM", "GCHX", "3DFR", "BUFO", // Battle/Power-UP UFO "CPT1", // Checkpoint Orb "CPT2", // Checkpoint Stick "CPT3", // Checkpoint Base // rideroid (see info.h for detail) "RDRD", "RDRA", "RDRC", "RDRL", // leaf storm egg ball. "LSZB", // Dead Line Zone "DLZH", "DLZR", "DLZS", "DLZA", // Water Palace Zone "WPWL", // turbine "WPZF", // fountain "WPZK", // klagen "SA2S", // SA2-style Ball Switch "STRG", // Spiked Target "BLEA", // m'A'in unit "BLEB", // o'B'server "BLEC", // 'C'lear glass "BLED", // shiel'D' "BLEE", // 'E'ggbeater "BLEF", // 'F'lamejet "BLEG", // 'G'enerator // Puyo hazards "PUYA", "PUYB", "PUYC", "PUYD", "PUYE", // Aerial Highlands "BCLD", // Avant Garden "AGTU", "AGTL", "AGTS", "AGTR", "AGFL", "AGFF", "AGCL", // Sky Sanctuary "SSCL", "MGSH", // Mega Barrier // GPZ Seasaw "GPPS", "GPZS", // Gust Planet Trees "GPTB", "GPTM", "GPTS", "GGZ1", "GGZ2", "GGZ3", "GGZ6", "GGZ7", "GGZ8", "FBTN", "SFTR", "SABX", "ICBL", "BSSP", "BSPB", "BSPR", "BSSR", "BLMS", "BLMM", "BLML", "BSWL", "BSWC", "LCLA", "AIZ1", "AIZ2", "AIZ3", "AIZ4", "AIZ5", "AIZ6", "AZR1", "AZR2", "EMR1", "EMR2", "EMR3", "EMFC", // Joypolis Trick Balloons "TKBR", "TKBY", // Waterfall particles "WTRP", // Sealed Stars "SCND", "SCNF", "SSBI", "SSCR", "SSFI", "SSSQ", "SSCO", "SGOB", "SSLA", "SWIN", "SWIS", "SBMP", "SSCH", "GCTA", "SENB", "SENC", "SEAS", "S_SP", // Tutorial "TLKP", // Talk Point // Destroyed Kart "DIEA", // tire "DIEB", // pipeframe bar "DIEC", // pedal tip "DIED", // right pedal "DIEE", // steering wheel "DIEF", // kart "DIEG", // left pedal "DIEH", // strut "DIEI", // wheel axle bar "DIEJ", // screw "DIEK", // electric engine "DIEL", // fire "DIEM", // smoke "DIEN", // explosion // Pulley "HCCH", "HCHK", // First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later "VIEW", }; char spr2names[NUMPLAYERSPRITES][5] = { "STIN", "STIL", "STIR", // Still "STGL", "STGR", // Still (glance back) "STLL", "STLR", // Still (look back) "SLWN", "SLWL", "SLWR", // Slow driving "SLGL", "SLGR", // Slow (glance back) "SLLL", "SLLR", // Slow (look back) "FSTN", "FSTL", "FSTR", // Fast driving "FSGL", "FSGR", // Fast (glance back) "FSLL", "FSLR", // Fast (look back) "DRLN", "DRLO", "DRLI", // Drifting left "DRRN", "DRRO", "DRRI", // Drifting right "SPIN", // Spinout "DEAD", // Dead "SIGN", "SIGL", "SSIG", // Finish signpost "XTRA", // Three Faces of Darkness "TALK", // Dialogue "DKRT", // Kart husk }; playersprite_t free_spr2 = SPR2_FIRSTFREESLOT; playersprite_t spr2defaults[NUMPLAYERSPRITES] = { 0, // SPR2_STIN SPR2_STIN, // SPR2_STIL SPR2_STIN, // SPR2_STIR SPR2_STIN, // SPR2_STGL SPR2_STIN, // SPR2_STGR SPR2_STGL, // SPR2_STLL SPR2_STGR, // SPR2_STLR 0, // SPR2_SLWN SPR2_SLWN, // SPR2_SLWL SPR2_SLWN, // SPR2_SLWR SPR2_SLWN, // SPR2_SLGL SPR2_SLWN, // SPR2_SLGR SPR2_SLGL, // SPR2_SLLL SPR2_SLGR, // SPR2_SLLR 0, // SPR2_FSTN SPR2_FSTN, // SPR2_FSTL SPR2_FSTN, // SPR2_FSTR SPR2_FSTN, // SPR2_FSGL SPR2_FSTN, // SPR2_FSGR SPR2_FSGL, // SPR2_FSLL SPR2_FSGR, // SPR2_FSLR 0, // SPR2_DRLN SPR2_DRLN, // SPR2_DRLO SPR2_DRLN, // SPR2_DRLI 0, // SPR2_DRRN SPR2_DRRN, // SPR2_DRRO SPR2_DRRN, // SPR2_DRRI 0, // SPR2_SPIN 0, // SPR2_DEAD 0, // SPR2_SIGN SPR2_SIGN, // SPR2_SIGL SPR2_SIGN, // SPR2_SSIG 0, // SPR2_XTRA 0, // SPR2_TALK 0, // SPR2_DKRT }; // Doesn't work with g++, needs actionf_p1 (don't modify this comment) state_t states[NUMSTATES] = { // frame is masked through FF_FRAMEMASK // FF_ANIMATE makes simple state animations (var1 #frames, var2 tic delay) (var1 is ignored in P_SetupStateAnimation() if sprite is SPR_PLAY) // FF_FULLBRIGHT activates the fullbright colormap // use FF_TRANS10 - FF_TRANS90 for easy translucency // (or tr_trans10<