]> 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 960f1c5d78a995239acc353d3ed9b8bad144b6fd..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);
@@ -95,7 +96,7 @@ int main(int argc, char **argv) {
                maxim.SetHealth(33);
                maxim.SetMaxMana(20);
                maxim.SetMana(20);
-               maxim.SetIP(55);
+               maxim.SetIP(0);
 
                SDL_Surface *selanImg(IMG_Load("test-data/selan.png"));
                Sprite selanSprite(selanImg, 64, 64);
@@ -107,7 +108,7 @@ int main(int argc, char **argv) {
                selan.SetHealth(28);
                selan.SetMaxMana(23);
                selan.SetMana(23);
-               selan.SetIP(80);
+               selan.SetIP(1);
 
                SDL_Surface *guyImg(IMG_Load("test-data/guy.png"));
                Sprite guySprite(guyImg, 64, 64);
@@ -119,7 +120,7 @@ int main(int argc, char **argv) {
                guy.SetHealth(38);
                guy.SetMaxMana(0);
                guy.SetMana(0);
-               guy.SetIP(85);
+               guy.SetIP(254);
 
                SDL_Surface *dekarImg(IMG_Load("test-data/dekar.png"));
                Sprite dekarSprite(dekarImg, 64, 64);
@@ -131,10 +132,13 @@ int main(int argc, char **argv) {
                dekar.SetHealth(38);
                dekar.SetMaxMana(0);
                dekar.SetMana(0);
-               dekar.SetIP(50);
+               dekar.SetIP(255);
 
                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);
@@ -329,8 +368,9 @@ int main(int argc, char **argv) {
                zircoSword.SetMenuIcon(&swordIcon);
                Ikari firestorm;
                firestorm.SetName("Firestorm");
-               firestorm.SetCost(88);
+               firestorm.SetCost(224);
                firestorm.GetTargetingMode().TargetAllEnemies();
+               firestorm.SetPhysical();
                zircoSword.SetIkari(&firestorm);
                maxim.SetWeapon(&zircoSword);
                Item zirconArmor;
@@ -338,8 +378,9 @@ int main(int argc, char **argv) {
                zirconArmor.SetMenuIcon(&armorIcon);
                Ikari magicCure;
                magicCure.SetName("Magic cure");
-               magicCure.SetCost(51);
+               magicCure.SetCost(128);
                magicCure.GetTargetingMode().TargetSingleAlly();
+               magicCure.SetMagical();
                zirconArmor.SetIkari(&magicCure);
                maxim.SetArmor(&zirconArmor);
                Item holyShield;
@@ -347,8 +388,9 @@ int main(int argc, char **argv) {
                holyShield.SetMenuIcon(&shieldIcon);
                Ikari lightGuard;
                lightGuard.SetName("Light guard");
-               lightGuard.SetCost(51);
+               lightGuard.SetCost(128);
                lightGuard.GetTargetingMode().TargetAllAllies(); // FIXME: actually only targets self
+               lightGuard.SetMagical();
                holyShield.SetIkari(&lightGuard);
                maxim.SetShield(&holyShield);
                Item legendHelm;
@@ -356,8 +398,9 @@ int main(int argc, char **argv) {
                legendHelm.SetMenuIcon(&helmetIcon);
                Ikari boomerang;
                boomerang.SetName("Boomerang");
-               boomerang.SetCost(65);
+               boomerang.SetCost(164);
                boomerang.GetTargetingMode().TargetAllAllies(); // FIXME: actually only targets self
+               boomerang.SetMagical();
                legendHelm.SetIkari(&boomerang);
                maxim.SetHelmet(&legendHelm);
                Item sProRing;
@@ -365,8 +408,9 @@ int main(int argc, char **argv) {
                sProRing.SetMenuIcon(&ringIcon);
                Ikari courage;
                courage.SetName("Courage");
-               courage.SetCost(26);
+               courage.SetCost(64);
                courage.GetTargetingMode().TargetMultipleAllies();
+               courage.SetMagical();
                sProRing.SetIkari(&courage);
                maxim.SetRing(&sProRing);
                Item evilJewel;
@@ -374,8 +418,9 @@ int main(int argc, char **argv) {
                evilJewel.SetMenuIcon(&jewelIcon);
                Ikari gloomy;
                gloomy.SetName("Gloomy");
-               gloomy.SetCost(65);
+               gloomy.SetCost(164);
                gloomy.GetTargetingMode().TargetAllEnemies();
+               gloomy.SetMagical();
                evilJewel.SetIkari(&gloomy);
                maxim.SetJewel(&evilJewel);
 
@@ -384,8 +429,9 @@ int main(int argc, char **argv) {
                zircoWhip.SetMenuIcon(&rodIcon);
                Ikari thundershriek;
                thundershriek.SetName("Thundershriek");
-               thundershriek.SetCost(88);
+               thundershriek.SetCost(224);
                thundershriek.GetTargetingMode().TargetAllEnemies();
+               thundershriek.SetPhysical();
                zircoWhip.SetIkari(&thundershriek);
                selan.SetWeapon(&zircoWhip);
                Item zirconPlate;
@@ -393,8 +439,9 @@ int main(int argc, char **argv) {
                zirconPlate.SetMenuIcon(&armorIcon);
                Ikari suddenCure;
                suddenCure.SetName("Sudden cure");
-               suddenCure.SetCost(38);
+               suddenCure.SetCost(96);
                suddenCure.GetTargetingMode().TargetAllAllies();
+               suddenCure.SetMagical();
                zirconPlate.SetIkari(&suddenCure);
                selan.SetArmor(&zirconPlate);
                Item zircoGloves;
@@ -402,8 +449,9 @@ int main(int argc, char **argv) {
                zircoGloves.SetMenuIcon(&shieldIcon);
                Ikari forcefield;
                forcefield.SetName("Forcefield");
-               forcefield.SetCost(26);
+               forcefield.SetCost(64);
                forcefield.GetTargetingMode().TargetAllAllies();
+               forcefield.SetMagical();
                zircoGloves.SetIkari(&forcefield);
                selan.SetShield(&zircoGloves);
                Item holyCap;
@@ -411,8 +459,9 @@ int main(int argc, char **argv) {
                holyCap.SetMenuIcon(&helmetIcon);
                Ikari vulnerable;
                vulnerable.SetName("Vulnerable");
-               vulnerable.SetCost(77);
+               vulnerable.SetCost(196);
                vulnerable.GetTargetingMode().TargetAllEnemies();
+               vulnerable.SetPhysical();
                holyCap.SetIkari(&vulnerable);
                selan.SetHelmet(&holyCap);
                Item ghostRing;
@@ -420,8 +469,9 @@ int main(int argc, char **argv) {
                ghostRing.SetMenuIcon(&ringIcon);
                Ikari destroy;
                destroy.SetName("Destroy");
-               destroy.SetCost(77);
+               destroy.SetCost(128);
                destroy.GetTargetingMode().TargetMultipleEnemies();
+               destroy.SetMagical();
                ghostRing.SetIkari(&destroy);
                selan.SetRing(&ghostRing);
                Item eagleRock;
@@ -429,8 +479,9 @@ int main(int argc, char **argv) {
                eagleRock.SetMenuIcon(&jewelIcon);
                Ikari dive;
                dive.SetName("Dive");
-               dive.SetCost(50);
+               dive.SetCost(128);
                dive.GetTargetingMode().TargetSingleEnemy();
+               dive.SetPhysical();
                eagleRock.SetIkari(&dive);
                selan.SetJewel(&eagleRock);
 
@@ -439,8 +490,9 @@ int main(int argc, char **argv) {
                zircoAx.SetMenuIcon(&axIcon);
                Ikari torrent;
                torrent.SetName("Torrent");
-               torrent.SetCost(88);
+               torrent.SetCost(224);
                torrent.GetTargetingMode().TargetAllEnemies();
+               torrent.SetPhysical();
                zircoAx.SetIkari(&torrent);
                guy.SetWeapon(&zircoAx);
                guy.SetArmor(&zirconArmor);
@@ -449,8 +501,9 @@ int main(int argc, char **argv) {
                megaShield.SetMenuIcon(&shieldIcon);
                Ikari ironBarrier;
                ironBarrier.SetName("Iron barrier");
-               ironBarrier.SetCost(100);
+               ironBarrier.SetCost(255);
                ironBarrier.GetTargetingMode().TargetAllAllies(); // FIXME: actually only targets self
+               ironBarrier.SetMagical();
                megaShield.SetIkari(&ironBarrier);
                guy.SetShield(&megaShield);
                Item zircoHelmet;
@@ -458,8 +511,9 @@ int main(int argc, char **argv) {
                zircoHelmet.SetMenuIcon(&helmetIcon);
                Ikari slow;
                slow.SetName("Slow");
-               slow.SetCost(77);
+               slow.SetCost(196);
                slow.GetTargetingMode().TargetAllEnemies();
+               slow.SetPhysical();
                zircoHelmet.SetIkari(&slow);
                guy.SetHelmet(&zircoHelmet);
                Item powerRing;
@@ -467,8 +521,9 @@ int main(int argc, char **argv) {
                powerRing.SetMenuIcon(&ringIcon);
                Ikari trick;
                trick.SetName("Trick");
-               trick.SetCost(13);
+               trick.SetCost(32);
                trick.GetTargetingMode().TargetAllEnemies();
+               trick.SetMagical();
                zircoHelmet.SetIkari(&trick);
                guy.SetRing(&powerRing);
                guy.SetJewel(&evilJewel);
@@ -479,8 +534,9 @@ int main(int argc, char **argv) {
                lizardBlow.SetMenuIcon(&swordIcon);
                Ikari dragonRush;
                dragonRush.SetName("Dragon rush");
-               dragonRush.SetCost(65);
+               dragonRush.SetCost(164);
                dragonRush.GetTargetingMode().TargetSingleEnemy();
+               dragonRush.SetPhysical();
                lizardBlow.SetIkari(&dragonRush);
                dekar.SetWeapon(&lizardBlow);
                Item holyRobe;
@@ -488,8 +544,9 @@ int main(int argc, char **argv) {
                holyRobe.SetMenuIcon(&armorIcon);
                Ikari crisisCure;
                crisisCure.SetName("Crisis cure");
-               crisisCure.SetCost(65);
+               crisisCure.SetCost(164);
                crisisCure.GetTargetingMode().TargetAllAllies();
+               crisisCure.SetMagical();
                holyRobe.SetIkari(&crisisCure);
                dekar.SetArmor(&holyRobe);
                dekar.SetShield(&zircoGloves);
@@ -499,8 +556,9 @@ int main(int argc, char **argv) {
                rocketRing.SetMenuIcon(&ringIcon);
                Ikari fake;
                fake.SetName("Fake");
-               fake.SetCost(13);
+               fake.SetCost(32);
                fake.GetTargetingMode().TargetSingleAlly();
+               fake.SetMagical();
                rocketRing.SetIkari(&fake);
                dekar.SetRing(&rocketRing);
                Item krakenRock;
@@ -508,8 +566,9 @@ int main(int argc, char **argv) {
                krakenRock.SetMenuIcon(&jewelIcon);
                Ikari tenLegger;
                tenLegger.SetName("Ten-legger");
-               tenLegger.SetCost(65);
+               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);