]> git.localhorst.tv Git - l2e.git/commitdiff
moved spell menu template to resources
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Wed, 8 Aug 2012 21:00:41 +0000 (23:00 +0200)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Wed, 8 Aug 2012 21:00:41 +0000 (23:00 +0200)
src/battle/BattleState.cpp
src/battle/Resources.h
src/graphics/Menu.h
src/main.cpp

index 15d9d18c5b2739d0d1ed0d77c012036452b2d2a6..d1cb4ffda5e8181b0b6c9634181c241a2fcc28bc 100644 (file)
@@ -51,14 +51,19 @@ void BattleState::EnterState(Application &ctrl, SDL_Surface *screen) {
        heroesLayout->CalculatePositions(background->w, background->h, heroesPositions);
        attackChoices.resize(heroes.size());
        for (vector<Hero>::size_type i(0), end(heroes.size()); i < end; ++i) {
-               // TODO: extract menu dimensions to resources
-               Menu</* Spell */ void *> spellMenu(res->normalFont, 12, 6, 8, 2, 32);
-               spellMenu.Add("Strong   : 3", 0);
-               spellMenu.Add("Stronger : 8", 0);
-               spellMenu.Add("Champion :16", 0);
-               spellMenu.Add("Rally    :10", 0);
-               spellMenu.Add("Valor    :30", 0);
-               spellMenus.push_back(spellMenu);
+               spellMenus.push_back(res->spellMenuPrototype);
+               // TODO: insert real spell menu entries
+               spellMenus.back().Add("Reset    : 0", 0);
+               spellMenus.back().Add("Strong   : 3", 0);
+               spellMenus.back().Add("Stronger : 8", 0);
+               spellMenus.back().Add("Champion :16", 0);
+               spellMenus.back().Add("Rally    :10", 0);
+               spellMenus.back().Add("Valor    :30", 0);
+               spellMenus.back().Add("Poison   : 2", 0);
+               spellMenus.back().Add("Release  : 2", 0);
+               spellMenus.back().Add("Waken    : 4", 0);
+               spellMenus.back().Add("Fake     : 4", 0);
+               spellMenus.back().Add("Trick    : 5", 0);
                heroTags.push_back(HeroTag(&heroes[i], &attackChoices[i], res, HeroTag::Alignment((i + 1) % 2)));
        }
 }
index 8d1144f6b30bdc60efd5437f5981fd1e08585bd8..40c0b3b92a167b04eaff8649fb9a8cc7648b3425 100644 (file)
@@ -8,6 +8,8 @@
 #ifndef BATTLE_RESOURCES_H_
 #define BATTLE_RESOURCES_H_
 
+#include "../graphics/Menu.h"
+
 namespace graphics {
        class Font;
        class Frame;
@@ -36,6 +38,8 @@ struct Resources {
 
        graphics::Font *normalFont;
 
+       graphics::Menu</* Spell */ void *> spellMenuPrototype;
+
 
        Resources()
        : moveIcons(0)
index 0a4a69885d7ff6dd81b2b1ceb63bbe8c1b8ff777..576120e65b9e5bd881d231becb6231ec5989c9e8 100644 (file)
@@ -20,11 +20,14 @@ namespace graphics {
 
 class Sprite;
 
+// TODO: disabled entries + alternate font for those
+// TODO: sprite for the cursor
+// TODO: animation when top row changes
 template<class T>
 class Menu {
 
 public:
-       Menu(const Font *font, int charsPerEntry, int rows, int rowGap = 0, int cols = 1, int colGap = 0);
+       explicit Menu(const Font *font = NULL, int charsPerEntry = 16, int rows = 1, int rowGap = 0, int cols = 1, int colGap = 0);
 
 public:
        int Width() const;
index 676f2d7da7541c8dcccffadf2ef3aff90f0d4cf7..f5d32e48495cd61b96a98b69daba2c778baecb01 100644 (file)
@@ -16,6 +16,7 @@
 #include "graphics/Font.h"
 #include "graphics/Frame.h"
 #include "graphics/Gauge.h"
+#include "graphics/Menu.h"
 #include "graphics/Sprite.h"
 #include "sdl/InitImage.h"
 #include "sdl/InitScreen.h"
@@ -36,6 +37,7 @@ using geometry::Point;
 using graphics::Font;
 using graphics::Frame;
 using graphics::Gauge;
+using graphics::Menu;
 using graphics::Sprite;
 using sdl::InitImage;
 using sdl::InitScreen;
@@ -166,6 +168,8 @@ int main(int argc, char **argv) {
                normalFont.MapChar('?', 10, 0);
                battleRes.normalFont = &normalFont;
 
+               battleRes.spellMenuPrototype = Menu</* Spell */ void *>(&normalFont, 12, 6, 8, 2, 32);
+
                BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, &battleRes));
                battleState->AddMonster(monster);
                battleState->AddMonster(monster);