Index: orxonox/branches/md2_loader/src/lib/graphics/graphics_engine.cc
===================================================================
--- orxonox/branches/md2_loader/src/lib/graphics/graphics_engine.cc	(revision 4067)
+++ orxonox/branches/md2_loader/src/lib/graphics/graphics_engine.cc	(revision 4070)
@@ -31,4 +31,6 @@
 {
   this->bDisplayFPS = false;
+  this->minFPS = 9999;
+  this->maxFPS = 0;
   this->setClassName ("GraphicsEngine");
   this->initVideo();
@@ -276,10 +278,13 @@
 	  
 	  // temporary, only for showing how fast the text-engine is
-	  char tmpChar[20];
-	  sprintf(tmpChar, "fps: %4.0f", this->currentFPS);
-	  this->geText->setPosition(0, 500);
-	  //this->geText->setText(tmpChar);
-	  //this->geText->setPosition(0, 420);
-	  this->geText->setText("TEST\nTEST2");
+	  char tmpChar1[20];
+	  sprintf(tmpChar1, "Current: %4.0f", this->currentFPS);
+	  this->geTextCFPS->setText(tmpChar1);
+	  char tmpChar2[20];
+	  sprintf(tmpChar2, "Max: %4.0f", this->maxFPS);
+	  this->geTextMaxFPS->setText(tmpChar2);
+	  char tmpChar3[20];
+	  sprintf(tmpChar3, "Min: %4.0f", this->minFPS);
+	  this->geTextMinFPS->setText(tmpChar3);
 	}
 }
@@ -287,8 +292,18 @@
 void GraphicsEngine::displayFPS(bool display)
 {
-  this->geText = TextEngine::getInstance()->createText("fonts/earth.ttf", 30, TEXT_DYNAMIC, 0, 255, 0);
-  this->geText->setAlignment(TEXT_ALIGN_LEFT);
-  this->bDisplayFPS = display;
-}
-
-  
+	if( display)
+	{
+		this->geTextCFPS = TextEngine::getInstance()->createText("fonts/earth.ttf", 30, TEXT_DYNAMIC, 0, 255, 0);
+		this->geTextCFPS->setAlignment(TEXT_ALIGN_LEFT);
+		this->geTextCFPS->setPosition(0, 500);
+		this->geTextMaxFPS = TextEngine::getInstance()->createText("fonts/earth.ttf", 30, TEXT_DYNAMIC, 0, 255, 0);
+		this->geTextMaxFPS->setAlignment(TEXT_ALIGN_LEFT);
+		this->geTextMaxFPS->setPosition(0, 530);
+		this->geTextMinFPS = TextEngine::getInstance()->createText("fonts/earth.ttf", 30, TEXT_DYNAMIC, 0, 255, 0);
+		this->geTextMinFPS->setAlignment(TEXT_ALIGN_LEFT);
+		this->geTextMinFPS->setPosition(0, 560);	
+	}
+	this->bDisplayFPS = display;
+}
+
+  
Index: orxonox/branches/md2_loader/src/lib/graphics/graphics_engine.h
===================================================================
--- orxonox/branches/md2_loader/src/lib/graphics/graphics_engine.h	(revision 4067)
+++ orxonox/branches/md2_loader/src/lib/graphics/graphics_engine.h	(revision 4070)
@@ -66,5 +66,7 @@
   float minFPS;      //!< minimal frame rate we ever got since start
 
-  Text* geText;
+  Text* geTextCFPS;
+  Text* geTextMaxFPS;
+  Text* geTextMinFPS;
 
   SDL_Rect **videoModes;
Index: orxonox/branches/md2_loader/src/lib/graphics/importer/md2Model.h
===================================================================
--- orxonox/branches/md2_loader/src/lib/graphics/importer/md2Model.h	(revision 4067)
+++ orxonox/branches/md2_loader/src/lib/graphics/importer/md2Model.h	(revision 4070)
@@ -12,4 +12,85 @@
 #include "abstract_model.h"
 
+
+//! These are the needed defines for the max values when loading .MD2 files
+#define MD2_MAX_TRIANGLES		4096
+#define MD2_MAX_VERTICES		2048
+#define MD2_MAX_TEXCOORDS		2048
+#define MD2_MAX_FRAMES			512
+#define MD2_MAX_SKINS			32
+#define MD2_MAX_FRAMESIZE		(MD2_MAX_VERTICES * 4 + 128)
+
+//! This holds the header information that is read in at the beginning of the file
+struct tMd2Header
+{ 
+   int magic;					//!< This is used to identify the file
+   int version;					//!< The version number of the file (Must be 8)
+   int skinWidth;				//!< The skin width in pixels
+   int skinHeight;				//!< The skin height in pixels
+   int frameSize;				//!< The size in bytes the frames are
+   int numSkins;				//!< The number of skins associated with the model
+   int numVertices;				//!< The number of vertices (constant for each frame)
+   int numTexCoords;			//!< The number of texture coordinates
+   int numTriangles;			//!< The number of faces (polygons)
+   int numGlCommands;			//!< The number of gl commands
+   int numFrames;				//!< The number of animation frames
+   int offsetSkins;				//!< The offset in the file for the skin data
+   int offsetTexCoords;			//!< The offset in the file for the texture data
+   int offsetTriangles;			//!< The offset in the file for the face data
+   int offsetFrames;			//!< The offset in the file for the frames data
+   int offsetGlCommands;		//!< The offset in the file for the gl commands data
+   int offsetEnd;				//!< The end of the file offset
+};
+
+
+//! This is used to store the vertices that are read in for the current frame directly from the file (compressed)
+struct tMd2AliasTriangle
+{
+   byte vertex[3];
+   byte lightNormalIndex;
+};
+
+//! This stores the normals and vertices for the frames (uncompressed)
+struct tMd2Triangle
+{
+   float vertex[3];
+   float normal[3];
+};
+
+//! This stores the indices into the vertex and texture coordinate arrays
+struct tMd2Face
+{
+   short vertexIndices[3];
+   short textureIndices[3];
+};
+
+//! This stores UV coordinates
+struct tMd2TexCoord
+{
+   short u, v;
+};
+
+// This stores the animation scale, translation and name information for a frame, plus verts
+struct tMd2AliasFrame
+{
+   float scale[3];
+   float translate[3];
+   char name[16];
+   tMd2AliasTriangle aliasVertices[1];
+};
+
+// This stores the frames vertices after they have been transformed
+struct tMd2Frame
+{
+   char strName[16];
+   tMd2Triangle *pVertices;
+};
+
+// This stores a skin name
+typedef char tMd2Skin[64];
+
+
+
+
 //! A class for representating a MD2Model
 class MD2Model : public AbstractModel {
@@ -20,6 +101,4 @@
 
 
- private:
-
 };
 
