#include "gamegl.h"
#include "Menu.h"
-using namespace Menu;
extern float multiplier;
-struct MenuItem {
- enum MenuItemType {NONE, LABEL, BUTTON, IMAGE, IMAGEBUTTON, MAPMARKER, MAPLINE, MAPLABEL} type;
- int id;
- string text;
- Texture texture;
- int x, y, w, h;
- float r, g, b;
- float effectfade;
-
- float linestartsize;
- float lineendsize;
-
- void init(MenuItemType _type, int _id, const string& _text, Texture _texture,
- int _x, int _y, int _w, int _h, float _r, float _g, float _b,
- float _linestartsize = 1, float _lineendsize = 1) {
- type = _type;
- id = _id;
- text = _text;
- texture = _texture;
- x = _x;
- y = _y;
- w = _w;
- h = _h;
- r = _r;
- g = _g;
- b = _b;
- effectfade = 0;
- linestartsize = _linestartsize;
- lineendsize = _lineendsize;
- if (type == MenuItem::BUTTON) {
- if (w == -1)
- w = text.length() * 10;
- if (h == -1)
- h = 20;
- }
- }
-};
-
-vector<MenuItem> items;
-
-
-
+std::vector<MenuItem> Menu::items;
void Menu::clearMenu()
{
return -1;
}
-void GUITick()
+void Menu::handleFadeEffect()
{
for (vector<MenuItem>::iterator it = items.begin(); it != items.end(); it++) {
if (it->id == Game::selected) {
void Menu::drawItems()
{
- GUITick();
+ handleFadeEffect();
glEnable(GL_TEXTURE_2D);
glEnable(GL_ALPHA_TEST);
glEnable(GL_BLEND);
#include "Game.h"
-namespace Menu
+struct MenuItem {
+ enum MenuItemType {NONE, LABEL, BUTTON, IMAGE, IMAGEBUTTON, MAPMARKER, MAPLINE, MAPLABEL} type;
+ int id;
+ string text;
+ Texture texture;
+ int x, y, w, h;
+ float r, g, b;
+ float effectfade;
+
+ float linestartsize;
+ float lineendsize;
+
+ void init(MenuItemType _type, int _id, const string& _text, Texture _texture,
+ int _x, int _y, int _w, int _h, float _r, float _g, float _b,
+ float _linestartsize = 1, float _lineendsize = 1) {
+ type = _type;
+ id = _id;
+ text = _text;
+ texture = _texture;
+ x = _x;
+ y = _y;
+ w = _w;
+ h = _h;
+ r = _r;
+ g = _g;
+ b = _b;
+ effectfade = 0;
+ linestartsize = _linestartsize;
+ lineendsize = _lineendsize;
+ if (type == MenuItem::BUTTON) {
+ if (w == -1)
+ w = text.length() * 10;
+ if (h == -1)
+ h = 20;
+ }
+ }
+};
+
+class Menu
{
-void clearMenu();
-void addLabel(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0);
-void addButton(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0);
-void addImage(int id, Texture texture, int x, int y, int w, int h, float r = 1, float g = 1, float b = 1);
-void addButtonImage(int id, Texture texture, int x, int y, int w, int h, float r = 1, float g = 1, float b = 1);
-void addMapLine(int x, int y, int w, int h, float startsize, float endsize, float r, float g, float b);
-void addMapMarker(int id, Texture texture, int x, int y, int w, int h, float r, float g, float b);
-void addMapLabel(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0);
-void setText(int id, const string& text);
-void setText(int id, const string& text, int x, int y, int w, int h);
-int getSelected(int mousex, int mousey);
-void drawItems();
-}
+public:
+ static void clearMenu();
+ static void addLabel(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0);
+ static void addButton(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0);
+ static void addImage(int id, Texture texture, int x, int y, int w, int h, float r = 1, float g = 1, float b = 1);
+ static void addButtonImage(int id, Texture texture, int x, int y, int w, int h, float r = 1, float g = 1, float b = 1);
+ static void addMapLine(int x, int y, int w, int h, float startsize, float endsize, float r, float g, float b);
+ static void addMapMarker(int id, Texture texture, int x, int y, int w, int h, float r, float g, float b);
+ static void addMapLabel(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0);
+ static void setText(int id, const string& text);
+ static void setText(int id, const string& text, int x, int y, int w, int h);
+ static int getSelected(int mousex, int mousey);
+ static void drawItems();
+
+private:
+ static void handleFadeEffect();
+
+ static std::vector<MenuItem> items;
+};
#endif