long CLauncherWindow::OnCommand(unsigned short cmdId, unsigned short cmdType, HWND hwndFrom) { switch(cmdId) { case IDCANCEL: Destroy(); break; case IDC_GAMESETTINGS_BUTTON: ShowGameSettings(); break; } if(CWindow::IsCommandSource(&m_serverAddressComboBox, hwndFrom)) { switch(cmdType) { case CBN_EDITCHANGE: if(m_pageLoadTimerId != NULL) { KillTimer(m_hWnd, m_pageLoadTimerId); } m_pageLoadTimerId = SetTimer(m_hWnd, PAGE_LOAD_TIMER_ID, 1000, nullptr); ResetLoginPage(); break; case CBN_SELCHANGE: LoadLoginPage(); break; } } return FALSE; }
virtual void OnClick(Point pt, int widget) { #ifdef ENABLE_NETWORK /* Do not create a network server when you (just) have closed one of the game * creation/load windows for the network server. */ if (IsInsideMM(widget, SGI_GENERATE_GAME, SGI_EDIT_SCENARIO + 1)) _is_network_server = false; #endif /* ENABLE_NETWORK */ switch (widget) { case SGI_GENERATE_GAME: if (_ctrl_pressed) { StartNewGameWithoutGUI(GENERATE_NEW_SEED); } else { ShowGenerateLandscape(); } break; case SGI_LOAD_GAME: ShowSaveLoadDialog(SLD_LOAD_GAME); break; case SGI_PLAY_SCENARIO: ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break; case SGI_PLAY_HEIGHTMAP: ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); break; case SGI_EDIT_SCENARIO: StartScenarioEditor(); break; case SGI_PLAY_NETWORK: if (!_network_available) { ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, 0, 0); } else { ShowNetworkGameWindow(); } break; case SGI_TEMPERATE_LANDSCAPE: case SGI_ARCTIC_LANDSCAPE: case SGI_TROPIC_LANDSCAPE: case SGI_TOYLAND_LANDSCAPE: this->RaiseWidget(_settings_newgame.game_creation.landscape + SGI_TEMPERATE_LANDSCAPE); SetNewLandscapeType(widget - SGI_TEMPERATE_LANDSCAPE); this->SetLandscapeButtons(); break; case SGI_OPTIONS: ShowGameOptions(); break; case SGI_DIFFICULTIES: ShowGameDifficulty(); break; case SGI_SETTINGS_OPTIONS:ShowGameSettings(); break; case SGI_GRF_SETTINGS: ShowNewGRFSettings(true, true, false, &_grfconfig_newgame); break; case SGI_CONTENT_DOWNLOAD: if (!_network_available) { ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, 0, 0); } else { ShowNetworkContentListWindow(); } break; case SGI_AI_SETTINGS: ShowAIConfigWindow(); break; case SGI_EXIT: HandleExitGameRequest(); break; } }