From 9bc8ecb2c8efae5f886862a310ccac8d6ddea6c1 Mon Sep 17 00:00:00 2001 From: Titus Tscharntke Date: Sun, 30 Oct 2011 22:23:57 +0000 Subject: [PATCH] Host_Game instead of Custom_Game in Lan_Game/Internet_Game --- source/glest_game/main/program.cpp | 4 ++-- .../menu/menu_state_custom_game.cpp | 18 +++++++++------- .../glest_game/menu/menu_state_custom_game.h | 10 +++++++-- .../glest_game/menu/menu_state_join_game.cpp | 21 +++++++++++++++++++ source/glest_game/menu/menu_state_join_game.h | 2 ++ .../menu/menu_state_masterserver.cpp | 6 +++--- 6 files changed, 47 insertions(+), 14 deletions(-) diff --git a/source/glest_game/main/program.cpp b/source/glest_game/main/program.cpp index 57f868c2..7b4f3e69 100644 --- a/source/glest_game/main/program.cpp +++ b/source/glest_game/main/program.cpp @@ -199,7 +199,7 @@ void Program::initServer(WindowGl *window, bool autostart,bool openNetworkSlots, init(window); mainMenu= new MainMenu(this); setState(mainMenu); - mainMenu->setState(new MenuStateCustomGame(this, mainMenu, openNetworkSlots, false, autostart, NULL, masterserverMode)); + mainMenu->setState(new MenuStateCustomGame(this, mainMenu, openNetworkSlots, pNewGame, autostart, NULL, masterserverMode)); } void Program::initServer(WindowGl *window, GameSettings *settings) { @@ -208,7 +208,7 @@ void Program::initServer(WindowGl *window, GameSettings *settings) { init(window); mainMenu= new MainMenu(this); setState(mainMenu); - mainMenu->setState(new MenuStateCustomGame(this, mainMenu, false, false, true, settings)); + mainMenu->setState(new MenuStateCustomGame(this, mainMenu, false, pNewGame, true, settings)); } void Program::initClient(WindowGl *window, const Ip &serverIp) { diff --git a/source/glest_game/menu/menu_state_custom_game.cpp b/source/glest_game/menu/menu_state_custom_game.cpp index 1decc6ba..789c72b6 100644 --- a/source/glest_game/menu/menu_state_custom_game.cpp +++ b/source/glest_game/menu/menu_state_custom_game.cpp @@ -15,6 +15,7 @@ #include "config.h" #include "menu_state_new_game.h" #include "menu_state_masterserver.h" +#include "menu_state_join_game.h" #include "metrics.h" #include "network_manager.h" #include "network_message.h" @@ -47,7 +48,7 @@ struct FormatString { // ===================================================== MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu, - bool openNetworkSlots,bool parentMenuIsMasterserver, bool autostart, + bool openNetworkSlots,ParentMenuState parentMenuState, bool autostart, GameSettings *settings, bool masterserverMode) : MenuState(program, mainMenu, "new-game") { @@ -58,6 +59,7 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu, this->lastMasterServerSettingsUpdateCount = 0; this->masterserverModeMinimalResources = true; + this->parentMenuState=parentMenuState; //printf("this->masterserverMode = %d [%d]\n",this->masterserverMode,masterserverMode); @@ -124,8 +126,6 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu, if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__); - parentMenuIsMs=parentMenuIsMasterserver; - needToSetChangedGameSettings = false; needToRepublishToMasterserver = false; needToBroadcastServerSettings = false; @@ -375,7 +375,7 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu, listBoxPublishServer.init(50, networkPos, 100); listBoxPublishServer.pushBackItem(lang.get("Yes")); listBoxPublishServer.pushBackItem(lang.get("No")); - if(openNetworkSlots) { + if(openNetworkSlots && parentMenuState!=pLanGame) { listBoxPublishServer.setSelectedItemIndex(0); } else { @@ -867,8 +867,7 @@ void MenuStateCustomGame::returnToParentMenu() { needToBroadcastServerSettings = false; needToRepublishToMasterserver = false; lastNetworkPing = time(NULL); - bool returnToMasterServerMenu = parentMenuIsMs; - + ParentMenuState parentMenuState = this->parentMenuState; /* if(publishToMasterserverThread != NULL && publishToMasterserverThread->canShutdown() == true && @@ -882,11 +881,16 @@ void MenuStateCustomGame::returnToParentMenu() { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__); forceWaitForShutdown = false; - if(returnToMasterServerMenu) { + if(parentMenuState==pMasterServer) { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__); cleanup(); mainMenu->setState(new MenuStateMasterserver(program, mainMenu)); } + else if(parentMenuState==pLanGame) { + if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__); + cleanup(); + mainMenu->setState(new MenuStateJoinGame(program, mainMenu)); + } else { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__); cleanup(); diff --git a/source/glest_game/menu/menu_state_custom_game.h b/source/glest_game/menu/menu_state_custom_game.h index 70b21f2d..7c57a10a 100644 --- a/source/glest_game/menu/menu_state_custom_game.h +++ b/source/glest_game/menu/menu_state_custom_game.h @@ -25,6 +25,12 @@ namespace Glest { namespace Game { class SwitchSetupRequest; class ServerInterface; +enum ParentMenuState { + pNewGame, + pMasterServer, + pLanGame +}; + // =============================== // class MenuStateCustomGame // =============================== @@ -120,7 +126,7 @@ private: std::map publishToServerInfo; SimpleTaskThread *publishToMasterserverThread; - bool parentMenuIsMs; + ParentMenuState parentMenuState; int soundConnectionCount; bool showMasterserverError; @@ -174,7 +180,7 @@ private: public: MenuStateCustomGame(Program *program, MainMenu *mainMenu , - bool openNetworkSlots= false, bool parentMenuIsMasterserver=false, + bool openNetworkSlots= false, ParentMenuState parentMenuState=pNewGame, bool autostart=false,GameSettings *settings=NULL,bool masterserverMode=false); virtual ~MenuStateCustomGame(); diff --git a/source/glest_game/menu/menu_state_join_game.cpp b/source/glest_game/menu/menu_state_join_game.cpp index f7fe699a..646604d2 100644 --- a/source/glest_game/menu/menu_state_join_game.cpp +++ b/source/glest_game/menu/menu_state_join_game.cpp @@ -17,6 +17,7 @@ #include "core_data.h" #include "config.h" #include "menu_state_new_game.h" +#include "menu_state_custom_game.h" #include "metrics.h" #include "network_manager.h" #include "network_message.h" @@ -74,6 +75,10 @@ MenuStateJoinGame::MenuStateJoinGame(Program *program, MainMenu *mainMenu, bool buttonConnect.init(450, 300, 125); buttonConnect.setText(lang.get("Connect")); + buttonCreateGame.registerGraphicComponent(containerName,"buttonCreateGame"); + buttonCreateGame.init(450, 250, 125); + buttonCreateGame.setText(lang.get("HostGame")); + buttonAutoFindServers.registerGraphicComponent(containerName,"buttonAutoFindServers"); buttonAutoFindServers.init(595, 300, 125); buttonAutoFindServers.setText(lang.get("FindLANGames")); @@ -162,6 +167,7 @@ void MenuStateJoinGame::reloadUI() { buttonReturn.setText(lang.get("Return")); buttonConnect.setText(lang.get("Connect")); + buttonCreateGame.setText(lang.get("HostGame")); buttonAutoFindServers.setText(lang.get("FindLANGames")); labelServerType.setText(lang.get("ServerType") + ":"); @@ -295,6 +301,18 @@ void MenuStateJoinGame::mouseClick(int x, int y, MouseButton mouseButton) { connectToServer(); } } + else if(buttonCreateGame.mouseClick(x, y)){ + if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); + soundRenderer.playFx(coreData.getClickSoundB()); + clientInterface->stopServerDiscovery(); + if(clientInterface->getSocket() != NULL) { + clientInterface->close(); + } + abortAutoFind = true; + mainMenu->setState(new MenuStateCustomGame(program, mainMenu,true,pLanGame)); + if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); + } + else if(buttonAutoFindServers.mouseClick(x, y) && buttonAutoFindServers.getEnabled() == true) { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); @@ -308,6 +326,7 @@ void MenuStateJoinGame::mouseClick(int x, int y, MouseButton mouseButton) { buttonAutoFindServers.setEnabled(false); buttonConnect.setEnabled(false); + buttonCreateGame.setEnabled(false); clientInterface->discoverServers(this); } if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); @@ -345,6 +364,8 @@ void MenuStateJoinGame::render(){ renderer.renderLabel(&labelServerPort); renderer.renderLabel(&labelServerPortLabel); renderer.renderButton(&buttonConnect); + renderer.renderButton(&buttonCreateGame); + renderer.renderButton(&buttonAutoFindServers); renderer.renderListBox(&listBoxServerType); diff --git a/source/glest_game/menu/menu_state_join_game.h b/source/glest_game/menu/menu_state_join_game.h index a859612c..4e6509fb 100644 --- a/source/glest_game/menu/menu_state_join_game.h +++ b/source/glest_game/menu/menu_state_join_game.h @@ -40,6 +40,8 @@ private: GraphicButton buttonReturn; GraphicButton buttonConnect; GraphicButton buttonAutoFindServers; + GraphicButton buttonCreateGame; + GraphicLabel labelServer; GraphicLabel labelServerType; GraphicLabel labelServerIp; diff --git a/source/glest_game/menu/menu_state_masterserver.cpp b/source/glest_game/menu/menu_state_masterserver.cpp index 14299945..38b21311 100644 --- a/source/glest_game/menu/menu_state_masterserver.cpp +++ b/source/glest_game/menu/menu_state_masterserver.cpp @@ -215,7 +215,7 @@ MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMen buttonRefresh.setText(lang.get("RefreshList")); buttonReturn.setText(lang.get("Return")); - buttonCreateGame.setText(lang.get("CustomGame")); + buttonCreateGame.setText(lang.get("HostGame")); labelAutoRefresh.setText(lang.get("AutoRefreshRate")); labelAutoRefresh.registerGraphicComponent(containerName,"labelAutoRefresh"); @@ -358,7 +358,7 @@ void MenuStateMasterserver::reloadUI() { buttonRefresh.setText(lang.get("RefreshList")); buttonReturn.setText(lang.get("Return")); - buttonCreateGame.setText(lang.get("CustomGame")); + buttonCreateGame.setText(lang.get("HostGame")); labelAutoRefresh.setText(lang.get("AutoRefreshRate")); ircOnlinePeopleLabel.setText(lang.get("IRCPeopleOnline")); @@ -531,7 +531,7 @@ void MenuStateMasterserver::mouseClick(int x, int y, MouseButton mouseButton){ cleanup(); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); - mainMenu->setState(new MenuStateCustomGame(program, mainMenu,true,true)); + mainMenu->setState(new MenuStateCustomGame(program, mainMenu,true,pMasterServer)); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); }