--- /dev/null
+#include "Stage.h"
+
+#include <string>
+
+#include "GLM.h"
+#include <Windows.h>
+
+#include <assimp/Importer.hpp>
+#include <assimp/scene.h>
+#include <assimp/postprocess.h>
+
+#include <GL\glew.h>
+
+#include "Scene.h"
+#include "Scene\Lever.h"
+
+#include "Graphix\Shader.h"
+#include "Graphix\Graphix.h"
+#include "Graphix\Textures.h"
+#include "Fps.h"
+#include "Events.h"
+
+#include "Graphix\Model.h"
+
+#include "Message.h"
+
+//#include "PlayerI.h"
+
+#include <iostream>
+#include <time.h>
+
+//#define FRAMERATE_FIX 60
+
+using std::cout;
+using std::endl;
+
+using std::string;
+
+typedef unsigned int uint;
+
+Stage::Stage()
+{
+
+}
+
+Stage::Stage(int num)
+{
+ SceneObject* tmp_world;
+ SceneObject* tmp_playerObject;
+ Door* door1;
+ Door* door2;
+ Lever* lever1;
+ Lever* lever2;
+ switch (num)
+ {
+ case 0: srand((int)time(NULL));
+ // Hauptfenster
+ current_world = new Scene(0, 0, Graphix::getWindowWidth(), Graphix::getWindowHeight(), 45, 0.1f, 40, vec3(0.0f, 0.0f, 0.f));
+
+ // load LVL
+ tmp_world = new Level("level_1", "model_levelTest_2D.jpg");
+
+ //tmp_world->ignore = true;
+ current_world->addObject(tmp_world);
+
+ // current_world->addObject(new SceneObject( translate(vec3(-3.f, 1.f, 0.f)), vec4(1.0f, 1.0f, 1.0f, 3.0f), new BBox(), ""));
+
+ //Player
+ tmp_playerObject = new Marvin(translate(vec3(1.f, 3.f, 1.f))*rotate((float)M_PI_4, vec3(0.f, 1.f, 0.f)));
+
+ current_world->addObject(tmp_playerObject);
+ current_world->setLookAt(tmp_playerObject);
+
+ //current_world->addObject(new SceneObject( glm::mat4(1.0f), "Player.dae", "model_player.png"));
+ //current_world->addObject(new SceneObject( translate(vec3(-3.f, .4f, 0.f))*scale(vec3(3.f)), "cow/cow.dae", "model_cow_2D.jpg"));
+ current_world->addObject(new SceneObject(translate(vec3(-3.f, .4f, 0.f)), vec4(3.0f, 0.5f, 0.4f, 1.5f), "duck_col", "default_2D.png"));
+ //current_world->addObject(new SceneObject(translate(vec3(-5.f, .4f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boar", "model_boar_2D.png"));
+
+ door1 = new Door(translate(vec3(92.f, -12.f, -4.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "door", "default_2D.png");
+ current_world->addObject(door1);
+ door1->setAnimationLoop(false);
+ door1->timeresistant = true;
+
+ door2 = new Door(translate(vec3(7.0f, 0.0f, -5.0f)), vec4(3.0f, 1.f, -1.4f, 1.5f), "door", "default_2D.png");
+ current_world->addObject(door2);
+ door2->setAnimationLoop(false);
+
+ lever1 = new Lever(translate(vec3(-47.03945f, 8.03048f, 10.50753f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "lever", "default_2D.png");
+ current_world->addObject(lever1);
+ lever1->setAnimationLoop(false);
+ lever1->setup(door2);
+
+ //lever2 = new Lever(translate(vec3(86.f, -18.f, 5.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "lever", "model_duck_2D.png");
+ lever2 = new Lever(translate(vec3(-5.f, 0.f, -5.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "lever", "default_2D.png");
+ current_world->addObject(lever2);
+ lever2->setAnimationLoop(false);
+ lever2->timeresistant = true;
+ lever2->setup(door2);
+
+ current_world->addObject(new Boar(translate(vec3(-5.f, 1.f, 5.f))));
+
+
+ //current_world->addObject(new SceneObject(translate(vec3(-5.f, 3.f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "SkyBox", "model_SkyBox_2D.png"));
+
+ current_world->addObject(new EventBox(translate(vec3(3.f, .4f, 0.f)), EB_LOSTZONE));
+ //current_world->addObject(new EventBox(translate(vec3(0.f, -5.f, 0.f))*glm::scale(vec3(50.f,1.f,50.f)), EB_LOSTZONE));
+ current_world->addObject(new EventBox(translate(vec3(3.f, .4f, -15.f)), EB_WINZONE));
+
+ current_world->addObject(new Boar(translate(vec3(-5.f, 4.f, 3.f))));
+ break;
+ case 1: srand((int)time(NULL));
+ // Hauptfenster
+ current_world = new Scene(0, 0, Graphix::getWindowWidth(), Graphix::getWindowHeight(), 45, 0.1f, 40, vec3(0.0f, 0.0f, 0.f));
+
+ // load LVL
+
+ tmp_world = new Level("level_2", "model_levelTest_2D.jpg");
+ current_world->addObject(tmp_world);
+
+ //Player
+ tmp_playerObject = new Marvin(translate(vec3(-5.38658f, 0.73429f, 30.24083f))*rotate((float)M_PI_4, vec3(0.f, 1.f, 0.f)));
+
+ current_world->addObject(tmp_playerObject);
+ current_world->setLookAt(tmp_playerObject);
+
+
+ lever1 = new Lever(translate(vec3(2.55167f, 2.51451f, -5.54817f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "lever", "default_2D.png");
+ current_world->addObject(lever1);
+ lever1->setAnimationLoop(false);
+
+
+ door1 = new Door(translate(vec3(-9.78039f, -1.06029f, -6.46377f)) * rotate(1.5708f, vec3(0, 1, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Door", "default_2D.png");
+ current_world->addObject(door1);
+ door1->setup(1.5708f, vec3(0, 1, 0), 1);
+ lever1->setup(door1);
+ door2 = new Door(translate(vec3(-2.58412f, -1.06029f, -6.46377f)) * rotate(-1.5708f, vec3(0, 1, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Door", "default_2D.png");
+ current_world->addObject(door2);
+ door2->setup(-1.5708f, vec3(0, 1, 0), 1);
+ lever1->setup(door2);
+
+
+ current_world->addObject(new Level(translate(vec3(-5.50806f, 0.91084f, 19.01143f)) * rotate(-1.57f, vec3(0, 1, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Log", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(-5.50806f, -0.52355f, 7.75976f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Log", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(3.0515f, -1.3978f, -3.00258f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(3.0515f, -1.3978f, -6.02786f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(10.0674f, -1.3978f, -1.83059f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(10.02701f, -1.3978f, 1.3517f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(16.17073f, -1.46596f, -5.34347f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(21.94122f, -1.36633f, 2.71334f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(30.17974f, -3.34705f, -2.16098f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(18.57976f, 2.46041f, -1.78333f)) * rotate(0.51f, vec3(0, 1, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Log", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(26.31248f, 1.66742f, 0.82817f)) * rotate(-0.95f, vec3(0, 1, 0)) * rotate(-0.35f, vec3(1, 0, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Log", "model_levelTest_2D.png"));
+
+
+ current_world->addObject(new Boar(translate(vec3(-7.14729f, 0.1f, -3.08567f)) * rotate(1.5f, vec3(0, 1, 0))));
+ current_world->addObject(new Boar(translate(vec3(13.32701f, 0.1f, -2.53362f)) * rotate(1.8f, vec3(0, 1, 0))));
+ current_world->addObject(new Boar(translate(vec3(23.64995f, 0.1f, -2.53362f)) * rotate(1.9f, vec3(0, 1, 0))));
+ current_world->addObject(new Boar(translate(vec3(16.71088f, 0.1f, 0.83976f)) * rotate(-1.6f, vec3(0, 1, 0))));
+
+
+ current_world->addObject(new EventBox(translate(vec3(0.f, .4f, 0.f)), EB_WINZONE));
+ break;
+ case 2: srand((int)time(NULL));
+ // Hauptfenster
+ current_world = new Scene(0, 0, Graphix::getWindowWidth(), Graphix::getWindowHeight(), 45, 0.1f, 40, vec3(0.0f, 0.0f, 0.f));
+
+ // load LVL
+
+ tmp_world = new Level("level_3", "model_levelTest_2D.jpg");
+ current_world->addObject(tmp_world);
+
+ //Player
+ tmp_playerObject = new Marvin(translate(vec3(0.f, 0.73429f, 0.f)));
+
+ current_world->addObject(tmp_playerObject);
+ current_world->setLookAt(tmp_playerObject);
+
+
+ lever1 = new Lever(translate(vec3(2.55167f, 2.51451f, -5.54817f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "lever", "default_2D.png");
+ current_world->addObject(lever1);
+ lever1->setAnimationLoop(false);
+
+
+ door1 = new Door(translate(vec3(-9.78039f, -1.06029f, -6.46377f)) * rotate(1.5708f, vec3(0, 1, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Door", "default_2D.png");
+ current_world->addObject(door1);
+ door1->setup(1.5708f, vec3(0, 1, 0), 1);
+ lever1->setup(door1);
+ door2 = new Door(translate(vec3(-2.58412f, -1.06029f, -6.46377f)) * rotate(-1.5708f, vec3(0, 1, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Door", "default_2D.png");
+ current_world->addObject(door2);
+ door2->setup(-1.5708f, vec3(0, 1, 0), 1);
+ lever1->setup(door2);
+
+
+ current_world->addObject(new Level(translate(vec3(-5.50806f, 0.91084f, 19.01143f)) * rotate(-1.57f, vec3(0, 1, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Log", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(-5.50806f, -0.52355f, 7.75976f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Log", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(3.0515f, -1.3978f, -3.00258f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(3.0515f, -1.3978f, -6.02786f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(10.0674f, -1.3978f, -1.83059f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(10.02701f, -1.3978f, 1.3517f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(16.17073f, -1.46596f, -5.34347f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(21.94122f, -1.36633f, 2.71334f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(30.17974f, -3.34705f, -2.16098f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "boulder", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(18.57976f, 2.46041f, -1.78333f)) * rotate(0.51f, vec3(0, 1, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Log", "model_levelTest_2D.png"));
+ current_world->addObject(new Level(translate(vec3(26.31248f, 1.66742f, 0.82817f)) * rotate(-0.95f, vec3(0, 1, 0)) * rotate(-0.35f, vec3(1, 0, 0)), vec4(3.0f, 3.f, 0.4f, 1.5f), "Log", "model_levelTest_2D.png"));
+
+
+ current_world->addObject(new Boar(translate(vec3(-7.14729f, 0.1f, -3.08567f)) * rotate(1.5f, vec3(0, 1, 0))));
+ current_world->addObject(new Boar(translate(vec3(13.32701f, 0.1f, -2.53362f)) * rotate(1.8f, vec3(0, 1, 0))));
+ current_world->addObject(new Boar(translate(vec3(23.64995f, 0.1f, -2.53362f)) * rotate(1.9f, vec3(0, 1, 0))));
+ current_world->addObject(new Boar(translate(vec3(16.71088f, 0.1f, 0.83976f)) * rotate(-1.6f, vec3(0, 1, 0))));
+ break;
+ }
+}
+
+Stage::~Stage()
+{
+
+}
\ No newline at end of file