2010-03-19 23:26:00 +00:00
// ==============================================================
// This file is part of Glest (www.glest.org)
//
2012-10-30 06:48:12 +00:00
// Copyright (C) 2001-2008 Martiño Figueroa
2010-03-19 23:26:00 +00:00
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
# include "menu_state_join_game.h"
2010-04-21 23:13:39 +00:00
# include "menu_state_connected_game.h"
2010-03-19 23:26:00 +00:00
# include "renderer.h"
# include "sound_renderer.h"
# include "core_data.h"
# include "config.h"
2011-04-10 20:03:38 +00:00
# include "menu_state_new_game.h"
2011-10-30 22:23:57 +00:00
# include "menu_state_custom_game.h"
2010-03-19 23:26:00 +00:00
# include "metrics.h"
# include "network_manager.h"
# include "network_message.h"
# include "client_interface.h"
# include "conversion.h"
# include "game.h"
2011-06-26 03:38:28 +00:00
# include "string_utils.h"
2010-03-19 23:26:00 +00:00
# include "socket.h"
# include "leak_dumper.h"
namespace Glest { namespace Game {
2013-11-19 21:57:28 +00:00
using namespace : : Shared : : Util ;
2010-03-19 23:26:00 +00:00
// ===============================
// class MenuStateJoinGame
// ===============================
const int MenuStateJoinGame : : newServerIndex = 0 ;
2010-04-30 06:45:30 +00:00
const int MenuStateJoinGame : : newPrevServerIndex = 1 ;
const int MenuStateJoinGame : : foundServersIndex = 2 ;
2010-03-19 23:26:00 +00:00
const string MenuStateJoinGame : : serverFileName = " servers.ini " ;
2012-10-06 00:25:13 +00:00
MenuStateJoinGame : : MenuStateJoinGame ( Program * program , MainMenu * mainMenu , bool * autoFindHost ) :
MenuState ( program , mainMenu , " join-game " ) {
CommonInit ( false , Ip ( ) , - 1 ) ;
if ( autoFindHost ! = NULL & & * autoFindHost = = true ) {
//if(clientInterface->isConnected() == false) {
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
buttonAutoFindServers . setEnabled ( false ) ;
buttonConnect . setEnabled ( false ) ;
NetworkManager & networkManager = NetworkManager : : getInstance ( ) ;
ClientInterface * clientInterface = networkManager . getClientInterface ( ) ;
clientInterface - > discoverServers ( this ) ;
//}
}
}
2012-09-25 21:52:23 +00:00
MenuStateJoinGame : : MenuStateJoinGame ( Program * program , MainMenu * mainMenu ,
2012-10-06 00:25:13 +00:00
bool connect , Ip serverIp , int portNumberOverride ) :
MenuState ( program , mainMenu , " join-game " ) {
CommonInit ( connect , serverIp , portNumberOverride ) ;
}
void MenuStateJoinGame : : CommonInit ( bool connect , Ip serverIp , int portNumberOverride ) {
2010-09-09 21:07:39 +00:00
containerName = " JoinGame " ;
2010-06-22 15:03:57 +00:00
abortAutoFind = false ;
autoConnectToServer = false ;
2010-03-19 23:26:00 +00:00
Lang & lang = Lang : : getInstance ( ) ;
Config & config = Config : : getInstance ( ) ;
NetworkManager & networkManager = NetworkManager : : getInstance ( ) ;
2010-04-21 23:13:39 +00:00
networkManager . end ( ) ;
2010-05-13 21:47:14 +00:00
networkManager . init ( nrClient ) ;
2010-12-09 20:41:11 +00:00
2010-03-21 23:40:35 +00:00
serversSavedFile = serverFileName ;
2011-03-10 07:26:43 +00:00
string userData = config . getString ( " UserData_Root " , " " ) ;
if ( userData ! = " " ) {
2011-03-13 08:23:43 +00:00
endPathWithSlash ( userData ) ;
2010-03-21 23:40:35 +00:00
}
2011-03-10 07:26:43 +00:00
serversSavedFile = userData + serversSavedFile ;
2010-03-21 23:40:35 +00:00
2011-03-10 07:26:43 +00:00
if ( fileExists ( serversSavedFile ) = = true ) {
servers . load ( serversSavedFile ) ;
}
2010-03-19 23:26:00 +00:00
//buttons
2010-09-09 06:42:39 +00:00
buttonReturn . registerGraphicComponent ( containerName , " buttonReturn " ) ;
2010-04-02 02:33:32 +00:00
buttonReturn . init ( 300 , 300 , 125 ) ;
2013-10-29 06:13:38 +00:00
buttonReturn . setText ( lang . getString ( " Return " ) ) ;
2010-03-19 23:26:00 +00:00
2010-09-09 06:42:39 +00:00
buttonConnect . registerGraphicComponent ( containerName , " buttonConnect " ) ;
2010-04-02 02:33:32 +00:00
buttonConnect . init ( 450 , 300 , 125 ) ;
2013-10-29 06:13:38 +00:00
buttonConnect . setText ( lang . getString ( " Connect " ) ) ;
2010-03-19 23:26:00 +00:00
2011-10-30 22:23:57 +00:00
buttonCreateGame . registerGraphicComponent ( containerName , " buttonCreateGame " ) ;
buttonCreateGame . init ( 450 , 250 , 125 ) ;
2013-10-29 06:13:38 +00:00
buttonCreateGame . setText ( lang . getString ( " HostGame " ) ) ;
2011-10-30 22:23:57 +00:00
2010-09-09 06:42:39 +00:00
buttonAutoFindServers . registerGraphicComponent ( containerName , " buttonAutoFindServers " ) ;
2011-12-03 10:02:33 +00:00
buttonAutoFindServers . init ( 595 , 300 , 225 ) ;
2013-10-29 06:13:38 +00:00
buttonAutoFindServers . setText ( lang . getString ( " FindLANGames " ) ) ;
2010-04-11 04:29:23 +00:00
buttonAutoFindServers . setEnabled ( true ) ;
2010-04-02 02:33:32 +00:00
2010-03-19 23:26:00 +00:00
//server type label
2010-09-09 06:42:39 +00:00
labelServerType . registerGraphicComponent ( containerName , " labelServerType " ) ;
2010-04-03 17:17:15 +00:00
labelServerType . init ( 330 , 490 ) ;
2013-10-29 06:13:38 +00:00
labelServerType . setText ( lang . getString ( " ServerType " ) + " : " ) ;
2010-03-19 23:26:00 +00:00
//server type list box
2010-09-09 06:42:39 +00:00
listBoxServerType . registerGraphicComponent ( containerName , " listBoxServerType " ) ;
2010-04-03 17:17:15 +00:00
listBoxServerType . init ( 465 , 490 ) ;
2013-10-29 06:13:38 +00:00
listBoxServerType . pushBackItem ( lang . getString ( " ServerTypeNew " ) ) ;
listBoxServerType . pushBackItem ( lang . getString ( " ServerTypePrevious " ) ) ;
listBoxServerType . pushBackItem ( lang . getString ( " ServerTypeFound " ) ) ;
2010-03-19 23:26:00 +00:00
//server label
2010-09-09 06:42:39 +00:00
labelServer . registerGraphicComponent ( containerName , " labelServer " ) ;
2010-04-03 17:17:15 +00:00
labelServer . init ( 330 , 460 ) ;
2013-10-29 06:13:38 +00:00
labelServer . setText ( lang . getString ( " Server " ) + " : " ) ;
2010-03-19 23:26:00 +00:00
//server listbox
2010-09-09 06:42:39 +00:00
listBoxServers . registerGraphicComponent ( containerName , " listBoxServers " ) ;
2010-04-03 17:17:15 +00:00
listBoxServers . init ( 465 , 460 ) ;
2010-03-19 23:26:00 +00:00
for ( int i = 0 ; i < servers . getPropertyCount ( ) ; + + i ) {
listBoxServers . pushBackItem ( servers . getKey ( i ) ) ;
}
2010-04-30 06:45:30 +00:00
// found servers listbox
2010-09-09 06:42:39 +00:00
listBoxFoundServers . registerGraphicComponent ( containerName , " listBoxFoundServers " ) ;
2010-04-30 06:45:30 +00:00
listBoxFoundServers . init ( 465 , 460 ) ;
2010-03-19 23:26:00 +00:00
//server ip
2010-09-09 06:42:39 +00:00
labelServerIp . registerGraphicComponent ( containerName , " labelServerIp " ) ;
2013-10-25 19:35:10 +00:00
labelServerIp . setEditable ( true ) ;
labelServerIp . setMaxEditWidth ( 15 ) ;
labelServerIp . setMaxEditRenderWidth ( 220 ) ;
2010-04-03 17:17:15 +00:00
labelServerIp . init ( 465 , 460 ) ;
// server port
2010-09-09 06:42:39 +00:00
labelServerPortLabel . registerGraphicComponent ( containerName , " labelServerPortLabel " ) ;
2010-04-03 17:17:15 +00:00
labelServerPortLabel . init ( 330 , 430 ) ;
2013-10-29 06:13:38 +00:00
labelServerPortLabel . setText ( lang . getString ( " ServerPort " ) ) ;
2010-09-09 06:42:39 +00:00
labelServerPort . registerGraphicComponent ( containerName , " labelServerPort " ) ;
2010-04-03 17:17:15 +00:00
labelServerPort . init ( 465 , 430 ) ;
2012-09-25 16:43:07 +00:00
string host = labelServerIp . getText ( ) ;
2012-10-06 12:56:53 +00:00
int portNumber = config . getInt ( " PortServer " , intToStr ( GameConstants : : serverPort ) . c_str ( ) ) ;
2012-09-25 16:43:07 +00:00
std : : vector < std : : string > hostPartsList ;
Tokenize ( host , hostPartsList , " : " ) ;
if ( hostPartsList . size ( ) > 1 ) {
host = hostPartsList [ 0 ] ;
replaceAll ( hostPartsList [ 1 ] , " _ " , " " ) ;
portNumber = strToInt ( hostPartsList [ 1 ] ) ;
}
2012-10-06 14:56:40 +00:00
string port = " ( " + intToStr ( portNumber ) + " ) " ;
2010-04-03 17:17:15 +00:00
labelServerPort . setText ( port ) ;
2010-09-09 06:42:39 +00:00
labelStatus . registerGraphicComponent ( containerName , " labelStatus " ) ;
2010-03-19 23:26:00 +00:00
labelStatus . init ( 330 , 400 ) ;
labelStatus . setText ( " " ) ;
2010-09-09 06:42:39 +00:00
labelInfo . registerGraphicComponent ( containerName , " labelInfo " ) ;
2010-03-19 23:26:00 +00:00
labelInfo . init ( 330 , 370 ) ;
labelInfo . setText ( " " ) ;
connected = false ;
playerIndex = - 1 ;
//server ip
2012-09-25 21:52:23 +00:00
if ( connect = = true ) {
string hostIP = serverIp . getString ( ) ;
if ( portNumberOverride > 0 ) {
hostIP + = " : " + intToStr ( portNumberOverride ) ;
}
labelServerIp . setText ( hostIP + " _ " ) ;
2010-08-21 06:47:00 +00:00
autoConnectToServer = true ;
2010-03-19 23:26:00 +00:00
}
2012-09-25 16:43:07 +00:00
else {
2012-09-25 21:52:23 +00:00
string hostIP = config . getString ( " ServerIp " ) ;
if ( portNumberOverride > 0 ) {
hostIP + = " : " + intToStr ( portNumberOverride ) ;
}
labelServerIp . setText ( hostIP + " _ " ) ;
2010-03-19 23:26:00 +00:00
}
2012-09-25 16:43:07 +00:00
host = labelServerIp . getText ( ) ;
2012-10-06 12:56:53 +00:00
portNumber = config . getInt ( " PortServer " , intToStr ( GameConstants : : serverPort ) . c_str ( ) ) ;
2012-09-25 16:43:07 +00:00
hostPartsList . clear ( ) ;
Tokenize ( host , hostPartsList , " : " ) ;
if ( hostPartsList . size ( ) > 1 ) {
host = hostPartsList [ 0 ] ;
replaceAll ( hostPartsList [ 1 ] , " _ " , " " ) ;
portNumber = strToInt ( hostPartsList [ 1 ] ) ;
}
2012-10-06 14:56:40 +00:00
port = " ( " + intToStr ( portNumber ) + " ) " ;
2012-09-25 16:43:07 +00:00
labelServerPort . setText ( port ) ;
2010-09-09 06:42:39 +00:00
GraphicComponent : : applyAllCustomProperties ( containerName ) ;
2010-03-19 23:26:00 +00:00
chatManager . init ( & console , - 1 ) ;
}
2010-08-21 06:47:00 +00:00
2011-10-25 18:39:11 +00:00
void MenuStateJoinGame : : reloadUI ( ) {
Lang & lang = Lang : : getInstance ( ) ;
Config & config = Config : : getInstance ( ) ;
2011-11-03 23:38:43 +00:00
console . resetFonts ( ) ;
2013-10-29 06:13:38 +00:00
buttonReturn . setText ( lang . getString ( " Return " ) ) ;
buttonConnect . setText ( lang . getString ( " Connect " ) ) ;
buttonCreateGame . setText ( lang . getString ( " HostGame " ) ) ;
buttonAutoFindServers . setText ( lang . getString ( " FindLANGames " ) ) ;
labelServerType . setText ( lang . getString ( " ServerType " ) + " : " ) ;
2011-10-25 18:39:11 +00:00
std : : vector < string > listboxData ;
2013-10-29 06:13:38 +00:00
listboxData . push_back ( lang . getString ( " ServerTypeNew " ) ) ;
listboxData . push_back ( lang . getString ( " ServerTypePrevious " ) ) ;
listboxData . push_back ( lang . getString ( " ServerTypeFound " ) ) ;
2011-10-25 18:39:11 +00:00
listBoxServerType . setItems ( listboxData ) ;
2013-10-29 06:13:38 +00:00
labelServer . setText ( lang . getString ( " Server " ) + " : " ) ;
2011-10-25 18:39:11 +00:00
2013-10-29 06:13:38 +00:00
labelServerPortLabel . setText ( lang . getString ( " ServerPort " ) ) ;
2011-10-25 18:39:11 +00:00
2012-09-25 16:43:07 +00:00
string host = labelServerIp . getText ( ) ;
2012-10-06 12:56:53 +00:00
int portNumber = config . getInt ( " PortServer " , intToStr ( GameConstants : : serverPort ) . c_str ( ) ) ;
2012-09-25 16:43:07 +00:00
std : : vector < std : : string > hostPartsList ;
Tokenize ( host , hostPartsList , " : " ) ;
if ( hostPartsList . size ( ) > 1 ) {
host = hostPartsList [ 0 ] ;
replaceAll ( hostPartsList [ 1 ] , " _ " , " " ) ;
portNumber = strToInt ( hostPartsList [ 1 ] ) ;
}
2012-10-06 14:56:40 +00:00
string port = " ( " + intToStr ( portNumber ) + " ) " ;
2011-10-25 18:39:11 +00:00
labelServerPort . setText ( port ) ;
chatManager . init ( & console , - 1 ) ;
GraphicComponent : : r eloadFontsForRegisterGraphicComponents ( containerName ) ;
}
2010-04-02 02:33:32 +00:00
MenuStateJoinGame : : ~ MenuStateJoinGame ( ) {
2010-05-13 21:47:14 +00:00
abortAutoFind = true ;
2013-06-01 17:23:51 +00:00
if ( SystemFlags : : VERBOSE_MODE_ENABLED ) printf ( " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-04-02 02:33:32 +00:00
}
void MenuStateJoinGame : : DiscoveredServers ( std : : vector < string > serverList ) {
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2013-06-01 17:23:51 +00:00
if ( SystemFlags : : VERBOSE_MODE_ENABLED ) printf ( " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-04-02 02:33:32 +00:00
2010-05-13 21:47:14 +00:00
if ( abortAutoFind = = true ) {
return ;
}
2010-04-30 06:45:30 +00:00
// Testing multi-server
//serverList.push_back("test1");
//serverList.push_back("test2");
//
2013-06-01 17:23:51 +00:00
if ( SystemFlags : : VERBOSE_MODE_ENABLED ) printf ( " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-06-22 15:03:57 +00:00
autoConnectToServer = false ;
2010-04-11 04:29:23 +00:00
buttonAutoFindServers . setEnabled ( true ) ;
2010-12-18 21:35:05 +00:00
buttonConnect . setEnabled ( true ) ;
2011-09-01 01:11:23 +00:00
if ( serverList . empty ( ) = = false ) {
2012-10-05 23:53:10 +00:00
Config & config = Config : : getInstance ( ) ;
2010-04-02 02:33:32 +00:00
string bestIPMatch = " " ;
2012-10-06 12:56:53 +00:00
int serverGamePort = config . getInt ( " PortServer " , intToStr ( GameConstants : : serverPort ) . c_str ( ) ) ;
2010-04-02 02:33:32 +00:00
std : : vector < std : : string > localIPList = Socket : : getLocalIPAddressList ( ) ;
2010-04-30 06:45:30 +00:00
2013-06-01 17:23:51 +00:00
if ( SystemFlags : : VERBOSE_MODE_ENABLED ) printf ( " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2013-11-19 06:14:06 +00:00
for ( int idx = 0 ; idx < ( int ) serverList . size ( ) ; idx + + ) {
2012-10-05 23:53:10 +00:00
vector < string > paramPartPortsTokens ;
Tokenize ( serverList [ idx ] , paramPartPortsTokens , " : " ) ;
if ( paramPartPortsTokens . size ( ) > = 2 & & paramPartPortsTokens [ 1 ] . length ( ) > 0 ) {
serverGamePort = strToInt ( paramPartPortsTokens [ 1 ] ) ;
}
2010-04-02 02:33:32 +00:00
bestIPMatch = serverList [ idx ] ;
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] bestIPMatch = [%s] localIPList[0] = [%s] \n " , __FILE__ , __FUNCTION__ , __LINE__ , bestIPMatch . c_str ( ) , localIPList [ 0 ] . c_str ( ) ) ;
2010-04-02 02:33:32 +00:00
if ( strncmp ( localIPList [ 0 ] . c_str ( ) , serverList [ idx ] . c_str ( ) , 4 ) = = 0 ) {
break ;
}
}
2013-06-01 17:23:51 +00:00
if ( SystemFlags : : VERBOSE_MODE_ENABLED ) printf ( " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2012-10-05 23:53:10 +00:00
if ( bestIPMatch ! = " " ) {
bestIPMatch + = " : " + intToStr ( serverGamePort ) ;
}
2010-04-02 02:33:32 +00:00
labelServerIp . setText ( bestIPMatch ) ;
2010-04-30 06:45:30 +00:00
2013-06-01 17:23:51 +00:00
if ( SystemFlags : : VERBOSE_MODE_ENABLED ) printf ( " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-04-30 06:45:30 +00:00
if ( serverList . size ( ) > 1 ) {
listBoxServerType . setSelectedItemIndex ( MenuStateJoinGame : : foundServersIndex ) ;
listBoxFoundServers . setItems ( serverList ) ;
}
else {
2010-06-22 15:03:57 +00:00
autoConnectToServer = true ;
2010-04-30 06:45:30 +00:00
}
2010-04-02 02:33:32 +00:00
}
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2013-06-01 17:23:51 +00:00
if ( SystemFlags : : VERBOSE_MODE_ENABLED ) printf ( " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-04-02 02:33:32 +00:00
}
2010-03-19 23:26:00 +00:00
2011-03-29 09:45:15 +00:00
void MenuStateJoinGame : : mouseClick ( int x , int y , MouseButton mouseButton ) {
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s] START \n " , __FILE__ , __FUNCTION__ ) ;
2010-03-19 23:26:00 +00:00
CoreData & coreData = CoreData : : getInstance ( ) ;
SoundRenderer & soundRenderer = SoundRenderer : : getInstance ( ) ;
NetworkManager & networkManager = NetworkManager : : getInstance ( ) ;
ClientInterface * clientInterface = networkManager . getClientInterface ( ) ;
2010-04-30 06:45:30 +00:00
if ( clientInterface - > isConnected ( ) = = false ) {
2010-03-19 23:26:00 +00:00
//server type
if ( listBoxServerType . mouseClick ( x , y ) ) {
if ( ! listBoxServers . getText ( ) . empty ( ) ) {
labelServerIp . setText ( servers . getString ( listBoxServers . getText ( ) ) + " _ " ) ;
}
}
//server list
2010-04-30 06:45:30 +00:00
else if ( listBoxServerType . getSelectedItemIndex ( ) = = newPrevServerIndex ) {
if ( listBoxServers . mouseClick ( x , y ) ) {
2010-03-19 23:26:00 +00:00
labelServerIp . setText ( servers . getString ( listBoxServers . getText ( ) ) + " _ " ) ;
}
}
2010-04-30 06:45:30 +00:00
else if ( listBoxServerType . getSelectedItemIndex ( ) = = foundServersIndex ) {
if ( listBoxFoundServers . mouseClick ( x , y ) ) {
labelServerIp . setText ( listBoxFoundServers . getText ( ) ) ;
}
}
2012-09-25 16:43:07 +00:00
string host = labelServerIp . getText ( ) ;
Config & config = Config : : getInstance ( ) ;
2012-10-06 12:56:53 +00:00
int portNumber = config . getInt ( " PortServer " , intToStr ( GameConstants : : serverPort ) . c_str ( ) ) ;
2012-09-25 16:43:07 +00:00
std : : vector < std : : string > hostPartsList ;
Tokenize ( host , hostPartsList , " : " ) ;
if ( hostPartsList . size ( ) > 1 ) {
host = hostPartsList [ 0 ] ;
replaceAll ( hostPartsList [ 1 ] , " _ " , " " ) ;
portNumber = strToInt ( hostPartsList [ 1 ] ) ;
}
2012-10-06 14:56:40 +00:00
string port = " ( " + intToStr ( portNumber ) + " ) " ;
2012-09-25 16:43:07 +00:00
labelServerPort . setText ( port ) ;
2010-03-19 23:26:00 +00:00
}
//return
2010-12-18 23:03:53 +00:00
if ( buttonReturn . mouseClick ( x , y ) ) {
2010-03-19 23:26:00 +00:00
soundRenderer . playFx ( coreData . getClickSoundA ( ) ) ;
2010-05-13 21:47:14 +00:00
clientInterface - > stopServerDiscovery ( ) ;
2010-12-18 23:03:53 +00:00
if ( clientInterface - > getSocket ( ) ! = NULL ) {
2011-04-05 18:39:47 +00:00
//if(clientInterface->isConnected() == true) {
// string sQuitText = Config::getInstance().getString("NetPlayerName",Socket::getHostName().c_str()) + " has chosen to leave the game!";
// clientInterface->sendTextMessage(sQuitText,-1);
//}
2010-03-19 23:26:00 +00:00
clientInterface - > close ( ) ;
}
2010-05-13 21:47:14 +00:00
abortAutoFind = true ;
2011-04-10 20:03:38 +00:00
mainMenu - > setState ( new MenuStateNewGame ( program , mainMenu ) ) ;
2013-06-01 17:23:51 +00:00
return ;
2010-03-19 23:26:00 +00:00
}
//connect
2010-12-18 21:38:27 +00:00
else if ( buttonConnect . mouseClick ( x , y ) & & buttonConnect . getEnabled ( ) = = true ) {
2010-03-19 23:26:00 +00:00
ClientInterface * clientInterface = networkManager . getClientInterface ( ) ;
2013-05-26 02:44:36 +00:00
soundRenderer . playFx ( coreData . getClickSoundB ( ) ) ;
2010-03-19 23:26:00 +00:00
labelInfo . setText ( " " ) ;
2013-06-01 17:40:34 +00:00
if ( clientInterface - > isConnected ( ) ) {
2010-03-19 23:26:00 +00:00
clientInterface - > reset ( ) ;
}
2013-06-01 17:40:34 +00:00
else {
if ( connectToServer ( ) = = true ) {
return ;
}
2010-03-19 23:26:00 +00:00
}
}
2011-10-30 22:23:57 +00:00
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 ( ) ) ;
2013-05-26 02:44:36 +00:00
2011-10-30 22:23:57 +00:00
clientInterface - > stopServerDiscovery ( ) ;
if ( clientInterface - > getSocket ( ) ! = NULL ) {
clientInterface - > close ( ) ;
}
abortAutoFind = true ;
mainMenu - > setState ( new MenuStateCustomGame ( program , mainMenu , true , pLanGame ) ) ;
2013-06-01 17:23:51 +00:00
return ;
2011-10-30 22:23:57 +00:00
}
2010-04-11 04:29:23 +00:00
else if ( buttonAutoFindServers . mouseClick ( x , y ) & & buttonAutoFindServers . getEnabled ( ) = = true ) {
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-04-02 02:33:32 +00:00
ClientInterface * clientInterface = networkManager . getClientInterface ( ) ;
2013-05-26 02:44:36 +00:00
soundRenderer . playFx ( coreData . getClickSoundB ( ) ) ;
2010-04-02 02:33:32 +00:00
// Triggers a thread which calls back into MenuStateJoinGame::DiscoveredServers
// with the results
2010-04-11 04:29:23 +00:00
if ( clientInterface - > isConnected ( ) = = false ) {
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-04-11 04:29:23 +00:00
buttonAutoFindServers . setEnabled ( false ) ;
2010-12-18 21:35:05 +00:00
buttonConnect . setEnabled ( false ) ;
2010-04-11 04:29:23 +00:00
clientInterface - > discoverServers ( this ) ;
}
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-04-02 02:33:32 +00:00
}
2010-03-19 23:26:00 +00:00
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s] END \n " , __FILE__ , __FUNCTION__ ) ;
2010-03-19 23:26:00 +00:00
}
void MenuStateJoinGame : : mouseMove ( int x , int y , const MouseState * ms ) {
buttonReturn . mouseMove ( x , y ) ;
buttonConnect . mouseMove ( x , y ) ;
2010-04-02 02:33:32 +00:00
buttonAutoFindServers . mouseMove ( x , y ) ;
2011-11-01 21:30:05 +00:00
buttonCreateGame . mouseMove ( x , y ) ;
2010-03-19 23:26:00 +00:00
listBoxServerType . mouseMove ( x , y ) ;
//hide-show options depending on the selection
2010-04-30 06:45:30 +00:00
if ( listBoxServers . getSelectedItemIndex ( ) = = newServerIndex ) {
2010-03-19 23:26:00 +00:00
labelServerIp . mouseMove ( x , y ) ;
}
2010-04-30 06:45:30 +00:00
else if ( listBoxServers . getSelectedItemIndex ( ) = = newPrevServerIndex ) {
2010-03-19 23:26:00 +00:00
listBoxServers . mouseMove ( x , y ) ;
}
2010-04-30 06:45:30 +00:00
else {
listBoxFoundServers . mouseMove ( x , y ) ;
}
2010-03-19 23:26:00 +00:00
}
void MenuStateJoinGame : : render ( ) {
Renderer & renderer = Renderer : : getInstance ( ) ;
renderer . renderButton ( & buttonReturn ) ;
renderer . renderLabel ( & labelServer ) ;
renderer . renderLabel ( & labelServerType ) ;
renderer . renderLabel ( & labelStatus ) ;
renderer . renderLabel ( & labelInfo ) ;
2010-04-03 17:17:15 +00:00
renderer . renderLabel ( & labelServerPort ) ;
renderer . renderLabel ( & labelServerPortLabel ) ;
2010-03-19 23:26:00 +00:00
renderer . renderButton ( & buttonConnect ) ;
2011-10-30 22:23:57 +00:00
renderer . renderButton ( & buttonCreateGame ) ;
2010-04-02 02:33:32 +00:00
renderer . renderButton ( & buttonAutoFindServers ) ;
2010-03-19 23:26:00 +00:00
renderer . renderListBox ( & listBoxServerType ) ;
2010-04-30 06:45:30 +00:00
if ( listBoxServerType . getSelectedItemIndex ( ) = = newServerIndex ) {
2010-03-19 23:26:00 +00:00
renderer . renderLabel ( & labelServerIp ) ;
}
2010-04-30 06:45:30 +00:00
else if ( listBoxServerType . getSelectedItemIndex ( ) = = newPrevServerIndex ) {
2010-03-19 23:26:00 +00:00
renderer . renderListBox ( & listBoxServers ) ;
}
2010-04-30 06:45:30 +00:00
else {
renderer . renderListBox ( & listBoxFoundServers ) ;
}
2010-03-19 23:26:00 +00:00
renderer . renderChatManager ( & chatManager ) ;
renderer . renderConsole ( & console ) ;
2010-07-08 08:29:51 +00:00
if ( program ! = NULL ) program - > renderProgramMsgBox ( ) ;
2010-03-19 23:26:00 +00:00
}
void MenuStateJoinGame : : update ( )
{
ClientInterface * clientInterface = NetworkManager : : getInstance ( ) . getClientInterface ( ) ;
Lang & lang = Lang : : getInstance ( ) ;
//update status label
if ( clientInterface - > isConnected ( ) )
{
2013-10-29 06:13:38 +00:00
buttonConnect . setText ( lang . getString ( " Disconnect " ) ) ;
2010-03-19 23:26:00 +00:00
if ( clientInterface - > getAllowDownloadDataSynch ( ) = = false )
{
2013-10-29 06:13:38 +00:00
string label = lang . getString ( " ConnectedToServer " ) ;
2010-03-19 23:26:00 +00:00
if ( ! clientInterface - > getServerName ( ) . empty ( ) )
{
label = label + " " + clientInterface - > getServerName ( ) ;
}
if ( clientInterface - > getAllowGameDataSynchCheck ( ) = = true & &
clientInterface - > getNetworkGameDataSynchCheckOk ( ) = = false )
{
label = label + " - warning synch mismatch for: " ;
if ( clientInterface - > getNetworkGameDataSynchCheckOkMap ( ) = = false )
{
label = label + " map " ;
}
if ( clientInterface - > getNetworkGameDataSynchCheckOkTile ( ) = = false )
{
label = label + " tile " ;
}
if ( clientInterface - > getNetworkGameDataSynchCheckOkTech ( ) = = false )
{
label = label + " techtree " ;
}
}
else if ( clientInterface - > getAllowGameDataSynchCheck ( ) = = true )
{
label + = " - data synch is ok " ;
}
labelStatus . setText ( label ) ;
}
else
{
2013-10-29 06:13:38 +00:00
string label = lang . getString ( " ConnectedToServer " ) ;
2010-03-19 23:26:00 +00:00
if ( ! clientInterface - > getServerName ( ) . empty ( ) )
{
label = label + " " + clientInterface - > getServerName ( ) ;
}
if ( clientInterface - > getAllowGameDataSynchCheck ( ) = = true & &
clientInterface - > getNetworkGameDataSynchCheckOk ( ) = = false )
{
label = label + " - waiting to synch: " ;
if ( clientInterface - > getNetworkGameDataSynchCheckOkMap ( ) = = false )
{
label = label + " map " ;
}
if ( clientInterface - > getNetworkGameDataSynchCheckOkTile ( ) = = false )
{
label = label + " tile " ;
}
if ( clientInterface - > getNetworkGameDataSynchCheckOkTech ( ) = = false )
{
label = label + " techtree " ;
}
}
else if ( clientInterface - > getAllowGameDataSynchCheck ( ) = = true )
{
label + = " - data synch is ok " ;
}
labelStatus . setText ( label ) ;
}
}
else
{
2013-10-29 06:13:38 +00:00
buttonConnect . setText ( lang . getString ( " Connect " ) ) ;
string connectedStatus = lang . getString ( " NotConnected " ) ;
2010-04-11 04:29:23 +00:00
if ( buttonAutoFindServers . getEnabled ( ) = = false ) {
connectedStatus + = " - searching for servers, please wait... " ;
}
labelStatus . setText ( connectedStatus ) ;
2010-03-19 23:26:00 +00:00
labelInfo . setText ( " " ) ;
}
//process network messages
2011-03-29 09:45:15 +00:00
if ( clientInterface - > isConnected ( ) ) {
2010-03-19 23:26:00 +00:00
//update lobby
clientInterface - > updateLobby ( ) ;
2010-07-08 08:29:51 +00:00
clientInterface = NetworkManager : : getInstance ( ) . getClientInterface ( ) ;
if ( clientInterface ! = NULL & & clientInterface - > isConnected ( ) ) {
//call the chat manager
chatManager . updateNetwork ( ) ;
2010-03-19 23:26:00 +00:00
2010-07-08 08:29:51 +00:00
//console
console . update ( ) ;
2010-03-19 23:26:00 +00:00
2010-07-08 08:29:51 +00:00
//intro
2012-09-25 16:43:07 +00:00
if ( clientInterface - > getIntroDone ( ) ) {
2013-10-29 06:13:38 +00:00
labelInfo . setText ( lang . getString ( " WaitingHost " ) ) ;
2012-09-25 16:43:07 +00:00
string host = labelServerIp . getText ( ) ;
std : : vector < std : : string > hostPartsList ;
Tokenize ( host , hostPartsList , " : " ) ;
if ( hostPartsList . size ( ) > 1 ) {
host = hostPartsList [ 0 ] ;
replaceAll ( hostPartsList [ 1 ] , " _ " , " " ) ;
}
string saveHost = Ip ( host ) . getString ( ) ;
if ( hostPartsList . size ( ) > 1 ) {
2012-09-25 21:52:23 +00:00
saveHost + = " : " + hostPartsList [ 1 ] ;
2012-09-25 16:43:07 +00:00
}
servers . setString ( clientInterface - > getServerName ( ) , saveHost ) ;
2010-07-08 08:29:51 +00:00
}
2010-03-19 23:26:00 +00:00
2010-07-08 08:29:51 +00:00
//launch
if ( clientInterface - > getLaunchGame ( ) )
{
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s] clientInterface->getLaunchGame() - A \n " , __FILE__ , __FUNCTION__ ) ;
2010-03-19 23:26:00 +00:00
2010-07-08 08:29:51 +00:00
servers . save ( serversSavedFile ) ;
2010-03-19 23:26:00 +00:00
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s] clientInterface->getLaunchGame() - B \n " , __FILE__ , __FUNCTION__ ) ;
2010-03-19 23:26:00 +00:00
2010-07-08 08:29:51 +00:00
abortAutoFind = true ;
clientInterface - > stopServerDiscovery ( ) ;
2011-09-24 21:07:15 +00:00
program - > setState ( new Game ( program , clientInterface - > getGameSettings ( ) , false ) ) ;
2013-06-01 17:23:51 +00:00
return ;
2010-07-08 08:29:51 +00:00
}
2010-03-19 23:26:00 +00:00
}
}
2010-06-22 15:03:57 +00:00
else if ( autoConnectToServer = = true ) {
autoConnectToServer = false ;
2013-06-01 17:40:34 +00:00
if ( connectToServer ( ) = = true ) {
return ;
}
2010-06-22 15:03:57 +00:00
}
2010-03-19 23:26:00 +00:00
2011-03-29 09:45:15 +00:00
if ( clientInterface ! = NULL & & clientInterface - > getLaunchGame ( ) ) if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s] clientInterface->getLaunchGame() - D \n " , __FILE__ , __FUNCTION__ ) ;
2010-03-19 23:26:00 +00:00
}
2011-06-26 01:55:08 +00:00
void MenuStateJoinGame : : keyDown ( SDL_KeyboardEvent key ) {
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] key = [%c][%d] \n " , __FILE__ , __FUNCTION__ , __LINE__ , key . keysym . sym , key . keysym . sym ) ;
2010-04-01 06:31:10 +00:00
ClientInterface * clientInterface = NetworkManager : : getInstance ( ) . getClientInterface ( ) ;
2010-09-09 21:07:39 +00:00
if ( clientInterface - > isConnected ( ) = = false ) {
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-09-09 21:07:39 +00:00
Config & configKeys = Config : : getInstance ( std : : pair < ConfigType , ConfigType > ( cfgMainKeys , cfgUserKeys ) ) ;
2012-07-25 16:49:58 +00:00
string text = labelServerIp . getText ( ) ;
if ( isKeyPressed ( SDLK_BACKSPACE , key ) = = true & & text . length ( ) > 0 ) {
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2012-07-25 16:49:58 +00:00
size_t found = text . find_last_of ( " _ " ) ;
if ( found = = string : : npos ) {
text . erase ( text . end ( ) - 1 ) ;
}
else {
if ( text . size ( ) > 1 ) {
text . erase ( text . end ( ) - 2 ) ;
}
2010-03-19 23:26:00 +00:00
}
labelServerIp . setText ( text ) ;
}
2011-06-26 01:55:08 +00:00
//else if(key == configKeys.getCharKey("SaveGUILayout")) {
else if ( isKeyPressed ( configKeys . getSDLKey ( " SaveGUILayout " ) , key ) = = true ) {
2010-09-09 21:07:39 +00:00
bool saved = GraphicComponent : : saveAllCustomProperties ( containerName ) ;
Lang & lang = Lang : : getInstance ( ) ;
2013-10-29 06:13:38 +00:00
console . addLine ( lang . getString ( " GUILayoutSaved " ) + " [ " + ( saved ? lang . getString ( " Yes " ) : lang . getString ( " No " ) ) + " ] " ) ;
2010-09-09 21:07:39 +00:00
}
2010-03-19 23:26:00 +00:00
}
2010-09-09 21:07:39 +00:00
else {
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line: %d] \n " , __FILE__ , __FUNCTION__ , __LINE__ ) ;
2010-04-01 06:31:10 +00:00
2010-03-19 23:26:00 +00:00
//send key to the chat manager
chatManager . keyDown ( key ) ;
2010-09-09 21:07:39 +00:00
if ( chatManager . getEditEnabled ( ) = = false ) {
Config & configKeys = Config : : getInstance ( std : : pair < ConfigType , ConfigType > ( cfgMainKeys , cfgUserKeys ) ) ;
2011-06-26 01:55:08 +00:00
//if(key == configKeys.getCharKey("SaveGUILayout")) {
if ( isKeyPressed ( configKeys . getSDLKey ( " SaveGUILayout " ) , key ) = = true ) {
2010-09-09 21:07:39 +00:00
bool saved = GraphicComponent : : saveAllCustomProperties ( containerName ) ;
Lang & lang = Lang : : getInstance ( ) ;
2013-10-29 06:13:38 +00:00
console . addLine ( lang . getString ( " GUILayoutSaved " ) + " [ " + ( saved ? lang . getString ( " Yes " ) : lang . getString ( " No " ) ) + " ] " ) ;
2010-09-09 21:07:39 +00:00
}
}
2010-03-19 23:26:00 +00:00
}
}
2011-06-26 01:55:08 +00:00
void MenuStateJoinGame : : keyPress ( SDL_KeyboardEvent c ) {
2010-03-19 23:26:00 +00:00
ClientInterface * clientInterface = NetworkManager : : getInstance ( ) . getClientInterface ( ) ;
2010-09-09 21:07:39 +00:00
if ( clientInterface - > isConnected ( ) = = false ) {
2010-03-19 23:26:00 +00:00
int maxTextSize = 16 ;
2011-09-01 01:11:23 +00:00
//Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
2010-09-09 21:07:39 +00:00
2011-06-26 01:55:08 +00:00
SDLKey key = extractKeyPressed ( c ) ;
2010-03-19 23:26:00 +00:00
2011-06-26 01:55:08 +00:00
//if(c>='0' && c<='9') {
2011-07-06 12:23:43 +00:00
if ( ( key > = SDLK_0 & & key < = SDLK_9 ) | |
( key > = SDLK_KP0 & & key < = SDLK_KP9 ) ) {
2013-11-19 06:14:06 +00:00
if ( ( int ) labelServerIp . getText ( ) . size ( ) < maxTextSize ) {
2010-03-19 23:26:00 +00:00
string text = labelServerIp . getText ( ) ;
2011-06-26 03:38:28 +00:00
//text.insert(text.end()-1, key);
char szCharText [ 20 ] = " " ;
2012-10-19 01:31:20 +00:00
snprintf ( szCharText , 20 , " %c " , key ) ;
2012-11-15 08:12:40 +00:00
char * utfStr = ConvertToUTF8 ( & szCharText [ 0 ] ) ;
2012-07-26 06:27:00 +00:00
if ( text . size ( ) > 0 ) {
text . insert ( text . end ( ) - 1 , utfStr [ 0 ] ) ;
}
else {
text = utfStr [ 0 ] ;
}
2011-06-26 03:38:28 +00:00
delete [ ] utfStr ;
2010-03-19 23:26:00 +00:00
labelServerIp . setText ( text ) ;
}
}
2011-06-26 01:55:08 +00:00
//else if (c=='.') {
else if ( key = = SDLK_PERIOD ) {
2013-11-19 06:14:06 +00:00
if ( ( int ) labelServerIp . getText ( ) . size ( ) < maxTextSize ) {
2010-03-19 23:26:00 +00:00
string text = labelServerIp . getText ( ) ;
2012-07-26 06:27:00 +00:00
if ( text . size ( ) > 0 ) {
text . insert ( text . end ( ) - 1 , ' . ' ) ;
}
else {
text = " . " ;
}
2010-03-19 23:26:00 +00:00
labelServerIp . setText ( text ) ;
}
}
}
2010-12-30 15:56:02 +00:00
else {
2010-03-19 23:26:00 +00:00
chatManager . keyPress ( c ) ;
}
}
2013-06-01 17:40:34 +00:00
bool MenuStateJoinGame : : connectToServer ( ) {
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s] START \n " , __FILE__ , __FUNCTION__ ) ;
2010-03-19 23:26:00 +00:00
Config & config = Config : : getInstance ( ) ;
2012-09-25 16:43:07 +00:00
string host = labelServerIp . getText ( ) ;
2012-10-06 12:56:53 +00:00
int port = config . getInt ( " PortServer " , intToStr ( GameConstants : : serverPort ) . c_str ( ) ) ;
2012-09-25 16:43:07 +00:00
std : : vector < std : : string > hostPartsList ;
Tokenize ( host , hostPartsList , " : " ) ;
if ( hostPartsList . size ( ) > 1 ) {
host = hostPartsList [ 0 ] ;
replaceAll ( hostPartsList [ 1 ] , " _ " , " " ) ;
port = strToInt ( hostPartsList [ 1 ] ) ;
}
Ip serverIp ( host ) ;
2010-03-19 23:26:00 +00:00
2012-09-25 16:43:07 +00:00
ClientInterface * clientInterface = NetworkManager : : getInstance ( ) . getClientInterface ( ) ;
clientInterface - > connect ( serverIp , port ) ;
2010-03-19 23:26:00 +00:00
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s] server - [%s] \n " , __FILE__ , __FUNCTION__ , serverIp . getString ( ) . c_str ( ) ) ;
2010-03-19 23:26:00 +00:00
2012-09-25 16:43:07 +00:00
labelServerIp . setText ( serverIp . getString ( ) + ' _ ' ) ;
2010-03-19 23:26:00 +00:00
labelInfo . setText ( " " ) ;
//save server ip
2011-04-03 02:47:46 +00:00
if ( config . getString ( " ServerIp " ) ! = serverIp . getString ( ) ) {
config . setString ( " ServerIp " , serverIp . getString ( ) ) ;
config . save ( ) ;
}
2010-12-09 20:41:11 +00:00
2011-01-15 18:56:03 +00:00
for ( time_t elapsedWait = time ( NULL ) ;
clientInterface - > getIntroDone ( ) = = false & &
clientInterface - > isConnected ( ) & &
2013-06-01 17:40:34 +00:00
difftime ( time ( NULL ) , elapsedWait ) < = 10 ; ) {
2011-01-15 18:56:03 +00:00
if ( clientInterface - > isConnected ( ) ) {
//update lobby
clientInterface - > updateLobby ( ) ;
2011-03-19 05:11:36 +00:00
sleep ( 0 ) ;
2012-07-10 20:39:21 +00:00
//this->render();
2011-01-15 18:56:03 +00:00
}
}
if ( clientInterface - > isConnected ( ) = = true & &
clientInterface - > getIntroDone ( ) = = true ) {
2011-01-15 19:16:00 +00:00
2012-09-25 16:43:07 +00:00
string saveHost = Ip ( host ) . getString ( ) ;
if ( hostPartsList . size ( ) > 1 ) {
2012-09-25 21:52:23 +00:00
saveHost + = " : " + hostPartsList [ 1 ] ;
2012-09-25 16:43:07 +00:00
}
servers . setString ( clientInterface - > getServerName ( ) , saveHost ) ;
2012-04-13 19:37:52 +00:00
servers . save ( serversSavedFile ) ;
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s Line %d] Using FTP port #: %d \n " , __FILE__ , __FUNCTION__ , __LINE__ , clientInterface - > getServerFTPPort ( ) ) ;
2011-01-15 18:56:03 +00:00
abortAutoFind = true ;
clientInterface - > stopServerDiscovery ( ) ;
mainMenu - > setState ( new MenuStateConnectedGame ( program , mainMenu ) ) ;
2013-06-01 17:40:34 +00:00
return true ;
2011-01-15 18:56:03 +00:00
}
2011-03-29 09:45:15 +00:00
if ( SystemFlags : : getSystemSettingType ( SystemFlags : : debugSystem ) . enabled ) SystemFlags : : OutputDebug ( SystemFlags : : debugSystem , " In [%s::%s] END \n " , __FILE__ , __FUNCTION__ ) ;
2013-06-01 17:40:34 +00:00
return false ;
2010-03-19 23:26:00 +00:00
}
} } //end namespace