mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-28 04:00:41 +00:00
2.1.21 and all of the kart additions. Woo.
This commit is contained in:
parent
25e6d5388c
commit
45aba493c7
11 changed files with 534 additions and 420 deletions
|
@ -131,11 +131,16 @@ static CV_PossibleValue_t backpic_cons_t[] = {{0, "translucent"}, {1, "picture"}
|
||||||
// whether to use console background picture, or translucent mode
|
// whether to use console background picture, or translucent mode
|
||||||
static consvar_t cons_backpic = {"con_backpic", "translucent", CV_SAVE, backpic_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
static consvar_t cons_backpic = {"con_backpic", "translucent", CV_SAVE, backpic_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
static CV_PossibleValue_t backcolor_cons_t[] = {{0, "White"}, {1, "Gray"}, {2, "Brown"},
|
static CV_PossibleValue_t backcolor_cons_t[] = {{0, "White"}, {1, "Black"}, {2, "Sepia"},
|
||||||
{3, "Red"}, {4, "Orange"}, {5, "Yellow"},
|
{3, "Brown"}, {4, "Pink"}, {5, "Raspberry"},
|
||||||
{6, "Green"}, {7, "Blue"}, {8, "Cyan"},
|
{6, "Red"}, {7, "Creamsicle"}, {8, "Orange"},
|
||||||
|
{9, "Gold"}, {10,"Yellow"}, {11,"Emerald"},
|
||||||
|
{12,"Green"}, {13,"Cyan"}, {14,"Steel"},
|
||||||
|
{15,"Periwinkle"}, {16,"Blue"}, {17,"Purple"},
|
||||||
|
{18,"Lavender"},
|
||||||
{0, NULL}};
|
{0, NULL}};
|
||||||
consvar_t cons_backcolor = {"con_backcolor", "Green", CV_CALL|CV_SAVE, backcolor_cons_t, CONS_backcolor_Change, 0, NULL, NULL, 0, 0, NULL};
|
|
||||||
|
consvar_t cons_backcolor = {"con_backcolor", "Black", CV_CALL|CV_SAVE, backcolor_cons_t, CONS_backcolor_Change, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
static void CON_Print(char *msg);
|
static void CON_Print(char *msg);
|
||||||
|
|
||||||
|
@ -241,29 +246,41 @@ void CON_SetupBackColormap(void)
|
||||||
UINT16 i, palsum;
|
UINT16 i, palsum;
|
||||||
UINT8 j, palindex;
|
UINT8 j, palindex;
|
||||||
UINT8 *pal = W_CacheLumpName(GetPalette(), PU_CACHE);
|
UINT8 *pal = W_CacheLumpName(GetPalette(), PU_CACHE);
|
||||||
|
INT32 shift = 6;
|
||||||
|
|
||||||
if (!consolebgmap)
|
if (!consolebgmap)
|
||||||
consolebgmap = (UINT8 *)Z_Malloc(256, PU_STATIC, NULL);
|
consolebgmap = (UINT8 *)Z_Malloc(256, PU_STATIC, NULL);
|
||||||
|
|
||||||
switch (cons_backcolor.value)
|
switch (cons_backcolor.value)
|
||||||
{
|
{
|
||||||
case 0: palindex = 15; break; // White
|
case 0: palindex = 15; break; // White
|
||||||
case 1: palindex = 31; break; // Gray
|
case 1: palindex = 31; break; // Gray
|
||||||
case 2: palindex = 63; break; // Brown
|
case 2: palindex = 47; break; // Sepia
|
||||||
case 3: palindex = 143; break; // Red
|
case 3: palindex = 63; break; // Brown
|
||||||
case 4: palindex = 95; break; // Orange
|
case 4: palindex = 150; shift = 7; break; // Pink
|
||||||
case 5: palindex = 111; break; // Yellow
|
case 5: palindex = 127; shift = 7; break; // Raspberry
|
||||||
case 6: palindex = 175; break; // Green
|
case 6: palindex = 143; break; // Red
|
||||||
case 7: palindex = 239; break; // Blue
|
case 7: palindex = 86; shift = 7; break; // Creamsicle
|
||||||
case 8: palindex = 219; break; // Cyan
|
case 8: palindex = 95; break; // Orange
|
||||||
|
case 9: palindex = 119; shift = 7; break; // Gold
|
||||||
|
case 10: palindex = 111; break; // Yellow
|
||||||
|
case 11: palindex = 191; shift = 7; break; // Emerald
|
||||||
|
case 12: palindex = 175; break; // Green
|
||||||
|
case 13: palindex = 219; break; // Cyan
|
||||||
|
case 14: palindex = 207; shift = 7; break; // Steel
|
||||||
|
case 15: palindex = 230; shift = 7; break; // Periwinkle
|
||||||
|
case 16: palindex = 239; break; // Blue
|
||||||
|
case 17: palindex = 199; shift = 7; break; // Purple
|
||||||
|
case 18: palindex = 255; shift = 7; break; // Lavender
|
||||||
// Default green
|
// Default green
|
||||||
default: palindex = 175; break;
|
default: palindex = 175; break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// setup background colormap
|
// setup background colormap
|
||||||
for (i = 0, j = 0; i < 768; i += 3, j++)
|
for (i = 0, j = 0; i < 768; i += 3, j++)
|
||||||
{
|
{
|
||||||
palsum = (pal[i] + pal[i+1] + pal[i+2]) >> 6;
|
palsum = (pal[i] + pal[i+1] + pal[i+2]) >> shift;
|
||||||
consolebgmap[j] = (UINT8)(palindex - palsum);
|
consolebgmap[j] = (UINT8)(palindex - palsum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1035,17 +1052,17 @@ boolean CON_Responder(event_t *ev)
|
||||||
}
|
}
|
||||||
else if (key == KEY_KPADSLASH)
|
else if (key == KEY_KPADSLASH)
|
||||||
key = '/';
|
key = '/';
|
||||||
|
|
||||||
// capslock
|
// capslock
|
||||||
if (key == KEY_CAPSLOCK) // it's a toggle.
|
if (key == KEY_CAPSLOCK) // it's a toggle.
|
||||||
{
|
{
|
||||||
if (capslock)
|
if (capslock)
|
||||||
capslock = false;
|
capslock = false;
|
||||||
else
|
else
|
||||||
capslock = true;
|
capslock = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key >= 'a' && key <= 'z')
|
if (key >= 'a' && key <= 'z')
|
||||||
{
|
{
|
||||||
if (capslock ^ shiftdown)
|
if (capslock ^ shiftdown)
|
||||||
|
|
|
@ -178,6 +178,7 @@ void D_PostEvent_end(void) {};
|
||||||
UINT8 shiftdown = 0; // 0x1 left, 0x2 right
|
UINT8 shiftdown = 0; // 0x1 left, 0x2 right
|
||||||
UINT8 ctrldown = 0; // 0x1 left, 0x2 right
|
UINT8 ctrldown = 0; // 0x1 left, 0x2 right
|
||||||
UINT8 altdown = 0; // 0x1 left, 0x2 right
|
UINT8 altdown = 0; // 0x1 left, 0x2 right
|
||||||
|
boolean capslock = 0; // gee i wonder what this does.
|
||||||
//
|
//
|
||||||
// D_ModifierKeyResponder
|
// D_ModifierKeyResponder
|
||||||
// Sets global shift/ctrl/alt variables, never actually eats events
|
// Sets global shift/ctrl/alt variables, never actually eats events
|
||||||
|
|
|
@ -371,10 +371,12 @@ consvar_t cv_chatnotifications= {"chatnotifications", "On", CV_SAVE, CV_OnOff, N
|
||||||
consvar_t cv_chatspamprotection= {"chatspamprotection", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_chatspamprotection= {"chatspamprotection", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
// minichat text background
|
// minichat text background
|
||||||
consvar_t cv_chatbacktint = {"chatbacktint", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_chatbacktint = {"chatbacktint", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
// old shit console chat. (mostly exists for stuff like terminal, not because I cared if anyone liked the old chat.)
|
// old shit console chat. (mostly exists for stuff like terminal, not because I cared if anyone liked the old chat.)
|
||||||
consvar_t cv_consolechat= {"consolechat", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
static CV_PossibleValue_t consolechat_cons_t[] = {{0, "Window"}, {1, "Console"}, {2, "Window (Hidden)"}, {0, NULL}};
|
||||||
|
consvar_t cv_consolechat = {"chatmode", "Window", CV_SAVE, consolechat_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
|
|
||||||
consvar_t cv_crosshair = {"crosshair", "Cross", CV_SAVE, crosshair_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_crosshair = {"crosshair", "Cross", CV_SAVE, crosshair_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_crosshair2 = {"crosshair2", "Cross", CV_SAVE, crosshair_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_crosshair2 = {"crosshair2", "Cross", CV_SAVE, crosshair_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
@ -1583,7 +1585,7 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
|
||||||
{
|
{
|
||||||
localangle2 += (cmd->angleturn<<16);
|
localangle2 += (cmd->angleturn<<16);
|
||||||
cmd->angleturn = (INT16)(localangle2 >> 16);
|
cmd->angleturn = (INT16)(localangle2 >> 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// User has designated that they want
|
// User has designated that they want
|
||||||
|
|
736
src/hu_stuff.c
736
src/hu_stuff.c
File diff suppressed because it is too large
Load diff
|
@ -57,6 +57,16 @@ typedef struct
|
||||||
// chat stuff
|
// chat stuff
|
||||||
//------------------------------------
|
//------------------------------------
|
||||||
#define HU_MAXMSGLEN 224
|
#define HU_MAXMSGLEN 224
|
||||||
|
#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 == 1 || 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, boolean playsound);
|
||||||
|
|
||||||
|
// set true when entering a chat message
|
||||||
|
extern boolean chat_on;
|
||||||
|
|
||||||
extern patch_t *hu_font[HU_FONTSIZE], *tny_font[HU_FONTSIZE];
|
extern patch_t *hu_font[HU_FONTSIZE], *tny_font[HU_FONTSIZE];
|
||||||
extern patch_t *tallnum[10];
|
extern patch_t *tallnum[10];
|
||||||
|
@ -72,22 +82,6 @@ extern patch_t *bmatcico;
|
||||||
extern patch_t *tagico;
|
extern patch_t *tagico;
|
||||||
extern patch_t *tallminus;
|
extern patch_t *tallminus;
|
||||||
|
|
||||||
/*typedef struct
|
|
||||||
{
|
|
||||||
const char *msg; // The final message we display on the HUD
|
|
||||||
tic_t time; // how much time do we still keep the message around for in the mini chat?
|
|
||||||
boolean hasmention; // make the message yellow if it has a mention because that's pretty cool.
|
|
||||||
} chatmsg_t;*/
|
|
||||||
|
|
||||||
#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 || !netgame || vid.width < 640)
|
|
||||||
|
|
||||||
// some functions
|
|
||||||
void HU_AddChatText(const char *text);
|
|
||||||
|
|
||||||
// set true when entering a chat message
|
|
||||||
extern boolean chat_on;
|
|
||||||
|
|
||||||
// set true whenever the tab rankings are being shown for any reason
|
// set true whenever the tab rankings are being shown for any reason
|
||||||
extern boolean hu_showscores;
|
extern boolean hu_showscores;
|
||||||
|
|
||||||
|
|
|
@ -23,13 +23,9 @@
|
||||||
#include "m_random.h"
|
#include "m_random.h"
|
||||||
#include "s_sound.h"
|
#include "s_sound.h"
|
||||||
#include "g_game.h"
|
#include "g_game.h"
|
||||||
<<<<<<< HEAD
|
|
||||||
#include "hu_stuff.h" // HU_AddChatText
|
#include "hu_stuff.h" // HU_AddChatText
|
||||||
=======
|
|
||||||
#include "hu_stuff.h"
|
|
||||||
#include "console.h"
|
#include "console.h"
|
||||||
#include "d_netcmd.h" // IsPlayerAdmin
|
#include "d_netcmd.h" // IsPlayerAdmin
|
||||||
>>>>>>> master
|
|
||||||
|
|
||||||
#include "lua_script.h"
|
#include "lua_script.h"
|
||||||
#include "lua_libs.h"
|
#include "lua_libs.h"
|
||||||
|
@ -99,16 +95,14 @@ static int lib_print(lua_State *L)
|
||||||
static int lib_chatprint(lua_State *L)
|
static int lib_chatprint(lua_State *L)
|
||||||
{
|
{
|
||||||
const char *str = luaL_checkstring(L, 1); // retrieve string
|
const char *str = luaL_checkstring(L, 1); // retrieve string
|
||||||
|
boolean sound = luaL_checkboolean(L, 2); // retrieve sound boolean
|
||||||
if (str == NULL) // error if we don't have a string!
|
if (str == NULL) // error if we don't have a string!
|
||||||
return luaL_error(L, LUA_QL("tostring") " must return a string to " LUA_QL("chatprint"));
|
return luaL_error(L, LUA_QL("tostring") " must return a string to " LUA_QL("chatprint"));
|
||||||
int len = strlen(str);
|
int len = strlen(str);
|
||||||
if (len > 255) // string is too long!!!
|
if (len > 255) // string is too long!!!
|
||||||
return luaL_error(L, "String exceeds the 255 characters limit of the chat buffer.");
|
return luaL_error(L, "String exceeds the 255 characters limit of the chat buffer.");
|
||||||
|
|
||||||
if (OLDCHAT)
|
HU_AddChatText(str, sound);
|
||||||
CONS_Printf("%s\n", str);
|
|
||||||
else
|
|
||||||
HU_AddChatText(str);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,24 +113,22 @@ static int lib_chatprintf(lua_State *L)
|
||||||
player_t *plr;
|
player_t *plr;
|
||||||
if (n < 2)
|
if (n < 2)
|
||||||
return luaL_error(L, "chatprintf requires at least two arguments: player and text.");
|
return luaL_error(L, "chatprintf requires at least two arguments: player and text.");
|
||||||
|
|
||||||
plr = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); // retrieve player
|
plr = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); // retrieve player
|
||||||
if (!plr)
|
if (!plr)
|
||||||
return LUA_ErrInvalid(L, "player_t");
|
return LUA_ErrInvalid(L, "player_t");
|
||||||
if (plr != &players[consoleplayer])
|
if (plr != &players[consoleplayer])
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
const char *str = luaL_checkstring(L, 2); // retrieve string
|
const char *str = luaL_checkstring(L, 2); // retrieve string
|
||||||
|
boolean sound = luaL_checkboolean(L, 3); // sound?
|
||||||
if (str == NULL) // error if we don't have a string!
|
if (str == NULL) // error if we don't have a string!
|
||||||
return luaL_error(L, LUA_QL("tostring") " must return a string to " LUA_QL("chatprintf"));
|
return luaL_error(L, LUA_QL("tostring") " must return a string to " LUA_QL("chatprintf"));
|
||||||
int len = strlen(str);
|
int len = strlen(str);
|
||||||
if (len > 255) // string is too long!!!
|
if (len > 255) // string is too long!!!
|
||||||
return luaL_error(L, "String exceeds the 255 characters limit of the chat buffer.");
|
return luaL_error(L, "String exceeds the 255 characters limit of the chat buffer.");
|
||||||
|
|
||||||
if (OLDCHAT)
|
HU_AddChatText(str, sound);
|
||||||
CONS_Printf("%s\n", str);
|
|
||||||
else
|
|
||||||
HU_AddChatText(str);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1758,9 +1750,9 @@ static int lib_sStartSound(lua_State *L)
|
||||||
{
|
{
|
||||||
if (hud_running)
|
if (hud_running)
|
||||||
origin = NULL; // HUD rendering startsound shouldn't have an origin, just remove it instead of having a retarded error.
|
origin = NULL; // HUD rendering startsound shouldn't have an origin, just remove it instead of having a retarded error.
|
||||||
|
|
||||||
S_StartSound(origin, sound_id);
|
S_StartSound(origin, sound_id);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ boolean LUAh_MobjDeath(mobj_t *target, mobj_t *inflictor, mobj_t *source); // Ho
|
||||||
boolean LUAh_BotTiccmd(player_t *bot, ticcmd_t *cmd); // Hook for B_BuildTiccmd
|
boolean LUAh_BotTiccmd(player_t *bot, ticcmd_t *cmd); // Hook for B_BuildTiccmd
|
||||||
boolean LUAh_BotAI(mobj_t *sonic, mobj_t *tails, ticcmd_t *cmd); // Hook for B_BuildTailsTiccmd by skin name
|
boolean LUAh_BotAI(mobj_t *sonic, mobj_t *tails, ticcmd_t *cmd); // Hook for B_BuildTailsTiccmd by skin name
|
||||||
boolean LUAh_LinedefExecute(line_t *line, mobj_t *mo, sector_t *sector); // Hook for linedef executors
|
boolean LUAh_LinedefExecute(line_t *line, mobj_t *mo, sector_t *sector); // Hook for linedef executors
|
||||||
boolean LUAh_PlayerMsg(int source, int target, int flags, char *msg); // Hook for chat messages
|
boolean LUAh_PlayerMsg(int source, int target, int flags, char *msg, int mute); // Hook for chat messages
|
||||||
boolean LUAh_HurtMsg(player_t *player, mobj_t *inflictor, mobj_t *source); // Hook for hurt messages
|
boolean LUAh_HurtMsg(player_t *player, mobj_t *inflictor, mobj_t *source); // Hook for hurt messages
|
||||||
#define LUAh_PlayerSpawn(player) LUAh_PlayerHook(player, hook_PlayerSpawn) // Hook for G_SpawnPlayer
|
#define LUAh_PlayerSpawn(player) LUAh_PlayerHook(player, hook_PlayerSpawn) // Hook for G_SpawnPlayer
|
||||||
void LUAh_PlayerQuit(player_t *plr, int reason); // Hook for player quitting
|
void LUAh_PlayerQuit(player_t *plr, int reason); // Hook for player quitting
|
||||||
|
|
|
@ -953,7 +953,9 @@ boolean LUAh_LinedefExecute(line_t *line, mobj_t *mo, sector_t *sector)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hook for player chat
|
// Hook for player chat
|
||||||
boolean LUAh_PlayerMsg(int source, int target, int flags, char *msg)
|
// Added the "mute" field. It's set to true if the message was supposed to be eaten by spam protection.
|
||||||
|
// But for netgame consistency purposes, this hook is ran first reguardless, so this boolean allows for modders to adapt if they so desire.
|
||||||
|
boolean LUAh_PlayerMsg(int source, int target, int flags, char *msg, int mute)
|
||||||
{
|
{
|
||||||
hook_p hookp;
|
hook_p hookp;
|
||||||
boolean hooked = false;
|
boolean hooked = false;
|
||||||
|
@ -982,14 +984,19 @@ boolean LUAh_PlayerMsg(int source, int target, int flags, char *msg)
|
||||||
LUA_PushUserdata(gL, &players[target-1], META_PLAYER); // target
|
LUA_PushUserdata(gL, &players[target-1], META_PLAYER); // target
|
||||||
}
|
}
|
||||||
lua_pushstring(gL, msg); // msg
|
lua_pushstring(gL, msg); // msg
|
||||||
|
if (mute)
|
||||||
|
lua_pushboolean(gL, true); // the message was supposed to be eaten by spamprotecc.
|
||||||
|
else
|
||||||
|
lua_pushboolean(gL, false);
|
||||||
}
|
}
|
||||||
lua_pushfstring(gL, FMT_HOOKID, hookp->id);
|
lua_pushfstring(gL, FMT_HOOKID, hookp->id);
|
||||||
lua_gettable(gL, LUA_REGISTRYINDEX);
|
lua_gettable(gL, LUA_REGISTRYINDEX);
|
||||||
lua_pushvalue(gL, -5);
|
lua_pushvalue(gL, -6);
|
||||||
lua_pushvalue(gL, -5);
|
lua_pushvalue(gL, -6);
|
||||||
lua_pushvalue(gL, -5);
|
lua_pushvalue(gL, -6);
|
||||||
lua_pushvalue(gL, -5);
|
lua_pushvalue(gL, -6);
|
||||||
if (lua_pcall(gL, 4, 1, 0)) {
|
lua_pushvalue(gL, -6);
|
||||||
|
if (lua_pcall(gL, 5, 1, 0)) {
|
||||||
if (!hookp->error || cv_debug & DBG_LUA)
|
if (!hookp->error || cv_debug & DBG_LUA)
|
||||||
CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL, -1));
|
CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL, -1));
|
||||||
lua_pop(gL, 1);
|
lua_pop(gL, 1);
|
||||||
|
@ -1005,6 +1012,7 @@ boolean LUAh_PlayerMsg(int source, int target, int flags, char *msg)
|
||||||
return hooked;
|
return hooked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Hook for hurt messages
|
// Hook for hurt messages
|
||||||
boolean LUAh_HurtMsg(player_t *player, mobj_t *inflictor, mobj_t *source)
|
boolean LUAh_HurtMsg(player_t *player, mobj_t *inflictor, mobj_t *source)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1321,7 +1321,7 @@ static menuitem_t OP_ChatOptionsMenu[] =
|
||||||
{IT_STRING | IT_CVAR, NULL, "Chat Notifications", &cv_chatnotifications, 40},
|
{IT_STRING | IT_CVAR, NULL, "Chat Notifications", &cv_chatnotifications, 40},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Spam Protection", &cv_chatspamprotection, 50},
|
{IT_STRING | IT_CVAR, NULL, "Spam Protection", &cv_chatspamprotection, 50},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Chat background tint", &cv_chatbacktint, 60},
|
{IT_STRING | IT_CVAR, NULL, "Chat background tint", &cv_chatbacktint, 60},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Old Console Chat", &cv_consolechat, 70},
|
{IT_STRING | IT_CVAR, NULL, "Chat Mode", &cv_consolechat, 70},
|
||||||
};
|
};
|
||||||
|
|
||||||
static menuitem_t OP_ServerOptionsMenu[] =
|
static menuitem_t OP_ServerOptionsMenu[] =
|
||||||
|
@ -2744,7 +2744,7 @@ void M_Init(void)
|
||||||
CV_RegisterVar(&cv_newgametype);
|
CV_RegisterVar(&cv_newgametype);
|
||||||
CV_RegisterVar(&cv_chooseskin);
|
CV_RegisterVar(&cv_chooseskin);
|
||||||
CV_RegisterVar(&cv_autorecord);
|
CV_RegisterVar(&cv_autorecord);
|
||||||
|
|
||||||
if (dedicated)
|
if (dedicated)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -841,12 +841,45 @@ void V_DrawFill(INT32 x, INT32 y, INT32 w, INT32 h, INT32 c)
|
||||||
memset(dest, c, w * vid.bpp);
|
memset(dest, c, w * vid.bpp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HWRENDER
|
||||||
|
// This is now a function since it's otherwise repeated 2 times and honestly looks retarded:
|
||||||
|
static UINT32 V_GetHWConsBackColor(void)
|
||||||
|
{
|
||||||
|
UINT32 hwcolor;
|
||||||
|
switch (cons_backcolor.value)
|
||||||
|
{
|
||||||
|
case 0: hwcolor = 0xffffff00; break; // White
|
||||||
|
case 1: hwcolor = 0x80808000; break; // Gray
|
||||||
|
case 2: hwcolor = 0xdeb88700; break; // Sepia
|
||||||
|
case 3: hwcolor = 0x40201000; break; // Brown
|
||||||
|
case 4: hwcolor = 0xfa807200; break; // Pink
|
||||||
|
case 5: hwcolor = 0xff69b400; break; // Raspberry
|
||||||
|
case 6: hwcolor = 0xff000000; break; // Red
|
||||||
|
case 7: hwcolor = 0xffd68300; break; // Creamsicle
|
||||||
|
case 8: hwcolor = 0xff800000; break; // Orange
|
||||||
|
case 9: hwcolor = 0xdaa52000; break; // Gold
|
||||||
|
case 10: hwcolor = 0x80800000; break; // Yellow
|
||||||
|
case 11: hwcolor = 0x00ff0000; break; // Emerald
|
||||||
|
case 12: hwcolor = 0x00800000; break; // Green
|
||||||
|
case 13: hwcolor = 0x4080ff00; break; // Cyan
|
||||||
|
case 14: hwcolor = 0x4682b400; break; // Steel
|
||||||
|
case 15: hwcolor = 0x1e90ff00; break; // Periwinkle
|
||||||
|
case 16: hwcolor = 0x0000ff00; break; // Blue
|
||||||
|
case 17: hwcolor = 0xff00ff00; break; // Purple
|
||||||
|
case 18: hwcolor = 0xee82ee00; break; // Lavender
|
||||||
|
// Default green
|
||||||
|
default: hwcolor = 0x00800000; break;
|
||||||
|
}
|
||||||
|
return hwcolor;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// THANK YOU MPC!!!
|
// THANK YOU MPC!!!
|
||||||
|
|
||||||
void V_DrawFillConsoleMap(INT32 x, INT32 y, INT32 w, INT32 h, INT32 c)
|
void V_DrawFillConsoleMap(INT32 x, INT32 y, INT32 w, INT32 h, INT32 c)
|
||||||
{
|
{
|
||||||
UINT8 *dest;
|
UINT8 *dest;
|
||||||
const UINT8 *deststop;
|
|
||||||
INT32 u, v;
|
INT32 u, v;
|
||||||
UINT32 alphalevel = 0;
|
UINT32 alphalevel = 0;
|
||||||
|
|
||||||
|
@ -856,21 +889,7 @@ void V_DrawFillConsoleMap(INT32 x, INT32 y, INT32 w, INT32 h, INT32 c)
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
if (rendermode != render_soft && rendermode != render_none)
|
if (rendermode != render_soft && rendermode != render_none)
|
||||||
{
|
{
|
||||||
UINT32 hwcolor;
|
UINT32 hwcolor = V_GetHWConsBackColor();
|
||||||
switch (cons_backcolor.value)
|
|
||||||
{
|
|
||||||
case 0: hwcolor = 0xffffff00; break; // White
|
|
||||||
case 1: hwcolor = 0x80808000; break; // Gray
|
|
||||||
case 2: hwcolor = 0x40201000; break; // Brown
|
|
||||||
case 3: hwcolor = 0xff000000; break; // Red
|
|
||||||
case 4: hwcolor = 0xff800000; break; // Orange
|
|
||||||
case 5: hwcolor = 0x80800000; break; // Yellow
|
|
||||||
case 6: hwcolor = 0x00800000; break; // Green
|
|
||||||
case 7: hwcolor = 0x0000ff00; break; // Blue
|
|
||||||
case 8: hwcolor = 0x4080ff00; break; // Cyan
|
|
||||||
// Default green
|
|
||||||
default: hwcolor = 0x00800000; break;
|
|
||||||
}
|
|
||||||
HWR_DrawConsoleFill(x, y, w, h, hwcolor, c); // we still use the regular color stuff but only for flags. actual draw color is "hwcolor" for this.
|
HWR_DrawConsoleFill(x, y, w, h, hwcolor, c); // we still use the regular color stuff but only for flags. actual draw color is "hwcolor" for this.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1107,21 +1126,7 @@ void V_DrawFadeConsBack(INT32 plines)
|
||||||
#ifdef HWRENDER // not win32 only 19990829 by Kin
|
#ifdef HWRENDER // not win32 only 19990829 by Kin
|
||||||
if (rendermode != render_soft && rendermode != render_none)
|
if (rendermode != render_soft && rendermode != render_none)
|
||||||
{
|
{
|
||||||
UINT32 hwcolor;
|
UINT32 hwcolor = V_GetHWConsBackColor();
|
||||||
switch (cons_backcolor.value)
|
|
||||||
{
|
|
||||||
case 0: hwcolor = 0xffffff00; break; // White
|
|
||||||
case 1: hwcolor = 0x80808000; break; // Gray
|
|
||||||
case 2: hwcolor = 0x40201000; break; // Brown
|
|
||||||
case 3: hwcolor = 0xff000000; break; // Red
|
|
||||||
case 4: hwcolor = 0xff800000; break; // Orange
|
|
||||||
case 5: hwcolor = 0x80800000; break; // Yellow
|
|
||||||
case 6: hwcolor = 0x00800000; break; // Green
|
|
||||||
case 7: hwcolor = 0x0000ff00; break; // Blue
|
|
||||||
case 8: hwcolor = 0x4080ff00; break; // Cyan
|
|
||||||
// Default green
|
|
||||||
default: hwcolor = 0x00800000; break;
|
|
||||||
}
|
|
||||||
HWR_DrawConsoleBack(hwcolor, plines);
|
HWR_DrawConsoleBack(hwcolor, plines);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1136,7 +1141,7 @@ void V_DrawFadeConsBack(INT32 plines)
|
||||||
|
|
||||||
// Gets string colormap, used for 0x80 color codes
|
// Gets string colormap, used for 0x80 color codes
|
||||||
//
|
//
|
||||||
static const UINT8 *V_GetStringColormap(INT32 colorflags)
|
UINT8 *V_GetStringColormap(INT32 colorflags)
|
||||||
{
|
{
|
||||||
switch ((colorflags & V_CHARCOLORMASK) >> V_CHARCOLORSHIFT)
|
switch ((colorflags & V_CHARCOLORMASK) >> V_CHARCOLORSHIFT)
|
||||||
{
|
{
|
||||||
|
@ -1205,10 +1210,10 @@ void V_DrawChatCharacter(INT32 x, INT32 y, INT32 c, boolean lowercaseallowed, UI
|
||||||
w = (vid.width < 640 ) ? (SHORT(hu_font[c]->width)/2) : (SHORT(hu_font[c]->width)); // use normal sized characters if we're using a terribly low resolution.
|
w = (vid.width < 640 ) ? (SHORT(hu_font[c]->width)/2) : (SHORT(hu_font[c]->width)); // use normal sized characters if we're using a terribly low resolution.
|
||||||
if (x + w > vid.width)
|
if (x + w > vid.width)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
V_DrawFixedPatch(x*FRACUNIT, y*FRACUNIT, (vid.width < 640) ? (FRACUNIT) : (FRACUNIT/2), flags, hu_font[c], colormap);
|
V_DrawFixedPatch(x*FRACUNIT, y*FRACUNIT, (vid.width < 640) ? (FRACUNIT) : (FRACUNIT/2), flags, hu_font[c], colormap);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Precompile a wordwrapped string to any given width.
|
// Precompile a wordwrapped string to any given width.
|
||||||
|
|
|
@ -157,6 +157,7 @@ void V_DrawLevelTitle(INT32 x, INT32 y, INT32 option, const char *string);
|
||||||
|
|
||||||
// wordwrap a string using the hu_font
|
// wordwrap a string using the hu_font
|
||||||
char *V_WordWrap(INT32 x, INT32 w, INT32 option, const char *string);
|
char *V_WordWrap(INT32 x, INT32 w, INT32 option, const char *string);
|
||||||
|
UINT8 *V_GetStringColormap(INT32 colorflags);
|
||||||
|
|
||||||
// draw a string using the hu_font
|
// draw a string using the hu_font
|
||||||
void V_DrawString(INT32 x, INT32 y, INT32 option, const char *string);
|
void V_DrawString(INT32 x, INT32 y, INT32 option, const char *string);
|
||||||
|
|
Loading…
Reference in a new issue