Skip to content

Commit

Permalink
Multiplayer: Load and display a server message of the day if present.
Browse files Browse the repository at this point in the history
  • Loading branch information
eukara committed Mar 26, 2023
1 parent 8dc3da6 commit 30ecbd1
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/client/init.qc
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,12 @@ ClientGame_Init(float apilevel, string enginename, float engineversion)
registercommand("chooseteam");
}

void VGUI_ShowMOTD();

void
ClientGame_InitDone(void)
{
VGUI_ShowMOTD();
}

void
Expand Down
1 change: 1 addition & 0 deletions src/client/progs.src
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,6 @@ scoreboard.qc
modelevent.qc

../../../src/client/include.src
vgui_motd.qc
../../../src/shared/include.src
#endlist
65 changes: 65 additions & 0 deletions src/client/vgui_motd.qc
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
* Copyright (c) 2023 Marco Cawthorne <[email protected]>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

void
VGUI_ShowMOTD(void)
{
static int initialized;
static VGUIButton winMotdClose;
static VGUIWindow winMotd;
static VGUILabel winMotdHostname;
static VGUILabel winMotdBody;

static void VGUI_ShowMOTD_Close(void)
{
winMotd.Hide();
}

if (MOTD_GetLineCount() < 1i)
return;

if (!initialized) {
initialized = TRUE;
winMotd = spawn(VGUIWindow);
winMotd.SetTitle("Message Of The Day");
winMotd.SetSize('424 312');
winMotd.SetStyleMask(0);

winMotdClose = spawn(VGUIButton);
winMotdClose.SetTitle("OK");
winMotdClose.SetPos([16, 266]);
winMotdClose.SetSize([160, 30]);
winMotdClose.SetFunc(VGUI_ShowMOTD_Close);

winMotdHostname = spawn(VGUILabel);
winMotdHostname.SetTitle(serverkey("hostname"));
winMotdHostname.SetTextSize(19);
winMotdHostname.SetPos([16, 20]);

winMotdBody = spawn(VGUILabel);
winMotdBody.SetTitle(MOTD_GetTextBody());
winMotdBody.SetPos([16, 48]);
winMotdBody.SetSize([392, 210]);

g_uiDesktop.Add(winMotd);
winMotd.Add(winMotdClose);
winMotd.Add(winMotdHostname);
winMotd.Add(winMotdBody);
}

winMotd.Show();
winMotd.SetPos((video_res / 2) - (winMotd.GetSize() / 2));
}
2 changes: 2 additions & 0 deletions src/server/gamerules_multiplayer.qc
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ HLMultiplayerRules::IsTeamplay(void)
void
HLMultiplayerRules::InitPostEnts(void)
{
MOTD_LoadDefault();

if (IsTeamplay() == true) {
int c;

Expand Down
5 changes: 5 additions & 0 deletions zpak001.pk3dir/fonts/ui.font
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
color "255 200 0"
alpha 255
rendersize "12 19"
path fonts/nimbus/NimbusSanL-Reg.otf
size 12

0 comments on commit 30ecbd1

Please sign in to comment.