X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmain.cpp;h=22a354e6785b24621d98783496104f4eff440621;hb=a47b25a3a6631c8136fec6585a92b8756c68d243;hp=5ea2a03f706e64006a1e5f3485a4349c1dc509f0;hpb=c1de2db3755c2cffd790c58bbd92e7fc993afcb5;p=l2e.git diff --git a/src/main.cpp b/src/main.cpp index 5ea2a03..22a354e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -64,6 +64,7 @@ using battle::Monster; using battle::PartyLayout; using common::GameConfig; using common::GameState; +using common::Hero; using common::Spell; using geometry::Vector; using graphics::Texture; @@ -222,41 +223,48 @@ int main(int argc, char **argv) { 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(64, 128); @@ -290,10 +298,15 @@ int main(int argc, char **argv) { 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; @@ -361,6 +374,7 @@ int main(int argc, char **argv) { itemMenuProperties.rowGap = 8; itemMenuProperties.colGap = 16; itemMenuProperties.cursor = &menuCursor; + itemMenuProperties.selectedCursor = &menuActiveCursor; itemMenuProperties.font = &menuFont; itemMenuProperties.wrapX = true; itemMenuProperties.wrapY = true; @@ -375,14 +389,58 @@ int main(int argc, char **argv) { inventoryMenuProperties.charsPerEntry = 13; inventoryMenuProperties.rowGap = 8; inventoryMenuProperties.cursor = &menuCursor; + inventoryMenuProperties.selectedCursor = &menuActiveCursor; inventoryMenuProperties.font = &menuFont; - // TODO: disabled font - inventoryMenuProperties.disabledFont = &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);