X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmain.cpp;h=4b4ca58f1f4475076d1b4d3186234b9247d53e72;hb=04b582180c8f86f50f08f5141a2514a1fcda3e01;hp=960f1c5d78a995239acc353d3ed9b8bad144b6fd;hpb=24fe1e3e6064e42e70f07056ef3aebcbb451ddb0;p=l2e.git diff --git a/src/main.cpp b/src/main.cpp index 960f1c5..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); @@ -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(&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);