X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmain.cpp;h=53301ce5f5c785fa7c97d6d49f047936fa35e91c;hb=2255d436a0c2acc10b015827366a72b2ece86094;hp=93727fda784fd4da6a4914d131b81c34db0c2959;hpb=243cb7d922fe888be8d18241de138ad5949de430;p=l2e.git diff --git a/src/main.cpp b/src/main.cpp index 93727fd..53301ce 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,14 +1,8 @@ -/* - * main.cpp - * - * Created on: Aug 1, 2012 - * Author: holy - */ - #include "app/Application.h" #include "app/Arguments.h" #include "app/Input.h" #include "battle/BattleState.h" +#include "battle/Capsule.h" #include "battle/Hero.h" #include "battle/Monster.h" #include "battle/PartyLayout.h" @@ -60,10 +54,12 @@ using app::Application; using app::Arguments; using app::Input; using battle::BattleState; +using battle::Capsule; using battle::Monster; using battle::PartyLayout; using common::GameConfig; using common::GameState; +using common::Hero; using common::Spell; using geometry::Vector; using graphics::Texture; @@ -120,6 +116,7 @@ int main(int argc, char **argv) { graphics::MenuProperties::CreateTypeDescription(); graphics::SimpleAnimation::CreateTypeDescription(); graphics::Sprite::CreateTypeDescription(); + graphics::Texture::CreateTypeDescription(); map::Area::CreateTypeDescription(); map::Entity::CreateTypeDescription(); @@ -127,6 +124,8 @@ int main(int argc, char **argv) { map::Tile::CreateTypeDescription(); map::Trigger::CreateTypeDescription(); + menu::Resources::CreateTypeDescription(); + Arguments args; args.Read(argc, argv); @@ -197,6 +196,7 @@ int main(int argc, char **argv) { gameConfig.state = &gameState; gameConfig.heroesLayout = caster.GetPartyLayout("heroesLayout"); gameConfig.battleResources = caster.GetBattleResources("battleResources"); + gameConfig.menuResources = caster.GetMenuResources("menuResources"); // temporary test data SDL_Surface *bg(IMG_Load("test-data/battle-bg.png")); @@ -222,41 +222,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); @@ -272,61 +279,28 @@ int main(int argc, char **argv) { gameState.heroes[3].MapEntity().SetFlags(Entity::FLAG_NONBLOCKING); gameState.heroes[2].MapEntity().AddFollower(&gameState.heroes[3].MapEntity()); - menu::Resources menuResources; - gameConfig.menuResources = &menuResources; - - Texture menubg; - menubg.SetSurface(IMG_Load("test-data/menubg.png")); - menubg.SetSize(Vector(64, 64)); - menuResources.menubg = &menubg; - - menuResources.statusFont = gameConfig.battleResources->normalFont; - - graphics::Sprite statusLabels(IMG_Load("test-data/status-labels.png"), 32, 16); - menuResources.statusLabels = &statusLabels; - - graphics::Frame statusFrame(IMG_Load("test-data/status-frame.png"), 32, 32, 32, 32); - menuResources.statusFrame = &statusFrame; - - graphics::Sprite menuFontSprite(IMG_Load("test-data/menu-font.png"), 16, 16); - graphics::Font menuFont(&menuFontSprite, 0, -2); - - menuResources.normalFont = &menuFont; - - graphics::Sprite menuCursor(IMG_Load("test-data/menu-cursor.png"), 32, 16); - - graphics::MenuProperties mainMenuProperties; - mainMenuProperties.cols = 2; - mainMenuProperties.rows = 4; - mainMenuProperties.charsPerEntry = 8; - mainMenuProperties.rowGap = 8; - mainMenuProperties.colGap = 32; - mainMenuProperties.cursor = &menuCursor; - mainMenuProperties.font = &menuFont; - mainMenuProperties.wrapX = true; - mainMenuProperties.wrapY = true; - menuResources.mainMenuProperties = &mainMenuProperties; - - menuResources.mainMenuItemText = "ITEM"; - menuResources.mainMenuSpellText = "SPELL"; - menuResources.mainMenuCapsuleText = "CAPSULE"; - menuResources.mainMenuEquipmentText = "EQUIP"; - menuResources.mainMenuStatusText = "STATUS"; - menuResources.mainMenuChangeText = "CHANGE"; - menuResources.mainMenuConfigText = "CONFIG"; - menuResources.mainMenuScenarioText = "SCENARIO"; - - menuResources.mainMenuTimeText = "TIME"; - menuResources.mainMenuGoldText = "GOLD"; - - graphics::Sprite heroCursor(IMG_Load("test-data/hero-cursor.png"), 64, 16); - menuResources.heroCursor = &heroCursor; - menuResources.heroCursorBlinkTime = 532; - - menuResources.noEquipmentText = "No equip"; - - graphics::Sprite shoulderNav(IMG_Load("test-data/shoulder-nav.png"), 160, 16); - menuResources.shoulderNav = &shoulderNav; + graphics::Sprite flashSprite(IMG_Load("test-data/flash.png"), 96, 96); + graphics::ComplexAnimation flashAttackAnimation(&flashSprite, 132); + graphics::ComplexAnimation::FrameProp flashAttackFrames[4]; + flashAttackFrames[0] = graphics::ComplexAnimation::FrameProp(0, 1, Vector(0, -16)); + flashAttackFrames[1] = graphics::ComplexAnimation::FrameProp(0, 0, Vector(0, -16)); + flashAttackFrames[2] = graphics::ComplexAnimation::FrameProp(0, 1, Vector(0, -16)); + flashAttackFrames[3] = graphics::ComplexAnimation::FrameProp(0, 0, Vector(0, -16)); + flashAttackAnimation.SetFrames(flashAttackFrames, 4); + Capsule capsule; + capsule.SetName("Flash"); + capsule.SetHealth(5, 5); + capsule.SetLevel(1); + capsule.GetStats().SetAttack(12); + capsule.GetStats().SetDefense(18); + capsule.GetStats().SetStrength(2); + capsule.GetStats().SetAgility(11); + capsule.GetStats().SetIntelligence(16); + capsule.GetStats().SetGut(23); + capsule.GetStats().SetMagicResistance(11); + capsule.SetBattleSprite(&flashSprite); + capsule.SetAttackAnimation(&flashAttackAnimation); + capsule.SetMeleeAnimation(gameState.heroes[0].MeleeAnimation()); InitScreen screen(width, height); @@ -338,6 +312,7 @@ int main(int argc, char **argv) { battleState->AddMonster(monster); battleState->AddMonster(monster); battleState->AddMonster(monster); + battleState->SetCapsule(capsule); battleState->AddHero(gameState.heroes[0]); battleState->AddHero(gameState.heroes[1]); battleState->AddHero(gameState.heroes[2]);