1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
#ifndef SELECT_MENU
#define SELECT_MENU
#include "aGui/GuiElement.h"
#include "Game/GameController.h"
class ClientSetup;
union SDL_Event;
class SelectionWidget;
class ConnectWindow;
class LobbyConnection;
class SettingsWindow;
class ListSelectWnd;
/**
@brief User prompt for options when no script is given
When no setupscript is given, this will show a menu to select server address (when running in client ("-c")mode).
If in host mode, it will show lists for Map, Mod and Script.
When everything is selected, it will generate a gamesetup-script and start CPreGame
*/
class SelectMenu : public CGameController, public agui::GuiElement
{
public:
SelectMenu(bool server);
~SelectMenu();
bool Draw();
bool Update();
private:
void Single();
void Settings();
void Multi();
void Quit();
void ShowConnectWindow(bool show);
void ShowUpdateWindow(bool show);
void DirectConnect(const std::string& addr);
bool HandleEventSelf(const SDL_Event& ev);
void SelectScript(const std::string& s);
void SelectMap(const std::string& s);
void SelectMod(const std::string& s);
void ShowSettingsWindow(bool show, std::string name);
void ShowSettingsList();
void SelectSetting(std::string);
void CleanWindow();
ClientSetup* mySettings;
ConnectWindow* conWindow;
LobbyConnection* updWindow;
SelectionWidget* selw;
SettingsWindow* settingsWindow;
ListSelectWnd* curSelect;
std::string userSetting;
};
#endif
|