- if (input.IsDown(Input::PAD_UP)) {
- attackTypeMenu.Select(AttackTypeMenu::MAGIC);
- } else if (input.IsDown(Input::PAD_RIGHT)) {
- attackTypeMenu.Select(AttackTypeMenu::DEFEND);
- } else if (input.IsDown(Input::PAD_DOWN)) {
- attackTypeMenu.Select(AttackTypeMenu::IKARI);
- } else if (input.IsDown(Input::PAD_LEFT)) {
- attackTypeMenu.Select(AttackTypeMenu::ITEM);
+ ikariMenus[index].Add(res->noEquipmentText, 0, false, res->shieldMenuIcon);
+ }
+
+ if (HeroAt(index).HasHelmet()) {
+ ikariMenus[index].Add(
+ HeroAt(index).Helmet()->Name(),
+ HeroAt(index).Helmet(),
+ HeroAt(index).Helmet()->HasIkari() && HeroAt(index).Helmet()->GetIkari()->Cost() <= HeroAt(index).IP(),
+ res->helmetMenuIcon,
+ 0,
+ HeroAt(index).Helmet()->HasIkari() ? HeroAt(index).Helmet()->GetIkari()->Name() : "");
+ } else {
+ ikariMenus[index].Add(res->noEquipmentText, 0, false, res->helmetMenuIcon);
+ }
+
+ if (HeroAt(index).HasRing()) {
+ ikariMenus[index].Add(
+ HeroAt(index).Ring()->Name(),
+ HeroAt(index).Ring(),
+ HeroAt(index).Ring()->HasIkari() && HeroAt(index).Ring()->GetIkari()->Cost() <= HeroAt(index).IP(),
+ res->ringMenuIcon,
+ 0,
+ HeroAt(index).Ring()->HasIkari() ? HeroAt(index).Ring()->GetIkari()->Name() : "");
+ } else {
+ ikariMenus[index].Add(res->noEquipmentText, 0, false, res->ringMenuIcon);
+ }
+
+ if (HeroAt(index).HasJewel()) {
+ ikariMenus[index].Add(
+ HeroAt(index).Jewel()->Name(),
+ HeroAt(index).Jewel(),
+ HeroAt(index).Jewel()->HasIkari() && HeroAt(index).Jewel()->GetIkari()->Cost() <= HeroAt(index).IP(),
+ res->jewelMenuIcon,
+ 0,
+ HeroAt(index).Jewel()->HasIkari() ? HeroAt(index).Jewel()->GetIkari()->Name() : "");
+ } else {
+ ikariMenus[index].Add(res->noEquipmentText, 0, false, res->jewelMenuIcon);
+ }
+}
+
+void BattleState::LoadInventory() {
+ const Inventory &inv(*res->inventory);
+ itemMenu.Clear();
+ itemMenu.Reserve(inv.MaxItems());
+ for (int i(0); i < inv.MaxItems(); ++i) {
+ const Item *item(inv.ItemAt(i));
+ if (item) {
+ itemMenu.Add(item->Name(), item, item->CanUseInBattle(), item->MenuIcon(), inv.ItemCountAt(i));