X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmain.cpp;h=4b4ca58f1f4475076d1b4d3186234b9247d53e72;hb=04b582180c8f86f50f08f5141a2514a1fcda3e01;hp=6baf82770e762318ffc27b34a126f0fd056b77a4;hpb=2d10e898ccd404a69be02f5e93cf97398de99984;p=l2e.git diff --git a/src/main.cpp b/src/main.cpp index 6baf827..4b4ca58 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -73,14 +73,15 @@ int main(int argc, char **argv) { monstersLayout.AddPosition(Point(168, 104)); monstersLayout.AddPosition(Point(208, 104)); PartyLayout heroesLayout; - heroesLayout.AddPosition(Point(27, 219)); - heroesLayout.AddPosition(Point(104, 227)); - heroesLayout.AddPosition(Point(66, 238)); - heroesLayout.AddPosition(Point(143, 246)); + heroesLayout.AddPosition(Point(48, 152)); + heroesLayout.AddPosition(Point(128, 152)); + heroesLayout.AddPosition(Point(80, 168)); + heroesLayout.AddPosition(Point(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(&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);