#ifndef BATTLE_ATTACKTYPEMENU_H_
#define BATTLE_ATTACKTYPEMENU_H_
-namespace app { class Input; }
-namespace graphics { class Sprite; }
-
-#include "../geometry/Point.h"
+#include "AttackChoice.h"
+#include "../geometry/Vector.h"
+#include "../graphics/Sprite.h"
#include <SDL.h>
class AttackTypeMenu {
-public:
- enum Icon {
- SWORD,
- MAGIC,
- DEFEND,
- IKARI,
- ITEM
- };
-
public:
explicit AttackTypeMenu(const graphics::Sprite *icons)
- : icons(icons), selected(SWORD) { }
+ : icons(icons), selected(AttackChoice::SWORD) { }
public:
- void ReadInput(const app::Input &);
- Icon Selected() const { return selected; }
- void Render(SDL_Surface *screen, const geometry::Point<int> ¢er);
+ void Select(AttackChoice::Type t) { selected = t; }
+ AttackChoice::Type Selected() const { return selected; }
+ void Render(SDL_Surface *screen, const geometry::Vector<int> &position);
+
+ int Width() const { return 3 * IconWidth(); }
+ int Height() const { return 3 * IconHeight(); }
+ geometry::Vector<int> Size() const { return 3 * IconSize(); }
+ int IconWidth() const { return icons->Width(); }
+ int IconHeight() const { return icons->Height(); }
+ const geometry::Vector<int> &IconSize() const { return icons->Size(); }
private:
const graphics::Sprite *icons;
- Icon selected;
+ AttackChoice::Type selected;
};