[iortcw] 81/95: All: Automatically get initial Internet servers
Simon McVittie
smcv at debian.org
Fri Sep 8 10:42:25 UTC 2017
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to tag 1.51
in repository iortcw.
commit 475c1d2940777568dec505b0282edfd9e3cc8599
Author: MAN-AT-ARMS <M4N4T4RMS at gmail.com>
Date: Sat Jun 3 10:01:40 2017 -0400
All: Automatically get initial Internet servers
Unused in SP
---
MP/code/ui/ui_main.c | 29 ++++++++++++++++++-----------
SP/code/ui/ui_main.c | 29 ++++++++++++++++++-----------
2 files changed, 36 insertions(+), 22 deletions(-)
diff --git a/MP/code/ui/ui_main.c b/MP/code/ui/ui_main.c
index c20b1a5..a3b479b 100644
--- a/MP/code/ui/ui_main.c
+++ b/MP/code/ui/ui_main.c
@@ -126,7 +126,7 @@ static int uitogamecode[] = {4,6,2,3,1,5,7};
// NERVE - SMF - enabled for multiplayer
-static void UI_StartServerRefresh( qboolean full );
+static void UI_StartServerRefresh( qboolean full, qboolean force );
static void UI_StopServerRefresh( void );
static void UI_DoServerRefresh( void );
static void UI_FeederSelection( float feederID, int index );
@@ -3186,9 +3186,7 @@ static qboolean UI_NetSource_HandleKey(int flags, float *special, int key) {
}
UI_BuildServerDisplayList(qtrue);
- if (!(ui_netSource.integer >= UIAS_GLOBAL1 && ui_netSource.integer <= UIAS_GLOBAL5)) {
- UI_StartServerRefresh(qtrue);
- }
+ UI_StartServerRefresh(qtrue, qfalse);
trap_Cvar_SetValue( "ui_netSource", ui_netSource.integer);
return qtrue;
}
@@ -4689,10 +4687,10 @@ static void UI_RunMenuScript( char **args ) {
} else if ( Q_stricmp( name, "resetScores" ) == 0 ) {
UI_ClearScores();
} else if ( Q_stricmp( name, "RefreshServers" ) == 0 ) {
- UI_StartServerRefresh( qtrue );
+ UI_StartServerRefresh( qtrue, qtrue );
UI_BuildServerDisplayList( qtrue );
} else if ( Q_stricmp( name, "RefreshFilter" ) == 0 ) {
- UI_StartServerRefresh( qfalse );
+ UI_StartServerRefresh( qfalse, qtrue );
UI_BuildServerDisplayList( qtrue );
} else if ( Q_stricmp( name, "RunSPDemo" ) == 0 ) {
if ( uiInfo.demoAvailable ) {
@@ -4746,9 +4744,8 @@ static void UI_RunMenuScript( char **args ) {
uiInfo.nextServerStatusRefresh = 0;
uiInfo.nextFindPlayerRefresh = 0;
} else if ( Q_stricmp( name, "UpdateFilter" ) == 0 ) {
- if ( ui_netSource.integer == UIAS_LOCAL ) {
- UI_StartServerRefresh( qtrue );
- }
+ // UpdateFilter is called when server broser menu is opened and when a favorite server is deleted.
+ UI_StartServerRefresh(qtrue, qfalse);
UI_BuildServerDisplayList( qtrue );
UI_FeederSelection( FEEDER_SERVERS, 0 );
} else if ( Q_stricmp( name, "check_ServerStatus" ) == 0 ) {
@@ -7871,11 +7868,21 @@ static void UI_DoServerRefresh( void ) {
UI_StartServerRefresh
=================
*/
-static void UI_StartServerRefresh( qboolean full ) {
+static void UI_StartServerRefresh( qboolean full, qboolean force ) {
char *ptr;
int lanSource;
-
qtime_t q;
+
+ // This function is called with force=qfalse when server browser menu opens or net source changes.
+ // Automatically update local and favorite servers.
+ // Only update master server list the first time because the server info cache will be available after that.
+ if ( !force && ( ui_netSource.integer >= UIAS_GLOBAL1 && ui_netSource.integer <= UIAS_GLOBAL5 ) ) {
+ char *value = UI_Cvar_VariableString( va( "ui_lastServerRefresh_%i", ui_netSource.integer ) );
+ if ( value[0] != 0 ) {
+ return; // should have cached list
+ }
+ }
+
trap_RealTime( &q );
trap_Cvar_Set( va( "ui_lastServerRefresh_%i", ui_netSource.integer ), va( "%s-%i, %i at %02i:%02i", MonthAbbrev[q.tm_mon],q.tm_mday, 1900 + q.tm_year,q.tm_hour,q.tm_min ) );
diff --git a/SP/code/ui/ui_main.c b/SP/code/ui/ui_main.c
index 2ccea8a..46c1a35 100644
--- a/SP/code/ui/ui_main.c
+++ b/SP/code/ui/ui_main.c
@@ -117,7 +117,7 @@ static int uitogamecode[] = {4,6,2,3,1,5,7};
// NERVE - SMF - enabled for multiplayer
-static void UI_StartServerRefresh( qboolean full );
+static void UI_StartServerRefresh( qboolean full, qboolean force );
static void UI_StopServerRefresh( void );
static void UI_DoServerRefresh( void );
static void UI_FeederSelection( float feederID, int index );
@@ -3225,9 +3225,7 @@ static qboolean UI_NetSource_HandleKey(int flags, float *special, int key) {
}
UI_BuildServerDisplayList(qtrue);
- if (!(ui_netSource.integer >= UIAS_GLOBAL1 && ui_netSource.integer <= UIAS_GLOBAL5)) {
- UI_StartServerRefresh(qtrue);
- }
+ UI_StartServerRefresh(qtrue, qfalse);
trap_Cvar_SetValue( "ui_netSource", ui_netSource.integer);
return qtrue;
}
@@ -4729,10 +4727,10 @@ static void UI_RunMenuScript( char **args ) {
UI_ClearScores();
//#ifdef MISSIONPACK // NERVE - SMF - enabled for multiplayer
} else if ( Q_stricmp( name, "RefreshServers" ) == 0 ) {
- UI_StartServerRefresh( qtrue );
+ UI_StartServerRefresh( qtrue, qtrue );
UI_BuildServerDisplayList( qtrue );
} else if ( Q_stricmp( name, "RefreshFilter" ) == 0 ) {
- UI_StartServerRefresh( qfalse );
+ UI_StartServerRefresh( qfalse, qtrue );
UI_BuildServerDisplayList( qtrue );
} else if ( Q_stricmp( name, "RunSPDemo" ) == 0 ) {
if ( uiInfo.demoAvailable ) {
@@ -4849,9 +4847,8 @@ static void UI_RunMenuScript( char **args ) {
uiInfo.nextServerStatusRefresh = 0;
uiInfo.nextFindPlayerRefresh = 0;
} else if ( Q_stricmp( name, "UpdateFilter" ) == 0 ) {
- if ( ui_netSource.integer == UIAS_LOCAL ) {
- UI_StartServerRefresh( qtrue );
- }
+ // UpdateFilter is called when server broser menu is opened and when a favorite server is deleted.
+ UI_StartServerRefresh(qtrue, qfalse);
UI_BuildServerDisplayList( qtrue );
UI_FeederSelection( FEEDER_SERVERS, 0 );
} else if ( Q_stricmp( name, "ServerStatus" ) == 0 ) {
@@ -7673,11 +7670,21 @@ static void UI_DoServerRefresh( void ) {
UI_StartServerRefresh
=================
*/
-static void UI_StartServerRefresh( qboolean full ) {
+static void UI_StartServerRefresh( qboolean full, qboolean force ) {
char *ptr;
int lanSource;
-
qtime_t q;
+
+ // This function is called with force=qfalse when server browser menu opens or net source changes.
+ // Automatically update local and favorite servers.
+ // Only update master server list the first time because the server info cache will be available after that.
+ if ( !force && ( ui_netSource.integer >= UIAS_GLOBAL1 && ui_netSource.integer <= UIAS_GLOBAL5 ) ) {
+ char *value = UI_Cvar_VariableString( va( "ui_lastServerRefresh_%i", ui_netSource.integer ) );
+ if ( value[0] != 0 ) {
+ return; // should have cached list
+ }
+ }
+
trap_RealTime( &q );
trap_Cvar_Set( va( "ui_lastServerRefresh_%i", ui_netSource.integer ), va( "%s-%i, %i at %02i:%02i", MonthAbbrev[q.tm_mon],q.tm_mday, 1900 + q.tm_year,q.tm_hour,q.tm_min ) );
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git
More information about the Pkg-games-commits
mailing list