From dd4bb4259a76c393201c9a103fcb7ca88ef8d49f Mon Sep 17 00:00:00 2001 From: ZTsukei Date: Sun, 27 Mar 2016 10:43:30 -0400 Subject: [PATCH] Some hu_stuff --- src/hu_stuff.c | 248 +++++++++++++++- src/hu_stuff.h | 8 + src/info.h | 753 +++++++++++++++++++++++++++++++++++++++++++++++++ src/m_cheat.c | 6 +- 4 files changed, 1008 insertions(+), 7 deletions(-) diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 80e30beb..6736363c 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -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]; diff --git a/src/hu_stuff.h b/src/hu_stuff.h index 059448f1..a11e18d2 100644 --- a/src/hu_stuff.h +++ b/src/hu_stuff.h @@ -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[]); diff --git a/src/info.h b/src/info.h index 0c73281d..20458be5 100644 --- a/src/info.h +++ b/src/info.h @@ -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 diff --git a/src/m_cheat.c b/src/m_cheat.c index 8cea4c6a..cb7dd8b9 100644 --- a/src/m_cheat.c +++ b/src/m_cheat.c @@ -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);