From 261cff9269796d2bcc5064fd7e524545efa59f2b Mon Sep 17 00:00:00 2001 From: esteel Date: Mon, 30 Mar 2009 09:25:11 +0000 Subject: [PATCH] slightly modified patch by Ronan, make the modbutton go back to the same menu after switching the mod. Currently thats more userfriendly. Might need to be changed back when its a real mod menu (Please test) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6363 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- .../menu/nexuiz/dialog_multiplayer_join.c | 2 +- data/qcsrc/menu/nexuiz/dialog_singleplayer.c | 2 +- data/qcsrc/menu/nexuiz/modbutton.c | 23 +++++++++++++------ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/data/qcsrc/menu/nexuiz/dialog_multiplayer_join.c b/data/qcsrc/menu/nexuiz/dialog_multiplayer_join.c index 94973a4de..3eafd4835 100644 --- a/data/qcsrc/menu/nexuiz/dialog_multiplayer_join.c +++ b/data/qcsrc/menu/nexuiz/dialog_multiplayer_join.c @@ -67,7 +67,7 @@ void fillNexuizServerListTab(entity me) e.onClickEntity = slist; slist.infoButton = e; me.TR(me); - me.TD(me, 1, 2, e = makeNexuizModButton()); + me.TD(me, 1, 2, e = makeNexuizModButton("Multiplayer_Join")); me.TD(me, 1, me.columns - 2, e = makeNexuizButton("Join!", '0 0 0')); e.onClick = ServerList_Connect_Click; e.onClickEntity = slist; diff --git a/data/qcsrc/menu/nexuiz/dialog_singleplayer.c b/data/qcsrc/menu/nexuiz/dialog_singleplayer.c index ffc1699a1..cbedf6f52 100644 --- a/data/qcsrc/menu/nexuiz/dialog_singleplayer.c +++ b/data/qcsrc/menu/nexuiz/dialog_singleplayer.c @@ -76,7 +76,7 @@ void fillNexuizSingleplayerDialog(entity me) me.campaignBox.campaignGo(me.campaignBox, 0); me.gotoRC(me, me.rows - 1, 0); - me.TD(me, 1, 2, e = makeNexuizModButton()); + me.TD(me, 1, 2, e = makeNexuizModButton("Singleplayer")); me.TD(me, 1, me.columns - 2 , e = makeNexuizButton("Start Singleplayer!", '0 0 0')); e.onClick = CampaignList_LoadMap; e.onClickEntity = me.campaignBox; diff --git a/data/qcsrc/menu/nexuiz/modbutton.c b/data/qcsrc/menu/nexuiz/modbutton.c index b25c53fd9..b12490d56 100644 --- a/data/qcsrc/menu/nexuiz/modbutton.c +++ b/data/qcsrc/menu/nexuiz/modbutton.c @@ -1,33 +1,42 @@ #ifdef INTERFACE CLASS(NexuizModButton) EXTENDS(NexuizButton) - METHOD(NexuizModButton, configureNexuizModButton, void(entity)) + METHOD(NexuizModButton, configureNexuizModButton, void(entity, string)) + ATTRIB(NexuizModButton, destination, string, string_null) ENDCLASS(NexuizModButton) -entity makeNexuizModButton(); +entity makeNexuizModButton(string menu); void NexuizModButton_Click(entity me, entity other); #endif #ifdef IMPLEMENTATION -entity makeNexuizModButton() +entity makeNexuizModButton(string menu) { entity me; me = spawnNexuizModButton(); - me.configureNexuizModButton(me); + me.configureNexuizModButton(me, menu); return me; } void NexuizModButton_Click(entity me, entity other) { + string thecmd; + thecmd = strcat("\nmenu_restart"); + + if (me.destination != "") + thecmd = strcat(thecmd, "\ntogglemenu\ndefer 0.1 \"menu_cmd directmenu ", me.destination,"\"\n"); + if (cvar_string("menu_slist_modfilter") == "havoc") - cmd("gamedir data; menu_restart"); + thecmd = strcat("\ngamedir data", thecmd); else - cmd("gamedir havoc; menu_restart"); + thecmd = strcat("\ngamedir havoc", thecmd); + cmd(thecmd); } -void configureNexuizModButtonNexuizModButton(entity me) +void configureNexuizModButtonNexuizModButton(entity me, string menu) { me.configureNexuizButton(me, "", '0 0 0'); me.onClick = NexuizModButton_Click; me.onClickEntity = me; + me.destination = menu; if (cvar_string("menu_slist_modfilter") == "havoc") me.text = "Switch to Nexuiz mode"; -- 2.39.2