]> git.localhorst.tv Git - l2e.git/blobdiff - src/main.cpp
added small hero tags (used in battle animation and run state)
[l2e.git] / src / main.cpp
index 6baf82770e762318ffc27b34a126f0fd056b77a4..4b4ca58f1f4475076d1b4d3186234b9247d53e72 100644 (file)
@@ -73,14 +73,15 @@ int main(int argc, char **argv) {
                monstersLayout.AddPosition(Point<Uint8>(168, 104));
                monstersLayout.AddPosition(Point<Uint8>(208, 104));
                PartyLayout heroesLayout;
-               heroesLayout.AddPosition(Point<Uint8>(27, 219));
-               heroesLayout.AddPosition(Point<Uint8>(104, 227));
-               heroesLayout.AddPosition(Point<Uint8>(66, 238));
-               heroesLayout.AddPosition(Point<Uint8>(143, 246));
+               heroesLayout.AddPosition(Point<Uint8>(48, 152));
+               heroesLayout.AddPosition(Point<Uint8>(128, 152));
+               heroesLayout.AddPosition(Point<Uint8>(80, 168));
+               heroesLayout.AddPosition(Point<Uint8>(160, 168));
 
                SDL_Surface *monsterImg(IMG_Load("test-data/monster.png"));
                Sprite dummySprite(monsterImg, 64, 64);
                Monster monster;
+               monster.SetName("Monster");
                monster.SetSprite(&dummySprite);
                monster.SetMaxHealth(10);
                monster.SetHealth(10);
@@ -135,6 +136,9 @@ int main(int argc, char **argv) {
 
                battle::Resources battleRes;
 
+               SDL_Surface *swapCursorImg(IMG_Load("test-data/swap-cursor.png"));
+               Sprite swapCursorSprite(swapCursorImg, 32, 32);
+               battleRes.swapCursor = &swapCursorSprite;
                SDL_Surface *attackIconsImg(IMG_Load("test-data/attack-type-icons.png"));
                Sprite attackIconsSprite(attackIconsImg, 32, 32);
                battleRes.attackIcons = &attackIconsSprite;
@@ -144,9 +148,38 @@ int main(int argc, char **argv) {
                SDL_Surface *moveIconsImg(IMG_Load("test-data/move-icons.png"));
                Sprite moveIconsSprite(moveIconsImg, 32, 32);
                battleRes.moveIcons = &moveIconsSprite;
+
+               SDL_Surface *titleFrameImg(IMG_Load("test-data/title-frame.png"));
+               Frame titleFrame(titleFrameImg, 16, 16);
+               battleRes.titleFrame = &titleFrame;
+
+               SDL_Surface *largeFontImg(IMG_Load("test-data/large-font.png"));
+               Sprite largeFontSprite(largeFontImg, 16, 32);
+               Font largeFont(&largeFontSprite);
+               largeFont.MapRange('A', 'M', 0, 1);
+               largeFont.MapRange('N', 'Z', 0, 2);
+               largeFont.MapRange('a', 'm', 0, 3);
+               largeFont.MapRange('n', 'z', 0, 4);
+               largeFont.MapChar(':', 10, 0);
+               largeFont.MapChar('!', 11, 0);
+               largeFont.MapChar('?', 12, 0);
+               // TODO: add '.' and '-' characters
+               battleRes.titleFont = &largeFont;
+
                SDL_Surface *heroTagImg(IMG_Load("test-data/hero-tag-sprites.png"));
                Sprite heroTagSprite(heroTagImg, 32, 16);
                battleRes.heroTagLabels = &heroTagSprite;
+               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;
+
                SDL_Surface *numbersImg(IMG_Load("test-data/numbers.png"));
                Sprite numbersSprite(numbersImg, 16, 16);
                Font heroTagFont(&numbersSprite);
@@ -156,6 +189,12 @@ int main(int argc, char **argv) {
                battleRes.heroTagFrame = &heroTagFrame;
                Frame activeHeroTagFrame(tagFramesImg, 16, 16);
                battleRes.activeHeroTagFrame = &activeHeroTagFrame;
+               SDL_Surface *smallTagFrameImg(IMG_Load("test-data/small-tag-frame.png"));
+               Frame smallTagFrame(smallTagFrameImg, 8, 16);
+               battleRes.smallHeroTagFrame = &smallTagFrame;
+               Frame lastSmallTagFrame(smallTagFrameImg, 8, 16, 1, 1, 0, 33);
+               battleRes.lastSmallHeroTagFrame = &lastSmallTagFrame;
+               battleRes.heroesBgColor = SDL_MapRGB(screen.Screen()->format, 0x18, 0x28, 0x31);
 
                SDL_Surface *gauges(IMG_Load("test-data/gauges.png"));
                Gauge healthGauge(gauges, 0, 16, 0, 0, 16, 6, 1, 6);
@@ -331,6 +370,7 @@ int main(int argc, char **argv) {
                firestorm.SetName("Firestorm");
                firestorm.SetCost(224);
                firestorm.GetTargetingMode().TargetAllEnemies();
+               firestorm.SetPhysical();
                zircoSword.SetIkari(&firestorm);
                maxim.SetWeapon(&zircoSword);
                Item zirconArmor;
@@ -340,6 +380,7 @@ int main(int argc, char **argv) {
                magicCure.SetName("Magic cure");
                magicCure.SetCost(128);
                magicCure.GetTargetingMode().TargetSingleAlly();
+               magicCure.SetMagical();
                zirconArmor.SetIkari(&magicCure);
                maxim.SetArmor(&zirconArmor);
                Item holyShield;
@@ -349,6 +390,7 @@ int main(int argc, char **argv) {
                lightGuard.SetName("Light guard");
                lightGuard.SetCost(128);
                lightGuard.GetTargetingMode().TargetAllAllies(); // FIXME: actually only targets self
+               lightGuard.SetMagical();
                holyShield.SetIkari(&lightGuard);
                maxim.SetShield(&holyShield);
                Item legendHelm;
@@ -358,6 +400,7 @@ int main(int argc, char **argv) {
                boomerang.SetName("Boomerang");
                boomerang.SetCost(164);
                boomerang.GetTargetingMode().TargetAllAllies(); // FIXME: actually only targets self
+               boomerang.SetMagical();
                legendHelm.SetIkari(&boomerang);
                maxim.SetHelmet(&legendHelm);
                Item sProRing;
@@ -367,6 +410,7 @@ int main(int argc, char **argv) {
                courage.SetName("Courage");
                courage.SetCost(64);
                courage.GetTargetingMode().TargetMultipleAllies();
+               courage.SetMagical();
                sProRing.SetIkari(&courage);
                maxim.SetRing(&sProRing);
                Item evilJewel;
@@ -376,6 +420,7 @@ int main(int argc, char **argv) {
                gloomy.SetName("Gloomy");
                gloomy.SetCost(164);
                gloomy.GetTargetingMode().TargetAllEnemies();
+               gloomy.SetMagical();
                evilJewel.SetIkari(&gloomy);
                maxim.SetJewel(&evilJewel);
 
@@ -386,6 +431,7 @@ int main(int argc, char **argv) {
                thundershriek.SetName("Thundershriek");
                thundershriek.SetCost(224);
                thundershriek.GetTargetingMode().TargetAllEnemies();
+               thundershriek.SetPhysical();
                zircoWhip.SetIkari(&thundershriek);
                selan.SetWeapon(&zircoWhip);
                Item zirconPlate;
@@ -395,6 +441,7 @@ int main(int argc, char **argv) {
                suddenCure.SetName("Sudden cure");
                suddenCure.SetCost(96);
                suddenCure.GetTargetingMode().TargetAllAllies();
+               suddenCure.SetMagical();
                zirconPlate.SetIkari(&suddenCure);
                selan.SetArmor(&zirconPlate);
                Item zircoGloves;
@@ -404,6 +451,7 @@ int main(int argc, char **argv) {
                forcefield.SetName("Forcefield");
                forcefield.SetCost(64);
                forcefield.GetTargetingMode().TargetAllAllies();
+               forcefield.SetMagical();
                zircoGloves.SetIkari(&forcefield);
                selan.SetShield(&zircoGloves);
                Item holyCap;
@@ -413,6 +461,7 @@ int main(int argc, char **argv) {
                vulnerable.SetName("Vulnerable");
                vulnerable.SetCost(196);
                vulnerable.GetTargetingMode().TargetAllEnemies();
+               vulnerable.SetPhysical();
                holyCap.SetIkari(&vulnerable);
                selan.SetHelmet(&holyCap);
                Item ghostRing;
@@ -422,6 +471,7 @@ int main(int argc, char **argv) {
                destroy.SetName("Destroy");
                destroy.SetCost(128);
                destroy.GetTargetingMode().TargetMultipleEnemies();
+               destroy.SetMagical();
                ghostRing.SetIkari(&destroy);
                selan.SetRing(&ghostRing);
                Item eagleRock;
@@ -431,6 +481,7 @@ int main(int argc, char **argv) {
                dive.SetName("Dive");
                dive.SetCost(128);
                dive.GetTargetingMode().TargetSingleEnemy();
+               dive.SetPhysical();
                eagleRock.SetIkari(&dive);
                selan.SetJewel(&eagleRock);
 
@@ -441,6 +492,7 @@ int main(int argc, char **argv) {
                torrent.SetName("Torrent");
                torrent.SetCost(224);
                torrent.GetTargetingMode().TargetAllEnemies();
+               torrent.SetPhysical();
                zircoAx.SetIkari(&torrent);
                guy.SetWeapon(&zircoAx);
                guy.SetArmor(&zirconArmor);
@@ -451,6 +503,7 @@ int main(int argc, char **argv) {
                ironBarrier.SetName("Iron barrier");
                ironBarrier.SetCost(255);
                ironBarrier.GetTargetingMode().TargetAllAllies(); // FIXME: actually only targets self
+               ironBarrier.SetMagical();
                megaShield.SetIkari(&ironBarrier);
                guy.SetShield(&megaShield);
                Item zircoHelmet;
@@ -460,6 +513,7 @@ int main(int argc, char **argv) {
                slow.SetName("Slow");
                slow.SetCost(196);
                slow.GetTargetingMode().TargetAllEnemies();
+               slow.SetPhysical();
                zircoHelmet.SetIkari(&slow);
                guy.SetHelmet(&zircoHelmet);
                Item powerRing;
@@ -469,6 +523,7 @@ int main(int argc, char **argv) {
                trick.SetName("Trick");
                trick.SetCost(32);
                trick.GetTargetingMode().TargetAllEnemies();
+               trick.SetMagical();
                zircoHelmet.SetIkari(&trick);
                guy.SetRing(&powerRing);
                guy.SetJewel(&evilJewel);
@@ -481,6 +536,7 @@ int main(int argc, char **argv) {
                dragonRush.SetName("Dragon rush");
                dragonRush.SetCost(164);
                dragonRush.GetTargetingMode().TargetSingleEnemy();
+               dragonRush.SetPhysical();
                lizardBlow.SetIkari(&dragonRush);
                dekar.SetWeapon(&lizardBlow);
                Item holyRobe;
@@ -490,6 +546,7 @@ int main(int argc, char **argv) {
                crisisCure.SetName("Crisis cure");
                crisisCure.SetCost(164);
                crisisCure.GetTargetingMode().TargetAllAllies();
+               crisisCure.SetMagical();
                holyRobe.SetIkari(&crisisCure);
                dekar.SetArmor(&holyRobe);
                dekar.SetShield(&zircoGloves);
@@ -501,6 +558,7 @@ int main(int argc, char **argv) {
                fake.SetName("Fake");
                fake.SetCost(32);
                fake.GetTargetingMode().TargetSingleAlly();
+               fake.SetMagical();
                rocketRing.SetIkari(&fake);
                dekar.SetRing(&rocketRing);
                Item krakenRock;
@@ -510,6 +568,7 @@ int main(int argc, char **argv) {
                tenLegger.SetName("Ten-legger");
                tenLegger.SetCost(164);
                tenLegger.GetTargetingMode().TargetAllEnemies();
+               tenLegger.SetPhysical();
                rocketRing.SetIkari(&tenLegger);
                dekar.SetJewel(&krakenRock);
 
@@ -517,6 +576,8 @@ int main(int argc, char **argv) {
                battleRes.noEquipmentText = "No equip";
                battleRes.ikariMenuPrototype = Menu<const Item *>(&normalFont, &disabledFont, &handCursorSprite, 12, 6, normalFont.CharHeight() / 2, normalFont.CharWidth(), 1, normalFont.CharWidth() * 2, 0, ':', 12, normalFont.CharWidth());
 
+               battleRes.escapeText = "Escapes.";
+
                BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, &battleRes));
                battleState->AddMonster(monster);
                battleState->AddMonster(monster);