mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-05-10 19:01:50 +00:00
Porting over some things from sonicitems
This commit is contained in:
parent
c94df11be1
commit
1a424ba756
9 changed files with 260 additions and 120 deletions
|
|
@ -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_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_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};
|
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}};
|
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};
|
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_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};
|
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}};
|
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}};
|
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};
|
consvar_t cv_votetime = {"votetime", "20", CV_NETVAR, votetime_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
|
||||||
|
|
@ -2495,7 +2495,7 @@ void G_PlayerReborn(INT32 player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (leveltime > 157)
|
if (leveltime > 157 && !p->spectator)
|
||||||
p->kartstuff[k_lakitu] = 48; // Lakitu Spawner
|
p->kartstuff[k_lakitu] = 48; // Lakitu Spawner
|
||||||
|
|
||||||
if (gametype == GT_COOP)
|
if (gametype == GT_COOP)
|
||||||
|
|
|
||||||
210
src/k_kart.c
210
src/k_kart.c
|
|
@ -1349,9 +1349,9 @@ void K_LakituChecker(player_t *player)
|
||||||
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle, 0);
|
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle, 0);
|
||||||
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle, 0);
|
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle, 0);
|
||||||
if (player->mo->eflags & MFE_VERTICALFLIP)
|
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
newz = player->mo->z - 128*FRACUNIT;
|
newz = player->mo->z - 128*(mapheaderinfo[gamemap-1]->mobj_scale);
|
||||||
else
|
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);
|
mo = P_SpawnMobj(newx, newy, newz, MT_LAKITU);
|
||||||
if (mo)
|
if (mo)
|
||||||
{
|
{
|
||||||
|
|
@ -2381,17 +2381,17 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
|
||||||
if (!player)
|
if (!player)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
// Figure out projectile speed by CC
|
// Figure out projectile speed by game speed
|
||||||
switch (gamespeed)
|
switch (gamespeed)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
PROJSPEED = 68*FRACUNIT; // Avg Speed is 34
|
PROJSPEED = 68*(mapheaderinfo[gamemap-1]->mobj_scale); // Avg Speed is 34
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
PROJSPEED = 96*FRACUNIT; // Avg Speed is 48
|
PROJSPEED = 96*(mapheaderinfo[gamemap-1]->mobj_scale); // Avg Speed is 48
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PROJSPEED = 82*FRACUNIT; // Avg Speed is 41
|
PROJSPEED = 82*(mapheaderinfo[gamemap-1]->mobj_scale); // Avg Speed is 41
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2741,7 +2741,8 @@ static void K_DoLightning(player_t *player, boolean bluelightning)
|
||||||
|
|
||||||
mo = (mobj_t *)think;
|
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);
|
P_DamageMobj(mo, player->mo, player->mo, bluelightning ? 65 : 64);
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -4235,8 +4236,8 @@ static void K_initKartHUD(void)
|
||||||
SPDM_X = 9; // 9
|
SPDM_X = 9; // 9
|
||||||
SPDM_Y = BASEVIDHEIGHT- 45; // 155
|
SPDM_Y = BASEVIDHEIGHT- 45; // 155
|
||||||
// Position Number
|
// Position Number
|
||||||
POSI_X = BASEVIDWIDTH - 6; // 268
|
POSI_X = BASEVIDWIDTH - 9; // 268
|
||||||
POSI_Y = BASEVIDHEIGHT- 4; // 138
|
POSI_Y = BASEVIDHEIGHT- 9; // 138
|
||||||
// Top-Four Faces
|
// Top-Four Faces
|
||||||
FACE_X = 9; // 9
|
FACE_X = 9; // 9
|
||||||
FACE_Y = 92; // 92
|
FACE_Y = 92; // 92
|
||||||
|
|
@ -5093,17 +5094,95 @@ void K_ReloadSkinIconGraphics(void)
|
||||||
K_LoadIconGraphics(skins[i].iconprefix, i);
|
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 amnumxpos;
|
||||||
fixed_t amnumypos;
|
fixed_t amnumypos;
|
||||||
INT32 amxpos;
|
INT32 amxpos;
|
||||||
INT32 amypos;
|
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;
|
INT32 lumpnum;
|
||||||
patch_t *AutomapPic;
|
patch_t *AutomapPic;
|
||||||
INT32 i = 0;
|
INT32 i = 0;
|
||||||
INT32 x, y;
|
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.
|
// Draw the HUD only when playing in a level.
|
||||||
// hu_stuff needs this, unlike st_stuff.
|
// hu_stuff needs this, unlike st_stuff.
|
||||||
|
|
@ -5131,106 +5210,27 @@ static void K_drawKartMinimap(void)
|
||||||
else
|
else
|
||||||
V_DrawScaledPatch(x, y, splitflags, AutomapPic);
|
V_DrawScaledPatch(x, y, splitflags, AutomapPic);
|
||||||
|
|
||||||
splitflags &= ~V_HUDTRANSHALF; // Head icons won't be transparent
|
|
||||||
|
|
||||||
if (splitscreen != 2)
|
if (splitscreen != 2)
|
||||||
splitflags |= V_HUDTRANS;
|
{
|
||||||
|
splitflags &= ~minimaptrans;
|
||||||
|
splitflags |= V_HUDTRANSHALF;
|
||||||
|
}
|
||||||
|
|
||||||
// Player's tiny icons on the Automap.
|
// Player's tiny icons on the Automap.
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
{
|
{
|
||||||
|
if (i == displayplayer && splitscreen != 2)
|
||||||
|
continue; // Do displayplayer later
|
||||||
if (players[i].mo && !players[i].spectator)
|
if (players[i].mo && !players[i].spectator)
|
||||||
{
|
K_drawKartMinimapHead(&players[i], x, y, splitflags, 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.
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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)
|
static void K_drawBattleFullscreen(void)
|
||||||
|
|
@ -5460,7 +5460,7 @@ void K_drawKartHUD(void)
|
||||||
K_drawKartPlayerCheck();
|
K_drawKartPlayerCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((splitscreen == 0 || splitscreen == 2) && cv_kartminimap.value)
|
if ((splitscreen == 0 && cv_kartminimap.value) || splitscreen == 2)
|
||||||
K_drawKartMinimap();
|
K_drawKartMinimap();
|
||||||
|
|
||||||
// If the item window is closing, draw it closing!
|
// If the item window is closing, draw it closing!
|
||||||
|
|
|
||||||
|
|
@ -1422,10 +1422,11 @@ static menuitem_t OP_GameOptionsMenu[] =
|
||||||
{IT_STRING | IT_CVAR | IT_CV_SLIDER,
|
{IT_STRING | IT_CVAR | IT_CV_SLIDER,
|
||||||
NULL, "HUD Visibility", &cv_translucenthud, 50},
|
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, "Speedometer Display", &cv_speedometer, 72},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Show Minimap", &cv_kartminimap, 82},
|
{IT_STRING | IT_CVAR, NULL, "Show \"CHECK\"", &cv_kartcheck, 82},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Show \"CHECK\"", &cv_kartcheck, 92},
|
{IT_STRING | IT_CVAR, NULL, "Star SFX", &cv_kartstarsfx, 92},
|
||||||
|
|
||||||
#ifdef SEENAMES
|
#ifdef SEENAMES
|
||||||
{IT_STRING | IT_CVAR, NULL, "HUD Player Names", &cv_seenames, 104},
|
{IT_STRING | IT_CVAR, NULL, "HUD Player Names", &cv_seenames, 104},
|
||||||
|
|
|
||||||
|
|
@ -2005,7 +2005,7 @@ boolean P_CheckRacers(void)
|
||||||
// Check if all the players in the race have finished. If so, end the level.
|
// Check if all the players in the race have finished. If so, end the level.
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3159,7 +3159,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
K_SpinPlayer(player, source);
|
K_SpinPlayer(player, source);
|
||||||
|
|
||||||
// Start shrinking!
|
// 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])));
|
player->kartstuff[k_growshrinktimer] -= (100+20*(16-(player->kartstuff[k_position])));
|
||||||
}
|
}
|
||||||
// Mega Mushroom? Let's take that away.
|
// Mega Mushroom? Let's take that away.
|
||||||
|
|
|
||||||
|
|
@ -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.
|
// Check if all the players in the race have finished. If so, end the level.
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
{
|
{
|
||||||
if (playeringame[i])
|
if (playeringame[i] && !players[i].spectator)
|
||||||
{
|
{
|
||||||
if (!players[i].exiting && players[i].lives > 0)
|
if (!players[i].exiting && players[i].lives > 0)
|
||||||
break;
|
break;
|
||||||
|
|
@ -9280,7 +9280,7 @@ void P_PlayerThink(player_t *player)
|
||||||
// If you've hit the countdown and you haven't made
|
// If you've hit the countdown and you haven't made
|
||||||
// it to the exit, you're a goner!
|
// it to the exit, you're a goner!
|
||||||
else */
|
else */
|
||||||
if (countdown == 1 && !player->exiting && player->lives > 0)
|
if (countdown == 1 && !player->exiting && !player->spectator && player->lives > 0)
|
||||||
{
|
{
|
||||||
if (netgame && player->health > 0)
|
if (netgame && player->health > 0)
|
||||||
CONS_Printf(M_GetText("%s ran out of time.\n"), player_names[player-players]);
|
CONS_Printf(M_GetText("%s ran out of time.\n"), player_names[player-players]);
|
||||||
|
|
|
||||||
70
src/sounds.c
70
src/sounds.c
|
|
@ -505,6 +505,76 @@ sfxinfo_t S_sfx[NUMSFX] =
|
||||||
{"boing", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
{"boing", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||||
{"smkinv", false, 140, 16, -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
|
// SRB2kart - Skin sounds
|
||||||
{"kwin", false, 64, 0, -1, NULL, 0, SKSWIN, -1, LUMPERROR},
|
{"kwin", false, 64, 0, -1, NULL, 0, SKSWIN, -1, LUMPERROR},
|
||||||
{"klose", false, 64, 0, -1, NULL, 0, SKSLOSE, -1, LUMPERROR},
|
{"klose", false, 64, 0, -1, NULL, 0, SKSLOSE, -1, LUMPERROR},
|
||||||
|
|
|
||||||
72
src/sounds.h
72
src/sounds.h
|
|
@ -577,11 +577,79 @@ typedef enum
|
||||||
sfx_boing,
|
sfx_boing,
|
||||||
sfx_smkinv,
|
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_kwin,
|
||||||
sfx_klose,
|
sfx_klose,
|
||||||
sfx_slow,
|
sfx_slow,
|
||||||
//
|
|
||||||
|
|
||||||
sfx_taunt1,
|
sfx_taunt1,
|
||||||
sfx_taunt2,
|
sfx_taunt2,
|
||||||
sfx_taunt3,
|
sfx_taunt3,
|
||||||
|
|
|
||||||
|
|
@ -303,7 +303,7 @@ void VID_BlitLinearScreen(const UINT8 *srcptr, UINT8 *destptr, INT32 width, INT3
|
||||||
#endif
|
#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 UINT8 hudminusalpha[11] = { 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5};
|
||||||
|
|
||||||
static const UINT8 *v_colormap = NULL;
|
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];
|
alphalevel = hudminusalpha[cv_translucenthud.value];
|
||||||
else if (alphalevel == 14)
|
else if (alphalevel == 14)
|
||||||
alphalevel = 10 - cv_translucenthud.value;
|
alphalevel = 10 - cv_translucenthud.value;
|
||||||
else if (alphalevel == 15)
|
/*else if (alphalevel == 15)
|
||||||
alphalevel = hudplusalpha[cv_translucenthud.value];
|
alphalevel = hudplusalpha[cv_translucenthud.value];*/
|
||||||
|
|
||||||
if (alphalevel >= 10)
|
if (alphalevel >= 10)
|
||||||
return; // invis
|
return; // invis
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue