const int width = 800;
const int height = 480;
- const int framerate = 33;
-
// std::srand(std::time(0));
try {
Hero guy(*intp.GetHero("guy"));
Hero dekar(*intp.GetHero("dekar"));
- battle::Resources battleRes;
-
- battleRes.swapCursor = intp.GetSprite("swapCursor");
- battleRes.attackIcons = intp.GetSprite("attackIcons");
- battleRes.attackChoiceIcons = intp.GetSprite("attackChoiceIcons");
- battleRes.moveIcons = intp.GetSprite("moveIcons");
- battleRes.titleFrame = intp.GetFrame("titleFrame");
- battleRes.titleFont = intp.GetFont("largeFont");
- battleRes.numberAnimationPrototype = intp.GetAnimation("numberAnimationPrototype");
- battleRes.bigNumberSprite = intp.GetSprite("bigNumbers");
- battleRes.greenNumberSprite = intp.GetSprite("bigGreenNumbers");
-
- battleRes.heroTagLabels = intp.GetSprite("heroTagLabels");
- battleRes.levelLabelCol = 0;
- battleRes.levelLabelRow = 0;
- battleRes.healthLabelCol = 0;
- battleRes.healthLabelRow = 1;
- battleRes.manaLabelCol = 0;
- battleRes.manaLabelRow = 2;
- battleRes.moveLabelCol = 0;
- battleRes.moveLabelRow = 3;
- battleRes.ikariLabelCol = 0;
- battleRes.ikariLabelRow = 4;
-
- battleRes.heroTagFont = intp.GetFont("heroTagFont");
- battleRes.heroTagFrame = intp.GetFrame("heroTagFrame");
- battleRes.activeHeroTagFrame = intp.GetFrame("activeHeroTagFrame");
- battleRes.smallHeroTagFrame = intp.GetFrame("smallHeroTagFrame");
- battleRes.lastSmallHeroTagFrame = intp.GetFrame("lastSmallHeroTagFrame");
- battleRes.heroesBgColor = SDL_MapRGB(screen.Screen()->format, 0x18, 0x28, 0x31);
-
- battleRes.healthGauge = intp.GetGauge("healthGauge");
- battleRes.manaGauge = intp.GetGauge("manaGauge");
- battleRes.ikariGauge = intp.GetGauge("ikariGauge");
-
- battleRes.selectFrame = intp.GetFrame("selectFrame");
- battleRes.normalFont = intp.GetFont("normalFont");
- battleRes.disabledFont = intp.GetFont("disabledFont");
- battleRes.menuCursor = intp.GetSprite("handCursor");
-
- battleRes.weaponTargetCursor = intp.GetSprite("weaponTargetCursor");
- battleRes.magicTargetCursor = intp.GetSprite("magicTargetCursor");
- battleRes.itemTargetCursor = intp.GetSprite("itemTargetCursor");
+ battle::Resources *battleRes(intp.GetBattleResources("battleResources"));
maxim.AddSpell(intp.GetSpell("resetSpell"));
Spell *strongSpell(intp.GetSpell("strongSpell"));
maxim.AddSpell(valorSpell);
selan.AddSpell(valorSpell);
- battleRes.spellMenuHeadline = "Please choose a spell.";
- battleRes.spellMenuPrototype = Menu<const Spell *>(intp.GetFont("normalFont"), intp.GetFont("disabledFont"), intp.GetSprite("handCursor"), 9, 6, 8, 0, 2, 32, 2, ':');
-
- SDL_Surface *itemIcons(IMG_Load("test-data/item-icons.png"));
- Sprite potionIcon(itemIcons, 16, 16);
- Sprite ballIcon(itemIcons, 16, 16, 0, 16);
- Sprite crankIcon(itemIcons, 16, 16, 0, 32);
- Sprite spearIcon(itemIcons, 16, 16, 0, 48);
- Sprite swordIcon(itemIcons, 16, 16, 0, 64);
- Sprite axIcon(itemIcons, 16, 16, 0, 80);
- Sprite rodIcon(itemIcons, 16, 16, 0, 96);
- Sprite armorIcon(itemIcons, 16, 16, 0, 112);
- Sprite shieldIcon(itemIcons, 16, 16, 0, 128);
- Sprite helmetIcon(itemIcons, 16, 16, 0, 144);
- Sprite ringIcon(itemIcons, 16, 16, 0, 160);
- Sprite jewelIcon(itemIcons, 16, 16, 0, 176);
-
- battleRes.weaponMenuIcon = &swordIcon;
- battleRes.armorMenuIcon = &armorIcon;
- battleRes.shieldMenuIcon = &shieldIcon;
- battleRes.helmetMenuIcon = &helmetIcon;
- battleRes.ringMenuIcon = &ringIcon;
- battleRes.jewelMenuIcon = &jewelIcon;
-
Inventory inventory;
- Item antidote;
- antidote.SetName("Antidote");
- antidote.SetMenuIcon(&potionIcon);
- antidote.SetUsableInBattle();
- antidote.GetTargetingMode().TargetSingleAlly();
- inventory.Add(&antidote, 9);
- Item magicJar;
- magicJar.SetName("Magic jar");
- magicJar.SetMenuIcon(&potionIcon);
- magicJar.SetUsableInBattle();
- magicJar.GetTargetingMode().TargetSingleAlly();
- inventory.Add(&magicJar, 4);
- Item hiPotion;
- hiPotion.SetName("Hi-Potion");
- hiPotion.SetMenuIcon(&potionIcon);
- hiPotion.SetUsableInBattle();
- hiPotion.GetTargetingMode().TargetSingleAlly();
- inventory.Add(&hiPotion, 4);
- Item powerPotion;
- powerPotion.SetName("Power potion");
- powerPotion.SetMenuIcon(&potionIcon);
- inventory.Add(&powerPotion, 4);
- Item escape;
- escape.SetName("Escape");
- inventory.Add(&escape, 2);
- Item sleepBall;
- sleepBall.SetName("Sleep ball");
- sleepBall.SetMenuIcon(&ballIcon);
- sleepBall.SetUsableInBattle();
- sleepBall.GetTargetingMode().TargetSingleEnemy();
- inventory.Add(&sleepBall, 1);
- Item multiBall;
- multiBall.SetName("Multi-ball!");
- multiBall.SetMenuIcon(&ballIcon);
- multiBall.SetUsableInBattle();
- multiBall.GetTargetingMode().TargetMultipleEnemies();
- inventory.Add(&multiBall, 1);
- Item figgoru;
- figgoru.SetName("Figgoru");
- figgoru.SetMenuIcon(&crankIcon);
- figgoru.GetTargetingMode().TargetAllEnemies();
- inventory.Add(&figgoru, 1);
- battleRes.inventory = &inventory;
-
- battleRes.itemMenuHeadline = "Please choose an item.";
- battleRes.itemMenuPrototype = Menu<const common::Item *>(intp.GetFont("normalFont"), intp.GetFont("disabledFont"), intp.GetSprite("handCursor"), 15, 6, 8, 16, 1, 32, 2, ':');
-
- SDL_Surface *swordAttackImg(IMG_Load("test-data/attack-sword.png"));
- Sprite swordAttackSprite(swordAttackImg, 96, 96);
- SimpleAnimation swordAttackAnimation(&swordAttackSprite, 2 * framerate, 4);
-
- Item zircoSword;
- zircoSword.SetName("Zirco sword");
- zircoSword.SetMenuIcon(&swordIcon);
- zircoSword.GetTargetingMode().TargetSingleEnemy();
- Ikari firestorm;
- firestorm.SetName("Firestorm");
- firestorm.SetCost(224);
- firestorm.GetTargetingMode().TargetAllEnemies();
- firestorm.SetPhysical();
- zircoSword.SetIkari(&firestorm);
- zircoSword.SetAttackAnimation(&swordAttackAnimation);
- maxim.SetWeapon(&zircoSword);
- Item zirconArmor;
- zirconArmor.SetName("Zircon armor");
- zirconArmor.SetMenuIcon(&armorIcon);
- Ikari magicCure;
- magicCure.SetName("Magic cure");
- magicCure.SetCost(128);
- magicCure.GetTargetingMode().TargetSingleAlly();
- magicCure.SetMagical();
- zirconArmor.SetIkari(&magicCure);
- maxim.SetArmor(&zirconArmor);
- Item holyShield;
- holyShield.SetName("Holy shield");
- holyShield.SetMenuIcon(&shieldIcon);
- Ikari lightGuard;
- lightGuard.SetName("Light guard");
- lightGuard.SetCost(128);
- lightGuard.GetTargetingMode().TargetAllAllies(); // actually only targets self
- lightGuard.SetMagical();
- holyShield.SetIkari(&lightGuard);
- maxim.SetShield(&holyShield);
- Item legendHelm;
- legendHelm.SetName("Legend helm");
- legendHelm.SetMenuIcon(&helmetIcon);
- Ikari boomerang;
- boomerang.SetName("Boomerang");
- boomerang.SetCost(164);
- boomerang.GetTargetingMode().TargetAllAllies(); // actually only targets self
- boomerang.SetMagical();
- legendHelm.SetIkari(&boomerang);
- maxim.SetHelmet(&legendHelm);
- Item sProRing;
- sProRing.SetName("S-pro ring");
- sProRing.SetMenuIcon(&ringIcon);
- Ikari courage;
- courage.SetName("Courage");
- courage.SetCost(64);
- courage.GetTargetingMode().TargetMultipleAllies();
- courage.SetMagical();
- sProRing.SetIkari(&courage);
- maxim.SetRing(&sProRing);
- Item evilJewel;
- evilJewel.SetName("Evil jewel");
- evilJewel.SetMenuIcon(&jewelIcon);
- Ikari gloomy;
- gloomy.SetName("Gloomy");
- gloomy.SetCost(164);
- gloomy.GetTargetingMode().TargetAllEnemies();
- gloomy.SetMagical();
- evilJewel.SetIkari(&gloomy);
- maxim.SetJewel(&evilJewel);
-
- Item zircoWhip;
- zircoWhip.SetName("Zirco whip");
- zircoWhip.SetMenuIcon(&rodIcon);
- zircoWhip.GetTargetingMode().TargetSingleEnemy();
- Ikari thundershriek;
- thundershriek.SetName("Thundershriek");
- thundershriek.SetCost(224);
- thundershriek.GetTargetingMode().TargetAllEnemies();
- thundershriek.SetPhysical();
- zircoWhip.SetIkari(&thundershriek);
-// selan.SetWeapon(&zircoWhip);
- Item zirconPlate;
- zirconPlate.SetName("Zircon plate");
- zirconPlate.SetMenuIcon(&armorIcon);
- Ikari suddenCure;
- suddenCure.SetName("Sudden cure");
- suddenCure.SetCost(96);
- suddenCure.GetTargetingMode().TargetAllAllies();
- suddenCure.SetMagical();
- zirconPlate.SetIkari(&suddenCure);
- selan.SetArmor(&zirconPlate);
- Item zircoGloves;
- zircoGloves.SetName("Zirco gloves");
- zircoGloves.SetMenuIcon(&shieldIcon);
- Ikari forcefield;
- forcefield.SetName("Forcefield");
- forcefield.SetCost(64);
- forcefield.GetTargetingMode().TargetAllAllies();
- forcefield.SetMagical();
- zircoGloves.SetIkari(&forcefield);
- selan.SetShield(&zircoGloves);
- Item holyCap;
- holyCap.SetName("Holy cap");
- holyCap.SetMenuIcon(&helmetIcon);
- Ikari vulnerable;
- vulnerable.SetName("Vulnerable");
- vulnerable.SetCost(196);
- vulnerable.GetTargetingMode().TargetAllEnemies();
- vulnerable.SetPhysical();
- holyCap.SetIkari(&vulnerable);
- selan.SetHelmet(&holyCap);
- Item ghostRing;
- ghostRing.SetName("Ghost ring");
- ghostRing.SetMenuIcon(&ringIcon);
- Ikari destroy;
- destroy.SetName("Destroy");
- destroy.SetCost(128);
- destroy.GetTargetingMode().TargetMultipleEnemies();
- destroy.SetMagical();
- ghostRing.SetIkari(&destroy);
- selan.SetRing(&ghostRing);
- Item eagleRock;
- eagleRock.SetName("Eagle rock");
- eagleRock.SetMenuIcon(&jewelIcon);
- Ikari dive;
- dive.SetName("Dive");
- dive.SetCost(128);
- dive.GetTargetingMode().TargetSingleEnemy();
- dive.SetPhysical();
- eagleRock.SetIkari(&dive);
- selan.SetJewel(&eagleRock);
-
- Item zircoAx;
- zircoAx.SetName("Zirco ax");
- zircoAx.SetMenuIcon(&axIcon);
- zircoAx.GetTargetingMode().TargetSingleEnemy();
- Ikari torrent;
- torrent.SetName("Torrent");
- torrent.SetCost(224);
- torrent.GetTargetingMode().TargetAllEnemies();
- torrent.SetPhysical();
- zircoAx.SetIkari(&torrent);
-// guy.SetWeapon(&zircoAx);
- guy.SetArmor(&zirconArmor);
- Item megaShield;
- megaShield.SetName("Mega shield");
- megaShield.SetMenuIcon(&shieldIcon);
- Ikari ironBarrier;
- ironBarrier.SetName("Iron barrier");
- ironBarrier.SetCost(255);
- ironBarrier.GetTargetingMode().TargetAllAllies(); // actually only targets self
- ironBarrier.SetMagical();
- megaShield.SetIkari(&ironBarrier);
- guy.SetShield(&megaShield);
- Item zircoHelmet;
- zircoHelmet.SetName("Zirco helmet");
- zircoHelmet.SetMenuIcon(&helmetIcon);
- Ikari slow;
- slow.SetName("Slow");
- slow.SetCost(196);
- slow.GetTargetingMode().TargetAllEnemies();
- slow.SetPhysical();
- zircoHelmet.SetIkari(&slow);
- guy.SetHelmet(&zircoHelmet);
- Item powerRing;
- powerRing.SetName("Power ring");
- powerRing.SetMenuIcon(&ringIcon);
- Ikari trick;
- trick.SetName("Trick");
- trick.SetCost(32);
- trick.GetTargetingMode().TargetAllEnemies();
- trick.SetMagical();
- zircoHelmet.SetIkari(&trick);
- guy.SetRing(&powerRing);
- guy.SetJewel(&evilJewel);
+ inventory.Add(intp.GetItem("antidoteItem"), 9);
+ inventory.Add(intp.GetItem("magicJarItem"), 4);
+ inventory.Add(intp.GetItem("hiPotionItem"), 4);
+ inventory.Add(intp.GetItem("powerPotionItem"), 4);
+ inventory.Add(intp.GetItem("escapeItem"), 2);
+ inventory.Add(intp.GetItem("sleepBallItem"), 1);
+ battleRes->inventory = &inventory;
+
+ maxim.SetWeapon(intp.GetItem("zircoSwordItem"));
+ maxim.SetArmor(intp.GetItem("zirconArmorItem"));
+ maxim.SetShield(intp.GetItem("holyShieldItem"));
+ maxim.SetHelmet(intp.GetItem("legendHelmItem"));
+ maxim.SetRing(intp.GetItem("sProRingItem"));
+ maxim.SetJewel(intp.GetItem("evilJewelItem"));
+
+// selan.SetWeapon(intp.GetItem("zircoWhipItem"));
+ selan.SetArmor(intp.GetItem("zirconPlateItem"));
+ selan.SetShield(intp.GetItem("zircoGlovesItem"));
+ selan.SetHelmet(intp.GetItem("holyCapItem"));
+ selan.SetRing(intp.GetItem("ghostRingItem"));
+ selan.SetJewel(intp.GetItem("eagleRockItem"));
+
+// guy.SetWeapon(intp.GetItem("zircoAxItem"));
+ guy.SetArmor(intp.GetItem("zirconArmorItem"));
+ guy.SetShield(intp.GetItem("megaShieldItem"));
+ guy.SetHelmet(intp.GetItem("zircoHelmetItem"));
+ guy.SetRing(intp.GetItem("powerRingItem"));
+ guy.SetJewel(intp.GetItem("evilJewelItem"));
// NOTE: this is actually Artea equipment
- Item lizardBlow;
- lizardBlow.SetName("Lizard blow");
- lizardBlow.SetMenuIcon(&swordIcon);
- lizardBlow.GetTargetingMode().TargetSingleEnemy();
- Ikari dragonRush;
- dragonRush.SetName("Dragon rush");
- dragonRush.SetCost(164);
- dragonRush.GetTargetingMode().TargetSingleEnemy();
- dragonRush.SetPhysical();
- lizardBlow.SetIkari(&dragonRush);
-// dekar.SetWeapon(&lizardBlow);
- Item holyRobe;
- holyRobe.SetName("Holy robe");
- holyRobe.SetMenuIcon(&armorIcon);
- Ikari crisisCure;
- crisisCure.SetName("Crisis cure");
- crisisCure.SetCost(164);
- crisisCure.GetTargetingMode().TargetAllAllies();
- crisisCure.SetMagical();
- holyRobe.SetIkari(&crisisCure);
- dekar.SetArmor(&holyRobe);
- dekar.SetShield(&zircoGloves);
- dekar.SetHelmet(&holyCap);
- Item rocketRing;
- rocketRing.SetName("Rocket ring");
- rocketRing.SetMenuIcon(&ringIcon);
- Ikari fake;
- fake.SetName("Fake");
- fake.SetCost(32);
- fake.GetTargetingMode().TargetSingleAlly();
- fake.SetMagical();
- rocketRing.SetIkari(&fake);
- dekar.SetRing(&rocketRing);
- Item krakenRock;
- krakenRock.SetName("Kraken rock");
- krakenRock.SetMenuIcon(&jewelIcon);
- Ikari tenLegger;
- tenLegger.SetName("Ten-legger");
- tenLegger.SetCost(164);
- tenLegger.GetTargetingMode().TargetAllEnemies();
- tenLegger.SetPhysical();
- rocketRing.SetIkari(&tenLegger);
- dekar.SetJewel(&krakenRock);
-
- battleRes.ikariMenuHeadline = "Please choose equipment.";
- battleRes.noEquipmentText = "No equip";
- battleRes.ikariMenuPrototype = Menu<const Item *>(intp.GetFont("normalFont"), intp.GetFont("disabledFont"), intp.GetSprite("handCursor"), 12, 6, intp.GetFont("normalFont")->CharHeight() / 2, intp.GetFont("normalFont")->CharWidth(), 1, intp.GetFont("normalFont")->CharWidth() * 2, 0, ':', 12, intp.GetFont("normalFont")->CharWidth());
-
- battleRes.escapeText = "Escapes.";
-
- BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, &battleRes));
+// dekar.SetWeapon(intp.GetItem("lizardBlowItem"));
+ dekar.SetArmor(intp.GetItem("holyRobeItem"));
+ dekar.SetShield(intp.GetItem("zircoGlovesItem"));
+ dekar.SetHelmet(intp.GetItem("holyCapItem"));
+ dekar.SetRing(intp.GetItem("rocketRingItem"));
+ dekar.SetJewel(intp.GetItem("krakenRockItem"));
+
+ BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, battleRes));
battleState->AddMonster(monster);
battleState->AddMonster(monster);
battleState->AddMonster(monster);