Index: orxonox/branches/importer/src/Makefile.am
===================================================================
--- orxonox/branches/importer/src/Makefile.am	(revision 2747)
+++ orxonox/branches/importer/src/Makefile.am	(revision 2795)
@@ -6,7 +6,7 @@
 
 bin_PROGRAMS=orxonox
-orxonox_SOURCES=orxonox.cc world.cc player.cc data_tank.cc world_entity.cc vector.cc camera.cc collision.cc command_node.cc ini_parser.cc keynames.cc track.cc base_entity.cc game_loader.cc campaign.cc story_entity.cc
+orxonox_SOURCES=orxonox.cc world.cc player.cc data_tank.cc world_entity.cc vector.cc camera.cc collision.cc command_node.cc ini_parser.cc keynames.cc track.cc base_entity.cc game_loader.cc campaign.cc story_entity.cc object.cc array.cc material.cc
 
-noinst_HEADERS=ability.h data_tank.h npc.h stdincl.h ai.h environment.h orxonox.h synchronisable.h base_entity.h error.h player.h track.h camera.h ini_parser.h power_up.h vector.h collision.h keynames.h proto_class.h world.h command_node.h list.h shoot_laser.h world_entity.h coordinates.h message_structures.h shoot_rocket.h
+noinst_HEADERS=ability.h data_tank.h npc.h stdincl.h ai.h environment.h orxonox.h synchronisable.h base_entity.h error.h player.h track.h camera.h ini_parser.h power_up.h vector.h collision.h keynames.h proto_class.h world.h command_node.h list.h shoot_laser.h world_entity.h coordinates.h message_structures.h shoot_rocket.h object.h array.h material.h
 
 
Index: orxonox/branches/importer/src/Makefile.in
===================================================================
--- orxonox/branches/importer/src/Makefile.in	(revision 2747)
+++ orxonox/branches/importer/src/Makefile.in	(revision 2795)
@@ -57,5 +57,6 @@
 	command_node.$(OBJEXT) ini_parser.$(OBJEXT) keynames.$(OBJEXT) \
 	track.$(OBJEXT) base_entity.$(OBJEXT) game_loader.$(OBJEXT) \
-	campaign.$(OBJEXT) story_entity.$(OBJEXT)
+	campaign.$(OBJEXT) story_entity.$(OBJEXT) object.$(OBJEXT) \
+	array.$(OBJEXT) material.$(OBJEXT)
 orxonox_OBJECTS = $(am_orxonox_OBJECTS)
 orxonox_LDADD = $(LDADD)
@@ -63,11 +64,12 @@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/base_entity.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/camera.Po ./$(DEPDIR)/campaign.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/collision.Po \
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/array.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/base_entity.Po ./$(DEPDIR)/camera.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/campaign.Po ./$(DEPDIR)/collision.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/command_node.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/data_tank.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/game_loader.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/ini_parser.Po ./$(DEPDIR)/keynames.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/material.Po ./$(DEPDIR)/object.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/orxonox.Po ./$(DEPDIR)/player.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/story_entity.Po ./$(DEPDIR)/track.Po \
@@ -163,6 +165,6 @@
 AM_CXXFLAGS = "-I/usr/X11R6/include"
 AM_LDFLAGS = "-L/usr/Mesa-6.0.1/lib  -L/usr/X11R6/lib -lXt -lX11" $(MWINDOWS)
-orxonox_SOURCES = orxonox.cc world.cc player.cc data_tank.cc world_entity.cc vector.cc camera.cc collision.cc command_node.cc ini_parser.cc keynames.cc track.cc base_entity.cc game_loader.cc campaign.cc story_entity.cc
-noinst_HEADERS = ability.h data_tank.h npc.h stdincl.h ai.h environment.h orxonox.h synchronisable.h base_entity.h error.h player.h track.h camera.h ini_parser.h power_up.h vector.h collision.h keynames.h proto_class.h world.h command_node.h list.h shoot_laser.h world_entity.h coordinates.h message_structures.h shoot_rocket.h
+orxonox_SOURCES = orxonox.cc world.cc player.cc data_tank.cc world_entity.cc vector.cc camera.cc collision.cc command_node.cc ini_parser.cc keynames.cc track.cc base_entity.cc game_loader.cc campaign.cc story_entity.cc object.cc array.cc material.cc
+noinst_HEADERS = ability.h data_tank.h npc.h stdincl.h ai.h environment.h orxonox.h synchronisable.h base_entity.h error.h player.h track.h camera.h ini_parser.h power_up.h vector.h collision.h keynames.h proto_class.h world.h command_node.h list.h shoot_laser.h world_entity.h coordinates.h message_structures.h shoot_rocket.h object.h array.h material.h
 all: all-am
 
@@ -231,4 +233,5 @@
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base_entity.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/camera.Po@am__quote@
@@ -240,4 +243,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ini_parser.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keynames.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/material.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/player.Po@am__quote@
Index: orxonox/branches/importer/src/array.cc
===================================================================
--- orxonox/branches/importer/src/array.cc	(revision 2795)
+++ orxonox/branches/importer/src/array.cc	(revision 2795)
@@ -0,0 +1,75 @@
+#include "array.h"
+
+Array::Array ()
+{
+  createArray (2000);
+}
+Array::Array (unsigned int arraySize)
+{
+  createArray (arraySize);
+}
+
+void Array::createArray (unsigned int newArraySize)
+{
+  array = new GLfloat [newArraySize];
+  entryCount = -1; //0 means one entry
+  arraySize = newArraySize;
+  return;
+}
+
+void Array::resizeArray (unsigned int newSize)
+{
+  GLfloat* newArray = new GLfloat [newSize];
+  
+  for (int i=0; i<=entryCount; i++)
+      newArray[i] = array[i];
+
+  delete [] array;
+  array = newArray;
+  arraySize = newSize;
+
+  return;
+}
+  
+void Array::finalizeArray (void)
+{
+  resizeArray (entryCount+1);
+  return;
+}
+
+
+void Array::addEntry (GLfloat entry)
+{
+  entryCount++;
+
+  if (entryCount > arraySize)
+    resizeArray(arraySize+2000);
+  
+  array[entryCount] = entry;
+
+}
+
+void Array::addEntry (GLfloat entry0, GLfloat entry1, GLfloat entry2)
+{
+  addEntry (entry0);
+  addEntry (entry1);
+  addEntry (entry2);
+}
+  
+
+GLfloat* Array::getArray ()
+{
+  return array;
+}
+
+int Array::getCount()
+{
+  return entryCount;
+}
+
+
+
+void Array::debug ()
+{
+  printf ("arraySize=%i, entryCount=%i, address=%p\n", arraySize, entryCount, array);
+}
Index: orxonox/branches/importer/src/array.h
===================================================================
--- orxonox/branches/importer/src/array.h	(revision 2795)
+++ orxonox/branches/importer/src/array.h	(revision 2795)
@@ -0,0 +1,29 @@
+#ifndef _ARRAY_H
+#define _ARRAY_H
+
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include <fstream.h>
+class Array
+{
+ public:
+  Array ();
+  Array (unsigned int arraySize);
+
+  void createArray (unsigned int newArraySize);
+  void resizeArray (unsigned int newSize);
+  void finalizeArray (void);
+  void addEntry (GLfloat entry);
+  void addEntry(GLfloat entry0, GLfloat entry1, GLfloat entry2);
+  
+  GLfloat* getArray ();
+  int getCount();
+  void debug(void);
+ private:
+  GLfloat* array;
+  unsigned int arraySize;
+  unsigned int entryCount;
+
+};
+
+#endif
Index: orxonox/branches/importer/src/material.cc
===================================================================
--- orxonox/branches/importer/src/material.cc	(revision 2795)
+++ orxonox/branches/importer/src/material.cc	(revision 2795)
@@ -0,0 +1,152 @@
+#include "material.h"
+
+Material::Material()
+{
+  init();
+  
+  setName ("");
+}
+
+Material::Material (char* mtlName)
+{
+  init();
+  
+  setName (mtlName);
+}
+
+Material* Material::addMaterial(char* mtlName)
+{
+  Material* newMat = new Material(mtlName);
+  Material* tmpMat = this;
+  while (tmpMat->nextMat != NULL)
+    {
+      tmpMat = tmpMat->nextMat;
+    }
+      tmpMat->nextMat = newMat;
+      return newMat;
+  
+}
+
+void Material::init(void)
+{
+  nextMat = NULL;
+
+  setIllum(1);
+  setDiffuse(0,0,0);
+  setAmbient(0,0,0);
+  setSpecular(0,0,0);
+  setTransparency(0.0);
+}
+
+
+void Material::setName (char* mtlName)
+{
+  strcpy(name, mtlName);
+  //  printf ("adding new Material: %s, %p\n", this->getName(), this);
+
+}
+char* Material::getName (void)
+{
+  return name;
+}
+
+
+void Material::setIllum (int illum)
+{
+  illumModel = illum;
+  //  printf ("setting illumModel to: %i\n", illumModel);
+}
+void Material::setIllum (char* illum)
+{
+  setIllum (atoi(illum));
+}
+
+void Material::setDiffuse (float r, float g, float b)
+{
+  diffuse[0] = r;
+  diffuse[1] = g;
+  diffuse[2] = b;  
+  diffuse[3] = 1.0;
+
+  //  printf ("setting Diffuse Color to r=%f g=%f b=%f\n", r, g, b);
+}
+void Material::setDiffuse (char* rgb)
+{
+  char r[20],g[20],b[20];
+  sscanf (rgb, "%s %s %s", r, g, b);
+  setDiffuse (atof(r), atof(g), atof(b));
+}
+
+void Material::setAmbient (float r, float g, float b)
+{
+  ambient[0] = r;
+  ambient[1] = g;
+  ambient[2] = b;
+  ambient[3] = 1.0;
+  //  printf ("setting Ambient Color to r=%f g=%f b=%f\n", r, g, b);
+}
+void Material::setAmbient (char* rgb)
+{
+  char r[20],g[20],b[20];
+  sscanf (rgb, "%s %s %s", r, g, b);
+  setAmbient (atof(r), atof(g), atof(b));
+}
+
+void Material::setSpecular (float r, float g, float b)
+{
+  specular[0] = r;
+  specular[1] = g;
+  specular[2] = b;
+  specular[3] = 1.0;
+  //printf ("setting Specular Color to r=%f g=%f b=%f\n", r, g, b);
+}
+void Material::setSpecular (char* rgb)
+{
+  char r[20],g[20],b[20];
+  sscanf (rgb, "%s %s %s", r, g, b);
+  setSpecular (atof(r), atof(g), atof(b));
+}
+
+
+void Material::setTransparency (float trans)
+{
+  transparency = trans;
+}
+void Material::setTransparency (char* trans)
+{
+  char tr[20];
+  sscanf (trans, "%s", tr);
+  setTransparency (atof(tr));
+}
+
+
+Material* Material::search (char* mtlName)
+{
+  Material* searcher = this;
+  while (searcher != NULL)
+    {
+      if (!strcmp (searcher->getName(), mtlName))
+	return searcher;
+      searcher = searcher->nextMat;
+    }
+  return NULL;
+}
+
+bool Material::select (void)
+{
+  // setting diffuse color
+  //  glColor3f (diffuse[0], diffuse[1], diffuse[2]);
+  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
+
+  // setting ambient color
+  glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
+
+  // setting up Sprecular
+  glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
+  
+  // setting illumination Model 
+  if (illumModel == 1)
+    glShadeModel(GL_FLAT);
+  else if (illumModel >= 2)
+    glShadeModel(GL_SMOOTH);
+}
Index: orxonox/branches/importer/src/material.h
===================================================================
--- orxonox/branches/importer/src/material.h	(revision 2795)
+++ orxonox/branches/importer/src/material.h	(revision 2795)
@@ -0,0 +1,47 @@
+#ifndef _MATERIAL_H
+#define _MATERIAL_H
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include <stdlib.h>
+#include <fstream.h>
+
+class Material
+{
+ public:
+  Material ();
+  Material (char* mtlName);
+  Material* addMaterial(char* mtlName);
+
+  void init(void);
+  ~Material ();
+
+
+  void setName (char* mtlName);
+  char* getName (void);
+  void setIllum (int illum);
+  void setIllum (char* illum);
+  void setDiffuse (float r, float g, float b);
+  void setDiffuse (char* rgb);
+  void setAmbient (float r, float g, float b);
+  void setAmbient (char* rgb);
+  void setSpecular (float r, float g, float b);
+  void setSpecular (char* rgb);
+  void setTransparency (float trans);
+  void setTransparency (char* trans);
+
+  Material* search (char* mtlName);
+
+  bool select (void);
+
+  Material* nextMat;
+
+ private:
+  char name [50];
+  int illumModel;
+  float diffuse [4];
+  float ambient [4];
+  float specular [4];
+  float transparency;
+
+};
+#endif
Index: orxonox/branches/importer/src/object.cc
===================================================================
--- orxonox/branches/importer/src/object.cc	(revision 2795)
+++ orxonox/branches/importer/src/object.cc	(revision 2795)
@@ -0,0 +1,271 @@
+#include "object.h"
+
+Object::Object ()
+{
+
+  initialize();
+
+  importFile ("reaphigh.obj");
+
+  finalize();
+}
+
+Object::Object(char* fileName)
+{
+  initialize();
+
+  importFile (fileName);
+
+  finalize();
+}
+
+bool Object::importFile (char* fileName)
+{
+  objFile = fileName;
+  this->readFromObjFile (objFile);
+  return true;
+}
+
+bool Object::initialize (void)
+{
+  faceMode = -1;
+  if ( (listNumber = glGenLists(1)) == 0 )
+    {
+      printf ("list could not be created for this Object\n");
+      return false;
+    }
+  glNewList (listNumber, GL_COMPILE);
+  glEnableClientState (GL_VERTEX_ARRAY);
+  //  glEnableClientState (GL_NORMAL_ARRAY);
+  //  glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+  return true;
+}
+
+bool Object::finalize(void)
+{
+  glEndList();
+  return true;
+}
+
+void Object::draw (void)
+{
+  glCallList (listNumber);
+}
+
+
+bool Object::readFromObjFile (char* fileName)
+{
+  OBJ_FILE = new ifstream (fileName);
+  if (!OBJ_FILE->is_open())
+    {
+      printf ("unable to open file: %s\n", fileName);
+      return false;
+    }
+  
+  char Buffer[500];
+  vertices = new Array();
+  normals = new Array();
+  while(!OBJ_FILE->eof())
+    {
+      OBJ_FILE->getline(Buffer, 500);
+      //      printf("%s\n", Buffer);
+      
+
+      // case vertice
+      if (!strncmp(Buffer, "v ", 2))
+	{
+	  readVertex(Buffer+2);
+	}
+
+      // case face
+      else if (!strncmp(Buffer, "f ", 2))
+	{
+	  readFace (Buffer+2);
+	}
+      
+      else if (!strncmp(Buffer, "mtllib", 6))
+	{
+	  readMtlLib (Buffer+7);
+	}
+
+      else if (!strncmp(Buffer, "usemtl", 6))
+	{
+	  readUseMtl (Buffer+7);
+	}
+
+      // case VertexNormal
+      else if (!strncmp(Buffer, "vn ", 2))
+      {
+	readVertexNormal(Buffer+3);
+      }
+
+      // case vt
+      else if (!strncmp(Buffer, "vt ", 2))
+      {
+	//	printf ("verticeTangent found");
+      }
+	  
+
+    }
+  
+
+  
+  OBJ_FILE->close();
+  glEnd();
+  
+}
+
+
+bool Object::readVertex (char* vertexString)
+{
+  readVertices = true;
+  char subbuffer1[20];
+  char subbuffer2[20];
+  char subbuffer3[20];
+  sscanf (vertexString, "%s %s %s", subbuffer1, subbuffer2, subbuffer3);
+  vertices->addEntry(atof(subbuffer1), atof(subbuffer2), atof(subbuffer3));
+  return true;
+}
+
+bool Object::readFace (char* faceString)
+{
+  if (readVertices == true)
+    {
+      vertices->finalizeArray();
+      glVertexPointer(3, GL_FLOAT, 0, vertices->getArray());
+      normals->finalizeArray();
+      glNormalPointer(GL_FLOAT, 0, normals->getArray());
+    }
+
+  readVertices = false;
+  char subbuffer1[20];
+  char subbuffer2[20];
+  char subbuffer3[20];
+  char subbuffer4[20] ="";
+  sscanf (faceString, "%s %s %s %s", subbuffer1, subbuffer2, subbuffer3, subbuffer4);
+  //  printf("%s, %s, %s\n", subbuffer1,subbuffer2,subbuffer3);
+  if (!strcmp(subbuffer4, ""))
+    {
+      if (faceMode != 3)
+	{
+	  if (faceMode != -1)
+	    glEnd();
+	  glBegin(GL_TRIANGLES);
+	}
+      
+      faceMode = 3;
+      //printf ("triag: %s, %s, %s\n", subbuffer1, subbuffer2, subbuffer3);
+      addGLElement(subbuffer1);
+      addGLElement(subbuffer2);
+      addGLElement(subbuffer3);
+      return true;
+    }
+  else
+    {
+      if (faceMode != 4)
+	{
+	  if (faceMode != -1)
+	    glEnd();
+	  glBegin(GL_QUADS);
+	}
+      faceMode = 4;
+      //      printf ("quad: %s, %s, %s, %s\n", subbuffer1, subbuffer2, subbuffer3, subbuffer4);
+      addGLElement(subbuffer1);
+      addGLElement(subbuffer2);
+      addGLElement(subbuffer3);
+      addGLElement(subbuffer4);
+      return true;
+    }
+}
+
+bool Object::addGLElement (char* elementString)
+{
+  char* vertex = elementString;
+  char* texture;
+  char* normal;
+  texture = strstr (vertex, "/");
+  texture[0] = '\0';
+  texture ++;
+  normal = strstr (texture, "/");
+  normal[0] = '\0';
+  normal ++;
+  
+  glNormal3fv(normals->getArray() +(atoi(normal)-1)*3);
+  glArrayElement(atoi(vertex)-1); //  glVertex3fv(vertices->getArray() +(atoi(vertex)-1)*3);
+
+}
+
+bool Object::readVertexNormal (char* normalString)
+{
+  readVertices = true;
+  char subbuffer1[20];
+  char subbuffer2[20];
+  char subbuffer3[20];
+  sscanf (normalString, "%s %s %s", subbuffer1, subbuffer2, subbuffer3);
+  //  printf("%s, %s, %s\n", subbuffer1,subbuffer2,subbuffer3);
+  normals->addEntry(atof(subbuffer1), atof(subbuffer2), atof(subbuffer3));
+  return true;
+}
+
+bool Object::readMtlLib (char* mtlFile)
+{
+  MTL_FILE = new ifstream (mtlFile);
+  if (!MTL_FILE->is_open())
+    {
+      printf ("unable to open file: %s\n", mtlFile);
+      return false;
+    }
+  
+  char Buffer[500];
+  vertices = new Array();
+  material = new Material();
+  Material* tmpMat = material;
+  while(!MTL_FILE->eof())
+    {
+      MTL_FILE->getline(Buffer, 500);
+      //      printf("%s\n", Buffer);
+      
+
+      // create new Material
+      if (!strncmp(Buffer, "newmtl ", 2))
+	{
+	  tmpMat = tmpMat->addMaterial(Buffer+7);
+	  //	  printf ("%s, %p\n", tmpMat->getName(), tmpMat);
+	}
+      // setting a illumMode
+      else if (!strncmp(Buffer, "illum", 5))
+	{
+	  tmpMat->setIllum(Buffer+6);
+
+	}
+      // setting Diffuse Color
+      else if (!strncmp(Buffer, "Kd", 2))
+	{
+	  tmpMat->setDiffuse(Buffer+3);
+	}
+      // setting Ambient Color
+      else if (!strncmp(Buffer, "Ka", 2))
+	{
+	  tmpMat->setAmbient(Buffer+3);
+	}
+      // setting Specular Color
+      else if (!strncmp(Buffer, "Ks", 2))
+	{
+	  tmpMat->setSpecular(Buffer+3);
+	}
+    }
+  return true;
+}
+
+bool Object::readUseMtl (char* matString)
+{
+  if (faceMode != -1)
+    glEnd();
+  faceMode = 0;
+  //printf ("%s\n", matString);
+  //  glColor3f((float)rand()/2000000000.0,(float)rand()/2000000000.0,(float)rand()/2000000000.0);
+  material->search(matString)->select();
+}
+
+
Index: orxonox/branches/importer/src/object.h
===================================================================
--- orxonox/branches/importer/src/object.h	(revision 2795)
+++ orxonox/branches/importer/src/object.h	(revision 2795)
@@ -0,0 +1,50 @@
+#ifndef _OBJECT_H
+#define _OBJECT_H
+
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+#include "array.h"
+#include "material.h"
+#include <fstream.h>
+
+class Object
+{
+ public:
+  Object ();
+  Object (char* fileName);
+  ~Object ();
+  
+  bool importFile (char* fileName);
+  bool initialize (void);
+  bool finalize(void);
+  void draw (void);
+
+  bool readFromObjFile (char* fileName);
+
+
+ private:
+  GLuint listNumber;
+  Array* vertices;
+  int verticesCount;
+  Array* colors;
+  Array* normals;
+  char* objFile;
+  int faceMode;
+  bool readVertices;
+  Material* material;
+
+  ifstream* OBJ_FILE;
+  ifstream* MTL_FILE;
+  
+  bool readVertex (char* vertexString);
+  bool readFace (char* faceString);
+  bool readVT (char* vtString);
+  bool readVertexNormal (char* normalString);
+  bool readMtlLib (char* matFile);
+  bool readUseMtl (char* mtlString);
+
+  bool addGLElement (char* elementString);
+};
+
+#endif
Index: orxonox/branches/importer/src/player.cc
===================================================================
--- orxonox/branches/importer/src/player.cc	(revision 2747)
+++ orxonox/branches/importer/src/player.cc	(revision 2795)
@@ -25,4 +25,7 @@
 Player::Player(bool isFree) : WorldEntity(isFree)
 {
+
+  obj = new Object ("reaphigh.obj");
+  /*
   objectList = glGenLists(1);
   glNewList (objectList, GL_COMPILE);
@@ -48,5 +51,5 @@
   
   glEndList ();
-
+  */
 }
 
@@ -104,5 +107,8 @@
   glMultMatrixf ((float*)matrix);
   
-  glCallList (objectList);
+  glMatrixMode (GL_MODELVIEW);
+  glRotatef (-90, 0,1,0);
+  obj->draw();
+  //  glCallList (objectList);
 
   
Index: orxonox/branches/importer/src/player.h
===================================================================
--- orxonox/branches/importer/src/player.h	(revision 2747)
+++ orxonox/branches/importer/src/player.h	(revision 2795)
@@ -8,4 +8,5 @@
 
 #include "world_entity.h"
+#include "object.h"
 
 //! Basic controllable WorldEntity
@@ -37,4 +38,5 @@
   float acceleration;
   GLuint objectList;
+  Object* obj;
   
   void move (float time);
