Index: orxonox/branches/physics/src/Makefile.am
===================================================================
--- orxonox/branches/physics/src/Makefile.am	(revision 4274)
+++ orxonox/branches/physics/src/Makefile.am	(revision 4283)
@@ -14,4 +14,5 @@
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/util
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/math
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/tinyxml
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/defs
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/font
@@ -24,4 +25,6 @@
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/physics
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/physics/fields
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/loading
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/track
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/subprojects
 
@@ -31,25 +34,32 @@
 
 
-bin_PROGRAMS=orxonox 
-noinst_LIBRARIES = libORXgui.a
-
-orxonox_DEPENDENCIES = libORXgui.a
-orxonox_LDADD = libORXgui.a $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
+bin_PROGRAMS = orxonox 
+
+orxonox_DEPENDENCIES = lib/gui/gui/libORXgui.a \
+		       lib/tinyxml/libtinyxml.a
+orxonox_LDADD = lib/gui/gui/libORXgui.a \
+                lib/tinyxml/libtinyxml.a \
+                $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
+
 orxonox_SOURCES= orxonox.cc \
-		 game_loader.cc \
+		 defs/keynames.cc \
 		 command_node.cc \
-		 keynames.cc \
-		 world_entities/camera.cc \
-		 track_manager.cc \
-		 track_node.cc \
-		 factory.cc \
+		 util/loading/game_loader.cc \
+		 util/track/track_manager.cc \
+		 util/track/track_node.cc \
 		 util/animation/animation.cc \
 		 util/animation/animation3d.cc \
 		 util/animation/animation_player.cc \
-		 garbage_collector.cc \
+		 util/object_manager.cc \
+		 util/garbage_collector.cc \
+		 util/common/list.cc \
+		 util/resource_manager.cc \
+		 util/loading/factory.cc \
+		 util/loading/load_param.cc \
 		 story_entities/story_entity.cc \
 		 story_entities/campaign.cc \
 		 story_entities/world.cc \
 		 world_entities/world_entity.cc \
+		 world_entities/camera.cc \
 		 world_entities/player.cc \
 		 world_entities/environment.cc \
@@ -63,9 +73,8 @@
 		 world_entities/test_gun.cc \
 		 world_entities/test_bullet.cc \
-		 ai/ai.cc \
+		 world_entities/test_entity.cc \
 		 lib/coord/p_node.cc \
 		 lib/coord/null_parent.cc \
 		 lib/coord/helper_parent.cc \
-		 lib/data/data_tank.cc \
 		 lib/graphics/graphics_engine.cc \
 		 lib/graphics/light.cc \
@@ -73,4 +82,5 @@
 		 lib/graphics/importer/array.cc \
 		 lib/graphics/importer/objModel.cc \
+		 lib/graphics/importer/md2Model.cc \
 		 lib/graphics/importer/primitive_model.cc \
 		 lib/graphics/importer/model.cc \
@@ -84,6 +94,4 @@
 		 lib/util/ini_parser.cc \
 		 lib/util/substring.cc \
-		 util/common/list.cc \
-		 util/resource_manager.cc \
 		 util/physics/i_physics.cc \
 		 util/physics/physics_engine.cc \
@@ -96,25 +104,20 @@
 		 lib/math/curve.cc \
 		 glmenu/glmenu_imagescreen.cc \
-		 lib/xmlparser/tinyxml.cc \
-		 lib/xmlparser/tinystr.cc \
-		 lib/xmlparser/tinyxmlerror.cc \
-		 lib/xmlparser/tinyxmlparser.cc \
 		 subprojects/benchmark.cc
 
 noinst_HEADERS = orxonox.h \
-		 game_loader.h \
-		 track_manager.h \
                  ability.h \
-		 world_entities/camera.h \
-		 keynames.h \
+		 defs/keynames.h \
 		 command_node.h \
-		 message_structures.h \
-		 track_manager.h \
-		 track_node.h \
+		 defs/message_structures.h \
+		 util/loading/game_loader.h \
+		 util/track/track_manager.h \
+		 util/track/track_node.h \
 		 util/animation/animation.h \
 		 util/animation/t_animation.h \
 		 util/animation/animation3d.h \
 		 util/animation/animation_player.h \
-		 garbage_collector.h \
+		 util/object_manager.h \
+		 util/garbage_collector.h \
 		 story_entities/story_entity.h \
 		 story_entities/story_def.h \
@@ -122,4 +125,5 @@
 		 story_entities/world.h \
 		 world_entities/world_entity.h \
+		 world_entities/camera.h \
 		 world_entities/player.h \
 		 world_entities/npc.h \
@@ -135,4 +139,5 @@
 		 world_entities/test_gun.h \
 		 world_entities/test_bullet.h \
+		 world_entities/test_entity.h \
 		 ai/ai.h \
 		 network/synchronisable.h \
@@ -144,4 +149,5 @@
 		 defs/debug.h \
 		 defs/globals.h \
+		 defs/compiler.h \
 		 lib/coord/p_node.h \
 		 lib/coord/null_parent.h \
@@ -150,8 +156,15 @@
 		 lib/graphics/light.h \
 		 lib/graphics/text_engine.h \
+		 lib/graphics/importer/array.h \
+		 lib/graphics/importer/abstract_model.h \
+		 lib/graphics/importer/objModel.h \
+		 lib/graphics/importer/md2Model.h \
+		 lib/graphics/importer/primitive_model.h \
+		 lib/graphics/importer/model.h \
+		 lib/graphics/importer/material.h \
+		 lib/graphics/importer/texture.h \
 		 lib/graphics/particles/particle_engine.h \
 		 lib/graphics/particles/particle_system.h \
 		 lib/graphics/particles/particle_emitter.h \
-		 lib/data/data_tank.h \
 		 lib/lang/base_entity.h \
 		 lib/lang/base_object.h \
@@ -167,4 +180,6 @@
 		 util/physics/fields/point_gravity.h \
 		 util/physics/fields/twirl.h \
+		 util/loading/factory.h \
+		 util/loading/load_param.h \
 		 lib/util/ini_parser.h \
 		 lib/util/substring.h \
@@ -172,33 +187,9 @@
 		 lib/math/curve.h \
 		 glmenu/glmenu_imagescreen.h \
-		 lib/gui/gui/gui.h \
-	         lib/gui/gui/gui_gtk.h \
-	         lib/gui/gui/gui_element.h \
-	         lib/gui/gui/gui_video.h \
-	         lib/gui/gui/gui_audio.h \
-	         lib/gui/gui/gui_exec.h \
-	         lib/gui/gui/gui_flags.h \
-	         lib/gui/gui/gui_banner.h \
-	         lib/gui/gui/gui_keys.h \
-	         lib/gui/gui/gui_update.h \
 		 subprojects/benchmark.h
 
-libORXgui_a_CPPFLAGS=$(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
-
-libORXgui_a_SOURCES = lib/gui/gui/gui.cc \
-			    lib/gui/gui/gui_gtk.cc \
-	                    lib/gui/gui/gui_element.cc \
-	       	            lib/gui/gui/gui_video.cc \
-	                    lib/gui/gui/gui_audio.cc \
-	                    lib/gui/gui/gui_exec.cc \
-	                    lib/gui/gui/gui_flags.cc \
-	                    lib/gui/gui/gui_banner.cc \
-	                    lib/gui/gui/gui_keys.cc \
-	                    lib/gui/gui/gui_update.cc
-
 
 ## orxonox.conf will be used from home-dir instead.
-EXTRA_DIST = orxonox.conf \
-	     proto/proto_class.h \
+EXTRA_DIST = proto/proto_class.h \
 	     proto/proto_class.cc \
 	     proto/proto_singleton.h \
@@ -208,10 +199,11 @@
 
 if SUB_PROJECTS
-  SUB_PROGS = lib subprojects
+  SUB_PROGS = subprojects
 else
   SUB_PROGS = 
 endif
 
-SUBDIRS = . \
+SUBDIRS = lib \
+	  . \
 	  $(SUB_PROGS)
 
Index: orxonox/branches/physics/src/Makefile.in
===================================================================
--- orxonox/branches/physics/src/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/Makefile.in	(revision 4283)
@@ -16,6 +16,5 @@
 
 
-
-SOURCES = $(libORXgui_a_SOURCES) $(orxonox_SOURCES)
+SOURCES = $(orxonox_SOURCES)
 
 srcdir = @srcdir@
@@ -51,48 +50,33 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libORXgui_a_AR = $(AR) $(ARFLAGS)
-libORXgui_a_LIBADD =
-am_libORXgui_a_OBJECTS = libORXgui_a-gui.$(OBJEXT) \
-	libORXgui_a-gui_gtk.$(OBJEXT) \
-	libORXgui_a-gui_element.$(OBJEXT) \
-	libORXgui_a-gui_video.$(OBJEXT) \
-	libORXgui_a-gui_audio.$(OBJEXT) libORXgui_a-gui_exec.$(OBJEXT) \
-	libORXgui_a-gui_flags.$(OBJEXT) \
-	libORXgui_a-gui_banner.$(OBJEXT) \
-	libORXgui_a-gui_keys.$(OBJEXT) \
-	libORXgui_a-gui_update.$(OBJEXT)
-libORXgui_a_OBJECTS = $(am_libORXgui_a_OBJECTS)
 am__installdirs = "$(DESTDIR)$(bindir)"
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
-am_orxonox_OBJECTS = orxonox.$(OBJEXT) game_loader.$(OBJEXT) \
-	command_node.$(OBJEXT) keynames.$(OBJEXT) camera.$(OBJEXT) \
-	track_manager.$(OBJEXT) track_node.$(OBJEXT) factory.$(OBJEXT) \
+am_orxonox_OBJECTS = orxonox.$(OBJEXT) keynames.$(OBJEXT) \
+	command_node.$(OBJEXT) game_loader.$(OBJEXT) \
+	track_manager.$(OBJEXT) track_node.$(OBJEXT) \
 	animation.$(OBJEXT) animation3d.$(OBJEXT) \
-	animation_player.$(OBJEXT) garbage_collector.$(OBJEXT) \
-	story_entity.$(OBJEXT) campaign.$(OBJEXT) world.$(OBJEXT) \
-	world_entity.$(OBJEXT) player.$(OBJEXT) environment.$(OBJEXT) \
-	skysphere.$(OBJEXT) skybox.$(OBJEXT) terrain.$(OBJEXT) \
-	weapon.$(OBJEXT) projectile.$(OBJEXT) satellite.$(OBJEXT) \
+	animation_player.$(OBJEXT) object_manager.$(OBJEXT) \
+	garbage_collector.$(OBJEXT) list.$(OBJEXT) \
+	resource_manager.$(OBJEXT) factory.$(OBJEXT) \
+	load_param.$(OBJEXT) story_entity.$(OBJEXT) campaign.$(OBJEXT) \
+	world.$(OBJEXT) world_entity.$(OBJEXT) camera.$(OBJEXT) \
+	player.$(OBJEXT) environment.$(OBJEXT) skysphere.$(OBJEXT) \
+	skybox.$(OBJEXT) terrain.$(OBJEXT) weapon.$(OBJEXT) \
+	projectile.$(OBJEXT) satellite.$(OBJEXT) \
 	character_attributes.$(OBJEXT) test_gun.$(OBJEXT) \
-	test_bullet.$(OBJEXT) ai.$(OBJEXT) p_node.$(OBJEXT) \
+	test_bullet.$(OBJEXT) test_entity.$(OBJEXT) p_node.$(OBJEXT) \
 	null_parent.$(OBJEXT) helper_parent.$(OBJEXT) \
-	data_tank.$(OBJEXT) graphics_engine.$(OBJEXT) light.$(OBJEXT) \
+	graphics_engine.$(OBJEXT) light.$(OBJEXT) \
 	text_engine.$(OBJEXT) array.$(OBJEXT) objModel.$(OBJEXT) \
-	primitive_model.$(OBJEXT) model.$(OBJEXT) material.$(OBJEXT) \
-	texture.$(OBJEXT) particle_engine.$(OBJEXT) \
+	md2Model.$(OBJEXT) primitive_model.$(OBJEXT) model.$(OBJEXT) \
+	material.$(OBJEXT) texture.$(OBJEXT) particle_engine.$(OBJEXT) \
 	particle_system.$(OBJEXT) particle_emitter.$(OBJEXT) \
 	base_entity.$(OBJEXT) base_object.$(OBJEXT) \
-	ini_parser.$(OBJEXT) substring.$(OBJEXT) list.$(OBJEXT) \
-	resource_manager.$(OBJEXT) i_physics.$(OBJEXT) \
+	ini_parser.$(OBJEXT) substring.$(OBJEXT) i_physics.$(OBJEXT) \
 	physics_engine.$(OBJEXT) physics_connection.$(OBJEXT) \
 	field.$(OBJEXT) gravity.$(OBJEXT) point_gravity.$(OBJEXT) \
 	twirl.$(OBJEXT) vector.$(OBJEXT) curve.$(OBJEXT) \
-	glmenu_imagescreen.$(OBJEXT) tinyxml.$(OBJEXT) \
-	tinystr.$(OBJEXT) tinyxmlerror.$(OBJEXT) \
-	tinyxmlparser.$(OBJEXT) benchmark.$(OBJEXT)
+	glmenu_imagescreen.$(OBJEXT) benchmark.$(OBJEXT)
 orxonox_OBJECTS = $(am_orxonox_OBJECTS)
 am__DEPENDENCIES_1 =
@@ -100,5 +84,5 @@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ai.Po ./$(DEPDIR)/animation.Po \
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/animation.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/animation3d.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/animation_player.Po \
@@ -109,5 +93,4 @@
 @AMDEP_TRUE@	./$(DEPDIR)/character_attributes.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/command_node.Po ./$(DEPDIR)/curve.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/data_tank.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/environment.Po ./$(DEPDIR)/factory.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/field.Po ./$(DEPDIR)/game_loader.Po \
@@ -118,18 +101,10 @@
 @AMDEP_TRUE@	./$(DEPDIR)/helper_parent.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/i_physics.Po ./$(DEPDIR)/ini_parser.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/keynames.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_audio.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_banner.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_element.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_exec.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_flags.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_gtk.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_keys.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_update.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_video.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/light.Po ./$(DEPDIR)/list.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/material.Po ./$(DEPDIR)/model.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/null_parent.Po ./$(DEPDIR)/objModel.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/keynames.Po ./$(DEPDIR)/light.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/list.Po ./$(DEPDIR)/load_param.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/material.Po ./$(DEPDIR)/md2Model.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/model.Po ./$(DEPDIR)/null_parent.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/objModel.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/object_manager.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/orxonox.Po ./$(DEPDIR)/p_node.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/particle_emitter.Po \
@@ -146,9 +121,7 @@
 @AMDEP_TRUE@	./$(DEPDIR)/story_entity.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/substring.Po ./$(DEPDIR)/terrain.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/test_bullet.Po ./$(DEPDIR)/test_gun.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/test_bullet.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/test_entity.Po ./$(DEPDIR)/test_gun.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/text_engine.Po ./$(DEPDIR)/texture.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tinystr.Po ./$(DEPDIR)/tinyxml.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tinyxmlerror.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/tinyxmlparser.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/track_manager.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/track_node.Po ./$(DEPDIR)/twirl.Po \
@@ -160,6 +133,6 @@
 CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-SOURCES = $(libORXgui_a_SOURCES) $(orxonox_SOURCES)
-DIST_SOURCES = $(libORXgui_a_SOURCES) $(orxonox_SOURCES)
+SOURCES = $(orxonox_SOURCES)
+DIST_SOURCES = $(orxonox_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
@@ -171,5 +144,5 @@
 ETAGS = etags
 CTAGS = ctags
-DIST_SUBDIRS = . lib subprojects
+DIST_SUBDIRS = lib . subprojects
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -282,24 +255,32 @@
 target_vendor = @target_vendor@
 MAINSRCDIR = .
-AM_CXXFLAGS = -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/graphics/particles -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/gui/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common -I$(MAINSRCDIR)/util/physics -I$(MAINSRCDIR)/util/physics/fields -I$(MAINSRCDIR)/subprojects
-noinst_LIBRARIES = libORXgui.a
-orxonox_DEPENDENCIES = libORXgui.a
-orxonox_LDADD = libORXgui.a $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
+AM_CXXFLAGS = -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/graphics/particles -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/gui/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/lib/tinyxml -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common -I$(MAINSRCDIR)/util/physics -I$(MAINSRCDIR)/util/physics/fields -I$(MAINSRCDIR)/util/loading -I$(MAINSRCDIR)/util/track -I$(MAINSRCDIR)/subprojects
+orxonox_DEPENDENCIES = lib/gui/gui/libORXgui.a \
+		       lib/tinyxml/libtinyxml.a
+
+orxonox_LDADD = lib/gui/gui/libORXgui.a \
+                lib/tinyxml/libtinyxml.a \
+                $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
+
 orxonox_SOURCES = orxonox.cc \
-		 game_loader.cc \
+		 defs/keynames.cc \
 		 command_node.cc \
-		 keynames.cc \
-		 world_entities/camera.cc \
-		 track_manager.cc \
-		 track_node.cc \
-		 factory.cc \
+		 util/loading/game_loader.cc \
+		 util/track/track_manager.cc \
+		 util/track/track_node.cc \
 		 util/animation/animation.cc \
 		 util/animation/animation3d.cc \
 		 util/animation/animation_player.cc \
-		 garbage_collector.cc \
+		 util/object_manager.cc \
+		 util/garbage_collector.cc \
+		 util/common/list.cc \
+		 util/resource_manager.cc \
+		 util/loading/factory.cc \
+		 util/loading/load_param.cc \
 		 story_entities/story_entity.cc \
 		 story_entities/campaign.cc \
 		 story_entities/world.cc \
 		 world_entities/world_entity.cc \
+		 world_entities/camera.cc \
 		 world_entities/player.cc \
 		 world_entities/environment.cc \
@@ -313,9 +294,8 @@
 		 world_entities/test_gun.cc \
 		 world_entities/test_bullet.cc \
-		 ai/ai.cc \
+		 world_entities/test_entity.cc \
 		 lib/coord/p_node.cc \
 		 lib/coord/null_parent.cc \
 		 lib/coord/helper_parent.cc \
-		 lib/data/data_tank.cc \
 		 lib/graphics/graphics_engine.cc \
 		 lib/graphics/light.cc \
@@ -323,4 +303,5 @@
 		 lib/graphics/importer/array.cc \
 		 lib/graphics/importer/objModel.cc \
+		 lib/graphics/importer/md2Model.cc \
 		 lib/graphics/importer/primitive_model.cc \
 		 lib/graphics/importer/model.cc \
@@ -334,6 +315,4 @@
 		 lib/util/ini_parser.cc \
 		 lib/util/substring.cc \
-		 util/common/list.cc \
-		 util/resource_manager.cc \
 		 util/physics/i_physics.cc \
 		 util/physics/physics_engine.cc \
@@ -346,25 +325,20 @@
 		 lib/math/curve.cc \
 		 glmenu/glmenu_imagescreen.cc \
-		 lib/xmlparser/tinyxml.cc \
-		 lib/xmlparser/tinystr.cc \
-		 lib/xmlparser/tinyxmlerror.cc \
-		 lib/xmlparser/tinyxmlparser.cc \
 		 subprojects/benchmark.cc
 
 noinst_HEADERS = orxonox.h \
-		 game_loader.h \
-		 track_manager.h \
                  ability.h \
-		 world_entities/camera.h \
-		 keynames.h \
+		 defs/keynames.h \
 		 command_node.h \
-		 message_structures.h \
-		 track_manager.h \
-		 track_node.h \
+		 defs/message_structures.h \
+		 util/loading/game_loader.h \
+		 util/track/track_manager.h \
+		 util/track/track_node.h \
 		 util/animation/animation.h \
 		 util/animation/t_animation.h \
 		 util/animation/animation3d.h \
 		 util/animation/animation_player.h \
-		 garbage_collector.h \
+		 util/object_manager.h \
+		 util/garbage_collector.h \
 		 story_entities/story_entity.h \
 		 story_entities/story_def.h \
@@ -372,4 +346,5 @@
 		 story_entities/world.h \
 		 world_entities/world_entity.h \
+		 world_entities/camera.h \
 		 world_entities/player.h \
 		 world_entities/npc.h \
@@ -385,4 +360,5 @@
 		 world_entities/test_gun.h \
 		 world_entities/test_bullet.h \
+		 world_entities/test_entity.h \
 		 ai/ai.h \
 		 network/synchronisable.h \
@@ -394,4 +370,5 @@
 		 defs/debug.h \
 		 defs/globals.h \
+		 defs/compiler.h \
 		 lib/coord/p_node.h \
 		 lib/coord/null_parent.h \
@@ -400,8 +377,15 @@
 		 lib/graphics/light.h \
 		 lib/graphics/text_engine.h \
+		 lib/graphics/importer/array.h \
+		 lib/graphics/importer/abstract_model.h \
+		 lib/graphics/importer/objModel.h \
+		 lib/graphics/importer/md2Model.h \
+		 lib/graphics/importer/primitive_model.h \
+		 lib/graphics/importer/model.h \
+		 lib/graphics/importer/material.h \
+		 lib/graphics/importer/texture.h \
 		 lib/graphics/particles/particle_engine.h \
 		 lib/graphics/particles/particle_system.h \
 		 lib/graphics/particles/particle_emitter.h \
-		 lib/data/data_tank.h \
 		 lib/lang/base_entity.h \
 		 lib/lang/base_object.h \
@@ -417,4 +401,6 @@
 		 util/physics/fields/point_gravity.h \
 		 util/physics/fields/twirl.h \
+		 util/loading/factory.h \
+		 util/loading/load_param.h \
 		 lib/util/ini_parser.h \
 		 lib/util/substring.h \
@@ -422,30 +408,7 @@
 		 lib/math/curve.h \
 		 glmenu/glmenu_imagescreen.h \
-		 lib/gui/gui/gui.h \
-	         lib/gui/gui/gui_gtk.h \
-	         lib/gui/gui/gui_element.h \
-	         lib/gui/gui/gui_video.h \
-	         lib/gui/gui/gui_audio.h \
-	         lib/gui/gui/gui_exec.h \
-	         lib/gui/gui/gui_flags.h \
-	         lib/gui/gui/gui_banner.h \
-	         lib/gui/gui/gui_keys.h \
-	         lib/gui/gui/gui_update.h \
 		 subprojects/benchmark.h
 
-libORXgui_a_CPPFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
-libORXgui_a_SOURCES = lib/gui/gui/gui.cc \
-			    lib/gui/gui/gui_gtk.cc \
-	                    lib/gui/gui/gui_element.cc \
-	       	            lib/gui/gui/gui_video.cc \
-	                    lib/gui/gui/gui_audio.cc \
-	                    lib/gui/gui/gui_exec.cc \
-	                    lib/gui/gui/gui_flags.cc \
-	                    lib/gui/gui/gui_banner.cc \
-	                    lib/gui/gui/gui_keys.cc \
-	                    lib/gui/gui/gui_update.cc
-
-EXTRA_DIST = orxonox.conf \
-	     proto/proto_class.h \
+EXTRA_DIST = proto/proto_class.h \
 	     proto/proto_class.cc \
 	     proto/proto_singleton.h \
@@ -455,6 +418,7 @@
 
 @SUB_PROJECTS_FALSE@SUB_PROGS = 
-@SUB_PROJECTS_TRUE@SUB_PROGS = lib subprojects
-SUBDIRS = . \
+@SUB_PROJECTS_TRUE@SUB_PROGS = subprojects
+SUBDIRS = lib \
+	  . \
 	  $(SUB_PROGS)
 
@@ -472,7 +436,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/Makefile
+	  $(AUTOMAKE) --foreign  src/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -492,11 +456,4 @@
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libORXgui.a: $(libORXgui_a_OBJECTS) $(libORXgui_a_DEPENDENCIES) 
-	-rm -f libORXgui.a
-	$(libORXgui_a_AR) libORXgui.a $(libORXgui_a_OBJECTS) $(libORXgui_a_LIBADD)
-	$(RANLIB) libORXgui.a
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
@@ -532,5 +489,4 @@
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ai.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/animation.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/animation3d.Po@am__quote@
@@ -545,5 +501,4 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/command_node.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curve.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data_tank.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/environment.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/factory.Po@am__quote@
@@ -558,20 +513,13 @@
 @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)/libORXgui_a-gui.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_audio.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_banner.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_element.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_exec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_flags.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_gtk.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_keys.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_update.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_video.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/light.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_param.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/material.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md2Model.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/model.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/null_parent.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objModel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object_manager.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p_node.Po@am__quote@
@@ -593,11 +541,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terrain.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bullet.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_entity.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_gun.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text_engine.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinystr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxml.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxmlerror.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxmlparser.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/track_manager.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/track_node.Po@am__quote@
@@ -624,163 +569,275 @@
 @am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
-libORXgui_a-gui.o: lib/gui/gui/gui.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui.Tpo" -c -o libORXgui_a-gui.o `test -f 'lib/gui/gui/gui.cc' || echo '$(srcdir)/'`lib/gui/gui/gui.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui.Tpo" "$(DEPDIR)/libORXgui_a-gui.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui.cc' object='libORXgui_a-gui.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui.o `test -f 'lib/gui/gui/gui.cc' || echo '$(srcdir)/'`lib/gui/gui/gui.cc
-
-libORXgui_a-gui.obj: lib/gui/gui/gui.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui.Tpo" -c -o libORXgui_a-gui.obj `if test -f 'lib/gui/gui/gui.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui.Tpo" "$(DEPDIR)/libORXgui_a-gui.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui.cc' object='libORXgui_a-gui.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui.obj `if test -f 'lib/gui/gui/gui.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui.cc'; fi`
-
-libORXgui_a-gui_gtk.o: lib/gui/gui/gui_gtk.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_gtk.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo" -c -o libORXgui_a-gui_gtk.o `test -f 'lib/gui/gui/gui_gtk.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_gtk.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo" "$(DEPDIR)/libORXgui_a-gui_gtk.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_gtk.cc' object='libORXgui_a-gui_gtk.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_gtk.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_gtk.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_gtk.o `test -f 'lib/gui/gui/gui_gtk.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_gtk.cc
-
-libORXgui_a-gui_gtk.obj: lib/gui/gui/gui_gtk.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_gtk.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo" -c -o libORXgui_a-gui_gtk.obj `if test -f 'lib/gui/gui/gui_gtk.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_gtk.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_gtk.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo" "$(DEPDIR)/libORXgui_a-gui_gtk.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_gtk.cc' object='libORXgui_a-gui_gtk.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_gtk.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_gtk.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_gtk.obj `if test -f 'lib/gui/gui/gui_gtk.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_gtk.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_gtk.cc'; fi`
-
-libORXgui_a-gui_element.o: lib/gui/gui/gui_element.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_element.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_element.Tpo" -c -o libORXgui_a-gui_element.o `test -f 'lib/gui/gui/gui_element.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_element.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_element.Tpo" "$(DEPDIR)/libORXgui_a-gui_element.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_element.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_element.cc' object='libORXgui_a-gui_element.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_element.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_element.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_element.o `test -f 'lib/gui/gui/gui_element.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_element.cc
-
-libORXgui_a-gui_element.obj: lib/gui/gui/gui_element.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_element.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_element.Tpo" -c -o libORXgui_a-gui_element.obj `if test -f 'lib/gui/gui/gui_element.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_element.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_element.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_element.Tpo" "$(DEPDIR)/libORXgui_a-gui_element.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_element.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_element.cc' object='libORXgui_a-gui_element.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_element.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_element.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_element.obj `if test -f 'lib/gui/gui/gui_element.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_element.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_element.cc'; fi`
-
-libORXgui_a-gui_video.o: lib/gui/gui/gui_video.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_video.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_video.Tpo" -c -o libORXgui_a-gui_video.o `test -f 'lib/gui/gui/gui_video.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_video.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_video.Tpo" "$(DEPDIR)/libORXgui_a-gui_video.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_video.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_video.cc' object='libORXgui_a-gui_video.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_video.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_video.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_video.o `test -f 'lib/gui/gui/gui_video.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_video.cc
-
-libORXgui_a-gui_video.obj: lib/gui/gui/gui_video.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_video.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_video.Tpo" -c -o libORXgui_a-gui_video.obj `if test -f 'lib/gui/gui/gui_video.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_video.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_video.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_video.Tpo" "$(DEPDIR)/libORXgui_a-gui_video.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_video.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_video.cc' object='libORXgui_a-gui_video.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_video.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_video.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_video.obj `if test -f 'lib/gui/gui/gui_video.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_video.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_video.cc'; fi`
-
-libORXgui_a-gui_audio.o: lib/gui/gui/gui_audio.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_audio.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_audio.Tpo" -c -o libORXgui_a-gui_audio.o `test -f 'lib/gui/gui/gui_audio.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_audio.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_audio.Tpo" "$(DEPDIR)/libORXgui_a-gui_audio.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_audio.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_audio.cc' object='libORXgui_a-gui_audio.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_audio.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_audio.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_audio.o `test -f 'lib/gui/gui/gui_audio.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_audio.cc
-
-libORXgui_a-gui_audio.obj: lib/gui/gui/gui_audio.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_audio.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_audio.Tpo" -c -o libORXgui_a-gui_audio.obj `if test -f 'lib/gui/gui/gui_audio.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_audio.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_audio.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_audio.Tpo" "$(DEPDIR)/libORXgui_a-gui_audio.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_audio.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_audio.cc' object='libORXgui_a-gui_audio.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_audio.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_audio.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_audio.obj `if test -f 'lib/gui/gui/gui_audio.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_audio.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_audio.cc'; fi`
-
-libORXgui_a-gui_exec.o: lib/gui/gui/gui_exec.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_exec.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_exec.Tpo" -c -o libORXgui_a-gui_exec.o `test -f 'lib/gui/gui/gui_exec.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_exec.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_exec.Tpo" "$(DEPDIR)/libORXgui_a-gui_exec.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_exec.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_exec.cc' object='libORXgui_a-gui_exec.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_exec.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_exec.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_exec.o `test -f 'lib/gui/gui/gui_exec.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_exec.cc
-
-libORXgui_a-gui_exec.obj: lib/gui/gui/gui_exec.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_exec.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_exec.Tpo" -c -o libORXgui_a-gui_exec.obj `if test -f 'lib/gui/gui/gui_exec.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_exec.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_exec.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_exec.Tpo" "$(DEPDIR)/libORXgui_a-gui_exec.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_exec.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_exec.cc' object='libORXgui_a-gui_exec.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_exec.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_exec.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_exec.obj `if test -f 'lib/gui/gui/gui_exec.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_exec.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_exec.cc'; fi`
-
-libORXgui_a-gui_flags.o: lib/gui/gui/gui_flags.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_flags.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_flags.Tpo" -c -o libORXgui_a-gui_flags.o `test -f 'lib/gui/gui/gui_flags.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_flags.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_flags.Tpo" "$(DEPDIR)/libORXgui_a-gui_flags.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_flags.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_flags.cc' object='libORXgui_a-gui_flags.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_flags.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_flags.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_flags.o `test -f 'lib/gui/gui/gui_flags.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_flags.cc
-
-libORXgui_a-gui_flags.obj: lib/gui/gui/gui_flags.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_flags.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_flags.Tpo" -c -o libORXgui_a-gui_flags.obj `if test -f 'lib/gui/gui/gui_flags.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_flags.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_flags.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_flags.Tpo" "$(DEPDIR)/libORXgui_a-gui_flags.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_flags.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_flags.cc' object='libORXgui_a-gui_flags.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_flags.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_flags.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_flags.obj `if test -f 'lib/gui/gui/gui_flags.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_flags.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_flags.cc'; fi`
-
-libORXgui_a-gui_banner.o: lib/gui/gui/gui_banner.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_banner.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_banner.Tpo" -c -o libORXgui_a-gui_banner.o `test -f 'lib/gui/gui/gui_banner.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_banner.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_banner.Tpo" "$(DEPDIR)/libORXgui_a-gui_banner.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_banner.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_banner.cc' object='libORXgui_a-gui_banner.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_banner.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_banner.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_banner.o `test -f 'lib/gui/gui/gui_banner.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_banner.cc
-
-libORXgui_a-gui_banner.obj: lib/gui/gui/gui_banner.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_banner.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_banner.Tpo" -c -o libORXgui_a-gui_banner.obj `if test -f 'lib/gui/gui/gui_banner.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_banner.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_banner.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_banner.Tpo" "$(DEPDIR)/libORXgui_a-gui_banner.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_banner.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_banner.cc' object='libORXgui_a-gui_banner.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_banner.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_banner.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_banner.obj `if test -f 'lib/gui/gui/gui_banner.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_banner.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_banner.cc'; fi`
-
-libORXgui_a-gui_keys.o: lib/gui/gui/gui_keys.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_keys.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_keys.Tpo" -c -o libORXgui_a-gui_keys.o `test -f 'lib/gui/gui/gui_keys.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_keys.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_keys.Tpo" "$(DEPDIR)/libORXgui_a-gui_keys.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_keys.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_keys.cc' object='libORXgui_a-gui_keys.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_keys.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_keys.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_keys.o `test -f 'lib/gui/gui/gui_keys.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_keys.cc
-
-libORXgui_a-gui_keys.obj: lib/gui/gui/gui_keys.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_keys.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_keys.Tpo" -c -o libORXgui_a-gui_keys.obj `if test -f 'lib/gui/gui/gui_keys.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_keys.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_keys.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_keys.Tpo" "$(DEPDIR)/libORXgui_a-gui_keys.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_keys.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_keys.cc' object='libORXgui_a-gui_keys.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_keys.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_keys.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_keys.obj `if test -f 'lib/gui/gui/gui_keys.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_keys.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_keys.cc'; fi`
-
-libORXgui_a-gui_update.o: lib/gui/gui/gui_update.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_update.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_update.Tpo" -c -o libORXgui_a-gui_update.o `test -f 'lib/gui/gui/gui_update.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_update.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_update.Tpo" "$(DEPDIR)/libORXgui_a-gui_update.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_update.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_update.cc' object='libORXgui_a-gui_update.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_update.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_update.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_update.o `test -f 'lib/gui/gui/gui_update.cc' || echo '$(srcdir)/'`lib/gui/gui/gui_update.cc
-
-libORXgui_a-gui_update.obj: lib/gui/gui/gui_update.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_update.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_update.Tpo" -c -o libORXgui_a-gui_update.obj `if test -f 'lib/gui/gui/gui_update.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_update.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_update.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_update.Tpo" "$(DEPDIR)/libORXgui_a-gui_update.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_update.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/gui/gui/gui_update.cc' object='libORXgui_a-gui_update.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_update.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_update.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_update.obj `if test -f 'lib/gui/gui/gui_update.cc'; then $(CYGPATH_W) 'lib/gui/gui/gui_update.cc'; else $(CYGPATH_W) '$(srcdir)/lib/gui/gui/gui_update.cc'; fi`
+keynames.o: defs/keynames.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT keynames.o -MD -MP -MF "$(DEPDIR)/keynames.Tpo" -c -o keynames.o `test -f 'defs/keynames.cc' || echo '$(srcdir)/'`defs/keynames.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/keynames.Tpo" "$(DEPDIR)/keynames.Po"; else rm -f "$(DEPDIR)/keynames.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='defs/keynames.cc' object='keynames.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/keynames.Po' tmpdepfile='$(DEPDIR)/keynames.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o keynames.o `test -f 'defs/keynames.cc' || echo '$(srcdir)/'`defs/keynames.cc
+
+keynames.obj: defs/keynames.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT keynames.obj -MD -MP -MF "$(DEPDIR)/keynames.Tpo" -c -o keynames.obj `if test -f 'defs/keynames.cc'; then $(CYGPATH_W) 'defs/keynames.cc'; else $(CYGPATH_W) '$(srcdir)/defs/keynames.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/keynames.Tpo" "$(DEPDIR)/keynames.Po"; else rm -f "$(DEPDIR)/keynames.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='defs/keynames.cc' object='keynames.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/keynames.Po' tmpdepfile='$(DEPDIR)/keynames.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o keynames.obj `if test -f 'defs/keynames.cc'; then $(CYGPATH_W) 'defs/keynames.cc'; else $(CYGPATH_W) '$(srcdir)/defs/keynames.cc'; fi`
+
+game_loader.o: util/loading/game_loader.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT game_loader.o -MD -MP -MF "$(DEPDIR)/game_loader.Tpo" -c -o game_loader.o `test -f 'util/loading/game_loader.cc' || echo '$(srcdir)/'`util/loading/game_loader.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/game_loader.Tpo" "$(DEPDIR)/game_loader.Po"; else rm -f "$(DEPDIR)/game_loader.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/loading/game_loader.cc' object='game_loader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/game_loader.Po' tmpdepfile='$(DEPDIR)/game_loader.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o game_loader.o `test -f 'util/loading/game_loader.cc' || echo '$(srcdir)/'`util/loading/game_loader.cc
+
+game_loader.obj: util/loading/game_loader.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT game_loader.obj -MD -MP -MF "$(DEPDIR)/game_loader.Tpo" -c -o game_loader.obj `if test -f 'util/loading/game_loader.cc'; then $(CYGPATH_W) 'util/loading/game_loader.cc'; else $(CYGPATH_W) '$(srcdir)/util/loading/game_loader.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/game_loader.Tpo" "$(DEPDIR)/game_loader.Po"; else rm -f "$(DEPDIR)/game_loader.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/loading/game_loader.cc' object='game_loader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/game_loader.Po' tmpdepfile='$(DEPDIR)/game_loader.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o game_loader.obj `if test -f 'util/loading/game_loader.cc'; then $(CYGPATH_W) 'util/loading/game_loader.cc'; else $(CYGPATH_W) '$(srcdir)/util/loading/game_loader.cc'; fi`
+
+track_manager.o: util/track/track_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT track_manager.o -MD -MP -MF "$(DEPDIR)/track_manager.Tpo" -c -o track_manager.o `test -f 'util/track/track_manager.cc' || echo '$(srcdir)/'`util/track/track_manager.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/track_manager.Tpo" "$(DEPDIR)/track_manager.Po"; else rm -f "$(DEPDIR)/track_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/track/track_manager.cc' object='track_manager.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/track_manager.Po' tmpdepfile='$(DEPDIR)/track_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o track_manager.o `test -f 'util/track/track_manager.cc' || echo '$(srcdir)/'`util/track/track_manager.cc
+
+track_manager.obj: util/track/track_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT track_manager.obj -MD -MP -MF "$(DEPDIR)/track_manager.Tpo" -c -o track_manager.obj `if test -f 'util/track/track_manager.cc'; then $(CYGPATH_W) 'util/track/track_manager.cc'; else $(CYGPATH_W) '$(srcdir)/util/track/track_manager.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/track_manager.Tpo" "$(DEPDIR)/track_manager.Po"; else rm -f "$(DEPDIR)/track_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/track/track_manager.cc' object='track_manager.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/track_manager.Po' tmpdepfile='$(DEPDIR)/track_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o track_manager.obj `if test -f 'util/track/track_manager.cc'; then $(CYGPATH_W) 'util/track/track_manager.cc'; else $(CYGPATH_W) '$(srcdir)/util/track/track_manager.cc'; fi`
+
+track_node.o: util/track/track_node.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT track_node.o -MD -MP -MF "$(DEPDIR)/track_node.Tpo" -c -o track_node.o `test -f 'util/track/track_node.cc' || echo '$(srcdir)/'`util/track/track_node.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/track_node.Tpo" "$(DEPDIR)/track_node.Po"; else rm -f "$(DEPDIR)/track_node.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/track/track_node.cc' object='track_node.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/track_node.Po' tmpdepfile='$(DEPDIR)/track_node.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o track_node.o `test -f 'util/track/track_node.cc' || echo '$(srcdir)/'`util/track/track_node.cc
+
+track_node.obj: util/track/track_node.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT track_node.obj -MD -MP -MF "$(DEPDIR)/track_node.Tpo" -c -o track_node.obj `if test -f 'util/track/track_node.cc'; then $(CYGPATH_W) 'util/track/track_node.cc'; else $(CYGPATH_W) '$(srcdir)/util/track/track_node.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/track_node.Tpo" "$(DEPDIR)/track_node.Po"; else rm -f "$(DEPDIR)/track_node.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/track/track_node.cc' object='track_node.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/track_node.Po' tmpdepfile='$(DEPDIR)/track_node.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o track_node.obj `if test -f 'util/track/track_node.cc'; then $(CYGPATH_W) 'util/track/track_node.cc'; else $(CYGPATH_W) '$(srcdir)/util/track/track_node.cc'; fi`
+
+animation.o: util/animation/animation.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation.o -MD -MP -MF "$(DEPDIR)/animation.Tpo" -c -o animation.o `test -f 'util/animation/animation.cc' || echo '$(srcdir)/'`util/animation/animation.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation.Tpo" "$(DEPDIR)/animation.Po"; else rm -f "$(DEPDIR)/animation.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation.cc' object='animation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation.Po' tmpdepfile='$(DEPDIR)/animation.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation.o `test -f 'util/animation/animation.cc' || echo '$(srcdir)/'`util/animation/animation.cc
+
+animation.obj: util/animation/animation.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation.obj -MD -MP -MF "$(DEPDIR)/animation.Tpo" -c -o animation.obj `if test -f 'util/animation/animation.cc'; then $(CYGPATH_W) 'util/animation/animation.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation.Tpo" "$(DEPDIR)/animation.Po"; else rm -f "$(DEPDIR)/animation.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation.cc' object='animation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation.Po' tmpdepfile='$(DEPDIR)/animation.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation.obj `if test -f 'util/animation/animation.cc'; then $(CYGPATH_W) 'util/animation/animation.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation.cc'; fi`
+
+animation3d.o: util/animation/animation3d.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation3d.o -MD -MP -MF "$(DEPDIR)/animation3d.Tpo" -c -o animation3d.o `test -f 'util/animation/animation3d.cc' || echo '$(srcdir)/'`util/animation/animation3d.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation3d.Tpo" "$(DEPDIR)/animation3d.Po"; else rm -f "$(DEPDIR)/animation3d.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation3d.cc' object='animation3d.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation3d.Po' tmpdepfile='$(DEPDIR)/animation3d.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation3d.o `test -f 'util/animation/animation3d.cc' || echo '$(srcdir)/'`util/animation/animation3d.cc
+
+animation3d.obj: util/animation/animation3d.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation3d.obj -MD -MP -MF "$(DEPDIR)/animation3d.Tpo" -c -o animation3d.obj `if test -f 'util/animation/animation3d.cc'; then $(CYGPATH_W) 'util/animation/animation3d.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation3d.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation3d.Tpo" "$(DEPDIR)/animation3d.Po"; else rm -f "$(DEPDIR)/animation3d.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation3d.cc' object='animation3d.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation3d.Po' tmpdepfile='$(DEPDIR)/animation3d.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation3d.obj `if test -f 'util/animation/animation3d.cc'; then $(CYGPATH_W) 'util/animation/animation3d.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation3d.cc'; fi`
+
+animation_player.o: util/animation/animation_player.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation_player.o -MD -MP -MF "$(DEPDIR)/animation_player.Tpo" -c -o animation_player.o `test -f 'util/animation/animation_player.cc' || echo '$(srcdir)/'`util/animation/animation_player.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation_player.Tpo" "$(DEPDIR)/animation_player.Po"; else rm -f "$(DEPDIR)/animation_player.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation_player.cc' object='animation_player.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation_player.Po' tmpdepfile='$(DEPDIR)/animation_player.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation_player.o `test -f 'util/animation/animation_player.cc' || echo '$(srcdir)/'`util/animation/animation_player.cc
+
+animation_player.obj: util/animation/animation_player.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation_player.obj -MD -MP -MF "$(DEPDIR)/animation_player.Tpo" -c -o animation_player.obj `if test -f 'util/animation/animation_player.cc'; then $(CYGPATH_W) 'util/animation/animation_player.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation_player.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation_player.Tpo" "$(DEPDIR)/animation_player.Po"; else rm -f "$(DEPDIR)/animation_player.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation_player.cc' object='animation_player.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation_player.Po' tmpdepfile='$(DEPDIR)/animation_player.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation_player.obj `if test -f 'util/animation/animation_player.cc'; then $(CYGPATH_W) 'util/animation/animation_player.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation_player.cc'; fi`
+
+object_manager.o: util/object_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT object_manager.o -MD -MP -MF "$(DEPDIR)/object_manager.Tpo" -c -o object_manager.o `test -f 'util/object_manager.cc' || echo '$(srcdir)/'`util/object_manager.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/object_manager.Tpo" "$(DEPDIR)/object_manager.Po"; else rm -f "$(DEPDIR)/object_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/object_manager.cc' object='object_manager.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/object_manager.Po' tmpdepfile='$(DEPDIR)/object_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o object_manager.o `test -f 'util/object_manager.cc' || echo '$(srcdir)/'`util/object_manager.cc
+
+object_manager.obj: util/object_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT object_manager.obj -MD -MP -MF "$(DEPDIR)/object_manager.Tpo" -c -o object_manager.obj `if test -f 'util/object_manager.cc'; then $(CYGPATH_W) 'util/object_manager.cc'; else $(CYGPATH_W) '$(srcdir)/util/object_manager.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/object_manager.Tpo" "$(DEPDIR)/object_manager.Po"; else rm -f "$(DEPDIR)/object_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/object_manager.cc' object='object_manager.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/object_manager.Po' tmpdepfile='$(DEPDIR)/object_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o object_manager.obj `if test -f 'util/object_manager.cc'; then $(CYGPATH_W) 'util/object_manager.cc'; else $(CYGPATH_W) '$(srcdir)/util/object_manager.cc'; fi`
+
+garbage_collector.o: util/garbage_collector.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT garbage_collector.o -MD -MP -MF "$(DEPDIR)/garbage_collector.Tpo" -c -o garbage_collector.o `test -f 'util/garbage_collector.cc' || echo '$(srcdir)/'`util/garbage_collector.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/garbage_collector.Tpo" "$(DEPDIR)/garbage_collector.Po"; else rm -f "$(DEPDIR)/garbage_collector.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/garbage_collector.cc' object='garbage_collector.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/garbage_collector.Po' tmpdepfile='$(DEPDIR)/garbage_collector.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o garbage_collector.o `test -f 'util/garbage_collector.cc' || echo '$(srcdir)/'`util/garbage_collector.cc
+
+garbage_collector.obj: util/garbage_collector.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT garbage_collector.obj -MD -MP -MF "$(DEPDIR)/garbage_collector.Tpo" -c -o garbage_collector.obj `if test -f 'util/garbage_collector.cc'; then $(CYGPATH_W) 'util/garbage_collector.cc'; else $(CYGPATH_W) '$(srcdir)/util/garbage_collector.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/garbage_collector.Tpo" "$(DEPDIR)/garbage_collector.Po"; else rm -f "$(DEPDIR)/garbage_collector.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/garbage_collector.cc' object='garbage_collector.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/garbage_collector.Po' tmpdepfile='$(DEPDIR)/garbage_collector.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o garbage_collector.obj `if test -f 'util/garbage_collector.cc'; then $(CYGPATH_W) 'util/garbage_collector.cc'; else $(CYGPATH_W) '$(srcdir)/util/garbage_collector.cc'; fi`
+
+list.o: util/common/list.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT list.o -MD -MP -MF "$(DEPDIR)/list.Tpo" -c -o list.o `test -f 'util/common/list.cc' || echo '$(srcdir)/'`util/common/list.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/list.Tpo" "$(DEPDIR)/list.Po"; else rm -f "$(DEPDIR)/list.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/common/list.cc' object='list.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/list.Po' tmpdepfile='$(DEPDIR)/list.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o list.o `test -f 'util/common/list.cc' || echo '$(srcdir)/'`util/common/list.cc
+
+list.obj: util/common/list.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT list.obj -MD -MP -MF "$(DEPDIR)/list.Tpo" -c -o list.obj `if test -f 'util/common/list.cc'; then $(CYGPATH_W) 'util/common/list.cc'; else $(CYGPATH_W) '$(srcdir)/util/common/list.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/list.Tpo" "$(DEPDIR)/list.Po"; else rm -f "$(DEPDIR)/list.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/common/list.cc' object='list.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/list.Po' tmpdepfile='$(DEPDIR)/list.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o list.obj `if test -f 'util/common/list.cc'; then $(CYGPATH_W) 'util/common/list.cc'; else $(CYGPATH_W) '$(srcdir)/util/common/list.cc'; fi`
+
+resource_manager.o: util/resource_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.o -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.o `test -f 'util/resource_manager.cc' || echo '$(srcdir)/'`util/resource_manager.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/resource_manager.cc' object='resource_manager.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.o `test -f 'util/resource_manager.cc' || echo '$(srcdir)/'`util/resource_manager.cc
+
+resource_manager.obj: util/resource_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.obj -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.obj `if test -f 'util/resource_manager.cc'; then $(CYGPATH_W) 'util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/util/resource_manager.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/resource_manager.cc' object='resource_manager.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.obj `if test -f 'util/resource_manager.cc'; then $(CYGPATH_W) 'util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/util/resource_manager.cc'; fi`
+
+factory.o: util/loading/factory.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT factory.o -MD -MP -MF "$(DEPDIR)/factory.Tpo" -c -o factory.o `test -f 'util/loading/factory.cc' || echo '$(srcdir)/'`util/loading/factory.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/factory.Tpo" "$(DEPDIR)/factory.Po"; else rm -f "$(DEPDIR)/factory.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/loading/factory.cc' object='factory.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/factory.Po' tmpdepfile='$(DEPDIR)/factory.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o factory.o `test -f 'util/loading/factory.cc' || echo '$(srcdir)/'`util/loading/factory.cc
+
+factory.obj: util/loading/factory.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT factory.obj -MD -MP -MF "$(DEPDIR)/factory.Tpo" -c -o factory.obj `if test -f 'util/loading/factory.cc'; then $(CYGPATH_W) 'util/loading/factory.cc'; else $(CYGPATH_W) '$(srcdir)/util/loading/factory.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/factory.Tpo" "$(DEPDIR)/factory.Po"; else rm -f "$(DEPDIR)/factory.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/loading/factory.cc' object='factory.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/factory.Po' tmpdepfile='$(DEPDIR)/factory.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o factory.obj `if test -f 'util/loading/factory.cc'; then $(CYGPATH_W) 'util/loading/factory.cc'; else $(CYGPATH_W) '$(srcdir)/util/loading/factory.cc'; fi`
+
+load_param.o: util/loading/load_param.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT load_param.o -MD -MP -MF "$(DEPDIR)/load_param.Tpo" -c -o load_param.o `test -f 'util/loading/load_param.cc' || echo '$(srcdir)/'`util/loading/load_param.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/load_param.Tpo" "$(DEPDIR)/load_param.Po"; else rm -f "$(DEPDIR)/load_param.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/loading/load_param.cc' object='load_param.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/load_param.Po' tmpdepfile='$(DEPDIR)/load_param.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o load_param.o `test -f 'util/loading/load_param.cc' || echo '$(srcdir)/'`util/loading/load_param.cc
+
+load_param.obj: util/loading/load_param.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT load_param.obj -MD -MP -MF "$(DEPDIR)/load_param.Tpo" -c -o load_param.obj `if test -f 'util/loading/load_param.cc'; then $(CYGPATH_W) 'util/loading/load_param.cc'; else $(CYGPATH_W) '$(srcdir)/util/loading/load_param.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/load_param.Tpo" "$(DEPDIR)/load_param.Po"; else rm -f "$(DEPDIR)/load_param.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/loading/load_param.cc' object='load_param.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/load_param.Po' tmpdepfile='$(DEPDIR)/load_param.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o load_param.obj `if test -f 'util/loading/load_param.cc'; then $(CYGPATH_W) 'util/loading/load_param.cc'; else $(CYGPATH_W) '$(srcdir)/util/loading/load_param.cc'; fi`
+
+story_entity.o: story_entities/story_entity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT story_entity.o -MD -MP -MF "$(DEPDIR)/story_entity.Tpo" -c -o story_entity.o `test -f 'story_entities/story_entity.cc' || echo '$(srcdir)/'`story_entities/story_entity.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/story_entity.Tpo" "$(DEPDIR)/story_entity.Po"; else rm -f "$(DEPDIR)/story_entity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/story_entity.cc' object='story_entity.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/story_entity.Po' tmpdepfile='$(DEPDIR)/story_entity.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o story_entity.o `test -f 'story_entities/story_entity.cc' || echo '$(srcdir)/'`story_entities/story_entity.cc
+
+story_entity.obj: story_entities/story_entity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT story_entity.obj -MD -MP -MF "$(DEPDIR)/story_entity.Tpo" -c -o story_entity.obj `if test -f 'story_entities/story_entity.cc'; then $(CYGPATH_W) 'story_entities/story_entity.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/story_entity.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/story_entity.Tpo" "$(DEPDIR)/story_entity.Po"; else rm -f "$(DEPDIR)/story_entity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/story_entity.cc' object='story_entity.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/story_entity.Po' tmpdepfile='$(DEPDIR)/story_entity.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o story_entity.obj `if test -f 'story_entities/story_entity.cc'; then $(CYGPATH_W) 'story_entities/story_entity.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/story_entity.cc'; fi`
+
+campaign.o: story_entities/campaign.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT campaign.o -MD -MP -MF "$(DEPDIR)/campaign.Tpo" -c -o campaign.o `test -f 'story_entities/campaign.cc' || echo '$(srcdir)/'`story_entities/campaign.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/campaign.Tpo" "$(DEPDIR)/campaign.Po"; else rm -f "$(DEPDIR)/campaign.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/campaign.cc' object='campaign.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/campaign.Po' tmpdepfile='$(DEPDIR)/campaign.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o campaign.o `test -f 'story_entities/campaign.cc' || echo '$(srcdir)/'`story_entities/campaign.cc
+
+campaign.obj: story_entities/campaign.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT campaign.obj -MD -MP -MF "$(DEPDIR)/campaign.Tpo" -c -o campaign.obj `if test -f 'story_entities/campaign.cc'; then $(CYGPATH_W) 'story_entities/campaign.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/campaign.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/campaign.Tpo" "$(DEPDIR)/campaign.Po"; else rm -f "$(DEPDIR)/campaign.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/campaign.cc' object='campaign.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/campaign.Po' tmpdepfile='$(DEPDIR)/campaign.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o campaign.obj `if test -f 'story_entities/campaign.cc'; then $(CYGPATH_W) 'story_entities/campaign.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/campaign.cc'; fi`
+
+world.o: story_entities/world.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT world.o -MD -MP -MF "$(DEPDIR)/world.Tpo" -c -o world.o `test -f 'story_entities/world.cc' || echo '$(srcdir)/'`story_entities/world.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/world.Tpo" "$(DEPDIR)/world.Po"; else rm -f "$(DEPDIR)/world.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/world.cc' object='world.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/world.Po' tmpdepfile='$(DEPDIR)/world.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o world.o `test -f 'story_entities/world.cc' || echo '$(srcdir)/'`story_entities/world.cc
+
+world.obj: story_entities/world.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT world.obj -MD -MP -MF "$(DEPDIR)/world.Tpo" -c -o world.obj `if test -f 'story_entities/world.cc'; then $(CYGPATH_W) 'story_entities/world.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/world.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/world.Tpo" "$(DEPDIR)/world.Po"; else rm -f "$(DEPDIR)/world.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/world.cc' object='world.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/world.Po' tmpdepfile='$(DEPDIR)/world.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o world.obj `if test -f 'story_entities/world.cc'; then $(CYGPATH_W) 'story_entities/world.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/world.cc'; fi`
+
+world_entity.o: world_entities/world_entity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT world_entity.o -MD -MP -MF "$(DEPDIR)/world_entity.Tpo" -c -o world_entity.o `test -f 'world_entities/world_entity.cc' || echo '$(srcdir)/'`world_entities/world_entity.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/world_entity.Tpo" "$(DEPDIR)/world_entity.Po"; else rm -f "$(DEPDIR)/world_entity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='world_entities/world_entity.cc' object='world_entity.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/world_entity.Po' tmpdepfile='$(DEPDIR)/world_entity.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o world_entity.o `test -f 'world_entities/world_entity.cc' || echo '$(srcdir)/'`world_entities/world_entity.cc
+
+world_entity.obj: world_entities/world_entity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT world_entity.obj -MD -MP -MF "$(DEPDIR)/world_entity.Tpo" -c -o world_entity.obj `if test -f 'world_entities/world_entity.cc'; then $(CYGPATH_W) 'world_entities/world_entity.cc'; else $(CYGPATH_W) '$(srcdir)/world_entities/world_entity.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/world_entity.Tpo" "$(DEPDIR)/world_entity.Po"; else rm -f "$(DEPDIR)/world_entity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='world_entities/world_entity.cc' object='world_entity.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/world_entity.Po' tmpdepfile='$(DEPDIR)/world_entity.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o world_entity.obj `if test -f 'world_entities/world_entity.cc'; then $(CYGPATH_W) 'world_entities/world_entity.cc'; else $(CYGPATH_W) '$(srcdir)/world_entities/world_entity.cc'; fi`
 
 camera.o: world_entities/camera.cc
@@ -800,116 +857,4 @@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o camera.obj `if test -f 'world_entities/camera.cc'; then $(CYGPATH_W) 'world_entities/camera.cc'; else $(CYGPATH_W) '$(srcdir)/world_entities/camera.cc'; fi`
 
-animation.o: util/animation/animation.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation.o -MD -MP -MF "$(DEPDIR)/animation.Tpo" -c -o animation.o `test -f 'util/animation/animation.cc' || echo '$(srcdir)/'`util/animation/animation.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation.Tpo" "$(DEPDIR)/animation.Po"; else rm -f "$(DEPDIR)/animation.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation.cc' object='animation.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation.Po' tmpdepfile='$(DEPDIR)/animation.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation.o `test -f 'util/animation/animation.cc' || echo '$(srcdir)/'`util/animation/animation.cc
-
-animation.obj: util/animation/animation.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation.obj -MD -MP -MF "$(DEPDIR)/animation.Tpo" -c -o animation.obj `if test -f 'util/animation/animation.cc'; then $(CYGPATH_W) 'util/animation/animation.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation.Tpo" "$(DEPDIR)/animation.Po"; else rm -f "$(DEPDIR)/animation.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation.cc' object='animation.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation.Po' tmpdepfile='$(DEPDIR)/animation.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation.obj `if test -f 'util/animation/animation.cc'; then $(CYGPATH_W) 'util/animation/animation.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation.cc'; fi`
-
-animation3d.o: util/animation/animation3d.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation3d.o -MD -MP -MF "$(DEPDIR)/animation3d.Tpo" -c -o animation3d.o `test -f 'util/animation/animation3d.cc' || echo '$(srcdir)/'`util/animation/animation3d.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation3d.Tpo" "$(DEPDIR)/animation3d.Po"; else rm -f "$(DEPDIR)/animation3d.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation3d.cc' object='animation3d.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation3d.Po' tmpdepfile='$(DEPDIR)/animation3d.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation3d.o `test -f 'util/animation/animation3d.cc' || echo '$(srcdir)/'`util/animation/animation3d.cc
-
-animation3d.obj: util/animation/animation3d.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation3d.obj -MD -MP -MF "$(DEPDIR)/animation3d.Tpo" -c -o animation3d.obj `if test -f 'util/animation/animation3d.cc'; then $(CYGPATH_W) 'util/animation/animation3d.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation3d.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation3d.Tpo" "$(DEPDIR)/animation3d.Po"; else rm -f "$(DEPDIR)/animation3d.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation3d.cc' object='animation3d.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation3d.Po' tmpdepfile='$(DEPDIR)/animation3d.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation3d.obj `if test -f 'util/animation/animation3d.cc'; then $(CYGPATH_W) 'util/animation/animation3d.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation3d.cc'; fi`
-
-animation_player.o: util/animation/animation_player.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation_player.o -MD -MP -MF "$(DEPDIR)/animation_player.Tpo" -c -o animation_player.o `test -f 'util/animation/animation_player.cc' || echo '$(srcdir)/'`util/animation/animation_player.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation_player.Tpo" "$(DEPDIR)/animation_player.Po"; else rm -f "$(DEPDIR)/animation_player.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation_player.cc' object='animation_player.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation_player.Po' tmpdepfile='$(DEPDIR)/animation_player.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation_player.o `test -f 'util/animation/animation_player.cc' || echo '$(srcdir)/'`util/animation/animation_player.cc
-
-animation_player.obj: util/animation/animation_player.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT animation_player.obj -MD -MP -MF "$(DEPDIR)/animation_player.Tpo" -c -o animation_player.obj `if test -f 'util/animation/animation_player.cc'; then $(CYGPATH_W) 'util/animation/animation_player.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation_player.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/animation_player.Tpo" "$(DEPDIR)/animation_player.Po"; else rm -f "$(DEPDIR)/animation_player.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/animation/animation_player.cc' object='animation_player.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/animation_player.Po' tmpdepfile='$(DEPDIR)/animation_player.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o animation_player.obj `if test -f 'util/animation/animation_player.cc'; then $(CYGPATH_W) 'util/animation/animation_player.cc'; else $(CYGPATH_W) '$(srcdir)/util/animation/animation_player.cc'; fi`
-
-story_entity.o: story_entities/story_entity.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT story_entity.o -MD -MP -MF "$(DEPDIR)/story_entity.Tpo" -c -o story_entity.o `test -f 'story_entities/story_entity.cc' || echo '$(srcdir)/'`story_entities/story_entity.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/story_entity.Tpo" "$(DEPDIR)/story_entity.Po"; else rm -f "$(DEPDIR)/story_entity.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/story_entity.cc' object='story_entity.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/story_entity.Po' tmpdepfile='$(DEPDIR)/story_entity.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o story_entity.o `test -f 'story_entities/story_entity.cc' || echo '$(srcdir)/'`story_entities/story_entity.cc
-
-story_entity.obj: story_entities/story_entity.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT story_entity.obj -MD -MP -MF "$(DEPDIR)/story_entity.Tpo" -c -o story_entity.obj `if test -f 'story_entities/story_entity.cc'; then $(CYGPATH_W) 'story_entities/story_entity.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/story_entity.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/story_entity.Tpo" "$(DEPDIR)/story_entity.Po"; else rm -f "$(DEPDIR)/story_entity.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/story_entity.cc' object='story_entity.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/story_entity.Po' tmpdepfile='$(DEPDIR)/story_entity.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o story_entity.obj `if test -f 'story_entities/story_entity.cc'; then $(CYGPATH_W) 'story_entities/story_entity.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/story_entity.cc'; fi`
-
-campaign.o: story_entities/campaign.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT campaign.o -MD -MP -MF "$(DEPDIR)/campaign.Tpo" -c -o campaign.o `test -f 'story_entities/campaign.cc' || echo '$(srcdir)/'`story_entities/campaign.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/campaign.Tpo" "$(DEPDIR)/campaign.Po"; else rm -f "$(DEPDIR)/campaign.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/campaign.cc' object='campaign.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/campaign.Po' tmpdepfile='$(DEPDIR)/campaign.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o campaign.o `test -f 'story_entities/campaign.cc' || echo '$(srcdir)/'`story_entities/campaign.cc
-
-campaign.obj: story_entities/campaign.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT campaign.obj -MD -MP -MF "$(DEPDIR)/campaign.Tpo" -c -o campaign.obj `if test -f 'story_entities/campaign.cc'; then $(CYGPATH_W) 'story_entities/campaign.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/campaign.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/campaign.Tpo" "$(DEPDIR)/campaign.Po"; else rm -f "$(DEPDIR)/campaign.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/campaign.cc' object='campaign.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/campaign.Po' tmpdepfile='$(DEPDIR)/campaign.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o campaign.obj `if test -f 'story_entities/campaign.cc'; then $(CYGPATH_W) 'story_entities/campaign.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/campaign.cc'; fi`
-
-world.o: story_entities/world.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT world.o -MD -MP -MF "$(DEPDIR)/world.Tpo" -c -o world.o `test -f 'story_entities/world.cc' || echo '$(srcdir)/'`story_entities/world.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/world.Tpo" "$(DEPDIR)/world.Po"; else rm -f "$(DEPDIR)/world.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/world.cc' object='world.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/world.Po' tmpdepfile='$(DEPDIR)/world.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o world.o `test -f 'story_entities/world.cc' || echo '$(srcdir)/'`story_entities/world.cc
-
-world.obj: story_entities/world.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT world.obj -MD -MP -MF "$(DEPDIR)/world.Tpo" -c -o world.obj `if test -f 'story_entities/world.cc'; then $(CYGPATH_W) 'story_entities/world.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/world.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/world.Tpo" "$(DEPDIR)/world.Po"; else rm -f "$(DEPDIR)/world.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='story_entities/world.cc' object='world.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/world.Po' tmpdepfile='$(DEPDIR)/world.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o world.obj `if test -f 'story_entities/world.cc'; then $(CYGPATH_W) 'story_entities/world.cc'; else $(CYGPATH_W) '$(srcdir)/story_entities/world.cc'; fi`
-
-world_entity.o: world_entities/world_entity.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT world_entity.o -MD -MP -MF "$(DEPDIR)/world_entity.Tpo" -c -o world_entity.o `test -f 'world_entities/world_entity.cc' || echo '$(srcdir)/'`world_entities/world_entity.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/world_entity.Tpo" "$(DEPDIR)/world_entity.Po"; else rm -f "$(DEPDIR)/world_entity.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='world_entities/world_entity.cc' object='world_entity.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/world_entity.Po' tmpdepfile='$(DEPDIR)/world_entity.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o world_entity.o `test -f 'world_entities/world_entity.cc' || echo '$(srcdir)/'`world_entities/world_entity.cc
-
-world_entity.obj: world_entities/world_entity.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT world_entity.obj -MD -MP -MF "$(DEPDIR)/world_entity.Tpo" -c -o world_entity.obj `if test -f 'world_entities/world_entity.cc'; then $(CYGPATH_W) 'world_entities/world_entity.cc'; else $(CYGPATH_W) '$(srcdir)/world_entities/world_entity.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/world_entity.Tpo" "$(DEPDIR)/world_entity.Po"; else rm -f "$(DEPDIR)/world_entity.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='world_entities/world_entity.cc' object='world_entity.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/world_entity.Po' tmpdepfile='$(DEPDIR)/world_entity.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o world_entity.obj `if test -f 'world_entities/world_entity.cc'; then $(CYGPATH_W) 'world_entities/world_entity.cc'; else $(CYGPATH_W) '$(srcdir)/world_entities/world_entity.cc'; fi`
-
 player.o: world_entities/player.cc
 @am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT player.o -MD -MP -MF "$(DEPDIR)/player.Tpo" -c -o player.o `test -f 'world_entities/player.cc' || echo '$(srcdir)/'`world_entities/player.cc; \
@@ -1088,19 +1033,19 @@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o test_bullet.obj `if test -f 'world_entities/test_bullet.cc'; then $(CYGPATH_W) 'world_entities/test_bullet.cc'; else $(CYGPATH_W) '$(srcdir)/world_entities/test_bullet.cc'; fi`
 
-ai.o: ai/ai.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ai.o -MD -MP -MF "$(DEPDIR)/ai.Tpo" -c -o ai.o `test -f 'ai/ai.cc' || echo '$(srcdir)/'`ai/ai.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/ai.Tpo" "$(DEPDIR)/ai.Po"; else rm -f "$(DEPDIR)/ai.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='ai/ai.cc' object='ai.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/ai.Po' tmpdepfile='$(DEPDIR)/ai.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ai.o `test -f 'ai/ai.cc' || echo '$(srcdir)/'`ai/ai.cc
-
-ai.obj: ai/ai.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ai.obj -MD -MP -MF "$(DEPDIR)/ai.Tpo" -c -o ai.obj `if test -f 'ai/ai.cc'; then $(CYGPATH_W) 'ai/ai.cc'; else $(CYGPATH_W) '$(srcdir)/ai/ai.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/ai.Tpo" "$(DEPDIR)/ai.Po"; else rm -f "$(DEPDIR)/ai.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='ai/ai.cc' object='ai.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/ai.Po' tmpdepfile='$(DEPDIR)/ai.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ai.obj `if test -f 'ai/ai.cc'; then $(CYGPATH_W) 'ai/ai.cc'; else $(CYGPATH_W) '$(srcdir)/ai/ai.cc'; fi`
+test_entity.o: world_entities/test_entity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT test_entity.o -MD -MP -MF "$(DEPDIR)/test_entity.Tpo" -c -o test_entity.o `test -f 'world_entities/test_entity.cc' || echo '$(srcdir)/'`world_entities/test_entity.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/test_entity.Tpo" "$(DEPDIR)/test_entity.Po"; else rm -f "$(DEPDIR)/test_entity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='world_entities/test_entity.cc' object='test_entity.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/test_entity.Po' tmpdepfile='$(DEPDIR)/test_entity.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o test_entity.o `test -f 'world_entities/test_entity.cc' || echo '$(srcdir)/'`world_entities/test_entity.cc
+
+test_entity.obj: world_entities/test_entity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT test_entity.obj -MD -MP -MF "$(DEPDIR)/test_entity.Tpo" -c -o test_entity.obj `if test -f 'world_entities/test_entity.cc'; then $(CYGPATH_W) 'world_entities/test_entity.cc'; else $(CYGPATH_W) '$(srcdir)/world_entities/test_entity.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/test_entity.Tpo" "$(DEPDIR)/test_entity.Po"; else rm -f "$(DEPDIR)/test_entity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='world_entities/test_entity.cc' object='test_entity.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/test_entity.Po' tmpdepfile='$(DEPDIR)/test_entity.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o test_entity.obj `if test -f 'world_entities/test_entity.cc'; then $(CYGPATH_W) 'world_entities/test_entity.cc'; else $(CYGPATH_W) '$(srcdir)/world_entities/test_entity.cc'; fi`
 
 p_node.o: lib/coord/p_node.cc
@@ -1152,20 +1097,4 @@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o helper_parent.obj `if test -f 'lib/coord/helper_parent.cc'; then $(CYGPATH_W) 'lib/coord/helper_parent.cc'; else $(CYGPATH_W) '$(srcdir)/lib/coord/helper_parent.cc'; fi`
 
-data_tank.o: lib/data/data_tank.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT data_tank.o -MD -MP -MF "$(DEPDIR)/data_tank.Tpo" -c -o data_tank.o `test -f 'lib/data/data_tank.cc' || echo '$(srcdir)/'`lib/data/data_tank.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/data_tank.Tpo" "$(DEPDIR)/data_tank.Po"; else rm -f "$(DEPDIR)/data_tank.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/data/data_tank.cc' object='data_tank.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/data_tank.Po' tmpdepfile='$(DEPDIR)/data_tank.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o data_tank.o `test -f 'lib/data/data_tank.cc' || echo '$(srcdir)/'`lib/data/data_tank.cc
-
-data_tank.obj: lib/data/data_tank.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT data_tank.obj -MD -MP -MF "$(DEPDIR)/data_tank.Tpo" -c -o data_tank.obj `if test -f 'lib/data/data_tank.cc'; then $(CYGPATH_W) 'lib/data/data_tank.cc'; else $(CYGPATH_W) '$(srcdir)/lib/data/data_tank.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/data_tank.Tpo" "$(DEPDIR)/data_tank.Po"; else rm -f "$(DEPDIR)/data_tank.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/data/data_tank.cc' object='data_tank.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/data_tank.Po' tmpdepfile='$(DEPDIR)/data_tank.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o data_tank.obj `if test -f 'lib/data/data_tank.cc'; then $(CYGPATH_W) 'lib/data/data_tank.cc'; else $(CYGPATH_W) '$(srcdir)/lib/data/data_tank.cc'; fi`
-
 graphics_engine.o: lib/graphics/graphics_engine.cc
 @am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.o -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.o `test -f 'lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`lib/graphics/graphics_engine.cc; \
@@ -1248,4 +1177,20 @@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o objModel.obj `if test -f 'lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) 'lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/lib/graphics/importer/objModel.cc'; fi`
 
+md2Model.o: lib/graphics/importer/md2Model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT md2Model.o -MD -MP -MF "$(DEPDIR)/md2Model.Tpo" -c -o md2Model.o `test -f 'lib/graphics/importer/md2Model.cc' || echo '$(srcdir)/'`lib/graphics/importer/md2Model.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/md2Model.Tpo" "$(DEPDIR)/md2Model.Po"; else rm -f "$(DEPDIR)/md2Model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/graphics/importer/md2Model.cc' object='md2Model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/md2Model.Po' tmpdepfile='$(DEPDIR)/md2Model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o md2Model.o `test -f 'lib/graphics/importer/md2Model.cc' || echo '$(srcdir)/'`lib/graphics/importer/md2Model.cc
+
+md2Model.obj: lib/graphics/importer/md2Model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT md2Model.obj -MD -MP -MF "$(DEPDIR)/md2Model.Tpo" -c -o md2Model.obj `if test -f 'lib/graphics/importer/md2Model.cc'; then $(CYGPATH_W) 'lib/graphics/importer/md2Model.cc'; else $(CYGPATH_W) '$(srcdir)/lib/graphics/importer/md2Model.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/md2Model.Tpo" "$(DEPDIR)/md2Model.Po"; else rm -f "$(DEPDIR)/md2Model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/graphics/importer/md2Model.cc' object='md2Model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/md2Model.Po' tmpdepfile='$(DEPDIR)/md2Model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o md2Model.obj `if test -f 'lib/graphics/importer/md2Model.cc'; then $(CYGPATH_W) 'lib/graphics/importer/md2Model.cc'; else $(CYGPATH_W) '$(srcdir)/lib/graphics/importer/md2Model.cc'; fi`
+
 primitive_model.o: lib/graphics/importer/primitive_model.cc
 @am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT primitive_model.o -MD -MP -MF "$(DEPDIR)/primitive_model.Tpo" -c -o primitive_model.o `test -f 'lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`lib/graphics/importer/primitive_model.cc; \
@@ -1424,36 +1369,4 @@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o substring.obj `if test -f 'lib/util/substring.cc'; then $(CYGPATH_W) 'lib/util/substring.cc'; else $(CYGPATH_W) '$(srcdir)/lib/util/substring.cc'; fi`
 
-list.o: util/common/list.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT list.o -MD -MP -MF "$(DEPDIR)/list.Tpo" -c -o list.o `test -f 'util/common/list.cc' || echo '$(srcdir)/'`util/common/list.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/list.Tpo" "$(DEPDIR)/list.Po"; else rm -f "$(DEPDIR)/list.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/common/list.cc' object='list.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/list.Po' tmpdepfile='$(DEPDIR)/list.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o list.o `test -f 'util/common/list.cc' || echo '$(srcdir)/'`util/common/list.cc
-
-list.obj: util/common/list.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT list.obj -MD -MP -MF "$(DEPDIR)/list.Tpo" -c -o list.obj `if test -f 'util/common/list.cc'; then $(CYGPATH_W) 'util/common/list.cc'; else $(CYGPATH_W) '$(srcdir)/util/common/list.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/list.Tpo" "$(DEPDIR)/list.Po"; else rm -f "$(DEPDIR)/list.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/common/list.cc' object='list.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/list.Po' tmpdepfile='$(DEPDIR)/list.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o list.obj `if test -f 'util/common/list.cc'; then $(CYGPATH_W) 'util/common/list.cc'; else $(CYGPATH_W) '$(srcdir)/util/common/list.cc'; fi`
-
-resource_manager.o: util/resource_manager.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.o -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.o `test -f 'util/resource_manager.cc' || echo '$(srcdir)/'`util/resource_manager.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/resource_manager.cc' object='resource_manager.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.o `test -f 'util/resource_manager.cc' || echo '$(srcdir)/'`util/resource_manager.cc
-
-resource_manager.obj: util/resource_manager.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.obj -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.obj `if test -f 'util/resource_manager.cc'; then $(CYGPATH_W) 'util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/util/resource_manager.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/resource_manager.cc' object='resource_manager.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.obj `if test -f 'util/resource_manager.cc'; then $(CYGPATH_W) 'util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/util/resource_manager.cc'; fi`
-
 i_physics.o: util/physics/i_physics.cc
 @am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT i_physics.o -MD -MP -MF "$(DEPDIR)/i_physics.Tpo" -c -o i_physics.o `test -f 'util/physics/i_physics.cc' || echo '$(srcdir)/'`util/physics/i_physics.cc; \
@@ -1615,68 +1528,4 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmenu_imagescreen.obj `if test -f 'glmenu/glmenu_imagescreen.cc'; then $(CYGPATH_W) 'glmenu/glmenu_imagescreen.cc'; else $(CYGPATH_W) '$(srcdir)/glmenu/glmenu_imagescreen.cc'; fi`
-
-tinyxml.o: lib/xmlparser/tinyxml.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxml.o -MD -MP -MF "$(DEPDIR)/tinyxml.Tpo" -c -o tinyxml.o `test -f 'lib/xmlparser/tinyxml.cc' || echo '$(srcdir)/'`lib/xmlparser/tinyxml.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/tinyxml.Tpo" "$(DEPDIR)/tinyxml.Po"; else rm -f "$(DEPDIR)/tinyxml.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/xmlparser/tinyxml.cc' object='tinyxml.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/tinyxml.Po' tmpdepfile='$(DEPDIR)/tinyxml.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxml.o `test -f 'lib/xmlparser/tinyxml.cc' || echo '$(srcdir)/'`lib/xmlparser/tinyxml.cc
-
-tinyxml.obj: lib/xmlparser/tinyxml.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxml.obj -MD -MP -MF "$(DEPDIR)/tinyxml.Tpo" -c -o tinyxml.obj `if test -f 'lib/xmlparser/tinyxml.cc'; then $(CYGPATH_W) 'lib/xmlparser/tinyxml.cc'; else $(CYGPATH_W) '$(srcdir)/lib/xmlparser/tinyxml.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/tinyxml.Tpo" "$(DEPDIR)/tinyxml.Po"; else rm -f "$(DEPDIR)/tinyxml.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/xmlparser/tinyxml.cc' object='tinyxml.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/tinyxml.Po' tmpdepfile='$(DEPDIR)/tinyxml.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxml.obj `if test -f 'lib/xmlparser/tinyxml.cc'; then $(CYGPATH_W) 'lib/xmlparser/tinyxml.cc'; else $(CYGPATH_W) '$(srcdir)/lib/xmlparser/tinyxml.cc'; fi`
-
-tinystr.o: lib/xmlparser/tinystr.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinystr.o -MD -MP -MF "$(DEPDIR)/tinystr.Tpo" -c -o tinystr.o `test -f 'lib/xmlparser/tinystr.cc' || echo '$(srcdir)/'`lib/xmlparser/tinystr.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/tinystr.Tpo" "$(DEPDIR)/tinystr.Po"; else rm -f "$(DEPDIR)/tinystr.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/xmlparser/tinystr.cc' object='tinystr.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/tinystr.Po' tmpdepfile='$(DEPDIR)/tinystr.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinystr.o `test -f 'lib/xmlparser/tinystr.cc' || echo '$(srcdir)/'`lib/xmlparser/tinystr.cc
-
-tinystr.obj: lib/xmlparser/tinystr.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinystr.obj -MD -MP -MF "$(DEPDIR)/tinystr.Tpo" -c -o tinystr.obj `if test -f 'lib/xmlparser/tinystr.cc'; then $(CYGPATH_W) 'lib/xmlparser/tinystr.cc'; else $(CYGPATH_W) '$(srcdir)/lib/xmlparser/tinystr.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/tinystr.Tpo" "$(DEPDIR)/tinystr.Po"; else rm -f "$(DEPDIR)/tinystr.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/xmlparser/tinystr.cc' object='tinystr.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/tinystr.Po' tmpdepfile='$(DEPDIR)/tinystr.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinystr.obj `if test -f 'lib/xmlparser/tinystr.cc'; then $(CYGPATH_W) 'lib/xmlparser/tinystr.cc'; else $(CYGPATH_W) '$(srcdir)/lib/xmlparser/tinystr.cc'; fi`
-
-tinyxmlerror.o: lib/xmlparser/tinyxmlerror.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlerror.o -MD -MP -MF "$(DEPDIR)/tinyxmlerror.Tpo" -c -o tinyxmlerror.o `test -f 'lib/xmlparser/tinyxmlerror.cc' || echo '$(srcdir)/'`lib/xmlparser/tinyxmlerror.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/tinyxmlerror.Tpo" "$(DEPDIR)/tinyxmlerror.Po"; else rm -f "$(DEPDIR)/tinyxmlerror.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/xmlparser/tinyxmlerror.cc' object='tinyxmlerror.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/tinyxmlerror.Po' tmpdepfile='$(DEPDIR)/tinyxmlerror.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlerror.o `test -f 'lib/xmlparser/tinyxmlerror.cc' || echo '$(srcdir)/'`lib/xmlparser/tinyxmlerror.cc
-
-tinyxmlerror.obj: lib/xmlparser/tinyxmlerror.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlerror.obj -MD -MP -MF "$(DEPDIR)/tinyxmlerror.Tpo" -c -o tinyxmlerror.obj `if test -f 'lib/xmlparser/tinyxmlerror.cc'; then $(CYGPATH_W) 'lib/xmlparser/tinyxmlerror.cc'; else $(CYGPATH_W) '$(srcdir)/lib/xmlparser/tinyxmlerror.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/tinyxmlerror.Tpo" "$(DEPDIR)/tinyxmlerror.Po"; else rm -f "$(DEPDIR)/tinyxmlerror.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/xmlparser/tinyxmlerror.cc' object='tinyxmlerror.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/tinyxmlerror.Po' tmpdepfile='$(DEPDIR)/tinyxmlerror.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlerror.obj `if test -f 'lib/xmlparser/tinyxmlerror.cc'; then $(CYGPATH_W) 'lib/xmlparser/tinyxmlerror.cc'; else $(CYGPATH_W) '$(srcdir)/lib/xmlparser/tinyxmlerror.cc'; fi`
-
-tinyxmlparser.o: lib/xmlparser/tinyxmlparser.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlparser.o -MD -MP -MF "$(DEPDIR)/tinyxmlparser.Tpo" -c -o tinyxmlparser.o `test -f 'lib/xmlparser/tinyxmlparser.cc' || echo '$(srcdir)/'`lib/xmlparser/tinyxmlparser.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/tinyxmlparser.Tpo" "$(DEPDIR)/tinyxmlparser.Po"; else rm -f "$(DEPDIR)/tinyxmlparser.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/xmlparser/tinyxmlparser.cc' object='tinyxmlparser.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/tinyxmlparser.Po' tmpdepfile='$(DEPDIR)/tinyxmlparser.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlparser.o `test -f 'lib/xmlparser/tinyxmlparser.cc' || echo '$(srcdir)/'`lib/xmlparser/tinyxmlparser.cc
-
-tinyxmlparser.obj: lib/xmlparser/tinyxmlparser.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tinyxmlparser.obj -MD -MP -MF "$(DEPDIR)/tinyxmlparser.Tpo" -c -o tinyxmlparser.obj `if test -f 'lib/xmlparser/tinyxmlparser.cc'; then $(CYGPATH_W) 'lib/xmlparser/tinyxmlparser.cc'; else $(CYGPATH_W) '$(srcdir)/lib/xmlparser/tinyxmlparser.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/tinyxmlparser.Tpo" "$(DEPDIR)/tinyxmlparser.Po"; else rm -f "$(DEPDIR)/tinyxmlparser.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/xmlparser/tinyxmlparser.cc' object='tinyxmlparser.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/tinyxmlparser.Po' tmpdepfile='$(DEPDIR)/tinyxmlparser.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tinyxmlparser.obj `if test -f 'lib/xmlparser/tinyxmlparser.cc'; then $(CYGPATH_W) 'lib/xmlparser/tinyxmlparser.cc'; else $(CYGPATH_W) '$(srcdir)/lib/xmlparser/tinyxmlparser.cc'; fi`
 
 benchmark.o: subprojects/benchmark.cc
@@ -1818,5 +1667,5 @@
 
 distdir: $(DISTFILES)
-	$(mkdir_p) $(distdir)/ai $(distdir)/defs $(distdir)/glmenu $(distdir)/lib/coord $(distdir)/lib/data $(distdir)/lib/graphics $(distdir)/lib/graphics/particles $(distdir)/lib/gui/gui $(distdir)/lib/lang $(distdir)/lib/math $(distdir)/lib/util $(distdir)/network $(distdir)/proto $(distdir)/story_entities $(distdir)/subprojects $(distdir)/util $(distdir)/util/animation $(distdir)/util/common $(distdir)/util/physics $(distdir)/util/physics/fields $(distdir)/world_entities
+	$(mkdir_p) $(distdir)/ai $(distdir)/defs $(distdir)/glmenu $(distdir)/lib/coord $(distdir)/lib/graphics $(distdir)/lib/graphics/importer $(distdir)/lib/graphics/particles $(distdir)/lib/lang $(distdir)/lib/math $(distdir)/lib/util $(distdir)/network $(distdir)/proto $(distdir)/story_entities $(distdir)/subprojects $(distdir)/util $(distdir)/util/animation $(distdir)/util/common $(distdir)/util/loading $(distdir)/util/physics $(distdir)/util/physics/fields $(distdir)/util/track $(distdir)/world_entities
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
@@ -1860,5 +1709,5 @@
 check-am: all-am
 check: check-recursive
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
+all-am: Makefile $(PROGRAMS) $(HEADERS)
 installdirs: installdirs-recursive
 installdirs-am:
@@ -1892,6 +1741,5 @@
 clean: clean-recursive
 
-clean-am: clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
-	mostlyclean-am
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
 
 distclean: distclean-recursive
@@ -1943,16 +1791,16 @@
 
 .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
-	clean clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
-	clean-recursive ctags ctags-recursive distclean \
-	distclean-compile distclean-generic distclean-recursive \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-binPROGRAMS install-data \
-	install-data-am install-exec install-exec-am install-info \
-	install-info-am install-man install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic maintainer-clean-recursive \
-	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am uninstall-binPROGRAMS uninstall-info-am
+	clean clean-binPROGRAMS clean-generic clean-recursive ctags \
+	ctags-recursive distclean distclean-compile distclean-generic \
+	distclean-recursive distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic \
+	maintainer-clean-recursive mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-info-am
 
 
Index: orxonox/branches/physics/src/defs/keynames.cc
===================================================================
--- orxonox/branches/physics/src/defs/keynames.cc	(revision 4283)
+++ orxonox/branches/physics/src/defs/keynames.cc	(revision 4283)
@@ -0,0 +1,318 @@
+/* 
+   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: Christian Meyer
+   co-programmer: ...
+*/
+
+#include "keynames.h"
+
+#include "stdincl.h"
+
+#include <string.h>
+
+using namespace std;
+
+int buttonnameToSDLB( char* name)
+{
+	if( !strcmp (name, "BUTTON_LEFT")) return SDL_BUTTON_LEFT;
+	if( !strcmp (name, "BUTTON_MIDDLE")) return SDL_BUTTON_MIDDLE;
+	if( !strcmp (name, "BUTTON_RIGHT")) return SDL_BUTTON_RIGHT;
+//	if( !strcmp (name, "BUTTON_WHEELUP")) return SDL_BUTTON_WHEELUP;
+//	if( !strcmp (name, "BUTTON_WHEELDOWN")) return SDL_BUTTON_WHEELDOWN;
+	return -1;
+}
+
+char* SDLBToButtonname( int button)
+{
+	if( button == SDL_BUTTON_LEFT) return "BUTTON_LEFT";
+	if( button == SDL_BUTTON_MIDDLE) return "BUTTON_MIDDLE";
+	if( button == SDL_BUTTON_RIGHT) return "BUTTON_RIGHT";
+//	if( button == SDL_BUTTON_WHEELUP) return "BUTTON_WHEELUP";
+//	if( button == SDL_BUTTON_WHEELDOWN) return "BUTTON_WHEELDOWN";
+	return "UNKNOWN";
+}
+
+int keynameToSDLK( char* name)
+{
+	if( !strcmp (name, "BACKSPACE")) return SDLK_BACKSPACE;
+	if( !strcmp (name, "TAB")) return SDLK_TAB;
+	if( !strcmp (name, "CLEAR")) return SDLK_CLEAR;
+	if( !strcmp (name, "RETURN")) return SDLK_RETURN;
+	if( !strcmp (name, "ESCAPE")) return SDLK_ESCAPE;
+	if( !strcmp (name, "SPACE")) return SDLK_SPACE;
+	if( !strcmp (name, "EXCLAIM")) return SDLK_EXCLAIM;
+	if( !strcmp (name, "QUOTEDBL")) return SDLK_QUOTEDBL;
+	if( !strcmp (name, "HASH")) return SDLK_HASH;
+	if( !strcmp (name, "PAUSE")) return SDLK_PAUSE;
+	if( !strcmp (name, "DOLLAR")) return SDLK_DOLLAR;
+	if( !strcmp (name, "AMPERSAND")) return SDLK_AMPERSAND;
+	if( !strcmp (name, "QUOTE")) return SDLK_QUOTE;
+	if( !strcmp (name, "LEFTPAREN")) return SDLK_LEFTPAREN;
+	if( !strcmp (name, "RIGHTPAREN")) return SDLK_RIGHTPAREN;
+	if( !strcmp (name, "ASTERISK")) return SDLK_ASTERISK;
+	if( !strcmp (name, "PLUS")) return SDLK_PLUS;
+	if( !strcmp (name, "COMMA")) return SDLK_COMMA;
+	if( !strcmp (name, "MINUS")) return SDLK_MINUS;
+	if( !strcmp (name, "PERIOD")) return SDLK_PERIOD;
+	if( !strcmp (name, "SLASH")) return SDLK_SLASH;
+	if( !strcmp (name, "0")) return SDLK_0;
+	if( !strcmp (name, "1")) return SDLK_1;
+	if( !strcmp (name, "2")) return SDLK_2;
+	if( !strcmp (name, "3")) return SDLK_3;
+	if( !strcmp (name, "4")) return SDLK_4;
+	if( !strcmp (name, "5")) return SDLK_5;
+	if( !strcmp (name, "6")) return SDLK_6;
+	if( !strcmp (name, "7")) return SDLK_7;
+	if( !strcmp (name, "8")) return SDLK_8;
+	if( !strcmp (name, "9")) return SDLK_9;
+	if( !strcmp (name, "COLON")) return SDLK_COLON;
+	if( !strcmp (name, "SEMICOLON")) return SDLK_SEMICOLON;
+	if( !strcmp (name, "LESS")) return SDLK_LESS;
+	if( !strcmp (name, "EQUALS")) return SDLK_EQUALS;
+	if( !strcmp (name, "GREATER")) return SDLK_GREATER;
+	if( !strcmp (name, "QUESTION")) return SDLK_QUESTION;
+	if( !strcmp (name, "AT")) return SDLK_AT;
+	if( !strcmp (name, "LEFTBRACKET")) return SDLK_LEFTBRACKET;
+	if( !strcmp (name, "BACKSLASH")) return SDLK_BACKSLASH;
+	if( !strcmp (name, "RIGHTBRACKET")) return SDLK_RIGHTBRACKET;
+	if( !strcmp (name, "CARET")) return SDLK_CARET;
+	if( !strcmp (name, "UNDERSCORE")) return SDLK_UNDERSCORE;
+	if( !strcmp (name, "BACKQUOTE")) return SDLK_BACKQUOTE;
+	if( !strcmp (name, "a")) return SDLK_a;
+	if( !strcmp (name, "b")) return SDLK_b;
+	if( !strcmp (name, "c")) return SDLK_c;
+	if( !strcmp (name, "d")) return SDLK_d;
+	if( !strcmp (name, "e")) return SDLK_e;
+	if( !strcmp (name, "f")) return SDLK_f;
+	if( !strcmp (name, "g")) return SDLK_g;
+	if( !strcmp (name, "h")) return SDLK_h;
+	if( !strcmp (name, "i")) return SDLK_i;
+	if( !strcmp (name, "j")) return SDLK_j;
+	if( !strcmp (name, "k")) return SDLK_k;
+	if( !strcmp (name, "l")) return SDLK_l;
+	if( !strcmp (name, "m")) return SDLK_m;
+	if( !strcmp (name, "n")) return SDLK_n;
+	if( !strcmp (name, "o")) return SDLK_o;
+	if( !strcmp (name, "p")) return SDLK_p;
+	if( !strcmp (name, "q")) return SDLK_q;
+	if( !strcmp (name, "r")) return SDLK_r;
+	if( !strcmp (name, "s")) return SDLK_s;
+	if( !strcmp (name, "t")) return SDLK_t;
+	if( !strcmp (name, "u")) return SDLK_u;
+	if( !strcmp (name, "v")) return SDLK_v;
+	if( !strcmp (name, "w")) return SDLK_w;
+	if( !strcmp (name, "x")) return SDLK_x;
+	if( !strcmp (name, "y")) return SDLK_y;
+	if( !strcmp (name, "z")) return SDLK_z;
+	if( !strcmp (name, "DELETE")) return SDLK_DELETE;
+	if( !strcmp (name, "KP0")) return SDLK_KP0;
+	if( !strcmp (name, "KP1")) return SDLK_KP1;
+	if( !strcmp (name, "KP2")) return SDLK_KP2;
+	if( !strcmp (name, "KP3")) return SDLK_KP3;
+	if( !strcmp (name, "KP4")) return SDLK_KP4;
+	if( !strcmp (name, "KP5")) return SDLK_KP5;
+	if( !strcmp (name, "KP6")) return SDLK_KP6;
+	if( !strcmp (name, "KP7")) return SDLK_KP7;
+	if( !strcmp (name, "KP8")) return SDLK_KP8;
+	if( !strcmp (name, "KP9")) return SDLK_KP9;
+	if( !strcmp (name, "KP_PERIOD")) return SDLK_KP_PERIOD;
+	if( !strcmp (name, "KP_DIVIDE")) return SDLK_KP_DIVIDE;
+	if( !strcmp (name, "KP_MULTIPLY")) return SDLK_KP_MULTIPLY;
+	if( !strcmp (name, "KP_MINUS")) return SDLK_KP_MINUS;
+	if( !strcmp (name, "KP_PLUS")) return SDLK_KP_PLUS;
+	if( !strcmp (name, "KP_ENTER")) return SDLK_KP_ENTER;
+	if( !strcmp (name, "KP_EQUALS")) return SDLK_KP_EQUALS;
+	if( !strcmp (name, "UP")) return SDLK_UP;
+	if( !strcmp (name, "DOWN")) return SDLK_DOWN;
+	if( !strcmp (name, "RIGHT")) return SDLK_RIGHT;
+	if( !strcmp (name, "LEFT")) return SDLK_LEFT;
+	if( !strcmp (name, "INSERT")) return SDLK_INSERT;
+	if( !strcmp (name, "HOME")) return SDLK_HOME;
+	if( !strcmp (name, "END")) return SDLK_END;
+	if( !strcmp (name, "PAGEUP")) return SDLK_PAGEUP;
+	if( !strcmp (name, "PAGEDOWN")) return SDLK_PAGEDOWN;
+	if( !strcmp (name, "F1")) return SDLK_F1;
+	if( !strcmp (name, "F2")) return SDLK_F2;
+	if( !strcmp (name, "F3")) return SDLK_F3;
+	if( !strcmp (name, "F4")) return SDLK_F4;
+	if( !strcmp (name, "F5")) return SDLK_F5;
+	if( !strcmp (name, "F6")) return SDLK_F6;
+	if( !strcmp (name, "F7")) return SDLK_F7;
+	if( !strcmp (name, "F8")) return SDLK_F8;
+	if( !strcmp (name, "F9")) return SDLK_F9;
+	if( !strcmp (name, "F10")) return SDLK_F10;
+	if( !strcmp (name, "F11")) return SDLK_F11;
+	if( !strcmp (name, "F12")) return SDLK_F12;
+	if( !strcmp (name, "F13")) return SDLK_F13;
+	if( !strcmp (name, "F14")) return SDLK_F14;
+	if( !strcmp (name, "F15")) return SDLK_F15;
+	if( !strcmp (name, "NUMLOCK")) return SDLK_NUMLOCK;
+	if( !strcmp (name, "CAPSLOCK")) return SDLK_CAPSLOCK;
+	if( !strcmp (name, "SCROLLOCK")) return SDLK_SCROLLOCK;
+	if( !strcmp (name, "RSHIFT")) return SDLK_RSHIFT;
+	if( !strcmp (name, "LSHIFT")) return SDLK_LSHIFT;
+	if( !strcmp (name, "RCTRL")) return SDLK_RCTRL;
+	if( !strcmp (name, "LCTRL")) return SDLK_LCTRL;
+	if( !strcmp (name, "RALT")) return SDLK_RALT;
+	if( !strcmp (name, "LALT")) return SDLK_LALT;
+	if( !strcmp (name, "RMETA")) return SDLK_RMETA;
+	if( !strcmp (name, "LMETA")) return SDLK_LMETA;
+	if( !strcmp (name, "LSUPER")) return SDLK_LSUPER;
+	if( !strcmp (name, "RSUPER")) return SDLK_RSUPER;
+	if( !strcmp (name, "MODE")) return SDLK_MODE;
+	if( !strcmp (name, "HELP")) return SDLK_HELP;
+	if( !strcmp (name, "PRINT")) return SDLK_PRINT;
+	if( !strcmp (name, "SYSREQ")) return SDLK_SYSREQ;
+	if( !strcmp (name, "BREAK")) return SDLK_BREAK;
+	if( !strcmp (name, "MENU")) return SDLK_MENU;
+	if( !strcmp (name, "POWER")) return SDLK_POWER;
+	if( !strcmp (name, "EURO")) return SDLK_EURO;
+	return -1;
+}
+
+char* SDLKToKeyname( int key)
+{
+	if( key == SDLK_BACKSPACE) return "BACKSPACE";
+	if( key == SDLK_TAB) return "TAB";
+	if( key == SDLK_CLEAR) return "CLEAR";
+	if( key == SDLK_RETURN) return "RETURN";
+	if( key == SDLK_SPACE) return "SPACE";
+	if( key == SDLK_ESCAPE) return "ESCAPE";
+	if( key == SDLK_EXCLAIM) return "EXCLAIM";
+	if( key == SDLK_QUOTEDBL) return "QUOTEDBL";
+	if( key == SDLK_HASH) return "HASH";
+	if( key == SDLK_PAUSE) return "PAUSE";
+	if( key == SDLK_DOLLAR) return "DOLLAR";
+	if( key == SDLK_AMPERSAND) return "AMPERSAND";
+	if( key == SDLK_QUOTE) return "QUOTE";
+	if( key == SDLK_LEFTPAREN) return "LEFTPAREN";
+	if( key == SDLK_RIGHTPAREN) return "RIGHTPAREN";
+	if( key == SDLK_ASTERISK) return "ASTERISK";
+	if( key == SDLK_PLUS) return "PLUS";
+	if( key == SDLK_COMMA) return "COMMA";
+	if( key == SDLK_MINUS) return "MINUS";
+	if( key == SDLK_PERIOD) return "PERIOD";
+	if( key == SDLK_SLASH) return "SLASH";
+	if( key == SDLK_0) return "0";
+	if( key == SDLK_1) return "1";
+	if( key == SDLK_2) return "2";
+	if( key == SDLK_3) return "3";
+	if( key == SDLK_4) return "4";
+	if( key == SDLK_5) return "5";
+	if( key == SDLK_6) return "6";
+	if( key == SDLK_7) return "7";
+	if( key == SDLK_8) return "8";
+	if( key == SDLK_9) return "9";
+	if( key == SDLK_COLON) return "COLON";
+	if( key == SDLK_SEMICOLON) return "SEMICOLON";
+	if( key == SDLK_LESS) return "LESS";
+	if( key == SDLK_EQUALS) return "EQUALS";
+	if( key == SDLK_GREATER) return "GREATER";
+	if( key == SDLK_QUESTION) return "QUESTION";
+	if( key == SDLK_AT) return "AT";
+	if( key == SDLK_LEFTBRACKET) return "LEFTBRACKET";
+	if( key == SDLK_BACKSLASH) return "BACKSLASH";
+	if( key == SDLK_RIGHTBRACKET) return "RIGHTBRACKET";
+	if( key == SDLK_CARET) return "CARET";
+	if( key == SDLK_UNDERSCORE) return "UNDERSCORE";
+	if( key == SDLK_BACKQUOTE) return "BACKQUOTE";
+	if( key == SDLK_a) return "a";
+	if( key == SDLK_b) return "b";
+	if( key == SDLK_c) return "c";
+	if( key == SDLK_d) return "d";
+	if( key == SDLK_e) return "e";
+	if( key == SDLK_f) return "f";
+	if( key == SDLK_g) return "g";
+	if( key == SDLK_h) return "h";
+	if( key == SDLK_i) return "i";
+	if( key == SDLK_j) return "j";
+	if( key == SDLK_k) return "k";
+	if( key == SDLK_l) return "l";
+	if( key == SDLK_m) return "m";
+	if( key == SDLK_n) return "n";
+	if( key == SDLK_o) return "o";
+	if( key == SDLK_p) return "p";
+	if( key == SDLK_q) return "q";
+	if( key == SDLK_r) return "r";
+	if( key == SDLK_s) return "s";
+	if( key == SDLK_t) return "t";
+	if( key == SDLK_u) return "u";
+	if( key == SDLK_v) return "v";
+	if( key == SDLK_w) return "w";
+	if( key == SDLK_x) return "x";
+	if( key == SDLK_y) return "y";
+	if( key == SDLK_z) return "z";
+	if( key == SDLK_DELETE) return "DELETE";
+	if( key == SDLK_KP0) return "KP0";
+	if( key == SDLK_KP1) return "KP1";
+	if( key == SDLK_KP2) return "KP2";
+	if( key == SDLK_KP3) return "KP3";
+	if( key == SDLK_KP4) return "KP4";
+	if( key == SDLK_KP5) return "KP5";
+	if( key == SDLK_KP6) return "KP6";
+	if( key == SDLK_KP7) return "KP7";
+	if( key == SDLK_KP8) return "KP8";
+	if( key == SDLK_KP9) return "KP9";
+	if( key == SDLK_KP_PERIOD) return "KP_PERIOD";
+	if( key == SDLK_KP_DIVIDE) return "KP_DIVIDE";
+	if( key == SDLK_KP_MULTIPLY) return "KP_MULTIPLY";
+	if( key == SDLK_KP_MINUS) return "KP_MINUS";
+	if( key == SDLK_KP_PLUS) return "KP_PLUS";
+	if( key == SDLK_KP_ENTER) return "KP_ENTER";
+	if( key == SDLK_KP_EQUALS) return "KP_EQUALS";
+	if( key == SDLK_UP) return "UP";
+	if( key == SDLK_DOWN) return "DOWN";
+	if( key == SDLK_RIGHT) return "RIGHT";
+	if( key == SDLK_LEFT) return "LEFT";
+	if( key == SDLK_INSERT) return "INSERT";
+	if( key == SDLK_HOME) return "HOME";
+	if( key == SDLK_END) return "END";
+	if( key == SDLK_PAGEUP) return "PAGEUP";
+	if( key == SDLK_PAGEDOWN) return "PAGEDOWN";
+	if( key == SDLK_F1) return "F1";
+	if( key == SDLK_F2) return "F2";
+	if( key == SDLK_F3) return "F3";
+	if( key == SDLK_F4) return "F4";
+	if( key == SDLK_F5) return "F5";
+	if( key == SDLK_F6) return "F6";
+	if( key == SDLK_F7) return "F7";
+	if( key == SDLK_F8) return "F8";
+	if( key == SDLK_F9) return "F9";
+	if( key == SDLK_F10) return "F10";
+	if( key == SDLK_F11) return "F11";
+	if( key == SDLK_F12) return "F12";
+	if( key == SDLK_F13) return "F13";
+	if( key == SDLK_F14) return "F14";
+	if( key == SDLK_F15) return "F15";
+	if( key == SDLK_NUMLOCK) return "NUMLOCK";
+	if( key == SDLK_CAPSLOCK) return "CAPSLOCK";
+	if( key == SDLK_SCROLLOCK) return "SCROLLOCK";
+	if( key == SDLK_RSHIFT) return "RSHIFT";
+	if( key == SDLK_LSHIFT) return "LSHIFT";
+	if( key == SDLK_RCTRL) return "RCTRL";
+	if( key == SDLK_LCTRL) return "LCTRL";
+	if( key == SDLK_RALT) return "RALT";
+	if( key == SDLK_LALT) return "LALT";
+	if( key == SDLK_RMETA) return "RMETA";
+	if( key == SDLK_LMETA) return "LMETA";
+	if( key == SDLK_LSUPER) return "LSUPER";
+	if( key == SDLK_RSUPER) return "RSUPER";
+	if( key == SDLK_MODE) return "MODE";
+	if( key == SDLK_HELP) return "HELP";
+	if( key == SDLK_PRINT) return "PRINT";
+	if( key == SDLK_SYSREQ) return "SYSREQ";
+	if( key == SDLK_BREAK) return "BREAK";
+	if( key == SDLK_MENU) return "MENU";
+	if( key == SDLK_POWER) return "POWER";
+	if( key == SDLK_EURO) return "EURO";
+	return "UNKNOWN";
+}
Index: orxonox/branches/physics/src/defs/keynames.h
===================================================================
--- orxonox/branches/physics/src/defs/keynames.h	(revision 4283)
+++ orxonox/branches/physics/src/defs/keynames.h	(revision 4283)
@@ -0,0 +1,39 @@
+/*!
+    \file keynames.h
+    \brief Key/button naming functions
+    
+		Converts strings to SDLK/SDL_BUTTON values and vice versa
+*/
+#ifndef _KEYNAMES_H
+#define _KEYNAMES_H
+
+/**
+	\brief converts a button name string to a integer representing the corresponding SDL mouse button identifier
+	\param name: the name of the mouse button
+	\return an int containing the SDL identifier of the mouse button or -1 if the button name is not valid
+*/
+int buttonnameToSDLB( char* name);
+
+/**
+	\brief converst a SDL mouse button identifier to a name string
+	\param button: an SDL mouse button identifier
+	\return a pointer to a string containing the name of the mouse button
+*/
+char* SDLBToButtonname( int button);
+
+/**
+	\brief converts a key name string to a integer representing the corresponding SDLK sym
+	\param name: the name of the key
+	\return the SDLK sym of the named key or -1 if the key name is not valid
+*/
+int keynameToSDLK( char* name);
+
+/**
+	\brief converts an SDLK sym to a name string
+	\param key: the SDLK sym
+	\return a pointer to a string containig the name of the key
+*/
+char* SDLKToKeyname( int key);
+
+
+#endif /* _KEYNAMES_H */
Index: orxonox/branches/physics/src/defs/message_structures.h
===================================================================
--- orxonox/branches/physics/src/defs/message_structures.h	(revision 4283)
+++ orxonox/branches/physics/src/defs/message_structures.h	(revision 4283)
@@ -0,0 +1,30 @@
+/*!
+	\file message_structures.h
+	\brief contains defintitons of messages that can be passed between classes
+*/
+
+#ifndef _MESSAGE_STRUCTURES_H
+#define _MESSAGE_STRUCTURES_H
+
+#include "stdincl.h"
+
+#define CMD_LENGHT 16
+
+//! structure that contains a command message
+typedef struct
+{
+	char cmd[CMD_LENGHT];	//!< the command delivered
+	bool bUp;	//!< false = command was activated / true = command was deactivated
+	
+	//! if cmd is "cursor" the coordinates of the mouse cursor are stored here
+	//!@{
+	Uint16 x, y;
+	//!@}
+	
+	//! if cmd is "cursor" the relative motion of the mouse cursor is stored here
+	//!@{
+	Sint16 xrel, yrel; 
+	//!@}
+} Command;
+
+#endif /* _MESSAGE_STRUCTURES_H */
Index: orxonox/branches/physics/src/defs/stdincl.h
===================================================================
--- orxonox/branches/physics/src/defs/stdincl.h	(revision 4274)
+++ orxonox/branches/physics/src/defs/stdincl.h	(revision 4283)
@@ -28,6 +28,4 @@
 
 #include "compiler.h"
-#include "xmlparser/tinyxml.h"
-#include "factory.h"
 
 #endif /* _STDINCL_H */
Index: orxonox/branches/physics/src/factory.cc
===================================================================
--- orxonox/branches/physics/src/factory.cc	(revision 4274)
+++ 	(revision )
@@ -1,109 +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: Christian Meyer
-   co-programmer: ...
-*/
-
-
-#include "factory.h"
-#include "game_loader.h"
-
-using namespace std;
-
-/*  --------------------------------------------------
- *		 Factory
- *   --------------------------------------------------
- */
-
-/**
-   \brief constructor
-   
-   set everything to zero and define factoryName
-*/
-Factory::Factory (const char* name)
-{
-  this->factoryName = NULL;
-  this->setFactoryName(name);
-  next = NULL;
-  
-  initialize();
-}
-
-/**
-   \brief destructor
-   
-   clear the Q
-*/
-Factory::~Factory ()
-{
-  //  printf("%s\n", this->factoryName);
-  //  Factory* tmpDel = this->next;
-  //  this->next = NULL;
-  if (this->next)
-    delete this->next;
-}
-
-void Factory::setFactoryName(const char* name)
-{
-  if (factoryName)
-    delete factoryName;
-  factoryName = new char[strlen(name)+1];
-  strcpy(factoryName, name);
-}
-
-
-/**
-   \brief generates the associated object from data
-*/
-BaseObject* Factory::fabricate( TiXmlElement* data)
-{
-  return NULL;
-}
-
-/**
-   \brief make this particular factory known to the LevelFactory
-*/
-void Factory::initialize()
-{
-  GameLoader* gl = GameLoader::getInstance();
-  gl->registerFactory( this);
-}
-
-/**
-   \brief add a Factory to the Q
-*/
-void Factory::registerFactory( Factory* factory)
-{
-  if( next == NULL) setNext( factory);
-  else next->registerFactory( factory);
-}
-
-const char* grabParameter( TiXmlElement* root, const char* name)
-{
-  TiXmlElement* element;
-  TiXmlNode* node;
-	
-  assert( root != NULL);
-  assert( name != NULL);
-	
-  element = root->FirstChildElement( name);
-  if( element == NULL) return NULL;
-	
-  node = element->FirstChild();
-  while( node != NULL)
-    {
-      if( node->ToText()) return node->Value();
-      node = node->NextSibling();
-    }
-  return NULL;
-}
-
Index: orxonox/branches/physics/src/factory.h
===================================================================
--- orxonox/branches/physics/src/factory.h	(revision 4274)
+++ 	(revision )
@@ -1,84 +1,0 @@
-/*! 
-    \file factory.h
-    \brief philosophy stuff
-*/
-
-#ifndef _FACTORY_H
-#define _FACTORY_H
-
-class BaseObject;
-
-#include "xmlparser/tinyxml.h"
-#include "debug.h"
-
-/** 
-    Creates a factory to a Loadable Class.
-    this should be used at the beginning of all the Classes that should be loadable (in the cc-file)
-*/
-#define CREATE_FACTORY(x) tFactory<x>* global_ ## x ## Factory = new tFactory<x>(#x)
-
-
-		
-//! The Factory is
-/**
-   Very philosophic description, huh?
-*/
-class Factory {
-
- public:
-  Factory (const char* name = NULL);
-  ~Factory ();
-  
-
-  virtual BaseObject* fabricate( TiXmlElement* root);
-  void initialize();
-  void registerFactory( Factory* factory);
-  void setFactoryName(const char* name);
-  const char* getFactoryName() {return factoryName;};
-  void setNext( Factory* factory) {next = factory;}
-  Factory* getNext() {return next;}
-	
- private:
-  char* factoryName;
-	
-  Factory* next;
-};
-
-template<class T> class tFactory : public Factory
-{
- public:
-  tFactory(const char* name);
-  virtual ~tFactory();
-  
-  private:
-  BaseObject* fabricate( TiXmlElement* root);
-};
-
-template<class T>
-tFactory<T>::tFactory(const char* name) : Factory(name)
-{
-  PRINTF(5)("fileName: %s\n", name);
-}
-  
-
-template<class T>
-tFactory<T>::~tFactory()
-{}
-
-template<class T>
-BaseObject* tFactory<T>::fabricate( TiXmlElement* root) 
-{ 
-  if(!strcmp(root->Value(), getFactoryName()))
-    return new T ( root);
-  else if( getNext() != NULL) 
-    return getNext()->fabricate( root);
-  else 
-    return NULL;
-}
-
-// helper function
-
-const char* grabParameter( TiXmlElement* root, const char* name);
-
-#endif /* _FACTORY_H */
-
Index: orxonox/branches/physics/src/game_loader.cc
===================================================================
--- orxonox/branches/physics/src/game_loader.cc	(revision 4274)
+++ 	(revision )
@@ -1,320 +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: Patrick Boenzli
-   co-programmer: ...
-*/
-
-
-#include "game_loader.h"
-#include "campaign.h"
-#include "world.h"
-#include "player.h"
-#include "orxonox.h"
-#include "camera.h"
-#include "command_node.h"
-#include "vector.h"
-#include "resource_manager.h"
-#include "factory.h"
-
-#include <string.h>
-
-
-using namespace std;
-
-
-GameLoader* GameLoader::singletonRef = 0;
-
-
-GameLoader::GameLoader () 
-{
-  first = NULL;
-}
-
-
-GameLoader::~GameLoader () {}
-
-
-/**
-   \brief this class is a singleton class
-   \returns an instance of itself
-
-   if you are unsure about singleton classes, check the theory out on the internet :)
-*/
-GameLoader* GameLoader::getInstance()
-{
-  if(singletonRef == NULL)
-    singletonRef = new GameLoader();
-  return singletonRef;
-}
-
-
-ErrorMessage GameLoader::init()
-{
-  if(this->currentCampaign != NULL)
-    this->currentCampaign->init();
-}
-
-
-/**
-   \brief reads a campaign definition file into a campaign class
-   \param filename to be loaded
-   \returns the loaded campaign
-
-   this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
-*/
-ErrorMessage GameLoader::loadCampaign(const char* name)
-{
-  ErrorMessage errorCode;
-  char* campaignName = ResourceManager::getFullName(name);
-  if (campaignName)
-    {
-      this->currentCampaign = this->fileToCampaign(campaignName);
-      delete campaignName;
-    }
-}
-
-
-/**
-   \brief loads a debug campaign for test purposes only.
-   \param the identifier of the campaign.
-   \returns error message if not able to do so.
-*/
-ErrorMessage GameLoader::loadDebugCampaign(Uint32 campaignID)
-{
-  switch(campaignID)
-    {
-      /* 
-	 Debug Level 0: Debug level used to test the base frame work.
-	 As you can see, all storyentity data is allocated before game
-	 start. the storyentity will load themselfs shortly before start
-	 through the StoryEntity::init() funtion.
-      */
-    case DEBUG_CAMPAIGN_0:
-      {
-	Campaign* debugCampaign = new Campaign();
-
-	World* world0 = new World(DEBUG_WORLD_0);
-	world0->setNextStoryID(WORLD_ID_1);
-	debugCampaign->addEntity(world0, WORLD_ID_0);
-
-	World* world1 = new World(DEBUG_WORLD_1);
-	world1->setNextStoryID(WORLD_ID_2);
-	debugCampaign->addEntity(world1, WORLD_ID_1);
-
-	World* world2 = new World(DEBUG_WORLD_2);
-	world2->setNextStoryID(WORLD_ID_GAMEEND);
-	debugCampaign->addEntity(world2, WORLD_ID_2);
-
-	this->currentCampaign = debugCampaign;
-	break;
-      }
-    }
-}
-
-ErrorMessage GameLoader::start()
-{
-  if(this->currentCampaign != NULL)
-    this->currentCampaign->start();
-}
-
-
-ErrorMessage GameLoader::stop()
-{
-  if(this->currentCampaign != NULL)
-    this->currentCampaign->stop();
-  this->currentCampaign = NULL;
-}
-
-
-ErrorMessage GameLoader::pause()
-{
-  this->isPaused = true;
-  if(this->currentCampaign != NULL)
-    this->currentCampaign->pause();
-}
-
-
-ErrorMessage GameLoader::resume()
-{
-  this->isPaused = false;
-  if(this->currentCampaign != NULL)
-    this->currentCampaign->resume();
-}
-
-/**
-   \brief release the mem
- */
-ErrorMessage GameLoader::destroy()
-{}
-
-
-/**
-   \brief reads a campaign definition file into a campaign class
-   \param filename to be loaded
-   \returns the loaded campaign
-
-   this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
-*/
-Campaign* GameLoader::fileToCampaign(const char *name)
-{
-  /* do not entirely load the campaign. just the current world
-     before start of each world, it has to be initialized so it
-     can load everything it needs into memory then.
-  */
-  
-  if( name == NULL)
-    {
-      PRINTF(2)("No filename specified for loading");
-      return NULL;
-    }
-  
-  TiXmlDocument* XMLDoc = new TiXmlDocument( name);
-  // load the campaign document
-  if( !XMLDoc->LoadFile())
-    {
-      // report an error
-      PRINTF(1)("Could not load XML File %s: %s @ %d:%d\n", name, XMLDoc->ErrorDesc(), XMLDoc->ErrorRow(), XMLDoc->ErrorCol());
-      delete XMLDoc;
-      return NULL;
-    }
-	
-  // check basic validity
-  TiXmlElement* root = XMLDoc->RootElement();
-  assert( root != NULL);
-	
-  if( strcmp( root->Value(), "Campaign"))
-    {
-      // report an error
-      PRINTF(2)("Specified XML File is not an orxonox campaign file (Campaign element missing)\n");
-      delete XMLDoc;
-      return NULL;
-    }
-	
-  // construct campaign
-  Campaign* c = new Campaign( root);
-	
-  // free the XML data
-  delete XMLDoc;
-	
-  return c;
-}
-
-
-/**
-   \brief handle keyboard commands 
-   \param cmd: the command to handle
-   \returns true if the command was handled by the system
-*/
-bool GameLoader::worldCommand (Command* cmd)
-{
-  if( !strcmp( cmd->cmd, CONFIG_NAME_NEXT_WORLD))
-    {
-      if( !cmd->bUp) 
-	{
-	  this->nextLevel();
-	}
-      return true;
-    }
-  else if( !strcmp( cmd->cmd, CONFIG_NAME_PREV_WORLD))
-    {
-      if( !cmd->bUp)
-	{
-	  this->previousLevel();
-	}
-      return true;
-    }
-  else if( !strcmp( cmd->cmd, CONFIG_NAME_PAUSE))
-    {
-      if( !cmd->bUp)
-	{
-	  if(this->isPaused)
-	    this->resume();
-	  else
-	    this->pause();
-	}
-      return true;
-    }
-  else if( !strcmp( cmd->cmd, CONFIG_NAME_QUIT))
-    {
-      if( !cmd->bUp) this->stop();
-      return true;
-    }
-  return false;
-}
-
-
-/*
-  \brief this changes to the next level
-*/
-void GameLoader::nextLevel()
-{
-  if(this->currentCampaign != NULL)
-    this->currentCampaign->nextLevel();
-}
-
-
-/*
-  \brief change to the previous level - not implemented
-
-  this propably useless
-*/
-void GameLoader::previousLevel()
-{
-  if(this->currentCampaign != NULL)
-    this->currentCampaign->previousLevel();
-}
-
-/**
-   \brief add a Factory to the Factory Q
-   \param factory a Factory to be registered
-*/
-void GameLoader::registerFactory( Factory* factory)
-{
-	assert( factory != NULL);
-	
-	PRINTF(4)("Registered factory for '%s'\n", factory->getFactoryName());
-	
-	if( first == NULL) first = factory;
-	else first->registerFactory( factory);
-}
-
-/**
-   \brief load a StoryEntity
-   \param element a XMLElement containing all the needed info
-*/
-BaseObject* GameLoader::fabricate( TiXmlElement* element)
-{
-  assert( element != NULL);
-	
-  if( first == NULL)
-    {
-      PRINTF(1)("GameLoader does not know any factories, fabricate() failed\n");
-      return NULL;
-    }
-	
-  if( element->Value() != NULL)
-    {
-      PRINTF(4)("Attempting fabrication of a '%s'\n", element->Value());
-      BaseObject* b = first->fabricate( element);
-      if( b == NULL) 
-	PRINTF(2)("Failed to fabricate a '%s'\n", element->Value());
-      else 
-	PRINTF(4)("Successfully fabricated a '%s'\n", element->Value());
-      return b;
-    }
-	
-  PRINTF(2)("Fabricate failed, TiXmlElement did not contain a value\n");
-	
-  return NULL;
-}
Index: orxonox/branches/physics/src/game_loader.h
===================================================================
--- orxonox/branches/physics/src/game_loader.h	(revision 4274)
+++ 	(revision )
@@ -1,71 +1,0 @@
-/*! 
-    \file game_loader.h
-    \brief loads campaigns, worlds and all other story_entities
-*/ 
-
-#ifndef _GAME_LOADER_H
-#define _GAME_LOADER_H
-
-//#include "stdincl.h"
-#include "story_def.h"
-#include "comincl.h"
-
-
-//-----------------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------------
-class Campaign;
-class World;
-class Camera;
-class CammandNode;
-
-//! The GameLoader
-/**
-   The game loader loads all game date. this is performed in the following way:
-   1. Read the structure of campaings and worlds
-   2. Create the instances of the tree: here _ALL_ StoryEntities are created
-      also if they are not yet used. the worlds should load their data in
-      the StoryEntity::load() and StoryEntity::init() functions! NOWHERE ELSE!
-      Elsewhere, all the data will be allocated at the beginning... mess...
-   3. StoryEntities are load() and init() before they start
-   4. once the gamloader starts the game there will be a campaing starting a
-      world. this is done by callaing those StoryEntity::start()
-*/
-class GameLoader 
-{
-
- public:
-  static GameLoader* getInstance();
-
-  ErrorMessage init();
-  ErrorMessage loadCampaign(const char* name);
-  ErrorMessage start();
-  ErrorMessage stop();
-  ErrorMessage pause();
-  ErrorMessage resume();
-  ErrorMessage destroy();
-
-  void nextLevel();
-  void previousLevel();
-
-  bool worldCommand(Command* cmd);
-  ErrorMessage loadDebugCampaign(Uint32 campaignID);
-  
-  void registerFactory( Factory* factory);
-  BaseObject* fabricate( TiXmlElement* data);
-
- private:
-  GameLoader ();
-  ~GameLoader ();
-  Uint32 startTime; //!> start time of the campaign
-  static GameLoader* singletonRef;
-  bool isPaused;
-
-  Campaign* currentCampaign; //!> the current campaign playing
-  
-  Campaign* fileToCampaign(const char* name);
-
-  Factory* first;
-};
-
-#endif /* _GAME_LOADER_H */
Index: orxonox/branches/physics/src/garbage_collector.cc
===================================================================
--- orxonox/branches/physics/src/garbage_collector.cc	(revision 4274)
+++ 	(revision )
@@ -1,149 +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: Patrick Boenzli
-   co-programmer: ...
-*/
-
-#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GARBAGE_COLLECTOR
-
-#include "garbage_collector.h"
-
-#include "world.h"
-#include "world_entity.h"
-#include "null_parent.h"
-
-#include "list.h"
-
-using namespace std;
-
-
-GarbageCollector* GarbageCollector::singletonRef = 0;
-
-/**
-   \brief standard constructor
-   \todo this constructor is not jet implemented - do it
-*/
-GarbageCollector::GarbageCollector () 
-{
-   this->setClassName ("GarbageCollection");
-   this->time = 0;
-   this->delay = 1.5f; /* clean up all 5.0 seconds */
-}
-
-
-/**
-   \brief standard deconstructor
-
-*/
-GarbageCollector::~GarbageCollector () 
-{
-  // delete what has to be deleted here
-}
-
-
-/**
-   \brief this returns the singleton reference this this class
-   \returns singleton reference
-*/
-GarbageCollector* GarbageCollector::getInstance()
-{
-  if( singletonRef == NULL)
-    singletonRef = new GarbageCollector();
-  return singletonRef;
-}
-
-
-/**
-   \brief this sets the collection delay
-   \param delay
-   
-   after this delay, the garbage collector starts its work and begins to collect unused object
-   to delete them afterwards. only objects in the worldentity list from the world object are lookded
-   at. 
-*/
-void GarbageCollector::setCollectionDelay(float delay)
-{
-  this->delay = delay;
-}
-
-
-/**
-   \brief this foreces a garbage collection
-
-   if this function is called, the gc tries to initiate the garbage collection routines. actually
-   this should always work.
-*/
-void GarbageCollector::forceCollection()
-{
-  /* just make the time slitely bigger than the delay */
-  this->time = this->delay + 1;
-  /* and update, to get rid of the unused objects */
-  this->update();
-}
-
-
-/**
-   \brief this ticks the GarbageCollector to give it the time pulse
-   \param the time passed since last tick
-
-   like every other tick function eg. worldentity
-*/
-void GarbageCollector::tick(float time)
-{
-  this->time += time;
-}
-
-
-/**
-   \brief this updated the gargabe collection, if the time is ready
-
-
-*/
-void GarbageCollector::update()
-{
-  if( this->time < this->delay)
-    return;
-  /* garbage collect */
-  PRINTF(3)("=============================\n");
-  PRINTF(3)("Processing Garbage Collection\n");
-  PRINTF(3)("=============================\n");
-  int counter = 0;
-  WorldInterface* wi = WorldInterface::getInstance();
-  tList<WorldEntity>* list = wi->getEntityList();
-
-  tIterator<WorldEntity>* iterator = list->getIterator();
-  WorldEntity* entity = iterator->nextElement();
-  while( entity != NULL) 
-    { 
-      if( entity->isFinalized())
-	{
-	  PRINTF(4)("= finalizing object\n");
-	  ++counter;
-	  
-	  /* first remove out of entity list */
-	  list->remove(entity);
-	  /* second remove out of pnode tree */
-	  entity->remove();
-	  /* then finaly delete reference */
-	  delete entity;
-	}
-      entity = iterator->nextElement();
-    }
-
-  PRINTF(3)("= collected %i unused objects\n", counter);
-  PRINTF(3)("=============================\n");
-
-  /* reset time to count again up to this->delay */
-  this->time = 0;
-}
Index: orxonox/branches/physics/src/garbage_collector.h
===================================================================
--- orxonox/branches/physics/src/garbage_collector.h	(revision 4274)
+++ 	(revision )
@@ -1,42 +1,0 @@
-/*! 
-    \file proto_class.h
-    \brief Definition of the proto class template, used quickly start work
-    \todo Example: this shows how to use simply add a Marker that here has to be done something.
-
-    The Protoclass exists, to help you quikly getting the run for how to develop in orxonox.
-    It is an example for the CODING-CONVENTION, and a starting-point for every class.
-*/
-
-#ifndef _GARBAGE_COLLECTOR_H
-#define _GARBAGE_COLLECTOR_H
-
-#include "base_object.h"
-
-
-//! this class maintains the garbage collection.
-/**
-   the class is been ticked by the world.cc and goes through the 
-   world_entity list to clean out all unused entities.
-*/
-class GarbageCollector : public BaseObject {
-
- public:
-  GarbageCollector();
-  virtual ~GarbageCollector();
-  static GarbageCollector* getInstance();
-
-  void setCollectionDelay(float delay);
-
-  void forceCollection();
-
-  void tick(float time);
-  void update();
-
- private:
-  static GarbageCollector* singletonRef;
-  float delay;                                        //!< this is the delay to wait until collection
-  float time;                                         //!< the current time
-
-};
-
-#endif /* _GARBAGE_COLLECTOR_H */
Index: orxonox/branches/physics/src/glmenu/glmenu_imagescreen.cc
===================================================================
--- orxonox/branches/physics/src/glmenu/glmenu_imagescreen.cc	(revision 4274)
+++ orxonox/branches/physics/src/glmenu/glmenu_imagescreen.cc	(revision 4283)
@@ -19,7 +19,7 @@
 #include "glmenu_imagescreen.h"
 
-#include "stdincl.h"
 #include "graphics_engine.h"
 #include "material.h"
+#include "factory.h"
 
 CREATE_FACTORY(GLMenuImageScreen);
@@ -38,9 +38,8 @@
    \param root The Element to load the GLMenu from
 */
-GLMenuImageScreen::GLMenuImageScreen (TiXmlElement* root)
+GLMenuImageScreen::GLMenuImageScreen(const TiXmlElement* root)
 {
   this->init();
-  this->load(root);
-
+  this->loadParams(root);
 }
 
@@ -56,36 +55,20 @@
    \li ElementCount: INT: how many elements will be loaded
 */
-void GLMenuImageScreen::load(TiXmlElement* root)
-{
-  const char* string;
-
-  // Model Loading	
-  string = grabParameter( root, "BackgroundImage");
-  if( string != NULL)
-    this->setBackgroundImage(string);
-
-  string = grabParameter(root, "BackgroundPS");
-  if (string != NULL)
-    {
-      float f1, f2, f3, f4;
-      sscanf (string, "%f %f %f %f", &f1, &f2, &f3, &f4);
-      this->setPosition(f1,f2);
-      this->setScale(f3,f4);
-    }
-
-  string = grabParameter( root, "BarImage");
-  if (string != NULL)
-    this->setBarImage(string);
-  string = grabParameter(root, "BarPS");
-  if (string != NULL)
-    {
-      float f1, f2, f3, f4;
-      sscanf (string, "%f %f %f %f", &f1, &f2, &f3, &f4);
-      this->setBarPosScale(f1,f2,f3,f4);
-    }
-
-  string = grabParameter( root, "ElementCount");
-  if (string != NULL)
-    this->setMaximum(atoi(string));
+void GLMenuImageScreen::loadParams(const TiXmlElement* root)
+{
+  LoadParam<GLMenuImageScreen>(root, "BackgroundImage", this, &GLMenuImageScreen::setBackgroundImage)
+    .describe("sets the image to load onto the loadscreen");
+
+  LoadParam<GLMenuImageScreen>(root, "BackgroundPS", this, &GLMenuImageScreen::setPosScale)
+    .describe("The Position and Scale of the Background Image in %(0-1.0). PosX, PosY, SizeX, SizeY");
+
+  LoadParam<GLMenuImageScreen>(root, "BarImage", this, &GLMenuImageScreen::setBarImage)
+    .describe("sets the image of the LoadingBar");
+  
+  LoadParam<GLMenuImageScreen>(root, "BarPS", this, &GLMenuImageScreen::setBarPosScale)
+    .describe("The Position and Scale of the Loading Bar in %(0-1.0). PosX, PosY, SizeX, SizeY");
+
+  LoadParam<GLMenuImageScreen>(root, "ElementCount", this, &GLMenuImageScreen::setMaximum)
+    .describe("The Count of elements to load into the bar (this is only a maximum value)");
 }
 
@@ -149,4 +132,17 @@
   this->scaleX = scaleX;
   this->scaleY = scaleY;
+}
+
+/*
+  \brief sets position and size of the ImageScreen
+  \param x offset from the top left corner in percent(0-1) of the screensize
+  \param y offset from the top left corner in percent(0-1) of the screensize
+  \param scaleX the scaleing of the image into the x-direction (in percent (0-1))
+  \param scaleY the scaleing of the image into the y-direction (in percent (0-1))
+*/
+void GLMenuImageScreen::setPosScale(float offsetX, float offsetY, float scaleX, float scaleY)
+{
+  this->setPosition(offsetX, offsetY);
+  this->setScale(scaleX, scaleY);
 }
 
Index: orxonox/branches/physics/src/glmenu/glmenu_imagescreen.h
===================================================================
--- orxonox/branches/physics/src/glmenu/glmenu_imagescreen.h	(revision 4274)
+++ orxonox/branches/physics/src/glmenu/glmenu_imagescreen.h	(revision 4283)
@@ -17,6 +17,6 @@
  public:
   GLMenuImageScreen ();
-  GLMenuImageScreen (TiXmlElement* root);
-  void load(TiXmlElement* root);
+  GLMenuImageScreen (const TiXmlElement* root);
+  void loadParams(const TiXmlElement* root);
   virtual ~GLMenuImageScreen ();
 
@@ -28,4 +28,5 @@
   void setPosition(float offsetX, float offsetY);
   void setScale (float scaleX, float scaleY);
+  void setPosScale(float offsetX, float offsetY, float scaleX, float scaleY);
 
   void setBarImage(const char* barImage);
Index: orxonox/branches/physics/src/keynames.cc
===================================================================
--- orxonox/branches/physics/src/keynames.cc	(revision 4274)
+++ 	(revision )
@@ -1,318 +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: Christian Meyer
-   co-programmer: ...
-*/
-
-#include "keynames.h"
-
-#include "stdincl.h"
-
-#include <string.h>
-
-using namespace std;
-
-int buttonnameToSDLB( char* name)
-{
-	if( !strcmp (name, "BUTTON_LEFT")) return SDL_BUTTON_LEFT;
-	if( !strcmp (name, "BUTTON_MIDDLE")) return SDL_BUTTON_MIDDLE;
-	if( !strcmp (name, "BUTTON_RIGHT")) return SDL_BUTTON_RIGHT;
-//	if( !strcmp (name, "BUTTON_WHEELUP")) return SDL_BUTTON_WHEELUP;
-//	if( !strcmp (name, "BUTTON_WHEELDOWN")) return SDL_BUTTON_WHEELDOWN;
-	return -1;
-}
-
-char* SDLBToButtonname( int button)
-{
-	if( button == SDL_BUTTON_LEFT) return "BUTTON_LEFT";
-	if( button == SDL_BUTTON_MIDDLE) return "BUTTON_MIDDLE";
-	if( button == SDL_BUTTON_RIGHT) return "BUTTON_RIGHT";
-//	if( button == SDL_BUTTON_WHEELUP) return "BUTTON_WHEELUP";
-//	if( button == SDL_BUTTON_WHEELDOWN) return "BUTTON_WHEELDOWN";
-	return "UNKNOWN";
-}
-
-int keynameToSDLK( char* name)
-{
-	if( !strcmp (name, "BACKSPACE")) return SDLK_BACKSPACE;
-	if( !strcmp (name, "TAB")) return SDLK_TAB;
-	if( !strcmp (name, "CLEAR")) return SDLK_CLEAR;
-	if( !strcmp (name, "RETURN")) return SDLK_RETURN;
-	if( !strcmp (name, "ESCAPE")) return SDLK_ESCAPE;
-	if( !strcmp (name, "SPACE")) return SDLK_SPACE;
-	if( !strcmp (name, "EXCLAIM")) return SDLK_EXCLAIM;
-	if( !strcmp (name, "QUOTEDBL")) return SDLK_QUOTEDBL;
-	if( !strcmp (name, "HASH")) return SDLK_HASH;
-	if( !strcmp (name, "PAUSE")) return SDLK_PAUSE;
-	if( !strcmp (name, "DOLLAR")) return SDLK_DOLLAR;
-	if( !strcmp (name, "AMPERSAND")) return SDLK_AMPERSAND;
-	if( !strcmp (name, "QUOTE")) return SDLK_QUOTE;
-	if( !strcmp (name, "LEFTPAREN")) return SDLK_LEFTPAREN;
-	if( !strcmp (name, "RIGHTPAREN")) return SDLK_RIGHTPAREN;
-	if( !strcmp (name, "ASTERISK")) return SDLK_ASTERISK;
-	if( !strcmp (name, "PLUS")) return SDLK_PLUS;
-	if( !strcmp (name, "COMMA")) return SDLK_COMMA;
-	if( !strcmp (name, "MINUS")) return SDLK_MINUS;
-	if( !strcmp (name, "PERIOD")) return SDLK_PERIOD;
-	if( !strcmp (name, "SLASH")) return SDLK_SLASH;
-	if( !strcmp (name, "0")) return SDLK_0;
-	if( !strcmp (name, "1")) return SDLK_1;
-	if( !strcmp (name, "2")) return SDLK_2;
-	if( !strcmp (name, "3")) return SDLK_3;
-	if( !strcmp (name, "4")) return SDLK_4;
-	if( !strcmp (name, "5")) return SDLK_5;
-	if( !strcmp (name, "6")) return SDLK_6;
-	if( !strcmp (name, "7")) return SDLK_7;
-	if( !strcmp (name, "8")) return SDLK_8;
-	if( !strcmp (name, "9")) return SDLK_9;
-	if( !strcmp (name, "COLON")) return SDLK_COLON;
-	if( !strcmp (name, "SEMICOLON")) return SDLK_SEMICOLON;
-	if( !strcmp (name, "LESS")) return SDLK_LESS;
-	if( !strcmp (name, "EQUALS")) return SDLK_EQUALS;
-	if( !strcmp (name, "GREATER")) return SDLK_GREATER;
-	if( !strcmp (name, "QUESTION")) return SDLK_QUESTION;
-	if( !strcmp (name, "AT")) return SDLK_AT;
-	if( !strcmp (name, "LEFTBRACKET")) return SDLK_LEFTBRACKET;
-	if( !strcmp (name, "BACKSLASH")) return SDLK_BACKSLASH;
-	if( !strcmp (name, "RIGHTBRACKET")) return SDLK_RIGHTBRACKET;
-	if( !strcmp (name, "CARET")) return SDLK_CARET;
-	if( !strcmp (name, "UNDERSCORE")) return SDLK_UNDERSCORE;
-	if( !strcmp (name, "BACKQUOTE")) return SDLK_BACKQUOTE;
-	if( !strcmp (name, "a")) return SDLK_a;
-	if( !strcmp (name, "b")) return SDLK_b;
-	if( !strcmp (name, "c")) return SDLK_c;
-	if( !strcmp (name, "d")) return SDLK_d;
-	if( !strcmp (name, "e")) return SDLK_e;
-	if( !strcmp (name, "f")) return SDLK_f;
-	if( !strcmp (name, "g")) return SDLK_g;
-	if( !strcmp (name, "h")) return SDLK_h;
-	if( !strcmp (name, "i")) return SDLK_i;
-	if( !strcmp (name, "j")) return SDLK_j;
-	if( !strcmp (name, "k")) return SDLK_k;
-	if( !strcmp (name, "l")) return SDLK_l;
-	if( !strcmp (name, "m")) return SDLK_m;
-	if( !strcmp (name, "n")) return SDLK_n;
-	if( !strcmp (name, "o")) return SDLK_o;
-	if( !strcmp (name, "p")) return SDLK_p;
-	if( !strcmp (name, "q")) return SDLK_q;
-	if( !strcmp (name, "r")) return SDLK_r;
-	if( !strcmp (name, "s")) return SDLK_s;
-	if( !strcmp (name, "t")) return SDLK_t;
-	if( !strcmp (name, "u")) return SDLK_u;
-	if( !strcmp (name, "v")) return SDLK_v;
-	if( !strcmp (name, "w")) return SDLK_w;
-	if( !strcmp (name, "x")) return SDLK_x;
-	if( !strcmp (name, "y")) return SDLK_y;
-	if( !strcmp (name, "z")) return SDLK_z;
-	if( !strcmp (name, "DELETE")) return SDLK_DELETE;
-	if( !strcmp (name, "KP0")) return SDLK_KP0;
-	if( !strcmp (name, "KP1")) return SDLK_KP1;
-	if( !strcmp (name, "KP2")) return SDLK_KP2;
-	if( !strcmp (name, "KP3")) return SDLK_KP3;
-	if( !strcmp (name, "KP4")) return SDLK_KP4;
-	if( !strcmp (name, "KP5")) return SDLK_KP5;
-	if( !strcmp (name, "KP6")) return SDLK_KP6;
-	if( !strcmp (name, "KP7")) return SDLK_KP7;
-	if( !strcmp (name, "KP8")) return SDLK_KP8;
-	if( !strcmp (name, "KP9")) return SDLK_KP9;
-	if( !strcmp (name, "KP_PERIOD")) return SDLK_KP_PERIOD;
-	if( !strcmp (name, "KP_DIVIDE")) return SDLK_KP_DIVIDE;
-	if( !strcmp (name, "KP_MULTIPLY")) return SDLK_KP_MULTIPLY;
-	if( !strcmp (name, "KP_MINUS")) return SDLK_KP_MINUS;
-	if( !strcmp (name, "KP_PLUS")) return SDLK_KP_PLUS;
-	if( !strcmp (name, "KP_ENTER")) return SDLK_KP_ENTER;
-	if( !strcmp (name, "KP_EQUALS")) return SDLK_KP_EQUALS;
-	if( !strcmp (name, "UP")) return SDLK_UP;
-	if( !strcmp (name, "DOWN")) return SDLK_DOWN;
-	if( !strcmp (name, "RIGHT")) return SDLK_RIGHT;
-	if( !strcmp (name, "LEFT")) return SDLK_LEFT;
-	if( !strcmp (name, "INSERT")) return SDLK_INSERT;
-	if( !strcmp (name, "HOME")) return SDLK_HOME;
-	if( !strcmp (name, "END")) return SDLK_END;
-	if( !strcmp (name, "PAGEUP")) return SDLK_PAGEUP;
-	if( !strcmp (name, "PAGEDOWN")) return SDLK_PAGEDOWN;
-	if( !strcmp (name, "F1")) return SDLK_F1;
-	if( !strcmp (name, "F2")) return SDLK_F2;
-	if( !strcmp (name, "F3")) return SDLK_F3;
-	if( !strcmp (name, "F4")) return SDLK_F4;
-	if( !strcmp (name, "F5")) return SDLK_F5;
-	if( !strcmp (name, "F6")) return SDLK_F6;
-	if( !strcmp (name, "F7")) return SDLK_F7;
-	if( !strcmp (name, "F8")) return SDLK_F8;
-	if( !strcmp (name, "F9")) return SDLK_F9;
-	if( !strcmp (name, "F10")) return SDLK_F10;
-	if( !strcmp (name, "F11")) return SDLK_F11;
-	if( !strcmp (name, "F12")) return SDLK_F12;
-	if( !strcmp (name, "F13")) return SDLK_F13;
-	if( !strcmp (name, "F14")) return SDLK_F14;
-	if( !strcmp (name, "F15")) return SDLK_F15;
-	if( !strcmp (name, "NUMLOCK")) return SDLK_NUMLOCK;
-	if( !strcmp (name, "CAPSLOCK")) return SDLK_CAPSLOCK;
-	if( !strcmp (name, "SCROLLOCK")) return SDLK_SCROLLOCK;
-	if( !strcmp (name, "RSHIFT")) return SDLK_RSHIFT;
-	if( !strcmp (name, "LSHIFT")) return SDLK_LSHIFT;
-	if( !strcmp (name, "RCTRL")) return SDLK_RCTRL;
-	if( !strcmp (name, "LCTRL")) return SDLK_LCTRL;
-	if( !strcmp (name, "RALT")) return SDLK_RALT;
-	if( !strcmp (name, "LALT")) return SDLK_LALT;
-	if( !strcmp (name, "RMETA")) return SDLK_RMETA;
-	if( !strcmp (name, "LMETA")) return SDLK_LMETA;
-	if( !strcmp (name, "LSUPER")) return SDLK_LSUPER;
-	if( !strcmp (name, "RSUPER")) return SDLK_RSUPER;
-	if( !strcmp (name, "MODE")) return SDLK_MODE;
-	if( !strcmp (name, "HELP")) return SDLK_HELP;
-	if( !strcmp (name, "PRINT")) return SDLK_PRINT;
-	if( !strcmp (name, "SYSREQ")) return SDLK_SYSREQ;
-	if( !strcmp (name, "BREAK")) return SDLK_BREAK;
-	if( !strcmp (name, "MENU")) return SDLK_MENU;
-	if( !strcmp (name, "POWER")) return SDLK_POWER;
-	if( !strcmp (name, "EURO")) return SDLK_EURO;
-	return -1;
-}
-
-char* SDLKToKeyname( int key)
-{
-	if( key == SDLK_BACKSPACE) return "BACKSPACE";
-	if( key == SDLK_TAB) return "TAB";
-	if( key == SDLK_CLEAR) return "CLEAR";
-	if( key == SDLK_RETURN) return "RETURN";
-	if( key == SDLK_SPACE) return "SPACE";
-	if( key == SDLK_ESCAPE) return "ESCAPE";
-	if( key == SDLK_EXCLAIM) return "EXCLAIM";
-	if( key == SDLK_QUOTEDBL) return "QUOTEDBL";
-	if( key == SDLK_HASH) return "HASH";
-	if( key == SDLK_PAUSE) return "PAUSE";
-	if( key == SDLK_DOLLAR) return "DOLLAR";
-	if( key == SDLK_AMPERSAND) return "AMPERSAND";
-	if( key == SDLK_QUOTE) return "QUOTE";
-	if( key == SDLK_LEFTPAREN) return "LEFTPAREN";
-	if( key == SDLK_RIGHTPAREN) return "RIGHTPAREN";
-	if( key == SDLK_ASTERISK) return "ASTERISK";
-	if( key == SDLK_PLUS) return "PLUS";
-	if( key == SDLK_COMMA) return "COMMA";
-	if( key == SDLK_MINUS) return "MINUS";
-	if( key == SDLK_PERIOD) return "PERIOD";
-	if( key == SDLK_SLASH) return "SLASH";
-	if( key == SDLK_0) return "0";
-	if( key == SDLK_1) return "1";
-	if( key == SDLK_2) return "2";
-	if( key == SDLK_3) return "3";
-	if( key == SDLK_4) return "4";
-	if( key == SDLK_5) return "5";
-	if( key == SDLK_6) return "6";
-	if( key == SDLK_7) return "7";
-	if( key == SDLK_8) return "8";
-	if( key == SDLK_9) return "9";
-	if( key == SDLK_COLON) return "COLON";
-	if( key == SDLK_SEMICOLON) return "SEMICOLON";
-	if( key == SDLK_LESS) return "LESS";
-	if( key == SDLK_EQUALS) return "EQUALS";
-	if( key == SDLK_GREATER) return "GREATER";
-	if( key == SDLK_QUESTION) return "QUESTION";
-	if( key == SDLK_AT) return "AT";
-	if( key == SDLK_LEFTBRACKET) return "LEFTBRACKET";
-	if( key == SDLK_BACKSLASH) return "BACKSLASH";
-	if( key == SDLK_RIGHTBRACKET) return "RIGHTBRACKET";
-	if( key == SDLK_CARET) return "CARET";
-	if( key == SDLK_UNDERSCORE) return "UNDERSCORE";
-	if( key == SDLK_BACKQUOTE) return "BACKQUOTE";
-	if( key == SDLK_a) return "a";
-	if( key == SDLK_b) return "b";
-	if( key == SDLK_c) return "c";
-	if( key == SDLK_d) return "d";
-	if( key == SDLK_e) return "e";
-	if( key == SDLK_f) return "f";
-	if( key == SDLK_g) return "g";
-	if( key == SDLK_h) return "h";
-	if( key == SDLK_i) return "i";
-	if( key == SDLK_j) return "j";
-	if( key == SDLK_k) return "k";
-	if( key == SDLK_l) return "l";
-	if( key == SDLK_m) return "m";
-	if( key == SDLK_n) return "n";
-	if( key == SDLK_o) return "o";
-	if( key == SDLK_p) return "p";
-	if( key == SDLK_q) return "q";
-	if( key == SDLK_r) return "r";
-	if( key == SDLK_s) return "s";
-	if( key == SDLK_t) return "t";
-	if( key == SDLK_u) return "u";
-	if( key == SDLK_v) return "v";
-	if( key == SDLK_w) return "w";
-	if( key == SDLK_x) return "x";
-	if( key == SDLK_y) return "y";
-	if( key == SDLK_z) return "z";
-	if( key == SDLK_DELETE) return "DELETE";
-	if( key == SDLK_KP0) return "KP0";
-	if( key == SDLK_KP1) return "KP1";
-	if( key == SDLK_KP2) return "KP2";
-	if( key == SDLK_KP3) return "KP3";
-	if( key == SDLK_KP4) return "KP4";
-	if( key == SDLK_KP5) return "KP5";
-	if( key == SDLK_KP6) return "KP6";
-	if( key == SDLK_KP7) return "KP7";
-	if( key == SDLK_KP8) return "KP8";
-	if( key == SDLK_KP9) return "KP9";
-	if( key == SDLK_KP_PERIOD) return "KP_PERIOD";
-	if( key == SDLK_KP_DIVIDE) return "KP_DIVIDE";
-	if( key == SDLK_KP_MULTIPLY) return "KP_MULTIPLY";
-	if( key == SDLK_KP_MINUS) return "KP_MINUS";
-	if( key == SDLK_KP_PLUS) return "KP_PLUS";
-	if( key == SDLK_KP_ENTER) return "KP_ENTER";
-	if( key == SDLK_KP_EQUALS) return "KP_EQUALS";
-	if( key == SDLK_UP) return "UP";
-	if( key == SDLK_DOWN) return "DOWN";
-	if( key == SDLK_RIGHT) return "RIGHT";
-	if( key == SDLK_LEFT) return "LEFT";
-	if( key == SDLK_INSERT) return "INSERT";
-	if( key == SDLK_HOME) return "HOME";
-	if( key == SDLK_END) return "END";
-	if( key == SDLK_PAGEUP) return "PAGEUP";
-	if( key == SDLK_PAGEDOWN) return "PAGEDOWN";
-	if( key == SDLK_F1) return "F1";
-	if( key == SDLK_F2) return "F2";
-	if( key == SDLK_F3) return "F3";
-	if( key == SDLK_F4) return "F4";
-	if( key == SDLK_F5) return "F5";
-	if( key == SDLK_F6) return "F6";
-	if( key == SDLK_F7) return "F7";
-	if( key == SDLK_F8) return "F8";
-	if( key == SDLK_F9) return "F9";
-	if( key == SDLK_F10) return "F10";
-	if( key == SDLK_F11) return "F11";
-	if( key == SDLK_F12) return "F12";
-	if( key == SDLK_F13) return "F13";
-	if( key == SDLK_F14) return "F14";
-	if( key == SDLK_F15) return "F15";
-	if( key == SDLK_NUMLOCK) return "NUMLOCK";
-	if( key == SDLK_CAPSLOCK) return "CAPSLOCK";
-	if( key == SDLK_SCROLLOCK) return "SCROLLOCK";
-	if( key == SDLK_RSHIFT) return "RSHIFT";
-	if( key == SDLK_LSHIFT) return "LSHIFT";
-	if( key == SDLK_RCTRL) return "RCTRL";
-	if( key == SDLK_LCTRL) return "LCTRL";
-	if( key == SDLK_RALT) return "RALT";
-	if( key == SDLK_LALT) return "LALT";
-	if( key == SDLK_RMETA) return "RMETA";
-	if( key == SDLK_LMETA) return "LMETA";
-	if( key == SDLK_LSUPER) return "LSUPER";
-	if( key == SDLK_RSUPER) return "RSUPER";
-	if( key == SDLK_MODE) return "MODE";
-	if( key == SDLK_HELP) return "HELP";
-	if( key == SDLK_PRINT) return "PRINT";
-	if( key == SDLK_SYSREQ) return "SYSREQ";
-	if( key == SDLK_BREAK) return "BREAK";
-	if( key == SDLK_MENU) return "MENU";
-	if( key == SDLK_POWER) return "POWER";
-	if( key == SDLK_EURO) return "EURO";
-	return "UNKNOWN";
-}
Index: orxonox/branches/physics/src/keynames.h
===================================================================
--- orxonox/branches/physics/src/keynames.h	(revision 4274)
+++ 	(revision )
@@ -1,39 +1,0 @@
-/*!
-    \file keynames.h
-    \brief Key/button naming functions
-    
-		Converts strings to SDLK/SDL_BUTTON values and vice versa
-*/
-#ifndef _KEYNAMES_H
-#define _KEYNAMES_H
-
-/**
-	\brief converts a button name string to a integer representing the corresponding SDL mouse button identifier
-	\param name: the name of the mouse button
-	\return an int containing the SDL identifier of the mouse button or -1 if the button name is not valid
-*/
-int buttonnameToSDLB( char* name);
-
-/**
-	\brief converst a SDL mouse button identifier to a name string
-	\param button: an SDL mouse button identifier
-	\return a pointer to a string containing the name of the mouse button
-*/
-char* SDLBToButtonname( int button);
-
-/**
-	\brief converts a key name string to a integer representing the corresponding SDLK sym
-	\param name: the name of the key
-	\return the SDLK sym of the named key or -1 if the key name is not valid
-*/
-int keynameToSDLK( char* name);
-
-/**
-	\brief converts an SDLK sym to a name string
-	\param key: the SDLK sym
-	\return a pointer to a string containig the name of the key
-*/
-char* SDLKToKeyname( int key);
-
-
-#endif /* _KEYNAMES_H */
Index: orxonox/branches/physics/src/lib/Makefile.am
===================================================================
--- orxonox/branches/physics/src/lib/Makefile.am	(revision 4274)
+++ orxonox/branches/physics/src/lib/Makefile.am	(revision 4283)
@@ -1,9 +1,6 @@
 ### GTK_RELATED
-if HAVE_GTK2
   GTK_PROGS = gui
-else
-  GTK_PROGS =
-endif
 
 SUBDIRS = graphics \
+	  tinyxml \
 	  $(GTK_PROGS)
Index: orxonox/branches/physics/src/lib/Makefile.in
===================================================================
--- orxonox/branches/physics/src/lib/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/lib/Makefile.in	(revision 4283)
@@ -54,5 +54,5 @@
 ETAGS = etags
 CTAGS = ctags
-DIST_SUBDIRS = graphics gui
+DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -164,9 +164,9 @@
 target_os = @target_os@
 target_vendor = @target_vendor@
-@HAVE_GTK2_FALSE@GTK_PROGS = 
 
 ### GTK_RELATED
-@HAVE_GTK2_TRUE@GTK_PROGS = gui
+GTK_PROGS = gui
 SUBDIRS = graphics \
+	  tinyxml \
 	  $(GTK_PROGS)
 
@@ -183,7 +183,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -352,5 +352,5 @@
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
Index: orxonox/branches/physics/src/lib/graphics/Makefile.in
===================================================================
--- orxonox/branches/physics/src/lib/graphics/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/lib/graphics/Makefile.in	(revision 4283)
@@ -177,7 +177,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/graphics/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/graphics/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/graphics/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/graphics/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/physics/src/lib/graphics/graphics_engine.cc
===================================================================
--- orxonox/branches/physics/src/lib/graphics/graphics_engine.cc	(revision 4274)
+++ orxonox/branches/physics/src/lib/graphics/graphics_engine.cc	(revision 4283)
@@ -20,4 +20,5 @@
 
 #include "debug.h"
+#include "text_engine.h"
 
 using namespace std;
@@ -30,4 +31,7 @@
 GraphicsEngine::GraphicsEngine () 
 {
+  this->bDisplayFPS = false;
+  this->minFPS = 9999;
+  this->maxFPS = 0;
   this->setClassName ("GraphicsEngine");
 
@@ -278,4 +282,43 @@
       PRINT(4)(" |  %d x %d\n", this->videoModes[i]->w, this->videoModes[i]->h);
   }
-  
-}
+}
+
+
+void GraphicsEngine::tick(float dt)
+{
+	if( unlikely(this->bDisplayFPS))
+	{
+	  this->currentFPS = 1.0/dt;
+      if( unlikely(this->currentFPS > this->maxFPS)) this->maxFPS = this->currentFPS;
+	  if( unlikely(this->currentFPS < this->minFPS)) this->minFPS = this->currentFPS;
+	  
+	  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);
+	}
+}
+  
+void GraphicsEngine::displayFPS(bool display)
+{
+	if( display)
+	{
+		this->geTextCFPS = TextEngine::getInstance()->createText("fonts/druid.ttf", 35, TEXT_DYNAMIC, 0, 255, 0);
+		this->geTextCFPS->setAlignment(TEXT_ALIGN_LEFT);
+		this->geTextCFPS->setPosition(5, 500);
+		this->geTextMaxFPS = TextEngine::getInstance()->createText("fonts/druid.ttf", 35, TEXT_DYNAMIC, 0, 255, 0);
+		this->geTextMaxFPS->setAlignment(TEXT_ALIGN_LEFT);
+		this->geTextMaxFPS->setPosition(5, 530);
+		this->geTextMinFPS = TextEngine::getInstance()->createText("fonts/druid.ttf", 35, TEXT_DYNAMIC, 0, 255, 0);
+		this->geTextMinFPS->setAlignment(TEXT_ALIGN_LEFT);
+		this->geTextMinFPS->setPosition(5, 560);	
+	}
+	this->bDisplayFPS = display;
+}
+
+  
Index: orxonox/branches/physics/src/lib/graphics/graphics_engine.h
===================================================================
--- orxonox/branches/physics/src/lib/graphics/graphics_engine.h	(revision 4274)
+++ orxonox/branches/physics/src/lib/graphics/graphics_engine.h	(revision 4283)
@@ -11,8 +11,8 @@
 
 #include "glincl.h"
-
 #include "base_object.h"
 
-// FORWARD DEFINITION \\
+
+class Text;
 
 
@@ -45,5 +45,7 @@
   static GLdouble projMat[16];
   static GLint viewPort[4];
-
+  
+  void tick(float dt);
+  void displayFPS(bool display);
 
 
@@ -59,4 +61,13 @@
   bool fullscreen;
   Uint32 videoFlags;
+  
+  bool bDisplayFPS;  //!< is true if the fps should be displayed
+  float currentFPS;  //!< the current frame rate: frames per seconds
+  float maxFPS;      //!< maximal frame rate we ever got since start of the game
+  float minFPS;      //!< minimal frame rate we ever got since start
+
+  Text* geTextCFPS;
+  Text* geTextMaxFPS;
+  Text* geTextMinFPS;
 
   SDL_Rect **videoModes;
Index: orxonox/branches/physics/src/lib/graphics/importer/Makefile.am
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/Makefile.am	(revision 4274)
+++ orxonox/branches/physics/src/lib/graphics/importer/Makefile.am	(revision 4283)
@@ -1,50 +1,9 @@
 MAINSRCDIR=../../..
-AM_CXXFLAGS=-I$(MAINSRCDIR)
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/world_entities
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/story_entities
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/coord
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/data
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/importer
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/lang
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/util
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/math
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/defs
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/font
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/network
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/glmenu
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/ai
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/util
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/animation
-AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/common
-
 
 AM_LDFLAGS=$(MWINDOWS)
 
-#"-O3 -pedantic -fPIC -ffast-math -I/usr/X11R6/include"
 
 
-bin_PROGRAMS=importer
-importer_SOURCES= framework.cc \
-	          windowHandler.cc \
-	  	  model.cc \
-		  objModel.cc \
-		  primitive_model.cc \
-	  	  array.cc \
-	  	  material.cc \
-		  texture.cc \
-		  $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
-		  $(MAINSRCDIR)/lib/lang/base_object.cc \
-		  $(MAINSRCDIR)/lib/math/vector.cc \
-		  $(MAINSRCDIR)/util/resource_manager.cc \
-		  $(MAINSRCDIR)/lib/graphics/text_engine.cc \
-		  $(MAINSRCDIR)/lib/coord/p_node.cc \
-		  $(MAINSRCDIR)/lib/coord/null_parent.cc
-
-noinst_HEADERS= framework.h \
-	  	windowHandler.h \
-	  	model.h \
+noinst_HEADERS= model.h \
 		objModel.h \
 		primitive_model.h \
@@ -52,20 +11,2 @@
 		material.h \
 		texture.h
-
-
-
-#  uncomment the following if orxonox requires the math library
-#orxonox_LDADD=-lm
-
-#EXTRA_DIST=orxonox.lsm.in orxonox.spec.in orxonox.texinfo
-
-#  if you write a self-test script named `chk', uncomment the
-#  following and add `chk' to the EXTRA_DIST list
-#TESTS=chk
-
-#  build and install the .info pages
-#info_TEXINFOS = orxonox.texinfo
-#orxonox_TEXINFOS = gpl.texinfo
-
-#  install the man pages
-#man_MANS=orxonox.1
Index: orxonox/branches/physics/src/lib/graphics/importer/Makefile.in
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/lib/graphics/importer/Makefile.in	(revision 4283)
@@ -14,7 +14,4 @@
 
 @SET_MAKE@
-
-
-SOURCES = $(importer_SOURCES)
 
 srcdir = @srcdir@
@@ -39,5 +36,4 @@
 POST_UNINSTALL = :
 host_triplet = @host@
-bin_PROGRAMS = importer$(EXEEXT)
 subdir = src/lib/graphics/importer
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
@@ -50,36 +46,6 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS)
-am_importer_OBJECTS = framework.$(OBJEXT) windowHandler.$(OBJEXT) \
-	model.$(OBJEXT) objModel.$(OBJEXT) primitive_model.$(OBJEXT) \
-	array.$(OBJEXT) material.$(OBJEXT) texture.$(OBJEXT) \
-	graphics_engine.$(OBJEXT) base_object.$(OBJEXT) \
-	vector.$(OBJEXT) resource_manager.$(OBJEXT) \
-	text_engine.$(OBJEXT) p_node.$(OBJEXT) null_parent.$(OBJEXT)
-importer_OBJECTS = $(am_importer_OBJECTS)
-importer_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/array.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/base_object.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/framework.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/graphics_engine.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/material.Po ./$(DEPDIR)/model.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/null_parent.Po ./$(DEPDIR)/objModel.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/p_node.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/primitive_model.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/resource_manager.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/text_engine.Po ./$(DEPDIR)/texture.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/vector.Po ./$(DEPDIR)/windowHandler.Po
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-SOURCES = $(importer_SOURCES)
-DIST_SOURCES = $(importer_SOURCES)
+SOURCES =
+DIST_SOURCES =
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
@@ -195,25 +161,6 @@
 target_vendor = @target_vendor@
 MAINSRCDIR = ../../..
-AM_CXXFLAGS = -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common
 AM_LDFLAGS = $(MWINDOWS)
-importer_SOURCES = framework.cc \
-	          windowHandler.cc \
-	  	  model.cc \
-		  objModel.cc \
-		  primitive_model.cc \
-	  	  array.cc \
-	  	  material.cc \
-		  texture.cc \
-		  $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
-		  $(MAINSRCDIR)/lib/lang/base_object.cc \
-		  $(MAINSRCDIR)/lib/math/vector.cc \
-		  $(MAINSRCDIR)/util/resource_manager.cc \
-		  $(MAINSRCDIR)/lib/graphics/text_engine.cc \
-		  $(MAINSRCDIR)/lib/coord/p_node.cc \
-		  $(MAINSRCDIR)/lib/coord/null_parent.cc
-
-noinst_HEADERS = framework.h \
-	  	windowHandler.h \
-	  	model.h \
+noinst_HEADERS = model.h \
 		objModel.h \
 		primitive_model.h \
@@ -225,5 +172,4 @@
 
 .SUFFIXES:
-.SUFFIXES: .cc .o .obj
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
@@ -235,7 +181,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/graphics/importer/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/graphics/importer/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/graphics/importer/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/graphics/importer/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -255,180 +201,4 @@
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-importer$(EXEEXT): $(importer_OBJECTS) $(importer_DEPENDENCIES) 
-	@rm -f importer$(EXEEXT)
-	$(CXXLINK) $(importer_LDFLAGS) $(importer_OBJECTS) $(importer_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base_object.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/framework.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graphics_engine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/material.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/model.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/null_parent.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objModel.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p_node.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/primitive_model.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource_manager.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text_engine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windowHandler.Po@am__quote@
-
-.cc.o:
-@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-graphics_engine.o: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.o -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/graphics_engine.Tpo" "$(DEPDIR)/graphics_engine.Po"; else rm -f "$(DEPDIR)/graphics_engine.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='graphics_engine.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/graphics_engine.Po' tmpdepfile='$(DEPDIR)/graphics_engine.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc
-
-graphics_engine.obj: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.obj -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/graphics_engine.Tpo" "$(DEPDIR)/graphics_engine.Po"; else rm -f "$(DEPDIR)/graphics_engine.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='graphics_engine.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/graphics_engine.Po' tmpdepfile='$(DEPDIR)/graphics_engine.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`
-
-base_object.o: $(MAINSRCDIR)/lib/lang/base_object.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT base_object.o -MD -MP -MF "$(DEPDIR)/base_object.Tpo" -c -o base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/base_object.Tpo" "$(DEPDIR)/base_object.Po"; else rm -f "$(DEPDIR)/base_object.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='base_object.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/base_object.Po' tmpdepfile='$(DEPDIR)/base_object.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc
-
-base_object.obj: $(MAINSRCDIR)/lib/lang/base_object.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT base_object.obj -MD -MP -MF "$(DEPDIR)/base_object.Tpo" -c -o base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/base_object.Tpo" "$(DEPDIR)/base_object.Po"; else rm -f "$(DEPDIR)/base_object.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='base_object.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/base_object.Po' tmpdepfile='$(DEPDIR)/base_object.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`
-
-vector.o: $(MAINSRCDIR)/lib/math/vector.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vector.o -MD -MP -MF "$(DEPDIR)/vector.Tpo" -c -o vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/vector.Tpo" "$(DEPDIR)/vector.Po"; else rm -f "$(DEPDIR)/vector.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='vector.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/vector.Po' tmpdepfile='$(DEPDIR)/vector.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc
-
-vector.obj: $(MAINSRCDIR)/lib/math/vector.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vector.obj -MD -MP -MF "$(DEPDIR)/vector.Tpo" -c -o vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/vector.Tpo" "$(DEPDIR)/vector.Po"; else rm -f "$(DEPDIR)/vector.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='vector.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/vector.Po' tmpdepfile='$(DEPDIR)/vector.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`
-
-resource_manager.o: $(MAINSRCDIR)/util/resource_manager.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.o -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='resource_manager.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc
-
-resource_manager.obj: $(MAINSRCDIR)/util/resource_manager.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.obj -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='resource_manager.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`
-
-text_engine.o: $(MAINSRCDIR)/lib/graphics/text_engine.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT text_engine.o -MD -MP -MF "$(DEPDIR)/text_engine.Tpo" -c -o text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/text_engine.Tpo" "$(DEPDIR)/text_engine.Po"; else rm -f "$(DEPDIR)/text_engine.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='text_engine.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/text_engine.Po' tmpdepfile='$(DEPDIR)/text_engine.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc
-
-text_engine.obj: $(MAINSRCDIR)/lib/graphics/text_engine.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT text_engine.obj -MD -MP -MF "$(DEPDIR)/text_engine.Tpo" -c -o text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/text_engine.Tpo" "$(DEPDIR)/text_engine.Po"; else rm -f "$(DEPDIR)/text_engine.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='text_engine.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/text_engine.Po' tmpdepfile='$(DEPDIR)/text_engine.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`
-
-p_node.o: $(MAINSRCDIR)/lib/coord/p_node.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT p_node.o -MD -MP -MF "$(DEPDIR)/p_node.Tpo" -c -o p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/p_node.Tpo" "$(DEPDIR)/p_node.Po"; else rm -f "$(DEPDIR)/p_node.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='p_node.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/p_node.Po' tmpdepfile='$(DEPDIR)/p_node.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc
-
-p_node.obj: $(MAINSRCDIR)/lib/coord/p_node.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT p_node.obj -MD -MP -MF "$(DEPDIR)/p_node.Tpo" -c -o p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/p_node.Tpo" "$(DEPDIR)/p_node.Po"; else rm -f "$(DEPDIR)/p_node.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='p_node.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/p_node.Po' tmpdepfile='$(DEPDIR)/p_node.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`
-
-null_parent.o: $(MAINSRCDIR)/lib/coord/null_parent.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT null_parent.o -MD -MP -MF "$(DEPDIR)/null_parent.Tpo" -c -o null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/null_parent.Tpo" "$(DEPDIR)/null_parent.Po"; else rm -f "$(DEPDIR)/null_parent.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='null_parent.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/null_parent.Po' tmpdepfile='$(DEPDIR)/null_parent.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc
-
-null_parent.obj: $(MAINSRCDIR)/lib/coord/null_parent.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT null_parent.obj -MD -MP -MF "$(DEPDIR)/null_parent.Tpo" -c -o null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/null_parent.Tpo" "$(DEPDIR)/null_parent.Po"; else rm -f "$(DEPDIR)/null_parent.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='null_parent.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/null_parent.Po' tmpdepfile='$(DEPDIR)/null_parent.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`
 uninstall-info-am:
 
@@ -510,9 +280,6 @@
 check-am: all-am
 check: check-am
-all-am: Makefile $(PROGRAMS) $(HEADERS)
+all-am: Makefile $(HEADERS)
 installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
 install: install-am
 install-exec: install-exec-am
@@ -541,11 +308,9 @@
 clean: clean-am
 
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+clean-am: clean-generic mostlyclean-am
 
 distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+distclean-am: clean-am distclean-generic distclean-tags
 
 dvi: dvi-am
@@ -561,5 +326,5 @@
 install-data-am:
 
-install-exec-am: install-binPROGRAMS
+install-exec-am:
 
 install-info: install-info-am
@@ -570,5 +335,4 @@
 
 maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -576,5 +340,5 @@
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+mostlyclean-am: mostlyclean-generic
 
 pdf: pdf-am
@@ -586,33 +350,15 @@
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic ctags distclean distclean-compile \
-	distclean-generic distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-binPROGRAMS \
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	ctags distclean distclean-generic distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
 	install-data install-data-am install-exec install-exec-am \
 	install-info install-info-am install-man install-strip \
 	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-binPROGRAMS uninstall-info-am
-
-
-#  uncomment the following if orxonox requires the math library
-#orxonox_LDADD=-lm
-
-#EXTRA_DIST=orxonox.lsm.in orxonox.spec.in orxonox.texinfo
-
-#  if you write a self-test script named `chk', uncomment the
-#  following and add `chk' to the EXTRA_DIST list
-#TESTS=chk
-
-#  build and install the .info pages
-#info_TEXINFOS = orxonox.texinfo
-#orxonox_TEXINFOS = gpl.texinfo
-
-#  install the man pages
-#man_MANS=orxonox.1
+	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+	pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
Index: orxonox/branches/physics/src/lib/graphics/importer/abstract_model.h
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/abstract_model.h	(revision 4283)
+++ orxonox/branches/physics/src/lib/graphics/importer/abstract_model.h	(revision 4283)
@@ -0,0 +1,116 @@
+/* 
+   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: Patrick Boenzli
+   co-programmer: 
+*/
+
+/*! 
+    \file abstract_model.h
+    \brief Definition of an abstract model. containing all needed for other model
+*/
+
+#ifndef _ABSTRACT_MODEL_H
+#define _ABSTRACT_MODEL_H
+
+#include "stdincl.h"
+#include "base_object.h"
+#include <vector>
+#include <math.h>
+#include <SDL_image.h>
+
+using namespace std;
+
+
+
+//! this is a small and performant 3D vector
+typedef float sVec3D[3];
+
+//! small and performant 2D vector
+typedef float sVec2D[2];
+
+//! compressed vertex data: char insetead of float, the value will be expanded by the scale value. only for loading
+typedef struct
+{
+  byte v[3];
+  unsigned char lightNormalIndex;
+} sVertex;
+
+//! compressed texture offset data: coords scaled by the texture size. Only for loading
+typedef struct
+{
+  short s,t;
+} sTexCoor;
+
+
+//! holds tha informations about a md2 frame
+typedef struct
+{
+  sVec3D scale;                        //!< scales values of the model
+  sVec3D translate;                    //!< translates the model
+  char name[16];                       //!< frame name: something like "run32"
+  sVertex pVertices[1];                //!< first vertex of thes frame
+} sFrame;
+
+
+//! holds the information about a triangle
+typedef struct
+{
+  short indexToVertices[3];             //!< index to the verteces of the triangle
+  short indexToTexCoor[3];              //!< index to the texture coordinates
+} sTriangle;
+
+
+typedef struct
+{
+   float s, t;
+   int vertexIndex;
+} glCommandVertex;
+
+
+//! a md2 animation definition
+typedef struct
+{
+  int firstFrame;                       //!< first frame of the animation
+  int lastFrame;                        //!< last frame of the animation
+  int fps;                              //!< speed: number of frames per second
+} sAnim;
+
+//! animation state definition
+typedef struct
+{
+  int startFrame;
+  int endFrame;
+  int fps;
+
+  float localTime;
+  float lastTime;
+  float interpolationState;            //!< the state of the animation [0..1]
+  
+  int type;                            //!< animation type
+
+  int currentFrame;
+  int nextFrame;
+} sAnimState;
+
+
+//! This class defines the basic components of a model
+class AbstractModel : public BaseObject {
+
+ public:
+  AbstractModel() {}
+  virtual ~AbstractModel() {}
+};
+
+
+
+
+#endif /* _ABSTRACT_MODEL_H */
Index: orxonox/branches/physics/src/lib/graphics/importer/anorms.h
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/anorms.h	(revision 4283)
+++ orxonox/branches/physics/src/lib/graphics/importer/anorms.h	(revision 4283)
@@ -0,0 +1,181 @@
+/*
+Copyright (C) 1996-1997 Id Softwaref, Inc.
+
+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
+of the Licensef, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if notf, write to the Free Software
+Foundationf, Inc.f, 59 Temple Place - Suite 330f, Bostonf, MA  02111-1307f, USA.
+*/
+
+{-0.525731f, 0.000000f, 0.850651f}, 
+{-0.442863f, 0.238856f, 0.864188f}, 
+{-0.295242f, 0.000000f, 0.955423f}, 
+{-0.309017f, 0.500000f, 0.809017f}, 
+{-0.162460f, 0.262866f, 0.951056f}, 
+{0.000000f, 0.000000f, 1.000000f}, 
+{0.000000f, 0.850651f, 0.525731f}, 
+{-0.147621f, 0.716567f, 0.681718f}, 
+{0.147621f, 0.716567f, 0.681718f}, 
+{0.000000f, 0.525731f, 0.850651f}, 
+{0.309017f, 0.500000f, 0.809017f}, 
+{0.525731f, 0.000000f, 0.850651f}, 
+{0.295242f, 0.000000f, 0.955423f}, 
+{0.442863f, 0.238856f, 0.864188f}, 
+{0.162460f, 0.262866f, 0.951056f}, 
+{-0.681718f, 0.147621f, 0.716567f}, 
+{-0.809017f, 0.309017f, 0.500000f}, 
+{-0.587785f, 0.425325f, 0.688191f}, 
+{-0.850651f, 0.525731f, 0.000000f}, 
+{-0.864188f, 0.442863f, 0.238856f}, 
+{-0.716567f, 0.681718f, 0.147621f}, 
+{-0.688191f, 0.587785f, 0.425325f}, 
+{-0.500000f, 0.809017f, 0.309017f}, 
+{-0.238856f, 0.864188f, 0.442863f}, 
+{-0.425325f, 0.688191f, 0.587785f}, 
+{-0.716567f, 0.681718f, -0.147621f}, 
+{-0.500000f, 0.809017f, -0.309017f}, 
+{-0.525731f, 0.850651f, 0.000000f}, 
+{0.000000f, 0.850651f, -0.525731f}, 
+{-0.238856f, 0.864188f, -0.442863f}, 
+{0.000000f, 0.955423f, -0.295242f}, 
+{-0.262866f, 0.951056f, -0.162460f}, 
+{0.000000f, 1.000000f, 0.000000f}, 
+{0.000000f, 0.955423f, 0.295242f}, 
+{-0.262866f, 0.951056f, 0.162460f}, 
+{0.238856f, 0.864188f, 0.442863f}, 
+{0.262866f, 0.951056f, 0.162460f}, 
+{0.500000f, 0.809017f, 0.309017f}, 
+{0.238856f, 0.864188f, -0.442863f}, 
+{0.262866f, 0.951056f, -0.162460f}, 
+{0.500000f, 0.809017f, -0.309017f}, 
+{0.850651f, 0.525731f, 0.000000f}, 
+{0.716567f, 0.681718f, 0.147621f}, 
+{0.716567f, 0.681718f, -0.147621f}, 
+{0.525731f, 0.850651f, 0.000000f}, 
+{0.425325f, 0.688191f, 0.587785f}, 
+{0.864188f, 0.442863f, 0.238856f}, 
+{0.688191f, 0.587785f, 0.425325f}, 
+{0.809017f, 0.309017f, 0.500000f}, 
+{0.681718f, 0.147621f, 0.716567f}, 
+{0.587785f, 0.425325f, 0.688191f}, 
+{0.955423f, 0.295242f, 0.000000f}, 
+{1.000000f, 0.000000f, 0.000000f}, 
+{0.951056f, 0.162460f, 0.262866f}, 
+{0.850651f, -0.525731f, 0.000000f}, 
+{0.955423f, -0.295242f, 0.000000f}, 
+{0.864188f, -0.442863f, 0.238856f}, 
+{0.951056f, -0.162460f, 0.262866f}, 
+{0.809017f, -0.309017f, 0.500000f}, 
+{0.681718f, -0.147621f, 0.716567f}, 
+{0.850651f, 0.000000f, 0.525731f}, 
+{0.864188f, 0.442863f, -0.238856f}, 
+{0.809017f, 0.309017f, -0.500000f}, 
+{0.951056f, 0.162460f, -0.262866f}, 
+{0.525731f, 0.000000f, -0.850651f}, 
+{0.681718f, 0.147621f, -0.716567f}, 
+{0.681718f, -0.147621f, -0.716567f}, 
+{0.850651f, 0.000000f, -0.525731f}, 
+{0.809017f, -0.309017f, -0.500000f}, 
+{0.864188f, -0.442863f, -0.238856f}, 
+{0.951056f, -0.162460f, -0.262866f}, 
+{0.147621f, 0.716567f, -0.681718f}, 
+{0.309017f, 0.500000f, -0.809017f}, 
+{0.425325f, 0.688191f, -0.587785f}, 
+{0.442863f, 0.238856f, -0.864188f}, 
+{0.587785f, 0.425325f, -0.688191f}, 
+{0.688191f, 0.587785f, -0.425325f}, 
+{-0.147621f, 0.716567f, -0.681718f}, 
+{-0.309017f, 0.500000f, -0.809017f}, 
+{0.000000f, 0.525731f, -0.850651f}, 
+{-0.525731f, 0.000000f, -0.850651f}, 
+{-0.442863f, 0.238856f, -0.864188f}, 
+{-0.295242f, 0.000000f, -0.955423f}, 
+{-0.162460f, 0.262866f, -0.951056f}, 
+{0.000000f, 0.000000f, -1.000000f}, 
+{0.295242f, 0.000000f, -0.955423f}, 
+{0.162460f, 0.262866f, -0.951056f}, 
+{-0.442863f, -0.238856f, -0.864188f}, 
+{-0.309017f, -0.500000f, -0.809017f}, 
+{-0.162460f, -0.262866f, -0.951056f}, 
+{0.000000f, -0.850651f, -0.525731f}, 
+{-0.147621f, -0.716567f, -0.681718f}, 
+{0.147621f, -0.716567f, -0.681718f}, 
+{0.000000f, -0.525731f, -0.850651f}, 
+{0.309017f, -0.500000f, -0.809017f}, 
+{0.442863f, -0.238856f, -0.864188f}, 
+{0.162460f, -0.262866f, -0.951056f}, 
+{0.238856f, -0.864188f, -0.442863f}, 
+{0.500000f, -0.809017f, -0.309017f}, 
+{0.425325f, -0.688191f, -0.587785f}, 
+{0.716567f, -0.681718f, -0.147621f}, 
+{0.688191f, -0.587785f, -0.425325f}, 
+{0.587785f, -0.425325f, -0.688191f}, 
+{0.000000f, -0.955423f, -0.295242f}, 
+{0.000000f, -1.000000f, 0.000000f}, 
+{0.262866f, -0.951056f, -0.162460f}, 
+{0.000000f, -0.850651f, 0.525731f}, 
+{0.000000f, -0.955423f, 0.295242f}, 
+{0.238856f, -0.864188f, 0.442863f}, 
+{0.262866f, -0.951056f, 0.162460f}, 
+{0.500000f, -0.809017f, 0.309017f}, 
+{0.716567f, -0.681718f, 0.147621f}, 
+{0.525731f, -0.850651f, 0.000000f}, 
+{-0.238856f, -0.864188f, -0.442863f}, 
+{-0.500000f, -0.809017f, -0.309017f}, 
+{-0.262866f, -0.951056f, -0.162460f}, 
+{-0.850651f, -0.525731f, 0.000000f}, 
+{-0.716567f, -0.681718f, -0.147621f}, 
+{-0.716567f, -0.681718f, 0.147621f}, 
+{-0.525731f, -0.850651f, 0.000000f}, 
+{-0.500000f, -0.809017f, 0.309017f}, 
+{-0.238856f, -0.864188f, 0.442863f}, 
+{-0.262866f, -0.951056f, 0.162460f}, 
+{-0.864188f, -0.442863f, 0.238856f}, 
+{-0.809017f, -0.309017f, 0.500000f}, 
+{-0.688191f, -0.587785f, 0.425325f}, 
+{-0.681718f, -0.147621f, 0.716567f}, 
+{-0.442863f, -0.238856f, 0.864188f}, 
+{-0.587785f, -0.425325f, 0.688191f}, 
+{-0.309017f, -0.500000f, 0.809017f}, 
+{-0.147621f, -0.716567f, 0.681718f}, 
+{-0.425325f, -0.688191f, 0.587785f}, 
+{-0.162460f, -0.262866f, 0.951056f}, 
+{0.442863f, -0.238856f, 0.864188f}, 
+{0.162460f, -0.262866f, 0.951056f}, 
+{0.309017f, -0.500000f, 0.809017f}, 
+{0.147621f, -0.716567f, 0.681718f}, 
+{0.000000f, -0.525731f, 0.850651f}, 
+{0.425325f, -0.688191f, 0.587785f}, 
+{0.587785f, -0.425325f, 0.688191f}, 
+{0.688191f, -0.587785f, 0.425325f}, 
+{-0.955423f, 0.295242f, 0.000000f}, 
+{-0.951056f, 0.162460f, 0.262866f}, 
+{-1.000000f, 0.000000f, 0.000000f}, 
+{-0.850651f, 0.000000f, 0.525731f}, 
+{-0.955423f, -0.295242f, 0.000000f}, 
+{-0.951056f, -0.162460f, 0.262866f}, 
+{-0.864188f, 0.442863f, -0.238856f}, 
+{-0.951056f, 0.162460f, -0.262866f}, 
+{-0.809017f, 0.309017f, -0.500000f}, 
+{-0.864188f, -0.442863f, -0.238856f}, 
+{-0.951056f, -0.162460f, -0.262866f}, 
+{-0.809017f, -0.309017f, -0.500000f}, 
+{-0.681718f, 0.147621f, -0.716567f}, 
+{-0.681718f, -0.147621f, -0.716567f}, 
+{-0.850651f, 0.000000f, -0.525731f}, 
+{-0.688191f, 0.587785f, -0.425325f}, 
+{-0.587785f, 0.425325f, -0.688191f}, 
+{-0.425325f, 0.688191f, -0.587785f}, 
+{-0.425325f, -0.688191f, -0.587785f}, 
+{-0.587785f, -0.425325f, -0.688191f}, 
+{-0.688191f, -0.587785f, -0.425325f},
Index: orxonox/branches/physics/src/lib/graphics/importer/anormtab.h
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/anormtab.h	(revision 4283)
+++ orxonox/branches/physics/src/lib/graphics/importer/anormtab.h	(revision 4283)
@@ -0,0 +1,37 @@
+/*
+Copyright (C) 1997-2001 Id Software, Inc.
+
+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
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+*/
+
+{1.23,1.30,1.47,1.35,1.56,1.71,1.37,1.38,1.59,1.60,1.79,1.97,1.88,1.92,1.79,1.02,0.93,1.07,0.82,0.87,0.88,0.94,0.96,1.14,1.11,0.82,0.83,0.89,0.89,0.86,0.94,0.91,1.00,1.21,0.98,1.48,1.30,1.57,0.96,1.07,1.14,1.60,1.61,1.40,1.37,1.72,1.78,1.79,1.93,1.99,1.90,1.68,1.71,1.86,1.60,1.68,1.78,1.86,1.93,1.99,1.97,1.44,1.22,1.49,0.93,0.99,0.99,1.23,1.22,1.44,1.49,0.89,0.89,0.97,0.91,0.98,1.19,0.82,0.76,0.82,0.71,0.72,0.73,0.76,0.79,0.86,0.83,0.72,0.76,0.76,0.89,0.82,0.89,0.82,0.89,0.91,0.83,0.96,1.14,0.97,1.40,1.19,0.98,0.94,1.00,1.07,1.37,1.21,1.48,1.30,1.57,1.61,1.37,0.86,0.83,0.91,0.82,0.82,0.88,0.89,0.96,1.14,0.98,0.87,0.93,0.94,1.02,1.30,1.07,1.35,1.38,1.11,1.56,1.92,1.79,1.79,1.59,1.60,1.72,1.90,1.79,0.80,0.85,0.79,0.93,0.80,0.85,0.77,0.74,0.72,0.77,0.74,0.72,0.70,0.70,0.71,0.76,0.73,0.79,0.79,0.73,0.76,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.26,1.26,1.48,1.23,1.50,1.71,1.14,1.19,1.38,1.46,1.64,1.94,1.87,1.84,1.71,1.02,0.92,1.00,0.79,0.85,0.84,0.91,0.90,0.98,0.99,0.77,0.77,0.83,0.82,0.79,0.86,0.84,0.92,0.99,0.91,1.24,1.03,1.33,0.88,0.94,0.97,1.41,1.39,1.18,1.11,1.51,1.61,1.59,1.80,1.91,1.76,1.54,1.65,1.76,1.70,1.70,1.85,1.85,1.97,1.99,1.93,1.28,1.09,1.39,0.92,0.97,0.99,1.18,1.26,1.52,1.48,0.83,0.85,0.90,0.88,0.93,1.00,0.77,0.73,0.78,0.72,0.71,0.74,0.75,0.79,0.86,0.81,0.75,0.81,0.79,0.96,0.88,0.94,0.86,0.93,0.92,0.85,1.08,1.33,1.05,1.55,1.31,1.01,1.05,1.27,1.31,1.60,1.47,1.70,1.54,1.76,1.76,1.57,0.93,0.90,0.99,0.88,0.88,0.95,0.97,1.11,1.39,1.20,0.92,0.97,1.01,1.10,1.39,1.22,1.51,1.58,1.32,1.64,1.97,1.85,1.91,1.77,1.74,1.88,1.99,1.91,0.79,0.86,0.80,0.94,0.84,0.88,0.74,0.74,0.71,0.82,0.77,0.76,0.70,0.73,0.72,0.73,0.70,0.74,0.85,0.77,0.82,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.34,1.27,1.53,1.17,1.46,1.71,0.98,1.05,1.20,1.34,1.48,1.86,1.82,1.71,1.62,1.09,0.94,0.99,0.79,0.85,0.82,0.90,0.87,0.93,0.96,0.76,0.74,0.79,0.76,0.74,0.79,0.78,0.85,0.92,0.85,1.00,0.93,1.06,0.81,0.86,0.89,1.16,1.12,0.97,0.95,1.28,1.38,1.35,1.60,1.77,1.57,1.33,1.50,1.58,1.69,1.63,1.82,1.74,1.91,1.92,1.80,1.04,0.97,1.21,0.90,0.93,0.97,1.05,1.21,1.48,1.37,0.77,0.80,0.84,0.85,0.88,0.92,0.73,0.71,0.74,0.74,0.71,0.75,0.73,0.79,0.84,0.78,0.79,0.86,0.81,1.05,0.94,0.99,0.90,0.95,0.92,0.86,1.24,1.44,1.14,1.59,1.34,1.02,1.27,1.50,1.49,1.80,1.69,1.86,1.72,1.87,1.80,1.69,1.00,0.98,1.23,0.95,0.96,1.09,1.16,1.37,1.63,1.46,0.99,1.10,1.25,1.24,1.51,1.41,1.67,1.77,1.55,1.72,1.95,1.89,1.98,1.91,1.86,1.97,1.99,1.94,0.81,0.89,0.85,0.98,0.90,0.94,0.75,0.78,0.73,0.89,0.83,0.82,0.72,0.77,0.76,0.72,0.70,0.71,0.91,0.83,0.89,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.46,1.34,1.60,1.16,1.46,1.71,0.94,0.99,1.05,1.26,1.33,1.74,1.76,1.57,1.54,1.23,0.98,1.05,0.83,0.89,0.84,0.92,0.87,0.91,0.96,0.78,0.74,0.79,0.72,0.72,0.75,0.76,0.80,0.88,0.83,0.94,0.87,0.95,0.76,0.80,0.82,0.97,0.96,0.89,0.88,1.08,1.11,1.10,1.37,1.59,1.37,1.07,1.27,1.34,1.57,1.45,1.69,1.55,1.77,1.79,1.60,0.93,0.90,0.99,0.86,0.87,0.93,0.96,1.07,1.35,1.18,0.73,0.76,0.77,0.81,0.82,0.85,0.70,0.71,0.72,0.78,0.73,0.77,0.73,0.79,0.82,0.76,0.83,0.90,0.84,1.18,0.98,1.03,0.92,0.95,0.90,0.86,1.32,1.45,1.15,1.53,1.27,0.99,1.42,1.65,1.58,1.93,1.83,1.94,1.81,1.88,1.74,1.70,1.19,1.17,1.44,1.11,1.15,1.36,1.41,1.61,1.81,1.67,1.22,1.34,1.50,1.42,1.65,1.61,1.82,1.91,1.75,1.80,1.89,1.89,1.98,1.99,1.94,1.98,1.92,1.87,0.86,0.95,0.92,1.14,0.98,1.03,0.79,0.84,0.77,0.97,0.90,0.89,0.76,0.82,0.82,0.74,0.72,0.71,0.98,0.89,0.97,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.60,1.44,1.68,1.22,1.49,1.71,0.93,0.99,0.99,1.23,1.22,1.60,1.68,1.44,1.49,1.40,1.14,1.19,0.89,0.96,0.89,0.97,0.89,0.91,0.98,0.82,0.76,0.82,0.71,0.72,0.73,0.76,0.79,0.86,0.83,0.91,0.83,0.89,0.72,0.76,0.76,0.89,0.89,0.82,0.82,0.98,0.96,0.97,1.14,1.40,1.19,0.94,1.00,1.07,1.37,1.21,1.48,1.30,1.57,1.61,1.37,0.86,0.83,0.91,0.82,0.82,0.88,0.89,0.96,1.14,0.98,0.70,0.72,0.73,0.77,0.76,0.79,0.70,0.72,0.71,0.82,0.77,0.80,0.74,0.79,0.80,0.74,0.87,0.93,0.85,1.23,1.02,1.02,0.93,0.93,0.87,0.85,1.30,1.35,1.07,1.38,1.11,0.94,1.47,1.71,1.56,1.97,1.88,1.92,1.79,1.79,1.59,1.60,1.30,1.35,1.56,1.37,1.38,1.59,1.60,1.79,1.92,1.79,1.48,1.57,1.72,1.61,1.78,1.79,1.93,1.99,1.90,1.86,1.78,1.86,1.93,1.99,1.97,1.90,1.79,1.72,0.94,1.07,1.00,1.37,1.21,1.30,0.86,0.91,0.83,1.14,0.98,0.96,0.82,0.88,0.89,0.79,0.76,0.73,1.07,0.94,1.11,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.74,1.57,1.76,1.33,1.54,1.71,0.94,1.05,0.99,1.26,1.16,1.46,1.60,1.34,1.46,1.59,1.37,1.37,0.97,1.11,0.96,1.10,0.95,0.94,1.08,0.89,0.82,0.88,0.72,0.76,0.75,0.80,0.80,0.88,0.87,0.91,0.83,0.87,0.72,0.76,0.74,0.83,0.84,0.78,0.79,0.96,0.89,0.92,0.98,1.23,1.05,0.86,0.92,0.95,1.11,0.98,1.22,1.03,1.34,1.42,1.14,0.79,0.77,0.84,0.78,0.76,0.82,0.82,0.89,0.97,0.90,0.70,0.71,0.71,0.73,0.72,0.74,0.73,0.76,0.72,0.86,0.81,0.82,0.76,0.79,0.77,0.73,0.90,0.95,0.86,1.18,1.03,0.98,0.92,0.90,0.83,0.84,1.19,1.17,0.98,1.15,0.97,0.89,1.42,1.65,1.44,1.93,1.83,1.81,1.67,1.61,1.36,1.41,1.32,1.45,1.58,1.57,1.53,1.74,1.70,1.88,1.94,1.81,1.69,1.77,1.87,1.79,1.89,1.92,1.98,1.99,1.98,1.89,1.65,1.80,1.82,1.91,1.94,1.75,1.61,1.50,1.07,1.34,1.27,1.60,1.45,1.55,0.93,0.99,0.90,1.35,1.18,1.07,0.87,0.93,0.96,0.85,0.82,0.77,1.15,0.99,1.27,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.86,1.71,1.82,1.48,1.62,1.71,0.98,1.20,1.05,1.34,1.17,1.34,1.53,1.27,1.46,1.77,1.60,1.57,1.16,1.38,1.12,1.35,1.06,1.00,1.28,0.97,0.89,0.95,0.76,0.81,0.79,0.86,0.85,0.92,0.93,0.93,0.85,0.87,0.74,0.78,0.74,0.79,0.82,0.76,0.79,0.96,0.85,0.90,0.94,1.09,0.99,0.81,0.85,0.89,0.95,0.90,0.99,0.94,1.10,1.24,0.98,0.75,0.73,0.78,0.74,0.72,0.77,0.76,0.82,0.89,0.83,0.73,0.71,0.71,0.71,0.70,0.72,0.77,0.80,0.74,0.90,0.85,0.84,0.78,0.79,0.75,0.73,0.92,0.95,0.86,1.05,0.99,0.94,0.90,0.86,0.79,0.81,1.00,0.98,0.91,0.96,0.89,0.83,1.27,1.50,1.23,1.80,1.69,1.63,1.46,1.37,1.09,1.16,1.24,1.44,1.49,1.69,1.59,1.80,1.69,1.87,1.86,1.72,1.82,1.91,1.94,1.92,1.95,1.99,1.98,1.91,1.97,1.89,1.51,1.72,1.67,1.77,1.86,1.55,1.41,1.25,1.33,1.58,1.50,1.80,1.63,1.74,1.04,1.21,0.97,1.48,1.37,1.21,0.93,0.97,1.05,0.92,0.88,0.84,1.14,1.02,1.34,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.94,1.84,1.87,1.64,1.71,1.71,1.14,1.38,1.19,1.46,1.23,1.26,1.48,1.26,1.50,1.91,1.80,1.76,1.41,1.61,1.39,1.59,1.33,1.24,1.51,1.18,0.97,1.11,0.82,0.88,0.86,0.94,0.92,0.99,1.03,0.98,0.91,0.90,0.79,0.84,0.77,0.79,0.84,0.77,0.83,0.99,0.85,0.91,0.92,1.02,1.00,0.79,0.80,0.86,0.88,0.84,0.92,0.88,0.97,1.10,0.94,0.74,0.71,0.74,0.72,0.70,0.73,0.72,0.76,0.82,0.77,0.77,0.73,0.74,0.71,0.70,0.73,0.83,0.85,0.78,0.92,0.88,0.86,0.81,0.79,0.74,0.75,0.92,0.93,0.85,0.96,0.94,0.88,0.86,0.81,0.75,0.79,0.93,0.90,0.85,0.88,0.82,0.77,1.05,1.27,0.99,1.60,1.47,1.39,1.20,1.11,0.95,0.97,1.08,1.33,1.31,1.70,1.55,1.76,1.57,1.76,1.70,1.54,1.85,1.97,1.91,1.99,1.97,1.99,1.91,1.77,1.88,1.85,1.39,1.64,1.51,1.58,1.74,1.32,1.22,1.01,1.54,1.76,1.65,1.93,1.70,1.85,1.28,1.39,1.09,1.52,1.48,1.26,0.97,0.99,1.18,1.00,0.93,0.90,1.05,1.01,1.31,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.97,1.92,1.88,1.79,1.79,1.71,1.37,1.59,1.38,1.60,1.35,1.23,1.47,1.30,1.56,1.99,1.93,1.90,1.60,1.78,1.61,1.79,1.57,1.48,1.72,1.40,1.14,1.37,0.89,0.96,0.94,1.07,1.00,1.21,1.30,1.14,0.98,0.96,0.86,0.91,0.83,0.82,0.88,0.82,0.89,1.11,0.87,0.94,0.93,1.02,1.07,0.80,0.79,0.85,0.82,0.80,0.87,0.85,0.93,1.02,0.93,0.77,0.72,0.74,0.71,0.70,0.70,0.71,0.72,0.77,0.74,0.82,0.76,0.79,0.72,0.73,0.76,0.89,0.89,0.82,0.93,0.91,0.86,0.83,0.79,0.73,0.76,0.91,0.89,0.83,0.89,0.89,0.82,0.82,0.76,0.72,0.76,0.86,0.83,0.79,0.82,0.76,0.73,0.94,1.00,0.91,1.37,1.21,1.14,0.98,0.96,0.88,0.89,0.96,1.14,1.07,1.60,1.40,1.61,1.37,1.57,1.48,1.30,1.78,1.93,1.79,1.99,1.92,1.90,1.79,1.59,1.72,1.79,1.30,1.56,1.35,1.38,1.60,1.11,1.07,0.94,1.68,1.86,1.71,1.97,1.68,1.86,1.44,1.49,1.22,1.44,1.49,1.22,0.99,0.99,1.23,1.19,0.98,0.97,0.97,0.98,1.19,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.94,1.97,1.87,1.91,1.85,1.71,1.60,1.77,1.58,1.74,1.51,1.26,1.48,1.39,1.64,1.99,1.97,1.99,1.70,1.85,1.76,1.91,1.76,1.70,1.88,1.55,1.33,1.57,0.96,1.08,1.05,1.31,1.27,1.47,1.54,1.39,1.20,1.11,0.93,0.99,0.90,0.88,0.95,0.88,0.97,1.32,0.92,1.01,0.97,1.10,1.22,0.84,0.80,0.88,0.79,0.79,0.85,0.86,0.92,1.02,0.94,0.82,0.76,0.77,0.72,0.73,0.70,0.72,0.71,0.74,0.74,0.88,0.81,0.85,0.75,0.77,0.82,0.94,0.93,0.86,0.92,0.92,0.86,0.85,0.79,0.74,0.79,0.88,0.85,0.81,0.82,0.83,0.77,0.78,0.73,0.71,0.75,0.79,0.77,0.74,0.77,0.73,0.70,0.86,0.92,0.84,1.14,0.99,0.98,0.91,0.90,0.84,0.83,0.88,0.97,0.94,1.41,1.18,1.39,1.11,1.33,1.24,1.03,1.61,1.80,1.59,1.91,1.84,1.76,1.64,1.38,1.51,1.71,1.26,1.50,1.23,1.19,1.46,0.99,1.00,0.91,1.70,1.85,1.65,1.93,1.54,1.76,1.52,1.48,1.26,1.28,1.39,1.09,0.99,0.97,1.18,1.31,1.01,1.05,0.90,0.93,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.86,1.95,1.82,1.98,1.89,1.71,1.80,1.91,1.77,1.86,1.67,1.34,1.53,1.51,1.72,1.92,1.91,1.99,1.69,1.82,1.80,1.94,1.87,1.86,1.97,1.59,1.44,1.69,1.05,1.24,1.27,1.49,1.50,1.69,1.72,1.63,1.46,1.37,1.00,1.23,0.98,0.95,1.09,0.96,1.16,1.55,0.99,1.25,1.10,1.24,1.41,0.90,0.85,0.94,0.79,0.81,0.85,0.89,0.94,1.09,0.98,0.89,0.82,0.83,0.74,0.77,0.72,0.76,0.73,0.75,0.78,0.94,0.86,0.91,0.79,0.83,0.89,0.99,0.95,0.90,0.90,0.92,0.84,0.86,0.79,0.75,0.81,0.85,0.80,0.78,0.76,0.77,0.73,0.74,0.71,0.71,0.73,0.74,0.74,0.71,0.76,0.72,0.70,0.79,0.85,0.78,0.98,0.92,0.93,0.85,0.87,0.82,0.79,0.81,0.89,0.86,1.16,0.97,1.12,0.95,1.06,1.00,0.93,1.38,1.60,1.35,1.77,1.71,1.57,1.48,1.20,1.28,1.62,1.27,1.46,1.17,1.05,1.34,0.96,0.99,0.90,1.63,1.74,1.50,1.80,1.33,1.58,1.48,1.37,1.21,1.04,1.21,0.97,0.97,0.93,1.05,1.34,1.02,1.14,0.84,0.88,0.92,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.74,1.89,1.76,1.98,1.89,1.71,1.93,1.99,1.91,1.94,1.82,1.46,1.60,1.65,1.80,1.79,1.77,1.92,1.57,1.69,1.74,1.87,1.88,1.94,1.98,1.53,1.45,1.70,1.18,1.32,1.42,1.58,1.65,1.83,1.81,1.81,1.67,1.61,1.19,1.44,1.17,1.11,1.36,1.15,1.41,1.75,1.22,1.50,1.34,1.42,1.61,0.98,0.92,1.03,0.83,0.86,0.89,0.95,0.98,1.23,1.14,0.97,0.89,0.90,0.78,0.82,0.76,0.82,0.77,0.79,0.84,0.98,0.90,0.98,0.83,0.89,0.97,1.03,0.95,0.92,0.86,0.90,0.82,0.86,0.79,0.77,0.84,0.81,0.76,0.76,0.72,0.73,0.70,0.72,0.71,0.73,0.73,0.72,0.74,0.71,0.78,0.74,0.72,0.75,0.80,0.76,0.94,0.88,0.91,0.83,0.87,0.84,0.79,0.76,0.82,0.80,0.97,0.89,0.96,0.88,0.95,0.94,0.87,1.11,1.37,1.10,1.59,1.57,1.37,1.33,1.05,1.08,1.54,1.34,1.46,1.16,0.99,1.26,0.96,1.05,0.92,1.45,1.55,1.27,1.60,1.07,1.34,1.35,1.18,1.07,0.93,0.99,0.90,0.93,0.87,0.96,1.27,0.99,1.15,0.77,0.82,0.85,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.60,1.78,1.68,1.93,1.86,1.71,1.97,1.99,1.99,1.97,1.93,1.60,1.68,1.78,1.86,1.61,1.57,1.79,1.37,1.48,1.59,1.72,1.79,1.92,1.90,1.38,1.35,1.60,1.23,1.30,1.47,1.56,1.71,1.88,1.79,1.92,1.79,1.79,1.30,1.56,1.35,1.37,1.59,1.38,1.60,1.90,1.48,1.72,1.57,1.61,1.79,1.21,1.00,1.30,0.89,0.94,0.96,1.07,1.14,1.40,1.37,1.14,0.96,0.98,0.82,0.88,0.82,0.89,0.83,0.86,0.91,1.02,0.93,1.07,0.87,0.94,1.11,1.02,0.93,0.93,0.82,0.87,0.80,0.85,0.79,0.80,0.85,0.77,0.72,0.74,0.71,0.70,0.70,0.71,0.72,0.77,0.74,0.72,0.76,0.73,0.82,0.79,0.76,0.73,0.79,0.76,0.93,0.86,0.91,0.83,0.89,0.89,0.82,0.72,0.76,0.76,0.89,0.82,0.89,0.82,0.89,0.91,0.83,0.96,1.14,0.97,1.40,1.44,1.19,1.22,0.99,0.98,1.49,1.44,1.49,1.22,0.99,1.23,0.98,1.19,0.97,1.21,1.30,1.00,1.37,0.94,1.07,1.14,0.98,0.96,0.86,0.91,0.83,0.88,0.82,0.89,1.11,0.94,1.07,0.73,0.76,0.79,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.46,1.65,1.60,1.82,1.80,1.71,1.93,1.91,1.99,1.94,1.98,1.74,1.76,1.89,1.89,1.42,1.34,1.61,1.11,1.22,1.36,1.50,1.61,1.81,1.75,1.15,1.17,1.41,1.18,1.19,1.42,1.44,1.65,1.83,1.67,1.94,1.81,1.88,1.32,1.58,1.45,1.57,1.74,1.53,1.70,1.98,1.69,1.87,1.77,1.79,1.92,1.45,1.27,1.55,0.97,1.07,1.11,1.34,1.37,1.59,1.60,1.35,1.07,1.18,0.86,0.93,0.87,0.96,0.90,0.93,0.99,1.03,0.95,1.15,0.90,0.99,1.27,0.98,0.90,0.92,0.78,0.83,0.77,0.84,0.79,0.82,0.86,0.73,0.71,0.73,0.72,0.70,0.73,0.72,0.76,0.81,0.76,0.76,0.82,0.77,0.89,0.85,0.82,0.75,0.80,0.80,0.94,0.88,0.94,0.87,0.95,0.96,0.88,0.72,0.74,0.76,0.83,0.78,0.84,0.79,0.87,0.91,0.83,0.89,0.98,0.92,1.23,1.34,1.05,1.16,0.99,0.96,1.46,1.57,1.54,1.33,1.05,1.26,1.08,1.37,1.10,0.98,1.03,0.92,1.14,0.86,0.95,0.97,0.90,0.89,0.79,0.84,0.77,0.82,0.76,0.82,0.97,0.89,0.98,0.71,0.72,0.74,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.34,1.51,1.53,1.67,1.72,1.71,1.80,1.77,1.91,1.86,1.98,1.86,1.82,1.95,1.89,1.24,1.10,1.41,0.95,0.99,1.09,1.25,1.37,1.63,1.55,0.96,0.98,1.16,1.05,1.00,1.27,1.23,1.50,1.69,1.46,1.86,1.72,1.87,1.24,1.49,1.44,1.69,1.80,1.59,1.69,1.97,1.82,1.94,1.91,1.92,1.99,1.63,1.50,1.74,1.16,1.33,1.38,1.58,1.60,1.77,1.80,1.48,1.21,1.37,0.90,0.97,0.93,1.05,0.97,1.04,1.21,0.99,0.95,1.14,0.92,1.02,1.34,0.94,0.86,0.90,0.74,0.79,0.75,0.81,0.79,0.84,0.86,0.71,0.71,0.73,0.76,0.73,0.77,0.74,0.80,0.85,0.78,0.81,0.89,0.84,0.97,0.92,0.88,0.79,0.85,0.86,0.98,0.92,1.00,0.93,1.06,1.12,0.95,0.74,0.74,0.78,0.79,0.76,0.82,0.79,0.87,0.93,0.85,0.85,0.94,0.90,1.09,1.27,0.99,1.17,1.05,0.96,1.46,1.71,1.62,1.48,1.20,1.34,1.28,1.57,1.35,0.90,0.94,0.85,0.98,0.81,0.89,0.89,0.83,0.82,0.75,0.78,0.73,0.77,0.72,0.76,0.89,0.83,0.91,0.71,0.70,0.72,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00},
+{1.26,1.39,1.48,1.51,1.64,1.71,1.60,1.58,1.77,1.74,1.91,1.94,1.87,1.97,1.85,1.10,0.97,1.22,0.88,0.92,0.95,1.01,1.11,1.39,1.32,0.88,0.90,0.97,0.96,0.93,1.05,0.99,1.27,1.47,1.20,1.70,1.54,1.76,1.08,1.31,1.33,1.70,1.76,1.55,1.57,1.88,1.85,1.91,1.97,1.99,1.99,1.70,1.65,1.85,1.41,1.54,1.61,1.76,1.80,1.91,1.93,1.52,1.26,1.48,0.92,0.99,0.97,1.18,1.09,1.28,1.39,0.94,0.93,1.05,0.92,1.01,1.31,0.88,0.81,0.86,0.72,0.75,0.74,0.79,0.79,0.86,0.85,0.71,0.73,0.75,0.82,0.77,0.83,0.78,0.85,0.88,0.81,0.88,0.97,0.90,1.18,1.00,0.93,0.86,0.92,0.94,1.14,0.99,1.24,1.03,1.33,1.39,1.11,0.79,0.77,0.84,0.79,0.77,0.84,0.83,0.90,0.98,0.91,0.85,0.92,0.91,1.02,1.26,1.00,1.23,1.19,0.99,1.50,1.84,1.71,1.64,1.38,1.46,1.51,1.76,1.59,0.84,0.88,0.80,0.94,0.79,0.86,0.82,0.77,0.76,0.74,0.74,0.71,0.73,0.70,0.72,0.82,0.77,0.85,0.74,0.70,0.73,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00}
+
Index: orxonox/branches/physics/src/lib/graphics/importer/framework.cc
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/framework.cc	(revision 4274)
+++ 	(revision )
@@ -1,257 +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: ...
-*/
-
-#include "framework.h"
-
-#include "vector.h"
-
-#include "primitive_model.h"
-
-
-int verbose;
-void DrawGLScene()
-{
-  currFrame = SDL_GetTicks();
-  dt = currFrame - lastFrame; 
-  if (dt == 0)
-    dist += (zoomTo-dist)/500;
-  else 
-    dist += (zoomTo-dist)/500 *(float)dt;
-
-  rotatorP += rotatorV *(float)dt;
-  
-
-  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
-  glLoadIdentity(); // Reset the view
-  
-  glMatrixMode(GL_PROJECTION);
-  glLoadIdentity();	
-  gluPerspective(45.0f,500/375,0.1f,dist * 5.0f);
-    gluLookAt (0, dist , dist, 0,0,0, up.x,up.y,up.z);
-
-  glMatrixMode(GL_MODELVIEW);
-  glPushMatrix();
-  //  glRotatef (180, dir.x, dir.y, dir.z);
-  glMultMatrixf (*matQ);
-  if (obj)
-    obj->draw();
-
-  glPopMatrix();
-
-  SDL_GL_SwapBuffers(); // Swap the buffers
-  lastFrame = currFrame;
-}
-
-
-int main(int argc, char *argv[])
-{
-  verbose = 3;
-
-  Uint8* keys; // This variable will be used in the keyboard routine
-  int done=FALSE; // We aren't done yet, are we?
-
-  // Create a new OpenGL window with the title "Cone3D Basecode" at
-  // 640x480x32, fullscreen and check for errors along the way
-  if(wHandler.CreateGLWindow("Whandler Basecode", 800, 600, 32, FALSE) == FALSE)
-  {
-    // If an error is found, display a message, kill the GL and SDL screens (if they were created) and exit
-    PRINTF(1)("Could not initalize OpenGL :(\n\n");
-    wHandler.KillGLWindow();
-    return 0;
-  }
-  
-  PRINTF(2)("screensize: %i, %i\n", wHandler.screen->w, wHandler.screen->h);
-  if (argc>=3)
-    obj = new OBJModel (argv[1], atof(argv[2]));
-  else if (argc>=2)
-    obj = new OBJModel(argv[1]);
-  else 
-    obj = new PrimitiveModel(CYLINDER);
-
-  M = Vector(wHandler.screen->w/2, wHandler.screen->h/2, 0); 
-  rotAxis = Vector (0.0,1.0,0.0);
-  rotAngle = 0;
-
-  matQ[0][0] = matQ[1][1] = matQ[2][2] = matQ[3][3] = 1;
-  rotQ = Quaternion (rotAngle, rotAxis);
-  rotQlast = rotQ;
-  dir = Vector (0.0, 0.0, 1.0);
-  up = Vector (0.0, 1.0, 0.0);
-
-  glEnable(GL_LIGHTING);
-  glEnable(GL_DEPTH_TEST);
-
-  GLfloat whiteLight[] = {1.0, 1.0, 1.0,1.0};
-  GLfloat light0Position[] = {10.0, 10.0, 10.0, 0.0};
-  GLfloat light1Position[] = {-10.0, -7.0, -6.0, 0.0};
-  GLfloat lmodelAmbient[] = {.1, .1, .1, 1.0};
-
-  glEnable(GL_LIGHT0);
-  glLightfv(GL_LIGHT0, GL_POSITION, light0Position);
-  glLightfv(GL_LIGHT0, GL_DIFFUSE, whiteLight);
-  glLightfv(GL_LIGHT0, GL_SPECULAR, whiteLight);
-  
-  glEnable(GL_LIGHT1);
-  glLightfv(GL_LIGHT1, GL_POSITION, light1Position);
-  glLightfv(GL_LIGHT1, GL_DIFFUSE, whiteLight);
-  glLightfv(GL_LIGHT1, GL_SPECULAR, whiteLight);
-  
-
-  glEnable(GL_TEXTURE_2D);
-  rotatorP = .0;
-  rotatorV = .0;
-  dist = 5.0;
-  zoomTo = dist;
-  // Build the font from a TGA image font.tga in the data directory
-  // Hide the mouse cursor
-    SDL_ShowCursor(2);
-    mouse1Down = false;
-
-  // This is the main loop for the entire program and it will run until done==TRUE
-  while(!done)
-  {
-    // Draw the scene
-    DrawGLScene();
-    // And poll for events
-    SDL_Event event;
-    while ( SDL_PollEvent(&event) ) {
-      switch (event.type) {
-      case SDL_MOUSEMOTION:
-	PRINTF(4)("Mouse motion about %d,%d Pixels to (%d,%d).\n", 
-		  event.motion.xrel, event.motion.yrel,
-		  event.motion.x, event.motion.y);
-	// TRACKBALL
-	if (mouse1Down)
-	  {
-	    int mX = event.button.x;
-	    int mY = event.button.y;
-	    int wH = wHandler.screen->h;
-	    int wW = wHandler.screen->w;
-	    Vector tmpV (mX, mY, sqrt ( (float) abs(wH * wH/4 - (wW/2-mX) * (wW/2-mX) - (wH/2-mY) * (wH/2-mY)) ));
-	    //	    PRINTF(0)("tmpV: %f, %f, %f\n", tmpV.x, tmpV.y, tmpV.z);
-	    p2 = tmpV-M;
-	    p2.y = -p2.y;
-	    rotAxis = p1.cross(p2);
-	    //  PRINTF(0)("rotAxis: %f, %f, %f\n", rotAxis.x, rotAxis.y, rotAxis.z);
-
-	    // in case that there is no rotation-axis defined
-	    if (rotAxis.x != 0 || rotAxis.y != 0 || rotAxis.z != 0)
-	      {
-		rotAxis.normalize();
-		//		PRINTF(0)("rotAxis: %f, %f, %f\n", rotAxis.x, rotAxis.y, rotAxis.z, rotAngle);
-				
-		rotAngle = angleRad (p1, p2);
-		rotQ = Quaternion (rotAngle, rotAxis);
-		rotQ = rotQ * rotQlast;
-		rotQ.matrix (matQ);
-		//	dir = rotQ.apply(dir);
-		//      dir.normalize();
-		//	PRINTF(0)("rotAxis: %f, %f, %f, %f\n", dir.x, dir.y, dir.z, rotAngle);
-	      }
-	    rotQlast = rotQ;
-	    p1 = p2;
-
-	  }
-	break;
-      case SDL_MOUSEBUTTONDOWN:
-	if (event.button.button == 4)
-	  {
-	    PRINTF(4)("MouseWheel up\n");
-	    zoomTo *= .5;
-	  }
-	else if (event.button.button == 5)
-	  {
-	    PRINTF(4)("MouseWheel down\n");
-	    zoomTo *= 2.0;
-	  }
-	else if (event.button.button == 1)
-	  {
-	    mouse1Down = true;
-	    int mX = event.button.x;
-	    int mY = event.button.y;
-	    int wH = wHandler.screen->h;
-	    int wW = wHandler.screen->w;
-	    Vector tmpV (mX, mY, sqrt ( (float) abs(wH * wH/4 - (wW/2-mX) * (wW/2-mX) - (wH/2-mY) * (wH/2-mY)) ));
-	    p1 = tmpV-M;
-	    p1.y = -p1.y;
-
-	  }
-	else
-	  {
-	    PRINTF(0)("MouseButton %d pressed at (%d,%d).\n",
-		   event.button.button, event.button.x, event.button.y);
-	    rotatorV = ( (float)wHandler.screen->w/2 -event.button.x) / (float)wHandler.screen->w / 100.0;
-	  }
-	    
-	break;
-      case SDL_MOUSEBUTTONUP:
-	if (event.button.button == 4);
-	else if (event.button.button == 5);
-	else if (event.button.button == 1)
-	  mouse1Down =false;
-	else 
-	    {
-	      PRINTF(4)("MouseButton %d released at (%d,%d).\n",
-			event.button.button, event.button.x, event.button.y);
-	    }
-	break;
-
-
-      case SDL_KEYDOWN:
-	switch (event.key.keysym.sym)
-	  {
-	  case SDLK_x:
-	    delete obj;
-	    obj = NULL;
-	    break;
-	  case SDLK_c:
-	    if (!obj)
-	      obj = new OBJModel(argv[1]);
-	    break;
-	  case SDLK_a:
-	    zoomTo /=2;
-	    break;
-	  case SDLK_z:
-	    zoomTo *=2;
-
-	  }
-	break;
-	    
-        // If a quit event was recieved
-      case SDL_QUIT:
-	// then we're done and we'll end this program
-          done=TRUE;
-          break;
-      default:
-          break;
-      }
-
-
-    }
-
-    // Get the state of the keyboard keys
-    keys = SDL_GetKeyState(NULL);
-
-    // and check if ESCAPE has been pressed. If so then quit
-    if(keys[SDLK_ESCAPE]) done=TRUE;
-  }
-
-  // Kill the GL & SDL screens
-  if (obj)
-    delete obj;
-  wHandler.KillGLWindow();
-  // And quit
-  return 0;
-}
Index: orxonox/branches/physics/src/lib/graphics/importer/framework.h
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/framework.h	(revision 4274)
+++ 	(revision )
@@ -1,40 +1,0 @@
-#ifndef _FRAMEWORK_H
-#define _FRAMEWORK_H
- 
-#include "windowHandler.h" // Include the Whandler Basecode
-#include "objModel.h"
-#include "vector.h"
-
-class Vector;
-
-float rotatorP;
-float rotatorV;
-
-float dist;
-float zoomTo;
-
-Uint32 lastFrame;
-Uint32 currFrame;
-Uint32 dt;
-
-
-Vector dir;
-Vector up;
-
-float matQ[4][4];
-
-Vector M;
-Vector p1;
-Vector p2;
-Vector rotAxis;
-float rotAngle;
-Quaternion rotQ;
-Quaternion rotQlast;
-
-bool mouse1Down;
-
-WindowHandler wHandler;  // Create an instance of the whandler basecode class
-Model* obj;
-
-
-#endif /* _FRAMEWORK_H */
Index: orxonox/branches/physics/src/lib/graphics/importer/md2Model.cc
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/md2Model.cc	(revision 4283)
+++ orxonox/branches/physics/src/lib/graphics/importer/md2Model.cc	(revision 4283)
@@ -0,0 +1,346 @@
+/* 
+   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: Patrick Boenzli
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_IMPORTER
+
+#include "md2Model.h"
+#include "material.h"
+
+#include "resource_manager.h"
+
+#include <fstream>
+
+
+using namespace std;
+
+
+sVec3D MD2Model::anorms[NUM_VERTEX_NORMALS] = {
+ #include "anorms.h"
+};
+
+float MD2Model::anormsDots[SHADEDOT_QUANT][256] = {
+  #include "anormtab.h"
+};
+
+static float *shadeDots = MD2Model::anormsDots[0];
+
+float md2Angle = 0.0f;
+
+
+sAnim MD2Model::animationList[21] =
+  {
+ // begin, end, fps 
+    {   0,  39,  9 },   // STAND
+    {  40,  45, 10 },   // RUN
+    {  46,  53, 10 },   // ATTACK
+    {  54,  57,  7 },   // PAIN_A
+    {  58,  61,  7 },   // PAIN_B
+    {  62,  65,  7 },   // PAIN_C
+    {  66,  71,  7 },   // JUMP
+    {  72,  83,  7 },   // FLIP
+    {  84,  94,  7 },   // SALUTE
+    {  95, 111, 10 },   // FALLBACK
+    { 112, 122,  7 },   // WAVE
+    { 123, 134,  6 },   // POINTT
+    { 135, 153, 10 },   // CROUCH_STAND
+    { 154, 159,  7 },   // CROUCH_WALK
+    { 160, 168, 10 },   // CROUCH_ATTACK
+    { 196, 172,  7 },   // CROUCH_PAIN
+    { 173, 177,  5 },   // CROUCH_DEATH
+    { 178, 183,  7 },   // DEATH_FALLBACK
+    { 184, 189,  7 },   // DEATH_FALLFORWARD
+    { 190, 197,  7 },   // DEATH_FALLBACKSLOW
+    { 198, 198,  5 },   // BOOM
+  };
+
+
+
+/********************************************************************************
+ *   MD2Model                                                                   *
+ ********************************************************************************/
+
+MD2Model::MD2Model()
+{
+  /* this creates the data container via ressource manager */
+  this->data = new MD2Data();
+  this->scaleFactor = this->data->scaleFactor;
+
+  this->setAnim(BOOM);
+}
+
+
+MD2Model::~MD2Model()
+{
+
+}
+
+
+bool MD2Model::loadModel(const char* fileName)
+{
+  return this->data->loadModel(fileName);
+}
+
+
+bool MD2Model::loadSkin(const char* fileName)
+{
+  return this->data->loadSkin(fileName);
+}
+
+
+/**
+   \brief initializes an array of vert with the current frame scaled vertices
+
+   we won't use the pVertices array directly, since its much easier and we need
+   saving of data anyway
+*/
+void MD2Model::interpolate(sVec3D* verticesList)
+{
+  sVec3D* currVec;
+  sVec3D* nextVec;
+
+  currVec = &this->data->pVertices[this->data->numVertices * this->animationState.currentFrame];
+  nextVec = &this->data->pVertices[this->data->numVertices * this->animationState.nextFrame];
+
+  for(int i = 0; i < this->data->numFrames; ++i)
+    {
+      verticesList[i][0] = (currVec[i][0] + this->animationState.interpolationState * (nextVec[i][0] - currVec[i][0])) * this->scaleFactor;
+      verticesList[i][1] = (currVec[i][1] + this->animationState.interpolationState * (nextVec[i][1] - currVec[i][1])) * this->scaleFactor;
+      verticesList[i][2] = (currVec[i][2] + this->animationState.interpolationState * (nextVec[i][2] - currVec[i][2])) * this->scaleFactor;
+    }
+}
+
+
+void MD2Model::setAnim(int type)
+{
+  if( (type < 0) || (type > MAX_ANIMATIONS) )
+    type = 0;
+
+  this->animationState.startFrame = animationList[type].firstFrame;
+  this->animationState.endFrame = animationList[type].lastFrame;
+  this->animationState.nextFrame = animationList[type].firstFrame + 1;
+  this->animationState.fps = animationList[type].fps;
+  this->animationState.type = type;
+  
+  this->animationState.interpolationState = 0.0;
+  this->animationState.localTime = 0.0;
+  this->animationState.lastTime = 0.0;
+  this->animationState.currentFrame = animationList[type].firstFrame;
+}
+
+
+void MD2Model::tick(float time)
+{
+  this->animationState.localTime += time;
+}
+
+
+void MD2Model::draw()
+{
+  if( likely(this->animationState.localTime > 0.0))
+    this->animate();
+
+  glPushMatrix();
+
+  this->renderFrame();
+
+  glPopMatrix();
+} 
+
+
+void MD2Model::renderFrame()
+{
+  static sVec3D verticesList[MD2_MAX_VERTICES]; /* performance: created only once in a lifetime */
+  int* pCommands = this->data->pGLCommands;
+
+  /* some face culling stuff */
+  glPushAttrib(GL_POLYGON_BIT);
+  glFrontFace(GL_CW);
+  glEnable(GL_CULL_FACE);
+  glCullFace(GL_BACK);
+     
+  this->processLighting();
+  this->interpolate(verticesList);
+  this->data->material->select();
+
+  /* draw the triangles */
+  while( int i = *(pCommands++)) /* strange looking while loop for maximum performance */
+    {
+      if( i < 0)
+	{
+	  glBegin(GL_TRIANGLE_FAN);
+	  i = -i;
+	}
+      else
+	{
+	  glBegin(GL_TRIANGLE_STRIP);
+	}
+
+      for(; i > 0; i--, pCommands += 3) /* down counting for loop, next 3 gl commands */
+	{
+	  glNormal3fv(anorms[this->data->pLightNormals[pCommands[2]]]);
+	  glTexCoord2f( ((float *)pCommands)[0], 1.0-((float *)pCommands)[1] );
+	  glVertex3fv(verticesList[pCommands[2]]);
+	}
+      glEnd();
+    }
+  glDisable(GL_CULL_FACE);
+  glPopAttrib();
+}
+
+
+void MD2Model::animate()
+{
+  if( this->animationState.localTime - this->animationState.lastTime > (1.0f / this->animationState.fps))
+    {
+      this->animationState.currentFrame = this->animationState.nextFrame;
+      this->animationState.nextFrame++;
+      
+      if( this->animationState.nextFrame > this->animationState.endFrame)
+	this->animationState.nextFrame = this->animationState.startFrame;
+      this->animationState.lastTime = this->animationState.localTime;
+    }
+
+  if( this->animationState.currentFrame > (this->data->numFrames - 1) )
+    this->animationState.currentFrame = 0;
+  if( this->animationState.nextFrame > (this->data->numFrames - 1) )
+    this->animationState.nextFrame = 0;
+
+  this->animationState.interpolationState = this->animationState.fps * 
+    (this->animationState.localTime - this->animationState.lastTime);
+}
+
+
+/* hhmmm... id used a very different way to do lightning... */
+void MD2Model::processLighting()
+{
+  shadeDots = anormsDots[((int)(md2Angle*(SHADEDOT_QUANT / 360.0)))&(SHADEDOT_QUANT - 1)];
+}
+
+
+void MD2Model::debug()
+{
+  PRINT(0)("\n==========================| MD2Model::debug() |===\n");
+  PRINT(0)("=  Model FileName:\t%s\n", this->data->fileName);
+  PRINT(0)("=  Skin FileName:\t%s\n", this->data->skinFileName);
+  PRINT(0)("=  Size in Memory:\t%i Bytes\n", this->data->header->frameSize * this->data->header->numFrames + 64); // 64bytes is the header size
+  PRINT(0)("=  Number of Vertices:\t%i\n", this->data->header->numVertices);
+  PRINT(0)("=  Number of Frames: \t%i\n", this->data->header->numFrames);
+  PRINT(0)("=  Height, Width:\t%i, %i\n", this->data->header->skinHeight, this->data->header->skinWidth);
+  PRINT(0)("===================================================\n\n");
+}
+
+
+/********************************************************************************
+ *   MD2Data                                                                    *
+ ********************************************************************************/
+
+
+MD2Data::MD2Data()
+{
+  this->pVertices = NULL;
+  this->pGLCommands = NULL;
+  this->pLightNormals = NULL; 
+
+  this->numFrames = 0;
+  this->numVertices = 0;
+  this->numGLCommands = 0;
+  
+  this->scaleFactor = 1.0f;
+}
+
+
+MD2Data::~MD2Data()
+{
+  delete [] this->pVertices;
+  delete [] this->pGLCommands;
+  delete [] this->pLightNormals;
+}
+
+
+
+bool MD2Data::loadModel(const char* fileName)
+{
+  FILE *pFile;                            //file stream
+  char* buffer;                           //buffer for frame data
+  sFrame* frame;                          //temp frame
+  sVec3D *pVertex;
+  int* pNormals;
+
+  pFile = fopen(fileName, "rb");
+  if( unlikely(!pFile)) 
+    {
+      PRINTF(1)("Couldn't open the MD2 File for loading. Exiting.\n");
+      return false;
+    }
+  this->header = new MD2Header;
+  fread(this->header, 1, sizeof(MD2Header), pFile);
+  /* check for the header version: make sure its a md2 file :) */
+  if( unlikely(this->header->version != MD2_VERSION) && unlikely(this->header->ident != MD2_IDENT))
+    {
+      PRINTF(1)("Couldn't load file %s: invalid file format: stop loading\n", fileName);
+      return false;
+    }
+
+  this->fileName = new char[strlen(fileName)+1];
+  strcpy(this->fileName, fileName);
+  /* got the data: map it to locals */
+  this->numFrames = this->header->numFrames;
+  this->numVertices = this->header->numVertices;
+  this->numTriangles = this->header->numTriangles;
+  this->numGLCommands = this->header->numGlCommands;
+  /* allocate memory for the data storage */
+  this->pVertices = new sVec3D[this->numVertices * this->numFrames];
+  this->pGLCommands = new int[this->numGLCommands];
+  this->pLightNormals = new int[this->numVertices * this->numFrames];
+  buffer = new char[this->numFrames * this->header->frameSize];
+
+  /* read frame data from the file to a temp buffer */
+  fseek(pFile, this->header->offsetFrames, SEEK_SET);
+  fread(buffer, this->header->frameSize, this->numFrames, pFile);
+  /* read opengl commands */
+  fseek(pFile, this->header->offsetGlCommands, SEEK_SET);
+  fread(this->pGLCommands, sizeof(int), this->numGLCommands, pFile);
+
+  for(int i = 0; i < this->numFrames; ++i)
+    {
+      frame = (sFrame*)(buffer + this->header->frameSize * i); 
+      pVertex = this->pVertices + this->numVertices  * i;
+      pNormals = this->pLightNormals + this->numVertices * i;
+
+      for(int j = 0; j < this->numVertices; ++j)
+	{
+	  /* SPEEDUP: *(pVerts + i + 0) = (*(frame->pVertices + i + 0)...  */
+	  pVertex[j][0] = (frame->pVertices[j].v[0] * frame->scale[0]) + frame->translate[0];
+	  pVertex[j][1] = (frame->pVertices[j].v[2] * frame->scale[2]) + frame->translate[2];
+	  pVertex[j][2] = -1.0 * (frame->pVertices[j].v[1] * frame->scale[1] + frame->translate[1]);
+	  
+	  pNormals[j] = frame->pVertices[j].lightNormalIndex;
+	}
+    }
+
+  delete [] buffer;
+  fclose(pFile);
+}
+
+
+bool MD2Data::loadSkin(const char* fileName)
+{
+  this->skinFileName = new char[strlen(fileName)+1];
+  strcpy(this->skinFileName, fileName);
+
+  this->material = new Material("md2ModelTest");
+  this->material->setDiffuseMap(fileName);
+  this->material->setIllum(3);
+  this->material->setAmbient(1.0, 1.0, 1.0);
+}
Index: orxonox/branches/physics/src/lib/graphics/importer/md2Model.h
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/md2Model.h	(revision 4283)
+++ orxonox/branches/physics/src/lib/graphics/importer/md2Model.h	(revision 4283)
@@ -0,0 +1,175 @@
+/*! 
+    \file md2Model.h
+    \brief Definition of an MD2 Model, a model format invented by ID Software.
+    
+    We are deeply thankfull for all the wunderfull things id software made for us gamers!
+    
+    The md2 file format is structured in a very simple way: it contains animations which are made out of
+    frames (so called keyframes). Each frame is a complete draweable model in a specific position.
+    A frame is a collection of vertex and its compagnions (normals, texture coordinates).
+    
+    A typical model has about 200 frames, the maximum frame count is fixed by MD2_MAX_FRAMES to currently 
+    512 frames. The maximal vetices count is set to 2048 verteces, not enough?
+    You just have to change the MD2_MAX_* values if it doesn't fit your purposes...
+    
+    Surface Culling is fully implemented in md2 models: quake2 uses front face culling.
+*/
+
+#ifndef _MD2MODEL_H
+#define _MD2MODEL_H
+
+#include "abstract_model.h"
+#include "base_object.h"
+#include "stdincl.h"
+
+
+//! These are the needed defines for the max values when loading .MD2 files
+#define MD2_IDENT                       (('2'<<24) + ('P'<<16) + ('D'<<8) + 'I')
+#define MD2_VERSION                     8
+#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)
+
+#define NUM_VERTEX_NORMALS              162
+#define SHADEDOT_QUANT                  16
+
+//! This stores the speed of the animation between each key frame - currently conflicting with the animation framework
+#define kAnimationSpeed			12.0f
+
+//! This holds the header information that is read in at the beginning of the file: id software definition
+struct MD2Header
+{ 
+   int ident;			        //!< 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
+};
+
+
+
+typedef enum 
+  {
+    STAND,
+    RUN,
+    ATTACK,
+    PAIN_A,
+    PAIN_B,
+    PAIN_C,
+    JUMP,
+    FLIP,
+    SALUTE,
+    FALLBACK,
+    WAVE,
+    POINTT,
+    CROUCH_STAND,
+    CROUCH_WALK,
+    CROUCH_ATTACK,
+    CROUCH_PAIN,
+    CROUCH_DEATH, 
+    DEATH_FALLBACK,
+    DEATH_FALLFORWARD,
+    DEATH_FALLBACKSLOW,
+    BOOM,
+  
+    MAX_ANIMATIONS
+  } animType;
+
+
+
+/* forward definitions */
+class Material;
+
+
+
+//! class to store the md2 data in
+class MD2Data
+{
+ public:
+  MD2Data();
+  virtual ~MD2Data();
+
+  bool loadModel(const char* fileName);
+  bool loadSkin(const char* fileName);
+
+  int numFrames;
+  int numVertices;
+  int numTriangles;
+  int numGLCommands;
+  char* fileName;
+  char* skinFileName;
+  MD2Header* header;
+
+  sVec3D* pVertices;
+  int* pGLCommands;
+  int* pLightNormals;
+  glCommandVertex* pGLCommands2;
+
+  Material* material;
+  float scaleFactor;
+};
+
+
+//! This is a MD2 Model class
+class MD2Model : public AbstractModel {
+
+public:
+  MD2Model();
+  virtual ~MD2Model();
+  
+  bool loadModel(const char* filename);
+  bool loadSkin(const char* filename);
+  
+  void drawFrame(int frame);
+  void draw();
+  void draw2();
+  
+  void setAnim(int type);
+  void scaleModel(float scaleFactor) { this->scaleFactor = scaleFactor;}
+
+  void tick(float dtS);
+  void debug();
+
+
+private:
+  void animate();  
+  void processLighting();
+  void interpolate(sVec3D* verticesList);
+  void renderFrame();
+
+ public:
+  /* these variables are static, because they are all the same for every model */
+  static sVec3D anorms[NUM_VERTEX_NORMALS];
+  static float anormsDots[SHADEDOT_QUANT][256];
+  static sAnim animationList[21];
+
+ private:
+  MD2Data* data;
+
+  float scaleFactor;
+  sAnimState animationState;
+};
+
+
+
+
+
+#endif /* _MD2MODEL_H */
Index: orxonox/branches/physics/src/lib/graphics/importer/windowHandler.cc
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/windowHandler.cc	(revision 4274)
+++ 	(revision )
@@ -1,112 +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: ...
-*/
-
-#include "windowHandler.h"
-#include <stdio.h>
-
-/**
-   \brief Resizes the Window
-   \param width the new size in the width.
-   \param height the new size in the height.
-*/
-void WindowHandler::ReSizeGLScene(GLsizei width, GLsizei height) // Resize And Initialize The GL Window
-{
-	if (height==0)	// Prevent A Divide By Zero By
-	{
-		height=1;// Making Height Equal One
-	}
-
-	glViewport(0,0,width,height); // Reset The Current Viewport
-
-	
-	glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
-	glLoadIdentity();	
-
-
-	// Calculate The Aspect Ratio Of The Window
-	gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
-	gluLookAt (0,0,15, 0,0,0, 0,1,0);
-
-	glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
-	glLoadIdentity(); // Reset The Modelview Matrix
-
-}
-
-/**
-   \brief initializes openGL
-*/
-int WindowHandler::InitGL(GLvoid)										// All Setup For OpenGL Goes Here
-{
-	glEnable(GL_TEXTURE_2D); // Enable Texture Mapping
-	glShadeModel(GL_SMOOTH); // Enable Smooth Shading
-	glClearColor(0.00f, 0.00f, 0.00f, 0.0f); // Black Background
-	glClearDepth(1.0f);  // Depth Buffer Setup
-	glEnable(GL_DEPTH_TEST); // Enables Depth Testing
-	glDepthFunc(GL_LEQUAL);	// The Type Of Depth Testing To Do
-	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);  // Really Nice Perspective Calculations
-
-    return TRUE;
-}
-
-/**
-   \brief kills the window
-*/
-GLvoid WindowHandler::KillGLWindow(GLvoid) // Properly Kill The Window
-{
-	SDL_Quit();
-}
-
-/**
-   \brief creates a new Window for the scene
-   \param title the name of the Window
-   \param width the width of the window
-   \param height the height of the window
-   \param bits the bits per pixel to use
-   \param fullscreenflag TRUE if fullscreen FALSE if windowed/
-   \returns FALSE if initialisation failed, TRUE otherwise
-*/
-BOOL WindowHandler::CreateGLWindow(char* title, int width, int height, int bits, BOOL fullscreenflag)
-{
-	Uint32 flags;
-	int size;
-
-	/* Initialize SDL */
-	if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
-		fprintf(stderr, "Couldn't init SDL: %s\n", SDL_GetError());
-		return FALSE;
-	}
-
-	flags = SDL_OPENGL;
-	if ( fullscreenflag ) {
-		flags |= SDL_FULLSCREEN;
-	}
-	SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 1 );
-	if ( (screen = SDL_SetVideoMode(width, height, 0, flags)) == NULL ) {
-		return FALSE;
-	}
-	SDL_GL_GetAttribute( SDL_GL_STENCIL_SIZE, &size);
-
-	ReSizeGLScene(width, height); // Set Up Our Perspective GL Screen
-
-	if (!InitGL()) // Initialize Our Newly Created GL Window
-	{
-	  KillGLWindow();  // Reset The Display
-	  return FALSE;
-	}
-
-	return TRUE;
-}
-
-
Index: orxonox/branches/physics/src/lib/graphics/importer/windowHandler.h
===================================================================
--- orxonox/branches/physics/src/lib/graphics/importer/windowHandler.h	(revision 4274)
+++ 	(revision )
@@ -1,41 +1,0 @@
-/*!
-  \file windowHandler.h
-  \brief contains the WindowHandler class for the minimal display system
-*/
-
-
-#ifndef _WINDOWHANDLER_H
-#define _WINDOWHANDLER_H
-
-#include "stdincl.h"
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <math.h>
-
-#ifdef __WIN32__
-#include <windows.h>
-#endif /* __WIN32__ */
-
-#define TRUE 1     //!< define true
-#define FALSE 0    //!< define false
-#define BOOL int   //!< define BOOL
-
-//! A simple class to handle a minimal display system
-class WindowHandler
-{
-  public:
-    WindowHandler() { };
-    ~WindowHandler() { };
-    GLvoid KillGLWindow(GLvoid);
-    BOOL CreateGLWindow(char* title, int width, int height, int bits, BOOL fullscreenflag);
-    SDL_Surface* screen;   //!< The screen to which to display the rendered stuff
-  private:
-    int InitGL(GLvoid);
-    void ReSizeGLScene(GLsizei width, GLsizei height);  
-};
-
-
-#endif
Index: orxonox/branches/physics/src/lib/gui/Makefile.in
===================================================================
--- orxonox/branches/physics/src/lib/gui/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/lib/gui/Makefile.in	(revision 4283)
@@ -179,7 +179,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/gui/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/gui/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/gui/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/gui/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/physics/src/lib/gui/console/Makefile.in
===================================================================
--- orxonox/branches/physics/src/lib/gui/console/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/lib/gui/console/Makefile.in	(revision 4283)
@@ -205,7 +205,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/gui/console/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/gui/console/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/gui/console/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/gui/console/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/physics/src/lib/gui/gui/Makefile.am
===================================================================
--- orxonox/branches/physics/src/lib/gui/gui/Makefile.am	(revision 4274)
+++ orxonox/branches/physics/src/lib/gui/gui/Makefile.am	(revision 4283)
@@ -1,5 +1,4 @@
 MAINSRCDIR=../../..
-AM_CXXFLAGS=$(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
-AM_CXXFLAGS+=-I$(MAINSRCDIR)
+AM_CXXFLAGS=-I$(MAINSRCDIR)
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/world_entities
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/story_entities
@@ -22,58 +21,33 @@
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/common
 
-#AM_LDFLAGS=$(GTK2_LIBS)   $(GTHREAD_LIBS)
 AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
 
-bin_PROGRAMS=gui
-gui_SOURCES=gui_main.cc \
-	    gui.cc \
-	    gui_gtk.cc \
-	    gui_element.cc \
-	    gui_video.cc \
-	    gui_audio.cc \
-	    gui_exec.cc \
-	    gui_flags.cc \
-	    gui_banner.cc \
-	    gui_keys.cc \
-	    gui_update.cc \
-		  $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
-		  $(MAINSRCDIR)/lib/lang/base_object.cc \
-		  $(MAINSRCDIR)/lib/math/vector.cc \
-		  $(MAINSRCDIR)/util/resource_manager.cc \
-		  $(MAINSRCDIR)/lib/graphics/text_engine.cc \
-		  $(MAINSRCDIR)/lib/coord/p_node.cc \
-		  $(MAINSRCDIR)/lib/coord/null_parent.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/array.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/model.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/objModel.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/material.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/texture.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc 
+noinst_LIBRARIES = libORXgui.a 
 
-noinst_HEADERS=gui.h \
-	    gui_gtk.h \
-	    gui_element.h \
-	    gui_video.h \
-	    gui_audio.h \
-	    gui_exec.h \
-	    gui_flags.h \
-	    gui_banner.h \
-	    gui_keys.h \
-	    gui_update.h
+libORXgui_a_CPPFLAGS=$(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
 
-#  uncomment the following if orxonox requires the mathlibrary
-#gui_LDADD=-lm
+libORXgui_a_SOURCES = gui.cc \
+		      gui_gtk.cc \
+	              gui_element.cc \
+	       	      gui_video.cc \
+	              gui_audio.cc \
+	              gui_exec.cc \
+	              gui_flags.cc \
+	              gui_banner.cc \
+	              gui_keys.cc \
+	              gui_update.cc
 
-#EXTRA_DIST=orxonox.lsm.in orxonox.spec.in orxonox.texinfo
+noinst_HEADERS= gui.h \
+	        gui_gtk.h \
+	        gui_element.h \
+	        gui_video.h \
+	        gui_audio.h \
+	        gui_exec.h \
+	        gui_flags.h \
+	        gui_banner.h \
+	        gui_keys.h \
+	        gui_update.h
 
-#  if you write a self-test script named `chk', uncomment the
-#  following and add `chk' to the EXTRA_DIST list
-#TESTS=chk
-EXTRA_DIST = rc banner.xpm
-
-#  build and install the .info pages
-#info_TEXINFOS = orxonox.texinfo
-#orxonox_TEXINFOS = gpl.texinfo
-
-#  install the man pages
-#man_MANS=orxonox.1
+EXTRA_DIST = rc \
+	     banner.xpm \
+	     logo.xpm
Index: orxonox/branches/physics/src/lib/gui/gui/Makefile.in
===================================================================
--- orxonox/branches/physics/src/lib/gui/gui/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/lib/gui/gui/Makefile.in	(revision 4283)
@@ -16,5 +16,5 @@
 
 
-SOURCES = $(gui_SOURCES)
+SOURCES = $(libORXgui_a_SOURCES)
 
 srcdir = @srcdir@
@@ -39,5 +39,4 @@
 POST_UNINSTALL = :
 host_triplet = @host@
-bin_PROGRAMS = gui$(EXEEXT)
 subdir = src/lib/gui/gui
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
@@ -50,36 +49,32 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS)
-am_gui_OBJECTS = gui_main.$(OBJEXT) gui.$(OBJEXT) gui_gtk.$(OBJEXT) \
-	gui_element.$(OBJEXT) gui_video.$(OBJEXT) gui_audio.$(OBJEXT) \
-	gui_exec.$(OBJEXT) gui_flags.$(OBJEXT) gui_banner.$(OBJEXT) \
-	gui_keys.$(OBJEXT) gui_update.$(OBJEXT) \
-	graphics_engine.$(OBJEXT) base_object.$(OBJEXT) \
-	vector.$(OBJEXT) resource_manager.$(OBJEXT) \
-	text_engine.$(OBJEXT) p_node.$(OBJEXT) null_parent.$(OBJEXT) \
-	array.$(OBJEXT) model.$(OBJEXT) objModel.$(OBJEXT) \
-	material.$(OBJEXT) texture.$(OBJEXT) primitive_model.$(OBJEXT)
-gui_OBJECTS = $(am_gui_OBJECTS)
-gui_LDADD = $(LDADD)
+LIBRARIES = $(noinst_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+libORXgui_a_AR = $(AR) $(ARFLAGS)
+libORXgui_a_LIBADD =
+am_libORXgui_a_OBJECTS = libORXgui_a-gui.$(OBJEXT) \
+	libORXgui_a-gui_gtk.$(OBJEXT) \
+	libORXgui_a-gui_element.$(OBJEXT) \
+	libORXgui_a-gui_video.$(OBJEXT) \
+	libORXgui_a-gui_audio.$(OBJEXT) libORXgui_a-gui_exec.$(OBJEXT) \
+	libORXgui_a-gui_flags.$(OBJEXT) \
+	libORXgui_a-gui_banner.$(OBJEXT) \
+	libORXgui_a-gui_keys.$(OBJEXT) \
+	libORXgui_a-gui_update.$(OBJEXT)
+libORXgui_a_OBJECTS = $(am_libORXgui_a_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/array.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/base_object.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/graphics_engine.Po ./$(DEPDIR)/gui.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/gui_audio.Po ./$(DEPDIR)/gui_banner.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/gui_element.Po ./$(DEPDIR)/gui_exec.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/gui_flags.Po ./$(DEPDIR)/gui_gtk.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/gui_keys.Po ./$(DEPDIR)/gui_main.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/gui_update.Po ./$(DEPDIR)/gui_video.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/material.Po ./$(DEPDIR)/model.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/null_parent.Po ./$(DEPDIR)/objModel.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/p_node.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/primitive_model.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/resource_manager.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/text_engine.Po ./$(DEPDIR)/texture.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/vector.Po
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/libORXgui_a-gui.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_audio.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_banner.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_element.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_exec.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_flags.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_gtk.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_keys.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_update.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXgui_a-gui_video.Po
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
@@ -87,6 +82,6 @@
 CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-SOURCES = $(gui_SOURCES)
-DIST_SOURCES = $(gui_SOURCES)
+SOURCES = $(libORXgui_a_SOURCES)
+DIST_SOURCES = $(libORXgui_a_SOURCES)
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
@@ -202,54 +197,34 @@
 target_vendor = @target_vendor@
 MAINSRCDIR = ../../..
-AM_CXXFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS) -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common
-
-#AM_LDFLAGS=$(GTK2_LIBS)   $(GTHREAD_LIBS)
+AM_CXXFLAGS = -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common
 AM_LDFLAGS = $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
-gui_SOURCES = gui_main.cc \
-	    gui.cc \
-	    gui_gtk.cc \
-	    gui_element.cc \
-	    gui_video.cc \
-	    gui_audio.cc \
-	    gui_exec.cc \
-	    gui_flags.cc \
-	    gui_banner.cc \
-	    gui_keys.cc \
-	    gui_update.cc \
-		  $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
-		  $(MAINSRCDIR)/lib/lang/base_object.cc \
-		  $(MAINSRCDIR)/lib/math/vector.cc \
-		  $(MAINSRCDIR)/util/resource_manager.cc \
-		  $(MAINSRCDIR)/lib/graphics/text_engine.cc \
-		  $(MAINSRCDIR)/lib/coord/p_node.cc \
-		  $(MAINSRCDIR)/lib/coord/null_parent.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/array.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/model.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/objModel.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/material.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/texture.cc \
-		  $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc 
+noinst_LIBRARIES = libORXgui.a 
+libORXgui_a_CPPFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
+libORXgui_a_SOURCES = gui.cc \
+		      gui_gtk.cc \
+	              gui_element.cc \
+	       	      gui_video.cc \
+	              gui_audio.cc \
+	              gui_exec.cc \
+	              gui_flags.cc \
+	              gui_banner.cc \
+	              gui_keys.cc \
+	              gui_update.cc
 
 noinst_HEADERS = gui.h \
-	    gui_gtk.h \
-	    gui_element.h \
-	    gui_video.h \
-	    gui_audio.h \
-	    gui_exec.h \
-	    gui_flags.h \
-	    gui_banner.h \
-	    gui_keys.h \
-	    gui_update.h
-
-
-#  uncomment the following if orxonox requires the mathlibrary
-#gui_LDADD=-lm
-
-#EXTRA_DIST=orxonox.lsm.in orxonox.spec.in orxonox.texinfo
-
-#  if you write a self-test script named `chk', uncomment the
-#  following and add `chk' to the EXTRA_DIST list
-#TESTS=chk
-EXTRA_DIST = rc banner.xpm
+	        gui_gtk.h \
+	        gui_element.h \
+	        gui_video.h \
+	        gui_audio.h \
+	        gui_exec.h \
+	        gui_flags.h \
+	        gui_banner.h \
+	        gui_keys.h \
+	        gui_update.h
+
+EXTRA_DIST = rc \
+	     banner.xpm \
+	     logo.xpm
+
 all: all-am
 
@@ -265,7 +240,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/gui/gui/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/gui/gui/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/gui/gui/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/gui/gui/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -285,30 +260,11 @@
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-gui$(EXEEXT): $(gui_OBJECTS) $(gui_DEPENDENCIES) 
-	@rm -f gui$(EXEEXT)
-	$(CXXLINK) $(gui_LDFLAGS) $(gui_OBJECTS) $(gui_LDADD) $(LIBS)
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libORXgui.a: $(libORXgui_a_OBJECTS) $(libORXgui_a_DEPENDENCIES) 
+	-rm -f libORXgui.a
+	$(libORXgui_a_AR) libORXgui.a $(libORXgui_a_OBJECTS) $(libORXgui_a_LIBADD)
+	$(RANLIB) libORXgui.a
 
 mostlyclean-compile:
@@ -318,28 +274,14 @@
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base_object.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graphics_engine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_audio.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_banner.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_element.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_exec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_flags.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_gtk.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_keys.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_update.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_video.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/material.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/model.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/null_parent.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objModel.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p_node.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/primitive_model.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource_manager.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text_engine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_audio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_banner.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_element.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_exec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_flags.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_gtk.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_keys.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_update.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXgui_a-gui_video.Po@am__quote@
 
 .cc.o:
@@ -359,211 +301,163 @@
 @am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
-graphics_engine.o: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.o -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/graphics_engine.Tpo" "$(DEPDIR)/graphics_engine.Po"; else rm -f "$(DEPDIR)/graphics_engine.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='graphics_engine.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/graphics_engine.Po' tmpdepfile='$(DEPDIR)/graphics_engine.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc
-
-graphics_engine.obj: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.obj -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/graphics_engine.Tpo" "$(DEPDIR)/graphics_engine.Po"; else rm -f "$(DEPDIR)/graphics_engine.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='graphics_engine.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/graphics_engine.Po' tmpdepfile='$(DEPDIR)/graphics_engine.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`
-
-base_object.o: $(MAINSRCDIR)/lib/lang/base_object.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT base_object.o -MD -MP -MF "$(DEPDIR)/base_object.Tpo" -c -o base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/base_object.Tpo" "$(DEPDIR)/base_object.Po"; else rm -f "$(DEPDIR)/base_object.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='base_object.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/base_object.Po' tmpdepfile='$(DEPDIR)/base_object.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc
-
-base_object.obj: $(MAINSRCDIR)/lib/lang/base_object.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT base_object.obj -MD -MP -MF "$(DEPDIR)/base_object.Tpo" -c -o base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/base_object.Tpo" "$(DEPDIR)/base_object.Po"; else rm -f "$(DEPDIR)/base_object.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='base_object.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/base_object.Po' tmpdepfile='$(DEPDIR)/base_object.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`
-
-vector.o: $(MAINSRCDIR)/lib/math/vector.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vector.o -MD -MP -MF "$(DEPDIR)/vector.Tpo" -c -o vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/vector.Tpo" "$(DEPDIR)/vector.Po"; else rm -f "$(DEPDIR)/vector.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='vector.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/vector.Po' tmpdepfile='$(DEPDIR)/vector.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc
-
-vector.obj: $(MAINSRCDIR)/lib/math/vector.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vector.obj -MD -MP -MF "$(DEPDIR)/vector.Tpo" -c -o vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/vector.Tpo" "$(DEPDIR)/vector.Po"; else rm -f "$(DEPDIR)/vector.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='vector.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/vector.Po' tmpdepfile='$(DEPDIR)/vector.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`
-
-resource_manager.o: $(MAINSRCDIR)/util/resource_manager.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.o -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='resource_manager.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc
-
-resource_manager.obj: $(MAINSRCDIR)/util/resource_manager.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.obj -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='resource_manager.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`
-
-text_engine.o: $(MAINSRCDIR)/lib/graphics/text_engine.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT text_engine.o -MD -MP -MF "$(DEPDIR)/text_engine.Tpo" -c -o text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/text_engine.Tpo" "$(DEPDIR)/text_engine.Po"; else rm -f "$(DEPDIR)/text_engine.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='text_engine.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/text_engine.Po' tmpdepfile='$(DEPDIR)/text_engine.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc
-
-text_engine.obj: $(MAINSRCDIR)/lib/graphics/text_engine.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT text_engine.obj -MD -MP -MF "$(DEPDIR)/text_engine.Tpo" -c -o text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/text_engine.Tpo" "$(DEPDIR)/text_engine.Po"; else rm -f "$(DEPDIR)/text_engine.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='text_engine.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/text_engine.Po' tmpdepfile='$(DEPDIR)/text_engine.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`
-
-p_node.o: $(MAINSRCDIR)/lib/coord/p_node.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT p_node.o -MD -MP -MF "$(DEPDIR)/p_node.Tpo" -c -o p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/p_node.Tpo" "$(DEPDIR)/p_node.Po"; else rm -f "$(DEPDIR)/p_node.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='p_node.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/p_node.Po' tmpdepfile='$(DEPDIR)/p_node.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc
-
-p_node.obj: $(MAINSRCDIR)/lib/coord/p_node.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT p_node.obj -MD -MP -MF "$(DEPDIR)/p_node.Tpo" -c -o p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/p_node.Tpo" "$(DEPDIR)/p_node.Po"; else rm -f "$(DEPDIR)/p_node.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='p_node.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/p_node.Po' tmpdepfile='$(DEPDIR)/p_node.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`
-
-null_parent.o: $(MAINSRCDIR)/lib/coord/null_parent.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT null_parent.o -MD -MP -MF "$(DEPDIR)/null_parent.Tpo" -c -o null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/null_parent.Tpo" "$(DEPDIR)/null_parent.Po"; else rm -f "$(DEPDIR)/null_parent.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='null_parent.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/null_parent.Po' tmpdepfile='$(DEPDIR)/null_parent.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc
-
-null_parent.obj: $(MAINSRCDIR)/lib/coord/null_parent.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT null_parent.obj -MD -MP -MF "$(DEPDIR)/null_parent.Tpo" -c -o null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/null_parent.Tpo" "$(DEPDIR)/null_parent.Po"; else rm -f "$(DEPDIR)/null_parent.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='null_parent.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/null_parent.Po' tmpdepfile='$(DEPDIR)/null_parent.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`
-
-array.o: $(MAINSRCDIR)/lib/graphics/importer/array.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.o -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/array.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/array.cc' object='array.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/array.cc
-
-array.obj: $(MAINSRCDIR)/lib/graphics/importer/array.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.obj -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/array.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/array.cc' object='array.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/array.cc'; fi`
-
-model.o: $(MAINSRCDIR)/lib/graphics/importer/model.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT model.o -MD -MP -MF "$(DEPDIR)/model.Tpo" -c -o model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/model.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/model.Tpo" "$(DEPDIR)/model.Po"; else rm -f "$(DEPDIR)/model.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/model.cc' object='model.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/model.Po' tmpdepfile='$(DEPDIR)/model.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/model.cc
-
-model.obj: $(MAINSRCDIR)/lib/graphics/importer/model.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT model.obj -MD -MP -MF "$(DEPDIR)/model.Tpo" -c -o model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/model.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/model.Tpo" "$(DEPDIR)/model.Po"; else rm -f "$(DEPDIR)/model.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/model.cc' object='model.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/model.Po' tmpdepfile='$(DEPDIR)/model.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/model.cc'; fi`
-
-objModel.o: $(MAINSRCDIR)/lib/graphics/importer/objModel.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT objModel.o -MD -MP -MF "$(DEPDIR)/objModel.Tpo" -c -o objModel.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/objModel.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/objModel.Tpo" "$(DEPDIR)/objModel.Po"; else rm -f "$(DEPDIR)/objModel.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' object='objModel.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/objModel.Po' tmpdepfile='$(DEPDIR)/objModel.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o objModel.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/objModel.cc
-
-objModel.obj: $(MAINSRCDIR)/lib/graphics/importer/objModel.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT objModel.obj -MD -MP -MF "$(DEPDIR)/objModel.Tpo" -c -o objModel.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/objModel.Tpo" "$(DEPDIR)/objModel.Po"; else rm -f "$(DEPDIR)/objModel.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' object='objModel.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/objModel.Po' tmpdepfile='$(DEPDIR)/objModel.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o objModel.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; fi`
-
-material.o: $(MAINSRCDIR)/lib/graphics/importer/material.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.o -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/material.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/material.cc' object='material.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/material.cc
-
-material.obj: $(MAINSRCDIR)/lib/graphics/importer/material.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.obj -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/material.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/material.cc' object='material.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/material.cc'; fi`
-
-texture.o: $(MAINSRCDIR)/lib/graphics/importer/texture.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT texture.o -MD -MP -MF "$(DEPDIR)/texture.Tpo" -c -o texture.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/texture.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/texture.Tpo" "$(DEPDIR)/texture.Po"; else rm -f "$(DEPDIR)/texture.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/texture.cc' object='texture.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/texture.Po' tmpdepfile='$(DEPDIR)/texture.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o texture.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/texture.cc
-
-texture.obj: $(MAINSRCDIR)/lib/graphics/importer/texture.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT texture.obj -MD -MP -MF "$(DEPDIR)/texture.Tpo" -c -o texture.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/texture.Tpo" "$(DEPDIR)/texture.Po"; else rm -f "$(DEPDIR)/texture.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/texture.cc' object='texture.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/texture.Po' tmpdepfile='$(DEPDIR)/texture.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o texture.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; fi`
-
-primitive_model.o: $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT primitive_model.o -MD -MP -MF "$(DEPDIR)/primitive_model.Tpo" -c -o primitive_model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/primitive_model.Tpo" "$(DEPDIR)/primitive_model.Po"; else rm -f "$(DEPDIR)/primitive_model.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' object='primitive_model.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/primitive_model.Po' tmpdepfile='$(DEPDIR)/primitive_model.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o primitive_model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
-
-primitive_model.obj: $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT primitive_model.obj -MD -MP -MF "$(DEPDIR)/primitive_model.Tpo" -c -o primitive_model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; fi`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/primitive_model.Tpo" "$(DEPDIR)/primitive_model.Po"; else rm -f "$(DEPDIR)/primitive_model.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' object='primitive_model.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/primitive_model.Po' tmpdepfile='$(DEPDIR)/primitive_model.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o primitive_model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; fi`
+libORXgui_a-gui.o: gui.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui.Tpo" -c -o libORXgui_a-gui.o `test -f 'gui.cc' || echo '$(srcdir)/'`gui.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui.Tpo" "$(DEPDIR)/libORXgui_a-gui.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui.cc' object='libORXgui_a-gui.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui.o `test -f 'gui.cc' || echo '$(srcdir)/'`gui.cc
+
+libORXgui_a-gui.obj: gui.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui.Tpo" -c -o libORXgui_a-gui.obj `if test -f 'gui.cc'; then $(CYGPATH_W) 'gui.cc'; else $(CYGPATH_W) '$(srcdir)/gui.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui.Tpo" "$(DEPDIR)/libORXgui_a-gui.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui.cc' object='libORXgui_a-gui.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui.obj `if test -f 'gui.cc'; then $(CYGPATH_W) 'gui.cc'; else $(CYGPATH_W) '$(srcdir)/gui.cc'; fi`
+
+libORXgui_a-gui_gtk.o: gui_gtk.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_gtk.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo" -c -o libORXgui_a-gui_gtk.o `test -f 'gui_gtk.cc' || echo '$(srcdir)/'`gui_gtk.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo" "$(DEPDIR)/libORXgui_a-gui_gtk.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_gtk.cc' object='libORXgui_a-gui_gtk.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_gtk.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_gtk.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_gtk.o `test -f 'gui_gtk.cc' || echo '$(srcdir)/'`gui_gtk.cc
+
+libORXgui_a-gui_gtk.obj: gui_gtk.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_gtk.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo" -c -o libORXgui_a-gui_gtk.obj `if test -f 'gui_gtk.cc'; then $(CYGPATH_W) 'gui_gtk.cc'; else $(CYGPATH_W) '$(srcdir)/gui_gtk.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo" "$(DEPDIR)/libORXgui_a-gui_gtk.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_gtk.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_gtk.cc' object='libORXgui_a-gui_gtk.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_gtk.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_gtk.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_gtk.obj `if test -f 'gui_gtk.cc'; then $(CYGPATH_W) 'gui_gtk.cc'; else $(CYGPATH_W) '$(srcdir)/gui_gtk.cc'; fi`
+
+libORXgui_a-gui_element.o: gui_element.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_element.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_element.Tpo" -c -o libORXgui_a-gui_element.o `test -f 'gui_element.cc' || echo '$(srcdir)/'`gui_element.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_element.Tpo" "$(DEPDIR)/libORXgui_a-gui_element.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_element.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_element.cc' object='libORXgui_a-gui_element.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_element.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_element.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_element.o `test -f 'gui_element.cc' || echo '$(srcdir)/'`gui_element.cc
+
+libORXgui_a-gui_element.obj: gui_element.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_element.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_element.Tpo" -c -o libORXgui_a-gui_element.obj `if test -f 'gui_element.cc'; then $(CYGPATH_W) 'gui_element.cc'; else $(CYGPATH_W) '$(srcdir)/gui_element.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_element.Tpo" "$(DEPDIR)/libORXgui_a-gui_element.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_element.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_element.cc' object='libORXgui_a-gui_element.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_element.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_element.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_element.obj `if test -f 'gui_element.cc'; then $(CYGPATH_W) 'gui_element.cc'; else $(CYGPATH_W) '$(srcdir)/gui_element.cc'; fi`
+
+libORXgui_a-gui_video.o: gui_video.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_video.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_video.Tpo" -c -o libORXgui_a-gui_video.o `test -f 'gui_video.cc' || echo '$(srcdir)/'`gui_video.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_video.Tpo" "$(DEPDIR)/libORXgui_a-gui_video.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_video.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_video.cc' object='libORXgui_a-gui_video.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_video.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_video.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_video.o `test -f 'gui_video.cc' || echo '$(srcdir)/'`gui_video.cc
+
+libORXgui_a-gui_video.obj: gui_video.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_video.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_video.Tpo" -c -o libORXgui_a-gui_video.obj `if test -f 'gui_video.cc'; then $(CYGPATH_W) 'gui_video.cc'; else $(CYGPATH_W) '$(srcdir)/gui_video.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_video.Tpo" "$(DEPDIR)/libORXgui_a-gui_video.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_video.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_video.cc' object='libORXgui_a-gui_video.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_video.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_video.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_video.obj `if test -f 'gui_video.cc'; then $(CYGPATH_W) 'gui_video.cc'; else $(CYGPATH_W) '$(srcdir)/gui_video.cc'; fi`
+
+libORXgui_a-gui_audio.o: gui_audio.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_audio.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_audio.Tpo" -c -o libORXgui_a-gui_audio.o `test -f 'gui_audio.cc' || echo '$(srcdir)/'`gui_audio.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_audio.Tpo" "$(DEPDIR)/libORXgui_a-gui_audio.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_audio.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_audio.cc' object='libORXgui_a-gui_audio.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_audio.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_audio.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_audio.o `test -f 'gui_audio.cc' || echo '$(srcdir)/'`gui_audio.cc
+
+libORXgui_a-gui_audio.obj: gui_audio.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_audio.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_audio.Tpo" -c -o libORXgui_a-gui_audio.obj `if test -f 'gui_audio.cc'; then $(CYGPATH_W) 'gui_audio.cc'; else $(CYGPATH_W) '$(srcdir)/gui_audio.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_audio.Tpo" "$(DEPDIR)/libORXgui_a-gui_audio.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_audio.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_audio.cc' object='libORXgui_a-gui_audio.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_audio.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_audio.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_audio.obj `if test -f 'gui_audio.cc'; then $(CYGPATH_W) 'gui_audio.cc'; else $(CYGPATH_W) '$(srcdir)/gui_audio.cc'; fi`
+
+libORXgui_a-gui_exec.o: gui_exec.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_exec.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_exec.Tpo" -c -o libORXgui_a-gui_exec.o `test -f 'gui_exec.cc' || echo '$(srcdir)/'`gui_exec.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_exec.Tpo" "$(DEPDIR)/libORXgui_a-gui_exec.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_exec.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_exec.cc' object='libORXgui_a-gui_exec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_exec.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_exec.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_exec.o `test -f 'gui_exec.cc' || echo '$(srcdir)/'`gui_exec.cc
+
+libORXgui_a-gui_exec.obj: gui_exec.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_exec.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_exec.Tpo" -c -o libORXgui_a-gui_exec.obj `if test -f 'gui_exec.cc'; then $(CYGPATH_W) 'gui_exec.cc'; else $(CYGPATH_W) '$(srcdir)/gui_exec.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_exec.Tpo" "$(DEPDIR)/libORXgui_a-gui_exec.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_exec.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_exec.cc' object='libORXgui_a-gui_exec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_exec.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_exec.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_exec.obj `if test -f 'gui_exec.cc'; then $(CYGPATH_W) 'gui_exec.cc'; else $(CYGPATH_W) '$(srcdir)/gui_exec.cc'; fi`
+
+libORXgui_a-gui_flags.o: gui_flags.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_flags.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_flags.Tpo" -c -o libORXgui_a-gui_flags.o `test -f 'gui_flags.cc' || echo '$(srcdir)/'`gui_flags.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_flags.Tpo" "$(DEPDIR)/libORXgui_a-gui_flags.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_flags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_flags.cc' object='libORXgui_a-gui_flags.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_flags.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_flags.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_flags.o `test -f 'gui_flags.cc' || echo '$(srcdir)/'`gui_flags.cc
+
+libORXgui_a-gui_flags.obj: gui_flags.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_flags.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_flags.Tpo" -c -o libORXgui_a-gui_flags.obj `if test -f 'gui_flags.cc'; then $(CYGPATH_W) 'gui_flags.cc'; else $(CYGPATH_W) '$(srcdir)/gui_flags.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_flags.Tpo" "$(DEPDIR)/libORXgui_a-gui_flags.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_flags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_flags.cc' object='libORXgui_a-gui_flags.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_flags.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_flags.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_flags.obj `if test -f 'gui_flags.cc'; then $(CYGPATH_W) 'gui_flags.cc'; else $(CYGPATH_W) '$(srcdir)/gui_flags.cc'; fi`
+
+libORXgui_a-gui_banner.o: gui_banner.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_banner.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_banner.Tpo" -c -o libORXgui_a-gui_banner.o `test -f 'gui_banner.cc' || echo '$(srcdir)/'`gui_banner.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_banner.Tpo" "$(DEPDIR)/libORXgui_a-gui_banner.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_banner.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_banner.cc' object='libORXgui_a-gui_banner.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_banner.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_banner.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_banner.o `test -f 'gui_banner.cc' || echo '$(srcdir)/'`gui_banner.cc
+
+libORXgui_a-gui_banner.obj: gui_banner.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_banner.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_banner.Tpo" -c -o libORXgui_a-gui_banner.obj `if test -f 'gui_banner.cc'; then $(CYGPATH_W) 'gui_banner.cc'; else $(CYGPATH_W) '$(srcdir)/gui_banner.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_banner.Tpo" "$(DEPDIR)/libORXgui_a-gui_banner.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_banner.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_banner.cc' object='libORXgui_a-gui_banner.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_banner.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_banner.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_banner.obj `if test -f 'gui_banner.cc'; then $(CYGPATH_W) 'gui_banner.cc'; else $(CYGPATH_W) '$(srcdir)/gui_banner.cc'; fi`
+
+libORXgui_a-gui_keys.o: gui_keys.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_keys.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_keys.Tpo" -c -o libORXgui_a-gui_keys.o `test -f 'gui_keys.cc' || echo '$(srcdir)/'`gui_keys.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_keys.Tpo" "$(DEPDIR)/libORXgui_a-gui_keys.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_keys.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_keys.cc' object='libORXgui_a-gui_keys.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_keys.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_keys.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_keys.o `test -f 'gui_keys.cc' || echo '$(srcdir)/'`gui_keys.cc
+
+libORXgui_a-gui_keys.obj: gui_keys.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_keys.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_keys.Tpo" -c -o libORXgui_a-gui_keys.obj `if test -f 'gui_keys.cc'; then $(CYGPATH_W) 'gui_keys.cc'; else $(CYGPATH_W) '$(srcdir)/gui_keys.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_keys.Tpo" "$(DEPDIR)/libORXgui_a-gui_keys.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_keys.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_keys.cc' object='libORXgui_a-gui_keys.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_keys.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_keys.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_keys.obj `if test -f 'gui_keys.cc'; then $(CYGPATH_W) 'gui_keys.cc'; else $(CYGPATH_W) '$(srcdir)/gui_keys.cc'; fi`
+
+libORXgui_a-gui_update.o: gui_update.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_update.o -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_update.Tpo" -c -o libORXgui_a-gui_update.o `test -f 'gui_update.cc' || echo '$(srcdir)/'`gui_update.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_update.Tpo" "$(DEPDIR)/libORXgui_a-gui_update.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_update.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_update.cc' object='libORXgui_a-gui_update.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_update.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_update.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_update.o `test -f 'gui_update.cc' || echo '$(srcdir)/'`gui_update.cc
+
+libORXgui_a-gui_update.obj: gui_update.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXgui_a-gui_update.obj -MD -MP -MF "$(DEPDIR)/libORXgui_a-gui_update.Tpo" -c -o libORXgui_a-gui_update.obj `if test -f 'gui_update.cc'; then $(CYGPATH_W) 'gui_update.cc'; else $(CYGPATH_W) '$(srcdir)/gui_update.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXgui_a-gui_update.Tpo" "$(DEPDIR)/libORXgui_a-gui_update.Po"; else rm -f "$(DEPDIR)/libORXgui_a-gui_update.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gui_update.cc' object='libORXgui_a-gui_update.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXgui_a-gui_update.Po' tmpdepfile='$(DEPDIR)/libORXgui_a-gui_update.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXgui_a-gui_update.obj `if test -f 'gui_update.cc'; then $(CYGPATH_W) 'gui_update.cc'; else $(CYGPATH_W) '$(srcdir)/gui_update.cc'; fi`
 uninstall-info-am:
 
@@ -645,9 +539,6 @@
 check-am: all-am
 check: check-am
-all-am: Makefile $(PROGRAMS) $(HEADERS)
+all-am: Makefile $(LIBRARIES) $(HEADERS)
 installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
 install: install-am
 install-exec: install-exec-am
@@ -676,5 +567,5 @@
 clean: clean-am
 
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
 
 distclean: distclean-am
@@ -696,5 +587,5 @@
 install-data-am:
 
-install-exec-am: install-binPROGRAMS
+install-exec-am:
 
 install-info: install-info-am
@@ -721,24 +612,17 @@
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic ctags distclean distclean-compile \
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES ctags distclean distclean-compile \
 	distclean-generic distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-binPROGRAMS \
-	install-data install-data-am install-exec install-exec-am \
-	install-info install-info-am install-man install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
+	html-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-binPROGRAMS uninstall-info-am
-
-
-#  build and install the .info pages
-#info_TEXINFOS = orxonox.texinfo
-#orxonox_TEXINFOS = gpl.texinfo
-
-#  install the man pages
-#man_MANS=orxonox.1
+	uninstall-am uninstall-info-am
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
Index: orxonox/branches/physics/src/lib/gui/gui/gui_main.cc
===================================================================
--- orxonox/branches/physics/src/lib/gui/gui/gui_main.cc	(revision 4274)
+++ 	(revision )
@@ -1,34 +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.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-
-   ### File Specific:
-   main-programmer: Benjamin Grauer
-
-*/
-
-#include "gui.h"
-
-int verbose = 4;
-
-int main(int argc, char *argv[])
-{
-  Gui* orxonoxgui = new Gui(argc, argv);
-  return 0;
-}
Index: orxonox/branches/physics/src/lib/lang/base_object.cc
===================================================================
--- orxonox/branches/physics/src/lib/lang/base_object.cc	(revision 4274)
+++ orxonox/branches/physics/src/lib/lang/base_object.cc	(revision 4283)
@@ -39,16 +39,10 @@
 BaseObject::~BaseObject () 
 {
-  delete []this->className;
+  //  delete []this->className;
 }
 
-void BaseObject::setClassName (char* className)
+void BaseObject::setClassName (const char* className)
 {
-  this->className = new char[strlen(className)+1];
-  strcpy(this->className, className);
-}
-
-char* BaseObject::getClassName(void) const
-{
-  return className;
+  this->className = className;
 }
 
Index: orxonox/branches/physics/src/lib/lang/base_object.h
===================================================================
--- orxonox/branches/physics/src/lib/lang/base_object.h	(revision 4274)
+++ orxonox/branches/physics/src/lib/lang/base_object.h	(revision 4283)
@@ -17,6 +17,6 @@
   virtual ~BaseObject ();
 
-  void setClassName (char* className);
-  char* getClassName(void) const;
+  void setClassName (const char* className);
+  inline const char* getClassName(void) const { return this->className;};
   bool isA (char* className);
 
@@ -25,5 +25,5 @@
 
  private:
-  char* className;
+  const char* className;
   bool finalized;
 };
Index: orxonox/branches/physics/src/lib/tinyxml/Makefile.am
===================================================================
--- orxonox/branches/physics/src/lib/tinyxml/Makefile.am	(revision 4283)
+++ orxonox/branches/physics/src/lib/tinyxml/Makefile.am	(revision 4283)
@@ -0,0 +1,9 @@
+noinst_LIBRARIES = libtinyxml.a 
+
+libtinyxml_a_SOURCES = tinyxml.cc \
+		       tinystr.cc \
+		       tinyxmlerror.cc \
+		       tinyxmlparser.cc
+
+noinst_HEADERS= tinyxml.h \
+		tinystr.h
Index: orxonox/branches/physics/src/lib/tinyxml/Makefile.in
===================================================================
--- orxonox/branches/physics/src/lib/tinyxml/Makefile.in	(revision 4283)
+++ orxonox/branches/physics/src/lib/tinyxml/Makefile.in	(revision 4283)
@@ -0,0 +1,427 @@
+# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+SOURCES = $(libtinyxml_a_SOURCES)
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+subdir = src/lib/tinyxml
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+libtinyxml_a_AR = $(AR) $(ARFLAGS)
+libtinyxml_a_LIBADD =
+am_libtinyxml_a_OBJECTS = tinyxml.$(OBJEXT) tinystr.$(OBJEXT) \
+	tinyxmlerror.$(OBJEXT) tinyxmlparser.$(OBJEXT)
+libtinyxml_a_OBJECTS = $(am_libtinyxml_a_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/tinystr.Po ./$(DEPDIR)/tinyxml.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/tinyxmlerror.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/tinyxmlparser.Po
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+SOURCES = $(libtinyxml_a_SOURCES)
+DIST_SOURCES = $(libtinyxml_a_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG = @DEBUG@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCUMENTATION_FALSE = @DOCUMENTATION_FALSE@
+DOCUMENTATION_TRUE = @DOCUMENTATION_TRUE@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_FALSE = @DOXYGEN_FALSE@
+DOXYGEN_TRUE = @DOXYGEN_TRUE@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GPROF = @GPROF@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_LIBS = @GTK2_LIBS@
+HAVE_CURL_FALSE = @HAVE_CURL_FALSE@
+HAVE_CURL_TRUE = @HAVE_CURL_TRUE@
+HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@
+HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MSBITFIELDS = @MSBITFIELDS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SUB_PROJECTS_FALSE = @SUB_PROJECTS_FALSE@
+SUB_PROJECTS_TRUE = @SUB_PROJECTS_TRUE@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+noinst_LIBRARIES = libtinyxml.a 
+libtinyxml_a_SOURCES = tinyxml.cc \
+		       tinystr.cc \
+		       tinyxmlerror.cc \
+		       tinyxmlparser.cc
+
+noinst_HEADERS = tinyxml.h \
+		tinystr.h
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/tinyxml/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  src/lib/tinyxml/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libtinyxml.a: $(libtinyxml_a_OBJECTS) $(libtinyxml_a_DEPENDENCIES) 
+	-rm -f libtinyxml.a
+	$(libtinyxml_a_AR) libtinyxml.a $(libtinyxml_a_OBJECTS) $(libtinyxml_a_LIBADD)
+	$(RANLIB) libtinyxml.a
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinystr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxml.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxmlerror.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinyxmlparser.Po@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES ctags distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: orxonox/branches/physics/src/lib/tinyxml/tinystr.cc
===================================================================
--- orxonox/branches/physics/src/lib/tinyxml/tinystr.cc	(revision 4283)
+++ orxonox/branches/physics/src/lib/tinyxml/tinystr.cc	(revision 4283)
@@ -0,0 +1,306 @@
+/*
+www.sourceforge.net/projects/tinyxml
+Original file by Yves Berquin.
+
+This software is provided 'as-is', without any express or implied 
+warranty. In no event will the authors be held liable for any 
+damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any 
+purpose, including commercial applications, and to alter it and 
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must 
+not claim that you wrote the original software. If you use this 
+software in a product, an acknowledgment in the product documentation 
+would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and
+must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source 
+distribution.
+*/
+
+#include "tinyxml.h"
+
+#ifndef TIXML_USE_STL
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "tinystr.h"
+
+// TiXmlString constructor, based on a C string
+TiXmlString::TiXmlString (const char* instring)
+{
+    unsigned newlen;
+    char * newstring;
+
+    if (!instring)
+    {
+        allocated = 0;
+        cstring = NULL;
+        current_length = 0;
+        return;
+    }
+	//*ME:	warning C4267: convert 'size_t' to 'unsigned int'
+	//*ME:	Use Cast: (unsigned)
+    newlen = (unsigned)strlen (instring) + 1;
+    newstring = new char [newlen];
+    memcpy (newstring, instring, newlen);
+    // strcpy (newstring, instring);
+    allocated = newlen;
+    cstring = newstring;
+    current_length = newlen - 1;
+}
+
+// TiXmlString copy constructor
+TiXmlString::TiXmlString (const TiXmlString& copy)
+{
+    unsigned newlen;
+    char * newstring;
+
+	// Prevent copy to self!
+	if ( &copy == this )
+		return;
+
+    if (! copy . allocated)
+    {
+        allocated = 0;
+        cstring = NULL;
+        current_length = 0;
+        return;
+    }
+    newlen = copy . length () + 1;
+    newstring = new char [newlen];
+    // strcpy (newstring, copy . cstring);
+    memcpy (newstring, copy . cstring, newlen);
+    allocated = newlen;
+    cstring = newstring;
+    current_length = newlen - 1;
+}
+
+// TiXmlString = operator. Safe when assign own content
+void TiXmlString ::operator = (const char * content)
+{
+    unsigned newlen;
+    char * newstring;
+
+    if (! content)
+    {
+        empty_it ();
+        return;
+    }
+    newlen = (unsigned)strlen (content) + 1;
+    newstring = new char [newlen];
+    // strcpy (newstring, content);
+    memcpy (newstring, content, newlen);
+    empty_it ();
+    allocated = newlen;
+    cstring = newstring;
+    current_length = newlen - 1;
+}
+
+// = operator. Safe when assign own content
+void TiXmlString ::operator = (const TiXmlString & copy)
+{
+    unsigned newlen;
+    char * newstring;
+
+    if (! copy . length ())
+    {
+        empty_it ();
+        return;
+    }
+    newlen = copy . length () + 1;
+    newstring = new char [newlen];
+    // strcpy (newstring, copy . c_str ());
+    memcpy (newstring, copy . c_str (), newlen);
+    empty_it ();
+    allocated = newlen;
+    cstring = newstring;
+    current_length = newlen - 1;
+}
+
+
+// append a const char * to an existing TiXmlString
+void TiXmlString::append( const char* str, int len )
+{
+    char * new_string;
+    unsigned new_alloc, new_size, size_suffix;
+	
+	// don't use strlen - it can overrun the len passed in!
+	const char* p = str;
+	size_suffix = 0;
+
+	while ( *p && size_suffix < (unsigned)len )
+	{
+		++p;
+		++size_suffix;
+	}
+    if ( !size_suffix)
+        return;
+
+    new_size = length () + size_suffix + 1;
+    // check if we need to expand
+    if (new_size > allocated)
+    {
+        // compute new size
+        new_alloc = assign_new_size (new_size);
+
+        // allocate new buffer
+        new_string = new char [new_alloc];        
+        new_string [0] = 0;
+
+        // copy the previous allocated buffer into this one
+        if (allocated && cstring)
+            // strcpy (new_string, cstring);
+            memcpy (new_string, cstring, length ());
+
+        // append the suffix. It does exist, otherwize we wouldn't be expanding 
+        // strncat (new_string, str, len);
+        memcpy (new_string + length (), 
+                str,
+                size_suffix);
+
+        // return previsously allocated buffer if any
+        if (allocated && cstring)
+            delete [] cstring;
+
+        // update member variables
+        cstring = new_string;
+        allocated = new_alloc;
+    }
+    else
+    {
+        // we know we can safely append the new string
+        // strncat (cstring, str, len);
+        memcpy (cstring + length (), 
+                str,
+                size_suffix);
+    }
+    current_length = new_size - 1;
+    cstring [current_length] = 0;
+}
+
+
+// append a const char * to an existing TiXmlString
+void TiXmlString::append( const char * suffix )
+{
+    char * new_string;
+    unsigned new_alloc, new_size;
+
+    new_size = length () + strlen (suffix) + 1;
+    // check if we need to expand
+    if (new_size > allocated)
+    {
+        // compute new size
+        new_alloc = assign_new_size (new_size);
+
+        // allocate new buffer
+        new_string = new char [new_alloc];        
+        new_string [0] = 0;
+
+        // copy the previous allocated buffer into this one
+        if (allocated && cstring)
+            memcpy (new_string, cstring, 1 + length ());
+            // strcpy (new_string, cstring);
+
+        // append the suffix. It does exist, otherwize we wouldn't be expanding 
+        // strcat (new_string, suffix);
+        memcpy (new_string + length (), 
+                suffix,
+                strlen (suffix) + 1);
+
+        // return previsously allocated buffer if any
+        if (allocated && cstring)
+            delete [] cstring;
+
+        // update member variables
+        cstring = new_string;
+        allocated = new_alloc;
+    }
+    else
+    {
+        // we know we can safely append the new string
+        // strcat (cstring, suffix);
+        memcpy (cstring + length (), 
+                suffix, 
+                strlen (suffix) + 1);
+    }
+    current_length = new_size - 1;
+}
+
+// Check for TiXmlString equuivalence
+//bool TiXmlString::operator == (const TiXmlString & compare) const
+//{
+//    return (! strcmp (c_str (), compare . c_str ()));
+//}
+
+//unsigned TiXmlString::length () const
+//{
+//    if (allocated)
+//        // return strlen (cstring);
+//        return current_length;
+//    return 0;
+//}
+
+
+unsigned TiXmlString::find (char tofind, unsigned offset) const
+{
+	//*ME:	warning C4244: convert '__w64 int' to 'unsigned'
+	//*ME:	Use Array-Arithmetic instead of Pointer
+	//  char * lookup;
+
+    if (offset >= length ())
+        return (unsigned) notfound;
+	//  for (lookup = cstring + offset; * lookup; lookup++)
+	//	if (* lookup == tofind)
+	//	    return lookup - cstring;
+    for( unsigned n=offset ; cstring[n] != '\0' ; n++ )
+	if( cstring[n] == tofind )
+	    return  n ;
+    return (unsigned) notfound;
+}
+
+
+bool TiXmlString::operator == (const TiXmlString & compare) const
+{
+	if ( allocated && compare.allocated )
+	{
+		assert( cstring );
+		assert( compare.cstring );
+		return ( strcmp( cstring, compare.cstring ) == 0 );
+ 	}
+	return false;
+}
+
+
+bool TiXmlString::operator < (const TiXmlString & compare) const
+{
+	if ( allocated && compare.allocated )
+	{
+		assert( cstring );
+		assert( compare.cstring );
+		return ( strcmp( cstring, compare.cstring ) > 0 );
+ 	}
+	return false;
+}
+
+
+bool TiXmlString::operator > (const TiXmlString & compare) const
+{
+	if ( allocated && compare.allocated )
+	{
+		assert( cstring );
+		assert( compare.cstring );
+		return ( strcmp( cstring, compare.cstring ) < 0 );
+ 	}
+	return false;
+}
+
+
+#endif	// TIXML_USE_STL
Index: orxonox/branches/physics/src/lib/tinyxml/tinystr.h
===================================================================
--- orxonox/branches/physics/src/lib/tinyxml/tinystr.h	(revision 4283)
+++ orxonox/branches/physics/src/lib/tinyxml/tinystr.h	(revision 4283)
@@ -0,0 +1,242 @@
+/*
+www.sourceforge.net/projects/tinyxml
+Original file by Yves Berquin.
+
+This software is provided 'as-is', without any express or implied 
+warranty. In no event will the authors be held liable for any 
+damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any 
+purpose, including commercial applications, and to alter it and 
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must 
+not claim that you wrote the original software. If you use this 
+software in a product, an acknowledgment in the product documentation 
+would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and
+must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source 
+distribution.
+*/
+
+#include "tinyxml.h"
+
+
+#ifndef TIXML_USE_STL
+
+#ifndef TIXML_STRING_INCLUDED
+#define TIXML_STRING_INCLUDED
+
+#ifdef _MSC_VER
+#pragma warning( disable : 4786 )	// Debugger truncating names.
+#endif
+
+#include <assert.h>
+
+/*
+   TiXmlString is an emulation of the std::string template.
+   Its purpose is to allow compiling TinyXML on compilers with no or poor STL support.
+   Only the member functions relevant to the TinyXML project have been implemented.
+   The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase
+   a string and there's no more room, we allocate a buffer twice as big as we need.
+*/
+class TiXmlString
+{
+  public :
+    // TiXmlString constructor, based on a string
+    TiXmlString (const char * instring);
+
+    // TiXmlString empty constructor
+    TiXmlString ()
+    {
+        allocated = 0;
+        cstring = NULL;
+        current_length = 0;
+    }
+
+    // TiXmlString copy constructor
+    TiXmlString (const TiXmlString& copy);
+
+    // TiXmlString destructor
+    ~ TiXmlString ()
+    {
+        empty_it ();
+    }
+
+    // Convert a TiXmlString into a classical char *
+    const char * c_str () const
+    {
+        if (allocated)
+            return cstring;
+        return "";
+    }
+
+    // Return the length of a TiXmlString
+    unsigned length () const
+	{
+		return ( allocated ) ? current_length : 0;
+	}
+
+    // TiXmlString = operator
+    void operator = (const char * content);
+
+    // = operator
+    void operator = (const TiXmlString & copy);
+
+    // += operator. Maps to append
+    TiXmlString& operator += (const char * suffix)
+    {
+        append (suffix);
+		return *this;
+    }
+
+    // += operator. Maps to append
+    TiXmlString& operator += (char single)
+    {
+        append (single);
+		return *this;
+    }
+
+    // += operator. Maps to append
+    TiXmlString& operator += (TiXmlString & suffix)
+    {
+        append (suffix);
+		return *this;
+    }
+    bool operator == (const TiXmlString & compare) const;
+    bool operator < (const TiXmlString & compare) const;
+    bool operator > (const TiXmlString & compare) const;
+
+    // Checks if a TiXmlString is empty
+    bool empty () const
+    {
+        return length () ? false : true;
+    }
+
+    // single char extraction
+    const char& at (unsigned index) const
+    {
+        assert( index < length ());
+        return cstring [index];
+    }
+
+    // find a char in a string. Return TiXmlString::notfound if not found
+    unsigned find (char lookup) const
+    {
+        return find (lookup, 0);
+    }
+
+    // find a char in a string from an offset. Return TiXmlString::notfound if not found
+    unsigned find (char tofind, unsigned offset) const;
+
+    /*	Function to reserve a big amount of data when we know we'll need it. Be aware that this
+		function clears the content of the TiXmlString if any exists.
+    */
+    void reserve (unsigned size)
+    {
+        empty_it ();
+        if (size)
+        {
+            allocated = size;
+            cstring = new char [size];
+            cstring [0] = 0;
+            current_length = 0;
+        }
+    }
+
+    // [] operator 
+    char& operator [] (unsigned index) const
+    {
+        assert( index < length ());
+        return cstring [index];
+    }
+
+    // Error value for find primitive 
+    enum {	notfound = 0xffffffff,
+            npos = notfound };
+
+    void append (const char *str, int len );
+
+  protected :
+
+    // The base string
+    char * cstring;
+    // Number of chars allocated
+    unsigned allocated;
+    // Current string size
+    unsigned current_length;
+
+    // New size computation. It is simplistic right now : it returns twice the amount
+    // we need
+    unsigned assign_new_size (unsigned minimum_to_allocate)
+    {
+        return minimum_to_allocate * 2;
+    }
+
+    // Internal function that clears the content of a TiXmlString
+    void empty_it ()
+    {
+        if (cstring)
+            delete [] cstring;
+        cstring = NULL;
+        allocated = 0;
+        current_length = 0;
+    }
+
+    void append (const char *suffix );
+
+    // append function for another TiXmlString
+    void append (const TiXmlString & suffix)
+    {
+        append (suffix . c_str ());
+    }
+
+    // append for a single char.
+    void append (char single)
+    {
+        if ( cstring && current_length < (allocated-1) )
+		{
+			cstring[ current_length ] = single;
+			++current_length;
+			cstring[ current_length ] = 0;
+		}
+		else
+		{
+			char smallstr [2];
+			smallstr [0] = single;
+			smallstr [1] = 0;
+			append (smallstr);
+		}
+    }
+
+} ;
+
+/* 
+   TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString.
+   Only the operators that we need for TinyXML have been developped.
+*/
+class TiXmlOutStream : public TiXmlString
+{
+public :
+    TiXmlOutStream () : TiXmlString () {}
+
+    // TiXmlOutStream << operator. Maps to TiXmlString::append
+    TiXmlOutStream & operator << (const char * in)
+    {
+        append (in);
+        return (* this);
+    }
+
+    // TiXmlOutStream << operator. Maps to TiXmlString::append
+    TiXmlOutStream & operator << (const TiXmlString & in)
+    {
+        append (in . c_str ());
+        return (* this);
+    }
+} ;
+
+#endif	// TIXML_STRING_INCLUDED
+#endif	// TIXML_USE_STL
Index: orxonox/branches/physics/src/lib/tinyxml/tinyxml.cc
===================================================================
--- orxonox/branches/physics/src/lib/tinyxml/tinyxml.cc	(revision 4283)
+++ orxonox/branches/physics/src/lib/tinyxml/tinyxml.cc	(revision 4283)
@@ -0,0 +1,1592 @@
+/*
+www.sourceforge.net/projects/tinyxml
+Original code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any
+damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any
+purpose, including commercial applications, and to alter it and
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+not claim that you wrote the original software. If you use this
+software in a product, an acknowledgment in the product documentation
+would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and
+must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+distribution.
+*/
+
+#include <ctype.h>
+#include "tinyxml.h"
+
+#ifdef TIXML_USE_STL
+#include <sstream>
+#endif
+
+
+bool TiXmlBase::condenseWhiteSpace = true;
+
+void TiXmlBase::PutString( const TIXML_STRING& str, TIXML_OSTREAM* stream )
+{
+	TIXML_STRING buffer;
+	PutString( str, &buffer );
+	(*stream) << buffer;
+}
+
+void TiXmlBase::PutString( const TIXML_STRING& str, TIXML_STRING* outString )
+{
+	int i=0;
+
+	while( i<(int)str.length() )
+	{
+		unsigned char c = (unsigned char) str[i];
+
+		if (    c == '&' 
+		     && i < ( (int)str.length() - 2 )
+			 && str[i+1] == '#'
+			 && str[i+2] == 'x' )
+		{
+			// Hexadecimal character reference.
+			// Pass through unchanged.
+			// &#xA9;	-- copyright symbol, for example.
+			//
+			// The -1 is a bug fix from Rob Laveaux. It keeps
+			// an overflow from happening if there is no ';'.
+			// There are actually 2 ways to exit this loop -
+			// while fails (error case) and break (semicolon found).
+			// However, there is no mechanism (currently) for
+			// this function to return an error.
+			while ( i<(int)str.length()-1 )
+			{
+				outString->append( str.c_str() + i, 1 );
+				++i;
+				if ( str[i] == ';' )
+					break;
+			}
+		}
+		else if ( c == '&' )
+		{
+			outString->append( entity[0].str, entity[0].strLength );
+			++i;
+		}
+		else if ( c == '<' )
+		{
+			outString->append( entity[1].str, entity[1].strLength );
+			++i;
+		}
+		else if ( c == '>' )
+		{
+			outString->append( entity[2].str, entity[2].strLength );
+			++i;
+		}
+		else if ( c == '\"' )
+		{
+			outString->append( entity[3].str, entity[3].strLength );
+			++i;
+		}
+		else if ( c == '\'' )
+		{
+			outString->append( entity[4].str, entity[4].strLength );
+			++i;
+		}
+		else if ( c < 32 )
+		{
+			// Easy pass at non-alpha/numeric/symbol
+			// Below 32 is symbolic.
+			char buf[ 32 ];
+			sprintf( buf, "&#x%02X;", (unsigned) ( c & 0xff ) );
+			//*ME:	warning C4267: convert 'size_t' to 'int'
+			//*ME:	Int-Cast to make compiler happy ...
+			outString->append( buf, (int)strlen( buf ) );
+			++i;
+		}
+		else
+		{
+			//char realc = (char) c;
+			//outString->append( &realc, 1 );
+			*outString += (char) c;	// somewhat more efficient function call.
+			++i;
+		}
+	}
+}
+
+
+// <-- Strange class for a bug fix. Search for STL_STRING_BUG
+TiXmlBase::StringToBuffer::StringToBuffer( const TIXML_STRING& str )
+{
+	buffer = new char[ str.length()+1 ];
+	if ( buffer )
+	{
+		strcpy( buffer, str.c_str() );
+	}
+}
+
+
+TiXmlBase::StringToBuffer::~StringToBuffer()
+{
+	delete [] buffer;
+}
+// End strange bug fix. -->
+
+
+TiXmlNode::TiXmlNode( NodeType _type ) : TiXmlBase()
+{
+	parent = 0;
+	type = _type;
+	firstChild = 0;
+	lastChild = 0;
+	prev = 0;
+	next = 0;
+}
+
+
+TiXmlNode::~TiXmlNode()
+{
+	TiXmlNode* node = firstChild;
+	TiXmlNode* temp = 0;
+
+	while ( node )
+	{
+		temp = node;
+		node = node->next;
+		delete temp;
+	}	
+}
+
+
+void TiXmlNode::CopyTo( TiXmlNode* target ) const
+{
+	target->SetValue (value.c_str() );
+	target->userData = userData; 
+}
+
+
+void TiXmlNode::Clear()
+{
+	TiXmlNode* node = firstChild;
+	TiXmlNode* temp = 0;
+
+	while ( node )
+	{
+		temp = node;
+		node = node->next;
+		delete temp;
+	}	
+
+	firstChild = 0;
+	lastChild = 0;
+}
+
+
+TiXmlNode* TiXmlNode::LinkEndChild( TiXmlNode* node )
+{
+	node->parent = this;
+
+	node->prev = lastChild;
+	node->next = 0;
+
+	if ( lastChild )
+		lastChild->next = node;
+	else
+		firstChild = node;			// it was an empty list.
+
+	lastChild = node;
+	return node;
+}
+
+
+TiXmlNode* TiXmlNode::InsertEndChild( const TiXmlNode& addThis )
+{
+	TiXmlNode* node = addThis.Clone();
+	if ( !node )
+		return 0;
+
+	return LinkEndChild( node );
+}
+
+
+TiXmlNode* TiXmlNode::InsertBeforeChild( TiXmlNode* beforeThis, const TiXmlNode& addThis )
+{	
+	if ( !beforeThis || beforeThis->parent != this )
+		return 0;
+
+	TiXmlNode* node = addThis.Clone();
+	if ( !node )
+		return 0;
+	node->parent = this;
+
+	node->next = beforeThis;
+	node->prev = beforeThis->prev;
+	if ( beforeThis->prev )
+	{
+		beforeThis->prev->next = node;
+	}
+	else
+	{
+		assert( firstChild == beforeThis );
+		firstChild = node;
+	}
+	beforeThis->prev = node;
+	return node;
+}
+
+
+TiXmlNode* TiXmlNode::InsertAfterChild( TiXmlNode* afterThis, const TiXmlNode& addThis )
+{
+	if ( !afterThis || afterThis->parent != this )
+		return 0;
+
+	TiXmlNode* node = addThis.Clone();
+	if ( !node )
+		return 0;
+	node->parent = this;
+
+	node->prev = afterThis;
+	node->next = afterThis->next;
+	if ( afterThis->next )
+	{
+		afterThis->next->prev = node;
+	}
+	else
+	{
+		assert( lastChild == afterThis );
+		lastChild = node;
+	}
+	afterThis->next = node;
+	return node;
+}
+
+
+TiXmlNode* TiXmlNode::ReplaceChild( TiXmlNode* replaceThis, const TiXmlNode& withThis )
+{
+	if ( replaceThis->parent != this )
+		return 0;
+
+	TiXmlNode* node = withThis.Clone();
+	if ( !node )
+		return 0;
+
+	node->next = replaceThis->next;
+	node->prev = replaceThis->prev;
+
+	if ( replaceThis->next )
+		replaceThis->next->prev = node;
+	else
+		lastChild = node;
+
+	if ( replaceThis->prev )
+		replaceThis->prev->next = node;
+	else
+		firstChild = node;
+
+	delete replaceThis;
+	node->parent = this;
+	return node;
+}
+
+
+bool TiXmlNode::RemoveChild( TiXmlNode* removeThis )
+{
+	if ( removeThis->parent != this )
+	{	
+		assert( 0 );
+		return false;
+	}
+
+	if ( removeThis->next )
+		removeThis->next->prev = removeThis->prev;
+	else
+		lastChild = removeThis->prev;
+
+	if ( removeThis->prev )
+		removeThis->prev->next = removeThis->next;
+	else
+		firstChild = removeThis->next;
+
+	delete removeThis;
+	return true;
+}
+
+const TiXmlNode* TiXmlNode::FirstChild( const char * _value ) const
+{
+	const TiXmlNode* node;
+	for ( node = firstChild; node; node = node->next )
+	{
+		if ( node->SValue() == TIXML_STRING( _value ))
+			return node;
+	}
+	return 0;
+}
+
+
+TiXmlNode* TiXmlNode::FirstChild( const char * _value )
+{
+	TiXmlNode* node;
+	for ( node = firstChild; node; node = node->next )
+	{
+		if ( node->SValue() == TIXML_STRING( _value ))
+			return node;
+	}
+	return 0;
+}
+
+
+const TiXmlNode* TiXmlNode::LastChild( const char * _value ) const
+{
+	const TiXmlNode* node;
+	for ( node = lastChild; node; node = node->prev )
+	{
+		if ( node->SValue() == TIXML_STRING (_value))
+			return node;
+	}
+	return 0;
+}
+
+TiXmlNode* TiXmlNode::LastChild( const char * _value )
+{
+	TiXmlNode* node;
+	for ( node = lastChild; node; node = node->prev )
+	{
+		if ( node->SValue() == TIXML_STRING (_value))
+			return node;
+	}
+	return 0;
+}
+
+const TiXmlNode* TiXmlNode::IterateChildren( TiXmlNode* previous ) const
+{
+	if ( !previous )
+	{
+		return FirstChild();
+	}
+	else
+	{
+		assert( previous->parent == this );
+		return previous->NextSibling();
+	}
+}
+
+TiXmlNode* TiXmlNode::IterateChildren( TiXmlNode* previous )
+{
+	if ( !previous )
+	{
+		return FirstChild();
+	}
+	else
+	{
+		assert( previous->parent == this );
+		return previous->NextSibling();
+	}
+}
+
+const TiXmlNode* TiXmlNode::IterateChildren( const char * val, TiXmlNode* previous ) const
+{
+	if ( !previous )
+	{
+		return FirstChild( val );
+	}
+	else
+	{
+		assert( previous->parent == this );
+		return previous->NextSibling( val );
+	}
+}
+
+TiXmlNode* TiXmlNode::IterateChildren( const char * val, TiXmlNode* previous )
+{
+	if ( !previous )
+	{
+		return FirstChild( val );
+	}
+	else
+	{
+		assert( previous->parent == this );
+		return previous->NextSibling( val );
+	}
+}
+
+const TiXmlNode* TiXmlNode::NextSibling( const char * _value ) const 
+{
+	const TiXmlNode* node;
+	for ( node = next; node; node = node->next )
+	{
+		if ( node->SValue() == TIXML_STRING (_value))
+			return node;
+	}
+	return 0;
+}
+
+TiXmlNode* TiXmlNode::NextSibling( const char * _value )
+{
+	TiXmlNode* node;
+	for ( node = next; node; node = node->next )
+	{
+		if ( node->SValue() == TIXML_STRING (_value))
+			return node;
+	}
+	return 0;
+}
+
+const TiXmlNode* TiXmlNode::PreviousSibling( const char * _value ) const
+{
+	const TiXmlNode* node;
+	for ( node = prev; node; node = node->prev )
+	{
+		if ( node->SValue() == TIXML_STRING (_value))
+			return node;
+	}
+	return 0;
+}
+
+TiXmlNode* TiXmlNode::PreviousSibling( const char * _value )
+{
+	TiXmlNode* node;
+	for ( node = prev; node; node = node->prev )
+	{
+		if ( node->SValue() == TIXML_STRING (_value))
+			return node;
+	}
+	return 0;
+}
+
+void TiXmlElement::RemoveAttribute( const char * name )
+{
+	TiXmlAttribute* node = attributeSet.Find( name );
+	if ( node )
+	{
+		attributeSet.Remove( node );
+		delete node;
+	}
+}
+
+const TiXmlElement* TiXmlNode::FirstChildElement() const
+{
+	const TiXmlNode* node;
+
+	for (	node = FirstChild();
+			node;
+			node = node->NextSibling() )
+	{
+		if ( node->ToElement() )
+			return node->ToElement();
+	}
+	return 0;
+}
+
+TiXmlElement* TiXmlNode::FirstChildElement()
+{
+	TiXmlNode* node;
+
+	for (	node = FirstChild();
+			node;
+			node = node->NextSibling() )
+	{
+		if ( node->ToElement() )
+			return node->ToElement();
+	}
+	return 0;
+}
+
+const TiXmlElement* TiXmlNode::FirstChildElement( const char * _value ) const
+{
+	const TiXmlNode* node;
+
+	for (	node = FirstChild( _value );
+			node;
+			node = node->NextSibling( _value ) )
+	{
+		if ( node->ToElement() )
+			return node->ToElement();
+	}
+	return 0;
+}
+
+TiXmlElement* TiXmlNode::FirstChildElement( const char * _value )
+{
+	TiXmlNode* node;
+
+	for (	node = FirstChild( _value );
+			node;
+			node = node->NextSibling( _value ) )
+	{
+		if ( node->ToElement() )
+			return node->ToElement();
+	}
+	return 0;
+}
+
+const TiXmlElement* TiXmlNode::NextSiblingElement() const
+{
+	const TiXmlNode* node;
+
+	for (	node = NextSibling();
+	node;
+	node = node->NextSibling() )
+	{
+		if ( node->ToElement() )
+			return node->ToElement();
+	}
+	return 0;
+}
+
+TiXmlElement* TiXmlNode::NextSiblingElement()
+{
+	TiXmlNode* node;
+
+	for (	node = NextSibling();
+	node;
+	node = node->NextSibling() )
+	{
+		if ( node->ToElement() )
+			return node->ToElement();
+	}
+	return 0;
+}
+
+const TiXmlElement* TiXmlNode::NextSiblingElement( const char * _value ) const
+{
+	const TiXmlNode* node;
+
+	for (	node = NextSibling( _value );
+	node;
+	node = node->NextSibling( _value ) )
+	{
+		if ( node->ToElement() )
+			return node->ToElement();
+	}
+	return 0;
+}
+
+TiXmlElement* TiXmlNode::NextSiblingElement( const char * _value )
+{
+	TiXmlNode* node;
+
+	for (	node = NextSibling( _value );
+	node;
+	node = node->NextSibling( _value ) )
+	{
+		if ( node->ToElement() )
+			return node->ToElement();
+	}
+	return 0;
+}
+
+
+const TiXmlDocument* TiXmlNode::GetDocument() const
+{
+	const TiXmlNode* node;
+
+	for( node = this; node; node = node->parent )
+	{
+		if ( node->ToDocument() )
+			return node->ToDocument();
+	}
+	return 0;
+}
+
+TiXmlDocument* TiXmlNode::GetDocument()
+{
+	TiXmlNode* node;
+
+	for( node = this; node; node = node->parent )
+	{
+		if ( node->ToDocument() )
+			return node->ToDocument();
+	}
+	return 0;
+}
+
+TiXmlElement::TiXmlElement (const char * _value)
+	: TiXmlNode( TiXmlNode::ELEMENT )
+{
+	firstChild = lastChild = 0;
+	value = _value;
+}
+
+
+#ifdef TIXML_USE_STL
+TiXmlElement::TiXmlElement( const std::string& _value ) 
+	: TiXmlNode( TiXmlNode::ELEMENT )
+{
+	firstChild = lastChild = 0;
+	value = _value;
+}
+#endif
+
+
+TiXmlElement::TiXmlElement( const TiXmlElement& copy)
+	: TiXmlNode( TiXmlNode::ELEMENT )
+{
+	firstChild = lastChild = 0;
+	copy.CopyTo( this );	
+}
+
+
+void TiXmlElement::operator=( const TiXmlElement& base )
+{
+	ClearThis();
+	base.CopyTo( this );
+}
+
+
+TiXmlElement::~TiXmlElement()
+{
+	ClearThis();
+}
+
+
+void TiXmlElement::ClearThis()
+{
+	Clear();
+	while( attributeSet.First() )
+	{
+		TiXmlAttribute* node = attributeSet.First();
+		attributeSet.Remove( node );
+		delete node;
+	}
+}
+
+
+const char * TiXmlElement::Attribute( const char * name ) const
+{
+	const TiXmlAttribute* node = attributeSet.Find( name );
+
+	if ( node )
+		return node->Value();
+
+	return 0;
+}
+
+
+const char * TiXmlElement::Attribute( const char * name, int* i ) const
+{
+	const char * s = Attribute( name );
+	if ( i )
+	{
+		if ( s )
+			*i = atoi( s );
+		else
+			*i = 0;
+	}
+	return s;
+}
+
+
+const char * TiXmlElement::Attribute( const char * name, double* d ) const
+{
+	const char * s = Attribute( name );
+	if ( d )
+	{
+		if ( s )
+			*d = atof( s );
+		else
+			*d = 0;
+	}
+	return s;
+}
+
+
+int TiXmlElement::QueryIntAttribute( const char* name, int* ival ) const
+{
+	const TiXmlAttribute* node = attributeSet.Find( name );
+	if ( !node )
+		return TIXML_NO_ATTRIBUTE;
+
+	return node->QueryIntValue( ival );
+}
+
+
+int TiXmlElement::QueryDoubleAttribute( const char* name, double* dval ) const
+{
+	const TiXmlAttribute* node = attributeSet.Find( name );
+	if ( !node )
+		return TIXML_NO_ATTRIBUTE;
+
+	return node->QueryDoubleValue( dval );
+}
+
+
+void TiXmlElement::SetAttribute( const char * name, int val )
+{	
+	char buf[64];
+	sprintf( buf, "%d", val );
+	SetAttribute( name, buf );
+}
+
+
+void TiXmlElement::SetDoubleAttribute( const char * name, double val )
+{	
+	char buf[128];
+	sprintf( buf, "%f", val );
+	SetAttribute( name, buf );
+}
+
+
+void TiXmlElement::SetAttribute( const char * name, const char * _value )
+{
+	TiXmlAttribute* node = attributeSet.Find( name );
+	if ( node )
+	{
+		node->SetValue( _value );
+		return;
+	}
+
+	TiXmlAttribute* attrib = new TiXmlAttribute( name, _value );
+	if ( attrib )
+	{
+		attributeSet.Add( attrib );
+	}
+	else
+	{
+		TiXmlDocument* document = GetDocument();
+		if ( document ) document->SetError( TIXML_ERROR_OUT_OF_MEMORY, 0, 0, TIXML_ENCODING_UNKNOWN );
+	}
+}
+
+void TiXmlElement::Print( FILE* cfile, int depth ) const
+{
+	int i;
+	for ( i=0; i<depth; i++ )
+	{
+		fprintf( cfile, "    " );
+	}
+
+	fprintf( cfile, "<%s", value.c_str() );
+
+	const TiXmlAttribute* attrib;
+	for ( attrib = attributeSet.First(); attrib; attrib = attrib->Next() )
+	{
+		fprintf( cfile, " " );
+		attrib->Print( cfile, depth );
+	}
+
+	// There are 3 different formatting approaches:
+	// 1) An element without children is printed as a <foo /> node
+	// 2) An element with only a text child is printed as <foo> text </foo>
+	// 3) An element with children is printed on multiple lines.
+	TiXmlNode* node;
+	if ( !firstChild )
+	{
+		fprintf( cfile, " />" );
+	}
+	else if ( firstChild == lastChild && firstChild->ToText() )
+	{
+		fprintf( cfile, ">" );
+		firstChild->Print( cfile, depth + 1 );
+		fprintf( cfile, "</%s>", value.c_str() );
+	}
+	else
+	{
+		fprintf( cfile, ">" );
+
+		for ( node = firstChild; node; node=node->NextSibling() )
+		{
+			if ( !node->ToText() )
+			{
+				fprintf( cfile, "\n" );
+			}
+			node->Print( cfile, depth+1 );
+		}
+		fprintf( cfile, "\n" );
+		for( i=0; i<depth; ++i )
+		fprintf( cfile, "    " );
+		fprintf( cfile, "</%s>", value.c_str() );
+	}
+}
+
+void TiXmlElement::StreamOut( TIXML_OSTREAM * stream ) const
+{
+	(*stream) << "<" << value;
+
+	const TiXmlAttribute* attrib;
+	for ( attrib = attributeSet.First(); attrib; attrib = attrib->Next() )
+	{	
+		(*stream) << " ";
+		attrib->StreamOut( stream );
+	}
+
+	// If this node has children, give it a closing tag. Else
+	// make it an empty tag.
+	TiXmlNode* node;
+	if ( firstChild )
+	{ 		
+		(*stream) << ">";
+
+		for ( node = firstChild; node; node=node->NextSibling() )
+		{
+			node->StreamOut( stream );
+		}
+		(*stream) << "</" << value << ">";
+	}
+	else
+	{
+		(*stream) << " />";
+	}
+}
+
+
+void TiXmlElement::CopyTo( TiXmlElement* target ) const
+{
+	// superclass:
+	TiXmlNode::CopyTo( target );
+
+	// Element class: 
+	// Clone the attributes, then clone the children.
+	const TiXmlAttribute* attribute = 0;
+	for(	attribute = attributeSet.First();
+	attribute;
+	attribute = attribute->Next() )
+	{
+		target->SetAttribute( attribute->Name(), attribute->Value() );
+	}
+
+	TiXmlNode* node = 0;
+	for ( node = firstChild; node; node = node->NextSibling() )
+	{
+		target->LinkEndChild( node->Clone() );
+	}
+}
+
+
+TiXmlNode* TiXmlElement::Clone() const
+{
+	TiXmlElement* clone = new TiXmlElement( Value() );
+	if ( !clone )
+		return 0;
+
+	CopyTo( clone );
+	return clone;
+}
+
+
+TiXmlDocument::TiXmlDocument() : TiXmlNode( TiXmlNode::DOCUMENT )
+{
+	tabsize = 4;
+	ClearError();
+}
+
+TiXmlDocument::TiXmlDocument( const char * documentName ) : TiXmlNode( TiXmlNode::DOCUMENT )
+{
+	tabsize = 4;
+	value = documentName;
+	ClearError();
+}
+
+
+#ifdef TIXML_USE_STL
+TiXmlDocument::TiXmlDocument( const std::string& documentName ) : TiXmlNode( TiXmlNode::DOCUMENT )
+{
+	tabsize = 4;
+    value = documentName;
+	ClearError();
+}
+#endif
+
+
+TiXmlDocument::TiXmlDocument( const TiXmlDocument& copy ) : TiXmlNode( TiXmlNode::DOCUMENT )
+{
+	copy.CopyTo( this );
+}
+
+
+void TiXmlDocument::operator=( const TiXmlDocument& copy )
+{
+	Clear();
+	copy.CopyTo( this );
+}
+
+
+bool TiXmlDocument::LoadFile( TiXmlEncoding encoding )
+{
+	// See STL_STRING_BUG below.
+	StringToBuffer buf( value );
+
+	if ( buf.buffer && LoadFile( buf.buffer, encoding ) )
+		return true;
+
+	return false;
+}
+
+
+bool TiXmlDocument::SaveFile() const
+{
+	// See STL_STRING_BUG below.
+	StringToBuffer buf( value );
+
+	if ( buf.buffer && SaveFile( buf.buffer ) )
+		return true;
+
+	return false;
+}
+
+bool TiXmlDocument::LoadFile( const char* filename, TiXmlEncoding encoding )
+{
+	// Delete the existing data:
+	Clear();
+	location.Clear();
+
+	// There was a really terrifying little bug here. The code:
+	//		value = filename
+	// in the STL case, cause the assignment method of the std::string to
+	// be called. What is strange, is that the std::string had the same
+	// address as it's c_str() method, and so bad things happen. Looks
+	// like a bug in the Microsoft STL implementation.
+	// See STL_STRING_BUG above.
+	// Fixed with the StringToBuffer class.
+	value = filename;
+
+	FILE* file = fopen( value.c_str (), "r" );
+
+	if ( file )
+	{
+		// Get the file size, so we can pre-allocate the string. HUGE speed impact.
+		long length = 0;
+		fseek( file, 0, SEEK_END );
+		length = ftell( file );
+		fseek( file, 0, SEEK_SET );
+
+		// Strange case, but good to handle up front.
+		if ( length == 0 )
+		{
+			fclose( file );
+			return false;
+		}
+
+		// If we have a file, assume it is all one big XML file, and read it in.
+		// The document parser may decide the document ends sooner than the entire file, however.
+		TIXML_STRING data;
+		data.reserve( length );
+
+		const int BUF_SIZE = 2048;
+		char buf[BUF_SIZE];
+
+		while( fgets( buf, BUF_SIZE, file ) )
+		{
+			data += buf;
+		}
+		fclose( file );
+
+		Parse( data.c_str(), 0, encoding );
+
+		if (  Error() )
+            return false;
+        else
+			return true;
+	}
+	SetError( TIXML_ERROR_OPENING_FILE, 0, 0, TIXML_ENCODING_UNKNOWN );
+	return false;
+}
+
+bool TiXmlDocument::SaveFile( const char * filename ) const
+{
+	// The old c stuff lives on...
+	FILE* fp = fopen( filename, "w" );
+	if ( fp )
+	{
+		Print( fp, 0 );
+		fclose( fp );
+		return true;
+	}
+	return false;
+}
+
+
+void TiXmlDocument::CopyTo( TiXmlDocument* target ) const
+{
+	TiXmlNode::CopyTo( target );
+
+	target->error = error;
+	target->errorDesc = errorDesc.c_str ();
+
+	TiXmlNode* node = 0;
+	for ( node = firstChild; node; node = node->NextSibling() )
+	{
+		target->LinkEndChild( node->Clone() );
+	}	
+}
+
+
+TiXmlNode* TiXmlDocument::Clone() const
+{
+	TiXmlDocument* clone = new TiXmlDocument();
+	if ( !clone )
+		return 0;
+
+	CopyTo( clone );
+	return clone;
+}
+
+
+void TiXmlDocument::Print( FILE* cfile, int depth ) const
+{
+	const TiXmlNode* node;
+	for ( node=FirstChild(); node; node=node->NextSibling() )
+	{
+		node->Print( cfile, depth );
+		fprintf( cfile, "\n" );
+	}
+}
+
+void TiXmlDocument::StreamOut( TIXML_OSTREAM * out ) const
+{
+	const TiXmlNode* node;
+	for ( node=FirstChild(); node; node=node->NextSibling() )
+	{
+		node->StreamOut( out );
+
+		// Special rule for streams: stop after the root element.
+		// The stream in code will only read one element, so don't
+		// write more than one.
+		if ( node->ToElement() )
+			break;
+	}
+}
+
+
+const TiXmlAttribute* TiXmlAttribute::Next() const
+{
+	// We are using knowledge of the sentinel. The sentinel
+	// have a value or name.
+	if ( next->value.empty() && next->name.empty() )
+		return 0;
+	return next;
+}
+
+TiXmlAttribute* TiXmlAttribute::Next()
+{
+	// We are using knowledge of the sentinel. The sentinel
+	// have a value or name.
+	if ( next->value.empty() && next->name.empty() )
+		return 0;
+	return next;
+}
+
+const TiXmlAttribute* TiXmlAttribute::Previous() const
+{
+	// We are using knowledge of the sentinel. The sentinel
+	// have a value or name.
+	if ( prev->value.empty() && prev->name.empty() )
+		return 0;
+	return prev;
+}
+
+TiXmlAttribute* TiXmlAttribute::Previous()
+{
+	// We are using knowledge of the sentinel. The sentinel
+	// have a value or name.
+	if ( prev->value.empty() && prev->name.empty() )
+		return 0;
+	return prev;
+}
+
+void TiXmlAttribute::Print( FILE* cfile, int /*depth*/ ) const
+{
+	TIXML_STRING n, v;
+
+	PutString( name, &n );
+	PutString( value, &v );
+
+	if (value.find ('\"') == TIXML_STRING::npos)
+		fprintf (cfile, "%s=\"%s\"", n.c_str(), v.c_str() );
+	else
+		fprintf (cfile, "%s='%s'", n.c_str(), v.c_str() );
+}
+
+
+void TiXmlAttribute::StreamOut( TIXML_OSTREAM * stream ) const
+{
+	if (value.find( '\"' ) != TIXML_STRING::npos)
+	{
+		PutString( name, stream );
+		(*stream) << "=" << "'";
+		PutString( value, stream );
+		(*stream) << "'";
+	}
+	else
+	{
+		PutString( name, stream );
+		(*stream) << "=" << "\"";
+		PutString( value, stream );
+		(*stream) << "\"";
+	}
+}
+
+int TiXmlAttribute::QueryIntValue( int* ival ) const
+{
+	if ( sscanf( value.c_str(), "%d", ival ) == 1 )
+		return TIXML_SUCCESS;
+	return TIXML_WRONG_TYPE;
+}
+
+int TiXmlAttribute::QueryDoubleValue( double* dval ) const
+{
+	if ( sscanf( value.c_str(), "%lf", dval ) == 1 )
+		return TIXML_SUCCESS;
+	return TIXML_WRONG_TYPE;
+}
+
+void TiXmlAttribute::SetIntValue( int _value )
+{
+	char buf [64];
+	sprintf (buf, "%d", _value);
+	SetValue (buf);
+}
+
+void TiXmlAttribute::SetDoubleValue( double _value )
+{
+	char buf [64];
+	sprintf (buf, "%lf", _value);
+	SetValue (buf);
+}
+
+const int TiXmlAttribute::IntValue() const
+{
+	return atoi (value.c_str ());
+}
+
+const double  TiXmlAttribute::DoubleValue() const
+{
+	return atof (value.c_str ());
+}
+
+
+TiXmlComment::TiXmlComment( const TiXmlComment& copy ) : TiXmlNode( TiXmlNode::COMMENT )
+{
+	copy.CopyTo( this );
+}
+
+
+void TiXmlComment::operator=( const TiXmlComment& base )
+{
+	Clear();
+	base.CopyTo( this );
+}
+
+
+void TiXmlComment::Print( FILE* cfile, int depth ) const
+{
+	for ( int i=0; i<depth; i++ )
+	{
+		fputs( "    ", cfile );
+	}
+	fprintf( cfile, "<!--%s-->", value.c_str() );
+}
+
+void TiXmlComment::StreamOut( TIXML_OSTREAM * stream ) const
+{
+	(*stream) << "<!--";
+	//PutString( value, stream );
+	(*stream) << value;
+	(*stream) << "-->";
+}
+
+
+void TiXmlComment::CopyTo( TiXmlComment* target ) const
+{
+	TiXmlNode::CopyTo( target );
+}
+
+
+TiXmlNode* TiXmlComment::Clone() const
+{
+	TiXmlComment* clone = new TiXmlComment();
+
+	if ( !clone )
+		return 0;
+
+	CopyTo( clone );
+	return clone;
+}
+
+
+void TiXmlText::Print( FILE* cfile, int /*depth*/ ) const
+{
+	TIXML_STRING buffer;
+	PutString( value, &buffer );
+	fprintf( cfile, "%s", buffer.c_str() );
+}
+
+
+void TiXmlText::StreamOut( TIXML_OSTREAM * stream ) const
+{
+	PutString( value, stream );
+}
+
+
+void TiXmlText::CopyTo( TiXmlText* target ) const
+{
+	TiXmlNode::CopyTo( target );
+}
+
+
+TiXmlNode* TiXmlText::Clone() const
+{	
+	TiXmlText* clone = 0;
+	clone = new TiXmlText( "" );
+
+	if ( !clone )
+		return 0;
+
+	CopyTo( clone );
+	return clone;
+}
+
+
+TiXmlDeclaration::TiXmlDeclaration( const char * _version,
+									const char * _encoding,
+									const char * _standalone )
+	: TiXmlNode( TiXmlNode::DECLARATION )
+{
+	version = _version;
+	encoding = _encoding;
+	standalone = _standalone;
+}
+
+
+#ifdef TIXML_USE_STL
+TiXmlDeclaration::TiXmlDeclaration(	const std::string& _version,
+									const std::string& _encoding,
+									const std::string& _standalone )
+	: TiXmlNode( TiXmlNode::DECLARATION )
+{
+	version = _version;
+	encoding = _encoding;
+	standalone = _standalone;
+}
+#endif
+
+
+TiXmlDeclaration::TiXmlDeclaration( const TiXmlDeclaration& copy )
+	: TiXmlNode( TiXmlNode::DECLARATION )
+{
+	copy.CopyTo( this );	
+}
+
+
+void TiXmlDeclaration::operator=( const TiXmlDeclaration& copy )
+{
+	Clear();
+	copy.CopyTo( this );
+}
+
+
+void TiXmlDeclaration::Print( FILE* cfile, int /*depth*/ ) const
+{
+	fprintf (cfile, "<?xml ");
+
+	if ( !version.empty() )
+		fprintf (cfile, "version=\"%s\" ", version.c_str ());
+	if ( !encoding.empty() )
+		fprintf (cfile, "encoding=\"%s\" ", encoding.c_str ());
+	if ( !standalone.empty() )
+		fprintf (cfile, "standalone=\"%s\" ", standalone.c_str ());
+	fprintf (cfile, "?>");
+}
+
+void TiXmlDeclaration::StreamOut( TIXML_OSTREAM * stream ) const
+{
+	(*stream) << "<?xml ";
+
+	if ( !version.empty() )
+	{
+		(*stream) << "version=\"";
+		PutString( version, stream );
+		(*stream) << "\" ";
+	}
+	if ( !encoding.empty() )
+	{
+		(*stream) << "encoding=\"";
+		PutString( encoding, stream );
+		(*stream ) << "\" ";
+	}
+	if ( !standalone.empty() )
+	{
+		(*stream) << "standalone=\"";
+		PutString( standalone, stream );
+		(*stream) << "\" ";
+	}
+	(*stream) << "?>";
+}
+
+
+void TiXmlDeclaration::CopyTo( TiXmlDeclaration* target ) const
+{
+	TiXmlNode::CopyTo( target );
+
+	target->version = version;
+	target->encoding = encoding;
+	target->standalone = standalone;
+}
+
+
+TiXmlNode* TiXmlDeclaration::Clone() const
+{	
+	TiXmlDeclaration* clone = new TiXmlDeclaration();
+
+	if ( !clone )
+		return 0;
+
+	CopyTo( clone );
+	return clone;
+}
+
+
+void TiXmlUnknown::Print( FILE* cfile, int depth ) const
+{
+	for ( int i=0; i<depth; i++ )
+		fprintf( cfile, "    " );
+	fprintf( cfile, "<%s>", value.c_str() );
+}
+
+
+void TiXmlUnknown::StreamOut( TIXML_OSTREAM * stream ) const
+{
+	(*stream) << "<" << value << ">";		// Don't use entities here! It is unknown.
+}
+
+
+void TiXmlUnknown::CopyTo( TiXmlUnknown* target ) const
+{
+	TiXmlNode::CopyTo( target );
+}
+
+
+TiXmlNode* TiXmlUnknown::Clone() const
+{
+	TiXmlUnknown* clone = new TiXmlUnknown();
+
+	if ( !clone )
+		return 0;
+
+	CopyTo( clone );
+	return clone;
+}
+
+
+TiXmlAttributeSet::TiXmlAttributeSet()
+{
+	sentinel.next = &sentinel;
+	sentinel.prev = &sentinel;
+}
+
+
+TiXmlAttributeSet::~TiXmlAttributeSet()
+{
+	assert( sentinel.next == &sentinel );
+	assert( sentinel.prev == &sentinel );
+}
+
+
+void TiXmlAttributeSet::Add( TiXmlAttribute* addMe )
+{
+	assert( !Find( addMe->Name() ) );	// Shouldn't be multiply adding to the set.
+
+	addMe->next = &sentinel;
+	addMe->prev = sentinel.prev;
+
+	sentinel.prev->next = addMe;
+	sentinel.prev      = addMe;
+}
+
+void TiXmlAttributeSet::Remove( TiXmlAttribute* removeMe )
+{
+	TiXmlAttribute* node;
+
+	for( node = sentinel.next; node != &sentinel; node = node->next )
+	{
+		if ( node == removeMe )
+		{
+			node->prev->next = node->next;
+			node->next->prev = node->prev;
+			node->next = 0;
+			node->prev = 0;
+			return;
+		}
+	}
+	assert( 0 );		// we tried to remove a non-linked attribute.
+}
+
+const TiXmlAttribute*	TiXmlAttributeSet::Find( const char * name ) const
+{
+	const TiXmlAttribute* node;
+
+	for( node = sentinel.next; node != &sentinel; node = node->next )
+	{
+		if ( node->name == name )
+			return node;
+	}
+	return 0;
+}
+
+TiXmlAttribute*	TiXmlAttributeSet::Find( const char * name )
+{
+	TiXmlAttribute* node;
+
+	for( node = sentinel.next; node != &sentinel; node = node->next )
+	{
+		if ( node->name == name )
+			return node;
+	}
+	return 0;
+}
+
+#ifdef TIXML_USE_STL	
+TIXML_ISTREAM & operator >> (TIXML_ISTREAM & in, TiXmlNode & base)
+{
+	TIXML_STRING tag;
+	tag.reserve( 8 * 1000 );
+	base.StreamIn( &in, &tag );
+
+	base.Parse( tag.c_str(), 0, TIXML_DEFAULT_ENCODING );
+	return in;
+}
+#endif
+
+
+TIXML_OSTREAM & operator<< (TIXML_OSTREAM & out, const TiXmlNode & base)
+{
+	base.StreamOut (& out);
+	return out;
+}
+
+
+#ifdef TIXML_USE_STL	
+std::string & operator<< (std::string& out, const TiXmlNode& base )
+{
+   std::ostringstream os_stream( std::ostringstream::out );
+   base.StreamOut( &os_stream );
+   
+   out.append( os_stream.str() );
+   return out;
+}
+#endif
+
+
+TiXmlHandle TiXmlHandle::FirstChild() const
+{
+	if ( node )
+	{
+		TiXmlNode* child = node->FirstChild();
+		if ( child )
+			return TiXmlHandle( child );
+	}
+	return TiXmlHandle( 0 );
+}
+
+
+TiXmlHandle TiXmlHandle::FirstChild( const char * value ) const
+{
+	if ( node )
+	{
+		TiXmlNode* child = node->FirstChild( value );
+		if ( child )
+			return TiXmlHandle( child );
+	}
+	return TiXmlHandle( 0 );
+}
+
+
+TiXmlHandle TiXmlHandle::FirstChildElement() const
+{
+	if ( node )
+	{
+		TiXmlElement* child = node->FirstChildElement();
+		if ( child )
+			return TiXmlHandle( child );
+	}
+	return TiXmlHandle( 0 );
+}
+
+
+TiXmlHandle TiXmlHandle::FirstChildElement( const char * value ) const
+{
+	if ( node )
+	{
+		TiXmlElement* child = node->FirstChildElement( value );
+		if ( child )
+			return TiXmlHandle( child );
+	}
+	return TiXmlHandle( 0 );
+}
+
+
+TiXmlHandle TiXmlHandle::Child( int count ) const
+{
+	if ( node )
+	{
+		int i;
+		TiXmlNode* child = node->FirstChild();
+		for (	i=0;
+				child && i<count;
+				child = child->NextSibling(), ++i )
+		{
+			// nothing
+		}
+		if ( child )
+			return TiXmlHandle( child );
+	}
+	return TiXmlHandle( 0 );
+}
+
+
+TiXmlHandle TiXmlHandle::Child( const char* value, int count ) const
+{
+	if ( node )
+	{
+		int i;
+		TiXmlNode* child = node->FirstChild( value );
+		for (	i=0;
+				child && i<count;
+				child = child->NextSibling( value ), ++i )
+		{
+			// nothing
+		}
+		if ( child )
+			return TiXmlHandle( child );
+	}
+	return TiXmlHandle( 0 );
+}
+
+
+TiXmlHandle TiXmlHandle::ChildElement( int count ) const
+{
+	if ( node )
+	{
+		int i;
+		TiXmlElement* child = node->FirstChildElement();
+		for (	i=0;
+				child && i<count;
+				child = child->NextSiblingElement(), ++i )
+		{
+			// nothing
+		}
+		if ( child )
+			return TiXmlHandle( child );
+	}
+	return TiXmlHandle( 0 );
+}
+
+
+TiXmlHandle TiXmlHandle::ChildElement( const char* value, int count ) const
+{
+	if ( node )
+	{
+		int i;
+		TiXmlElement* child = node->FirstChildElement( value );
+		for (	i=0;
+				child && i<count;
+				child = child->NextSiblingElement( value ), ++i )
+		{
+			// nothing
+		}
+		if ( child )
+			return TiXmlHandle( child );
+	}
+	return TiXmlHandle( 0 );
+}
Index: orxonox/branches/physics/src/lib/tinyxml/tinyxml.h
===================================================================
--- orxonox/branches/physics/src/lib/tinyxml/tinyxml.h	(revision 4283)
+++ orxonox/branches/physics/src/lib/tinyxml/tinyxml.h	(revision 4283)
@@ -0,0 +1,1422 @@
+/*
+www.sourceforge.net/projects/tinyxml
+Original code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any
+damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any
+purpose, including commercial applications, and to alter it and
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+not claim that you wrote the original software. If you use this
+software in a product, an acknowledgment in the product documentation
+would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and
+must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+distribution.
+*/
+
+
+#ifndef TINYXML_INCLUDED
+#define TINYXML_INCLUDED
+
+#ifdef _MSC_VER
+#pragma warning( disable : 4530 )
+#pragma warning( disable : 4786 )
+#endif
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+// Help out windows:
+#if defined( _DEBUG ) && !defined( DEBUG )
+#define DEBUG
+#endif
+
+#if defined( DEBUG ) && defined( _MSC_VER )
+#include <windows.h>
+#define TIXML_LOG OutputDebugString
+#else
+#define TIXML_LOG printf
+#endif
+
+#ifdef TIXML_USE_STL
+	#include <string>
+ 	#include <iostream>
+	#define TIXML_STRING	std::string
+	#define TIXML_ISTREAM	std::istream
+	#define TIXML_OSTREAM	std::ostream
+#else
+	#include "tinystr.h"
+	#define TIXML_STRING	TiXmlString
+	#define TIXML_OSTREAM	TiXmlOutStream
+#endif
+
+class TiXmlDocument;
+class TiXmlElement;
+class TiXmlComment;
+class TiXmlUnknown;
+class TiXmlAttribute;
+class TiXmlText;
+class TiXmlDeclaration;
+class TiXmlParsingData;
+
+const int TIXML_MAJOR_VERSION = 2;
+const int TIXML_MINOR_VERSION = 3;
+const int TIXML_PATCH_VERSION = 3;
+
+/*	Internal structure for tracking location of items 
+	in the XML file.
+*/
+struct TiXmlCursor
+{
+	TiXmlCursor()		{ Clear(); }
+	void Clear()		{ row = col = -1; }
+
+	int row;	// 0 based.
+	int col;	// 0 based.
+};
+
+
+// Only used by Attribute::Query functions
+enum 
+{ 
+	TIXML_SUCCESS,
+	TIXML_NO_ATTRIBUTE,
+	TIXML_WRONG_TYPE
+};
+
+
+// Used by the parsing routines.
+enum TiXmlEncoding
+{
+	TIXML_ENCODING_UNKNOWN,
+	TIXML_ENCODING_UTF8,
+	TIXML_ENCODING_LEGACY
+};
+
+const TiXmlEncoding TIXML_DEFAULT_ENCODING = TIXML_ENCODING_UNKNOWN;
+
+/** TiXmlBase is a base class for every class in TinyXml.
+	It does little except to establish that TinyXml classes
+	can be printed and provide some utility functions.
+
+	In XML, the document and elements can contain
+	other elements and other types of nodes.
+
+	@verbatim
+	A Document can contain:	Element	(container or leaf)
+							Comment (leaf)
+							Unknown (leaf)
+							Declaration( leaf )
+
+	An Element can contain:	Element (container or leaf)
+							Text	(leaf)
+							Attributes (not on tree)
+							Comment (leaf)
+							Unknown (leaf)
+
+	A Decleration contains: Attributes (not on tree)
+	@endverbatim
+*/
+class TiXmlBase
+{
+	friend class TiXmlNode;
+	friend class TiXmlElement;
+	friend class TiXmlDocument;
+
+public:
+	TiXmlBase()	:	userData(0) {}
+	virtual ~TiXmlBase()					{}
+
+	/**	All TinyXml classes can print themselves to a filestream.
+		This is a formatted print, and will insert tabs and newlines.
+		
+		(For an unformatted stream, use the << operator.)
+	*/
+	virtual void Print( FILE* cfile, int depth ) const = 0;
+
+	/**	The world does not agree on whether white space should be kept or
+		not. In order to make everyone happy, these global, static functions
+		are provided to set whether or not TinyXml will condense all white space
+		into a single space or not. The default is to condense. Note changing this
+		values is not thread safe.
+	*/
+	static void SetCondenseWhiteSpace( bool condense )		{ condenseWhiteSpace = condense; }
+
+	/// Return the current white space setting.
+	static bool IsWhiteSpaceCondensed()						{ return condenseWhiteSpace; }
+
+	/** Return the position, in the original source file, of this node or attribute.
+		The row and column are 1-based. (That is the first row and first column is
+		1,1). If the returns values are 0 or less, then the parser does not have
+		a row and column value.
+
+		Generally, the row and column value will be set when the TiXmlDocument::Load(),
+		TiXmlDocument::LoadFile(), or any TiXmlNode::Parse() is called. It will NOT be set
+		when the DOM was created from operator>>.
+
+		The values reflect the initial load. Once the DOM is modified programmatically
+		(by adding or changing nodes and attributes) the new values will NOT update to
+		reflect changes in the document.
+
+		There is a minor performance cost to computing the row and column. Computation
+		can be disabled if TiXmlDocument::SetTabSize() is called with 0 as the value.
+
+		@sa TiXmlDocument::SetTabSize()
+	*/
+	int Row() const			{ return location.row + 1; }
+	int Column() const		{ return location.col + 1; }	///< See Row()
+
+	void  SetUserData( void* user )			{ userData = user; }
+	void* GetUserData()						{ return userData; }
+
+	// Table that returs, for a given lead byte, the total number of bytes
+	// in the UTF-8 sequence.
+	static const int utf8ByteTable[256];
+
+	virtual const char* Parse(	const char* p, 
+								TiXmlParsingData* data, 
+								TiXmlEncoding encoding /*= TIXML_ENCODING_UNKNOWN */ ) = 0;
+
+	enum
+	{
+		TIXML_NO_ERROR = 0,
+		TIXML_ERROR,
+		TIXML_ERROR_OPENING_FILE,
+		TIXML_ERROR_OUT_OF_MEMORY,
+		TIXML_ERROR_PARSING_ELEMENT,
+		TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME,
+		TIXML_ERROR_READING_ELEMENT_VALUE,
+		TIXML_ERROR_READING_ATTRIBUTES,
+		TIXML_ERROR_PARSING_EMPTY,
+		TIXML_ERROR_READING_END_TAG,
+		TIXML_ERROR_PARSING_UNKNOWN,
+		TIXML_ERROR_PARSING_COMMENT,
+		TIXML_ERROR_PARSING_DECLARATION,
+		TIXML_ERROR_DOCUMENT_EMPTY,
+		TIXML_ERROR_EMBEDDED_NULL,
+
+		TIXML_ERROR_STRING_COUNT
+	};
+
+protected:
+
+	// See STL_STRING_BUG
+	// Utility class to overcome a bug.
+	class StringToBuffer
+	{
+	  public:
+		StringToBuffer( const TIXML_STRING& str );
+		~StringToBuffer();
+		char* buffer;
+	};
+
+	static const char*	SkipWhiteSpace( const char*, TiXmlEncoding encoding );
+	inline static bool	IsWhiteSpace( char c )		
+	{ 
+		return ( isspace( (unsigned char) c ) || c == '\n' || c == '\r' ); 
+	}
+
+	virtual void StreamOut (TIXML_OSTREAM *) const = 0;
+
+	#ifdef TIXML_USE_STL
+	    static bool	StreamWhiteSpace( TIXML_ISTREAM * in, TIXML_STRING * tag );
+	    static bool StreamTo( TIXML_ISTREAM * in, int character, TIXML_STRING * tag );
+	#endif
+
+	/*	Reads an XML name into the string provided. Returns
+		a pointer just past the last character of the name,
+		or 0 if the function has an error.
+	*/
+	static const char* ReadName( const char* p, TIXML_STRING* name, TiXmlEncoding encoding );
+
+	/*	Reads text. Returns a pointer past the given end tag.
+		Wickedly complex options, but it keeps the (sensitive) code in one place.
+	*/
+	static const char* ReadText(	const char* in,				// where to start
+									TIXML_STRING* text,			// the string read
+									bool ignoreWhiteSpace,		// whether to keep the white space
+									const char* endTag,			// what ends this text
+									bool ignoreCase,			// whether to ignore case in the end tag
+									TiXmlEncoding encoding );	// the current encoding
+
+	// If an entity has been found, transform it into a character.
+	static const char* GetEntity( const char* in, char* value, int* length, TiXmlEncoding encoding );
+
+	// Get a character, while interpreting entities.
+	// The length can be from 0 to 4 bytes.
+	inline static const char* GetChar( const char* p, char* _value, int* length, TiXmlEncoding encoding )
+	{
+		assert( p );
+		if ( encoding == TIXML_ENCODING_UTF8 )
+		{
+			*length = utf8ByteTable[ *((unsigned char*)p) ];
+			assert( *length >= 0 && *length < 5 );
+		}
+		else
+		{
+			*length = 1;
+		}
+
+		if ( *length == 1 )
+		{
+			if ( *p == '&' )
+				return GetEntity( p, _value, length, encoding );
+			*_value = *p;
+			return p+1;
+		}
+		else if ( *length )
+		{
+			strncpy( _value, p, *length );
+			return p + (*length);
+		}
+		else
+		{
+			// Not valid text.
+			return 0;
+		}
+	}
+
+	// Puts a string to a stream, expanding entities as it goes.
+	// Note this should not contian the '<', '>', etc, or they will be transformed into entities!
+	static void PutString( const TIXML_STRING& str, TIXML_OSTREAM* out );
+
+	static void PutString( const TIXML_STRING& str, TIXML_STRING* out );
+
+	// Return true if the next characters in the stream are any of the endTag sequences.
+	// Ignore case only works for english, and should only be relied on when comparing
+	// to Engilish words: StringEqual( p, "version", true ) is fine.
+	static bool StringEqual(	const char* p,
+								const char* endTag,
+								bool ignoreCase,
+								TiXmlEncoding encoding );
+
+	static const char* errorString[ TIXML_ERROR_STRING_COUNT ];
+
+	TiXmlCursor location;
+
+    /// Field containing a generic user pointer
+	void*			userData;
+	
+	// None of these methods are reliable for any language except English.
+	// Good for approximation, not great for accuracy.
+	static int IsAlpha( unsigned char anyByte, TiXmlEncoding encoding );
+	static int IsAlphaNum( unsigned char anyByte, TiXmlEncoding encoding );
+	inline static int ToLower( int v, TiXmlEncoding encoding )
+	{
+		if ( encoding == TIXML_ENCODING_UTF8 )
+		{
+			if ( v < 128 ) return tolower( v );
+			return v;
+		}
+		else
+		{
+			return tolower( v );
+		}
+	}
+	static void ConvertUTF32ToUTF8( unsigned long input, char* output, int* length );
+
+private:
+	TiXmlBase( const TiXmlBase& );				// not implemented.
+	void operator=( const TiXmlBase& base );	// not allowed.
+
+	struct Entity
+	{
+		const char*     str;
+		unsigned int	strLength;
+		char		    chr;
+	};
+	enum
+	{
+		NUM_ENTITY = 5,
+		MAX_ENTITY_LENGTH = 6
+
+	};
+	static Entity entity[ NUM_ENTITY ];
+	static bool condenseWhiteSpace;
+};
+
+
+/** The parent class for everything in the Document Object Model.
+	(Except for attributes).
+	Nodes have siblings, a parent, and children. A node can be
+	in a document, or stand on its own. The type of a TiXmlNode
+	can be queried, and it can be cast to its more defined type.
+*/
+class TiXmlNode : public TiXmlBase
+{
+	friend class TiXmlDocument;
+	friend class TiXmlElement;
+
+public:
+	#ifdef TIXML_USE_STL	
+
+	    /** An input stream operator, for every class. Tolerant of newlines and
+		    formatting, but doesn't expect them.
+	    */
+	    friend std::istream& operator >> (std::istream& in, TiXmlNode& base);
+
+	    /** An output stream operator, for every class. Note that this outputs
+		    without any newlines or formatting, as opposed to Print(), which
+		    includes tabs and new lines.
+
+		    The operator<< and operator>> are not completely symmetric. Writing
+		    a node to a stream is very well defined. You'll get a nice stream
+		    of output, without any extra whitespace or newlines.
+		    
+		    But reading is not as well defined. (As it always is.) If you create
+		    a TiXmlElement (for example) and read that from an input stream,
+		    the text needs to define an element or junk will result. This is
+		    true of all input streams, but it's worth keeping in mind.
+
+		    A TiXmlDocument will read nodes until it reads a root element, and
+			all the children of that root element.
+	    */	
+	    friend std::ostream& operator<< (std::ostream& out, const TiXmlNode& base);
+
+		/// Appends the XML node or attribute to a std::string.
+		friend std::string& operator<< (std::string& out, const TiXmlNode& base );
+
+	#else
+	    // Used internally, not part of the public API.
+	    friend TIXML_OSTREAM& operator<< (TIXML_OSTREAM& out, const TiXmlNode& base);
+	#endif
+
+	/** The types of XML nodes supported by TinyXml. (All the
+			unsupported types are picked up by UNKNOWN.)
+	*/
+	enum NodeType
+	{
+		DOCUMENT,
+		ELEMENT,
+		COMMENT,
+		UNKNOWN,
+		TEXT,
+		DECLARATION,
+		TYPECOUNT
+	};
+
+	virtual ~TiXmlNode();
+
+	/** The meaning of 'value' changes for the specific type of
+		TiXmlNode.
+		@verbatim
+		Document:	filename of the xml file
+		Element:	name of the element
+		Comment:	the comment text
+		Unknown:	the tag contents
+		Text:		the text string
+		@endverbatim
+
+		The subclasses will wrap this function.
+	*/
+	const char * Value() const { return value.c_str (); }
+
+	/** Changes the value of the node. Defined as:
+		@verbatim
+		Document:	filename of the xml file
+		Element:	name of the element
+		Comment:	the comment text
+		Unknown:	the tag contents
+		Text:		the text string
+		@endverbatim
+	*/
+	void SetValue(const char * _value) { value = _value;}
+
+    #ifdef TIXML_USE_STL
+	/// STL std::string form.
+	void SetValue( const std::string& _value )    
+	{	  
+		StringToBuffer buf( _value );
+		SetValue( buf.buffer ? buf.buffer : "" );    	
+	}	
+	#endif
+
+	/// Delete all the children of this node. Does not affect 'this'.
+	void Clear();
+
+	/// One step up the DOM.
+	TiXmlNode* Parent()							{ return parent; }
+	const TiXmlNode* Parent() const				{ return parent; }
+
+	const TiXmlNode* FirstChild()	const	{ return firstChild; }		///< The first child of this node. Will be null if there are no children.
+	TiXmlNode* FirstChild()					{ return firstChild; }
+	const TiXmlNode* FirstChild( const char * value ) const;			///< The first child of this node with the matching 'value'. Will be null if none found.
+	TiXmlNode* FirstChild( const char * value );						///< The first child of this node with the matching 'value'. Will be null if none found.
+
+	const TiXmlNode* LastChild() const	{ return lastChild; }		/// The last child of this node. Will be null if there are no children.
+	TiXmlNode* LastChild()	{ return lastChild; }
+	const TiXmlNode* LastChild( const char * value ) const;			/// The last child of this node matching 'value'. Will be null if there are no children.
+	TiXmlNode* LastChild( const char * value );	
+
+    #ifdef TIXML_USE_STL
+	const TiXmlNode* FirstChild( const std::string& _value ) const	{	return FirstChild (_value.c_str ());	}	///< STL std::string form.
+	TiXmlNode* FirstChild( const std::string& _value )				{	return FirstChild (_value.c_str ());	}	///< STL std::string form.
+	const TiXmlNode* LastChild( const std::string& _value ) const	{	return LastChild (_value.c_str ());	}	///< STL std::string form.
+	TiXmlNode* LastChild( const std::string& _value )				{	return LastChild (_value.c_str ());	}	///< STL std::string form.
+	#endif
+
+	/** An alternate way to walk the children of a node.
+		One way to iterate over nodes is:
+		@verbatim
+			for( child = parent->FirstChild(); child; child = child->NextSibling() )
+		@endverbatim
+
+		IterateChildren does the same thing with the syntax:
+		@verbatim
+			child = 0;
+			while( child = parent->IterateChildren( child ) )
+		@endverbatim
+
+		IterateChildren takes the previous child as input and finds
+		the next one. If the previous child is null, it returns the
+		first. IterateChildren will return null when done.
+	*/
+	const TiXmlNode* IterateChildren( TiXmlNode* previous ) const;
+	TiXmlNode* IterateChildren( TiXmlNode* previous );
+
+	/// This flavor of IterateChildren searches for children with a particular 'value'
+	const TiXmlNode* IterateChildren( const char * value, TiXmlNode* previous ) const;
+	TiXmlNode* IterateChildren( const char * value, TiXmlNode* previous );
+
+    #ifdef TIXML_USE_STL
+	const TiXmlNode* IterateChildren( const std::string& _value, TiXmlNode* previous ) const	{	return IterateChildren (_value.c_str (), previous);	}	///< STL std::string form.
+	TiXmlNode* IterateChildren( const std::string& _value, TiXmlNode* previous ) {	return IterateChildren (_value.c_str (), previous);	}	///< STL std::string form.
+	#endif
+
+	/** Add a new node related to this. Adds a child past the LastChild.
+		Returns a pointer to the new object or NULL if an error occured.
+	*/
+	TiXmlNode* InsertEndChild( const TiXmlNode& addThis );
+
+
+	/** Add a new node related to this. Adds a child past the LastChild.
+
+		NOTE: the node to be added is passed by pointer, and will be
+		henceforth owned (and deleted) by tinyXml. This method is efficient
+		and avoids an extra copy, but should be used with care as it
+		uses a different memory model than the other insert functions.
+
+		@sa InsertEndChild
+	*/
+	TiXmlNode* LinkEndChild( TiXmlNode* addThis );
+
+	/** Add a new node related to this. Adds a child before the specified child.
+		Returns a pointer to the new object or NULL if an error occured.
+	*/
+	TiXmlNode* InsertBeforeChild( TiXmlNode* beforeThis, const TiXmlNode& addThis );
+
+	/** Add a new node related to this. Adds a child after the specified child.
+		Returns a pointer to the new object or NULL if an error occured.
+	*/
+	TiXmlNode* InsertAfterChild(  TiXmlNode* afterThis, const TiXmlNode& addThis );
+
+	/** Replace a child of this node.
+		Returns a pointer to the new object or NULL if an error occured.
+	*/
+	TiXmlNode* ReplaceChild( TiXmlNode* replaceThis, const TiXmlNode& withThis );
+
+	/// Delete a child of this node.
+	bool RemoveChild( TiXmlNode* removeThis );
+
+	/// Navigate to a sibling node.
+	const TiXmlNode* PreviousSibling() const			{ return prev; }
+	TiXmlNode* PreviousSibling()						{ return prev; }
+
+	/// Navigate to a sibling node.
+	const TiXmlNode* PreviousSibling( const char * ) const;
+	TiXmlNode* PreviousSibling( const char * );
+
+    #ifdef TIXML_USE_STL
+	const TiXmlNode* PreviousSibling( const std::string& _value ) const	{	return PreviousSibling (_value.c_str ());	}	///< STL std::string form.
+	TiXmlNode* PreviousSibling( const std::string& _value ) 			{	return PreviousSibling (_value.c_str ());	}	///< STL std::string form.
+	const TiXmlNode* NextSibling( const std::string& _value) const		{	return NextSibling (_value.c_str ());	}	///< STL std::string form.
+	TiXmlNode* NextSibling( const std::string& _value) 					{	return NextSibling (_value.c_str ());	}	///< STL std::string form.
+	#endif
+
+	/// Navigate to a sibling node.
+	const TiXmlNode* NextSibling() const				{ return next; }
+	TiXmlNode* NextSibling()							{ return next; }
+
+	/// Navigate to a sibling node with the given 'value'.
+	const TiXmlNode* NextSibling( const char * ) const;
+	TiXmlNode* NextSibling( const char * );
+
+	/** Convenience function to get through elements.
+		Calls NextSibling and ToElement. Will skip all non-Element
+		nodes. Returns 0 if there is not another element.
+	*/
+	const TiXmlElement* NextSiblingElement() const;
+	TiXmlElement* NextSiblingElement();
+
+	/** Convenience function to get through elements.
+		Calls NextSibling and ToElement. Will skip all non-Element
+		nodes. Returns 0 if there is not another element.
+	*/
+	const TiXmlElement* NextSiblingElement( const char * ) const;
+	TiXmlElement* NextSiblingElement( const char * );
+
+    #ifdef TIXML_USE_STL
+	const TiXmlElement* NextSiblingElement( const std::string& _value) const	{	return NextSiblingElement (_value.c_str ());	}	///< STL std::string form.
+	TiXmlElement* NextSiblingElement( const std::string& _value)				{	return NextSiblingElement (_value.c_str ());	}	///< STL std::string form.
+	#endif
+
+	/// Convenience function to get through elements.
+	const TiXmlElement* FirstChildElement()	const;
+	TiXmlElement* FirstChildElement();
+
+	/// Convenience function to get through elements.
+	const TiXmlElement* FirstChildElement( const char * value ) const;
+	TiXmlElement* FirstChildElement( const char * value );
+
+    #ifdef TIXML_USE_STL
+	const TiXmlElement* FirstChildElement( const std::string& _value ) const	{	return FirstChildElement (_value.c_str ());	}	///< STL std::string form.
+	TiXmlElement* FirstChildElement( const std::string& _value )				{	return FirstChildElement (_value.c_str ());	}	///< STL std::string form.
+	#endif
+
+	/** Query the type (as an enumerated value, above) of this node.
+		The possible types are: DOCUMENT, ELEMENT, COMMENT,
+								UNKNOWN, TEXT, and DECLARATION.
+	*/
+	virtual int Type() const	{ return type; }
+
+	/** Return a pointer to the Document this node lives in.
+		Returns null if not in a document.
+	*/
+	const TiXmlDocument* GetDocument() const;
+	TiXmlDocument* GetDocument();
+
+	/// Returns true if this node has no children.
+	bool NoChildren() const						{ return !firstChild; }
+
+	const TiXmlDocument* ToDocument()	const		{ return ( this && type == DOCUMENT ) ? (const TiXmlDocument*) this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlElement*  ToElement() const			{ return ( this && type == ELEMENT  ) ? (const TiXmlElement*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlComment*  ToComment() const			{ return ( this && type == COMMENT  ) ? (const TiXmlComment*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlUnknown*  ToUnknown() const			{ return ( this && type == UNKNOWN  ) ? (const TiXmlUnknown*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlText*	   ToText()    const		{ return ( this && type == TEXT     ) ? (const TiXmlText*)     this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlDeclaration* ToDeclaration() const	{ return ( this && type == DECLARATION ) ? (const TiXmlDeclaration*) this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+
+	TiXmlDocument* ToDocument()			{ return ( this && type == DOCUMENT ) ? (TiXmlDocument*) this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlElement*  ToElement()			{ return ( this && type == ELEMENT  ) ? (TiXmlElement*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlComment*  ToComment()			{ return ( this && type == COMMENT  ) ? (TiXmlComment*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlUnknown*  ToUnknown()			{ return ( this && type == UNKNOWN  ) ? (TiXmlUnknown*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlText*	   ToText()   			{ return ( this && type == TEXT     ) ? (TiXmlText*)     this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlDeclaration* ToDeclaration()	{ return ( this && type == DECLARATION ) ? (TiXmlDeclaration*) this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+
+	/** Create an exact duplicate of this node and return it. The memory must be deleted
+		by the caller. 
+	*/
+	virtual TiXmlNode* Clone() const = 0;
+
+protected:
+	TiXmlNode( NodeType _type );
+
+	// Copy to the allocated object. Shared functionality between Clone, Copy constructor,
+	// and the assignment operator.
+	void CopyTo( TiXmlNode* target ) const;
+
+	#ifdef TIXML_USE_STL
+	    // The real work of the input operator.
+	    virtual void StreamIn( TIXML_ISTREAM* in, TIXML_STRING* tag ) = 0;
+	#endif
+
+	// Figure out what is at *p, and parse it. Returns null if it is not an xml node.
+	TiXmlNode* Identify( const char* start, TiXmlEncoding encoding );
+
+	// Internal Value function returning a TIXML_STRING
+	const TIXML_STRING& SValue() const	{ return value ; }
+
+	TiXmlNode*		parent;
+	NodeType		type;
+
+	TiXmlNode*		firstChild;
+	TiXmlNode*		lastChild;
+
+	TIXML_STRING	value;
+
+	TiXmlNode*		prev;
+	TiXmlNode*		next;
+
+private:
+	TiXmlNode( const TiXmlNode& );				// not implemented.
+	void operator=( const TiXmlNode& base );	// not allowed.
+};
+
+
+/** An attribute is a name-value pair. Elements have an arbitrary
+	number of attributes, each with a unique name.
+
+	@note The attributes are not TiXmlNodes, since they are not
+		  part of the tinyXML document object model. There are other
+		  suggested ways to look at this problem.
+*/
+class TiXmlAttribute : public TiXmlBase
+{
+	friend class TiXmlAttributeSet;
+
+public:
+	/// Construct an empty attribute.
+	TiXmlAttribute() : TiXmlBase()
+	{
+		document = 0;
+		prev = next = 0;
+	}
+
+	#ifdef TIXML_USE_STL
+	/// std::string constructor.
+	TiXmlAttribute( const std::string& _name, const std::string& _value )
+	{
+		name = _name;
+		value = _value;
+		document = 0;
+		prev = next = 0;
+	}
+	#endif
+
+	/// Construct an attribute with a name and value.
+	TiXmlAttribute( const char * _name, const char * _value )
+	{
+		name = _name;
+		value = _value;
+		document = 0;
+		prev = next = 0;
+	}
+
+	const char*		Name()  const		{ return name.c_str (); }		///< Return the name of this attribute.
+	const char*		Value() const		{ return value.c_str (); }		///< Return the value of this attribute.
+	const int       IntValue() const;									///< Return the value of this attribute, converted to an integer.
+	const double	DoubleValue() const;								///< Return the value of this attribute, converted to a double.
+
+	/** QueryIntValue examines the value string. It is an alternative to the
+		IntValue() method with richer error checking.
+		If the value is an integer, it is stored in 'value' and 
+		the call returns TIXML_SUCCESS. If it is not
+		an integer, it returns TIXML_WRONG_TYPE.
+
+		A specialized but useful call. Note that for success it returns 0,
+		which is the opposite of almost all other TinyXml calls.
+	*/
+	int QueryIntValue( int* value ) const;
+	/// QueryDoubleValue examines the value string. See QueryIntValue().
+	int QueryDoubleValue( double* value ) const;
+
+	void SetName( const char* _name )	{ name = _name; }				///< Set the name of this attribute.
+	void SetValue( const char* _value )	{ value = _value; }				///< Set the value.
+
+	void SetIntValue( int value );										///< Set the value from an integer.
+	void SetDoubleValue( double value );								///< Set the value from a double.
+
+    #ifdef TIXML_USE_STL
+	/// STL std::string form.
+	void SetName( const std::string& _name )	
+	{	
+		StringToBuffer buf( _name );
+		SetName ( buf.buffer ? buf.buffer : "error" );	
+	}
+	/// STL std::string form.	
+	void SetValue( const std::string& _value )	
+	{	
+		StringToBuffer buf( _value );
+		SetValue( buf.buffer ? buf.buffer : "error" );	
+	}
+	#endif
+
+	/// Get the next sibling attribute in the DOM. Returns null at end.
+	const TiXmlAttribute* Next() const;
+	TiXmlAttribute* Next();
+	/// Get the previous sibling attribute in the DOM. Returns null at beginning.
+	const TiXmlAttribute* Previous() const;
+	TiXmlAttribute* Previous();
+
+	bool operator==( const TiXmlAttribute& rhs ) const { return rhs.name == name; }
+	bool operator<( const TiXmlAttribute& rhs )	 const { return name < rhs.name; }
+	bool operator>( const TiXmlAttribute& rhs )  const { return name > rhs.name; }
+
+	/*	Attribute parsing starts: first letter of the name
+						 returns: the next char after the value end quote
+	*/
+	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+
+	// Prints this Attribute to a FILE stream.
+	virtual void Print( FILE* cfile, int depth ) const;
+
+	virtual void StreamOut( TIXML_OSTREAM * out ) const;
+	// [internal use]
+	// Set the document pointer so the attribute can report errors.
+	void SetDocument( TiXmlDocument* doc )	{ document = doc; }
+
+private:
+	TiXmlAttribute( const TiXmlAttribute& );				// not implemented.
+	void operator=( const TiXmlAttribute& base );	// not allowed.
+
+	TiXmlDocument*	document;	// A pointer back to a document, for error reporting.
+	TIXML_STRING name;
+	TIXML_STRING value;
+	TiXmlAttribute*	prev;
+	TiXmlAttribute*	next;
+};
+
+
+/*	A class used to manage a group of attributes.
+	It is only used internally, both by the ELEMENT and the DECLARATION.
+	
+	The set can be changed transparent to the Element and Declaration
+	classes that use it, but NOT transparent to the Attribute
+	which has to implement a next() and previous() method. Which makes
+	it a bit problematic and prevents the use of STL.
+
+	This version is implemented with circular lists because:
+		- I like circular lists
+		- it demonstrates some independence from the (typical) doubly linked list.
+*/
+class TiXmlAttributeSet
+{
+public:
+	TiXmlAttributeSet();
+	~TiXmlAttributeSet();
+
+	void Add( TiXmlAttribute* attribute );
+	void Remove( TiXmlAttribute* attribute );
+
+	const TiXmlAttribute* First()	const	{ return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; }
+	TiXmlAttribute* First()					{ return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; }
+	const TiXmlAttribute* Last() const		{ return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; }
+	TiXmlAttribute* Last()					{ return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; }
+
+	const TiXmlAttribute*	Find( const char * name ) const;
+	TiXmlAttribute*	Find( const char * name );
+
+private:
+	//*ME:	Because of hidden/disabled copy-construktor in TiXmlAttribute (sentinel-element),
+	//*ME:	this class must be also use a hidden/disabled copy-constructor !!!
+	TiXmlAttributeSet( const TiXmlAttributeSet& );	// not allowed
+	void operator=( const TiXmlAttributeSet& );	// not allowed (as TiXmlAttribute)
+
+	TiXmlAttribute sentinel;
+};
+
+
+/** The element is a container class. It has a value, the element name,
+	and can contain other elements, text, comments, and unknowns.
+	Elements also contain an arbitrary number of attributes.
+*/
+class TiXmlElement : public TiXmlNode
+{
+public:
+	/// Construct an element.
+	TiXmlElement (const char * in_value);
+
+	#ifdef TIXML_USE_STL
+	/// std::string constructor.
+	TiXmlElement( const std::string& _value );
+	#endif
+
+	TiXmlElement( const TiXmlElement& );
+
+	void operator=( const TiXmlElement& base );
+
+	virtual ~TiXmlElement();
+
+	/** Given an attribute name, Attribute() returns the value
+		for the attribute of that name, or null if none exists.
+	*/
+	const char* Attribute( const char* name ) const;
+
+	/** Given an attribute name, Attribute() returns the value
+		for the attribute of that name, or null if none exists.
+		If the attribute exists and can be converted to an integer,
+		the integer value will be put in the return 'i', if 'i'
+		is non-null.
+	*/
+	const char* Attribute( const char* name, int* i ) const;
+
+	/** Given an attribute name, Attribute() returns the value
+		for the attribute of that name, or null if none exists.
+		If the attribute exists and can be converted to an double,
+		the double value will be put in the return 'd', if 'd'
+		is non-null.
+	*/
+	const char* Attribute( const char* name, double* d ) const;
+
+	/** QueryIntAttribute examines the attribute - it is an alternative to the
+		Attribute() method with richer error checking.
+		If the attribute is an integer, it is stored in 'value' and 
+		the call returns TIXML_SUCCESS. If it is not
+		an integer, it returns TIXML_WRONG_TYPE. If the attribute
+		does not exist, then TIXML_NO_ATTRIBUTE is returned.
+	*/	
+	int QueryIntAttribute( const char* name, int* value ) const;
+	/// QueryDoubleAttribute examines the attribute - see QueryIntAttribute().
+	int QueryDoubleAttribute( const char* name, double* value ) const;
+	/// QueryFloatAttribute examines the attribute - see QueryIntAttribute().
+	int QueryDoubleAttribute( const char* name, float* value ) const {
+		double d;
+		int result = QueryDoubleAttribute( name, &d );
+		*value = (float)d;
+		return result;
+	}
+
+	/** Sets an attribute of name to a given value. The attribute
+		will be created if it does not exist, or changed if it does.
+	*/
+	void SetAttribute( const char* name, const char * value );
+
+    #ifdef TIXML_USE_STL
+	const char* Attribute( const std::string& name ) const				{ return Attribute( name.c_str() ); }
+	const char* Attribute( const std::string& name, int* i ) const		{ return Attribute( name.c_str(), i ); }
+	const char* Attribute( const std::string& name, double* d ) const	{ return Attribute( name.c_str(), d ); }
+	int QueryIntAttribute( const std::string& name, int* value ) const	{ return QueryIntAttribute( name.c_str(), value ); }
+	int QueryDoubleAttribute( const std::string& name, double* value ) const { return QueryDoubleAttribute( name.c_str(), value ); }
+
+	/// STL std::string form.
+	void SetAttribute( const std::string& name, const std::string& _value )	
+	{	
+		StringToBuffer n( name );
+		StringToBuffer v( _value );
+		if ( n.buffer && v.buffer )
+			SetAttribute (n.buffer, v.buffer );	
+	}	
+	///< STL std::string form.
+	void SetAttribute( const std::string& name, int _value )	
+	{	
+		StringToBuffer n( name );
+		if ( n.buffer )
+			SetAttribute (n.buffer, _value);	
+	}	
+	#endif
+
+	/** Sets an attribute of name to a given value. The attribute
+		will be created if it does not exist, or changed if it does.
+	*/
+	void SetAttribute( const char * name, int value );
+
+	/** Sets an attribute of name to a given value. The attribute
+		will be created if it does not exist, or changed if it does.
+	*/
+	void SetDoubleAttribute( const char * name, double value );
+
+	/** Deletes an attribute with the given name.
+	*/
+	void RemoveAttribute( const char * name );
+    #ifdef TIXML_USE_STL
+	void RemoveAttribute( const std::string& name )	{	RemoveAttribute (name.c_str ());	}	///< STL std::string form.
+	#endif
+
+	const TiXmlAttribute* FirstAttribute() const	{ return attributeSet.First(); }		///< Access the first attribute in this element.
+	TiXmlAttribute* FirstAttribute() 				{ return attributeSet.First(); }
+	const TiXmlAttribute* LastAttribute()	const 	{ return attributeSet.Last(); }		///< Access the last attribute in this element.
+	TiXmlAttribute* LastAttribute()					{ return attributeSet.Last(); }
+
+	/// Creates a new Element and returns it - the returned element is a copy.
+	virtual TiXmlNode* Clone() const;
+	// Print the Element to a FILE stream.
+	virtual void Print( FILE* cfile, int depth ) const;
+
+	/*	Attribtue parsing starts: next char past '<'
+						 returns: next char past '>'
+	*/
+	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+
+protected:
+
+	void CopyTo( TiXmlElement* target ) const;
+	void ClearThis();	// like clear, but initializes 'this' object as well
+
+	// Used to be public [internal use]
+	#ifdef TIXML_USE_STL
+	    virtual void StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+	#endif
+	virtual void StreamOut( TIXML_OSTREAM * out ) const;
+
+	/*	[internal use]
+		Reads the "value" of the element -- another element, or text.
+		This should terminate with the current end tag.
+	*/
+	const char* ReadValue( const char* in, TiXmlParsingData* prevData, TiXmlEncoding encoding );
+
+private:
+
+	TiXmlAttributeSet attributeSet;
+};
+
+
+/**	An XML comment.
+*/
+class TiXmlComment : public TiXmlNode
+{
+public:
+	/// Constructs an empty comment.
+	TiXmlComment() : TiXmlNode( TiXmlNode::COMMENT ) {}
+	TiXmlComment( const TiXmlComment& );
+	void operator=( const TiXmlComment& base );
+
+	virtual ~TiXmlComment()	{}
+
+	/// Returns a copy of this Comment.
+	virtual TiXmlNode* Clone() const;
+	/// Write this Comment to a FILE stream.
+	virtual void Print( FILE* cfile, int depth ) const;
+
+	/*	Attribtue parsing starts: at the ! of the !--
+						 returns: next char past '>'
+	*/
+	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+
+protected:
+	void CopyTo( TiXmlComment* target ) const;
+
+	// used to be public
+	#ifdef TIXML_USE_STL
+	    virtual void StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+	#endif
+	virtual void StreamOut( TIXML_OSTREAM * out ) const;
+
+private:
+
+};
+
+
+/** XML text. Contained in an element.
+*/
+class TiXmlText : public TiXmlNode
+{
+	friend class TiXmlElement;
+public:
+	/// Constructor.
+	TiXmlText (const char * initValue) : TiXmlNode (TiXmlNode::TEXT)
+	{
+		SetValue( initValue );
+	}
+	virtual ~TiXmlText() {}
+
+	#ifdef TIXML_USE_STL
+	/// Constructor.
+	TiXmlText( const std::string& initValue ) : TiXmlNode (TiXmlNode::TEXT)
+	{
+		SetValue( initValue );
+	}
+	#endif
+
+	TiXmlText( const TiXmlText& copy ) : TiXmlNode( TiXmlNode::TEXT )	{ copy.CopyTo( this ); }
+	void operator=( const TiXmlText& base )							 	{ base.CopyTo( this ); }
+
+	/// Write this text object to a FILE stream.
+	virtual void Print( FILE* cfile, int depth ) const;
+
+	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+
+protected :
+	///  [internal use] Creates a new Element and returns it.
+	virtual TiXmlNode* Clone() const;
+	void CopyTo( TiXmlText* target ) const;
+
+	virtual void StreamOut ( TIXML_OSTREAM * out ) const;
+	bool Blank() const;	// returns true if all white space and new lines
+	// [internal use]
+	#ifdef TIXML_USE_STL
+	    virtual void StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+	#endif
+
+private:
+};
+
+
+/** In correct XML the declaration is the first entry in the file.
+	@verbatim
+		<?xml version="1.0" standalone="yes"?>
+	@endverbatim
+
+	TinyXml will happily read or write files without a declaration,
+	however. There are 3 possible attributes to the declaration:
+	version, encoding, and standalone.
+
+	Note: In this version of the code, the attributes are
+	handled as special cases, not generic attributes, simply
+	because there can only be at most 3 and they are always the same.
+*/
+class TiXmlDeclaration : public TiXmlNode
+{
+public:
+	/// Construct an empty declaration.
+	TiXmlDeclaration()   : TiXmlNode( TiXmlNode::DECLARATION ) {}
+
+#ifdef TIXML_USE_STL
+	/// Constructor.
+	TiXmlDeclaration(	const std::string& _version,
+						const std::string& _encoding,
+						const std::string& _standalone );
+#endif
+
+	/// Construct.
+	TiXmlDeclaration(	const char* _version,
+						const char* _encoding,
+						const char* _standalone );
+
+	TiXmlDeclaration( const TiXmlDeclaration& copy );
+	void operator=( const TiXmlDeclaration& copy );
+
+	virtual ~TiXmlDeclaration()	{}
+
+	/// Version. Will return an empty string if none was found.
+	const char *Version() const			{ return version.c_str (); }
+	/// Encoding. Will return an empty string if none was found.
+	const char *Encoding() const		{ return encoding.c_str (); }
+	/// Is this a standalone document?
+	const char *Standalone() const		{ return standalone.c_str (); }
+
+	/// Creates a copy of this Declaration and returns it.
+	virtual TiXmlNode* Clone() const;
+	/// Print this declaration to a FILE stream.
+	virtual void Print( FILE* cfile, int depth ) const;
+
+	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+
+protected:
+	void CopyTo( TiXmlDeclaration* target ) const;
+	// used to be public
+	#ifdef TIXML_USE_STL
+	    virtual void StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+	#endif
+	virtual void StreamOut ( TIXML_OSTREAM * out) const;
+
+private:
+
+	TIXML_STRING version;
+	TIXML_STRING encoding;
+	TIXML_STRING standalone;
+};
+
+
+/** Any tag that tinyXml doesn't recognize is saved as an
+	unknown. It is a tag of text, but should not be modified.
+	It will be written back to the XML, unchanged, when the file
+	is saved.
+
+	DTD tags get thrown into TiXmlUnknowns.
+*/
+class TiXmlUnknown : public TiXmlNode
+{
+public:
+	TiXmlUnknown() : TiXmlNode( TiXmlNode::UNKNOWN )	{}
+	virtual ~TiXmlUnknown() {}
+
+	TiXmlUnknown( const TiXmlUnknown& copy ) : TiXmlNode( TiXmlNode::UNKNOWN )		{ copy.CopyTo( this ); }
+	void operator=( const TiXmlUnknown& copy )										{ copy.CopyTo( this ); }
+
+	/// Creates a copy of this Unknown and returns it.
+	virtual TiXmlNode* Clone() const;
+	/// Print this Unknown to a FILE stream.
+	virtual void Print( FILE* cfile, int depth ) const;
+
+	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+
+protected:
+	void CopyTo( TiXmlUnknown* target ) const;
+
+	#ifdef TIXML_USE_STL
+	    virtual void StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+	#endif
+	virtual void StreamOut ( TIXML_OSTREAM * out ) const;
+
+private:
+
+};
+
+
+/** Always the top level node. A document binds together all the
+	XML pieces. It can be saved, loaded, and printed to the screen.
+	The 'value' of a document node is the xml file name.
+*/
+class TiXmlDocument : public TiXmlNode
+{
+public:
+	/// Create an empty document, that has no name.
+	TiXmlDocument();
+	/// Create a document with a name. The name of the document is also the filename of the xml.
+	TiXmlDocument( const char * documentName );
+
+	#ifdef TIXML_USE_STL
+	/// Constructor.
+	TiXmlDocument( const std::string& documentName );
+	#endif
+
+	TiXmlDocument( const TiXmlDocument& copy );
+	void operator=( const TiXmlDocument& copy );
+
+	virtual ~TiXmlDocument() {}
+
+	/** Load a file using the current document value.
+		Returns true if successful. Will delete any existing
+		document data before loading.
+	*/
+	bool LoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+	/// Save a file using the current document value. Returns true if successful.
+	bool SaveFile() const;
+	/// Load a file using the given filename. Returns true if successful.
+	bool LoadFile( const char * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+	/// Save a file using the given filename. Returns true if successful.
+	bool SaveFile( const char * filename ) const;
+
+	#ifdef TIXML_USE_STL
+	bool LoadFile( const std::string& filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING )			///< STL std::string version.
+	{
+		StringToBuffer f( filename );
+		return ( f.buffer && LoadFile( f.buffer, encoding ));
+	}
+	bool SaveFile( const std::string& filename ) const		///< STL std::string version.
+	{
+		StringToBuffer f( filename );
+		return ( f.buffer && SaveFile( f.buffer ));
+	}
+	#endif
+
+	/** Parse the given null terminated block of xml data. Passing in an encoding to this
+		method (either TIXML_ENCODING_LEGACY or TIXML_ENCODING_UTF8 will force TinyXml
+		to use that encoding, regardless of what TinyXml might otherwise try to detect.
+	*/
+	virtual const char* Parse( const char* p, TiXmlParsingData* data = 0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+
+	/** Get the root element -- the only top level element -- of the document.
+		In well formed XML, there should only be one. TinyXml is tolerant of
+		multiple elements at the document level.
+	*/
+	const TiXmlElement* RootElement() const		{ return FirstChildElement(); }
+	TiXmlElement* RootElement()					{ return FirstChildElement(); }
+
+	/** If an error occurs, Error will be set to true. Also,
+		- The ErrorId() will contain the integer identifier of the error (not generally useful)
+		- The ErrorDesc() method will return the name of the error. (very useful)
+		- The ErrorRow() and ErrorCol() will return the location of the error (if known)
+	*/	
+	bool Error() const						{ return error; }
+
+	/// Contains a textual (english) description of the error if one occurs.
+	const char * ErrorDesc() const	{ return errorDesc.c_str (); }
+
+	/** Generally, you probably want the error string ( ErrorDesc() ). But if you
+		prefer the ErrorId, this function will fetch it.
+	*/
+	const int ErrorId()	const				{ return errorId; }
+
+	/** Returns the location (if known) of the error. The first column is column 1, 
+		and the first row is row 1. A value of 0 means the row and column wasn't applicable
+		(memory errors, for example, have no row/column) or the parser lost the error. (An
+		error in the error reporting, in that case.)
+
+		@sa SetTabSize, Row, Column
+	*/
+	int ErrorRow()	{ return errorLocation.row+1; }
+	int ErrorCol()	{ return errorLocation.col+1; }	///< The column where the error occured. See ErrorRow()
+
+	/** By calling this method, with a tab size
+		greater than 0, the row and column of each node and attribute is stored
+		when the file is loaded. Very useful for tracking the DOM back in to
+		the source file.
+
+		The tab size is required for calculating the location of nodes. If not
+		set, the default of 4 is used. The tabsize is set per document. Setting
+		the tabsize to 0 disables row/column tracking.
+
+		Note that row and column tracking is not supported when using operator>>.
+
+		The tab size needs to be enabled before the parse or load. Correct usage:
+		@verbatim
+		TiXmlDocument doc;
+		doc.SetTabSize( 8 );
+		doc.Load( "myfile.xml" );
+		@endverbatim
+
+		@sa Row, Column
+	*/
+	void SetTabSize( int _tabsize )		{ tabsize = _tabsize; }
+
+	int TabSize() const	{ return tabsize; }
+
+	/** If you have handled the error, it can be reset with this call. The error
+		state is automatically cleared if you Parse a new XML block.
+	*/
+	void ClearError()						{	error = false; 
+												errorId = 0; 
+												errorDesc = ""; 
+												errorLocation.row = errorLocation.col = 0; 
+												//errorLocation.last = 0; 
+											}
+
+	/** Dump the document to standard out. */
+	void Print() const						{ Print( stdout, 0 ); }
+
+	/// Print this Document to a FILE stream.
+	virtual void Print( FILE* cfile, int depth = 0 ) const;
+	// [internal use]
+	void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding );
+
+protected :
+	virtual void StreamOut ( TIXML_OSTREAM * out) const;
+	// [internal use]
+	virtual TiXmlNode* Clone() const;
+	#ifdef TIXML_USE_STL
+	    virtual void StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+	#endif
+
+private:
+	void CopyTo( TiXmlDocument* target ) const;
+
+	bool error;
+	int  errorId;
+	TIXML_STRING errorDesc;
+	int tabsize;
+	TiXmlCursor errorLocation;
+};
+
+
+/**
+	A TiXmlHandle is a class that wraps a node pointer with null checks; this is
+	an incredibly useful thing. Note that TiXmlHandle is not part of the TinyXml
+	DOM structure. It is a separate utility class.
+
+	Take an example:
+	@verbatim
+	<Document>
+		<Element attributeA = "valueA">
+			<Child attributeB = "value1" />
+			<Child attributeB = "value2" />
+		</Element>
+	<Document>
+	@endverbatim
+
+	Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very 
+	easy to write a *lot* of code that looks like:
+
+	@verbatim
+	TiXmlElement* root = document.FirstChildElement( "Document" );
+	if ( root )
+	{
+		TiXmlElement* element = root->FirstChildElement( "Element" );
+		if ( element )
+		{
+			TiXmlElement* child = element->FirstChildElement( "Child" );
+			if ( child )
+			{
+				TiXmlElement* child2 = child->NextSiblingElement( "Child" );
+				if ( child2 )
+				{
+					// Finally do something useful.
+	@endverbatim
+
+	And that doesn't even cover "else" cases. TiXmlHandle addresses the verbosity
+	of such code. A TiXmlHandle checks for null	pointers so it is perfectly safe 
+	and correct to use:
+
+	@verbatim
+	TiXmlHandle docHandle( &document );
+	TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).Element();
+	if ( child2 )
+	{
+		// do something useful
+	@endverbatim
+
+	Which is MUCH more concise and useful.
+
+	It is also safe to copy handles - internally they are nothing more than node pointers.
+	@verbatim
+	TiXmlHandle handleCopy = handle;
+	@endverbatim
+
+	What they should not be used for is iteration:
+
+	@verbatim
+	int i=0; 
+	while ( true )
+	{
+		TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", i ).Element();
+		if ( !child )
+			break;
+		// do something
+		++i;
+	}
+	@endverbatim
+
+	It seems reasonable, but it is in fact two embedded while loops. The Child method is 
+	a linear walk to find the element, so this code would iterate much more than it needs 
+	to. Instead, prefer:
+
+	@verbatim
+	TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).FirstChild( "Child" ).Element();
+
+	for( child; child; child=child->NextSiblingElement() )
+	{
+		// do something
+	}
+	@endverbatim
+*/
+class TiXmlHandle
+{
+public:
+	/// Create a handle from any node (at any depth of the tree.) This can be a null pointer.
+	TiXmlHandle( TiXmlNode* node )					{ this->node = node; }
+	/// Copy constructor
+	TiXmlHandle( const TiXmlHandle& ref )			{ this->node = ref.node; }
+	TiXmlHandle operator=( const TiXmlHandle& ref ) { this->node = ref.node; return *this; }
+
+	/// Return a handle to the first child node.
+	TiXmlHandle FirstChild() const;
+	/// Return a handle to the first child node with the given name.
+	TiXmlHandle FirstChild( const char * value ) const;
+	/// Return a handle to the first child element.
+	TiXmlHandle FirstChildElement() const;
+	/// Return a handle to the first child element with the given name.
+	TiXmlHandle FirstChildElement( const char * value ) const;
+
+	/** Return a handle to the "index" child with the given name. 
+		The first child is 0, the second 1, etc.
+	*/
+	TiXmlHandle Child( const char* value, int index ) const;
+	/** Return a handle to the "index" child. 
+		The first child is 0, the second 1, etc.
+	*/
+	TiXmlHandle Child( int index ) const;
+	/** Return a handle to the "index" child element with the given name. 
+		The first child element is 0, the second 1, etc. Note that only TiXmlElements
+		are indexed: other types are not counted.
+	*/
+	TiXmlHandle ChildElement( const char* value, int index ) const;
+	/** Return a handle to the "index" child element. 
+		The first child element is 0, the second 1, etc. Note that only TiXmlElements
+		are indexed: other types are not counted.
+	*/
+	TiXmlHandle ChildElement( int index ) const;
+
+	#ifdef TIXML_USE_STL
+	TiXmlHandle FirstChild( const std::string& _value ) const				{ return FirstChild( _value.c_str() ); }
+	TiXmlHandle FirstChildElement( const std::string& _value ) const		{ return FirstChildElement( _value.c_str() ); }
+
+	TiXmlHandle Child( const std::string& _value, int index ) const			{ return Child( _value.c_str(), index ); }
+	TiXmlHandle ChildElement( const std::string& _value, int index ) const	{ return ChildElement( _value.c_str(), index ); }
+	#endif
+
+	/// Return the handle as a TiXmlNode. This may return null.
+	TiXmlNode* Node() const			{ return node; } 
+	/// Return the handle as a TiXmlElement. This may return null.
+	TiXmlElement* Element() const	{ return ( ( node && node->ToElement() ) ? node->ToElement() : 0 ); }
+	/// Return the handle as a TiXmlText. This may return null.
+	TiXmlText* Text() const			{ return ( ( node && node->ToText() ) ? node->ToText() : 0 ); }
+	/// Return the handle as a TiXmlUnknown. This may return null;
+	TiXmlUnknown* Unknown() const			{ return ( ( node && node->ToUnknown() ) ? node->ToUnknown() : 0 ); }
+
+private:
+	TiXmlNode* node;
+};
+
+
+#endif
+
Index: orxonox/branches/physics/src/lib/tinyxml/tinyxmlerror.cc
===================================================================
--- orxonox/branches/physics/src/lib/tinyxml/tinyxmlerror.cc	(revision 4283)
+++ orxonox/branches/physics/src/lib/tinyxml/tinyxmlerror.cc	(revision 4283)
@@ -0,0 +1,51 @@
+/*
+www.sourceforge.net/projects/tinyxml
+Original code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)
+
+This software is provided 'as-is', without any express or implied 
+warranty. In no event will the authors be held liable for any 
+damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any 
+purpose, including commercial applications, and to alter it and 
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+not claim that you wrote the original software. If you use this
+software in a product, an acknowledgment in the product documentation
+would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and
+must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+distribution.
+*/
+
+#include "tinyxml.h"
+
+// The goal of the seperate error file is to make the first
+// step towards localization. tinyxml (currently) only supports
+// latin-1, but at least the error messages could now be translated.
+//
+// It also cleans up the code a bit.
+//
+
+const char* TiXmlBase::errorString[ TIXML_ERROR_STRING_COUNT ] =
+{
+	"No error",
+	"Error",
+	"Failed to open file",
+	"Memory allocation failed.",
+	"Error parsing Element.",
+	"Failed to read Element name",
+	"Error reading Element value.",
+	"Error reading Attributes.",
+	"Error: empty tag.",
+	"Error reading end tag.",
+	"Error parsing Unknown.",
+	"Error parsing Comment.",
+	"Error parsing Declaration.",
+	"Error document empty.",
+	"Error null (0) or unexpected EOF found in input stream.",
+};
Index: orxonox/branches/physics/src/lib/tinyxml/tinyxmlparser.cc
===================================================================
--- orxonox/branches/physics/src/lib/tinyxml/tinyxmlparser.cc	(revision 4283)
+++ orxonox/branches/physics/src/lib/tinyxml/tinyxmlparser.cc	(revision 4283)
@@ -0,0 +1,1503 @@
+/*
+www.sourceforge.net/projects/tinyxml
+Original code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)
+
+This software is provided 'as-is', without any express or implied 
+warranty. In no event will the authors be held liable for any 
+damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any 
+purpose, including commercial applications, and to alter it and 
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must 
+not claim that you wrote the original software. If you use this
+software in a product, an acknowledgment in the product documentation
+would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and 
+must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source 
+distribution.
+*/
+
+#include "tinyxml.h"
+#include <ctype.h>
+
+//#define DEBUG_PARSER
+
+// Note tha "PutString" hardcodes the same list. This
+// is less flexible than it appears. Changing the entries
+// or order will break putstring.	
+TiXmlBase::Entity TiXmlBase::entity[ NUM_ENTITY ] = 
+{
+	{ "&amp;",  5, '&' },
+	{ "&lt;",   4, '<' },
+	{ "&gt;",   4, '>' },
+	{ "&quot;", 6, '\"' },
+	{ "&apos;", 6, '\'' }
+};
+
+// Bunch of unicode info at:
+//		http://www.unicode.org/faq/utf_bom.html
+// Including the basic of this table, which determines the #bytes in the
+// sequence from the lead byte. 1 placed for invalid sequences --
+// although the result will be junk, pass it through as much as possible.
+// Beware of the non-characters in UTF-8:	
+//				ef bb bf (Microsoft "lead bytes")
+//				ef bf be
+//				ef bf bf 
+
+const char TIXML_UTF_LEAD_0 = (const char)0xef;
+const char TIXML_UTF_LEAD_1 = (const char)0xbb;
+const char TIXML_UTF_LEAD_2 = (const char)0xbf;
+
+const int TiXmlBase::utf8ByteTable[256] = 
+{
+	//	0	1	2	3	4	5	6	7	8	9	a	b	c	d	e	f
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x00
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x10
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x20
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x30
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x40
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x50
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x60
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x70	End of ASCII range
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x80 0x80 to 0xc1 invalid
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x90 
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0xa0 
+		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0xb0 
+		1,	1,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	// 0xc0 0xc2 to 0xdf 2 byte
+		2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	// 0xd0
+		3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	// 0xe0 0xe0 to 0xef 3 byte
+		4,	4,	4,	4,	4,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1	// 0xf0 0xf0 to 0xf4 4 byte, 0xf5 and higher invalid
+};
+
+
+void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* length )
+{
+	const unsigned long BYTE_MASK = 0xBF;
+	const unsigned long BYTE_MARK = 0x80;
+	const unsigned long FIRST_BYTE_MARK[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };
+
+	if (input < 0x80) 
+		*length = 1;
+	else if ( input < 0x800 )
+		*length = 2;
+	else if ( input < 0x10000 )
+		*length = 3;
+	else if ( input < 0x200000 )
+		*length = 4;
+	else
+		{ *length = 0; return; }	// This code won't covert this correctly anyway.
+
+	output += *length;
+
+	// Scary scary fall throughs.
+	switch (*length) 
+	{
+		case 4:
+			--output; 
+			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 
+			input >>= 6;
+		case 3:
+			--output; 
+			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 
+			input >>= 6;
+		case 2:
+			--output; 
+			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 
+			input >>= 6;
+		case 1:
+			--output; 
+			*output = (char)(input | FIRST_BYTE_MARK[*length]);
+	}
+}
+
+
+/*static*/ int TiXmlBase::IsAlpha( unsigned char anyByte, TiXmlEncoding )
+{
+	// This will only work for low-ascii, everything else is assumed to be a valid
+	// letter. I'm not sure this is the best approach, but it is quite tricky trying
+	// to figure out alhabetical vs. not across encoding. So take a very 
+	// conservative approach.
+
+//	if ( encoding == TIXML_ENCODING_UTF8 )
+//	{
+		if ( anyByte < 127 )
+			return isalpha( anyByte );
+		else
+			return 1;	// What else to do? The unicode set is huge...get the english ones right.
+//	}
+//	else
+//	{
+//		return isalpha( anyByte );
+//	}
+}
+
+
+/*static*/ int TiXmlBase::IsAlphaNum( unsigned char anyByte, TiXmlEncoding )
+{
+	// This will only work for low-ascii, everything else is assumed to be a valid
+	// letter. I'm not sure this is the best approach, but it is quite tricky trying
+	// to figure out alhabetical vs. not across encoding. So take a very 
+	// conservative approach.
+
+//	if ( encoding == TIXML_ENCODING_UTF8 )
+//	{
+		if ( anyByte < 127 )
+			return isalnum( anyByte );
+		else
+			return 1;	// What else to do? The unicode set is huge...get the english ones right.
+//	}
+//	else
+//	{
+//		return isalnum( anyByte );
+//	}
+}
+
+
+class TiXmlParsingData
+{
+	friend class TiXmlDocument;
+  public:
+	void Stamp( const char* now, TiXmlEncoding encoding );
+
+	const TiXmlCursor& Cursor()	{ return cursor; }
+
+  private:
+	// Only used by the document!
+	TiXmlParsingData( const char* start, int _tabsize, int row, int col )
+	{
+		assert( start );
+		stamp = start;
+		tabsize = _tabsize;
+		cursor.row = row;
+		cursor.col = col;
+	}
+
+	TiXmlCursor		cursor;
+	const char*		stamp;
+	int				tabsize;
+};
+
+
+void TiXmlParsingData::Stamp( const char* now, TiXmlEncoding encoding )
+{
+	assert( now );
+
+	// Do nothing if the tabsize is 0.
+	if ( tabsize < 1 )
+	{
+		return;
+	}
+
+	// Get the current row, column.
+	int row = cursor.row;
+	int col = cursor.col;
+	const char* p = stamp;
+	assert( p );
+
+	while ( p < now )
+	{
+		// Code contributed by Fletcher Dunn: (modified by lee)
+		switch (*p) {
+			case 0:
+				// We *should* never get here, but in case we do, don't
+				// advance past the terminating null character, ever
+				return;
+
+			case '\r':
+				// bump down to the next line
+				++row;
+				col = 0;				
+				// Eat the character
+				++p;
+
+				// Check for \r\n sequence, and treat this as a single character
+				if (*p == '\n') {
+					++p;
+				}
+				break;
+
+			case '\n':
+				// bump down to the next line
+				++row;
+				col = 0;
+
+				// Eat the character
+				++p;
+
+				// Check for \n\r sequence, and treat this as a single
+				// character.  (Yes, this bizarre thing does occur still
+				// on some arcane platforms...)
+				if (*p == '\r') {
+					++p;
+				}
+				break;
+
+			case '\t':
+				// Eat the character
+				++p;
+
+				// Skip to next tab stop
+				col = (col / tabsize + 1) * tabsize;
+				break;
+
+			case TIXML_UTF_LEAD_0:
+				if ( encoding == TIXML_ENCODING_UTF8 )
+				{
+					if ( *(p+1) && *(p+2) )
+					{
+						// In these cases, don't advance the column. These are
+						// 0-width spaces.
+						if ( *(p+1)==TIXML_UTF_LEAD_1 && *(p+2)==TIXML_UTF_LEAD_2 )
+							p += 3;	
+						else if ( *(p+1)==(char)(0xbf) && *(p+2)==(char)(0xbe) )
+							p += 3;	
+						else if ( *(p+1)==(char)(0xbf) && *(p+2)==(char)(0xbf) )
+							p += 3;	
+						else
+							{ p +=3; ++col; }	// A normal character.
+					}
+				}
+				else
+				{
+					++p;
+					++col;
+				}
+				break;
+
+			default:
+				if ( encoding == TIXML_ENCODING_UTF8 )
+				{
+					// Eat the 1 to 4 byte utf8 character.
+					int step = TiXmlBase::utf8ByteTable[*((unsigned char*)p)];
+					if ( step == 0 )
+						step = 1;		// Error case from bad encoding, but handle gracefully.
+					p += step;
+
+					// Just advance one column, of course.
+					++col;
+				}
+				else
+				{
+					++p;
+					++col;
+				}
+				break;
+		}
+	}
+	cursor.row = row;
+	cursor.col = col;
+	assert( cursor.row >= -1 );
+	assert( cursor.col >= -1 );
+	stamp = p;
+	assert( stamp );
+}
+
+
+const char* TiXmlBase::SkipWhiteSpace( const char* p, TiXmlEncoding encoding )
+{
+	if ( !p || !*p )
+	{
+		return 0;
+	}
+	if ( encoding == TIXML_ENCODING_UTF8 )
+	{
+		while ( *p )
+		{
+			// Skip the stupid Microsoft UTF-8 Byte order marks
+			if (	*(p+0)==TIXML_UTF_LEAD_0
+				 && *(p+1)==TIXML_UTF_LEAD_1 
+				 && *(p+2)==TIXML_UTF_LEAD_2 )
+			{
+				p += 3;
+				continue;
+			}
+			else if(*(p+0)==TIXML_UTF_LEAD_0
+				 && *(p+1)==(const char) 0xbf
+				 && *(p+2)==(const char) 0xbe )
+			{
+				p += 3;
+				continue;
+			}
+			else if(*(p+0)==TIXML_UTF_LEAD_0
+				 && *(p+1)==(const char) 0xbf
+				 && *(p+2)==(const char) 0xbf )
+			{
+				p += 3;
+				continue;
+			}
+
+			if ( IsWhiteSpace( *p ) || *p == '\n' || *p =='\r' )		// Still using old rules for white space.
+				++p;
+			else
+				break;
+		}
+	}
+	else
+	{
+		while ( *p && IsWhiteSpace( *p ) || *p == '\n' || *p =='\r' )
+			++p;
+	}
+
+	return p;
+}
+
+#ifdef TIXML_USE_STL
+/*static*/ bool TiXmlBase::StreamWhiteSpace( TIXML_ISTREAM * in, TIXML_STRING * tag )
+{
+	for( ;; )
+	{
+		if ( !in->good() ) return false;
+
+		int c = in->peek();
+		// At this scope, we can't get to a document. So fail silently.
+		if ( !IsWhiteSpace( c ) || c <= 0 )
+			return true;
+
+		*tag += (char) in->get();
+	}
+}
+
+/*static*/ bool TiXmlBase::StreamTo( TIXML_ISTREAM * in, int character, TIXML_STRING * tag )
+{
+	//assert( character > 0 && character < 128 );	// else it won't work in utf-8
+	while ( in->good() )
+	{
+		int c = in->peek();
+		if ( c == character )
+			return true;
+		if ( c <= 0 )		// Silent failure: can't get document at this scope
+			return false;
+
+		in->get();
+		*tag += (char) c;
+	}
+	return false;
+}
+#endif
+
+const char* TiXmlBase::ReadName( const char* p, TIXML_STRING * name, TiXmlEncoding encoding )
+{
+	*name = "";
+	assert( p );
+
+	// Names start with letters or underscores.
+	// Of course, in unicode, tinyxml has no idea what a letter *is*. The
+	// algorithm is generous.
+	//
+	// After that, they can be letters, underscores, numbers,
+	// hyphens, or colons. (Colons are valid ony for namespaces,
+	// but tinyxml can't tell namespaces from names.)
+	if (    p && *p 
+		 && ( IsAlpha( (unsigned char) *p, encoding ) || *p == '_' ) )
+	{
+		while(		p && *p
+				&&	(		IsAlphaNum( (unsigned char ) *p, encoding ) 
+						 || *p == '_'
+						 || *p == '-'
+						 || *p == '.'
+						 || *p == ':' ) )
+		{
+			(*name) += *p;
+			++p;
+		}
+		return p;
+	}
+	return 0;
+}
+
+const char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXmlEncoding encoding )
+{
+	// Presume an entity, and pull it out.
+    TIXML_STRING ent;
+	int i;
+	*length = 0;
+
+	if ( *(p+1) && *(p+1) == '#' && *(p+2) )
+	{
+		unsigned long ucs = 0;
+		//*ME:	warning C4244: convert '__w64 int' to 'unsigned'
+		//*ME:	Use size_t instead of unsigned (pointer-arithmetic)
+		size_t delta = 0;
+		unsigned mult = 1;
+
+		if ( *(p+2) == 'x' )
+		{
+			// Hexadecimal.
+			if ( !*(p+3) ) return 0;
+
+			const char* q = p+3;
+			q = strchr( q, ';' );
+
+			if ( !q || !*q ) return 0;
+
+			delta = q-p;
+			--q;
+
+			while ( *q != 'x' )
+			{
+				if ( *q >= '0' && *q <= '9' )
+					ucs += mult * (*q - '0');
+				else if ( *q >= 'a' && *q <= 'f' )
+					ucs += mult * (*q - 'a' + 10);
+				else if ( *q >= 'A' && *q <= 'F' )
+					ucs += mult * (*q - 'A' + 10 );
+				else 
+					return 0;
+				mult *= 16;
+				--q;
+			}
+		}
+		else
+		{
+			// Decimal.
+			if ( !*(p+2) ) return 0;
+
+			const char* q = p+2;
+			q = strchr( q, ';' );
+
+			if ( !q || !*q ) return 0;
+
+			delta = q-p;
+			--q;
+
+			while ( *q != '#' )
+			{
+				if ( *q >= '0' && *q <= '9' )
+					ucs += mult * (*q - '0');
+				else 
+					return 0;
+				mult *= 10;
+				--q;
+			}
+		}
+		if ( encoding == TIXML_ENCODING_UTF8 )
+		{
+			// convert the UCS to UTF-8
+			ConvertUTF32ToUTF8( ucs, value, length );
+		}
+		else
+		{
+			*value = (char)ucs;
+			*length = 1;
+		}
+		return p + delta + 1;
+	}
+
+	// Now try to match it.
+	for( i=0; i<NUM_ENTITY; ++i )
+	{
+		if ( strncmp( entity[i].str, p, entity[i].strLength ) == 0 )
+		{
+			assert( strlen( entity[i].str ) == entity[i].strLength );
+			*value = entity[i].chr;
+			*length = 1;
+			return ( p + entity[i].strLength );
+		}
+	}
+
+	// So it wasn't an entity, its unrecognized, or something like that.
+	*value = *p;	// Don't put back the last one, since we return it!
+	return p+1;
+}
+
+
+bool TiXmlBase::StringEqual( const char* p,
+							 const char* tag,
+							 bool ignoreCase,
+							 TiXmlEncoding encoding )
+{
+	assert( p );
+	assert( tag );
+	if ( !p || !*p )
+	{
+		assert( 0 );
+		return false;
+	}
+
+	const char* q = p;
+
+	if ( ignoreCase )
+	{
+		while ( *q && *tag && ToLower( *q, encoding ) == ToLower( *tag, encoding ) )
+		{
+			++q;
+			++tag;
+		}
+
+		if ( *tag == 0 )
+			return true;
+	}
+	else
+	{
+		while ( *q && *tag && *q == *tag )
+		{
+			++q;
+			++tag;
+		}
+
+		if ( *tag == 0 )		// Have we found the end of the tag, and everything equal?
+			return true;
+	}
+	return false;
+}
+
+const char* TiXmlBase::ReadText(	const char* p, 
+									TIXML_STRING * text, 
+									bool trimWhiteSpace, 
+									const char* endTag, 
+									bool caseInsensitive,
+									TiXmlEncoding encoding )
+{
+    *text = "";
+	if (    !trimWhiteSpace			// certain tags always keep whitespace
+		 || !condenseWhiteSpace )	// if true, whitespace is always kept
+	{
+		// Keep all the white space.
+		while (	   p && *p
+				&& !StringEqual( p, endTag, caseInsensitive, encoding )
+			  )
+		{
+			int len;
+			char cArr[4] = { 0, 0, 0, 0 };
+			p = GetChar( p, cArr, &len, encoding );
+			text->append( cArr, len );
+		}
+	}
+	else
+	{
+		bool whitespace = false;
+
+		// Remove leading white space:
+		p = SkipWhiteSpace( p, encoding );
+		while (	   p && *p
+				&& !StringEqual( p, endTag, caseInsensitive, encoding ) )
+		{
+			if ( *p == '\r' || *p == '\n' )
+			{
+				whitespace = true;
+				++p;
+			}
+			else if ( IsWhiteSpace( *p ) )
+			{
+				whitespace = true;
+				++p;
+			}
+			else
+			{
+				// If we've found whitespace, add it before the
+				// new character. Any whitespace just becomes a space.
+				if ( whitespace )
+				{
+					(*text) += ' ';
+					whitespace = false;
+				}
+				int len;
+				char cArr[4] = { 0, 0, 0, 0 };
+				p = GetChar( p, cArr, &len, encoding );
+				if ( len == 1 )
+					(*text) += cArr[0];	// more efficient
+				else
+					text->append( cArr, len );
+			}
+		}
+	}
+	return p + strlen( endTag );
+}
+
+#ifdef TIXML_USE_STL
+
+void TiXmlDocument::StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag )
+{
+	// The basic issue with a document is that we don't know what we're
+	// streaming. Read something presumed to be a tag (and hope), then
+	// identify it, and call the appropriate stream method on the tag.
+	//
+	// This "pre-streaming" will never read the closing ">" so the
+	// sub-tag can orient itself.
+
+	if ( !StreamTo( in, '<', tag ) ) 
+	{
+		SetError( TIXML_ERROR_PARSING_EMPTY, 0, 0, TIXML_ENCODING_UNKNOWN );
+		return;
+	}
+
+	while ( in->good() )
+	{
+		int tagIndex = (int) tag->length();
+		while ( in->good() && in->peek() != '>' )
+		{
+			int c = in->get();
+			if ( c <= 0 )
+			{
+				SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
+				break;
+			}
+			(*tag) += (char) c;
+		}
+
+		if ( in->good() )
+		{
+			// We now have something we presume to be a node of 
+			// some sort. Identify it, and call the node to
+			// continue streaming.
+			TiXmlNode* node = Identify( tag->c_str() + tagIndex, TIXML_DEFAULT_ENCODING );
+
+			if ( node )
+			{
+				node->StreamIn( in, tag );
+				bool isElement = node->ToElement() != 0;
+				delete node;
+				node = 0;
+
+				// If this is the root element, we're done. Parsing will be
+				// done by the >> operator.
+				if ( isElement )
+				{
+					return;
+				}
+			}
+			else
+			{
+				SetError( TIXML_ERROR, 0, 0, TIXML_ENCODING_UNKNOWN );
+				return;
+			}
+		}
+	}
+	// We should have returned sooner.
+	SetError( TIXML_ERROR, 0, 0, TIXML_ENCODING_UNKNOWN );
+}
+
+#endif
+
+const char* TiXmlDocument::Parse( const char* p, TiXmlParsingData* prevData, TiXmlEncoding encoding )
+{
+	ClearError();
+
+	// Parse away, at the document level. Since a document
+	// contains nothing but other tags, most of what happens
+	// here is skipping white space.
+	if ( !p || !*p )
+	{
+		SetError( TIXML_ERROR_DOCUMENT_EMPTY, 0, 0, TIXML_ENCODING_UNKNOWN );
+		return 0;
+	}
+
+	// Note that, for a document, this needs to come
+	// before the while space skip, so that parsing
+	// starts from the pointer we are given.
+	location.Clear();
+	if ( prevData )
+	{
+		location.row = prevData->cursor.row;
+		location.col = prevData->cursor.col;
+	}
+	else
+	{
+		location.row = 0;
+		location.col = 0;
+	}
+	TiXmlParsingData data( p, TabSize(), location.row, location.col );
+	location = data.Cursor();
+
+	if ( encoding == TIXML_ENCODING_UNKNOWN )
+	{
+		// Check for the Microsoft UTF-8 lead bytes.
+		if (	*(p+0) && *(p+0) == TIXML_UTF_LEAD_0
+			 && *(p+1) && *(p+1) == TIXML_UTF_LEAD_1
+			 && *(p+2) && *(p+2) == TIXML_UTF_LEAD_2 )
+		{
+			encoding = TIXML_ENCODING_UTF8;
+		}
+	}
+
+    p = SkipWhiteSpace( p, encoding );
+	if ( !p )
+	{
+		SetError( TIXML_ERROR_DOCUMENT_EMPTY, 0, 0, TIXML_ENCODING_UNKNOWN );
+		return 0;
+	}
+
+	while ( p && *p )
+	{
+		TiXmlNode* node = Identify( p, encoding );
+		if ( node )
+		{
+			p = node->Parse( p, &data, encoding );
+			LinkEndChild( node );
+		}
+		else
+		{
+			break;
+		}
+
+		// Did we get encoding info?
+		if (    encoding == TIXML_ENCODING_UNKNOWN
+			 && node->ToDeclaration() )
+		{
+			TiXmlDeclaration* dec = node->ToDeclaration();
+			const char* enc = dec->Encoding();
+			assert( enc );
+
+			if ( *enc == 0 )
+				encoding = TIXML_ENCODING_UTF8;
+			else if ( StringEqual( enc, "UTF-8", true, TIXML_ENCODING_UNKNOWN ) )
+				encoding = TIXML_ENCODING_UTF8;
+			else if ( StringEqual( enc, "UTF8", true, TIXML_ENCODING_UNKNOWN ) )
+				encoding = TIXML_ENCODING_UTF8;	// incorrect, but be nice
+			else 
+				encoding = TIXML_ENCODING_LEGACY;
+		}
+
+		p = SkipWhiteSpace( p, encoding );
+	}
+
+	// Was this empty?
+	if ( !firstChild ) {
+		SetError( TIXML_ERROR_DOCUMENT_EMPTY, 0, 0, encoding );
+		return 0;
+	}
+
+	// All is well.
+	return p;
+}
+
+void TiXmlDocument::SetError( int err, const char* pError, TiXmlParsingData* data, TiXmlEncoding encoding )
+{	
+	// The first error in a chain is more accurate - don't set again!
+	if ( error )
+		return;
+
+	assert( err > 0 && err < TIXML_ERROR_STRING_COUNT );
+	error   = true;
+	errorId = err;
+	errorDesc = errorString[ errorId ];
+
+	errorLocation.Clear();
+	if ( pError && data )
+	{
+		//TiXmlParsingData data( pError, prevData );
+		data->Stamp( pError, encoding );
+		errorLocation = data->Cursor();
+	}
+}
+
+
+TiXmlNode* TiXmlNode::Identify( const char* p, TiXmlEncoding encoding )
+{
+	TiXmlNode* returnNode = 0;
+
+	p = SkipWhiteSpace( p, encoding );
+	if( !p || !*p || *p != '<' )
+	{
+		return 0;
+	}
+
+	TiXmlDocument* doc = GetDocument();
+	p = SkipWhiteSpace( p, encoding );
+
+	if ( !p || !*p )
+	{
+		return 0;
+	}
+
+	// What is this thing? 
+	// - Elements start with a letter or underscore, but xml is reserved.
+	// - Comments: <!--
+	// - Decleration: <?xml
+	// - Everthing else is unknown to tinyxml.
+	//
+
+	const char* xmlHeader = { "<?xml" };
+	const char* commentHeader = { "<!--" };
+	const char* dtdHeader = { "<!" };
+
+	if ( StringEqual( p, xmlHeader, true, encoding ) )
+	{
+		#ifdef DEBUG_PARSER
+			TIXML_LOG( "XML parsing Declaration\n" );
+		#endif
+		returnNode = new TiXmlDeclaration();
+	}
+	else if ( StringEqual( p, commentHeader, false, encoding ) )
+	{
+		#ifdef DEBUG_PARSER
+			TIXML_LOG( "XML parsing Comment\n" );
+		#endif
+		returnNode = new TiXmlComment();
+	}
+	else if ( StringEqual( p, dtdHeader, false, encoding ) )
+	{
+		#ifdef DEBUG_PARSER
+			TIXML_LOG( "XML parsing Unknown(1)\n" );
+		#endif
+		returnNode = new TiXmlUnknown();
+	}
+	else if (    IsAlpha( *(p+1), encoding )
+			  || *(p+1) == '_' )
+	{
+		#ifdef DEBUG_PARSER
+			TIXML_LOG( "XML parsing Element\n" );
+		#endif
+		returnNode = new TiXmlElement( "" );
+	}
+	else
+	{
+		#ifdef DEBUG_PARSER
+			TIXML_LOG( "XML parsing Unknown(2)\n" );
+		#endif
+		returnNode = new TiXmlUnknown();
+	}
+
+	if ( returnNode )
+	{
+		// Set the parent, so it can report errors
+		returnNode->parent = this;
+	}
+	else
+	{
+		if ( doc )
+			doc->SetError( TIXML_ERROR_OUT_OF_MEMORY, 0, 0, TIXML_ENCODING_UNKNOWN );
+	}
+	return returnNode;
+}
+
+#ifdef TIXML_USE_STL
+
+void TiXmlElement::StreamIn (TIXML_ISTREAM * in, TIXML_STRING * tag)
+{
+	// We're called with some amount of pre-parsing. That is, some of "this"
+	// element is in "tag". Go ahead and stream to the closing ">"
+	while( in->good() )
+	{
+		int c = in->get();
+		if ( c <= 0 )
+		{
+			TiXmlDocument* document = GetDocument();
+			if ( document )
+				document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
+			return;
+		}
+		(*tag) += (char) c ;
+		
+		if ( c == '>' )
+			break;
+	}
+
+	if ( tag->length() < 3 ) return;
+
+	// Okay...if we are a "/>" tag, then we're done. We've read a complete tag.
+	// If not, identify and stream.
+
+	if (    tag->at( tag->length() - 1 ) == '>' 
+		 && tag->at( tag->length() - 2 ) == '/' )
+	{
+		// All good!
+		return;
+	}
+	else if ( tag->at( tag->length() - 1 ) == '>' )
+	{
+		// There is more. Could be:
+		//		text
+		//		closing tag
+		//		another node.
+		for ( ;; )
+		{
+			StreamWhiteSpace( in, tag );
+
+			// Do we have text?
+			if ( in->good() && in->peek() != '<' ) 
+			{
+				// Yep, text.
+				TiXmlText text( "" );
+				text.StreamIn( in, tag );
+
+				// What follows text is a closing tag or another node.
+				// Go around again and figure it out.
+				continue;
+			}
+
+			// We now have either a closing tag...or another node.
+			// We should be at a "<", regardless.
+			if ( !in->good() ) return;
+			assert( in->peek() == '<' );
+			int tagIndex = tag->length();
+
+			bool closingTag = false;
+			bool firstCharFound = false;
+
+			for( ;; )
+			{
+				if ( !in->good() )
+					return;
+
+				int c = in->peek();
+				if ( c <= 0 )
+				{
+					TiXmlDocument* document = GetDocument();
+					if ( document )
+						document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
+					return;
+				}
+				
+				if ( c == '>' )
+					break;
+
+				*tag += (char) c;
+				in->get();
+
+				if ( !firstCharFound && c != '<' && !IsWhiteSpace( c ) )
+				{
+					firstCharFound = true;
+					if ( c == '/' )
+						closingTag = true;
+				}
+			}
+			// If it was a closing tag, then read in the closing '>' to clean up the input stream.
+			// If it was not, the streaming will be done by the tag.
+			if ( closingTag )
+			{
+				if ( !in->good() )
+					return;
+
+				int c = in->get();
+				if ( c <= 0 )
+				{
+					TiXmlDocument* document = GetDocument();
+					if ( document )
+						document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
+					return;
+				}
+				assert( c == '>' );
+				*tag += (char) c;
+
+				// We are done, once we've found our closing tag.
+				return;
+			}
+			else
+			{
+				// If not a closing tag, id it, and stream.
+				const char* tagloc = tag->c_str() + tagIndex;
+				TiXmlNode* node = Identify( tagloc, TIXML_DEFAULT_ENCODING );
+				if ( !node )
+					return;
+				node->StreamIn( in, tag );
+				delete node;
+				node = 0;
+
+				// No return: go around from the beginning: text, closing tag, or node.
+			}
+		}
+	}
+}
+#endif
+
+const char* TiXmlElement::Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding )
+{
+	p = SkipWhiteSpace( p, encoding );
+	TiXmlDocument* document = GetDocument();
+
+	if ( !p || !*p )
+	{
+		if ( document ) document->SetError( TIXML_ERROR_PARSING_ELEMENT, 0, 0, encoding );
+		return 0;
+	}
+
+//	TiXmlParsingData data( p, prevData );
+	if ( data )
+	{
+		data->Stamp( p, encoding );
+		location = data->Cursor();
+	}
+
+	if ( *p != '<' )
+	{
+		if ( document ) document->SetError( TIXML_ERROR_PARSING_ELEMENT, p, data, encoding );
+		return 0;
+	}
+
+	p = SkipWhiteSpace( p+1, encoding );
+
+	// Read the name.
+	const char* pErr = p;
+
+    p = ReadName( p, &value, encoding );
+	if ( !p || !*p )
+	{
+		if ( document )	document->SetError( TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME, pErr, data, encoding );
+		return 0;
+	}
+
+    TIXML_STRING endTag ("</");
+	endTag += value;
+	endTag += ">";
+
+	// Check for and read attributes. Also look for an empty
+	// tag or an end tag.
+	while ( p && *p )
+	{
+		pErr = p;
+		p = SkipWhiteSpace( p, encoding );
+		if ( !p || !*p )
+		{
+			if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, pErr, data, encoding );
+			return 0;
+		}
+		if ( *p == '/' )
+		{
+			++p;
+			// Empty tag.
+			if ( *p  != '>' )
+			{
+				if ( document ) document->SetError( TIXML_ERROR_PARSING_EMPTY, p, data, encoding );		
+				return 0;
+			}
+			return (p+1);
+		}
+		else if ( *p == '>' )
+		{
+			// Done with attributes (if there were any.)
+			// Read the value -- which can include other
+			// elements -- read the end tag, and return.
+			++p;
+			p = ReadValue( p, data, encoding );		// Note this is an Element method, and will set the error if one happens.
+			if ( !p || !*p )
+				return 0;
+
+			// We should find the end tag now
+			if ( StringEqual( p, endTag.c_str(), false, encoding ) )
+			{
+				p += endTag.length();
+				return p;
+			}
+			else
+			{
+				if ( document ) document->SetError( TIXML_ERROR_READING_END_TAG, p, data, encoding );
+				return 0;
+			}
+		}
+		else
+		{
+			// Try to read an attribute:
+			TiXmlAttribute* attrib = new TiXmlAttribute();
+			if ( !attrib )
+			{
+				if ( document ) document->SetError( TIXML_ERROR_OUT_OF_MEMORY, pErr, data, encoding );
+				return 0;
+			}
+
+			attrib->SetDocument( document );
+			const char* pErr = p;
+			p = attrib->Parse( p, data, encoding );
+
+			if ( !p || !*p )
+			{
+				if ( document ) document->SetError( TIXML_ERROR_PARSING_ELEMENT, pErr, data, encoding );
+				delete attrib;
+				return 0;
+			}
+
+			// Handle the strange case of double attributes:
+			TiXmlAttribute* node = attributeSet.Find( attrib->Name() );
+			if ( node )
+			{
+				node->SetValue( attrib->Value() );
+				delete attrib;
+				return 0;
+			}
+
+			attributeSet.Add( attrib );
+		}
+	}
+	return p;
+}
+
+
+const char* TiXmlElement::ReadValue( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding )
+{
+	TiXmlDocument* document = GetDocument();
+
+	const char* pWithWhiteSpace = p;
+	// Read in text and elements in any order.
+	p = SkipWhiteSpace( p, encoding );
+	while ( p && *p )
+	{
+		if ( *p != '<' )
+		{
+			// Take what we have, make a text element.
+			TiXmlText* textNode = new TiXmlText( "" );
+
+			if ( !textNode )
+			{
+				if ( document ) document->SetError( TIXML_ERROR_OUT_OF_MEMORY, 0, 0, encoding );
+				    return 0;
+			}
+
+			if ( TiXmlBase::IsWhiteSpaceCondensed() )
+			{
+				p = textNode->Parse( p, data, encoding );
+			}
+			else
+			{
+				// Special case: we want to keep the white space
+				// so that leading spaces aren't removed.
+				p = textNode->Parse( pWithWhiteSpace, data, encoding );
+			}
+
+			if ( !textNode->Blank() )
+				LinkEndChild( textNode );
+			else
+				delete textNode;
+		} 
+		else 
+		{
+			// We hit a '<'
+			// Have we hit a new element or an end tag?
+			if ( StringEqual( p, "</", false, encoding ) )
+			{
+				return p;
+			}
+			else
+			{
+				TiXmlNode* node = Identify( p, encoding );
+				if ( node )
+				{
+					p = node->Parse( p, data, encoding );
+					LinkEndChild( node );
+				}				
+				else
+				{
+					return 0;
+				}
+			}
+		}
+		p = SkipWhiteSpace( p, encoding );
+	}
+
+	if ( !p )
+	{
+		if ( document ) document->SetError( TIXML_ERROR_READING_ELEMENT_VALUE, 0, 0, encoding );
+	}	
+	return p;
+}
+
+
+#ifdef TIXML_USE_STL
+void TiXmlUnknown::StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag )
+{
+	while ( in->good() )
+	{
+		int c = in->get();	
+		if ( c <= 0 )
+		{
+			TiXmlDocument* document = GetDocument();
+			if ( document )
+				document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
+			return;
+		}
+		(*tag) += (char) c;
+
+		if ( c == '>' )
+		{
+			// All is well.
+			return;		
+		}
+	}
+}
+#endif
+
+
+const char* TiXmlUnknown::Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding )
+{
+	TiXmlDocument* document = GetDocument();
+	p = SkipWhiteSpace( p, encoding );
+
+//	TiXmlParsingData data( p, prevData );
+	if ( data )
+	{
+		data->Stamp( p, encoding );
+		location = data->Cursor();
+	}
+	if ( !p || !*p || *p != '<' )
+	{
+		if ( document ) document->SetError( TIXML_ERROR_PARSING_UNKNOWN, p, data, encoding );
+		return 0;
+	}
+	++p;
+    value = "";
+
+	while ( p && *p && *p != '>' )
+	{
+		value += *p;
+		++p;
+	}
+
+	if ( !p )
+	{
+		if ( document )	document->SetError( TIXML_ERROR_PARSING_UNKNOWN, 0, 0, encoding );
+	}
+	if ( *p == '>' )
+		return p+1;
+	return p;
+}
+
+#ifdef TIXML_USE_STL
+void TiXmlComment::StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag )
+{
+	while ( in->good() )
+	{
+		int c = in->get();	
+		if ( c <= 0 )
+		{
+			TiXmlDocument* document = GetDocument();
+			if ( document )
+				document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
+			return;
+		}
+
+		(*tag) += (char) c;
+
+		if ( c == '>' 
+			 && tag->at( tag->length() - 2 ) == '-'
+			 && tag->at( tag->length() - 3 ) == '-' )
+		{
+			// All is well.
+			return;		
+		}
+	}
+}
+#endif
+
+
+const char* TiXmlComment::Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding )
+{
+	TiXmlDocument* document = GetDocument();
+	value = "";
+
+	p = SkipWhiteSpace( p, encoding );
+
+//	TiXmlParsingData data( p, prevData );
+	if ( data )
+	{
+		data->Stamp( p, encoding );
+		location = data->Cursor();
+	}
+	const char* startTag = "<!--";
+	const char* endTag   = "-->";
+
+	if ( !StringEqual( p, startTag, false, encoding ) )
+	{
+		document->SetError( TIXML_ERROR_PARSING_COMMENT, p, data, encoding );
+		return 0;
+	}
+	p += strlen( startTag );
+	p = ReadText( p, &value, false, endTag, false, encoding );
+	return p;
+}
+
+
+const char* TiXmlAttribute::Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding )
+{
+	p = SkipWhiteSpace( p, encoding );
+	if ( !p || !*p ) return 0;
+
+	int tabsize = 4;
+	if ( document )
+		tabsize = document->TabSize();
+
+//	TiXmlParsingData data( p, prevData );
+	if ( data )
+	{
+		data->Stamp( p, encoding );
+		location = data->Cursor();
+	}
+	// Read the name, the '=' and the value.
+	const char* pErr = p;
+	p = ReadName( p, &name, encoding );
+	if ( !p || !*p )
+	{
+		if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, pErr, data, encoding );
+		return 0;
+	}
+	p = SkipWhiteSpace( p, encoding );
+	if ( !p || !*p || *p != '=' )
+	{
+		if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding );
+		return 0;
+	}
+
+	++p;	// skip '='
+	p = SkipWhiteSpace( p, encoding );
+	if ( !p || !*p )
+	{
+		if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding );
+		return 0;
+	}
+	
+	const char* end;
+
+	if ( *p == '\'' )
+	{
+		++p;
+		end = "\'";
+		p = ReadText( p, &value, false, end, false, encoding );
+	}
+	else if ( *p == '"' )
+	{
+		++p;
+		end = "\"";
+		p = ReadText( p, &value, false, end, false, encoding );
+	}
+	else
+	{
+		// All attribute values should be in single or double quotes.
+		// But this is such a common error that the parser will try
+		// its best, even without them.
+		value = "";
+		while (    p && *p										// existence
+				&& !IsWhiteSpace( *p ) && *p != '\n' && *p != '\r'	// whitespace
+				&& *p != '/' && *p != '>' )						// tag end
+		{
+			value += *p;
+			++p;
+		}
+	}
+	return p;
+}
+
+#ifdef TIXML_USE_STL
+void TiXmlText::StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag )
+{
+	while ( in->good() )
+	{
+		int c = in->peek();	
+		if ( c == '<' )
+			return;
+		if ( c <= 0 )
+		{
+			TiXmlDocument* document = GetDocument();
+			if ( document )
+				document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
+			return;
+		}
+
+		(*tag) += (char) c;
+		in->get();
+	}
+}
+#endif
+
+const char* TiXmlText::Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding )
+{
+	value = "";
+//	TiXmlParsingData data( p, prevData );
+	if ( data )
+	{
+		data->Stamp( p, encoding );
+		location = data->Cursor();
+	}
+	bool ignoreWhite = true;
+
+	const char* end = "<";
+	p = ReadText( p, &value, ignoreWhite, end, false, encoding );
+	if ( p )
+		return p-1;	// don't truncate the '<'
+	return 0;
+}
+
+#ifdef TIXML_USE_STL
+void TiXmlDeclaration::StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag )
+{
+	while ( in->good() )
+	{
+		int c = in->get();
+		if ( c <= 0 )
+		{
+			TiXmlDocument* document = GetDocument();
+			if ( document )
+				document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
+			return;
+		}
+		(*tag) += (char) c;
+
+		if ( c == '>' )
+		{
+			// All is well.
+			return;
+		}
+	}
+}
+#endif
+
+const char* TiXmlDeclaration::Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding _encoding )
+{
+	p = SkipWhiteSpace( p, _encoding );
+	// Find the beginning, find the end, and look for
+	// the stuff in-between.
+	TiXmlDocument* document = GetDocument();
+	if ( !p || !*p || !StringEqual( p, "<?xml", true, _encoding ) )
+	{
+		if ( document ) document->SetError( TIXML_ERROR_PARSING_DECLARATION, 0, 0, _encoding );
+		return 0;
+	}
+//	TiXmlParsingData data( p, prevData );
+	if ( data )
+	{
+		data->Stamp( p, _encoding );
+		location = data->Cursor();
+	}
+	p += 5;
+
+	version = "";
+	encoding = "";
+	standalone = "";
+
+	while ( p && *p )
+	{
+		if ( *p == '>' )
+		{
+			++p;
+			return p;
+		}
+
+		p = SkipWhiteSpace( p, _encoding );
+		if ( StringEqual( p, "version", true, _encoding ) )
+		{
+			TiXmlAttribute attrib;
+			p = attrib.Parse( p, data, _encoding );		
+			version = attrib.Value();
+		}
+		else if ( StringEqual( p, "encoding", true, _encoding ) )
+		{
+			TiXmlAttribute attrib;
+			p = attrib.Parse( p, data, _encoding );		
+			encoding = attrib.Value();
+		}
+		else if ( StringEqual( p, "standalone", true, _encoding ) )
+		{
+			TiXmlAttribute attrib;
+			p = attrib.Parse( p, data, _encoding );		
+			standalone = attrib.Value();
+		}
+		else
+		{
+			// Read over whatever it is.
+			while( p && *p && *p != '>' && !IsWhiteSpace( *p ) )
+				++p;
+		}
+	}
+	return 0;
+}
+
+bool TiXmlText::Blank() const
+{
+	for ( unsigned i=0; i<value.length(); i++ )
+		if ( !IsWhiteSpace( value[i] ) )
+			return false;
+	return true;
+}
+
Index: orxonox/branches/physics/src/message_structures.h
===================================================================
--- orxonox/branches/physics/src/message_structures.h	(revision 4274)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/*!
-	\file message_structures.h
-	\brief contains defintitons of messages that can be passed between classes
-*/
-
-#ifndef _MESSAGE_STRUCTURES_H
-#define _MESSAGE_STRUCTURES_H
-
-#include "stdincl.h"
-
-#define CMD_LENGHT 16
-
-//! structure that contains a command message
-typedef struct
-{
-	char cmd[CMD_LENGHT];	//!< the command delivered
-	bool bUp;	//!< false = command was activated / true = command was deactivated
-	
-	//! if cmd is "cursor" the coordinates of the mouse cursor are stored here
-	//!@{
-	Uint16 x, y;
-	//!@}
-	
-	//! if cmd is "cursor" the relative motion of the mouse cursor is stored here
-	//!@{
-	Sint16 xrel, yrel; 
-	//!@}
-} Command;
-
-#endif /* _MESSAGE_STRUCTURES_H */
Index: orxonox/branches/physics/src/orxonox.cc
===================================================================
--- orxonox/branches/physics/src/orxonox.cc	(revision 4274)
+++ orxonox/branches/physics/src/orxonox.cc	(revision 4283)
@@ -30,5 +30,4 @@
 
 #include "world.h"
-#include "data_tank.h"
 #include "command_node.h"
 #include "ini_parser.h"
@@ -56,5 +55,4 @@
 
   this->world = NULL;
-  this->resources = NULL;
   this->localinput = NULL;
 
@@ -72,5 +70,4 @@
   if( world != NULL) delete world;
   if( localinput != NULL) delete localinput;
-  if( resources != NULL) delete resources;
   delete GraphicsEngine::getInstance(); // deleting the Graphics
   delete ResourceManager::getInstance(); // deletes the Resource Manager
Index: orxonox/branches/physics/src/orxonox.h
===================================================================
--- orxonox/branches/physics/src/orxonox.h	(revision 4274)
+++ orxonox/branches/physics/src/orxonox.h	(revision 4283)
@@ -12,5 +12,4 @@
 class CommandNode;
 class WorldEntity;
-class DataTank;
 class World;
 class Camera;
@@ -29,5 +28,4 @@
   char configfilename[256];   //!< Filename of the configuration-file.
   World* world;               //!< Reference to the current running world.
-  DataTank* resources;        //!< DataContainer
   CommandNode* localinput;    //!< Command Handler
   SDL_Surface* screen;        //!< The current Screen
Index: orxonox/branches/physics/src/story_entities/campaign.cc
===================================================================
--- orxonox/branches/physics/src/story_entities/campaign.cc	(revision 4274)
+++ orxonox/branches/physics/src/story_entities/campaign.cc	(revision 4283)
@@ -27,4 +27,6 @@
 #include "list.h"
 
+#include "load_param.h"
+
 using namespace std;
 
@@ -35,4 +37,5 @@
   this->isInit = false;
 }
+
 Campaign::Campaign ( TiXmlElement* root) 
 {
Index: orxonox/branches/physics/src/story_entities/campaign.h
===================================================================
--- orxonox/branches/physics/src/story_entities/campaign.h	(revision 4274)
+++ orxonox/branches/physics/src/story_entities/campaign.h	(revision 4283)
@@ -8,4 +8,5 @@
 
 class World;
+class TiXmlElement;
 template<class T> class tList;
 
Index: orxonox/branches/physics/src/story_entities/story_entity.h
===================================================================
--- orxonox/branches/physics/src/story_entities/story_entity.h	(revision 4274)
+++ orxonox/branches/physics/src/story_entities/story_entity.h	(revision 4283)
@@ -11,5 +11,4 @@
 #include "story_def.h"
 #include "error.h"
-
 
 //! A class that represents something to play in orxonox. it is a container for worlds, movies, mission briefings, etc...
Index: orxonox/branches/physics/src/story_entities/world.cc
===================================================================
--- orxonox/branches/physics/src/story_entities/world.cc	(revision 4274)
+++ orxonox/branches/physics/src/story_entities/world.cc	(revision 4283)
@@ -33,4 +33,5 @@
 #include "skybox.h"
 #include "satellite.h"
+#include "test_entity.h"
 #include "terrain.h"
 #include "light.h"
@@ -41,4 +42,5 @@
 #include "animation_player.h"
 #include "particle_engine.h"
+#include "graphics_engine.h"
 
 #include "command_node.h"
@@ -53,4 +55,6 @@
 #include "substring.h"
 
+#include "factory.h"
+
 using namespace std;
 
@@ -121,46 +125,10 @@
 CREATE_FACTORY(World);
 
-World::World( TiXmlElement* root)
+World::World(const TiXmlElement* root)
 {
   this->constuctorInit("", -1);
   this->path = NULL;
-  const char *string;
-  char *name;
-  int id;
-  
-  PRINTF0("Creating a World\n");
-  
-  // identifier
-  string = grabParameter( root, "identifier");
-  if( string == NULL || sscanf(string, "%d", &id) != 1)
-    {
-      PRINTF0("World is missing a proper 'identifier'\n");
-      this->setStoryID( -1);
-    }
-  else setStoryID( id);
-
-  // next id
-  string = grabParameter( root, "nextid");
-  if( string == NULL || sscanf(string, "%d", &id) != 1)
-    {
-      PRINTF0("World is missing a proper 'nextid'\n");
-      this->setStoryID( -1);
-    }
-  else setNextStoryID( id);
-  
-
-  // path
-  string = grabParameter( root, "path");
-  if( string == NULL)
-    {
-      PRINTF0("World is missing a proper 'path'\n");
-      this->setPath( NULL);
-    }
-  else
-    {
-      name = new char[strlen(string + 2)];
-      strcpy( name, string);
-      this->setPath( name);
-    }
+  
+  this->loadParams(root);
 }
 
@@ -201,5 +169,4 @@
 
   delete WorldInterface::getInstance();
-
   delete this->nullParent;
   delete this->entities;
@@ -208,9 +175,10 @@
   delete this->particleEngine;
   TextEngine::getInstance()->flush();
-
   delete PhysicsEngine::getInstance();
   delete AnimationPlayer::getInstance(); // this should be at the end of the unloading sequence.
   //delete garbagecollecor
   //delete animator
+
+  LoadClassDescription::printAll();
 
   ResourceManager::getInstance()->unloadAllByPriority(RP_LEVEL);
@@ -237,4 +205,56 @@
 }
 
+void World::loadParams(const TiXmlElement* root)
+{
+  const char *string;
+  char *name;
+  int id;
+
+  PRINTF0("Creating a World\n");
+
+  LoadParam<World>(root, "identifier", this, &World::setStoryID)
+    .describe("Sets the StoryID of this world");
+  LoadParam<World>(root, "nextid", this, &World::setNextStoryID)
+    .describe("Sets the ID of the next world");
+  LoadParam<World>(root, "path", this, &World::setPath)
+    .describe("The Filename of this World (relative from the data-dir)");
+
+
+  /*  
+  // identifier
+  string = grabParameter( root, "identifier");
+  if( string == NULL || sscanf(string, "%d", &id) != 1)
+  {
+  PRINTF0("World is missing a proper 'identifier'\n");
+  this->setStoryID( -1);
+  }
+  else setStoryID( id);
+
+  // next id
+  string = grabParameter( root, "nextid");
+  if( string == NULL || sscanf(string, "%d", &id) != 1)
+  {
+  PRINTF0("World is missing a proper 'nextid'\n");
+  this->setStoryID( -1);
+  }
+  else setNextStoryID( id);
+  
+
+  // path
+  string = grabParameter( root, "path");
+  if( string == NULL)
+  {
+  PRINTF0("World is missing a proper 'path'\n");
+  this->setPath( NULL);
+  }
+  else
+  {
+  name = new char[strlen(string + 2)];
+  strcpy( name, string);
+  this->setPath( name);
+  }
+  */
+}
+
 
 /**
@@ -262,4 +282,6 @@
   this->localCamera = new Camera();
   this->localCamera->setName ("camera");
+  
+  GraphicsEngine::getInstance()->displayFPS(true);
 }
 
@@ -334,5 +356,5 @@
   else
     {
-      this->glmis->load(element);
+      this->glmis->loadParams(element);
       this->glmis->draw();
     }
@@ -368,14 +390,13 @@
   if( element == NULL)
     {
-      PRINTF0("============>>>>>>>>>>>>>>>>>World is missing a 'Track'\n");
+      PRINTF(0)("World is missing a 'Track'\n");
     }
   else
     {	
       //load track
-      PRINTF0("============>>>>>>>>>>>>>>>>Loading Track\n");
+      PRINTF(4)("Loading Track\n");
 
       trackManager->load( element);
       trackManager->finalize();
-      PRINTF0("============>>>>>>>>>>>>>>>>Done loading Track\n");
     }
   
@@ -392,65 +413,6 @@
   //this->localCamera->bind (localPlayer);
   this->localPlayer->addChild (this->localCamera);
-  
-  
-  // stuff beyond this point remains to be loaded properly
-  /*
-      // initializing the TrackManager
-  this->trackManager = TrackManager::getInstance();
-      //trackManager->addPoint(Vector(0,0,0));
-      trackManager->addPoint(Vector(150, -35, 5));
-      trackManager->addPoint(Vector(200,-35, 5));
-      trackManager->addPoint(Vector(250, -35, 5));
-      trackManager->addPoint(Vector(320,-33,-.55));
-      trackManager->setDuration(1);
-      trackManager->setSavePoint();
-
-      trackManager->addPoint(Vector(410, 0, 0));
-      trackManager->addPoint(Vector(510, 20, -10));
-      trackManager->addPoint(Vector(550, 20, -10));
-      trackManager->addPoint(Vector(570, 20, -10));
-      trackManager->setDuration(2);
       
-      trackManager->forkS("testFork1,testFork2");
-      trackManager->workOn("testFork1");
-      trackManager->addPoint(Vector(640, 25, -30));
-      trackManager->addPoint(Vector(700, 40, -120));
-      trackManager->addPoint(Vector(800, 50, -150));
-      trackManager->addPoint(Vector(900, 60, -100));
-      trackManager->addPoint(Vector(900, 60, -70));
-      trackManager->addPoint(Vector(990, 65, -15));
-      trackManager->addPoint(Vector(1050, 65, -10));
-      trackManager->addPoint(Vector(1100, 65, -20));
-      trackManager->setDuration(4);
-
-      trackManager->workOn("testFork2");
-      trackManager->addPoint(Vector(640, 25, 20));
-      trackManager->addPoint(Vector(670, 50, 120));
-      trackManager->addPoint(Vector(700, 70, 80));
-      trackManager->addPoint(Vector(800, 70, 65));
-      trackManager->addPoint(Vector(850, 65, 65));
-      trackManager->addPoint(Vector(920, 35, 40));
-      trackManager->addPoint(Vector(945, 40, 40));
-      trackManager->addPoint(Vector(970, 24, 40));
-      trackManager->addPoint(Vector(1000, 40, -7));
-      trackManager->setDuration(4);
-      
-      
-      trackManager->joinS("testFork1,testFork2");
-	
-      trackManager->addPoint(Vector(1200, 60, -50));
-      trackManager->addPoint(Vector(1300, 50, -50));
-      trackManager->addPoint(Vector(1400, 40, -50));
-      trackManager->addPoint(Vector(1500, 40, -60));
-      trackManager->addPoint(Vector(1600, 35, -55));
-      trackManager->addPoint(Vector(1700, 45, -40));
-      trackManager->addPoint(Vector(1750, 60, -40));
-      trackManager->addPoint(Vector(1770, 80, -40));
-      trackManager->addPoint(Vector(1800, 100, -40));
-      trackManager->setDuration(10);
-  */
-      trackManager->finalize();
-
-      
+
   lightMan->setAmbientColor(.1,.1,.1);
   lightMan->addLight();
@@ -460,5 +422,5 @@
   //  lightMan->setPosition(20, 10, -20);
   //  lightMan->setDiffuseColor(0,0,0);
-  lightMan->debug();
+  //lightMan->debug();
   lightMan->setPosition(-5.0, 10.0, -40.0);
   
@@ -481,6 +443,6 @@
   glNewList (objectList, GL_COMPILE);
   
-  trackManager->drawGraph(.01);
-  trackManager->debug(2);
+  //trackManager->drawGraph(.01);
+  //trackManager->debug(2);
   glEndList();
 
@@ -519,5 +481,13 @@
   //    new PhysicsConnection(system, gravity);
 
-}
+
+  WorldEntity* testEntity = new TestEntity();
+  //testEntity->setRelCoor(Vector(570, 10, -15));
+  testEntity->setRelCoor(Vector(25, -10, -20));
+  testEntity->setRelDir(Quaternion(M_PI, Vector(0, 1, 0)));
+  this->spawn(testEntity);
+  this->localPlayer->addChild(testEntity);
+}
+
 
 void World::loadDebugWorld(int worldID)
@@ -525,7 +495,64 @@
   /*monitor progress*/
   this->glmis->step();
+  // stuff beyond this point remains to be loaded properly
+
+  // initializing the TrackManager
+  this->trackManager = TrackManager::getInstance();
+  //trackManager->addPoint(Vector(0,0,0));
+  trackManager->addPoint(Vector(150, -35, 5));
+  trackManager->addPoint(Vector(200,-35, 5));
+  trackManager->addPoint(Vector(250, -35, 5));
+  trackManager->addPoint(Vector(320,-33,-.55));
+  trackManager->setDuration(1);
+  trackManager->setSavePoint();
+
+  trackManager->addPoint(Vector(410, 0, 0));
+  trackManager->addPoint(Vector(510, 20, -10));
+  trackManager->addPoint(Vector(550, 20, -10));
+  trackManager->addPoint(Vector(570, 20, -10));
+  trackManager->setDuration(2);
+      
+  trackManager->forkS("testFork1,testFork2");
+  trackManager->workOn("testFork1");
+  trackManager->addPoint(Vector(640, 25, -30));
+  trackManager->addPoint(Vector(700, 40, -120));
+  trackManager->addPoint(Vector(800, 50, -150));
+  trackManager->addPoint(Vector(900, 60, -100));
+  trackManager->addPoint(Vector(900, 60, -70));
+  trackManager->addPoint(Vector(990, 65, -15));
+  trackManager->addPoint(Vector(1050, 65, -10));
+  trackManager->addPoint(Vector(1100, 65, -20));
+  trackManager->setDuration(4);
+
+  trackManager->workOn("testFork2");
+  trackManager->addPoint(Vector(640, 25, 20));
+  trackManager->addPoint(Vector(670, 50, 120));
+  trackManager->addPoint(Vector(700, 70, 80));
+  trackManager->addPoint(Vector(800, 70, 65));
+  trackManager->addPoint(Vector(850, 65, 65));
+  trackManager->addPoint(Vector(920, 35, 40));
+  trackManager->addPoint(Vector(945, 40, 40));
+  trackManager->addPoint(Vector(970, 24, 40));
+  trackManager->addPoint(Vector(1000, 40, -7));
+  trackManager->setDuration(4);
+      
+      
+  trackManager->joinS("testFork1,testFork2");
+	
+  trackManager->addPoint(Vector(1200, 60, -50));
+  trackManager->addPoint(Vector(1300, 50, -50));
+  trackManager->addPoint(Vector(1400, 40, -50));
+  trackManager->addPoint(Vector(1500, 40, -60));
+  trackManager->addPoint(Vector(1600, 35, -55));
+  trackManager->addPoint(Vector(1700, 45, -40));
+  trackManager->addPoint(Vector(1750, 60, -40));
+  trackManager->addPoint(Vector(1770, 80, -40));
+  trackManager->addPoint(Vector(1800, 100, -40));
+  trackManager->setDuration(10);
+  
+  trackManager->finalize();
+  
 
   // LIGHT initialisation
-
   lightMan->setAmbientColor(.1,.1,.1);
   lightMan->addLight();
@@ -1164,10 +1191,17 @@
       this->trackManager->tick(this->dt);
       this->localCamera->tick(this->dt);
+      AnimationPlayer::getInstance()->tick(this->dtS);
+
+      PhysicsEngine::getInstance()->tick(this->dtS);
+
+      particleEngine->tick(this->dtS);
       this->garbageCollector->tick(this->dtS);
-
-      AnimationPlayer::getInstance()->tick(this->dtS);
-      PhysicsEngine::getInstance()->tick(this->dtS);
-
-      particleEngine->tick(this->dtS);
+	  
+      /* actualy the Graphics Engine should tick the world not the other way around...
+	 but since we like the things not too complicated we got it this way around
+	 until there is need or time to do it the other way around.
+	 \todo: GraphicsEngine ticks world: separation of processes and data...
+      */
+      GraphicsEngine::getInstance()->tick(this->dtS);
     }
   this->lastFrame = currentFrame;
Index: orxonox/branches/physics/src/story_entities/world.h
===================================================================
--- orxonox/branches/physics/src/story_entities/world.h	(revision 4274)
+++ orxonox/branches/physics/src/story_entities/world.h	(revision 4283)
@@ -11,5 +11,4 @@
 #include "story_entity.h"
 #include "p_node.h"
-#include "xmlparser/tinyxml.h"
 
 class World;
@@ -24,4 +23,5 @@
 class GarbageCollector;
 class Text;
+class TiXmlElement;
 
 //! The game world Interface
@@ -57,6 +57,8 @@
   World (char* name);
   World (int worldID);
-  World (TiXmlElement* root);
+  World (const TiXmlElement* root = NULL);
   virtual ~World ();
+
+  void loadParams(const TiXmlElement* root);
 
   double getGameTime();
Index: orxonox/branches/physics/src/subprojects/Makefile.am
===================================================================
--- orxonox/branches/physics/src/subprojects/Makefile.am	(revision 4274)
+++ orxonox/branches/physics/src/subprojects/Makefile.am	(revision 4283)
@@ -1,1 +1,3 @@
-SUBDIRS = testmain
+SUBDIRS = importer \
+	  gui \
+	  testmain
Index: orxonox/branches/physics/src/subprojects/Makefile.in
===================================================================
--- orxonox/branches/physics/src/subprojects/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/subprojects/Makefile.in	(revision 4283)
@@ -164,5 +164,8 @@
 target_os = @target_os@
 target_vendor = @target_vendor@
-SUBDIRS = testmain
+SUBDIRS = importer \
+	  gui \
+	  testmain
+
 all: all-recursive
 
@@ -177,7 +180,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/subprojects/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/subprojects/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/subprojects/Makefile
+	  $(AUTOMAKE) --foreign  src/subprojects/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/physics/src/subprojects/gui/Makefile.am
===================================================================
--- orxonox/branches/physics/src/subprojects/gui/Makefile.am	(revision 4283)
+++ orxonox/branches/physics/src/subprojects/gui/Makefile.am	(revision 4283)
@@ -0,0 +1,54 @@
+MAINSRCDIR=../..
+AM_CXXFLAGS=-I$(MAINSRCDIR)
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/world_entities
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/story_entities
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/coord
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/data
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/importer
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/particles
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui/gui
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/lang
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/util
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/math
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/tinyxml
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/defs
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/font
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/network
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/glmenu
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/ai
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/animation
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/common
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/loading
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/track
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/subprojects
+
+AM_LDFLAGS=$(MWINDOWS)
+
+
+bin_PROGRAMS = gui
+
+gui_DEPENDENCIES = $(MAINSRCDIR)/lib/gui/gui/libORXgui.a
+
+gui_LDADD = $(MAINSRCDIR)/lib/gui/gui/libORXgui.a \
+            $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
+
+gui_SOURCES= gui_main.cc \
+	     $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
+	     $(MAINSRCDIR)/lib/lang/base_object.cc \
+	     $(MAINSRCDIR)/lib/math/vector.cc \
+	     $(MAINSRCDIR)/util/resource_manager.cc \
+	     $(MAINSRCDIR)/lib/graphics/text_engine.cc \
+	     $(MAINSRCDIR)/lib/coord/p_node.cc \
+             $(MAINSRCDIR)/lib/coord/null_parent.cc \
+	     $(MAINSRCDIR)/lib/graphics/importer/array.cc \
+	     $(MAINSRCDIR)/lib/graphics/importer/model.cc \
+             $(MAINSRCDIR)/lib/graphics/importer/objModel.cc \
+	     $(MAINSRCDIR)/lib/graphics/importer/material.cc \
+             $(MAINSRCDIR)/lib/graphics/importer/texture.cc \
+	     $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc 
+
+noinst_HEADERS= 
Index: orxonox/branches/physics/src/subprojects/gui/Makefile.in
===================================================================
--- orxonox/branches/physics/src/subprojects/gui/Makefile.in	(revision 4283)
+++ orxonox/branches/physics/src/subprojects/gui/Makefile.in	(revision 4283)
@@ -0,0 +1,692 @@
+# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+SOURCES = $(gui_SOURCES)
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+bin_PROGRAMS = gui$(EXEEXT)
+subdir = src/subprojects/gui
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_gui_OBJECTS = gui_main.$(OBJEXT) graphics_engine.$(OBJEXT) \
+	base_object.$(OBJEXT) vector.$(OBJEXT) \
+	resource_manager.$(OBJEXT) text_engine.$(OBJEXT) \
+	p_node.$(OBJEXT) null_parent.$(OBJEXT) array.$(OBJEXT) \
+	model.$(OBJEXT) objModel.$(OBJEXT) material.$(OBJEXT) \
+	texture.$(OBJEXT) primitive_model.$(OBJEXT)
+gui_OBJECTS = $(am_gui_OBJECTS)
+am__DEPENDENCIES_1 =
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/array.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/base_object.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/graphics_engine.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/gui_main.Po ./$(DEPDIR)/material.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/model.Po ./$(DEPDIR)/null_parent.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/objModel.Po ./$(DEPDIR)/p_node.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/primitive_model.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/resource_manager.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/text_engine.Po ./$(DEPDIR)/texture.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/vector.Po
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+SOURCES = $(gui_SOURCES)
+DIST_SOURCES = $(gui_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG = @DEBUG@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCUMENTATION_FALSE = @DOCUMENTATION_FALSE@
+DOCUMENTATION_TRUE = @DOCUMENTATION_TRUE@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_FALSE = @DOXYGEN_FALSE@
+DOXYGEN_TRUE = @DOXYGEN_TRUE@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GPROF = @GPROF@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_LIBS = @GTK2_LIBS@
+HAVE_CURL_FALSE = @HAVE_CURL_FALSE@
+HAVE_CURL_TRUE = @HAVE_CURL_TRUE@
+HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@
+HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MSBITFIELDS = @MSBITFIELDS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SUB_PROJECTS_FALSE = @SUB_PROJECTS_FALSE@
+SUB_PROJECTS_TRUE = @SUB_PROJECTS_TRUE@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+MAINSRCDIR = ../..
+AM_CXXFLAGS = -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/graphics/particles -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/gui/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/lib/tinyxml -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common -I$(MAINSRCDIR)/util/loading -I$(MAINSRCDIR)/util/track -I$(MAINSRCDIR)/subprojects
+AM_LDFLAGS = $(MWINDOWS)
+gui_DEPENDENCIES = $(MAINSRCDIR)/lib/gui/gui/libORXgui.a
+gui_LDADD = $(MAINSRCDIR)/lib/gui/gui/libORXgui.a \
+            $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
+
+gui_SOURCES = gui_main.cc \
+	     $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
+	     $(MAINSRCDIR)/lib/lang/base_object.cc \
+	     $(MAINSRCDIR)/lib/math/vector.cc \
+	     $(MAINSRCDIR)/util/resource_manager.cc \
+	     $(MAINSRCDIR)/lib/graphics/text_engine.cc \
+	     $(MAINSRCDIR)/lib/coord/p_node.cc \
+             $(MAINSRCDIR)/lib/coord/null_parent.cc \
+	     $(MAINSRCDIR)/lib/graphics/importer/array.cc \
+	     $(MAINSRCDIR)/lib/graphics/importer/model.cc \
+             $(MAINSRCDIR)/lib/graphics/importer/objModel.cc \
+	     $(MAINSRCDIR)/lib/graphics/importer/material.cc \
+             $(MAINSRCDIR)/lib/graphics/importer/texture.cc \
+	     $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc 
+
+noinst_HEADERS = 
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/subprojects/gui/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  src/subprojects/gui/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+gui$(EXEEXT): $(gui_OBJECTS) $(gui_DEPENDENCIES) 
+	@rm -f gui$(EXEEXT)
+	$(CXXLINK) $(gui_LDFLAGS) $(gui_OBJECTS) $(gui_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base_object.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graphics_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui_main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/material.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/null_parent.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objModel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p_node.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/primitive_model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource_manager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector.Po@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+graphics_engine.o: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.o -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/graphics_engine.Tpo" "$(DEPDIR)/graphics_engine.Po"; else rm -f "$(DEPDIR)/graphics_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='graphics_engine.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/graphics_engine.Po' tmpdepfile='$(DEPDIR)/graphics_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+
+graphics_engine.obj: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.obj -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/graphics_engine.Tpo" "$(DEPDIR)/graphics_engine.Po"; else rm -f "$(DEPDIR)/graphics_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='graphics_engine.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/graphics_engine.Po' tmpdepfile='$(DEPDIR)/graphics_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`
+
+base_object.o: $(MAINSRCDIR)/lib/lang/base_object.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT base_object.o -MD -MP -MF "$(DEPDIR)/base_object.Tpo" -c -o base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/base_object.Tpo" "$(DEPDIR)/base_object.Po"; else rm -f "$(DEPDIR)/base_object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='base_object.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/base_object.Po' tmpdepfile='$(DEPDIR)/base_object.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc
+
+base_object.obj: $(MAINSRCDIR)/lib/lang/base_object.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT base_object.obj -MD -MP -MF "$(DEPDIR)/base_object.Tpo" -c -o base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/base_object.Tpo" "$(DEPDIR)/base_object.Po"; else rm -f "$(DEPDIR)/base_object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='base_object.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/base_object.Po' tmpdepfile='$(DEPDIR)/base_object.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`
+
+vector.o: $(MAINSRCDIR)/lib/math/vector.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vector.o -MD -MP -MF "$(DEPDIR)/vector.Tpo" -c -o vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/vector.Tpo" "$(DEPDIR)/vector.Po"; else rm -f "$(DEPDIR)/vector.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='vector.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/vector.Po' tmpdepfile='$(DEPDIR)/vector.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc
+
+vector.obj: $(MAINSRCDIR)/lib/math/vector.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vector.obj -MD -MP -MF "$(DEPDIR)/vector.Tpo" -c -o vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/vector.Tpo" "$(DEPDIR)/vector.Po"; else rm -f "$(DEPDIR)/vector.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='vector.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/vector.Po' tmpdepfile='$(DEPDIR)/vector.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`
+
+resource_manager.o: $(MAINSRCDIR)/util/resource_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.o -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='resource_manager.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc
+
+resource_manager.obj: $(MAINSRCDIR)/util/resource_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.obj -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='resource_manager.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`
+
+text_engine.o: $(MAINSRCDIR)/lib/graphics/text_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT text_engine.o -MD -MP -MF "$(DEPDIR)/text_engine.Tpo" -c -o text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/text_engine.Tpo" "$(DEPDIR)/text_engine.Po"; else rm -f "$(DEPDIR)/text_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='text_engine.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/text_engine.Po' tmpdepfile='$(DEPDIR)/text_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc
+
+text_engine.obj: $(MAINSRCDIR)/lib/graphics/text_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT text_engine.obj -MD -MP -MF "$(DEPDIR)/text_engine.Tpo" -c -o text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/text_engine.Tpo" "$(DEPDIR)/text_engine.Po"; else rm -f "$(DEPDIR)/text_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='text_engine.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/text_engine.Po' tmpdepfile='$(DEPDIR)/text_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`
+
+p_node.o: $(MAINSRCDIR)/lib/coord/p_node.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT p_node.o -MD -MP -MF "$(DEPDIR)/p_node.Tpo" -c -o p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/p_node.Tpo" "$(DEPDIR)/p_node.Po"; else rm -f "$(DEPDIR)/p_node.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='p_node.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/p_node.Po' tmpdepfile='$(DEPDIR)/p_node.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc
+
+p_node.obj: $(MAINSRCDIR)/lib/coord/p_node.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT p_node.obj -MD -MP -MF "$(DEPDIR)/p_node.Tpo" -c -o p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/p_node.Tpo" "$(DEPDIR)/p_node.Po"; else rm -f "$(DEPDIR)/p_node.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='p_node.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/p_node.Po' tmpdepfile='$(DEPDIR)/p_node.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`
+
+null_parent.o: $(MAINSRCDIR)/lib/coord/null_parent.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT null_parent.o -MD -MP -MF "$(DEPDIR)/null_parent.Tpo" -c -o null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/null_parent.Tpo" "$(DEPDIR)/null_parent.Po"; else rm -f "$(DEPDIR)/null_parent.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='null_parent.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/null_parent.Po' tmpdepfile='$(DEPDIR)/null_parent.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc
+
+null_parent.obj: $(MAINSRCDIR)/lib/coord/null_parent.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT null_parent.obj -MD -MP -MF "$(DEPDIR)/null_parent.Tpo" -c -o null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/null_parent.Tpo" "$(DEPDIR)/null_parent.Po"; else rm -f "$(DEPDIR)/null_parent.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='null_parent.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/null_parent.Po' tmpdepfile='$(DEPDIR)/null_parent.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`
+
+array.o: $(MAINSRCDIR)/lib/graphics/importer/array.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.o -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/array.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/array.cc' object='array.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/array.cc
+
+array.obj: $(MAINSRCDIR)/lib/graphics/importer/array.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.obj -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/array.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/array.cc' object='array.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/array.cc'; fi`
+
+model.o: $(MAINSRCDIR)/lib/graphics/importer/model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT model.o -MD -MP -MF "$(DEPDIR)/model.Tpo" -c -o model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/model.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/model.Tpo" "$(DEPDIR)/model.Po"; else rm -f "$(DEPDIR)/model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/model.cc' object='model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/model.Po' tmpdepfile='$(DEPDIR)/model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/model.cc
+
+model.obj: $(MAINSRCDIR)/lib/graphics/importer/model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT model.obj -MD -MP -MF "$(DEPDIR)/model.Tpo" -c -o model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/model.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/model.Tpo" "$(DEPDIR)/model.Po"; else rm -f "$(DEPDIR)/model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/model.cc' object='model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/model.Po' tmpdepfile='$(DEPDIR)/model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/model.cc'; fi`
+
+objModel.o: $(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT objModel.o -MD -MP -MF "$(DEPDIR)/objModel.Tpo" -c -o objModel.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/objModel.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/objModel.Tpo" "$(DEPDIR)/objModel.Po"; else rm -f "$(DEPDIR)/objModel.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' object='objModel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/objModel.Po' tmpdepfile='$(DEPDIR)/objModel.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o objModel.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+
+objModel.obj: $(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT objModel.obj -MD -MP -MF "$(DEPDIR)/objModel.Tpo" -c -o objModel.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/objModel.Tpo" "$(DEPDIR)/objModel.Po"; else rm -f "$(DEPDIR)/objModel.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' object='objModel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/objModel.Po' tmpdepfile='$(DEPDIR)/objModel.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o objModel.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; fi`
+
+material.o: $(MAINSRCDIR)/lib/graphics/importer/material.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.o -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/material.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/material.cc' object='material.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/material.cc
+
+material.obj: $(MAINSRCDIR)/lib/graphics/importer/material.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.obj -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/material.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/material.cc' object='material.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/material.cc'; fi`
+
+texture.o: $(MAINSRCDIR)/lib/graphics/importer/texture.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT texture.o -MD -MP -MF "$(DEPDIR)/texture.Tpo" -c -o texture.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/texture.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/texture.Tpo" "$(DEPDIR)/texture.Po"; else rm -f "$(DEPDIR)/texture.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/texture.cc' object='texture.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/texture.Po' tmpdepfile='$(DEPDIR)/texture.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o texture.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/texture.cc
+
+texture.obj: $(MAINSRCDIR)/lib/graphics/importer/texture.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT texture.obj -MD -MP -MF "$(DEPDIR)/texture.Tpo" -c -o texture.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/texture.Tpo" "$(DEPDIR)/texture.Po"; else rm -f "$(DEPDIR)/texture.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/texture.cc' object='texture.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/texture.Po' tmpdepfile='$(DEPDIR)/texture.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o texture.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; fi`
+
+primitive_model.o: $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT primitive_model.o -MD -MP -MF "$(DEPDIR)/primitive_model.Tpo" -c -o primitive_model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/primitive_model.Tpo" "$(DEPDIR)/primitive_model.Po"; else rm -f "$(DEPDIR)/primitive_model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' object='primitive_model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/primitive_model.Po' tmpdepfile='$(DEPDIR)/primitive_model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o primitive_model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+
+primitive_model.obj: $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT primitive_model.obj -MD -MP -MF "$(DEPDIR)/primitive_model.Tpo" -c -o primitive_model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/primitive_model.Tpo" "$(DEPDIR)/primitive_model.Po"; else rm -f "$(DEPDIR)/primitive_model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' object='primitive_model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/primitive_model.Po' tmpdepfile='$(DEPDIR)/primitive_model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o primitive_model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; fi`
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic ctags distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-binPROGRAMS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: orxonox/branches/physics/src/subprojects/gui/gui_main.cc
===================================================================
--- orxonox/branches/physics/src/subprojects/gui/gui_main.cc	(revision 4283)
+++ orxonox/branches/physics/src/subprojects/gui/gui_main.cc	(revision 4283)
@@ -0,0 +1,34 @@
+/* 
+   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.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+
+*/
+
+#include "gui.h"
+
+int verbose = 4;
+
+int main(int argc, char *argv[])
+{
+  Gui* orxonoxgui = new Gui(argc, argv);
+  return 0;
+}
Index: orxonox/branches/physics/src/subprojects/importer/Makefile.am
===================================================================
--- orxonox/branches/physics/src/subprojects/importer/Makefile.am	(revision 4283)
+++ orxonox/branches/physics/src/subprojects/importer/Makefile.am	(revision 4283)
@@ -0,0 +1,51 @@
+MAINSRCDIR=../..
+AM_CXXFLAGS=-I$(MAINSRCDIR)
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/world_entities
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/story_entities
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/coord
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/data
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/importer
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/particles
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui/gui
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/lang
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/util
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/math
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/tinyxml
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/defs
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/font
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/network
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/glmenu
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/ai
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/animation
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/common
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/loading
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/track
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/subprojects
+
+
+AM_LDFLAGS=$(MWINDOWS)
+
+bin_PROGRAMS=importer
+
+
+importer_SOURCES= framework.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/model.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/objModel.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/array.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/material.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/texture.cc \
+		  $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
+		  $(MAINSRCDIR)/lib/lang/base_object.cc \
+		  $(MAINSRCDIR)/lib/math/vector.cc \
+		  $(MAINSRCDIR)/util/resource_manager.cc \
+		  $(MAINSRCDIR)/lib/graphics/text_engine.cc \
+		  $(MAINSRCDIR)/lib/coord/p_node.cc \
+		  $(MAINSRCDIR)/lib/coord/null_parent.cc
+
+noinst_HEADERS = framework.h \
+		 windowHandler.h
Index: orxonox/branches/physics/src/subprojects/importer/Makefile.in
===================================================================
--- orxonox/branches/physics/src/subprojects/importer/Makefile.in	(revision 4283)
+++ orxonox/branches/physics/src/subprojects/importer/Makefile.in	(revision 4283)
@@ -0,0 +1,691 @@
+# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+SOURCES = $(importer_SOURCES)
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+bin_PROGRAMS = importer$(EXEEXT)
+subdir = src/subprojects/importer
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_importer_OBJECTS = framework.$(OBJEXT) model.$(OBJEXT) \
+	objModel.$(OBJEXT) primitive_model.$(OBJEXT) array.$(OBJEXT) \
+	material.$(OBJEXT) texture.$(OBJEXT) graphics_engine.$(OBJEXT) \
+	base_object.$(OBJEXT) vector.$(OBJEXT) \
+	resource_manager.$(OBJEXT) text_engine.$(OBJEXT) \
+	p_node.$(OBJEXT) null_parent.$(OBJEXT)
+importer_OBJECTS = $(am_importer_OBJECTS)
+importer_LDADD = $(LDADD)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/array.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/base_object.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/framework.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/graphics_engine.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/material.Po ./$(DEPDIR)/model.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/null_parent.Po ./$(DEPDIR)/objModel.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/p_node.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/primitive_model.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/resource_manager.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/text_engine.Po ./$(DEPDIR)/texture.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/vector.Po
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+SOURCES = $(importer_SOURCES)
+DIST_SOURCES = $(importer_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG = @DEBUG@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCUMENTATION_FALSE = @DOCUMENTATION_FALSE@
+DOCUMENTATION_TRUE = @DOCUMENTATION_TRUE@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_FALSE = @DOXYGEN_FALSE@
+DOXYGEN_TRUE = @DOXYGEN_TRUE@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GPROF = @GPROF@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_LIBS = @GTK2_LIBS@
+HAVE_CURL_FALSE = @HAVE_CURL_FALSE@
+HAVE_CURL_TRUE = @HAVE_CURL_TRUE@
+HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@
+HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MSBITFIELDS = @MSBITFIELDS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SUB_PROJECTS_FALSE = @SUB_PROJECTS_FALSE@
+SUB_PROJECTS_TRUE = @SUB_PROJECTS_TRUE@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+MAINSRCDIR = ../..
+AM_CXXFLAGS = -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/graphics/particles -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/gui/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/lib/tinyxml -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common -I$(MAINSRCDIR)/util/loading -I$(MAINSRCDIR)/util/track -I$(MAINSRCDIR)/subprojects
+AM_LDFLAGS = $(MWINDOWS)
+importer_SOURCES = framework.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/model.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/objModel.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/array.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/material.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/texture.cc \
+		  $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
+		  $(MAINSRCDIR)/lib/lang/base_object.cc \
+		  $(MAINSRCDIR)/lib/math/vector.cc \
+		  $(MAINSRCDIR)/util/resource_manager.cc \
+		  $(MAINSRCDIR)/lib/graphics/text_engine.cc \
+		  $(MAINSRCDIR)/lib/coord/p_node.cc \
+		  $(MAINSRCDIR)/lib/coord/null_parent.cc
+
+noinst_HEADERS = framework.h \
+		 windowHandler.h
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/subprojects/importer/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  src/subprojects/importer/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+importer$(EXEEXT): $(importer_OBJECTS) $(importer_DEPENDENCIES) 
+	@rm -f importer$(EXEEXT)
+	$(CXXLINK) $(importer_LDFLAGS) $(importer_OBJECTS) $(importer_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base_object.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/framework.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graphics_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/material.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/null_parent.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objModel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p_node.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/primitive_model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource_manager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector.Po@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+model.o: $(MAINSRCDIR)/lib/graphics/importer/model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT model.o -MD -MP -MF "$(DEPDIR)/model.Tpo" -c -o model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/model.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/model.Tpo" "$(DEPDIR)/model.Po"; else rm -f "$(DEPDIR)/model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/model.cc' object='model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/model.Po' tmpdepfile='$(DEPDIR)/model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/model.cc
+
+model.obj: $(MAINSRCDIR)/lib/graphics/importer/model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT model.obj -MD -MP -MF "$(DEPDIR)/model.Tpo" -c -o model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/model.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/model.Tpo" "$(DEPDIR)/model.Po"; else rm -f "$(DEPDIR)/model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/model.cc' object='model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/model.Po' tmpdepfile='$(DEPDIR)/model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/model.cc'; fi`
+
+objModel.o: $(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT objModel.o -MD -MP -MF "$(DEPDIR)/objModel.Tpo" -c -o objModel.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/objModel.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/objModel.Tpo" "$(DEPDIR)/objModel.Po"; else rm -f "$(DEPDIR)/objModel.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' object='objModel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/objModel.Po' tmpdepfile='$(DEPDIR)/objModel.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o objModel.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+
+objModel.obj: $(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT objModel.obj -MD -MP -MF "$(DEPDIR)/objModel.Tpo" -c -o objModel.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/objModel.Tpo" "$(DEPDIR)/objModel.Po"; else rm -f "$(DEPDIR)/objModel.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' object='objModel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/objModel.Po' tmpdepfile='$(DEPDIR)/objModel.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o objModel.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; fi`
+
+primitive_model.o: $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT primitive_model.o -MD -MP -MF "$(DEPDIR)/primitive_model.Tpo" -c -o primitive_model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/primitive_model.Tpo" "$(DEPDIR)/primitive_model.Po"; else rm -f "$(DEPDIR)/primitive_model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' object='primitive_model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/primitive_model.Po' tmpdepfile='$(DEPDIR)/primitive_model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o primitive_model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+
+primitive_model.obj: $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT primitive_model.obj -MD -MP -MF "$(DEPDIR)/primitive_model.Tpo" -c -o primitive_model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/primitive_model.Tpo" "$(DEPDIR)/primitive_model.Po"; else rm -f "$(DEPDIR)/primitive_model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' object='primitive_model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/primitive_model.Po' tmpdepfile='$(DEPDIR)/primitive_model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o primitive_model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; fi`
+
+array.o: $(MAINSRCDIR)/lib/graphics/importer/array.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.o -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/array.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/array.cc' object='array.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/array.cc
+
+array.obj: $(MAINSRCDIR)/lib/graphics/importer/array.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.obj -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/array.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/array.cc' object='array.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/array.cc'; fi`
+
+material.o: $(MAINSRCDIR)/lib/graphics/importer/material.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.o -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/material.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/material.cc' object='material.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/material.cc
+
+material.obj: $(MAINSRCDIR)/lib/graphics/importer/material.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.obj -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/material.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/material.cc' object='material.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/material.cc'; fi`
+
+texture.o: $(MAINSRCDIR)/lib/graphics/importer/texture.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT texture.o -MD -MP -MF "$(DEPDIR)/texture.Tpo" -c -o texture.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/texture.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/texture.Tpo" "$(DEPDIR)/texture.Po"; else rm -f "$(DEPDIR)/texture.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/texture.cc' object='texture.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/texture.Po' tmpdepfile='$(DEPDIR)/texture.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o texture.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/texture.cc
+
+texture.obj: $(MAINSRCDIR)/lib/graphics/importer/texture.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT texture.obj -MD -MP -MF "$(DEPDIR)/texture.Tpo" -c -o texture.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/texture.Tpo" "$(DEPDIR)/texture.Po"; else rm -f "$(DEPDIR)/texture.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/texture.cc' object='texture.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/texture.Po' tmpdepfile='$(DEPDIR)/texture.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o texture.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; fi`
+
+graphics_engine.o: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.o -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/graphics_engine.Tpo" "$(DEPDIR)/graphics_engine.Po"; else rm -f "$(DEPDIR)/graphics_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='graphics_engine.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/graphics_engine.Po' tmpdepfile='$(DEPDIR)/graphics_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+
+graphics_engine.obj: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT graphics_engine.obj -MD -MP -MF "$(DEPDIR)/graphics_engine.Tpo" -c -o graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/graphics_engine.Tpo" "$(DEPDIR)/graphics_engine.Po"; else rm -f "$(DEPDIR)/graphics_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='graphics_engine.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/graphics_engine.Po' tmpdepfile='$(DEPDIR)/graphics_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`
+
+base_object.o: $(MAINSRCDIR)/lib/lang/base_object.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT base_object.o -MD -MP -MF "$(DEPDIR)/base_object.Tpo" -c -o base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/base_object.Tpo" "$(DEPDIR)/base_object.Po"; else rm -f "$(DEPDIR)/base_object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='base_object.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/base_object.Po' tmpdepfile='$(DEPDIR)/base_object.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc
+
+base_object.obj: $(MAINSRCDIR)/lib/lang/base_object.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT base_object.obj -MD -MP -MF "$(DEPDIR)/base_object.Tpo" -c -o base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/base_object.Tpo" "$(DEPDIR)/base_object.Po"; else rm -f "$(DEPDIR)/base_object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='base_object.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/base_object.Po' tmpdepfile='$(DEPDIR)/base_object.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`
+
+vector.o: $(MAINSRCDIR)/lib/math/vector.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vector.o -MD -MP -MF "$(DEPDIR)/vector.Tpo" -c -o vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/vector.Tpo" "$(DEPDIR)/vector.Po"; else rm -f "$(DEPDIR)/vector.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='vector.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/vector.Po' tmpdepfile='$(DEPDIR)/vector.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc
+
+vector.obj: $(MAINSRCDIR)/lib/math/vector.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT vector.obj -MD -MP -MF "$(DEPDIR)/vector.Tpo" -c -o vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/vector.Tpo" "$(DEPDIR)/vector.Po"; else rm -f "$(DEPDIR)/vector.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='vector.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/vector.Po' tmpdepfile='$(DEPDIR)/vector.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`
+
+resource_manager.o: $(MAINSRCDIR)/util/resource_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.o -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='resource_manager.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc
+
+resource_manager.obj: $(MAINSRCDIR)/util/resource_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT resource_manager.obj -MD -MP -MF "$(DEPDIR)/resource_manager.Tpo" -c -o resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/resource_manager.Tpo" "$(DEPDIR)/resource_manager.Po"; else rm -f "$(DEPDIR)/resource_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='resource_manager.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/resource_manager.Po' tmpdepfile='$(DEPDIR)/resource_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`
+
+text_engine.o: $(MAINSRCDIR)/lib/graphics/text_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT text_engine.o -MD -MP -MF "$(DEPDIR)/text_engine.Tpo" -c -o text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/text_engine.Tpo" "$(DEPDIR)/text_engine.Po"; else rm -f "$(DEPDIR)/text_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='text_engine.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/text_engine.Po' tmpdepfile='$(DEPDIR)/text_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc
+
+text_engine.obj: $(MAINSRCDIR)/lib/graphics/text_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT text_engine.obj -MD -MP -MF "$(DEPDIR)/text_engine.Tpo" -c -o text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/text_engine.Tpo" "$(DEPDIR)/text_engine.Po"; else rm -f "$(DEPDIR)/text_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='text_engine.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/text_engine.Po' tmpdepfile='$(DEPDIR)/text_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`
+
+p_node.o: $(MAINSRCDIR)/lib/coord/p_node.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT p_node.o -MD -MP -MF "$(DEPDIR)/p_node.Tpo" -c -o p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/p_node.Tpo" "$(DEPDIR)/p_node.Po"; else rm -f "$(DEPDIR)/p_node.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='p_node.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/p_node.Po' tmpdepfile='$(DEPDIR)/p_node.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc
+
+p_node.obj: $(MAINSRCDIR)/lib/coord/p_node.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT p_node.obj -MD -MP -MF "$(DEPDIR)/p_node.Tpo" -c -o p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/p_node.Tpo" "$(DEPDIR)/p_node.Po"; else rm -f "$(DEPDIR)/p_node.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='p_node.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/p_node.Po' tmpdepfile='$(DEPDIR)/p_node.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`
+
+null_parent.o: $(MAINSRCDIR)/lib/coord/null_parent.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT null_parent.o -MD -MP -MF "$(DEPDIR)/null_parent.Tpo" -c -o null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/null_parent.Tpo" "$(DEPDIR)/null_parent.Po"; else rm -f "$(DEPDIR)/null_parent.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='null_parent.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/null_parent.Po' tmpdepfile='$(DEPDIR)/null_parent.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc
+
+null_parent.obj: $(MAINSRCDIR)/lib/coord/null_parent.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT null_parent.obj -MD -MP -MF "$(DEPDIR)/null_parent.Tpo" -c -o null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/null_parent.Tpo" "$(DEPDIR)/null_parent.Po"; else rm -f "$(DEPDIR)/null_parent.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='null_parent.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/null_parent.Po' tmpdepfile='$(DEPDIR)/null_parent.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic ctags distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-binPROGRAMS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: orxonox/branches/physics/src/subprojects/importer/framework.cc
===================================================================
--- orxonox/branches/physics/src/subprojects/importer/framework.cc	(revision 4283)
+++ orxonox/branches/physics/src/subprojects/importer/framework.cc	(revision 4283)
@@ -0,0 +1,253 @@
+/* 
+   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: ...
+*/
+
+#include "framework.h"
+
+#include "vector.h"
+
+#include "primitive_model.h"
+#include "debug.h"
+#include "graphics_engine.h"
+
+
+
+int verbose;
+void DrawGLScene()
+{
+  currFrame = SDL_GetTicks();
+  dt = currFrame - lastFrame; 
+  if (dt == 0)
+    dist += (zoomTo-dist)/500;
+  else 
+    dist += (zoomTo-dist)/500 *(float)dt;
+
+  rotatorP += rotatorV *(float)dt;
+  
+
+  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+  glLoadIdentity(); // Reset the view
+  
+  glMatrixMode(GL_PROJECTION);
+  glLoadIdentity();	
+  gluPerspective(45.0f,500/375,0.1f,dist * 5.0f);
+    gluLookAt (0, dist , dist, 0,0,0, up.x,up.y,up.z);
+
+  glMatrixMode(GL_MODELVIEW);
+  glPushMatrix();
+  //  glRotatef (180, dir.x, dir.y, dir.z);
+  glMultMatrixf (*matQ);
+  if (obj)
+    obj->draw();
+
+  glPopMatrix();
+
+  SDL_GL_SwapBuffers(); // Swap the buffers
+  lastFrame = currFrame;
+}
+
+
+int main(int argc, char *argv[])
+{
+  verbose = 3;
+
+  Uint8* keys; // This variable will be used in the keyboard routine
+  int done = false; // We aren't done yet, are we?
+
+  // Create a new OpenGL window with the title "Cone3D Basecode" at
+  // 640x480x32, fullscreen and check for errors along the way
+  GraphicsEngine::getInstance();
+
+  if (argc>=3)
+    obj = new OBJModel (argv[1], atof(argv[2]));
+  else if (argc>=2)
+    obj = new OBJModel(argv[1]);
+  else 
+    obj = new PrimitiveModel(CYLINDER);
+
+  M = Vector(GraphicsEngine::getInstance()->getResolutionY()/2, GraphicsEngine::getInstance()->getResolutionX()/2, 0); 
+  rotAxis = Vector (0.0,1.0,0.0);
+  rotAngle = 0;
+
+  matQ[0][0] = matQ[1][1] = matQ[2][2] = matQ[3][3] = 1;
+  rotQ = Quaternion (rotAngle, rotAxis);
+  rotQlast = rotQ;
+  dir = Vector (0.0, 0.0, 1.0);
+  up = Vector (0.0, 1.0, 0.0);
+
+  glEnable(GL_LIGHTING);
+  glEnable(GL_DEPTH_TEST);
+
+  GLfloat whiteLight[] = {1.0, 1.0, 1.0,1.0};
+  GLfloat light0Position[] = {10.0, 10.0, 10.0, 0.0};
+  GLfloat light1Position[] = {-10.0, -7.0, -6.0, 0.0};
+  GLfloat lmodelAmbient[] = {.1, .1, .1, 1.0};
+
+  glEnable(GL_LIGHT0);
+  glLightfv(GL_LIGHT0, GL_POSITION, light0Position);
+  glLightfv(GL_LIGHT0, GL_DIFFUSE, whiteLight);
+  glLightfv(GL_LIGHT0, GL_SPECULAR, whiteLight);
+  
+  glEnable(GL_LIGHT1);
+  glLightfv(GL_LIGHT1, GL_POSITION, light1Position);
+  glLightfv(GL_LIGHT1, GL_DIFFUSE, whiteLight);
+  glLightfv(GL_LIGHT1, GL_SPECULAR, whiteLight);
+  
+
+  glEnable(GL_TEXTURE_2D);
+  rotatorP = .0;
+  rotatorV = .0;
+  dist = 5.0;
+  zoomTo = dist;
+  // Build the font from a TGA image font.tga in the data directory
+  // Hide the mouse cursor
+    SDL_ShowCursor(2);
+    mouse1Down = false;
+
+  // This is the main loop for the entire program and it will run until done==TRUE
+  while(!done)
+  {
+    // Draw the scene
+    DrawGLScene();
+    // And poll for events
+    SDL_Event event;
+    while ( SDL_PollEvent(&event) ) {
+      switch (event.type) {
+      case SDL_MOUSEMOTION:
+	PRINTF(4)("Mouse motion about %d,%d Pixels to (%d,%d).\n", 
+		  event.motion.xrel, event.motion.yrel,
+		  event.motion.x, event.motion.y);
+	// TRACKBALL
+	if (mouse1Down)
+	  {
+	    int mX = event.button.x;
+	    int mY = event.button.y;
+	    int wH = GraphicsEngine::getInstance()->getResolutionY();
+	    int wW = GraphicsEngine::getInstance()->getResolutionX();
+	    Vector tmpV (mX, mY, sqrt ( (float) abs(wH * wH/4 - (wW/2-mX) * (wW/2-mX) - (wH/2-mY) * (wH/2-mY)) ));
+	    //	    PRINTF(0)("tmpV: %f, %f, %f\n", tmpV.x, tmpV.y, tmpV.z);
+	    p2 = tmpV-M;
+	    p2.y = -p2.y;
+	    rotAxis = p1.cross(p2);
+	    //  PRINTF(0)("rotAxis: %f, %f, %f\n", rotAxis.x, rotAxis.y, rotAxis.z);
+
+	    // in case that there is no rotation-axis defined
+	    if (rotAxis.x != 0 || rotAxis.y != 0 || rotAxis.z != 0)
+	      {
+		rotAxis.normalize();
+		//		PRINTF(0)("rotAxis: %f, %f, %f\n", rotAxis.x, rotAxis.y, rotAxis.z, rotAngle);
+				
+		rotAngle = angleRad (p1, p2);
+		rotQ = Quaternion (rotAngle, rotAxis);
+		rotQ = rotQ * rotQlast;
+		rotQ.matrix (matQ);
+		//	dir = rotQ.apply(dir);
+		//      dir.normalize();
+		//	PRINTF(0)("rotAxis: %f, %f, %f, %f\n", dir.x, dir.y, dir.z, rotAngle);
+	      }
+	    rotQlast = rotQ;
+	    p1 = p2;
+
+	  }
+	break;
+      case SDL_MOUSEBUTTONDOWN:
+	if (event.button.button == 4)
+	  {
+	    PRINTF(4)("MouseWheel up\n");
+	    zoomTo *= .5;
+	  }
+	else if (event.button.button == 5)
+	  {
+	    PRINTF(4)("MouseWheel down\n");
+	    zoomTo *= 2.0;
+	  }
+	else if (event.button.button == 1)
+	  {
+	    mouse1Down = true;
+	    int mX = event.button.x;
+	    int mY = event.button.y;
+	    int wH = GraphicsEngine::getInstance()->getResolutionY();
+	    int wW = GraphicsEngine::getInstance()->getResolutionX();
+	    Vector tmpV (mX, mY, sqrt ( (float) abs(wH * wH/4 - (wW/2-mX) * (wW/2-mX) - (wH/2-mY) * (wH/2-mY)) ));
+	    p1 = tmpV-M;
+	    p1.y = -p1.y;
+
+	  }
+	else
+	  {
+	    PRINTF(0)("MouseButton %d pressed at (%d,%d).\n",
+		   event.button.button, event.button.x, event.button.y);
+	    rotatorV = ( (float)GraphicsEngine::getInstance()->getResolutionY()/2 -event.button.x) / (float)GraphicsEngine::getInstance()->getResolutionY() / 100.0;
+	  }
+	    
+	break;
+      case SDL_MOUSEBUTTONUP:
+	if (event.button.button == 4);
+	else if (event.button.button == 5);
+	else if (event.button.button == 1)
+	  mouse1Down =false;
+	else 
+	    {
+	      PRINTF(4)("MouseButton %d released at (%d,%d).\n",
+			event.button.button, event.button.x, event.button.y);
+	    }
+	break;
+
+
+      case SDL_KEYDOWN:
+	switch (event.key.keysym.sym)
+	  {
+	  case SDLK_x:
+	    delete obj;
+	    obj = NULL;
+	    break;
+	  case SDLK_c:
+	    if (!obj)
+	      obj = new OBJModel(argv[1]);
+	    break;
+	  case SDLK_a:
+	    zoomTo /=2;
+	    break;
+	  case SDLK_z:
+	    zoomTo *=2;
+
+	  }
+	break;
+	    
+        // If a quit event was recieved
+      case SDL_QUIT:
+	// then we're done and we'll end this program
+          done=true;
+          break;
+      default:
+          break;
+      }
+
+
+    }
+
+    // Get the state of the keyboard keys
+    keys = SDL_GetKeyState(NULL);
+
+    // and check if ESCAPE has been pressed. If so then quit
+    if(keys[SDLK_ESCAPE]) done=true;
+  }
+
+  // Kill the GL & SDL screens
+  if (obj)
+    delete obj;
+  delete GraphicsEngine::getInstance();
+  // And quit
+  return 0;
+}
Index: orxonox/branches/physics/src/subprojects/importer/framework.h
===================================================================
--- orxonox/branches/physics/src/subprojects/importer/framework.h	(revision 4283)
+++ orxonox/branches/physics/src/subprojects/importer/framework.h	(revision 4283)
@@ -0,0 +1,36 @@
+#ifndef _FRAMEWORK_H
+#define _FRAMEWORK_H
+ 
+#include "objModel.h"
+#include "vector.h"
+
+float rotatorP;
+float rotatorV;
+
+float dist;
+float zoomTo;
+
+Uint32 lastFrame;
+Uint32 currFrame;
+Uint32 dt;
+
+
+Vector dir;
+Vector up;
+
+float matQ[4][4];
+
+Vector M;
+Vector p1;
+Vector p2;
+Vector rotAxis;
+float rotAngle;
+Quaternion rotQ;
+Quaternion rotQlast;
+
+bool mouse1Down;
+
+Model* obj;
+
+
+#endif /* _FRAMEWORK_H */
Index: orxonox/branches/physics/src/subprojects/testmain/Makefile.in
===================================================================
--- orxonox/branches/physics/src/subprojects/testmain/Makefile.in	(revision 4274)
+++ orxonox/branches/physics/src/subprojects/testmain/Makefile.in	(revision 4283)
@@ -197,7 +197,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/subprojects/testmain/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/subprojects/testmain/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/subprojects/testmain/Makefile
+	  $(AUTOMAKE) --foreign  src/subprojects/testmain/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/physics/src/track_manager.cc
===================================================================
--- orxonox/branches/physics/src/track_manager.cc	(revision 4274)
+++ 	(revision )
@@ -1,1209 +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: ...
-*/
-
-#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_TRACK_MANAGER
-
-#include "track_manager.h"
-
-#include "base_object.h"
-#include "p_node.h"
-#include "track_node.h"
-#include "stdincl.h"
-#include "list.h"
-#include "text_engine.h"
-#include "t_animation.h"
-#include "substring.h"
-
-#include <stdarg.h>
-
-using namespace std;
-
-/**
-   \brief initializes a TrackElement (sets the default values)
-*/
-TrackElement::TrackElement(void)
-{
-  this->isFresh = true;
-  this->isHotPoint = false;
-  this->isSavePoint = false;
-  this->isFork = false;
-  this->isJoined = false;
-  this->mainJoin = false;
-  this->ID = -1;
-  this->startingTime = 0;
-  this->duration = TMAN_DEFAULT_DURATION;
-  this->endTime = 1;
-  this->jumpTime = 0;
-  this->width = TMAN_DEFAULT_WIDTH;
-  this->nodeCount = 0;
-  this->curve = NULL;
-  this->childCount = 0;
-  this->children = NULL;
-  this->name = NULL;
-
-  this->history = NULL;
-
-  this->subject = NULL;
-  this->condFunc = &TrackElement::random;
-}
-
-/** 
-    \brief destroys all alocated memory)
-    \todo eventually when deleting a TrackElement you would not like to delete all its preceding TrackElements
-*/
-TrackElement::~TrackElement(void)
-{
-  // deleting the Name
-  delete []name;
-  // deleting the Curve
-  delete this->curve;
-
-  // deleting all the Children of this TrackNode.
-  if ((!this->isJoined &&this->childCount > 0) 
-      || (this->isJoined && this->mainJoin)) // only if this is the MainJoin.
-    {
-      tIterator<TrackElement>* iterator = this->children->getIterator();
-      TrackElement* enumElem = iterator->nextElement();
-      while (enumElem)
-	{
-	  delete enumElem;
-	  enumElem = iterator->nextElement();
-	}
-      delete iterator;
-      delete this->children;
-    }
-}
-
-/**
-   \brief Searches through all the TrackElements for trackID.
-   \param trackID The ID to search for.
-   \returns The TrackElement if Found, NULL otherwise.
-*/
-TrackElement* TrackElement::findByID(unsigned int trackID)
-{
-  // return if Found.
-  if (this->ID == trackID)
-    return this;
-  // search all children
-  if (this->childCount > 0)
-    {
-      tIterator<TrackElement>* iterator = this->children->getIterator();
-      TrackElement* enumElem = iterator->nextElement();
-      TrackElement* tmpElem;
-      while (enumElem)
-	{
-	  if ((tmpElem = enumElem->findByID(trackID)))
-	    return tmpElem;
-	  enumElem = iterator->nextElement();
-	}
-      delete iterator;
-    }
-  // if not found
-  return NULL;
-}
-
-
-/**
-   \brief Searches through all the TrackElements for a trackName
-   \param trackName The name to search for.
-   \returns The TrackElement if Found, NULL otherwise.
-*/
-TrackElement* TrackElement::findByName(const char* trackName)
-{
-  // return if Found.
-  if (this->name && !strcmp(this->name, trackName))
-    return this;
-  // search all children
-  if (this->childCount > 0)
-    {
-      tIterator<TrackElement>* iterator = this->children->getIterator();
-      TrackElement* enumElem = iterator->nextElement();
-      TrackElement* tmpElem;
-      while (enumElem)
-	{
-	  if ((tmpElem = enumElem->findByName(trackName)))
-	    return tmpElem;
-	  enumElem = iterator->nextElement();
-	}
-      delete iterator;
-    }
-  // if not found
-  return NULL;
-}
-
-/**
-   \brief checks if there are any BackLoops in the Track (Backloops only 
-   \param trackElem the trackElement to check about
-   \returns true if NO loop was found, false Otherwise
-   You actually have to act on false!!
-   it simply does this by looking if the current trackElem is found again somewhere else in the Track
-*/
-bool TrackElement::backLoopCheck(const TrackElement* trackElem, unsigned int depth) const
-{
-  if(depth == 0 || this != trackElem)
-    {
-      if (this->children)
-	{
-	  tIterator<TrackElement>* iterator = this->children->getIterator();
-	  TrackElement* enumElem = iterator->nextElement();
-	  while (enumElem)
-	    {
-	      if(!enumElem->backLoopCheck(trackElem, depth + 1))
-		return false;
-	      enumElem = iterator->nextElement();
-	    }
-	  delete iterator;
-	}
-    }
-  else
-    return false;
-
-  // only returns if everything worked out
-  return true;
-}
-
-/**
-   \param childNumber which child to return
-   \returns the n-the children (starting at 0). 
-   Be aware, that when the trackElement has no Children, NULL will be returned
-*/
-TrackElement* TrackElement::getChild(int childCount) const
-{
-  // if the the trackElement has no children return NULL.
-  if (this->childCount == 0)
-    return NULL;
-  // we cannot return the childCount+m's Child, so we return the last.
-  if (childCount > this->childCount)
-    childCount = this->childCount;
-  
-  tIterator<TrackElement>* iterator = this->children->getIterator();
-  TrackElement* enumElem = iterator->nextElement();
-  for (int i = 0; i < childCount; i++)
-    enumElem = iterator->nextElement();
-  delete iterator;
-  return enumElem;
-}
-
-/**
-   \param name the Name to set.
-*/
-void TrackElement::setName(const char* name)
-{
-  //  delete the old name
-  if (this->name)
-    delete []this->name;
-  // if a name was given.
-  if (name)
-    {
-      this->name = new char[strlen(name)+1];
-      strcpy(this->name, name);
-    }
-  else 
-    this->name = NULL;
-}
-
-/**
-   \returns The name of this TrackElement
-*/
-const char* TrackElement::getName(void) const
-{
-  return this->name;
-}
-
-/**
-   \brief prints out debug information about this TrackElement
-*/
-void TrackElement::debug(void) const
-{
-  PRINT(0)("--== TrackElement:%i ==--", this->ID);
-  if(this->getName())
-    PRINT(0)("--++Name: %s++--", this->getName());
-  if(this->isFresh)
-    PRINT(0)("  -- has not jet eddited in any way --\n");
-  PRINT(0)("\n   TimeTable: startingTime=%f; endTime=%f; duration=%f; jumpTime=%f\n", this->startingTime, this->endTime, this->duration, this->jumpTime);
-  PRINT(0)("   consists of %d Points\n", this->nodeCount);
-  if (this->childCount == 0)
-    PRINT(0)("   has no child\n");
-  else if (this->childCount == 1)
-    PRINT(0)("   has 1 child: =%d=\n", this->getChild(0)->ID);
-  else if (this->childCount > 1)
-    {
-      PRINT(0)("   has %d children: ", this->childCount);
-      //TrackElement* enumElem = this->children->enumerate();
-      tIterator<TrackElement>* iterator = this->children->getIterator();
-      TrackElement* enumElem = iterator->nextElement();
-      while (enumElem)
-	{
-	  PRINT(0)("=%d= ", enumElem->ID);
-	  enumElem = iterator->nextElement();
-	}
-      delete iterator;
-      PRINT(0)("\n");
-    }
-  
-  if(this->isHotPoint)
-    PRINT(0)("   is a special Point:\n");
-  if(this->isSavePoint)
-    PRINT(0)("    is a SavePoint\n");
-  if(this->isFork)
-    {
-      PRINT(0)("    is A Fork with with %d children.\n", this->childCount);
-    }
-  if(this->isJoined)
-    PRINT(0)("   is Joined at the End\n");
-  
-  if(!this->backLoopCheck(this)) /* this should not happen */
-    PRINT(2)(" THERE IS A BACKLOOP TO THIS ELEMENT\n");
-}
-
-/**
-   \brief CONDITION that chooses the first child for the decision (static)
-   \param nothing Nothing in this function
-   \returns the chosen child
-*/
-int TrackElement::lowest(const void* nothing) const
-{
-  return 0;
-}
-
-/**
-   \brief CONDITION that chooses the last child for the decision (static)
-   \param nothing Nothing in this function
-   \returns the chosen child
-*/
-int TrackElement::highest(const void* nothing) const
-{ 
-  return this->childCount-1;
-}
-
-/**
-   \brief CONDITION that chooses a random child for the decision (static)
-   \param nothing Nothing in this function
-   \returns the chosen child
-*/
-int TrackElement::random(const void* nothing) const
-{
-  int i = (int)floor ((float)rand()/(float)RAND_MAX * (float)this->childCount);
-  if (i >= this->childCount)
-    return this->childCount-1;
-  else 
-    return i;
-}
-
-/**
-   \brief CONDITION that chooses child 0, if the node(probably Player)
-   is left of its parent (z<0)) and 1/right otherwise.
-   \param node The node to act upon.
-   \returns the chosen child
-*/
-int TrackElement::leftRight(const void* node) const
-{
-  PNode* tmpNode = (PNode*)node;
-
-  if (tmpNode->getRelCoor().z < 0)
-    return 0;
-  else 
-    return 1;
-}
-
-
-/**
-   \brief CONDITION that chooses the child, that has the nearest distance to the node (probably player).
-   \param node The node to act upon.
-   \returns the chosen child
-
-   This is rather dangerous, because one must carefully set the points on the curve.
-   The best Way is to set the nodes as wide away of each other as possible,
-   but take into consideration, that if the nodes are to far from a center node, the center will be chosen.
-   (play with this!!).
-*/
-int TrackElement::nearest(const void* node) const
-{
-  PNode* tmpNode = (PNode*)node;
-
-  Vector nodeRelCoord = tmpNode->getRelCoor();
-  float minDist = 100000000;
-  int childNumber = 0;
-  int i = 0;
-
-  //TrackElement* enumElem = this->children->enumerate();
-  tIterator<TrackElement>* iterator = this->children->getIterator();
-  TrackElement* enumElem = iterator->nextElement();
-  while (enumElem)
-    {
-      float dist = (nodeRelCoord - enumElem->curve->getNode(4)).len();
-      if (dist < minDist)
-	{
-	  minDist = dist;
-	  childNumber = i;
-	}
-      i++;
-      enumElem = iterator->nextElement();
-    }
-  delete iterator;
-
-  PRINTF(4)("PathDecision with nearest algorithm: %d\n", childNumber);
-  return childNumber;
-}
-
-
-////////////////////////
-///// TRACKMANAGER /////
-////////////////////////
-/**
-   \brief standard constructor
-
-*/
-TrackManager::TrackManager(void)
-{
-  this->setClassName("TrackManager");
-  
-  TrackManager::singletonRef = this; // do this because otherwise the TrackNode cannot get The instance of the TrackManager
-
-  PRINTF(3)("Initializing the TrackManager\n");
-  // setting up the First TrackElement
-  this->firstTrackElem = new TrackElement();
-  this->firstTrackElem->ID = 1;
-  this->firstTrackElem->setName("root");
-
-  this->currentTrackElem = firstTrackElem;
-
-  this->curveType = CURVE_BEZIER;
-  this->localTime = 0;
-  this->maxTime = 0;
-  this->trackElemCount = 1;
-
-  this->trackNode = new TrackNode();
-  this->setBindSlave(this->trackNode);
-  // initializing the Text
-  this->trackText = TextEngine::getInstance()->createText("fonts/earth.ttf", 30, TEXT_DYNAMIC, 0, 255, 0);
-  this->trackText->setAlignment(TEXT_ALIGN_SCREEN_CENTER);
-  // initializing the Animation for the Text.
-  this->textAnimation = new tAnimation<Text>(this->trackText, &Text::setBlending);
-  this->textAnimation->addKeyFrame(1.0, 3.0, ANIM_NEG_EXP);
-  this->textAnimation->addKeyFrame(0.0, .001);
-  this->textAnimation->setInfinity(ANIM_INF_CONSTANT);
-}
-
-
-/**
-   \brief loads a trackElement from a TiXmlElement
-   \param root the TiXmlElement to load the Data from
-*/
-bool TrackManager::load( TiXmlElement* root)
-{
-  TiXmlElement* element;
-  TiXmlNode* container;
-  double x, y, z, d;
-	
-  element = root->FirstChildElement();
-	
-  while( element != NULL)
-    {
-      if( !strcmp( element->Value(), "Point"))
-	{
-	  container = element->FirstChild();
-	  if( container->ToText())
-	    {
-	      assert( container->Value() != NULL);
-	      if( sscanf( container->Value(), "%lf,%lf,%lf", &x, &y, &z) == 3)
-		{
-		  PRINTF(0)("Loaded Point: %lf,%lf,%lf (%s)\n", x, y, z, container->Value());
-		  addPoint( Vector( x, y, z));
-		}
-	      else
-		{
-		  PRINTF(0)("Invalid Point in Track (skipped)\n");
-		}			
-	    }
-	}
-      else if( !strcmp( element->Value(), "Duration"))
-	{
-	  container = element->FirstChild();
-	  if( container->ToText())
-	    {
-	      assert( container->Value() != NULL);
-	      if( sscanf( container->Value(), "%lf", &d) == 1)
-		{
-		  PRINTF(5)("Loaded Duration: %lf (%s)\n", d, container->Value());
-		  setDuration( d);
-		}
-	      else
-		{
-		  PRINTF(2)("Invalid Duration in Track (skipped)\n");
-		}			
-	    }
-	}
-      else if( !strcmp( element->Value(), "SavePoint"))
-	{
-	  PRINTF(5)("Loaded Savepoint\n");
-	  setSavePoint();
-	}
-      else if( !strcmp( element->Value(), "Fork"))
-	{
-	  container = element->FirstChild();
-	  if( container->ToText())
-	    {
-	      assert( container->Value() != NULL);
-	      PRINTF(4)("Loaded Fork: %s\n", container->Value());
-	      forkS(container->Value());
-	    }
-	}
-      else if( !strcmp( element->Value(), "Join"))
-	{
-	  container = element->FirstChild();
-	  if( container->ToText())
-	    {
-	      assert( container->Value() != NULL);
-	      PRINTF0("Loaded Join: %s\n", container->Value());
-	      joinS(container->Value());
-	    }
-	}
-      else if( !strcmp( element->Value(), "WorkOn"))
-	{
-	  container = element->FirstChild();
-	  if( container->ToText())
-	    {
-	      assert( container->Value() != NULL);
-	      PRINTF(4)("Loaded WorkOn: %s\n", container->Value());
-	      workOn( container->Value());
-	    }
-	}
-		
-      element = element->NextSiblingElement();
-    }
-
-}
-
-
-
-/**
-   \brief standard destructor
-*/
-TrackManager::~TrackManager(void)
-{
-  PRINTF(3)("Destruct TrackManager\n");
-
-  PRINTF(4)("Deleting all the TrackElements\n");
-  delete this->firstTrackElem;
-
-  // the tracknode should be deleted here, but is deleted by pNode: -> null_parent
-
-  // we do not have a TrackManager anymore
-  TrackManager::singletonRef = NULL;
-}
-
-//! Singleton Reference to TrackManager
-TrackManager* TrackManager::singletonRef = NULL;
-
-/**
-   \returns The reference on the TrackManager.
-
-   If the TrackManager does not exist, it will be created.
-*/
-TrackManager* TrackManager::getInstance(void) 
-{
-  if (!TrackManager::singletonRef)
-    TrackManager::singletonRef = new TrackManager();
-  return TrackManager::singletonRef;
-}
-
-
-// INITIALIZE //
-/**
-   \brief reserves Space for childCount children
-   \param childCount The Count of children to make space for.
-   \param trackElem The TrackElement to appy this to. (if NULL chose this->currentTrackElement)
-*/
-void TrackManager::initChildren(unsigned int childCount, TrackElement* trackElem)
-{
-  if (!trackElem)
-    trackElem = this->currentTrackElem;
-
-  trackElem->childCount = childCount;
-  trackElem->mainJoin = true;  // this tells join, that this one is the Main Join, if it tries to join multiple Tracks
-  trackElem->children =  new tList<TrackElement>();
-  for (int i = 0; i < childCount; i++)
-    {
-      // create a new Element
-      TrackElement* newElem = new TrackElement();
-      // setting up the new ID
-      newElem->ID = ++trackElemCount;
-      // setting up the Time
-      newElem->startingTime = trackElem->endTime + trackElem->jumpTime;
-      // adds the conection Point
-      this->addPoint(trackElem->curve->getNode(trackElem->curve->getNodeCount()),
-		     newElem);
-      // add the new child to the childList.
-      trackElem->children->add(newElem);
-    }
-
-  // setting the Name of the new TrackElement to the name of the last one + _childI
-
-  if (trackElem->getName())
-    {
-      for (int i = 0; i < trackElem->childCount; i++)
-      {
-	char* childName = new char[strlen(trackElem->getName())+10];
-	sprintf(childName, "%s_child%d", trackElem->getName(), i);
-	trackElem->getChild(i)->setName(childName);
-      }
-    }
-  // select the first Child to work on.
-  this->currentTrackElem = trackElem->getChild(0);
-}
-
-
-/**
-   \brief Sets the trackID we are working on.
-   \param trackID the trackID we are working on
-*/
-void TrackManager::workOn(unsigned int trackID)
-{
-  TrackElement* tmpElem = this->firstTrackElem->findByID(trackID);
-  if (tmpElem)
-    this->currentTrackElem = tmpElem;
-  else
-    PRINTF(2)("TrackElement %d not Found, leaving unchanged\n", trackID);
-  PRINTF(4)("now Working on %d\n", this->currentTrackElem->ID);
-}
-
-/**
-   \brief Sets the TrackElement to work on
-   \param trackName the Name of the Track to work on
-*/
-void TrackManager::workOn(const char* trackName)
-{
-  TrackElement* tmpElem = this->firstTrackElem->findByName(trackName);
-  if (tmpElem)
-    this->currentTrackElem = tmpElem;
-  else
-    PRINTF(2)("TrackElement %s not Found, leaving unchanged\n", trackName);
-  PRINTF(4)("now Working on %d\n", this->currentTrackElem->ID);
-}
-
-/**
-   \brief Sets the Type of the Curve
-   \param curveType The Type to set
-   \param trackElem the TrackElement that should get a new Curve.
-
-   \brief this will possibly get obsolete during the process.
-*/
-void TrackManager::setCurveType(CurveType curveType, TrackElement* trackElem)
-{
-  if (!trackElem->isFresh)
-    {
-      PRINTF(2)("It is not possible to change the type of a Curve after you have have appended some points to it\n");
-      return;
-    }
-  this->curveType = curveType;
-  switch (curveType)
-    {
-    case CURVE_BEZIER:
-      trackElem->curve = new BezierCurve();
-      break;
-    }
-}
-
-/**
-   \brief Sets the duration of the current path in seconds.
-   \param duration The duration in seconds.
-   \param trackElem The TrackElement to apply this to.
-*/
-void TrackManager::setDuration(float duration, TrackElement* trackElem)
-{
-  if (!trackElem)
-    trackElem = this->currentTrackElem;
-
-  trackElem->duration = duration;
-  trackElem->endTime = trackElem->startingTime + duration;
-}
-
-/**
-   \brief adds a point to trackElem
-   \param newPoint The point to add.
-   \param trackElem The TrackElement to add the Point to
-*/
-bool TrackManager::addPoint(Vector newPoint, TrackElement* trackElem)
-{
-  if (!trackElem)
-    trackElem = this->currentTrackElem;
-
-  if (trackElem->isFresh)
-    {
-      this->setCurveType(TMAN_DEFAULT_CURVETYPE, trackElem);
-      trackElem->isFresh = false;
-    }
-  trackElem->curve->addNode(newPoint);
-  trackElem->nodeCount++;
-}
-
-/**
-   \brief adds save/splitpoint.
-   \param newPoint The point to add.
-   \returns A Pointer to a newly appended Curve
-*/
-int TrackManager::addHotPoint(Vector newPoint, TrackElement* trackElem)
-{
-  if (!trackElem)
-    trackElem = this->currentTrackElem;
-
-  PRINTF(4)("setting up a HotPoint\n");
-  if (trackElem->isFresh)
-    {
-      trackElem->isFresh = false;
-    }
-
-  // \todo HotPoint Handling.
-  trackElem->curve->addNode(newPoint);
-  trackElem->nodeCount++;
-  this->initChildren(1, trackElem);
-}
-
-/**
-   \brief Sets the last HotPoint into a savePoint.
-   \param trackElem The TrackElement to appy this to. (if NULL chose this->currentTrackElement)
-   \returns A Pointer to a newly appended Curve
-
-   If no HotPoint was defined the last added Point will be rendered into a savePoint. \n
-   If the HotPoint was defined as a fork the Point will \b not be set into a savePoint.
-*/
-int TrackManager::setSavePoint(TrackElement* trackElem)
-{
-  if (!trackElem)
-    trackElem = this->currentTrackElem;
-
-  PRINTF(4)("setting up a SavePoint.\n");
-  if (trackElem->isFork || trackElem->isSavePoint)
-    {
-      PRINTF(2)("%d is already finished \n", trackElem->ID);
-      return trackElem->getChild(0)->ID;
-    }
-  trackElem->isSavePoint = true;
-  trackElem->isHotPoint = true;
-
-  this->initChildren(1, trackElem);
-}
-
-/**
-   \brief adds some interessting non-linear movments through the level.
-   \param count The Count of children the fork will produce
-
-   If no HotPoint was defined the last added Point will be rendered into a fork. \n
-   If the HotPoint was defined as a savePoint the Point will \b not be set into a fork.
-*/
-void TrackManager::fork(unsigned int count, ...)
-{
-  int* trackIDs = new int[count];
-  this->forkV(count, trackIDs, NULL);
-  va_list ID;
-  va_start (ID, count);
-  for(int i = 0; i < count; i++)
-    {
-      *va_arg (ID, int*) = trackIDs[i];
-    }
-  va_end(ID);  
-  delete []trackIDs;
-}
-
-/**
-   \param string the String to parse.
-   \see TrackManager::fork(unsigned int count, ...)
-
-   does the same as fork, but has an array of strings as an input.
-*/
-void TrackManager::forkS(unsigned int count, ...)
-{
-  int* trackIDs = new int[count];
-  this->forkV(count, trackIDs, NULL);
-  va_list name;
-  va_start (name, count);
-  for(int i = 0; i < count; i++)
-    {
-      this->firstTrackElem->findByID(trackIDs[i])->setName(va_arg(name, const char*));
-    }
-  va_end(name);  
-  delete []trackIDs;
-}
-
-/**
-   \see TrackManager::fork(unsigned int count, ...)
-*/
-void TrackManager::forkS(const char* forkString)
-{
-  SubString strings(forkString);
-
-  int* trackIDs = new int[strings.getCount()];
-  this->forkV(strings.getCount(), trackIDs, NULL);
-
-  for(int i = 0; i < strings.getCount(); i++)
-    {
-      this->firstTrackElem->findByID(trackIDs[i])->setName(strings.getString(i));
-    }  
-}
-
-/**
-   \brief adds some interessting non-linear movments through the level.
-   \param count The Count of childrens the current HotPoint will have.
-   \param trackIDs A Pointer to an Array of ints which will hold the trackID's (the user will have to reserve space for this).
-   \param trackElem The TrackElement to appy this to. (if NULL choose this->currentTrackElement)
-   \see TrackManager::fork(unsigned int count, ...)
-*/
-void TrackManager::forkV(unsigned int count, int* trackIDs, char** trackNames, TrackElement* trackElem)
-{
-  if (!trackElem)
-    trackElem = this->currentTrackElem;
-
-  PRINTF(4)("Forking with %d children\n", count);
-  if (trackElem->isSavePoint)
-    return;
-  trackElem->isFork = true;
-  trackElem->isHotPoint = true;
-  for(int i = 0; i < count; i++)
-    trackIDs[i]=this->trackElemCount+1+i;
-  this->initChildren(count, trackElem);
-}
-
-/**
-   \brief decides under what condition a certain Path will be chosen.
-   \param trackID the trackID to apply this to.
-   \param cond the CONDITION of the decision
-   \param subject the Subject that will be decided upon with CONDITION cond.
-*/
-void TrackManager::condition(unsigned int trackID, CONDITION cond, void* subject)
-{
-  this->condition(cond, subject, this->firstTrackElem->findByID(trackID));
-}
-
-/**
-   \brief decides under what condition a certain Path will be chosen.
-   \param cond the CONDITION of the decision
-   \param subject the Subject that will be decided upon with CONDITION cond.
-   \param trackElem The TrackElement to appy this to. (if NULL chose this->currentTrackElement)
-*/
-void TrackManager::condition(CONDITION cond, void* subject, TrackElement* trackElem)
-{
-  if (!trackElem)
-    trackElem = this->currentTrackElem;
-
-  if (!trackElem->isFork)
-    {
-      PRINTF(2)("%d is not a Fork, and no condition can be set in this case\n", trackElem->ID);
-      return;
-    }
-  else
-    {
-      switch (cond)
-	{
-	case LOWEST:
-	  trackElem->condFunc = &TrackElement::lowest;
-	  break;
-	case HIGHEST:
-	  trackElem->condFunc = &TrackElement::highest;
-	  break;
-	case RANDOM: 
-	  trackElem->condFunc = &TrackElement::random;
-	  break;
-	case LEFTRIGHT:
-	  trackElem->condFunc = &TrackElement::leftRight;
-	  break;
-	case NEAREST:
-	  trackElem->condFunc = &TrackElement::nearest;
-	  break;
-	case ENEMYKILLED:
-	  break;
-	}
-      trackElem->subject=subject;
-    }
-}
-
-/**
-   \brief joins some tracks together again. 
-   \param count The count of Paths to join.
-
-   Join will set the localTime to the longest time a Path has to get to this Point. \n
-   Join will join all curves to the first curve, meaning that all the tangents will be matched.
-*/
-void TrackManager::join(unsigned int count, ...)
-{
-  int* trackIDs = new int [count];
-  va_list ID;
-  va_start (ID, count);
-  for(int i = 0; i < count; i++)
-    {
-      trackIDs[i] = va_arg (ID, int);
-    }
-  va_end(ID);
-  this->joinV(count, trackIDs);
-  delete []trackIDs;
-}
-
-/**
-   \brief Joins some Tracks together again.
-   \param count The count of trackElements to join
-   \see void TrackManager::join(unsigned int count, ...)
-
-   The difference to void TrackManager::join(unsigned int count, ...) is, that this function takes
-   the Names of the TrackElements as inputs and not their ID
-*/
-void TrackManager::joinS(unsigned int count, ...)
-{
-  int* trackIDs = new int [count];
-  va_list NAME;
-  va_start (NAME, count);
-  for(int i = 0; i < count; i++)
-    {
-      const char* name = va_arg (NAME, char*);
-      TrackElement* tmpElem = this->firstTrackElem->findByName(name);
-      if (tmpElem)
-	trackIDs[i] = tmpElem->ID;
-      else
-	PRINTF(1)("Trying to join a Track, of which the name does not exist: %s\n", name);
-    }
-  va_end(NAME);
-  this->joinV(count, trackIDs);
-  delete []trackIDs;
-}
-
-/**
-   \see void TrackManager::join(unsigned int count, ...)
-*/
-void TrackManager::joinS(const char* joinString)
-{
-  SubString strings(joinString);
-
-  int* trackIDs = new int[strings.getCount()];
-  this->joinV(strings.getCount(), trackIDs);
-
-  for(int i = 0; i < strings.getCount(); i++)
-    {
-      TrackElement* tmpElem = this->firstTrackElem->findByName(strings.getString(i));
-      if (tmpElem)
-	trackIDs[i] = tmpElem->ID;
-      else
-	PRINTF(1)("Trying to join a Track, of which the name does not exist: %s\n", strings.getString(i));
-    }
-
-  this->joinV(strings.getCount(), trackIDs);
-  delete []trackIDs;
-}
-
-/**
-   \brief joins some tracks together again. 
-   \param count The count of Paths to join.
-   \param trackIDs an Array with the trackID's to join
-
-   \see void TrackManager::join(unsigned int count, ...)
-*/
-void TrackManager::joinV(unsigned int count, int* trackIDs)
-{
-  TrackElement* tmpTrackElem;
-  TrackElement* tmpJoinElem;
-  for (int i = 0; i < count; i++)
-    if (!this->firstTrackElem->findByID(trackIDs[i]))
-      {
-	PRINTF(1)("Trying to Connect Paths that do not exist yet: %d\n Not Joining Anything\n", trackIDs[i]);
-	return;
-      }
-		  
-
-  PRINTF(3)("Joining %d tracks and merging to Track %d\n", count, trackIDs[0]);
-
-  // checking if there is a back-loop-connection and ERROR if it is.
-  tmpTrackElem = this->firstTrackElem->findByID(trackIDs[0]);
-  if (!tmpTrackElem->backLoopCheck(tmpTrackElem))
-    {
-      PRINTF(2)("Backloop connection detected at joining trackElements\n -> TRACK WILL NOT BE JOINED\n");
-      return;
-    }
-
-  TrackElement* firstJoint =   this->firstTrackElem->findByID(trackIDs[0]);
-  float tmpLatestTime = firstJoint->endTime;
-
-  Vector tmpEndPoint = firstJoint->curve->getNode(firstJoint->curve->getNodeCount());
-  Vector tmpTangentPoint = firstJoint->curve->getNode(firstJoint->curve->getNodeCount()-1);
-  Vector tmpc2Point = firstJoint->curve->getNode(firstJoint->curve->getNodeCount()-2);
-  firstJoint->isJoined = true;
-  //  firstJoint->mainJoin = true;
-  if(!firstJoint->isHotPoint)
-    this->setSavePoint(firstJoint);
-  // Timing:
-  for (int i = 0; i < count; i++)
-    {
-      if(tmpJoinElem = this->firstTrackElem->findByID(trackIDs[i]))
-	{
-	  if (tmpJoinElem->childCount == 0
-	      && tmpJoinElem->endTime > tmpLatestTime)
-	    tmpLatestTime = tmpJoinElem->endTime;
-	}
-    }
-  // time the main Join.
-  firstJoint->jumpTime = tmpLatestTime - firstJoint->endTime;
-  
-  // Joining:
-  for (int i = 1; i < count; i++)
-    {
-      if( tmpJoinElem = this->firstTrackElem->findByID(trackIDs[i]))
-	{
-	  if (tmpJoinElem->childCount > 0)
-	    printf("!!This Curve has children, and as such will not be joined!!\n You can try joining other childless TrackElements to this one!");
-	  else
-	    {
-	      this->addPoint(tmpc2Point, tmpJoinElem);
-	      this->addPoint(tmpTangentPoint, tmpJoinElem);
-	      this->addPoint(tmpEndPoint, tmpJoinElem);
-	      // time all other Joins
-	      tmpJoinElem->jumpTime = tmpLatestTime - tmpJoinElem->endTime;
-	      
-	      //Copying Joint-Info
-	      tmpJoinElem->children = firstJoint->children;
-	      tmpJoinElem->childCount = firstJoint->childCount;
-	      tmpJoinElem->isSavePoint = firstJoint->isSavePoint;
-	      tmpJoinElem->isFork = firstJoint->isFork;
-	      
-	      tmpJoinElem->isJoined = true;
-	    }
-	}
-    }
-  if(firstJoint->children)
-    {
-      //TrackElement* enumElem = firstJoint->children->enumerate();
-      tIterator<TrackElement>* iterator = firstJoint->children->getIterator();
-      TrackElement* enumElem = iterator->nextElement();
-      while (enumElem)
-	{
-	  PRINTF(5)("Setting startingTime of %d to %f.\n", enumElem->ID, tmpLatestTime);
-	  enumElem->startingTime = tmpLatestTime;
-	  enumElem->endTime = tmpLatestTime + enumElem->duration;
-	  
-	  enumElem = iterator->nextElement();
-	}
-      delete iterator;
-    }
-}
-
-/**
-   \brief finalizes the TrackSystem. after this it will not be editable anymore
-
-   \todo check for any inconsistencies, output errors
-*/
-void TrackManager::finalize(void)
-{
-  for (int i = 1; i<= trackElemCount ;i++)
-    {
-      TrackElement* tmpElem = this->firstTrackElem->findByID(i);
-      if( tmpElem->childCount > 0 && tmpElem->mainJoin)
-	{
-	  tIterator<TrackElement>* iterator = tmpElem->children->getIterator();
-	  TrackElement* enumElem = iterator->nextElement();
-	  //TrackElement* enumElem = tmpElem->children->enumerate();
-	  while (enumElem)
-	    {
-	      
-	      // c1-continuity
-	      enumElem->curve->addNode(enumElem->curve->getNode(0) +
-						   ((enumElem->curve->getNode(0) - 
-						    tmpElem->curve->getNode(tmpElem->curve->getNodeCount()-1))
-						    ),2);
-	      enumElem->nodeCount++;
-	      // c2-continuity
-	      enumElem->curve->addNode((tmpElem->curve->getNode(tmpElem->curve->getNodeCount())-
-						    tmpElem->curve->getNode(tmpElem->curve->getNodeCount()-1)) * 4 +
-						   tmpElem->curve->getNode(tmpElem->curve->getNodeCount()-2), 3);
-	      enumElem->nodeCount++;						    
-	      PRINTF(5)("accelerations: %d-in: count: %d, %f, %f, %f\n                  %d-out: count: %d %f, %f, %f\n",
-		     tmpElem->ID, tmpElem->nodeCount,
-		     tmpElem->curve->calcAcc(0.999).x, tmpElem->curve->calcAcc(0.999).y, tmpElem->curve->calcAcc(0.999).z,
-		     enumElem->ID, enumElem->nodeCount,
-		     enumElem->curve->calcAcc(0).x, enumElem->curve->calcAcc(0).y, enumElem->curve->calcAcc(0).z);
-	      
-	      enumElem = iterator->nextElement();
-	    }
-	  delete iterator;
-	}
-    }
-  for (int i = 1; i <= trackElemCount;i++)
-    if (this->firstTrackElem->findByID(i)->endTime > this->maxTime)
-      this->maxTime = this->firstTrackElem->findByID(i)->endTime; // very bad implemented :/
-}
-
-
-// RUNTIME //
-
-/**
-   \brief calculates the Position for the localTime of the Track.
-   \returns the calculated Position
-*/
-Vector TrackManager::calcPos() const
-{
-  return this->currentTrackElem->curve->calcPos((this->localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration);
-}
-
-/**
-   \brief calculates the Rotation for the localTime of the Track.
-   \returns the calculated Rotation
-*/
-Vector TrackManager::calcDir() const
-{
-  return this->currentTrackElem->curve->calcDir((this->localTime - this->currentTrackElem->startingTime)/this->currentTrackElem->duration);
-}
-
-/**
-   \returns the current Width of the track
-*/
-float TrackManager::getWidth(void) const
-{
-  return this->currentTrackElem->width;
-}
-
-/**
-   \brief Advances the local-time of the Track around dt
-   \param dt The time about which to advance.
-
-   This function also checks, if the TrackElement has to be changed.
-*/
-void TrackManager::tick(float dt)
-{
-  dt /= 1000;
-  PRINTF(4)("CurrentTrackID: %d, LocalTime is: %f, timestep is: %f\n", this->currentTrackElem->ID, this->localTime, dt);
-  if (this->localTime <= this->firstTrackElem->duration)
-    this->jumpTo(this->localTime);
-  if (this->localTime <= this->maxTime)
-    this->localTime += dt;
-  if (this->localTime > this->currentTrackElem->endTime
-      && this->currentTrackElem->children)
-    {
-      if (this->currentTrackElem->jumpTime != 0.0)
-	this->jumpTo(this->localTime + this->currentTrackElem->jumpTime);
-      // jump to the next TrackElement and also set the history of the new Element to the old one.
-      TrackElement* tmpHistoryElem = this->currentTrackElem;
-      this->currentTrackElem = this->currentTrackElem->getChild(this->choosePath(this->currentTrackElem));
-      this->currentTrackElem->history = tmpHistoryElem;
-      if (this->currentTrackElem->getName())
-	{
-	  this->trackText->setText(this->currentTrackElem->getName());
-	  this->textAnimation->replay();
-	}
-    }
-  if (this->bindSlave)
-    {
-      Vector tmp = this->calcPos();
-      Quaternion quat = Quaternion(this->calcDir(), Vector(this->currentTrackElem->curve->calcAcc((localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration).x,1,this->currentTrackElem->curve->calcAcc((localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration).z)); 
-
-      Vector v(0.0, 1.0, 0.0);
-      Quaternion q(-PI/2, v);
-      quat = quat * q;
-
-      this->bindSlave->setAbsCoor(tmp);
-      this->bindSlave->setAbsDir(quat);
-    }
-}
-
-/**
-   \brief Jumps to a certain point on the Track.
-   \param time The time on the Track to jump to.
-
-   This should be used to Jump backwards on a Track, because moving forward means to change between the Path. (it then tries to choose the default.)
-   Max is trackLengthMax.
-*/
-void TrackManager::jumpTo(float time)
-{
-  if (time == 0)
-    {
-      this->currentTrackElem = this->firstTrackElem;
-      if (this->currentTrackElem->getName())
-	{
-	  this->trackText->setText(this->currentTrackElem->getName());
-	  this->textAnimation->play();
-	}
-    }
-  this->localTime = time;
-}
-
-/**
-   \brief a Function that decides which Path we should follow.
-   \param trackElem The Path to choose.
-   
-*/
-int TrackManager::choosePath(TrackElement* trackElem)
-{
-  return (trackElem->*(trackElem->condFunc))(trackElem->subject);
-}
-
-/**
-   \brief Sets the PNode, that should be moved along the Tack
-   \param bindSlave the PNode to set
-*/
-void TrackManager::setBindSlave(PNode* bindSlave)
-{
-  this->bindSlave = bindSlave;
-}
-
-/**
-   \returns the main TrackNode
-*/
-PNode* TrackManager::getTrackNode(void)
-{
-  return this->trackNode;
-}
-
-// DEBUG //
-
-/**
-   \brief Imports a model of the Graph into the OpenGL-environment.
-   \param dt The Iterator used in seconds for Painting the Graph.
-
-   This is for testing facility only. Do this if you want to see the Path inside the Level.
-   eventually this will all be packed into a gl-list.
-*/
-void TrackManager::drawGraph(float dt) const
-{
-  for (int i = 1; i <= trackElemCount; i++)
-    {
-      glBegin(GL_LINE_STRIP);
-      TrackElement* tmpElem = this->firstTrackElem->findByID(i);
-      if (tmpElem->curve)
-	for(float f = 0.0; f < 1.0; f+=dt)
-	  {
-	    //      printf("%f, %f, %f\n",trackManager->calcPos().x, trackManager->calcPos().y, trackManager->calcPos().z);
-	    Vector tmpVector = tmpElem->curve->calcPos(f);
-	    glVertex3f(tmpVector.x, tmpVector.y, tmpVector.z);
-	  }
-      glEnd();
-    }
-}
-
-/**
-   \brief outputs debug information about the trackManager
-   \param level how much debug
-*/
-void TrackManager::debug(unsigned int level) const
-{
-  PRINT(0)("=========================================\n");
-  PRINT(0)("= CLASS TRACKMANAGER::debug information =\n");
-  PRINT(0)("=========================================\n");
-  //  PRINT(0)("Status is: %
-  PRINT(0)(" Consists of %d elements\n", this->trackElemCount);
-  PRINT(0)(" localTime is: %f\n", this->localTime);
-  if (level >= 2)
-    {
-      for (int i = 1; i <= trackElemCount; i++)
-	{
-	  TrackElement* tmpElem = this->firstTrackElem->findByID(i);
-	  tmpElem->debug();
-	}
-    }
-  PRINT(0)("-----------------------------------------\n");
-}
Index: orxonox/branches/physics/src/track_manager.h
===================================================================
--- orxonox/branches/physics/src/track_manager.h	(revision 4274)
+++ 	(revision )
@@ -1,196 +1,0 @@
-/*! 
-    \file track_manager.h
-    \brief manages all tracks defined in the world and the path the player takes
-
-    it is a container for all tracks and all track-nodes. it manages the movement of
-    the track helper-parent (that drives the player). it is responsable for calculating
-    smooth curves etc.
-*/
-
-
-#ifndef _TRACK_MANAGER_H
-#define _TRACK_MANAGER_H
-
-#include "curve.h"
-#include "base_object.h"
-
-// Forward Definition
-class PNode;
-class Text;
-template<class T> class tAnimation;
-template<class T> class tList;
-
-// Static Definitions
-
-//! The Default Curve-Type to set for the whole path (if not chosen otherwise).
-#define TMAN_DEFAULT_CURVETYPE CURVE_BEZIER
-#define TMAN_DEFAULT_DURATION 10
-#define TMAN_DEFAULT_WIDTH    10
-
-//! A Graph-Element, that holds the curve-structure of a Level.
-/**
-   A TrackElement is used, to define the structure of the Track itself.
-   It is a graph and not a tree, because paths can fork and join again.
-*/
-class TrackElement
-{
- public:
-  TrackElement(void);
-  ~TrackElement(void);
-
-  TrackElement* findByID(unsigned int trackID);
-  TrackElement* findByName(const char* trackName);
-  bool backLoopCheck(const TrackElement* trackElem, unsigned int depth = 0) const;
-
-  TrackElement* getChild(int childNumber) const;
-  void setName(const char* name);
-  const char* getName(void) const;
-
-  // atributes
-  bool isFresh;              //!< If no Points where added until now
-  bool isHotPoint;           //!< If the first node is a specialPoint;
-  bool isSavePoint;          //!< If the first node is a savePoint
-  bool isFork;               //!< If the first node is a Fork
-  bool isJoined;             //!< If the End of the Curve is joined.
-  bool mainJoin;             //!< If the End of the Curve is joined, and this is the one Curve the others join to.
-  int ID;                    //!< The ID of this TrackElement
-  float startingTime;        //!< The time at which this Track begins.
-  float duration;            //!< The time used to cross this TrackElement (curve).
-  float endTime;             //!< The time at which this Track ends.
-  float jumpTime;            //!< The Time this Track has to jump to its preceding Track (only >0 if Track isJoined==true)
-  float width;               //!< Th width of the Path. This tells the Player(s), how far he(they) can go to the left/right.
-  int nodeCount;             //!< The count of points this TrackElement has.
-  Curve* curve;              //!< The Curve of this TrackElement
-  int childCount;            //!< The number of Children This TrackElement has.
-  tList<TrackElement>* children;   //!< A TrackElement can have a Tree of following TrackElements.
-
-
-  // runtime
-  TrackElement* history;     //!< a pointer to the last TrackElement we were on. This is if you want to walk the path backwards again.
-
-  void debug(void) const;
-
-  // CONDITION FUNCTIONS and STUFF
-  void* subject;             //!< The Subject the Condition should act upon.
-  int (TrackElement::*condFunc)(const void*) const; //!< Pointer to the condition function
-
-  int lowest(const void* nothing) const;
-  int highest(const void* nothing) const;
-  int random(const void* nothing) const;
-
-  int leftRight(const void* node) const;
-  int nearest(const void* node) const;
-  // todo  int enemyKilled(void* entity);
-
- private:
-  char* name;                //!< A name for the Trac.
- 
-};
-
-//! the Condition to choose between the different ways of the game.
-enum CONDITION {LOWEST, HIGHEST, RANDOM, LEFTRIGHT, NEAREST, ENEMYKILLED};
-
-//! The TrackManager handles the flow of the Players through the game.
-/**
-
-   <b>The TrackManager works as followed:</b> \n
-     \n
-   <b>1. Initialize it, by setting up the Graph. You can do this by using the following Commands.</b>
-    \li workOn(): changes the ID that will be altered through the changes.
-    \li setCurveType(): lets you set the CurveType of the Curve we are Working on. (default is BezierCurve, set this as early as possible, for this uses resources).
-    \li setDuration(): sets the length of the current path in seconds.
-    \li addPoint(): adds a point to the Curve.
-    \li addHotPoint(): adds save/splitpoint.\n
-    \li fork(): adds some interessting non-linear movments through the level (fork will force addHotPoint if not done then).
-    \li condition(): decides under what condition a certain Path will be chosen.
-    \li join(): joins some tracks together again. Join will set the localTime to the longest time a Path has to get to this Point)
-    \li setSavePoint(): Sets a HotPoint into a savePoint. A Savepoint can be used as a rollbackpoint if a Player gets shot.
-
-    HotPoints and Joins are at the beginning of a TrackElement. \n
-    SavePoints and Forks are at the end of a TrackElement \n
-    look out: <b>SAVEPOINTS CAN NOT BE FORKS</b> (but joins), because the condition is really hard to guess if you do not give some impuls. \n
-\n
-   <b> 2. Runtime knows the following: </b>
-    \li calcPos(): returns the current position on the track
-    \li calcDir(): returns the current Direction the track is flying on.
-    \li tick(): makes a Step on the Path. increases localTime by dt.
-    \li choosePath(): a Function that decides which Path we should follow.
-   
-   TrackManager can be handled as a StateMachine.
-   \n\n
-    Names: 
-    \li TrackManager: handles Tracks
-    \li Track:        The Track that the ship can follow
-    \li Path:         one way through the Level, that is dependent on conditionals.
-    \li Conditional:  A decition making device, that chooses betwen different TrackElements for the Path.
-    \li TrackElement: A Part of A whole Track
-*/
-class TrackManager : public BaseObject
-{
- private:
-  TrackManager(void);
-
-  static TrackManager* singletonRef;  //!< There may only be one TrackManager.
-
-  TrackElement* firstTrackElem;       //!< The first TrackElement that exists.
-  TrackElement* currentTrackElem;     //!< The TrackElement we are working on.
-  CurveType curveType;                //!< The CurveType the entire TrackSystem will have.
-  float localTime;                    //!< The time that has been passed since the traveling the Track.
-  float maxTime;                      //!< The maximal time the track has.
-  int trackElemCount;                 //!< The count of TrackElements that exist.
-
-  // external
-  PNode* bindSlave;                   //!< The node that is slave to the TrackManager. This node will be moved while update the TrackManager, and must NOT move itself.
-  PNode* trackNode;                   //!< The main TrackNode of this Track.
-  Text* trackText;                    //!< The text to display when switching between Worlds.
-  tAnimation<Text>* textAnimation;    //!< An Animation for the Text.
-  
-  void initChildren(unsigned int childCount, TrackElement* trackElem = NULL);
-
- public:
-  virtual ~TrackManager(void);
-
-  static TrackManager* getInstance(void);
-
-  bool load(TiXmlElement* root);
-
-  // Methods to change the Path (initialisation)
-  void workOn(unsigned int trackID);
-  void workOn(const char* trackName);
-
-  /** \see setCurveType(CurveType curveType, TrackElement* trackElem); \param curveType the type of the Curve */
-  inline void setCurveType(CurveType curveType) { this->setCurveType (curveType, this->currentTrackElem);};
-  void setCurveType(CurveType curveType, TrackElement* trackElem);
-  void setDuration(float duration, TrackElement* trackElem = NULL);
-  bool addPoint(Vector newPoint, TrackElement* trackElem = NULL);
-  int addHotPoint(Vector newPoint, TrackElement* trackElem = NULL);
-  int setSavePoint(TrackElement* trackElem = NULL);
-  void fork(unsigned int count, ...);
-  void forkS(unsigned int count, ...);
-  void forkS(const char* forkString);
-  void forkV(unsigned int count, int* trackIDs, char** trackNames, TrackElement* trackElem = NULL);
-  void condition(unsigned int trackID, CONDITION cond, void* subject);
-  void condition(CONDITION cond, void* subject, TrackElement* trackElem = NULL);
-  void join(unsigned int count, ...);
-  void joinS(const char* joinString);
-  void joinS(unsigned int cound, ...);
-  void joinV(unsigned int count, int* trackIDs);
-  void finalize(void);
-
-  // Methods to calculate the position on the Path (runtime)
-  inline Vector calcPos(void) const;
-  inline Vector calcDir(void) const;
-  float getWidth(void) const;
-  void tick(float dt);
-  void jumpTo(float time);
-  inline int choosePath(TrackElement* trackElem);
-
-  void setBindSlave(PNode* bindSlave);
-  PNode* getTrackNode(void);
-
-  // DEBUG //
-  void drawGraph(float dt) const;
-  void debug(unsigned int level) const;
-};
-
-#endif /* _TRACK_MANAGER_H */
Index: orxonox/branches/physics/src/track_node.cc
===================================================================
--- orxonox/branches/physics/src/track_node.cc	(revision 4274)
+++ 	(revision )
@@ -1,60 +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: ...
-*/
-
-
-#include "track_node.h"
-
-#include "null_parent.h"
-
-#include "track_manager.h"
-
-using namespace std;
-
-/**
-   \brief standard constructor
-
-   \todo this constructor is not jet implemented - do it
-*/
-TrackNode::TrackNode () 
-{
-  this->setClassName("TrackNode");
-  this->setName("TrackNode"); /* absolete but still used... */
-
-  NullParent::getInstance()->addChild(this);
-  this->trackManager = TrackManager::getInstance();
-  this->setMode(PNODE_ALL);
-}
-
-
-TrackNode::TrackNode (const Vector& absCoordinate)
-{
-  this->parent = NullParent::getInstance();
-  this->trackManager = TrackManager::getInstance();
-  this->setMode(PNODE_ALL);
-  this->setAbsCoor(absCoordinate);
-}
-
-
-/**
-   \brief standard deconstructor
-
-   \todo this deconstructor is not jet implemented - do it
-*/
-TrackNode::~TrackNode () 
-{
-
-}
Index: orxonox/branches/physics/src/track_node.h
===================================================================
--- orxonox/branches/physics/src/track_node.h	(revision 4274)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/*! 
-    \file track_node.h
-    \brief Definition of the TrackNode are located here
-    
-    the TrackNode is the node, that follows the Track (and the TrackManager) 
-    through the level.
-    Under normal confitions the Plyaer(s) are 
-*/
-
-
-#ifndef _TRACK_NODE_H
-#define _TRACK_NODE_H
-
-#include "p_node.h"
-
-/* FORWARD DEFINITION */
-class TrackManager;
-
-class TrackNode : public PNode 
-{
-
- public:
-  TrackNode ();
-  TrackNode (const Vector& absCoordinate);
-
-  virtual ~TrackNode ();
-
- private:
-  TrackManager* trackManager;
-
-};
-
-#endif /* _TRACK_NODE_H */
Index: orxonox/branches/physics/src/util/garbage_collector.cc
===================================================================
--- orxonox/branches/physics/src/util/garbage_collector.cc	(revision 4283)
+++ orxonox/branches/physics/src/util/garbage_collector.cc	(revision 4283)
@@ -0,0 +1,149 @@
+
+
+/* 
+   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: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GARBAGE_COLLECTOR
+
+#include "garbage_collector.h"
+
+#include "world.h"
+#include "world_entity.h"
+#include "null_parent.h"
+
+#include "list.h"
+
+using namespace std;
+
+
+GarbageCollector* GarbageCollector::singletonRef = 0;
+
+/**
+   \brief standard constructor
+   \todo this constructor is not jet implemented - do it
+*/
+GarbageCollector::GarbageCollector () 
+{
+   this->setClassName ("GarbageCollection");
+   this->time = 0;
+   this->delay = 1.5f; /* clean up all 5.0 seconds */
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+GarbageCollector::~GarbageCollector () 
+{
+  // delete what has to be deleted here
+}
+
+
+/**
+   \brief this returns the singleton reference this this class
+   \returns singleton reference
+*/
+GarbageCollector* GarbageCollector::getInstance()
+{
+  if( singletonRef == NULL)
+    singletonRef = new GarbageCollector();
+  return singletonRef;
+}
+
+
+/**
+   \brief this sets the collection delay
+   \param delay
+   
+   after this delay, the garbage collector starts its work and begins to collect unused object
+   to delete them afterwards. only objects in the worldentity list from the world object are lookded
+   at. 
+*/
+void GarbageCollector::setCollectionDelay(float delay)
+{
+  this->delay = delay;
+}
+
+
+/**
+   \brief this foreces a garbage collection
+
+   if this function is called, the gc tries to initiate the garbage collection routines. actually
+   this should always work.
+*/
+void GarbageCollector::forceCollection()
+{
+  /* just make the time slitely bigger than the delay */
+  this->time = this->delay + 1;
+  /* and update, to get rid of the unused objects */
+  this->update();
+}
+
+
+/**
+   \brief this ticks the GarbageCollector to give it the time pulse
+   \param the time passed since last tick
+
+   like every other tick function eg. worldentity
+*/
+void GarbageCollector::tick(float time)
+{
+  this->time += time;
+}
+
+
+/**
+   \brief this updated the gargabe collection, if the time is ready
+
+
+*/
+void GarbageCollector::update()
+{
+  if( this->time < this->delay)
+    return;
+  /* garbage collect */
+  PRINTF(3)("=============================\n");
+  PRINTF(3)("Processing Garbage Collection\n");
+  PRINTF(3)("=============================\n");
+  int counter = 0;
+  WorldInterface* wi = WorldInterface::getInstance();
+  tList<WorldEntity>* list = wi->getEntityList();
+
+  tIterator<WorldEntity>* iterator = list->getIterator();
+  WorldEntity* entity = iterator->nextElement();
+  while( entity != NULL) 
+    { 
+      if( entity->isFinalized())
+	{
+	  PRINTF(4)("= finalizing object\n");
+	  ++counter;
+	  
+	  /* first remove out of entity list */
+	  list->remove(entity);
+	  /* second remove out of pnode tree */
+	  entity->remove();
+	  /* then finaly delete reference */
+	  delete entity;
+	}
+      entity = iterator->nextElement();
+    }
+
+  PRINTF(3)("= collected %i unused objects\n", counter);
+  PRINTF(3)("=============================\n");
+
+  /* reset time to count again up to this->delay */
+  this->time = 0;
+}
Index: orxonox/branches/physics/src/util/garbage_collector.h
===================================================================
--- orxonox/branches/physics/src/util/garbage_collector.h	(revision 4283)
+++ orxonox/branches/physics/src/util/garbage_collector.h	(revision 4283)
@@ -0,0 +1,42 @@
+/*! 
+    \file proto_class.h
+    \brief Definition of the proto class template, used quickly start work
+    \todo Example: this shows how to use simply add a Marker that here has to be done something.
+
+    The Protoclass exists, to help you quikly getting the run for how to develop in orxonox.
+    It is an example for the CODING-CONVENTION, and a starting-point for every class.
+*/
+
+#ifndef _GARBAGE_COLLECTOR_H
+#define _GARBAGE_COLLECTOR_H
+
+#include "base_object.h"
+
+
+//! this class maintains the garbage collection.
+/**
+   the class is been ticked by the world.cc and goes through the 
+   world_entity list to clean out all unused entities.
+*/
+class GarbageCollector : public BaseObject {
+
+ public:
+  GarbageCollector();
+  virtual ~GarbageCollector();
+  static GarbageCollector* getInstance();
+
+  void setCollectionDelay(float delay);
+
+  void forceCollection();
+
+  void tick(float time);
+  void update();
+
+ private:
+  static GarbageCollector* singletonRef;
+  float delay;                                        //!< this is the delay to wait until collection
+  float time;                                         //!< the current time
+
+};
+
+#endif /* _GARBAGE_COLLECTOR_H */
Index: orxonox/branches/physics/src/util/loading/factory.cc
===================================================================
--- orxonox/branches/physics/src/util/loading/factory.cc	(revision 4283)
+++ orxonox/branches/physics/src/util/loading/factory.cc	(revision 4283)
@@ -0,0 +1,110 @@
+/* 
+   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: Christian Meyer
+   co-programmer: Benjamin Grauer
+*/
+
+
+#include "factory.h"
+#include "game_loader.h"
+
+using namespace std;
+
+/*  --------------------------------------------------
+ *		 Factory
+ *   --------------------------------------------------
+ */
+
+/**
+   \brief constructor
+   
+   set everything to zero and define factoryName
+*/
+Factory::Factory (const char* name)
+{
+  this->factoryName = NULL;
+  this->setFactoryName(name);
+  next = NULL;
+  
+  initialize();
+}
+
+/**
+   \brief destructor
+   
+   clear the Q
+*/
+Factory::~Factory ()
+{
+  //  printf("%s\n", this->factoryName);
+  //  Factory* tmpDel = this->next;
+  //  this->next = NULL;
+  if (this->next)
+    delete this->next;
+}
+
+void Factory::setFactoryName(const char* name)
+{
+  if (factoryName)
+    delete factoryName;
+  factoryName = new char[strlen(name)+1];
+  strcpy(factoryName, name);
+}
+
+
+/**
+   \brief generates the associated object from data
+*/
+BaseObject* Factory::fabricate(const TiXmlElement* data)
+{
+  return NULL;
+}
+
+/**
+   \brief make this particular factory known to the LevelFactory
+*/
+void Factory::initialize()
+{
+  GameLoader* gl = GameLoader::getInstance();
+  gl->registerFactory( this);
+}
+
+/**
+   \brief add a Factory to the Q
+*/
+void Factory::registerFactory( Factory* factory)
+{
+  if( next == NULL) setNext( factory);
+  else next->registerFactory( factory);
+}
+
+const char* grabParameter(const TiXmlElement* root, const char* name)
+{
+  const TiXmlElement* element;
+  const TiXmlNode* node;
+	
+  if (root == NULL)
+    return NULL;
+  assert( name != NULL);
+	
+  element = root->FirstChildElement( name);
+  if( element == NULL) return NULL;
+	
+  node = element->FirstChild();
+  while( node != NULL)
+    {
+      if( node->ToText()) return node->Value();
+      node = node->NextSibling();
+    }
+  return NULL;
+}
+
Index: orxonox/branches/physics/src/util/loading/factory.h
===================================================================
--- orxonox/branches/physics/src/util/loading/factory.h	(revision 4283)
+++ orxonox/branches/physics/src/util/loading/factory.h	(revision 4283)
@@ -0,0 +1,95 @@
+/* 
+   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: Christian Meyer
+   co-programmer: Benjamin Grauer
+*/
+
+/*! 
+  \file factory.h
+  \brief philosophy stuff
+*/
+
+
+#ifndef _FACTORY_H
+#define _FACTORY_H
+
+class BaseObject;
+
+#include "tinyxml.h"
+#include "load_param.h"
+#include "debug.h"
+
+/** 
+    Creates a factory to a Loadable Class.
+    this should be used at the beginning of all the Classes that should be loadable (in the cc-file)
+*/
+#define CREATE_FACTORY(CLASS_NAME) tFactory<CLASS_NAME>* global_##CLASS_NAME##Factory = new tFactory<CLASS_NAME>(#CLASS_NAME)		
+//! The Factory is
+class Factory {
+
+ public:
+  Factory (const char* name = NULL);
+  ~Factory ();
+  
+
+  virtual BaseObject* fabricate(const TiXmlElement* root);
+  void initialize();
+  void registerFactory( Factory* factory);
+  void setFactoryName(const char* name);
+  const char* getFactoryName() {return factoryName;};
+  void setNext( Factory* factory) {next = factory;}
+  Factory* getNext() {return next;}
+	
+ private:
+  char* factoryName;
+	
+  Factory* next;
+};
+
+template<class T> class tFactory : public Factory
+{
+ public:
+  tFactory(const char* name);
+  virtual ~tFactory();
+  
+  private:
+  BaseObject* fabricate(const TiXmlElement* root);
+};
+
+template<class T>
+tFactory<T>::tFactory(const char* name) : Factory(name)
+{
+  PRINTF(5)("fileName: %s\n", name);
+}
+  
+
+template<class T>
+tFactory<T>::~tFactory()
+{}
+
+template<class T>
+BaseObject* tFactory<T>::fabricate(const TiXmlElement* root) 
+{ 
+  if(!strcmp(root->Value(), getFactoryName()))
+    return new T ( root);
+  else if( getNext() != NULL) 
+    return getNext()->fabricate( root);
+  else 
+    return NULL;
+}
+
+// helper function
+
+const char* grabParameter(const TiXmlElement* root, const char* name);
+
+#endif /* _FACTORY_H */
+
Index: orxonox/branches/physics/src/util/loading/game_loader.cc
===================================================================
--- orxonox/branches/physics/src/util/loading/game_loader.cc	(revision 4283)
+++ orxonox/branches/physics/src/util/loading/game_loader.cc	(revision 4283)
@@ -0,0 +1,318 @@
+
+
+/* 
+   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: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#include "game_loader.h"
+#include "campaign.h"
+#include "world.h"
+#include "player.h"
+#include "orxonox.h"
+#include "camera.h"
+#include "command_node.h"
+#include "vector.h"
+#include "resource_manager.h"
+#include "factory.h"
+
+#include <string.h>
+
+
+using namespace std;
+
+
+GameLoader* GameLoader::singletonRef = 0;
+
+
+GameLoader::GameLoader () 
+{
+  first = NULL;
+}
+
+
+GameLoader::~GameLoader () {}
+
+
+/**
+   \brief this class is a singleton class
+   \returns an instance of itself
+
+   if you are unsure about singleton classes, check the theory out on the internet :)
+*/
+GameLoader* GameLoader::getInstance()
+{
+  if(singletonRef == NULL)
+    singletonRef = new GameLoader();
+  return singletonRef;
+}
+
+
+ErrorMessage GameLoader::init()
+{
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->init();
+}
+
+
+/**
+   \brief reads a campaign definition file into a campaign class
+   \param filename to be loaded
+   \returns the loaded campaign
+
+   this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
+*/
+ErrorMessage GameLoader::loadCampaign(const char* name)
+{
+  ErrorMessage errorCode;
+  char* campaignName = ResourceManager::getFullName(name);
+  if (campaignName)
+    {
+      this->currentCampaign = this->fileToCampaign(campaignName);
+      delete campaignName;
+    }
+}
+
+/**
+   \brief loads a debug campaign for test purposes only.
+   \param the identifier of the campaign.
+   \returns error message if not able to do so.
+*/
+ErrorMessage GameLoader::loadDebugCampaign(Uint32 campaignID)
+{
+  switch(campaignID)
+    {
+      /* 
+	 Debug Level 0: Debug level used to test the base frame work.
+	 As you can see, all storyentity data is allocated before game
+	 start. the storyentity will load themselfs shortly before start
+	 through the StoryEntity::init() funtion.
+      */
+    case DEBUG_CAMPAIGN_0:
+      {
+	Campaign* debugCampaign = new Campaign();
+
+	World* world0 = new World(DEBUG_WORLD_0);
+	world0->setNextStoryID(WORLD_ID_1);
+	debugCampaign->addEntity(world0, WORLD_ID_0);
+
+	World* world1 = new World(DEBUG_WORLD_1);
+	world1->setNextStoryID(WORLD_ID_2);
+	debugCampaign->addEntity(world1, WORLD_ID_1);
+
+	World* world2 = new World(DEBUG_WORLD_2);
+	world2->setNextStoryID(WORLD_ID_GAMEEND);
+	debugCampaign->addEntity(world2, WORLD_ID_2);
+
+	this->currentCampaign = debugCampaign;
+	break;
+      }
+    }
+}
+
+ErrorMessage GameLoader::start()
+{
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->start();
+}
+
+
+ErrorMessage GameLoader::stop()
+{
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->stop();
+  this->currentCampaign = NULL;
+}
+
+
+ErrorMessage GameLoader::pause()
+{
+  this->isPaused = true;
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->pause();
+}
+
+
+ErrorMessage GameLoader::resume()
+{
+  this->isPaused = false;
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->resume();
+}
+
+/**
+   \brief release the mem
+ */
+ErrorMessage GameLoader::destroy()
+{}
+
+
+/**
+   \brief reads a campaign definition file into a campaign class
+   \param filename to be loaded
+   \returns the loaded campaign
+
+   this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
+*/
+Campaign* GameLoader::fileToCampaign(const char *name)
+{
+  /* do not entirely load the campaign. just the current world
+     before start of each world, it has to be initialized so it
+     can load everything it needs into memory then.
+  */
+  
+  if( name == NULL)
+    {
+      PRINTF(2)("No filename specified for loading");
+      return NULL;
+    }
+  
+  TiXmlDocument* XMLDoc = new TiXmlDocument( name);
+  // load the campaign document
+  if( !XMLDoc->LoadFile())
+    {
+      // report an error
+      PRINTF(1)("Could not load XML File %s: %s @ %d:%d\n", name, XMLDoc->ErrorDesc(), XMLDoc->ErrorRow(), XMLDoc->ErrorCol());
+      delete XMLDoc;
+      return NULL;
+    }
+	
+  // check basic validity
+  TiXmlElement* root = XMLDoc->RootElement();
+  assert( root != NULL);
+	
+  if( strcmp( root->Value(), "Campaign"))
+    {
+      // report an error
+      PRINTF(2)("Specified XML File is not an orxonox campaign file (Campaign element missing)\n");
+      delete XMLDoc;
+      return NULL;
+    }
+	
+  // construct campaign
+  Campaign* c = new Campaign( root);
+	
+  // free the XML data
+  delete XMLDoc;
+	
+  return c;
+}
+
+
+/**
+   \brief handle keyboard commands 
+   \param cmd: the command to handle
+   \returns true if the command was handled by the system
+*/
+bool GameLoader::worldCommand (Command* cmd)
+{
+  if( !strcmp( cmd->cmd, CONFIG_NAME_NEXT_WORLD))
+    {
+      if( !cmd->bUp) 
+	{
+	  this->nextLevel();
+	}
+      return true;
+    }
+  else if( !strcmp( cmd->cmd, CONFIG_NAME_PREV_WORLD))
+    {
+      if( !cmd->bUp)
+	{
+	  this->previousLevel();
+	}
+      return true;
+    }
+  else if( !strcmp( cmd->cmd, CONFIG_NAME_PAUSE))
+    {
+      if( !cmd->bUp)
+	{
+	  if(this->isPaused)
+	    this->resume();
+	  else
+	    this->pause();
+	}
+      return true;
+    }
+  else if( !strcmp( cmd->cmd, CONFIG_NAME_QUIT))
+    {
+      if( !cmd->bUp) this->stop();
+      return true;
+    }
+  return false;
+}
+
+
+/*
+  \brief this changes to the next level
+*/
+void GameLoader::nextLevel()
+{
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->nextLevel();
+}
+
+
+/*
+  \brief change to the previous level - not implemented
+
+  this propably useless
+*/
+void GameLoader::previousLevel()
+{
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->previousLevel();
+}
+
+/**
+   \brief add a Factory to the Factory Q
+   \param factory a Factory to be registered
+*/
+void GameLoader::registerFactory( Factory* factory)
+{
+	assert( factory != NULL);
+	
+	PRINTF(4)("Registered factory for '%s'\n", factory->getFactoryName());
+	
+	if( first == NULL) first = factory;
+	else first->registerFactory( factory);
+}
+
+/**
+   \brief load a StoryEntity
+   \param element a XMLElement containing all the needed info
+*/
+BaseObject* GameLoader::fabricate( TiXmlElement* element)
+{
+  assert( element != NULL);
+	
+  if( first == NULL)
+    {
+      PRINTF(1)("GameLoader does not know any factories, fabricate() failed\n");
+      return NULL;
+    }
+	
+  if( element->Value() != NULL)
+    {
+      PRINTF(4)("Attempting fabrication of a '%s'\n", element->Value());
+      BaseObject* b = first->fabricate( element);
+      if( b == NULL) 
+	PRINTF(2)("Failed to fabricate a '%s'\n", element->Value());
+      else 
+	PRINTF(4)("Successfully fabricated a '%s'\n", element->Value());
+      return b;
+    }
+	
+  PRINTF(2)("Fabricate failed, TiXmlElement did not contain a value\n");
+	
+  return NULL;
+}
Index: orxonox/branches/physics/src/util/loading/game_loader.h
===================================================================
--- orxonox/branches/physics/src/util/loading/game_loader.h	(revision 4283)
+++ orxonox/branches/physics/src/util/loading/game_loader.h	(revision 4283)
@@ -0,0 +1,74 @@
+/*! 
+    \file game_loader.h
+    \brief loads campaigns, worlds and all other story_entities
+*/ 
+
+#ifndef _GAME_LOADER_H
+#define _GAME_LOADER_H
+
+//#include "stdincl.h"
+#include "story_def.h"
+#include "comincl.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------------
+class Campaign;
+class World;
+class Camera;
+class CammandNode;
+class Factory;
+class TiXmlElement;
+class BaseObject;
+
+//! The GameLoader
+/**
+   The game loader loads all game date. this is performed in the following way:
+   1. Read the structure of campaings and worlds
+   2. Create the instances of the tree: here _ALL_ StoryEntities are created
+      also if they are not yet used. the worlds should load their data in
+      the StoryEntity::load() and StoryEntity::init() functions! NOWHERE ELSE!
+      Elsewhere, all the data will be allocated at the beginning... mess...
+   3. StoryEntities are load() and init() before they start
+   4. once the gamloader starts the game there will be a campaing starting a
+      world. this is done by callaing those StoryEntity::start()
+*/
+class GameLoader 
+{
+
+ public:
+  static GameLoader* getInstance();
+
+  ErrorMessage init();
+  ErrorMessage loadCampaign(const char* name);
+  ErrorMessage start();
+  ErrorMessage stop();
+  ErrorMessage pause();
+  ErrorMessage resume();
+  ErrorMessage destroy();
+
+  void nextLevel();
+  void previousLevel();
+
+  bool worldCommand(Command* cmd);
+  ErrorMessage loadDebugCampaign(Uint32 campaignID);
+  
+  void registerFactory( Factory* factory);
+  BaseObject* fabricate( TiXmlElement* data);
+
+ private:
+  GameLoader ();
+  ~GameLoader ();
+  Uint32 startTime; //!> start time of the campaign
+  static GameLoader* singletonRef;
+  bool isPaused;
+
+  Campaign* currentCampaign; //!> the current campaign playing
+  
+  Campaign* fileToCampaign(const char* name);
+
+  Factory* first;
+};
+
+#endif /* _GAME_LOADER_H */
Index: orxonox/branches/physics/src/util/loading/load_param.cc
===================================================================
--- orxonox/branches/physics/src/util/loading/load_param.cc	(revision 4283)
+++ orxonox/branches/physics/src/util/loading/load_param.cc	(revision 4283)
@@ -0,0 +1,234 @@
+/* 
+   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: Christian Meyer
+   co-programmer: ...
+*/
+
+#include "load_param.h"
+
+#include "list.h"
+#include "base_object.h"
+
+#include <stdarg.h>
+
+/**
+   \param object The object this Parameter is loaded too.
+   \param paramName The name of the parameter loaded.
+   \param paramCount how many parameters this loading-function takes
+   \param ... the parameter information
+*/
+BaseLoadParam::BaseLoadParam(BaseObject* object, const char* paramName, int paramCount, ...)
+{
+  this->paramDesc = NULL;
+  if (LoadClassDescription::parametersDescription)
+    {
+      // locating the class
+      this->classDesc = LoadClassDescription::addClass(object->getClassName());
+      this->paramDesc = this->classDesc->addParam(paramName);
+
+      this->paramDesc->types = new char*[paramCount];
+      this->paramDesc->paramCount = paramCount;
+
+      va_list types;
+      va_start (types, paramCount);
+      for(int i = 0; i < paramCount; i++)
+	{
+	  const char* tmpTypeName = va_arg (types, const char*);
+	  this->paramDesc->types[i] = new char[strlen(tmpTypeName)+1];
+	  strcpy(this->paramDesc->types[i], tmpTypeName);
+	}
+      va_end(types);  
+
+      int argCount = 0;
+    }
+}
+
+/**
+   \param descriptionText The text to set as a description for this Parameter
+   \returns a pointer to itself.
+*/
+BaseLoadParam* BaseLoadParam::describe(const char* descriptionText)
+{
+  if (LoadClassDescription::parametersDescription && this->paramDesc && !this->paramDesc->getDescription())
+    {
+      this->paramDesc->setDescription(descriptionText);
+    }
+  return this;
+}
+
+/**
+   \param paramName the name of the parameter to load
+*/
+LoadParamDescription::LoadParamDescription(const char* paramName)
+{
+  this->types = NULL;
+  this->description = NULL;
+  this->paramName = new char[strlen(paramName)+1];
+  strcpy(this->paramName, paramName);
+}
+
+/**
+   \brief removes all the alocated memory
+*/
+LoadParamDescription::~LoadParamDescription(void)
+{
+  for(int i = 0; i < this->paramCount; i++)
+    {
+      delete this->types[i];
+    }
+  delete []this->types;
+  delete []this->paramName;
+  delete []this->description;
+}
+
+/**
+   \param descriptionText The text to set as a description for this Parameter
+*/
+void LoadParamDescription::setDescription(const char* descriptionText)
+{
+  this->description = new char[strlen(descriptionText)+1];
+  strcpy(this->description, descriptionText);
+}
+
+/**
+   \brief prints out this parameter, its input method and the description (if availiable)
+*/
+void LoadParamDescription::print(void) const
+{
+  PRINT(3)(" <%s>", this->paramName);
+  for (int i = 0; i < this->paramCount; i++)
+    {
+      if (i > 0)
+	PRINT(3)(",");
+      PRINT(3)("%s", this->types[i]);
+    }
+  PRINT(3)("</%s>", this->paramName);
+  if (this->description)
+    PRINT(3)(" -- %s", this->description);
+  PRINT(3)("\n");
+}
+
+/**
+   \brief A list, that holds all the classes that are loadable (classes not objects!!)
+*/
+tList<LoadClassDescription>* LoadClassDescription::classList = new tList<LoadClassDescription>;
+
+/**
+   \brief if the description of Parameters should be executed
+*/
+bool LoadClassDescription::parametersDescription = true;
+
+/**
+   \param className the name of the class to be loadable
+*/
+LoadClassDescription::LoadClassDescription(const char* className)
+{
+  this->className = new char[strlen(className)+1];
+  strcpy(this->className, className);
+
+  classList->add(this);
+
+  this->paramList = new tList<LoadParamDescription>;
+}
+
+/**
+   \brief deletes a classDescription (deletes all the parameterDescriptions as well
+*/
+LoadClassDescription::~LoadClassDescription(void)
+{
+  delete []this->className;
+
+  tIterator<LoadParamDescription>* iterator = this->paramList->getIterator();
+  LoadParamDescription* enumParamDesc = iterator->nextElement();
+  while (enumParamDesc)
+    {
+      delete enumParamDesc;
+      enumParamDesc = iterator->nextElement();
+    }
+  delete iterator;
+}
+
+/**
+   \brief adds a class to the list of loadable classes
+   \param className The name of the class to add
+
+   this function searches for the className string, and if found just returns the appropriate Class.
+   Otherwise it returns a new classDescription
+*/
+LoadClassDescription* LoadClassDescription::addClass(const char* className)
+{
+  tIterator<LoadClassDescription>* iterator = LoadClassDescription::classList->getIterator();
+  LoadClassDescription* enumClassDesc = iterator->nextElement();
+  while (enumClassDesc)
+    {
+      if (!strcmp(enumClassDesc->className, className))
+	{
+	  delete iterator;
+	  return enumClassDesc;
+	}
+      enumClassDesc = iterator->nextElement();
+    }
+  delete iterator;
+
+  return new LoadClassDescription(className);
+}
+
+/**
+   \brief does the same as addClass(const char* className), but with params
+   \param paramName the name of the parameter to add.
+*/
+LoadParamDescription* LoadClassDescription::addParam(const char* paramName)
+{
+  tIterator<LoadParamDescription>* iterator = this->paramList->getIterator();
+  LoadParamDescription* enumParamDesc = iterator->nextElement();
+  while (enumParamDesc)
+    {
+      if (!strcmp(enumParamDesc->paramName, paramName))
+	{
+	  delete iterator;
+	  return enumParamDesc;
+	}
+      enumParamDesc = iterator->nextElement();
+    }
+  delete iterator;
+
+  this->paramList->add(new LoadParamDescription(paramName));
+  return paramList->lastElement();
+}
+
+/**
+   \brief prints out all loadable Classes, and their parameters
+*/
+void LoadClassDescription::printAll(const char* fileName)
+{
+  PRINT(3)("===============================================================\n");
+  PRINT(3)(" Listing all the Loadable Options (loaded since Game started).\n\n");
+  tIterator<LoadClassDescription>* classIT = LoadClassDescription::classList->getIterator();
+  LoadClassDescription* enumClassDesc = classIT->nextElement();
+  while (enumClassDesc)
+    {
+      PRINT(3)("<%s>\n", enumClassDesc->className);
+      tIterator<LoadParamDescription>* paramIT = enumClassDesc->paramList->getIterator();
+      LoadParamDescription* enumParamDesc = paramIT->nextElement();
+      while (enumParamDesc)
+	{
+	  enumParamDesc->print();
+	  enumParamDesc = paramIT->nextElement();
+	}
+      delete paramIT;
+
+      PRINT(3)("</%s>\n\n", enumClassDesc->className);
+      enumClassDesc = classIT->nextElement();
+    }
+  delete classIT;
+  PRINT(3)("===============================================================\n");
+}
Index: orxonox/branches/physics/src/util/loading/load_param.h
===================================================================
--- orxonox/branches/physics/src/util/loading/load_param.h	(revision 4283)
+++ orxonox/branches/physics/src/util/loading/load_param.h	(revision 4283)
@@ -0,0 +1,233 @@
+/* 
+   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 load_param.h
+    \brief A Class and macro-functions, that makes our lives easy to load-in parameters
+*/
+
+#ifndef _LOAD_PARAM_H
+#define _LOAD_PARAM_H
+
+#include "factory.h"
+#include "debug.h"
+#include "substring.h"
+
+// Forward Declaration //
+template<class T> class tList;
+
+/**
+   useable FunctionParameters are:
+   l_INT:    int
+   l_LONG:   long
+   l_SHORT:  short
+   l_FLOAT:  float
+   l_STRING: const char*
+*/
+
+#define l_INT_TYPE int
+#define l_INT_FUNC atoi
+#define l_INT_NAME "int"
+
+#define l_LONG_TYPE long
+#define l_LONG_FUNC atol
+#define l_LONG_NAME "long"
+
+#define l_SHORT_TYPE short
+#define l_SHORT_FUNC atoi
+#define l_SHORT_NAME "short"
+
+#define l_FLOAT_TYPE float
+#define l_FLOAT_FUNC atof
+#define l_FLOAT_NAME "float"
+
+#define l_STRING_TYPE const char*
+#define l_STRING_FUNC
+#define l_STRING_NAME "string"
+
+
+/**
+   \brief a Macro to easily implement many different Constructors for the LoadParam-Class
+   \param type1 The type of the first functionParameter
+*/
+#define LoadParam1(type1) \
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE)) \
+  : BaseLoadParam(pt2Object, paramName, 1, type1##_NAME) \
+    { \
+      const char* loadString = grabParameter(root, paramName); \
+      if (loadString != NULL && root != NULL) \
+	(*pt2Object.*function)(type1##_FUNC(loadString)); \
+      else \
+	PRINTF(4)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName()); \
+    }
+
+
+// 2. TYPES
+#define LoadParam2(type1, type2) \
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE)) \
+  : BaseLoadParam(pt2Object, paramName, 2, type1##_NAME, type2##_NAME) \
+    { \
+      const char* loadString = grabParameter(root, paramName); \
+      if (loadString != NULL && root != NULL) \
+	{ \
+	  SubString subLoads(loadString); \
+	  if (subLoads.getCount() == 2) \
+	    (*pt2Object.*function)(type1##_FUNC(subLoads.getString(0)), type2##_FUNC(subLoads.getString(1))); \
+	  else \
+	    PRINTF(2)("Not loaded Parameter %s of %s, because wrong count of arguments.\n -> Should have %d but have %d\n", \
+		      paramName, pt2Object->getClassName(), 2, subLoads.getCount()); \
+	} \
+      else \
+	PRINTF(4)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName()); \
+    }
+
+
+// 3. TYPES
+#define LoadParam3(type1, type2, type3) \
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE))\
+  : BaseLoadParam(pt2Object, paramName, 3, type1##_NAME, type2##_NAME, type3##_NAME) \
+    { \
+      const char* loadString = grabParameter(root, paramName); \
+      if (loadString != NULL && root != NULL) \
+	{ \
+	  SubString subLoads(loadString); \
+	  if (subLoads.getCount() == 3) \
+	    (*pt2Object.*function)(type1##_FUNC(subLoads.getString(0)), type2##_FUNC(subLoads.getString(1)), type3##_FUNC(subLoads.getString(2))); \
+	  else \
+	    PRINTF(2)("Not loaded Parameter %s of %s, because wrong count of arguments.\n -> Should have %d but have %d\n", \
+		      paramName, pt2Object->getClassName(), 3, subLoads.getCount()); \
+	} \
+      else \
+	PRINTF(4)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName()); \
+    }
+
+
+// 4. TYPES
+#define LoadParam4(type1, type2, type3, type4) \
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE)) \
+  : BaseLoadParam(pt2Object, paramName, 4, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME) \
+    { \
+      const char* loadString = grabParameter(root, paramName); \
+      if (loadString != NULL && root != NULL) \
+	{ \
+	  SubString subLoads(loadString); \
+	  if (subLoads.getCount() == 4) \
+	    (*pt2Object.*function)(type1##_FUNC(subLoads.getString(0)), type2##_FUNC(subLoads.getString(1)), type3##_FUNC(subLoads.getString(2)), type4##_FUNC(subLoads.getString(3))); \
+	  else \
+	    PRINTF(2)("Not loaded Parameter %s of %s, because wrong count of arguments.\n -> Should have %d but have %d\n", \
+		      paramName, pt2Object->getClassName(), 4, subLoads.getCount()); \
+	} \
+      else \
+	PRINTF(4)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName()); \
+    }
+
+
+// 5. TYPES
+#define LoadParam5(type1, type2, type3, type4, type5) \
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE, type5##_TYPE)) \
+  : BaseLoadParam(pt2Object, paramName, 5, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME, type5##_NAME) \
+    { \
+      const char* loadString = grabParameter(root, paramName); \
+      if (loadString != NULL && root != NULL) \
+	{ \
+	  SubString subLoads(loadString); \
+	  if (subLoads.getCount() == 5) \
+	    (*pt2Object.*function)(type1##_FUNC(subLoads.getString(0)), type2##_FUNC(subLoads.getString(1)), type3##_FUNC(subLoads.getString(2)), type4##_FUNC(subLoads.getString(3)), type5##_FUNC(subLoads.getString(4))); \
+	  else \
+	    PRINTF(2)("Not loaded Parameter %s of %s, because wrong count of arguments.\n -> Should have %d but have %d\n", \
+		      paramName, pt2Object->getClassName(), 5, subLoads.getCount()); \
+	} \
+      else \
+	PRINTF(4)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName()); \
+    }
+
+
+//! A class that handles the description of loadable parameters
+class LoadParamDescription
+{
+  friend class BaseLoadParam;
+  friend class LoadClassDescription;
+ public:
+  LoadParamDescription(const char* paramName);
+  ~LoadParamDescription(void);
+
+  void setDescription(const char* descriptionText);
+  /** \returns the descriptionString */
+  const char* getDescription(void) { return this->description;};
+
+  void print(void) const;
+ private:
+  char* paramName;              //!< The name of the parameter
+  int paramCount;               //!< The count of parameters
+  char** types;                 //!< What kind of parameters does this function take ??
+  char* description;            //!< A longer description about this function
+};
+
+class LoadClassDescription
+{
+  friend class BaseLoadParam;
+ public:
+  LoadClassDescription(const char* className);
+  ~LoadClassDescription(void);
+
+  static LoadClassDescription* addClass(const char* className);
+  LoadParamDescription* addParam(const char* paramName);
+
+  static void printAll(const char* fileName = NULL);
+
+  static bool parametersDescription;             //!< if parameter-description should be enabled.
+  static tList<LoadClassDescription>* classList; //!< a list, that holds all the loadable classes. (after one instance has been loaded)
+ private:
+  char* className;                               //!< name of the class
+  tList<LoadParamDescription>* paramList;        //!< List of parameters this class knows.
+};
+
+// abstract Base class
+class BaseLoadParam
+{
+ public:
+  BaseLoadParam* describe(const char* descriptionText);
+
+ protected:
+  BaseLoadParam(BaseObject* object, const char* paramName, int paramCount, ...);
+
+ protected:
+  LoadClassDescription* classDesc;               //!< The LoadClassDescription of this LoadParameter
+  LoadParamDescription* paramDesc;               //!< The LoadParameterDescription of this LoadParameter
+};
+
+
+//! derived template class, so all the Classes can load something.
+template<class T> class LoadParam : public BaseLoadParam
+{
+ public:
+  LoadParam1(l_STRING);
+  LoadParam2(l_STRING, l_STRING);
+  LoadParam3(l_STRING, l_STRING, l_STRING);
+  LoadParam4(l_STRING, l_STRING, l_STRING, l_STRING);
+
+  LoadParam1(l_INT);
+  LoadParam2(l_INT, l_INT);
+  LoadParam3(l_INT, l_INT, l_INT);
+  LoadParam4(l_INT, l_INT, l_INT, l_INT);
+
+  LoadParam1(l_FLOAT);
+  LoadParam2(l_FLOAT, l_FLOAT);
+  LoadParam3(l_FLOAT, l_FLOAT, l_FLOAT);
+  LoadParam4(l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
+};
+
+
+#endif /* _LOAD_PARAM_H */
Index: orxonox/branches/physics/src/util/object_manager.cc
===================================================================
--- orxonox/branches/physics/src/util/object_manager.cc	(revision 4283)
+++ orxonox/branches/physics/src/util/object_manager.cc	(revision 4283)
@@ -0,0 +1,55 @@
+/* 
+   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: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_OBJECT_MANAGER
+
+#include "object_manager.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+ObjectManager::ObjectManager () 
+{
+   this->setClassName ("ObjectManager");
+
+}
+
+/**
+   \brief the singleton reference to this class
+*/
+ObjectManager* ObjectManager::singletonRef = NULL;
+
+/**
+   \returns a Pointer to this Class
+*/
+ObjectManager* ObjectManager::getInstance(void)
+{
+  if (!ObjectManager::singletonRef)
+    ObjectManager::singletonRef = new ObjectManager();
+  return ObjectManager::singletonRef;
+}
+
+/**
+   \brief standard deconstructor
+
+*/
+ObjectManager::~ObjectManager () 
+{
+  ObjectManager::singletonRef = NULL;
+
+}
Index: orxonox/branches/physics/src/util/object_manager.h
===================================================================
--- orxonox/branches/physics/src/util/object_manager.h	(revision 4283)
+++ orxonox/branches/physics/src/util/object_manager.h	(revision 4283)
@@ -0,0 +1,43 @@
+/*! 
+    \file object_manager.h
+    \brief this manager will ceep track of the objects  in the world
+    
+    This is specially designed to:
+    - Give an interface to the world data
+    - separate the world data from the world build,update,draw process
+    - recycle deleted objects: specific for Projectils since there is a lot of world entity creation/deletion (and this needs a lot of time)
+    - control the garbage collector
+*/
+
+
+#ifndef _OBJECT_MANAGER_H
+#define _OBJECT_MANAGER_H
+
+#include "base_object.h"
+
+#define OM_
+
+class WorldEntity;
+
+
+template<class T> class tList; 
+
+//! the object manager itself
+class ObjectManager : public BaseObject {
+
+ public:
+  static ObjectManager* getInstance(void);
+  virtual ~ObjectManager(void);
+
+  void preLoad();
+
+ private:
+  ObjectManager(void);
+  static ObjectManager* singletonRef;
+
+  tList<WorldEntity>* projectileBuffer;            //!< a list of projectiles that is generated at the beginning to make orx faster
+
+
+};
+
+#endif /* _OBJECT_MANAGER_H */
Index: orxonox/branches/physics/src/util/track/track_manager.cc
===================================================================
--- orxonox/branches/physics/src/util/track/track_manager.cc	(revision 4283)
+++ orxonox/branches/physics/src/util/track/track_manager.cc	(revision 4283)
@@ -0,0 +1,1210 @@
+/* 
+   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: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_TRACK_MANAGER
+
+#include "track_manager.h"
+
+#include "base_object.h"
+#include "p_node.h"
+#include "track_node.h"
+#include "stdincl.h"
+#include "list.h"
+#include "text_engine.h"
+#include "t_animation.h"
+#include "substring.h"
+#include "tinyxml.h"
+
+#include <stdarg.h>
+
+using namespace std;
+
+/**
+   \brief initializes a TrackElement (sets the default values)
+*/
+TrackElement::TrackElement(void)
+{
+  this->isFresh = true;
+  this->isHotPoint = false;
+  this->isSavePoint = false;
+  this->isFork = false;
+  this->isJoined = false;
+  this->mainJoin = false;
+  this->ID = -1;
+  this->startingTime = 0;
+  this->duration = TMAN_DEFAULT_DURATION;
+  this->endTime = 1;
+  this->jumpTime = 0;
+  this->width = TMAN_DEFAULT_WIDTH;
+  this->nodeCount = 0;
+  this->curve = NULL;
+  this->childCount = 0;
+  this->children = NULL;
+  this->name = NULL;
+
+  this->history = NULL;
+
+  this->subject = NULL;
+  this->condFunc = &TrackElement::random;
+}
+
+/** 
+    \brief destroys all alocated memory)
+    \todo eventually when deleting a TrackElement you would not like to delete all its preceding TrackElements
+*/
+TrackElement::~TrackElement(void)
+{
+  // deleting the Name
+  delete []name;
+  // deleting the Curve
+  delete this->curve;
+
+  // deleting all the Children of this TrackNode.
+  if ((!this->isJoined &&this->childCount > 0) 
+      || (this->isJoined && this->mainJoin)) // only if this is the MainJoin.
+    {
+      tIterator<TrackElement>* iterator = this->children->getIterator();
+      TrackElement* enumElem = iterator->nextElement();
+      while (enumElem)
+	{
+	  delete enumElem;
+	  enumElem = iterator->nextElement();
+	}
+      delete iterator;
+      delete this->children;
+    }
+}
+
+/**
+   \brief Searches through all the TrackElements for trackID.
+   \param trackID The ID to search for.
+   \returns The TrackElement if Found, NULL otherwise.
+*/
+TrackElement* TrackElement::findByID(unsigned int trackID)
+{
+  // return if Found.
+  if (this->ID == trackID)
+    return this;
+  // search all children
+  if (this->childCount > 0)
+    {
+      tIterator<TrackElement>* iterator = this->children->getIterator();
+      TrackElement* enumElem = iterator->nextElement();
+      TrackElement* tmpElem;
+      while (enumElem)
+	{
+	  if ((tmpElem = enumElem->findByID(trackID)))
+	    return tmpElem;
+	  enumElem = iterator->nextElement();
+	}
+      delete iterator;
+    }
+  // if not found
+  return NULL;
+}
+
+
+/**
+   \brief Searches through all the TrackElements for a trackName
+   \param trackName The name to search for.
+   \returns The TrackElement if Found, NULL otherwise.
+*/
+TrackElement* TrackElement::findByName(const char* trackName)
+{
+  // return if Found.
+  if (this->name && !strcmp(this->name, trackName))
+    return this;
+  // search all children
+  if (this->childCount > 0)
+    {
+      tIterator<TrackElement>* iterator = this->children->getIterator();
+      TrackElement* enumElem = iterator->nextElement();
+      TrackElement* tmpElem;
+      while (enumElem)
+	{
+	  if ((tmpElem = enumElem->findByName(trackName)))
+	    return tmpElem;
+	  enumElem = iterator->nextElement();
+	}
+      delete iterator;
+    }
+  // if not found
+  return NULL;
+}
+
+/**
+   \brief checks if there are any BackLoops in the Track (Backloops only 
+   \param trackElem the trackElement to check about
+   \returns true if NO loop was found, false Otherwise
+   You actually have to act on false!!
+   it simply does this by looking if the current trackElem is found again somewhere else in the Track
+*/
+bool TrackElement::backLoopCheck(const TrackElement* trackElem, unsigned int depth) const
+{
+  if(depth == 0 || this != trackElem)
+    {
+      if (this->children)
+	{
+	  tIterator<TrackElement>* iterator = this->children->getIterator();
+	  TrackElement* enumElem = iterator->nextElement();
+	  while (enumElem)
+	    {
+	      if(!enumElem->backLoopCheck(trackElem, depth + 1))
+		return false;
+	      enumElem = iterator->nextElement();
+	    }
+	  delete iterator;
+	}
+    }
+  else
+    return false;
+
+  // only returns if everything worked out
+  return true;
+}
+
+/**
+   \param childNumber which child to return
+   \returns the n-the children (starting at 0). 
+   Be aware, that when the trackElement has no Children, NULL will be returned
+*/
+TrackElement* TrackElement::getChild(int childCount) const
+{
+  // if the the trackElement has no children return NULL.
+  if (this->childCount == 0)
+    return NULL;
+  // we cannot return the childCount+m's Child, so we return the last.
+  if (childCount > this->childCount)
+    childCount = this->childCount;
+  
+  tIterator<TrackElement>* iterator = this->children->getIterator();
+  TrackElement* enumElem = iterator->nextElement();
+  for (int i = 0; i < childCount; i++)
+    enumElem = iterator->nextElement();
+  delete iterator;
+  return enumElem;
+}
+
+/**
+   \param name the Name to set.
+*/
+void TrackElement::setName(const char* name)
+{
+  //  delete the old name
+  if (this->name)
+    delete []this->name;
+  // if a name was given.
+  if (name)
+    {
+      this->name = new char[strlen(name)+1];
+      strcpy(this->name, name);
+    }
+  else 
+    this->name = NULL;
+}
+
+/**
+   \returns The name of this TrackElement
+*/
+const char* TrackElement::getName(void) const
+{
+  return this->name;
+}
+
+/**
+   \brief prints out debug information about this TrackElement
+*/
+void TrackElement::debug(void) const
+{
+  PRINT(0)("--== TrackElement:%i ==--", this->ID);
+  if(this->getName())
+    PRINT(0)("--++Name: %s++--", this->getName());
+  if(this->isFresh)
+    PRINT(0)("  -- has not jet eddited in any way --\n");
+  PRINT(0)("\n   TimeTable: startingTime=%f; endTime=%f; duration=%f; jumpTime=%f\n", this->startingTime, this->endTime, this->duration, this->jumpTime);
+  PRINT(0)("   consists of %d Points\n", this->nodeCount);
+  if (this->childCount == 0)
+    PRINT(0)("   has no child\n");
+  else if (this->childCount == 1)
+    PRINT(0)("   has 1 child: =%d=\n", this->getChild(0)->ID);
+  else if (this->childCount > 1)
+    {
+      PRINT(0)("   has %d children: ", this->childCount);
+      //TrackElement* enumElem = this->children->enumerate();
+      tIterator<TrackElement>* iterator = this->children->getIterator();
+      TrackElement* enumElem = iterator->nextElement();
+      while (enumElem)
+	{
+	  PRINT(0)("=%d= ", enumElem->ID);
+	  enumElem = iterator->nextElement();
+	}
+      delete iterator;
+      PRINT(0)("\n");
+    }
+  
+  if(this->isHotPoint)
+    PRINT(0)("   is a special Point:\n");
+  if(this->isSavePoint)
+    PRINT(0)("    is a SavePoint\n");
+  if(this->isFork)
+    {
+      PRINT(0)("    is A Fork with with %d children.\n", this->childCount);
+    }
+  if(this->isJoined)
+    PRINT(0)("   is Joined at the End\n");
+  
+  if(!this->backLoopCheck(this)) /* this should not happen */
+    PRINT(2)(" THERE IS A BACKLOOP TO THIS ELEMENT\n");
+}
+
+/**
+   \brief CONDITION that chooses the first child for the decision (static)
+   \param nothing Nothing in this function
+   \returns the chosen child
+*/
+int TrackElement::lowest(const void* nothing) const
+{
+  return 0;
+}
+
+/**
+   \brief CONDITION that chooses the last child for the decision (static)
+   \param nothing Nothing in this function
+   \returns the chosen child
+*/
+int TrackElement::highest(const void* nothing) const
+{ 
+  return this->childCount-1;
+}
+
+/**
+   \brief CONDITION that chooses a random child for the decision (static)
+   \param nothing Nothing in this function
+   \returns the chosen child
+*/
+int TrackElement::random(const void* nothing) const
+{
+  int i = (int)floor ((float)rand()/(float)RAND_MAX * (float)this->childCount);
+  if (i >= this->childCount)
+    return this->childCount-1;
+  else 
+    return i;
+}
+
+/**
+   \brief CONDITION that chooses child 0, if the node(probably Player)
+   is left of its parent (z<0)) and 1/right otherwise.
+   \param node The node to act upon.
+   \returns the chosen child
+*/
+int TrackElement::leftRight(const void* node) const
+{
+  PNode* tmpNode = (PNode*)node;
+
+  if (tmpNode->getRelCoor().z < 0)
+    return 0;
+  else 
+    return 1;
+}
+
+
+/**
+   \brief CONDITION that chooses the child, that has the nearest distance to the node (probably player).
+   \param node The node to act upon.
+   \returns the chosen child
+
+   This is rather dangerous, because one must carefully set the points on the curve.
+   The best Way is to set the nodes as wide away of each other as possible,
+   but take into consideration, that if the nodes are to far from a center node, the center will be chosen.
+   (play with this!!).
+*/
+int TrackElement::nearest(const void* node) const
+{
+  PNode* tmpNode = (PNode*)node;
+
+  Vector nodeRelCoord = tmpNode->getRelCoor();
+  float minDist = 100000000;
+  int childNumber = 0;
+  int i = 0;
+
+  //TrackElement* enumElem = this->children->enumerate();
+  tIterator<TrackElement>* iterator = this->children->getIterator();
+  TrackElement* enumElem = iterator->nextElement();
+  while (enumElem)
+    {
+      float dist = (nodeRelCoord - enumElem->curve->getNode(4)).len();
+      if (dist < minDist)
+	{
+	  minDist = dist;
+	  childNumber = i;
+	}
+      i++;
+      enumElem = iterator->nextElement();
+    }
+  delete iterator;
+
+  PRINTF(4)("PathDecision with nearest algorithm: %d\n", childNumber);
+  return childNumber;
+}
+
+
+////////////////////////
+///// TRACKMANAGER /////
+////////////////////////
+/**
+   \brief standard constructor
+
+*/
+TrackManager::TrackManager(void)
+{
+  this->setClassName("TrackManager");
+  
+  TrackManager::singletonRef = this; // do this because otherwise the TrackNode cannot get The instance of the TrackManager
+
+  PRINTF(3)("Initializing the TrackManager\n");
+  // setting up the First TrackElement
+  this->firstTrackElem = new TrackElement();
+  this->firstTrackElem->ID = 1;
+  this->firstTrackElem->setName("root");
+
+  this->currentTrackElem = firstTrackElem;
+
+  this->curveType = CURVE_BEZIER;
+  this->localTime = 0;
+  this->maxTime = 0;
+  this->trackElemCount = 1;
+
+  this->trackNode = new TrackNode();
+  this->setBindSlave(this->trackNode);
+  // initializing the Text
+  this->trackText = TextEngine::getInstance()->createText("fonts/earth.ttf", 30, TEXT_DYNAMIC, 0, 255, 0);
+  this->trackText->setAlignment(TEXT_ALIGN_SCREEN_CENTER);
+  // initializing the Animation for the Text.
+  this->textAnimation = new tAnimation<Text>(this->trackText, &Text::setBlending);
+  this->textAnimation->addKeyFrame(1.0, 3.0, ANIM_NEG_EXP);
+  this->textAnimation->addKeyFrame(0.0, .001);
+  this->textAnimation->setInfinity(ANIM_INF_CONSTANT);
+}
+
+
+/**
+   \brief loads a trackElement from a TiXmlElement
+   \param root the TiXmlElement to load the Data from
+*/
+bool TrackManager::load( TiXmlElement* root)
+{
+  TiXmlElement* element;
+  TiXmlNode* container;
+  double x, y, z, d;
+	
+  element = root->FirstChildElement();
+	
+  while( element != NULL)
+    {
+      if( !strcmp( element->Value(), "Point"))
+	{
+	  container = element->FirstChild();
+	  if( container->ToText())
+	    {
+	      assert( container->Value() != NULL);
+	      if( sscanf( container->Value(), "%lf,%lf,%lf", &x, &y, &z) == 3)
+		{
+		  PRINTF(5)("Loaded Point: %lf,%lf,%lf (%s)\n", x, y, z, container->Value());
+		  addPoint( Vector( x, y, z));
+		}
+	      else
+		{
+		  PRINTF(0)("Invalid Point in Track (skipped)\n");
+		}			
+	    }
+	}
+      else if( !strcmp( element->Value(), "Duration"))
+	{
+	  container = element->FirstChild();
+	  if( container->ToText())
+	    {
+	      assert( container->Value() != NULL);
+	      if( sscanf( container->Value(), "%lf", &d) == 1)
+		{
+		  PRINTF(5)("Loaded Duration: %lf (%s)\n", d, container->Value());
+		  setDuration( d);
+		}
+	      else
+		{
+		  PRINTF(2)("Invalid Duration in Track (skipped)\n");
+		}			
+	    }
+	}
+      else if( !strcmp( element->Value(), "SavePoint"))
+	{
+	  PRINTF(5)("Loaded Savepoint\n");
+	  setSavePoint();
+	}
+      else if( !strcmp( element->Value(), "Fork"))
+	{
+	  container = element->FirstChild();
+	  if( container->ToText())
+	    {
+	      assert( container->Value() != NULL);
+	      PRINTF(4)("Loaded Fork: %s\n", container->Value());
+	      forkS(container->Value());
+	    }
+	}
+      else if( !strcmp( element->Value(), "Join"))
+	{
+	  container = element->FirstChild();
+	  if( container->ToText())
+	    {
+	      assert( container->Value() != NULL);
+	      PRINTF0("Loaded Join: %s\n", container->Value());
+	      joinS(container->Value());
+	    }
+	}
+      else if( !strcmp( element->Value(), "WorkOn"))
+	{
+	  container = element->FirstChild();
+	  if( container->ToText())
+	    {
+	      assert( container->Value() != NULL);
+	      PRINTF(4)("Loaded WorkOn: %s\n", container->Value());
+	      workOn( container->Value());
+	    }
+	}
+		
+      element = element->NextSiblingElement();
+    }
+
+}
+
+
+
+/**
+   \brief standard destructor
+*/
+TrackManager::~TrackManager(void)
+{
+  PRINTF(3)("Destruct TrackManager\n");
+
+  PRINTF(4)("Deleting all the TrackElements\n");
+  delete this->firstTrackElem;
+
+  // the tracknode should be deleted here, but is deleted by pNode: -> null_parent
+
+  // we do not have a TrackManager anymore
+  TrackManager::singletonRef = NULL;
+}
+
+//! Singleton Reference to TrackManager
+TrackManager* TrackManager::singletonRef = NULL;
+
+/**
+   \returns The reference on the TrackManager.
+
+   If the TrackManager does not exist, it will be created.
+*/
+TrackManager* TrackManager::getInstance(void) 
+{
+  if (!TrackManager::singletonRef)
+    TrackManager::singletonRef = new TrackManager();
+  return TrackManager::singletonRef;
+}
+
+
+// INITIALIZE //
+/**
+   \brief reserves Space for childCount children
+   \param childCount The Count of children to make space for.
+   \param trackElem The TrackElement to appy this to. (if NULL chose this->currentTrackElement)
+*/
+void TrackManager::initChildren(unsigned int childCount, TrackElement* trackElem)
+{
+  if (!trackElem)
+    trackElem = this->currentTrackElem;
+
+  trackElem->childCount = childCount;
+  trackElem->mainJoin = true;  // this tells join, that this one is the Main Join, if it tries to join multiple Tracks
+  trackElem->children =  new tList<TrackElement>();
+  for (int i = 0; i < childCount; i++)
+    {
+      // create a new Element
+      TrackElement* newElem = new TrackElement();
+      // setting up the new ID
+      newElem->ID = ++trackElemCount;
+      // setting up the Time
+      newElem->startingTime = trackElem->endTime + trackElem->jumpTime;
+      // adds the conection Point
+      this->addPoint(trackElem->curve->getNode(trackElem->curve->getNodeCount()),
+		     newElem);
+      // add the new child to the childList.
+      trackElem->children->add(newElem);
+    }
+
+  // setting the Name of the new TrackElement to the name of the last one + _childI
+
+  if (trackElem->getName())
+    {
+      for (int i = 0; i < trackElem->childCount; i++)
+      {
+	char* childName = new char[strlen(trackElem->getName())+10];
+	sprintf(childName, "%s_child%d", trackElem->getName(), i);
+	trackElem->getChild(i)->setName(childName);
+      }
+    }
+  // select the first Child to work on.
+  this->currentTrackElem = trackElem->getChild(0);
+}
+
+
+/**
+   \brief Sets the trackID we are working on.
+   \param trackID the trackID we are working on
+*/
+void TrackManager::workOn(unsigned int trackID)
+{
+  TrackElement* tmpElem = this->firstTrackElem->findByID(trackID);
+  if (tmpElem)
+    this->currentTrackElem = tmpElem;
+  else
+    PRINTF(2)("TrackElement %d not Found, leaving unchanged\n", trackID);
+  PRINTF(4)("now Working on %d\n", this->currentTrackElem->ID);
+}
+
+/**
+   \brief Sets the TrackElement to work on
+   \param trackName the Name of the Track to work on
+*/
+void TrackManager::workOn(const char* trackName)
+{
+  TrackElement* tmpElem = this->firstTrackElem->findByName(trackName);
+  if (tmpElem)
+    this->currentTrackElem = tmpElem;
+  else
+    PRINTF(2)("TrackElement %s not Found, leaving unchanged\n", trackName);
+  PRINTF(4)("now Working on %d\n", this->currentTrackElem->ID);
+}
+
+/**
+   \brief Sets the Type of the Curve
+   \param curveType The Type to set
+   \param trackElem the TrackElement that should get a new Curve.
+
+   \brief this will possibly get obsolete during the process.
+*/
+void TrackManager::setCurveType(CurveType curveType, TrackElement* trackElem)
+{
+  if (!trackElem->isFresh)
+    {
+      PRINTF(2)("It is not possible to change the type of a Curve after you have have appended some points to it\n");
+      return;
+    }
+  this->curveType = curveType;
+  switch (curveType)
+    {
+    case CURVE_BEZIER:
+      trackElem->curve = new BezierCurve();
+      break;
+    }
+}
+
+/**
+   \brief Sets the duration of the current path in seconds.
+   \param duration The duration in seconds.
+   \param trackElem The TrackElement to apply this to.
+*/
+void TrackManager::setDuration(float duration, TrackElement* trackElem)
+{
+  if (!trackElem)
+    trackElem = this->currentTrackElem;
+
+  trackElem->duration = duration;
+  trackElem->endTime = trackElem->startingTime + duration;
+}
+
+/**
+   \brief adds a point to trackElem
+   \param newPoint The point to add.
+   \param trackElem The TrackElement to add the Point to
+*/
+bool TrackManager::addPoint(Vector newPoint, TrackElement* trackElem)
+{
+  if (!trackElem)
+    trackElem = this->currentTrackElem;
+
+  if (trackElem->isFresh)
+    {
+      this->setCurveType(TMAN_DEFAULT_CURVETYPE, trackElem);
+      trackElem->isFresh = false;
+    }
+  trackElem->curve->addNode(newPoint);
+  trackElem->nodeCount++;
+}
+
+/**
+   \brief adds save/splitpoint.
+   \param newPoint The point to add.
+   \returns A Pointer to a newly appended Curve
+*/
+int TrackManager::addHotPoint(Vector newPoint, TrackElement* trackElem)
+{
+  if (!trackElem)
+    trackElem = this->currentTrackElem;
+
+  PRINTF(4)("setting up a HotPoint\n");
+  if (trackElem->isFresh)
+    {
+      trackElem->isFresh = false;
+    }
+
+  // \todo HotPoint Handling.
+  trackElem->curve->addNode(newPoint);
+  trackElem->nodeCount++;
+  this->initChildren(1, trackElem);
+}
+
+/**
+   \brief Sets the last HotPoint into a savePoint.
+   \param trackElem The TrackElement to appy this to. (if NULL chose this->currentTrackElement)
+   \returns A Pointer to a newly appended Curve
+
+   If no HotPoint was defined the last added Point will be rendered into a savePoint. \n
+   If the HotPoint was defined as a fork the Point will \b not be set into a savePoint.
+*/
+int TrackManager::setSavePoint(TrackElement* trackElem)
+{
+  if (!trackElem)
+    trackElem = this->currentTrackElem;
+
+  PRINTF(4)("setting up a SavePoint.\n");
+  if (trackElem->isFork || trackElem->isSavePoint)
+    {
+      PRINTF(2)("%d is already finished \n", trackElem->ID);
+      return trackElem->getChild(0)->ID;
+    }
+  trackElem->isSavePoint = true;
+  trackElem->isHotPoint = true;
+
+  this->initChildren(1, trackElem);
+}
+
+/**
+   \brief adds some interessting non-linear movments through the level.
+   \param count The Count of children the fork will produce
+
+   If no HotPoint was defined the last added Point will be rendered into a fork. \n
+   If the HotPoint was defined as a savePoint the Point will \b not be set into a fork.
+*/
+void TrackManager::fork(unsigned int count, ...)
+{
+  int* trackIDs = new int[count];
+  this->forkV(count, trackIDs, NULL);
+  va_list ID;
+  va_start (ID, count);
+  for(int i = 0; i < count; i++)
+    {
+      *va_arg (ID, int*) = trackIDs[i];
+    }
+  va_end(ID);  
+  delete []trackIDs;
+}
+
+/**
+   \param string the String to parse.
+   \see TrackManager::fork(unsigned int count, ...)
+
+   does the same as fork, but has an array of strings as an input.
+*/
+void TrackManager::forkS(unsigned int count, ...)
+{
+  int* trackIDs = new int[count];
+  this->forkV(count, trackIDs, NULL);
+  va_list name;
+  va_start (name, count);
+  for(int i = 0; i < count; i++)
+    {
+      this->firstTrackElem->findByID(trackIDs[i])->setName(va_arg(name, const char*));
+    }
+  va_end(name);  
+  delete []trackIDs;
+}
+
+/**
+   \see TrackManager::fork(unsigned int count, ...)
+*/
+void TrackManager::forkS(const char* forkString)
+{
+  SubString strings(forkString);
+
+  int* trackIDs = new int[strings.getCount()];
+  this->forkV(strings.getCount(), trackIDs, NULL);
+
+  for(int i = 0; i < strings.getCount(); i++)
+    {
+      this->firstTrackElem->findByID(trackIDs[i])->setName(strings.getString(i));
+    }  
+}
+
+/**
+   \brief adds some interessting non-linear movments through the level.
+   \param count The Count of childrens the current HotPoint will have.
+   \param trackIDs A Pointer to an Array of ints which will hold the trackID's (the user will have to reserve space for this).
+   \param trackElem The TrackElement to appy this to. (if NULL choose this->currentTrackElement)
+   \see TrackManager::fork(unsigned int count, ...)
+*/
+void TrackManager::forkV(unsigned int count, int* trackIDs, char** trackNames, TrackElement* trackElem)
+{
+  if (!trackElem)
+    trackElem = this->currentTrackElem;
+
+  PRINTF(4)("Forking with %d children\n", count);
+  if (trackElem->isSavePoint)
+    return;
+  trackElem->isFork = true;
+  trackElem->isHotPoint = true;
+  for(int i = 0; i < count; i++)
+    trackIDs[i]=this->trackElemCount+1+i;
+  this->initChildren(count, trackElem);
+}
+
+/**
+   \brief decides under what condition a certain Path will be chosen.
+   \param trackID the trackID to apply this to.
+   \param cond the CONDITION of the decision
+   \param subject the Subject that will be decided upon with CONDITION cond.
+*/
+void TrackManager::condition(unsigned int trackID, CONDITION cond, void* subject)
+{
+  this->condition(cond, subject, this->firstTrackElem->findByID(trackID));
+}
+
+/**
+   \brief decides under what condition a certain Path will be chosen.
+   \param cond the CONDITION of the decision
+   \param subject the Subject that will be decided upon with CONDITION cond.
+   \param trackElem The TrackElement to appy this to. (if NULL chose this->currentTrackElement)
+*/
+void TrackManager::condition(CONDITION cond, void* subject, TrackElement* trackElem)
+{
+  if (!trackElem)
+    trackElem = this->currentTrackElem;
+
+  if (!trackElem->isFork)
+    {
+      PRINTF(2)("%d is not a Fork, and no condition can be set in this case\n", trackElem->ID);
+      return;
+    }
+  else
+    {
+      switch (cond)
+	{
+	case LOWEST:
+	  trackElem->condFunc = &TrackElement::lowest;
+	  break;
+	case HIGHEST:
+	  trackElem->condFunc = &TrackElement::highest;
+	  break;
+	case RANDOM: 
+	  trackElem->condFunc = &TrackElement::random;
+	  break;
+	case LEFTRIGHT:
+	  trackElem->condFunc = &TrackElement::leftRight;
+	  break;
+	case NEAREST:
+	  trackElem->condFunc = &TrackElement::nearest;
+	  break;
+	case ENEMYKILLED:
+	  break;
+	}
+      trackElem->subject=subject;
+    }
+}
+
+/**
+   \brief joins some tracks together again. 
+   \param count The count of Paths to join.
+
+   Join will set the localTime to the longest time a Path has to get to this Point. \n
+   Join will join all curves to the first curve, meaning that all the tangents will be matched.
+*/
+void TrackManager::join(unsigned int count, ...)
+{
+  int* trackIDs = new int [count];
+  va_list ID;
+  va_start (ID, count);
+  for(int i = 0; i < count; i++)
+    {
+      trackIDs[i] = va_arg (ID, int);
+    }
+  va_end(ID);
+  this->joinV(count, trackIDs);
+  delete []trackIDs;
+}
+
+/**
+   \brief Joins some Tracks together again.
+   \param count The count of trackElements to join
+   \see void TrackManager::join(unsigned int count, ...)
+
+   The difference to void TrackManager::join(unsigned int count, ...) is, that this function takes
+   the Names of the TrackElements as inputs and not their ID
+*/
+void TrackManager::joinS(unsigned int count, ...)
+{
+  int* trackIDs = new int [count];
+  va_list NAME;
+  va_start (NAME, count);
+  for(int i = 0; i < count; i++)
+    {
+      const char* name = va_arg (NAME, char*);
+      TrackElement* tmpElem = this->firstTrackElem->findByName(name);
+      if (tmpElem)
+	trackIDs[i] = tmpElem->ID;
+      else
+	PRINTF(1)("Trying to join a Track, of which the name does not exist: %s\n", name);
+    }
+  va_end(NAME);
+  this->joinV(count, trackIDs);
+  delete []trackIDs;
+}
+
+/**
+   \see void TrackManager::join(unsigned int count, ...)
+*/
+void TrackManager::joinS(const char* joinString)
+{
+  SubString strings(joinString);
+
+  int* trackIDs = new int[strings.getCount()];
+  this->joinV(strings.getCount(), trackIDs);
+
+  for(int i = 0; i < strings.getCount(); i++)
+    {
+      TrackElement* tmpElem = this->firstTrackElem->findByName(strings.getString(i));
+      if (tmpElem)
+	trackIDs[i] = tmpElem->ID;
+      else
+	PRINTF(1)("Trying to join a Track, of which the name does not exist: %s\n", strings.getString(i));
+    }
+
+  this->joinV(strings.getCount(), trackIDs);
+  delete []trackIDs;
+}
+
+/**
+   \brief joins some tracks together again. 
+   \param count The count of Paths to join.
+   \param trackIDs an Array with the trackID's to join
+
+   \see void TrackManager::join(unsigned int count, ...)
+*/
+void TrackManager::joinV(unsigned int count, int* trackIDs)
+{
+  TrackElement* tmpTrackElem;
+  TrackElement* tmpJoinElem;
+  for (int i = 0; i < count; i++)
+    if (!this->firstTrackElem->findByID(trackIDs[i]))
+      {
+	PRINTF(1)("Trying to Connect Paths that do not exist yet: %d\n Not Joining Anything\n", trackIDs[i]);
+	return;
+      }
+		  
+
+  PRINTF(3)("Joining %d tracks and merging to Track %d\n", count, trackIDs[0]);
+
+  // checking if there is a back-loop-connection and ERROR if it is.
+  tmpTrackElem = this->firstTrackElem->findByID(trackIDs[0]);
+  if (!tmpTrackElem->backLoopCheck(tmpTrackElem))
+    {
+      PRINTF(2)("Backloop connection detected at joining trackElements\n -> TRACK WILL NOT BE JOINED\n");
+      return;
+    }
+
+  TrackElement* firstJoint =   this->firstTrackElem->findByID(trackIDs[0]);
+  float tmpLatestTime = firstJoint->endTime;
+
+  Vector tmpEndPoint = firstJoint->curve->getNode(firstJoint->curve->getNodeCount());
+  Vector tmpTangentPoint = firstJoint->curve->getNode(firstJoint->curve->getNodeCount()-1);
+  Vector tmpc2Point = firstJoint->curve->getNode(firstJoint->curve->getNodeCount()-2);
+  firstJoint->isJoined = true;
+  //  firstJoint->mainJoin = true;
+  if(!firstJoint->isHotPoint)
+    this->setSavePoint(firstJoint);
+  // Timing:
+  for (int i = 0; i < count; i++)
+    {
+      if(tmpJoinElem = this->firstTrackElem->findByID(trackIDs[i]))
+	{
+	  if (tmpJoinElem->childCount == 0
+	      && tmpJoinElem->endTime > tmpLatestTime)
+	    tmpLatestTime = tmpJoinElem->endTime;
+	}
+    }
+  // time the main Join.
+  firstJoint->jumpTime = tmpLatestTime - firstJoint->endTime;
+  
+  // Joining:
+  for (int i = 1; i < count; i++)
+    {
+      if( tmpJoinElem = this->firstTrackElem->findByID(trackIDs[i]))
+	{
+	  if (tmpJoinElem->childCount > 0)
+	    printf("!!This Curve has children, and as such will not be joined!!\n You can try joining other childless TrackElements to this one!");
+	  else
+	    {
+	      this->addPoint(tmpc2Point, tmpJoinElem);
+	      this->addPoint(tmpTangentPoint, tmpJoinElem);
+	      this->addPoint(tmpEndPoint, tmpJoinElem);
+	      // time all other Joins
+	      tmpJoinElem->jumpTime = tmpLatestTime - tmpJoinElem->endTime;
+	      
+	      //Copying Joint-Info
+	      tmpJoinElem->children = firstJoint->children;
+	      tmpJoinElem->childCount = firstJoint->childCount;
+	      tmpJoinElem->isSavePoint = firstJoint->isSavePoint;
+	      tmpJoinElem->isFork = firstJoint->isFork;
+	      
+	      tmpJoinElem->isJoined = true;
+	    }
+	}
+    }
+  if(firstJoint->children)
+    {
+      //TrackElement* enumElem = firstJoint->children->enumerate();
+      tIterator<TrackElement>* iterator = firstJoint->children->getIterator();
+      TrackElement* enumElem = iterator->nextElement();
+      while (enumElem)
+	{
+	  PRINTF(5)("Setting startingTime of %d to %f.\n", enumElem->ID, tmpLatestTime);
+	  enumElem->startingTime = tmpLatestTime;
+	  enumElem->endTime = tmpLatestTime + enumElem->duration;
+	  
+	  enumElem = iterator->nextElement();
+	}
+      delete iterator;
+    }
+}
+
+/**
+   \brief finalizes the TrackSystem. after this it will not be editable anymore
+
+   \todo check for any inconsistencies, output errors
+*/
+void TrackManager::finalize(void)
+{
+  for (int i = 1; i<= trackElemCount ;i++)
+    {
+      TrackElement* tmpElem = this->firstTrackElem->findByID(i);
+      if( tmpElem->childCount > 0 && tmpElem->mainJoin)
+	{
+	  tIterator<TrackElement>* iterator = tmpElem->children->getIterator();
+	  TrackElement* enumElem = iterator->nextElement();
+	  //TrackElement* enumElem = tmpElem->children->enumerate();
+	  while (enumElem)
+	    {
+	      
+	      // c1-continuity
+	      enumElem->curve->addNode(enumElem->curve->getNode(0) +
+						   ((enumElem->curve->getNode(0) - 
+						    tmpElem->curve->getNode(tmpElem->curve->getNodeCount()-1))
+						    ),2);
+	      enumElem->nodeCount++;
+	      // c2-continuity
+	      enumElem->curve->addNode((tmpElem->curve->getNode(tmpElem->curve->getNodeCount())-
+						    tmpElem->curve->getNode(tmpElem->curve->getNodeCount()-1)) * 4 +
+						   tmpElem->curve->getNode(tmpElem->curve->getNodeCount()-2), 3);
+	      enumElem->nodeCount++;						    
+	      PRINTF(5)("accelerations: %d-in: count: %d, %f, %f, %f\n                  %d-out: count: %d %f, %f, %f\n",
+		     tmpElem->ID, tmpElem->nodeCount,
+		     tmpElem->curve->calcAcc(0.999).x, tmpElem->curve->calcAcc(0.999).y, tmpElem->curve->calcAcc(0.999).z,
+		     enumElem->ID, enumElem->nodeCount,
+		     enumElem->curve->calcAcc(0).x, enumElem->curve->calcAcc(0).y, enumElem->curve->calcAcc(0).z);
+	      
+	      enumElem = iterator->nextElement();
+	    }
+	  delete iterator;
+	}
+    }
+  for (int i = 1; i <= trackElemCount;i++)
+    if (this->firstTrackElem->findByID(i)->endTime > this->maxTime)
+      this->maxTime = this->firstTrackElem->findByID(i)->endTime; // very bad implemented :/
+}
+
+
+// RUNTIME //
+
+/**
+   \brief calculates the Position for the localTime of the Track.
+   \returns the calculated Position
+*/
+Vector TrackManager::calcPos() const
+{
+  return this->currentTrackElem->curve->calcPos((this->localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration);
+}
+
+/**
+   \brief calculates the Rotation for the localTime of the Track.
+   \returns the calculated Rotation
+*/
+Vector TrackManager::calcDir() const
+{
+  return this->currentTrackElem->curve->calcDir((this->localTime - this->currentTrackElem->startingTime)/this->currentTrackElem->duration);
+}
+
+/**
+   \returns the current Width of the track
+*/
+float TrackManager::getWidth(void) const
+{
+  return this->currentTrackElem->width;
+}
+
+/**
+   \brief Advances the local-time of the Track around dt
+   \param dt The time about which to advance.
+
+   This function also checks, if the TrackElement has to be changed.
+*/
+void TrackManager::tick(float dt)
+{
+  dt /= 1000;
+  PRINTF(4)("CurrentTrackID: %d, LocalTime is: %f, timestep is: %f\n", this->currentTrackElem->ID, this->localTime, dt);
+  if (this->localTime <= this->firstTrackElem->duration)
+    this->jumpTo(this->localTime);
+  if (this->localTime <= this->maxTime)
+    this->localTime += dt;
+  if (this->localTime > this->currentTrackElem->endTime
+      && this->currentTrackElem->children)
+    {
+      if (this->currentTrackElem->jumpTime != 0.0)
+	this->jumpTo(this->localTime + this->currentTrackElem->jumpTime);
+      // jump to the next TrackElement and also set the history of the new Element to the old one.
+      TrackElement* tmpHistoryElem = this->currentTrackElem;
+      this->currentTrackElem = this->currentTrackElem->getChild(this->choosePath(this->currentTrackElem));
+      this->currentTrackElem->history = tmpHistoryElem;
+      if (this->currentTrackElem->getName())
+	{
+	  this->trackText->setText(this->currentTrackElem->getName());
+	  this->textAnimation->replay();
+	}
+    }
+  if (this->bindSlave)
+    {
+      Vector tmp = this->calcPos();
+      Quaternion quat = Quaternion(this->calcDir(), Vector(this->currentTrackElem->curve->calcAcc((localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration).x,1,this->currentTrackElem->curve->calcAcc((localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration).z)); 
+
+      Vector v(0.0, 1.0, 0.0);
+      Quaternion q(-PI/2, v);
+      quat = quat * q;
+
+      this->bindSlave->setAbsCoor(tmp);
+      this->bindSlave->setAbsDir(quat);
+    }
+}
+
+/**
+   \brief Jumps to a certain point on the Track.
+   \param time The time on the Track to jump to.
+
+   This should be used to Jump backwards on a Track, because moving forward means to change between the Path. (it then tries to choose the default.)
+   Max is trackLengthMax.
+*/
+void TrackManager::jumpTo(float time)
+{
+  if (time == 0)
+    {
+      this->currentTrackElem = this->firstTrackElem;
+      if (this->currentTrackElem->getName())
+	{
+	  this->trackText->setText(this->currentTrackElem->getName());
+	  this->textAnimation->play();
+	}
+    }
+  this->localTime = time;
+}
+
+/**
+   \brief a Function that decides which Path we should follow.
+   \param trackElem The Path to choose.
+   
+*/
+int TrackManager::choosePath(TrackElement* trackElem)
+{
+  return (trackElem->*(trackElem->condFunc))(trackElem->subject);
+}
+
+/**
+   \brief Sets the PNode, that should be moved along the Tack
+   \param bindSlave the PNode to set
+*/
+void TrackManager::setBindSlave(PNode* bindSlave)
+{
+  this->bindSlave = bindSlave;
+}
+
+/**
+   \returns the main TrackNode
+*/
+PNode* TrackManager::getTrackNode(void)
+{
+  return this->trackNode;
+}
+
+// DEBUG //
+
+/**
+   \brief Imports a model of the Graph into the OpenGL-environment.
+   \param dt The Iterator used in seconds for Painting the Graph.
+
+   This is for testing facility only. Do this if you want to see the Path inside the Level.
+   eventually this will all be packed into a gl-list.
+*/
+void TrackManager::drawGraph(float dt) const
+{
+  for (int i = 1; i <= trackElemCount; i++)
+    {
+      glBegin(GL_LINE_STRIP);
+      TrackElement* tmpElem = this->firstTrackElem->findByID(i);
+      if (tmpElem->curve)
+	for(float f = 0.0; f < 1.0; f+=dt)
+	  {
+	    //      printf("%f, %f, %f\n",trackManager->calcPos().x, trackManager->calcPos().y, trackManager->calcPos().z);
+	    Vector tmpVector = tmpElem->curve->calcPos(f);
+	    glVertex3f(tmpVector.x, tmpVector.y, tmpVector.z);
+	  }
+      glEnd();
+    }
+}
+
+/**
+   \brief outputs debug information about the trackManager
+   \param level how much debug
+*/
+void TrackManager::debug(unsigned int level) const
+{
+  PRINT(0)("=========================================\n");
+  PRINT(0)("= CLASS TRACKMANAGER::debug information =\n");
+  PRINT(0)("=========================================\n");
+  //  PRINT(0)("Status is: %
+  PRINT(0)(" Consists of %d elements\n", this->trackElemCount);
+  PRINT(0)(" localTime is: %f\n", this->localTime);
+  if (level >= 2)
+    {
+      for (int i = 1; i <= trackElemCount; i++)
+	{
+	  TrackElement* tmpElem = this->firstTrackElem->findByID(i);
+	  tmpElem->debug();
+	}
+    }
+  PRINT(0)("-----------------------------------------\n");
+}
Index: orxonox/branches/physics/src/util/track/track_manager.h
===================================================================
--- orxonox/branches/physics/src/util/track/track_manager.h	(revision 4283)
+++ orxonox/branches/physics/src/util/track/track_manager.h	(revision 4283)
@@ -0,0 +1,197 @@
+/*! 
+    \file track_manager.h
+    \brief manages all tracks defined in the world and the path the player takes
+
+    it is a container for all tracks and all track-nodes. it manages the movement of
+    the track helper-parent (that drives the player). it is responsable for calculating
+    smooth curves etc.
+*/
+
+
+#ifndef _TRACK_MANAGER_H
+#define _TRACK_MANAGER_H
+
+#include "curve.h"
+#include "base_object.h"
+
+// Forward Definition
+class PNode;
+class Text;
+class TiXmlElement;
+template<class T> class tAnimation;
+template<class T> class tList;
+
+// Static Definitions
+
+//! The Default Curve-Type to set for the whole path (if not chosen otherwise).
+#define TMAN_DEFAULT_CURVETYPE CURVE_BEZIER
+#define TMAN_DEFAULT_DURATION 10
+#define TMAN_DEFAULT_WIDTH    10
+
+//! A Graph-Element, that holds the curve-structure of a Level.
+/**
+   A TrackElement is used, to define the structure of the Track itself.
+   It is a graph and not a tree, because paths can fork and join again.
+*/
+class TrackElement
+{
+ public:
+  TrackElement(void);
+  ~TrackElement(void);
+
+  TrackElement* findByID(unsigned int trackID);
+  TrackElement* findByName(const char* trackName);
+  bool backLoopCheck(const TrackElement* trackElem, unsigned int depth = 0) const;
+
+  TrackElement* getChild(int childNumber) const;
+  void setName(const char* name);
+  const char* getName(void) const;
+
+  // atributes
+  bool isFresh;              //!< If no Points where added until now
+  bool isHotPoint;           //!< If the first node is a specialPoint;
+  bool isSavePoint;          //!< If the first node is a savePoint
+  bool isFork;               //!< If the first node is a Fork
+  bool isJoined;             //!< If the End of the Curve is joined.
+  bool mainJoin;             //!< If the End of the Curve is joined, and this is the one Curve the others join to.
+  int ID;                    //!< The ID of this TrackElement
+  float startingTime;        //!< The time at which this Track begins.
+  float duration;            //!< The time used to cross this TrackElement (curve).
+  float endTime;             //!< The time at which this Track ends.
+  float jumpTime;            //!< The Time this Track has to jump to its preceding Track (only >0 if Track isJoined==true)
+  float width;               //!< Th width of the Path. This tells the Player(s), how far he(they) can go to the left/right.
+  int nodeCount;             //!< The count of points this TrackElement has.
+  Curve* curve;              //!< The Curve of this TrackElement
+  int childCount;            //!< The number of Children This TrackElement has.
+  tList<TrackElement>* children;   //!< A TrackElement can have a Tree of following TrackElements.
+
+
+  // runtime
+  TrackElement* history;     //!< a pointer to the last TrackElement we were on. This is if you want to walk the path backwards again.
+
+  void debug(void) const;
+
+  // CONDITION FUNCTIONS and STUFF
+  void* subject;             //!< The Subject the Condition should act upon.
+  int (TrackElement::*condFunc)(const void*) const; //!< Pointer to the condition function
+
+  int lowest(const void* nothing) const;
+  int highest(const void* nothing) const;
+  int random(const void* nothing) const;
+
+  int leftRight(const void* node) const;
+  int nearest(const void* node) const;
+  // todo  int enemyKilled(void* entity);
+
+ private:
+  char* name;                //!< A name for the Trac.
+ 
+};
+
+//! the Condition to choose between the different ways of the game.
+enum CONDITION {LOWEST, HIGHEST, RANDOM, LEFTRIGHT, NEAREST, ENEMYKILLED};
+
+//! The TrackManager handles the flow of the Players through the game.
+/**
+
+   <b>The TrackManager works as followed:</b> \n
+     \n
+   <b>1. Initialize it, by setting up the Graph. You can do this by using the following Commands.</b>
+    \li workOn(): changes the ID that will be altered through the changes.
+    \li setCurveType(): lets you set the CurveType of the Curve we are Working on. (default is BezierCurve, set this as early as possible, for this uses resources).
+    \li setDuration(): sets the length of the current path in seconds.
+    \li addPoint(): adds a point to the Curve.
+    \li addHotPoint(): adds save/splitpoint.\n
+    \li fork(): adds some interessting non-linear movments through the level (fork will force addHotPoint if not done then).
+    \li condition(): decides under what condition a certain Path will be chosen.
+    \li join(): joins some tracks together again. Join will set the localTime to the longest time a Path has to get to this Point)
+    \li setSavePoint(): Sets a HotPoint into a savePoint. A Savepoint can be used as a rollbackpoint if a Player gets shot.
+
+    HotPoints and Joins are at the beginning of a TrackElement. \n
+    SavePoints and Forks are at the end of a TrackElement \n
+    look out: <b>SAVEPOINTS CAN NOT BE FORKS</b> (but joins), because the condition is really hard to guess if you do not give some impuls. \n
+\n
+   <b> 2. Runtime knows the following: </b>
+    \li calcPos(): returns the current position on the track
+    \li calcDir(): returns the current Direction the track is flying on.
+    \li tick(): makes a Step on the Path. increases localTime by dt.
+    \li choosePath(): a Function that decides which Path we should follow.
+   
+   TrackManager can be handled as a StateMachine.
+   \n\n
+    Names: 
+    \li TrackManager: handles Tracks
+    \li Track:        The Track that the ship can follow
+    \li Path:         one way through the Level, that is dependent on conditionals.
+    \li Conditional:  A decition making device, that chooses betwen different TrackElements for the Path.
+    \li TrackElement: A Part of A whole Track
+*/
+class TrackManager : public BaseObject
+{
+ private:
+  TrackManager(void);
+
+  static TrackManager* singletonRef;  //!< There may only be one TrackManager.
+
+  TrackElement* firstTrackElem;       //!< The first TrackElement that exists.
+  TrackElement* currentTrackElem;     //!< The TrackElement we are working on.
+  CurveType curveType;                //!< The CurveType the entire TrackSystem will have.
+  float localTime;                    //!< The time that has been passed since the traveling the Track.
+  float maxTime;                      //!< The maximal time the track has.
+  int trackElemCount;                 //!< The count of TrackElements that exist.
+
+  // external
+  PNode* bindSlave;                   //!< The node that is slave to the TrackManager. This node will be moved while update the TrackManager, and must NOT move itself.
+  PNode* trackNode;                   //!< The main TrackNode of this Track.
+  Text* trackText;                    //!< The text to display when switching between Worlds.
+  tAnimation<Text>* textAnimation;    //!< An Animation for the Text.
+  
+  void initChildren(unsigned int childCount, TrackElement* trackElem = NULL);
+
+ public:
+  virtual ~TrackManager(void);
+
+  static TrackManager* getInstance(void);
+
+  bool load(TiXmlElement* root);
+
+  // Methods to change the Path (initialisation)
+  void workOn(unsigned int trackID);
+  void workOn(const char* trackName);
+
+  /** \see setCurveType(CurveType curveType, TrackElement* trackElem); \param curveType the type of the Curve */
+  inline void setCurveType(CurveType curveType) { this->setCurveType (curveType, this->currentTrackElem);};
+  void setCurveType(CurveType curveType, TrackElement* trackElem);
+  void setDuration(float duration, TrackElement* trackElem = NULL);
+  bool addPoint(Vector newPoint, TrackElement* trackElem = NULL);
+  int addHotPoint(Vector newPoint, TrackElement* trackElem = NULL);
+  int setSavePoint(TrackElement* trackElem = NULL);
+  void fork(unsigned int count, ...);
+  void forkS(unsigned int count, ...);
+  void forkS(const char* forkString);
+  void forkV(unsigned int count, int* trackIDs, char** trackNames, TrackElement* trackElem = NULL);
+  void condition(unsigned int trackID, CONDITION cond, void* subject);
+  void condition(CONDITION cond, void* subject, TrackElement* trackElem = NULL);
+  void join(unsigned int count, ...);
+  void joinS(const char* joinString);
+  void joinS(unsigned int cound, ...);
+  void joinV(unsigned int count, int* trackIDs);
+  void finalize(void);
+
+  // Methods to calculate the position on the Path (runtime)
+  inline Vector calcPos(void) const;
+  inline Vector calcDir(void) const;
+  float getWidth(void) const;
+  void tick(float dt);
+  void jumpTo(float time);
+  inline int choosePath(TrackElement* trackElem);
+
+  void setBindSlave(PNode* bindSlave);
+  PNode* getTrackNode(void);
+
+  // DEBUG //
+  void drawGraph(float dt) const;
+  void debug(unsigned int level) const;
+};
+
+#endif /* _TRACK_MANAGER_H */
Index: orxonox/branches/physics/src/util/track/track_node.cc
===================================================================
--- orxonox/branches/physics/src/util/track/track_node.cc	(revision 4283)
+++ orxonox/branches/physics/src/util/track/track_node.cc	(revision 4283)
@@ -0,0 +1,60 @@
+
+
+/* 
+   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: ...
+*/
+
+
+#include "track_node.h"
+
+#include "null_parent.h"
+
+#include "track_manager.h"
+
+using namespace std;
+
+/**
+   \brief standard constructor
+
+   \todo this constructor is not jet implemented - do it
+*/
+TrackNode::TrackNode () 
+{
+  this->setClassName("TrackNode");
+  this->setName("TrackNode"); /* absolete but still used... */
+
+  NullParent::getInstance()->addChild(this);
+  this->trackManager = TrackManager::getInstance();
+  this->setMode(PNODE_ALL);
+}
+
+
+TrackNode::TrackNode (const Vector& absCoordinate)
+{
+  this->parent = NullParent::getInstance();
+  this->trackManager = TrackManager::getInstance();
+  this->setMode(PNODE_ALL);
+  this->setAbsCoor(absCoordinate);
+}
+
+
+/**
+   \brief standard deconstructor
+
+   \todo this deconstructor is not jet implemented - do it
+*/
+TrackNode::~TrackNode () 
+{
+
+}
Index: orxonox/branches/physics/src/util/track/track_node.h
===================================================================
--- orxonox/branches/physics/src/util/track/track_node.h	(revision 4283)
+++ orxonox/branches/physics/src/util/track/track_node.h	(revision 4283)
@@ -0,0 +1,33 @@
+/*! 
+    \file track_node.h
+    \brief Definition of the TrackNode are located here
+    
+    the TrackNode is the node, that follows the Track (and the TrackManager) 
+    through the level.
+    Under normal confitions the Plyaer(s) are 
+*/
+
+
+#ifndef _TRACK_NODE_H
+#define _TRACK_NODE_H
+
+#include "p_node.h"
+
+/* FORWARD DEFINITION */
+class TrackManager;
+
+class TrackNode : public PNode 
+{
+
+ public:
+  TrackNode ();
+  TrackNode (const Vector& absCoordinate);
+
+  virtual ~TrackNode ();
+
+ private:
+  TrackManager* trackManager;
+
+};
+
+#endif /* _TRACK_NODE_H */
Index: orxonox/branches/physics/src/world_entities/player.cc
===================================================================
--- orxonox/branches/physics/src/world_entities/player.cc	(revision 4274)
+++ orxonox/branches/physics/src/world_entities/player.cc	(revision 4283)
@@ -80,5 +80,5 @@
    \todo add more parameters to load
 */
-Player::Player(TiXmlElement* root) : WorldEntity(root)
+Player::Player(const TiXmlElement* root) : WorldEntity(root)
 {
   this->weapons = new tList<Weapon>();
Index: orxonox/branches/physics/src/world_entities/player.h
===================================================================
--- orxonox/branches/physics/src/world_entities/player.h	(revision 4274)
+++ orxonox/branches/physics/src/world_entities/player.h	(revision 4283)
@@ -22,5 +22,5 @@
  public:
   Player();
-  Player(TiXmlElement* root);
+  Player(const TiXmlElement* root);
   virtual ~Player();
 
Index: orxonox/branches/physics/src/world_entities/skybox.cc
===================================================================
--- orxonox/branches/physics/src/world_entities/skybox.cc	(revision 4274)
+++ orxonox/branches/physics/src/world_entities/skybox.cc	(revision 4283)
@@ -11,15 +11,6 @@
 
    ### File Specific:
-   main-programmer: David Gruetter
-   co-programmer: Benjamin Grauer
-   
-   Created by Dave: this file is actually quite similar to player.cc and so is 
-   skybox.h similar to player.h
-   With that said, things should be clear:)
-   
-   Edited:
-   Bensch: more constructors, changeability, comments...
-   Patrick: giving it the common orxonox style, not much to do... good work Dave!
-
+   main-programmer: Benjamin Grauer
+   co-programmer: ...
 */
 
@@ -46,29 +37,25 @@
    \param fileName the file to take as input for the SkyBox
 */
-SkyBox::SkyBox(char* fileName)
+SkyBox::SkyBox(const char* fileName)
 {
   this->preInit();
+  if (fileName)
+    this->setTextureAndType(fileName, ".jpg");
   this->postInit();
 }
 
-SkyBox::SkyBox(TiXmlElement* root) : WorldEntity(root)
+SkyBox::SkyBox(const TiXmlElement* root) : WorldEntity(root)
 {
   this->preInit();
 
-  const char* string;
-
-  // Model Loading	
-  string = grabParameter( root, "materialset");
-  if( string != NULL)
-    this->setTexture(string, "jpg");
-  else
-    {
-      PRINTF(0)("SkyBox is missing a proper 'MaterialSet'\n");
-    }
-  if( this->skyModel == NULL)
-    {
-      PRINTF(0)("SkyBox model '%s' could not be loaded\n", string);
-    }
+  this->loadParams(root);
+
   this->postInit();
+}
+
+void SkyBox::loadParams(const TiXmlElement* root)
+{
+  LoadParam<SkyBox>(root, "Materialset", this, &SkyBox::setTexture)
+    .describe("Sets the material on the SkyBox. The string must be the path relative to the data-dir, and without a trailing .jpg");
 }
 
@@ -116,5 +103,5 @@
                "skybox_right.jpg", "skybox_front.jpg", "skybox_back.jpg");
 */
-void SkyBox::setTexture(const char* name, const char* extension)
+void SkyBox::setTextureAndType(const char* name, const char* extension)
 {
   char* top    = new char[strlen(name)+strlen(extension)+ 10];
@@ -219,13 +206,13 @@
 
   this->skyModel->setMaterial(material[0]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 2,1,3, 3,2,3, 5,3,3, 4,0,3); // top
+  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 2,0,3, 3,1,3, 5,2,3, 4,3,3); // top
   this->skyModel->setMaterial(material[1]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,3,1, 7,0,1, 1,1,1, 0,2,1); // bottom
+  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,1, 7,1,1, 1,2,1, 0,3,1); // bottom
   this->skyModel->setMaterial(material[2]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 0,0,2, 1,1,2, 3,2,2, 2,3,2); // left
+  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 4,2,2, 5,3,2, 7,0,2, 6,1,2); // left
   this->skyModel->setMaterial(material[3]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 4,2,0, 5,3,0, 7,0,0, 6,1,0); // right
+  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 0,0,0, 1,1,0, 3,2,0, 2,3,0); // right
   this->skyModel->setMaterial(material[4]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 1,0,5, 7,1,5, 5,2,5, 3,3,6); // front
+  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 1,0,5, 7,1,5, 5,2,5, 3,3,5); // front
   this->skyModel->setMaterial(material[5]);
   this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,4, 0,1,4, 2,2,4, 4,3,4); // back
Index: orxonox/branches/physics/src/world_entities/skybox.h
===================================================================
--- orxonox/branches/physics/src/world_entities/skybox.h	(revision 4274)
+++ orxonox/branches/physics/src/world_entities/skybox.h	(revision 4283)
@@ -21,8 +21,10 @@
 {
  public:
-  SkyBox(char* fileName = NULL);
-  SkyBox(TiXmlElement* root);
+  SkyBox(const char* fileName = NULL);
+  SkyBox(const TiXmlElement* root);
 
   virtual ~SkyBox();
+
+  void loadParams(const TiXmlElement* root);
 
   void preInit(void);
@@ -31,5 +33,7 @@
 
   void setSize(float size);
-  void setTexture(const char* name, const char* extension);
+  /** \brief assumes jpg as input-format */
+  void setTexture(const char* name) { setTextureAndType (name, "jpg");};
+  void setTextureAndType(const char* name, const char* extension);
   void setTextures(const char* top, const char* bottom, const char* left, const char* right, const char* front, const char* back);
 
Index: orxonox/branches/physics/src/world_entities/test_entity.cc
===================================================================
--- orxonox/branches/physics/src/world_entities/test_entity.cc	(revision 4283)
+++ orxonox/branches/physics/src/world_entities/test_entity.cc	(revision 4283)
@@ -0,0 +1,74 @@
+
+
+/* 
+   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: Patrick Boenzli
+   co-programmer: 
+*/
+
+
+#include "test_entity.h"
+#include "stdincl.h"
+#include "model.h"
+#include "md2Model.h"
+
+using namespace std;
+
+
+
+TestEntity::TestEntity () : WorldEntity()
+{  
+  this->md2Model = new MD2Model();
+  this->md2Model->loadModel(ResourceManager::getFullName("models/tris.md2"));
+  //  this->md2Model->loadSkin(ResourceManager::getFullName("models/tris.pcx"));
+  this->md2Model->loadSkin("../data/models/tris.pcx");
+
+
+  this->md2Model->debug();
+}
+
+
+TestEntity::~TestEntity () 
+{}
+
+
+void TestEntity::tick (float time) 
+{
+  this->md2Model->tick(time);
+}
+
+
+void TestEntity::hit (WorldEntity* weapon, Vector* loc) {}
+
+
+void TestEntity::destroy () {}
+
+
+void TestEntity::collide (WorldEntity* other,  Uint32 ownhitflags, Uint32 otherhitflags) {}
+
+
+void TestEntity::draw () 
+{
+  glMatrixMode(GL_MODELVIEW);
+  glPushMatrix();
+  float matrix[4][4];
+  
+  glTranslatef (this->getAbsCoor ().x, this->getAbsCoor ().y, this->getAbsCoor ().z);
+  this->getAbsDir().matrix (matrix);
+  glMultMatrixf((float*)matrix);
+  
+  this->md2Model->draw();
+  
+
+  glPopMatrix();
+}
+
Index: orxonox/branches/physics/src/world_entities/test_entity.h
===================================================================
--- orxonox/branches/physics/src/world_entities/test_entity.h	(revision 4283)
+++ orxonox/branches/physics/src/world_entities/test_entity.h	(revision 4283)
@@ -0,0 +1,35 @@
+#ifndef _TEST_ENTITY_H
+#define _TEST_ENTITY_H
+
+#include "world_entity.h"
+
+class MD2Loader;
+class MD2Model;
+class MD2Model2;
+struct t3DModel;
+class Material;
+
+class TestEntity : public WorldEntity 
+{
+  friend class World;
+
+ public:
+  TestEntity ();
+  virtual ~TestEntity ();
+
+  
+  virtual void tick (float time);
+  virtual void hit (WorldEntity* weapon, Vector* loc);
+  virtual void destroy ();
+  virtual void collide (WorldEntity* other,  Uint32 ownhitflags, Uint32 otherhitflags);
+  virtual void draw ();
+
+ private:
+  /* TESTING TESTING TESTING */
+  t3DModel* model;
+  MD2Model* md2Model;
+  Material* material;
+
+};
+
+#endif /* _TEST_ENTITY_H */
Index: orxonox/branches/physics/src/world_entities/world_entity.cc
===================================================================
--- orxonox/branches/physics/src/world_entities/world_entity.cc	(revision 4274)
+++ orxonox/branches/physics/src/world_entities/world_entity.cc	(revision 4283)
@@ -23,58 +23,29 @@
 #include "vector.h"
 
-//#include "stdincl.h"
-//#include "collision.h"
-
 using namespace std;
 
 /**
-   \brief standard constructor
-*/
-WorldEntity::WorldEntity ()
+   \brief Loads the WordEntity-specific Part of any derived Class
+*/
+WorldEntity::WorldEntity(const TiXmlElement* root)
 {
   this->setClassName ("WorldEntity");
+  this->model = NULL;
+
+  if (root)
+    this->loadParams(root);
+
   this->bDraw = true;
-  this->model = NULL;
-  //  collisioncluster = NULL;
-}
-
-/**
-   \brief Loads the WordEntity-specific Part of any derived Class
-*/
-WorldEntity::WorldEntity(TiXmlElement* root)
-{
-  // Name Setup
-  char* temp;
-  const char* string;
-  string = grabParameter( root, "name");
-  if( string == NULL)
-    {
-      PRINTF(2)("WorldEntity is missing a proper 'name'\n");
-      string = "Unknown";
-      temp = new char[strlen(string + 2)];
-      strcpy( temp, string);
-      this->setName( temp);
-    }
-  else
-    {
-      temp = new char[strlen(string + 2)];
-      strcpy( temp, string);
-      this->setName( temp);
-    }
+}
+
+void WorldEntity::loadParams(const TiXmlElement* root)
+{
+  // name setup
+  LoadParam<WorldEntity>(root, "name", this, &WorldEntity::setName)
+    .describe("the name of the Object at hand");
+
   // Model Loading	
-  this->model = NULL;
-  string = grabParameter( root, "model");
-  if( string != NULL)
-    this->model = (Model*)ResourceManager::getInstance()->load(string, OBJ, RP_CAMPAIGN);
-  else
-    {
-      PRINTF(2)("WorldEntity is missing a proper 'model'\n");
-      this->model = NULL;
-    }
-  if( this->model == NULL)
-    {
-      PRINTF(2)("WorldEntity model '%s' could not be loaded\n", string);
-    }
-  this->bDraw = true;
+  LoadParam<WorldEntity>(root, "model", this, &WorldEntity::loadModel)
+    .describe("the fileName of the model, that should be loaded onto this world-entity. (must be relative to the data-dir)") ;
 }
 
@@ -87,4 +58,15 @@
   if (this->model)
     ResourceManager::getInstance()->unload(this->model);
+}
+
+/**
+   \brief loads a Model onto a WorldEntity
+   \param fileName the name of the model to load
+*/
+void WorldEntity::loadModel(const char* fileName)
+{
+  if (this->model)
+    ResourceManager::getInstance()->unload(this->model, RP_LEVEL);
+  this->model = (Model*)ResourceManager::getInstance()->load(fileName, OBJ, RP_CAMPAIGN);
 }
 
Index: orxonox/branches/physics/src/world_entities/world_entity.h
===================================================================
--- orxonox/branches/physics/src/world_entities/world_entity.h	(revision 4274)
+++ orxonox/branches/physics/src/world_entities/world_entity.h	(revision 4283)
@@ -10,4 +10,6 @@
 #include "comincl.h"
 #include "resource_manager.h"
+#include "factory.h"
+#include "load_param.h"
 
 
@@ -15,6 +17,4 @@
 class CharacterAttributes;
 class Model;
-
-
 //! Basic class from which all interactive stuff in the world is derived from
 class WorldEntity : public PNode
@@ -23,8 +23,9 @@
 
  public:
-  WorldEntity (void);
-  WorldEntity(TiXmlElement* root);
+  WorldEntity(const TiXmlElement* root = NULL);
   virtual ~WorldEntity ();
 
+  void loadParams(const TiXmlElement* root);
+  void loadModel(const char* fileName);
 
   //void setCollision (CollisionCluster* newhull);
