From fd987cc573ec47aa134b3bad46aa6ced9c6b6074 Mon Sep 17 00:00:00 2001
From: Daniel Karbach <daniel.karbach@localhorst.tv>
Date: Wed, 29 Aug 2012 20:57:41 +0200
Subject: [PATCH] use definition of Maxim and Lizard from source

---
 src/main.cpp       | 61 ++++------------------------------------------
 test-data/test.l2s |  9 ++++---
 2 files changed, 10 insertions(+), 60 deletions(-)

diff --git a/src/main.cpp b/src/main.cpp
index 7a8b425..6f637a7 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -79,6 +79,9 @@ int main(int argc, char **argv) {
 //	std::srand(std::time(0));
 
 	try {
+		InitSDL sdl;
+		InitImage image(IMG_INIT_PNG);
+
 		ParsedSource source;
 		Parser parser("test-data/test.l2s", source);
 		parser.Parse();
@@ -86,10 +89,6 @@ int main(int argc, char **argv) {
 		Interpreter intp(source);
 		intp.ReadSource();
 
-		return 0;
-
-		InitSDL sdl;
-		InitImage image(IMG_INIT_PNG);
 		InitScreen screen(width, height);
 
 		// temporary test data
@@ -105,58 +104,8 @@ int main(int argc, char **argv) {
 		heroesLayout.AddPosition(Vector<Uint8>(80, 152));
 		heroesLayout.AddPosition(Vector<Uint8>(160, 152));
 
-		SDL_Surface *monsterImg(IMG_Load("test-data/monster.png"));
-		Sprite monsterSprite(monsterImg, 64, 64);
-		Monster monster;
-		monster.SetName("Lizard");
-		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);
-		Hero maxim;
-		maxim.SetName("Maxim");
-		maxim.SetLevel(1);
-		maxim.SetSprite(&maximSprite);
-		maxim.SetMaxHealth(33);
-		maxim.SetHealth(33);
-		maxim.SetMaxMana(20);
-		maxim.SetMana(20);
-		maxim.SetIP(0);
-		maxim.SetStats(Stats(28, 22, 28, 17, 14, 100, 10));
-		ComplexAnimation maximAttackAnimation(&maximSprite, framerate);
-		maximAttackAnimation.AddFrames(1, 0, Vector<int>(0,  0), 7);
-		maximAttackAnimation.AddFrames(1, 0, Vector<int>(4, -1), 2);
-		maximAttackAnimation.AddFrames(2, 0, Vector<int>(4, -2), 2);
-		maximAttackAnimation.AddFrames(2, 0, Vector<int>(6, -2), 2);
-		maximAttackAnimation.AddFrames(2, 1, Vector<int>(6, -1), 1);
-		maximAttackAnimation.AddFrames(2, 1, Vector<int>(3, -1), 2);
-		maximAttackAnimation.AddFrames(2, 1, Vector<int>(0,  0), 1);
-		maximAttackAnimation.AddFrames(2, 2, Vector<int>(0,  0), 2);
-		maximAttackAnimation.AddFrames(2, 2, Vector<int>(2,  0), 1);
-		maximAttackAnimation.AddFrames(1, 0, Vector<int>(0,  0), 7);
-		maxim.SetAttackAnimation(&maximAttackAnimation);
-		ComplexAnimation maximSpellAnimation(&maximSprite, 5 * framerate);
-		maximSpellAnimation.AddFrames(3, 0, Vector<int>(), 2);
-		maximSpellAnimation.AddFrame(3, 1);
-		maxim.SetSpellAnimation(&maximSpellAnimation);
-		SDL_Surface *maximMeleeImg(IMG_Load("test-data/melee-maxim.png"));
-		Sprite maximMeleeSprite(maximMeleeImg, 96, 96);
-		SimpleAnimation maximMeleeAnimation(&maximMeleeSprite, 2 * framerate, 4);
-		maxim.SetMeleeAnimation(&maximMeleeAnimation);
+		Monster monster(*intp.GetMonster("lizard"));
+		Hero maxim(*intp.GetHero("maxim"));
 
 		SDL_Surface *selanImg(IMG_Load("test-data/selan.png"));
 		Sprite selanSprite(selanImg, 64, 64);
diff --git a/test-data/test.l2s b/test-data/test.l2s
index 7357381..31c4ace 100644
--- a/test-data/test.l2s
+++ b/test-data/test.l2s
@@ -5,7 +5,8 @@ Number fiveFramesTime 165
 export Monster lizard {
 	name: "Lizard",
 	sprite: Sprite {
-		image: "monster.png",
+		// using pathes relative to project root until path resolution is implemented
+		image: "test-data/monster.png",
 		size: <64,64>
 	},
 	level: 1,
@@ -22,7 +23,7 @@ export Monster lizard {
 	},
 	attackAnimation: SimpleAnimation {
 		sprite: Sprite {
-			image: "attack-monster.png",
+			image: "test-data/attack-monster.png",
 			size: <96,64>
 		},
 		frametime: frameTime,
@@ -31,7 +32,7 @@ export Monster lizard {
 }
 
 Sprite maximSprite {
-	image: "maxim.png",
+	image: "test-data/maxim.png",
 	size: <64,64>
 }
 export Hero maxim {
@@ -98,7 +99,7 @@ export Hero maxim {
 	},
 	meleeAnimation: SimpleAnimation {
 		sprite: Sprite {
-			image: "melee-maxim.png",
+			image: "test-data/melee-maxim.png",
 			size: <96,96>
 		},
 		frametime: twoFramesTime,
-- 
2.39.5