Index: trunk/src/lib/Makefile.am
===================================================================
--- trunk/src/lib/Makefile.am	(revision 7163)
+++ trunk/src/lib/Makefile.am	(revision 7164)
@@ -19,14 +19,12 @@
 		lang/class_list.h \
 		util/substring.h \
-		util/array.h \
-		util/list.h \
-		util/t_stack.h \
+		util/multi_type.h \
 		util/color.h \
 		util/helper_functions.h \
-		util/multi_type.h \
 		util/executor/executor.h \
 		util/executor/executor_specials.h \
 		util/executor/functor_list.h \
 		util/count_pointer.h \
+		util/list.h \
 		coord/p_node.h \
 		data/data_tank.h \
Index: trunk/src/lib/event/event_handler.cc
===================================================================
--- trunk/src/lib/event/event_handler.cc	(revision 7163)
+++ trunk/src/lib/event/event_handler.cc	(revision 7164)
@@ -26,6 +26,4 @@
 #include "class_list.h"
 
-#include "t_stack.h"
-
 using namespace std;
 
@@ -51,5 +49,4 @@
   this->state = ES_GAME;
   this->keyMapper = NULL;
-  this->stateStack = NULL;
   this->eventsGrabbed = false;
 }
@@ -78,5 +75,4 @@
     }
   }
-  delete this->stateStack;
   delete this->keyMapper;
 
@@ -99,6 +95,4 @@
     this->keyMapper->loadKeyBindings(iniParser);
   }
-  if (this->stateStack == NULL)
-    this->stateStack = new tStack<short>;
 }
 
@@ -109,7 +103,7 @@
 void EventHandler::pushState(elState state)
 {
-  if (likely(state != ES_NULL && state != ES_ALL && this->stateStack != NULL))
-  {
-    this->stateStack->push(this->state);
+  if (likely(state != ES_NULL && state != ES_ALL ))
+  {
+    this->stateStack.push(this->state);
     this->setState(state);
   }
@@ -126,7 +120,6 @@
 elState EventHandler::popState()
 {
-  if (unlikely(this->stateStack == NULL))
-    return ES_NULL;
-  elState state = (elState)this->stateStack->pop();
+  elState state =  (elState)stateStack.top();
+  this->stateStack.pop();
   if (state == ES_NULL)
   {
Index: trunk/src/lib/event/event_handler.h
===================================================================
--- trunk/src/lib/event/event_handler.h	(revision 7163)
+++ trunk/src/lib/event/event_handler.h	(revision 7164)
@@ -11,8 +11,8 @@
 #include "key_mapper.h"
 #include "event_def.h"
+#include <stack>
 
 // FORWARD DECLARATION
 class EventListener;
-template<class T> class tStack;
 class IniParser;
 
@@ -59,5 +59,5 @@
   EventListener*             listeners[ES_NUMBER][EV_NUMBER]; //!< a list of registered listeners.
   elState                    state;                           //!< the state of the event handlder.
-  tStack<short>*             stateStack;                      //!< a stack for the States we are in.
+  std::stack<short>          stateStack;                      //!< a stack for the States we are in.
   KeyMapper*                 keyMapper;                       //!< reference to the key mapper.
 
Index: trunk/src/lib/graphics/shader.cc
===================================================================
--- trunk/src/lib/graphics/shader.cc	(revision 7163)
+++ trunk/src/lib/graphics/shader.cc	(revision 7164)
@@ -22,5 +22,4 @@
 #include <stdio.h>
 #include "debug.h"
-#include "array.h"
 
 #include "resource_manager.h"
@@ -126,7 +125,5 @@
 
 
-  tArray<char*>* program = fileReadArray(fileName);
-  if (program == NULL)
-    return false;
+  std::vector<char*>* program = fileReadArray(fileName);
 
   if (type == SHADER_VERTEX && GLEW_ARB_vertex_shader)
@@ -149,5 +146,5 @@
   {
     GLint status = 0;
-    glShaderSourceARB(shader, program->getCount(), (const char**)program->getArray(), NULL);
+    glShaderSourceARB(shader, program->size(), (const char**)&(*program)[0], NULL);
     glCompileShaderARB(shader);
     // checking on error.
@@ -158,6 +155,6 @@
       glAttachObjectARB(this->shaderProgram, shader);
   }
-  for (unsigned int i=0; i< program->getCount(); i++)
-    delete[] program->getArray()[i];
+  for (unsigned int i=0; i< program->size(); i++)
+    delete[] (*program)[i];
   delete program;
 }
@@ -190,5 +187,5 @@
 
 
-tArray<char*>* Shader::fileReadArray(const char* fileName)
+std::vector<char*>* Shader::fileReadArray(const char* fileName)
 {
   FILE*    stream;           //< The stream we use to read the file.
@@ -199,5 +196,5 @@
     return NULL;
   }
-  tArray<char*>* file = new tArray<char*>;
+  std::vector<char*>* file = new std::vector<char*>;
 
   char lineBuffer[PARSELINELENGHT];
@@ -207,8 +204,7 @@
     addString = new char[strlen(lineBuffer)+1];
     strcpy(addString, lineBuffer);
-    file->addEntry(addString);
+    file->push_back(addString);
   }
   fclose(stream);
-  file->finalizeArray();
   return file;
 }
Index: trunk/src/lib/graphics/shader.h
===================================================================
--- trunk/src/lib/graphics/shader.h	(revision 7163)
+++ trunk/src/lib/graphics/shader.h	(revision 7164)
@@ -9,6 +9,6 @@
 #include "base_object.h"
 #include "glincl.h"
+#include <vector>
 
-template<class T> class tArray;
 
 typedef enum
@@ -38,5 +38,5 @@
 
   char* fileRead(const char* fileName);
-  tArray<char*>* fileReadArray(const char* fileName);
+  std::vector<char*>* fileReadArray(const char* fileName);
 
   static bool checkShaderAbility();
Index: trunk/src/lib/lang/class_list.cc
===================================================================
--- trunk/src/lib/lang/class_list.cc	(revision 7163)
+++ trunk/src/lib/lang/class_list.cc	(revision 7164)
@@ -182,5 +182,6 @@
 ClassList* ClassList::getClassList(ClassID classID)
 {
-  std::vector<ClassList>::iterator classIT = std::find (ClassList::classList->begin(), ClassList::classList->end(), classID);
+  std::vector<ClassList>::iterator classIT =
+       std::find (ClassList::classList->begin(), ClassList::classList->end(), classID);
   return (likely(classIT != classList->end()))? &(*classIT) : NULL;
 }
Index: trunk/src/lib/util/array.h
===================================================================
--- trunk/src/lib/util/array.h	(revision 7163)
+++ 	(revision )
@@ -1,203 +1,0 @@
-/*
-   orxonox - the future of 3D-vertical-scrollers
-
-   Copyright (C) 2004 orx
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-### File Specific:
-   main-programmer: Benjamin Grauer
-   co-programmer: ...
-*/
-
-/*!
- * @file array.h
- * @brief Contains the tArray Class that handles arrays of classes.
- * this class creates a Array of a semi-Dynamic length.
- * beware, that after finalizing the array may not be resized again.
- *
- * This array is very performant and usefull, if you need a Dynamic Array,
- * that you fill once, and then only read the pushed in values to it again.
- */
-
-#ifndef _ARRAY_H
-#define _ARRAY_H
-#include "debug.h"
-
-using namespace std;
-
-//! tArray Class that handles dynamic-type arrays.
-template<class T> class tArray
-{
-  public:
-    tArray ();
-    ~tArray();
-
-    void finalizeArray ();
-    void addEntry (T entry);
-    void addEntry(T entry0, T entry1, T entry2);
-
-    /** @returns The array */
-    inline T* getArray () const { return this->array; };
-    inline const T getEntry(unsigned int number) const;
-    /** * @returns The Count of entries in the Array*/
-    inline unsigned int getCount()const { return this->entryCount; };
-    inline int getIndex(T* entry) const;
-    inline bool isFinalized() const { return this->finalized; }
-    void debug() const ;
-
-  private:
-    //! One entry of the Array
-    struct Entry
-    {
-      T            value;          //!< The value of this Entry.
-      Entry*       next;           //!< Pointer to the Next entry.
-    };
-
-    T*            array;           //!< The array that will be produced when finalizing the Array.
-    unsigned int  entryCount;      //!< The count of Entries in this Array.
-    bool          finalized;       //!< If this variable is set to true, the Array can not be changed anymore. true if finalized, false else (initially).
-    Entry*        firstEntry;      //!< Pointer to the first Entry of this Array
-    Entry*        currentEntry;    //!< Pointer to the current Entry of this Array. The one Entry we are working with.
-};
-
-
-/**
- *  creates a new Array
-*/
-template<class T>
-tArray<T>::tArray ()
-{
-  PRINTF(5)("crating new tArray\n");
-  this->firstEntry = new Entry;
-  this->firstEntry->next =NULL;
-  this->currentEntry = this->firstEntry;
-  this->finalized = false;
-  this->entryCount = 0; //0 means one entry
-}
-
-template<class T>
-    const T tArray<T>::getEntry(unsigned int number) const
-{
-  if (this->finalized && number < this->entryCount)
-    return this->array[number];
-}
-
-/**
- *  deletes an Array.
-   It does this by first deleting all the array-entries, and then delete the array[] itself
-*/
-template<class T>
-tArray<T>::~tArray()
-{
-  PRINTF(5)("deleting array\n");
-  if (!this->finalized)
-  {
-    Entry* walker = this->firstEntry;
-    Entry* previous;
-    while (walker)
-    {
-      previous = walker;
-      walker = walker->next;
-      delete previous;
-    }
-  }
-  if (this->finalized)
-    delete[] this->array;
-}
-
-/**
- *  finalizes an array.
-   This Function creates the array, and makes it ready to be sent to the application.
-*/
-template<class T>
-void tArray<T>::finalizeArray ()
-{
-  if (this->finalized)
-    return;
-  PRINTF(5)("Finalizing array. Length: %i\n", entryCount);
-  if (!(this->array = new T [this->entryCount]))
-    PRINTF(1)("could not allocate %i data Blocks\n", this->entryCount);
-  Entry* walker = this->firstEntry;
-  for (int i=0; i < this->entryCount; i++)
-  {
-    this->array[i] = walker->value;
-    walker = walker->next;
-  }
-  walker = this->firstEntry;
-  Entry* previous;
-  while (walker)
-  {
-    previous = walker;
-    walker = walker->next;
-    delete previous;
-  }
-  this->firstEntry = NULL;
-  this->finalized = true;
-}
-
-/**
- *  adds a new Entry to the Array
- * @param entry Entry to add.
-*/
-template<class T>
-void tArray<T>::addEntry (T entry)
-{
-  if (!this->finalized)
-  {
-    PRINTF(5)("adding new Entry to Array: %f\n", entry);
-
-    this->currentEntry->value = entry;
-    this->currentEntry->next = new Entry;
-    this->currentEntry = currentEntry->next;
-    this->currentEntry->next = NULL;
-    ++this->entryCount;
-  }
-  else
-    PRINTF(2)("adding failed, because array has already been finalized\n");
-}
-
-/**
- *  Adds 3 entries at once (convenience)
-*/
-template<class T>
-void tArray<T>::addEntry (T entry0, T entry1, T entry2)
-{
-  this->addEntry(entry0);
-  this->addEntry(entry1);
-  this->addEntry(entry2);
-}
-
-
-/**
- *  gets back the index of the entry in the array. value check
- * @param entry: the entry to look up
- * @returns the index in the array, -1 if not found
- */
-template<class T>
-int tArray<T>::getIndex(T* entry) const
-{
-  if( unlikely(this->finalized == false))
-    return -1;
-
-  for(int i = 0; i < this->entryCount; ++i)
-  {
-    if( unlikely(*entry == this->array[i]))
-      return i;
-  }
-}
-
-
-/**
- *  Simple debug info about the Array
-*/
-template<class T>
-void tArray<T>::debug () const
-{
-  PRINT(0)("entryCount=%i, address=%p\n", this->entryCount, this->array);
-}
-
-#endif
Index: trunk/src/lib/util/t_stack.h
===================================================================
--- trunk/src/lib/util/t_stack.h	(revision 7163)
+++ 	(revision )
@@ -1,133 +1,0 @@
-/*
-   orxonox - the future of 3D-vertical-scrollers
-
-   Copyright (C) 2004 orx
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-### File Specific:
-   main-programmer: Benjamin Grauer
-   co-programmer: ...
-*/
-
-/*!
-  @file t_stack.h
-  @brief Contains the tStack Class that handles stacks of classes.
-  this class creates a Array of a semi-Dynamic length.
-  beware, that after finalizing the array may not be resized again.
-*/
-
-#ifndef _T_STACK_H
-#define _T_STACK_H
-
-using namespace std;
-
-//! Stack Class that handles dynamic-type Stacks.
-template<typename T>
-    class tStack
-{
-  public:
-    tStack();
-    ~tStack();
-
-    void push(T entry);
-    T pop();
-    T getTop();
-    /** @returns the Size of the Stack (0 if empty) */
-    unsigned int getSize() { return this->entryCount; };
-
-    // stack copying.
-    // tStack<T>& operator= (const tStack<T>& stack);
-
-    void debug() const ;
-
-  private:
-    //! One entry of the Stack
-    struct tStackEntry
-    {
-      T              value;          //!< The value of this Entry.
-      tStackEntry*   next;           //!< Pointer to the Next entry.
-    };
-
-
-    unsigned int     entryCount;      //!< The count of Entries in this Array.
-    tStackEntry*     topEntry;        //!< Pointer to the first Entry of this Array
-};
-
-/**
- * creates and initializes a Stack
- */
-template<typename T>
-    tStack<T>::tStack()
-{
-  this->topEntry = NULL;
-  this->entryCount = 0;
-}
-
-/**
- * delocates alocated memory from a Stack.
- * This does not delete the entries of the Stack
- */
-template<typename T>
-    tStack<T>::~tStack()
-{
-  tStackEntry* delEntry;
-  while (this->topEntry != NULL)
-  {
-    delEntry = this->topEntry;
-    this->topEntry = topEntry->next;
-    delete delEntry;
-  }
-}
-
-
-/**
- * pushes one Entry into the Stack.
- * @param entry the Entry to push into the Stack
- */
-template<typename T>
-    void tStack<T>::push(T entry)
-{
-  tStackEntry* newEntry = new tStackEntry;
-  newEntry->value = entry;
-  newEntry->next = this->topEntry;
-  this->topEntry = newEntry;
-
-  this->entryCount++;
-}
-
-
-/**
- * pops up the topmost enrty of the Stack, and moves the pointer to the next Stack-entry.
- * @returns the top-most enrty.
- */
-template<typename T>
-    T tStack<T>::pop()
-{
-  if (this->topEntry == NULL)
-    return 0;
-
-  tStackEntry* retEntry = this->topEntry;
-  T retVal = retEntry->value;
-  this->topEntry = this->topEntry->next;
-  delete retEntry;
-  this->entryCount--;
-  return retVal;
-}
-
-/**
- * @returns the topMost entry of the Stack without removing it.
- */
-template<typename T>
-    T tStack<T>::getTop()
-{
-  if (this->topEntry != NULL)
-    return this->topEntry->value;
-  else
-    return NULL;
-}
-
-#endif /* _T_STACK_H */
