diff --git a/src/k_hud.cpp b/src/k_hud.cpp index e499726c9..8aa536a93 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -1166,6 +1166,10 @@ const char *K_GetItemPatch(UINT8 item, boolean tiny) return (tiny ? "K_ISORBN" : "K_ITORB3"); case KRITEM_QUADORBINAUT: return (tiny ? "K_ISORBN" : "K_ITORB4"); + case KITEM_TOXOMISTER: + return (tiny ? "K_ISTOX" : "K_ITTOX"); + case KITEM_STONESHOE: + return (tiny ? "K_ISSTON" : "K_ITSTON"); default: return (tiny ? "K_ISSAD" : "K_ITSAD"); } diff --git a/src/k_menudraw.c b/src/k_menudraw.c index 09bc1e8b4..2d96b44d7 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -376,7 +376,7 @@ static void M_DrawMenuParty(void) UINT16 color; UINT8 *colormap; - if (setup_numplayers == 0 || currentMenu == &PLAY_CharSelectDef || currentMenu == &MISC_ChallengesDef) + if (setup_numplayers == 0 || currentMenu == &PLAY_CharSelectDef || currentMenu == &OPTIONS_GameplayItemsDef || currentMenu == &MISC_ChallengesDef) { return; } @@ -5721,14 +5721,17 @@ void M_DrawItemToggles(void) const INT32 height = 4; const INT32 spacing = 35; const INT32 column = itemOn/height; - //const INT32 row = itemOn%height; + const INT32 row = itemOn%height; INT32 leftdraw, rightdraw, totaldraw; - INT32 x = currentMenu->x + M_EaseWithTransition(Easing_Linear, 5 * 64), y = currentMenu->y; + INT32 x, y = currentMenu->y; INT32 onx = 0, ony = 0; consvar_t *cv; INT32 i, drawnum; patch_t *pat; + x = currentMenu->x + + M_EaseWithTransition(Easing_Linear, 5 * 64); + M_DrawMenuTooltips(); M_DrawOptionsMovingButton(); @@ -5774,14 +5777,6 @@ void M_DrawItemToggles(void) } if (currentMenu->menuitems[thisitem].mvar1 == 0) - { - V_DrawScaledPatch(x, y, 0, isbg); - V_DrawScaledPatch(x, y, 0, W_CachePatchName("K_ISTOGL", PU_CACHE)); - y += spacing; - continue; - } - - if (currentMenu->menuitems[thisitem].mvar1 == 255) { V_DrawScaledPatch(x, y, 0, isbgd); y += spacing; @@ -5822,13 +5817,10 @@ void M_DrawItemToggles(void) y = currentMenu->y; } + drawnum = 0; + { if (currentMenu->menuitems[itemOn].mvar1 == 0) - { - V_DrawScaledPatch(onx-1, ony-2, 0, W_CachePatchName("K_ITBG", PU_CACHE)); - V_DrawScaledPatch(onx-1, ony-2, 0, W_CachePatchName("K_ITTOGL", PU_CACHE)); - } - else if (currentMenu->menuitems[itemOn].mvar1 == 255) { V_DrawScaledPatch(onx-1, ony-2, 0, W_CachePatchName("K_ITBGD", PU_CACHE)); if (shitsfree) @@ -5880,6 +5872,18 @@ void M_DrawItemToggles(void) } } } + + // Button prompts + K_DrawGameControl( + (BASEVIDWIDTH/2) - cv_kartfrantic.value, BASEVIDHEIGHT-20, 0, + va( + " Toggle All %s Frantic Mode: %s", + cv_thunderdome.value ? "(Ring Box Mode) " : "(Item Box Mode)", + cv_kartfrantic.value ? " On" : "Off" + ), + 1, TINY_FONT, + (((row == height-1) && (drawnum > 1)) ? V_TRANSLUCENT : 0) + ); } diff --git a/src/menus/options-gameplay-item-toggles.c b/src/menus/options-gameplay-item-toggles.c index d16eee0a9..0ef0272c9 100644 --- a/src/menus/options-gameplay-item-toggles.c +++ b/src/menus/options-gameplay-item-toggles.c @@ -18,8 +18,8 @@ menuitem_t OPTIONS_GameplayItems[] = // Mostly handled by the drawing function. {IT_KEYHANDLER | IT_NOTHING, NULL, "Super Ring", NULL, {.routine = M_HandleItemToggles}, KITEM_SUPERRING, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Self-Propelled Bomb", NULL, {.routine = M_HandleItemToggles}, KITEM_SPB, 0}, - {IT_KEYHANDLER | IT_NOTHING, NULL, NULL, NULL, {.routine = M_HandleItemToggles}, 255, 0}, // maybe KITEM_PUYO eventually? - {IT_KEYHANDLER | IT_NOTHING, NULL, "Toggle All / Ring Box Only", NULL, {.routine = M_HandleItemToggles}, 0, 0}, + {IT_KEYHANDLER | IT_NOTHING, NULL, "Hyudoro", NULL, {.routine = M_HandleItemToggles}, KITEM_HYUDORO, 0}, + {IT_KEYHANDLER | IT_NOTHING, NULL, "Kitchen Sink", NULL, {.routine = M_HandleItemToggles}, KITEM_KITCHENSINK, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Sneaker", NULL, {.routine = M_HandleItemToggles}, KITEM_SNEAKER, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Sneaker x2", NULL, {.routine = M_HandleItemToggles}, KRITEM_DUALSNEAKER, 0}, @@ -28,7 +28,7 @@ menuitem_t OPTIONS_GameplayItems[] = {IT_KEYHANDLER | IT_NOTHING, NULL, "Banana", NULL, {.routine = M_HandleItemToggles}, KITEM_BANANA, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Banana x3", NULL, {.routine = M_HandleItemToggles}, KRITEM_TRIPLEBANANA, 0}, - {IT_KEYHANDLER | IT_NOTHING, NULL, "Eggmark", NULL, {.routine = M_HandleItemToggles}, KITEM_EGGMAN, 0}, + {IT_KEYHANDLER | IT_NOTHING, NULL, "Stone Shoe", NULL, {.routine = M_HandleItemToggles}, KITEM_STONESHOE, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Gachabom", NULL, {.routine = M_HandleItemToggles}, KITEM_GACHABOM, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Orbinaut", NULL, {.routine = M_HandleItemToggles}, KITEM_ORBINAUT, 0}, @@ -41,10 +41,10 @@ menuitem_t OPTIONS_GameplayItems[] = {IT_KEYHANDLER | IT_NOTHING, NULL, "Proximity Mine", NULL, {.routine = M_HandleItemToggles}, KITEM_MINE, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Ballhog", NULL, {.routine = M_HandleItemToggles}, KITEM_BALLHOG, 0}, - {IT_KEYHANDLER | IT_NOTHING, NULL, "Hyudoro", NULL, {.routine = M_HandleItemToggles}, KITEM_HYUDORO, 0}, + {IT_KEYHANDLER | IT_NOTHING, NULL, "Toxomister", NULL, {.routine = M_HandleItemToggles}, KITEM_TOXOMISTER, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Drop Target", NULL, {.routine = M_HandleItemToggles}, KITEM_DROPTARGET, sfx_s258}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Land Mine", NULL, {.routine = M_HandleItemToggles}, KITEM_LANDMINE, 0}, - {IT_KEYHANDLER | IT_NOTHING, NULL, "Pogo Spring", NULL, {.routine = M_HandleItemToggles}, KITEM_POGOSPRING, 0}, + {IT_KEYHANDLER | IT_NOTHING, NULL, "Eggmark", NULL, {.routine = M_HandleItemToggles}, KITEM_EGGMAN, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Invincibility", NULL, {.routine = M_HandleItemToggles}, KITEM_INVINCIBILITY, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Grow", NULL, {.routine = M_HandleItemToggles}, KITEM_GROW, 0}, @@ -54,7 +54,10 @@ menuitem_t OPTIONS_GameplayItems[] = {IT_KEYHANDLER | IT_NOTHING, NULL, "Lightning Shield", NULL, {.routine = M_HandleItemToggles}, KITEM_LIGHTNINGSHIELD, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Bubble Shield", NULL, {.routine = M_HandleItemToggles}, KITEM_BUBBLESHIELD, 0}, {IT_KEYHANDLER | IT_NOTHING, NULL, "Flame Shield", NULL, {.routine = M_HandleItemToggles}, KITEM_FLAMESHIELD, 0}, - {IT_KEYHANDLER | IT_NOTHING, NULL, "Kitchen Sink", NULL, {.routine = M_HandleItemToggles}, KITEM_KITCHENSINK, 0} + {IT_KEYHANDLER | IT_NOTHING, NULL, "Pogo Spring", NULL, {.routine = M_HandleItemToggles}, KITEM_POGOSPRING, 0}, + +// {IT_KEYHANDLER | IT_NOTHING, NULL, NULL, NULL, {.routine = M_HandleItemToggles}, 0, 0}, -- next time, gadget + }; static void init_routine(void) @@ -69,7 +72,7 @@ menu_t OPTIONS_GameplayItemsDef = { &OPTIONS_GameplayDef, 0, OPTIONS_GameplayItems, - 14, 40, + 14, 32, SKINCOLOR_SCARLET, 0, MBF_DRAWBGWHILEPLAYING, NULL, @@ -109,7 +112,35 @@ void M_HandleItemToggles(INT32 choice) (void) choice; - if (menucmd[pid].dpad_lr > 0) + if (M_MenuExtraPressed(pid)) + { + INT32 v = !M_AnyItemsEnabled(); + for (i = 0; i < NUMKARTRESULTS-1; i++) + { + CV_SetValue(&cv_items[i], v); + } + M_ToggleThunderdome(); + if (cv_thunderdome.value) + { + S_StartSoundAtVolume(NULL, sfx_slot02, 80); + } + else + { + S_StartSound(NULL, sfx_itrolf); + } + + M_SetMenuDelay(pid); + } + + else if (M_MenuButtonPressed(pid, MBT_R)) + { + CV_AddValue(&cv_kartfrantic, 1); + S_StartSound(NULL, (cv_kartfrantic.value ? sfx_noooo2 : sfx_kc48)); + + M_SetMenuDelay(pid); + } + + else if (menucmd[pid].dpad_lr > 0) { S_StartSound(NULL, sfx_s3k5b); column++; @@ -168,7 +199,7 @@ void M_HandleItemToggles(INT32 choice) else if (M_MenuConfirmPressed(pid)) { M_SetMenuDelay(pid); - if (currentMenu->menuitems[itemOn].mvar1 == 255) + if (currentMenu->menuitems[itemOn].mvar1 == 0) { //S_StartSound(NULL, sfx_s26d); if (!shitsfree) @@ -178,17 +209,6 @@ void M_HandleItemToggles(INT32 choice) } } else - if (currentMenu->menuitems[itemOn].mvar1 == 0) - { - INT32 v = !M_AnyItemsEnabled(); - S_StartSound(NULL, sfx_s1b4); - for (i = 0; i < NUMKARTRESULTS-1; i++) - { - CV_SetValue(&cv_items[i], v); - } - M_ToggleThunderdome(); - } - else { if (currentMenu->menuitems[itemOn].mvar2) {