Merge pull request 'Handle hardcode object definitions in SOC' (#15) from dehardcode into ACS2

Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/15
This commit is contained in:
NepDisk 2025-01-17 18:47:00 +00:00
commit 1dc91b43ec
19 changed files with 8068 additions and 44143 deletions

189
extras/info2soc.py Normal file
View file

@ -0,0 +1,189 @@
#!/usr/bin/python
# yeah, I know my python code sucks. get over it
import sys
import re
def ReadMobjinfo(f):
mobjs = []
mobj = None
for line in f:
l, _, comment = line.strip().partition("//")
if mobj is not None:
if re.findall("[\t ]*},", l):
mobjs.append(mobj)
mobj = None
elif comment:
val = re.sub("[\t ,]", "", l)
# no casts allowed!
for match in re.finditer("\\(([A-Za-z0-9_]+)\\)", val):
start, end = match.span()
val = val[:start] + val[end:]
mobj.append(val)
else:
if "{" in l:
mobj = []
elif l.startswith("}") and l.endswith(";"):
return mobjs
sys.exit("error: unexpected EOF reading mobjinfo")
def ReadStruct(f, pattern):
states = []
for line in f:
l, _, comment = line.strip().partition("//")
if l.startswith("#"):
if l == "#ifndef ROTSPRITE": # bruh
f.readline()
elif l == "#else" or l == "#endif":
continue
else:
sys.exit("error: unknown directive "+l)
elif "{" in l:
state = re.search(pattern, l.strip("{} ,\t"))
if not state:
sys.exit("error: invalid line "+l)
states.append(list(state.groups()))
elif l.startswith("}") and l.endswith(";"):
return states
sys.exit("error: unexpected EOF")
def FindStruct(f, match, pattern):
for l in f:
if l.startswith(match):
if not l.endswith("{\n"): # not for skincolors
f.readline()
return ReadStruct(f, pattern) if pattern != "mobj" else ReadMobjinfo(f)
def ReadEnum(f, match):
out = []
comments = {} # why not?
for line in f:
l, _, comment = line.strip().partition("//")
if comment:
i = len(out)
if comments.get(i) is None:
comments[i] = []
comments[i].append(comment)
if e := re.findall(f"({match}[A-Za-z0-9_]+),?", l):
out.append(e[0])
elif l.startswith("}") and l.endswith(";"):
enumname = re.findall("} *([A-Za-z0-9_]+);", l)
return out, comments, enumname[0]
sys.exit("error: unexpected EOF reading enum")
def FindEnum(f, match, enum):
enumname = None
typedef = "typedef enum"
for l in f:
if l.startswith(typedef):
f.readline()
out, comments, tname = ReadEnum(f, match)
if tname == enum:
return out, comments
sys.exit("error: couldn't find "+enum)
def WriteSoc(states, fields, keyword, names, comments):
i = 0
for state in states:
comment = comments.get(i)
if comment:
for c in comment:
out.write(f"#{c}\n")
out.write(f"{keyword} {names[i]}\n")
for j in range(len(state)):
v = state[j].strip("{} \t\"")
if v != fields[j][1]:
if fields[j][0] != "Caption":
v = re.sub("[\t ]", "", v)
if fields[j][0] == "Accessible":
# lowercase doesn't work, might as well use numbers
v = "1" if v == "true" else "0"
out.write(f"{fields[j][0]} = {v}\n")
out.write("\n")
i += 1
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: info2soc.py <path to src> <outfile>")
sys.exit()
path = sys.argv[1]
if len(sys.argv) < 3:
outpath = "info.soc"
else:
outpath = sys.argv[2]
with open(path+"/info.h", "r") as f:
statenames, statecom = FindEnum(f, "S_", "statenum_t")
mobjnames, mobjcom = FindEnum(f, "MT_", "mobjtype_t")
with open(path+"/sounds.h", "r") as f:
sfxnames, sfxcom = FindEnum(f, "sfx_", "sfxenum_t")
with open(path+"/doomdef.h", "r") as f:
colornames, colorcom = FindEnum(f, "SKINCOLOR_", "skincolornum_t")
out = open(outpath, "w")
with open(path+"/info.c", "r") as f:
states = FindStruct(f, "state_t states[NUMSTATES]",
"([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+)")
fields = [ # field name, and default value (so it can be omitted)
("SpriteName", "SPR_NULL"),
("SpriteFrame", "0"),
("Duration", "0"),
("Action", "NULL"),
("Var1", "0"),
("Var2", "0"),
("Next", "S_NULL"),
]
WriteSoc(states, fields, "State", statenames, statecom)
mobjs = FindStruct(f, "mobjinfo_t mobjinfo[NUMMOBJTYPES]", "mobj")
fields = [
("MapThingNum", "-1"),
("SpawnState", "S_NULL"),
("SpawnHealth", "0"),
("SeeState", "S_NULL"),
("SeeSound", "sfx_None"),
("ReactionTime", "0"),
("AttackSound", "sfx_None"),
("PainState", "S_NULL"),
("PainChance", "0"),
("PainSound", "sfx_None"),
("MeleeState", "S_NULL"),
("MissileState", "S_NULL"),
("DeathState", "S_NULL"),
("XDeathState", "S_NULL"),
("DeathSound", "sfx_None"),
("Speed", "0"),
("Radius", "0"),
("Height", "0"),
("DispOffset", "0"),
("Mass", "0"),
("Damage", "0"),
("ActiveSound", "sfx_None"),
("Flags", "0"),
("RaiseState", "S_NULL"),
]
WriteSoc(mobjs, fields, "Mobj", mobjnames, mobjcom)
colors = FindStruct(f, "skincolor_t skincolors[MAXSKINCOLORS]",
"^([^,]+),(.+),([^,]+),([^,]+),([^,]+),([^,]+)")
fields = [
("Name", ""),
("Ramp", ""),
("InvColor", ""),
("InvShade", ""),
("ChatColor", ""),
("Accessible", "false"),
]
WriteSoc(colors, fields, "Color", colornames, colorcom)
with open(path+"/sounds.c", "r") as f:
sounds = FindStruct(f, "sfxinfo_t S_sfx[NUMSFX]",
"[^,]+,([^,]+),([^,]+),([^,]+),([^,]+),[^,]+,[^,]+,([^,]+),[^,]+,[^,]+,(.+)")
fields = [
("Singular", "false"),
("Priority", "0"),
("Flags", "0"),
("Volume", "-1"),
("SkinSound", "-1"),
("Caption", ""),
]
WriteSoc(sounds, fields, "Sound", sfxnames, sfxcom)
out.close()

View file

@ -1506,6 +1506,9 @@ void D_SRB2Main(void)
#endif //ifndef DEVELOP
// now do it again for the SOC colors in main.pk3!
M_InitPlayerSetupColors();
// Do it before P_InitMapData because PNG patch
// conversion sometimes needs the palette
V_ReloadPalette();

View file

@ -656,7 +656,7 @@ void readthing(MYFILE *f, INT32 num)
Z_Free(s);
}
void readskincolor(MYFILE *f, INT32 num)
void readskincolor(MYFILE *f, INT32 num, boolean mainfile)
{
char *s = Z_Malloc(MAXLINELEN, PU_STATIC, NULL);
char *word = s;
@ -763,7 +763,7 @@ void readskincolor(MYFILE *f, INT32 num)
}
else if (fastcmp(word, "ACCESSIBLE"))
{
if (num > FIRSTSUPERCOLOR)
if (mainfile || num > FIRSTSUPERCOLOR)
skincolors[num].accessible = (boolean)(atoi(word2) || word2[0] == 'T' || word2[0] == 'Y');
}
else
@ -1200,7 +1200,7 @@ void readlevelheader(MYFILE *f, INT32 num)
if (fastncmp(tmp, "MT_", 3)) // support for specified mobjtypes...
{
i = get_mobjtype(tmp);
if (!i)
if (i == -1)
{
//deh_warning("Level header %d: unknown flicky mobj type %s\n", num, tmp); -- no need for this line as get_mobjtype complains too
continue;
@ -2322,7 +2322,8 @@ void readframe(MYFILE *f, INT32 num)
}
else if (fastcmp(word1, "NEXT"))
{
states[num].nextstate = get_state(word2);
statenum_t state = get_state(word2);
states[num].nextstate = state == -1 ? S_NULL : state;
}
else if (fastcmp(word1, "VAR1"))
{
@ -2441,6 +2442,10 @@ void readsound(MYFILE *f, INT32 num)
{
S_sfx[num].volume = value;
}
else if (fastcmp(word, "SKINSOUND"))
{
S_sfx[num].skinsound = get_number(word2);
}
else if (fastcmp(word, "CAPTION") || fastcmp(word, "DESCRIPTION"))
{
deh_strlcpy(S_sfx[num].caption, word2,
@ -3750,7 +3755,10 @@ void readfollower(MYFILE *f)
else if (fastcmp(word2, "OPPOSITE"))
followers[numfollowers].defaultcolor = FOLLOWERCOLOR_OPPOSITE;
else
followers[numfollowers].defaultcolor = get_skincolor(word2);
{
skincolornum_t color = get_skincolor(word2);
followers[numfollowers].defaultcolor = color == -1 ? SKINCOLOR_GREEN : color;
}
}
else if (fastcmp(word, "SCALE"))
{
@ -3982,7 +3990,8 @@ void readweather(MYFILE *f, INT32 num)
if (fastcmp(word, "TYPE"))
{
precipprops[num].type = get_mobjtype(word2);
mobjtype_t mt = get_mobjtype(word2);
precipprops[num].type = mt == -1 ? MT_NULL : mt;
}
else if (fastcmp(word, "EFFECTS"))
{
@ -4017,7 +4026,7 @@ mobjtype_t get_mobjtype(const char *word)
if (fastcmp(word, MOBJTYPE_LIST[i]+3))
return i;
deh_warning("Couldn't find mobjtype named 'MT_%s'",word);
return MT_NULL;
return -1;
}
statenum_t get_state(const char *word)
@ -4037,7 +4046,7 @@ statenum_t get_state(const char *word)
if (fastcmp(word, STATE_LIST[i]+2))
return i;
deh_warning("Couldn't find state named 'S_%s'",word);
return S_NULL;
return -1;
}
skincolornum_t get_skincolor(const char *word)
@ -4057,7 +4066,7 @@ skincolornum_t get_skincolor(const char *word)
if (fastcmp(word, COLOR_ENUMS[i]))
return i;
deh_warning("Couldn't find skincolor named 'SKINCOLOR_%s'",word);
return SKINCOLOR_GREEN;
return -1;
}
spritenum_t get_sprite(const char *word)
@ -4101,7 +4110,7 @@ sfxenum_t get_sfx(const char *word)
if (S_sfx[i].name && fasticmp(word, S_sfx[i].name))
return i;
deh_warning("Couldn't find sfx named 'SFX_%s'",word);
return sfx_None;
return -1;
}
menutype_t get_menutype(const char *word)

View file

@ -79,7 +79,7 @@ void readsprite2(MYFILE *f, INT32 num);
#ifdef HWRENDER
void readlight(MYFILE *f, INT32 num);
#endif
void readskincolor(MYFILE *f, INT32 num);
void readskincolor(MYFILE *f, INT32 num, boolean mainfile);
void readthing(MYFILE *f, INT32 num);
void readfreeslots(MYFILE *f);
void readPlayer(MYFILE *f, INT32 num);

File diff suppressed because it is too large Load diff

View file

@ -314,7 +314,7 @@ static void DEH_LoadDehackedFile(MYFILE *f, boolean mainfile)
{
if (i == 0 && word2[0] != '0') // If word2 isn't a number
i = get_mobjtype(word2); // find a thing by name
if (i < NUMMOBJTYPES && i > 0)
if (i < NUMMOBJTYPES && i >= 0)
{
if (i < (MT_FIRSTFREESLOT+freeslotusage[1][1]))
{
@ -325,7 +325,7 @@ static void DEH_LoadDehackedFile(MYFILE *f, boolean mainfile)
}
else
{
deh_warning("Thing %d out of range (1 - %d)", i, NUMMOBJTYPES-1);
deh_warning("Thing %d out of range (0 - %d)", i, NUMMOBJTYPES-1);
ignorelines(f);
}
}
@ -333,11 +333,11 @@ static void DEH_LoadDehackedFile(MYFILE *f, boolean mainfile)
{
if (i == 0 && word2[0] != '0') // If word2 isn't a number
i = get_skincolor(word2); // find a skincolor by name
if (i && i < numskincolors)
readskincolor(f, i);
if (i < numskincolors && i >= 0)
readskincolor(f, i, mainfile);
else
{
deh_warning("Skincolor %d out of range (1 - %d)", i, numskincolors-1);
deh_warning("Skincolor %d out of range (0 - %d)", i, numskincolors-1);
ignorelines(f);
}
}
@ -463,11 +463,11 @@ static void DEH_LoadDehackedFile(MYFILE *f, boolean mainfile)
{
if (i == 0 && word2[0] != '0') // If word2 isn't a number
i = get_sfx(word2); // find a sound by name
if (i < NUMSFX && i > 0)
if (i < NUMSFX && i >= 0)
readsound(f, i);
else
{
deh_warning("Sound %d out of range (1 - %d)", i, NUMSFX-1);
deh_warning("Sound %d out of range (0 - %d)", i, NUMSFX-1);
ignorelines(f);
}
}

View file

@ -232,289 +232,15 @@ struct skincolor_t
typedef enum
{
SKINCOLOR_NONE = 0,
SKINCOLOR_WHITE,
SKINCOLOR_SILVER,
SKINCOLOR_GREY,
SKINCOLOR_NICKEL,
SKINCOLOR_BLACK,
SKINCOLOR_SKUNK,
SKINCOLOR_FAIRY,
SKINCOLOR_POPCORN,
SKINCOLOR_ARTICHOKE,
SKINCOLOR_PIGEON,
SKINCOLOR_SEPIA,
SKINCOLOR_BEIGE,
SKINCOLOR_WALNUT,
SKINCOLOR_BROWN,
SKINCOLOR_LEATHER,
SKINCOLOR_SALMON,
FIRSTRAINBOWCOLOR,
SKINCOLOR_PINK = FIRSTRAINBOWCOLOR,
SKINCOLOR_ROSE,
SKINCOLOR_BRICK,
SKINCOLOR_CINNAMON,
SKINCOLOR_RUBY,
SKINCOLOR_RASPBERRY,
SKINCOLOR_CHERRY,
SKINCOLOR_RED,
SKINCOLOR_CRIMSON,
SKINCOLOR_MAROON,
SKINCOLOR_LEMONADE,
SKINCOLOR_FLAME,
SKINCOLOR_SCARLET,
SKINCOLOR_KETCHUP,
SKINCOLOR_DAWN,
SKINCOLOR_SUNSET,
SKINCOLOR_CREAMSICLE,
SKINCOLOR_ORANGE,
SKINCOLOR_PUMPKIN,
SKINCOLOR_ROSEWOOD,
SKINCOLOR_BURGUNDY,
SKINCOLOR_TANGERINE,
SKINCOLOR_PEACH,
SKINCOLOR_CARAMEL,
SKINCOLOR_CREAM,
SKINCOLOR_GOLD,
SKINCOLOR_ROYAL,
SKINCOLOR_BRONZE,
SKINCOLOR_COPPER,
SKINCOLOR_QUARRY,
SKINCOLOR_YELLOW,
SKINCOLOR_MUSTARD,
SKINCOLOR_CROCODILE,
SKINCOLOR_OLIVE,
SKINCOLOR_VOMIT,
SKINCOLOR_GARDEN,
SKINCOLOR_LIME,
SKINCOLOR_HANDHELD,
SKINCOLOR_TEA,
SKINCOLOR_PISTACHIO,
SKINCOLOR_MOSS,
SKINCOLOR_CAMOUFLAGE,
SKINCOLOR_ROBOHOOD,
SKINCOLOR_MINT,
SKINCOLOR_GREEN,
SKINCOLOR_PINETREE,
SKINCOLOR_EMERALD,
SKINCOLOR_SWAMP,
SKINCOLOR_DREAM,
SKINCOLOR_PLAGUE,
SKINCOLOR_ALGAE,
SKINCOLOR_CARIBBEAN,
SKINCOLOR_AZURE,
SKINCOLOR_AQUA,
SKINCOLOR_TEAL,
SKINCOLOR_CYAN,
SKINCOLOR_JAWZ, // Oni's torment
SKINCOLOR_CERULEAN,
SKINCOLOR_NAVY,
SKINCOLOR_PLATINUM,
SKINCOLOR_SLATE,
SKINCOLOR_STEEL,
SKINCOLOR_THUNDER,
SKINCOLOR_RUST,
SKINCOLOR_WRISTWATCH,
SKINCOLOR_JET,
SKINCOLOR_SAPPHIRE, // sweet mother, i cannot weave - slender aphrodite has overcome me with longing for a girl
SKINCOLOR_PERIWINKLE,
SKINCOLOR_BLUE,
SKINCOLOR_BLUEBERRY,
SKINCOLOR_NOVA,
SKINCOLOR_PASTEL,
SKINCOLOR_MOONSLAM,
SKINCOLOR_ULTRAVIOLET,
SKINCOLOR_DUSK,
SKINCOLOR_BUBBLEGUM,
SKINCOLOR_PURPLE,
SKINCOLOR_FUCHSIA,
SKINCOLOR_TOXIC,
SKINCOLOR_MAUVE,
SKINCOLOR_LAVENDER,
SKINCOLOR_BYZANTIUM,
SKINCOLOR_POMEGRANATE,
SKINCOLOR_LILAC,
SKINCOLOR_BONE, // vanilla colors - shoutouts to Sonic Team Jr.
SKINCOLOR_CARBON,
SKINCOLOR_INK,
SKINCOLOR_GHOST,
SKINCOLOR_MARBLE,
SKINCOLOR_BLUEBELL,
SKINCOLOR_CHOCOLATE,
SKINCOLOR_TAN,
SKINCOLOR_PEACHY,
SKINCOLOR_QUAIL,
SKINCOLOR_LANTERN,
SKINCOLOR_APRICOT,
SKINCOLOR_SANDY,
SKINCOLOR_BANANA,
SKINCOLOR_SUNFLOWER,
SKINCOLOR_OLIVINE,
SKINCOLOR_PERIDOT,
SKINCOLOR_APPLE,
SKINCOLOR_SEAFOAM,
SKINCOLOR_FOREST,
SKINCOLOR_TOPAZ,
SKINCOLOR_FROST,
SKINCOLOR_WAVE,
SKINCOLOR_ICY,
SKINCOLOR_PEACOCK,
SKINCOLOR_VAPOR,
SKINCOLOR_GEMSTONE,
SKINCOLOR_NEON,
SKINCOLOR_PLUM,
SKINCOLOR_VIOLET,
SKINCOLOR_MAGENTA,
SKINCOLOR_THISTLE,
SKINCOLOR_DIAMOND, // custom color expansion begins here
SKINCOLOR_RAVEN,
SKINCOLOR_MUD,
SKINCOLOR_EARTHWORM,
SKINCOLOR_YOGURT,
SKINCOLOR_PEARL,
SKINCOLOR_STRAWBERRY,
SKINCOLOR_SODA,
SKINCOLOR_BLOODCELL,
SKINCOLOR_MAHOGANY,
SKINCOLOR_FIERY,
SKINCOLOR_SPICE,
SKINCOLOR_KING,
SKINCOLOR_HOTDOG,
SKINCOLOR_CARNATION,
SKINCOLOR_CANDY,
SKINCOLOR_NEBULA,
SKINCOLOR_STEAMPUNK,
SKINCOLOR_AMBER,
SKINCOLOR_CARROT,
SKINCOLOR_CHEESE,
SKINCOLOR_DUNE,
SKINCOLOR_BRASS,
SKINCOLOR_CITRINE,
SKINCOLOR_LEMON,
SKINCOLOR_CASKET,
SKINCOLOR_KHAKI,
SKINCOLOR_LIGHT,
SKINCOLOR_PEPPERMINT,
SKINCOLOR_LASER,
SKINCOLOR_ASPARAGUS,
SKINCOLOR_ARMY,
SKINCOLOR_CROW,
SKINCOLOR_CHARTEUSE,
SKINCOLOR_SLIME,
SKINCOLOR_LEAF,
SKINCOLOR_JUNGLE,
SKINCOLOR_EVERGREEN,
SKINCOLOR_TROPIC,
SKINCOLOR_IGUANA,
SKINCOLOR_SPEARMINT,
SKINCOLOR_PATINA,
SKINCOLOR_LAKESIDE,
SKINCOLOR_ELECTRIC,
SKINCOLOR_TURQUOISE,
SKINCOLOR_PEGASUS,
SKINCOLOR_PLASMA,
SKINCOLOR_COMET,
SKINCOLOR_LIGHTNING,
SKINCOLOR_VACATION,
SKINCOLOR_ULTRAMARINE,
SKINCOLOR_DEPTHS,
SKINCOLOR_DIANNE,
SKINCOLOR_EXOTIC,
SKINCOLOR_SNOW,
SKINCOLOR_MOON,
SKINCOLOR_LUNAR,
SKINCOLOR_ONYX,
SKINCOLOR_LAPIS,
SKINCOLOR_ORCA,
SKINCOLOR_STORM,
SKINCOLOR_MIDNIGHT,
SKINCOLOR_COTTONCANDY, // this color was a pain to get right
SKINCOLOR_CYBER, // this one too
SKINCOLOR_AMETHYST,
SKINCOLOR_IRIS,
SKINCOLOR_GOTHIC,
SKINCOLOR_GRAPE,
SKINCOLOR_INDIGO,
SKINCOLOR_SAKURA,
SKINCOLOR_DISCO,
SKINCOLOR_MULBERRY,
SKINCOLOR_BOYSENBERRY,
SKINCOLOR_MYSTIC,
SKINCOLOR_WICKED,
FIRSTSUPERCOLOR,
// Super special awesome Super flashing colors!
// Super Sonic Yellow
SKINCOLOR_SUPER1 = FIRSTSUPERCOLOR,
SKINCOLOR_SUPER2,
SKINCOLOR_SUPER3,
SKINCOLOR_SUPER4,
SKINCOLOR_SUPER5,
// Super Tails Orange
SKINCOLOR_TSUPER1,
SKINCOLOR_TSUPER2,
SKINCOLOR_TSUPER3,
SKINCOLOR_TSUPER4,
SKINCOLOR_TSUPER5,
// Super Knuckles Red
SKINCOLOR_KSUPER1,
SKINCOLOR_KSUPER2,
SKINCOLOR_KSUPER3,
SKINCOLOR_KSUPER4,
SKINCOLOR_KSUPER5,
// Hyper Sonic Pink
SKINCOLOR_PSUPER1,
SKINCOLOR_PSUPER2,
SKINCOLOR_PSUPER3,
SKINCOLOR_PSUPER4,
SKINCOLOR_PSUPER5,
// Hyper Sonic Blue
SKINCOLOR_BSUPER1,
SKINCOLOR_BSUPER2,
SKINCOLOR_BSUPER3,
SKINCOLOR_BSUPER4,
SKINCOLOR_BSUPER5,
// Aqua Super
SKINCOLOR_ASUPER1,
SKINCOLOR_ASUPER2,
SKINCOLOR_ASUPER3,
SKINCOLOR_ASUPER4,
SKINCOLOR_ASUPER5,
// Hyper Sonic Green
SKINCOLOR_GSUPER1,
SKINCOLOR_GSUPER2,
SKINCOLOR_GSUPER3,
SKINCOLOR_GSUPER4,
SKINCOLOR_GSUPER5,
// Hyper Sonic White
SKINCOLOR_WSUPER1,
SKINCOLOR_WSUPER2,
SKINCOLOR_WSUPER3,
SKINCOLOR_WSUPER4,
SKINCOLOR_WSUPER5,
// Creamy Super (Shadow?)
SKINCOLOR_CSUPER1,
SKINCOLOR_CSUPER2,
SKINCOLOR_CSUPER3,
SKINCOLOR_CSUPER4,
SKINCOLOR_CSUPER5,
#define _(name, ...) SKINCOLOR_##name,
#include "info/skincolors.h"
#undef _
SKINCOLOR_FIRSTFREESLOT,
SKINCOLOR_LASTFREESLOT = SKINCOLOR_FIRSTFREESLOT + NUMCOLORFREESLOTS - 1,
MAXSKINCOLORS,
FIRSTRAINBOWCOLOR = SKINCOLOR_PINK,
FIRSTSUPERCOLOR = SKINCOLOR_SUPER1,
NUMSUPERCOLORS = ((SKINCOLOR_FIRSTFREESLOT - FIRSTSUPERCOLOR)/5)
} skincolornum_t;

28776
src/info.c

File diff suppressed because it is too large Load diff

6593
src/info.h

File diff suppressed because it is too large Load diff

268
src/info/actions.h Normal file
View file

@ -0,0 +1,268 @@
_(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)
_(A_Scream, SCREAM)
_(A_BossDeath, BOSSDEATH)
_(A_RingBox, RINGBOX) // Obtained Ring Box Tails
_(A_BunnyHop, BUNNYHOP) // have bunny hop tails
_(A_BubbleSpawn, BUBBLESPAWN) // Randomly spawn bubbles
_(A_FanBubbleSpawn, FANBUBBLESPAWN)
_(A_BubbleRise, BUBBLERISE) // Bubbles float to surface
_(A_BubbleCheck, BUBBLECHECK) // Don't draw if not underwater
_(A_AwardScore, AWARDSCORE)
_(A_ScoreRise, SCORERISE) // Rise the score logo
_(A_AttractChase, ATTRACTCHASE) // Ring Chase
_(A_DropMine, DROPMINE) // Drop Mine from Skim or Jetty-Syn Bomber
_(A_FishJump, FISHJUMP) // Fish Jump
_(A_SetSolidSteam, SETSOLIDSTEAM)
_(A_UnsetSolidSteam, UNSETSOLIDSTEAM)
_(A_SignPlayer, SIGNPLAYER)
_(A_OverlayThink, OVERLAYTHINK)
_(A_JetChase, JETCHASE)
_(A_JetbThink, JETBTHINK) // Jetty-Syn Bomber Thinker
_(A_JetgThink, JETGTHINK) // Jetty-Syn Gunner Thinker
_(A_JetgShoot, JETGSHOOT) // Jetty-Syn Shoot Function
_(A_ShootBullet, SHOOTBULLET) // JetgShoot without reactiontime setting
_(A_MinusDigging, MINUSDIGGING)
_(A_MinusPopup, MINUSPOPUP)
_(A_MinusCheck, MINUSCHECK)
_(A_ChickenCheck, CHICKENCHECK)
_(A_MouseThink, MOUSETHINK) // Mouse Thinker
_(A_DetonChase, DETONCHASE) // Deton Chaser
_(A_CapeChase, CAPECHASE) // Fake little Super Sonic cape
_(A_RotateSpikeBall, ROTATESPIKEBALL) // Spike ball rotation
_(A_SlingAppear, SLINGAPPEAR)
_(A_UnidusBall, UNIDUSBALL)
_(A_RockSpawn, ROCKSPAWN)
_(A_SetFuse, SETFUSE)
_(A_CrawlaCommanderThink, CRAWLACOMMANDERTHINK) // Crawla Commander
_(A_SmokeTrailer, SMOKETRAILER)
_(A_RingExplode, RINGEXPLODE)
_(A_OldRingExplode, OLDRINGEXPLODE)
_(A_MixUp, MIXUP)
_(A_Boss1Chase, BOSS1CHASE)
_(A_FocusTarget, FOCUSTARGET)
_(A_Boss2Chase, BOSS2CHASE)
_(A_Boss2Pogo, BOSS2POGO)
_(A_BossZoom, BOSSZOOM) // Unused
_(A_BossScream, BOSSSCREAM)
_(A_Boss2TakeDamage, BOSS2TAKEDAMAGE)
_(A_Boss7Chase, BOSS7CHASE)
_(A_GoopSplat, GOOPSPLAT)
_(A_Boss2PogoSFX, BOSS2POGOSFX)
_(A_Boss2PogoTarget, BOSS2POGOTARGET)
_(A_BossJetFume, BOSSJETFUME)
_(A_EggmanBox, EGGMANBOX)
_(A_TurretFire, TURRETFIRE)
_(A_SuperTurretFire, SUPERTURRETFIRE)
_(A_TurretStop, TURRETSTOP)
_(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_SnailerThink, SNAILERTHINK)
_(A_SharpChase, SHARPCHASE)
_(A_SharpSpin, SHARPSPIN)
_(A_SharpDecel, SHARPDECEL)
_(A_CrushstaceanWalk, CRUSHSTACEANWALK)
_(A_CrushstaceanPunch, CRUSHSTACEANPUNCH)
_(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)
_(A_FireShot, FIRESHOT)
_(A_SuperFireShot, SUPERFIRESHOT)
_(A_BossFireShot, BOSSFIRESHOT)
_(A_Boss7FireMissiles, BOSS7FIREMISSILES)
_(A_Boss1Laser, BOSS1LASER)
_(A_Boss4Reverse, BOSS4REVERSE)
_(A_Boss4SpeedUp, BOSS4SPEEDUP)
_(A_Boss4Raise, BOSS4RAISE)
_(A_SparkFollow, SPARKFOLLOW)
_(A_BuzzFly, BUZZFLY)
_(A_GuardChase, GUARDCHASE)
_(A_EggShield, EGGSHIELD)
_(A_SetReactionTime, SETREACTIONTIME)
_(A_Boss1Spikeballs, BOSS1SPIKEBALLS)
_(A_Boss3TakeDamage, BOSS3TAKEDAMAGE)
_(A_Boss3Path, BOSS3PATH)
_(A_Boss3ShockThink, BOSS3SHOCKTHINK)
_(A_LinedefExecute, LINEDEFEXECUTE)
_(A_LinedefExecuteFromArg, LINEDEFEXECUTEFROMARG)
_(A_PlaySeeSound, PLAYSEESOUND)
_(A_PlayAttackSound, PLAYATTACKSOUND)
_(A_PlayActiveSound, PLAYACTIVESOUND)
_(A_SpawnObjectAbsolute, SPAWNOBJECTABSOLUTE)
_(A_SpawnObjectRelative, SPAWNOBJECTRELATIVE)
_(A_ChangeAngleRelative, CHANGEANGLERELATIVE)
_(A_ChangeAngleAbsolute, CHANGEANGLEABSOLUTE)
_(A_RollAngle, ROLLANGLE)
_(A_ChangeRollAngleRelative,CHANGEROLLANGLERELATIVE)
_(A_ChangeRollAngleAbsolute,CHANGEROLLANGLEABSOLUTE)
_(A_PlaySound, PLAYSOUND)
_(A_FindTarget, FINDTARGET)
_(A_FindTracer, FINDTRACER)
_(A_SetTics, SETTICS)
_(A_SetRandomTics, SETRANDOMTICS)
_(A_ChangeColorRelative, CHANGECOLORRELATIVE)
_(A_ChangeColorAbsolute, CHANGECOLORABSOLUTE)
_(A_Dye, DYE)
_(A_MoveRelative, MOVERELATIVE)
_(A_MoveAbsolute, MOVEABSOLUTE)
_(A_Thrust, THRUST)
_(A_ZThrust, ZTHRUST)
_(A_SetTargetsTarget, SETTARGETSTARGET)
_(A_SetObjectFlags, SETOBJECTFLAGS)
_(A_SetObjectFlags2, SETOBJECTFLAGS2)
_(A_RandomState, RANDOMSTATE)
_(A_RandomStateRange, RANDOMSTATERANGE)
_(A_StateRangeByAngle, STATERANGEBYANGLE)
_(A_StateRangeByParameter, STATERANGEBYPARAMETER)
_(A_DualAction, DUALACTION)
_(A_RemoteAction, REMOTEACTION)
_(A_ToggleFlameJet, TOGGLEFLAMEJET)
_(A_OrbitNights, ORBITNIGHTS)
_(A_GhostMe, GHOSTME)
_(A_SetObjectState, SETOBJECTSTATE)
_(A_SetObjectTypeState, SETOBJECTTYPESTATE)
_(A_KnockBack, KNOCKBACK)
_(A_PushAway, PUSHAWAY)
_(A_RingDrain, RINGDRAIN)
_(A_SplitShot, SPLITSHOT)
_(A_MissileSplit, MISSILESPLIT)
_(A_MultiShot, MULTISHOT)
_(A_InstaLoop, INSTALOOP)
_(A_Custom3DRotate, CUSTOM3DROTATE)
_(A_SearchForPlayers, SEARCHFORPLAYERS)
_(A_CheckRandom, CHECKRANDOM)
_(A_CheckTargetRings, CHECKTARGETRINGS)
_(A_CheckRings, CHECKRINGS)
_(A_CheckTotalRings, CHECKTOTALRINGS)
_(A_CheckHealth, CHECKHEALTH)
_(A_CheckRange, CHECKRANGE)
_(A_CheckHeight, CHECKHEIGHT)
_(A_CheckTrueRange, CHECKTRUERANGE)
_(A_CheckThingCount, CHECKTHINGCOUNT)
_(A_CheckAmbush, CHECKAMBUSH)
_(A_CheckCustomValue, CHECKCUSTOMVALUE)
_(A_CheckCusValMemo, CHECKCUSVALMEMO)
_(A_SetCustomValue, SETCUSTOMVALUE)
_(A_UseCusValMemo, USECUSVALMEMO)
_(A_RelayCustomValue, RELAYCUSTOMVALUE)
_(A_CusValAction, CUSVALACTION)
_(A_ForceStop, FORCESTOP)
_(A_ForceWin, FORCEWIN)
_(A_SpikeRetract, SPIKERETRACT)
_(A_InfoState, INFOSTATE)
_(A_Repeat, REPEAT)
_(A_SetScale, SETSCALE)
_(A_RemoteDamage, REMOTEDAMAGE)
_(A_HomingChase, HOMINGCHASE)
_(A_TrapShot, TRAPSHOT)
_(A_VileTarget, VILETARGET)
_(A_VileAttack, VILEATTACK)
_(A_VileFire, VILEFIRE)
_(A_BrakChase, BRAKCHASE)
_(A_BrakFireShot, BRAKFIRESHOT)
_(A_BrakLobShot, BRAKLOBSHOT)
_(A_NapalmScatter, NAPALMSCATTER)
_(A_SpawnFreshCopy, SPAWNFRESHCOPY)
_(A_FlickySpawn, FLICKYSPAWN)
_(A_FlickyCenter, FLICKYCENTER)
_(A_FlickyAim, FLICKYAIM)
_(A_FlickyFly, FLICKYFLY)
_(A_FlickySoar, FLICKYSOAR)
_(A_FlickyCoast, FLICKYCOAST)
_(A_FlickyHop, FLICKYHOP)
_(A_FlickyFlounder, FLICKYFLOUNDER)
_(A_FlickyCheck, FLICKYCHECK)
_(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
_(A_ItemPop, ITEMPOP)
_(A_JawzChase, JAWZCHASE)
_(A_JawzExplode, JAWZEXPLODE)
_(A_SPBChase, SPBCHASE)
_(A_SSMineSearch, SSMINESEARCH)
_(A_SSMineExplode, SSMINEEXPLODE)
_(A_LandMineExplode, LANDMINEEXPLODE)
_(A_BallhogExplode, BALLHOGEXPLODE)
_(A_LightningFollowPlayer, LIGHTNINGFOLLOWPLAYER)
_(A_FZBoomFlash, FZBOOMFLASH)
_(A_FZBoomSmoke, FZBOOMSMOKE)
_(A_RandomShadowFrame, RANDOMSHADOWFRAME)
_(A_RoamingShadowThinker, ROAMINGSHADOWTHINKER)
_(A_MayonakaArrow, MAYONAKAARROW)
_(A_MementosTPParticles, MEMENTOSTPPARTICLES)
_(A_ReaperThinker, REAPERTHINKER)
_(A_DeathSpin, DEATHSPIN)

1070
src/info/mobjs.h Normal file

File diff suppressed because it is too large Load diff

272
src/info/skincolors.h Normal file
View file

@ -0,0 +1,272 @@
_(NONE)
_(WHITE)
_(SILVER)
_(GREY)
_(NICKEL)
_(BLACK)
_(SKUNK)
_(FAIRY)
_(POPCORN)
_(ARTICHOKE)
_(PIGEON)
_(SEPIA)
_(BEIGE)
_(WALNUT)
_(BROWN)
_(LEATHER)
_(SALMON)
_(PINK)
_(ROSE)
_(BRICK)
_(CINNAMON)
_(RUBY)
_(RASPBERRY)
_(CHERRY)
_(RED)
_(CRIMSON)
_(MAROON)
_(LEMONADE)
_(FLAME)
_(SCARLET)
_(KETCHUP)
_(DAWN)
_(SUNSET)
_(CREAMSICLE)
_(ORANGE)
_(PUMPKIN)
_(ROSEWOOD)
_(BURGUNDY)
_(TANGERINE)
_(PEACH)
_(CARAMEL)
_(CREAM)
_(GOLD)
_(ROYAL)
_(BRONZE)
_(COPPER)
_(QUARRY)
_(YELLOW)
_(MUSTARD)
_(CROCODILE)
_(OLIVE)
_(VOMIT)
_(GARDEN)
_(LIME)
_(HANDHELD)
_(TEA)
_(PISTACHIO)
_(MOSS)
_(CAMOUFLAGE)
_(ROBOHOOD)
_(MINT)
_(GREEN)
_(PINETREE)
_(EMERALD)
_(SWAMP)
_(DREAM)
_(PLAGUE)
_(ALGAE)
_(CARIBBEAN)
_(AZURE)
_(AQUA)
_(TEAL)
_(CYAN)
_(JAWZ) // Oni's torment
_(CERULEAN)
_(NAVY)
_(PLATINUM)
_(SLATE)
_(STEEL)
_(THUNDER)
_(RUST)
_(WRISTWATCH)
_(JET)
_(SAPPHIRE) // sweet mother, i cannot weave - slender aphrodite has overcome me with longing for a girl
_(PERIWINKLE)
_(BLUE)
_(BLUEBERRY)
_(NOVA)
_(PASTEL)
_(MOONSLAM)
_(ULTRAVIOLET)
_(DUSK)
_(BUBBLEGUM)
_(PURPLE)
_(FUCHSIA)
_(TOXIC)
_(MAUVE)
_(LAVENDER)
_(BYZANTIUM)
_(POMEGRANATE)
_(LILAC)
_(BONE) // vanilla colors - shoutouts to Sonic Team Jr.
_(CARBON)
_(INK)
_(GHOST)
_(MARBLE)
_(BLUEBELL)
_(CHOCOLATE)
_(TAN)
_(PEACHY)
_(QUAIL)
_(LANTERN)
_(APRICOT)
_(SANDY)
_(BANANA)
_(SUNFLOWER)
_(OLIVINE)
_(PERIDOT)
_(APPLE)
_(SEAFOAM)
_(FOREST)
_(TOPAZ)
_(FROST)
_(WAVE)
_(ICY)
_(PEACOCK)
_(VAPOR)
_(GEMSTONE)
_(NEON)
_(PLUM)
_(VIOLET)
_(MAGENTA)
_(THISTLE)
_(DIAMOND) // custom color expansion begins here
_(RAVEN)
_(MUD)
_(EARTHWORM)
_(YOGURT)
_(PEARL)
_(STRAWBERRY)
_(SODA)
_(BLOODCELL)
_(MAHOGANY)
_(FIERY)
_(SPICE)
_(KING)
_(HOTDOG)
_(CARNATION)
_(CANDY)
_(NEBULA)
_(STEAMPUNK)
_(AMBER)
_(CARROT)
_(CHEESE)
_(DUNE)
_(BRASS)
_(CITRINE)
_(LEMON)
_(CASKET)
_(KHAKI)
_(LIGHT)
_(PEPPERMINT)
_(LASER)
_(ASPARAGUS)
_(ARMY)
_(CROW)
_(CHARTEUSE)
_(SLIME)
_(LEAF)
_(JUNGLE)
_(EVERGREEN)
_(TROPIC)
_(IGUANA)
_(SPEARMINT)
_(PATINA)
_(LAKESIDE)
_(ELECTRIC)
_(TURQUOISE)
_(PEGASUS)
_(PLASMA)
_(COMET)
_(LIGHTNING)
_(VACATION)
_(ULTRAMARINE)
_(DEPTHS)
_(DIANNE)
_(EXOTIC)
_(SNOW)
_(MOON)
_(LUNAR)
_(ONYX)
_(LAPIS)
_(ORCA)
_(STORM)
_(MIDNIGHT)
_(COTTONCANDY) // this color was a pain to get right
_(CYBER) // this one too
_(AMETHYST)
_(IRIS)
_(GOTHIC)
_(GRAPE)
_(INDIGO)
_(SAKURA)
_(DISCO)
_(MULBERRY)
_(BOYSENBERRY)
_(MYSTIC)
_(WICKED)
// Super special awesome Super flashing colors!
// Super Sonic Yellow
_(SUPER1)
_(SUPER2)
_(SUPER3)
_(SUPER4)
_(SUPER5)
// Super Tails Orange
_(TSUPER1)
_(TSUPER2)
_(TSUPER3)
_(TSUPER4)
_(TSUPER5)
// Super Knuckles Red
_(KSUPER1)
_(KSUPER2)
_(KSUPER3)
_(KSUPER4)
_(KSUPER5)
// Hyper Sonic Pink
_(PSUPER1)
_(PSUPER2)
_(PSUPER3)
_(PSUPER4)
_(PSUPER5)
// Hyper Sonic Blue
_(BSUPER1)
_(BSUPER2)
_(BSUPER3)
_(BSUPER4)
_(BSUPER5)
// Aqua Super
_(ASUPER1)
_(ASUPER2)
_(ASUPER3)
_(ASUPER4)
_(ASUPER5)
// Hyper Sonic Green
_(GSUPER1)
_(GSUPER2)
_(GSUPER3)
_(GSUPER4)
_(GSUPER5)
// Hyper Sonic White
_(WSUPER1)
_(WSUPER2)
_(WSUPER3)
_(WSUPER4)
_(WSUPER5)
// Creamy Super (Shadow?)
_(CSUPER1)
_(CSUPER2)
_(CSUPER3)
_(CSUPER4)
_(CSUPER5)

1199
src/info/sounds.h Normal file

File diff suppressed because it is too large Load diff

24
src/info/sprite2.h Normal file
View file

@ -0,0 +1,24 @@
// Make sure to be conscious of FF_FRAMEMASK and the fact sprite2 is stored as a UINT8 whenever you change this table.
// Currently, FF_FRAMEMASK is 0xff, or 255 - but the second half is used by FF_SPR2SUPER, so the limitation is 0x7f.
// Since this is zero-based, there can be at most 128 different SPR2_'s without changing that.
_(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) // Finish signpost
_(XTRA) // Three Faces of Darkness

717
src/info/sprites.h Normal file
View file

@ -0,0 +1,717 @@
// Hey, moron! If you change this table, you can actually forget about sprnames in info.c,
// because it uses this macro below and does not need to be touched if you alter any sprites :^)
_(NULL) // invisible object
_(NONE) // invisible but still rendered
_(UNKN)
_(THOK) // Thok! mobj
_(PLAY)
_(KART)
_(TIRE)
// Enemies
_(POSS) // Crawla (Blue)
_(SPOS) // Crawla (Red)
_(FISH) // SDURF
_(BUZZ) // Buzz (Gold)
_(RBUZ) // Buzz (Red)
_(JETB) // Jetty-Syn Bomber
_(JETG) // Jetty-Syn Gunner
_(CCOM) // Crawla Commander
_(DETN) // Deton
_(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
// Boss 1 (Greenflower)
_(EGGM) // Boss 1
_(EGLZ) // Boss 1 Junk
// Boss 2 (Techno Hill)
_(EGGN) // Boss 2
_(TANK) // Boss 2 Junk
_(GOOP) // Boss 2 Goop
// Boss 3 (Deep Sea)
_(EGGO) // Boss 3
_(SEBH) // Boss 3 Junk
_(FAKE) // Boss 3 Fakemobile
_(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)
// Boss 6 (Red Volcano)
_(EGGR)
// Boss 7 (Dark City)
_(BRAK)
_(BGOO) // Goop
_(BMSL)
// Boss 8 (Egg Rock)
_(EGGT)
// Cy-Brak-Demon; uses SPR_BRAK as well, but has some extras
_(RCKT) // Rockets!
_(ELEC) // Electricity!
_(TARG) // Targeting reticules!
_(NPLM) // Big napalm bombs!
_(MNPL) // Mini napalm bombs!
// Metal Sonic
_(METL)
_(MSCF)
_(MSCB)
// Collectible Items
_(RING)
_(TRNG) // Team Rings
_(TOKE) // Special Stage Token
_(RFLG) // Red CTF Flag
_(BFLG) // Blue CTF Flag
_(BSPH) // Sphere
_(NCHP) // NiGHTS chip
_(NSTR) // NiGHTS star
_(EMBM) // Emblem
_(CEMG) // Chaos Emeralds
_(SHRD) // Emerald Hunt
// Interactive Objects
_(BBLS) // water bubble source
_(SIGN) // Level end sign
_(SPIK) // Spike Ball
_(SFLM) // Spin fire
_(TFLM) // Spin fire (team)
_(USPK) // Floor spike
_(WSPK) // Wall spike
_(WSPB) // Wall spike base
_(STPT) // Starpost
_(BMNE) // Big floating mine
_(PUMI) // Rollout Rock
// Monitor Boxes
_(MSTV) // MiSc TV sprites
_(XLTV) // eXtra Large TV sprites
_(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)
// Projectiles
_(MISL)
_(LASR) // GFZ3 laser
_(LASF) // GFZ3 laser flames
_(TORP) // Torpedo
_(ENRG) // Energy ball
_(MINE) // Skim mine
_(JBUL) // Jetty-Syn Bullet
_(TRLS)
_(CBLL) // Cannonball
_(AROW) // Arrow
_(CFIR) // Colored fire of various sorts
// The letter
_(LETR)
// 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
_(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
// Egg Rock Scenery
// Christmas Scenery
_(XMS1) // Christmas Pole
_(XMS2) // Candy Cane
_(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
// Botanic Serenity Scenery
_(BSZ1) // Tall flowers
_(BSZ2) // Medium flowers
_(BSZ3) // Small flowers
_(BSZ4) // Tulip
_(BSZ5) // Cluster of Tulips
_(BSZ6) // Bush
_(BSZ7) // Vine
_(BSZ8) // Misc things
// Misc Scenery
_(STLG) // Stalagmites
_(DBAL) // Disco
// Powerup Indicators
_(ARMA) // Armageddon Shield Orb
_(ARMF) // Armageddon Shield Ring, Front
_(ARMB) // Armageddon Shield Ring, Back
_(WIND) // Whirlwind Shield Orb
_(MAGN) // Attract Shield Orb
_(ELEM) // Elemental Shield Orb
_(FORC) // Force Shield Orb
_(PITY) // Pity Shield Orb
_(FIRS) // Flame Shield Orb
//_(BUBS) // Bubble Shield Orb
_(ZAPS) // Thunder Shield Orb
_(IVSP) // invincibility sparkles
_(SSPK) // Super Sonic Spark
_(GOAL) // Special Stage goal (here because lol NiGHTS)
// 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
_(FANS) // Fan
_(STEM) // Steam riser
_(BMPR) // Bumpers
_(BLON) // Balloons
_(SPRY) // Yellow Vertical Spring
_(SPRR) // Red Vertical Spring
_(SPRB) // Blue Vertical Spring
_(SPRG) // Grey Vertical Spring
_(YSPR) // Yellow Diagonal Spring
_(RSPR) // Red Diagonal Spring
_(BSPR) // Blue Diagonal Spring
_(GSPR) // Grey Diagonal Spring
_(SSWY) // Yellow Horizontal Spring
_(SSWR) // Red Horizontal Spring
_(SSWB) // Blue Horizontal Spring
_(SSWG) // Grey Horizontal Spring
_(BSTY) // Yellow Booster
_(BSTR) // Red Booster
// 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)
_(TFOG) // Teleport Fog
_(SEED) // Sonic CD flower seed
_(PRTL) // Particle (for fans, etc.)
// Game Indicators
_(SCOR) // Score logo
_(DRWN) // Drowning Timer
_(FLII) // AI flight indicator
_(LCKN) // Target
_(TTAG) // Tag Sign
_(GFLG) // Got Flag sign
_(FNSF) // Finish flag
_(CORK)
_(LHRT)
// Ring Weapons
_(RRNG) // Red Ring
_(RNGB) // Bounce Ring
_(RNGR) // Rail Ring
_(RNGI) // Infinity Ring
_(RNGA) // Automatic Ring
_(RNGE) // Explosion Ring
_(RNGS) // Scatter Ring
_(RNGG) // Grenade Ring
_(PIKB) // Bounce Ring Pickup
_(PIKR) // Rail Ring Pickup
_(PIKA) // Automatic Ring Pickup
_(PIKE) // Explosion Ring Pickup
_(PIKS) // Scatter Ring Pickup
_(PIKG) // Grenade Ring Pickup
_(TAUT) // Thrown Automatic Ring
_(TGRE) // Thrown Grenade Ring
_(TSCR) // Thrown Scatter Ring
// Mario-specific stuff
_(COIN)
_(CPRK)
_(GOOM)
_(BGOM)
_(FFWR)
_(FBLL)
_(SHLL)
_(PUMA)
_(HAMM)
_(KOOP)
_(BFLM)
_(MAXE)
_(MUS1)
_(MUS2)
_(TOAD)
// NiGHTS Stuff
_(NDRN) // NiGHTS drone
_(NSPK) // NiGHTS sparkle
_(NBMP) // NiGHTS Bumper
_(HOOP) // NiGHTS hoop sprite
_(NSCR) // NiGHTS score sprite
_(NWNG) // NIGHTS Wing
_(NPRU) // Nights Powerups
_(CAPS) // Capsule thingy for NiGHTS
_(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
_(BOM2) // Boss Explosion 1
_(BOM3) // Boss Explosion 2
_(BOM4) // Underwater Explosion
_(BMNB) // Mine Explosion
// 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
_(BRIR) // CEZ3 colored bricks
_(BRIB)
_(BRIY)
// Gravity Well Objects
_(GWLG)
_(GWLR)
// SRB2Kart
_(RNDM) // Random Item Box
_(RPOP) // Random Item Box Pop
_(SGNS) // Signpost sparkle
_(FAST) // Speed boost trail
_(DSHR) // Speed boost dust release
_(BOST) // Sneaker booster flame
_(DRPO) // Drift 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
_(WIPD) // Wipeout dust trail
_(DRIF) // Drift Sparks
_(BDRF) // Brake drift sparks
// Kart Items
_(RSHE) // Rocket sneaker
_(FITM) // Eggman Monitor
_(BANA) // Banana Peel
_(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
_(THNS) // Thunder 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
_(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
_(DEZL) // DEZ Laser respawn
// Additional Kart Objects
_(POKE) // Pokey
_(AUDI) // Audience members
_(DECO) // Old 1.0 Kart Decoratives + New misc ones
_(DOOD) // All the old D00Dkart objects
_(SNES) // Sprites for SNES remake maps
_(GBAS) // Sprites for GBA remake maps
_(SPRS) // Sapphire Coast Spring Shell
_(BUZB) // Sapphire Coast Buzz Mk3
_(CHOM) // Sapphire Coast Chomper
_(SACO) // Sapphire Coast Fauna
_(CRAB) // Crystal Abyss mobs
_(BRNG) // Chaotix Big Ring
_(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
_(ARRO) // player arrows
_(ITEM)
_(ITMO)
_(ITMI)
_(ITMN)
_(WANT)
_(PBOM) // player bomb
_(HIT1) // battle points
_(HIT2) // battle points
_(HIT3) // battle points
_(RETI) // player reticule
_(AIDU)
_(KSPK) // Spark radius for the thunder shield
_(LZI1) // Lightning that falls on the player for thunder shield
_(LZI2) // ditto
_(KLIT) // You have a twisted mind. But this actually is for the diagonal lightning.
_(FZSM) // F-Zero NO CONTEST explosion
_(FZBM)
// Various plants
_(SBUS)
_(MARB) // Marble Zone sprites
_(FUFO) // CD Special Stage UFO (don't ask me why it begins with an F)
_(RUST) // Rusty Rig sprites
_(VAPE) // Volcanic Valley
// Hill Top Zone
_(HTZA)
_(HTZB)
// Ports of gardens
_(SGVA)
_(SGVB)
_(SGVC)
_(PGTR)
_(PGF1)
_(PGF2)
_(PGF3)
_(PGBH)
_(DPLR)
// Midnight Channel stuff:
_(SPTL) // Spotlight
_(ENM1) // Shadows (Roaming and static)
_(GARU) // Wind attack roaming shadows use.
_(MARR) // Mayonaka Arrow
// Mementos stuff:
_(REAP)
_(JITB) // Jack In The Box
// Color Drive stuff:
_(CDMO)
_(CDBU)
// Daytona Speedway
_(DPIN)
// Egg Zeppelin
_(PPLR)
// Desert Palace
_(DPPT)
// Aurora Atoll
_(AATR)
_(COCO)
// Barren Badlands
_(BDST)
_(FROG)
_(CBRA)
_(HOLE)
_(BBRA)
// Eerie Grove
_(EGFG)
// SMK ports
_(SMKP)
_(MTYM)
_(THWP)
_(SNOB)
_(ICEB)
// Ezo's maps - many single-use sprites!
_(ECND)
_(DOCH)
_(DUCK)
_(GTRE)
_(CHES)
_(CHIM)
_(DRGN)
_(LZMN)
_(PGSS)
_(ZTCH)
_(MKMA)
_(MKMP)
_(RTCH)
_(BOWL)
_(BOWH)
_(BRRL)
_(BRRR)
_(HRSE)
_(TOAH)
_(BFRT)
_(OFRT)
_(RFRT)
_(PFRT)
_(ASPK)
_(HBST)
_(HBSO)
_(HBSF)
_(WBLZ)
_(WBLN)
// Opulence
_(OPUL)
_(TGEM)
_(TCOI)
_(FWRK)
_(MXCL)
_(LENS)
_(GRES)
_(WAYP)
_(EGOO)
_(WTRL) // Water Trail
_(GCHA) // follower: generic chao
_(CHEZ) // follower: cheese
_(TRCK)
// First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later
_(VIEW)

4229
src/info/states.h Normal file

File diff suppressed because it is too large Load diff

View file

@ -58,280 +58,6 @@ static dirtype_t diags[] =
DI_NORTHWEST, DI_NORTHEAST, DI_SOUTHWEST, DI_SOUTHEAST
};
//Real Prototypes to A_*
void A_Fall(mobj_t *actor);
void A_Look(mobj_t *actor);
void A_Chase(mobj_t *actor);
void A_FaceStabChase(mobj_t *actor);
void A_FaceStabRev(mobj_t *actor);
void A_FaceStabHurl(mobj_t *actor);
void A_FaceStabMiss(mobj_t *actor);
void A_StatueBurst(mobj_t *actor);
void A_JetJawRoam(mobj_t *actor);
void A_JetJawChomp(mobj_t *actor);
void A_PointyThink(mobj_t *actor);
void A_CheckBuddy(mobj_t *actor);
void A_HoodFire(mobj_t *actor);
void A_HoodThink(mobj_t *actor);
void A_HoodFall(mobj_t *actor);
void A_ArrowBonks(mobj_t *actor);
void A_SnailerThink(mobj_t *actor);
void A_SharpChase(mobj_t *actor);
void A_SharpSpin(mobj_t *actor);
void A_SharpDecel(mobj_t *actor);
void A_CrushstaceanWalk(mobj_t *actor);
void A_CrushstaceanPunch(mobj_t *actor);
void A_CrushclawAim(mobj_t *actor);
void A_CrushclawLaunch(mobj_t *actor);
void A_VultureVtol(mobj_t *actor);
void A_VultureCheck(mobj_t *actor);
void A_VultureHover(mobj_t *actor);
void A_VultureBlast(mobj_t *actor);
void A_VultureFly(mobj_t *actor);
void A_SkimChase(mobj_t *actor);
void A_FaceTarget(mobj_t *actor);
void A_FaceTracer(mobj_t *actor);
void A_LobShot(mobj_t *actor);
void A_FireShot(mobj_t *actor);
void A_SuperFireShot(mobj_t *actor);
void A_BossFireShot(mobj_t *actor);
void A_Boss7FireMissiles(mobj_t *actor);
void A_Boss1Laser(mobj_t *actor);
void A_FocusTarget(mobj_t *actor);
void A_Boss4Reverse(mobj_t *actor);
void A_Boss4SpeedUp(mobj_t *actor);
void A_Boss4Raise(mobj_t *actor);
void A_SkullAttack(mobj_t *actor);
void A_BossZoom(mobj_t *actor);
void A_BossScream(mobj_t *actor);
void A_Scream(mobj_t *actor);
void A_Pain(mobj_t *actor);
void A_Explode(mobj_t *actor);
void A_BossDeath(mobj_t *actor);
void A_RingBox(mobj_t *actor);
void A_AwardScore(mobj_t *actor);
void A_ScoreRise(mobj_t *actor);
void A_BunnyHop(mobj_t *actor);
void A_BubbleSpawn(mobj_t *actor);
void A_FanBubbleSpawn(mobj_t *actor);
void A_BubbleRise(mobj_t *actor);
void A_BubbleCheck(mobj_t *actor);
void A_AttractChase(mobj_t *actor);
void A_DropMine(mobj_t *actor);
void A_FishJump(mobj_t *actor);
void A_SetSolidSteam(mobj_t *actor);
void A_UnsetSolidSteam(mobj_t *actor);
void A_SignPlayer(mobj_t *actor);
void A_OverlayThink(mobj_t *actor);
void A_JetChase(mobj_t *actor);
void A_JetbThink(mobj_t *actor);
void A_JetgShoot(mobj_t *actor);
void A_JetgThink(mobj_t *actor);
void A_ShootBullet(mobj_t *actor);
void A_MinusDigging(mobj_t *actor);
void A_MinusPopup(mobj_t *actor);
void A_MinusCheck(mobj_t *actor);
void A_ChickenCheck(mobj_t *actor);
void A_MouseThink(mobj_t *actor);
void A_DetonChase(mobj_t *actor);
void A_CapeChase(mobj_t *actor);
void A_RotateSpikeBall(mobj_t *actor);
void A_SlingAppear(mobj_t *actor);
void A_UnidusBall(mobj_t *actor);
void A_RockSpawn(mobj_t *actor);
void A_SetFuse(mobj_t *actor);
void A_CrawlaCommanderThink(mobj_t *actor);
void A_RingExplode(mobj_t *actor);
void A_OldRingExplode(mobj_t *actor);
void A_MixUp(mobj_t *actor);
void A_Boss2TakeDamage(mobj_t *actor);
void A_Boss7Chase(mobj_t *actor);
void A_GoopSplat(mobj_t *actor);
void A_Boss2PogoSFX(mobj_t *actor);
void A_Boss2PogoTarget(mobj_t *actor);
void A_EggmanBox(mobj_t *actor);
void A_TurretFire(mobj_t *actor);
void A_SuperTurretFire(mobj_t *actor);
void A_TurretStop(mobj_t *actor);
void A_SparkFollow(mobj_t *actor);
void A_BuzzFly(mobj_t *actor);
void A_GuardChase(mobj_t *actor);
void A_EggShield(mobj_t *actor);
void A_SetReactionTime(mobj_t *actor);
void A_Boss1Spikeballs(mobj_t *actor);
void A_Boss3TakeDamage(mobj_t *actor);
void A_Boss3Path(mobj_t *actor);
void A_Boss3ShockThink(mobj_t *actor);
void A_LinedefExecute(mobj_t *actor);
void A_LinedefExecuteFromArg(mobj_t *actor);
void A_PlaySeeSound(mobj_t *actor);
void A_PlayAttackSound(mobj_t *actor);
void A_PlayActiveSound(mobj_t *actor);
void A_SmokeTrailer(mobj_t *actor);
void A_SpawnObjectAbsolute(mobj_t *actor);
void A_SpawnObjectRelative(mobj_t *actor);
void A_ChangeAngleRelative(mobj_t *actor);
void A_ChangeAngleAbsolute(mobj_t *actor);
void A_RollAngle(mobj_t *actor);
void A_ChangeRollAngleRelative(mobj_t *actor);
void A_ChangeRollAngleAbsolute(mobj_t *actor);
void A_PlaySound(mobj_t *actor);
void A_FindTarget(mobj_t *actor);
void A_FindTracer(mobj_t *actor);
void A_SetTics(mobj_t *actor);
void A_SetRandomTics(mobj_t *actor);
void A_ChangeColorRelative(mobj_t *actor);
void A_ChangeColorAbsolute(mobj_t *actor);
void A_Dye(mobj_t *actor);
void A_MoveRelative(mobj_t *actor);
void A_MoveAbsolute(mobj_t *actor);
void A_Thrust(mobj_t *actor);
void A_ZThrust(mobj_t *actor);
void A_SetTargetsTarget(mobj_t *actor);
void A_SetObjectFlags(mobj_t *actor);
void A_SetObjectFlags2(mobj_t *actor);
void A_RandomState(mobj_t *actor);
void A_RandomStateRange(mobj_t *actor);
void A_StateRangeByAngle(mobj_t *actor);
void A_StateRangeByParameter(mobj_t *actor);
void A_DualAction(mobj_t *actor);
void A_RemoteAction(mobj_t *actor);
void A_ToggleFlameJet(mobj_t *actor);
void A_OrbitNights(mobj_t *actor);
void A_GhostMe(mobj_t *actor);
void A_SetObjectState(mobj_t *actor);
void A_SetObjectTypeState(mobj_t *actor);
void A_KnockBack(mobj_t *actor);
void A_PushAway(mobj_t *actor);
void A_RingDrain(mobj_t *actor);
void A_SplitShot(mobj_t *actor);
void A_MissileSplit(mobj_t *actor);
void A_MultiShot(mobj_t *actor);
void A_InstaLoop(mobj_t *actor);
void A_Custom3DRotate(mobj_t *actor);
void A_SearchForPlayers(mobj_t *actor);
void A_CheckRandom(mobj_t *actor);
void A_CheckTargetRings(mobj_t *actor);
void A_CheckRings(mobj_t *actor);
void A_CheckTotalRings(mobj_t *actor);
void A_CheckHealth(mobj_t *actor);
void A_CheckRange(mobj_t *actor);
void A_CheckHeight(mobj_t *actor);
void A_CheckTrueRange(mobj_t *actor);
void A_CheckThingCount(mobj_t *actor);
void A_CheckAmbush(mobj_t *actor);
void A_CheckCustomValue(mobj_t *actor);
void A_CheckCusValMemo(mobj_t *actor);
void A_SetCustomValue(mobj_t *actor);
void A_UseCusValMemo(mobj_t *actor);
void A_RelayCustomValue(mobj_t *actor);
void A_CusValAction(mobj_t *actor);
void A_ForceStop(mobj_t *actor);
void A_ForceWin(mobj_t *actor);
void A_SpikeRetract(mobj_t *actor);
void A_InfoState(mobj_t *actor);
void A_Repeat(mobj_t *actor);
void A_SetScale(mobj_t *actor);
void A_RemoteDamage(mobj_t *actor);
void A_HomingChase(mobj_t *actor);
void A_TrapShot(mobj_t *actor);
void A_Boss1Chase(mobj_t *actor);
void A_Boss2Chase(mobj_t *actor);
void A_Boss2Pogo(mobj_t *actor);
void A_BossJetFume(mobj_t *actor);
void A_VileTarget(mobj_t *actor);
void A_VileAttack(mobj_t *actor);
void A_VileFire(mobj_t *actor);
void A_BrakChase(mobj_t *actor);
void A_BrakFireShot(mobj_t *actor);
void A_BrakLobShot(mobj_t *actor);
void A_NapalmScatter(mobj_t *actor);
void A_SpawnFreshCopy(mobj_t *actor);
void A_FlickySpawn(mobj_t *actor);
void A_FlickyCenter(mobj_t *actor);
void A_FlickyAim(mobj_t *actor);
void A_FlickyFly(mobj_t *actor);
void A_FlickySoar(mobj_t *actor);
void A_FlickyCoast(mobj_t *actor);
void A_FlickyHop(mobj_t *actor);
void A_FlickyFlounder(mobj_t *actor);
void A_FlickyCheck(mobj_t *actor);
void A_FlickyHeightCheck(mobj_t *actor);
void A_FlickyFlutter(mobj_t *actor);
void A_FlameParticle(mobj_t *actor);
void A_FadeOverlay(mobj_t *actor);
void A_Boss5Jump(mobj_t *actor);
void A_LightBeamReset(mobj_t *actor);
void A_MineExplode(mobj_t *actor);
void A_MineRange(mobj_t *actor);
void A_ConnectToGround(mobj_t *actor);
void A_SpawnParticleRelative(mobj_t *actor);
void A_ParticleSpawn(mobj_t *actor);
void A_MultiShotDist(mobj_t *actor);
void A_WhoCaresIfYourSonIsABee(mobj_t *actor);
void A_ParentTriesToSleep(mobj_t *actor);
void A_CryingToMomma(mobj_t *actor);
void A_CheckFlags2(mobj_t *actor);
void A_Boss5FindWaypoint(mobj_t *actor);
void A_DoNPCSkid(mobj_t *actor);
void A_DoNPCPain(mobj_t *actor);
void A_PrepareRepeat(mobj_t *actor);
void A_Boss5ExtraRepeat(mobj_t *actor);
void A_Boss5Calm(mobj_t *actor);
void A_Boss5CheckOnGround(mobj_t *actor);
void A_Boss5CheckFalling(mobj_t *actor);
void A_Boss5PinchShot(mobj_t *actor);
void A_Boss5MakeItRain(mobj_t *actor);
void A_Boss5MakeJunk(mobj_t *actor);
void A_LookForBetter(mobj_t *actor);
void A_Boss5BombExplode(mobj_t *actor);
void A_TNTExplode(mobj_t *actor);
void A_DebrisRandom(mobj_t *actor);
void A_TrainCameo(mobj_t *actor);
void A_TrainCameo2(mobj_t *actor);
void A_CanarivoreGas(mobj_t *actor);
void A_KillSegments(mobj_t *actor);
void A_SnapperSpawn(mobj_t *actor);
void A_SnapperThinker(mobj_t *actor);
void A_SaloonDoorSpawn(mobj_t *actor);
void A_MinecartSparkThink(mobj_t *actor);
void A_ModuloToState(mobj_t *actor);
void A_LavafallRocks(mobj_t *actor);
void A_LavafallLava(mobj_t *actor);
void A_FallingLavaCheck(mobj_t *actor);
void A_FireShrink(mobj_t *actor);
void A_SpawnPterabytes(mobj_t *actor);
void A_PterabyteHover(mobj_t *actor);
void A_RolloutSpawn(mobj_t *actor);
void A_RolloutRock(mobj_t *actor);
void A_DragonbomberSpawn(mobj_t *actor);
void A_DragonWing(mobj_t *actor);
void A_DragonSegment(mobj_t *actor);
void A_ChangeHeight(mobj_t *actor);
//
// SRB2Kart
//
void A_ItemPop(mobj_t *actor);
void A_JawzChase(mobj_t *actor);
void A_JawzExplode(mobj_t *actor);
void A_SPBChase(mobj_t *actor);
void A_SSMineSearch(mobj_t *actor);
void A_SSMineExplode(mobj_t *actor);
void A_LandMineExplode(mobj_t *actor);
void A_BallhogExplode(mobj_t *actor);
void A_LightningFollowPlayer(mobj_t *actor);
void A_FZBoomFlash(mobj_t *actor);
void A_FZBoomSmoke(mobj_t *actor);
void A_RandomShadowFrame(mobj_t *actor);
void A_RoamingShadowThinker(mobj_t *actor);
void A_MayonakaArrow(mobj_t *actor);
void A_ReaperThinker(mobj_t *actor);
void A_MementosTPParticles(mobj_t *actor);
void A_DeathSpin(mobj_t *actor);
//for p_enemy.c
//
// ENEMY THINKING
// Enemies are always spawned with targetplayer = -1, threshold = 0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff