Some hu_stuff

This commit is contained in:
ZTsukei 2016-03-27 10:43:30 -04:00
parent 242edbf86a
commit dd4bb4259a
4 changed files with 1008 additions and 7 deletions

View File

@ -69,6 +69,7 @@ patch_t *nightsnum[10]; // 0-9
// Level title and credits fonts
patch_t *lt_font[LT_FONTSIZE];
patch_t *cred_font[CRED_FONTSIZE];
patch_t *kart_font[KART_FONTSIZE]; // SRB2kart 16/03/27
static player_t *plr;
boolean chat_on; // entering a chat message?
@ -106,6 +107,7 @@ static patch_t *crosshair[HU_CROSSHAIRS]; // 3 precached crosshair graphics
static void HU_DrawRankings(void);
static void HU_DrawCoopOverlay(void);
static void HU_DrawNetplayCoopOverlay(void);
static void HU_DrawRaceRankings(void);
//======================================================================
// KEYBOARD LAYOUTS FOR ENTERING TEXT
@ -237,6 +239,34 @@ void HU_LoadGraphics(void)
else
cred_font[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
}
// // SRB2kart 16/03/27
// cache the level title font for entire game execution
kart_font[0] = (patch_t *)W_CachePatchName("MKFNT034", PU_HUDGFX); /// \note fake start hack
kart_font[5] = (patch_t *)W_CachePatchName("MKFNT039", PU_HUDGFX); /// \note fake start hack
// Number support
kart_font[13] = (patch_t *)W_CachePatchName("MKFNT047", PU_HUDGFX);
kart_font[14] = (patch_t *)W_CachePatchName("MKFNT048", PU_HUDGFX);
kart_font[15] = (patch_t *)W_CachePatchName("MKFNT049", PU_HUDGFX);
kart_font[16] = (patch_t *)W_CachePatchName("MKFNT050", PU_HUDGFX);
kart_font[17] = (patch_t *)W_CachePatchName("MKFNT051", PU_HUDGFX);
kart_font[18] = (patch_t *)W_CachePatchName("MKFNT052", PU_HUDGFX);
kart_font[19] = (patch_t *)W_CachePatchName("MKFNT053", PU_HUDGFX);
kart_font[20] = (patch_t *)W_CachePatchName("MKFNT054", PU_HUDGFX);
kart_font[21] = (patch_t *)W_CachePatchName("MKFNT055", PU_HUDGFX);
kart_font[22] = (patch_t *)W_CachePatchName("MKFNT056", PU_HUDGFX);
kart_font[23] = (patch_t *)W_CachePatchName("MKFNT057", PU_HUDGFX);
kart_font[24] = (patch_t *)W_CachePatchName("MKFNT058", PU_HUDGFX);
j = KART_REALFONTSTART;
for (i = KART_REALFONTSTART - KART_FONTSTART; i < KART_FONTSIZE; i++)
{
sprintf(buffer, "MKFNT%.3d", j);
j++;
kart_font[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
}
//
//cache numbers too!
for (i = 0; i < 10; i++)
@ -1050,10 +1080,88 @@ static void HU_DrawDemoInfo(void)
}
}
// Heads up displays drawer for the Automap, call each frame
//
void HU_AutomapDrawer(void) // SRB2kart 16/03/27
{
// Automap HUD.
INT32 amnumxpos;
INT32 amnumypos;
INT32 amxpos;
INT32 amypos;
INT32 lumpnum;
patch_t *AutomapPic;
INT32 i = 0;
// Draw the HUD only when playing in a level.
// hu_stuff needs this, unlike st_stuff.
if (Playing() && gamestate == GS_LEVEL)
{
INT32 x, y;
lumpnum = W_CheckNumForName(va("%sR", G_BuildAutoMapName(gamemap)));
if (lumpnum != -1 && (!modifiedgame || (modifiedgame && mapheaderinfo[gamemap-1].automap)))
AutomapPic = W_CachePatchName(va("%sR", G_BuildAutoMapName(gamemap)), PU_CACHE);
else
AutomapPic = W_CachePatchName(va("NOMAPR"), PU_CACHE);
if (splitscreen)
{
x = 160 - (AutomapPic->width/4);
y = 100 - (AutomapPic->height/4);
}
else
{
x = 312 - (AutomapPic->width/2);
y = 60;
}
V_DrawSmallScaledPatch(x, y, 0, AutomapPic);
// Player's tiny icons on the Automap.
if (lumpnum != -1 && (!modifiedgame || (modifiedgame && mapheaderinfo[gamemap-1].automap)))
{
for (i = 0; i < MAXPLAYERS; i++)
{
if (players[i].mo && !players[i].spectator)
{
// amnum xpos & ypos are the icon's speed around the HUD.
// The number being divided by is for how fast it moves.
// The higher the number, the slower it moves.
// am xpos & ypos are the icon's starting position. Withouht
// it, they wouldn't 'spawn' on the top-right side of the HUD.
amnumxpos = (players[i].mo->x / 320) >> FRACBITS;
amnumypos = (-players[i].mo->y / 340) >> FRACBITS;
amxpos = (x + amnumxpos) - (iconprefix[players[i].skin]->width/4);
amypos = (y + amnumypos) - (iconprefix[players[i].skin]->height/4);
if (!players[i].skincolor) // 'default' color
{
V_DrawSmallScaledPatch(amxpos, amypos, 0, iconprefix[players[i].skin]);
}
else
{
UINT8 *colormap = translationtables[players[i].skin] - 256 + (players[i].skincolor<<8);
V_DrawSmallMappedPatch(amxpos, amypos, 0,iconprefix[players[i].skin], colormap);
}
}
}
}
if (!splitscreen && (maptol & TOL_RIDERS || maptol & TOL_KART) && !hu_showscores)
HU_DrawRaceRankings();
}
}
// Heads up displays drawer, call each frame
//
void HU_Drawer(void)
{
// SRB2kart 16/03/27
HU_AutomapDrawer();
// draw chat string plus cursor
if (chat_on)
HU_DrawChat();
@ -1178,6 +1286,114 @@ void HU_Erase(void)
// IN-LEVEL MULTIPLAYER RANKINGS
//======================================================================
//
// HU_DrawRaceRankings // SRB2kart 16/03/27
//
static void HU_DrawRaceRankings(void)
{
playersort_t tab[MAXPLAYERS];
INT32 i, j, scorelines;
boolean completed[MAXPLAYERS];
UINT32 whiteplayer;
INT32 y; // Let's move them closer to the center when there's less
scorelines = 0;
memset(completed, 0, sizeof (completed));
memset(tab, 0, sizeof (playersort_t)*MAXPLAYERS);
// When you play, you quickly see your score because your name is displayed in white.
// When playing back a demo, you quickly see who's the view.
whiteplayer = demoplayback ? displayplayer : consoleplayer;
for (i = 0; i < MAXPLAYERS; i++)
{
tab[i].num = -1;
tab[i].name = 0;
}
for (j = 0; j < MAXPLAYERS; j++)
{
if (!playeringame[j])
continue;
for (i = 0; i < MAXPLAYERS; i++)
{
if (playeringame[i])
{
//the counting formula I use for race is a slight bit complex, so put it out here for simplicity
int checkpointnum = ((players[i].starpostnum - 1) + (numstarposts+1)*players[i].laps) + 1;
if (completed[i] == false && ((unsigned)checkpointnum > tab[scorelines].count
|| ((unsigned)checkpointnum == tab[scorelines].count))
&& (tab[scorelines].num < 0 || players[i].position < players[tab[scorelines].num].position))
{
tab[scorelines].count = checkpointnum;
tab[scorelines].num = i;
tab[scorelines].color = players[i].skincolor;
}
}
}
completed[tab[scorelines].num] = true;
scorelines++;
}
if (scorelines > 8) // Let's have 8 shall we
scorelines = 8; //dont draw past bottom of screen, show the best only
y = 84 - (8*scorelines);
HU_DrawRaceRanking(15, y, tab, scorelines, whiteplayer);
}
//
// HU_DrawRaceRanking // SRB2kart 16/03/27
//
void HU_DrawRaceRanking(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, INT32 whiteplayer)
{
INT32 i;
UINT8 *colormap;
//this function is designed for 8 or less score lines only
I_Assert(scorelines <= 8);
for (i = 0; i < scorelines; i++)
{
if (players[tab[i].num].spectator)
continue; //ignore them.
if (tab[i].color == 0)
{
colormap = colormaps;
if (players[tab[i].num].powers[pw_super])
V_DrawSmallScaledPatch (x, y-4, 0, superprefix[players[tab[i].num].skin]);
else
{
if (tab[i].num != whiteplayer)
V_DrawSmallTranslucentPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin]);
else
V_DrawSmallScaledPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin]);
}
}
else
{
if (players[tab[i].num].powers[pw_super])
{
colormap = (UINT8 *) translationtables[players[tab[i].num].skin] - 256 + (((players[tab[i].num].powers[pw_super]) ? 15 : players[tab[i].num].skincolor)<<8);
V_DrawSmallMappedPatch (x, y-4, 0, superprefix[players[tab[i].num].skin], colormap);
}
else
{
colormap = (UINT8 *) translationtables[players[tab[i].num].skin] - 256 + (tab[i].color<<8);
if (tab[i].num != whiteplayer)
V_DrawSmallTranslucentMappedPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin], colormap);
else
V_DrawSmallMappedPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin], colormap);
}
}
y += 16;
}
}
//
// HU_DrawTabRankings
//
@ -1257,10 +1473,23 @@ void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, I
{
if (circuitmap)
{
if (players[tab[i].num].exiting)
V_DrawRightAlignedString(x+240, y, 0, va("%i:%02i.%02i", G_TicsToMinutes(players[tab[i].num].realtime,true), G_TicsToSeconds(players[tab[i].num].realtime), G_TicsToCentiseconds(players[tab[i].num].realtime)));
if (players[tab[i].num].exiting) // SRB2kart 16/03/27
V_DrawRightAlignedString(x+240, y, V_YELLOWMAP, va("%d:%02d.%02d",
players[tab[i].num].realtime/(60*TICRATE),
players[tab[i].num].realtime/TICRATE % 60,
players[tab[i].num].realtime % TICRATE));
else
V_DrawRightAlignedString(x+240, y, ((players[tab[i].num].health > 0) ? 0 : V_60TRANS), va("%u", tab[i].count));
V_DrawRightAlignedString(x+240, y, 0, va("(CP%02d) %d:%02d.%02d",
tab[i].count,
players[tab[i].num].starposttime/(60*TICRATE),
players[tab[i].num].starposttime/TICRATE % 60,
(int)((players[tab[i].num].starposttime % TICRATE) * (100.00f/TICRATE))));
/*
* if (players[tab[i].num].exiting)
* V_DrawRightAlignedString(x+240, y, 0, va("%i:%02i.%02i", G_TicsToMinutes(players[tab[i].num].realtime,true), G_TicsToSeconds(players[tab[i].num].realtime), G_TicsToCentiseconds(players[tab[i].num].realtime)));
* else
* V_DrawRightAlignedString(x+240, y, ((players[tab[i].num].health > 0) ? 0 : V_60TRANS), va("%u", tab[i].count));
* */
}
else
V_DrawRightAlignedString(x+240, y, ((players[tab[i].num].health > 0) ? 0 : V_60TRANS), va("%i:%02i.%02i", G_TicsToMinutes(tab[i].count,true), G_TicsToSeconds(tab[i].count), G_TicsToCentiseconds(tab[i].count)));
@ -1635,9 +1864,18 @@ static void HU_DrawRankings(void)
{
if (circuitmap)
{
if ((unsigned)players[i].laps+1 >= tab[scorelines].count && completed[i] == false)
// SRB2kart 16/03/27
//the counting formula used for race is a slight bit complex, so it's out here for simplicity
int checkpointnum = ((players[i].starpostnum - 1) + (numstarposts+1)*players[i].laps) + 1;
if (completed[i] == false && ((unsigned)checkpointnum > tab[scorelines].count
|| ((unsigned)checkpointnum == tab[scorelines].count && (tab[scorelines].num < 0
|| players[i].starposttime < players[tab[scorelines].num].starposttime))))
{
tab[scorelines].count = players[i].laps+1;
tab[scorelines].count = checkpointnum;
//if ((unsigned)players[i].laps+1 >= tab[scorelines].count && completed[i] == false)
//{
// tab[scorelines].count = players[i].laps+1;
tab[scorelines].num = i;
tab[scorelines].color = players[i].skincolor;
tab[scorelines].name = player_names[i];

View File

@ -35,6 +35,11 @@
#define CRED_FONTEND 'Z' // the last font character
#define CRED_FONTSIZE (CRED_FONTEND - CRED_FONTSTART + 1)
#define KART_FONTSTART '\"' // the first font characters // SRB2kart 16/03/27
#define KART_REALFONTSTART 'A'
#define KART_FONTEND 'Z' // the last font characters
#define KART_FONTSIZE (KART_FONTEND - KART_FONTSTART + 1)
#define HU_CROSSHAIRS 3 // maximum of 9 - see HU_Init();
extern char *shiftxform; // english translation shift table
@ -63,6 +68,7 @@ extern patch_t *tallnum[10];
extern patch_t *nightsnum[10];
extern patch_t *lt_font[LT_FONTSIZE];
extern patch_t *cred_font[CRED_FONTSIZE];
extern patch_t *kart_font[KART_FONTSIZE]; // SRB2kart 16/03/27
extern patch_t *emeraldpics[7];
extern patch_t *tinyemeraldpics[7];
extern patch_t *rflagico;
@ -93,6 +99,7 @@ boolean HU_Responder(event_t *ev);
void HU_Ticker(void);
void HU_Drawer(void);
void HU_AutomapDrawer(void);
char HU_dequeueChatChar(void);
void HU_Erase(void);
void HU_clearChatChars(void);
@ -100,6 +107,7 @@ void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, I
void HU_DrawTeamTabRankings(playersort_t *tab, INT32 whiteplayer);
void HU_DrawDualTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, INT32 whiteplayer);
void HU_DrawEmeralds(INT32 x, INT32 y, INT32 pemeralds);
void HU_DrawRaceRanking(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, INT32 whiteplayer);
INT32 HU_CreateTeamScoresTbl(playersort_t *tab, UINT32 dmtotals[]);

View File

@ -208,6 +208,13 @@ void A_BrakFireShot();
void A_BrakLobShot();
void A_NapalmScatter();
void A_SpawnFreshCopy();
void A_ItemPop();
void A_CapsulePop();
void A_KartItems();
void A_Hover();
void A_Lakitu();
void A_RedShellChase();
void A_BobombExplode();
// ratio of states to sprites to mobj types is roughly 6 : 1 : 1
#define NUMMOBJFREESLOTS 256
@ -569,7 +576,77 @@ typedef enum sprite
SPR_SRBM,
SPR_SRBN,
SPR_SRBO,
// SRB2kart 16/03/27
SPR_RNDM,
SPR_BSPR,
SPR_MSTR,
SPR_SHEL,
SPR_DSHL,
SPR_RSHL,
SPR_RSHE,
SPR_DRSH,
SPR_NANA,
SPR_PEEL,
SPR_DPEL,
SPR_FAKE,
SPR_DFAK,
SPR_BOOM,
SPR_BOMB,
SPR_THUN,
SPR_SRTV,
SPR_RINV,
SPR_YLBX,
SPR_TION,
SPR_RTEX,
SPR_LAKI,
SPR_DRFT,
SPR_POKE,
SPR_DEVL,
SPR_ANGE,
SPR_PALM,
SPR_FLAG,
SPR_HEDG,
SPR_TWEE,
SPR_HYDR,
SPR_CHES,
SPR_CHIP,
SPR_BRDY,
SPR_SPRZ,
SPR_BBOO,
SPR_GMBA,
SPR_SHYG,
SPR_SNIF,
SPR_THNB,
SPR_THNC,
SPR_SINK,
SPR_BSHL,
SPR_GRST,
SPR_REST,
SPR_BLST,
SPR_KIST,
SPR_LAMP,
SPR_KFRE, // New kart fire trails
//
SPR_FIRSTFREESLOT,
SPR_LASTFREESLOT = SPR_FIRSTFREESLOT + NUMSPRITEFREESLOTS - 1,
NUMSPRITES
@ -3470,6 +3547,616 @@ typedef enum state
S_NAMECHECK,
#endif
// SRB2kart 16/03/27
S_PLAY_STND, // Stand
S_PLAY_RUN1, // Walk
S_PLAY_RUN2,
S_PLAY_RUN3,
S_PLAY_RUN4,
S_PLAY_RUN5,
S_PLAY_RUN6,
S_PLAY_RUN7,
S_PLAY_RUN8,
S_PLAY_SPD1, // Run
S_PLAY_SPD2,
S_PLAY_SPD3,
S_PLAY_SPD4,
S_PLAY_ATK1, // Grind/Fly/Punch
S_PLAY_ATK2,
S_PLAY_ATK3,
S_PLAY_ATK4,
S_PLAY_JUMP, // Jump
S_PLAY_PLG1, // Spring Up
S_PLAY_ABL1, // Perform Tricks
S_PLAY_ABL2,
S_PLAY_ABL3,
S_PLAY_ABL4,
S_PLAY_ABL5,
S_PLAY_ABL6,
S_PLAY_ABL7,
S_PLAY_ABL8,
S_PLAY_PAIN, // Shot
S_PLAY_DIE1, // Massacred
S_PLAY_DIE2,
S_PLAY_DIE3,
S_PLAY_SUPERRUN, // Supersonic Run
S_PLAY_SUPERFLY1, // Supersonic ability
S_PLAY_SUPERFLY2,
S_PLAY_SUPERJUMP, // Supersonic Jump
S_PLAY_SUPERSPRING, // Supersonic spring up
S_PLAY_KARTSTND1, // Mario Kart frames
S_PLAY_KARTSTND2,
S_PLAY_KARTSTNDLEFT1,
S_PLAY_KARTSTNDLEFT2,
S_PLAY_KARTSTNDRIGHT1,
S_PLAY_KARTSTNDRIGHT2,
S_PLAY_KARTWALK1,
S_PLAY_KARTWALK2,
S_PLAY_KARTWALKLEFT1,
S_PLAY_KARTWALKLEFT2,
S_PLAY_KARTWALKRIGHT1,
S_PLAY_KARTWALKRIGHT2,
S_PLAY_KARTRUN1,
S_PLAY_KARTRUN2,
S_PLAY_KARTRUNLEFT1,
S_PLAY_KARTRUNLEFT2,
S_PLAY_KARTRUNRIGHT1,
S_PLAY_KARTRUNRIGHT2,
S_PLAY_KARTDRIFTLEFT1,
S_PLAY_KARTDRIFTLEFT2,
S_PLAY_KARTDRIFTRIGHT1,
S_PLAY_KARTDRIFTRIGHT2,
S_PLAY_KARTSPINOUT1,
S_PLAY_KARTSPINOUT2,
S_PLAY_KARTSPINOUT3,
S_PLAY_KARTSPINOUT4,
S_PLAY_KARTSPINOUT5,
S_PLAY_KARTSPINOUT6,
S_PLAY_KARTSPINOUT7,
S_PLAY_KARTSPINOUT8,
S_PLAY_KARTSQUISHED,
S_PLAY_KARTATK,
S_PLAY_KARTPLG1,
S_PLAY_KARTPAIN,
S_PLAY_KARTDIE1,
S_PLAY_KARTDIE2,
S_PLAY_KARTDIE3,
S_PLAY_KARTSSTND,
S_PLAY_KARTSWALK1,
S_PLAY_KARTSWALK2,
S_PLAY_KARTSWALK3,
S_PLAY_KARTSWALK4,
S_PLAY_KARTSRUN1,
S_PLAY_KARTSRUN2,
S_PLAY_KARTSATK,
S_PLAY_KARTSPLG1,
S_PLAY_KARTSPAIN,
S_PLAY_KARTSDIE1,
S_PLAY_KARTSDIE2,
S_PLAY_KARTSDIE3,
S_PLAY_RSTND, // Sonic R frames
S_PLAY_RRUN1,
S_PLAY_RRUN2,
S_PLAY_RRUN3,
S_PLAY_RRUN4,
S_PLAY_RRUN5,
S_PLAY_RRUN6,
S_PLAY_RRUN7,
S_PLAY_RRUN8,
S_PLAY_RSPD1,
S_PLAY_RSPD2,
S_PLAY_RSPD3,
S_PLAY_RSPD4,
S_PLAY_SKATE1,
S_PLAY_SKATE2,
S_PLAY_SKATE3,
S_PLAY_SKATE4,
S_PLAY_SKATE5,
S_PLAY_SKATE6,
S_PLAY_SKATE7,
S_PLAY_SKATE8,
S_PLAY_SKATE9,
S_PLAY_SKATE10,
S_PLAY_CRUN1,
S_PLAY_CRUN2,
S_PLAY_CRUN3,
S_PLAY_CRUN4,
S_PLAY_CRUN5,
S_PLAY_CRUN6,
S_PLAY_CRUN7,
S_PLAY_CRUN8,
S_PLAY_RATK1,
S_PLAY_RATK2,
S_PLAY_RATK3,
S_PLAY_RATK4,
S_PLAY_SLIDE,
S_PLAY_RPLG1,
S_PLAY_FALL1,
S_PLAY_FALL2,
S_PLAY_SILV1,
S_PLAY_SILV2,
S_PLAY_RABL1,
S_PLAY_RABL2,
S_PLAY_CLIMB1,
S_PLAY_CLIMB2,
S_PLAY_CLIMB3,
S_PLAY_CLIMB4,
S_PLAY_CLIMB5,
S_PLAY_FLY1,
S_PLAY_FLY2,
S_PLAY_FLY3,
S_PLAY_FLY4,
S_PLAY_CFLY1,
S_PLAY_CFLY2,
S_PLAY_CFLY3,
S_PLAY_CFLY4,
S_PLAY_CFLY5,
S_PLAY_CFLY6,
S_PLAY_CFLY7,
S_PLAY_CFLY8,
S_PLAY_RPAIN,
S_PLAY_RDIE1,
S_PLAY_RDIE2,
S_PLAY_RDIE3,
S_PLAY_CARRY,
S_PLAY_DRONE1,
S_PLAY_DRONE2,
S_PLAY_FLY1A,
S_PLAY_FLY1B,
S_PLAY_FLY2A,
S_PLAY_FLY2B,
S_PLAY_FLY3A,
S_PLAY_FLY3B,
S_PLAY_FLY4A,
S_PLAY_FLY4B,
S_PLAY_FLY5A,
S_PLAY_FLY5B,
S_PLAY_FLY6A,
S_PLAY_FLY6B,
S_PLAY_FLY7A,
S_PLAY_FLY7B,
S_PLAY_FLY8A,
S_PLAY_FLY8B,
S_PLAY_FLY9A,
S_PLAY_FLY9B,
// Ex Gear Monitors
S_SPEEDMONITOR,
S_FLYMONITOR,
S_POWERMONITOR,
// Air Tank Capsule
S_AIRTANKBOX,
S_AIRTANKBOX1,
S_AIRTANKBOX2,
S_AIRTANKBOX3,
// Ring Capsule 10
S_SUPERRINGBOX4,
S_SUPERRINGBOX5,
S_SUPERRINGBOX6,
S_SUPERRINGBOX7,
// Ring Capsule 20
S_SUPERRINGBOX8,
S_SUPERRINGBOX9,
S_SUPERRINGBOX10,
S_SUPERRINGBOX11,
// Ring Capsule 30
S_SUPERRINGBOX12,
S_SUPERRINGBOX13,
S_SUPERRINGBOX14,
S_SUPERRINGBOX15,
// Invicibility Capsule
S_PINV5,
S_PINV6,
S_PINV7,
S_PINV8,
// Ring Shield Capsule
S_SHBX,
S_SHBX1,
S_SHBX2,
S_SHBX3,
// Random Capsule
S_RANDOMCAPSULE1,
S_RANDOMCAPSULE2,
S_RANDOMCAPSULE3,
// Capsule Explosion
S_MONITOREXPLOSION6,
S_MONITOREXPLOSION7,
// Blue Diagonal
S_BDIAG1,
S_BDIAG2,
S_BDIAG3,
S_BDIAG4,
S_BDIAG5,
// Side Spring
S_SIDESPRING1,
S_SIDESPRING2,
S_SIDESPRING3,
S_SIDESPRING4,
S_SIDESPRING5,
// Green Shell Shield
S_SHELLSHIELD1,
S_SHELLSHIELD2,
S_SHELLSHIELD3,
S_SHELLSHIELD4,
S_SHELLSHIELD5,
S_SHELLSHIELD6,
S_SHELLSHIELD7,
S_SHELLSHIELD8,
S_TSHELLSHIELD1,
S_TSHELLSHIELD2,
S_TSHELLSHIELD3,
S_TSHELLSHIELD4,
S_TSHELLSHIELD5,
S_TSHELLSHIELD6,
S_TSHELLSHIELD7,
S_TSHELLSHIELD8,
// Green Shell Item
S_SHELLITEM1,
S_SHELLITEM2,
S_SHELLITEM3,
S_SHELLITEM4,
S_SHELLITEM5,
S_SHELLITEM6,
S_SHELLITEM7,
S_SHELLITEM8,
// Dead Green Shell
S_DEADSHELL,
// Red Shell Shield
S_TREDSHELLSHIELD1,
S_TREDSHELLSHIELD2,
S_TREDSHELLSHIELD3,
S_TREDSHELLSHIELD4,
S_TREDSHELLSHIELD5,
S_TREDSHELLSHIELD6,
S_TREDSHELLSHIELD7,
S_TREDSHELLSHIELD8,
S_REDSHELLSHIELD1,
S_REDSHELLSHIELD2,
S_REDSHELLSHIELD3,
S_REDSHELLSHIELD4,
S_REDSHELLSHIELD5,
S_REDSHELLSHIELD6,
S_REDSHELLSHIELD7,
S_REDSHELLSHIELD8,
// Red Shell Item
S_REDSHELLITEM1,
S_REDSHELLITEM2,
S_REDSHELLITEM3,
S_REDSHELLITEM4,
S_REDSHELLITEM5,
S_REDSHELLITEM6,
S_REDSHELLITEM7,
S_REDSHELLITEM8,
// Dead Red Shell
S_DEADREDSHELL,
// Banana Shield
S_BANANASHIELD,
// Banana Item
S_BANANAITEM,
// Dead Banana
S_DEADBANANA,
// Fake Item Shield
S_FAKESHIELD1,
S_FAKESHIELD2,
S_FAKESHIELD3,
S_FAKESHIELD4,
S_FAKESHIELD5,
S_FAKESHIELD6,
S_FAKESHIELD7,
S_FAKESHIELD8,
S_FAKESHIELD9,
S_FAKESHIELD10,
S_FAKESHIELD11,
S_FAKESHIELD12,
S_FAKESHIELD13,
S_FAKESHIELD14,
S_FAKESHIELD15,
S_FAKESHIELD16,
S_FAKESHIELD17,
S_FAKESHIELD18,
S_FAKESHIELD19,
S_FAKESHIELD20,
S_FAKESHIELD21,
S_FAKESHIELD22,
S_FAKESHIELD23,
S_FAKESHIELD24,
S_FAKESHIELD25,
S_FAKESHIELD26,
S_FAKESHIELD27,
S_FAKESHIELD28,
S_FAKESHIELD29,
S_FAKESHIELD30,
S_FAKESHIELD31,
S_FAKESHIELD32,
// Fake Item
S_FAKEITEM1,
S_FAKEITEM2,
S_FAKEITEM3,
S_FAKEITEM4,
S_FAKEITEM5,
S_FAKEITEM6,
S_FAKEITEM7,
S_FAKEITEM8,
S_FAKEITEM9,
S_FAKEITEM10,
S_FAKEITEM11,
S_FAKEITEM12,
S_FAKEITEM13,
S_FAKEITEM14,
S_FAKEITEM15,
S_FAKEITEM16,
S_FAKEITEM17,
S_FAKEITEM18,
S_FAKEITEM19,
S_FAKEITEM20,
S_FAKEITEM21,
S_FAKEITEM22,
S_FAKEITEM23,
S_FAKEITEM24,
S_FAKEITEM25,
S_FAKEITEM26,
S_FAKEITEM27,
S_FAKEITEM28,
S_FAKEITEM29,
S_FAKEITEM30,
S_FAKEITEM31,
S_FAKEITEM32,
// Dead Fake Item
S_DEADFAKEITEM,
// Bomb Shield
S_BOMBSHIELD,
// Bomb Item
S_BOMBAIR,
S_BOMBITEM,
// Bomb Explosion
S_BOMBEXPLODE,
// Thunder Shield
S_THUNDERSHIELD1,
S_THUNDERSHIELD2,
S_THUNDERSHIELD3,
S_THUNDERSHIELD4,
// Lakitu
S_LAKITUSL1,
S_LAKITUSL2,
S_LAKITUSL3,
S_LAKITUSL4,
S_LAKITUSL5,
S_LAKITUSL6,
S_LAKITUSL7,
S_LAKITUSL8,
S_LAKITUSL9,
S_LAKITUSL10,
S_LAKITUSL11,
S_LAKITUSL12,
S_LAKITUSL13,
S_LAKITUFSH1,
S_LAKITUFSH2,
S_LAKITULAP1A,
S_LAKITULAP1B,
S_LAKITULAP2A,
S_LAKITULAP2B,
S_LAKITULAP3A,
S_LAKITULAP3B,
S_LAKITULAP4A,
S_LAKITULAP4B,
S_LAKITULAP5A,
S_LAKITULAP5B,
S_LAKITULAP6A,
S_LAKITULAP6B,
S_LAKITULAP7A,
S_LAKITULAP7B,
S_LAKITULAP8A,
S_LAKITULAP8B,
S_LAKITULAPFA,
S_LAKITULAPFB,
S_LAKITUFLG1,
S_LAKITUFLG2,
S_LAKITUFLG3,
S_LAKITUFLG4,
S_LAKITUFLG5,
S_LAKITUFLG6,
S_LAKITUFLG7,
S_LAKITUFLG8,
// Blue Flames
S_DRIFT1,
S_DRIFT2,
S_DRIFT3,
// Red Flames
S_DRIFT4,
S_DRIFT5,
S_DRIFT6,
// Pokey
S_POKEY1,
S_POKEY2,
S_POKEY3,
S_POKEY4,
S_POKEY5,
S_POKEY6,
S_POKEY7,
S_POKEY8,
S_POKEYIDLE,
// Fire Chain
S_FIRECHAIN1,
S_FIRECHAIN2,
S_FIRECHAIN3,
S_FIRECHAIN4,
// Mario Kart Item Box
S_RANDOMITEM1,
S_RANDOMITEM2,
S_RANDOMITEM3,
S_RANDOMITEM4,
S_RANDOMITEM5,
S_RANDOMITEM6,
S_RANDOMITEM7,
S_RANDOMITEM8,
S_RANDOMITEM9,
S_RANDOMITEM10,
S_RANDOMITEM11,
S_RANDOMITEM12,
S_RANDOMITEM13,
S_RANDOMITEM14,
S_RANDOMITEM15,
S_RANDOMITEM16,
S_RANDOMITEM17,
S_RANDOMITEM18,
S_RANDOMITEM19,
S_RANDOMITEM20,
S_RANDOMITEM21,
S_RANDOMITEM22,
S_RANDOMITEM23,
S_RANDOMITEM24,
S_RANDOMITEM25,
S_RANDOMITEM26,
S_RANDOMITEM27,
S_RANDOMITEM28,
S_RANDOMITEM29,
S_RANDOMITEM30,
S_RANDOMITEM31,
S_RANDOMITEM32,
S_RANDOMITEM33,
// Item Explosion
S_ITEMEXPLOSION1,
S_ITEMEXPLOSION2,
S_ITEMEXPLOSION3,
S_ITEMEXPLOSION4,
S_ITEMEXPLOSION5,
// Non-Transparent Flame
S_FLAYM1,
S_FLAYM2,
S_FLAYM3,
S_FLAYM4,
S_DEVIL,
S_ANGEL,
S_PALMTREE,
S_FLAG,
S_HEDGEHOG,
S_BUSH1,
S_TWEE,
S_HYDRANT,
// Light Grey Smoke
S_SMOK6,
S_SMOK7,
S_SMOK8,
S_SMOK9,
S_SMOK10,
S_CHEESE1,
S_CHEESE2,
S_CHEESE3,
S_CHEESE4,
S_CHIP1,
S_CHIP2,
S_CHIP3,
S_CHIP4,
S_BIRDIE1,
S_BIRDIE2,
S_BIRDIE3,
S_BIRDIE4,
S_RANDOMAUDIENCE,
S_TOAD1,
S_BOO1,
S_GMBA1,
S_SHYG1,
S_SNIF1,
S_TOAD2,
S_BOO2,
S_GMBA2,
S_SHYG2,
S_SNIF2,
S_SKYANIMATION,
// BlueThunder Shield
S_THUNBERSHIELD1,
S_THUNBERSHIELD2,
S_THUNBERSHIELD3,
S_THUNBERSHIELD4,
S_BLUEEXPLODE,
S_KITCHENSINK,
S_GST1,
S_GST2,
S_GST3,
S_GST4,
S_GST5,
S_GST6,
S_GST7,
S_GST8,
S_GST9,
S_RST1,
S_RST2,
S_RST3,
S_RST4,
S_RST5,
S_RST6,
S_RST7,
S_RST8,
S_RST9,
S_KST1,
S_KST2,
S_KST3,
S_REDSHELLITEM9,
S_REDSHELLITEM10,
S_BBLAMP1,
S_BBLAMP2,
S_KARTFIRE1,
S_KARTFIRE2,
S_KARTFIRE3,
S_KARTFIRE4,
S_KARTFIRE5,
S_KARTFIRE6,
S_KARTFIRE7,
S_KARTFIRE8,
//
S_FIRSTFREESLOT,
S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1,
NUMSTATES
@ -3998,6 +4685,72 @@ typedef enum mobj_type
MT_NAMECHECK,
#endif
// SRB2kart 16/03/27
MT_QUESTIONBOX3,
MT_CAPSULEEXPLOSION,
MT_BLUEDIAG,
MT_SIDESPRING,
MT_SHELLSHIELD,
MT_SHELLITEM,
MT_REDSHELLSHIELD,
MT_REDSHELLITEM,
MT_REDSHELLITEM2,
MT_BANANASHIELD,
MT_BANANAITEM,
MT_FAKESHIELD,
MT_FAKEITEM,
MT_BOMBSHIELD,
MT_BOMBITEM,
MT_EXPLOSION,
MT_THUNDERSHIELD,
MT_LAKITU,
MT_DRIFT,
MT_POKEY,
MT_FIREPOINT,
MT_FIRECHAIN,
MT_QUESTIONBOX2,
MT_ITEMEXPLOSION,
MT_FLAYM,
MT_DEVIL,
MT_ANGEL,
MT_PALMTREE,
MT_FLAG,
MT_HEDGEHOG,
MT_TALLBUSH,
MT_TWEE,
MT_HYDRANT,
MT_SMOK2,
MT_SMOK3,
MT_RANDOMAUDIENCE,
MT_ENEMYFLIP,
MT_WAYPOINT,
MT_SKYANIMATION,
MT_THUNBERSHIELD,
MT_BLUEEXPLODE,
MT_TSHELLSHIELD,
MT_TSHELLSHIELD2,
MT_TSHELLSHIELD3,
MT_TREDSHELLSHIELD,
MT_TREDSHELLSHIELD2,
MT_TREDSHELLSHIELD3,
MT_TBANANASHIELD,
MT_TBANANASHIELD2,
MT_TBANANASHIELD3,
MT_KITCHENSINK,
MT_GREENSHELLTRAIL,
MT_REDSHELLTRAIL,
MT_KITCHENSINKTRAIL,
MT_BBLAMP,
MT_KARTFIRETRAIL,
//
MT_FIRSTFREESLOT,
MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1,
NUMMOBJTYPES

View File

@ -91,6 +91,7 @@ static UINT8 cheatf_warp(void)
return 1;
}
/* // SRB2kart 16/03/27
static cheatseq_t cheat_ultimate = {
0, cheatf_ultimate,
{ SCRAMBLE('u'), SCRAMBLE('l'), SCRAMBLE('t'), SCRAMBLE('i'), SCRAMBLE('m'), SCRAMBLE('a'), SCRAMBLE('t'), SCRAMBLE('e'), 0xff }
@ -102,6 +103,7 @@ static cheatseq_t cheat_ultimate_joy = {
SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_RIGHTARROW), SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_RIGHTARROW),
SCRAMBLE(KEY_ENTER), 0xff }
};
* */
static cheatseq_t cheat_warp = {
0, cheatf_warp,
@ -217,8 +219,8 @@ boolean cht_Responder(event_t *ev)
else
ch = (UINT8)ev->data1;
ret += cht_CheckCheat(&cheat_ultimate, (char)ch);
ret += cht_CheckCheat(&cheat_ultimate_joy, (char)ch);
//ret += cht_CheckCheat(&cheat_ultimate, (char)ch); // SRB2kart 16/03/27
//ret += cht_CheckCheat(&cheat_ultimate_joy, (char)ch);
ret += cht_CheckCheat(&cheat_warp, (char)ch);
ret += cht_CheckCheat(&cheat_warp_joy, (char)ch);
return (ret != 0);