diff --git a/Source/Client/View.c b/Source/Client/View.c index 38258374..d870ea50 100755 --- a/Source/Client/View.c +++ b/Source/Client/View.c @@ -126,7 +126,6 @@ View_DrawViewModel ==================== */ void View_DrawViewModel( void ) { - static float fLastTime; static float fBob; static float fLastWeapon; @@ -143,7 +142,7 @@ void View_DrawViewModel( void ) { } // Don't update when paused - if ( time != fLastTime ) { + if ( serverkey("pausestate") == "0" ) { fBob = View_CalcBob(); if( getstatf( STAT_ACTIVEWEAPON ) < CS_WEAPON_COUNT ) { @@ -167,6 +166,7 @@ void View_DrawViewModel( void ) { processmodelevents( eViewModel.modelindex, eViewModel.frame, fBaseTime, eViewModel.frame1time, View_ProcessEvent ); eViewModel.frame1time += frametime; + eViewModel.frame2time += frametime; } makevectors( getproperty( VF_ANGLES ) ); @@ -189,9 +189,7 @@ void View_DrawViewModel( void ) { if ( autocvar_cl_bobclassic == 1 ) { eViewModel.angles_z = -fBob; } - - fLastTime = time; - + // Only bother when zoomed out if ( getstatf( STAT_VIEWZOOM ) == 255 ) { // Update muzzleflash position and draw it diff --git a/Source/FreeCS-CE.prj b/Source/FreeCS-CE.prj index 02c63429..2f04e5dd 100644 --- a/Source/FreeCS-CE.prj +++ b/Source/FreeCS-CE.prj @@ -25,7 +25,7 @@ - + @@ -114,6 +114,13 @@ - + + + + + + + + diff --git a/Source/Menu/Defs.h b/Source/Menu/Defs.h index bbcc08c7..61f0dd0b 100644 --- a/Source/Menu/Defs.h +++ b/Source/Menu/Defs.h @@ -60,7 +60,7 @@ int iMapCount; var float FONT_MENU; -#define MENU_COUNT 10 +#define MENU_COUNT 11 enum { MENU_MAIN, MENU_CONFIGURATION, @@ -71,6 +71,7 @@ enum { MENU_MULTIPLAYER, MENU_MULTIPLAYER_CREATE, MENU_MULTIPLAYER_OPTIONS, + MENU_MULTIPLAYER_IRC, MENU_QUIT }; diff --git a/Source/Menu/Header.c b/Source/Menu/Header.c index edd9f341..ffc97f33 100644 --- a/Source/Menu/Header.c +++ b/Source/Menu/Header.c @@ -28,6 +28,7 @@ fcsMenu fcsMain[ MENU_COUNT ] = { { Menu_Multiplayer, HEAD_MULTI }, { Menu_Multiplayer_Create, HEAD_CREATEGAME }, { Menu_Multiplayer_Create, HEAD_ADVOPTIONS }, + { Menu_Multiplayer_IRC, HEAD_ADVOPTIONS }, { Menu_Quit, -1 } }; diff --git a/Source/Menu/MenuMultiplayer.c b/Source/Menu/MenuMultiplayer.c index 9bb6dc20..48943cbc 100644 --- a/Source/Menu/MenuMultiplayer.c +++ b/Source/Menu/MenuMultiplayer.c @@ -123,6 +123,9 @@ void Menu_Multiplayer( void ) { static void Multiplayer_ButtonDone( void ) { iMenu = MENU_MAIN; } + static void Multiplayer_ButtonIRC( void ) { + iMenu = MENU_MULTIPLAYER_IRC; + } // Initialize it on the first run if ( iSelectedServer == -1 ) { @@ -132,7 +135,7 @@ void Menu_Multiplayer( void ) { sethostcachesort( gethostcacheindexforkey( "ping" ), FALSE ); refreshhostcache(); resorthostcache(); - iSelectedServer = 0; + iSelectedServer = -2; } fldName = gethostcacheindexforkey("name"); @@ -146,12 +149,15 @@ void Menu_Multiplayer( void ) { iServersTotal = gethostcachevalue( SLIST_HOSTCACHEVIEWCOUNT ); - Menu_SetClipArea( '32 148', '164 160' ); + Menu_SetClipArea( '32 148', '164 192' ); Object_Button( '32 148', BTN_JOINGAME, Multiplayer_ButtonJoin, 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] ); + if ( checkcommand( "irc" ) ) { + Object_Button( '32 276', BTN_IRCCHAT, Multiplayer_ButtonIRC, fButtonAlpha[4] ); + } + Object_Button( '32 308', BTN_DONE, Multiplayer_ButtonDone, fButtonAlpha[5] ); Menu_ResetClipArea(); Object_Frame( '196 140', '404 308' ); @@ -234,4 +240,24 @@ void Menu_Multiplayer_Create( void ) { vListPos_y += 10; } Menu_ResetClipArea(); +} + +void Menu_Multiplayer_IRC( void ) { + static int iIRCInit = FALSE; + + static void IRC_ButtonDone( void ) { + iMenu = MENU_MULTIPLAYER; + } + + if ( iIRCInit == FALSE ) { + print( "[IRC] Connecting to #freecs...\n" ); + con_printf( "IRC", "/irc /connect irc.freenode.org #freecs\n" ); + //con_getset( "IRC", "hidden", "1" ); + iIRCInit = TRUE; + for (string s = ""; s; s = con_getset("", "next")) {con_printf(s, "SPAMMING EVERY CONSOLE HAR HAR HAR\n");} + } + + con_draw( "IRC", vMenuOffset + '196 140', '404 308', 8 ); + + Object_Button( '32 308', BTN_DONE, IRC_ButtonDone, fButtonAlpha[0] ); } \ No newline at end of file diff --git a/freecs/csprogs.dat b/freecs/csprogs.dat index c74e553a..c7053fd0 100644 Binary files a/freecs/csprogs.dat and b/freecs/csprogs.dat differ diff --git a/freecs/menu.dat b/freecs/menu.dat index 6d6cf0e8..5d60ca81 100755 Binary files a/freecs/menu.dat and b/freecs/menu.dat differ