Index: branches/new_class_id/src/Makefile.am
===================================================================
--- branches/new_class_id/src/Makefile.am	(revision 9715)
+++ branches/new_class_id/src/Makefile.am	(revision 9716)
@@ -72,5 +72,5 @@
 		defs/globals.h \
 		defs/compiler.h \
-		defs/class_id.h \
+		defs/class_id_DEPRECATED.h \
 		subprojects/benchmark.h
 
Index: branches/new_class_id/src/defs/class_id.h
===================================================================
--- branches/new_class_id/src/defs/class_id.h	(revision 9715)
+++ 	(revision )
@@ -1,465 +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: Patrick Boenzli
-
-   2005-06-10: (bensch) added new sturcture to support multiple inheritance
-*/
-
-/*!
- * @file class_id.h
- * @brief contains a list of orxonox ClassID's (identities to register classes and their SuperClasses)
- *
- *  this File is used to identify an Object with its Class and also with its sub/super-classes.
- *  this is also used by the ObjectManager/Factory to identify and load important classes
- *
- *  !! important !!
- *  When adding a new CLASS be sure about the following:
- *    1. if it is a (SUB)SUPERCLASS make sure there is still space left (if not think of a new approach)
- *    2. check if the Number you add is not refered twice, and that with (SUB)SUPERCLASSES there are no intersections
- *    3. be sure to add you stuff in the right section, and don't interest yourself for the order of things. :)
- */
-
-#ifndef _CLASS_ID_H
-#define _CLASS_ID_H
-
-//! list of all classes to be loadable in via the ObjectManager
-/**
- *
- * -------------------------------------------------------------------------------------------
- * Consider the Identifiers 0xABCDEFGH
- * The first two: A and B are superclass Identifiers !! THEY ARE ALREADY FULL !!
- *
- * The second three are for sub-superclass-groups inheritance:
- *  C: a Group identifier: can be anything from 1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h
- *  D,E: Member within the Group, to specify further deriavtions within the Group.
- *       These may be anything from 1,2,4,8 (at D and E)
- *  !! consider, that you __may not__ have a derivated class from group a and group b.
- *
- * The last three entries F,G,H are for any leaf classes in existence.
- * they are ordered in the following way:
- *  F: LEAF-GroupSpecifier
- *  G,H: UNIQUE NUMBER eithin F-Group.
- *
- * You only have to extend the Class with your ClassID-tag.
- * If something goes Wrong, you get an Assertion-Warning in BaseObject.
- * !! Abstrace/Non-total-leaf classes do not have a LEAF-part.
- * -------------------------------------------------------------------------------------------
- *
- * COUNT:
- * -> # max SuperClass-count        = 7 (not intersecting)
- *    # max SubSuperClass-count     = 15*7 = 105 (the 7 classes will be able to get derived from each other, but not over the SubSuperClass.)
- *    # max lowerClasses-count      = 3^16 = enough (they are Leaves, and may NOT be derived by any other class.)
- */
-typedef enum ClassID_DEPRICATED
-{
-  // the Nothing CLASS (NULL)
-  CL_NULL                       =    0x00000000,
-
-  /// SUPER-classes
-  CL_MASK_SUPER_CLASS           =    0xff000000,
-  CL_BASE_OBJECT                =    0x00000000,
-
-  CL_PARENT_NODE                =    0x01000000,
-
-  CL_STORY_ENTITY               =    0x02000000,
-
-  CL_PHYSICS_INTERFACE          =    0x04000000,
-
-  CL_EVENT_LISTENER             =    0x08000000,
-
-  CL_ELEMENT_2D                 =    0x10000000,
-
-  CL_SYNCHRONIZEABLE            =    0x20000000,
-
-  CL_WORLD_ENTITY               =    0x40000000,
-
-  /// subsuper-classes
-  // subsuper-classes derivations taken : 1, 2, 5, a, b, c.   << THIS IS A LIST OF ALL THE DCL_MASK_SUBSUPERCLASS_ID's taken
-  CL_MASK_SUBSUPER_CLASS        =    0x00fff000,
-  CL_MASK_SUBSUPER_CLASS_IDA    =    0x00f00000,
-  CL_MASK_SUBSUPER_CLASS_IDB    =    0x000ff000,
-
-  // lowest level classes
-  // These are also referenced to as Leaf-classes
-  CL_MASK_LOWLEVEL_CLASS        =    0x00000fff,
-
-  CL_PREFERENCES                =    0X00000f51,
-
-  /// SINGLETON classes (range from 0x00000000 to 0x000000ff)
-  CL_MASK_SINGLETON             =    0x00000000,
-  CL_ORXONOX                    =    0x00000001,
-  CL_NULL_PARENT                =    0x00000002,
-  CL_PILOT_PARENT               =    0x00000003,
-  CL_OBJECT_MANAGER             =    0x00000004,
-  CL_RESOURCE_MANAGER           =    0x00000005,
-  CL_GARBAGE_COLLECTOR          =    0x00000006,
-  CL_GAME_LOADER                =    0x00000007,
-  CL_GRAPHICS_ENGINE            =    0x00000008,
-  CL_TEXT_ENGINE                =    0x00000009,
-  CL_LIGHT_MANAGER              =    0x0000000a,
-  CL_EVENT_HANDLER              =    0x0000000b,
-  CL_PHYSICS_ENGINE             =    0x0000000c,
-  CL_CD_ENGINE                  =    0x0000000d,
-  CL_PARTICLE_ENGINE            =    0x0000000e,
-  CL_SOUND_ENGINE               =    0x0000000f,
-  CL_ANIMATION_PLAYER           =    0x00000010,
-  CL_TRACK_MANAGER              =    0x00000011,
-  CL_TRACK_NODE                 =    0x00000012,
-  CL_STATE                      =    0x00000013,
-  CL_FRAMEWORK                  =    0x00000014,
-  CL_CR_ENGINE                  =    0x00000015,
-  CL_RENDER_2D                  =    0x00000021,
-  CL_NULL_ELEMENT_2D            =    0x00000022,
-  CL_SHELL_BUFFER               =    0x00000032,
-  CL_GLGUI_HANDLER              =    0x00000040,
-  CL_GLGUI_MAIN_WIDGET          =    0x00000041,
-  CL_NETWORK_MANAGER            =    0x00000050,
-  CL_SHARED_NETWORK_DATA        =    0x00000051,
-  CL_NETWORK_SETTINGS           =    0x00000052,
-  CL_ATMOSPHERIC_ENGINE         =    0x00000061,
-
-  /// StoryEntities (range from 0x00000100 to 0x000001ff)
-  CL_GAME_WORLD                 =    0x00101000,
-  CL_GAME_WORLD_DATA            =    0x00102000,
-  CL_GAME_RULES                 =    0x00104000,
-  CL_NETWORK_GAME_RULES         =    0x00108000,
-  CL_MISSION_GOAL               =    0x00110000,
-
-  CL_CAMPAIGN                   =    0x00000101,
-  CL_CAMPAIGN_DATA              =    0x00000102,
-  CL_SIMPLE_GAME_MENU           =    0x00000103,
-  CL_SIMPLE_GAME_MENU_DATA      =    0x00000104,
-  CL_SINGLE_PLAYER_WORLD        =    0x00000105,
-  CL_SINGLE_PLAYER_WORLD_DATA   =    0x00000106,
-  CL_MULTI_PLAYER_WORLD         =    0x00000107,
-  CL_MULTI_PLAYER_WORLD_DATA    =    0x00000108,
-  CL_MOVIE_LOADER               =    0x00000109,
-
-  CL_GAME_MENU                  =    0x00000110,
-  CL_GAME_MENU_DATA             =    0x00000111,
-
-
-  CL_MULTIPLAYER_TEAM_DEATHMATCH=    0x00000121,
-  CL_SINGLEPLAYER_SHOOTEMUP     =    0x00000122,
-
-  CL_KILL_TARGET                =    0x00105001,
-
-
-  /// SUPER-PNodes
-  CL_FIELD                      =    0x00201000,
-
-  /// PNodes
-  CL_CAMERA                     =    0x00000201,
-  CL_CAMERA_TARGET              =    0x00000202,
-
-
-  /// SUPER-WorldEntities
-  CL_PLAYER                     =    0x00302000,
-
-  CL_PLAYABLE                   =    0x00301000,
-  CL_NPC                        =    0x00304000,
-  CL_PROJECTILE                 =    0x00308000,
-  CL_WEAPON                     =    0x00310000,
-  CL_POWER_UP                   =    0x00320000,
-  CL_EXTENDABLE                 =    0x00340000,
-
-  /// WorldEntities (range from 0x00000300 to 0x000005ff)
-  // Environments
-  CL_ENVIRONMENT                =    0x00000303,
-  CL_SATELLITE                  =    0x00000304,
-  CL_SKYBOX                     =    0x00000305,
-  CL_SKYSPHERE                  =    0x00000306,
-  CL_TERRAIN                    =    0x00000307,
-  CL_WATER                      =    0x00000308,
-  CL_PLANET                     =    0x00000309,
-  CL_BUILDING                   =    0x00000310,
-  CL_MAPPED_WATER               =    0x00000311,
-  CL_BSP_ENTITY                 =    0x00000312,
-  CL_SKYDOME                    =    0x00000313,
-  CL_DOOR                       =    0x00000314,
-  CL_REPAIR_STATION             =    0x00000315,
-  CL_CRANE                      =    0x00000316,
-  CL_BRAKING_WALL               =    0X00000317,
-  CL_AIMING_SYSTEM              =    0x00000318,
-  CL_GATE                       =    0x00000319,
-
-  // Playables
-  CL_SPACE_SHIP                 =    0x0000035a,
-  CL_HELICOPTER                 =    0x0000035b,
-  CL_SPAWNING_POINT             =    0x0000035c,
-  CL_MD2_CREATURE               =    0x0000035d,
-  CL_HOVER                      =    0x0000035e,
-  CL_TURBINE_HOVER              =    0x0000035f,
-  CL_SPACECRAFT_2D              =    0x00000360,
-  CL_CRUIZER                    =    0x00000361,
-  CL_SPECTATOR                  =    0x0000036a,
-  CL_COLLISION_PROBE            =    0x0000036b,
-  CL_FPS_PLAYER                 =    0x0000036c,
-
-  // Powerups
-  CL_TURRET_POWER_UP            =    0x00000381,
-  CL_LASER_POWER_UP             =    0x00000382,
-  CL_WEAPON_POWER_UP            =    0x00000383,
-  CL_PARAM_POWER_UP             =    0x00000384,
-
-  // Weapons
-  CL_TEST_GUN                   =    0x000003a0,
-  CL_LASER_CANNON               =    0x000003a1,
-  CL_TURRET                     =    0x000003a2,
-  CL_AIMING_TURRET              =    0x000003a3,
-  CL_CANNON                     =    0x000003a4,
-  CL_TARGETING_TURRET           =    0x000003a5,
-  CL_HYPERBLASTER               =    0x000003a6,
-  CL_FPS_SNIPER_RIFLE           =    0x000003a7,
-  CL_FPS_LASER_RIFLE            =    0x000003a8,
-  CL_BOOMERANG_GUN              =    0x000003a9,
-
-  // Projectiles
-  CL_TEST_BULLET                =    0x000003e0,
-  CL_ROCKET                     =    0x000003e1,
-  CL_LASER                      =    0x000003e2,
-  CL_RAIL_PROJECTILE            =    0x000003e3,
-  CL_BOMB                       =    0x000003e4,
-  CL_GROUND_TURRET              =    0x000003e5,
-  CL_SPACE_TURRET               =    0x000003e6,
-  CL_NETWORK_TURRET             =    0x000003e7,
-  CL_GUIDED_MISSILE             =    0x000003e8,
-  CL_HYPERBLAST                 =    0x000003e9,
-  CL_BOOMERANG_PROJECTILE       =    0x000003ea,
-
-  // NPC's
-  CL_NPC_TEST1                  =    0x00000401,
-  CL_NPC_TEST2                  =    0x00000402,
-  CL_GENERIC_NPC                =    0x00000403,
-  CL_ATTRACTOR_MINE             =    0x00000404,
-
-  // Testing Entities
-  CL_TEST_ENTITY                =    0x00000409,
-
-  // misc
-  CL_MOVIE_ENTITY               =    0x00000511,
-  CL_RECORDER                   =    0x00000512,
-
-  CL_IMAGE_ENTITY               =    0x00000513,
-  CL_IMAGE_PLANE                =    0x00000518,
-  CL_MODEL_ENTITY               =    0x00000515,
-  CL_TEXT_ELEMENT               =    0x00000516, /// TODO MOVE
-
-
-  /// GamePlay (range from 0x00000600 0x000006ff)
-  CL_EVENT                      =    0x00000601,
-  CL_KEY_MAPPER                 =    0x00000602,
-  CL_CROSSHAIR                  =    0x00000612,
-
-  CL_WEAPON_MANAGER             =    0x00000603,
-  CL_AMMO_CONTAINER             =    0x00000604,
-  CL_HUD                        =    0x00000620,
-
-
-  CL_SCRIPT_MANAGER             =    0x00000650,
-  CL_SCRIPT                     =    0x00000651,
-  CL_SCRIPT_CLASS               =    0x00000652,
-  CL_SCRIPT_TRIGGER             =    0x00000653,
-
-
-  /// Physics stuff (range from 0x00000700 to 0x000008ff)
-  CL_PHYSICS_CONNECTION         =    0x00000701,
-  CL_FIELD_GRAVITY              =    0x00000710,
-  CL_FIELD_POINT_GRAVITY        =    0x00000711,
-  CL_FIELD_TWIRL                =    0x00000712,
-
-
-  /// Collision
-  CL_COLLISION                  =    0x00780000,
-  CL_COLLISION_HANDLE           =    0x00000712,
-  CL_COLLISION_REACTION         =    0X00000713,
-  CL_CR_PHYSICS_MOMENTUM        =    0X00000714,
-  CL_CR_PHYSICS_GROUND_WALK     =    0X00000715,
-  CL_CR_PHYSICS_FULL_WALK       =    0X00000716,
-  CL_CR_OBJECT_DAMAGE           =    0X00000717,
-  CL_CR_OBJECT_PICKUP           =    0X00000718,
-  CL_CR_VERTEX_TRAFO            =    0X00000719,
-  CL_CR_SPECIAL_CALLBACK        =    0X00000720,
-
-
-  CL_BV_TREE                    =    0x00701000,
-  CL_BV_TREE_NODE               =    0x00702000,
-  CL_OBB_TREE                   =    0x00000721,
-  CL_OBB_TREE_NODE              =    0x00000722,
-  CL_BOUNDING_VOLUME            =    0x00710000,
-  CL_OBB                        =    0x00720000,
-  CL_BOUNDING_SPHERE            =    0x00740000,
-  CL_AABB_TREE_NODE             =    0x00000724,                //FIXME: is this correct? AABB_TREE_NODE isA BV_TREE_NODE
-  CL_AABB                       =    0x00780000,                //FIXME: is this correct? AABB isA BOUNDING_VOLUME
-
-
-
-  /// Graphical stuff (range from 0x00000800 to 0x00000aff)
-  /// SUPER-Textures
-  CL_MATERIAL                   =    0x00801000,
-  CL_TEXTURE                    =    0x00802000,
-  CL_TEXTURE_SEQUENCE           =    0x00804000,
-  CL_TEXT                       =    0x00808000,
-  CL_MULTI_LINE_TEXT            =    0x00000840,
-  CL_LIMITED_WIDTH_TEXT         =    0x00000841,
-
-  // Texutres.
-  CL_FONT                       =    0x00000802,
-  CL_MOVIE_PLAYER               =    0x00000805,
-  CL_MEDIA_CONTAINER            =    0x00000806,
-
-  /// Super-Models
-  CL_MODEL                      =    0x00901000,
-  CL_STATIC_MODEL               =    0x00902000,
-  CL_VERTEX_ARRAY_MODEL         =    0x00904000,
-  CL_INTERACTIVE_MODEL          =    0x00908000,        ///FIXME: is this ok bensch?
-
-  // Models
-  CL_OBJ_MODEL                  =    0x00000907,
-
-  CL_PRIMITIVE_MODEL            =    0x00000908,
-  CL_MD2_MODEL                  =    0x00000909,
-  CL_HEIGHT_MAP                 =    0x0000090a,
-  CL_GRID                       =    0x0000090b,
-  CL_BSP_MODEL                  =    0x0000090c, //!FIXME
-
-  CL_SHADER                     =    0x00000811,
-  CL_LIGHT                      =    0x00000821,
-
-  CL_BILLBOARD                  =    0x00000a01,
-
-  CL_GRAPHICS_EFFECT            =    0x00a01000,
-  CL_WEATHER_EFFECT             =    0x00a10000,
-  CL_FOG_EFFECT                 =    0x00000a10,
-  CL_VOLFOG_EFFECT              =    0x00000a11,
-  CL_LENSE_FLARE                =    0x00000a12,
-  CL_RAIN_EFFECT                =    0x00000a13,
-  CL_SNOW_EFFECT                =    0x00000a14,
-  CL_CLOUD_EFFECT               =    0x00000a15,
-  CL_LIGHTNING_EFFECT          =    0x00000a16,
-  CL_EXPLOSION                  =    0x00000a20,
-  CL_LIGHTNING_BOLT             =    0x00000a21,
-
-
-
-  // Particles
-  CL_PARTICLE_SYSTEM            =    0x00a02000,
-  CL_DOT_PARTICLES              =    0x00000aa1,
-  CL_SPARK_PARTICLES            =    0x00000aa2,
-  CL_SPRITE_PARTICLES           =    0x00000aa3,
-  CL_MODEL_PARTICLES            =    0x00000aa4,
-  //  CL_PNODE_PARTICLES            =    0x00a20000,
-
-  CL_PARTICLE_EMITTER           =    0x00a04000,
-  CL_DOT_EMITTER                =    0x00000ab1,
-  CL_PLANE_EMITTER              =    0x00000ab2,
-  CL_BOX_EMITTER                =    0x00000ab3,
-  CL_SPHERE_EMITTER             =    0x00000ab4,
-  //  CL_MODEL_EMITTER              =    0x00000a25,
-
-  // Element2D's  (range from 0x00000b00 to 0x00000bff)
-  /// GL-GUI
-  CL_GLGUI_WIDGET               =    0x00b01000,
-  CL_GLGUI_BUTTON               =    0x00b02000,
-  CL_GLGUI_PUSHBUTTON           =    0x00000b03,
-  CL_GLGUI_CHECKBUTTON          =    0x00000b04,
-  CL_GLGUI_RADIOBUTTON          =    0x00000b05,
-  CL_GLGUI_SLIDER               =    0x00000b06,
-  CL_GLGUI_PROGRESSBAR          =    0x00000b07,
-  CL_GLGUI_CONTAINER            =    0x00b04000,
-  CL_GLGUI_BOX                  =    0x00000b17,
-  CL_GLGUI_FRAME                =    0x00000b18,
-  CL_GLGUI_WINDOW               =    0x00000b19,
-  CL_GLMENU_IMAGE_SCREEN        =    0x00000b20,
-  CL_GLGUI_BAR                  =    0x00000b30,
-  CL_GLGUI_CURSOR               =    0x00000b50,
-  CL_GLGUI_TEXT                 =    0x00000b51,
-  CL_GLGUI_INPUTLINE            =    0x00000b60,
-  CL_GLGUI_TEXTFIELD            =    0x00000b61,
-  CL_GLGUI_IMAGE                =    0x00000b70,
-  CL_GLGUI_TABLE                =    0x00000b71,
-
-  CL_GLGUI_NOTIFIER             =    0x00000b80,
-
-  // QT_GUI
-  CL_GUI_SAVEABLE               =    0x00b10000,
-  CL_QTGUI_BUTTON               =    0x00000ba0,
-  CL_QTGUI_PUSHBUTTON           =    0x00000ba3,
-  CL_QTGUI_CHECKBUTTON          =    0x00000ba4,
-  CL_QTGUI_RADIOBUTTON          =    0x00000ba5,
-  CL_QTGUI_CONTAINER            =    0x00b200a0,
-  CL_QTGUI_BOX                  =    0x00000ba7,
-  CL_QTGUI_FRAME                =    0x00000ba8,
-  CL_QTGUI_WINDOW               =    0x00000ba9,
-  CL_QTMENU_IMAGE_SCREEN        =    0x00000ba0,
-  CL_QTGUI_BAR                  =    0x00000ba0,
-
-  /// AUDIO stuff (range from 0x00000c00 to 0x00000cff)
-  CL_SOUND_BUFFER               =    0x00000c01,
-  CL_SOUND_SOURCE               =    0x00000c02,
-  CL_SOUND_OGG_PLAYER           =    0x00000c11,
-
-
-  /// NETWORK stuff (range from 0x00000d00 to 0x00000dff)
-  CL_DATA_STREAM                =    0x00d01000,
-  CL_NETWORK_STREAM             =    0x00000d01,
-  CL_NETWORK_PROTOCOL           =    0x00000d02,
-  CL_NETWORK_SOCKET             =    0x00000d03,
-  CL_SERVER_SOCKET              =    0X00000d04,
-  CL_CONNECTION_MONITOR         =    0x00000d05,
-  CL_HANDSHAKE                  =    0x00000d06,
-  CL_NETWORK_GAME_MANAGER       =    0x00000d07,
-  CL_MESSAGE_MANAGER            =    0x00000d08,
-  CL_PLAYER_STATS               =    0x00000d09,
-  CL_SIMPLE_SYNC                =    0x00000d0a,
-  CL_NETWORK_MONITOR            =    0x00000d0b,
-  CL_PROXY_CONTROL              =    0x00000d0c,
-
-
-
-  /// MISCELANEOUS: (range from 0x00000e00 to 0x00000fff)
-  CL_ANIMATION                  =    0x00000e01,
-  //  CL_ANIMATION3D                =    0x00000b02,
-  CL_QUICK_ANIMATION            =    0x00000e02,
-
-  CL_FACTORY                    =    0x00e01000,
-  CL_FAST_FACTORY               =    0x00000ea2,
-  CL_LOAD_PARAM                 =    0x00000ea3,
-  CL_DYNAMIC_LOADER             =    0x00000ea8,
-
-  CL_INI_PARSER                 =    0x00000e04,
-
-  CL_SHELL                      =    0x00000e10,
-  CL_SHELL_COMMAND              =    0x00000e11,
-  CL_SHELL_COMMAND_CLASS        =    0x00000e12,
-  CL_SHELL_INPUT                =    0x00000e13,
-  CL_SHELL_COMPLETION           =    0x00000e14,
-  CL_SHELL_COMMAND_ALIAS        =    0x00000e15,
-
-  CL_TRACK_ELEMENT              =    0x00000e2b,
-  CL_LIST                       =    0x00000e25,
-  CL_SUBSTRING                  =    0x00000e26,
-  CL_CURVE                      =    0x00000e28,
-  CL_CHARACTER_ATTRIBUTES       =    0x00000e2a,
-  CL_NUMBER                     =    0x00000e2c,
-  CL_EXECUTOR                   =    0x00000e2d,
-
-  // Spatial Data Separation
-  CL_SPATIAL_SEPARATION         =    0x00000e0d,
-  CL_QUADTREE                   =    0x00000e0e,
-  CL_QUADTREE_NODE              =    0x00000e0f,
-};
-
-
-#endif /* _CLASS_ID_H */
Index: branches/new_class_id/src/defs/class_id_DEPRECATED.h
===================================================================
--- branches/new_class_id/src/defs/class_id_DEPRECATED.h	(revision 9716)
+++ branches/new_class_id/src/defs/class_id_DEPRECATED.h	(revision 9716)
@@ -0,0 +1,465 @@
+
+/*
+   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: Patrick Boenzli
+
+   2005-06-10: (bensch) added new sturcture to support multiple inheritance
+*/
+
+/*!
+ * @file class_id_DEPRECATED.h
+ * @brief contains a list of orxonox ClassID's (identities to register classes and their SuperClasses)
+ *
+ *  this File is used to identify an Object with its Class and also with its sub/super-classes.
+ *  this is also used by the ObjectManager/Factory to identify and load important classes
+ *
+ *  !! important !!
+ *  When adding a new CLASS be sure about the following:
+ *    1. if it is a (SUB)SUPERCLASS make sure there is still space left (if not think of a new approach)
+ *    2. check if the Number you add is not refered twice, and that with (SUB)SUPERCLASSES there are no intersections
+ *    3. be sure to add you stuff in the right section, and don't interest yourself for the order of things. :)
+ */
+
+#ifndef _CLASS_ID___DEPRECATED___H
+#define _CLASS_ID___DEPRECATED___H
+
+//! list of all classes to be loadable in via the ObjectManager
+/**
+ *
+ * -------------------------------------------------------------------------------------------
+ * Consider the Identifiers 0xABCDEFGH
+ * The first two: A and B are superclass Identifiers !! THEY ARE ALREADY FULL !!
+ *
+ * The second three are for sub-superclass-groups inheritance:
+ *  C: a Group identifier: can be anything from 1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h
+ *  D,E: Member within the Group, to specify further deriavtions within the Group.
+ *       These may be anything from 1,2,4,8 (at D and E)
+ *  !! consider, that you __may not__ have a derivated class from group a and group b.
+ *
+ * The last three entries F,G,H are for any leaf classes in existence.
+ * they are ordered in the following way:
+ *  F: LEAF-GroupSpecifier
+ *  G,H: UNIQUE NUMBER eithin F-Group.
+ *
+ * You only have to extend the Class with your ClassID-tag.
+ * If something goes Wrong, you get an Assertion-Warning in BaseObject.
+ * !! Abstrace/Non-total-leaf classes do not have a LEAF-part.
+ * -------------------------------------------------------------------------------------------
+ *
+ * COUNT:
+ * -> # max SuperClass-count        = 7 (not intersecting)
+ *    # max SubSuperClass-count     = 15*7 = 105 (the 7 classes will be able to get derived from each other, but not over the SubSuperClass.)
+ *    # max lowerClasses-count      = 3^16 = enough (they are Leaves, and may NOT be derived by any other class.)
+ */
+typedef enum ClassID_DEPRICATED
+{
+  // the Nothing CLASS (NULL)
+  CL_NULL                       =    0x00000000,
+
+  /// SUPER-classes
+  CL_MASK_SUPER_CLASS           =    0xff000000,
+  CL_BASE_OBJECT                =    0x00000000,
+
+  CL_PARENT_NODE                =    0x01000000,
+
+  CL_STORY_ENTITY               =    0x02000000,
+
+  CL_PHYSICS_INTERFACE          =    0x04000000,
+
+  CL_EVENT_LISTENER             =    0x08000000,
+
+  CL_ELEMENT_2D                 =    0x10000000,
+
+  CL_SYNCHRONIZEABLE            =    0x20000000,
+
+  CL_WORLD_ENTITY               =    0x40000000,
+
+  /// subsuper-classes
+  // subsuper-classes derivations taken : 1, 2, 5, a, b, c.   << THIS IS A LIST OF ALL THE DCL_MASK_SUBSUPERCLASS_ID's taken
+  CL_MASK_SUBSUPER_CLASS        =    0x00fff000,
+  CL_MASK_SUBSUPER_CLASS_IDA    =    0x00f00000,
+  CL_MASK_SUBSUPER_CLASS_IDB    =    0x000ff000,
+
+  // lowest level classes
+  // These are also referenced to as Leaf-classes
+  CL_MASK_LOWLEVEL_CLASS        =    0x00000fff,
+
+  CL_PREFERENCES                =    0X00000f51,
+
+  /// SINGLETON classes (range from 0x00000000 to 0x000000ff)
+  CL_MASK_SINGLETON             =    0x00000000,
+  CL_ORXONOX                    =    0x00000001,
+  CL_NULL_PARENT                =    0x00000002,
+  CL_PILOT_PARENT               =    0x00000003,
+  CL_OBJECT_MANAGER             =    0x00000004,
+  CL_RESOURCE_MANAGER           =    0x00000005,
+  CL_GARBAGE_COLLECTOR          =    0x00000006,
+  CL_GAME_LOADER                =    0x00000007,
+  CL_GRAPHICS_ENGINE            =    0x00000008,
+  CL_TEXT_ENGINE                =    0x00000009,
+  CL_LIGHT_MANAGER              =    0x0000000a,
+  CL_EVENT_HANDLER              =    0x0000000b,
+  CL_PHYSICS_ENGINE             =    0x0000000c,
+  CL_CD_ENGINE                  =    0x0000000d,
+  CL_PARTICLE_ENGINE            =    0x0000000e,
+  CL_SOUND_ENGINE               =    0x0000000f,
+  CL_ANIMATION_PLAYER           =    0x00000010,
+  CL_TRACK_MANAGER              =    0x00000011,
+  CL_TRACK_NODE                 =    0x00000012,
+  CL_STATE                      =    0x00000013,
+  CL_FRAMEWORK                  =    0x00000014,
+  CL_CR_ENGINE                  =    0x00000015,
+  CL_RENDER_2D                  =    0x00000021,
+  CL_NULL_ELEMENT_2D            =    0x00000022,
+  CL_SHELL_BUFFER               =    0x00000032,
+  CL_GLGUI_HANDLER              =    0x00000040,
+  CL_GLGUI_MAIN_WIDGET          =    0x00000041,
+  CL_NETWORK_MANAGER            =    0x00000050,
+  CL_SHARED_NETWORK_DATA        =    0x00000051,
+  CL_NETWORK_SETTINGS           =    0x00000052,
+  CL_ATMOSPHERIC_ENGINE         =    0x00000061,
+
+  /// StoryEntities (range from 0x00000100 to 0x000001ff)
+  CL_GAME_WORLD                 =    0x00101000,
+  CL_GAME_WORLD_DATA            =    0x00102000,
+  CL_GAME_RULES                 =    0x00104000,
+  CL_NETWORK_GAME_RULES         =    0x00108000,
+  CL_MISSION_GOAL               =    0x00110000,
+
+  CL_CAMPAIGN                   =    0x00000101,
+  CL_CAMPAIGN_DATA              =    0x00000102,
+  CL_SIMPLE_GAME_MENU           =    0x00000103,
+  CL_SIMPLE_GAME_MENU_DATA      =    0x00000104,
+  CL_SINGLE_PLAYER_WORLD        =    0x00000105,
+  CL_SINGLE_PLAYER_WORLD_DATA   =    0x00000106,
+  CL_MULTI_PLAYER_WORLD         =    0x00000107,
+  CL_MULTI_PLAYER_WORLD_DATA    =    0x00000108,
+  CL_MOVIE_LOADER               =    0x00000109,
+
+  CL_GAME_MENU                  =    0x00000110,
+  CL_GAME_MENU_DATA             =    0x00000111,
+
+
+  CL_MULTIPLAYER_TEAM_DEATHMATCH=    0x00000121,
+  CL_SINGLEPLAYER_SHOOTEMUP     =    0x00000122,
+
+  CL_KILL_TARGET                =    0x00105001,
+
+
+  /// SUPER-PNodes
+  CL_FIELD                      =    0x00201000,
+
+  /// PNodes
+  CL_CAMERA                     =    0x00000201,
+  CL_CAMERA_TARGET              =    0x00000202,
+
+
+  /// SUPER-WorldEntities
+  CL_PLAYER                     =    0x00302000,
+
+  CL_PLAYABLE                   =    0x00301000,
+  CL_NPC                        =    0x00304000,
+  CL_PROJECTILE                 =    0x00308000,
+  CL_WEAPON                     =    0x00310000,
+  CL_POWER_UP                   =    0x00320000,
+  CL_EXTENDABLE                 =    0x00340000,
+
+  /// WorldEntities (range from 0x00000300 to 0x000005ff)
+  // Environments
+  CL_ENVIRONMENT                =    0x00000303,
+  CL_SATELLITE                  =    0x00000304,
+  CL_SKYBOX                     =    0x00000305,
+  CL_SKYSPHERE                  =    0x00000306,
+  CL_TERRAIN                    =    0x00000307,
+  CL_WATER                      =    0x00000308,
+  CL_PLANET                     =    0x00000309,
+  CL_BUILDING                   =    0x00000310,
+  CL_MAPPED_WATER               =    0x00000311,
+  CL_BSP_ENTITY                 =    0x00000312,
+  CL_SKYDOME                    =    0x00000313,
+  CL_DOOR                       =    0x00000314,
+  CL_REPAIR_STATION             =    0x00000315,
+  CL_CRANE                      =    0x00000316,
+  CL_BRAKING_WALL               =    0X00000317,
+  CL_AIMING_SYSTEM              =    0x00000318,
+  CL_GATE                       =    0x00000319,
+
+  // Playables
+  CL_SPACE_SHIP                 =    0x0000035a,
+  CL_HELICOPTER                 =    0x0000035b,
+  CL_SPAWNING_POINT             =    0x0000035c,
+  CL_MD2_CREATURE               =    0x0000035d,
+  CL_HOVER                      =    0x0000035e,
+  CL_TURBINE_HOVER              =    0x0000035f,
+  CL_SPACECRAFT_2D              =    0x00000360,
+  CL_CRUIZER                    =    0x00000361,
+  CL_SPECTATOR                  =    0x0000036a,
+  CL_COLLISION_PROBE            =    0x0000036b,
+  CL_FPS_PLAYER                 =    0x0000036c,
+
+  // Powerups
+  CL_TURRET_POWER_UP            =    0x00000381,
+  CL_LASER_POWER_UP             =    0x00000382,
+  CL_WEAPON_POWER_UP            =    0x00000383,
+  CL_PARAM_POWER_UP             =    0x00000384,
+
+  // Weapons
+  CL_TEST_GUN                   =    0x000003a0,
+  CL_LASER_CANNON               =    0x000003a1,
+  CL_TURRET                     =    0x000003a2,
+  CL_AIMING_TURRET              =    0x000003a3,
+  CL_CANNON                     =    0x000003a4,
+  CL_TARGETING_TURRET           =    0x000003a5,
+  CL_HYPERBLASTER               =    0x000003a6,
+  CL_FPS_SNIPER_RIFLE           =    0x000003a7,
+  CL_FPS_LASER_RIFLE            =    0x000003a8,
+  CL_BOOMERANG_GUN              =    0x000003a9,
+
+  // Projectiles
+  CL_TEST_BULLET                =    0x000003e0,
+  CL_ROCKET                     =    0x000003e1,
+  CL_LASER                      =    0x000003e2,
+  CL_RAIL_PROJECTILE            =    0x000003e3,
+  CL_BOMB                       =    0x000003e4,
+  CL_GROUND_TURRET              =    0x000003e5,
+  CL_SPACE_TURRET               =    0x000003e6,
+  CL_NETWORK_TURRET             =    0x000003e7,
+  CL_GUIDED_MISSILE             =    0x000003e8,
+  CL_HYPERBLAST                 =    0x000003e9,
+  CL_BOOMERANG_PROJECTILE       =    0x000003ea,
+
+  // NPC's
+  CL_NPC_TEST1                  =    0x00000401,
+  CL_NPC_TEST2                  =    0x00000402,
+  CL_GENERIC_NPC                =    0x00000403,
+  CL_ATTRACTOR_MINE             =    0x00000404,
+
+  // Testing Entities
+  CL_TEST_ENTITY                =    0x00000409,
+
+  // misc
+  CL_MOVIE_ENTITY               =    0x00000511,
+  CL_RECORDER                   =    0x00000512,
+
+  CL_IMAGE_ENTITY               =    0x00000513,
+  CL_IMAGE_PLANE                =    0x00000518,
+  CL_MODEL_ENTITY               =    0x00000515,
+  CL_TEXT_ELEMENT               =    0x00000516, /// TODO MOVE
+
+
+  /// GamePlay (range from 0x00000600 0x000006ff)
+  CL_EVENT                      =    0x00000601,
+  CL_KEY_MAPPER                 =    0x00000602,
+  CL_CROSSHAIR                  =    0x00000612,
+
+  CL_WEAPON_MANAGER             =    0x00000603,
+  CL_AMMO_CONTAINER             =    0x00000604,
+  CL_HUD                        =    0x00000620,
+
+
+  CL_SCRIPT_MANAGER             =    0x00000650,
+  CL_SCRIPT                     =    0x00000651,
+  CL_SCRIPT_CLASS               =    0x00000652,
+  CL_SCRIPT_TRIGGER             =    0x00000653,
+
+
+  /// Physics stuff (range from 0x00000700 to 0x000008ff)
+  CL_PHYSICS_CONNECTION         =    0x00000701,
+  CL_FIELD_GRAVITY              =    0x00000710,
+  CL_FIELD_POINT_GRAVITY        =    0x00000711,
+  CL_FIELD_TWIRL                =    0x00000712,
+
+
+  /// Collision
+  CL_COLLISION                  =    0x00780000,
+  CL_COLLISION_HANDLE           =    0x00000712,
+  CL_COLLISION_REACTION         =    0X00000713,
+  CL_CR_PHYSICS_MOMENTUM        =    0X00000714,
+  CL_CR_PHYSICS_GROUND_WALK     =    0X00000715,
+  CL_CR_PHYSICS_FULL_WALK       =    0X00000716,
+  CL_CR_OBJECT_DAMAGE           =    0X00000717,
+  CL_CR_OBJECT_PICKUP           =    0X00000718,
+  CL_CR_VERTEX_TRAFO            =    0X00000719,
+  CL_CR_SPECIAL_CALLBACK        =    0X00000720,
+
+
+  CL_BV_TREE                    =    0x00701000,
+  CL_BV_TREE_NODE               =    0x00702000,
+  CL_OBB_TREE                   =    0x00000721,
+  CL_OBB_TREE_NODE              =    0x00000722,
+  CL_BOUNDING_VOLUME            =    0x00710000,
+  CL_OBB                        =    0x00720000,
+  CL_BOUNDING_SPHERE            =    0x00740000,
+  CL_AABB_TREE_NODE             =    0x00000724,                //FIXME: is this correct? AABB_TREE_NODE isA BV_TREE_NODE
+  CL_AABB                       =    0x00780000,                //FIXME: is this correct? AABB isA BOUNDING_VOLUME
+
+
+
+  /// Graphical stuff (range from 0x00000800 to 0x00000aff)
+  /// SUPER-Textures
+  CL_MATERIAL                   =    0x00801000,
+  CL_TEXTURE                    =    0x00802000,
+  CL_TEXTURE_SEQUENCE           =    0x00804000,
+  CL_TEXT                       =    0x00808000,
+  CL_MULTI_LINE_TEXT            =    0x00000840,
+  CL_LIMITED_WIDTH_TEXT         =    0x00000841,
+
+  // Texutres.
+  CL_FONT                       =    0x00000802,
+  CL_MOVIE_PLAYER               =    0x00000805,
+  CL_MEDIA_CONTAINER            =    0x00000806,
+
+  /// Super-Models
+  CL_MODEL                      =    0x00901000,
+  CL_STATIC_MODEL               =    0x00902000,
+  CL_VERTEX_ARRAY_MODEL         =    0x00904000,
+  CL_INTERACTIVE_MODEL          =    0x00908000,        ///FIXME: is this ok bensch?
+
+  // Models
+  CL_OBJ_MODEL                  =    0x00000907,
+
+  CL_PRIMITIVE_MODEL            =    0x00000908,
+  CL_MD2_MODEL                  =    0x00000909,
+  CL_HEIGHT_MAP                 =    0x0000090a,
+  CL_GRID                       =    0x0000090b,
+  CL_BSP_MODEL                  =    0x0000090c, //!FIXME
+
+  CL_SHADER                     =    0x00000811,
+  CL_LIGHT                      =    0x00000821,
+
+  CL_BILLBOARD                  =    0x00000a01,
+
+  CL_GRAPHICS_EFFECT            =    0x00a01000,
+  CL_WEATHER_EFFECT             =    0x00a10000,
+  CL_FOG_EFFECT                 =    0x00000a10,
+  CL_VOLFOG_EFFECT              =    0x00000a11,
+  CL_LENSE_FLARE                =    0x00000a12,
+  CL_RAIN_EFFECT                =    0x00000a13,
+  CL_SNOW_EFFECT                =    0x00000a14,
+  CL_CLOUD_EFFECT               =    0x00000a15,
+  CL_LIGHTNING_EFFECT          =    0x00000a16,
+  CL_EXPLOSION                  =    0x00000a20,
+  CL_LIGHTNING_BOLT             =    0x00000a21,
+
+
+
+  // Particles
+  CL_PARTICLE_SYSTEM            =    0x00a02000,
+  CL_DOT_PARTICLES              =    0x00000aa1,
+  CL_SPARK_PARTICLES            =    0x00000aa2,
+  CL_SPRITE_PARTICLES           =    0x00000aa3,
+  CL_MODEL_PARTICLES            =    0x00000aa4,
+  //  CL_PNODE_PARTICLES            =    0x00a20000,
+
+  CL_PARTICLE_EMITTER           =    0x00a04000,
+  CL_DOT_EMITTER                =    0x00000ab1,
+  CL_PLANE_EMITTER              =    0x00000ab2,
+  CL_BOX_EMITTER                =    0x00000ab3,
+  CL_SPHERE_EMITTER             =    0x00000ab4,
+  //  CL_MODEL_EMITTER              =    0x00000a25,
+
+  // Element2D's  (range from 0x00000b00 to 0x00000bff)
+  /// GL-GUI
+  CL_GLGUI_WIDGET               =    0x00b01000,
+  CL_GLGUI_BUTTON               =    0x00b02000,
+  CL_GLGUI_PUSHBUTTON           =    0x00000b03,
+  CL_GLGUI_CHECKBUTTON          =    0x00000b04,
+  CL_GLGUI_RADIOBUTTON          =    0x00000b05,
+  CL_GLGUI_SLIDER               =    0x00000b06,
+  CL_GLGUI_PROGRESSBAR          =    0x00000b07,
+  CL_GLGUI_CONTAINER            =    0x00b04000,
+  CL_GLGUI_BOX                  =    0x00000b17,
+  CL_GLGUI_FRAME                =    0x00000b18,
+  CL_GLGUI_WINDOW               =    0x00000b19,
+  CL_GLMENU_IMAGE_SCREEN        =    0x00000b20,
+  CL_GLGUI_BAR                  =    0x00000b30,
+  CL_GLGUI_CURSOR               =    0x00000b50,
+  CL_GLGUI_TEXT                 =    0x00000b51,
+  CL_GLGUI_INPUTLINE            =    0x00000b60,
+  CL_GLGUI_TEXTFIELD            =    0x00000b61,
+  CL_GLGUI_IMAGE                =    0x00000b70,
+  CL_GLGUI_TABLE                =    0x00000b71,
+
+  CL_GLGUI_NOTIFIER             =    0x00000b80,
+
+  // QT_GUI
+  CL_GUI_SAVEABLE               =    0x00b10000,
+  CL_QTGUI_BUTTON               =    0x00000ba0,
+  CL_QTGUI_PUSHBUTTON           =    0x00000ba3,
+  CL_QTGUI_CHECKBUTTON          =    0x00000ba4,
+  CL_QTGUI_RADIOBUTTON          =    0x00000ba5,
+  CL_QTGUI_CONTAINER            =    0x00b200a0,
+  CL_QTGUI_BOX                  =    0x00000ba7,
+  CL_QTGUI_FRAME                =    0x00000ba8,
+  CL_QTGUI_WINDOW               =    0x00000ba9,
+  CL_QTMENU_IMAGE_SCREEN        =    0x00000ba0,
+  CL_QTGUI_BAR                  =    0x00000ba0,
+
+  /// AUDIO stuff (range from 0x00000c00 to 0x00000cff)
+  CL_SOUND_BUFFER               =    0x00000c01,
+  CL_SOUND_SOURCE               =    0x00000c02,
+  CL_SOUND_OGG_PLAYER           =    0x00000c11,
+
+
+  /// NETWORK stuff (range from 0x00000d00 to 0x00000dff)
+  CL_DATA_STREAM                =    0x00d01000,
+  CL_NETWORK_STREAM             =    0x00000d01,
+  CL_NETWORK_PROTOCOL           =    0x00000d02,
+  CL_NETWORK_SOCKET             =    0x00000d03,
+  CL_SERVER_SOCKET              =    0X00000d04,
+  CL_CONNECTION_MONITOR         =    0x00000d05,
+  CL_HANDSHAKE                  =    0x00000d06,
+  CL_NETWORK_GAME_MANAGER       =    0x00000d07,
+  CL_MESSAGE_MANAGER            =    0x00000d08,
+  CL_PLAYER_STATS               =    0x00000d09,
+  CL_SIMPLE_SYNC                =    0x00000d0a,
+  CL_NETWORK_MONITOR            =    0x00000d0b,
+  CL_PROXY_CONTROL              =    0x00000d0c,
+
+
+
+  /// MISCELANEOUS: (range from 0x00000e00 to 0x00000fff)
+  CL_ANIMATION                  =    0x00000e01,
+  //  CL_ANIMATION3D                =    0x00000b02,
+  CL_QUICK_ANIMATION            =    0x00000e02,
+
+  CL_FACTORY                    =    0x00e01000,
+  CL_FAST_FACTORY               =    0x00000ea2,
+  CL_LOAD_PARAM                 =    0x00000ea3,
+  CL_DYNAMIC_LOADER             =    0x00000ea8,
+
+  CL_INI_PARSER                 =    0x00000e04,
+
+  CL_SHELL                      =    0x00000e10,
+  CL_SHELL_COMMAND              =    0x00000e11,
+  CL_SHELL_COMMAND_CLASS        =    0x00000e12,
+  CL_SHELL_INPUT                =    0x00000e13,
+  CL_SHELL_COMPLETION           =    0x00000e14,
+  CL_SHELL_COMMAND_ALIAS        =    0x00000e15,
+
+  CL_TRACK_ELEMENT              =    0x00000e2b,
+  CL_LIST                       =    0x00000e25,
+  CL_SUBSTRING                  =    0x00000e26,
+  CL_CURVE                      =    0x00000e28,
+  CL_CHARACTER_ATTRIBUTES       =    0x00000e2a,
+  CL_NUMBER                     =    0x00000e2c,
+  CL_EXECUTOR                   =    0x00000e2d,
+
+  // Spatial Data Separation
+  CL_SPATIAL_SEPARATION         =    0x00000e0d,
+  CL_QUADTREE                   =    0x00000e0e,
+  CL_QUADTREE_NODE              =    0x00000e0f,
+};
+
+
+#endif /* _CLASS_ID___DEPRECATED___H */
Index: branches/new_class_id/src/lib/graphics/effects/cloud_effect.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/effects/cloud_effect.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/effects/cloud_effect.cc	(revision 9716)
@@ -29,5 +29,5 @@
 #include "script_class.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 Vector    CloudEffect::cloudColor;
Index: branches/new_class_id/src/lib/graphics/effects/fog_effect.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/effects/fog_effect.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/effects/fog_effect.cc	(revision 9716)
@@ -29,5 +29,5 @@
 SHELL_COMMAND(fadeout, FogEffect, fadeOutFog);
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 CREATE_SCRIPTABLE_CLASS(FogEffect, FogEffect::classID(),
Index: branches/new_class_id/src/lib/graphics/effects/lense_flare.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/effects/lense_flare.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/effects/lense_flare.cc	(revision 9716)
@@ -33,5 +33,5 @@
 #include "camera.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(LenseFlare, CL_LENSE_FLARE);
Index: branches/new_class_id/src/lib/graphics/effects/lightning_effect.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/effects/lightning_effect.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/effects/lightning_effect.cc	(revision 9716)
@@ -27,5 +27,5 @@
 #include "cloud_effect.h"
 #include "script_class.h"
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(LightningEffect, CL_LIGHTNING_EFFECT);
Index: branches/new_class_id/src/lib/graphics/effects/rain_effect.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/effects/rain_effect.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/effects/rain_effect.cc	(revision 9716)
@@ -31,5 +31,5 @@
 #include "script_class.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(RainEffect, CL_RAIN_EFFECT);
Index: branches/new_class_id/src/lib/graphics/effects/snow_effect.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/effects/snow_effect.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/effects/snow_effect.cc	(revision 9716)
@@ -30,5 +30,5 @@
 #include "cloud_effect.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(SnowEffect, CL_SNOW_EFFECT);
Index: branches/new_class_id/src/lib/graphics/effects/volfog_effect.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/effects/volfog_effect.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/effects/volfog_effect.cc	(revision 9716)
@@ -47,5 +47,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(VolFogEffect, CL_VOLFOG_EFFECT);
 CREATE_FACTORY(VolFogEffect);
Index: branches/new_class_id/src/lib/graphics/light.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/light.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/light.cc	(revision 9716)
@@ -27,5 +27,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(Light, CL_LIGHT);
Index: branches/new_class_id/src/lib/graphics/render2D/image_plane.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/render2D/image_plane.cc	(revision 9715)
+++ branches/new_class_id/src/lib/graphics/render2D/image_plane.cc	(revision 9716)
@@ -24,5 +24,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(ImagePlane, CL_IMAGE_PLANE);
Index: branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.cc	(revision 9715)
+++ branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.cc	(revision 9716)
@@ -25,5 +25,5 @@
 #include "util/loading/load_param.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(GLMenuImageScreen, CL_GLMENU_IMAGE_SCREEN);
 CREATE_FACTORY(GLMenuImageScreen);
Index: branches/new_class_id/src/lib/lang/Makefile.am
===================================================================
--- branches/new_class_id/src/lib/lang/Makefile.am	(revision 9715)
+++ branches/new_class_id/src/lib/lang/Makefile.am	(revision 9716)
@@ -9,11 +9,11 @@
 libORXlang_a_SOURCES = \
 		base_object.cc \
-		new_class_id.cc \
-		new_object_list.cc
+		class_id.cc \
+		object_list.cc
 
 noinst_HEADERS = \
 		base_object.h \
-		new_class_id.h \
-		new_object_list.h
+		class_id.h \
+		object_list.h
 
 
Index: branches/new_class_id/src/lib/lang/base_object.h
===================================================================
--- branches/new_class_id/src/lib/lang/base_object.h	(revision 9715)
+++ branches/new_class_id/src/lib/lang/base_object.h	(revision 9716)
@@ -14,5 +14,5 @@
 #define __BASE_OBJECT_H_
 
-#include "new_object_list.h"
+#include "object_list.h"
 #include "sigslot/slot.h"
 
Index: branches/new_class_id/src/lib/lang/class_id.cc
===================================================================
--- branches/new_class_id/src/lib/lang/class_id.cc	(revision 9716)
+++ branches/new_class_id/src/lib/lang/class_id.cc	(revision 9716)
@@ -0,0 +1,43 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2006 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_
+
+#include "class_id.h"
+#include "object_list.h"
+
+/**
+ * @brief a Default Constructor.
+ * this Always points to the ID of the NullClass.
+ */
+ClassID::ClassID()
+{
+  NullClass::acquireID(this->_id, this->_name);
+};
+
+/**
+ * @brief Acquiring the ID of a objectList.
+ * @param objList The ObjectList to acquire the ID from.
+ */
+ClassID::ClassID(const ObjectListBase* const objList)
+{
+  objList->acquireID(this->_id, this->_name);
+}
+
+
+ClassID NullClass::_classID;
+
+int NullClass::_nullID;
+const std::string NullClass::_nullName = std::string("NullClass");
Index: branches/new_class_id/src/lib/lang/class_id.h
===================================================================
--- branches/new_class_id/src/lib/lang/class_id.h	(revision 9716)
+++ branches/new_class_id/src/lib/lang/class_id.h	(revision 9716)
@@ -0,0 +1,76 @@
+/*!
+ * @file class_id.h
+ * @brief Definition of a dynamically allocating ClassID
+ *
+ */
+
+#ifndef _CLASS_ID_H
+#define _CLASS_ID_H
+
+#include <string>
+
+class ObjectListBase;
+
+//! A class to dynamically allocate ClassID's and to support a isA operator
+/**
+ * A ClassID can only be aquired over a ObjectList,
+ * thus enabling the developer to have permanent access to the correct ID and ClassName
+ *
+ * The Idea behind this concept is, that storing a ClassID that changes its internal state
+ * all ClassID's will be updated correctly.
+ *
+ * Since the Existance of any ObjectList is a requirement during the working process all
+ * ID's should reference a valid ID and ClassName
+ */
+class ClassID
+{
+public:
+  ClassID();
+  ClassID(const ObjectListBase* const id);
+  /// the copy constructor is also defined implicitely.
+
+  /** @returns A constant reference to the ID. */
+  const int& id() const { return *_id; };
+  /** @returns A constant reference to the Name. */
+  const std::string& name() const { return *_name; };
+
+  /** @param id the id to compare @returns true on match (match is same ID) @brief compares two id's */
+  bool operator==(const ClassID& id) const { return *_id == *id._id /* || _name == id._name */; };
+  /** @param id the id to compare @returns true on match (match is same ID) @brief compares two id's */
+  bool operator==(int id) const { return *_id == id; };
+  /** @param name the id to compare @returns true on match (match is same Name) @brief compares an ID with a ClassName */
+  bool operator==(const std::string& name) const { return *_name == name; };
+  /** @param id the id to compare @returns false on match (match is same ID) @brief compares two id's */
+  bool operator!=(const ClassID& id) const { return *_id != *id._id /* && _name != id._name*/;  };
+  /** @param id the id to compare @returns false on match (match is same ID) @brief compares two id's */
+  bool operator!=(int id) const { return *_id != id; };
+  /** @param name the id to compare @returns false on match (match is same Name) @brief compares an ID with a ClassName */
+  bool operator!=(const std::string& name) const { return *_name != name; };
+
+private:
+  const int*                _id;           //!< A pointer to the ID of the ClassID.
+  const std::string*        _name;         //!< A pointer to the Name of the ClassID.
+};
+
+//! A NullClass. This is the Null of the ClassID.
+/**
+ * implemented as a Class id can be used to reference NullObjects.
+ */
+class NullClass
+{
+public:
+  /** @returns the NullClass' ID. */
+  static const ClassID& classID() { return NullClass::_classID; }
+  /** @param id the ID to acquire @param name the name to acquire @brief acquires the ID of this Class */
+  static void acquireID(const int*& id, const std::string*& name) { id = &_nullID; name = &_nullName; };
+
+private:
+  NullClass() {}; //!< The Default Constructor is hidden from the User.
+
+private:
+  static ClassID         _classID;      //!< The NullClass' ID
+  static const std::string  _nullName;     //!< The NullClass' Name ("NullClass")
+  static int                _nullID;       //!< The NullClass' ID
+};
+
+#endif /* _CLASS_ID_H */
Index: branches/new_class_id/src/lib/lang/new_class_id.cc
===================================================================
--- branches/new_class_id/src/lib/lang/new_class_id.cc	(revision 9715)
+++ 	(revision )
@@ -1,43 +1,0 @@
-/*
-   orxonox - the future of 3D-vertical-scrollers
-
-   Copyright (C) 2006 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_
-
-#include "new_class_id.h"
-#include "new_object_list.h"
-
-/**
- * @brief a Default Constructor.
- * this Always points to the ID of the NullClass.
- */
-ClassID::ClassID()
-{
-  NullClass::acquireID(this->_id, this->_name);
-};
-
-/**
- * @brief Acquiring the ID of a objectList.
- * @param objList The ObjectList to acquire the ID from.
- */
-ClassID::ClassID(const ObjectListBase* const objList)
-{
-  objList->acquireID(this->_id, this->_name);
-}
-
-
-ClassID NullClass::_classID;
-
-int NullClass::_nullID;
-const std::string NullClass::_nullName = std::string("NullClass");
Index: branches/new_class_id/src/lib/lang/new_class_id.h
===================================================================
--- branches/new_class_id/src/lib/lang/new_class_id.h	(revision 9715)
+++ 	(revision )
@@ -1,76 +1,0 @@
-/*!
- * @file new_class_id.h
- * @brief Definition of a dynamically allocating ClassID
- *
- */
-
-#ifndef _NEW_CLASS_ID_H
-#define _NEW_CLASS_ID_H
-
-#include <string>
-
-class ObjectListBase;
-
-//! A class to dynamically allocate ClassID's and to support a isA operator
-/**
- * A ClassID can only be aquired over a ObjectList,
- * thus enabling the developer to have permanent access to the correct ID and ClassName
- *
- * The Idea behind this concept is, that storing a ClassID that changes its internal state
- * all ClassID's will be updated correctly.
- *
- * Since the Existance of any ObjectList is a requirement during the working process all
- * ID's should reference a valid ID and ClassName
- */
-class ClassID
-{
-public:
-  ClassID();
-  ClassID(const ObjectListBase* const id);
-  /// the copy constructor is also defined implicitely.
-
-  /** @returns A constant reference to the ID. */
-  const int& id() const { return *_id; };
-  /** @returns A constant reference to the Name. */
-  const std::string& name() const { return *_name; };
-
-  /** @param id the id to compare @returns true on match (match is same ID) @brief compares two id's */
-  bool operator==(const ClassID& id) const { return *_id == *id._id /* || _name == id._name */; };
-  /** @param id the id to compare @returns true on match (match is same ID) @brief compares two id's */
-  bool operator==(int id) const { return *_id == id; };
-  /** @param name the id to compare @returns true on match (match is same Name) @brief compares an ID with a ClassName */
-  bool operator==(const std::string& name) const { return *_name == name; };
-  /** @param id the id to compare @returns false on match (match is same ID) @brief compares two id's */
-  bool operator!=(const ClassID& id) const { return *_id != *id._id /* && _name != id._name*/;  };
-  /** @param id the id to compare @returns false on match (match is same ID) @brief compares two id's */
-  bool operator!=(int id) const { return *_id != id; };
-  /** @param name the id to compare @returns false on match (match is same Name) @brief compares an ID with a ClassName */
-  bool operator!=(const std::string& name) const { return *_name != name; };
-
-private:
-  const int*                _id;           //!< A pointer to the ID of the ClassID.
-  const std::string*        _name;         //!< A pointer to the Name of the ClassID.
-};
-
-//! A NullClass. This is the Null of the ClassID.
-/**
- * implemented as a Class id can be used to reference NullObjects.
- */
-class NullClass
-{
-public:
-  /** @returns the NullClass' ID. */
-  static const ClassID& classID() { return NullClass::_classID; }
-  /** @param id the ID to acquire @param name the name to acquire @brief acquires the ID of this Class */
-  static void acquireID(const int*& id, const std::string*& name) { id = &_nullID; name = &_nullName; };
-
-private:
-  NullClass() {}; //!< The Default Constructor is hidden from the User.
-
-private:
-  static ClassID         _classID;      //!< The NullClass' ID
-  static const std::string  _nullName;     //!< The NullClass' Name ("NullClass")
-  static int                _nullID;       //!< The NullClass' ID
-};
-
-#endif /* _NEW_CLASS_ID_H */
Index: branches/new_class_id/src/lib/lang/new_object_list.cc
===================================================================
--- branches/new_class_id/src/lib/lang/new_object_list.cc	(revision 9715)
+++ 	(revision )
@@ -1,310 +1,0 @@
-/*
-   orxonox - the future of 3D-vertical-scrollers
-
-   Copyright (C) 2006 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_
-
-#include "new_object_list.h"
-#include <cassert>
-
-
-#include <stdio.h>
-
-/**
- * @brief Constructor, that creates an ObjectList while checking (development mode) for uniqueness of all Keys (names and ID's)
- * @param className The Name of the Class to create an ObjectList for.
- * @param id The ID if you like, or -1 otherwise.
- * @return a new NewObejctList
- */
-ObjectListBase::ObjectListBase(const std::string& className, int id)
-    : _name(className)
-{
-  printf("ObjectList, Registered %s::%d\n", className.c_str(), id);
-  if (ObjectListBase::_classesByID == NULL)
-  {
-    ObjectListBase::_classesByID = new classIDMap;
-    assert (ObjectListBase::_classesByName == NULL);
-    ObjectListBase::_classesByName = new classNameMap;
-  }
-  assert(!ObjectListBase::classNameExists(className) && "Classes should only be included once, and no two classes should have the same name (key value)");
-
-  if (id == -1)
-  {
-    id = ObjectListBase::_classesByID->size();
-    // searching for a free ID
-    while (ObjectListBase::classIDExists(id)) ++id;
-  }
-  assert(!ObjectListBase::classIDExists(id) && "Classes should only be included once, and no two classes should have the same ID (key value)");
-
-  _id = id;
-  /// Some Output, that will fall out later
-  std::cout << "register new ObjectList " << className << " ID: " << this->_id << std::endl;
-
-  this->_identity = ClassID(this);
-  (*ObjectListBase::_classesByID)[this->_identity.id()] = this;
-  (*ObjectListBase::_classesByName)[this->_identity.name()] = this;
-}
-
-
-/**
- * Destructor.
- *
- * This destructor deletes the ObjectList, and cleans up the ObjectList sorted Maps.
- */
-ObjectListBase::~ObjectListBase()
-{
-  assert (ObjectListBase::_classesByName != NULL && ObjectListBase::_classesByID != NULL);
-  /*
-  std::cout << "Erasing: " << this->_name << " "<< this->_id  << std::endl;
-  std::cout << "SIZE OF _classByID: " << ObjectListBase::_classesByID->size() << std::endl;
-  std::cout << "SIZE OF _classByName: " << ObjectListBase::_classesByName->size() << std::endl;
-  */
-  ObjectListBase::_classesByID->erase(this->_identity.id());
-  ObjectListBase::_classesByName->erase(this->_identity.name());
-
-  if (ObjectListBase::_classesByID->empty())
-  {
-    delete ObjectListBase::_classesByID;
-    ObjectListBase::_classesByID = NULL;
-    assert(ObjectListBase::_classesByName != NULL);
-    delete ObjectListBase::_classesByName;
-    ObjectListBase::_classesByName = NULL;
-  }
-}
-
-ObjectListBase::classIDMap* ObjectListBase::_classesByID = NULL;
-ObjectListBase::classNameMap* ObjectListBase::_classesByName = NULL;
-
-/**
- * @returns the Registered Class Count.
- */
-unsigned int ObjectListBase::classCount()
-{
-  assert (ObjectListBase::_classesByID != NULL);
-  return ObjectListBase::_classesByID->size();
-};
-
-/**
- * @brief Checks if a Class with name already exists.
- * @param name The Name of the Class to check.
- * @return true if such a class already exists.
- */
-bool ObjectListBase::classIDExists(int id)
-{
-  return (ObjectListBase::_classesByID->find(id) != ObjectListBase::_classesByID->end());
-}
-
-/**
- * @brief Checks if a Class with name already exists.
- * @param name The Name of the Class to check.
- * @return true if such a class already exists.
- */
-bool ObjectListBase::classNameExists(const std::string& name)
-{
-  return (ObjectListBase::_classesByName->find(name) != ObjectListBase::_classesByName->end());
-}
-
-/**
- * @brief searches for a ClassID in the list of all ObjectLists, and returns its Identity
- * @param id: The Id to search for
- * @returns the ClassID if found and NullClass' identity if not.
- */
-const ClassID& ObjectListBase::retrieveIdentity(int id)
-{
-  const ObjectListBase* const base = ObjectListBase::getObjectList(id);
-
-  if (base != NULL)
-    return base->_identity;
-  else
-    return NullClass::classID();
-}
-
-
-/**
- * @brief searches for a ClassID in the list of all ObjectLists, and returns its Identity
- * @param name: The Name to search for
- * @returns the ClassID if found and NullClass' identity if not.
- */
-const ClassID& ObjectListBase::retrieveIdentity(const std::string& name)
-{
-  const ObjectListBase* const base = ObjectListBase::getObjectList(name);
-
-  if (base != NULL)
-    return base->_identity;
-  else
-    return NullClass::classID();
-}
-
-
-/**
- * @brief Searches for a ObjectList with the ID classID
- * @param classID the ID to search for.
- * @return The ObjectList if found, NULL otherwise.
- */
-const ObjectListBase* const ObjectListBase::getObjectList(int classID)
-{
-  assert (ObjectListBase::_classesByID != NULL);
-  ObjectListBase::classIDMap::iterator it = ObjectListBase::_classesByID->find(classID);
-  if (it != ObjectListBase::_classesByID->end())
-    return (*it).second;
-  else
-    return NULL;
-}
-
-/**
- * @brief Searches for a ObjectList with the Name className
- * @param className the Name to search for.
- * @return The ObjectList if found, NULL otherwise.
- */
-const ObjectListBase* const ObjectListBase::getObjectList(const std::string& className)
-{
-  assert (ObjectListBase::_classesByName != NULL);
-  ObjectListBase::classNameMap::iterator it = ObjectListBase::_classesByName->find(className);
-  if (it != ObjectListBase::_classesByName->end())
-    return (*it).second;
-  else
-    return NULL;
-}
-
-/**
- * @brief Searches for a ObjectList with the ClassID classID
- * @param classID the ID to search for.
- * @return The ObjectList if found, NULL otherwise.
- */
-const ObjectListBase* const ObjectListBase::getObjectList(const ClassID& classID)
-{
-  return ObjectListBase::getObjectList(classID.id());
-}
-
-/**
- * @brief Retrieves the first BaseObject matching the name objectName from the List matching classID.
- * @param classID the ID of the List.
- * @param objectName the Name of the Object to search for
- */
-BaseObject* ObjectListBase::getBaseObject(int classID, const std::string& objectName)
-{
-  const ObjectListBase* const base = ObjectListBase::getObjectList(classID);
-
-  if (base != NULL)
-    return base->getBaseObject(objectName);
-  else
-    return NULL;
-}
-
-/**
- * @brief Retrieves the first BaseObject matching the name objectName from the List matching className.
- * @param className the Name of the List.
- * @param objectName the Name of the Object to search for
- */
-BaseObject* ObjectListBase::getBaseObject(const std::string& className, const std::string& objectName)
-{
-  const ObjectListBase* const base = ObjectListBase::getObjectList(className);
-
-  if (base != NULL)
-    return base->getBaseObject(objectName);
-  else
-    return NULL;
-}
-
-/**
- * @brief Retrieves the first BaseObject matching the name objectName from the List matching classID.
- * @param classID The ClassID of the List.
- * @param objectName the Name of the Object to search for
- */
-BaseObject* ObjectListBase::getBaseObject(const ClassID& classID, const std::string& objectName)
-{
-  const ObjectListBase* const base = ObjectListBase::getObjectList(classID);
-
-  if (base != NULL)
-    return base->getBaseObject(objectName);
-  else
-    return NULL;
-}
-
-#include "base_object.h"
-
-/**
- * @brief Prints out some debugging information about a given List.
- */
-void ObjectListBase::debug(unsigned int level) const
-{
-  base_list list;
-  this->getBaseObjectList(&list);
-
-  if (level > 1 || !list.empty())
-    printf(" ObjectList of class %s(id:%d) contains %d objects\n", this->name().c_str(), this->id(), list.size());
-
-  if (level >= 2)
-  {
-    printf("  - listing Instances: \n");
-    for (base_iterator it = list.begin();
-         it != list.end();
-         ++it)
-    {
-      printf("   + %s::%s\n", (*it)->getClassCName(), (*it)->getCName());
-    }
-  }
-}
-
-
-void ObjectListBase::debugAll(unsigned int level)
-{
-  printf("Listing all %d ObjectLists \n", ObjectListBase::_classesByID->size());
-
-  for (classNameMap::const_iterator it = ObjectListBase::_classesByName->begin();
-       it != ObjectListBase::_classesByName->end();
-       ++it)
-  {
-    (*it).second->debug(level);
-
-  }
-
-}
-
-
-
-/**
- * @brief Converts an ID into a ClassName String.
- * @param classID The ID to convert.
- * @return The ClassName or an empty string if the ID was not found.
- */
-const std::string& ObjectListBase::IDToString(int classID)
-{
-  const ObjectListBase* const base = ObjectListBase::getObjectList(classID);
-
-  if (base != NULL)
-    return base->name();
-  else
-  {
-    static std::string empty;
-    return empty;
-  }
-}
-
-
-/**
- * @brief Converts a String into an ID
- * @param className the Name of the Class to search for
- * @return The Classes ID if found, -1 otherwise.
- */
-int ObjectListBase::StringToID(const std::string& className)
-{
-  const ObjectListBase* const base = ObjectListBase::getObjectList(className);
-
-  if (base != NULL)
-    return base->id();
-  else
-    return -1;
-}
-
Index: branches/new_class_id/src/lib/lang/new_object_list.h
===================================================================
--- branches/new_class_id/src/lib/lang/new_object_list.h	(revision 9715)
+++ 	(revision )
@@ -1,333 +1,0 @@
-/*!
- * @file new_object_list.h
- * @brief Definition of a dynamically allocating ClassID
- *
- */
-
-#ifndef _NEW_OBJECT_LIST_H
-#define _NEW_OBJECT_LIST_H
-
-#include "new_class_id.h"
-#include <cassert>
-#include <map>
-#include <list>
-#include <string>
-#include <iostream>
-
-/**
- * @brief Use this macro to easily declare a Class to store its own ObjectListDeclaration
- * @param ClassName the Name of the Class.
- * @note: Using this inside of a Class means, that you loose the member: _objectList, while defining
- * two new functions objectList() and classID().
- */
-#define ObjectListDeclaration(ClassName) \
-  public: \
-   static inline const ObjectList<ClassName>& objectList() { return ClassName::_objectList; }; \
-   static inline const ClassID& classID() { return ClassName::_objectList.identity(); }; \
-  private: \
-   static ObjectList<ClassName> _objectList
-
-#define ObjectListDefinitionID(ClassName, ID) \
-   ObjectList<ClassName> ClassName::_objectList(#ClassName, ID)
-
-
-#define ObjectListDefinition(ClassName) \
-    ObjectListDefinitionID(ClassName, -1)
-
-class BaseObject;
-//! The superclass that all ObjectLists follow.
-/**
- * @see template<class T> ObjectList<T>
- */
-class ObjectListBase
-{
-public:
-  //! A fast iterator Base-Class, for iterator-casting and storing.
-  /**
-   * @note This Iterator is explicitely used only for storage purposes in the BaseObject
-   */
-  class IteratorBase { };
-
-  /** @brief A Typedefinition for the Base-List that can be retrieved with getBaseObjectList(base_list*) */
-  typedef std::list<BaseObject*>        base_list;
-  /** @brief An iterator for the base_list */
-  typedef base_list::iterator           base_iterator;
-
-public:
-  /** @returns The Identity of the Class stored within. */
-  inline const ClassID&              identity() const { return _identity; }
-  /** @returns the ID of the Identity of the ObjectList */
-  inline int                            id() const { return _id; };
-  /** @returns The Name of the Class stored in this ObjectList */
-  inline const std::string&             name() const { return _name; };
-  /** @param id The id to compare @returns true on match, false otherwise */
-  inline bool                           operator==(int id) const { return _id == id; };
-  /** @param id The id to compare @returns true on match, false otherwise */
-  inline bool                           operator==(const ClassID& id) const { return id == _id; };
-  /** @param name The name to compare @returns true on match, false otherwise */
-  inline bool                           operator==(const std::string& name) const { return _name == name; };
-  /** @param id The id to check @returns true on match, false otherwise */
-  inline void                           acquireID(const int*& id, const std::string*& name) const { id = &_id; name = &_name; };
-  /** @brief fills a list of Objects into a BaseObject*-List. @param list the list to fill */
-  virtual void                          getBaseObjectList(base_list* list) const = 0;
-
-  static const ClassID&              retrieveIdentity(int id);
-  static const ClassID&              retrieveIdentity(const std::string& name);
-
-  static const ObjectListBase* const getObjectList(int classID);
-  static const ObjectListBase* const getObjectList(const std::string& className);
-  static const ObjectListBase* const getObjectList(const ClassID& classID);
-
-  static BaseObject*                    getBaseObject(int classID, const std::string& objectName);
-  static BaseObject*                    getBaseObject(const std::string& className, const std::string& objectName);
-  static BaseObject*                    getBaseObject(const ClassID& classID, const std::string& objectName);
-
-  /** @returns an Object with Name name out of this List @param name the name of the Object. */
-  virtual BaseObject*                   getBaseObject(const std::string& name) const = 0;
-
-  static const std::list<std::string>&  getClassNames();
-
-
-  static unsigned int                   classCount();
-  void                                  debug(unsigned int level) const;
-  static void                           debugAll(unsigned int level);
-
-  static const std::string&             IDToString(int classID);
-  static int                            StringToID(const std::string& className);
-
-  //! Only uset to unsubscribe a BaseObject.
-  virtual void                          unregisterObject(IteratorBase* _iterators) = 0;
-
-protected:
-  ObjectListBase(const std::string& className, int id = -1);
-  virtual ~ObjectListBase();
-
-private:
-  ObjectListBase(const ObjectListBase&);
-
-  static bool                         classIDExists(int id);
-  static bool                         classNameExists(const std::string& className);
-
-
-protected:
-  typedef std::map<int, ObjectListBase*>         classIDMap;   //!< The Generic Map.
-  typedef std::map<std::string, ObjectListBase*> classNameMap; //!< The Generic Map.
-
-private:
-  int                           _id;
-  const std::string             _name;              //!< The Name of the Class.
-  ClassID                    _identity;          //!< The Identity of the Class. (equal to _id and _name)
-
-private:
-  static classIDMap*            _classesByID;       //!< A Map of all the classes in existance.
-  static classNameMap*          _classesByName;     //!< A Map of all the classes in existance.
-  static std::list<std::string> _classNames;        //!< A list of all the registered ClassNames.
-};
-
-
-/////////////////////////
-//// TEMPLATISATION /////
-/////////////////////////
-//! Defines a ObjectsList handler for objects of type T.
-/**
- * The ObjectList is a generic way to store every object created from a Class 'T'
- *  into a List. The list can be retrieved, and used constantly over iterators,
- *  as with normal std::list.
- *
- * Furthermore the linkage over the single Lists is given over the Superclass ObjectListBase.
- *
- *
- *
- *
- * To define a Class with a ObjectList, you have to:
- *  1. Include 'ObjectListDeclaration(T);' in its Declaration (at the beginning)
- *  2. Include 'ObjectListDefinition(T);' in some Definition file (cc-file)
- *  3. In the constructor add 'registerObject(this, objectList);'
- *
- * @note The Class must define the compare with const std::string& operator for this to work.
- *
- *
- *
- * Limitations:
- *  ObjectList cannot be used with other Factory style Classes, if the class is also a BaseObject,
- *   and not loaded before the ObjectList.
- *
- * @example Iterating: Iteration is made easy, and fast as follows:
- *   for (ObjectList<PlayerStats>::const_iterator it = PlayerStats::objectList().begin();
- *      it != PlayerStats::objectList().end();
- *     ++it)
- *   {
- *    (*it)->dosomething
- *   }
- *
- * @example Find an Object:
- * Playable* playable = Playable::objectList("orxonox-super-rocket-fighter"); // searches an Object By its name.
- *
- */
-template<class T>
-class ObjectList : public ObjectListBase
-{
-public:
-  typedef std::list<T*>                  list;
-  typedef typename list::iterator        iterator;
-  typedef typename list::const_iterator  const_iterator;
-
-
-class Iterator : public ObjectListBase::IteratorBase
-  {
-  public:
-    Iterator(iterator it) { _it = it; }
-    inline iterator& it() { return _it; }
-    typename ObjectList::iterator _it;
-  };
-
-public:
-  ObjectList(const std::string& name, int id = -1);
-  ~ObjectList();
-
-  virtual BaseObject*                getBaseObject(const std::string& name) const;
-  T*                                 getObject(const std::string& name) const;
-  inline const list&                 objects() const { return _objects; };
-  bool                               exists(const T* const object) const;
-
-  /** @returns an Iterator to the beginning of the List. */
-  inline iterator                    begin() { return _objects.begin(); };
-  /** @returns a constant Iterator to the beginning of the List. */
-  inline const_iterator              begin() const { return _objects.begin(); };
-  /** @returns an Iterator to the end of the List. */
-  inline iterator                    end() { return _objects.end(); };
-  /** @returns a constant Iterator to the beginning of the List. */
-  inline const_iterator              end() const { return _objects.end(); };
-
-  /** @returns true if the List is empty. */
-  inline bool                        empty() const { return _objects.empty(); };
-  /** @returns the size of the List */
-  inline int                         size() const { return _objects.size(); };
-  /** @returns the frontmost Element of the list (normaly the last added Object). */
-  inline T*                          front() const { return _objects.front(); };
-  /** @returns the last added Object */
-  inline T*                          back() const { return _objects.back(); };
-
-
-  ObjectListBase::IteratorBase*   registerObject(T* object);
-  virtual void                       unregisterObject(IteratorBase* iterator);
-
-protected:
-  virtual void                       getBaseObjectList(ObjectListBase::base_list* list) const;
-
-
-private:
-  //! the copy constructor will be hidden.
-  ObjectList(const ObjectList& definer) {};
-
-private:
-  list                _objects;     //!< The List of stored Objects of Type T.
-};
-
-
-
-
-
-/////////////////////////
-//// IMPLEMENTATION /////
-/////////////////////////
-/**
- * @brief creates a new ObjectList
- * @param name The name of the Class.
- * @param id The ID of the class if desired, or -1 if an id should be assigned automatically.
- */
-template <class T>
-ObjectList<T>::ObjectList(const std::string& name, int id)
-    : ObjectListBase(name, id)
-{}
-
-/**
- * @brief deletes the ObjectList.
- */
-template <class T>
-ObjectList<T>::~ObjectList()
-{
-  if (!_objects.empty())
-  {
-    // std::cout << "There are " << this->size() << " objects from class " << this->name() << "(id:" << this->id() << ") in existance\n";
-  }
-}
-
-/**
- * @brief Retrieves a BaseObject matching the Name name in this List.
- * @param name the Name of the Object.
- * @returns a BaseObject pointing to the object if found, NULL otherwise.
- */
-template <class T>
-BaseObject* ObjectList<T>::getBaseObject(const std::string& name) const
-{
-  return this->getObject(name);
-}
-
-
-
-/**
- * @brief Retrieves an Object of type T matching the Name name in this List.
- * @param name the Name of the Object.
- * @returns an Object of type T pointing to the object if found, NULL otherwise.
- */
-template <class T>
-T* ObjectList<T>::getObject(const std::string& name) const
-{
-  const_iterator it;
-  for (it = this->_objects.begin(); it != this->_objects.end(); ++it)
-    if ((*it)->getName() == name)
-      return (*it);
-  return NULL;
-}
-
-/**
- * @brief checks if Object object exists in this ClassList.
- * @param object the Object to check for
- * @returns True if the object is found within the List, false otherwise
- */
-template <class T>
-    bool ObjectList<T>::exists(const T* const object) const
-{
-  return (std::find(_objects.begin(), _objects.end(), object) != _objects.end());
-}
-
-
-/**
- * @brief retrieves a List of BaseObjects
- * @param list the list to push the ObjectList into.
- */
-template <class T>
-void ObjectList<T>::getBaseObjectList(ObjectListBase::base_list* list) const
-{
-  assert (list != NULL);
-  const_iterator it;
-  for (it = this->_objects.begin(); it != this->_objects.end(); ++it)
-    list->push_back(*it);
-}
-
-
-/**
- * @brief registers an Object to the ObjectList.
- * @param T object the Object to register.
- * @returns a pointer to the iterator inside of the list.
- */
-template <class T>
-ObjectListBase::IteratorBase* ObjectList<T>::registerObject(T* object)
-{
-  this->_objects.push_back(object);
-  return new Iterator(--this->_objects.end());
-}
-
-/**
- * @brief removes an Object from the ClassList.
- * @param iterator the Position at which to remove the Object.
- */
-template <class T>
-void ObjectList<T>::unregisterObject(IteratorBase* iterator)
-{
-  this->_objects.erase(static_cast<Iterator*>(iterator)->it());
-  //_objects.erase(std::find(_objects.begin(), _objects.end(), object));
-}
-
-#endif /* _NEW_OBJECT_LIST_H */
Index: branches/new_class_id/src/lib/lang/object_list.cc
===================================================================
--- branches/new_class_id/src/lib/lang/object_list.cc	(revision 9716)
+++ branches/new_class_id/src/lib/lang/object_list.cc	(revision 9716)
@@ -0,0 +1,310 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2006 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_
+
+#include "object_list.h"
+#include <cassert>
+
+
+#include <stdio.h>
+
+/**
+ * @brief Constructor, that creates an ObjectList while checking (development mode) for uniqueness of all Keys (names and ID's)
+ * @param className The Name of the Class to create an ObjectList for.
+ * @param id The ID if you like, or -1 otherwise.
+ * @return a new NewObejctList
+ */
+ObjectListBase::ObjectListBase(const std::string& className, int id)
+    : _name(className)
+{
+  printf("ObjectList, Registered %s::%d\n", className.c_str(), id);
+  if (ObjectListBase::_classesByID == NULL)
+  {
+    ObjectListBase::_classesByID = new classIDMap;
+    assert (ObjectListBase::_classesByName == NULL);
+    ObjectListBase::_classesByName = new classNameMap;
+  }
+  assert(!ObjectListBase::classNameExists(className) && "Classes should only be included once, and no two classes should have the same name (key value)");
+
+  if (id == -1)
+  {
+    id = ObjectListBase::_classesByID->size();
+    // searching for a free ID
+    while (ObjectListBase::classIDExists(id)) ++id;
+  }
+  assert(!ObjectListBase::classIDExists(id) && "Classes should only be included once, and no two classes should have the same ID (key value)");
+
+  _id = id;
+  /// Some Output, that will fall out later
+  std::cout << "register new ObjectList " << className << " ID: " << this->_id << std::endl;
+
+  this->_identity = ClassID(this);
+  (*ObjectListBase::_classesByID)[this->_identity.id()] = this;
+  (*ObjectListBase::_classesByName)[this->_identity.name()] = this;
+}
+
+
+/**
+ * Destructor.
+ *
+ * This destructor deletes the ObjectList, and cleans up the ObjectList sorted Maps.
+ */
+ObjectListBase::~ObjectListBase()
+{
+  assert (ObjectListBase::_classesByName != NULL && ObjectListBase::_classesByID != NULL);
+  /*
+  std::cout << "Erasing: " << this->_name << " "<< this->_id  << std::endl;
+  std::cout << "SIZE OF _classByID: " << ObjectListBase::_classesByID->size() << std::endl;
+  std::cout << "SIZE OF _classByName: " << ObjectListBase::_classesByName->size() << std::endl;
+  */
+  ObjectListBase::_classesByID->erase(this->_identity.id());
+  ObjectListBase::_classesByName->erase(this->_identity.name());
+
+  if (ObjectListBase::_classesByID->empty())
+  {
+    delete ObjectListBase::_classesByID;
+    ObjectListBase::_classesByID = NULL;
+    assert(ObjectListBase::_classesByName != NULL);
+    delete ObjectListBase::_classesByName;
+    ObjectListBase::_classesByName = NULL;
+  }
+}
+
+ObjectListBase::classIDMap* ObjectListBase::_classesByID = NULL;
+ObjectListBase::classNameMap* ObjectListBase::_classesByName = NULL;
+
+/**
+ * @returns the Registered Class Count.
+ */
+unsigned int ObjectListBase::classCount()
+{
+  assert (ObjectListBase::_classesByID != NULL);
+  return ObjectListBase::_classesByID->size();
+};
+
+/**
+ * @brief Checks if a Class with name already exists.
+ * @param name The Name of the Class to check.
+ * @return true if such a class already exists.
+ */
+bool ObjectListBase::classIDExists(int id)
+{
+  return (ObjectListBase::_classesByID->find(id) != ObjectListBase::_classesByID->end());
+}
+
+/**
+ * @brief Checks if a Class with name already exists.
+ * @param name The Name of the Class to check.
+ * @return true if such a class already exists.
+ */
+bool ObjectListBase::classNameExists(const std::string& name)
+{
+  return (ObjectListBase::_classesByName->find(name) != ObjectListBase::_classesByName->end());
+}
+
+/**
+ * @brief searches for a ClassID in the list of all ObjectLists, and returns its Identity
+ * @param id: The Id to search for
+ * @returns the ClassID if found and NullClass' identity if not.
+ */
+const ClassID& ObjectListBase::retrieveIdentity(int id)
+{
+  const ObjectListBase* const base = ObjectListBase::getObjectList(id);
+
+  if (base != NULL)
+    return base->_identity;
+  else
+    return NullClass::classID();
+}
+
+
+/**
+ * @brief searches for a ClassID in the list of all ObjectLists, and returns its Identity
+ * @param name: The Name to search for
+ * @returns the ClassID if found and NullClass' identity if not.
+ */
+const ClassID& ObjectListBase::retrieveIdentity(const std::string& name)
+{
+  const ObjectListBase* const base = ObjectListBase::getObjectList(name);
+
+  if (base != NULL)
+    return base->_identity;
+  else
+    return NullClass::classID();
+}
+
+
+/**
+ * @brief Searches for a ObjectList with the ID classID
+ * @param classID the ID to search for.
+ * @return The ObjectList if found, NULL otherwise.
+ */
+const ObjectListBase* const ObjectListBase::getObjectList(int classID)
+{
+  assert (ObjectListBase::_classesByID != NULL);
+  ObjectListBase::classIDMap::iterator it = ObjectListBase::_classesByID->find(classID);
+  if (it != ObjectListBase::_classesByID->end())
+    return (*it).second;
+  else
+    return NULL;
+}
+
+/**
+ * @brief Searches for a ObjectList with the Name className
+ * @param className the Name to search for.
+ * @return The ObjectList if found, NULL otherwise.
+ */
+const ObjectListBase* const ObjectListBase::getObjectList(const std::string& className)
+{
+  assert (ObjectListBase::_classesByName != NULL);
+  ObjectListBase::classNameMap::iterator it = ObjectListBase::_classesByName->find(className);
+  if (it != ObjectListBase::_classesByName->end())
+    return (*it).second;
+  else
+    return NULL;
+}
+
+/**
+ * @brief Searches for a ObjectList with the ClassID classID
+ * @param classID the ID to search for.
+ * @return The ObjectList if found, NULL otherwise.
+ */
+const ObjectListBase* const ObjectListBase::getObjectList(const ClassID& classID)
+{
+  return ObjectListBase::getObjectList(classID.id());
+}
+
+/**
+ * @brief Retrieves the first BaseObject matching the name objectName from the List matching classID.
+ * @param classID the ID of the List.
+ * @param objectName the Name of the Object to search for
+ */
+BaseObject* ObjectListBase::getBaseObject(int classID, const std::string& objectName)
+{
+  const ObjectListBase* const base = ObjectListBase::getObjectList(classID);
+
+  if (base != NULL)
+    return base->getBaseObject(objectName);
+  else
+    return NULL;
+}
+
+/**
+ * @brief Retrieves the first BaseObject matching the name objectName from the List matching className.
+ * @param className the Name of the List.
+ * @param objectName the Name of the Object to search for
+ */
+BaseObject* ObjectListBase::getBaseObject(const std::string& className, const std::string& objectName)
+{
+  const ObjectListBase* const base = ObjectListBase::getObjectList(className);
+
+  if (base != NULL)
+    return base->getBaseObject(objectName);
+  else
+    return NULL;
+}
+
+/**
+ * @brief Retrieves the first BaseObject matching the name objectName from the List matching classID.
+ * @param classID The ClassID of the List.
+ * @param objectName the Name of the Object to search for
+ */
+BaseObject* ObjectListBase::getBaseObject(const ClassID& classID, const std::string& objectName)
+{
+  const ObjectListBase* const base = ObjectListBase::getObjectList(classID);
+
+  if (base != NULL)
+    return base->getBaseObject(objectName);
+  else
+    return NULL;
+}
+
+#include "base_object.h"
+
+/**
+ * @brief Prints out some debugging information about a given List.
+ */
+void ObjectListBase::debug(unsigned int level) const
+{
+  base_list list;
+  this->getBaseObjectList(&list);
+
+  if (level > 1 || !list.empty())
+    printf(" ObjectList of class %s(id:%d) contains %d objects\n", this->name().c_str(), this->id(), list.size());
+
+  if (level >= 2)
+  {
+    printf("  - listing Instances: \n");
+    for (base_iterator it = list.begin();
+         it != list.end();
+         ++it)
+    {
+      printf("   + %s::%s\n", (*it)->getClassCName(), (*it)->getCName());
+    }
+  }
+}
+
+
+void ObjectListBase::debugAll(unsigned int level)
+{
+  printf("Listing all %d ObjectLists \n", ObjectListBase::_classesByID->size());
+
+  for (classNameMap::const_iterator it = ObjectListBase::_classesByName->begin();
+       it != ObjectListBase::_classesByName->end();
+       ++it)
+  {
+    (*it).second->debug(level);
+
+  }
+
+}
+
+
+
+/**
+ * @brief Converts an ID into a ClassName String.
+ * @param classID The ID to convert.
+ * @return The ClassName or an empty string if the ID was not found.
+ */
+const std::string& ObjectListBase::IDToString(int classID)
+{
+  const ObjectListBase* const base = ObjectListBase::getObjectList(classID);
+
+  if (base != NULL)
+    return base->name();
+  else
+  {
+    static std::string empty;
+    return empty;
+  }
+}
+
+
+/**
+ * @brief Converts a String into an ID
+ * @param className the Name of the Class to search for
+ * @return The Classes ID if found, -1 otherwise.
+ */
+int ObjectListBase::StringToID(const std::string& className)
+{
+  const ObjectListBase* const base = ObjectListBase::getObjectList(className);
+
+  if (base != NULL)
+    return base->id();
+  else
+    return -1;
+}
+
Index: branches/new_class_id/src/lib/lang/object_list.h
===================================================================
--- branches/new_class_id/src/lib/lang/object_list.h	(revision 9716)
+++ branches/new_class_id/src/lib/lang/object_list.h	(revision 9716)
@@ -0,0 +1,333 @@
+/*!
+ * @file object_list.h
+ * @brief Definition of a dynamically allocating ClassID
+ *
+ */
+
+#ifndef _OBJECT_LIST_H
+#define _OBJECT_LIST_H
+
+#include "class_id.h"
+#include <cassert>
+#include <map>
+#include <list>
+#include <string>
+#include <iostream>
+
+/**
+ * @brief Use this macro to easily declare a Class to store its own ObjectListDeclaration
+ * @param ClassName the Name of the Class.
+ * @note: Using this inside of a Class means, that you loose the member: _objectList, while defining
+ * two new functions objectList() and classID().
+ */
+#define ObjectListDeclaration(ClassName) \
+  public: \
+   static inline const ObjectList<ClassName>& objectList() { return ClassName::_objectList; }; \
+   static inline const ClassID& classID() { return ClassName::_objectList.identity(); }; \
+  private: \
+   static ObjectList<ClassName> _objectList
+
+#define ObjectListDefinitionID(ClassName, ID) \
+   ObjectList<ClassName> ClassName::_objectList(#ClassName, ID)
+
+
+#define ObjectListDefinition(ClassName) \
+    ObjectListDefinitionID(ClassName, -1)
+
+class BaseObject;
+//! The superclass that all ObjectLists follow.
+/**
+ * @see template<class T> ObjectList<T>
+ */
+class ObjectListBase
+{
+public:
+  //! A fast iterator Base-Class, for iterator-casting and storing.
+  /**
+   * @note This Iterator is explicitely used only for storage purposes in the BaseObject
+   */
+  class IteratorBase { };
+
+  /** @brief A Typedefinition for the Base-List that can be retrieved with getBaseObjectList(base_list*) */
+  typedef std::list<BaseObject*>        base_list;
+  /** @brief An iterator for the base_list */
+  typedef base_list::iterator           base_iterator;
+
+public:
+  /** @returns The Identity of the Class stored within. */
+  inline const ClassID&              identity() const { return _identity; }
+  /** @returns the ID of the Identity of the ObjectList */
+  inline int                            id() const { return _id; };
+  /** @returns The Name of the Class stored in this ObjectList */
+  inline const std::string&             name() const { return _name; };
+  /** @param id The id to compare @returns true on match, false otherwise */
+  inline bool                           operator==(int id) const { return _id == id; };
+  /** @param id The id to compare @returns true on match, false otherwise */
+  inline bool                           operator==(const ClassID& id) const { return id == _id; };
+  /** @param name The name to compare @returns true on match, false otherwise */
+  inline bool                           operator==(const std::string& name) const { return _name == name; };
+  /** @param id The id to check @returns true on match, false otherwise */
+  inline void                           acquireID(const int*& id, const std::string*& name) const { id = &_id; name = &_name; };
+  /** @brief fills a list of Objects into a BaseObject*-List. @param list the list to fill */
+  virtual void                          getBaseObjectList(base_list* list) const = 0;
+
+  static const ClassID&              retrieveIdentity(int id);
+  static const ClassID&              retrieveIdentity(const std::string& name);
+
+  static const ObjectListBase* const getObjectList(int classID);
+  static const ObjectListBase* const getObjectList(const std::string& className);
+  static const ObjectListBase* const getObjectList(const ClassID& classID);
+
+  static BaseObject*                    getBaseObject(int classID, const std::string& objectName);
+  static BaseObject*                    getBaseObject(const std::string& className, const std::string& objectName);
+  static BaseObject*                    getBaseObject(const ClassID& classID, const std::string& objectName);
+
+  /** @returns an Object with Name name out of this List @param name the name of the Object. */
+  virtual BaseObject*                   getBaseObject(const std::string& name) const = 0;
+
+  static const std::list<std::string>&  getClassNames();
+
+
+  static unsigned int                   classCount();
+  void                                  debug(unsigned int level) const;
+  static void                           debugAll(unsigned int level);
+
+  static const std::string&             IDToString(int classID);
+  static int                            StringToID(const std::string& className);
+
+  //! Only uset to unsubscribe a BaseObject.
+  virtual void                          unregisterObject(IteratorBase* _iterators) = 0;
+
+protected:
+  ObjectListBase(const std::string& className, int id = -1);
+  virtual ~ObjectListBase();
+
+private:
+  ObjectListBase(const ObjectListBase&);
+
+  static bool                         classIDExists(int id);
+  static bool                         classNameExists(const std::string& className);
+
+
+protected:
+  typedef std::map<int, ObjectListBase*>         classIDMap;   //!< The Generic Map.
+  typedef std::map<std::string, ObjectListBase*> classNameMap; //!< The Generic Map.
+
+private:
+  int                           _id;
+  const std::string             _name;              //!< The Name of the Class.
+  ClassID                    _identity;          //!< The Identity of the Class. (equal to _id and _name)
+
+private:
+  static classIDMap*            _classesByID;       //!< A Map of all the classes in existance.
+  static classNameMap*          _classesByName;     //!< A Map of all the classes in existance.
+  static std::list<std::string> _classNames;        //!< A list of all the registered ClassNames.
+};
+
+
+/////////////////////////
+//// TEMPLATISATION /////
+/////////////////////////
+//! Defines a ObjectsList handler for objects of type T.
+/**
+ * The ObjectList is a generic way to store every object created from a Class 'T'
+ *  into a List. The list can be retrieved, and used constantly over iterators,
+ *  as with normal std::list.
+ *
+ * Furthermore the linkage over the single Lists is given over the Superclass ObjectListBase.
+ *
+ *
+ *
+ *
+ * To define a Class with a ObjectList, you have to:
+ *  1. Include 'ObjectListDeclaration(T);' in its Declaration (at the beginning)
+ *  2. Include 'ObjectListDefinition(T);' in some Definition file (cc-file)
+ *  3. In the constructor add 'registerObject(this, objectList);'
+ *
+ * @note The Class must define the compare with const std::string& operator for this to work.
+ *
+ *
+ *
+ * Limitations:
+ *  ObjectList cannot be used with other Factory style Classes, if the class is also a BaseObject,
+ *   and not loaded before the ObjectList.
+ *
+ * @example Iterating: Iteration is made easy, and fast as follows:
+ *   for (ObjectList<PlayerStats>::const_iterator it = PlayerStats::objectList().begin();
+ *      it != PlayerStats::objectList().end();
+ *     ++it)
+ *   {
+ *    (*it)->dosomething
+ *   }
+ *
+ * @example Find an Object:
+ * Playable* playable = Playable::objectList("orxonox-super-rocket-fighter"); // searches an Object By its name.
+ *
+ */
+template<class T>
+class ObjectList : public ObjectListBase
+{
+public:
+  typedef std::list<T*>                  list;
+  typedef typename list::iterator        iterator;
+  typedef typename list::const_iterator  const_iterator;
+
+
+class Iterator : public ObjectListBase::IteratorBase
+  {
+  public:
+    Iterator(iterator it) { _it = it; }
+    inline iterator& it() { return _it; }
+    typename ObjectList::iterator _it;
+  };
+
+public:
+  ObjectList(const std::string& name, int id = -1);
+  ~ObjectList();
+
+  virtual BaseObject*                getBaseObject(const std::string& name) const;
+  T*                                 getObject(const std::string& name) const;
+  inline const list&                 objects() const { return _objects; };
+  bool                               exists(const T* const object) const;
+
+  /** @returns an Iterator to the beginning of the List. */
+  inline iterator                    begin() { return _objects.begin(); };
+  /** @returns a constant Iterator to the beginning of the List. */
+  inline const_iterator              begin() const { return _objects.begin(); };
+  /** @returns an Iterator to the end of the List. */
+  inline iterator                    end() { return _objects.end(); };
+  /** @returns a constant Iterator to the beginning of the List. */
+  inline const_iterator              end() const { return _objects.end(); };
+
+  /** @returns true if the List is empty. */
+  inline bool                        empty() const { return _objects.empty(); };
+  /** @returns the size of the List */
+  inline int                         size() const { return _objects.size(); };
+  /** @returns the frontmost Element of the list (normaly the last added Object). */
+  inline T*                          front() const { return _objects.front(); };
+  /** @returns the last added Object */
+  inline T*                          back() const { return _objects.back(); };
+
+
+  ObjectListBase::IteratorBase*   registerObject(T* object);
+  virtual void                       unregisterObject(IteratorBase* iterator);
+
+protected:
+  virtual void                       getBaseObjectList(ObjectListBase::base_list* list) const;
+
+
+private:
+  //! the copy constructor will be hidden.
+  ObjectList(const ObjectList& definer) {};
+
+private:
+  list                _objects;     //!< The List of stored Objects of Type T.
+};
+
+
+
+
+
+/////////////////////////
+//// IMPLEMENTATION /////
+/////////////////////////
+/**
+ * @brief creates a new ObjectList
+ * @param name The name of the Class.
+ * @param id The ID of the class if desired, or -1 if an id should be assigned automatically.
+ */
+template <class T>
+ObjectList<T>::ObjectList(const std::string& name, int id)
+    : ObjectListBase(name, id)
+{}
+
+/**
+ * @brief deletes the ObjectList.
+ */
+template <class T>
+ObjectList<T>::~ObjectList()
+{
+  if (!_objects.empty())
+  {
+    // std::cout << "There are " << this->size() << " objects from class " << this->name() << "(id:" << this->id() << ") in existance\n";
+  }
+}
+
+/**
+ * @brief Retrieves a BaseObject matching the Name name in this List.
+ * @param name the Name of the Object.
+ * @returns a BaseObject pointing to the object if found, NULL otherwise.
+ */
+template <class T>
+BaseObject* ObjectList<T>::getBaseObject(const std::string& name) const
+{
+  return this->getObject(name);
+}
+
+
+
+/**
+ * @brief Retrieves an Object of type T matching the Name name in this List.
+ * @param name the Name of the Object.
+ * @returns an Object of type T pointing to the object if found, NULL otherwise.
+ */
+template <class T>
+T* ObjectList<T>::getObject(const std::string& name) const
+{
+  const_iterator it;
+  for (it = this->_objects.begin(); it != this->_objects.end(); ++it)
+    if ((*it)->getName() == name)
+      return (*it);
+  return NULL;
+}
+
+/**
+ * @brief checks if Object object exists in this ClassList.
+ * @param object the Object to check for
+ * @returns True if the object is found within the List, false otherwise
+ */
+template <class T>
+    bool ObjectList<T>::exists(const T* const object) const
+{
+  return (std::find(_objects.begin(), _objects.end(), object) != _objects.end());
+}
+
+
+/**
+ * @brief retrieves a List of BaseObjects
+ * @param list the list to push the ObjectList into.
+ */
+template <class T>
+void ObjectList<T>::getBaseObjectList(ObjectListBase::base_list* list) const
+{
+  assert (list != NULL);
+  const_iterator it;
+  for (it = this->_objects.begin(); it != this->_objects.end(); ++it)
+    list->push_back(*it);
+}
+
+
+/**
+ * @brief registers an Object to the ObjectList.
+ * @param T object the Object to register.
+ * @returns a pointer to the iterator inside of the list.
+ */
+template <class T>
+ObjectListBase::IteratorBase* ObjectList<T>::registerObject(T* object)
+{
+  this->_objects.push_back(object);
+  return new Iterator(--this->_objects.end());
+}
+
+/**
+ * @brief removes an Object from the ClassList.
+ * @param iterator the Position at which to remove the Object.
+ */
+template <class T>
+void ObjectList<T>::unregisterObject(IteratorBase* iterator)
+{
+  this->_objects.erase(static_cast<Iterator*>(iterator)->it());
+  //_objects.erase(std::find(_objects.begin(), _objects.end(), object));
+}
+
+#endif /* _OBJECT_LIST_H */
Index: branches/new_class_id/src/lib/lang/test_object_list.cc
===================================================================
--- branches/new_class_id/src/lib/lang/test_object_list.cc	(revision 9715)
+++ branches/new_class_id/src/lib/lang/test_object_list.cc	(revision 9716)
@@ -1,4 +1,4 @@
-#include "new_class_id.h"
-#include "new_object_list.h"
+#include "class_id.h"
+#include "object_list.h"
 #include <iostream>
 
Index: branches/new_class_id/src/lib/network/network_stream.cc
===================================================================
--- branches/new_class_id/src/lib/network/network_stream.cc	(revision 9715)
+++ branches/new_class_id/src/lib/network/network_stream.cc	(revision 9716)
@@ -1194,5 +1194,5 @@
           }
           else
-	    ; /// FIXME NEW_CLASS_ID :: b = Factory::fabricate( leafClassId );
+	    ; /// FIXME CLASS_ID :: b = Factory::fabricate( leafClassId );
 
           if ( !b )
Index: branches/new_class_id/src/lib/network/player_stats.cc
===================================================================
--- branches/new_class_id/src/lib/network/player_stats.cc	(revision 9715)
+++ branches/new_class_id/src/lib/network/player_stats.cc	(revision 9716)
@@ -30,5 +30,5 @@
 #include "shell_command.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(PlayerStats, CL_PLAYER_STATS);
Index: branches/new_class_id/src/lib/particles/box_emitter.cc
===================================================================
--- branches/new_class_id/src/lib/particles/box_emitter.cc	(revision 9715)
+++ branches/new_class_id/src/lib/particles/box_emitter.cc	(revision 9716)
@@ -24,5 +24,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(BoxEmitter, CL_BOX_EMITTER);
Index: branches/new_class_id/src/lib/particles/dot_emitter.cc
===================================================================
--- branches/new_class_id/src/lib/particles/dot_emitter.cc	(revision 9715)
+++ branches/new_class_id/src/lib/particles/dot_emitter.cc	(revision 9716)
@@ -26,5 +26,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(DotEmitter, CL_DOT_EMITTER);
 CREATE_FACTORY(DotEmitter);
Index: branches/new_class_id/src/lib/particles/dot_particles.cc
===================================================================
--- branches/new_class_id/src/lib/particles/dot_particles.cc	(revision 9715)
+++ branches/new_class_id/src/lib/particles/dot_particles.cc	(revision 9716)
@@ -24,5 +24,5 @@
 #include "shell_command.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(DotParticles, CL_DOT_PARTICLES);
Index: branches/new_class_id/src/lib/particles/model_particles.cc
===================================================================
--- branches/new_class_id/src/lib/particles/model_particles.cc	(revision 9715)
+++ branches/new_class_id/src/lib/particles/model_particles.cc	(revision 9716)
@@ -24,5 +24,5 @@
 #include "shell_command.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(ModelParticles, CL_MODEL_PARTICLES);
Index: branches/new_class_id/src/lib/particles/plane_emitter.cc
===================================================================
--- branches/new_class_id/src/lib/particles/plane_emitter.cc	(revision 9715)
+++ branches/new_class_id/src/lib/particles/plane_emitter.cc	(revision 9716)
@@ -24,5 +24,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(PlaneEmitter, CL_PLANE_EMITTER);
Index: branches/new_class_id/src/lib/particles/spark_particles.cc
===================================================================
--- branches/new_class_id/src/lib/particles/spark_particles.cc	(revision 9715)
+++ branches/new_class_id/src/lib/particles/spark_particles.cc	(revision 9716)
@@ -24,5 +24,5 @@
 #include "shell_command.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(SparkParticles, CL_SPARK_PARTICLES);
Index: branches/new_class_id/src/lib/particles/sprite_particles.cc
===================================================================
--- branches/new_class_id/src/lib/particles/sprite_particles.cc	(revision 9715)
+++ branches/new_class_id/src/lib/particles/sprite_particles.cc	(revision 9716)
@@ -24,5 +24,5 @@
 #include "shell_command.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(SpriteParticles, CL_SPRITE_PARTICLES);
Index: branches/new_class_id/src/lib/physics/fields/gravity.cc
===================================================================
--- branches/new_class_id/src/lib/physics/fields/gravity.cc	(revision 9715)
+++ branches/new_class_id/src/lib/physics/fields/gravity.cc	(revision 9716)
@@ -21,5 +21,5 @@
 #include "util/loading/factory.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Gravity, CL_FIELD_GRAVITY);
 
Index: branches/new_class_id/src/lib/physics/fields/point_gravity.cc
===================================================================
--- branches/new_class_id/src/lib/physics/fields/point_gravity.cc	(revision 9715)
+++ branches/new_class_id/src/lib/physics/fields/point_gravity.cc	(revision 9716)
@@ -20,5 +20,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(PointGravity, CL_FIELD_POINT_GRAVITY);
 
Index: branches/new_class_id/src/lib/physics/fields/twirl.cc
===================================================================
--- branches/new_class_id/src/lib/physics/fields/twirl.cc	(revision 9715)
+++ branches/new_class_id/src/lib/physics/fields/twirl.cc	(revision 9716)
@@ -20,5 +20,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Twirl, CL_FIELD_TWIRL);
 
Index: branches/new_class_id/src/lib/physics/physics_connection.cc
===================================================================
--- branches/new_class_id/src/lib/physics/physics_connection.cc	(revision 9715)
+++ branches/new_class_id/src/lib/physics/physics_connection.cc	(revision 9716)
@@ -27,5 +27,5 @@
 #include "util/loading/load_param.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinition(PhysicsConnection);
 CREATE_FACTORY(PhysicsConnection);
Index: branches/new_class_id/src/lib/util/loading/fast_factory.h
===================================================================
--- branches/new_class_id/src/lib/util/loading/fast_factory.h	(revision 9715)
+++ branches/new_class_id/src/lib/util/loading/fast_factory.h	(revision 9716)
@@ -33,5 +33,5 @@
  * Creates a FastFactory for a Class' static function named ClassName::fastFactory.
  * @param CLASS_NAME the name of the Class to create the fast-factory for.
- * @param CLASS_ID the ID of the class to create the fast-factory for @see "class_id.h"
+ * @param CLASS_ID the ID of the class to create the fast-factory for @see "class_id_DEPRECATED.h"
  *
  * notice, that the Class to be called, must implement:
Index: branches/new_class_id/src/story_entities/menu/game_menu.cc
===================================================================
--- branches/new_class_id/src/story_entities/menu/game_menu.cc	(revision 9715)
+++ branches/new_class_id/src/story_entities/menu/game_menu.cc	(revision 9716)
@@ -42,5 +42,5 @@
 #include "preferences.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 //! This creates a Factory to fabricate a GameMenu
 ObjectListDefinitionID(GameMenu, CL_GAME_MENU);
Index: branches/new_class_id/src/story_entities/movie_loader.cc
===================================================================
--- branches/new_class_id/src/story_entities/movie_loader.cc	(revision 9715)
+++ branches/new_class_id/src/story_entities/movie_loader.cc	(revision 9716)
@@ -25,5 +25,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(MovieLoader, CL_MOVIE_LOADER);
 CREATE_FACTORY(MovieLoader);
Index: branches/new_class_id/src/story_entities/multi_player_world.cc
===================================================================
--- branches/new_class_id/src/story_entities/multi_player_world.cc	(revision 9715)
+++ branches/new_class_id/src/story_entities/multi_player_world.cc	(revision 9716)
@@ -36,5 +36,5 @@
 SHELL_COMMAND(debug, MultiPlayerWorld, debug);
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 //! This creates a Factory to fabricate a MultiPlayerWorld
 ObjectListDefinitionID(MultiPlayerWorld, CL_MULTI_PLAYER_WORLD);
Index: branches/new_class_id/src/story_entities/single_player_world.cc
===================================================================
--- branches/new_class_id/src/story_entities/single_player_world.cc	(revision 9715)
+++ branches/new_class_id/src/story_entities/single_player_world.cc	(revision 9716)
@@ -29,5 +29,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 //! This creates a Factory to fabricate a SinglePlayerWorld
 ObjectListDefinitionID(SinglePlayerWorld, CL_SINGLE_PLAYER_WORLD);
Index: branches/new_class_id/src/subprojects/network/simple_sync.cc
===================================================================
--- branches/new_class_id/src/subprojects/network/simple_sync.cc	(revision 9715)
+++ branches/new_class_id/src/subprojects/network/simple_sync.cc	(revision 9716)
@@ -22,5 +22,5 @@
 #include "simple_sync.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 #include "loading/fast_factory.h"
 #include "lib/util/loading/factory.h"
Index: branches/new_class_id/src/util/kill_target.cc
===================================================================
--- branches/new_class_id/src/util/kill_target.cc	(revision 9715)
+++ branches/new_class_id/src/util/kill_target.cc	(revision 9716)
@@ -22,5 +22,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(KillTarget, CL_KILL_TARGET);
 CREATE_FACTORY(KillTarget);
Index: branches/new_class_id/src/util/multiplayer_team_deathmatch.cc
===================================================================
--- branches/new_class_id/src/util/multiplayer_team_deathmatch.cc	(revision 9715)
+++ branches/new_class_id/src/util/multiplayer_team_deathmatch.cc	(revision 9716)
@@ -48,5 +48,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(MultiplayerTeamDeathmatch, CL_MULTIPLAYER_TEAM_DEATHMATCH);
Index: branches/new_class_id/src/util/singleplayer_shootemup.cc
===================================================================
--- branches/new_class_id/src/util/singleplayer_shootemup.cc	(revision 9715)
+++ branches/new_class_id/src/util/singleplayer_shootemup.cc	(revision 9716)
@@ -25,5 +25,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(SingleplayerShootemup, CL_SINGLEPLAYER_SHOOTEMUP);
 CREATE_FACTORY(SingleplayerShootemup);
Index: branches/new_class_id/src/world_entities/bsp_entity.cc
===================================================================
--- branches/new_class_id/src/world_entities/bsp_entity.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/bsp_entity.cc	(revision 9716)
@@ -18,5 +18,5 @@
 #include "util/loading/resource_manager.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(BspEntity, CL_BSP_ENTITY);
 CREATE_FACTORY(BspEntity);
Index: branches/new_class_id/src/world_entities/creatures/fps_player.cc
===================================================================
--- branches/new_class_id/src/world_entities/creatures/fps_player.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/creatures/fps_player.cc	(revision 9716)
@@ -41,5 +41,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(FPSPlayer, CL_FPS_PLAYER);
 CREATE_FACTORY(FPSPlayer);
Index: branches/new_class_id/src/world_entities/creatures/md2_creature.cc
===================================================================
--- branches/new_class_id/src/world_entities/creatures/md2_creature.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/creatures/md2_creature.cc	(revision 9716)
@@ -37,5 +37,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(MD2Creature, CL_MD2_CREATURE);
 CREATE_FACTORY(MD2Creature);
Index: branches/new_class_id/src/world_entities/effects/billboard.cc
===================================================================
--- branches/new_class_id/src/world_entities/effects/billboard.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/effects/billboard.cc	(revision 9716)
@@ -26,5 +26,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Billboard, CL_BILLBOARD);
 CREATE_FACTORY(Billboard);
Index: branches/new_class_id/src/world_entities/effects/explosion.cc
===================================================================
--- branches/new_class_id/src/world_entities/effects/explosion.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/effects/explosion.cc	(revision 9716)
@@ -27,5 +27,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Explosion, CL_EXPLOSION);
 CREATE_FAST_FACTORY_STATIC(Explosion);
Index: branches/new_class_id/src/world_entities/effects/lightning_bolt.cc
===================================================================
--- branches/new_class_id/src/world_entities/effects/lightning_bolt.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/effects/lightning_bolt.cc	(revision 9716)
@@ -25,5 +25,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(LightningBolt, CL_LIGHTNING_BOLT);
 CREATE_FACTORY(LightningBolt);
Index: branches/new_class_id/src/world_entities/elements/image_entity.cc
===================================================================
--- branches/new_class_id/src/world_entities/elements/image_entity.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/elements/image_entity.cc	(revision 9716)
@@ -30,5 +30,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(ImageEntity, CL_IMAGE_ENTITY);
 CREATE_FACTORY(ImageEntity);
Index: branches/new_class_id/src/world_entities/elements/text_element.cc
===================================================================
--- branches/new_class_id/src/world_entities/elements/text_element.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/elements/text_element.cc	(revision 9716)
@@ -27,5 +27,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(TextElement, CL_TEXT_ELEMENT);
 CREATE_FACTORY(TextElement);
Index: branches/new_class_id/src/world_entities/environment.cc
===================================================================
--- branches/new_class_id/src/world_entities/environment.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/environment.cc	(revision 9716)
@@ -26,5 +26,5 @@
 #include "util/loading/factory.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Environment, CL_ENVIRONMENT);
 CREATE_FACTORY(Environment);
Index: branches/new_class_id/src/world_entities/environments/building.cc
===================================================================
--- branches/new_class_id/src/world_entities/environments/building.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/environments/building.cc	(revision 9716)
@@ -23,5 +23,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Building, CL_BUILDING);
 CREATE_FACTORY(Building);
Index: branches/new_class_id/src/world_entities/environments/mapped_water.cc
===================================================================
--- branches/new_class_id/src/world_entities/environments/mapped_water.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/environments/mapped_water.cc	(revision 9716)
@@ -25,5 +25,5 @@
 #include "script_class.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(MappedWater, CL_MAPPED_WATER);
 CREATE_FACTORY(MappedWater);
Index: branches/new_class_id/src/world_entities/environments/model_entity.cc
===================================================================
--- branches/new_class_id/src/world_entities/environments/model_entity.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/environments/model_entity.cc	(revision 9716)
@@ -23,5 +23,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(ModelEntity, CL_MODEL_ENTITY);
 CREATE_FACTORY(ModelEntity);
Index: branches/new_class_id/src/world_entities/environments/water.cc
===================================================================
--- branches/new_class_id/src/world_entities/environments/water.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/environments/water.cc	(revision 9716)
@@ -33,5 +33,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Water, CL_WATER);
 CREATE_FACTORY(Water);
Index: branches/new_class_id/src/world_entities/movie_entity.cc
===================================================================
--- branches/new_class_id/src/world_entities/movie_entity.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/movie_entity.cc	(revision 9716)
@@ -21,5 +21,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(MovieEntity, CL_MOVIE_ENTITY);
 CREATE_FACTORY(MovieEntity);
Index: branches/new_class_id/src/world_entities/npcs/attractor_mine.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/attractor_mine.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/attractor_mine.cc	(revision 9716)
@@ -33,5 +33,5 @@
 #include "effects/explosion.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(AttractorMine, CL_ATTRACTOR_MINE);
 CREATE_FACTORY(AttractorMine);
Index: branches/new_class_id/src/world_entities/npcs/door.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/door.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/door.cc	(revision 9716)
@@ -26,5 +26,5 @@
 #include "door.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Door, CL_DOOR);
 CREATE_FACTORY(Door);
Index: branches/new_class_id/src/world_entities/npcs/gate.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/gate.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/gate.cc	(revision 9716)
@@ -31,5 +31,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Gate, CL_GATE);
 CREATE_FACTORY(Gate);
Index: branches/new_class_id/src/world_entities/npcs/generic_npc.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/generic_npc.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/generic_npc.cc	(revision 9716)
@@ -32,5 +32,5 @@
 #include "bsp_entity.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(GenericNPC, CL_GENERIC_NPC);
 CREATE_FACTORY(GenericNPC);
Index: branches/new_class_id/src/world_entities/npcs/ground_turret.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/ground_turret.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/ground_turret.cc	(revision 9716)
@@ -29,5 +29,5 @@
 #include "effects/explosion.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 
 ObjectListDefinitionID(GroundTurret, CL_GROUND_TURRET);
Index: branches/new_class_id/src/world_entities/npcs/network_turret.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/network_turret.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/network_turret.cc	(revision 9716)
@@ -31,5 +31,5 @@
 #include "weapons/aiming_turret.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(NetworkTurret, CL_NETWORK_TURRET);
 CREATE_FACTORY(NetworkTurret);
Index: branches/new_class_id/src/world_entities/npcs/npc_test.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/npc_test.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/npc_test.cc	(revision 9716)
@@ -30,5 +30,5 @@
 #include "effects/explosion.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(NPC2, CL_NPC_TEST2);
 CREATE_FACTORY(NPC2);
Index: branches/new_class_id/src/world_entities/npcs/repair_station.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/repair_station.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/repair_station.cc	(revision 9716)
@@ -26,5 +26,5 @@
 #include "repair_station.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(RepairStation, CL_DOOR +1 );
 CREATE_FACTORY(RepairStation);
Index: branches/new_class_id/src/world_entities/npcs/space_turret.cc
===================================================================
--- branches/new_class_id/src/world_entities/npcs/space_turret.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/npcs/space_turret.cc	(revision 9716)
@@ -29,5 +29,5 @@
 #include "effects/explosion.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(SpaceTurret, CL_SPACE_TURRET);
 CREATE_FACTORY(SpaceTurret);
Index: branches/new_class_id/src/world_entities/planet.cc
===================================================================
--- branches/new_class_id/src/world_entities/planet.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/planet.cc	(revision 9716)
@@ -32,5 +32,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Planet, CL_PLANET);
 CREATE_FACTORY(Planet);
Index: branches/new_class_id/src/world_entities/power_ups/laser_power_up.cc
===================================================================
--- branches/new_class_id/src/world_entities/power_ups/laser_power_up.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/power_ups/laser_power_up.cc	(revision 9716)
@@ -24,5 +24,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(LaserPowerUp, CL_LASER_POWER_UP);
 CREATE_FACTORY(LaserPowerUp);
Index: branches/new_class_id/src/world_entities/power_ups/param_power_up.cc
===================================================================
--- branches/new_class_id/src/world_entities/power_ups/param_power_up.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/power_ups/param_power_up.cc	(revision 9716)
@@ -27,5 +27,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(ParamPowerUp, CL_PARAM_POWER_UP);
 CREATE_FACTORY(ParamPowerUp);
Index: branches/new_class_id/src/world_entities/power_ups/turret_power_up.cc
===================================================================
--- branches/new_class_id/src/world_entities/power_ups/turret_power_up.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/power_ups/turret_power_up.cc	(revision 9716)
@@ -24,5 +24,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(TurretPowerUp, CL_TURRET_POWER_UP);
 CREATE_FACTORY(TurretPowerUp);
Index: branches/new_class_id/src/world_entities/power_ups/weapon_power_up.cc
===================================================================
--- branches/new_class_id/src/world_entities/power_ups/weapon_power_up.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/power_ups/weapon_power_up.cc	(revision 9716)
@@ -27,5 +27,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(WeaponPowerUp, CL_WEAPON_POWER_UP);
 CREATE_FACTORY(WeaponPowerUp);
Index: branches/new_class_id/src/world_entities/projectiles/bomb.cc
===================================================================
--- branches/new_class_id/src/world_entities/projectiles/bomb.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/projectiles/bomb.cc	(revision 9716)
@@ -25,5 +25,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Bomb, CL_BOMB);
 CREATE_FAST_FACTORY_STATIC(Bomb);
Index: branches/new_class_id/src/world_entities/projectiles/boomerang_projectile.cc
===================================================================
--- branches/new_class_id/src/world_entities/projectiles/boomerang_projectile.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/projectiles/boomerang_projectile.cc	(revision 9716)
@@ -26,5 +26,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(BoomerangProjectile, CL_BOOMERANG_PROJECTILE);
 CREATE_FAST_FACTORY_STATIC(BoomerangProjectile);
Index: branches/new_class_id/src/world_entities/projectiles/guided_missile.cc
===================================================================
--- branches/new_class_id/src/world_entities/projectiles/guided_missile.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/projectiles/guided_missile.cc	(revision 9716)
@@ -25,5 +25,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(GuidedMissile, CL_GUIDED_MISSILE);
 CREATE_FAST_FACTORY_STATIC(GuidedMissile);
Index: branches/new_class_id/src/world_entities/projectiles/hyperblast.cc
===================================================================
--- branches/new_class_id/src/world_entities/projectiles/hyperblast.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/projectiles/hyperblast.cc	(revision 9716)
@@ -25,5 +25,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Hyperblast, CL_HYPERBLAST);
 CREATE_FAST_FACTORY_STATIC(Hyperblast);
Index: branches/new_class_id/src/world_entities/projectiles/laser.cc
===================================================================
--- branches/new_class_id/src/world_entities/projectiles/laser.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/projectiles/laser.cc	(revision 9716)
@@ -28,5 +28,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinition(Laser);
 CREATE_FAST_FACTORY_STATIC(Laser);
Index: branches/new_class_id/src/world_entities/projectiles/rail_projectile.cc
===================================================================
--- branches/new_class_id/src/world_entities/projectiles/rail_projectile.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/projectiles/rail_projectile.cc	(revision 9716)
@@ -28,5 +28,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(RailProjectile, CL_RAIL_PROJECTILE);
 CREATE_FAST_FACTORY_STATIC(RailProjectile);
Index: branches/new_class_id/src/world_entities/projectiles/rocket.cc
===================================================================
--- branches/new_class_id/src/world_entities/projectiles/rocket.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/projectiles/rocket.cc	(revision 9716)
@@ -25,5 +25,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Rocket, CL_ROCKET);
 CREATE_FAST_FACTORY_STATIC(Rocket);
Index: branches/new_class_id/src/world_entities/projectiles/test_bullet.cc
===================================================================
--- branches/new_class_id/src/world_entities/projectiles/test_bullet.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/projectiles/test_bullet.cc	(revision 9716)
@@ -24,5 +24,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(TestBullet, CL_TEST_BULLET);
 CREATE_FAST_FACTORY_STATIC(TestBullet);
Index: branches/new_class_id/src/world_entities/recorder.cc
===================================================================
--- branches/new_class_id/src/world_entities/recorder.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/recorder.cc	(revision 9716)
@@ -22,5 +22,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Recorder, CL_RECORDER);
 CREATE_FACTORY(Recorder);
Index: branches/new_class_id/src/world_entities/skybox.cc
===================================================================
--- branches/new_class_id/src/world_entities/skybox.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/skybox.cc	(revision 9716)
@@ -31,5 +31,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(SkyBox, CL_SKYBOX);
 CREATE_FACTORY(SkyBox);
Index: branches/new_class_id/src/world_entities/space_ships/collision_probe.cc
===================================================================
--- branches/new_class_id/src/world_entities/space_ships/collision_probe.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/space_ships/collision_probe.cc	(revision 9716)
@@ -24,5 +24,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(CollisionProbe, CL_COLLISION_PROBE);
 
Index: branches/new_class_id/src/world_entities/space_ships/cruizer.cc
===================================================================
--- branches/new_class_id/src/world_entities/space_ships/cruizer.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/space_ships/cruizer.cc	(revision 9716)
@@ -34,5 +34,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Cruizer, CL_CRUIZER);
 CREATE_FACTORY(Cruizer);
Index: branches/new_class_id/src/world_entities/space_ships/helicopter.cc
===================================================================
--- branches/new_class_id/src/world_entities/space_ships/helicopter.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/space_ships/helicopter.cc	(revision 9716)
@@ -34,5 +34,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Helicopter, CL_HELICOPTER);
 CREATE_FACTORY(Helicopter);
Index: branches/new_class_id/src/world_entities/space_ships/hover.cc
===================================================================
--- branches/new_class_id/src/world_entities/space_ships/hover.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/space_ships/hover.cc	(revision 9716)
@@ -34,5 +34,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Hover, CL_HOVER);
 CREATE_FACTORY(Hover);
Index: branches/new_class_id/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/new_class_id/src/world_entities/space_ships/space_ship.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/space_ships/space_ship.cc	(revision 9716)
@@ -53,5 +53,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(SpaceShip, CL_SPACE_SHIP);
 CREATE_FACTORY(SpaceShip);
Index: branches/new_class_id/src/world_entities/space_ships/spacecraft_2d.cc
===================================================================
--- branches/new_class_id/src/world_entities/space_ships/spacecraft_2d.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/space_ships/spacecraft_2d.cc	(revision 9716)
@@ -38,5 +38,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Spacecraft2D, CL_SPACECRAFT_2D);
 CREATE_FACTORY(Spacecraft2D);
Index: branches/new_class_id/src/world_entities/space_ships/turbine_hover.cc
===================================================================
--- branches/new_class_id/src/world_entities/space_ships/turbine_hover.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/space_ships/turbine_hover.cc	(revision 9716)
@@ -34,5 +34,5 @@
 #include "debug.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(TurbineHover, CL_TURBINE_HOVER);
 CREATE_FACTORY(TurbineHover);
Index: branches/new_class_id/src/world_entities/spawning_point.cc
===================================================================
--- branches/new_class_id/src/world_entities/spawning_point.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/spawning_point.cc	(revision 9716)
@@ -33,5 +33,5 @@
 #include "converter.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(SpawningPoint, CL_SPAWNING_POINT);
 CREATE_FACTORY( SpawningPoint);
Index: branches/new_class_id/src/world_entities/spectator.cc
===================================================================
--- branches/new_class_id/src/world_entities/spectator.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/spectator.cc	(revision 9716)
@@ -22,5 +22,5 @@
 #include "shared_network_data.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Spectator, CL_SPECTATOR);
 CREATE_FACTORY(Spectator);
Index: branches/new_class_id/src/world_entities/terrain.cc
===================================================================
--- branches/new_class_id/src/world_entities/terrain.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/terrain.cc	(revision 9716)
@@ -34,5 +34,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Terrain, CL_TERRAIN);
 CREATE_FACTORY(Terrain);
Index: branches/new_class_id/src/world_entities/test_entity.cc
===================================================================
--- branches/new_class_id/src/world_entities/test_entity.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/test_entity.cc	(revision 9716)
@@ -35,5 +35,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinition(TestEntity);
 CREATE_FACTORY(TestEntity);
Index: branches/new_class_id/src/world_entities/weapons/aiming_turret.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/aiming_turret.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/aiming_turret.cc	(revision 9716)
@@ -27,5 +27,5 @@
 #include "util/loading/factory.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(AimingTurret, CL_AIMING_TURRET);
 CREATE_FACTORY(AimingTurret);
Index: branches/new_class_id/src/world_entities/weapons/boomerang_gun.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/boomerang_gun.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/boomerang_gun.cc	(revision 9716)
@@ -27,5 +27,5 @@
 #include "util/loading/factory.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(BoomerangGun, CL_BOOMERANG_GUN);
 CREATE_FACTORY(BoomerangGun);
Index: branches/new_class_id/src/world_entities/weapons/cannon.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/cannon.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/cannon.cc	(revision 9716)
@@ -36,5 +36,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Cannon, CL_CANNON);
 CREATE_FACTORY(Cannon);
Index: branches/new_class_id/src/world_entities/weapons/fps_sniper_rifle.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/fps_sniper_rifle.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/fps_sniper_rifle.cc	(revision 9716)
@@ -39,5 +39,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(FPSSniperRifle, CL_FPS_SNIPER_RIFLE);
 CREATE_FACTORY(FPSSniperRifle);
Index: branches/new_class_id/src/world_entities/weapons/hyperblaster.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/hyperblaster.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/hyperblaster.cc	(revision 9716)
@@ -35,5 +35,5 @@
 
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Hyperblaster, CL_HYPERBLASTER);
 CREATE_FACTORY(Hyperblaster);
Index: branches/new_class_id/src/world_entities/weapons/laser_cannon.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/laser_cannon.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/laser_cannon.cc	(revision 9716)
@@ -31,5 +31,5 @@
 #include "loading/fast_factory.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(LaserCannon, CL_LASER_CANNON);
 CREATE_FACTORY(LaserCannon);
Index: branches/new_class_id/src/world_entities/weapons/targeting_turret.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/targeting_turret.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/targeting_turret.cc	(revision 9716)
@@ -26,5 +26,5 @@
 #include "util/loading/factory.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(TargetingTurret, CL_TARGETING_TURRET);
 CREATE_FACTORY(TargetingTurret);
Index: branches/new_class_id/src/world_entities/weapons/test_gun.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/test_gun.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/test_gun.cc	(revision 9716)
@@ -33,5 +33,5 @@
 #include "loading/fast_factory.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(TestGun, CL_TEST_GUN);
 CREATE_FACTORY(TestGun);
Index: branches/new_class_id/src/world_entities/weapons/turret.cc
===================================================================
--- branches/new_class_id/src/world_entities/weapons/turret.cc	(revision 9715)
+++ branches/new_class_id/src/world_entities/weapons/turret.cc	(revision 9716)
@@ -27,5 +27,5 @@
 #include "util/loading/factory.h"
 
-#include "class_id.h"
+#include "class_id_DEPRECATED.h"
 ObjectListDefinitionID(Turret, CL_TURRET);
 CREATE_FACTORY(Turret);
