From a38b2d607ec0eeb81d063a173f4fa7367f3bb6fe Mon Sep 17 00:00:00 2001 From: Circlemaster Date: Sun, 23 Nov 2014 22:44:35 +0000 Subject: [PATCH] Support directories with only one demo. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4792 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- fteqtv/source.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fteqtv/source.c b/fteqtv/source.c index 37e9aabac..b03a38a0f 100644 --- a/fteqtv/source.c +++ b/fteqtv/source.c @@ -705,7 +705,7 @@ qboolean Net_ConnectToDemoDirServer(sv_t* qtv, char *ip) char demoname[512]; int current_demo = 0; int file_count = 0; - int random_number; + int random_number = 1; // always this value if the directory contains one file // count the files, important for determining a random demo file while ((ent = readdir(dir)) != NULL) @@ -730,7 +730,7 @@ qboolean Net_ConnectToDemoDirServer(sv_t* qtv, char *ip) if (file_count == 0) { // empty directory - Sys_Printf(qtv->cluster, "Stream %i: Error: Directory is empty.\n", qtv->streamid); + Sys_Printf(qtv->cluster, "Stream %i: Error: Directory has no demos.\n", qtv->streamid); closedir(dir); return false; } @@ -740,9 +740,12 @@ qboolean Net_ConnectToDemoDirServer(sv_t* qtv, char *ip) // FIXME: not sure if srand should only be called once somewhere? // FIXME: this is not really shuffling the demos, but does introduce some variety - srand(time(NULL)); - while ((random_number = rand()%file_count + 1) == qtv->last_random_number); - qtv->last_random_number = random_number; + if (file_count > 1) + { + srand(time(NULL)); + while ((random_number = rand()%file_count + 1) == qtv->last_random_number); + qtv->last_random_number = random_number; + } while (1) { int len;