1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-24 08:32:34 +02:00
vcmi/CPreGame.h
Michał W. Urbańczyk cc3d526a79 [new] dodanie do CPreGameTextHandlera funkcji wypruwających tytuł/treść danej opcji
[change] przesunięcie CPreGameTextHandlera do CPreGeme'a
[new] Pomoc kontekstowa dlaw wszystkich opcji w menu głównym (plansza główna)
[bugfix] Gdy okienko znika nie ma błędów w wyświetlaniu (przycięte przyciski)
[new] Funkcja do wygodnego generowania kolorów w rozszerzeniach SDLa i odświeżania recta
[new] Generowanie okien dwuprzyciskowych (sporo jest z tym związanych zmian)


***Uwaga - to okno dwuprzyciskowe (a właściwie jego obsługa) nie jest dokończone - jest parę bugów o których wiem. Nie mam siły ich teraz poprawiać, a Ty pewnie zaraz wejdziesz i będziesz ciekaw zmian, więc wgrywam, ale nie zdziw się, gdy jakiś odkryjesz.***

I musisz dodać nowe defy, które zaraz dostaniesz na pocztę.
2007-06-13 14:02:43 +00:00

43 lines
1.3 KiB
C++

#include "SDL.h"
#include "CSemiDefHandler.h"
#include "CSemiLodHandler.h"
#include "CPreGameTextHandler.h"
class CPreGame;
extern CPreGame * CPG;
struct Button
{
int type; // 1=yes; 2=no
SDL_Rect pos;
(void)(CPreGame::*fun)();
CSemiDefHandler* imgs;
Button(int Type, SDL_Rect Pos, void(CPreGame::*Fun)(),CSemiDefHandler* Imgs):imgs(Imgs),type(Type),pos(Pos),fun(Fun){};
Button(){};
};
class CPreGame
{
public:
std::vector<Button> btns;
CPreGameTextHandler * preth ;
SDL_Rect * currentMessage;
SDL_Surface * behindCurMes;
enum EState { //where are we?
mainMenu, ScenarioList
} state;
struct menuItems {
SDL_Surface * background;
CSemiDefHandler *newGame, *loadGame, *highScores,*credits, *quit, *ok, *cancel;
SDL_Rect lNewGame, lLoadGame, lHighScores, lCredits, lQuit;
int highlighted;//0=none; 1=new game; 2=load game; 3=high score; 4=credits; 5=quit
} * ourMainMenu, * newGameManu;
std::string map; //selected map
std::vector<CSemiLodHandler *> handledLods;
CPreGame(); //c-tor
void quit(){exit(0);};
void showMainMenu();
void runLoop(); // runs mainloop of PreGame
void initMainMenu(); //loads components for main menu
void highlightButton(int which, int on);
void showCenBox (std::string data);
void showAskBox (std::string data, void(*f1)(),void(*f2)());
void hideBox ();
};