Host_Game instead of Custom_Game in Lan_Game/Internet_Game

This commit is contained in:
Titus Tscharntke 2011-10-30 22:23:57 +00:00
parent 0f6e8ba928
commit 9bc8ecb2c8
6 changed files with 47 additions and 14 deletions

View File

@ -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) {

View File

@ -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();

View File

@ -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<string,string> 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();

View File

@ -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);

View File

@ -40,6 +40,8 @@ private:
GraphicButton buttonReturn;
GraphicButton buttonConnect;
GraphicButton buttonAutoFindServers;
GraphicButton buttonCreateGame;
GraphicLabel labelServer;
GraphicLabel labelServerType;
GraphicLabel labelServerIp;

View File

@ -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__);
}