From 5b0cc923a0eedb43d956056d93f33ecbf5ac88b8 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Thu, 22 Jun 2017 19:31:43 +0200 Subject: [PATCH] Server browser, scrollbars... lots of fun stuff. --- Source/FreeCS-CE.prj | 17 +-- Source/Menu/Defs.h | 18 ++- Source/Menu/Draw.c | 12 +- Source/Menu/Init.c | 2 + Source/Menu/Input.c | 57 ++++++++-- Source/Menu/MenuMain.c | 7 +- Source/Menu/MenuMultiplayer.c | 207 ++++++++++++++++++++++++++++++++++ Source/Menu/Objects.c | 102 ++++++++++++++--- Source/Menu/progs.src | 1 + freecs/csprogs.dat | Bin 183074 -> 183074 bytes freecs/default.cfg | 16 +-- freecs/gfx/menuchars.tga | Bin 0 -> 1048620 bytes freecs/menu.dat | Bin 21414 -> 28382 bytes freecs/progs.dat | Bin 188130 -> 188130 bytes 14 files changed, 387 insertions(+), 52 deletions(-) create mode 100755 Source/Menu/MenuMultiplayer.c create mode 100755 freecs/gfx/menuchars.tga diff --git a/Source/FreeCS-CE.prj b/Source/FreeCS-CE.prj index 719cb093..f3ffcd11 100755 --- a/Source/FreeCS-CE.prj +++ b/Source/FreeCS-CE.prj @@ -1,5 +1,5 @@ - + @@ -65,6 +65,7 @@ + @@ -110,15 +111,9 @@ - - - - - - - - - - + + + + diff --git a/Source/Menu/Defs.h b/Source/Menu/Defs.h index fcb404ea..85a672fb 100755 --- a/Source/Menu/Defs.h +++ b/Source/Menu/Defs.h @@ -28,6 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. var vector vVideoSize; var vector vMenuOffset; +var vector autocvar_menu_color = '1 0.59 0.19'; var vector vMousePos; var float fInputKeyCode; @@ -35,9 +36,18 @@ var float fInputKeyASCII; var float fInputKeyDown; var float fMouseClick; var float fButtonAlpha[8]; +var float fScrollWheel; + +enum { + SCROLL_NONE, + SCROLL_UP, + SCROLL_DOWN +}; var int iMenuActive; +var int iScrollbarHold; // Because of this, don't put more than one scrollbar per screen :) + float frametime; float fLastTime; @@ -47,6 +57,9 @@ int iMapCount; enum { MENU_MAIN, + MENU_MULTIPLAYER, + MENU_MULTIPLAYER_CREATE, + MENU_MULTIPLAYER_OPTIONS, MENU_QUIT }; @@ -121,4 +134,7 @@ enum { BTN_DEACTIVATE, BTN_SPECTATEGAME, BTN_SPECTATEGAMES -}; \ No newline at end of file +}; + +void Menu_SetClipArea( vector vPosition, vector vRegion ); +void Menu_ResetClipArea( void ); \ No newline at end of file diff --git a/Source/Menu/Draw.c b/Source/Menu/Draw.c index dd236e9a..b2b39608 100755 --- a/Source/Menu/Draw.c +++ b/Source/Menu/Draw.c @@ -36,11 +36,8 @@ Responsible for the fancy menu background ================= */ void m_drawback( void ) { - if ( clientstate() == 2 ) { - drawfill( '0 0', vVideoSize, '0 0 0', 0.75f ); - } else { - drawpic( vMenuOffset, "gfx/shell/splash", '640 480', '1 1 1', 1.0f, 0 ); - } + drawfill( '0 0', vVideoSize, '0 0 0', 0.75f ); + drawpic( vMenuOffset, "gfx/shell/splash", '640 480', '1 1 1', 1.0f, 0 ); } /* @@ -59,6 +56,7 @@ void m_draw( vector vScreenSize ) { vVideoSize = vScreenSize; vMenuOffset_x = vVideoSize_x / 2 - 320; vMenuOffset_y = vVideoSize_y / 2 - 240; + Menu_ResetClipArea(); } // we have to create frametime ourselves because menuqc is primitive @@ -73,6 +71,10 @@ void m_draw( vector vScreenSize ) { if ( iMenu == MENU_MAIN ) { Menu_Main(); + } else if ( iMenu == MENU_MULTIPLAYER ) { + Menu_Multiplayer(); + } else if ( iMenu == MENU_MULTIPLAYER_CREATE ) { + Menu_Multiplayer_Create(); } else if ( iMenu == MENU_QUIT ) { Menu_Quit(); } diff --git a/Source/Menu/Init.c b/Source/Menu/Init.c index c1e8a6ae..7f1ae0b3 100755 --- a/Source/Menu/Init.c +++ b/Source/Menu/Init.c @@ -38,6 +38,8 @@ void m_init( void ) { } search_end( shMaps ); + + Menu_ResetClipArea(); } /* diff --git a/Source/Menu/Input.c b/Source/Menu/Input.c index ba8501ed..2496db90 100755 --- a/Source/Menu/Input.c +++ b/Source/Menu/Input.c @@ -18,6 +18,10 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +// Temporary state +var vector vMenuClickMins; +var vector vMenuClickMaxs; + /* ================= Menu_InputCheckMouse @@ -25,26 +29,48 @@ Menu_InputCheckMouse Checks a specified region and returns TRUE if the mouse is above it. ================= */ -int Menu_InputCheckMouse( vector vPos, vector vReg ) { +int Menu_InputCheckMouse( vector vPosition, vector vRegion ) { vector vSMins, vSMaxs; - vSMins = vPos; - vSMaxs = vPos; - vSMins_x = vPos_x; - vSMaxs_y = vPos_y - 1; - - vSMaxs_x = vPos_x + vReg_x; - vSMaxs_y = vPos_y + vReg_y; - - if ( vMousePos_x >= vSMins_x && vMousePos_x <= vSMaxs_x ) { - if ( vMousePos_y >= vSMins_y && vMousePos_y <= vSMaxs_y ) { - return TRUE; + // Some elements will be blocked (scrolling lists) outside of this region + if ( vMousePos_x >= vMenuClickMins_x && vMousePos_x <= vMenuClickMaxs_x ) { + if ( vMousePos_y >= vMenuClickMins_y && vMousePos_y <= vMenuClickMaxs_y ) { + vSMins = vSMaxs = vPosition; + vSMaxs_y = vPosition_y - 1; + + vSMaxs_x = vPosition_x + vRegion_x; + vSMaxs_y = vPosition_y + vRegion_y; + + if ( vMousePos_x >= vSMins_x && vMousePos_x <= vSMaxs_x ) { + if ( vMousePos_y >= vSMins_y && vMousePos_y <= vSMaxs_y ) { + return TRUE; + } + } } } return FALSE; } +void Menu_SetClipArea( vector vPosition, vector vRegion ) { + vPosition += vMenuOffset; + vMenuClickMins = vPosition; + vMenuClickMaxs = vPosition; + vMenuClickMins_x = vPosition_x; + vMenuClickMaxs_y = vPosition_y - 1; + + vMenuClickMaxs_x = vPosition_x + vRegion_x; + vMenuClickMaxs_y = vPosition_y + vRegion_y; + + drawsetcliparea( vPosition_x, vPosition_y, vRegion_x, vRegion_y ); +} + +void Menu_ResetClipArea( void ) { + vMenuClickMins = vMenuOffset; + vMenuClickMaxs = vMenuOffset + '640 480'; + drawresetcliparea(); +} + /* ================= Menu_InputEvent @@ -64,11 +90,18 @@ float Menu_InputEvent( float fEventType, float fKey, float fCharacter, float fDe fInputKeyDown = 1; } + if ( fKey == K_MWHEELDOWN ) { + fScrollWheel = SCROLL_DOWN; + } else if ( fKey == K_MWHEELUP ) { + fScrollWheel = SCROLL_UP; + } + fInputKeyCode = fKey; fInputKeyASCII = fCharacter; } else if ( fEventType == IE_KEYUP ) { if ( fKey == K_MOUSE1 ) { fMouseClick = 0; + iScrollbarHold = FALSE; } else { fInputKeyDown = 0; } diff --git a/Source/Menu/MenuMain.c b/Source/Menu/MenuMain.c index 09aff56b..139e8858 100755 --- a/Source/Menu/MenuMain.c +++ b/Source/Menu/MenuMain.c @@ -22,6 +22,9 @@ void Menu_Main( void ) { static void Main_ButtonConsole( void ) { localcmd( "toggleconsole\n" ); } + static void Main_ButtonMultiplayer( void ) { + iMenu = MENU_MULTIPLAYER; + } static void Main_ButtonQuit( void ) { iMenu = MENU_QUIT; } @@ -29,7 +32,7 @@ void Menu_Main( void ) { Object_Button( '72 188', BTN_CONSOLE, Main_ButtonConsole, fButtonAlpha[0] ); Object_Button( '72 272', BTN_CONFIG, __NULL__, fButtonAlpha[1] ); - Object_Button( '72 328', BTN_MULTIPLAYER, __NULL__, fButtonAlpha[2] ); + Object_Button( '72 328', BTN_MULTIPLAYER, Main_ButtonMultiplayer, fButtonAlpha[2] ); Object_Button( '72 356', BTN_CUSTOMGAME, __NULL__, fButtonAlpha[3] ); Object_Button( '72 384', BTN_README, __NULL__, fButtonAlpha[4] ); Object_Button( '72 412', BTN_VISITWEB, __NULL__, fButtonAlpha[5] ); @@ -46,7 +49,7 @@ void Menu_Quit( void ) { } Object_Frame( '192 192', '256 96' ); - drawstring( vMenuOffset + '200 216', "FREECS_QUITMSG", '8 8', MENU_FGCOLOR, 1.0f, 0 ); + Object_Label( '200 216', "FREECS_QUITMSG", '8 8' ); Object_Button( '200 248', BTN_QUIT, Quit_Exit, fButtonAlpha[0] ); Object_Button_Right( '440 248', BTN_CANCEL, Quit_Cancel, fButtonAlpha[1] ); diff --git a/Source/Menu/MenuMultiplayer.c b/Source/Menu/MenuMultiplayer.c new file mode 100755 index 00000000..5d37144d --- /dev/null +++ b/Source/Menu/MenuMultiplayer.c @@ -0,0 +1,207 @@ +/* +FreeCS Project +Copyright (C) 2016, 2017 Marco "eukara" Hladik + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +// Server fields! +float fldName; +float fldAddress; +float fldPing; +float fldPlayers; +float fldMaxplayers; +float fldMap; +float fldTimelimit; +float fldFraglimit; +float fServerClickTime; + +void Menu_Multiplayer_Connect( int iServerID ) { + if ( gethostcachenumber( fldMaxplayers, iServerID ) <= 0 ) { + return; + } + + if ( iServerID >= 0 ) { + localcmd( sprintf( "connect %s\n", gethostcachestring( fldAddress, iServerID ) ) ); + m_hide(); + } +} + +int Menu_Multiplayer_Find_Item( vector vPosition, int i, __inout int iSelected ) { + float fItemAlpha = 1.0f; + + vPosition += vMenuOffset; + + if ( Menu_InputCheckMouse( [ vPosition_x, vPosition_y ], [ 397, 8 ] ) == TRUE ) { + if ( fMouseClick == TRUE ) { + if ( iSelected != i ) { + iSelected = i; + fInputKeyCode = 0; + fMouseClick = FALSE; + fServerClickTime = time + 0.2; + } else { + if ( fServerClickTime > time ) { + Menu_Multiplayer_Connect( i ); + } + iSelected = -2; + fInputKeyCode = 0; + fMouseClick = FALSE; + } + } + } else { + fItemAlpha = 0.8; + } + + if ( gethostcachenumber( fldPing, i ) == -1 ) { + return FALSE; + } + + if ( iSelected == i ) { + drawfill( [ vPosition_x, vPosition_y - 1 ], [ 397, 10 ], '1 1 1', 0.5, 2 ); + drawstring( [vPosition_x + 8, vPosition_y], sprintf( "%.25s", gethostcachestring( fldName, i ) ), '8 8 0', '1 1 1', 1.0f, FALSE ); + drawstring( [vPosition_x + 218, vPosition_y], sprintf( "%.10s", gethostcachestring( fldMap, i ) ), '8 8 0', '1 1 1', 1.0f, FALSE ); + drawstring( [vPosition_x + 298, vPosition_y], sprintf( "%d/%d", gethostcachenumber( fldPlayers, i ), gethostcachenumber( fldMaxplayers, i ) ), '8 8 0', '1 1 1', 1.0f, FALSE ); + drawstring( [vPosition_x + 362, vPosition_y], sprintf( "%.3s", ftos( gethostcachenumber( fldPing, i ) ) ), '8 8 0', '1 1 1', 1.0f, FALSE ); + } else { + drawstring( [vPosition_x + 8, vPosition_y], sprintf( "^3%.25s", gethostcachestring( fldName, i ) ), '8 8 0', '1 1 1', fItemAlpha, FALSE ); + drawstring( [vPosition_x + 218, vPosition_y], sprintf( "%.10s", gethostcachestring( fldMap, i ) ), '8 8 0', '1 1 1', fItemAlpha, FALSE ); + drawstring( [vPosition_x + 298, vPosition_y], sprintf( "%d/%d", gethostcachenumber( fldPlayers, i ), gethostcachenumber( fldMaxplayers, i ) ), '8 8 0', '1 1 1', fItemAlpha, FALSE ); + drawstring( [vPosition_x + 362, vPosition_y], sprintf( "%.3s", ftos( gethostcachenumber( fldPing, i ) ) ), '8 8 0', '1 1 1', fItemAlpha, FALSE ); + } + + return TRUE; +} + +void Menu_Multiplayer( void ) { + static int iSelectedServer = -1; + static int iScrollServer; + static int iServersTotal; + + static void Multiplayer_ButtonCreate( void ) { + iMenu = MENU_MULTIPLAYER_CREATE; + } + static void Multiplayer_ButtonRefresh( void ) { + refreshhostcache(); + resorthostcache(); + } + static void Multiplayer_ButtonDone( void ) { + iMenu = MENU_MAIN; + } + + // Initialize it on the first run + if ( iSelectedServer == -1 ) { + localcmd( "com_protocolname FTE-Quake\n" ); + //clear the filter + resethostcachemasks(); + //sethostcachemaskstring( 0, gethostcacheindexforkey( "gamedir" ), "freecs", SLIST_TEST_EQUAL ); + sethostcachesort( gethostcacheindexforkey( "ping" ), FALSE ); + refreshhostcache(); + resorthostcache(); + iSelectedServer = 0; + } + + fldName = gethostcacheindexforkey("name"); + fldAddress = gethostcacheindexforkey("cname"); + fldPing = gethostcacheindexforkey("ping"); + fldPlayers = gethostcacheindexforkey("numhumans"); + fldMaxplayers = gethostcacheindexforkey("maxplayers"); + fldMap = gethostcacheindexforkey("map"); + fldTimelimit = gethostcacheindexforkey("timelimit"); + fldFraglimit = gethostcacheindexforkey("fraglimit"); + + iServersTotal = gethostcachevalue( SLIST_HOSTCACHEVIEWCOUNT ); + + Menu_SetClipArea( '32 148', '164 160' ); + Object_Button( '32 148', BTN_JOINGAME, __NULL__, fButtonAlpha[0] ); + Object_Button( '32 180', BTN_CREATE, Multiplayer_ButtonCreate, fButtonAlpha[1] ); + Object_Button( '32 212', BTN_GAMEINFO, __NULL__, fButtonAlpha[2] ); + Object_Button( '32 244', BTN_REFRESHLIST, Multiplayer_ButtonRefresh, fButtonAlpha[3] ); + Object_Button( '32 276', BTN_DONE, Multiplayer_ButtonDone, fButtonAlpha[4] ); + Menu_ResetClipArea(); + + Object_Frame( '196 140', '404 308' ); + Object_Scrollbar( '604 140', 308, iScrollServer ); + + Object_Label( '208 124', "Game", '8 8' ); + Object_Label( '418 124', "Map", '8 8' ); + Object_Label( '498 124', "Players", '8 8' ); + Object_Label( '562 124', "Ping", '8 8' ); + + Menu_SetClipArea( '196 141', '404 306' ); + vector vListPos = '200 145'; + vListPos_y -= fabs( ( ( iServersTotal - 8 ) * 10 ) * ( iScrollServer / 308 ) ); + for ( float i = 0; i < iServersTotal; i++ ) { + if ( Menu_Multiplayer_Find_Item( vListPos, i, iSelectedServer ) == TRUE ) { + vListPos_y += 10; + } else { + break; + } + } + Menu_ResetClipArea(); +} + +void Menu_Multiplayer_Create( void ) { + static int iSelectedMap; + static int iScrollMap; + + static void Create_ListMap( vector vPosition, int iIndex ) { + float fAlpha = 0.8; + vPosition += vMenuOffset; + + if ( Menu_InputCheckMouse( vPosition, '182 10' ) == TRUE ) { + if ( fMouseClick == TRUE ) { + iSelectedMap = iIndex; + fMouseClick = FALSE; + } + fAlpha = 1.0f; + } + + if ( iSelectedMap == iIndex ) { + drawstring( vPosition, sMapList[ iIndex ], '8 8', '1 1 1', 1.0f, 0 ); + } else { + drawstring( vPosition, sMapList[ iIndex ], '8 8', '0.9 0.9 0.9', fAlpha, 0 ); + } + } + static void Create_ButtonAdvanced( void ) { + // Advanced options + iMenu = MENU_MULTIPLAYER_OPTIONS; + } + static void Create_ButtonOK( void ) { + // Start server + localcmd( sprintf( "map %s\n", sMapList[ iSelectedMap ] ) ); + } + static void Create_ButtonCancel( void ) { + iMenu = MENU_MULTIPLAYER; + } + + Object_Button( '32 148', BTN_ADVOPTIONS, Create_ButtonAdvanced, fButtonAlpha[0] ); + Object_Button( '32 180', BTN_OK, Create_ButtonOK, fButtonAlpha[1] ); + Object_Button( '32 212', BTN_CANCEL, Create_ButtonCancel, fButtonAlpha[2] ); + + Object_Label( '384 148', "Maps:", '8 8' ); + Object_Frame( '384 164', '190 288' ); + Object_Scrollbar( '576 164', 288, iScrollMap ); + + // Maplist + vector vListPos = '392 172'; + Menu_SetClipArea( '386 166', '188 286' ); + vListPos_y -= fabs( ( ( iMapCount - 21 ) * 10 ) * ( iScrollMap / 288 ) ); + for ( int i = 0; i < iMapCount; i++ ) { + Create_ListMap( vListPos, i ); + vListPos_y += 10; + } + Menu_ResetClipArea(); +} \ No newline at end of file diff --git a/Source/Menu/Objects.c b/Source/Menu/Objects.c index eb8868ea..f05ae3bf 100755 --- a/Source/Menu/Objects.c +++ b/Source/Menu/Objects.c @@ -90,16 +90,15 @@ string sButtonLabels[ MENU_BUTTONS ] = { "BTN_SPECTATEGAMES" }; -#define MENU_FGCOLOR '1 0.59 0.19' +#define autocvar_menu_color '1 0.59 0.19' /* ================= -drawmenupic +Object_Button -Wrapper for drawpic that cares about resolution and scales. +Used for the (used to be) bitmap buttons in the menu ================= */ - void Object_Button( vector vPosition, int iButtonID, void() vFunction, __inout float fAlpha ) { static int iLastButton = -1; @@ -127,25 +126,102 @@ void Object_Button( vector vPosition, int iButtonID, void() vFunction, __inout f } } - drawstring( vPosition, sButtonLabels[ iButtonID ], '16 16', MENU_FGCOLOR, 1.0f, 0 ); + drawstring( vPosition, sButtonLabels[ iButtonID ], '16 16', autocvar_menu_color, 1.0f, 0 ); drawstring( vPosition, sButtonLabels[ iButtonID ], '16 16', '1 1 1', fAlpha, 0 ); } +/* +================= +Object_Button_Right + +A right-aligned version of Object_Button +================= +*/ void Object_Button_Right( vector vPosition, int iButtonID, void() vFunction, __inout float fAlpha ) { vPosition_x -= stringwidth( sButtonLabels[ iButtonID ], TRUE, '16 16' ); Object_Button( vPosition, iButtonID, vFunction, fAlpha ); } -// Draws window with outline, border and title -void Object_Frame( vector vPos, vector vSize ) { - vPos += vMenuOffset; +/* +================= +Object_Frame + +A filled "window" of sorts +================= +*/ +void Object_Frame( vector vPosition, vector vSize ) { + vPosition += vMenuOffset; // Draw the background - drawfill( vPos, vSize, '0 0 0', 1.0f ); + drawfill( vPosition, vSize, '0 0 0', 1.0f ); - drawfill( vPos, [vSize_x, 1], MENU_FGCOLOR, 1.0f ); // Top - drawfill( [vPos_x, vPos_y + vSize_y], [vSize_x, 1], MENU_FGCOLOR, 1.0f ); // Bottom + drawfill( vPosition, [vSize_x, 1], autocvar_menu_color, 1.0f ); // Top + drawfill( [vPosition_x, vPosition_y + vSize_y], [vSize_x, 1], autocvar_menu_color, 1.0f ); // Bottom - drawfill( vPos, [1, vSize_y], MENU_FGCOLOR, 1.0f ); // Left - drawfill( [vPos_x + vSize_x, vPos_y], [1, vSize_y], MENU_FGCOLOR, 1.0f ); // Right + drawfill( vPosition, [1, vSize_y], autocvar_menu_color, 1.0f ); // Left + drawfill( [vPosition_x + vSize_x, vPosition_y], [1, vSize_y + 1], autocvar_menu_color, 1.0f ); // Right } + +/* +================= +Object_Label + +A label in a cvar driven color scheme +================= +*/ +void Object_Label( vector vPosition, string sLabel, vector vSize ) { + vPosition += vMenuOffset; + drawstring( vPosition, sLabel, vSize, autocvar_menu_color, 1.0f, 0 ); +} + +/* +================= +Object_Label_Right + +A right-aligned version of Object_Label +================= +*/ +void Object_Label_Right( vector vPosition, string sLabel, vector vSize ) { + vPosition_x -= stringwidth( sLabel, TRUE, vSize ); + Object_Label( vPosition, sLabel, vSize ); +} + +/* +================= +Object_Scrollbar + +A scrollbar, for different types of purposes. +Note: Only have one at a time. +================= +*/ +void Object_Scrollbar( vector vPosition, int iHeight, __inout int iProgress ) { + Object_Frame( vPosition, [ 16, iHeight ] ); + + vPosition += vMenuOffset; + iHeight -= 16; + if ( ( iScrollbarHold == TRUE ) || ( Menu_InputCheckMouse( [vPosition_x, vPosition_y + iProgress ], '16 16' ) == TRUE ) ) { + if ( fMouseClick == TRUE ) { + iProgress = ( vMousePos_y - vPosition_y ) - 8; + iScrollbarHold = TRUE; + } + } + + if ( fScrollWheel == SCROLL_DOWN ) { + iProgress += 2; + fScrollWheel = SCROLL_NONE; + } else if ( fScrollWheel == SCROLL_UP ) { + iProgress -= 2; + fScrollWheel = SCROLL_NONE; + } + + if ( iProgress < 0 ) { + iProgress = 0; + } else if ( iProgress > iHeight ) { + iProgress = iHeight; + } + + iHeight += 16; + + drawfill( [vPosition_x, vPosition_y + iProgress], [ 16, 16 ], autocvar_menu_color, 1.0f ); +} + diff --git a/Source/Menu/progs.src b/Source/Menu/progs.src index 642847f3..6e041de3 100755 --- a/Source/Menu/progs.src +++ b/Source/Menu/progs.src @@ -12,5 +12,6 @@ Init.c Input.c Objects.c MenuMain.c +MenuMultiplayer.c Draw.c #endlist diff --git a/freecs/csprogs.dat b/freecs/csprogs.dat index 95e928e5aeca960526732500d92f08dc8b3e06f5..27a21aa70f4d9f84544fe8b0c71db8368eef53af 100644 GIT binary patch delta 20 ccmZ29jeF5F?g_<=MvWz{C5&53nAV*F098>4PXGV_ delta 20 ccmZ29jeF5F?g_<=hK(hyC5&53nAV*F098f^P5=M^ diff --git a/freecs/default.cfg b/freecs/default.cfg index b8fd4783..2863d15a 100755 --- a/freecs/default.cfg +++ b/freecs/default.cfg @@ -60,13 +60,13 @@ hostname "FreeCS Server" seta vid_conautoscale "1" seta snd_device "sdl" -seta r_polygonoffset_submodel_offset 0 -seta r_polygonoffset_submodel_factor 0 -seta r_fullbrightSkins 0 -seta r_fb_models 0 -seta con_logcenterprint 0 -seta v_contentblend 0 -seta com_nogamedirnativecode 0 - +seta r_polygonoffset_submodel_offset "0" +seta r_polygonoffset_submodel_factor "0" +seta r_fullbrightSkins "0" +seta r_fb_models "0" +seta con_logcenterprint "0" +seta v_contentblend "0" +seta com_nogamedirnativecode "0" +seta cl_cursor_scale "1" seta r_shadow_realtime_world_shadows "0" seta r_shadow_realtime_dlight_shadows "0" diff --git a/freecs/gfx/menuchars.tga b/freecs/gfx/menuchars.tga new file mode 100755 index 0000000000000000000000000000000000000000..b68b86d5f7062d33067207912316dce0170a55f0 GIT binary patch literal 1048620 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 P-~aBHzyI^!{^|b#!o>U5 literal 0 HcmV?d00001 diff --git a/freecs/menu.dat b/freecs/menu.dat index adaf036498644e2156d7cb6fc5f741af9134efba..f539d25e344f273b9cac6de3544f912682ef20a6 100755 GIT binary patch literal 28382 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 literal 21414 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