From d5de5a1049e4a8e4f87973fdad55a48dfe738afc Mon Sep 17 00:00:00 2001 From: lordhavoc Date: Wed, 4 May 2005 13:15:28 +0000 Subject: [PATCH] rewrote maplist handling to use g_maplist cvar (note: no support for multiple instances of a map in the list!), the menu will need updating git-svn-id: svn://svn.icculus.org/nexuiz/trunk@385 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- qcsrc/gamec/extensions.h | 8 ++++++++ qcsrc/gamec/g_world.c | 31 ++++++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/qcsrc/gamec/extensions.h b/qcsrc/gamec/extensions.h index 48ff7947d..c110be479 100644 --- a/qcsrc/gamec/extensions.h +++ b/qcsrc/gamec/extensions.h @@ -16,6 +16,14 @@ float(string s) checkextension = #99; // ext_setcolor = TRUE; //from then on you can check ext_setcolor to know if that extension is available +//DP_QC_CVAR_STRING +//idea: Paul Timofeyev +//DarkPlaces implementation: Paul Timofeyev, LordHavoc +//builtin definitions: +string(string s) cvar_string = #448; +//description: +//returns the value of a cvar, as a tempstring. + //DP_QC_TRACE_MOVETYPES //idea: LordHavoc //darkplaces implementation: id Software diff --git a/qcsrc/gamec/g_world.c b/qcsrc/gamec/g_world.c index e42fa125b..240899469 100644 --- a/qcsrc/gamec/g_world.c +++ b/qcsrc/gamec/g_world.c @@ -203,6 +203,7 @@ void light (void) makestatic (self); } +/* // reads and alters data/maplist.cfg (sliding it one line), and returns a // strzoned string containing the next map #define MAPLIST "maplist.cfg" @@ -284,6 +285,7 @@ string() Nex_RotateMapList = return lNextMap; }; +*/ float gameover; float intermission_running; @@ -293,6 +295,8 @@ float alreadychangedlevel; void() GotoNextMap = { local string nextmap; + local float n, nummaps; + local string s; if (alreadychangedlevel) return; alreadychangedlevel = TRUE; @@ -300,6 +304,7 @@ void() GotoNextMap = changelevel (mapname); else { + // method 1 /* //local entity pos; local float fh; @@ -328,10 +333,30 @@ void() GotoNextMap = } changelevel (nextmap); */ - - nextmap = Nex_RotateMapList(); + // method 2 + //nextmap = Nex_RotateMapList(); + //changelevel (nextmap); + //strunzone (nextmap); + // method 3 + s = cvar_string("g_maplist"); + nummaps = tokenize(s); + // if no map list, restart current one + nextmap = mapname; + if (nummaps >= 1) + { + n = 0; + while (n < nummaps) + { + if (argv(n) == mapname) + break; + n = n + 1; + } + n = n + 1; + if (n >= nummaps) + n = 0; + nextmap = argv(n); + } changelevel (nextmap); - strunzone (nextmap); } }; -- 2.39.2