Merge branch 'master' into net-screen

This commit is contained in:
TehRealSalt 2018-10-07 18:54:22 -04:00
commit e5183523a5
21 changed files with 202 additions and 148 deletions

View File

@ -16,7 +16,7 @@ boolean allow_fullscreen = false;
consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
void I_StartupGraphics(void){}

View File

@ -154,9 +154,9 @@ static CV_PossibleValue_t menuhighlight_cons_t[] =
{V_GOLDMAP, "Always gold"},
{V_LAVENDERMAP, "Always lavender"},
{V_TEAMAP, "Always tea-green"},
{V_STEELMAP, "Always steel"},
{V_STEELMAP, "Always steel-blue"},
{V_PINKMAP, "Always pink"},
{V_TEALMAP, "Always teal"},
{V_BROWNMAP, "Always brown"},
{V_PEACHMAP, "Always peach"},
{0, NULL}
};
@ -291,7 +291,7 @@ static void CONS_backcolor_Change(void)
// TODO: This could probably be improved somehow...
// These colormaps are 99% identical, with just a few changed bytes
UINT8 *yellowmap, *purplemap, *greenmap, *bluemap, *graymap, *redmap, *orangemap,\
*skymap, *goldmap, *lavendermap, *teamap, *steelmap, *pinkmap, *tealmap, *peachmap;
*skymap, *goldmap, *lavendermap, *teamap, *steelmap, *pinkmap, *brownmap, *peachmap;
static void CON_SetupColormaps(void)
{
@ -311,8 +311,8 @@ static void CON_SetupColormaps(void)
teamap = (goldmap+256);
steelmap = (teamap+256);
pinkmap = (steelmap+256);
tealmap = (pinkmap+256);
peachmap = (tealmap+256);
brownmap = (pinkmap+256);
peachmap = (brownmap+256);
// setup the other colormaps, for console text
@ -335,8 +335,8 @@ static void CON_SetupColormaps(void)
goldmap[120] = (UINT8)114;
teamap[120] = (UINT8)177;
steelmap[120] = (UINT8)201;
pinkmap[120] = (UINT8)124;
tealmap[120] = (UINT8)220;
pinkmap[120] = (UINT8)145;
brownmap[120] = (UINT8)48;
peachmap[120] = (UINT8)69; // nice
// Init back colormap

View File

@ -39,7 +39,7 @@ extern UINT32 con_scalefactor; // console text scale factor
extern consvar_t cons_backcolor, cons_menuhighlight;
extern UINT8 *yellowmap, *purplemap, *greenmap, *bluemap, *graymap, *redmap, *orangemap,\
*skymap, *goldmap, *lavendermap, *teamap, *steelmap, *pinkmap, *tealmap, *peachmap;
*skymap, *goldmap, *lavendermap, *teamap, *steelmap, *pinkmap, *brownmap, *peachmap;
// Console bg color (auto updated to match)
extern UINT8 *consolebgmap;

View File

@ -723,20 +723,6 @@ void D_SRB2Loop(void)
}
else if (rendertimeout < entertic) // in case the server hang or netsplit
{
// Lagless camera! Yay!
/* Not yay, it ruins Kart's drift :y
if (gamestate == GS_LEVEL && netgame)
{
if (camera.chase)
P_MoveChaseCamera(&players[displayplayer], &camera, false);
if (splitscreen && camera2.chase)
P_MoveChaseCamera(&players[secondarydisplayplayer], &camera2, false);
if (splitscreen > 1 && camera3.chase)
P_MoveChaseCamera(&players[thirddisplayplayer], &camera3, false);
if (splitscreen > 2 && camera4.chase)
P_MoveChaseCamera(&players[fourthdisplayplayer], &camera4, false);
}
*/
D_Display();
if (moviemode)
@ -1499,6 +1485,29 @@ void D_SRB2Main(void)
}
}
if (M_CheckParm("-skill") && M_IsNextParm())
{
INT32 j;
INT16 newskill = -1;
const char *sskill = M_GetNextParm();
for (j = 0; kartspeed_cons_t[j].strvalue; j++)
if (!strcasecmp(kartspeed_cons_t[j].strvalue, sskill))
{
newskill = (INT16)kartspeed_cons_t[j].value;
break;
}
if (!kartspeed_cons_t[j].strvalue) // reached end of the list with no match
{
j = atoi(sskill); // assume they gave us a skill number, which is okay too
if (j >= 0 && j <= 2)
newskill = (INT16)j;
}
if (newskill != -1)
CV_SetValue(&cv_kartspeed, newskill);
}
if (server && !M_CheckParm("+map"))
{
// Prevent warping to nonexistent levels

View File

@ -7620,9 +7620,9 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart.
"SALMON", // 10 // SKINCOLOR_SALMON
"PINK", // 11 // SKINCOLOR_PINK
"ROSE", // 12 // SKINCOLOR_ROSE
"RASPBERRY", // 13 // SKINCOLOR_RASPBERRY
"RED", // 14 // SKINCOLOR_RED
"RUBY", // 15 // SKINCOLOR_RUBY
"RUBY", // 13 // SKINCOLOR_RUBY
"RASPBERRY", // 14 // SKINCOLOR_RASPBERRY
"RED", // 15 // SKINCOLOR_RED
"CRIMSON", // 16 // SKINCOLOR_CRIMSON
"KETCHUP", // 17 // SKINCOLOR_KETCHUP
"DAWN", // 18 // SKINCOLOR_DAWN
@ -7642,16 +7642,16 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart.
"VOMIT", // 32 // SKINCOLOR_VOMIT
"GARDEN", // 33 // SKINCOLOR_GARDEN
"LIME", // 34 // SKINCOLOR_LIME
"DREAM", // 35 // SKINCOLOR_DREAM
"TEA", // 36 // SKINCOLOR_TEA
"PISTACHIO", // 37 // SKINCOLOR_PISTACHIO
"ROBOHOOD", // 38 // SKINCOLOR_ROBOHOOD
"MOSS", // 39 // SKINCOLOR_MOSS
"MINT", // 40 // SKINCOLOR_MINT
"GREEN", // 41 // SKINCOLOR_GREEN
"PINETREE", // 42 // SKINCOLOR_PINETREE
"EMERALD", // 43 // SKINCOLOR_EMERALD
"SWAMP", // 44 // SKINCOLOR_SWAMP
"TEA", // 35 // SKINCOLOR_TEA
"PISTACHIO", // 36 // SKINCOLOR_PISTACHIO
"ROBOHOOD", // 37 // SKINCOLOR_ROBOHOOD
"MOSS", // 38 // SKINCOLOR_MOSS
"MINT", // 39 // SKINCOLOR_MINT
"GREEN", // 40 // SKINCOLOR_GREEN
"PINETREE", // 41 // SKINCOLOR_PINETREE
"EMERALD", // 42 // SKINCOLOR_EMERALD
"SWAMP", // 43 // SKINCOLOR_SWAMP
"DREAM", // 44 // SKINCOLOR_DREAM
"AQUA", // 45 // SKINCOLOR_AQUA
"TEAL", // 46 // SKINCOLOR_TEAL
"CYAN", // 47 // SKINCOLOR_CYAN
@ -7661,9 +7661,9 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart.
"SLATE", // 51 // SKINCOLOR_SLATE
"STEEL", // 52 // SKINCOLOR_STEEL
"JET", // 53 // SKINCOLOR_JET
"PERIWINKLE", // 54 // SKINCOLOR_PERIWINKLE
"BLUE", // 55 // SKINCOLOR_BLUE
"SAPPHIRE", // 56 // SKINCOLOR_SAPPHIRE
"SAPPHIRE", // 54 // SKINCOLOR_SAPPHIRE
"PERIWINKLE", // 55 // SKINCOLOR_PERIWINKLE
"BLUE", // 56 // SKINCOLOR_BLUE
"BLUEBERRY", // 57 // SKINCOLOR_BLUEBERRY
"DUSK", // 58 // SKINCOLOR_DUSK
"PURPLE", // 59 // SKINCOLOR_PURPLE
@ -8272,7 +8272,7 @@ struct {
{"V_TEAMAP",V_TEAMAP},
{"V_STEELMAP",V_STEELMAP},
{"V_PINKMAP",V_PINKMAP},
{"V_TEALMAP",V_TEALMAP},
{"V_BROWNMAP",V_BROWNMAP},
{"V_PEACHMAP",V_PEACHMAP},
{"V_TRANSLUCENT",V_TRANSLUCENT},
{"V_10TRANS",V_10TRANS},

View File

@ -46,7 +46,7 @@ static void VID_Command_ModeInfo_f (void);
static void VID_Command_ModeList_f (void);
static void VID_Command_Mode_f (void);
consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
static consvar_t cv_stretch = {"stretch", "On", CV_SAVE|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
#define VBEVERSION 2 // we need vesa2 or higher
@ -92,8 +92,8 @@ static vmode_t *pcurrentmode; // the current active videomode.
// table des modes videos.
// seul le mode 320x200x256c standard VGA est support sans le VESA.
// ce mode est le mode numro 0 dans la liste.
// seul le mode 320x200x256c standard VGA est support<EFBFBD> sans le VESA.
// ce mode est le mode num<EFBFBD>ro 0 dans la liste.
typedef struct
{
int modenum; // vesa vbe2.0 modenum

View File

@ -244,9 +244,9 @@ typedef enum
SKINCOLOR_SALMON,
SKINCOLOR_PINK,
SKINCOLOR_ROSE,
SKINCOLOR_RUBY,
SKINCOLOR_RASPBERRY,
SKINCOLOR_RED,
SKINCOLOR_RUBY,
SKINCOLOR_CRIMSON,
SKINCOLOR_KETCHUP,
SKINCOLOR_DAWN,
@ -266,7 +266,6 @@ typedef enum
SKINCOLOR_VOMIT,
SKINCOLOR_GARDEN,
SKINCOLOR_LIME,
SKINCOLOR_DREAM,
SKINCOLOR_TEA,
SKINCOLOR_PISTACHIO,
SKINCOLOR_ROBOHOOD,
@ -276,6 +275,7 @@ typedef enum
SKINCOLOR_PINETREE,
SKINCOLOR_EMERALD,
SKINCOLOR_SWAMP,
SKINCOLOR_DREAM,
SKINCOLOR_AQUA,
SKINCOLOR_TEAL,
SKINCOLOR_CYAN,
@ -285,9 +285,9 @@ typedef enum
SKINCOLOR_SLATE,
SKINCOLOR_STEEL,
SKINCOLOR_JET,
SKINCOLOR_SAPPHIRE, // sweet mother, i cannot weave slender aphrodite has overcome me with longing for a girl
SKINCOLOR_PERIWINKLE,
SKINCOLOR_BLUE,
SKINCOLOR_SAPPHIRE, // sweet mother, i cannot weave slender aphrodite has overcome me with longing for a girl
SKINCOLOR_BLUEBERRY,
SKINCOLOR_DUSK,
SKINCOLOR_PURPLE,

View File

@ -8,7 +8,7 @@ boolean highcolor = false;
boolean allow_fullscreen = false;
consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
void I_StartupGraphics(void){}

View File

@ -435,7 +435,7 @@ static void DoSayCommand(SINT8 target, size_t usedargs, UINT8 flags)
numwords = COM_Argc() - usedargs;
I_Assert(numwords > 0);
if (cv_mute.value && !(server || IsPlayerAdmin(consoleplayer))) // TODO: Per Player mute.
if (CHAT_MUTE) // TODO: Per Player mute.
{
HU_AddChatText(va("%s>ERROR: The chat is muted. You can't say anything.", "\x85"));
return;
@ -567,8 +567,11 @@ static void Command_Sayteam_f(void)
CONS_Alert(CONS_NOTICE, M_GetText("Dedicated servers can't send team messages. Use \"say\".\n"));
return;
}
DoSayCommand(-1, 1, 0);
if (G_GametypeHasTeams()) // revert to normal say if we don't have teams in this gametype.
DoSayCommand(-1, 1, 0);
else
DoSayCommand(0, 1, 0);
}
/** Send a message to everyone, to be displayed by CECHO. Only
@ -721,16 +724,29 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
{
cstart = "\x86"; // grey name
textcolor = "\x86";
}
}
else if (target == -1) // say team
{
if (players[playernum].ctfteam == 1) // red
{
cstart = "\x85";
textcolor = "\x85";
}
else // blue
{
cstart = "\x84";
textcolor = "\x84";
}
}
else
{
const UINT8 color = players[playernum].skincolor;
if (color <= SKINCOLOR_SILVER || color == SKINCOLOR_SLATE)
cstart = "\x80"; // white
else if (color <= SKINCOLOR_BEIGE || color == SKINCOLOR_JET)
else if (color <= SKINCOLOR_BLACK || color == SKINCOLOR_JET)
cstart = "\x86"; // V_GRAYMAP
else if (color <= SKINCOLOR_LEATHER)
cstart = "\x8A"; // V_GOLDMAP
cstart = "\x8e"; // V_BROWNMAP
else if (color <= SKINCOLOR_ROSE || color == SKINCOLOR_LILAC)
cstart = "\x8d"; // V_PINKMAP
else if (color <= SKINCOLOR_KETCHUP)
@ -741,14 +757,12 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
cstart = "\x8f"; // V_PEACHMAP
else if (color <= SKINCOLOR_BRONZE)
cstart = "\x8A"; // V_GOLDMAP
else if (color <= SKINCOLOR_MUSTARD)
else if (color <= SKINCOLOR_OLIVE)
cstart = "\x82"; // V_YELLOWMAP
else if (color <= SKINCOLOR_PISTACHIO)
cstart = "\x8b"; // V_TEAMAP
else if (color <= SKINCOLOR_SWAMP || color == SKINCOLOR_LIME)
else if (color <= SKINCOLOR_DREAM || color == SKINCOLOR_LIME)
cstart = "\x83"; // V_GREENMAP
else if (color <= SKINCOLOR_TEAL)
cstart = "\x8e"; // V_TEALMAP
else if (color <= SKINCOLOR_NAVY || color == SKINCOLOR_SAPPHIRE)
cstart = "\x88"; // V_SKYMAP
else if (color <= SKINCOLOR_STEEL)
@ -783,13 +797,8 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
// '\4' makes the message yellow and beeps; '\3' just beeps.
if (action)
{
fmt = "\3* %s%s%s%s \x82%s\n"; // don't make /me yellow, yellow will be for mentions and PMs!
fmt2 = "* %s%s%s%s \x82%s";
}
else if (target == 0) // To everyone
{
fmt = "\3%s<%s%s%s>\x80 %s%s\n";
fmt2 = "%s<%s%s%s>\x80 %s%s";
fmt = "\3* %s%s%s%s \x82%s%s\n"; // don't make /me yellow, yellow will be for mentions and PMs!
fmt2 = "* %s%s%s%s \x82%s%s";
}
else if (target-1 == consoleplayer) // To you
{
@ -809,7 +818,12 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
fmt2 = "%s<%s%s>%s\x80 %s%s";
}
else // To your team
else // To everyone or sayteam, it doesn't change anything.
{
fmt = "\3%s<%s%s%s>\x80 %s%s\n";
fmt2 = "%s<%s%s%s>\x80 %s%s";
}
/*else // To your team
{
if (players[playernum].ctfteam == 1) // red
prefix = "\x85[TEAM]";
@ -820,8 +834,7 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
fmt = "\3%s<%s%s>\x80%s %s%s\n";
fmt2 = "%s<%s%s>\x80%s %s%s";
}
}*/
HU_AddChatText(va(fmt2, prefix, cstart, dispname, cend, textcolor, msg)); // add it reguardless, in case we decide to change our mind about our chat type.
@ -950,7 +963,7 @@ static void HU_queueChatChar(INT32 c)
c_input = 0;
// last minute mute check
if (cv_mute.value && !(server || IsPlayerAdmin(consoleplayer)))
if (CHAT_MUTE)
{
HU_AddChatText(va("%s>ERROR: The chat is muted. You can't say anything.", "\x85"));
return;
@ -1043,20 +1056,18 @@ static boolean justscrolledup;
boolean HU_Responder(event_t *ev)
{
INT32 c=0;
if (ev->type != ev_keydown)
return false;
// only KeyDown events now...
if (!chat_on)
{
// enter chat mode
if ((ev->data1 == gamecontrol[gc_talkkey][0] || ev->data1 == gamecontrol[gc_talkkey][1])
&& netgame && (!cv_mute.value || server || (IsPlayerAdmin(consoleplayer))))
&& netgame && !OLD_MUTE) // check for old chat mute, still let the players open the chat incase they want to scroll otherwise.
{
if (cv_mute.value && !(server || IsPlayerAdmin(consoleplayer)))
return false;
chat_on = true;
w_chat[0] = 0;
teamtalk = false;
@ -1064,20 +1075,18 @@ boolean HU_Responder(event_t *ev)
return true;
}
if ((ev->data1 == gamecontrol[gc_teamkey][0] || ev->data1 == gamecontrol[gc_teamkey][1])
&& netgame && (!cv_mute.value || server || (IsPlayerAdmin(consoleplayer))))
&& netgame && !OLD_MUTE)
{
if (cv_mute.value && !(server || IsPlayerAdmin(consoleplayer)))
return false;
chat_on = true;
w_chat[0] = 0;
teamtalk = true;
teamtalk = G_GametypeHasTeams(); // Don't teamtalk if we don't have teams.
chat_scrollmedown = true;
return true;
}
}
else // if chat_on
{
// Ignore modifier keys
// Note that we do this here so users can still set
// their chat keys to one of these, if they so desire.
@ -1105,7 +1114,7 @@ boolean HU_Responder(event_t *ev)
// TODO: make chat behave like the console, so that we can go back and edit stuff when we fuck up.
// pasting. pasting is cool. chat is a bit limited, though :(
if ((c == 'v' || c == 'V') && ctrldown)
if (((c == 'v' || c == 'V') && ctrldown) && !CHAT_MUTE)
{
const char *paste = I_ClipboardPaste();
@ -1145,7 +1154,7 @@ boolean HU_Responder(event_t *ev)
}
}
if (HU_keyInChatString(w_chat,c))
if (!CHAT_MUTE && HU_keyInChatString(w_chat,c))
{
HU_queueChatChar(c);
}
@ -1160,21 +1169,21 @@ boolean HU_Responder(event_t *ev)
chat_on = false;
c_input = 0; // reset input cursor
}
else if ((c == KEY_UPARROW || c == KEY_MOUSEWHEELUP) && chat_scroll > 0) // CHAT SCROLLING YAYS!
else if ((c == KEY_UPARROW || c == KEY_MOUSEWHEELUP) && chat_scroll > 0 && !OLDCHAT) // CHAT SCROLLING YAYS!
{
chat_scroll--;
justscrolledup = true;
chat_scrolltime = 4;
}
else if ((c == KEY_DOWNARROW || c == KEY_MOUSEWHEELDOWN) && chat_scroll < chat_maxscroll && chat_maxscroll > 0)
else if ((c == KEY_DOWNARROW || c == KEY_MOUSEWHEELDOWN) && chat_scroll < chat_maxscroll && chat_maxscroll > 0 && !OLDCHAT)
{
chat_scroll++;
justscrolleddown = true;
chat_scrolltime = 4;
}
else if (c == KEY_LEFTARROW && c_input != 0) // i said go back
else if (c == KEY_LEFTARROW && c_input != 0 && !OLDCHAT) // i said go back
c_input--;
else if (c == KEY_RIGHTARROW && c_input < strlen(w_chat))
else if (c == KEY_RIGHTARROW && c_input < strlen(w_chat) && !OLDCHAT) // don't need to check for admin or w/e here since the chat won't ever contain anything if it's muted.
c_input++;
return true;
}
@ -1485,8 +1494,10 @@ static void HU_DrawChat(void)
INT32 charwidth = 4, charheight = 6;
INT32 t = 0, c = 0, y = chaty - (typelines*charheight) - (cv_kartspeedometer.value ? 16 : 0);
UINT32 i = 0, saylen = strlen(w_chat); // You learn new things everyday!
INT32 cflag = 0;
const char *ntalk = "Say: ", *ttalk = "Team: ";
const char *talk = ntalk;
const char *mute = "Chat has been muted.";
if (teamtalk)
{
@ -1498,7 +1509,14 @@ static void HU_DrawChat(void)
t = 0x400; // Blue
#endif
}
if (CHAT_MUTE)
{
talk = mute;
typelines = 1;
cflag = V_GRAYMAP; // set text in gray if chat is muted.
}
V_DrawFillConsoleMap(chatx, y-1, cv_chatwidth.value, (typelines*charheight), 239 | V_SNAPTOBOTTOM | V_SNAPTOLEFT);
while (talk[i])
@ -1506,11 +1524,21 @@ static void HU_DrawChat(void)
if (talk[i] < HU_FONTSTART)
++i;
else
V_DrawChatCharacter(chatx + c + 2, y, talk[i++] |V_SNAPTOBOTTOM|V_SNAPTOLEFT, !cv_allcaps.value, NULL);
{
V_DrawChatCharacter(chatx + c + 2, y, talk[i] |V_SNAPTOBOTTOM|V_SNAPTOLEFT|cflag, !cv_allcaps.value, V_GetStringColormap(talk[i]|cflag));
i++;
}
c += charwidth;
}
// if chat is muted, just draw the log and get it over with:
if (CHAT_MUTE)
{
HU_drawChatLog(0);
return;
}
i = 0;
typelines = 1;
@ -1955,10 +1983,13 @@ void HU_Drawer(void)
}
else
{
if (netgame) // Don't draw it outside, I know it leads to stupid stuff.
{
chat_scrolltime = 0; // do scroll anyway.
typelines = 1; // make sure that the chat doesn't have a weird blinking huge ass square if we typed a lot last time.
if (!OLDCHAT)
HU_drawMiniChat(); // draw messages in a cool fashion.
}
}
if (netgame) // would handle that in hu_drawminichat, but it's actually kinda awkward when you're typing a lot of messages. (only handle that in netgames duh)

View File

@ -81,6 +81,8 @@ extern patch_t *iconprefix[MAXSKINS];
#define CHAT_BUFSIZE 64 // that's enough messages, right? We'll delete the older ones when that gets out of hand.
#define OLDCHAT (cv_consolechat.value || dedicated || vid.width < 640)
#define CHAT_MUTE (cv_mute.value && !(server || IsPlayerAdmin(consoleplayer))) // this still allows to open the chat but not to type. That's used for scrolling and whatnot.
#define OLD_MUTE (OLDCHAT && cv_mute.value && !(server || IsPlayerAdmin(consoleplayer))) // this is used to prevent oldchat from opening when muted.
// some functions
void HU_AddChatText(const char *text);

View File

@ -55,9 +55,9 @@ const char *KartColor_Names[MAXSKINCOLORS] =
"Salmon", // 10 // SKINCOLOR_SALMON
"Pink", // 11 // SKINCOLOR_PINK
"Rose", // 12 // SKINCOLOR_ROSE
"Raspberry", // 13 // SKINCOLOR_RASPBERRY
"Red", // 14 // SKINCOLOR_RED
"Ruby", // 15 // SKINCOLOR_RUBY
"Ruby", // 13 // SKINCOLOR_RUBY
"Raspberry", // 14 // SKINCOLOR_RASPBERRY
"Red", // 15 // SKINCOLOR_RED
"Crimson", // 16 // SKINCOLOR_CRIMSON
"Ketchup", // 17 // SKINCOLOR_KETCHUP
"Dawn", // 18 // SKINCOLOR_DAWN
@ -77,16 +77,16 @@ const char *KartColor_Names[MAXSKINCOLORS] =
"Vomit", // 32 // SKINCOLOR_VOMIT
"Garden", // 33 // SKINCOLOR_GARDEN
"Lime", // 34 // SKINCOLOR_LIME
"Dream", // 35 // SKINCOLOR_DREAM
"Tea", // 36 // SKINCOLOR_TEA
"Pistachio", // 37 // SKINCOLOR_PISTACHIO
"Robo-Hood", // 38 // SKINCOLOR_ROBOHOOD
"Moss", // 39 // SKINCOLOR_MOSS
"Mint", // 40 // SKINCOLOR_MINT
"Green", // 41 // SKINCOLOR_GREEN
"Pinetree", // 42 // SKINCOLOR_PINETREE
"Emerald", // 43 // SKINCOLOR_EMERALD
"Swamp", // 44 // SKINCOLOR_SWAMP
"Tea", // 35 // SKINCOLOR_TEA
"Pistachio", // 36 // SKINCOLOR_PISTACHIO
"Robo-Hood", // 37 // SKINCOLOR_ROBOHOOD
"Moss", // 38 // SKINCOLOR_MOSS
"Mint", // 39 // SKINCOLOR_MINT
"Green", // 40 // SKINCOLOR_GREEN
"Pinetree", // 41 // SKINCOLOR_PINETREE
"Emerald", // 42 // SKINCOLOR_EMERALD
"Swamp", // 43 // SKINCOLOR_SWAMP
"Dream", // 44 // SKINCOLOR_DREAM
"Aqua", // 45 // SKINCOLOR_AQUA
"Teal", // 46 // SKINCOLOR_TEAL
"Cyan", // 47 // SKINCOLOR_CYAN
@ -96,9 +96,9 @@ const char *KartColor_Names[MAXSKINCOLORS] =
"Slate", // 51 // SKINCOLOR_SLATE
"Steel", // 52 // SKINCOLOR_STEEL
"Jet", // 53 // SKINCOLOR_JET
"Periwinkle", // 54 // SKINCOLOR_PERIWINKLE
"Blue", // 55 // SKINCOLOR_BLUE
"Sapphire", // 56 // SKINCOLOR_SAPPHIRE
"Sapphire", // 54 // SKINCOLOR_SAPPHIRE
"Periwinkle", // 55 // SKINCOLOR_PERIWINKLE
"Blue", // 56 // SKINCOLOR_BLUE
"Blueberry", // 57 // SKINCOLOR_BLUEBERRY
"Dusk", // 58 // SKINCOLOR_DUSK
"Purple", // 59 // SKINCOLOR_PURPLE
@ -124,9 +124,9 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
SKINCOLOR_TEA,8, // 10 // SKINCOLOR_SALMON
SKINCOLOR_PISTACHIO,8, // 11 // SKINCOLOR_PINK
SKINCOLOR_MOSS,8, // 12 // SKINCOLOR_ROSE
SKINCOLOR_MINT,8, // 13 // SKINCOLOR_RASPBERRY
SKINCOLOR_GREEN,6, // 14 // SKINCOLOR_RED
SKINCOLOR_SAPPHIRE,8, // 15 // SKINCOLOR_RUBY
SKINCOLOR_SAPPHIRE,8, // 13 // SKINCOLOR_RUBY
SKINCOLOR_MINT,8, // 14 // SKINCOLOR_RASPBERRY
SKINCOLOR_GREEN,6, // 15 // SKINCOLOR_RED
SKINCOLOR_PINETREE,6, // 16 // SKINCOLOR_CRIMSON
SKINCOLOR_MUSTARD,10, // 17 // SKINCOLOR_KETCHUP
SKINCOLOR_DUSK,8, // 18 // SKINCOLOR_DAWN
@ -146,16 +146,16 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
SKINCOLOR_ROBOHOOD,8, // 32 // SKINCOLOR_VOMIT
SKINCOLOR_LAVENDER,6, // 33 // SKINCOLOR_GARDEN
SKINCOLOR_TANGERINE,8, // 34 // SKINCOLOR_LIME
SKINCOLOR_POMEGRANATE,8, // 35 // SKINCOLOR_DREAM
SKINCOLOR_SALMON,8, // 36 // SKINCOLOR_TEA
SKINCOLOR_PINK,6, // 37 // SKINCOLOR_PISTACHIO
SKINCOLOR_VOMIT,8, // 38 // SKINCOLOR_ROBOHOOD
SKINCOLOR_ROSE,8, // 39 // SKINCOLOR_MOSS
SKINCOLOR_RASPBERRY,8, // 40 // SKINCOLOR_MINT
SKINCOLOR_RED,8, // 41 // SKINCOLOR_GREEN
SKINCOLOR_CRIMSON,8, // 42 // SKINCOLOR_PINETREE
SKINCOLOR_PURPLE,8, // 43 // SKINCOLOR_EMERALD
SKINCOLOR_BYZANTIUM,8, // 44 // SKINCOLOR_SWAMP
SKINCOLOR_SALMON,8, // 35 // SKINCOLOR_TEA
SKINCOLOR_PINK,6, // 36 // SKINCOLOR_PISTACHIO
SKINCOLOR_VOMIT,8, // 37 // SKINCOLOR_ROBOHOOD
SKINCOLOR_ROSE,8, // 38 // SKINCOLOR_MOSS
SKINCOLOR_RASPBERRY,8, // 39 // SKINCOLOR_MINT
SKINCOLOR_RED,8, // 40 // SKINCOLOR_GREEN
SKINCOLOR_CRIMSON,8, // 41 // SKINCOLOR_PINETREE
SKINCOLOR_PURPLE,8, // 42 // SKINCOLOR_EMERALD
SKINCOLOR_BYZANTIUM,8, // 43 // SKINCOLOR_SWAMP
SKINCOLOR_POMEGRANATE,8, // 44 // SKINCOLOR_DREAM
SKINCOLOR_YELLOW,8, // 45 // SKINCOLOR_AQUA
SKINCOLOR_OLIVE,8, // 46 // SKINCOLOR_TEAL
SKINCOLOR_PEACH,8, // 47 // SKINCOLOR_CYAN
@ -165,9 +165,9 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
SKINCOLOR_GOLD,10, // 51 // SKINCOLOR_SLATE
SKINCOLOR_BRONZE,10, // 52 // SKINCOLOR_STEEL
SKINCOLOR_BURGUNDY,8, // 53 // SKINCOLOR_JET
SKINCOLOR_CREAMSICLE,8, // 54 // SKINCOLOR_PERIWINKLE
SKINCOLOR_ORANGE,8, // 55 // SKINCOLOR_BLUE
SKINCOLOR_RUBY,6, // 56 // SKINCOLOR_SAPPHIRE
SKINCOLOR_RUBY,6, // 54 // SKINCOLOR_SAPPHIRE
SKINCOLOR_CREAMSICLE,8, // 55 // SKINCOLOR_PERIWINKLE
SKINCOLOR_ORANGE,8, // 56 // SKINCOLOR_BLUE
SKINCOLOR_PUMPKIN,8, // 57 // SKINCOLOR_BLUEBERRY
SKINCOLOR_DAWN,6, // 58 // SKINCOLOR_DUSK
SKINCOLOR_EMERALD,8, // 59 // SKINCOLOR_PURPLE
@ -189,11 +189,11 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
{ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63}, // SKINCOLOR_BROWN
{ 51, 52, 53, 55, 56, 57, 58, 60, 61, 63, 28, 28, 29, 29, 30, 31}, // SKINCOLOR_LEATHER
{120, 120, 120, 121, 121, 122, 122, 123, 124, 125, 126, 128, 129, 131, 133, 135}, // SKINCOLOR_SALMON
{121, 121, 144, 144, 145, 145, 146, 146, 147, 148, 149, 150, 151, 134, 136, 138}, // SKINCOLOR_PINK
{120, 121, 121, 122, 144, 145, 146, 147, 148, 149, 150, 151, 134, 136, 138, 140}, // SKINCOLOR_PINK
{144, 145, 146, 147, 148, 149, 150, 151, 134, 135, 136, 137, 138, 139, 140, 141}, // SKINCOLOR_ROSE
{121, 122, 145, 146, 147, 149, 131, 132, 133, 134, 135, 197, 197, 198, 199, 255}, // SKINCOLOR_RUBY
{120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 137, 139}, // SKINCOLOR_RASPBERRY
{125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140}, // SKINCOLOR_RED
{121, 122, 145, 146, 147, 149, 131, 132, 133, 134, 135, 197, 197, 198, 199, 255}, // SKINCOLOR_RUBY
{130, 131, 132, 133, 134, 136, 137, 138, 139, 139, 140, 140, 141, 141, 142, 143}, // SKINCOLOR_CRIMSON
{104, 113, 113, 85, 86, 88, 128, 129, 131, 133, 134, 136, 138, 139, 141, 143}, // SKINCOLOR_KETCHUP
{120, 121, 122, 123, 124, 147, 147, 148, 90, 91, 92, 93, 94, 95, 152, 154}, // SKINCOLOR_DAWN
@ -213,7 +213,6 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
{121, 144, 145, 72, 73, 84, 114, 115, 107, 108, 109, 183, 223, 207, 30, 246}, // SKINCOLOR_VOMIT
{ 98, 99, 112, 101, 113, 114, 106, 179, 180, 180, 181, 182, 183, 173, 174, 175}, // SKINCOLOR_GARDEN
{ 96, 97, 99, 100, 102, 104, 160, 162, 164, 166, 168, 171, 223, 223, 207, 31}, // SKINCOLOR_LIME
{120, 120, 80, 80, 81, 177, 162, 164, 228, 228, 204, 204, 205, 205, 206, 207}, // SKINCOLOR_DREAM
{120, 120, 176, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 182, 183}, // SKINCOLOR_TEA
{120, 120, 176, 176, 177, 177, 178, 179, 165, 166, 167, 168, 169, 170, 171, 172}, // SKINCOLOR_PISTACHIO
{176, 176, 177, 178, 165, 166, 167, 167, 168, 169, 182, 182, 182, 183, 183, 183}, // SKINCOLOR_ROBOHOOD
@ -223,18 +222,19 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
{160, 161, 162, 164, 165, 167, 169, 170, 171, 171, 172, 173, 174, 175, 30, 31}, // SKINCOLOR_PINETREE
{160, 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, 189, 190, 191, 175}, // SKINCOLOR_EMERALD
{186, 187, 188, 188, 188, 189, 189, 190, 190, 191, 175, 175, 30, 30, 31, 31}, // SKINCOLOR_SWAMP
{120, 120, 80, 80, 81, 177, 162, 164, 228, 228, 204, 204, 205, 205, 206, 207}, // SKINCOLOR_DREAM
{120, 208, 208, 210, 212, 214, 220, 220, 220, 221, 221, 222, 222, 223, 223, 191}, // SKINCOLOR_AQUA
{210, 213, 220, 220, 220, 216, 216, 221, 221, 221, 222, 222, 223, 223, 191, 31}, // SKINCOLOR_TEAL
{120, 120, 208, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 222, 223}, // SKINCOLOR_CYAN
{120, 120, 208, 209, 210, 226, 215, 216, 217, 229, 229, 205, 205, 206, 207, 31}, // SKINCOLOR_JAWZ
{208, 209, 211, 213, 215, 216, 216, 217, 217, 218, 218, 219, 205, 206, 207, 207}, // SKINCOLOR_CERULEAN
{215, 215, 215, 216, 216, 217, 218, 204, 204, 205, 205, 206, 207, 29, 30, 31}, // SKINCOLOR_NAVY
{211, 212, 213, 215, 216, 218, 219, 205, 206, 206, 207, 207, 28, 29, 30, 31}, // SKINCOLOR_NAVY
{120, 120, 200, 200, 200, 201, 201, 201, 202, 202, 202, 203, 204, 205, 206, 207}, // SKINCOLOR_SLATE
{120, 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, 207, 31}, // SKINCOLOR_STEEL
{200, 201, 202, 203, 204, 205, 206, 207, 28, 28, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_JET
{225, 226, 227, 228, 229, 205, 205, 206, 207, 207, 28, 28, 29, 29, 30, 31}, // SKINCOLOR_JET
{208, 209, 211, 213, 215, 217, 229, 230, 232, 234, 236, 238, 240, 242, 244, 246}, // SKINCOLOR_SAPPHIRE
{120, 224, 225, 226, 226, 227, 228, 228, 229, 230, 231, 234, 235, 237, 239, 241}, // SKINCOLOR_PERIWINKLE
{224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239}, // SKINCOLOR_BLUE
{208, 209, 211, 213, 215, 217, 229, 230, 232, 234, 236, 238, 240, 242, 244, 246}, // SKINCOLOR_SAPPHIRE
{228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 242, 243, 244, 245}, // SKINCOLOR_BLUEBERRY
{192, 192, 248, 249, 250, 251, 204, 204, 205, 205, 206, 206, 207, 29, 30, 31}, // SKINCOLOR_DUSK
{192, 192, 192, 193, 193, 194, 194, 195, 195, 196, 196, 197, 197, 198, 198, 199}, // SKINCOLOR_PURPLE
@ -3186,7 +3186,7 @@ void K_DropHnextList(player_t *player)
mobj_t *work = player->mo, *nextwork, *dropwork;
INT32 flip;
mobjtype_t type;
boolean orbit, ponground;
boolean orbit, ponground, dropall = true;
if (!work)
return;
@ -3226,6 +3226,7 @@ void K_DropHnextList(player_t *player)
break;
case MT_SSMINE_SHIELD:
orbit = false;
dropall = false;
type = MT_SSMINE;
break;
case MT_FAKESHIELD:
@ -3304,7 +3305,8 @@ void K_DropHnextList(player_t *player)
player->kartstuff[k_bananadrag] = 0;
if (player->kartstuff[k_eggmanheld])
player->kartstuff[k_eggmanheld] = 0;
else if (player->kartstuff[k_itemheld])
else if (player->kartstuff[k_itemheld]
&& (dropall || (--player->kartstuff[k_itemamount] <= 0)))
{
player->kartstuff[k_itemamount] = player->kartstuff[k_itemheld] = 0;
player->kartstuff[k_itemtype] = KITEM_NONE;

View File

@ -32,7 +32,7 @@ boolean highcolor = false;
boolean allow_fullscreen = false;
consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
void I_StartupGraphics(void)
{

View File

@ -494,11 +494,19 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
K_StripOther(player);
player->kartstuff[k_itemroulette] = 1;
player->kartstuff[k_roulettetype] = 2;
if (special->target && special->target->player
&& (G_RaceGametype() || special->target->player->kartstuff[k_bumper] > 0))
player->kartstuff[k_eggmanblame] = special->target->player-players;
else
player->kartstuff[k_eggmanblame] = player-players;
if (special->target && special->target->player)
{
if (G_RaceGametype() || special->target->player->kartstuff[k_bumper] > 0)
player->kartstuff[k_eggmanblame] = special->target->player-players;
else
player->kartstuff[k_eggmanblame] = player-players;
if (special->target->hnext == special)
{
P_SetTarget(&special->target->hnext, NULL);
special->target->player->kartstuff[k_eggmanheld] = 0;
}
}
P_RemoveMobj(special);
return;

View File

@ -748,6 +748,16 @@ void P_Ticker(boolean run)
D_MapChange(gamemap, gametype, encoremode, true, 0, false, false);
}
// Always move the camera.
if (camera.chase)
P_MoveChaseCamera(&players[displayplayer], &camera, false);
if (splitscreen && camera2.chase)
P_MoveChaseCamera(&players[secondarydisplayplayer], &camera2, false);
if (splitscreen > 1 && camera3.chase)
P_MoveChaseCamera(&players[thirddisplayplayer], &camera3, false);
if (splitscreen > 2 && camera4.chase)
P_MoveChaseCamera(&players[fourthdisplayplayer], &camera4, false);
P_MapEnd();
// Z_CheckMemCleanup();

View File

@ -9570,12 +9570,6 @@ void P_PlayerAfterThink(player_t *player)
if (player->playerstate == PST_DEAD)
{
// camera may still move when guy is dead
//if (!netgame)
{
if (thiscam && thiscam->chase)
P_MoveChaseCamera(player, thiscam, false);
}
return;
}
@ -9857,8 +9851,6 @@ void P_PlayerAfterThink(player_t *player)
player->viewz = player->mo->z + player->mo->height - player->viewheight;
else
player->viewz = player->mo->z + player->viewheight;
if (server || addedtogame)
P_MoveChaseCamera(player, thiscam, false); // calculate the camera movement
}
}

View File

@ -94,7 +94,7 @@ rendermode_t rendermode=render_soft;
boolean highcolor = false;
// synchronize page flipping with screen refresh
consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
static consvar_t cv_stretch = {"stretch", "Off", CV_SAVE|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
UINT8 graphics_started = 0; // Is used in console.c and screen.c

View File

@ -150,7 +150,7 @@ boolean highcolor = false;
#if defined(DC) || (defined(GP2X) && !defined(HAVE_GP2XSDL))
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
#else
consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
#endif
static consvar_t cv_stretch = {"stretch", "Off", CV_SAVE|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};

View File

@ -1282,8 +1282,8 @@ UINT8 *V_GetStringColormap(INT32 colorflags)
return steelmap;
case 13: // 0x8D, pink
return pinkmap;
case 14: // 0x8E, teal
return tealmap;
case 14: // 0x8E, brown
return brownmap;
case 15: // 0x8F, peach
return peachmap;
default: // reset

View File

@ -82,7 +82,7 @@ extern UINT8 hudtrans;
#define V_TEAMAP 0x0000B000
#define V_STEELMAP 0x0000C000
#define V_PINKMAP 0x0000D000
#define V_TEALMAP 0x0000E000
#define V_BROWNMAP 0x0000E000
#define V_PEACHMAP 0x0000F000
// use bits 17-20 for alpha transparency

View File

@ -51,7 +51,7 @@ rendermode_t rendermode = render_soft;
static void OnTop_OnChange(void);
// synchronize page flipping with screen refresh
static CV_PossibleValue_t CV_NeverOnOff[] = {{-1, "Never"}, {0, "Off"}, {1, "On"}, {0, NULL}};
consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, OnTop_OnChange, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, OnTop_OnChange, 0, NULL, NULL, 0, 0, NULL};
static consvar_t cv_stretch = {"stretch", "On", CV_SAVE|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
static consvar_t cv_ontop = {"ontop", "Never", 0, CV_NeverOnOff, NULL, 0, NULL, NULL, 0, 0, NULL};

View File

@ -48,7 +48,7 @@
rendermode_t rendermode = render_soft;
// synchronize page flipping with screen refresh
consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
static consvar_t cv_stretch = {"stretch", "On", CV_SAVE|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
boolean highcolor;