using battle::PartyLayout;
using common::GameConfig;
using common::GameState;
+using common::Hero;
using common::Spell;
using geometry::Vector;
using graphics::Texture;
gameState.heroes[0].AddSpell(valorSpell);
gameState.heroes[1].AddSpell(valorSpell);
+ gameState.inventory.Add(caster.GetItem("zirconPlateItem"));
gameState.inventory.Add(caster.GetItem("antidoteItem"), 9);
+ gameState.inventory.Add(caster.GetItem("powerRingItem"));
gameState.inventory.Add(caster.GetItem("magicJarItem"), 4);
+ gameState.inventory.Add(caster.GetItem("sProRingItem"));
gameState.inventory.Add(caster.GetItem("hiPotionItem"), 4);
+ gameState.inventory.Add(caster.GetItem("powerRingItem"));
gameState.inventory.Add(caster.GetItem("powerPotionItem"), 4);
+ gameState.inventory.Add(caster.GetItem("zircoSwordItem"));
gameState.inventory.Add(caster.GetItem("escapeItem"), 2);
+ gameState.inventory.Add(caster.GetItem("zircoHelmetItem"));
gameState.inventory.Add(caster.GetItem("sleepBallItem"), 1);
-
- gameState.heroes[0].SetWeapon(caster.GetItem("zircoSwordItem"));
- gameState.heroes[0].SetArmor(caster.GetItem("zirconArmorItem"));
- gameState.heroes[0].SetShield(caster.GetItem("holyShieldItem"));
- gameState.heroes[0].SetHelmet(caster.GetItem("legendHelmItem"));
- gameState.heroes[0].SetRing(caster.GetItem("sProRingItem"));
- gameState.heroes[0].SetJewel(caster.GetItem("evilJewelItem"));
-
-// gameState.heroes[1].SetWeapon(cst.GetItem("zircoWhipItem"));
- gameState.heroes[1].SetArmor(caster.GetItem("zirconPlateItem"));
- gameState.heroes[1].SetShield(caster.GetItem("zircoGlovesItem"));
- gameState.heroes[1].SetHelmet(caster.GetItem("holyCapItem"));
- gameState.heroes[1].SetRing(caster.GetItem("ghostRingItem"));
- gameState.heroes[1].SetJewel(caster.GetItem("eagleRockItem"));
-
-// gameState.heroes[2].SetWeapon(cst.GetItem("zircoAxItem"));
- gameState.heroes[2].SetArmor(caster.GetItem("zirconArmorItem"));
- gameState.heroes[2].SetShield(caster.GetItem("megaShieldItem"));
- gameState.heroes[2].SetHelmet(caster.GetItem("zircoHelmetItem"));
- gameState.heroes[2].SetRing(caster.GetItem("powerRingItem"));
- gameState.heroes[2].SetJewel(caster.GetItem("evilJewelItem"));
+ gameState.inventory.Add(caster.GetItem("zirconPlateItem"));
+
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_WEAPON, caster.GetItem("zircoSwordItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_ARMOR, caster.GetItem("zirconArmorItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_SHIELD, caster.GetItem("holyShieldItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_HELMET, caster.GetItem("legendHelmItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_RING, caster.GetItem("sProRingItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("evilJewelItem"));
+
+// gameState.heroes[1].SetEquipment(Hero::EQUIP_WEAPON, caster.GetItem("zircoWhipItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_ARMOR, caster.GetItem("zirconPlateItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_SHIELD, caster.GetItem("zircoGlovesItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_HELMET, caster.GetItem("holyCapItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_RING, caster.GetItem("ghostRingItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("eagleRockItem"));
+
+// gameState.heroes[2].SetEquipment(Hero::EQUIP_WEAPON, caster.GetItem("zircoAxItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_ARMOR, caster.GetItem("zirconArmorItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_SHIELD, caster.GetItem("megaShieldItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_HELMET, caster.GetItem("zircoHelmetItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_RING, caster.GetItem("powerRingItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("evilJewelItem"));
// NOTE: this is actually Artea equipment
-// gameState.heroes[3].SetWeapon(cst.GetItem("lizardBlowItem"));
- gameState.heroes[3].SetArmor(caster.GetItem("holyRobeItem"));
- gameState.heroes[3].SetShield(caster.GetItem("zircoGlovesItem"));
- gameState.heroes[3].SetHelmet(caster.GetItem("holyCapItem"));
- gameState.heroes[3].SetRing(caster.GetItem("rocketRingItem"));
- gameState.heroes[3].SetJewel(caster.GetItem("krakenRockItem"));
+// gameState.heroes[3].SetEquipment(Hero::EQUIP_WEAPON, caster.GetItem("lizardBlowItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_ARMOR, caster.GetItem("holyRobeItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_SHIELD, caster.GetItem("zircoGlovesItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_HELMET, caster.GetItem("holyCapItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_RING, caster.GetItem("rocketRingItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("krakenRockItem"));
gameState.heroes[0].MapEntity().Position() = Vector<float>(64, 128);
graphics::Sprite menuFontSprite(IMG_Load("test-data/menu-font.png"), 16, 16);
graphics::Font menuFont(&menuFontSprite, 0, -2);
+ graphics::Sprite menuInactiveFontSprite(IMG_Load("test-data/menu-font-inactive.png"), 16, 16);
+ graphics::Font menuInactiveFont(&menuInactiveFontSprite, 0, -2);
menuResources.normalFont = &menuFont;
graphics::Sprite menuCursor(IMG_Load("test-data/menu-cursor.png"), 32, 16);
+ menuResources.menuCursor = &menuCursor;
+ graphics::Sprite menuActiveCursor(IMG_Load("test-data/menu-cursor-active.png"), 32, 18);
+ menuResources.menuActiveCursor = &menuActiveCursor;
graphics::MenuProperties mainMenuProperties;
mainMenuProperties.cols = 2;
menuResources.gutLabel = "GUT";
menuResources.mgrLabel = "MGR";
+ menuResources.ipLabel = "IP";
+ menuResources.experienceLabel = "NOW EXP";
+ menuResources.nextLevelLabel = "NEXT LEVEL";
+
+ graphics::MenuProperties statusMenuProperties;
+ statusMenuProperties.cols = 2;
+ statusMenuProperties.rows = 1;
+ statusMenuProperties.charsPerEntry = 6;
+ statusMenuProperties.rowGap = 0;
+ statusMenuProperties.colGap = 16;
+ statusMenuProperties.cursor = &menuCursor;
+ statusMenuProperties.font = &menuFont;
+ statusMenuProperties.wrapX = true;
+ menuResources.statusMenuProperties = &statusMenuProperties;
+
+ menuResources.nextLabel = "NEXT";
+ menuResources.returnLabel = "RETURN";
+
+ graphics::MenuProperties itemMenuProperties;
+ itemMenuProperties.cols = 3;
+ itemMenuProperties.rows = 1;
+ itemMenuProperties.charsPerEntry = 5;
+ itemMenuProperties.rowGap = 8;
+ itemMenuProperties.colGap = 16;
+ itemMenuProperties.cursor = &menuCursor;
+ itemMenuProperties.selectedCursor = &menuActiveCursor;
+ itemMenuProperties.font = &menuFont;
+ itemMenuProperties.wrapX = true;
+ itemMenuProperties.wrapY = true;
+ menuResources.itemMenuProperties = &itemMenuProperties;
+ menuResources.itemMenuUseText = "USE";
+ menuResources.itemMenuSortText = "SORT";
+ menuResources.itemMenuDropText = "DROP";
+
+ graphics::MenuProperties inventoryMenuProperties;
+ inventoryMenuProperties.cols = 1;
+ inventoryMenuProperties.rows = 6;
+ inventoryMenuProperties.charsPerEntry = 13;
+ inventoryMenuProperties.rowGap = 8;
+ inventoryMenuProperties.cursor = &menuCursor;
+ inventoryMenuProperties.selectedCursor = &menuActiveCursor;
+ inventoryMenuProperties.font = &menuFont;
+ inventoryMenuProperties.disabledFont = &menuInactiveFont;
+ inventoryMenuProperties.iconSpace = 16;
+ inventoryMenuProperties.charsPerNumber = 2;
+ inventoryMenuProperties.delimiter = ':';
+ menuResources.inventoryMenuProperties = &inventoryMenuProperties;
+
+ graphics::MenuProperties spellMenuProperties;
+ spellMenuProperties.cols = 2;
+ spellMenuProperties.rows = 6;
+ spellMenuProperties.charsPerEntry = 8;
+ spellMenuProperties.rowGap = 8;
+ spellMenuProperties.colGap = 48;
+ spellMenuProperties.cursor = &menuCursor;
+ spellMenuProperties.selectedCursor = &menuActiveCursor;
+ spellMenuProperties.font = &menuFont;
+ spellMenuProperties.disabledFont = &menuInactiveFont;
+ spellMenuProperties.iconSpace = 0;
+ spellMenuProperties.charsPerNumber = 2;
+ spellMenuProperties.delimiter = ':';
+ menuResources.spellMenuProperties = &spellMenuProperties;
+
+ graphics::MenuProperties equipmentActionMenuProperties;
+ equipmentActionMenuProperties.cols = 1;
+ equipmentActionMenuProperties.rows = 5;
+ equipmentActionMenuProperties.charsPerEntry = 10;
+ equipmentActionMenuProperties.rowGap = 8;
+ equipmentActionMenuProperties.cursor = &menuCursor;
+ equipmentActionMenuProperties.selectedCursor = &menuActiveCursor;
+ equipmentActionMenuProperties.font = &menuFont;
+ equipmentActionMenuProperties.iconSpace = 0;
+ menuResources.equipmentActionMenuProperties = &equipmentActionMenuProperties;
+
+ graphics::MenuProperties equipmentMenuProperties;
+ equipmentMenuProperties.cols = 1;
+ equipmentMenuProperties.rows = 6;
+ equipmentMenuProperties.charsPerEntry = 12;
+ equipmentMenuProperties.rowGap = 16;
+ equipmentMenuProperties.cursor = &menuCursor;
+ equipmentMenuProperties.selectedCursor = &menuActiveCursor;
+ equipmentMenuProperties.font = menuResources.statusFont;
+ equipmentMenuProperties.iconSpace = 16;
+ equipmentMenuProperties.wrapY = true;
+ menuResources.equipmentMenuProperties = &equipmentMenuProperties;
+
+ menuResources.equipMenuEquipLabel = "EQUIP";
+ menuResources.equipMenuStrongestLabel = "STRONGEST";
+ menuResources.equipMenuRemoveLabel = "REMOVE";
+ menuResources.equipMenuRemoveAllLabel = "REMOVE ALL";
+ menuResources.equipMenuDropLabel = "DROP";
+
InitScreen screen(width, height);
app::State *state(0);