Index: /trunk/src/lib/Makefile.am
===================================================================
--- /trunk/src/lib/Makefile.am	(revision 5535)
+++ /trunk/src/lib/Makefile.am	(revision 5536)
@@ -39,4 +39,5 @@
                         util/color.cc \
                         util/helper_functions.cc \
+                        util/multi_type.cc \
                         math/vector.cc \
                         math/curve.cc
@@ -55,4 +56,5 @@
                         util/color.h \
                         util/helper_functions.h \
+                        util/multi_type.h \
                         math/vector.h \
                         math/curve.h
Index: /trunk/src/lib/Makefile.in
===================================================================
--- /trunk/src/lib/Makefile.in	(revision 5535)
+++ /trunk/src/lib/Makefile.in	(revision 5536)
@@ -57,5 +57,6 @@
 	base_object.$(OBJEXT) class_list.$(OBJEXT) \
 	ini_parser.$(OBJEXT) substring.$(OBJEXT) color.$(OBJEXT) \
-	helper_functions.$(OBJEXT) vector.$(OBJEXT) curve.$(OBJEXT)
+	helper_functions.$(OBJEXT) multi_type.$(OBJEXT) \
+	vector.$(OBJEXT) curve.$(OBJEXT)
 libORXlibs_a_OBJECTS = $(am_libORXlibs_a_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
@@ -227,4 +228,5 @@
                         util/color.cc \
                         util/helper_functions.cc \
+                        util/multi_type.cc \
                         math/vector.cc \
                         math/curve.cc
@@ -243,4 +245,5 @@
                         util/color.h \
                         util/helper_functions.h \
+                        util/multi_type.h \
                         math/vector.h \
                         math/curve.h
@@ -310,4 +313,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helper_functions.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ini_parser.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi_type.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/null_parent.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p_node.Po@am__quote@
@@ -440,4 +444,18 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o helper_functions.obj `if test -f 'util/helper_functions.cc'; then $(CYGPATH_W) 'util/helper_functions.cc'; else $(CYGPATH_W) '$(srcdir)/util/helper_functions.cc'; fi`
+
+multi_type.o: util/multi_type.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT multi_type.o -MD -MP -MF "$(DEPDIR)/multi_type.Tpo" -c -o multi_type.o `test -f 'util/multi_type.cc' || echo '$(srcdir)/'`util/multi_type.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/multi_type.Tpo" "$(DEPDIR)/multi_type.Po"; else rm -f "$(DEPDIR)/multi_type.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/multi_type.cc' object='multi_type.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o multi_type.o `test -f 'util/multi_type.cc' || echo '$(srcdir)/'`util/multi_type.cc
+
+multi_type.obj: util/multi_type.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT multi_type.obj -MD -MP -MF "$(DEPDIR)/multi_type.Tpo" -c -o multi_type.obj `if test -f 'util/multi_type.cc'; then $(CYGPATH_W) 'util/multi_type.cc'; else $(CYGPATH_W) '$(srcdir)/util/multi_type.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/multi_type.Tpo" "$(DEPDIR)/multi_type.Po"; else rm -f "$(DEPDIR)/multi_type.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/multi_type.cc' object='multi_type.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o multi_type.obj `if test -f 'util/multi_type.cc'; then $(CYGPATH_W) 'util/multi_type.cc'; else $(CYGPATH_W) '$(srcdir)/util/multi_type.cc'; fi`
 
 vector.o: math/vector.cc
Index: /trunk/src/lib/util/multi_type.cc
===================================================================
--- /trunk/src/lib/util/multi_type.cc	(revision 5536)
+++ /trunk/src/lib/util/multi_type.cc	(revision 5536)
@@ -0,0 +1,57 @@
+/*
+   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: ...
+   co-programmer: ...
+*/
+
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_
+
+#include "multi_type.h"
+#include "stdincl.h"
+
+using namespace std;
+
+MultiType::MultiType(int value)
+{
+  this->type = M_Int;
+  this->value.typeInt = value;
+}
+
+
+MultiType::MultiType(float value)
+{
+  this->type = M_Float;
+  this->value.typeFloat = value;
+}
+
+
+MultiType::MultiType(char value)
+{
+  this->type = M_Char;
+  this->value.typeChar = value;
+}
+
+
+MultiType::MultiType(const char* value)
+{
+  this->type = M_String;
+  this->value.typeString = new char[strlen(value)+1];
+  strcpy(this->value.typeString, value);
+}
+
+/**
+ * standard deconstructor
+*/
+MultiType::~MultiType ()
+{
+  // delete what has to be deleted here
+}
Index: /trunk/src/lib/util/multi_type.h
===================================================================
--- /trunk/src/lib/util/multi_type.h	(revision 5536)
+++ /trunk/src/lib/util/multi_type.h	(revision 5536)
@@ -0,0 +1,50 @@
+/*!
+ * @file multi_type.h
+ * @brief Definition of ...
+*/
+
+#ifndef _MULTI_TYPE_H
+#define _MULTI_TYPE_H
+
+// FORWARD DECLARATION
+
+
+typedef enum
+{
+  M_Int,
+  M_Float,
+  M_Char,
+  M_String,
+
+} M_Type;
+
+
+
+//! A class for ...
+class MultiType {
+
+ public:
+   MultiType(int value);
+   MultiType(float value);
+   MultiType(char value);
+   MultiType(const char* value);
+
+  virtual ~MultiType();
+
+
+ private:
+
+   M_Type             type;
+   union Type
+   {
+     int              typeInt;
+     float            typeFloat;
+     char             typeChar;
+     char*            typeString;
+   } value;
+
+
+
+};
+
+#endif /* _MULTI_TYPE_H */
