/** ******************************************************************************* @file /gui/contexts/LocalMulti.h @brief Obrazovka lokalniho multiplayeru @author Pavel @version 0.1 ******************************************************************************/ #ifndef LOCALMULTI_H #define LOCALMULTI_H #include "gui/common/Context.h" #include "gui/common/Defs.h" #include "gui/common/ActiveObjects_ext.h" // #include "common/rm/rminit.h" #include "net/comm.h" namespace gui{ /** Hlavni okno kontextu LocalMulti. */ class TLocalMultiWindow : public TWindow { private: rm::TRM_map_i* rmmapi; rm::TRM_txt_i *rmtxti; public: /// Informace o vybrane mape - pointer do rm. rm::TMapInfo *info; /// Cislo mapy kterou server vybral. int mapnumber; /// Reprezentace pridelenych roli //@{ struct { char name[MAX_STRLEN]; MYROLETYPE type; } players[MAX_PLAYERS+1]; /// Pocet hracu na mape. int players_c; /// Pocet pripojenych hracu. int players_connected; //@} /// GUI informace o vybrane mape. //@{ TGroupBar *ginfo; TLabel *lmapname; TLabel *lplayerscountcaption; TLabel *lplayerscount; TLabel *lsizecaption; TLabel *lsize; TLabel *lmapcaption; // TLabel *descriptioncaption; TMultiLabel *mldescription; //@} /// GUI seznam hracu. //@{ TListBar *roleslist; TLabel *lrolescaption; //@} /// GUI nastaveni hracu. //@{ TLabel *loptionscaption; TGroupBar *goptions; TLabel *lprimaryplayer; TRadioBox *rbprimaryplayer; TLabel *lotherplayer; TRadioBox *rbotherplayer; TLabel *lotherplayername; TLineTextField *tfotherplayename; TLabel *lai; TLabel *lai1, *lai2, *lai3; TItem *iai1, *iai2, *iai3; TRadioBox *rbai; TLabel *ldificulty; TListBar *lbdificulty; //@} /// Typ ukonceni hry //@{ TGroupBar *gendgame; TLabel *lendgame1; TLabel *lendgame2; TRadioBox *rendgame1; TRadioBox *rendgame2; TLabel *lendgamec; //@} /// GUI ovladani. //@{ TTextButton *bplay; TTextButton *bback; //@} TLocalMultiWindow(int _mapnumber); ~TLocalMultiWindow(); /// Komunikace s okolim. //@{ /// Obnovi gui podle datovych struktur. void updateLocalGameForm(); /// Vrati id zvolene role. int getSelectedRole(); //@} }; /** Kontext pro nastavovani roli a hracu u lokalni hry */ class TLocalMulti: public TContext { private: TLocalMultiWindow *mainwindow; TErrorWindow* notice; /// Id zvolene mapy. int mapnumber; /// Rmtxt kontextu. rm::TRM_txt_i *rmtxti; public: /// Zpracuje pridani klienta void addClient(int cli); /// Standartni rozhrani kontextu. //@{ TLocalMulti(TContextParameter contextparameter); virtual ~TLocalMulti(); static TContext* createContext(...); virtual void activateContext(TContextParameter contextparameter); virtual void deactivateContext(); //@} /// Graficky vstup a vystup. //@{ virtual void drawContext(); virtual int workInput(INPUT *input); //@} }; }//namespace #endif /*****************************************************************************/