]> git.localhorst.tv Git - l2e.git/blobdiff - src/main.cpp
merged Point into Vector
[l2e.git] / src / main.cpp
index 987a985cc74083e76a29953a357b490ea12947fe..bebeed106e14bf8520b80b00aa8affaa2b07bc14 100644 (file)
@@ -17,7 +17,6 @@
 #include "common/Inventory.h"
 #include "common/Item.h"
 #include "common/Spell.h"
-#include "geometry/Point.h"
 #include "geometry/Vector.h"
 #include "graphics/ComplexAnimation.h"
 #include "graphics/Font.h"
@@ -30,6 +29,8 @@
 #include "sdl/InitScreen.h"
 #include "sdl/InitSDL.h"
 
+#include <cstdlib>
+#include <ctime>
 #include <exception>
 #include <iostream>
 #include <SDL.h>
@@ -46,7 +47,6 @@ using common::Ikari;
 using common::Inventory;
 using common::Item;
 using common::Spell;
-using geometry::Point;
 using geometry::Vector;
 using graphics::ComplexAnimation;
 using graphics::Font;
@@ -70,6 +70,8 @@ int main(int argc, char **argv) {
 
        const int framerate = 33;
 
+//     std::srand(std::time(0));
+
        try {
                InitSDL sdl;
                InitImage image(IMG_INIT_PNG);
@@ -78,26 +80,35 @@ int main(int argc, char **argv) {
                // temporary test data
                SDL_Surface *bg(IMG_Load("test-data/battle-bg.png"));
                PartyLayout monstersLayout;
-               monstersLayout.AddPosition(Point<Uint8>(88, 88));
-               monstersLayout.AddPosition(Point<Uint8>(128, 88));
-               monstersLayout.AddPosition(Point<Uint8>(168, 88));
-               monstersLayout.AddPosition(Point<Uint8>(208, 88));
+               monstersLayout.AddPosition(Vector<Uint8>(88, 88));
+               monstersLayout.AddPosition(Vector<Uint8>(128, 88));
+               monstersLayout.AddPosition(Vector<Uint8>(168, 88));
+               monstersLayout.AddPosition(Vector<Uint8>(208, 88));
                PartyLayout heroesLayout;
-               heroesLayout.AddPosition(Point<Uint8>(48, 136));
-               heroesLayout.AddPosition(Point<Uint8>(128, 136));
-               heroesLayout.AddPosition(Point<Uint8>(80, 152));
-               heroesLayout.AddPosition(Point<Uint8>(160, 152));
+               heroesLayout.AddPosition(Vector<Uint8>(48, 136));
+               heroesLayout.AddPosition(Vector<Uint8>(128, 136));
+               heroesLayout.AddPosition(Vector<Uint8>(80, 152));
+               heroesLayout.AddPosition(Vector<Uint8>(160, 152));
 
                SDL_Surface *monsterImg(IMG_Load("test-data/monster.png"));
-               Sprite dummySprite(monsterImg, 64, 64);
+               Sprite monsterSprite(monsterImg, 64, 64);
                Monster monster;
                monster.SetName("Lizard");
-               monster.SetSprite(&dummySprite);
+               monster.SetSprite(&monsterSprite);
                monster.SetLevel(1);
                monster.SetMaxHealth(8);
                monster.SetHealth(8);
                monster.SetStats(Stats(14, 6, 6, 6, 6, 6, 6));
                monster.SetReward(3, 5);
+               ComplexAnimation monsterAttackAnimation(&monsterSprite, 4 * framerate);
+               monsterAttackAnimation.AddFrame(0, 1, Vector<int>(0, 16));
+               monsterAttackAnimation.AddFrame(0, 0, Vector<int>(0, 16));
+               monsterAttackAnimation.AddFrame(0, 1, Vector<int>(0, 16));
+               monster.SetAttackAnimation(&monsterAttackAnimation);
+               SDL_Surface *monsterMeleeImg(IMG_Load("test-data/attack-monster.png"));
+               Sprite monsterMeleeSprite(monsterMeleeImg, 96, 64);
+               SimpleAnimation monsterMeleeAnimation(&monsterMeleeSprite, framerate, 14);
+               monster.SetMeleeAnimation(&monsterMeleeAnimation);
 
                SDL_Surface *maximImg(IMG_Load("test-data/maxim.png"));
                Sprite maximSprite(maximImg, 64, 64);
@@ -254,29 +265,30 @@ int main(int argc, char **argv) {
                Font largeFont(&largeFontSprite, 0, -2);
                battleRes.titleFont = &largeFont;
 
-               battleRes.numberAnimationPrototype = ComplexAnimation(0, framerate);
-               battleRes.numberAnimationPrototype.AddFrame(0, 0);
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -26));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -42));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -48));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -42));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -26));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0);
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -12));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -20));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -24));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -20));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -12));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0);
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -6));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -10));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -12));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -10));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -6));
-               battleRes.numberAnimationPrototype.AddFrames(0, 0, Vector<int>(), 14);
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -36));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -32));
-               battleRes.numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -18));
+               ComplexAnimation numberAnimationPrototype(0, framerate);
+               numberAnimationPrototype.AddFrame(0, 0);
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -26));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -42));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -48));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -42));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -26));
+               numberAnimationPrototype.AddFrame(0, 0);
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -12));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -20));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -24));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -20));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -12));
+               numberAnimationPrototype.AddFrame(0, 0);
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -6));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -10));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -12));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -10));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -6));
+               numberAnimationPrototype.AddFrames(0, 0, Vector<int>(), 14);
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -36));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -32));
+               numberAnimationPrototype.AddFrame(0, 0, Vector<int>(0, -18));
+               battleRes.numberAnimationPrototype = &numberAnimationPrototype;
 
                SDL_Surface *bigNumbersImg(IMG_Load("test-data/big-numbers.png"));
                Sprite bigNumbersSprite(bigNumbersImg, 16, 32);
@@ -346,9 +358,7 @@ int main(int argc, char **argv) {
                Sprite magicTargetCursor(targetingIconsImg, 32, 32, 0, 32);
                Sprite itemTargetCursor(targetingIconsImg, 32, 32, 0, 64);
                battleRes.weaponTargetCursor = &weaponTargetCursor;
-               // TODO: add image for magic targeting cursor
                battleRes.magicTargetCursor = &magicTargetCursor;
-               // TODO: add image for item targeting cursor
                battleRes.itemTargetCursor = &itemTargetCursor;
 
                Spell resetSpell;
@@ -473,6 +483,7 @@ int main(int argc, char **argv) {
                Item zircoSword;
                zircoSword.SetName("Zirco sword");
                zircoSword.SetMenuIcon(&swordIcon);
+               zircoSword.GetTargetingMode().TargetSingleEnemy();
                Ikari firestorm;
                firestorm.SetName("Firestorm");
                firestorm.SetCost(224);
@@ -535,6 +546,7 @@ int main(int argc, char **argv) {
                Item zircoWhip;
                zircoWhip.SetName("Zirco whip");
                zircoWhip.SetMenuIcon(&rodIcon);
+               zircoWhip.GetTargetingMode().TargetSingleEnemy();
                Ikari thundershriek;
                thundershriek.SetName("Thundershriek");
                thundershriek.SetCost(224);
@@ -596,6 +608,7 @@ int main(int argc, char **argv) {
                Item zircoAx;
                zircoAx.SetName("Zirco ax");
                zircoAx.SetMenuIcon(&axIcon);
+               zircoAx.GetTargetingMode().TargetSingleEnemy();
                Ikari torrent;
                torrent.SetName("Torrent");
                torrent.SetCost(224);
@@ -640,6 +653,7 @@ int main(int argc, char **argv) {
                Item lizardBlow;
                lizardBlow.SetName("Lizard blow");
                lizardBlow.SetMenuIcon(&swordIcon);
+               lizardBlow.GetTargetingMode().TargetSingleEnemy();
                Ikari dragonRush;
                dragonRush.SetName("Dragon rush");
                dragonRush.SetCost(164);