Porting over some things from sonicitems

This commit is contained in:
TehRealSalt 2018-02-13 16:48:09 -05:00
parent 0db99ff2c4
commit 3e7fbad490
9 changed files with 260 additions and 120 deletions

View file

@ -352,7 +352,8 @@ consvar_t cv_lightning = {"lightning", "On", CV_NETVAR|CV_CHEAT, CV_OnOff,
consvar_t cv_feather = {"feathers", "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};
consvar_t cv_kartminimap = {"kartminimap", "Yes", CV_SAVE, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
static CV_PossibleValue_t kartminimap_cons_t[] = {{0, "MIN"}, {10, "MAX"}, {0, NULL}};
consvar_t cv_kartminimap = {"kartminimap", "4", CV_SAVE, kartminimap_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_kartcheck = {"kartcheck", "Yes", CV_SAVE, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
static CV_PossibleValue_t kartstarsfx_cons_t[] = {{0, "Music"}, {1, "SMK"}, {0, NULL}};
consvar_t cv_kartstarsfx = {"kartstarsfx", "SMK", CV_SAVE, kartstarsfx_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
@ -363,7 +364,7 @@ consvar_t cv_kartfrantic = {"kartfrantic", "Off", CV_NETVAR|CV_CHEAT|CV_CALL|CV_
consvar_t cv_kartcomeback = {"kartcomeback", "On", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NOINIT, CV_OnOff, KartComeback_OnChange, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_kartmirror = {"kartmirror", "Off", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NOINIT, CV_OnOff, KartMirror_OnChange, 0, NULL, NULL, 0, 0, NULL};
static CV_PossibleValue_t speedometer_cons_t[] = {{0, "Off"}, {1, "Kilometers"}, {2, "Miles"}, {3, "Fracunits"}, {0, NULL}};
consvar_t cv_speedometer = {"speedometer", "Kilometers", CV_SAVE, speedometer_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // use tics in display
consvar_t cv_speedometer = {"speedometer", "Off", CV_SAVE, speedometer_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // use tics in display
static CV_PossibleValue_t votetime_cons_t[] = {{10, "MIN"}, {3600, "MAX"}, {0, NULL}};
consvar_t cv_votetime = {"votetime", "20", CV_NETVAR, votetime_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};

View file

@ -2495,7 +2495,7 @@ void G_PlayerReborn(INT32 player)
}
}
if (leveltime > 157)
if (leveltime > 157 && !p->spectator)
p->kartstuff[k_lakitu] = 48; // Lakitu Spawner
if (gametype == GT_COOP)

View file

@ -1349,9 +1349,9 @@ void K_LakituChecker(player_t *player)
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle, 0);
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle, 0);
if (player->mo->eflags & MFE_VERTICALFLIP)
newz = player->mo->z - 128*FRACUNIT;
newz = player->mo->z - 128*(mapheaderinfo[gamemap-1]->mobj_scale);
else
newz = player->mo->z + 64*FRACUNIT;
newz = player->mo->z + 64*(mapheaderinfo[gamemap-1]->mobj_scale);
mo = P_SpawnMobj(newx, newy, newz, MT_LAKITU);
if (mo)
{
@ -2381,17 +2381,17 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
if (!player)
return NULL;
// Figure out projectile speed by CC
// Figure out projectile speed by game speed
switch (gamespeed)
{
case 0:
PROJSPEED = 68*FRACUNIT; // Avg Speed is 34
PROJSPEED = 68*(mapheaderinfo[gamemap-1]->mobj_scale); // Avg Speed is 34
break;
case 2:
PROJSPEED = 96*FRACUNIT; // Avg Speed is 48
PROJSPEED = 96*(mapheaderinfo[gamemap-1]->mobj_scale); // Avg Speed is 48
break;
default:
PROJSPEED = 82*FRACUNIT; // Avg Speed is 41
PROJSPEED = 82*(mapheaderinfo[gamemap-1]->mobj_scale); // Avg Speed is 41
break;
}
@ -2741,7 +2741,8 @@ static void K_DoLightning(player_t *player, boolean bluelightning)
mo = (mobj_t *)think;
if (mo->type == MT_PLAYER)
if (mo->player && !mo->player->spectator
&& mo->player->kartstuff[k_position] < player->kartstuff[k_position])
P_DamageMobj(mo, player->mo, player->mo, bluelightning ? 65 : 64);
else
continue;
@ -4235,8 +4236,8 @@ static void K_initKartHUD(void)
SPDM_X = 9; // 9
SPDM_Y = BASEVIDHEIGHT- 45; // 155
// Position Number
POSI_X = BASEVIDWIDTH - 6; // 268
POSI_Y = BASEVIDHEIGHT- 4; // 138
POSI_X = BASEVIDWIDTH - 9; // 268
POSI_Y = BASEVIDHEIGHT- 9; // 138
// Top-Four Faces
FACE_X = 9; // 9
FACE_Y = 92; // 92
@ -5093,17 +5094,95 @@ void K_ReloadSkinIconGraphics(void)
K_LoadIconGraphics(skins[i].iconprefix, i);
}
static void K_drawKartMinimap(void)
static void K_drawKartMinimapHead(player_t *player, INT32 x, INT32 y, INT32 flags, patch_t *AutomapPic)
{
// 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.
fixed_t amnumxpos;
fixed_t amnumypos;
INT32 amxpos;
INT32 amypos;
node_t *bsp = &nodes[numnodes-1];
fixed_t maxx, minx, maxy, miny;
maxx = maxy = INT32_MAX;
minx = miny = INT32_MIN;
minx = bsp->bbox[0][BOXLEFT];
maxx = bsp->bbox[0][BOXRIGHT];
miny = bsp->bbox[0][BOXBOTTOM];
maxy = bsp->bbox[0][BOXTOP];
if (bsp->bbox[1][BOXLEFT] < minx)
minx = bsp->bbox[1][BOXLEFT];
if (bsp->bbox[1][BOXRIGHT] > maxx)
maxx = bsp->bbox[1][BOXRIGHT];
if (bsp->bbox[1][BOXBOTTOM] < miny)
miny = bsp->bbox[1][BOXBOTTOM];
if (bsp->bbox[1][BOXTOP] > maxy)
maxy = bsp->bbox[1][BOXTOP];
// You might be wondering why these are being bitshift here
// it's because mapwidth and height would otherwise overflow for maps larger than half the size possible...
// map boundaries and sizes will ALWAYS be whole numbers thankfully
// later calculations take into consideration that these are actually not in terms of FRACUNIT though
minx >>= FRACBITS;
maxx >>= FRACBITS;
miny >>= FRACBITS;
maxy >>= FRACBITS;
fixed_t mapwidth = maxx - minx;
fixed_t mapheight = maxy - miny;
// These should always be small enough to be bitshift back right now
fixed_t xoffset = (minx + mapwidth/2)<<FRACBITS;
fixed_t yoffset = (miny + mapheight/2)<<FRACBITS;
fixed_t xscale = FixedDiv(AutomapPic->width, mapwidth);
fixed_t yscale = FixedDiv(AutomapPic->height, mapheight);
fixed_t zoom = FixedMul(min(xscale, yscale), FRACUNIT-FRACUNIT/20);
amnumxpos = (FixedMul(player->mo->x, zoom) - FixedMul(xoffset, zoom));
amnumypos = -(FixedMul(player->mo->y, zoom) - FixedMul(yoffset, zoom));
amxpos = amnumxpos + ((x + AutomapPic->width/2 - (iconprefix[player->skin]->width/2))<<FRACBITS);
amypos = amnumypos + ((y + AutomapPic->height/2 - (iconprefix[player->skin]->height/2))<<FRACBITS);
if (mirrormode)
{
flags |= V_FLIP;
amxpos = -amnumxpos + ((x + AutomapPic->width/2 + (iconprefix[player->skin]->width/2))<<FRACBITS);
}
if (!player->skincolor) // 'default' color
V_DrawSciencePatch(amxpos, amypos, flags, iconprefix[player->skin], FRACUNIT);
else
{
UINT8 *colormap;
if (player->mo->colorized)
{
colormap = R_GetTranslationColormap(TC_STARMAN, player->mo->color, 0);
}
else
{
colormap = R_GetTranslationColormap(player->skin, player->mo->color, 0);
}
V_DrawFixedPatch(amxpos, amypos, FRACUNIT, flags, iconprefix[player->skin], colormap);
}
}
static void K_drawKartMinimap(void)
{
INT32 lumpnum;
patch_t *AutomapPic;
INT32 i = 0;
INT32 x, y;
INT32 splitflags = V_SNAPTORIGHT|V_HUDTRANSHALF;
const INT32 minimaptrans = ((10-cv_kartminimap.value)<<FF_TRANSSHIFT);
INT32 splitflags = V_SNAPTORIGHT|minimaptrans;
// Draw the HUD only when playing in a level.
// hu_stuff needs this, unlike st_stuff.
@ -5131,106 +5210,27 @@ static void K_drawKartMinimap(void)
else
V_DrawScaledPatch(x, y, splitflags, AutomapPic);
splitflags &= ~V_HUDTRANSHALF; // Head icons won't be transparent
if (splitscreen != 2)
splitflags |= V_HUDTRANS;
{
splitflags &= ~minimaptrans;
splitflags |= V_HUDTRANSHALF;
}
// Player's tiny icons on the Automap.
for (i = 0; i < MAXPLAYERS; i++)
{
if (i == displayplayer && splitscreen != 2)
continue; // Do displayplayer later
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.
node_t *bsp = &nodes[numnodes-1];
fixed_t maxx, minx, maxy, miny;
maxx = maxy = INT32_MAX;
minx = miny = INT32_MIN;
minx = bsp->bbox[0][BOXLEFT];
maxx = bsp->bbox[0][BOXRIGHT];
miny = bsp->bbox[0][BOXBOTTOM];
maxy = bsp->bbox[0][BOXTOP];
if (bsp->bbox[1][BOXLEFT] < minx)
minx = bsp->bbox[1][BOXLEFT];
if (bsp->bbox[1][BOXRIGHT] > maxx)
maxx = bsp->bbox[1][BOXRIGHT];
if (bsp->bbox[1][BOXBOTTOM] < miny)
miny = bsp->bbox[1][BOXBOTTOM];
if (bsp->bbox[1][BOXTOP] > maxy)
maxy = bsp->bbox[1][BOXTOP];
// You might be wondering why these are being bitshift here
// it's because mapwidth and height would otherwise overflow for maps larger than half the size possible...
// map boundaries and sizes will ALWAYS be whole numbers thankfully
// later calculations take into consideration that these are actually not in terms of FRACUNIT though
minx >>= FRACBITS;
maxx >>= FRACBITS;
miny >>= FRACBITS;
maxy >>= FRACBITS;
fixed_t mapwidth = maxx - minx;
fixed_t mapheight = maxy - miny;
// These should always be small enough to be bitshift back right now
fixed_t xoffset = (minx + mapwidth/2)<<FRACBITS;
fixed_t yoffset = (miny + mapheight/2)<<FRACBITS;
fixed_t xscale = FixedDiv(AutomapPic->width, mapwidth);
fixed_t yscale = FixedDiv(AutomapPic->height, mapheight);
fixed_t zoom = FixedMul(min(xscale, yscale), FRACUNIT-FRACUNIT/20);
amnumxpos = (FixedMul(players[i].mo->x, zoom) - FixedMul(xoffset, zoom));
amnumypos = -(FixedMul(players[i].mo->y, zoom) - FixedMul(yoffset, zoom));
amxpos = amnumxpos + ((x + AutomapPic->width/2 - (iconprefix[players[i].skin]->width/2))<<FRACBITS);
amypos = amnumypos + ((y + AutomapPic->height/2 - (iconprefix[players[i].skin]->height/2))<<FRACBITS);
if (mirrormode)
{
amxpos = -amnumxpos + ((x + AutomapPic->width/2 + (iconprefix[players[i].skin]->width/2))<<FRACBITS);
if (!players[i].skincolor) // 'default' color
V_DrawSciencePatch(amxpos, amypos, splitflags|V_FLIP, iconprefix[players[i].skin], FRACUNIT);
else
{
UINT8 *colormap;
if (players[i].mo->colorized)
{
colormap = R_GetTranslationColormap(TC_STARMAN, players[i].mo->color, 0);
}
else
{
colormap = R_GetTranslationColormap(players[i].skin, players[i].mo->color, 0);
}
V_DrawFixedPatch(amxpos, amypos, FRACUNIT, splitflags|V_FLIP, iconprefix[players[i].skin], colormap);
}
}
else
{
if (!players[i].skincolor) // 'default' color
V_DrawSciencePatch(amxpos, amypos, splitflags, iconprefix[players[i].skin], FRACUNIT);
else
{
UINT8 *colormap;
if (players[i].mo->colorized)
{
colormap = R_GetTranslationColormap(TC_STARMAN, players[i].mo->color, 0);
}
else
{
colormap = R_GetTranslationColormap(players[i].skin, players[i].mo->color, 0);
}
V_DrawFixedPatch(amxpos, amypos, FRACUNIT, splitflags, iconprefix[players[i].skin], colormap);
}
}
}
K_drawKartMinimapHead(&players[i], x, y, splitflags, AutomapPic);
}
if (splitscreen == 2)
return; // Don't need this for splits
splitflags &= ~V_HUDTRANSHALF;
splitflags |= V_HUDTRANS;
K_drawKartMinimapHead(stplyr, x, y, splitflags, AutomapPic);
}
static void K_drawBattleFullscreen(void)
@ -5460,7 +5460,7 @@ void K_drawKartHUD(void)
K_drawKartPlayerCheck();
}
if ((splitscreen == 0 || splitscreen == 2) && cv_kartminimap.value)
if ((splitscreen == 0 && cv_kartminimap.value) || splitscreen == 2)
K_drawKartMinimap();
// If the item window is closing, draw it closing!

View file

@ -1422,10 +1422,11 @@ static menuitem_t OP_GameOptionsMenu[] =
{IT_STRING | IT_CVAR | IT_CV_SLIDER,
NULL, "HUD Visibility", &cv_translucenthud, 50},
{IT_STRING | IT_CVAR, NULL, "Star SFX", &cv_kartstarsfx, 62},
{IT_STRING | IT_CVAR | IT_CV_SLIDER,
NULL, "Minimap Visibility", &cv_kartminimap, 62},
{IT_STRING | IT_CVAR, NULL, "Speedometer Display", &cv_speedometer, 72},
{IT_STRING | IT_CVAR, NULL, "Show Minimap", &cv_kartminimap, 82},
{IT_STRING | IT_CVAR, NULL, "Show \"CHECK\"", &cv_kartcheck, 92},
{IT_STRING | IT_CVAR, NULL, "Show \"CHECK\"", &cv_kartcheck, 82},
{IT_STRING | IT_CVAR, NULL, "Star SFX", &cv_kartstarsfx, 92},
#ifdef SEENAMES
{IT_STRING | IT_CVAR, NULL, "HUD Player Names", &cv_seenames, 104},

View file

@ -2005,7 +2005,7 @@ boolean P_CheckRacers(void)
// Check if all the players in the race have finished. If so, end the level.
for (i = 0; i < MAXPLAYERS; i++)
{
if (playeringame[i] && !players[i].exiting && players[i].lives > 0)
if (playeringame[i] && !players[i].spectator && !players[i].exiting && players[i].lives > 0)
break;
}
@ -3159,7 +3159,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
K_SpinPlayer(player, source);
// Start shrinking!
player->mo->destscale = 6*FRACUNIT/8;
player->mo->destscale = 6*(mapheaderinfo[gamemap-1]->mobj_scale)/8;
player->kartstuff[k_growshrinktimer] -= (100+20*(16-(player->kartstuff[k_position])));
}
// Mega Mushroom? Let's take that away.

View file

@ -9258,7 +9258,7 @@ void P_PlayerThink(player_t *player)
// Check if all the players in the race have finished. If so, end the level.
for (i = 0; i < MAXPLAYERS; i++)
{
if (playeringame[i])
if (playeringame[i] && !players[i].spectator)
{
if (!players[i].exiting && players[i].lives > 0)
break;
@ -9280,7 +9280,7 @@ void P_PlayerThink(player_t *player)
// If you've hit the countdown and you haven't made
// it to the exit, you're a goner!
else */
if (countdown == 1 && !player->exiting && player->lives > 0)
if (countdown == 1 && !player->exiting && !player->spectator && player->lives > 0)
{
if (netgame && player->health > 0)
CONS_Printf(M_GetText("%s ran out of time.\n"), player_names[player-players]);

View file

@ -505,6 +505,76 @@ sfxinfo_t S_sfx[NUMSFX] =
{"boing", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"smkinv", false, 140, 16, -1, NULL, 0, -1, -1, LUMPERROR},
// Knuckles Chaotix sounds
{"kc2a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc2b", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc2c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc2d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc2e", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc2f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Pogo Spring
{"kc30", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc31", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc32", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc33", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc34", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc35", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc36", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc37", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc38", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc39", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc3a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc3b", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc3c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc3d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc3e", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc3f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc40", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc41", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc42", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc43", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc44", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc45", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc46", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc47", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc48", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc49", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc4a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc4b", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc4c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc4d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc4e", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc4f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc50", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc51", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc52", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc53", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc54", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc55", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc56", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc57", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc58", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc59", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Shrink
{"kc5a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Grow
{"kc5b", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc5c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc5d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc5e", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc5f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc60", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc61", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc62", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc63", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc64", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc65", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc66", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc67", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc68", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc69", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc6b", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc6c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc6d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"kc6e", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
// SRB2kart - Skin sounds
{"kwin", false, 64, 0, -1, NULL, 0, SKSWIN, -1, LUMPERROR},
{"klose", false, 64, 0, -1, NULL, 0, SKSLOSE, -1, LUMPERROR},

View file

@ -577,11 +577,79 @@ typedef enum
sfx_boing,
sfx_smkinv,
// KC sounds
sfx_kc2a,
sfx_kc2b,
sfx_kc2c,
sfx_kc2d,
sfx_kc2e,
sfx_kc2f,
sfx_kc30,
sfx_kc31,
sfx_kc32,
sfx_kc33,
sfx_kc34,
sfx_kc35,
sfx_kc36,
sfx_kc37,
sfx_kc38,
sfx_kc39,
sfx_kc3a,
sfx_kc3b,
sfx_kc3c,
sfx_kc3d,
sfx_kc3e,
sfx_kc3f,
sfx_kc40,
sfx_kc41,
sfx_kc42,
sfx_kc43,
sfx_kc44,
sfx_kc45,
sfx_kc46,
sfx_kc47,
sfx_kc48,
sfx_kc49,
sfx_kc4a,
sfx_kc4b,
sfx_kc4c,
sfx_kc4d,
sfx_kc4e,
sfx_kc4f,
sfx_kc50,
sfx_kc51,
sfx_kc52,
sfx_kc53,
sfx_kc54,
sfx_kc55,
sfx_kc56,
sfx_kc57,
sfx_kc58,
sfx_kc59,
sfx_kc5a,
sfx_kc5b,
sfx_kc5c,
sfx_kc5d,
sfx_kc5e,
sfx_kc5f,
sfx_kc60,
sfx_kc61,
sfx_kc62,
sfx_kc63,
sfx_kc64,
sfx_kc65,
sfx_kc66,
sfx_kc67,
sfx_kc68,
sfx_kc69,
sfx_kc6b,
sfx_kc6c,
sfx_kc6d,
sfx_kc6e,
sfx_kwin,
sfx_klose,
sfx_slow,
//
sfx_taunt1,
sfx_taunt2,
sfx_taunt3,

View file

@ -303,7 +303,7 @@ void VID_BlitLinearScreen(const UINT8 *srcptr, UINT8 *destptr, INT32 width, INT3
#endif
}
static UINT8 hudplusalpha[11] = { 10, 8, 6, 4, 2, 0, 0, 0, 0, 0, 0};
//static UINT8 hudplusalpha[11] = { 10, 8, 6, 4, 2, 0, 0, 0, 0, 0, 0};
static UINT8 hudminusalpha[11] = { 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5};
static const UINT8 *v_colormap = NULL;
@ -362,8 +362,8 @@ void V_DrawFixedPatch(fixed_t x, fixed_t y, fixed_t pscale, INT32 scrn, patch_t
alphalevel = hudminusalpha[cv_translucenthud.value];
else if (alphalevel == 14)
alphalevel = 10 - cv_translucenthud.value;
else if (alphalevel == 15)
alphalevel = hudplusalpha[cv_translucenthud.value];
/*else if (alphalevel == 15)
alphalevel = hudplusalpha[cv_translucenthud.value];*/
if (alphalevel >= 10)
return; // invis