- int tagHeight(attackTypeMenu.Height());
- int tagWidth(attackTypeMenu.Width() * 2 + attackTypeMenu.Width() / 2);
- int xOffset((BackgroundWidth() - 2 * tagWidth) / 2);
- heroTagPositions[0] = Point<int>(xOffset, BackgroundHeight() - 2 * tagHeight);
- heroTagPositions[1] = Point<int>(xOffset + tagWidth, BackgroundHeight() - 2 * tagHeight);
- heroTagPositions[2] = Point<int>(xOffset, BackgroundHeight() - tagHeight);
- heroTagPositions[3] = Point<int>(xOffset + tagWidth, BackgroundHeight() - tagHeight);
-
- itemMenu = res->itemMenuPrototype;
- LoadInventory();
-}
-
-void BattleState::LoadSpellMenu(vector<Hero>::size_type index) {
- spellMenus[index].Clear();
- spellMenus[index].Reserve(HeroAt(index).Spells().size());
- for (vector<const Spell *>::const_iterator i(HeroAt(index).Spells().begin()), end(HeroAt(index).Spells().end()); i != end; ++i) {
- bool enabled((*i)->CanUseInBattle() && (*i)->Cost() <= HeroAt(index).Mana());
- spellMenus[index].Add((*i)->Name(), *i, enabled, 0, (*i)->Cost());
- }
-}
-
-void BattleState::LoadIkariMenu(vector<Hero>::size_type index) {
- ikariMenus[index].Clear();
- ikariMenus[index].Reserve(6);
-
- if (HeroAt(index).HasWeapon()) {
- ikariMenus[index].Add(
- HeroAt(index).Weapon()->Name(),
- HeroAt(index).Weapon(),
- HeroAt(index).Weapon()->HasIkari() && HeroAt(index).Weapon()->GetIkari()->Cost() <= HeroAt(index).IP(),
- res->weaponMenuIcon,
- 0,
- HeroAt(index).Weapon()->HasIkari() ? HeroAt(index).Weapon()->GetIkari()->Name() : "");
- } else {
- ikariMenus[index].Add(res->noEquipmentText, 0, false, res->weaponMenuIcon);
- }
-
- if (HeroAt(index).HasArmor()) {
- ikariMenus[index].Add(
- HeroAt(index).Armor()->Name(),
- HeroAt(index).Armor(),
- HeroAt(index).Armor()->HasIkari() && HeroAt(index).Armor()->GetIkari()->Cost() <= HeroAt(index).IP(),
- res->armorMenuIcon,
- 0,
- HeroAt(index).Armor()->HasIkari() ? HeroAt(index).Armor()->GetIkari()->Name() : "");
- } else {
- ikariMenus[index].Add(res->noEquipmentText, 0, false, res->armorMenuIcon);
- }