Assorted Changes 2
Restored old titlescreen, generally made the game closer to v1 gameplay wise and visual wise
This commit is contained in:
parent
ec09f8a7e5
commit
f611554cbc
22 changed files with 406 additions and 2029 deletions
|
|
@ -420,7 +420,6 @@ typedef struct player_s
|
|||
SINT8 drift; // (-5 to 5) - Drifting Left or Right, plus a bigger counter = sharper turn
|
||||
fixed_t driftcharge; // Charge your drift so you can release a burst of speed
|
||||
UINT8 driftboost; // (0 to 125) - Boost you get from drifting
|
||||
UINT8 strongdriftboost; // (0 to 125) - While active, boost from drifting gives a stronger speed increase
|
||||
|
||||
SINT8 aizdriftstrat; // (-1 to 1) - Let go of your drift while boosting? Helper for the SICK STRATZ (sliptiding!) you have just unlocked
|
||||
INT32 aizdrifttilt;
|
||||
|
|
@ -440,18 +439,13 @@ typedef struct player_s
|
|||
UINT8 spindashboost; // Spindash release boost timer
|
||||
|
||||
fixed_t fastfall; // Fast fall momentum
|
||||
|
||||
UINT8 numboosts; // Count of how many boosts are being stacked, for after image spawning
|
||||
|
||||
fixed_t boostpower; // Base boost value, for offroad
|
||||
fixed_t speedboost; // Boost value smoothing for max speed
|
||||
fixed_t accelboost; // Boost value smoothing for acceleration
|
||||
fixed_t handleboost; // Boost value smoothing for handling
|
||||
angle_t boostangle; // angle set when not spun out OR boosted to determine what direction you should keep going at if you're spun out and boosted.
|
||||
|
||||
fixed_t draftpower; // (0 to FRACUNIT) - Drafting power, doubles your top speed & acceleration at max
|
||||
UINT16 draftleeway; // Leniency timer before removing draft power
|
||||
SINT8 lastdraft; // (-1 to 15) - Last player being drafted
|
||||
|
||||
UINT8 tripwireState; // see tripwirestate_t
|
||||
UINT8 tripwirePass; // see tripwirepass_t
|
||||
UINT16 tripwireLeniency; // When reaching a state that lets you go thru tripwire, you get an extra second leniency after it ends to still go through it.
|
||||
|
|
@ -487,7 +481,6 @@ typedef struct player_s
|
|||
mobj_t *hoverhyudoro; // First hyudoro hovering next to player
|
||||
|
||||
UINT16 sneakertimer; // Duration of a Sneaker Boost (from Sneakers or level boosters)
|
||||
UINT8 numsneakers; // Number of stacked sneaker effects
|
||||
UINT8 floorboost; // (0 to 3) - Prevents Sneaker sounds for a brief duration when triggered by a floor panel
|
||||
|
||||
UINT8 boostcharge; // Charge during race start
|
||||
|
|
|
|||
|
|
@ -2343,10 +2343,8 @@ void readmenu(MYFILE *f, INT32 num)
|
|||
menupres[num].ttname[0] = 0;
|
||||
menupres[num].hidetitlepics = true;
|
||||
}
|
||||
else if (fastcmp(word2, "RINGRACERS"))
|
||||
menupres[num].ttmode = TTMODE_RINGRACERS;
|
||||
else if (fastcmp(word2, "OLD"))
|
||||
menupres[num].ttmode = TTMODE_OLD;
|
||||
else if (fastcmp(word2, "KART"))
|
||||
menupres[num].ttmode = TTMODE_KART;
|
||||
titlechanged = true;
|
||||
}
|
||||
else if (fastcmp(word, "TITLEPICSSCALE"))
|
||||
|
|
@ -3438,10 +3436,8 @@ void readmaincfg(MYFILE *f)
|
|||
ttname[0] = 0;
|
||||
hidetitlepics = true;
|
||||
}
|
||||
else if (fastcmp(word2, "RINGRACERS"))
|
||||
ttmode = TTMODE_RINGRACERS;
|
||||
else if (fastcmp(word2, "OLD") || fastcmp(word2, "SSNTAILS"))
|
||||
ttmode = TTMODE_OLD;
|
||||
else if (fastcmp(word2, "KART"))
|
||||
ttmode = TTMODE_KART;
|
||||
titlechanged = true;
|
||||
}
|
||||
else if (fastcmp(word, "TITLEPICSNAME"))
|
||||
|
|
|
|||
|
|
@ -3324,16 +3324,6 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
|||
"S_DRIFTDUST3",
|
||||
"S_DRIFTDUST4",
|
||||
|
||||
// Drift Sparkles
|
||||
"S_DRIFTWARNSPARK1",
|
||||
"S_DRIFTWARNSPARK2",
|
||||
"S_DRIFTWARNSPARK3",
|
||||
"S_DRIFTWARNSPARK4",
|
||||
|
||||
// Drift electricity
|
||||
"S_DRIFTELECTRICITY",
|
||||
"S_DRIFTELECTRICSPARK",
|
||||
|
||||
// Fast lines
|
||||
"S_FASTLINE1",
|
||||
"S_FASTLINE2",
|
||||
|
|
@ -3350,45 +3340,6 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
|||
"S_FASTDUST6",
|
||||
"S_FASTDUST7",
|
||||
|
||||
// Drift boost effect
|
||||
"S_DRIFTEXPLODE1",
|
||||
"S_DRIFTEXPLODE2",
|
||||
"S_DRIFTEXPLODE3",
|
||||
"S_DRIFTEXPLODE4",
|
||||
"S_DRIFTEXPLODE5",
|
||||
"S_DRIFTEXPLODE6",
|
||||
"S_DRIFTEXPLODE7",
|
||||
"S_DRIFTEXPLODE8",
|
||||
|
||||
// Drift boost clip
|
||||
"S_DRIFTCLIPA1",
|
||||
"S_DRIFTCLIPA2",
|
||||
"S_DRIFTCLIPA3",
|
||||
"S_DRIFTCLIPA4",
|
||||
"S_DRIFTCLIPA5",
|
||||
"S_DRIFTCLIPA6",
|
||||
"S_DRIFTCLIPA7",
|
||||
"S_DRIFTCLIPA8",
|
||||
"S_DRIFTCLIPA9",
|
||||
"S_DRIFTCLIPA10",
|
||||
"S_DRIFTCLIPA11",
|
||||
"S_DRIFTCLIPA12",
|
||||
"S_DRIFTCLIPA13",
|
||||
"S_DRIFTCLIPA14",
|
||||
"S_DRIFTCLIPA15",
|
||||
"S_DRIFTCLIPA16",
|
||||
"S_DRIFTCLIPB1",
|
||||
"S_DRIFTCLIPB2",
|
||||
"S_DRIFTCLIPB3",
|
||||
"S_DRIFTCLIPB4",
|
||||
"S_DRIFTCLIPB5",
|
||||
"S_DRIFTCLIPB6",
|
||||
"S_DRIFTCLIPB7",
|
||||
"S_DRIFTCLIPB8",
|
||||
|
||||
// Drift boost clip spark
|
||||
"S_DRIFTCLIPSPARK",
|
||||
|
||||
// Sneaker boost effect
|
||||
"S_BOOSTFLAME",
|
||||
"S_BOOSTSMOKESPAWNER",
|
||||
|
|
@ -3805,12 +3756,6 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
|||
"S_BATTLEBUMPER_EXBLAST9",
|
||||
"S_BATTLEBUMPER_EXBLAST10",
|
||||
|
||||
// Tripwire
|
||||
"S_TRIPWIREBOOST_TOP",
|
||||
"S_TRIPWIREBOOST_BOTTOM",
|
||||
"S_TRIPWIREBOOST_BLAST_TOP",
|
||||
"S_TRIPWIREBOOST_BLAST_BOTTOM",
|
||||
|
||||
// DEZ respawn laser
|
||||
"S_DEZLASER",
|
||||
"S_DEZLASER_TRAIL1",
|
||||
|
|
@ -4411,12 +4356,6 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
|||
"S_GAINAX_MID1",
|
||||
"S_GAINAX_MID2",
|
||||
|
||||
"S_DRAFTDUST1",
|
||||
"S_DRAFTDUST2",
|
||||
"S_DRAFTDUST3",
|
||||
"S_DRAFTDUST4",
|
||||
"S_DRAFTDUST5",
|
||||
|
||||
"S_OVERTIME_BULB1",
|
||||
"S_OVERTIME_BULB2",
|
||||
"S_OVERTIME_LASER",
|
||||
|
|
@ -4466,16 +4405,7 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
|||
"S_DOWNLINE5",
|
||||
|
||||
"S_HOLDBUBBLE",
|
||||
|
||||
// Finish line beam
|
||||
"S_FINISHBEAM1",
|
||||
"S_FINISHBEAM2",
|
||||
"S_FINISHBEAM3",
|
||||
"S_FINISHBEAM4",
|
||||
"S_FINISHBEAM5",
|
||||
"S_FINISHBEAMEND1",
|
||||
"S_FINISHBEAMEND2",
|
||||
|
||||
|
||||
// Funny Spike
|
||||
"S_DEBTSPIKE1",
|
||||
"S_DEBTSPIKE2",
|
||||
|
|
@ -5265,9 +5195,6 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
|||
|
||||
"MT_FASTLINE",
|
||||
"MT_FASTDUST",
|
||||
"MT_DRIFTEXPLODE",
|
||||
"MT_DRIFTCLIP",
|
||||
"MT_DRIFTCLIPSPARK",
|
||||
"MT_BOOSTFLAME",
|
||||
"MT_BOOSTSMOKE",
|
||||
"MT_SNEAKERTRAIL",
|
||||
|
|
@ -5279,8 +5206,6 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
|||
"MT_BRAKEDRIFT",
|
||||
"MT_BRAKEDUST",
|
||||
"MT_DRIFTDUST",
|
||||
"MT_DRIFTELECTRICITY",
|
||||
"MT_DRIFTELECTRICSPARK",
|
||||
|
||||
"MT_ROCKETSNEAKER", // Rocket sneakers
|
||||
|
||||
|
|
@ -5335,8 +5260,6 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
|||
"MT_BATTLEBUMPER_DEBRIS",
|
||||
"MT_BATTLEBUMPER_BLAST",
|
||||
|
||||
"MT_TRIPWIREBOOST",
|
||||
|
||||
"MT_DEZLASER",
|
||||
|
||||
"MT_WAYPOINT",
|
||||
|
|
@ -5549,8 +5472,6 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
|||
"MT_KARMAFIREWORK",
|
||||
"MT_RINGSPARKS",
|
||||
"MT_GAINAX",
|
||||
"MT_DRAFTDUST",
|
||||
"MT_SPBDUST",
|
||||
|
||||
"MT_OVERTIME_PARTICLE",
|
||||
"MT_OVERTIME_CENTER",
|
||||
|
|
|
|||
129
src/f_finale.c
129
src/f_finale.c
|
|
@ -80,7 +80,7 @@ static UINT32 demoIdleLeft;
|
|||
|
||||
// customizable title screen graphics
|
||||
|
||||
ttmode_enum ttmode = TTMODE_RINGRACERS;
|
||||
ttmode_enum ttmode = TTMODE_KART;
|
||||
UINT8 ttscale = 1; // FRACUNIT / ttscale
|
||||
// ttmode user vars
|
||||
char ttname[9];
|
||||
|
|
@ -99,20 +99,11 @@ INT16 curtty;
|
|||
INT16 curttloop;
|
||||
UINT16 curtttics;
|
||||
|
||||
// ttmode old
|
||||
/*
|
||||
// ttmode kart
|
||||
static patch_t *ttbanner; // SONIC ROBO BLAST 2
|
||||
static patch_t *ttkart; // *vroom* KART
|
||||
static patch_t *ttcheckers; // *vroom* KART
|
||||
static patch_t *ttkflash; // flash screen
|
||||
*/
|
||||
|
||||
static patch_t *kts_bumper; // DR ROBOTNIKS RING RACERS
|
||||
static patch_t *kts_eggman; // dr. robotnik himself
|
||||
static patch_t *kts_tails; // tails himself
|
||||
static patch_t *kts_tails_tails; // tails' tails
|
||||
static patch_t *kts_electricity[6]; // ring o' electricity
|
||||
static patch_t *kts_copyright; // (C) SEGA
|
||||
|
||||
#define NOWAY
|
||||
|
||||
|
|
@ -245,7 +236,7 @@ static void F_NewCutscene(const char *basetext)
|
|||
//
|
||||
// F_TitleBGScroll
|
||||
//
|
||||
/*
|
||||
|
||||
static void F_TitleBGScroll(INT32 scrollspeed)
|
||||
{
|
||||
INT32 x, y, w;
|
||||
|
|
@ -285,7 +276,7 @@ static void F_TitleBGScroll(INT32 scrollspeed)
|
|||
W_UnlockCachedPatch(pat);
|
||||
W_UnlockCachedPatch(pat2);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// =============
|
||||
// INTRO SCENE
|
||||
|
|
@ -1814,19 +1805,11 @@ static void F_CacheTitleScreen(void)
|
|||
case TTMODE_NONE:
|
||||
break;
|
||||
|
||||
case TTMODE_OLD:
|
||||
break; // idk do we still want this?
|
||||
|
||||
case TTMODE_RINGRACERS:
|
||||
kts_bumper = W_CachePatchName("KTSBUMPR1", PU_PATCH_LOWPRIORITY);
|
||||
kts_eggman = W_CachePatchName("KTSEGG01", PU_PATCH_LOWPRIORITY);
|
||||
kts_tails = W_CachePatchName("KTSTAL01", PU_PATCH_LOWPRIORITY);
|
||||
kts_tails_tails = W_CachePatchName("KTSTAL02", PU_PATCH_LOWPRIORITY);
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
kts_electricity[i] = W_CachePatchName(va("KTSELCT%.1d", i+1), PU_PATCH_LOWPRIORITY);
|
||||
}
|
||||
kts_copyright = W_CachePatchName("KTSCR", PU_PATCH_LOWPRIORITY);
|
||||
case TTMODE_KART:
|
||||
ttbanner = W_CachePatchName("TTKBANNR", PU_PATCH_LOWPRIORITY);
|
||||
ttkart = W_CachePatchName("TTKART", PU_PATCH_LOWPRIORITY);
|
||||
ttcheckers = W_CachePatchName("TTCHECK", PU_PATCH_LOWPRIORITY);
|
||||
ttkflash = W_CachePatchName("TTKFLASH", PU_PATCH_LOWPRIORITY);
|
||||
break;
|
||||
|
||||
case TTMODE_USER:
|
||||
|
|
@ -1957,80 +1940,8 @@ void F_TitleScreenDrawer(void)
|
|||
case TTMODE_NONE:
|
||||
break;
|
||||
|
||||
case TTMODE_RINGRACERS:
|
||||
case TTMODE_KART:
|
||||
{
|
||||
const char *eggName = "eggman";
|
||||
INT32 eggSkin = R_SkinAvailable(eggName);
|
||||
skincolornum_t eggColor = SKINCOLOR_RED;
|
||||
UINT8 *eggColormap = NULL;
|
||||
|
||||
const char *tailsName = "tails";
|
||||
INT32 tailsSkin = R_SkinAvailable(tailsName);
|
||||
skincolornum_t tailsColor = SKINCOLOR_ORANGE;
|
||||
UINT8 *tailsColormap = NULL;
|
||||
|
||||
if (eggSkin != -1)
|
||||
{
|
||||
eggColor = skins[eggSkin].prefcolor;
|
||||
}
|
||||
eggColormap = R_GetTranslationColormap(TC_DEFAULT, eggColor, GTC_MENUCACHE);
|
||||
|
||||
if (tailsSkin != -1)
|
||||
{
|
||||
tailsColor = skins[tailsSkin].prefcolor;
|
||||
}
|
||||
tailsColormap = R_GetTranslationColormap(TC_DEFAULT, tailsColor, GTC_MENUCACHE);
|
||||
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, 0, kts_tails_tails, tailsColormap);
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, V_ADD, kts_electricity[finalecount % 6], NULL);
|
||||
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, 0, kts_eggman, eggColormap);
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, 0, kts_tails, tailsColormap);
|
||||
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, 0, kts_bumper, NULL);
|
||||
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, 0, kts_copyright, NULL);
|
||||
|
||||
// An adapted thing from old menus - most games have version info on the title screen now...
|
||||
{
|
||||
INT32 texty = vid.height - 10*vid.dupy;
|
||||
#define addtext(f, str) {\
|
||||
V_DrawThinString(vid.dupx, texty, V_NOSCALESTART|f, str);\
|
||||
texty -= 10*vid.dupy;\
|
||||
}
|
||||
if (customversionstring[0] != '\0')
|
||||
{
|
||||
addtext(V_ALLOWLOWERCASE, customversionstring);
|
||||
addtext(0, "Mod version:");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Development -- show revision / branch info
|
||||
#if defined(TESTERS)
|
||||
addtext(V_ALLOWLOWERCASE|V_SKYMAP, "Tester client");
|
||||
addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", compdate));
|
||||
#elif defined(HOSTTESTERS)
|
||||
addtext(V_ALLOWLOWERCASE|V_REDMAP, "Netgame host for testers");
|
||||
addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", compdate));
|
||||
#elif defined(DEVELOP)
|
||||
addtext(V_ALLOWLOWERCASE|V_GREENMAP|V_TRANSLUCENT, comprevision);
|
||||
addtext(V_ALLOWLOWERCASE|V_YELLOWMAP|V_TRANSLUCENT, compbranch);
|
||||
addtext(V_ALLOWLOWERCASE|V_ORANGEMAP|V_TRANSLUCENT, va("%s", complast));
|
||||
|
||||
#else // Regular build
|
||||
addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", VERSIONSTRING));
|
||||
#endif
|
||||
if (compuncommitted)
|
||||
addtext(V_REDMAP|V_STRINGDANCE|V_TRANSLUCENT, "! UNCOMMITTED CHANGES !");
|
||||
}
|
||||
#undef addtext
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case TTMODE_OLD:
|
||||
/*
|
||||
if (finalecount < 50)
|
||||
{
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||
|
|
@ -2054,6 +1965,8 @@ void F_TitleScreenDrawer(void)
|
|||
if (finalecount <= (50+(9<<1)))
|
||||
transval = (finalecount - 50)>>1;
|
||||
|
||||
F_TitleBGScroll(5);
|
||||
|
||||
V_DrawSciencePatch(0, 0 - FixedMul(40<<FRACBITS, FixedDiv(finalecount%70, 70)), V_SNAPTOTOP|V_SNAPTOLEFT, ttcheckers, FRACUNIT);
|
||||
V_DrawSciencePatch(280<<FRACBITS, -(40<<FRACBITS) + FixedMul(40<<FRACBITS, FixedDiv(finalecount%70, 70)), V_SNAPTOTOP|V_SNAPTORIGHT, ttcheckers, FRACUNIT);
|
||||
|
||||
|
|
@ -2069,19 +1982,9 @@ void F_TitleScreenDrawer(void)
|
|||
|
||||
V_DrawSmallScaledPatch(84, 36, transval<<V_ALPHASHIFT, ttkflash);
|
||||
}
|
||||
*/
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, 64, V_ALLOWLOWERCASE, "Dr. Robotnik's Ring Racers v2.0");
|
||||
|
||||
#ifdef DEVELOP
|
||||
#if defined(TESTERS)
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, 96, V_SKYMAP|V_ALLOWLOWERCASE, "Tester EXE");
|
||||
#elif defined(HOSTTESTERS)
|
||||
V_DrawCenteredThinString(BASEVIDWIDTH/2, 96, V_REDMAP|V_ALLOWLOWERCASE, "Tester netgame host EXE");
|
||||
#else
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, 96, V_ALLOWLOWERCASE, "Development EXE");
|
||||
#endif
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
case TTMODE_USER:
|
||||
if (!ttuser[max(0, ttuser_count)])
|
||||
|
|
@ -2136,7 +2039,11 @@ void F_TitleScreenTicker(boolean run)
|
|||
{
|
||||
finalecount++;
|
||||
|
||||
if (finalecount == 1)
|
||||
if (finalecount == 10)
|
||||
{
|
||||
S_StartSound(NULL, sfx_s23e);
|
||||
}
|
||||
else if (finalecount == 50)
|
||||
{
|
||||
// Now start the music
|
||||
if (menupres[MN_MAIN].musname[0])
|
||||
|
|
|
|||
|
|
@ -80,8 +80,7 @@ extern INT32 titlescrollyspeed;
|
|||
typedef enum
|
||||
{
|
||||
TTMODE_NONE = 0,
|
||||
TTMODE_RINGRACERS,
|
||||
TTMODE_OLD,
|
||||
TTMODE_KART,
|
||||
TTMODE_USER
|
||||
} ttmode_enum;
|
||||
|
||||
|
|
|
|||
|
|
@ -2349,7 +2349,6 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps)
|
|||
p->karmadelay = comebacktime;
|
||||
p->overtimekarma = 0;
|
||||
p->eggmanblame = -1;
|
||||
p->lastdraft = -1;
|
||||
p->nocontrol = nocontrol;
|
||||
p->kickstartaccel = kickstartaccel;
|
||||
|
||||
|
|
|
|||
289
src/info.c
289
src/info.c
|
|
@ -546,10 +546,6 @@ char sprnames[NUMSPRITES + 1][5] =
|
|||
"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
|
||||
|
||||
// Kart Items
|
||||
"RSHE", // Rocket sneaker
|
||||
|
|
@ -737,7 +733,6 @@ char sprnames[NUMSPRITES + 1][5] =
|
|||
"MXCL",
|
||||
"RGSP",
|
||||
"LENS",
|
||||
"DRAF",
|
||||
"GRES",
|
||||
|
||||
"OTBU",
|
||||
|
|
@ -766,8 +761,6 @@ char sprnames[NUMSPRITES + 1][5] =
|
|||
|
||||
"TRCK",
|
||||
|
||||
"FLBM",
|
||||
|
||||
// First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later
|
||||
"VIEW",
|
||||
};
|
||||
|
|
@ -3908,14 +3901,6 @@ state_t states[NUMSTATES] =
|
|||
{SPR_DUST, FF_TRANS20|2, 3, {NULL}, 0, 0, S_DRIFTDUST4}, // S_DRIFTDUST3
|
||||
{SPR_DUST, FF_TRANS20|3, 3, {NULL}, 0, 0, S_NULL}, // S_DRIFTDUST4
|
||||
|
||||
{SPR_DRWS, FF_FULLBRIGHT|0, 3, {NULL}, 0, 0, S_DRIFTWARNSPARK2}, // S_DRIFTWARNSPARK1
|
||||
{SPR_DRWS, FF_FULLBRIGHT|1, 3, {NULL}, 0, 0, S_DRIFTWARNSPARK3}, // S_DRIFTWARNSPARK2
|
||||
{SPR_DRWS, FF_FULLBRIGHT|FF_TRANS20|2, 3, {NULL}, 0, 0, S_DRIFTWARNSPARK4}, // S_DRIFTWARNSPARK3
|
||||
{SPR_DRWS, FF_FULLBRIGHT|FF_TRANS20|3, 3, {NULL}, 0, 0, S_NULL}, // S_DRIFTWARNSPARK4
|
||||
|
||||
{SPR_DREL, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE|FF_GLOBALANIM, 2, {NULL}, 5, 2, S_NULL}, // S_DRIFTELECTRICITY
|
||||
{SPR_DRES, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, 20, {NULL}, 1, 10, S_NULL}, // S_DRIFTELECTRICSPARK
|
||||
|
||||
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_FASTLINE2}, // S_FASTLINE1
|
||||
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_FASTLINE3}, // S_FASTLINE2
|
||||
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_FASTLINE4}, // S_FASTLINE3
|
||||
|
|
@ -3930,43 +3915,6 @@ state_t states[NUMSTATES] =
|
|||
{SPR_DSHR, FF_PAPERSPRITE|5, 1, {NULL}, 0, 0, S_FASTDUST7}, // S_FASTDUST6
|
||||
{SPR_DSHR, FF_PAPERSPRITE|6, 1, {NULL}, 0, 0, S_NULL}, // S_FASTDUST7
|
||||
|
||||
{SPR_DBOS, FF_FULLBRIGHT, 1, {NULL}, 6, 1, S_DRIFTEXPLODE2}, // S_DRIFTEXPLODE1
|
||||
{SPR_DBST, FF_PAPERSPRITE|FF_FULLBRIGHT, 1, {NULL}, 6, 1, S_DRIFTEXPLODE3}, // S_DRIFTEXPLODE2
|
||||
{SPR_DBOS, FF_FULLBRIGHT|1, 1, {NULL}, 6, 1, S_DRIFTEXPLODE4}, // S_DRIFTEXPLODE3
|
||||
{SPR_DBST, FF_PAPERSPRITE|FF_FULLBRIGHT|1, 1, {NULL}, 6, 1, S_DRIFTEXPLODE5}, // S_DRIFTEXPLODE4
|
||||
{SPR_DBOS, FF_FULLBRIGHT|2, 1, {NULL}, 6, 1, S_DRIFTEXPLODE6}, // S_DRIFTEXPLODE5
|
||||
{SPR_DBST, FF_PAPERSPRITE|FF_FULLBRIGHT|2, 1, {NULL}, 6, 1, S_DRIFTEXPLODE7}, // S_DRIFTEXPLODE6
|
||||
{SPR_DBOS, FF_FULLBRIGHT|3, 1, {NULL}, 6, 1, S_DRIFTEXPLODE8}, // S_DRIFTEXPLODE7
|
||||
{SPR_DBST, FF_PAPERSPRITE|FF_FULLBRIGHT|3, 1, {NULL}, 6, 1, S_DRIFTEXPLODE1}, // S_DRIFTEXPLODE8
|
||||
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x0, 1, {NULL}, 6, 1, S_DRIFTCLIPA2}, // S_DRIFTCLIPA1
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x8, 1, {NULL}, 6, 1, S_DRIFTCLIPA3}, // S_DRIFTCLIPA2
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x1, 1, {NULL}, 6, 1, S_DRIFTCLIPA4}, // S_DRIFTCLIPA3
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x9, 1, {NULL}, 6, 1, S_DRIFTCLIPA5}, // S_DRIFTCLIPA4
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x2, 1, {NULL}, 6, 1, S_DRIFTCLIPA6}, // S_DRIFTCLIPA5
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0xA, 1, {NULL}, 6, 1, S_DRIFTCLIPA7}, // S_DRIFTCLIPA6
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x3, 1, {NULL}, 6, 1, S_DRIFTCLIPA8}, // S_DRIFTCLIPA7
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0xB, 1, {NULL}, 6, 1, S_DRIFTCLIPA9}, // S_DRIFTCLIPA8
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x4, 1, {NULL}, 6, 1, S_DRIFTCLIPA10}, // S_DRIFTCLIPA9
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0xC, 1, {NULL}, 6, 1, S_DRIFTCLIPA11}, // S_DRIFTCLIPA10
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x5, 1, {NULL}, 6, 1, S_DRIFTCLIPA12}, // S_DRIFTCLIPA11
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0xD, 1, {NULL}, 6, 1, S_DRIFTCLIPA13}, // S_DRIFTCLIPA12
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x6, 1, {NULL}, 6, 1, S_DRIFTCLIPA14}, // S_DRIFTCLIPA13
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0xE, 1, {NULL}, 6, 1, S_DRIFTCLIPA15}, // S_DRIFTCLIPA14
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0x7, 1, {NULL}, 6, 1, S_DRIFTCLIPA16}, // S_DRIFTCLIPA15
|
||||
{SPR_DBCL, FF_FULLBRIGHT|0xF, 1, {NULL}, 6, 1, S_DRIFTCLIPB1}, // S_DRIFTCLIPA16
|
||||
|
||||
{SPR_DBCL, FF_FULLBRIGHT, 2, {NULL}, 6, 1, S_DRIFTCLIPB2}, // S_DRIFTCLIPB1
|
||||
{SPR_DBCL, FF_FULLBRIGHT|1, 2, {NULL}, 6, 1, S_DRIFTCLIPB3}, // S_DRIFTCLIPB2
|
||||
{SPR_DBCL, FF_FULLBRIGHT|2, 2, {NULL}, 6, 1, S_DRIFTCLIPB4}, // S_DRIFTCLIPB3
|
||||
{SPR_DBCL, FF_FULLBRIGHT|3, 2, {NULL}, 6, 1, S_DRIFTCLIPB5}, // S_DRIFTCLIPB4
|
||||
{SPR_DBCL, FF_FULLBRIGHT|4, 2, {NULL}, 6, 1, S_DRIFTCLIPB6}, // S_DRIFTCLIPB5
|
||||
{SPR_DBCL, FF_FULLBRIGHT|5, 2, {NULL}, 6, 1, S_DRIFTCLIPB7}, // S_DRIFTCLIPB6
|
||||
{SPR_DBCL, FF_FULLBRIGHT|6, 2, {NULL}, 6, 1, S_DRIFTCLIPB8}, // S_DRIFTCLIPB7
|
||||
{SPR_DBCL, FF_FULLBRIGHT|7, 2, {NULL}, 6, 1, S_DRIFTCLIPB1}, // S_DRIFTCLIPB8
|
||||
|
||||
{SPR_DBNC, FF_FULLBRIGHT|FF_ANIMATE, 14, {NULL}, 6, 1, S_NULL}, // S_DRIFTCLIPSPARK
|
||||
|
||||
{SPR_BOST, FF_FULLBRIGHT|FF_ANIMATE, TICRATE, {NULL}, 6, 1, S_BOOSTSMOKESPAWNER}, // S_BOOSTFLAME
|
||||
{SPR_NULL, 0, TICRATE/2, {NULL}, 0, 0, S_NULL}, // S_BOOSTSMOKESPAWNER
|
||||
|
||||
|
|
@ -4362,12 +4310,6 @@ state_t states[NUMSTATES] =
|
|||
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS80, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST10}, // S_BATTLEBUMPER_EXBLAST9
|
||||
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS90, 2, {NULL}, 0, 0, S_NULL}, // S_BATTLEBUMPER_EXBLAST10
|
||||
|
||||
{SPR_TWBS, FF_FULLBRIGHT|FF_ADD|FF_ANIMATE, -1, {NULL}, 6, 2, S_NULL}, // S_TRIPWIREBOOST_TOP
|
||||
{SPR_TWBS, FF_FULLBRIGHT|FF_ADD|FF_ANIMATE|FF_VERTICALFLIP|FF_HORIZONTALFLIP, -1, {NULL}, 6, 2, S_NULL}, // S_TRIPWIREBOOST_BOTTOM
|
||||
|
||||
{SPR_TWBT, FF_FULLBRIGHT|FF_ADD|FF_ANIMATE, -1, {NULL}, 6, 2, S_NULL}, // S_TRIPWIREBOOST_BLAST_TOP
|
||||
{SPR_TWBT, FF_FULLBRIGHT|FF_ADD|FF_ANIMATE|FF_VERTICALFLIP|FF_HORIZONTALFLIP, -1, {NULL}, 6, 2, S_NULL}, // S_TRIPWIREBOOST_BLAST_BOTTOM
|
||||
|
||||
{SPR_DEZL, FF_FULLBRIGHT|FF_PAPERSPRITE, 8, {NULL}, 0, 0, S_NULL}, // S_DEZLASER
|
||||
{SPR_DEZL, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_DEZLASER_TRAIL2}, // S_DEZLASER_TRAIL1
|
||||
{SPR_DEZL, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_DEZLASER_TRAIL3}, // S_DEZLASER_TRAIL2
|
||||
|
|
@ -4997,12 +4939,6 @@ state_t states[NUMSTATES] =
|
|||
{SPR_LENS, FF_FULLBRIGHT|FF_ADD|FF_TRANS10|FF_ANIMATE|5, 14, {NULL}, 14, 1, S_GAINAX_MID2}, // S_GAINAX_MID1
|
||||
{SPR_LENS, FF_FULLBRIGHT|FF_ADD|FF_TRANS10|FF_ANIMATE|19, -1, {NULL}, 1, 1, S_NULL}, // S_GAINAX_MID2
|
||||
|
||||
{SPR_DRAF, 0, 2, {NULL}, 0, 0, S_DRAFTDUST2}, // S_DRAFTDUST1
|
||||
{SPR_DRAF, 1, 1, {NULL}, 0, 0, S_DRAFTDUST3}, // S_DRAFTDUST2
|
||||
{SPR_DRAF, 2, 1, {NULL}, 0, 0, S_DRAFTDUST4}, // S_DRAFTDUST3
|
||||
{SPR_DRAF, 3, 1, {NULL}, 0, 0, S_DRAFTDUST5}, // S_DRAFTDUST4
|
||||
{SPR_DRAF, 4, 1, {NULL}, 0, 0, S_NULL}, // S_DRAFTDUST5
|
||||
|
||||
{SPR_OTBU, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_NULL}, // S_OVERTIME_BULB1
|
||||
{SPR_OTBU, FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_NULL}, // S_OVERTIME_BULB2
|
||||
{SPR_OTLS, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_NULL}, // S_OVERTIME_LASER
|
||||
|
|
@ -5057,15 +4993,6 @@ state_t states[NUMSTATES] =
|
|||
// HOLD Bubble
|
||||
{SPR_HBUB, 0|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_HOLDBUBBLE}, // S_HOLDBUBBLE
|
||||
|
||||
// Finish line beam
|
||||
{SPR_FLBM, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_NULL}, // S_FINISHBEAM1
|
||||
{SPR_FLBM, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_NULL}, // S_FINISHBEAM2
|
||||
{SPR_FLBM, FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_NULL}, // S_FINISHBEAM3
|
||||
{SPR_FLBM, FF_FULLBRIGHT|3, 1, {NULL}, 0, 0, S_NULL}, // S_FINISHBEAM4
|
||||
{SPR_FLBM, FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_NULL}, // S_FINISHBEAM5
|
||||
{SPR_FLBM, FF_PAPERSPRITE|5, 1, {NULL}, 0, 0, S_NULL}, // S_FINISHBEAMEND1
|
||||
{SPR_FLBM, FF_PAPERSPRITE|6, 1, {NULL}, 0, 0, S_NULL}, // S_FINISHBEAMEND2
|
||||
|
||||
// Funny Spike
|
||||
{SPR_DEBT, 0|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_DEBTSPIKE2}, // S_DEBTSPIKE1
|
||||
{SPR_DEBT, 7|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_DEBTSPIKE3}, // S_DEBTSPIKE2
|
||||
|
|
@ -22705,87 +22632,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_DRIFTEXPLODE
|
||||
-1, // doomednum
|
||||
S_DRIFTEXPLODE1, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
8, // speed
|
||||
32*FRACUNIT, // radius
|
||||
64*FRACUNIT, // height
|
||||
1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_DRIFTCLIP
|
||||
-1, // doomednum
|
||||
S_DRIFTCLIPA1, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
105, // speed
|
||||
32*FRACUNIT, // radius
|
||||
64*FRACUNIT, // height
|
||||
1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_DONTENCOREMAP|MF_GRENADEBOUNCE, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_DRIFTCLIPSPARK
|
||||
-1, // doomednum
|
||||
S_DRIFTCLIPSPARK, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
8, // speed
|
||||
32*FRACUNIT, // radius
|
||||
64*FRACUNIT, // height
|
||||
1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_BOOSTFLAME
|
||||
-1, // doomednum
|
||||
S_BOOSTFLAME, // spawnstate
|
||||
|
|
@ -23083,60 +22929,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_DRIFTELECTRICITY
|
||||
-1, // doomednum
|
||||
S_DRIFTELECTRICITY, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
0, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
16*FRACUNIT, // radius
|
||||
32*FRACUNIT, // height
|
||||
0, // display offset
|
||||
0, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOCLIP|MF_NOCLIPTHING|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_DRIFTELECTRICSPARK
|
||||
-1, // doomednum
|
||||
S_DRIFTELECTRICSPARK, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
0, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
4*FRACUNIT, // speed
|
||||
9*FRACUNIT, // radius
|
||||
37*FRACUNIT, // height
|
||||
0, // display offset
|
||||
0, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOCLIP|MF_NOCLIPTHING|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_ROCKETSNEAKER
|
||||
-1, // doomednum
|
||||
S_ROCKETSNEAKER_L, // spawnstate
|
||||
|
|
@ -24136,33 +23928,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_TRIPWIREBOOST
|
||||
-1, // doomednum
|
||||
S_TRIPWIREBOOST_TOP, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_TRIPWIREBOOST_BOTTOM, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_TRIPWIREBOOST_BLAST_TOP, // meleestate
|
||||
S_TRIPWIREBOOST_BLAST_BOTTOM, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
8*FRACUNIT, // radius
|
||||
16*FRACUNIT, // height
|
||||
1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_DEZLASER
|
||||
-1, // doomednum
|
||||
S_DEZLASER, // spawnstate
|
||||
|
|
@ -28323,60 +28088,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_DRAFTDUST
|
||||
-1, // doomednum
|
||||
S_DRAFTDUST1, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
8<<FRACBITS, // radius
|
||||
16<<FRACBITS, // height
|
||||
1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_SPBDUST
|
||||
-1, // doomednum
|
||||
S_DRAFTDUST1, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
16<<FRACBITS, // radius
|
||||
32<<FRACBITS, // height
|
||||
1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_DONTENCOREMAP|MF_NOGRAVITY|MF_PAIN, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_OVERTIME_PARTICLE
|
||||
-1, // doomednum
|
||||
S_NULL, // spawnstate
|
||||
|
|
|
|||
86
src/info.h
86
src/info.h
|
|
@ -1092,10 +1092,6 @@ typedef enum sprite
|
|||
SPR_DRIF, // Drift Sparks
|
||||
SPR_BDRF, // Brake drift sparks
|
||||
SPR_BRAK, // Brake brak
|
||||
SPR_DRWS, // Drift dust sparks
|
||||
SPR_DREL, // Drift electricity
|
||||
SPR_DRES, // Drift electric sparks
|
||||
SPR_JANK, // Stair janking sparks
|
||||
|
||||
// Kart Items
|
||||
SPR_RSHE, // Rocket sneaker
|
||||
|
|
@ -1283,7 +1279,6 @@ typedef enum sprite
|
|||
SPR_MXCL,
|
||||
SPR_RGSP,
|
||||
SPR_LENS,
|
||||
SPR_DRAF,
|
||||
SPR_GRES,
|
||||
|
||||
SPR_OTBU,
|
||||
|
|
@ -1312,8 +1307,6 @@ typedef enum sprite
|
|||
|
||||
SPR_TRCK,
|
||||
|
||||
SPR_FLBM, // Finish line beam
|
||||
|
||||
// First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later
|
||||
SPR_VIEW,
|
||||
|
||||
|
|
@ -4314,16 +4307,6 @@ typedef enum state
|
|||
S_DRIFTDUST3,
|
||||
S_DRIFTDUST4,
|
||||
|
||||
// Drift Sparkles
|
||||
S_DRIFTWARNSPARK1,
|
||||
S_DRIFTWARNSPARK2,
|
||||
S_DRIFTWARNSPARK3,
|
||||
S_DRIFTWARNSPARK4,
|
||||
|
||||
// Drift electricity
|
||||
S_DRIFTELECTRICITY,
|
||||
S_DRIFTELECTRICSPARK,
|
||||
|
||||
// Fast lines
|
||||
S_FASTLINE1,
|
||||
S_FASTLINE2,
|
||||
|
|
@ -4340,45 +4323,6 @@ typedef enum state
|
|||
S_FASTDUST6,
|
||||
S_FASTDUST7,
|
||||
|
||||
// Drift boost effect
|
||||
S_DRIFTEXPLODE1,
|
||||
S_DRIFTEXPLODE2,
|
||||
S_DRIFTEXPLODE3,
|
||||
S_DRIFTEXPLODE4,
|
||||
S_DRIFTEXPLODE5,
|
||||
S_DRIFTEXPLODE6,
|
||||
S_DRIFTEXPLODE7,
|
||||
S_DRIFTEXPLODE8,
|
||||
|
||||
// Drift boost clip
|
||||
S_DRIFTCLIPA1,
|
||||
S_DRIFTCLIPA2,
|
||||
S_DRIFTCLIPA3,
|
||||
S_DRIFTCLIPA4,
|
||||
S_DRIFTCLIPA5,
|
||||
S_DRIFTCLIPA6,
|
||||
S_DRIFTCLIPA7,
|
||||
S_DRIFTCLIPA8,
|
||||
S_DRIFTCLIPA9,
|
||||
S_DRIFTCLIPA10,
|
||||
S_DRIFTCLIPA11,
|
||||
S_DRIFTCLIPA12,
|
||||
S_DRIFTCLIPA13,
|
||||
S_DRIFTCLIPA14,
|
||||
S_DRIFTCLIPA15,
|
||||
S_DRIFTCLIPA16,
|
||||
S_DRIFTCLIPB1,
|
||||
S_DRIFTCLIPB2,
|
||||
S_DRIFTCLIPB3,
|
||||
S_DRIFTCLIPB4,
|
||||
S_DRIFTCLIPB5,
|
||||
S_DRIFTCLIPB6,
|
||||
S_DRIFTCLIPB7,
|
||||
S_DRIFTCLIPB8,
|
||||
|
||||
// Drift boost clip sparks
|
||||
S_DRIFTCLIPSPARK,
|
||||
|
||||
// Sneaker boost effect
|
||||
S_BOOSTFLAME,
|
||||
S_BOOSTSMOKESPAWNER,
|
||||
|
|
@ -4795,11 +4739,6 @@ typedef enum state
|
|||
S_BATTLEBUMPER_EXBLAST9,
|
||||
S_BATTLEBUMPER_EXBLAST10,
|
||||
|
||||
S_TRIPWIREBOOST_TOP,
|
||||
S_TRIPWIREBOOST_BOTTOM,
|
||||
S_TRIPWIREBOOST_BLAST_TOP,
|
||||
S_TRIPWIREBOOST_BLAST_BOTTOM,
|
||||
|
||||
// DEZ Laser respawn
|
||||
S_DEZLASER,
|
||||
S_DEZLASER_TRAIL1,
|
||||
|
|
@ -5420,12 +5359,6 @@ typedef enum state
|
|||
S_GAINAX_MID1,
|
||||
S_GAINAX_MID2,
|
||||
|
||||
S_DRAFTDUST1,
|
||||
S_DRAFTDUST2,
|
||||
S_DRAFTDUST3,
|
||||
S_DRAFTDUST4,
|
||||
S_DRAFTDUST5,
|
||||
|
||||
S_OVERTIME_BULB1,
|
||||
S_OVERTIME_BULB2,
|
||||
S_OVERTIME_LASER,
|
||||
|
|
@ -5476,14 +5409,6 @@ typedef enum state
|
|||
|
||||
S_HOLDBUBBLE,
|
||||
|
||||
S_FINISHBEAM1,
|
||||
S_FINISHBEAM2,
|
||||
S_FINISHBEAM3,
|
||||
S_FINISHBEAM4,
|
||||
S_FINISHBEAM5,
|
||||
S_FINISHBEAMEND1,
|
||||
S_FINISHBEAMEND2,
|
||||
|
||||
S_DEBTSPIKE1,
|
||||
S_DEBTSPIKE2,
|
||||
S_DEBTSPIKE3,
|
||||
|
|
@ -6292,9 +6217,6 @@ typedef enum mobj_type
|
|||
|
||||
MT_FASTLINE,
|
||||
MT_FASTDUST,
|
||||
MT_DRIFTEXPLODE,
|
||||
MT_DRIFTCLIP,
|
||||
MT_DRIFTCLIPSPARK,
|
||||
MT_BOOSTFLAME,
|
||||
MT_BOOSTSMOKE,
|
||||
MT_SNEAKERTRAIL,
|
||||
|
|
@ -6306,8 +6228,6 @@ typedef enum mobj_type
|
|||
MT_BRAKEDRIFT,
|
||||
MT_BRAKEDUST,
|
||||
MT_DRIFTDUST,
|
||||
MT_DRIFTELECTRICITY,
|
||||
MT_DRIFTELECTRICSPARK,
|
||||
|
||||
MT_ROCKETSNEAKER,
|
||||
|
||||
|
|
@ -6361,9 +6281,7 @@ typedef enum mobj_type
|
|||
MT_BATTLEBUMPER, // Battle Mode bumpers
|
||||
MT_BATTLEBUMPER_DEBRIS,
|
||||
MT_BATTLEBUMPER_BLAST,
|
||||
|
||||
MT_TRIPWIREBOOST,
|
||||
|
||||
|
||||
MT_DEZLASER,
|
||||
|
||||
MT_WAYPOINT,
|
||||
|
|
@ -6576,8 +6494,6 @@ typedef enum mobj_type
|
|||
MT_KARMAFIREWORK,
|
||||
MT_RINGSPARKS,
|
||||
MT_GAINAX,
|
||||
MT_DRAFTDUST,
|
||||
MT_SPBDUST,
|
||||
|
||||
MT_OVERTIME_PARTICLE,
|
||||
MT_OVERTIME_CENTER,
|
||||
|
|
|
|||
1370
src/k_kart.c
1370
src/k_kart.c
File diff suppressed because it is too large
Load diff
|
|
@ -48,7 +48,6 @@ void K_MatchGenericExtraFlags(mobj_t *mo, mobj_t *master);
|
|||
void K_GenericExtraFlagsNoZAdjust(mobj_t *mo, mobj_t *master);
|
||||
void K_SpawnDashDustRelease(player_t *player);
|
||||
void K_SpawnDriftBoostClip(player_t *player);
|
||||
void K_SpawnDriftBoostClipSpark(mobj_t *clip);
|
||||
void K_SpawnNormalSpeedLines(player_t *player);
|
||||
void K_SpawnInvincibilitySpeedLines(mobj_t *mo);
|
||||
void K_SpawnBumpEffect(mobj_t *mo);
|
||||
|
|
@ -73,8 +72,7 @@ void K_SpawnMineExplosion(mobj_t *source, UINT8 color);
|
|||
UINT16 K_DriftSparkColor(player_t *player, INT32 charge);
|
||||
void K_SpawnBoostTrail(player_t *player);
|
||||
void K_SpawnSparkleTrail(mobj_t *mo);
|
||||
void K_SpawnWipeoutTrail(mobj_t *mo);
|
||||
void K_SpawnDraftDust(mobj_t *mo);
|
||||
void K_SpawnWipeoutTrail(mobj_t *mo, boolean translucent);
|
||||
void K_DriftDustHandling(mobj_t *spawner);
|
||||
void K_Squish(mobj_t *mo);
|
||||
mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t mapthing, INT32 defaultDir, INT32 altthrow);
|
||||
|
|
@ -145,7 +143,6 @@ void K_PlayHitEmSound(mobj_t *source, mobj_t *other);
|
|||
void K_TryHurtSoundExchange(mobj_t *victim, mobj_t *attacker);
|
||||
void K_PlayPowerGloatSound(mobj_t *source);
|
||||
|
||||
fixed_t K_ItemScaleForPlayer(player_t *player);
|
||||
void K_SetItemOut(player_t *player);
|
||||
void K_UnsetItemOut(player_t *player);
|
||||
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ void K_DoIngameRespawn(player_t *player)
|
|||
}
|
||||
|
||||
player->ringboost = 0;
|
||||
player->driftboost = player->strongdriftboost = 0;
|
||||
player->driftboost = 0;
|
||||
|
||||
P_ResetPlayer(player);
|
||||
|
||||
|
|
|
|||
|
|
@ -3552,7 +3552,7 @@ static int lib_kSpawnWipeoutTrail(lua_State *L)
|
|||
NOHUD
|
||||
if (!mo)
|
||||
return LUA_ErrInvalid(L, "mobj_t");
|
||||
K_SpawnWipeoutTrail(mo);
|
||||
K_SpawnWipeoutTrail(mo, false);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -244,8 +244,6 @@ static int player_get(lua_State *L)
|
|||
lua_pushinteger(L, plr->driftcharge);
|
||||
else if (fastcmp(field,"driftboost"))
|
||||
lua_pushinteger(L, plr->driftboost);
|
||||
else if (fastcmp(field,"strongdriftboost"))
|
||||
lua_pushinteger(L, plr->strongdriftboost);
|
||||
else if (fastcmp(field,"aizdriftstraft"))
|
||||
lua_pushinteger(L, plr->aizdriftstrat);
|
||||
else if (fastcmp(field,"aizdrifttilt"))
|
||||
|
|
@ -270,8 +268,6 @@ static int player_get(lua_State *L)
|
|||
lua_pushinteger(L, plr->spindashboost);
|
||||
else if (fastcmp(field,"fastfall"))
|
||||
lua_pushfixed(L, plr->fastfall);
|
||||
else if (fastcmp(field,"numboosts"))
|
||||
lua_pushinteger(L, plr->numboosts);
|
||||
else if (fastcmp(field,"boostpower"))
|
||||
lua_pushinteger(L, plr->boostpower);
|
||||
else if (fastcmp(field,"speedboost"))
|
||||
|
|
@ -282,12 +278,6 @@ static int player_get(lua_State *L)
|
|||
lua_pushinteger(L, plr->handleboost);
|
||||
else if (fastcmp(field,"boostangle"))
|
||||
lua_pushangle(L, plr->boostangle);
|
||||
else if (fastcmp(field,"draftpower"))
|
||||
lua_pushinteger(L, plr->draftpower);
|
||||
else if (fastcmp(field,"draftleeway"))
|
||||
lua_pushinteger(L, plr->draftleeway);
|
||||
else if (fastcmp(field,"lastdraft"))
|
||||
lua_pushinteger(L, plr->lastdraft);
|
||||
else if (fastcmp(field,"tripwireState"))
|
||||
lua_pushinteger(L, plr->tripwireState);
|
||||
else if (fastcmp(field,"tripwirePass"))
|
||||
|
|
@ -336,8 +326,6 @@ static int player_get(lua_State *L)
|
|||
lua_pushinteger(L, plr->stealingtimer);
|
||||
else if (fastcmp(field,"sneakertimer"))
|
||||
lua_pushinteger(L, plr->sneakertimer);
|
||||
else if (fastcmp(field,"numsneakers"))
|
||||
lua_pushinteger(L, plr->numsneakers);
|
||||
else if (fastcmp(field,"floorboost"))
|
||||
lua_pushinteger(L, plr->floorboost);
|
||||
else if (fastcmp(field,"growshrinktimer"))
|
||||
|
|
@ -624,8 +612,6 @@ static int player_set(lua_State *L)
|
|||
plr->spindashboost = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"fastfall"))
|
||||
plr->fastfall = luaL_checkfixed(L, 3);
|
||||
else if (fastcmp(field,"numboosts"))
|
||||
plr->numboosts = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"boostpower"))
|
||||
plr->boostpower = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"speedboost"))
|
||||
|
|
@ -636,12 +622,6 @@ static int player_set(lua_State *L)
|
|||
plr->handleboost = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"boostangle"))
|
||||
plr->boostangle = luaL_checkangle(L, 3);
|
||||
else if (fastcmp(field,"draftpower"))
|
||||
plr->draftpower = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"draftleeway"))
|
||||
plr->draftleeway = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"lastdraft"))
|
||||
plr->lastdraft = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"tripwireState"))
|
||||
plr->tripwireState = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"tripwirePass"))
|
||||
|
|
@ -690,8 +670,6 @@ static int player_set(lua_State *L)
|
|||
plr->stealingtimer = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"sneakertimer"))
|
||||
plr->sneakertimer = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"numsneakers"))
|
||||
plr->numsneakers = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"floorboost"))
|
||||
plr->floorboost = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"growshrinktimer"))
|
||||
|
|
|
|||
34
src/m_menu.c
34
src/m_menu.c
|
|
@ -3119,6 +3119,40 @@ void M_Drawer(void)
|
|||
M_GetGametypeColor();
|
||||
currentMenu->drawroutine(); // call current menu Draw routine
|
||||
}
|
||||
|
||||
if (currentMenu == &MainDef)
|
||||
{
|
||||
INT32 texty = vid.height - 10*vid.dupy;
|
||||
#define addtext(f, str) {\
|
||||
V_DrawThinString(vid.dupx, texty, V_NOSCALESTART|f, str);\
|
||||
texty -= 10*vid.dupy;\
|
||||
}
|
||||
if (customversionstring[0] != '\0')
|
||||
{
|
||||
addtext(V_ALLOWLOWERCASE, customversionstring);
|
||||
addtext(0, "Mod version:");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Development -- show revision / branch info
|
||||
#if defined(TESTERS)
|
||||
addtext(V_ALLOWLOWERCASE|V_SKYMAP, "Tester client");
|
||||
addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", compdate));
|
||||
#elif defined(HOSTTESTERS)
|
||||
addtext(V_ALLOWLOWERCASE|V_REDMAP, "Netgame host for testers");
|
||||
addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", compdate));
|
||||
#elif defined(DEVELOP)
|
||||
addtext(V_ALLOWLOWERCASE|V_GREENMAP|V_TRANSLUCENT, comprevision);
|
||||
addtext(V_ALLOWLOWERCASE|V_YELLOWMAP|V_TRANSLUCENT, compbranch);
|
||||
V_DrawThinString(0, 0, V_ALLOWLOWERCASE|V_ORANGEMAP|V_TRANSLUCENT|V_SNAPTOTOP, va("%s", complast));
|
||||
#else // Regular build
|
||||
addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", VERSIONSTRING));
|
||||
#endif
|
||||
if (compuncommitted)
|
||||
addtext(V_REDMAP|V_STRINGDANCE|V_TRANSLUCENT, "! UNCOMMITTED CHANGES !");
|
||||
}
|
||||
#undef addtext
|
||||
}
|
||||
}
|
||||
|
||||
// focus lost notification goes on top of everything, even the former everything
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ typedef struct
|
|||
boolean bghide; // for titlemaps, hide the background.
|
||||
|
||||
SINT8 hidetitlepics; // hide title gfx per menu; -1 means undefined, inherits global setting
|
||||
ttmode_enum ttmode; // title wing animation mode; default TTMODE_OLD
|
||||
ttmode_enum ttmode; // title wing animation mode; default TTMODE_KART
|
||||
UINT8 ttscale; // scale of title wing gfx (FRACUNIT / ttscale); -1 means undefined, inherits global setting
|
||||
char ttname[9]; // lump name of title wing gfx. If name length is <= 6, engine will attempt to load numbered frames (TTNAMExx)
|
||||
INT16 ttx; // X position of title wing
|
||||
|
|
|
|||
|
|
@ -13436,97 +13436,6 @@ static void SpawnSPBTrailRings(mobj_t *actor)
|
|||
}
|
||||
}
|
||||
|
||||
// Spawns the V shaped dust. To be used when the SPB is going mostly forward.
|
||||
static void SpawnSPBDust(mobj_t *mo)
|
||||
{
|
||||
// The easiest way to spawn a V shaped cone of dust from the SPB is simply to spawn 2 particles, and to both move them to the sides in opposite direction.
|
||||
mobj_t *dust;
|
||||
fixed_t sx;
|
||||
fixed_t sy;
|
||||
fixed_t sz = mo->floorz;
|
||||
angle_t sa = mo->angle - ANG1*60;
|
||||
INT32 i;
|
||||
|
||||
if (mo->eflags & MFE_VERTICALFLIP)
|
||||
sz = mo->ceilingz;
|
||||
|
||||
if (leveltime & 1 && abs(mo->z - sz) < FRACUNIT*64) // Only ever other frame. Also don't spawn it if we're way above the ground.
|
||||
{
|
||||
// Determine spawning position next to the SPB:
|
||||
for (i=0; i < 2; i++)
|
||||
{
|
||||
sx = mo->x + FixedMul((mo->scale*96), FINECOSINE((sa)>>ANGLETOFINESHIFT));
|
||||
sy = mo->y + FixedMul((mo->scale*96), FINESINE((sa)>>ANGLETOFINESHIFT));
|
||||
|
||||
dust = P_SpawnMobj(sx, sy, sz, MT_SPBDUST);
|
||||
dust->momx = mo->momx/2;
|
||||
dust->momy = mo->momy/2;
|
||||
dust->momz = mo->momz/2; // Give some of the momentum to the dust
|
||||
P_SetScale(dust, mo->scale*2);
|
||||
dust->colorized = true;
|
||||
dust->color = SKINCOLOR_RED;
|
||||
P_InitAngle(dust, mo->angle - FixedAngle(FRACUNIT*90 - FRACUNIT*180*i)); // The first one will spawn to the right of the spb, the second one to the left.
|
||||
P_Thrust(dust, dust->angle, 6*dust->scale);
|
||||
|
||||
K_MatchGenericExtraFlags(dust, mo);
|
||||
|
||||
sa += ANG1*120; // Add 120 degrees to get to mo->angle + ANG1*60
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Spawns SPB slip tide. To be used when the SPB is turning.
|
||||
// Modified version of K_SpawnAIZDust. Maybe we could merge those to be cleaner?
|
||||
|
||||
// dir should be either 1 or -1 to determine where to spawn the dust.
|
||||
|
||||
static void SpawnSPBAIZDust(mobj_t *mo, INT32 dir)
|
||||
{
|
||||
fixed_t newx;
|
||||
fixed_t newy;
|
||||
mobj_t *spark;
|
||||
angle_t travelangle;
|
||||
fixed_t sz = mo->floorz;
|
||||
|
||||
if (mo->eflags & MFE_VERTICALFLIP)
|
||||
sz = mo->ceilingz;
|
||||
|
||||
travelangle = K_MomentumAngle(mo);
|
||||
if (leveltime & 1 && abs(mo->z - sz) < FRACUNIT*64)
|
||||
{
|
||||
newx = mo->x + P_ReturnThrustX(mo, travelangle - (dir*ANGLE_45), FixedMul(24*FRACUNIT, mo->scale));
|
||||
newy = mo->y + P_ReturnThrustY(mo, travelangle - (dir*ANGLE_45), FixedMul(24*FRACUNIT, mo->scale));
|
||||
spark = P_SpawnMobj(newx, newy, sz, MT_AIZDRIFTSTRAT);
|
||||
spark->colorized = true;
|
||||
spark->color = SKINCOLOR_RED;
|
||||
spark->flags = MF_NOGRAVITY|MF_PAIN;
|
||||
P_SetTarget(&spark->target, mo);
|
||||
|
||||
P_InitAngle(spark, travelangle+(dir*ANGLE_90));
|
||||
P_SetScale(spark, (spark->destscale = mo->scale*3/2));
|
||||
|
||||
spark->momx = (6*mo->momx)/5;
|
||||
spark->momy = (6*mo->momy)/5;
|
||||
|
||||
K_MatchGenericExtraFlags(spark, mo);
|
||||
}
|
||||
}
|
||||
|
||||
// Used for seeking and when SPB is trailing its target from way too close!
|
||||
static void SpawnSPBSpeedLines(mobj_t *actor)
|
||||
{
|
||||
mobj_t *fast = P_SpawnMobj(actor->x + (P_RandomRange(-24,24) * actor->scale),
|
||||
actor->y + (P_RandomRange(-24,24) * actor->scale),
|
||||
actor->z + (actor->height/2) + (P_RandomRange(-24,24) * actor->scale),
|
||||
MT_FASTLINE);
|
||||
|
||||
P_SetTarget(&fast->target, actor);
|
||||
P_InitAngle(fast, K_MomentumAngle(actor));
|
||||
fast->color = SKINCOLOR_RED;
|
||||
fast->colorized = true;
|
||||
K_MatchGenericExtraFlags(fast, actor);
|
||||
}
|
||||
|
||||
|
||||
void A_SPBChase(mobj_t *actor)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2035,8 +2035,8 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
|||
}
|
||||
}
|
||||
|
||||
player->sneakertimer = player->numsneakers = 0;
|
||||
player->driftboost = player->strongdriftboost = 0;
|
||||
player->sneakertimer = 0;
|
||||
player->driftboost = 0;
|
||||
player->ringboost = 0;
|
||||
player->glanceDir = 0;
|
||||
player->pflags &= ~PF_LOOKDOWN;
|
||||
|
|
|
|||
199
src/p_mobj.c
199
src/p_mobj.c
|
|
@ -2334,17 +2334,6 @@ boolean P_ZMovement(mobj_t *mo)
|
|||
mom.z = P_MobjFlip(mo)*FixedMul(5*FRACUNIT, mo->scale);
|
||||
else if (mo->type == MT_SPINFIRE) // elemental shield fire is another exception here
|
||||
;
|
||||
else if (mo->type == MT_DRIFTCLIP)
|
||||
{
|
||||
mom.z = -mom.z/2;
|
||||
if (abs(mom.z) > 4 * mo->scale / 3)
|
||||
{
|
||||
K_SpawnDriftBoostClipSpark(mo);
|
||||
S_StartSound(mo, sfx_tink);
|
||||
}
|
||||
else
|
||||
mo->renderflags ^= RF_DONTDRAW;
|
||||
}
|
||||
else if (mo->type == MT_DEBTSPIKE)
|
||||
{
|
||||
mom.x = mom.y = 0;
|
||||
|
|
@ -6248,9 +6237,6 @@ static void P_MobjSceneryThink(mobj_t *mobj)
|
|||
mobj->renderflags ^= RF_DONTDRAW;
|
||||
break;
|
||||
case MT_SPINDASHWIND:
|
||||
case MT_DRIFTELECTRICSPARK:
|
||||
mobj->renderflags ^= RF_DONTDRAW;
|
||||
break;
|
||||
case MT_VWREF:
|
||||
case MT_VWREB:
|
||||
{
|
||||
|
|
@ -7127,188 +7113,6 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
mobj->threshold--;
|
||||
}
|
||||
break;
|
||||
case MT_DRIFTEXPLODE:
|
||||
if (!mobj->target || !mobj->target->health)
|
||||
{
|
||||
P_RemoveMobj(mobj);
|
||||
return false;
|
||||
}
|
||||
|
||||
//mobj->angle = mobj->target->angle;
|
||||
{
|
||||
angle_t angle = K_MomentumAngle(mobj->target);
|
||||
fixed_t nudge;
|
||||
|
||||
mobj->angle = angle;
|
||||
|
||||
if (( mobj->fuse & 1 ))
|
||||
{
|
||||
nudge = 4*mobj->target->radius;
|
||||
/* unrotate interp angle */
|
||||
mobj->old_angle -= ANGLE_90;
|
||||
}
|
||||
else
|
||||
{
|
||||
nudge = 2*mobj->target->radius;
|
||||
/* rotate the papersprite frames to see the flat angle */
|
||||
mobj->angle += ANGLE_90;
|
||||
mobj->old_angle += ANGLE_90;
|
||||
}
|
||||
|
||||
P_MoveOrigin(mobj,
|
||||
mobj->target->x + P_ReturnThrustX(mobj, angle + ANGLE_180, nudge),
|
||||
mobj->target->y + P_ReturnThrustY(mobj, angle + ANGLE_180, nudge),
|
||||
mobj->target->z);
|
||||
}
|
||||
P_SetScale(mobj, mobj->target->scale);
|
||||
|
||||
mobj->roll = mobj->target->roll;
|
||||
mobj->pitch = mobj->target->pitch;
|
||||
|
||||
if (mobj->fuse <= 16)
|
||||
{
|
||||
mobj->color = SKINCOLOR_GOLD;
|
||||
/* don't draw papersprite frames after blue boost */
|
||||
mobj->renderflags ^= RF_DONTDRAW;
|
||||
}
|
||||
else if (mobj->fuse <= 32)
|
||||
mobj->color = SKINCOLOR_KETCHUP;
|
||||
else if (mobj->fuse <= 48)
|
||||
mobj->color = SKINCOLOR_SAPPHIRE;
|
||||
else if (mobj->fuse > 48)
|
||||
mobj->color = K_RainbowColor(
|
||||
(SKINCOLOR_SAPPHIRE - SKINCOLOR_PINK) // Smoothly transition into the other state
|
||||
+ ((mobj->fuse - 32) * 2) // Make the color flashing slow down while it runs out
|
||||
);
|
||||
|
||||
switch (mobj->extravalue1)
|
||||
{
|
||||
case 4:/* rainbow boost */
|
||||
/* every 20 tics, bang! */
|
||||
if (( 120 - mobj->fuse ) % 10 == 0)
|
||||
{
|
||||
K_SpawnDriftBoostClip(mobj->target->player);
|
||||
S_StartSound(mobj->target, sfx_s3k77);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:/* blue boost */
|
||||
if ((mobj->fuse == 32)/* to red*/
|
||||
|| (mobj->fuse == 16))/* to yellow*/
|
||||
K_SpawnDriftBoostClip(mobj->target->player);
|
||||
break;
|
||||
|
||||
case 2:/* red boost */
|
||||
if (mobj->fuse == 16)/* to yellow*/
|
||||
K_SpawnDriftBoostClip(mobj->target->player);
|
||||
break;
|
||||
|
||||
case 0:/* air failsafe boost */
|
||||
mobj->color = SKINCOLOR_SILVER; // force white
|
||||
break;
|
||||
}
|
||||
|
||||
{
|
||||
player_t *p = NULL;
|
||||
if (mobj->target->target && mobj->target->target->player)
|
||||
p = mobj->target->target->player;
|
||||
else if (mobj->target->player)
|
||||
p = mobj->target->player;
|
||||
|
||||
if (p)
|
||||
{
|
||||
if (p->driftboost > mobj->movecount)
|
||||
{
|
||||
; // reset animation
|
||||
}
|
||||
|
||||
mobj->movecount = p->driftboost;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MT_TRIPWIREBOOST:
|
||||
if (!mobj->target || !mobj->target->health
|
||||
|| !mobj->target->player || !mobj->target->player->tripwireLeniency)
|
||||
{
|
||||
P_RemoveMobj(mobj);
|
||||
return false;
|
||||
}
|
||||
|
||||
mobj->angle = K_MomentumAngle(mobj->target);
|
||||
P_MoveOrigin(mobj, mobj->target->x, mobj->target->y, mobj->target->z + (mobj->target->height >> 1));
|
||||
mobj->destscale = mobj->target->scale;
|
||||
P_SetScale(mobj, mobj->target->scale);
|
||||
|
||||
if (mobj->extravalue1)
|
||||
{
|
||||
mobj->angle += ANGLE_180;
|
||||
}
|
||||
|
||||
{
|
||||
fixed_t convSpeed = (mobj->target->player->speed * 100) / K_GetKartSpeed(mobj->target->player, false, true);
|
||||
UINT8 trans = ((mobj->target->player->tripwireLeniency + 1) * (NUMTRANSMAPS+1)) / TRIPWIRETIME;
|
||||
|
||||
if (trans > NUMTRANSMAPS)
|
||||
trans = NUMTRANSMAPS;
|
||||
|
||||
trans = NUMTRANSMAPS - trans;
|
||||
|
||||
if ((trans >= NUMTRANSMAPS) // not a valid visibility
|
||||
|| (convSpeed < 150 && (leveltime & 1)) // < 150% flickering
|
||||
|| (mobj->target->player->tripwirePass < TRIPWIRE_BOOST) // Not strong enough to make an aura
|
||||
|| mobj->target->player->flamedash) // Flameshield dash
|
||||
{
|
||||
mobj->renderflags |= RF_DONTDRAW;
|
||||
}
|
||||
else
|
||||
{
|
||||
boolean blastermode = (convSpeed >= 200) && (mobj->target->player->tripwirePass >= TRIPWIRE_BLASTER);
|
||||
|
||||
mobj->renderflags &= ~(RF_TRANSMASK|RF_DONTDRAW);
|
||||
if (trans != 0)
|
||||
{
|
||||
mobj->renderflags |= (trans << RF_TRANSSHIFT);
|
||||
}
|
||||
mobj->renderflags |= (mobj->target->renderflags & RF_DONTDRAW);
|
||||
|
||||
if (mobj->target->player->invincibilitytimer > 0)
|
||||
{
|
||||
if (mobj->target->player->invincibilitytimer > itemtime+(2*TICRATE))
|
||||
{
|
||||
mobj->color = K_RainbowColor(leveltime / 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
mobj->color = SKINCOLOR_INVINCFLASH;
|
||||
}
|
||||
mobj->colorized = true;
|
||||
}
|
||||
else if (mobj->target->player->curshield == KSHIELD_FLAME)
|
||||
{
|
||||
mobj->color = SKINCOLOR_KETCHUP;
|
||||
mobj->colorized = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
mobj->color = SKINCOLOR_NONE;
|
||||
mobj->colorized = false;
|
||||
}
|
||||
|
||||
if (blastermode == !(mobj->flags2 & MF2_AMBUSH))
|
||||
{
|
||||
mobj->flags2 ^= MF2_AMBUSH;
|
||||
if (blastermode)
|
||||
{
|
||||
P_SetMobjState(mobj, (mobj->extravalue1) ? S_TRIPWIREBOOST_BLAST_BOTTOM : S_TRIPWIREBOOST_BLAST_TOP);
|
||||
}
|
||||
else
|
||||
{
|
||||
P_SetMobjState(mobj, (mobj->extravalue1) ? S_TRIPWIREBOOST_BOTTOM : S_TRIPWIREBOOST_TOP);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MT_BOOSTFLAME:
|
||||
if (!mobj->target || !mobj->target->health)
|
||||
{
|
||||
|
|
@ -9832,9 +9636,6 @@ static void P_DefaultMobjShadowScale(mobj_t *thing)
|
|||
case MT_POGOSPRING:
|
||||
thing->shadowscale = FRACUNIT/2;
|
||||
break;
|
||||
case MT_DRIFTCLIP:
|
||||
thing->shadowscale = FRACUNIT/3;
|
||||
break;
|
||||
default:
|
||||
if (thing->flags & (MF_ENEMY|MF_BOSS))
|
||||
thing->shadowscale = FRACUNIT;
|
||||
|
|
|
|||
|
|
@ -267,7 +267,6 @@ static void P_NetArchivePlayers(void)
|
|||
WRITESINT8(save_p, players[i].drift);
|
||||
WRITEFIXED(save_p, players[i].driftcharge);
|
||||
WRITEUINT8(save_p, players[i].driftboost);
|
||||
WRITEUINT8(save_p, players[i].strongdriftboost);
|
||||
|
||||
WRITESINT8(save_p, players[i].aizdriftstrat);
|
||||
WRITEINT32(save_p, players[i].aizdrifttilt);
|
||||
|
|
@ -288,17 +287,12 @@ static void P_NetArchivePlayers(void)
|
|||
|
||||
WRITEFIXED(save_p, players[i].fastfall);
|
||||
|
||||
WRITEUINT8(save_p, players[i].numboosts);
|
||||
WRITEFIXED(save_p, players[i].boostpower);
|
||||
WRITEFIXED(save_p, players[i].speedboost);
|
||||
WRITEFIXED(save_p, players[i].accelboost);
|
||||
WRITEFIXED(save_p, players[i].handleboost);
|
||||
WRITEANGLE(save_p, players[i].boostangle);
|
||||
|
||||
WRITEFIXED(save_p, players[i].draftpower);
|
||||
WRITEUINT16(save_p, players[i].draftleeway);
|
||||
WRITESINT8(save_p, players[i].lastdraft);
|
||||
|
||||
WRITEUINT8(save_p, players[i].tripwireState);
|
||||
WRITEUINT8(save_p, players[i].tripwirePass);
|
||||
WRITEUINT16(save_p, players[i].tripwireLeniency);
|
||||
|
|
@ -330,7 +324,6 @@ static void P_NetArchivePlayers(void)
|
|||
WRITESINT8(save_p, players[i].stealingtimer);
|
||||
|
||||
WRITEUINT16(save_p, players[i].sneakertimer);
|
||||
WRITEUINT8(save_p, players[i].numsneakers);
|
||||
WRITEUINT8(save_p, players[i].floorboost);
|
||||
|
||||
WRITEUINT8(save_p, players[i].boostcharge);
|
||||
|
|
@ -563,7 +556,6 @@ static void P_NetUnArchivePlayers(void)
|
|||
players[i].drift = READSINT8(save_p);
|
||||
players[i].driftcharge = READFIXED(save_p);
|
||||
players[i].driftboost = READUINT8(save_p);
|
||||
players[i].strongdriftboost = READUINT8(save_p);
|
||||
|
||||
players[i].aizdriftstrat = READSINT8(save_p);
|
||||
players[i].aizdrifttilt = READINT32(save_p);
|
||||
|
|
@ -584,17 +576,12 @@ static void P_NetUnArchivePlayers(void)
|
|||
|
||||
players[i].fastfall = READFIXED(save_p);
|
||||
|
||||
players[i].numboosts = READUINT8(save_p);
|
||||
players[i].boostpower = READFIXED(save_p);
|
||||
players[i].speedboost = READFIXED(save_p);
|
||||
players[i].accelboost = READFIXED(save_p);
|
||||
players[i].handleboost = READFIXED(save_p);
|
||||
players[i].boostangle = READANGLE(save_p);
|
||||
|
||||
players[i].draftpower = READFIXED(save_p);
|
||||
players[i].draftleeway = READUINT16(save_p);
|
||||
players[i].lastdraft = READSINT8(save_p);
|
||||
|
||||
players[i].tripwireState = READUINT8(save_p);
|
||||
players[i].tripwirePass = READUINT8(save_p);
|
||||
players[i].tripwireLeniency = READUINT16(save_p);
|
||||
|
|
@ -626,7 +613,6 @@ static void P_NetUnArchivePlayers(void)
|
|||
players[i].stealingtimer = READSINT8(save_p);
|
||||
|
||||
players[i].sneakertimer = READUINT16(save_p);
|
||||
players[i].numsneakers = READUINT8(save_p);
|
||||
players[i].floorboost = READUINT8(save_p);
|
||||
|
||||
players[i].boostcharge = READUINT8(save_p);
|
||||
|
|
|
|||
|
|
@ -8255,7 +8255,10 @@ void T_Friction(friction_t *f)
|
|||
// apparently, all I had to do was comment out part of the next line and
|
||||
// friction works for all mobj's
|
||||
// (or at least MF_PUSHABLEs, which is all I care about anyway)
|
||||
if (!(thing->flags & (MF_NOGRAVITY | MF_NOCLIP)) && thing->z == thing->floorz)
|
||||
// Readded v1 kart condition - Nep
|
||||
if (!(thing->flags & (MF_NOGRAVITY | MF_NOCLIP)) && thing->z == thing->floorz && (thing->player
|
||||
&& (thing->player->invincibilitytimer == 0 && thing->player->hyudorotimer == 0
|
||||
&& thing->player->sneakertimer == 0 && thing->player->growshrinktimer <= 0)))
|
||||
{
|
||||
if (f->roverfriction)
|
||||
{
|
||||
|
|
|
|||
71
src/p_user.c
71
src/p_user.c
|
|
@ -1919,39 +1919,37 @@ static void P_3dMovement(player_t *player)
|
|||
// 2) If "yes" to 1, were we moving over topspeed to begin with?
|
||||
// 3) If "yes" to 2, are we now going faster?
|
||||
|
||||
// Time to ask three questions:
|
||||
// 1) Are we over topspeed?
|
||||
// 2) If "yes" to 1, were we moving over topspeed to begin with?
|
||||
// 3) If "yes" to 2, are we now going faster?
|
||||
|
||||
// If "yes" to 3, normalize to our initial momentum; this will allow thoks to stay as fast as they normally are.
|
||||
// If "no" to 3, ignore it; the player might be going too fast, but they're slowing down, so let them.
|
||||
// If "no" to 2, normalize to topspeed, so we can't suddenly run faster than it of our own accord.
|
||||
// If "no" to 1, we're not reaching any limits yet, so ignore this entirely!
|
||||
// -Shadow Hog
|
||||
// Only do this forced cap of speed when in midair, the kart acceleration code takes into account friction, and
|
||||
// doesn't let you accelerate past top speed, so this is unnecessary on the ground, but in the air is needed to
|
||||
// allow for being able to change direction on spring jumps without being accelerated into the void - Sryder
|
||||
if (!P_IsObjectOnGround(player->mo))
|
||||
newMagnitude = R_PointToDist2(player->mo->momx - player->cmomx, player->mo->momy - player->cmomy, 0, 0);
|
||||
if (newMagnitude > K_GetKartSpeed(player, true, true)) //topspeed)
|
||||
{
|
||||
fixed_t topspeed = K_GetKartSpeed(player, true, true);
|
||||
newMagnitude = R_PointToDist2(player->mo->momx - player->cmomx, player->mo->momy - player->cmomy, 0, 0);
|
||||
if (newMagnitude > topspeed)
|
||||
fixed_t tempmomx, tempmomy;
|
||||
if (oldMagnitude > K_GetKartSpeed(player, true, true) && onground) // SRB2Kart: onground check for air speed cap
|
||||
{
|
||||
fixed_t tempmomx, tempmomy;
|
||||
if (oldMagnitude > topspeed)
|
||||
if (newMagnitude > oldMagnitude)
|
||||
{
|
||||
if (newMagnitude > oldMagnitude)
|
||||
{
|
||||
tempmomx = FixedMul(FixedDiv(player->mo->momx - player->cmomx, newMagnitude), oldMagnitude);
|
||||
tempmomy = FixedMul(FixedDiv(player->mo->momy - player->cmomy, newMagnitude), oldMagnitude);
|
||||
player->mo->momx = tempmomx + player->cmomx;
|
||||
player->mo->momy = tempmomy + player->cmomy;
|
||||
}
|
||||
// else do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
tempmomx = FixedMul(FixedDiv(player->mo->momx - player->cmomx, newMagnitude), topspeed);
|
||||
tempmomy = FixedMul(FixedDiv(player->mo->momy - player->cmomy, newMagnitude), topspeed);
|
||||
tempmomx = FixedMul(FixedDiv(player->mo->momx - player->cmomx, newMagnitude), oldMagnitude);
|
||||
tempmomy = FixedMul(FixedDiv(player->mo->momy - player->cmomy, newMagnitude), oldMagnitude);
|
||||
player->mo->momx = tempmomx + player->cmomx;
|
||||
player->mo->momy = tempmomy + player->cmomy;
|
||||
}
|
||||
// else do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
tempmomx = FixedMul(FixedDiv(player->mo->momx - player->cmomx, newMagnitude), K_GetKartSpeed(player, true, true)); //topspeed)
|
||||
tempmomy = FixedMul(FixedDiv(player->mo->momy - player->cmomy, newMagnitude), K_GetKartSpeed(player, true, true)); //topspeed)
|
||||
player->mo->momx = tempmomx + player->cmomx;
|
||||
player->mo->momy = tempmomy + player->cmomy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2318,7 +2316,7 @@ void P_MovePlayer(player_t *player)
|
|||
K_SpawnSparkleTrail(player->mo);
|
||||
|
||||
if (player->wipeoutslow > 1 && (leveltime & 1))
|
||||
K_SpawnWipeoutTrail(player->mo);
|
||||
K_SpawnWipeoutTrail(player->mo, false);
|
||||
|
||||
K_DriftDustHandling(player->mo);
|
||||
|
||||
|
|
@ -4297,6 +4295,33 @@ void P_PlayerThink(player_t *player)
|
|||
|
||||
P_DoBubbleBreath(player); // Spawn Sonic's bubbles
|
||||
P_CheckInvincibilityTimer(player); // Spawn Invincibility Sparkles
|
||||
|
||||
// "Blur" a bit when you have speed shoes and are going fast enough
|
||||
if ((player->driftboost || player->sneakertimer || player->startboost || player->ringboost) && !player->invincibilitytimer // SRB2kart
|
||||
&& (player->speed + abs(player->mo->momz)) > FixedMul(20*FRACUNIT,player->mo->scale))
|
||||
{
|
||||
UINT8 i;
|
||||
mobj_t *gmobj = P_SpawnGhostMobj(player->mo);
|
||||
|
||||
gmobj->fuse = 2;
|
||||
if (leveltime & 1)
|
||||
{
|
||||
gmobj->frame &= ~FF_TRANSMASK;
|
||||
gmobj->frame |= tr_trans70<<FF_TRANSSHIFT;
|
||||
}
|
||||
|
||||
// Hide the mobj from our sights if we're the displayplayer and chasecam is off.
|
||||
// Why not just not spawn the mobj? Well, I'd rather only flirt with
|
||||
// consistency so much...
|
||||
for (i = 0; i <= splitscreen; i++)
|
||||
{
|
||||
if (player == &players[displayplayers[i]] && !camera[i].chase)
|
||||
{
|
||||
gmobj->renderflags |= RF_DONTDRAW;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// check for buttons
|
||||
if (cmd->buttons & BT_ACCELERATE)
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@
|
|||
#pragma interface
|
||||
#endif
|
||||
|
||||
#define MISSING_TEXTURE "AASMELLY" // Replacement for invalid textures
|
||||
|
||||
#define MISSING_TEXTURE "MISSTEX" // Replacement for invalid textures
|
||||
|
||||
// A single patch from a texture definition,
|
||||
// basically a rectangular area within
|
||||
// the texture rectangle.
|
||||
|
|
|
|||
Loading…
Reference in a new issue