void BattleState::EnterState(Application &ctrl, SDL_Surface *screen) {
for (int i(0); i < 4; ++i) {
heroes[i].Position() = heroesLayout->CalculatePosition(i, background->w, background->h);
- heroes[i].SpellMenu() = res->spellMenuPrototype;
+ heroes[i].SpellMenu() = *res->spellMenuProperties;
heroes[i].UpdateSpellMenu();
- heroes[i].IkariMenu() = res->ikariMenuPrototype;
+ heroes[i].IkariMenu() = *res->ikariMenuProperties;
heroes[i].UpdateIkariMenu(res);
heroTags[i] = HeroTag(this, i);
smallHeroTags[i] = SmallHeroTag(this, i);
smallHeroTagPositions[2] = Vector<int>(xOffset + tagWidth, yOffset);
smallHeroTagPositions[3] = Vector<int>(xOffset + 3 * tagWidth, yOffset);
- itemMenu = res->itemMenuPrototype;
+ itemMenu = *res->itemMenuProperties;
LoadInventory();
}
SDL_FillRect(screen, &rect, SDL_MapRGB(screen->format, 0, 0, 0));
rect.y += res->normalFont->CharHeight() / 8;
rect.h -= res->normalFont->CharHeight() / 4;
- SDL_FillRect(screen, &rect, res->heroesBgColor);
+ SDL_FillRect(screen, &rect, res->heroesBgColor.MapRGB(screen->format));
for (int i(0); i < numHeroes; ++i) {
smallHeroTags[i].Render(screen, tagWidth, tagHeight, smallHeroTagPositions[i] + offset);
#ifndef BATTLE_RESOURCES_H_
#define BATTLE_RESOURCES_H_
-#include "../graphics/Menu.h"
+#include "../graphics/Color.h"
#include <SDL.h>
graphics::Sprite *itemTargetCursor;
const char *spellMenuHeadline;
- graphics::Menu<const common::Spell *> spellMenuPrototype;
+ graphics::MenuProperties *spellMenuProperties;
common::Inventory *inventory;
const char *itemMenuHeadline;
- graphics::Menu<const common::Item *> itemMenuPrototype;
+ graphics::MenuProperties *itemMenuProperties;
const char *ikariMenuHeadline;
- graphics::Menu<const common::Item *> ikariMenuPrototype;
+ graphics::MenuProperties *ikariMenuProperties;
const char *noEquipmentText;
const char *escapeText;
int ikariLabelCol;
int ikariLabelRow;
- Uint32 heroesBgColor;
+ graphics::Color heroesBgColor;
Resources()
, itemTargetCursor(0)
, spellMenuHeadline("")
+ , spellMenuProperties(0)
, inventory(0)
, itemMenuHeadline("")
+ , itemMenuProperties(0)
, ikariMenuHeadline("")
+ , ikariMenuProperties(0)
, noEquipmentText("")
, escapeText("")
, ikariLabelCol(0)
, ikariLabelRow(0)
- , heroesBgColor(0)
{ }
};
battleRes.activeHeroTagFrame = intp.GetFrame("activeHeroTagFrame");
battleRes.smallHeroTagFrame = intp.GetFrame("smallHeroTagFrame");
battleRes.lastSmallHeroTagFrame = intp.GetFrame("lastSmallHeroTagFrame");
- battleRes.heroesBgColor = intp.GetColor("heroesBgColor").MapRGB(screen.Screen()->format);
+ battleRes.heroesBgColor = intp.GetColor("heroesBgColor");
battleRes.healthGauge = intp.GetGauge("healthGauge");
battleRes.manaGauge = intp.GetGauge("manaGauge");
selan.AddSpell(valorSpell);
battleRes.spellMenuHeadline = intp.GetString("spellMenuHeadline");
- battleRes.spellMenuPrototype = Menu<const Spell *>(*intp.GetMenuProperties("spellMenuPrototype"));
+ battleRes.spellMenuProperties = intp.GetMenuProperties("spellMenuPrototype");
battleRes.weaponMenuIcon = intp.GetSprite("swordIcon");
battleRes.armorMenuIcon = intp.GetSprite("armorIcon");
battleRes.inventory = &inventory;
battleRes.itemMenuHeadline = intp.GetString("itemMenuHeadline");
- battleRes.itemMenuPrototype = Menu<const common::Item *>(*intp.GetMenuProperties("itemMenuPrototype"));
+ battleRes.itemMenuProperties = intp.GetMenuProperties("itemMenuPrototype");
maxim.SetWeapon(intp.GetItem("zircoSwordItem"));
maxim.SetArmor(intp.GetItem("zirconArmorItem"));
battleRes.ikariMenuHeadline = intp.GetString("ikariMenuHeadline");
battleRes.noEquipmentText = intp.GetString("noEquipmentText");
- battleRes.ikariMenuPrototype = Menu<const Item *>(*intp.GetMenuProperties("ikariMenuPrototype"));
+ battleRes.ikariMenuProperties = intp.GetMenuProperties("ikariMenuPrototype");
battleRes.escapeText = intp.GetString("escapeText");
BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, &battleRes));