Start the basics mod the mod display system
This commit is contained in:
parent
96c9b029c5
commit
1a8958a34f
5 changed files with 84 additions and 1 deletions
|
|
@ -163,6 +163,8 @@ SINT8 joinnode = 0; // used for CL_VIEWSERVER
|
|||
char connectedservername[MAXSERVERNAME];
|
||||
char connectedservercontact[MAXSERVERCONTACT];
|
||||
char connectedserverdescription[MAXSERVERDESCRIPTION];
|
||||
servermods_t connectedservercustommods[MAXSERVERMODS];
|
||||
UINT8 numcustomservermods = 0;
|
||||
|
||||
/// \brief do we accept new players?
|
||||
/// \todo WORK!
|
||||
|
|
|
|||
|
|
@ -47,6 +47,17 @@ applications may follow different packet versions.
|
|||
#define MAXSERVERDESCRIPTIONLINE 40
|
||||
#define DEFAULTDESCSTRING "Welcome to my SRB2Kart server!"
|
||||
|
||||
#define MAXSERVERMODS 255
|
||||
#define MAXSERVERMODNAME 13
|
||||
|
||||
struct servermods_t
|
||||
{
|
||||
char modname[MAXSERVERMODNAME];
|
||||
consvar_t *cvar;
|
||||
SINT8 active; // -1 is N/A, 0 is off, 1 is on.
|
||||
boolean valid;
|
||||
};
|
||||
|
||||
// Sends over info via packets to client players.
|
||||
void ServerInfoUpdateSend(void);
|
||||
|
||||
|
|
@ -477,6 +488,8 @@ extern SINT8 servernode;
|
|||
extern char connectedservername[MAXSERVERNAME];
|
||||
extern char connectedservercontact[MAXSERVERCONTACT];
|
||||
extern char connectedserverdescription[MAXSERVERDESCRIPTION];
|
||||
extern servermods_t connectedservercustommods[MAXSERVERMODS];
|
||||
extern UINT8 numcustomservermods;
|
||||
|
||||
void Command_Ping_f(void);
|
||||
extern tic_t connectiontimeout;
|
||||
|
|
|
|||
|
|
@ -3799,7 +3799,7 @@ static void Command_ScoreboardAdd(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
strncat(connectedserverdescription, finalstring, MAXSERVERDESCRIPTIONLINE);
|
||||
strncat(connectedserverdescription, va("%s\n", finalstring), MAXSERVERDESCRIPTIONLINE);
|
||||
CONS_Printf(M_GetText("Scoreboard text line has been added.\n"));
|
||||
}
|
||||
|
||||
|
|
|
|||
67
src/k_hud.c
67
src/k_hud.c
|
|
@ -2205,6 +2205,72 @@ INT32 K_DrawNeoTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines
|
|||
return x+rightoffset;
|
||||
}
|
||||
|
||||
#define BASEMODS 11
|
||||
void K_DrawServerMods(INT32 x, INT32 y)
|
||||
{
|
||||
UINT8 i, j;
|
||||
INT32 xoff = 0, yoff = 10;
|
||||
UINT8 numdrawn = 0;
|
||||
|
||||
servermods_t basemods[BASEMODS] =
|
||||
{
|
||||
{"Rings", NULL, K_RingsActive() > 0, true},
|
||||
{"4-Tier Drifts", NULL, K_PurpleDriftActive() > 0, true},
|
||||
{"Slipdash", NULL, K_SlipdashActive() > 0, true},
|
||||
{"Stacking", NULL, K_StackingActive() > 0, true},
|
||||
{"Chaining", NULL, K_ChainingActive() > 0, true},
|
||||
{"Chain Offroad", &cv_kartchainingoffroad, -1, true},
|
||||
{"Slope Boost", NULL, K_PurpleDriftActive() > 0, true},
|
||||
{"Drafting", NULL, K_PurpleDriftActive() > 0, true},
|
||||
{"Bump Spark", &cv_kartbumpspark, -1, true},
|
||||
{"Bump Spring", &cv_kartbumpspring, -1, true},
|
||||
{"Alt. Invin.", NULL, K_GetKartInvinType() == KARTINVIN_ALTERN, true}
|
||||
};
|
||||
|
||||
V_DrawThinString(x, y, V_6WIDTHSPACE|V_ALLOWLOWERCASE|V_GRAYMAP, "Gameplay / Balance Changes:");
|
||||
|
||||
for (j = 0; j < 2; j++)
|
||||
{
|
||||
UINT8 modcount = j == 0 ? BASEMODS : numcustomservermods;
|
||||
servermods_t *modslist = j == 0 ? basemods : connectedservercustommods;
|
||||
|
||||
// Draw the the modlist.
|
||||
for (i = 0; i < modcount; i++)
|
||||
{
|
||||
boolean drawdis = false;
|
||||
|
||||
if (modslist[i].valid)
|
||||
{
|
||||
if (modslist[i].cvar && modslist[i].cvar->value)
|
||||
{
|
||||
drawdis = true;
|
||||
}
|
||||
else if (modslist[i].active == 1)
|
||||
{
|
||||
drawdis = true;
|
||||
}
|
||||
|
||||
if (drawdis && modslist[i].modname[0] != '\0')
|
||||
{
|
||||
V_DrawSmallString(x+xoff, y+yoff, V_6WIDTHSPACE|V_ALLOWLOWERCASE, modslist[i].modname);
|
||||
numdrawn++;
|
||||
|
||||
if ((numdrawn % 2) == 0)
|
||||
{
|
||||
xoff -= 50;
|
||||
yoff += 5;
|
||||
}
|
||||
else if ((numdrawn % 1) == 0)
|
||||
{
|
||||
xoff += 50;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#undef BASEMODS
|
||||
|
||||
void K_DrawServerDescrption(INT32 x, INT32 y)
|
||||
{
|
||||
if (connectedservername[0] != '\0')
|
||||
|
|
@ -2215,6 +2281,7 @@ void K_DrawServerDescrption(INT32 x, INT32 y)
|
|||
if (connectedserverdescription[0] != '\0')
|
||||
V_DrawSmallString(x, y+20, V_6WIDTHSPACE|V_ALLOWLOWERCASE, connectedserverdescription);
|
||||
|
||||
K_DrawServerMods(x, y + 50);
|
||||
}
|
||||
|
||||
static void K_drawKartLaps(void)
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ TYPEDEF (doomdata_t);
|
|||
TYPEDEF (serverelem_t);
|
||||
TYPEDEF (rewind_t);
|
||||
TYPEDEF (netinfo_pak);
|
||||
TYPEDEF (servermods_t);
|
||||
|
||||
// d_event.h
|
||||
TYPEDEF (event_t);
|
||||
|
|
|
|||
Loading…
Reference in a new issue