57 lines
1.0 KiB
C++
57 lines
1.0 KiB
C++
|
class Menu {
|
||
|
public :
|
||
|
enum MenuItemCode {
|
||
|
NONE,
|
||
|
NEW_GAME,
|
||
|
CONTINUE,
|
||
|
EXIT,
|
||
|
CONSTITUTION,
|
||
|
STRENGTH,
|
||
|
AGILITY
|
||
|
};
|
||
|
enum DisplayMode {
|
||
|
MAIN,
|
||
|
PAUSE
|
||
|
};
|
||
|
|
||
|
~Menu();
|
||
|
void clear();
|
||
|
void addItem(MenuItemCode code, const char *label);
|
||
|
MenuItemCode pick(DisplayMode mode=MAIN);
|
||
|
protected :
|
||
|
struct MenuItem {
|
||
|
MenuItemCode code;
|
||
|
const char *label;
|
||
|
};
|
||
|
TCODList<MenuItem *> items;
|
||
|
};
|
||
|
|
||
|
class Gui : public Persistent {
|
||
|
public :
|
||
|
Menu menu;
|
||
|
Gui();
|
||
|
~Gui();
|
||
|
void render();
|
||
|
void message(const TCODColor &col, const char *text, ...);
|
||
|
void load(TCODZip &zip);
|
||
|
void save(TCODZip &zip);
|
||
|
void clear();
|
||
|
|
||
|
protected:
|
||
|
TCODConsole *con;
|
||
|
struct Message {
|
||
|
char *text;
|
||
|
TCODColor col;
|
||
|
Message(const char *text, const TCODColor &col);
|
||
|
~Message();
|
||
|
};
|
||
|
TCODList<Message *> log;
|
||
|
|
||
|
void renderBar(int x, int y, int width, const char *name,
|
||
|
float value, float maxValue, const TCODColor &barColor,
|
||
|
const TCODColor &backColor);
|
||
|
|
||
|
void renderMouseLook();
|
||
|
};
|
||
|
|