From bffbb87c53bfa62a4df56f8bd3d9e1eadc92e5c7 Mon Sep 17 00:00:00 2001 From: div0 Date: Thu, 17 Jan 2008 20:43:23 +0000 Subject: [PATCH] rudimentary instantaction support git-svn-id: svn://svn.icculus.org/nexuiz/trunk@3163 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- .../nexuiz/dialog_singleplayer.c | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/data/qcsrc/menu-div0test/nexuiz/dialog_singleplayer.c b/data/qcsrc/menu-div0test/nexuiz/dialog_singleplayer.c index 3a9ff9e43..df5600d45 100644 --- a/data/qcsrc/menu-div0test/nexuiz/dialog_singleplayer.c +++ b/data/qcsrc/menu-div0test/nexuiz/dialog_singleplayer.c @@ -11,6 +11,44 @@ ENDCLASS(NexuizSingleplayerDialog) #endif #ifdef IMPLEMENTATION + +void InstantAction_LoadMap(entity btn, entity dummy) +{ + float glob, i, n, fh; + string s; + glob = search_begin("maps/*.instantaction", TRUE, TRUE); + if(glob < 0) + return; + i = ceil(random() * search_getsize(glob)) - 1; + fh = fopen(search_getfilename(glob, i), FILE_READ); + search_end(glob); + if(fh < 0) + return; + while((s = fgets(fh))) + { + if(substring(s, 0, 4) == "set ") + s = substring(s, 4, strlen(s) - 4); + n = tokenize(s); + if(argv(0) == "bot_number") + cvar_set("bot_number", argv(1)); + else if(argv(0) == "skill") + cvar_set("skill", argv(1)); + else if(argv(0) == "timelimit") + cvar_set("timelimit_override", argv(1)); + else if(argv(0) == "fraglimit") + cvar_set("fraglimit_override", argv(1)); + else if(argv(0) == "changelevel") + { + fclose(fh); + MapInfo_SwitchGameType(MAPINFO_TYPE_DEATHMATCH); + MapInfo_LoadMap(argv(1)); + cvar_set("lastlevel", "1"); + return; + } + } + fclose(fh); +} + void fillNexuizSingleplayerDialog(entity me) { entity e; @@ -18,7 +56,7 @@ void fillNexuizSingleplayerDialog(entity me) me.TR(me); me.TDempty(me, (me.columns - 2) / 2); me.TD(me, 2, 2, e = makeNexuizButton("Instant action!", '0 0 0')); - //e.onClick = InstantAction_LoadMap; + e.onClick = InstantAction_LoadMap; e.onClickEntity = NULL; me.TR(me); me.TR(me); -- 2.39.2