- fixed problem where custom menu was setting broadcast to master server when loading last game from commandline even though publish was not enabled.

This commit is contained in:
Mark Vejvoda 2010-10-30 04:24:26 +00:00
parent dec9dfe653
commit f897884321
4 changed files with 64 additions and 21 deletions

View File

@ -728,10 +728,10 @@ int glestMain(int argc, char** argv){
//parse command line
if(hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_SERVER]) == true) {
program->initServer(mainWindow);
program->initServer(mainWindow,false,true);
}
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_AUTOSTART_LASTGAME])) == true) {
program->initServer(mainWindow,true);
program->initServer(mainWindow,true,false);
}
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_CLIENT])) == true) {
int foundParamIndIndex = -1;

View File

@ -141,13 +141,13 @@ void Program::initNormal(WindowGl *window){
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
}
void Program::initServer(WindowGl *window, bool autostart) {
void Program::initServer(WindowGl *window, bool autostart,bool openNetworkSlots) {
MainMenu* mainMenu= NULL;
init(window);
mainMenu= new MainMenu(this);
setState(mainMenu);
mainMenu->setState(new MenuStateCustomGame(this, mainMenu, true, false, autostart));
mainMenu->setState(new MenuStateCustomGame(this, mainMenu, openNetworkSlots, false, autostart));
}
void Program::initClient(WindowGl *window, const Ip &serverIp) {

View File

@ -132,7 +132,7 @@ public:
static Program *getInstance() {return singleton;}
void initNormal(WindowGl *window);
void initServer(WindowGl *window,bool autostart=false);
void initServer(WindowGl *window,bool autostart=false,bool openNetworkSlots=false);
void initClient(WindowGl *window, const Ip &serverIp);
void initScenario(WindowGl *window, string autoloadScenarioName);

View File

@ -590,7 +590,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
labelMapInfo.setText(mapInfo.desc);
updateControlers();
updateNetworkSlots();
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -600,7 +603,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
}
else if (listBoxAdvanced.getSelectedItemIndex() == 1 && listBoxFogOfWar.mouseClick(x, y)) {
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -610,7 +616,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
}
else if (listBoxAdvanced.getSelectedItemIndex() == 1 && listBoxAllowObservers.mouseClick(x, y)) {
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
reloadFactions(true);
@ -622,7 +631,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
}
else if (listBoxAdvanced.getSelectedItemIndex() == 1 && listBoxEnableObserverMode.mouseClick(x, y)) {
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -632,7 +644,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
}
else if (listBoxAdvanced.getSelectedItemIndex() == 1 && listBoxPathFinderType.mouseClick(x, y)) {
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -658,7 +673,9 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
else if(listBoxTileset.mouseClick(x, y)){
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
needToSetChangedGameSettings = true;
@ -674,7 +691,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
labelMapInfo.setText(mapInfo.desc);
updateControlers();
updateNetworkSlots();
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -686,7 +706,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
reloadFactions(false);
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -714,7 +737,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
*/
else if(listBoxAdvanced.getSelectedItemIndex() == 1 && listBoxNetworkPauseGameForLaggedClients.mouseClick(x, y)){
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
needToSetChangedGameSettings = true;
@ -771,14 +797,20 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
}
updateNetworkSlots();
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true) {
needToSetChangedGameSettings = true;
lastSetChangedGameSettings = time(NULL);
}
}
else if(listBoxFactions[i].mouseClick(x, y)) {
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -797,7 +829,10 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
else {
lastSelectedTeamIndex[i] = -1;
}
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -837,7 +872,10 @@ void MenuStateCustomGame::RestoreLastGameSettings() {
serverInterface->setGameSettings(&gameSettings,false);
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToRepublishToMasterserver = true;
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
@ -1500,8 +1538,10 @@ void MenuStateCustomGame::update() {
bool republishToMaster = (difftime(time(NULL),lastMasterserverPublishing) >= 5);
if(republishToMaster == true) {
needToRepublishToMasterserver = true;
lastMasterserverPublishing = time(NULL);
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
lastMasterserverPublishing = time(NULL);
}
}
bool callPublishNow = (listBoxPublishServer.getEditable() &&
@ -2075,7 +2115,10 @@ GameSettings MenuStateCustomGame::loadGameSettingsFromFile(std::string fileName)
updateControlers();
updateNetworkSlots();
needToRepublishToMasterserver = true;
//if(listBoxPublishServer.getSelectedItemIndex() == 0) {
// needToRepublishToMasterserver = true;
//}
if(hasNetworkGameSettings() == true)
{