mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-02-21 03:11:24 +00:00
Toggles for kitchen sink, ten banana, & quad orbinaut, and a screen that they can fit on
This commit is contained in:
parent
157819b063
commit
e6303d1889
5 changed files with 285 additions and 55 deletions
|
@ -335,10 +335,13 @@ consvar_t cv_shrink = {"shrink", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NUL
|
|||
consvar_t cv_thundershield = {"thundershield", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_hyudoro = {"hyudoro", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_pogospring = {"pogospring", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_kitchensink = {"kitchensink", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
consvar_t cv_triplesneaker = {"triplesneaker", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_triplebanana = {"triplebanana", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_decabanana = {"decabanana", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_tripleorbinaut = {"tripleorbinaut", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_quadorbinaut = {"quadorbinaut", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_dualjawz = {"dualjawz", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
consvar_t cv_karthud = {"karthud", "Default", CV_SAVE|CV_CALL, karthud_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
|
|
@ -112,9 +112,10 @@ extern consvar_t cv_recycler;*/
|
|||
extern consvar_t cv_sneaker, cv_rocketsneaker, cv_invincibility, cv_banana;
|
||||
extern consvar_t cv_eggmanmonitor, cv_orbinaut, cv_jawz, cv_mine;
|
||||
extern consvar_t cv_ballhog, cv_selfpropelledbomb, cv_grow, cv_shrink;
|
||||
extern consvar_t cv_thundershield, cv_hyudoro, cv_pogospring;
|
||||
extern consvar_t cv_thundershield, cv_hyudoro, cv_pogospring, cv_kitchensink;
|
||||
|
||||
extern consvar_t cv_triplesneaker, cv_triplebanana, cv_tripleorbinaut, cv_dualjawz;
|
||||
extern consvar_t cv_triplesneaker, cv_triplebanana, cv_decabanana;
|
||||
extern consvar_t cv_tripleorbinaut, cv_quadorbinaut, cv_dualjawz;
|
||||
|
||||
extern consvar_t cv_karthud;
|
||||
extern consvar_t cv_kartminimap;
|
||||
|
|
59
src/k_kart.c
59
src/k_kart.c
|
@ -388,10 +388,13 @@ void K_RegisterKartStuff(void)
|
|||
CV_RegisterVar(&cv_thundershield);
|
||||
CV_RegisterVar(&cv_hyudoro);
|
||||
CV_RegisterVar(&cv_pogospring);
|
||||
CV_RegisterVar(&cv_kitchensink);
|
||||
|
||||
CV_RegisterVar(&cv_triplesneaker);
|
||||
CV_RegisterVar(&cv_triplebanana);
|
||||
CV_RegisterVar(&cv_decabanana);
|
||||
CV_RegisterVar(&cv_tripleorbinaut);
|
||||
CV_RegisterVar(&cv_quadorbinaut);
|
||||
CV_RegisterVar(&cv_dualjawz);
|
||||
|
||||
CV_RegisterVar(&cv_kartminimap);
|
||||
|
@ -711,7 +714,7 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed)
|
|||
break;
|
||||
case KRITEM_TENFOLDBANANA:
|
||||
POWERITEMODDS(newodds);
|
||||
if (!cv_triplebanana.value) newodds = 0;
|
||||
if (!cv_decabanana.value) newodds = 0;
|
||||
break;
|
||||
case KRITEM_TRIPLEORBINAUT:
|
||||
POWERITEMODDS(newodds);
|
||||
|
@ -719,7 +722,7 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed)
|
|||
break;
|
||||
case KRITEM_QUADORBINAUT:
|
||||
POWERITEMODDS(newodds);
|
||||
if (!cv_tripleorbinaut.value) newodds = 0;
|
||||
if (!cv_quadorbinaut.value) newodds = 0;
|
||||
break;
|
||||
case KRITEM_DUALJAWZ:
|
||||
POWERITEMODDS(newodds);
|
||||
|
@ -2612,7 +2615,7 @@ static void K_DoHyudoroSteal(player_t *player)
|
|||
prandom = P_RandomFixed();
|
||||
S_StartSound(player->mo, sfx_s3k92);
|
||||
|
||||
if (sink && numplayers > 0) // BEHOLD THE KITCHEN SINK
|
||||
if (sink && numplayers > 0 && cv_kitchensink.value) // BEHOLD THE KITCHEN SINK
|
||||
{
|
||||
player->kartstuff[k_hyudorotimer] = hyudorotime;
|
||||
player->kartstuff[k_stealingtimer] = stealtime;
|
||||
|
@ -4952,6 +4955,56 @@ void K_LoadKartHUDGraphics(void)
|
|||
kp_lapanim_emblem = (patch_t *) W_CachePatchName("K_LAPE00", PU_HUDGFX);
|
||||
}
|
||||
|
||||
// For the item toggle menu
|
||||
const char *K_GetItemPatch(UINT8 item, boolean small)
|
||||
{
|
||||
switch (item)
|
||||
{
|
||||
case KITEM_SNEAKER:
|
||||
case KRITEM_TRIPLESNEAKER:
|
||||
return (small ? "K_ISSHOE" : "K_ITSHOE");
|
||||
case KITEM_ROCKETSNEAKER:
|
||||
return (small ? "K_ISRSHE" : "K_ITRSHE");
|
||||
case KITEM_INVINCIBILITY:
|
||||
return (small ? "K_ISINV1" : "K_ITINV1");
|
||||
case KITEM_BANANA:
|
||||
case KRITEM_TRIPLEBANANA:
|
||||
case KRITEM_TENFOLDBANANA:
|
||||
return (small ? "K_ISBANA" : "K_ITBANA");
|
||||
case KITEM_EGGMAN:
|
||||
return (small ? "K_ISEGGM" : "K_ITEGGM");
|
||||
case KITEM_ORBINAUT:
|
||||
return (small ? "K_ISORBN" : "K_ITORB1");
|
||||
case KITEM_JAWZ:
|
||||
case KRITEM_DUALJAWZ:
|
||||
return (small ? "K_ISJAWZ" : "K_ITJAWZ");
|
||||
case KITEM_MINE:
|
||||
return (small ? "K_ISMINE" : "K_ITMINE");
|
||||
case KITEM_BALLHOG:
|
||||
return (small ? "K_ISBHOG" : "K_ITBHOG");
|
||||
case KITEM_SPB:
|
||||
return (small ? "K_ISSPB" : "K_ITSPB");
|
||||
case KITEM_GROW:
|
||||
return (small ? "K_ISGROW" : "K_ITGROW");
|
||||
case KITEM_SHRINK:
|
||||
return (small ? "K_ISSHRK" : "K_ITSHRK");
|
||||
case KITEM_THUNDERSHIELD:
|
||||
return (small ? "K_ISTHNS" : "K_ITTHNS");
|
||||
case KITEM_HYUDORO:
|
||||
return (small ? "K_ISHYUD" : "K_ITHYUD");
|
||||
case KITEM_POGOSPRING:
|
||||
return (small ? "K_ISPOGO" : "K_ITPOGO");
|
||||
case KITEM_KITCHENSINK:
|
||||
return (small ? "K_ISSINK" : "K_ITSINK");
|
||||
case KRITEM_TRIPLEORBINAUT:
|
||||
return (small ? "K_ISORBN" : "K_ITORB3");
|
||||
case KRITEM_QUADORBINAUT:
|
||||
return (small ? "K_ISORBN" : "K_ITORB4");
|
||||
default:
|
||||
return (small ? "K_ISSAD" : "K_ITSAD");
|
||||
}
|
||||
}
|
||||
|
||||
//}
|
||||
|
||||
INT32 ITEM_X, ITEM_Y; // Item Window
|
||||
|
|
|
@ -57,6 +57,7 @@ void K_CalculateBattleWanted(void);
|
|||
void K_CheckBumpers(void);
|
||||
void K_CheckSpectateStatus(void);
|
||||
|
||||
const char *K_GetItemPatch(UINT8 item, boolean small);
|
||||
INT32 K_calcSplitFlags(INT32 snapflags);
|
||||
void K_LoadKartHUDGraphics(void);
|
||||
fixed_t K_FindCheckX(fixed_t px, fixed_t py, angle_t ang, fixed_t mx, fixed_t my);
|
||||
|
|
272
src/m_menu.c
272
src/m_menu.c
|
@ -54,6 +54,7 @@
|
|||
#include "st_stuff.h"
|
||||
#include "i_sound.h"
|
||||
#include "k_kart.h" // SRB2kart
|
||||
#include "d_player.h" // KITEM_ constants
|
||||
|
||||
// Condition Sets
|
||||
#include "m_cond.h"
|
||||
|
@ -340,7 +341,7 @@ static void M_DrawControl(void);
|
|||
static void M_DrawVideoMenu(void);
|
||||
static void M_DrawHUDOptions(void);
|
||||
static void M_DrawVideoMode(void);
|
||||
//static void M_DrawMonitorToggles(void);
|
||||
static void M_DrawMonitorToggles(void);
|
||||
#ifdef HWRENDER
|
||||
static void M_OGL_DrawFogMenu(void);
|
||||
static void M_OGL_DrawColorMenu(void);
|
||||
|
@ -371,6 +372,7 @@ static void M_HandleSetupMultiPlayer(INT32 choice);
|
|||
static void M_HandleFogColor(INT32 choice);
|
||||
#endif
|
||||
static void M_HandleVideoMode(INT32 choice);
|
||||
static void M_HandleMonitorToggles(INT32 choice);
|
||||
|
||||
// Consvar onchange functions
|
||||
static void Nextmap_OnChange(void);
|
||||
|
@ -1519,27 +1521,30 @@ static menuitem_t OP_ServerOptionsMenu[] =
|
|||
|
||||
static menuitem_t OP_MonitorToggleMenu[] =
|
||||
{
|
||||
// Printing handled by drawing function
|
||||
// Mostly handled by the drawing function.
|
||||
// Instead of using this for dumb monitors, lets use the new item bools we have :V
|
||||
{IT_STRING | IT_CVAR, NULL, "Sneakers", &cv_sneaker, 10},
|
||||
{IT_STRING | IT_CVAR, NULL, "Sneakers x3", &cv_triplesneaker, 18},
|
||||
{IT_STRING | IT_CVAR, NULL, "Rocket Sneakers", &cv_rocketsneaker, 26},
|
||||
{IT_STRING | IT_CVAR, NULL, "Invinciblity", &cv_invincibility, 34},
|
||||
{IT_STRING | IT_CVAR, NULL, "Bananas", &cv_banana, 42},
|
||||
{IT_STRING | IT_CVAR, NULL, "Bananas x3", &cv_triplebanana, 50},
|
||||
{IT_STRING | IT_CVAR, NULL, "Eggman Monitors", &cv_eggmanmonitor, 58},
|
||||
{IT_STRING | IT_CVAR, NULL, "Orbinauts", &cv_orbinaut, 66},
|
||||
{IT_STRING | IT_CVAR, NULL, "Orbinauts x3", &cv_tripleorbinaut, 74},
|
||||
{IT_STRING | IT_CVAR, NULL, "Jawz", &cv_jawz, 82},
|
||||
{IT_STRING | IT_CVAR, NULL, "Jawz x2", &cv_dualjawz, 90},
|
||||
{IT_STRING | IT_CVAR, NULL, "Mines", &cv_mine, 98},
|
||||
{IT_STRING | IT_CVAR, NULL, "Ballhogs", &cv_ballhog, 106},
|
||||
{IT_STRING | IT_CVAR, NULL, "Self-Propelled Bombs",&cv_selfpropelledbomb,114},
|
||||
{IT_STRING | IT_CVAR, NULL, "Grow", &cv_grow, 122},
|
||||
{IT_STRING | IT_CVAR, NULL, "Shrink", &cv_shrink, 130},
|
||||
{IT_STRING | IT_CVAR, NULL, "Thunder Shields", &cv_thundershield, 138},
|
||||
{IT_STRING | IT_CVAR, NULL, "Hyudoros", &cv_hyudoro, 146},
|
||||
{IT_STRING | IT_CVAR, NULL, "Pogo Springs", &cv_pogospring, 154},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Sneakers", M_HandleMonitorToggles, KITEM_SNEAKER},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Sneakers x3", M_HandleMonitorToggles, KRITEM_TRIPLESNEAKER},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Rocket Sneakers", M_HandleMonitorToggles, KITEM_ROCKETSNEAKER},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Invinciblity", M_HandleMonitorToggles, KITEM_INVINCIBILITY},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Bananas", M_HandleMonitorToggles, KITEM_BANANA},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Bananas x3", M_HandleMonitorToggles, KRITEM_TRIPLEBANANA},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Bananas x10", M_HandleMonitorToggles, KRITEM_TENFOLDBANANA},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Eggman Monitors", M_HandleMonitorToggles, KITEM_EGGMAN},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Orbinauts", M_HandleMonitorToggles, KITEM_ORBINAUT},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Orbinauts x3", M_HandleMonitorToggles, KRITEM_TRIPLEORBINAUT},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Orbinauts x4", M_HandleMonitorToggles, KRITEM_QUADORBINAUT},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Mines", M_HandleMonitorToggles, KITEM_MINE},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Jawz", M_HandleMonitorToggles, KITEM_JAWZ},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Jawz x2", M_HandleMonitorToggles, KRITEM_DUALJAWZ},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Ballhogs", M_HandleMonitorToggles, KITEM_BALLHOG},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Self-Propelled Bombs", M_HandleMonitorToggles, KITEM_SPB},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Grow", M_HandleMonitorToggles, KITEM_GROW},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Shrink", M_HandleMonitorToggles, KITEM_SHRINK},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Thunder Shields", M_HandleMonitorToggles, KITEM_THUNDERSHIELD},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Hyudoros", M_HandleMonitorToggles, KITEM_HYUDORO},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Pogo Springs", M_HandleMonitorToggles, KITEM_POGOSPRING},
|
||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "Kitchen Sinks", M_HandleMonitorToggles, KITEM_KITCHENSINK},
|
||||
};
|
||||
|
||||
// ==========================================================================
|
||||
|
@ -1961,18 +1966,17 @@ menu_t OP_ServerOptionsDef = DEFAULTMENUSTYLE("M_SERVER", OP_ServerOptionsMenu,
|
|||
|
||||
//menu_t OP_NetgameOptionsDef = DEFAULTMENUSTYLE("M_SERVER", OP_NetgameOptionsMenu, &OP_ServerOptionsDef, 30, 30);
|
||||
//menu_t OP_GametypeOptionsDef = DEFAULTMENUSTYLE("M_SERVER", OP_GametypeOptionsMenu, &OP_ServerOptionsDef, 30, 30);
|
||||
menu_t OP_MonitorToggleDef = DEFAULTMENUSTYLE("M_GAME", OP_MonitorToggleMenu, &OP_GameOptionsDef, 30, 30);
|
||||
/*menu_t OP_MonitorToggleDef =
|
||||
menu_t OP_MonitorToggleDef =
|
||||
{
|
||||
"M_SERVER",
|
||||
"M_GAME",
|
||||
sizeof (OP_MonitorToggleMenu)/sizeof (menuitem_t),
|
||||
&OP_ServerOptionsDef,
|
||||
&OP_GameOptionsDef,
|
||||
OP_MonitorToggleMenu,
|
||||
M_DrawMonitorToggles,
|
||||
30, 30,
|
||||
47, 30,
|
||||
0,
|
||||
NULL
|
||||
};*/
|
||||
};
|
||||
|
||||
#ifdef HWRENDER
|
||||
menu_t OP_OpenGLOptionsDef = DEFAULTMENUSTYLE("M_VIDEO", OP_OpenGLOptionsMenu, &OP_VideoOptionsDef, 30, 30);
|
||||
|
@ -8422,41 +8426,209 @@ static void M_HandleVideoMode(INT32 ch)
|
|||
// ===============
|
||||
// Monitor Toggles
|
||||
// ===============
|
||||
/*static void M_DrawMonitorToggles(void)
|
||||
static consvar_t *kartitemcvs[NUMKARTRESULTS-1] = {
|
||||
&cv_sneaker,
|
||||
&cv_rocketsneaker,
|
||||
&cv_invincibility,
|
||||
&cv_banana,
|
||||
&cv_eggmanmonitor,
|
||||
&cv_orbinaut,
|
||||
&cv_jawz,
|
||||
&cv_mine,
|
||||
&cv_ballhog,
|
||||
&cv_selfpropelledbomb,
|
||||
&cv_grow,
|
||||
&cv_shrink,
|
||||
&cv_thundershield,
|
||||
&cv_hyudoro,
|
||||
&cv_pogospring,
|
||||
&cv_kitchensink,
|
||||
&cv_triplesneaker,
|
||||
&cv_triplebanana,
|
||||
&cv_decabanana,
|
||||
&cv_tripleorbinaut,
|
||||
&cv_quadorbinaut,
|
||||
&cv_dualjawz
|
||||
};
|
||||
|
||||
static void M_DrawMonitorToggles(void)
|
||||
{
|
||||
INT32 i, y;
|
||||
INT32 sum = 0;
|
||||
const INT32 edges = 4;
|
||||
const INT32 height = 4;
|
||||
const INT32 spacing = 35;
|
||||
const INT32 column = itemOn/height;
|
||||
//const INT32 row = itemOn%height;
|
||||
INT32 leftdraw, rightdraw, totaldraw;
|
||||
INT32 x = currentMenu->x, y = currentMenu->y+(spacing/4);
|
||||
consvar_t *cv;
|
||||
boolean cheating = false;
|
||||
INT32 i;
|
||||
|
||||
M_DrawGenericMenu();
|
||||
M_DrawMenuTitle();
|
||||
|
||||
// Assumes all are cvar type.
|
||||
for (i = 0; i < currentMenu->numitems; ++i)
|
||||
// Find the available space around column
|
||||
leftdraw = rightdraw = column;
|
||||
totaldraw = 0;
|
||||
for (i = 0; (totaldraw < edges*2 && i < edges*4); i++)
|
||||
{
|
||||
cv = (consvar_t *)currentMenu->menuitems[i].itemaction;
|
||||
sum += cv->value;
|
||||
|
||||
if (!CV_IsSetToDefault(cv))
|
||||
cheating = true;
|
||||
if (rightdraw+1 < (currentMenu->numitems/height)+1)
|
||||
{
|
||||
rightdraw++;
|
||||
totaldraw++;
|
||||
}
|
||||
if (leftdraw-1 >= 0)
|
||||
{
|
||||
leftdraw--;
|
||||
totaldraw++;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < currentMenu->numitems; ++i)
|
||||
for (i = leftdraw; i <= rightdraw; i++)
|
||||
{
|
||||
cv = (consvar_t *)currentMenu->menuitems[i].itemaction;
|
||||
y = currentMenu->y + currentMenu->menuitems[i].alphaKey;
|
||||
INT32 j;
|
||||
|
||||
M_DrawSlider(currentMenu->x + 20, y, cv, (i == itemOn));
|
||||
for (j = 0; j < height; j++)
|
||||
{
|
||||
const INT32 thisitem = (i*height)+j;
|
||||
const boolean selected = (thisitem == itemOn);
|
||||
INT32 drawnum = 0;
|
||||
INT32 translucent = 0;
|
||||
|
||||
if (!cv->value)
|
||||
V_DrawRightAlignedString(312, y, V_OLDSPACING|((i == itemOn) ? highlightflags : 0), "None");
|
||||
else
|
||||
V_DrawRightAlignedString(312, y, V_OLDSPACING|((i == itemOn) ? highlightflags : 0), va("%3d%%", (cv->value*100)/sum));
|
||||
if (thisitem >= currentMenu->numitems)
|
||||
continue;
|
||||
|
||||
cv = kartitemcvs[currentMenu->menuitems[thisitem].alphaKey-1];
|
||||
translucent = (cv->value ? 0 : V_TRANSLUCENT);
|
||||
|
||||
switch (currentMenu->menuitems[thisitem].alphaKey)
|
||||
{
|
||||
case KRITEM_DUALJAWZ:
|
||||
drawnum = 2;
|
||||
break;
|
||||
case KRITEM_TRIPLESNEAKER:
|
||||
case KRITEM_TRIPLEBANANA:
|
||||
drawnum = 3;
|
||||
break;
|
||||
case KRITEM_TRIPLEORBINAUT:
|
||||
if (!selected)
|
||||
drawnum = 3;
|
||||
break;
|
||||
case KRITEM_QUADORBINAUT:
|
||||
if (!selected)
|
||||
drawnum = 4;
|
||||
break;
|
||||
case KRITEM_TENFOLDBANANA:
|
||||
drawnum = 10;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (selected)
|
||||
{
|
||||
if (cv->value)
|
||||
V_DrawScaledPatch(x-1, y-2, 0, W_CachePatchName("K_ITBG", PU_CACHE));
|
||||
else
|
||||
V_DrawScaledPatch(x-1, y-2, 0, W_CachePatchName("K_ITBGD", PU_CACHE));
|
||||
|
||||
if (drawnum != 0)
|
||||
{
|
||||
V_DrawScaledPatch(x-1, y-2, 0, W_CachePatchName("K_ITMUL", PU_CACHE));
|
||||
V_DrawScaledPatch(x-1, y-2, translucent, W_CachePatchName(K_GetItemPatch(currentMenu->menuitems[thisitem].alphaKey, !selected), PU_CACHE));
|
||||
V_DrawScaledPatch(x+27, y+39, 0, W_CachePatchName("K_ITX", PU_CACHE));
|
||||
V_DrawKartString(x+37, y+34, translucent, va("%d", drawnum));
|
||||
}
|
||||
else
|
||||
V_DrawScaledPatch(x-1, y-2, translucent, W_CachePatchName(K_GetItemPatch(currentMenu->menuitems[thisitem].alphaKey, !selected), PU_CACHE));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cv->value)
|
||||
V_DrawScaledPatch(x, y, 0, W_CachePatchName("K_ISBG", PU_CACHE));
|
||||
else
|
||||
V_DrawScaledPatch(x, y, 0, W_CachePatchName("K_ISBGD", PU_CACHE));
|
||||
|
||||
if (drawnum != 0)
|
||||
{
|
||||
V_DrawScaledPatch(x, y, 0, W_CachePatchName("K_ISMUL", PU_CACHE));
|
||||
V_DrawScaledPatch(x, y, translucent, W_CachePatchName(K_GetItemPatch(currentMenu->menuitems[thisitem].alphaKey, !selected), PU_CACHE));
|
||||
V_DrawString(x+24, y+31, V_ALLOWLOWERCASE|translucent, va("x%d", drawnum));
|
||||
}
|
||||
else
|
||||
V_DrawScaledPatch(x, y, translucent, W_CachePatchName(K_GetItemPatch(currentMenu->menuitems[thisitem].alphaKey, !selected), PU_CACHE));
|
||||
}
|
||||
|
||||
y += spacing;
|
||||
}
|
||||
|
||||
x += spacing;
|
||||
y = currentMenu->y+(spacing/4);
|
||||
}
|
||||
|
||||
if (cheating)
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, currentMenu->y, warningflags, "* MODIFIED, CHEATS ENABLED *");
|
||||
}*/
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, currentMenu->y, highlightflags, va("* %s *", currentMenu->menuitems[itemOn].text));
|
||||
}
|
||||
|
||||
static void M_HandleMonitorToggles(INT32 choice)
|
||||
{
|
||||
const INT32 width = 6, height = 4;
|
||||
INT32 column = itemOn/height, row = itemOn%height;
|
||||
INT16 next;
|
||||
consvar_t *cv = kartitemcvs[currentMenu->menuitems[itemOn].alphaKey-1];
|
||||
|
||||
switch (choice)
|
||||
{
|
||||
case KEY_RIGHTARROW:
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
column++;
|
||||
if (((column*height)+row) >= currentMenu->numitems)
|
||||
column = 0;
|
||||
next = min(((column*height)+row), currentMenu->numitems-1);
|
||||
itemOn = next;
|
||||
break;
|
||||
|
||||
case KEY_LEFTARROW:
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
column--;
|
||||
if (column < 0)
|
||||
column = width-1;
|
||||
if (((column*height)+row) >= currentMenu->numitems)
|
||||
column--;
|
||||
next = max(((column*height)+row), 0);
|
||||
if (next >= currentMenu->numitems)
|
||||
next = currentMenu->numitems-1;
|
||||
itemOn = next;
|
||||
break;
|
||||
|
||||
case KEY_DOWNARROW:
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
row = (row+1) % height;
|
||||
if (((column*height)+row) >= currentMenu->numitems)
|
||||
row = 0;
|
||||
next = min(((column*height)+row), currentMenu->numitems-1);
|
||||
itemOn = next;
|
||||
break;
|
||||
|
||||
case KEY_UPARROW:
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
row = (row-1) % height;
|
||||
if (row < 0)
|
||||
row = height-1;
|
||||
if (((column*height)+row) >= currentMenu->numitems)
|
||||
row--;
|
||||
next = max(((column*height)+row), 0);
|
||||
if (next >= currentMenu->numitems)
|
||||
next = currentMenu->numitems-1;
|
||||
itemOn = next;
|
||||
break;
|
||||
|
||||
case KEY_ENTER:
|
||||
CV_AddValue(cv,1);
|
||||
break;
|
||||
|
||||
case KEY_ESCAPE:
|
||||
M_ClearMenus(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// =========
|
||||
// Quit Game
|
||||
|
|
Loading…
Reference in a new issue