Updated item toggles menu
Invinc is animated on the title screen, superring now gets locked out Small odds code cleanup since the landmine's result is finally gone
This commit is contained in:
parent
1529a5d94a
commit
9efc468979
3 changed files with 47 additions and 44 deletions
|
|
@ -94,7 +94,7 @@
|
|||
#define ASSET_HASH_TEXTURES_KART 0xb4211b2f32b6a291
|
||||
#define ASSET_HASH_CHARS_KART 0x1e68a3e01aa5c68b
|
||||
#define ASSET_HASH_MAPS_KART 0x38558ed00da41ce9
|
||||
#define ASSET_HASH_MAIN_PK3 0xc60298b5561908c7
|
||||
#define ASSET_HASH_MAIN_PK3 0x3f0509a0ec4bffd7
|
||||
#define ASSET_HASH_MAPPATCH_PK3 0xd4d4ce4a090d5473
|
||||
#define ASSET_HASH_BONUSCHARS_KART 0x60e6f13d822a7461
|
||||
#ifdef USE_PATCH_FILE
|
||||
|
|
|
|||
|
|
@ -200,8 +200,10 @@ patch_t *K_GetCachedItemPatch(kartitemtype_e type, boolean tiny, UINT8 amount)
|
|||
if (graphics->numpatches == 0)
|
||||
return missingpat;
|
||||
|
||||
tic_t timer = G_GamestateUsesLevel() ? leveltime : finalecount;
|
||||
|
||||
if (item->flags & KIF_ANIMATED)
|
||||
return graphics->patches[(leveltime % (graphics->numpatches*3)) / 3];
|
||||
return graphics->patches[(timer % (graphics->numpatches*3)) / 3];
|
||||
else
|
||||
return graphics->patches[CLAMP(amount - 1, 0, graphics->numpatches - 1)];
|
||||
}
|
||||
|
|
@ -695,6 +697,24 @@ static INT32 GetItemOdds(kartroulette_t *roulette, kartresult_t *result, UINT8 *
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: convert into uniqueodds functions (what happened to "already shrunk"?)
|
||||
if (result->type == KITEM_SHRINK)
|
||||
{
|
||||
if (!K_IsKartItemAlternate(KITEM_SHRINK))
|
||||
{
|
||||
if (roulette->pingame-1 <= roulette->pexiting)
|
||||
newodds = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (roulette->rival)
|
||||
{
|
||||
// Rival bot or already shrunk. DON'T roll another.
|
||||
newodds = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (result->unique_odds[oddstable])
|
||||
{
|
||||
// This item has unique odds!
|
||||
|
|
@ -706,35 +726,6 @@ static INT32 GetItemOdds(kartroulette_t *roulette, kartresult_t *result, UINT8 *
|
|||
newodds = uoddsfunc(newodds, roulette, result, forceme);
|
||||
//CONS_Printf("OK!\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (result->type)
|
||||
{
|
||||
// Alt. Invin. odds are handled in its odds function
|
||||
// So are SPB odds
|
||||
case KITEM_LANDMINE:
|
||||
// au revoir
|
||||
newodds = 0;
|
||||
break;
|
||||
case KITEM_SHRINK:
|
||||
if (!K_IsKartItemAlternate(KITEM_SHRINK))
|
||||
{
|
||||
if (roulette->pingame-1 <= roulette->pexiting)
|
||||
newodds = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (roulette->rival)
|
||||
{
|
||||
// Rival bot or already shrunk. DON'T roll another.
|
||||
newodds = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// In very small matches, remove the stupid bottom half item limiter
|
||||
if (roulette->pingame < 6)
|
||||
|
|
|
|||
38
src/m_menu.c
38
src/m_menu.c
|
|
@ -8347,6 +8347,10 @@ INT32 MR_SetupMonitorToggles(INT32 choice)
|
|||
{
|
||||
item->argument = 0;
|
||||
item->patch = result->cvar->name;
|
||||
if (kartitems[result->type].altcvar != NULL)
|
||||
item->tooltip = "Press BACKSPACE to swap variants.";
|
||||
else if (result->type == KITEM_SUPERRING && cv_kartrings.value == 0)
|
||||
item->tooltip = "Rings must be enabled in Gameplay Mods!";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -8376,7 +8380,7 @@ void MD_DrawMonitorToggles(void)
|
|||
INT32 i, translucent;
|
||||
const kartresult_t *result = K_GetKartResult(currentMenu->menuitems[itemOn].patch);
|
||||
const char *displayname;
|
||||
boolean hasalt; // ha, salt! (has alt)
|
||||
//boolean hasalt; // ha, salt! (has alt)
|
||||
if (result != NULL && kartitems[result->type].altcvar != NULL && kartitems[result->type].altcvar->value == 1)
|
||||
result = K_GetKartResultAlt(result->cvar->name, true);
|
||||
|
||||
|
|
@ -8430,7 +8434,11 @@ void MD_DrawMonitorToggles(void)
|
|||
|
||||
kartresult_t *result = K_GetKartResult(currentMenu->menuitems[thisitem].patch);
|
||||
kartitem_t *item = &kartitems[result->type];
|
||||
boolean enabled = K_ItemResultEnabled(result);
|
||||
boolean enabled = result->cvar->value == 1;
|
||||
|
||||
if (result->type == KITEM_SUPERRING && cv_kartrings.value == 0)
|
||||
enabled = false;
|
||||
|
||||
translucent = enabled ? 0 : V_TRANSLUCENT;
|
||||
|
||||
if (enabled)
|
||||
|
|
@ -8457,8 +8465,6 @@ void MD_DrawMonitorToggles(void)
|
|||
y = currentMenu->y+(spacing/4);
|
||||
}
|
||||
|
||||
hasalt = false;
|
||||
|
||||
switch (currentMenu->menuitems[itemOn].argument)
|
||||
{
|
||||
case 2:
|
||||
|
|
@ -8487,7 +8493,11 @@ void MD_DrawMonitorToggles(void)
|
|||
{
|
||||
displayname = result->displayname;
|
||||
kartitem_t *item = &kartitems[result->type];
|
||||
boolean enabled = K_ItemResultEnabled(result);
|
||||
boolean enabled = result->cvar->value == 1;
|
||||
|
||||
if (result->type == KITEM_SUPERRING && cv_kartrings.value == 0)
|
||||
enabled = false;
|
||||
|
||||
translucent = enabled ? 0 : V_TRANSLUCENT;
|
||||
|
||||
if (enabled)
|
||||
|
|
@ -8507,7 +8517,6 @@ void MD_DrawMonitorToggles(void)
|
|||
|
||||
if (item->altcvar != NULL)
|
||||
{
|
||||
hasalt = true;
|
||||
translucent = item->altcvar->value == 1 ? 0 : V_TRANSLUCENT;
|
||||
V_DrawScaledPatch(onx-1, ony-2, translucent, W_CachePatchName("K_ALTITM", PU_CACHE));
|
||||
}
|
||||
|
|
@ -8520,11 +8529,7 @@ void MD_DrawMonitorToggles(void)
|
|||
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, currentMenu->y, MENUCAPS|highlightflags, va("* %s *", displayname));
|
||||
|
||||
if (hasalt)
|
||||
V_DrawThinString(8,
|
||||
BASEVIDHEIGHT - 12,
|
||||
highlightflags | V_ALLOWLOWERCASE | V_SNAPTOBOTTOM | V_SNAPTOLEFT,
|
||||
"Press BACKSPACE to swap variants");
|
||||
M_DrawMenuTooltips();
|
||||
}
|
||||
|
||||
INT32 MR_HandleMonitorToggles(INT32 choice)
|
||||
|
|
@ -8603,8 +8608,15 @@ INT32 MR_HandleMonitorToggles(INT32 choice)
|
|||
}
|
||||
else if (result != NULL)
|
||||
{
|
||||
S_StartSound(NULL, sfx_s1ba);
|
||||
CV_AddValue(result->cvar, 1);
|
||||
if (result->type == KITEM_SUPERRING && cv_kartrings.value == 0)
|
||||
{
|
||||
S_StartSound(NULL, sfx_s231);
|
||||
}
|
||||
else
|
||||
{
|
||||
S_StartSound(NULL, sfx_s1ba);
|
||||
CV_AddValue(result->cvar, 1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue