[Orxonox-commit 664] r3196 - in trunk: . bin cmake doc doc/api src src/bullet src/ceguilua src/core src/core/input src/cpptcl src/network src/network/packet src/ogreceguirenderer src/ois src/orxonox src/orxonox/gamestates src/orxonox/gui src/orxonox/interfaces src/orxonox/objects src/orxonox/objects/collisionshapes src/orxonox/objects/controllers src/orxonox/objects/gametypes src/orxonox/objects/infos src/orxonox/objects/items src/orxonox/objects/pickup src/orxonox/objects/pickup/items src/orxonox/objects/quest src/orxonox/objects/weaponsystem src/orxonox/objects/weaponsystem/munitions src/orxonox/objects/weaponsystem/projectiles src/orxonox/objects/weaponsystem/weaponmodes src/orxonox/objects/worldentities src/orxonox/objects/worldentities/pawns src/orxonox/objects/worldentities/triggers src/orxonox/overlays src/orxonox/overlays/console src/orxonox/overlays/debug src/orxonox/overlays/hud src/orxonox/overlays/map src/orxonox/overlays/notifications src/orxonox/overlays/stats src/orxonox/sound src/orxonox/tools src/tinyxml src/tolua src/util

rgrieder at orxonox.net rgrieder at orxonox.net
Sat Jun 20 09:20:52 CEST 2009


Author: rgrieder
Date: 2009-06-20 09:20:47 +0200 (Sat, 20 Jun 2009)
New Revision: 3196

Added:
   trunk/bin/vld.ini.in
   trunk/cmake/CapitaliseName.cmake
   trunk/cmake/GetGCCCompilerFlags.cmake
   trunk/cmake/PackageConfig.cmake
   trunk/cmake/ParseMacroArguments.cmake
   trunk/cmake/PrecompiledHeaderFiles.cmake
   trunk/cmake/SeparateFlags.cmake
   trunk/cmake/SetCacheAdvanced.cmake
   trunk/cmake/TargetUtilities.cmake
   trunk/doc/api/dot/
   trunk/doc/api/examples/
   trunk/doc/api/images/
   trunk/doc/api/main.dox
   trunk/src/core/CorePrecompiledHeaders.h
   trunk/src/network/NetworkPrecompiledHeaders.h
   trunk/src/orxonox/OrxonoxPrecompiledHeaders.h
   trunk/src/orxonox/interfaces/
   trunk/src/orxonox/interfaces/CMakeLists.txt
   trunk/src/orxonox/interfaces/GametypeMessageListener.h
   trunk/src/orxonox/interfaces/InterfaceCompilation.cc
   trunk/src/orxonox/interfaces/PawnListener.h
   trunk/src/orxonox/interfaces/RadarListener.h
   trunk/src/orxonox/interfaces/RadarViewable.cc
   trunk/src/orxonox/interfaces/RadarViewable.h
   trunk/src/orxonox/interfaces/Rewardable.h
   trunk/src/orxonox/interfaces/TeamColourable.h
   trunk/src/orxonox/interfaces/Tickable.h
   trunk/src/orxonox/interfaces/TimeFactorListener.h
   trunk/src/orxonox/interfaces/WindowEventListener.h
   trunk/src/orxonox/orxonox.vcproj.user.in
   trunk/src/orxonox/tools/DynamicLines.cc
   trunk/src/orxonox/tools/DynamicRenderable.cc
   trunk/src/util/OgreForwardRefs.h
   trunk/src/util/OrxAssert.h
   trunk/src/util/UTFStringConversions.h
Removed:
   trunk/archlinux/
   trunk/cmake/InstallUtilities.cmake
   trunk/doc/examples/
   trunk/doc/images/
   trunk/src/core/XMLIncludes.h
   trunk/src/core/input/CalibratorCallback.cc
   trunk/src/core/input/CalibratorCallback.h
   trunk/src/network/TODO
   trunk/src/orxonox/interfaces/CMakeLists.txt
   trunk/src/orxonox/interfaces/GametypeMessageListener.h
   trunk/src/orxonox/interfaces/InterfaceCompilation.cc
   trunk/src/orxonox/interfaces/PawnListener.h
   trunk/src/orxonox/interfaces/RadarListener.h
   trunk/src/orxonox/interfaces/RadarViewable.cc
   trunk/src/orxonox/interfaces/RadarViewable.h
   trunk/src/orxonox/interfaces/Rewardable.h
   trunk/src/orxonox/interfaces/TeamColourable.h
   trunk/src/orxonox/interfaces/Tickable.h
   trunk/src/orxonox/interfaces/TimeFactorListener.h
   trunk/src/orxonox/interfaces/WindowEventListener.h
   trunk/src/orxonox/objects/GametypeMessageListener.cc
   trunk/src/orxonox/objects/GametypeMessageListener.h
   trunk/src/orxonox/objects/RadarListener.cc
   trunk/src/orxonox/objects/RadarListener.h
   trunk/src/orxonox/objects/RadarViewable.cc
   trunk/src/orxonox/objects/RadarViewable.h
   trunk/src/orxonox/objects/Teamcolourable.cc
   trunk/src/orxonox/objects/Teamcolourable.h
   trunk/src/orxonox/objects/Tickable.cc
   trunk/src/orxonox/objects/Tickable.h
   trunk/src/orxonox/objects/quest/Rewardable.cc
   trunk/src/orxonox/objects/quest/Rewardable.h
   trunk/src/orxonox/orxonox.vcproj.user
   trunk/src/orxonox/overlays/stats/StatsTest.cc
   trunk/src/orxonox/overlays/stats/StatsTest.h
   trunk/src/orxonox/tools/DynamicLines.cpp
   trunk/src/orxonox/tools/DynamicRenderable.cpp
   trunk/src/orxonox/tools/TimeFactorListener.cc
   trunk/src/orxonox/tools/TimeFactorListener.h
   trunk/src/orxonox/tools/WindowEventListener.cc
   trunk/src/orxonox/tools/WindowEventListener.h
Modified:
   trunk/
   trunk/bin/CMakeLists.txt
   trunk/cmake/BuildConfig.cmake
   trunk/cmake/BuildConfigGCC.cmake
   trunk/cmake/BuildConfigMSVC.cmake
   trunk/cmake/FlagUtilities.cmake
   trunk/cmake/GenerateToluaBindings.cmake
   trunk/cmake/LibraryConfig.cmake
   trunk/cmake/PackageConfigMSVC.cmake
   trunk/cmake/PackageConfigMinGW.cmake
   trunk/doc/api/CMakeLists.txt
   trunk/doc/api/doxy.config.in
   trunk/src/CMakeLists.txt
   trunk/src/OrxonoxConfig.h.in
   trunk/src/SpecialConfig.h.in
   trunk/src/bullet/CMakeLists.txt
   trunk/src/ceguilua/CMakeLists.txt
   trunk/src/core/ArgumentCompletionFunctions.cc
   trunk/src/core/ArgumentCompletionListElement.h
   trunk/src/core/BaseObject.cc
   trunk/src/core/BaseObject.h
   trunk/src/core/CMakeLists.txt
   trunk/src/core/ClassFactory.h
   trunk/src/core/ClassTreeMask.cc
   trunk/src/core/ClassTreeMask.h
   trunk/src/core/Clock.cc
   trunk/src/core/Clock.h
   trunk/src/core/CommandEvaluation.cc
   trunk/src/core/CommandExecutor.cc
   trunk/src/core/CommandExecutor.h
   trunk/src/core/CommandLine.cc
   trunk/src/core/CommandLine.h
   trunk/src/core/ConfigFileManager.cc
   trunk/src/core/ConfigFileManager.h
   trunk/src/core/ConfigValueContainer.cc
   trunk/src/core/ConfigValueContainer.h
   trunk/src/core/ConsoleCommand.h
   trunk/src/core/ConsoleCommandCompilation.cc
   trunk/src/core/ConsoleCommandCompilation.h
   trunk/src/core/Core.cc
   trunk/src/core/Core.h
   trunk/src/core/CoreIncludes.h
   trunk/src/core/CorePrereqs.h
   trunk/src/core/Event.cc
   trunk/src/core/Event.h
   trunk/src/core/EventIncludes.h
   trunk/src/core/Executor.cc
   trunk/src/core/Executor.h
   trunk/src/core/Factory.cc
   trunk/src/core/Functor.h
   trunk/src/core/Game.cc
   trunk/src/core/Game.h
   trunk/src/core/GameState.cc
   trunk/src/core/GameState.h
   trunk/src/core/IRC.cc
   trunk/src/core/IRC.h
   trunk/src/core/Identifier.cc
   trunk/src/core/Identifier.h
   trunk/src/core/Iterator.h
   trunk/src/core/Language.cc
   trunk/src/core/Loader.cc
   trunk/src/core/Loader.h
   trunk/src/core/LuaBind.cc
   trunk/src/core/LuaBind.h
   trunk/src/core/MetaObjectList.cc
   trunk/src/core/Namespace.cc
   trunk/src/core/Namespace.h
   trunk/src/core/ObjectListBase.cc
   trunk/src/core/ObjectListBase.h
   trunk/src/core/ObjectListIterator.h
   trunk/src/core/OrxonoxClass.cc
   trunk/src/core/OrxonoxClass.h
   trunk/src/core/Shell.cc
   trunk/src/core/Shell.h
   trunk/src/core/Super.h
   trunk/src/core/TclBind.cc
   trunk/src/core/TclBind.h
   trunk/src/core/TclThreadManager.cc
   trunk/src/core/TclThreadManager.h
   trunk/src/core/Template.cc
   trunk/src/core/Template.h
   trunk/src/core/XMLFile.h
   trunk/src/core/XMLPort.cc
   trunk/src/core/XMLPort.h
   trunk/src/core/input/CMakeLists.txt
   trunk/src/core/input/ExtendedInputState.cc
   trunk/src/core/input/ExtendedInputState.h
   trunk/src/core/input/HalfAxis.h
   trunk/src/core/input/InputBuffer.cc
   trunk/src/core/input/InputBuffer.h
   trunk/src/core/input/InputCommands.cc
   trunk/src/core/input/InputInterfaces.h
   trunk/src/core/input/InputManager.cc
   trunk/src/core/input/InputManager.h
   trunk/src/core/input/InputState.h
   trunk/src/core/input/KeyBinder.cc
   trunk/src/core/input/KeyBinder.h
   trunk/src/core/input/KeyDetector.cc
   trunk/src/core/input/KeyDetector.h
   trunk/src/core/input/SimpleInputState.cc
   trunk/src/core/input/SimpleInputState.h
   trunk/src/cpptcl/CMakeLists.txt
   trunk/src/network/CMakeLists.txt
   trunk/src/network/GamestateClient.cc
   trunk/src/network/Host.h
   trunk/src/network/NetworkFunction.h
   trunk/src/network/Server.cc
   trunk/src/network/packet/Gamestate.cc
   trunk/src/ogreceguirenderer/CMakeLists.txt
   trunk/src/ois/CMakeLists.txt
   trunk/src/orxonox/CMakeLists.txt
   trunk/src/orxonox/CameraManager.cc
   trunk/src/orxonox/CameraManager.h
   trunk/src/orxonox/GraphicsManager.cc
   trunk/src/orxonox/GraphicsManager.h
   trunk/src/orxonox/LevelManager.cc
   trunk/src/orxonox/LevelManager.h
   trunk/src/orxonox/Main.cc
   trunk/src/orxonox/OrxonoxPrereqs.h
   trunk/src/orxonox/PawnManager.cc
   trunk/src/orxonox/PawnManager.h
   trunk/src/orxonox/PlayerManager.cc
   trunk/src/orxonox/PlayerManager.h
   trunk/src/orxonox/gamestates/GSClient.cc
   trunk/src/orxonox/gamestates/GSClient.h
   trunk/src/orxonox/gamestates/GSDedicated.cc
   trunk/src/orxonox/gamestates/GSDedicated.h
   trunk/src/orxonox/gamestates/GSGraphics.cc
   trunk/src/orxonox/gamestates/GSGraphics.h
   trunk/src/orxonox/gamestates/GSIOConsole.cc
   trunk/src/orxonox/gamestates/GSLevel.cc
   trunk/src/orxonox/gamestates/GSLevel.h
   trunk/src/orxonox/gamestates/GSMainMenu.cc
   trunk/src/orxonox/gamestates/GSMainMenu.h
   trunk/src/orxonox/gamestates/GSRoot.cc
   trunk/src/orxonox/gamestates/GSRoot.h
   trunk/src/orxonox/gamestates/GSServer.cc
   trunk/src/orxonox/gamestates/GSServer.h
   trunk/src/orxonox/gamestates/GSStandalone.cc
   trunk/src/orxonox/gui/GUIManager.cc
   trunk/src/orxonox/gui/GUIManager.h
   trunk/src/orxonox/objects/CMakeLists.txt
   trunk/src/orxonox/objects/EventDispatcher.cc
   trunk/src/orxonox/objects/EventDispatcher.h
   trunk/src/orxonox/objects/EventListener.cc
   trunk/src/orxonox/objects/EventListener.h
   trunk/src/orxonox/objects/EventTarget.cc
   trunk/src/orxonox/objects/EventTarget.h
   trunk/src/orxonox/objects/GlobalShader.cc
   trunk/src/orxonox/objects/Level.cc
   trunk/src/orxonox/objects/Level.h
   trunk/src/orxonox/objects/Radar.cc
   trunk/src/orxonox/objects/Radar.h
   trunk/src/orxonox/objects/Scene.cc
   trunk/src/orxonox/objects/Scene.h
   trunk/src/orxonox/objects/Script.cc
   trunk/src/orxonox/objects/Script.h
   trunk/src/orxonox/objects/Test.h
   trunk/src/orxonox/objects/collisionshapes/BoxCollisionShape.cc
   trunk/src/orxonox/objects/collisionshapes/BoxCollisionShape.h
   trunk/src/orxonox/objects/collisionshapes/CollisionShape.cc
   trunk/src/orxonox/objects/collisionshapes/CompoundCollisionShape.cc
   trunk/src/orxonox/objects/collisionshapes/CompoundCollisionShape.h
   trunk/src/orxonox/objects/collisionshapes/ConeCollisionShape.cc
   trunk/src/orxonox/objects/collisionshapes/ConeCollisionShape.h
   trunk/src/orxonox/objects/collisionshapes/PlaneCollisionShape.cc
   trunk/src/orxonox/objects/collisionshapes/PlaneCollisionShape.h
   trunk/src/orxonox/objects/collisionshapes/SphereCollisionShape.cc
   trunk/src/orxonox/objects/collisionshapes/SphereCollisionShape.h
   trunk/src/orxonox/objects/collisionshapes/WorldEntityCollisionShape.cc
   trunk/src/orxonox/objects/collisionshapes/WorldEntityCollisionShape.h
   trunk/src/orxonox/objects/controllers/AIController.cc
   trunk/src/orxonox/objects/controllers/AIController.h
   trunk/src/orxonox/objects/controllers/ArtificialController.cc
   trunk/src/orxonox/objects/controllers/ArtificialController.h
   trunk/src/orxonox/objects/controllers/Controller.cc
   trunk/src/orxonox/objects/controllers/Controller.h
   trunk/src/orxonox/objects/controllers/HumanController.cc
   trunk/src/orxonox/objects/controllers/HumanController.h
   trunk/src/orxonox/objects/controllers/PongAI.cc
   trunk/src/orxonox/objects/controllers/PongAI.h
   trunk/src/orxonox/objects/controllers/ScriptController.cc
   trunk/src/orxonox/objects/controllers/ScriptController.h
   trunk/src/orxonox/objects/controllers/WaypointController.cc
   trunk/src/orxonox/objects/controllers/WaypointController.h
   trunk/src/orxonox/objects/controllers/WaypointPatrolController.cc
   trunk/src/orxonox/objects/controllers/WaypointPatrolController.h
   trunk/src/orxonox/objects/gametypes/Asteroids.cc
   trunk/src/orxonox/objects/gametypes/Asteroids.h
   trunk/src/orxonox/objects/gametypes/Deathmatch.cc
   trunk/src/orxonox/objects/gametypes/Deathmatch.h
   trunk/src/orxonox/objects/gametypes/Gametype.cc
   trunk/src/orxonox/objects/gametypes/Gametype.h
   trunk/src/orxonox/objects/gametypes/Pong.cc
   trunk/src/orxonox/objects/gametypes/Pong.h
   trunk/src/orxonox/objects/gametypes/TeamBaseMatch.cc
   trunk/src/orxonox/objects/gametypes/TeamBaseMatch.h
   trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc
   trunk/src/orxonox/objects/gametypes/TeamDeathmatch.h
   trunk/src/orxonox/objects/gametypes/UnderAttack.cc
   trunk/src/orxonox/objects/gametypes/UnderAttack.h
   trunk/src/orxonox/objects/infos/Bot.cc
   trunk/src/orxonox/objects/infos/Bot.h
   trunk/src/orxonox/objects/infos/GametypeInfo.cc
   trunk/src/orxonox/objects/infos/GametypeInfo.h
   trunk/src/orxonox/objects/infos/HumanPlayer.cc
   trunk/src/orxonox/objects/infos/HumanPlayer.h
   trunk/src/orxonox/objects/infos/Info.cc
   trunk/src/orxonox/objects/infos/PlayerInfo.cc
   trunk/src/orxonox/objects/infos/PongBot.h
   trunk/src/orxonox/objects/items/Engine.cc
   trunk/src/orxonox/objects/items/Engine.h
   trunk/src/orxonox/objects/items/Item.cc
   trunk/src/orxonox/objects/items/Item.h
   trunk/src/orxonox/objects/items/MultiStateEngine.cc
   trunk/src/orxonox/objects/items/MultiStateEngine.h
   trunk/src/orxonox/objects/pickup/BaseItem.cc
   trunk/src/orxonox/objects/pickup/BaseItem.h
   trunk/src/orxonox/objects/pickup/DroppedItem.cc
   trunk/src/orxonox/objects/pickup/DroppedItem.h
   trunk/src/orxonox/objects/pickup/EquipmentItem.cc
   trunk/src/orxonox/objects/pickup/EquipmentItem.h
   trunk/src/orxonox/objects/pickup/ModifierPickup.cc
   trunk/src/orxonox/objects/pickup/ModifierPickup.h
   trunk/src/orxonox/objects/pickup/ModifierType.h
   trunk/src/orxonox/objects/pickup/PassiveItem.cc
   trunk/src/orxonox/objects/pickup/PassiveItem.h
   trunk/src/orxonox/objects/pickup/PickupCollection.cc
   trunk/src/orxonox/objects/pickup/PickupCollection.h
   trunk/src/orxonox/objects/pickup/PickupInventory.cc
   trunk/src/orxonox/objects/pickup/PickupInventory.h
   trunk/src/orxonox/objects/pickup/PickupSpawner.cc
   trunk/src/orxonox/objects/pickup/PickupSpawner.h
   trunk/src/orxonox/objects/pickup/UsableItem.cc
   trunk/src/orxonox/objects/pickup/UsableItem.h
   trunk/src/orxonox/objects/pickup/items/HealthImmediate.cc
   trunk/src/orxonox/objects/pickup/items/HealthImmediate.h
   trunk/src/orxonox/objects/pickup/items/HealthUsable.cc
   trunk/src/orxonox/objects/pickup/items/HealthUsable.h
   trunk/src/orxonox/objects/pickup/items/Jump.cc
   trunk/src/orxonox/objects/pickup/items/Jump.h
   trunk/src/orxonox/objects/quest/AddQuest.cc
   trunk/src/orxonox/objects/quest/AddQuest.h
   trunk/src/orxonox/objects/quest/AddQuestHint.cc
   trunk/src/orxonox/objects/quest/AddQuestHint.h
   trunk/src/orxonox/objects/quest/AddReward.cc
   trunk/src/orxonox/objects/quest/AddReward.h
   trunk/src/orxonox/objects/quest/CMakeLists.txt
   trunk/src/orxonox/objects/quest/ChangeQuestStatus.cc
   trunk/src/orxonox/objects/quest/ChangeQuestStatus.h
   trunk/src/orxonox/objects/quest/CompleteQuest.cc
   trunk/src/orxonox/objects/quest/CompleteQuest.h
   trunk/src/orxonox/objects/quest/FailQuest.cc
   trunk/src/orxonox/objects/quest/FailQuest.h
   trunk/src/orxonox/objects/quest/GlobalQuest.cc
   trunk/src/orxonox/objects/quest/GlobalQuest.h
   trunk/src/orxonox/objects/quest/LocalQuest.cc
   trunk/src/orxonox/objects/quest/LocalQuest.h
   trunk/src/orxonox/objects/quest/Quest.cc
   trunk/src/orxonox/objects/quest/Quest.h
   trunk/src/orxonox/objects/quest/QuestDescription.cc
   trunk/src/orxonox/objects/quest/QuestDescription.h
   trunk/src/orxonox/objects/quest/QuestEffect.cc
   trunk/src/orxonox/objects/quest/QuestEffect.h
   trunk/src/orxonox/objects/quest/QuestEffectBeacon.cc
   trunk/src/orxonox/objects/quest/QuestEffectBeacon.h
   trunk/src/orxonox/objects/quest/QuestHint.cc
   trunk/src/orxonox/objects/quest/QuestHint.h
   trunk/src/orxonox/objects/quest/QuestItem.cc
   trunk/src/orxonox/objects/quest/QuestItem.h
   trunk/src/orxonox/objects/quest/QuestListener.cc
   trunk/src/orxonox/objects/quest/QuestListener.h
   trunk/src/orxonox/objects/quest/QuestManager.cc
   trunk/src/orxonox/objects/quest/QuestManager.h
   trunk/src/orxonox/objects/quest/QuestNotification.cc
   trunk/src/orxonox/objects/quest/QuestNotification.h
   trunk/src/orxonox/objects/weaponsystem/DefaultWeaponmodeLink.cc
   trunk/src/orxonox/objects/weaponsystem/Munition.cc
   trunk/src/orxonox/objects/weaponsystem/Munition.h
   trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.cc
   trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.h
   trunk/src/orxonox/objects/weaponsystem/Weapon.h
   trunk/src/orxonox/objects/weaponsystem/WeaponMode.h
   trunk/src/orxonox/objects/weaponsystem/WeaponPack.cc
   trunk/src/orxonox/objects/weaponsystem/WeaponPack.h
   trunk/src/orxonox/objects/weaponsystem/WeaponSet.h
   trunk/src/orxonox/objects/weaponsystem/WeaponSystem.h
   trunk/src/orxonox/objects/weaponsystem/munitions/FusionMunition.cc
   trunk/src/orxonox/objects/weaponsystem/munitions/LaserMunition.cc
   trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.cc
   trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h
   trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.cc
   trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h
   trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.cc
   trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h
   trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.cc
   trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h
   trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc
   trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.h
   trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.cc
   trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h
   trunk/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.cc
   trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.cc
   trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h
   trunk/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.cc
   trunk/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.cc
   trunk/src/orxonox/objects/worldentities/Attacher.h
   trunk/src/orxonox/objects/worldentities/Backlight.cc
   trunk/src/orxonox/objects/worldentities/Backlight.h
   trunk/src/orxonox/objects/worldentities/BigExplosion.cc
   trunk/src/orxonox/objects/worldentities/BigExplosion.h
   trunk/src/orxonox/objects/worldentities/Billboard.cc
   trunk/src/orxonox/objects/worldentities/Billboard.h
   trunk/src/orxonox/objects/worldentities/BlinkingBillboard.cc
   trunk/src/orxonox/objects/worldentities/BlinkingBillboard.h
   trunk/src/orxonox/objects/worldentities/Camera.cc
   trunk/src/orxonox/objects/worldentities/Camera.h
   trunk/src/orxonox/objects/worldentities/CameraPosition.cc
   trunk/src/orxonox/objects/worldentities/CameraPosition.h
   trunk/src/orxonox/objects/worldentities/ControllableEntity.cc
   trunk/src/orxonox/objects/worldentities/ControllableEntity.h
   trunk/src/orxonox/objects/worldentities/ExplosionChunk.cc
   trunk/src/orxonox/objects/worldentities/ExplosionChunk.h
   trunk/src/orxonox/objects/worldentities/FadingBillboard.cc
   trunk/src/orxonox/objects/worldentities/FadingBillboard.h
   trunk/src/orxonox/objects/worldentities/ForceField.cc
   trunk/src/orxonox/objects/worldentities/ForceField.h
   trunk/src/orxonox/objects/worldentities/Light.cc
   trunk/src/orxonox/objects/worldentities/Light.h
   trunk/src/orxonox/objects/worldentities/MobileEntity.cc
   trunk/src/orxonox/objects/worldentities/MobileEntity.h
   trunk/src/orxonox/objects/worldentities/Model.cc
   trunk/src/orxonox/objects/worldentities/Model.h
   trunk/src/orxonox/objects/worldentities/MovableEntity.cc
   trunk/src/orxonox/objects/worldentities/MovableEntity.h
   trunk/src/orxonox/objects/worldentities/ParticleEmitter.cc
   trunk/src/orxonox/objects/worldentities/ParticleEmitter.h
   trunk/src/orxonox/objects/worldentities/ParticleSpawner.cc
   trunk/src/orxonox/objects/worldentities/ParticleSpawner.h
   trunk/src/orxonox/objects/worldentities/Planet.cc
   trunk/src/orxonox/objects/worldentities/Planet.h
   trunk/src/orxonox/objects/worldentities/PongBall.cc
   trunk/src/orxonox/objects/worldentities/PongBall.h
   trunk/src/orxonox/objects/worldentities/PongBat.h
   trunk/src/orxonox/objects/worldentities/PongCenterpoint.h
   trunk/src/orxonox/objects/worldentities/SpawnPoint.cc
   trunk/src/orxonox/objects/worldentities/SpawnPoint.h
   trunk/src/orxonox/objects/worldentities/StaticEntity.cc
   trunk/src/orxonox/objects/worldentities/TeamSpawnPoint.h
   trunk/src/orxonox/objects/worldentities/WorldEntity.cc
   trunk/src/orxonox/objects/worldentities/WorldEntity.h
   trunk/src/orxonox/objects/worldentities/pawns/Pawn.cc
   trunk/src/orxonox/objects/worldentities/pawns/Pawn.h
   trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.cc
   trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.h
   trunk/src/orxonox/objects/worldentities/pawns/Spectator.cc
   trunk/src/orxonox/objects/worldentities/pawns/Spectator.h
   trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc
   trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.h
   trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.cc
   trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.h
   trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
   trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.h
   trunk/src/orxonox/objects/worldentities/triggers/EventTrigger.cc
   trunk/src/orxonox/objects/worldentities/triggers/EventTrigger.h
   trunk/src/orxonox/objects/worldentities/triggers/PlayerTrigger.cc
   trunk/src/orxonox/objects/worldentities/triggers/PlayerTrigger.h
   trunk/src/orxonox/objects/worldentities/triggers/Trigger.cc
   trunk/src/orxonox/objects/worldentities/triggers/Trigger.h
   trunk/src/orxonox/overlays/FadeoutText.cc
   trunk/src/orxonox/overlays/FadeoutText.h
   trunk/src/orxonox/overlays/GUIOverlay.cc
   trunk/src/orxonox/overlays/GUIOverlay.h
   trunk/src/orxonox/overlays/OrxonoxOverlay.cc
   trunk/src/orxonox/overlays/OrxonoxOverlay.h
   trunk/src/orxonox/overlays/OverlayGroup.cc
   trunk/src/orxonox/overlays/OverlayGroup.h
   trunk/src/orxonox/overlays/OverlayText.cc
   trunk/src/orxonox/overlays/OverlayText.h
   trunk/src/orxonox/overlays/console/InGameConsole.cc
   trunk/src/orxonox/overlays/console/InGameConsole.h
   trunk/src/orxonox/overlays/debug/DebugFPSText.cc
   trunk/src/orxonox/overlays/debug/DebugFPSText.h
   trunk/src/orxonox/overlays/debug/DebugRTRText.cc
   trunk/src/orxonox/overlays/debug/DebugRTRText.h
   trunk/src/orxonox/overlays/hud/AnnounceMessage.h
   trunk/src/orxonox/overlays/hud/ChatOverlay.cc
   trunk/src/orxonox/overlays/hud/ChatOverlay.h
   trunk/src/orxonox/overlays/hud/DeathMessage.h
   trunk/src/orxonox/overlays/hud/GametypeStatus.cc
   trunk/src/orxonox/overlays/hud/GametypeStatus.h
   trunk/src/orxonox/overlays/hud/HUDBar.cc
   trunk/src/orxonox/overlays/hud/HUDBar.h
   trunk/src/orxonox/overlays/hud/HUDHealthBar.cc
   trunk/src/orxonox/overlays/hud/HUDHealthBar.h
   trunk/src/orxonox/overlays/hud/HUDNavigation.cc
   trunk/src/orxonox/overlays/hud/HUDNavigation.h
   trunk/src/orxonox/overlays/hud/HUDRadar.cc
   trunk/src/orxonox/overlays/hud/HUDRadar.h
   trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc
   trunk/src/orxonox/overlays/hud/HUDSpeedBar.h
   trunk/src/orxonox/overlays/hud/HUDTimer.cc
   trunk/src/orxonox/overlays/hud/HUDTimer.h
   trunk/src/orxonox/overlays/hud/KillMessage.h
   trunk/src/orxonox/overlays/hud/PongScore.cc
   trunk/src/orxonox/overlays/hud/PongScore.h
   trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc
   trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.h
   trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc
   trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.h
   trunk/src/orxonox/overlays/map/Map.cc
   trunk/src/orxonox/overlays/map/Map.h
   trunk/src/orxonox/overlays/notifications/Notification.cc
   trunk/src/orxonox/overlays/notifications/Notification.h
   trunk/src/orxonox/overlays/notifications/NotificationManager.cc
   trunk/src/orxonox/overlays/notifications/NotificationManager.h
   trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc
   trunk/src/orxonox/overlays/notifications/NotificationOverlay.h
   trunk/src/orxonox/overlays/notifications/NotificationQueue.cc
   trunk/src/orxonox/overlays/notifications/NotificationQueue.h
   trunk/src/orxonox/overlays/stats/CMakeLists.txt
   trunk/src/orxonox/overlays/stats/CreateLines.cc
   trunk/src/orxonox/overlays/stats/CreateLines.h
   trunk/src/orxonox/overlays/stats/Scoreboard.cc
   trunk/src/orxonox/overlays/stats/Scoreboard.h
   trunk/src/orxonox/overlays/stats/Stats.cc
   trunk/src/orxonox/overlays/stats/Stats.h
   trunk/src/orxonox/sound/CMakeLists.txt
   trunk/src/orxonox/sound/SoundBase.cc
   trunk/src/orxonox/sound/SoundBase.h
   trunk/src/orxonox/sound/SoundMainMenu.cc
   trunk/src/orxonox/sound/SoundMainMenu.h
   trunk/src/orxonox/sound/SoundManager.cc
   trunk/src/orxonox/sound/SoundManager.h
   trunk/src/orxonox/tools/BillboardSet.cc
   trunk/src/orxonox/tools/BillboardSet.h
   trunk/src/orxonox/tools/BulletConversions.h
   trunk/src/orxonox/tools/CMakeLists.txt
   trunk/src/orxonox/tools/DynamicLines.h
   trunk/src/orxonox/tools/DynamicRenderable.h
   trunk/src/orxonox/tools/Mesh.cc
   trunk/src/orxonox/tools/Mesh.h
   trunk/src/orxonox/tools/ParticleInterface.cc
   trunk/src/orxonox/tools/ParticleInterface.h
   trunk/src/orxonox/tools/Shader.cc
   trunk/src/orxonox/tools/Shader.h
   trunk/src/orxonox/tools/TextureGenerator.cc
   trunk/src/orxonox/tools/TextureGenerator.h
   trunk/src/orxonox/tools/Timer.cc
   trunk/src/orxonox/tools/Timer.h
   trunk/src/tinyxml/CMakeLists.txt
   trunk/src/tolua/CMakeLists.txt
   trunk/src/util/CMakeLists.txt
   trunk/src/util/CRC32.h
   trunk/src/util/Clipboard.cc
   trunk/src/util/Clipboard.h
   trunk/src/util/Convert.h
   trunk/src/util/Debug.h
   trunk/src/util/Exception.cc
   trunk/src/util/Exception.h
   trunk/src/util/ExprParser.cc
   trunk/src/util/ExprParser.h
   trunk/src/util/Math.cc
   trunk/src/util/Math.h
   trunk/src/util/MathConvert.h
   trunk/src/util/MultiType.cc
   trunk/src/util/MultiType.h
   trunk/src/util/MultiTypeValue.h
   trunk/src/util/OutputBuffer.cc
   trunk/src/util/OutputBuffer.h
   trunk/src/util/OutputHandler.h
   trunk/src/util/SignalHandler.cc
   trunk/src/util/Sleep.cc
   trunk/src/util/Sleep.h
   trunk/src/util/String.cc
   trunk/src/util/String.h
   trunk/src/util/SubString.cc
   trunk/src/util/UtilPrereqs.h
   trunk/src/util/mbool.h
Log:
Merged pch branch back to trunk.


Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/buildsystem:1875-2277,2279-2401
/branches/buildsystem2:2507-2659
/branches/buildsystem3:2663-2709
/branches/ceguilua:1803-1809
/branches/core3:1573-1740
/branches/gametypes:2827-3032
/branches/gcc43:1581
/branches/gui:1636-1724,2796-2895
/branches/input:1630-1637
/branches/lodfinal:2373-2412
/branches/map:2802-3087,3090
/branches/miniprojects:2755-2825
/branches/netp2:2836-2989
/branches/netp3:2989-3083
/branches/network:2357
/branches/network64:2211-2356
/branches/objecthierarchy:1912-2086,2101,2111-2170
/branches/objecthierarchy2:2172-2480
/branches/overlay:2118-2386
/branches/particles:2830-3086
/branches/physics:1913-2056,2108-2440
/branches/physics_merge:2437-2458
/branches/pickups:1927-2087,2128,2828-2916
/branches/pickups2:2108-2498,2916-3072
/branches/presentation:2370-2653,2655-2661
/branches/questsystem:1895-2089
/branches/questsystem2:2108-2260
/branches/questsystem5:2777-2906
/branches/script_trigger:1296-1954,1956
/branches/sound:2830-3011
/branches/weapon:1926-2095
/branches/weapon2:2108-2489
/branches/weapons:2898-3052
/branches/weaponsystem:2743-2891
   + /branches/buildsystem:1875-2277,2279-2401
/branches/buildsystem2:2507-2659
/branches/buildsystem3:2663-2709
/branches/ceguilua:1803-1809
/branches/core3:1573-1740
/branches/gametypes:2827-3032
/branches/gcc43:1581
/branches/gui:1636-1724,2796-2895
/branches/input:1630-1637
/branches/lodfinal:2373-2412
/branches/map:2802-3087,3090
/branches/miniprojects:2755-2825
/branches/netp2:2836-2989
/branches/netp3:2989-3083
/branches/network:2357
/branches/network64:2211-2356
/branches/objecthierarchy:1912-2086,2101,2111-2170
/branches/objecthierarchy2:2172-2480
/branches/overlay:2118-2386
/branches/particles:2830-3086
/branches/pch:3114-3195
/branches/physics:1913-2056,2108-2440
/branches/physics_merge:2437-2458
/branches/pickups:1927-2087,2128,2828-2916
/branches/pickups2:2108-2498,2916-3072
/branches/presentation:2370-2653,2655-2661
/branches/questsystem:1895-2089
/branches/questsystem2:2108-2260
/branches/questsystem5:2777-2906
/branches/script_trigger:1296-1954,1956
/branches/sound:2830-3011
/branches/weapon:1926-2095
/branches/weapon2:2108-2489
/branches/weapons:2898-3052
/branches/weaponsystem:2743-2891

Modified: trunk/bin/CMakeLists.txt
===================================================================
--- trunk/bin/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/bin/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,13 +32,17 @@
     LIST(APPEND RUN_SCRIPTS ${_script}.bat)
   ENDFOREACH(_script)
 ENDIF()
+# Also copy vld.ini (visual leak detector config) for MSVC
+IF(MSVC)
+  LIST(APPEND RUN_SCRIPTS vld.ini)
+ENDIF()
 
 IF(NOT CMAKE_CONFIGURATION_TYPES)
   SET(_subdirs .)
   SEt(_default_subdir .)
 ELSE()
   SET(_subdirs ${CMAKE_CONFIGURATION_TYPES})
-  SEt(_default_subdir Debug)
+  SEt(_default_subdir) # No default subdir
 ENDIF()
 STRING(REPLACE "/" "\\" ORXONOX_RUNTIME_LIBRARY_DIRECTORY_WINDOWS ${ORXONOX_RUNTIME_LIBRARY_DIRECTORY})
 FOREACH(_subdir ${_subdirs})
@@ -51,7 +55,7 @@
   FOREACH(_script ${RUN_SCRIPTS})
     CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${_script}.in ${CURRENT_RUNTIME_DIR}/${_script} @ONLY)
     IF(_subdir STREQUAL _default_subdir)
-      # Convenience script to be used when sitting in the binary directory. Defaults to Debug for msvc.
+      # Convenience script to be used when sitting in the binary directory. Does nothing for MSVC
       CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${_script}.in ${CMAKE_BINARY_DIR}/${_script} @ONLY)
     ENDIF()
   ENDFOREACH(_script)

Copied: trunk/bin/vld.ini.in (from rev 3195, branches/pch/bin/vld.ini.in)
===================================================================
--- trunk/bin/vld.ini.in	                        (rev 0)
+++ trunk/bin/vld.ini.in	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,155 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;  Visual Leak Detector - Initialization/Configuration File
+;;  Copyright (c) 2006 Dan Moulding
+;;
+;;  This library is free software; you can redistribute it and/or
+;;  modify it under the terms of the GNU Lesser General Public
+;;  License as published by the Free Software Foundation; either
+;;  version 2.1 of the License, or (at your option) any later version.
+;;
+;;  This library is distributed in the hope that it will be useful,
+;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;;  Lesser General Public License for more details.
+;;
+;;  You should have received a copy of the GNU Lesser General Public
+;;  License along with this library; if not, write to the Free Software
+;;  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;;
+;;  See COPYING.txt for the full terms of the GNU Lesser General Public License.
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; Any options left blank or not present will revert to their default values.
+[Options]
+
+; The main on/off switch. If off, Visual Leak Detector will be completely
+; disabled. It will do nothing but print a message to the debugger indicating
+; that it has been turned off.
+;
+;  Valid Values: on, off
+;  Default: on
+;
+VLD = @VISUAL_LEAK_DETECTOR_ENABLE@ 
+
+; If yes, duplicate leaks (those that are identical) are not shown individually.
+; Only the first such leak is shown, along with a number indicating the total
+; number of duplicate leaks.
+;
+;   Valid Values: yes, no
+;   Default: no
+;
+AggregateDuplicates = yes
+
+; Lists any additional modules to be included in memory leak detection. This can
+; be useful for checking for memory leaks in debug builds of 3rd party modules
+; which can not be easily rebuilt with '#include "vld.h"'. This option should be
+; used only if absolutely necessary and only if you really know what you are
+; doing.
+;
+;   CAUTION: Avoid listing any modules that link with the release CRT libraries.
+;     Only modules that link with the debug CRT libraries should be listed here.
+;     Doing otherwise might result in false memory leak reports or even crashes.
+;
+;   Valid Values: Any list containing module names (i.e. names of EXEs or DLLs).
+;   Default: None.
+;
+ForceIncludeModules =
+
+; Maximum number of data bytes to display for each leaked block. If zero, then
+; the data dump is completely suppressed and only call stacks are shown.
+; Limiting this to a low number can be useful if any of the leaked blocks are
+; very large and cause unnecessary clutter in the memory leak report.
+;
+;   Value Values: 0 - 4294967295
+;   Default: 4294967295
+;
+MaxDataDump = 
+
+; Maximum number of call stack frames to trace back during leak detection.
+; Limiting this to a low number can reduce the CPU utilization overhead imposed
+; by memory leak detection, especially when using the slower "safe" stack
+; walking method (see StackWalkMethod below).
+;
+;   Valid Values: 1 - 4294967295
+;   Default: 4294967295
+;
+MaxTraceFrames = 
+
+; Sets the type of encoding to use for the generated memory leak report. This
+; option is really only useful in conjuction with sending the report to a file.
+; Sending a Unicode encoded report to the debugger is not useful because the
+; debugger cannot display Unicode characters. Using Unicode encoding might be
+; useful if the data contained in leaked blocks is likely to consist of Unicode
+; text.
+;
+;   Valid Values: ascii, unicode
+;   Default: ascii
+;
+ReportEncoding = ascii
+
+; Sets the report file destination, if reporting to file is enabled. A relative
+; path may be specified and is considered relative to the process' working
+; directory.
+;
+;   Valid Values: Any valid path and filename.
+;   Default: .\memory_leak_report.txt
+;
+ReportFile = 
+
+; Sets the report destination to either a file, the debugger, or both. If
+; reporting to file is enabled, the report is sent to the file specified by the
+; ReportFile option.
+;
+;   Valid Values: debugger, file, both
+;   Default: debugger
+;
+ReportTo = debugger
+
+; Turns on or off a self-test mode which is used to verify that VLD is able to
+; detect memory leaks in itself. Intended to be used for debugging VLD itself,
+; not for debugging other programs.
+;
+;   Valid Values: on, off
+;   Default: off
+;
+SelfTest = off
+
+; Selects the method to be used for walking the stack to obtain stack traces for
+; allocated memory blocks. The "fast" method may not always be able to
+; successfully trace completely through all call stacks. In such cases, the
+; "safe" method may prove to more reliably obtain the full stack trace. The
+; disadvantage is that the "safe" method is significantly slower than the "fast"
+; method and will probably result in very noticeable performance degradation of
+; the program being debugged.
+;
+;   Valid Values: fast, safe
+;   Default: fast
+; 
+StackWalkMethod = fast
+
+; Determines whether memory leak detection should be initially enabled for all
+; threads, or whether it should be initially disabled for all threads. If set
+; to "yes", then any threads requiring memory leak detection to be enabled will
+; need to call VLDEnable at some point to enable leak detection for those
+; threads.
+;
+;   Valid Values: yes, no
+;   Default: no
+;
+StartDisabled = no
+
+; Determines whether or not all frames, including frames internal to the heap,
+; are traced. There will always be a number of frames internal to Visual Leak
+; Detector and C/C++ or Win32 heap APIs that aren't generally useful for
+; determining the cause of a leak. Normally these frames are skipped during the
+; stack trace, which somewhat reduces the time spent tracing and amount of data
+; collected and stored in memory. Including all frames in the stack trace, all
+; the way down into VLD's own code can, however, be useful for debugging VLD
+; itself.
+;
+;   Valid Values: yes, no
+;   Default: no
+;
+TraceInternalFrames = no

Modified: trunk/cmake/BuildConfig.cmake
===================================================================
--- trunk/cmake/BuildConfig.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/BuildConfig.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -69,7 +69,12 @@
   MARK_AS_ADVANCED(CMAKE_BUILD_TYPE)
 ENDIF()
 
+# Enable expensive optimisations: Use this for a binary release build
+OPTION(ORXONOX_RELEASE "Enable when building restributable releases" FALSE)
 
+# Use WinMain() or main()?
+OPTION(ORXONOX_USE_WINMAIN "Use WinMain (doesn't show console) or main" FALSE)
+
 ################# OGRE Plugins ##################
 
 # More plugins: Plugin_BSPSceneManager, Plugin_OctreeSceneManager

Modified: trunk/cmake/BuildConfigGCC.cmake
===================================================================
--- trunk/cmake/BuildConfigGCC.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/BuildConfigGCC.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -23,6 +23,9 @@
  #    Sets the right compiler and linker flags for GCC.
  #
 
+# Shortcut for CMAKE_COMPILER_IS_GNUCXX and ..._GNUC
+SET(CMAKE_COMPILER_IS_GNU TRUE)
+
 # Determine compiler version
 EXEC_PROGRAM(
   ${CMAKE_CXX_COMPILER}
@@ -39,6 +42,13 @@
   SET(GCC_NO_SYSTEM_HEADER_SUPPORT TRUE)
 ENDIF()
 
+# GCC only supports PCH in versions 3.4 and above
+INCLUDE(CompareVersionStrings)
+COMPARE_VERSION_STRINGS("${GCC_VERSION}" "3.4.0" _compare_result)
+IF(_compare_result GREATER -1)
+  SET(PCH_COMPILER_SUPPORT TRUE)
+ENDIF()
+
 # Also include environment flags. Could cause conflicts though
 SET_COMPILER_FLAGS("$ENV{CXXFLAGS}" CXX CACHE)
 SET_COMPILER_FLAGS("$ENV{CFLAGS}"   C   CACHE)
@@ -66,6 +76,9 @@
 # messages. Other versions don't seem to show any such warnings at all.
 ADD_COMPILER_FLAGS("-Wno-deprecated" CXX CACHE)
 
+# Always show why a precompiled header file could not be used
+ADD_COMPILER_FLAGS("-Winvalid-pch" CXX CACHE)
+
 # Increase warning level if requested
 IF(EXTRA_COMPILER_WARNINGS)
   ADD_COMPILER_FLAGS("-Wall -Wextra -Wno-unused-parameter" CACHE)

Modified: trunk/cmake/BuildConfigMSVC.cmake
===================================================================
--- trunk/cmake/BuildConfigMSVC.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/BuildConfigMSVC.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -23,10 +23,31 @@
  #    Sets the right compiler and linker flags for the Microsoft Compiler.
  #
 
+################### Compiler Version ####################
+
+# We make use of variadic macros, which is only supported by MSVC 8 and above
+IF(MSVC_VERSION LESS 1400)
+  MESSAGE(FATAL_ERROR "Microsoft Visual Studio versions below 8 (2005) are not supported because of missing compiler extensions.")
+ENDIF()
+
+
 ######################## Options ########################
 
-OPTION(VISUAL_LEAK_DETECTOR_ENABLE "Memory leak detector" FALSE)
+# Currently VLD has a problem with MSVC9 although it actually is supported
+IF(MSVC8)
+  OPTION(VISUAL_LEAK_DETECTOR_ENABLE "Memory leak detector" off)
+ENDIF()
+# Make sure the value is "on" or "off" for vld.ini
+IF(VISUAL_LEAK_DETECTOR_ENABLE)
+  SET(VISUAL_LEAK_DETECTOR_ENABLE on)
+ELSE()
+  SET(VISUAL_LEAK_DETECTOR_ENABLE off)
+ENDIF()
 
+# Orxonox only supports MSVC 8 and above, which gets asserted above
+SET(PCH_COMPILER_SUPPORT TRUE)
+
+
 #################### Compiler Flags #####################
 
 # -MD    Minimal Rebuild
@@ -46,7 +67,7 @@
 ADD_COMPILER_FLAGS("-D_CRT_SECURE_NO_WARNINGS" CACHE)
 
 # Overwrite CMake default flags here.
-SET_COMPILER_FLAGS("-MDd -Od -ZI -D_DEBUG -Gm -RTC1" Debug          CACHE)
+SET_COMPILER_FLAGS("-MDd -Od -Zi -D_DEBUG -Gm -RTC1" Debug          CACHE)
 SET_COMPILER_FLAGS("-MD  -O2     -DNDEBUG -MP2"      Release        CACHE)
 SET_COMPILER_FLAGS("-MD  -O2 -Zi -DNDEBUG -MP2"      RelWithDebInfo CACHE)
 SET_COMPILER_FLAGS("-MD  -O1     -DNDEBUG -MP2"      MinSizeRel     CACHE)
@@ -74,6 +95,7 @@
 # "<type> needs to have dll-interface to be used by clients'
 # Happens on STL member variables which are not public
 ADD_COMPILER_FLAGS("-w44251" CACHE)
+ADD_COMPILER_FLAGS("-w44275" CACHE) # For inheritance
 
 # Multiple assignment operators specified
 ADD_COMPILER_FLAGS("-w44522" CACHE)

Copied: trunk/cmake/CapitaliseName.cmake (from rev 3195, branches/pch/cmake/CapitaliseName.cmake)
===================================================================
--- trunk/cmake/CapitaliseName.cmake	                        (rev 0)
+++ trunk/cmake/CapitaliseName.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,33 @@
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        This program is free software; you can redistribute it and/or
+ #         modify it under the terms of the GNU General Public License
+ #        as published by the Free Software Foundation; either version 2
+ #            of the License, or (at your option) any later version.
+ #
+ #       This program is distributed in the hope that it will be useful,
+ #        but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #                 GNU General Public License for more details.
+ #
+ #   You should have received a copy of the GNU General Public License along
+ #      with this program; if not, write to the Free Software Foundation,
+ #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ #
+ #
+ #  Author:
+ #    Reto Grieder
+ #  Examples:
+ #    "orxonox"  --> "Orxonox"
+ #    "ORXONOX"  --> "ORXONOX"
+ #    "1orxonox" --> "1orxonox"
+ #
+
+FUNCTION(CAPITALISE_NAME _name _output_var)
+  STRING(SUBSTRING "${_name}" 0 1 _first_letter)
+  STRING(TOUPPER "${_first_letter}" _first_letter)
+  STRING(REGEX REPLACE "^.(.*)$" "\\1" _rest "${_name}")
+  SET(${_output_var} "${_first_letter}${_rest}" PARENT_SCOPE)
+ENDFUNCTION(CAPITALISE_NAME)

Modified: trunk/cmake/FlagUtilities.cmake
===================================================================
--- trunk/cmake/FlagUtilities.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/FlagUtilities.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -23,107 +23,56 @@
  #    Sets the compiler/linker flags. After the flags you can specify more args:
  #    Release, Debug, RelWithDebInfo, MinSizeRel: Build configs (inclusive)
  #    ReleaseAll: Sets the flags of all three release builds
- #    CACHE: Values are witten with SET_CACHE (see above)
+ #    CACHE: Values are witten with SET_CACHE_ADVANCED
  #    FORCE: When writing to the cache, the values are set anyway
  #    Any variable names (like WIN32, MSVC, etc.): Condition (combined with AND)
  #    You can suffix the condition with a NOT if you wish
- #  Functions:
+ #  Function names:
  #    [ADD/SET/REMOVE]_[COMPILER/LINKER]_FLAGS
  #  Caution: -If you use CACHE after calling the macro without CACHE, the value
- #            Will not get written unless FORCE is specified.
+ #            Will not be written unless FORCE is specified.
  #          - Also be aware to always specify the flags in quotes.
  #  Example:
  #    REMOVE_COMPILER_FLAGS("/Gm "asdf" -q"test -foo" CXX ReleaseAll NOT UNIX)
  #    This will only remove the CXX (C++) flags on a non Unix system for the
  #    Release, RelWithDebInfo and MinSizeRel configurations. The macros should
- #    be able to cope with "test -foo" that is like another flag in the string.
+ #    be able to cope with "test -foo" as string argument for a flag.
  #
 
-# Write to the cache by force, but only if the user didn't edit the value
-# Additional argument is the value (may also be a list)
-MACRO(SET_CACHE _varname _type _docstring)
-  SET(_value ${ARGN})
-  IF(NOT "${_type}" MATCHES "^(STRING|BOOL|PATH|FILEPATH)$")
-    MESSAGE(FATAL_ERROR "${_type} is not a valid CACHE entry type")
-  ENDIF()
+INCLUDE(SeparateFlags)
+INCLUDE(SetCacheAdvanced)
 
-  IF(NOT DEFINED _INTERNAL_${_varname} OR "${_INTERNAL_${_varname}}" STREQUAL "${${_varname}}")
-    SET(${_varname} "${_value}" CACHE ${_type} "${_docstring}" FORCE)
-    SET(_INTERNAL_${_varname} "${_value}" CACHE INTERNAL "Do not edit in any case!")
-  ENDIF()
-ENDMACRO(SET_CACHE)
+# Compiler flags, additional arguments:
+# C, CXX: Specify a language, default is both
+MACRO(SET_COMPILER_FLAGS _flags)
+  _INTERNAL_PARSE_FLAGS_ARGS(SET "C;CXX" "" "${_flags}" "${ARGN}")
+ENDMACRO(SET_COMPILER_FLAGS)
+# Add flags (flags don't get added twice)
+MACRO(ADD_COMPILER_FLAGS _flags)
+  _INTERNAL_PARSE_FLAGS_ARGS(APPEND "C;CXX" "" "${_flags}" "${ARGN}")
+ENDMACRO(ADD_COMPILER_FLAGS)
+# Remove flags
+MACRO(REMOVE_COMPILER_FLAGS _flags)
+  _INTERNAL_PARSE_FLAGS_ARGS(REMOVE_ITEM "C;CXX" "" "${_flags}" "${ARGN}")
+ENDMACRO(REMOVE_COMPILER_FLAGS)
 
-# Visual studio (esp. IntelliSense) doesn't like dashes to specify arguments
-# Always use foward slashes instead
-IF(MSVC)
-  SET(ARGUMENT_STARTER "/")
-ELSE()
-  SET(ARGUMENT_STARTER "-")
-ENDIF(MSVC)
 
-# Separates a string of flags. " -" or " /" denotes the start of a flag.
-# The same sequence inside double quotation marks is ignored.
-# Spaces not within quotes are cleaned meaningfully.
-# This macro cannot cope with semicolons in the flag string!
-MACRO(SEPARATE_FLAGS _flags _output_variable)
-  SET(_flags_prep " ${_flags} -")
-  STRING(REPLACE " " " ;" _flag_chunks ${_flags_prep}) # Max loop iterations
-  SET(_flag_string)
-  SET(_parsed_flags)
-  # Loop is necessary because the regex engine is greedy
-  FOREACH(_chunk ${_flag_chunks})
-    SET(_flag_string "${_flag_string}${_chunk}")
-    # Replace all " -" and " /" inside quotation marks
-    STRING(REGEX REPLACE "^(([^\"]*\"[^\"]*\")*[^\"]*\"[^\"]*) [/-]([^\"]*\")"
-           "\\1 at 39535493@\\3" _flag_string "${_flag_string}")
-    # Extract one flag if possible
-    SET(_flag)
-    STRING(REGEX REPLACE "^.* [/-](.+)( [/-].*$)" "${ARGUMENT_STARTER}\\1" _flag "${_flag_string}")
-    STRING(REGEX REPLACE "^.* [/-](.+)( [/-].*$)" "\\2"  _flag_string "${_flag_string}")
-    IF(NOT _flag STREQUAL _flag_string)
-      LIST(APPEND _parsed_flags "${_flag}")
-    ENDIF(NOT _flag STREQUAL _flag_string)
-  ENDFOREACH(_chunk)
+# Linker flags, additional arguments:
+# EXE, SHARED, MODULE: Specify a linker mode, default is all three
+MACRO(SET_LINKER_FLAGS _flags)
+  _INTERNAL_PARSE_FLAGS_ARGS(SET "EXE;SHARED;MODULE" "_LINKER" "${_flags}" "${ARGN}")
+ENDMACRO(SET_LINKER_FLAGS)
+# Add flags (flags don't get added twice)
+MACRO(ADD_LINKER_FLAGS _flags)
+  _INTERNAL_PARSE_FLAGS_ARGS(APPEND "EXE;SHARED;MODULE" "_LINKER" "${_flags}" "${ARGN}")
+ENDMACRO(ADD_LINKER_FLAGS)
+# Remove flags
+MACRO(REMOVE_LINKER_FLAGS _flags)
+  _INTERNAL_PARSE_FLAGS_ARGS(REMOVE_ITEM "EXE;SHARED;MODULE" "_LINKER" "${_flags}" "${ARGN}")
+ENDMACRO(REMOVE_LINKER_FLAGS)
 
-  # Re-replace all " -" and " /" inside quotation marks
-  STRING(REGEX REPLACE "@39535493@" " -" ${_output_variable} "${_parsed_flags}")
-ENDMACRO(SEPARATE_FLAGS)
 
 # Internal macro, do not use
-# Modifies the flags according to the mode: set, add or remove
-# Also sets flags according to the CACHE and FORCE parameter.
-# If only CACHE is specified, SET_CACHE() is used.
-MACRO(_INTERNAL_PARSE_FLAGS _mode _flags _varname _write_to_cache _force)
-  SEPARATE_FLAGS("${_flags}" _arg_flag_list)
-
-  IF("${_mode}" STREQUAL "SET")
-    # SET
-    SET(_flag_list "${_arg_flag_list}")
-  ELSE()
-    # ADD or REMOVE
-    SEPARATE_FLAGS("${${_varname}}" _flag_list)
-    FOREACH(_flag ${_arg_flag_list})
-      LIST(${_mode} _flag_list "${_flag}")
-    ENDFOREACH(_flag)
-  ENDIF()
-
-  LIST(REMOVE_DUPLICATES _flag_list)
-  LIST(SORT _flag_list)
-  STRING(REPLACE ";" " " _flag_list "${_flag_list}")
-
-  IF(_write_to_cache)
-    IF(_force)
-      SET(${_varname} "${_flag_list}" CACHE STRING "${${_varname}}" FORCE)
-      SET(${_varname} "${_flag_list}" CACHE STRING "${${_varname}}" FORCE)
-    ELSE()
-      SET_CACHE(${_varname} STRING "${${_varname}}" "${_flag_list}")
-    ENDIF()
-  ELSE()
-    SET(${_varname} "${_flag_list}")
-  ENDIF()
-ENDMACRO(_INTERNAL_PARSE_FLAGS)
-
-# Internal macro, do not use
 # Parses the given additional arguments and sets the flags to the
 # corresponding variables.
 MACRO(_INTERNAL_PARSE_FLAGS_ARGS _mode _keys _key_postfix _flags)
@@ -154,11 +103,11 @@
     ELSE()
       IF(_invert_condition)
         SET(_invert_condition FALSE)
-    IF(${_arg})
+        IF(${_arg})
           SET(_arg_cond FALSE)
-    ELSE()
+        ELSE()
           SET(_arg_cond TRUE)
-    ENDIF()
+       ENDIF()
       ELSE()
         SET(_arg_cond ${${_arg}})
       ENDIF()
@@ -190,30 +139,39 @@
 ENDMACRO(_INTERNAL_PARSE_FLAGS_ARGS)
 
 
-# Compiler flags, additional arguments:
-# C, CXX: Specify a language, default is both
-MACRO(SET_COMPILER_FLAGS _flags)
-  _INTERNAL_PARSE_FLAGS_ARGS(SET "C;CXX" "" "${_flags}" "${ARGN}")
-ENDMACRO(SET_COMPILER_FLAGS)
-# Add flags (flags don't get added twice)
-MACRO(ADD_COMPILER_FLAGS _flags)
-  _INTERNAL_PARSE_FLAGS_ARGS(APPEND "C;CXX" "" "${_flags}" "${ARGN}")
-ENDMACRO(ADD_COMPILER_FLAGS)
-# Remove flags
-MACRO(REMOVE_COMPILER_FLAGS _flags)
-  _INTERNAL_PARSE_FLAGS_ARGS(REMOVE_ITEM "C;CXX" "" "${_flags}" "${ARGN}")
-ENDMACRO(REMOVE_COMPILER_FLAGS)
+# Internal macro, do not use
+# Modifies the flags according to the mode: set, add or remove
+# Also sets flags according to the CACHE and FORCE parameter.
+# If only CACHE is specified, SET_CACHE_ADVANCED() is used.
+MACRO(_INTERNAL_PARSE_FLAGS _mode _flags _varname _write_to_cache _force)
+  SEPARATE_FLAGS("${_flags}" _arg_flag_list)
 
-# Linker flags, additional arguments:
-# EXE, SHARED, MODULE: Specify a linker mode, default is all three
-MACRO(SET_LINKER_FLAGS _flags)
-  _INTERNAL_PARSE_FLAGS_ARGS(SET "EXE;SHARED;MODULE" "_LINKER" "${_flags}" "${ARGN}")
-ENDMACRO(SET_LINKER_FLAGS)
-# Add flags (flags don't get added twice)
-MACRO(ADD_LINKER_FLAGS _flags)
-  _INTERNAL_PARSE_FLAGS_ARGS(APPEND "EXE;SHARED;MODULE" "_LINKER" "${_flags}" "${ARGN}")
-ENDMACRO(ADD_LINKER_FLAGS)
-# Remove flags
-MACRO(REMOVE_LINKER_FLAGS _flags)
-  _INTERNAL_PARSE_FLAGS_ARGS(REMOVE_ITEM "EXE;SHARED;MODULE" "_LINKER" "${_flags}" "${ARGN}")
-ENDMACRO(REMOVE_LINKER_FLAGS)
+  IF("${_mode}" STREQUAL "SET")
+    # SET
+    SET(_flag_list "${_arg_flag_list}")
+  ELSE()
+    # ADD or REMOVE
+    SEPARATE_FLAGS("${${_varname}}" _flag_list)
+    IF(NOT _flag_list)
+      SET(_flag_list "") # LIST command requires a list in any case
+    ENDIF()
+    FOREACH(_flag ${_arg_flag_list})
+      LIST(${_mode} _flag_list "${_flag}")
+    ENDFOREACH(_flag)
+  ENDIF()
+
+  LIST(REMOVE_DUPLICATES _flag_list)
+  LIST(SORT _flag_list)
+  STRING(REPLACE ";" " " _flag_list "${_flag_list}")
+
+  IF(_write_to_cache)
+    IF(_force)
+      SET(${_varname} "${_flag_list}" CACHE STRING "${${_varname}}" FORCE)
+      SET(${_varname} "${_flag_list}" CACHE STRING "${${_varname}}" FORCE)
+    ELSE()
+      SET_CACHE_ADVANCED(${_varname} STRING "${${_varname}}" "${_flag_list}")
+    ENDIF()
+  ELSE()
+    SET(${_varname} "${_flag_list}")
+  ENDIF()
+ENDMACRO(_INTERNAL_PARSE_FLAGS)

Modified: trunk/cmake/GenerateToluaBindings.cmake
===================================================================
--- trunk/cmake/GenerateToluaBindings.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/GenerateToluaBindings.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -47,6 +47,10 @@
     PARENT_SCOPE
   )
   SOURCE_GROUP("Tolua" FILES ${_tolua_cxxfile} ${_tolua_hfile})
+  # Disable annoying GCC warnings
+  IF(CMAKE_COMPILER_IS_GNU)
+    SET_SOURCE_FILES_PROPERTIES(${_tolua_cxxfile} PROPERTIES COMPILE_FLAGS "-w")
+  ENDIF()
 
   # Create temporary package file
   FILE(REMOVE ${_tolua_pkgfile})

Copied: trunk/cmake/GetGCCCompilerFlags.cmake (from rev 3195, branches/pch/cmake/GetGCCCompilerFlags.cmake)
===================================================================
--- trunk/cmake/GetGCCCompilerFlags.cmake	                        (rev 0)
+++ trunk/cmake/GetGCCCompilerFlags.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,73 @@
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        This program is free software; you can redistribute it and/or
+ #         modify it under the terms of the GNU General Public License
+ #        as published by the Free Software Foundation; either version 2
+ #            of the License, or (at your option) any later version.
+ #
+ #       This program is distributed in the hope that it will be useful,
+ #        but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #                 GNU General Public License for more details.
+ #
+ #   You should have received a copy of the GNU General Public License along
+ #      with this program; if not, write to the Free Software Foundation,
+ #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ #
+ #
+ #  Author:
+ #    Reto Grieder
+ #  Description:
+ #    Tries to return all GCC compiler flags set for a target. This also
+ #    all definitions of the current directory.
+ #
+
+INCLUDE(SeparateFlags)
+
+FUNCTION(GET_GCC_COMPILER_FLAGS _target _flagsvar)
+
+  # General flags
+  STRING(TOUPPER "${CMAKE_BUILD_TYPE}" _build_type_upper)
+  SET(_flag_str "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${_build_type_upper}}")
+
+  # Include directories
+  GET_DIRECTORY_PROPERTY(_include_dirs INCLUDE_DIRECTORIES)
+  IF(_include_dirs)
+    FOREACH(_directory ${_include_dirs})
+      SET(_flag_str "${_flag_str} -I${_directory}")
+    ENDFOREACH(_directory)
+  ENDIF()
+
+  # For shared libraries linked with gcc, we have to add -fPIC
+  GET_TARGET_PROPERTY(_target_type ${_target} TYPE)
+  IF(NOT MINGW AND ${_target_type} STREQUAL SHARED_LIBRARY)
+    SET(_flag_str "${_flag_str} -fPIC")
+  ENDIF()
+
+  # Target compile flags
+  GET_TARGET_PROPERTY(_target_flags ${_target} COMPILE_FLAGS)
+  IF(_target_flags)
+    SET(_flag_str "${_flag_str} ${_target_flags}")
+  ENDIF()
+
+  # Definitions from target and directory
+  GET_DIRECTORY_PROPERTY(_directory_defs                 COMPILE_DEFINITIONS)
+  GET_DIRECTORY_PROPERTY(_directory_defs_build_type      COMPILE_DEFINITIONS_${_build_type_upper})
+  GET_TARGET_PROPERTY(_target_defs            ${_target} COMPILE_DEFINITIONS)
+  GET_TARGET_PROPERTY(_target_defs_build_type ${_target} COMPILE_DEFINITIONS_${_build_type_upper})
+  GET_TARGET_PROPERTY(_target_def_symbol      ${_target} DEFINE_SYMBOL)
+  # Prefix them all with a "-D" if the property was found
+  FOREACH(_def ${_directory_defs} ${_directory_defs_build_type} ${_target_defs}
+               ${_target_defs_build_type} ${_target_def_symbol})
+    IF(_def)
+      SET(_flag_str "${_flag_str} -D${_def}")
+    ENDIF(_def)
+  ENDFOREACH(_def)
+
+  SEPARATE_FLAGS("${_flag_str}" _flags)
+  LIST(REMOVE_DUPLICATES _flags)
+  SET(${_flagsvar} ${_flags} PARENT_SCOPE)
+
+ENDFUNCTION(GET_GCC_COMPILER_FLAGS)

Deleted: trunk/cmake/InstallUtilities.cmake
===================================================================
--- trunk/cmake/InstallUtilities.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/InstallUtilities.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,34 +0,0 @@
- #
- #             ORXONOX - the hottest 3D action shooter ever to exist
- #                             > www.orxonox.net <
- #
- #        This program is free software; you can redistribute it and/or
- #         modify it under the terms of the GNU General Public License
- #        as published by the Free Software Foundation; either version 2
- #            of the License, or (at your option) any later version.
- #
- #       This program is distributed in the hope that it will be useful,
- #        but WITHOUT ANY WARRANTY; without even the implied warranty of
- #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- #                 GNU General Public License for more details.
- #
- #   You should have received a copy of the GNU General Public License along
- #      with this program; if not, write to the Free Software Foundation,
- #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- #
- #
- #  Author:
- #    Reto Grieder
- #  Description:
- #    Helps configuring the INSTALL command in more global way.
- #  Parameters:
- #    Specifiy the targets as additional parameter.
- #
-
-FUNCTION(ORXONOX_INSTALL)
-  INSTALL(TARGETS ${ARGN}
-    RUNTIME DESTINATION ${ORXONOX_RUNTIME_INSTALL_PATH}
-    LIBRARY DESTINATION ${ORXONOX_LIBRARY_INSTALL_PATH}
-    #ARCHIVE DESTINATION ${ORXONOX_ARCHIVE_INSTALL_PATH}
-  )
-ENDFUNCTION(ORXONOX_INSTALL)

Modified: trunk/cmake/LibraryConfig.cmake
===================================================================
--- trunk/cmake/LibraryConfig.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/LibraryConfig.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -66,28 +66,8 @@
   ELSE()
     INCLUDE(PackageConfigMinGW)
     INCLUDE(PackageConfigMSVC)
-
-    # On Windows, DLLs have to be in the executable folder, install them
-    IF(DEP_BINARY_DIR AND WIN32)
-      # When installing a debug version, we really can't know which libraries
-      # are used in released mode because there might be deps of deps.
-      INSTALL(
-        DIRECTORY ${DEP_BINARY_DIR}/
-        DESTINATION bin
-        CONFIGURATIONS Debug
-        REGEX "^.*\\.pdb$" EXCLUDE
-      )
-
-      # Try to filter out all the debug libraries. If the regex doesn't do the
-      # job anymore, simply adjust it.
-      INSTALL(
-        DIRECTORY ${DEP_BINARY_DIR}/
-        DESTINATION bin
-        CONFIGURATIONS Release RelWithDebInfo MinSizeRel
-        REGEX "_[Dd]\\.[a-zA-Z0-9+-]+$|-mt-gd-|^.*\\.pdb$" EXCLUDE
-      )
-    ENDIF(DEP_BINARY_DIR AND WIN32)
-  ENDIF(NOT DEPENDENCY_PACKAGE_DIR)
+    INCLUDE(PackageConfig) # For both msvc and mingw
+  ENDIF()
 ENDIF(DEPENDENCY_PACKAGE_ENABLE)
 
 # User script
@@ -171,7 +151,7 @@
 
 ##### Boost #####
 # Expand the next statement if newer boost versions than 1.36.1 are released
-SET(Boost_ADDITIONAL_VERSIONS 1.37 1.37.0)
+SET(Boost_ADDITIONAL_VERSIONS 1.37 1.37.0 1.38 1.38.0 1.39 1.39.0)
 # MSVC seems to be the only compiler requiring date_time
 IF(MSVC)
   FIND_PACKAGE(Boost 1.34 REQUIRED thread filesystem date_time)

Copied: trunk/cmake/PackageConfig.cmake (from rev 3195, branches/pch/cmake/PackageConfig.cmake)
===================================================================
--- trunk/cmake/PackageConfig.cmake	                        (rev 0)
+++ trunk/cmake/PackageConfig.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,70 @@
+# General package configuration. Merely sets the include paths.
+# Library files are treated separately.
+
+# Check package version info
+# MAJOR: Interface breaking change somewhere (library version changed, etc.)
+# MINOR: Bug fix or small conformant changes
+SET(DEPENDENCY_VERSION_REQUIRED 2)
+IF(NOT EXISTS ${DEPENDENCY_PACKAGE_DIR}/version.txt)
+  SET(DEPENDENCY_VERSION 1.0)
+ELSE()
+  # Get version from file
+  FILE(READ ${DEPENDENCY_PACKAGE_DIR}/version.txt _file_content)
+  SET(_match)
+  STRING(REGEX MATCH "([0-9]+.[0-9]+)" _match ${_file_content})
+  IF(_match)
+    SET(DEPENDENCY_VERSION ${_match})
+  ELSE()
+    MESSAGE(FATAL_ERROR "The version.txt file in the dependency file has corrupt version information.")
+  ENDIF()
+ENDIF()
+
+INCLUDE(CompareVersionStrings)
+COMPARE_VERSION_STRINGS(${DEPENDENCY_VERSION} ${DEPENDENCY_VERSION_REQUIRED} _result)
+IF(NOT _result EQUAL 0)
+  MESSAGE(FATAL_ERROR "Your dependency package version is ${DEPENDENCY_VERSION}\n"
+          "Required version: ${DEPENDENCY_VERSION_REQUIRED}\n"
+	  "You can get a new version from www.orxonox.net")
+ENDIF()
+
+MESSAGE(STATUS "Using library package for the dependencies.")
+
+# Include paths and other special treatments
+SET(ENV{ALUTDIR}               ${DEP_INCLUDE_DIR}/freealut-1.1.0)
+SET(ENV{BOOST_ROOT}            ${DEP_INCLUDE_DIR}/boost-1.37.0)
+SET(ENV{CEGUIDIR}              ${DEP_INCLUDE_DIR}/cegui-0.6.2)
+SET(ENV{DXSDK_DIR}             ${DEP_INCLUDE_DIR}/directx-2007.aug)
+SET(ENV{ENETDIR}               ${DEP_INCLUDE_DIR}/enet-1.2)
+SET(ENV{LUA_DIR}               ${DEP_INCLUDE_DIR}/lua-5.1.4)
+SET(ENV{OGGDIR}                ${DEP_INCLUDE_DIR}/libogg-1.1.3)
+SET(ENV{VORBISDIR}             ${DEP_INCLUDE_DIR}/libvorbis-1.2.0)
+SET(ENV{OGRE_HOME}             ${DEP_INCLUDE_DIR}/ogre-1.4.9)
+SET(ENV{OGRE_PLUGIN_DIR}       ${DEP_BINARY_DIR})
+SET(ENV{OPENALDIR}             ${DEP_INCLUDE_DIR}/openal-1.1)
+LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/tcl-8.5.2/include)
+LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/zlib-1.2.3/include)
+
+### INSTALL ###
+# On Windows, DLLs have to be in the executable folder, install them
+IF(WIN32 AND DEP_BINARY_DIR)
+  ## DEBUG
+  # When installing a debug version, we really can't know which libraries
+  # are used in released mode because there might be deps of deps.
+  # --> Copy all of them, except the debug databases
+  INSTALL(
+    DIRECTORY ${DEP_BINARY_DIR}/
+    DESTINATION bin
+    CONFIGURATIONS Debug
+    REGEX "^.*\\.pdb$" EXCLUDE
+  )
+
+  ## RELEASE
+  # Try to filter out all the debug libraries. If the regex doesn't do the
+  # job anymore, simply adjust it.
+  INSTALL(
+    DIRECTORY ${DEP_BINARY_DIR}/
+    DESTINATION bin
+    CONFIGURATIONS Release RelWithDebInfo MinSizeRel
+    REGEX "_[Dd]\\.[a-zA-Z0-9+-]+$|-mt-gd-|^.*\\.pdb$" EXCLUDE
+  )
+ENDIF()

Modified: trunk/cmake/PackageConfigMSVC.cmake
===================================================================
--- trunk/cmake/PackageConfigMSVC.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/PackageConfigMSVC.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,13 +27,6 @@
 
 IF(MSVC)
 
-  # MAJOR: Interface breaking change somewhere or added a new library
-  # MINOR: Updated a library to a new version
-  # PATCH: Bug fix or smaller things
-  SET(DEPENDENCY_VERSION 0.0.1)
-
-  MESSAGE(STATUS "Using library package for the dependencies.")
-
   # 64 bit system?
   IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
     SET(BINARY_POSTFIX x64)
@@ -44,9 +37,6 @@
   # Choose right MSVC version
   STRING(REGEX REPLACE "^Visual Studio ([0-9][0-9]?) .*$" "\\1"
          _msvc_version "${CMAKE_GENERATOR}")
-  IF(MSVC71)
-    SET(_msvc_version "7.1")
-  ENDIF(MSVC71)
 
   SET(DEP_INCLUDE_DIR ${DEPENDENCY_PACKAGE_DIR}/include)
   SET(DEP_LIBRARY_DIR ${DEPENDENCY_PACKAGE_DIR}/lib/msvc${_msvc_version}-${BINARY_POSTFIX})
@@ -61,21 +51,15 @@
   # Sets the library path for the FIND_LIBRARY
   SET(CMAKE_LIBRARY_PATH ${DEP_LIBRARY_DIR})
 
-  # Include paths and other special treatments
-  SET(ENV{ALUTDIR}               ${DEP_INCLUDE_DIR}/freealut-1.1.0)
-  SET(ENV{BOOST_ROOT}            ${DEP_INCLUDE_DIR}/boost-1.37.0)
-  SET(ENV{CEGUIDIR}              ${DEP_INCLUDE_DIR}/cegui-0.6.2)
-  SET(ENV{DXSDK_DIR}             ${DEP_INCLUDE_DIR}/directx-2007.aug)
-  SET(ENV{ENETDIR}               ${DEP_INCLUDE_DIR}/enet-1.2)
-  SET(ENV{LUA_DIR}               ${DEP_INCLUDE_DIR}/lua-5.1.4)
-  SET(ENV{OGGDIR}                ${DEP_INCLUDE_DIR}/libogg-1.1.3)
-  SET(ENV{VORBISDIR}             ${DEP_INCLUDE_DIR}/libvorbis-1.2.0)
-  SET(ENV{OGRE_HOME}             ${DEP_INCLUDE_DIR}/ogre-1.4.9)
-  SET(ENV{OGRE_PLUGIN_DIR}       ${DEP_BINARY_DIR})
-  SET(ENV{OPENALDIR}             ${DEP_INCLUDE_DIR}/openal-1.1)
-  LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/tcl-8.5.2/include)
-  SET(TCL_LIBRARY                ${DEP_LIBRARY_DIR}/tcl85.lib CACHE FILEPATH "")
-  LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/zlib-1.2.3/include)
-  SET(ZLIB_LIBRARY               ${DEP_LIBRARY_DIR}/zdll.lib CACHE FILEPATH "")
+  # Certain find scripts don't behave as ecpected to we have
+  # to specify the libraries ourselves.
+  SET(TCL_LIBRARY  ${DEP_LIBRARY_DIR}/tcl85.lib CACHE FILEPATH "")
+  SET(ZLIB_LIBRARY ${DEP_LIBRARY_DIR}/zdll.lib  CACHE FILEPATH "")
 
+  # Visual Leak Detector
+  SET(VLD_INCLUDE_DIR  ${DEP_INCLUDE_DIR}/vld-1.9h CACHE PATH "")
+  SET(VLD_LIBRARY_DIR  ${DEP_LIBRARY_DIR}          CACHE PATH "")
+  LINK_DIRECTORIES(${VLD_LIBRARY_DIR}) # Used for auto-linking
+  MARK_AS_ADVANCED(VLD_INCLUDE_DIR VLD_LIBRARY_DIR)
+
 ENDIF(MSVC)

Modified: trunk/cmake/PackageConfigMinGW.cmake
===================================================================
--- trunk/cmake/PackageConfigMinGW.cmake	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/cmake/PackageConfigMinGW.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,13 +27,6 @@
 
 IF(MINGW)
 
-  # MAJOR: Interface breaking change somewhere or added a new library
-  # MINOR: Updated a library to a new version
-  # PATCH: Bug fix or smaller things
-  SET(DEPENDENCY_VERSION 0.0.1)
-
-  MESSAGE(STATUS "Using library package for the dependencies.")
-
   # 64 bit system?
   IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
     SET(BINARY_POSTFIX x64)
@@ -51,21 +44,9 @@
   # Sets the library path for the FIND_LIBRARY
   SET(CMAKE_LIBRARY_PATH ${DEP_LIBRARY_DIR} ${DEP_BINARY_DIR})
 
-  # Include paths and other special treatments
-  SET(ENV{ALUTDIR}               ${DEP_INCLUDE_DIR}/freealut-1.1.0)
-  SET(ENV{BOOST_ROOT}            ${DEP_INCLUDE_DIR}/boost-1.37.0)
-  SET(ENV{CEGUIDIR}              ${DEP_INCLUDE_DIR}/cegui-0.6.2)
-  SET(ENV{DXSDK_DIR}             ${DEP_INCLUDE_DIR}/directx-2007.aug)
-  SET(ENV{ENETDIR}               ${DEP_INCLUDE_DIR}/enet-1.2)
-  SET(ENV{LUA_DIR}               ${DEP_INCLUDE_DIR}/lua-5.1.4)
-  SET(ENV{OGGDIR}                ${DEP_INCLUDE_DIR}/libogg-1.1.3)
-  SET(ENV{VORBISDIR}             ${DEP_INCLUDE_DIR}/libvorbis-1.2.0)
-  SET(ENV{OGRE_HOME}             ${DEP_INCLUDE_DIR}/ogre-1.4.9)
-  SET(ENV{OGRE_PLUGIN_DIR}       ${DEP_BINARY_DIR})
-  SET(ENV{OPENALDIR}             ${DEP_INCLUDE_DIR}/openal-1.1)
-  LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/tcl-8.5.2/include)
-  SET(TCL_LIBRARY                ${DEP_BINARY_DIR}/tcl85.dll CACHE FILEPATH "")
-  LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/zlib-1.2.3/include)
-  SET(ZLIB_LIBRARY               ${DEP_BINARY_DIR}/zlib1.dll CACHE FILEPATH "")
+  # Certain find scripts don't behave as ecpected to we have
+  # to specify the libraries ourselves.
+  SET(TCL_LIBRARY  ${DEP_BINARY_DIR}/tcl85.dll CACHE FILEPATH "")
+  SET(ZLIB_LIBRARY ${DEP_BINARY_DIR}/zlib1.dll CACHE FILEPATH "")
 
 ENDIF(MINGW)

Copied: trunk/cmake/ParseMacroArguments.cmake (from rev 3195, branches/pch/cmake/ParseMacroArguments.cmake)
===================================================================
--- trunk/cmake/ParseMacroArguments.cmake	                        (rev 0)
+++ trunk/cmake/ParseMacroArguments.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,76 @@
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        This program is free software; you can redistribute it and/or
+ #         modify it under the terms of the GNU General Public License
+ #        as published by the Free Software Foundation; either version 2
+ #            of the License, or (at your option) any later version.
+ #
+ #       This program is distributed in the hope that it will be useful,
+ #        but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #                 GNU General Public License for more details.
+ #
+ #   You should have received a copy of the GNU General Public License along
+ #      with this program; if not, write to the Free Software Foundation,
+ #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ #
+ #
+ #  Author:
+ #    Reto Grieder
+ #  Description:
+ #    Parses a list of macro arguments which are separated by keywords and
+ #    writes the result to the _arg_KEYWORD variable. Switches are set to their
+ #    literal name if found and the lists contain their elements.
+ #    The order of the arguments is arbitrary.
+ #  Note:
+ #    You have to specify the switches and list_names as a
+ #    semicolon separated list or all hell breaks loose!
+ #  Example:
+ #    The arguments  BLUBB_FILES foo.cc bar.c NO_ASDF  will do the following:
+ #    SET(_arg_NO_ASDF _arg_NO_ASDF)
+ #    SET(_arg_BLUBB_FILES foo.cc bar.c)
+ #    But NO_FOO will not be set at all if it was specified as a switch
+ #
+
+MACRO(PARSE_MACRO_ARGUMENTS _switches _list_names)
+  # Parse all the arguments and set the corresponding variable
+  # If the option is just a switch, set the variable to its name for later use
+  FOREACH(_arg ${ARGN})
+    SET(_arg_found FALSE)
+
+    # Switches
+    FOREACH(_switch ${_switches})
+      IF(${_switch} STREQUAL ${_arg})
+        SET(_arg_${_switch} ${_switch})
+	SET(_arg_found TRUE)
+        # Avoid interpreting arguments after this one as options args for the previous one
+	SET(_storage_var)
+        BREAK()
+      ENDIF()
+    ENDFOREACH(_switch)
+
+    # Input options
+    IF(NOT _arg_found)
+      FOREACH(_list_name ${_list_names})
+        IF(${_list_name} STREQUAL ${_arg})
+          SET(_storage_var _arg_${_list_name})
+	  SET(_arg_found TRUE)
+          BREAK()
+        ENDIF()
+      ENDFOREACH(_list_name)
+    ENDIF(NOT _arg_found)
+
+    # Arguments of an input option (like source files for SOURCE_FILES)
+    IF(NOT _arg_found)
+      IF(_storage_var)
+        # Store in variable define above in the foreach loop
+        SET(${_storage_var} ${${_storage_var}} ${_arg})
+      ELSE()
+        MESSAGE(FATAL_ERROR "ORXONOX_ADD_${_target_type} was given a non compliant argument: ${_arg}")
+      ENDIF(_storage_var)
+    ENDIF(NOT _arg_found)
+
+  ENDFOREACH(_arg)
+ENDMACRO(PARSE_MACRO_ARGUMENTS)

Copied: trunk/cmake/PrecompiledHeaderFiles.cmake (from rev 3195, branches/pch/cmake/PrecompiledHeaderFiles.cmake)
===================================================================
--- trunk/cmake/PrecompiledHeaderFiles.cmake	                        (rev 0)
+++ trunk/cmake/PrecompiledHeaderFiles.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,161 @@
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        This program is free software; you can redistribute it and/or
+ #         modify it under the terms of the GNU General Public License
+ #        as published by the Free Software Foundation; either version 2
+ #            of the License, or (at your option) any later version.
+ #
+ #       This program is distributed in the hope that it will be useful,
+ #        but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #                 GNU General Public License for more details.
+ #
+ #   You should have received a copy of the GNU General Public License along
+ #      with this program; if not, write to the Free Software Foundation,
+ #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ #
+ #
+ #  Author:
+ #    Reto Grieder
+ #
+
+INCLUDE(GetGCCCompilerFlags)
+ 
+MACRO(PRECOMPILED_HEADER_FILES_PRE_TARGET _target_name _header_file_arg _sourcefile_var)
+
+  GET_FILENAME_COMPONENT(_pch_header_file ${_header_file_arg} ABSOLUTE)
+  GET_FILENAME_COMPONENT(_pch_header_filename ${_pch_header_file} NAME)
+  GET_FILENAME_COMPONENT(_pch_header_filename_we ${_pch_header_file} NAME_WE)
+
+  IF(NOT EXISTS ${_pch_header_file})
+    MESSAGE(FATAL_ERROR "Specified precompiled headerfile '${_header_file_arg}' does not exist.")
+  ENDIF()
+
+  # Extract arguments from ARGN
+  FOREACH(_arg ${ARGN})
+    IF(NOT "${_arg}" STREQUAL "EXCLUDE")
+      IF(NOT _arg_second)
+        # Source files with PCH support
+        SET(_included_files ${_included_files} ${_arg})
+      ELSE()
+        # Source files to be excluded from PCH support (easier syntax this way)
+        SET(_excluded files ${_excluded_files} ${_arg})
+      ENDIF()
+    ELSE()
+      SET(_arg_second TRUE)
+    ENDIF()
+  ENDFOREACH(_arg)
+
+  # Use ${_sourcefile_var} if no files were specified explicitely
+  IF(NOT _included_files)
+    SET(_source_files ${${_sourcefile_var}})
+  ELSE()
+    SET(_source_files ${_included_files})
+  ENDIF()
+
+  # Exclude files (if specified)
+  FOREACH(_file ${_excluded_files})
+    LIST(FIND _source_files ${_file} _list_index)
+    IF(_list_index GREATER -1)
+      LIST(REMOVE_AT _source_files _list_index)
+    ELSE()
+      MESSAGE(FATAL_ERROR "Could not exclude file ${_file} in target ${_target_name}")
+    ENDIF()
+  ENDFOREACH(_file)
+
+  LIST(FIND ${_sourcefile_var} ${_pch_header_file} _list_index)
+  IF(_list_index EQUAL -1) # Header file could already be included with GET_ALL_HEADER_FILES
+    LIST(APPEND ${_sourcefile_var} ${_pch_header_file})
+  ENDIF()
+  SOURCE_GROUP("PCH" FILES ${_pch_header_file})
+
+  IF(MSVC)
+
+    # Write and add one source file, which generates the precompiled header file
+    SET(_pch_source_file "${CMAKE_CURRENT_BINARY_DIR}/${_pch_header_filename_we}.cc")
+    IF(NOT EXISTS ${_pch_source_file})
+      FILE(WRITE ${_pch_source_file} "#include \"${_pch_header_file}\"\n")
+    ENDIF()
+    SET_SOURCE_FILES_PROPERTIES(_pch_source_file PROPERTIES GENERATED TRUE)
+    LIST(APPEND ${_sourcefile_var} ${_pch_source_file})
+    SOURCE_GROUP("PCH" FILES ${_pch_source_file})
+
+    SET(_pch_file "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_pch_header_filename}.pch")
+    # Set compile flags for generated source file
+    SET_SOURCE_FILES_PROPERTIES(${_pch_source_file} PROPERTIES COMPILE_FLAGS "/c /Yc\"${_pch_header_file}\" /Fp\"${_pch_file}\"")
+    # Set Compile flags for the other source files
+    FOREACH(_file ${_source_files})
+      GET_SOURCE_FILE_PROPERTY(_is_header ${_file} HEADER_FILE_ONLY)
+      IF(NOT _is_header)
+        GET_SOURCE_FILE_PROPERTY(_old_flags ${_file} COMPILE_FLAGS)
+        IF(NOT _old_flags)
+          SET(_old_flags "")
+        ENDIF()
+	SET_SOURCE_FILES_PROPERTIES(${_file} PROPERTIES COMPILE_FLAGS "${_old_flags} /FI\"${_pch_header_file}\" /Yu\"${_pch_header_file}\" /Fp\"${_pch_file}\"")
+      ENDIF(NOT _is_header)
+    ENDFOREACH(_file)
+
+  ELSEIF(CMAKE_COMPILER_IS_GNU)
+
+    SET(_pch_file "${CMAKE_CURRENT_BINARY_DIR}/${_pch_header_filename}.gch")
+    SET(_pch_dep_helper_file "${CMAKE_CURRENT_BINARY_DIR}/${_target_name}PCHDependencyHelper.h")
+
+    # Append the gch-dir to make sure gcc finds the pch file
+    INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+
+    # Get compiler flags of the source files (target does not yet exist!)
+    # This is just the best possible opportunity to address this dependency issue
+    GET_GCC_COMPILER_FLAGS(${_target_name} _pch_gcc_flags)
+    # Make sure we recompile the pch file even if only the flags change
+    IF(NOT "${_pch_gcc_flags}" STREQUAL "${_INTERNAL_PCH_GCC_FLAGS}")
+      SET(_INTERNAL_PCH_GCC_FLAGS "${_pch_gcc_flags}" CACHE INTERNAL "")
+      FILE(WRITE ${_pch_dep_helper_file} "/* ${_pch_gcc_flags} */")
+    ENDIF()
+
+    # Set Compile flags for the other source files
+    FOREACH(_file ${_source_files})
+      GET_SOURCE_FILE_PROPERTY(_is_header ${_file} HEADER_FILE_ONLY)
+      IF(NOT _is_header)
+        GET_SOURCE_FILE_PROPERTY(_old_flags ${_file} COMPILE_FLAGS)
+        IF(NOT _old_flags)
+          SET(_old_flags "")
+        ENDIF()
+        SET_SOURCE_FILES_PROPERTIES(${_file} PROPERTIES
+          COMPILE_FLAGS "${_old_flags} -include ${_pch_header_filename}"
+          OBJECT_DEPENDS "${_pch_header_file};${_pch_file}"
+        )
+      ENDIF(NOT _is_header)
+    ENDFOREACH(_file)
+
+  ENDIF()
+
+ENDMACRO(PRECOMPILED_HEADER_FILES_PRE_TARGET)
+
+FUNCTION(PRECOMPILED_HEADER_FILES_POST_TARGET _target_name)
+    # This macro is only necessary for GCC
+    IF(CMAKE_COMPILER_IS_GNU)
+
+      # Workaround for distcc
+      IF(CMAKE_CXX_COMPILER_ARG1)
+        # remove leading space in compiler argument
+        STRING(REGEX REPLACE "^ +" "" _pch_cmake_cxx_compiler_arg1 "${CMAKE_CXX_COMPILER_ARG1}")
+      ENDIF()
+
+      # Get compiler flags of the source files again (target exists this time)
+      GET_GCC_COMPILER_FLAGS(${_target_name} _pch_gcc_flags)
+
+      # Compile the header file
+      ADD_CUSTOM_COMMAND(
+        OUTPUT ${_pch_file}
+        COMMAND ${CMAKE_CXX_COMPILER}
+        ARGS ${pchsupport_compiler_cxx_arg1} ${_pch_gcc_flags} -c -x c++-header -o ${_pch_file} ${_pch_header_file}
+	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+        DEPENDS ${_pch_header_file} ${_pch_dep_helper_file}
+        IMPLICIT_DEPENDS ${_pch_header_file}
+        VERBATIM
+      )
+
+    ENDIF(CMAKE_COMPILER_IS_GNU)
+ENDFUNCTION(PRECOMPILED_HEADER_FILES_POST_TARGET)

Copied: trunk/cmake/SeparateFlags.cmake (from rev 3195, branches/pch/cmake/SeparateFlags.cmake)
===================================================================
--- trunk/cmake/SeparateFlags.cmake	                        (rev 0)
+++ trunk/cmake/SeparateFlags.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,63 @@
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        This program is free software; you can redistribute it and/or
+ #         modify it under the terms of the GNU General Public License
+ #        as published by the Free Software Foundation; either version 2
+ #            of the License, or (at your option) any later version.
+ #
+ #       This program is distributed in the hope that it will be useful,
+ #        but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #                 GNU General Public License for more details.
+ #
+ #   You should have received a copy of the GNU General Public License along
+ #      with this program; if not, write to the Free Software Foundation,
+ #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ #
+ #
+ #  Author:
+ #    Reto Grieder
+ #  Description:
+ #    Separates a string of program flags like "--blubb -test -D AA".
+ #    " -" or " /" denotes the start of a flag.
+ #    The same sequence inside double quotation marks is being ignored.
+ #    Spaces not within quotes are cleaned meaningfully.
+ #  Note:
+ #    This macro cannot cope with semicolons in the flag string!
+
+FUNCTION(SEPARATE_FLAGS _flags _output_variable)
+  # Visual studio (esp. IntelliSense) doesn't like dashes to specify arguments
+  # Always use foward slashes instead
+  IF(MSVC)
+    SET(_argument_starter "/")
+  ELSE()
+    SET(_argument_starter "-")
+  ENDIF(MSVC)
+
+  SET(_flags_prep " ${_flags} -")
+  # Separate the chunks
+  STRING(REPLACE " " " ;" _flag_chunks "${_flags_prep}") # Max loop iterations
+  SET(_flag_string)
+  SET(_parsed_flags)
+  # Loop is necessary because the regex engine is greedy
+  FOREACH(_chunk ${_flag_chunks})
+    SET(_flag_string "${_flag_string}${_chunk}")
+    # Replace all " -" and " /" inside quotation marks
+    STRING(REGEX REPLACE "^(([^\"]*\"[^\"]*\")*[^\"]*\"[^\"]*) [/-]([^\"]*\")"
+           "\\1 at 39535493@\\3" _flag_string "${_flag_string}")
+    # Extract one flag if possible
+    SET(_flag)
+    STRING(REGEX REPLACE "^.* [/-](.+)( [/-].*$)" "${_argument_starter}\\1" _flag "${_flag_string}")
+    STRING(REGEX REPLACE "^.* [/-](.+)( [/-].*$)" "\\2"  _flag_string "${_flag_string}")
+    IF(NOT _flag STREQUAL _flag_string)
+      STRING(STRIP "${_flag}" _flag_stripped)
+      LIST(APPEND _parsed_flags "${_flag_stripped}")
+    ENDIF(NOT _flag STREQUAL _flag_string)
+  ENDFOREACH(_chunk)
+
+  # Re-replace all " -" and " /" inside quotation marks
+  STRING(REGEX REPLACE "@39535493@" " -" _parsed_flags "${_parsed_flags}")
+  SET(${_output_variable} "${_parsed_flags}" PARENT_SCOPE)
+ENDFUNCTION(SEPARATE_FLAGS)

Copied: trunk/cmake/SetCacheAdvanced.cmake (from rev 3195, branches/pch/cmake/SetCacheAdvanced.cmake)
===================================================================
--- trunk/cmake/SetCacheAdvanced.cmake	                        (rev 0)
+++ trunk/cmake/SetCacheAdvanced.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,36 @@
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        This program is free software; you can redistribute it and/or
+ #         modify it under the terms of the GNU General Public License
+ #        as published by the Free Software Foundation; either version 2
+ #            of the License, or (at your option) any later version.
+ #
+ #       This program is distributed in the hope that it will be useful,
+ #        but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #                 GNU General Public License for more details.
+ #
+ #   You should have received a copy of the GNU General Public License along
+ #      with this program; if not, write to the Free Software Foundation,
+ #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ #
+ #
+ #  Author:
+ #    Reto Grieder
+ #  Description:
+ #    Write to the cache by force, but only if the user hasn't changed the value
+ #    Additional argument is the value (may also be a list)
+
+FUNCTION(SET_CACHE_ADVANCED _varname _type _docstring)
+  SET(_value ${ARGN})
+  IF(NOT "${_type}" MATCHES "^(STRING|BOOL|PATH|FILEPATH)$")
+    MESSAGE(FATAL_ERROR "${_type} is not a valid CACHE entry type")
+  ENDIF()
+
+  IF(NOT DEFINED _INTERNAL_${_varname} OR "${_INTERNAL_${_varname}}" STREQUAL "${${_varname}}")
+    SET(${_varname} "${_value}" CACHE ${_type} "${_docstring}" FORCE)
+    SET(_INTERNAL_${_varname} "${_value}" CACHE INTERNAL "Do not edit in any case!")
+  ENDIF()
+ENDFUNCTION(SET_CACHE_ADVANCED)

Copied: trunk/cmake/TargetUtilities.cmake (from rev 3195, branches/pch/cmake/TargetUtilities.cmake)
===================================================================
--- trunk/cmake/TargetUtilities.cmake	                        (rev 0)
+++ trunk/cmake/TargetUtilities.cmake	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,183 @@
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        This program is free software; you can redistribute it and/or
+ #         modify it under the terms of the GNU General Public License
+ #        as published by the Free Software Foundation; either version 2
+ #            of the License, or (at your option) any later version.
+ #
+ #       This program is distributed in the hope that it will be useful,
+ #        but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #                 GNU General Public License for more details.
+ #
+ #   You should have received a copy of the GNU General Public License along
+ #      with this program; if not, write to the Free Software Foundation,
+ #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ #
+ #
+ #  Author:
+ #    Reto Grieder
+ #  Description:
+ #    Adds a library or an executable like ADD_LIBRARY/ADD_EXECUTABLE, but
+ #    accepts a lot more input information. Simply supply the keywords
+ #    described below in any order you wish.
+ #
+ #    Switches: (when given --> TRUE, FALSE otherwise)
+ #      FIND_HEADER_FILES: Searches the current directory for all header files
+ #                         and adds them to the target.
+ #      EXCLUDE_FROM_ALL:  Inherited from ADD_LIBRARY/ADD_EXECUTABLE
+ #      ORXONOX_EXTERNAL:  Specify this for third party libraries
+ #      NO_DLL_INTERFACE:  Link statically with MSVC
+ #      NO_SOURCE_GROUPS:  Don't create msvc source groups
+ #      STATIC/SHARED:     Inherited from ADD_LIBRARY
+ #      WIN32:             Inherited from ADD_EXECUTABLE
+ #      PCH_NO_DEFAULT:    Do not make precompiled header files default if
+ #                         specified with PCH_FILE
+ #    Lists:
+ #      LINK_LIBRARIES:    Redirects to TARGET_LINK_LIBRARIES
+ #      VERSION:           Set version to the binary
+ #      SOURCE_FILES:      Source files for the target
+ #      DEFINE_SYMBOL:     Sets the DEFINE_SYMBOL target property
+ #      TOLUA_FILES:       Files with tolua interface
+ #      PCH_FILE:          Precompiled header file
+ #      PCH_EXCLUDE:       Source files to be excluded from PCH support
+ #  Note:
+ #    This function also installs the target!
+ #  Prerequisistes:
+ #    ORXONOX_DEFAULT_LINK, ORXONOX_CONFIG_FILES
+ #  Parameters:
+ #    _target_name, ARGN for the macro arguments
+ #
+
+INCLUDE(CapitaliseName)
+INCLUDE(GenerateToluaBindings)
+INCLUDE(ParseMacroArguments)
+INCLUDE(SourceFileUtilities)
+IF(PCH_COMPILER_SUPPORT)
+  INCLUDE(PrecompiledHeaderFiles)
+ENDIF()
+
+FUNCTION(ORXONOX_ADD_LIBRARY _target_name)
+  TU_ADD_TARGET(${_target_name} LIBRARY "STATIC;SHARED" ${ARGN})
+ENDFUNCTION(ORXONOX_ADD_LIBRARY)
+
+FUNCTION(ORXONOX_ADD_EXECUTABLE _target_name)
+  TU_ADD_TARGET(${_target_name} EXECUTABLE "WIN32" ${ARGN})
+ENDFUNCTION(ORXONOX_ADD_EXECUTABLE)
+
+
+FUNCTION(TU_ADD_TARGET _target_name _target_type _additional_switches)
+  CAPITALISE_NAME(${_target_name} _target_name_capitalised)
+
+  # Specify all possible options (either switch or with add. arguments)
+  SET(_switches   FIND_HEADER_FILES  EXCLUDE_FROM_ALL  ORXONOX_EXTERNAL
+                  NO_DLL_INTERFACE   NO_SOURCE_GROUPS  ${_additional_switches}
+                  PCH_NO_DEFAULT)
+  SET(_list_names LINK_LIBRARIES  VERSION   SOURCE_FILES  DEFINE_SYMBOL
+                  TOLUA_FILES     PCH_FILE  PCH_EXCLUDE)
+  PARSE_MACRO_ARGUMENTS("${_switches}" "${_list_names}" ${ARGN})
+
+
+  # GET_HEADER_FILES
+  IF(_arg_FIND_HEADER_FILES)
+    GET_ALL_HEADER_FILES(_${target_name}_header_files)
+  ENDIF()
+
+  # Remove potential duplicates
+  SET(_${_target_name}_files ${_${target_name}_header_files} ${_arg_SOURCE_FILES})
+  LIST(REMOVE_DUPLICATES _${_target_name}_files)
+
+  # Generate the source groups
+  IF(NOT _arg_NO_SOURCE_GROUPS)
+    GENERATE_SOURCE_GROUPS(${_${_target_name}_files})
+
+    IF(NOT _arg_ORXONOX_EXTERNAL)
+      # Move the prereqs.h file to the config section
+      IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_target_name_capitalised}Prereqs.h)
+        SOURCE_GROUP("Config" FILES ${_target_name_capitalised}Prereqs.h)
+      ENDIF()
+      # Add the config files in a special source group
+      LIST(APPEND _${_target_name}_files ${ORXONOX_CONFIG_FILES})
+      SOURCE_GROUP("Config" FILES ${ORXONOX_CONFIG_FILES})
+    ENDIF()
+  ENDIF(NOT _arg_NO_SOURCE_GROUPS)
+
+  # TOLUA_FILES
+  IF(_arg_TOLUA_FILES)
+    GENERATE_TOLUA_BINDINGS(${_target_name_capitalised} _${_target_name}_files
+                            INPUTFILES ${_arg_TOLUA_FILES})
+  ENDIF()
+
+  # First part (pre target) of precompiled header files
+  IF(PCH_COMPILER_SUPPORT AND _arg_PCH_FILE)
+    # Provide convenient option to control PCH
+    STRING(TOUPPER "${_target_name}" _target_name_upper)
+    IF(_arg_PCH_NO_DEFAULT)
+      SET(PCH_DEFAULT FALSE)
+    ELSE()
+      SET(PCH_DEFAULT TRUE)
+    ENDIF()
+    OPTION(PCH_ENABLE_${_target_name_upper} "Enable using precompiled header files for library ${_target_name}." ${PCH_DEFAULT})
+
+    IF(PCH_ENABLE_${_target_name_upper})
+      PRECOMPILED_HEADER_FILES_PRE_TARGET(${_target_name} ${_arg_PCH_FILE} _${_target_name}_files EXCLUDE ${_arg_PCH_EXCLUDE})
+    ENDIF()
+  ENDIF()
+
+  # Certain libraries don't have dllexport/dllimport and can't be linked shared with msvc
+  IF(MSVC AND _arg_NO_DLL_INTERFACE)
+    SET(_arg_SHARED)
+    SET(_arg_STATIC STATIC)
+  ENDIF()
+
+  # Set default linking if required
+  IF(NOT _arg_SHARED AND NOT _arg_STATIC)
+    IF("${ORXONOX_DEFAULT_LINK}" STREQUAL "STATIC")
+      SET(_arg_STATIC STATIC)
+    ELSEIF("${ORXONOX_DEFAULT_LINK}" STREQUAL "SHARED")
+      SET(_arg_SHARED SHARED)
+    ENDIF()
+  ENDIF()
+
+  # Add the library/executable
+  IF("${_target_type}" STREQUAL "LIBRARY")
+    ADD_LIBRARY(${_target_name} ${_arg_STATIC} ${_arg_SHARED}
+                ${_arg_EXCLUDE_FROM_ALL} ${_${_target_name}_files})
+  ELSE()
+    ADD_EXECUTABLE(${_target_name} ${_arg_WIN32} ${_arg_EXCLUDE_FROM_ALL}
+                   ${_${_target_name}_files})
+  ENDIF()
+
+  # LINK_LIBRARIES
+  IF(_arg_LINK_LIBRARIES)
+    TARGET_LINK_LIBRARIES(${_target_name} ${_arg_LINK_LIBRARIES})
+  ENDIF()
+
+  # DEFINE_SYMBOL
+  IF(_arg_DEFINE_SYMBOL)
+    SET_TARGET_PROPERTIES(${_target_name} PROPERTIES DEFINE_SYMBOL ${_arg_DEFINE_SYMBOL})
+  ENDIF()
+
+  # VERSION
+  IF(_arg_VERSION)
+    SET_TARGET_PROPERTIES(${_target_name} PROPERTIES VERSION ${_arg_VERSION})
+  ELSEIF(NOT _arg_ORXONOX_EXTERNAL)
+    SET_TARGET_PROPERTIES(${_target_name} PROPERTIES VERSION ${ORXONOX_VERSION})
+  ENDIF()
+
+  # Second part of precompiled header files
+  IF(PCH_COMPILER_SUPPORT AND PCH_ENABLE_${_target_name_upper} AND _arg_PCH_FILE)
+    PRECOMPILED_HEADER_FILES_POST_TARGET(${_target_name} ${_arg_PCH_FILE})
+  ENDIF()
+
+  IF(NOT _arg_STATIC)
+    INSTALL(TARGETS ${_target_name}
+      RUNTIME DESTINATION ${ORXONOX_RUNTIME_INSTALL_PATH}
+      LIBRARY DESTINATION ${ORXONOX_LIBRARY_INSTALL_PATH}
+      #ARCHIVE DESTINATION ${ORXONOX_ARCHIVE_INSTALL_PATH}
+    )
+  ENDIF()
+
+ENDFUNCTION(TU_ADD_TARGET)

Modified: trunk/doc/api/CMakeLists.txt
===================================================================
--- trunk/doc/api/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/doc/api/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -49,8 +49,9 @@
     CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/doxy.config.in ${CMAKE_CURRENT_BINARY_DIR}/doxy.config @ONLY)
     # use (configured) doxy.config from (out of place) BUILD tree:
     SET(DOXY_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/doxy.config)
+    SET(DOXY_LOGFILE ${CMAKE_CURRENT_BINARY_DIR}/doxy.log)
   ELSE()
-    MESSAGE(STATUS "Warning: Could not find dox.config.in in the root directory.")
+    MESSAGE(FATAL_ERROR "Warning: Could not find dox.config.in in the root directory.")
   ENDIF()
   
   ADD_CUSTOM_TARGET(doc ${DOXYGEN_EXECUTABLE} ${DOXY_CONFIG})
@@ -63,10 +64,10 @@
     IF(HTML_HELP_COMPILER)      
       SET(TMP ${DOXY_OUTPUT_DIR}/html/index.hhp)
       STRING(REGEX REPLACE "/" "\\\\" HHP_FILE ${TMP})
-      ADD_CUSTOM_TARGET(chmdoc ${HTML_HELP_COMPILER} ${HHP_FILE})
-      ADD_DEPENDENCIES(chmdoc doc)
+      ADD_CUSTOM_TARGET(doc_chm ${HTML_HELP_COMPILER} ${HHP_FILE})
+      ADD_DEPENDENCIES(doc_chm doc)
       # Adding a dependency somehow adds doc target as default build target
-      SET_TARGET_PROPERTIES(doc chmdoc PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD TRUE)
+      SET_TARGET_PROPERTIES(doc doc_chm PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD TRUE)
     ENDIF(HTML_HELP_COMPILER)
   ENDIF (WIN32) 
 
@@ -77,7 +78,7 @@
     DESTINATION ${ORXONOX_DOC_INSTALL_PATH}/api
     OPTIONAL
   )
-  # Install command always needs the directory to work
+  # Install command always needs the directory
   IF(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/html)
     FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html)
   ENDIF()

Modified: trunk/doc/api/doxy.config.in
===================================================================
--- trunk/doc/api/doxy.config.in	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/doc/api/doxy.config.in	2009-06-20 07:20:47 UTC (rev 3196)
@@ -53,16 +53,6 @@
 
 OUTPUT_LANGUAGE        = English
 
-# This tag can be used to specify the encoding used in the generated output. 
-# The encoding is not always determined by the language that is chosen, 
-# but also whether or not the output is meant for Windows or non-Windows users. 
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
-# forces the Windows encoding (this is the default for the Windows binary), 
-# whereas setting the tag to NO uses a Unix-style encoding (the default for 
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING   = YES
-
 # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
 # include brief member descriptions after the members that are listed in 
 # the file and class documentation (similar to JavaDoc). 
@@ -376,7 +366,7 @@
 # The ENABLED_SECTIONS tag can be used to enable conditional 
 # documentation sections, marked by \if sectionname ... \endif.
 
-ENABLED_SECTIONS       = 
+ENABLED_SECTIONS       = YES
 
 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
 # the initial value of a variable or define consists of for it to appear in 
@@ -400,6 +390,18 @@
 
 SHOW_DIRECTORIES       = YES
 
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the Folder
+# Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page. This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
 # The FILE_VERSION_FILTER tag can be used to specify a program or script that 
 # doxygen should invoke to get the current version for each file (typically from the 
 # version control system). Doxygen will invoke the program by executing (via 
@@ -459,7 +461,7 @@
 # and error messages should be written. If left blank the output is written 
 # to stderr.
 
-WARN_LOGFILE           = @DOXY_OUTPUT_DIR@/doxy.log
+WARN_LOGFILE           = @DOXY_LOGFILE@
 
 #---------------------------------------------------------------------------
 # configuration options related to the input files
@@ -471,6 +473,7 @@
 # with spaces.
 
 INPUT                  = @CMAKE_SOURCE_DIR@/src \
+                         @CMAKE_CURRENT_SOURCE_DIR@ \
                          @CMAKE_BINARY_DIR@/src
 
 # If the value of the INPUT tag contains directories, you can use the 
@@ -517,7 +520,7 @@
 # directories that contain example code fragments that are included (see 
 # the \include command).
 
-EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@/doc/examples/
+EXAMPLE_PATH           = @CMAKE_CURRENT_SOURCE_DIR@/examples/
 
 # If the value of the EXAMPLE_PATH tag contains directories, you can use the 
 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
@@ -541,7 +544,7 @@
 # directories that contain image that are included in the documentation (see 
 # the \image command).
 
-IMAGE_PATH             = @CMAKE_SOURCE_DIR@/doc/images/
+IMAGE_PATH             = @CMAKE_CURRENT_SOURCE_DIR@/images/
 
 
 # The INPUT_FILTER tag can be used to specify a program that doxygen should 
@@ -1029,7 +1032,7 @@
 # undefined via #undef or recursively expanded use the := operator 
 # instead of the = operator.
 
-PREDEFINED             = 
+PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
 # this tag can be used to specify a list of macro names that should be expanded. 
@@ -1139,7 +1142,6 @@
 # Language.
 
 UML_LOOK               = NO
-# UML_LOOK               = YES
 
 # If set to YES, the inheritance and collaboration graphs will show the 
 # relations between templates and their instances.
@@ -1195,7 +1197,7 @@
 # contain dot files that are included in the documentation (see the 
 # \dotfile command).
 
-DOTFILE_DIRS           = 
+DOTFILE_DIRS           = @CMAKE_CURRENT_SOURCE_DIR@/dot
 
 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
 # graphs generated by dot. A depth value of 3 means that only nodes reachable 
@@ -1221,8 +1223,7 @@
 # files in one run (i.e. multiple -o and -T options on the command line). This 
 # makes dot run faster, but since only newer versions of dot (>1.8.10) 
 # support this, this feature is disabled by default.
-# JW
-# DOT_MULTI_TARGETS      = NO
+
 DOT_MULTI_TARGETS      = NO
 
 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
@@ -1244,5 +1245,4 @@
 # The SEARCHENGINE tag specifies whether or not a search engine should be 
 # used. If set to NO the values of all tags below this one will be ignored.
 
-# JW SEARCHENGINE           = NO
 SEARCHENGINE           = YES

Copied: trunk/doc/api/main.dox (from rev 3195, branches/pch/doc/api/main.dox)
===================================================================
--- trunk/doc/api/main.dox	                        (rev 0)
+++ trunk/doc/api/main.dox	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,4 @@
+/**
+ at mainpage
+    Orxonox Doxygen Reference
+*/

Modified: trunk/src/CMakeLists.txt
===================================================================
--- trunk/src/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -21,17 +21,18 @@
 
 # various macro includes
 INCLUDE(FlagUtilities)
-INCLUDE(GenerateToluaBindings)
-INCLUDE(InstallUtilities)
-INCLUDE(SourceFileUtilities)
+INCLUDE(TargetUtilities)
 
 # Use TinyXML++
 ADD_COMPILER_FLAGS("-DTIXML_USE_TICPP")
 # OIS dynamic linking requires macro definition, at least for Windows
 ADD_COMPILER_FLAGS("-DOIS_DYNAMIC_LIB")
 # Tolua binding speedup if required
-ADD_COMPILER_FLAGS("-DTOLUA_RELEASE" Release MinSizeRel TOLUA_PARSER_RELEASE)
+ADD_COMPILER_FLAGS("-DTOLUA_RELEASE" ORXONOX_RELEASE)
 
+# Default linking is SHARED
+SET(ORXONOX_DEFAULT_LINK SHARED)
+
 ################ OrxonoxConfig.h ################
 
 # Check endianness
@@ -75,13 +76,19 @@
 ADD_COMPILER_FLAGS("-DCMAKE_BUILD_TYPE=MinSizeRel"     MinSizeRel)
 
 SET(GENERATED_FILE_COMMENT
-   "DO NOT EDIT THIS FILE!
+   "DO NOT EDIT THIS FILE! <br>
     It has been automatically generated by CMake from OrxonoxConfig.h.in")
 # Copy and configure OrxonoxConfig which gets included in every file
 CONFIGURE_FILE(OrxonoxConfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/OrxonoxConfig.h)
 # This file only gets included by very few classes to avoid a large recompilation
 CONFIGURE_FILE(SpecialConfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/SpecialConfig.h)
 
+SET(ORXONOX_CONFIG_FILES
+  ${CMAKE_CURRENT_BINARY_DIR}/OrxonoxConfig.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/OrxonoxConfig.h.in
+  ${CMAKE_CURRENT_BINARY_DIR}/SpecialConfig.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/SpecialConfig.h.in
+)
 
 ############## Include Directories ##############
 
@@ -100,6 +107,7 @@
   ${TCL_INCLUDE_PATH}
   ${DIRECTX_INCLUDE_DIR}
   ${ZLIB_INCLUDE_DIR}
+  ${VLD_INCLUDE_DIR}
 
   # All library includes are prefixed with the path to avoid conflicts
   ${CMAKE_CURRENT_SOURCE_DIR}
@@ -144,7 +152,3 @@
 ADD_SUBDIRECTORY(core)
 ADD_SUBDIRECTORY(network)
 ADD_SUBDIRECTORY(orxonox)
-
-# Apply version info
-SET_TARGET_PROPERTIES(util core network orxonox
-  PROPERTIES VERSION ${ORXONOX_VERSION})

Modified: trunk/src/OrxonoxConfig.h.in
===================================================================
--- trunk/src/OrxonoxConfig.h.in	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/OrxonoxConfig.h.in	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,12 +33,12 @@
  */
 
 /**
- @file
- @brief
+ at file
+ at brief
     Various constants for compiler, architecture and platform.
-
+ at remarks
     @GENERATED_FILE_COMMENT@
- */
+*/
 
 #ifndef _OrxonoxConfig_H__
 #define _OrxonoxConfig_H__
@@ -51,7 +51,7 @@
 #cmakedefine ORXONOX_PLATFORM_APPLE
 #cmakedefine ORXONOX_PLATFORM_UNIX /* Apple and Linux */
 
-/* Determine compiler and set ORXONOX_COMP_VER */
+// Determine compiler and set ORXONOX_COMP_VER
 #if defined( _MSC_VER )
 #  define ORXONOX_COMPILER_MSVC
 #  define ORXONOX_COMP_VER _MSC_VER
@@ -74,15 +74,15 @@
 
 #endif
 
-/* Endianness */
+// Endianness
 #cmakedefine ORXONOX_BIG_ENDIAN
 #cmakedefine ORXONOX_LITTLE_ENDIAN
 
-/* Architecture */
+// Architecture
 #cmakedefine ORXONOX_ARCH_32
 #cmakedefine ORXONOX_ARCH_64
 
-/* See if we can use __forceinline or if we need to use __inline instead */
+// See if we can use __forceinline or if we need to use __inline instead
 #cmakedefine HAVE_FORCEINLINE
 #ifndef FORCEINLINE
 #  ifdef HAVE_FORCEINLINE
@@ -92,7 +92,7 @@
 #  endif
 #endif
 
-/* Try to define function information */
+// Try to define function information
 #ifndef __FUNCTIONNAME__
 #  ifdef ORXONOX_COMPILER_BORLAND
 #    define __FUNCTIONNAME__ __FUNC__
@@ -114,7 +114,9 @@
 #define ORXONOX_VERSION_PATCH @ORXONOX_VERSION_PATCH@
 #define ORXONOX_VERSION_NAME "@ORXONOX_VERSION_NAME@"
 
-#define ORXONOX_VERSION ((ORXONOX_VERSION_MAJOR << 16) | (ORXONOX_VERSION_MINOR << 8) | ORXONOX_VERSION_PATCH)
+//! Defines version info encoded as 0xMMIIPP (M: Major version, I: Minor version, P: Patch version, all as hex)
+#define ORXONOX_VERSION \
+    ((ORXONOX_VERSION_MAJOR << 16) | (ORXONOX_VERSION_MINOR << 8) | ORXONOX_VERSION_PATCH)
 
 
 /*---------------------------------
@@ -122,12 +124,11 @@
  *-------------------------------*/
 #ifdef ORXONOX_PLATFORM_UNIX
 
-/* TODO: Check what this actually is and whether we need it or not */
+// TODO: Check what this actually is and whether we need it or not
 #if 0
 #  ifdef ORXONOX_PLATFORM_APPLE
 #    define ORXONOX_PLATFORM_LIB "OrxonoxPlatform.bundle"
-#  else
-/* ORXONOX_PLATFORM_LINUX */
+#  else // ORXONOX_PLATFORM_LINUX
 #    define ORXONOX_PLATFORM_LIB "libOrxonoxPlatform.so"
 #  endif
 #endif
@@ -141,19 +142,20 @@
 
 
 /*---------------------------------
- * Special Macros
+ * Options
  *-------------------------------*/
-#define MACRO_CONCATENATE_AUX(a, b) a##b
-#define MACRO_CONCATENATE(a, b) MACRO_CONCATENATE_AUX(a, b)
-#define MACRO_QUOTEME_AUX(x) #x
-#define MACRO_QUOTEME(x) MACRO_QUOTEME_AUX(x)
+/**
+ at def ORXONOX_RELEASE
+    Enables expensive (build time) optimisations and disables certain features
+*/
+#cmakedefine ORXONOX_RELEASE
 
 
 /*---------------------------------
- * Includes
+ * Includes and Declarations
  *-------------------------------*/
-/* Define the english written operators like and, or, xor
- * This is C++ standard, but the Microsoft compiler doesn't define them. */
+// Define the english written operators like and, or, xor
+// This is C++ standard, but the Microsoft compiler doesn't define them.
 #cmakedefine HAVE_ISO646_H
 #ifdef HAVE_ISO646_H
 #  include <iso646.h>
@@ -180,10 +182,19 @@
 #endif
 */
 
-/* Visual Leak Detector looks for memory leaks */
-#cmakedefine VISUAL_LEAK_DETECTOR_ENABLE
-#ifdef VISUAL_LEAK_DETECTOR_ENABLE
+// Always include the memory leak detector for MSVC except for actual releases
+// Note: Although officially supported, VLD does not work with MSVC 9
+#if defined(ORXONOX_COMPILER_MSVC) && _MSC_VER < 1500 && !defined(ORXONOX_RELEASE)
 #  include <vld.h>
 #endif
 
+// Forward declare the everywhere used std::string
+namespace std
+{
+    template<class _Elem> struct char_traits;
+    template<class _Ty>   class  allocator;
+    template<class _Elem, class _Traits, class _Ax> class basic_string;
+    typedef basic_string<char, char_traits<char>, allocator<char> > string;
+}
+
 #endif /* _OrxonoxConfig_H__ */

Modified: trunk/src/SpecialConfig.h.in
===================================================================
--- trunk/src/SpecialConfig.h.in	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/SpecialConfig.h.in	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,68 +27,89 @@
  */
 
 /**
- @file
- @brief
+ at file
+ at brief
     Various constants and options that only affect very little code.
- @note
+ at note
     This is merely to avoid recompiling everything when only a path changes.
-
+ at remarks
     @GENERATED_FILE_COMMENT@
- */
+*/
 
 #ifndef _SpecialConfig_H__
 #define _SpecialConfig_H__
 
 #include "OrxonoxConfig.h"
+#include <boost/preprocessor/stringize.hpp>
 
-/* Set whether we must suffix "ceguilua/" for the CEGUILua.h include */
+/**
+ at def CEGUILUA_USE_INTERNAL_LIBRARY
+    Set whether we must suffix "ceguilua/" for the CEGUILua.h include
+*/
 #cmakedefine CEGUILUA_USE_INTERNAL_LIBRARY
 
-/* Defined if a precompiled depdency package was used. We then copy all libraries
-   too when installing. */
+/**
+ at def DEPENDENCY_PACKAGE_ENABLE
+    Defined if a precompiled depdency package was used. We then copy all libraries
+    too when installing.
+*/
 #cmakedefine DEPENDENCY_PACKAGE_ENABLE
 
-/* Orxonox either gets installed to the system or just into a folder.
-   The latter uses relative paths. */
+/**
+ at def INSTALL_COPYABLE
+    Orxonox either gets installed to the system or just into a folder.
+    The latter uses relative paths.
+*/
 #cmakedefine INSTALL_COPYABLE
 
-/* Using MSVC or XCode IDE */
+/**
+ at def CMAKE_CONFIGURATION_TYPES
+    Using MSVC or XCode IDE
+*/
 #cmakedefine CMAKE_CONFIGURATION_TYPES
 
-/* Handle default ConfigValues */
+// Handle default ConfigValues
 namespace orxonox
 {
-    const char* const ORXONOX_RUNTIME_INSTALL_PATH("@ORXONOX_RUNTIME_INSTALL_PATH@");
-    const char* const ORXONOX_MEDIA_INSTALL_PATH  ("@ORXONOX_MEDIA_INSTALL_PATH@");
+    // INSTALLATION PATHS
+    const char ORXONOX_RUNTIME_INSTALL_PATH[] = "@ORXONOX_RUNTIME_INSTALL_PATH@";
+    const char ORXONOX_MEDIA_INSTALL_PATH[]   = "@ORXONOX_MEDIA_INSTALL_PATH@";
     /* Config and Log path might be relative because they could be user and therefore runtime dependent */
-    const char* const ORXONOX_CONFIG_INSTALL_PATH ("@ORXONOX_CONFIG_INSTALL_PATH@");
-    const char* const ORXONOX_LOG_INSTALL_PATH    ("@ORXONOX_LOG_INSTALL_PATH@");
+    const char ORXONOX_CONFIG_INSTALL_PATH[]  = "@ORXONOX_CONFIG_INSTALL_PATH@";
+    const char ORXONOX_LOG_INSTALL_PATH[]     = "@ORXONOX_LOG_INSTALL_PATH@";
 
-    const char* const ORXONOX_MEDIA_DEV_PATH      ("@CMAKE_MEDIA_OUTPUT_DIRECTORY@");
+    // DEVELOPMENT RUN PATHS
+    const char ORXONOX_MEDIA_DEV_PATH[]       = "@CMAKE_MEDIA_OUTPUT_DIRECTORY@";
 #ifdef CMAKE_CONFIGURATION_TYPES
-    const char* const ORXONOX_CONFIG_DEV_PATH     ("@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" MACRO_QUOTEME(CMAKE_BUILD_TYPE));
-    const char* const ORXONOX_LOG_DEV_PATH        ("@CMAKE_LOG_OUTPUT_DIRECTORY@/"    MACRO_QUOTEME(CMAKE_BUILD_TYPE));
+    const char ORXONOX_CONFIG_DEV_PATH[]      = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE);
+    const char ORXONOX_LOG_DEV_PATH[]         = "@CMAKE_LOG_OUTPUT_DIRECTORY@/"    BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE);
 #else
-    const char* const ORXONOX_CONFIG_DEV_PATH     ("@CMAKE_CONFIG_OUTPUT_DIRECTORY@");
-    const char* const ORXONOX_LOG_DEV_PATH        ("@CMAKE_LOG_OUTPUT_DIRECTORY@");
+    const char ORXONOX_CONFIG_DEV_PATH[]      = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@";
+    const char ORXONOX_LOG_DEV_PATH[]         = "@CMAKE_LOG_OUTPUT_DIRECTORY@";
 #endif
     
     /* OGRE Plugins */
 #ifdef NDEBUG
-    const char* const ORXONOX_OGRE_PLUGINS("@OGRE_PLUGINS_RELEASE@");
+    const char ORXONOX_OGRE_PLUGINS[] = "@OGRE_PLUGINS_RELEASE@";
 #  ifdef DEPENDENCY_PACKAGE_ENABLE
-    const char* const ORXONOX_OGRE_PLUGINS_FOLDER(".");
+    const char ORXONOX_OGRE_PLUGINS_FOLDER[] = ".";
 #  else
-    const char* const ORXONOX_OGRE_PLUGINS_FOLDER("@OGRE_PLUGINS_FOLDER_RELEASE@");
+    const char ORXONOX_OGRE_PLUGINS_FOLDER[] = "@OGRE_PLUGINS_FOLDER_RELEASE@";
 #  endif
 #else
-    const char* const ORXONOX_OGRE_PLUGINS("@OGRE_PLUGINS_DEBUG@");
+    const char ORXONOX_OGRE_PLUGINS[] = "@OGRE_PLUGINS_DEBUG@";
 #  ifdef DEPENDENCY_PACKAGE_ENABLE
-    const char* const ORXONOX_OGRE_PLUGINS_FOLDER(".");
+    const char ORXONOX_OGRE_PLUGINS_FOLDER[] = ".";
 #  else
-    const char* const ORXONOX_OGRE_PLUGINS_FOLDER("@OGRE_PLUGINS_FOLDER_DEBUG@");
+    const char ORXONOX_OGRE_PLUGINS_FOLDER[] = "@OGRE_PLUGINS_FOLDER_DEBUG@";
 #  endif
 #endif
 }
 
+/**
+ at def ORXONOX_USE_WINMAIN
+    Use main() or WinMain()?
+*/
+#cmakedefine ORXONOX_USE_WINMAIN
+
 #endif /* _SpecialConfig_H__ */

Modified: trunk/src/bullet/CMakeLists.txt
===================================================================
--- trunk/src/bullet/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/bullet/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,17 +26,15 @@
 ADD_SUBDIRECTORY(BulletDynamics)
 ADD_SUBDIRECTORY(LinearMath)
 
-GENERATE_SOURCE_GROUPS(${BULLET_FILES})
-
 # No warnings needed from third party libraries
 REMOVE_COMPILER_FLAGS("-W3 -W4" MSVC)
 ADD_COMPILER_FLAGS("-w")
 
-IF(MSVC)
-  ADD_LIBRARY(bullet_orxonox STATIC ${BULLET_FILES})
-ELSE(MSVC)
-  ADD_LIBRARY(bullet_orxonox SHARED ${BULLET_FILES})
-  ORXONOX_INSTALL(bullet_orxonox)
-ENDIF(MSVC)
-
-SET_TARGET_PROPERTIES(bullet_orxonox PROPERTIES VERSION 2.73)
+ORXONOX_ADD_LIBRARY(bullet_orxonox
+  ORXONOX_EXTERNAL
+  NO_DLL_INTERFACE
+  VERSION
+    2.74
+  SOURCE_FILES
+    ${BULLET_FILES}
+)

Modified: trunk/src/ceguilua/CMakeLists.txt
===================================================================
--- trunk/src/ceguilua/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/ceguilua/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -74,14 +74,17 @@
 
 SET(CEGUILUA_LIBRARY ceguilua_orxonox)
 SET(CEGUILUA_LIBRARY ${CEGUILUA_LIBRARY} PARENT_SCOPE)
-ADD_LIBRARY(${CEGUILUA_LIBRARY} SHARED ${CEGUILUA_FILES})
-SET_TARGET_PROPERTIES(${CEGUILUA_LIBRARY} PROPERTIES DEFINE_SYMBOL "CEGUILUA_EXPORTS")
-TARGET_LINK_LIBRARIES(${CEGUILUA_LIBRARY}
-  tolua++_orxonox
-  ${LUA_LIBRARIES}
-  ${CEGUI_LIBRARY}
+ORXONOX_ADD_LIBRARY(${CEGUILUA_LIBRARY}
+  ORXONOX_EXTERNAL
+  NO_SOURCE_GROUPS
+  DEFINE_SYMBOL
+    "CEGUILUA_EXPORTS"
+  VERSION
+    ${CEGUI_VERSION}
+  LINK_LIBRARIES
+    tolua++_orxonox
+    ${LUA_LIBRARIES}
+    ${CEGUI_LIBRARY}
+  SOURCE_FILES
+    ${CEGUILUA_FILES}
 )
-
-SET_TARGET_PROPERTIES(ceguilua_orxonox PROPERTIES VERSION ${CEGUI_VERSION})
-
-ORXONOX_INSTALL(ceguilua_orxonox)

Modified: trunk/src/core/ArgumentCompletionFunctions.cc
===================================================================
--- trunk/src/core/ArgumentCompletionFunctions.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ArgumentCompletionFunctions.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,17 +28,15 @@
 
 #include "ArgumentCompletionFunctions.h"
 
-#include <iostream>
 #include <map>
 #include <boost/version.hpp>
 #include <boost/filesystem.hpp>
 
-#include "CoreIncludes.h"
+#include "util/Convert.h"
+#include "util/String.h"
 #include "Identifier.h"
 #include "ConfigValueContainer.h"
 #include "TclThreadManager.h"
-#include "util/Convert.h"
-#include "util/String.h"
 
 // Boost 1.36 has some issues with deprecated functions that have been omitted
 #if (BOOST_VERSION == 103600)

Modified: trunk/src/core/ArgumentCompletionListElement.h
===================================================================
--- trunk/src/core/ArgumentCompletionListElement.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ArgumentCompletionListElement.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,10 +31,9 @@
 
 #include "CorePrereqs.h"
 
-#include <string>
 #include <list>
+#include <string>
 
-
 namespace orxonox
 {
     const int ACL_MODE_NORMAL    = 1;

Modified: trunk/src/core/BaseObject.cc
===================================================================
--- trunk/src/core/BaseObject.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/BaseObject.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,15 +35,16 @@
 
 #include <tinyxml/tinyxml.h>
 
+#include "util/String.h"
 #include "CoreIncludes.h"
+#include "Event.h"
 #include "EventIncludes.h"
 #include "Functor.h"
-#include "XMLPort.h"
+#include "Iterator.h"
+#include "Template.h"
 #include "XMLFile.h"
 #include "XMLNameListener.h"
-#include "Template.h"
-#include "util/String.h"
-#include "util/mbool.h"
+#include "XMLPort.h"
 
 namespace orxonox
 {
@@ -292,8 +293,8 @@
 
     void BaseObject::processEvent(Event& event)
     {
-        SetEvent(BaseObject, "activity", setActive, event);
-        SetEvent(BaseObject, "visibility", setVisible, event);
+        ORXONOX_SET_EVENT(BaseObject, "activity", setActive, event);
+        ORXONOX_SET_EVENT(BaseObject, "visibility", setVisible, event);
     }
 
     void BaseObject::setMainStateName(const std::string& name)

Modified: trunk/src/core/BaseObject.h
===================================================================
--- trunk/src/core/BaseObject.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/BaseObject.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -43,15 +43,15 @@
         this->functorGetMainState_ = createFunctor(&classname::getfunction)->setObject(this); \
     }
 
-#include <map>
 
 #include "CorePrereqs.h"
 
+#include <map>
+#include <list>
+
+#include "util/mbool.h"
+#include "OrxonoxClass.h"
 #include "Super.h"
-#include "OrxonoxClass.h"
-#include "XMLIncludes.h"
-#include "Event.h"
-#include "util/mbool.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/CMakeLists.txt
===================================================================
--- trunk/src/core/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -62,27 +62,29 @@
   TclThreadManager.cc
 )
 ADD_SUBDIRECTORY(input)
-GET_ALL_HEADER_FILES(CORE_HDR_FILES)
-SET(CORE_FILES ${CORE_SRC_FILES} ${CORE_HDR_FILES})
 
-GENERATE_SOURCE_GROUPS(${CORE_FILES})
-GENERATE_TOLUA_BINDINGS(Core CORE_FILES INPUTFILES LuaBind.h CommandExecutor.h Game.h)
-
-ADD_LIBRARY(core SHARED ${CORE_FILES})
-
-SET_TARGET_PROPERTIES(core PROPERTIES DEFINE_SYMBOL "CORE_SHARED_BUILD")
-TARGET_LINK_LIBRARIES(core
-  ${OGRE_LIBRARY}
-  ${Boost_THREAD_LIBRARY}
-  ${Boost_FILESYSTEM_LIBRARY}
-  ${Boost_SYSTEM_LIBRARY}
-  ${Boost_DATE_TIME_LIBRARY} # MSVC only
-  ${LUA_LIBRARIES}
-  cpptcl_orxonox
-  ois_orxonox
-  tinyxml++_orxonox
-  tolua++_orxonox
-  util
+ORXONOX_ADD_LIBRARY(core
+  FIND_HEADER_FILES
+  TOLUA_FILES
+    CommandExecutor.h
+    Game.h
+    LuaBind.h
+  DEFINE_SYMBOL
+    "CORE_SHARED_BUILD"
+  PCH_FILE
+    CorePrecompiledHeaders.h
+  LINK_LIBRARIES
+    ${OGRE_LIBRARY}
+    ${Boost_THREAD_LIBRARY}
+    ${Boost_FILESYSTEM_LIBRARY}
+    ${Boost_SYSTEM_LIBRARY}
+    ${Boost_DATE_TIME_LIBRARY} # MSVC only
+    ${LUA_LIBRARIES}
+    cpptcl_orxonox
+    ois_orxonox
+    tinyxml++_orxonox
+    tolua++_orxonox
+    util
+  SOURCE_FILES
+    ${CORE_SRC_FILES}
 )
-
-ORXONOX_INSTALL(core)

Modified: trunk/src/core/ClassFactory.h
===================================================================
--- trunk/src/core/ClassFactory.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ClassFactory.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -40,9 +40,9 @@
 
 #include <string>
 
+#include "util/Debug.h"
 #include "Factory.h"
 #include "Identifier.h"
-#include "util/Debug.h"
 
 namespace orxonox
 {
@@ -87,7 +87,7 @@
         @return The new object
     */
     template <class T>
-    BaseObject* ClassFactory<T>::fabricate(BaseObject* creator)
+    inline BaseObject* ClassFactory<T>::fabricate(BaseObject* creator)
     {
         return ClassFactory<T>::createNewObject(creator);
     }
@@ -97,7 +97,7 @@
         @return The new object
     */
     template <class T>
-    T* ClassFactory<T>::createNewObject(BaseObject* creator)
+    inline T* ClassFactory<T>::createNewObject(BaseObject* creator)
     {
         return new T(creator);
     }

Modified: trunk/src/core/ClassTreeMask.cc
===================================================================
--- trunk/src/core/ClassTreeMask.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ClassTreeMask.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,7 +33,6 @@
 
 #include "ClassTreeMask.h"
 #include "Identifier.h"
-#include "BaseObject.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/ClassTreeMask.h
===================================================================
--- trunk/src/core/ClassTreeMask.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ClassTreeMask.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -74,9 +74,8 @@
 
 #include <list>
 #include <stack>
-
-#include "Iterator.h"
 #include "BaseObject.h"
+#include "Iterator.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/Clock.cc
===================================================================
--- trunk/src/core/Clock.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Clock.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -56,7 +56,7 @@
         unsigned long timersTime = timer_->getMicroseconds();
         tickTime_ = storedTime_ + timersTime;
         tickDt_ = timersTime - lastTimersTime_;
-        tickDtFloat_ = (float)tickDt_ / 1000000.0f;
+        tickDtFloat_ = static_cast<float>(tickDt_) / 1000000.0f;
 
         if (timersTime > 0x7FFFFFF0)
         {

Modified: trunk/src/core/Clock.h
===================================================================
--- trunk/src/core/Clock.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Clock.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -38,7 +38,7 @@
 #define _Clock_H__
 
 #include "CorePrereqs.h"
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 
 namespace orxonox
 {
@@ -52,11 +52,11 @@
 
         unsigned long long getMicroseconds()   const { return tickTime_; }
         unsigned long long getMilliseconds()   const { return tickTime_ / 1000; }
-        int                getSeconds()        const { return tickTime_ / 1000000; }
-        float              getSecondsPrecise() const { return (float)tickTime_ / 1000000.0f; }
+        unsigned long      getSeconds()        const { return static_cast<long> (tickTime_ / 1000000); }
+        float              getSecondsPrecise() const { return static_cast<float>(tickTime_ / 1000000.0f); }
 
         float              getDeltaTime()      const { return tickDtFloat_; }
-        int                getDeltaTimeMicroseconds() const { return tickDt_; }
+        long               getDeltaTimeMicroseconds() const { return tickDt_; }
 
         unsigned long long getRealMicroseconds() const;
 
@@ -66,7 +66,7 @@
         Ogre::Timer*       timer_;
         unsigned long long storedTime_;
         unsigned long long tickTime_;
-        int                tickDt_;
+        long               tickDt_;
         float              tickDtFloat_;
         unsigned long      lastTimersTime_;
     };

Modified: trunk/src/core/CommandEvaluation.cc
===================================================================
--- trunk/src/core/CommandEvaluation.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/CommandEvaluation.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,10 +27,11 @@
  */
 
 #include "CommandEvaluation.h"
+
+#include "util/Debug.h"
+#include "util/String.h"
 #include "ConsoleCommand.h"
 #include "Identifier.h"
-#include "util/Debug.h"
-#include "util/String.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/CommandExecutor.cc
===================================================================
--- trunk/src/core/CommandExecutor.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/CommandExecutor.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,9 +27,10 @@
  */
 
 #include "CommandExecutor.h"
+
+#include "util/Debug.h"
+#include "util/String.h"
 #include "ConsoleCommand.h"
-#include "util/String.h"
-#include "util/Debug.h"
 #include "Identifier.h"
 #include "Language.h"
 #include "TclBind.h"

Modified: trunk/src/core/CommandExecutor.h
===================================================================
--- trunk/src/core/CommandExecutor.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/CommandExecutor.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,7 +32,10 @@
 #include "CorePrereqs.h"
 
 #include <map>
+#include <set>
+#include <string>
 
+#include "util/MultiType.h"
 #include "CommandEvaluation.h"
 
 // tolua_begin

Modified: trunk/src/core/CommandLine.cc
===================================================================
--- trunk/src/core/CommandLine.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/CommandLine.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,6 +29,10 @@
 #include "CommandLine.h"
 
 #include <boost/filesystem.hpp>
+
+#include "util/Convert.h"
+#include "util/Debug.h"
+#include "util/Exception.h"
 #include "util/String.h"
 #include "util/SubString.h"
 #include "Core.h"

Modified: trunk/src/core/CommandLine.h
===================================================================
--- trunk/src/core/CommandLine.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/CommandLine.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,10 +30,9 @@
 #define _CommandLine_H__
 
 #include "CorePrereqs.h"
+
 #include <map>
-#include "util/Convert.h"
-#include "util/Debug.h"
-#include "util/Exception.h"
+#include "util/OrxAssert.h"
 #include "util/MultiType.h"
 
 #define SetCommandLineArgument(name, defaultValue) \

Modified: trunk/src/core/ConfigFileManager.cc
===================================================================
--- trunk/src/core/ConfigFileManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ConfigFileManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,10 +28,10 @@
 
 #include "ConfigFileManager.h"
 
-#include <cassert>
 #include <boost/filesystem.hpp>
 
 #include "util/Convert.h"
+#include "util/Math.h"
 #include "util/String.h"
 #include "ConsoleCommand.h"
 #include "ConfigValueContainer.h"
@@ -311,7 +311,7 @@
                             {
                                 // There might be an array index
                                 unsigned int index = 0;
-                                if (ConvertValue(&index, line.substr(pos2 + 1, pos3 - pos2 - 1)))
+                                if (convertValue(&index, line.substr(pos2 + 1, pos3 - pos2 - 1)))
                                 {
                                     // New array
                                     std::list<ConfigFileEntry*>::iterator it = newsection->getEntryIterator(getStripped(line.substr(0, pos2)), index, value, false);

Modified: trunk/src/core/ConfigFileManager.h
===================================================================
--- trunk/src/core/ConfigFileManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ConfigFileManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,12 +31,11 @@
 
 #include "CorePrereqs.h"
 
-#include <iostream>
+#include <cassert>
 #include <string>
 #include <list>
 #include <map>
 
-#include "util/Math.h"
 #include "util/OrxEnum.h"
 
 namespace orxonox

Modified: trunk/src/core/ConfigValueContainer.cc
===================================================================
--- trunk/src/core/ConfigValueContainer.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ConfigValueContainer.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,15 +33,10 @@
 
 #include "ConfigValueContainer.h"
 
-#include <fstream>
-
-#include "util/SubString.h"
 #include "util/Convert.h"
+#include "util/SubString.h"
 #include "Language.h"
-#include "Identifier.h"
 
-
-
 namespace orxonox
 {
     const unsigned int MAX_VECTOR_INDEX  = 255; // to avoid up to 4*10^9 vector entries in the config file after accidentally using a wrong argument
@@ -302,7 +297,7 @@
         bool success = false;
 
         if (token.size() > 0)
-            success = ConvertValue(&index, token[0]);
+            success = convertValue(&index, token[0]);
 
         if (!success || index < 0 || index > (signed int)MAX_VECTOR_INDEX)
         {

Modified: trunk/src/core/ConfigValueContainer.h
===================================================================
--- trunk/src/core/ConfigValueContainer.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ConfigValueContainer.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -48,7 +48,6 @@
 #include <string>
 #include <vector>
 
-#include "util/Math.h"
 #include "util/MultiType.h"
 #include "ConfigFileManager.h"
 #include "Identifier.h"

Modified: trunk/src/core/ConsoleCommand.h
===================================================================
--- trunk/src/core/ConsoleCommand.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ConsoleCommand.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,10 +31,10 @@
 
 #include "CorePrereqs.h"
 
+#include "ArgumentCompletionFunctions.h"
+#include "CommandExecutor.h"
 #include "Executor.h"
 #include "Identifier.h"
-#include "CommandExecutor.h"
-#include "ArgumentCompletionFunctions.h"
 
 
 #define SetConsoleCommand(classname, function, bCreateShortcut) \

Modified: trunk/src/core/ConsoleCommandCompilation.cc
===================================================================
--- trunk/src/core/ConsoleCommandCompilation.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ConsoleCommandCompilation.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,9 +27,14 @@
  */
 
 #include "ConsoleCommandCompilation.h"
-#include "ConsoleCommand.h"
+
+#include <fstream>
+#include <set>
+#include <string>
+
 #include "util/Debug.h"
 #include "util/ExprParser.h"
+#include "ConsoleCommand.h"
 
 namespace orxonox
 {
@@ -164,7 +169,7 @@
             {
                 COUT(2) << "Warning: Expression could not be parsed to the end! Remains: '" << expr.getRemains() << "'" << std::endl;
             }
-            return expr.getResult();
+            return static_cast<float>(expr.getResult());
         }
         else
         {

Modified: trunk/src/core/ConsoleCommandCompilation.h
===================================================================
--- trunk/src/core/ConsoleCommandCompilation.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ConsoleCommandCompilation.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,6 @@
 
 #include "CorePrereqs.h"
 
-#include <string>
-
 namespace orxonox
 {
     _CoreExport void source(const std::string& filename);

Modified: trunk/src/core/Core.cc
===================================================================
--- trunk/src/core/Core.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Core.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,8 +28,9 @@
  */
 
 /**
-    @file
-    @brief Implementation of the Core class.
+ at file
+ at brief
+    Implementation of the Core singleton with its global variables (avoids boost include)
 */
 
 #include "Core.h"
@@ -80,6 +81,7 @@
     static boost::filesystem::path configPath_g;                //!< Path to the config file folder
     static boost::filesystem::path logPath_g;                   //!< Path to the log file folder
 
+    //! Static pointer to the singleton
     Core* Core::singletonRef_s  = 0;
 
     SetCommandLineArgument(mediaPath, "").information("PATH");
@@ -364,7 +366,7 @@
         static bool bInitialized = false;
         if (!bInitialized && this->bInitializeRandomNumberGenerator_)
         {
-            srand(time(0));
+            srand(static_cast<unsigned int>(time(0)));
             rand();
             bInitialized = true;
         }
@@ -471,6 +473,8 @@
         Checks for "orxonox_dev_build.keep_me" in the executable diretory.
         If found it means that this is not an installed run, hence we
         don't write the logs and config files to ~/.orxonox
+    @throws
+        GeneralException
     */
     void Core::checkDevBuild()
     {
@@ -531,14 +535,14 @@
     @brief
         Checks for the log and the config directory and creates them
         if necessary. Otherwise me might have problems opening those files.
+    @throws
+        orxonox::GeneralException if the directory to be created is a file.
     */
     void Core::createDirectories()
     {
         std::vector<std::pair<boost::filesystem::path, std::string> > directories;
-        directories.push_back(std::pair<boost::filesystem::path, std::string>
-            (boost::filesystem::path(configPath_g), "config"));
-        directories.push_back(std::pair<boost::filesystem::path, std::string>
-            (boost::filesystem::path(logPath_g),    "log"));
+        directories.push_back(std::make_pair(boost::filesystem::path(configPath_g), "config"));
+        directories.push_back(std::make_pair(boost::filesystem::path(logPath_g), "log"));
 
         for (std::vector<std::pair<boost::filesystem::path, std::string> >::iterator it = directories.begin();
             it != directories.end(); ++it)

Modified: trunk/src/core/Core.h
===================================================================
--- trunk/src/core/Core.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Core.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,9 +28,10 @@
  */
 
 /**
-    @file
-    @brief Declaration of the Core class.
-
+ at file
+ at brief
+    Declaration of the Core class.
+ at details
     The Core class is a singleton, only used to configure some variables
     in the core through the config-file.
 */
@@ -44,20 +45,25 @@
 #include "OrxonoxClass.h"
 #include "util/OutputHandler.h"
 
-// boost::filesystem header has quite a large tail, use forward declaration
-namespace boost { namespace filesystem
-{
-    struct path_traits;
-    template<class String, class Traits> class basic_path;
-    typedef basic_path< std::string, path_traits> path;
-} }
-
 namespace orxonox
 {
-    //! The Core class is a singleton, only used to configure some config-values.
+    /**
+    @brief
+        The Core class is a singleton used to configure the program basics.
+    @details
+        The class provides information about the media, config and log path.
+        It determines those by the use of platform specific functions.
+    */
     class _CoreExport Core : public OrxonoxClass
     {
         public:
+            /**
+            @brief
+                Determines the executable path, checks for build directory runs, creates
+                the output directories and sets up the other core library singletons.
+            @throws
+                GeneralException
+            */
             Core();
             ~Core();
 
@@ -75,15 +81,21 @@
 
             static void tsetMediaPath(const std::string& path)
             { assert(singletonRef_s); singletonRef_s->_tsetMediaPath(path); }
+            //! Returns the path to the config files as boost::filesystem::path
             static const boost::filesystem::path& getMediaPath();
+            //! Returns the path to the config files as boost::filesystem::path
             static const boost::filesystem::path& getConfigPath();
+            //! Returns the path to the log files as boost::filesystem::path
             static const boost::filesystem::path& getLogPath();
+            //! Returns the path to the data files as std::string
             static std::string getMediaPathString();
+            //! Returns the path to the config files as std::string
             static std::string getConfigPathString();
+            //! Returns the path to the log files as std::string
             static std::string getLogPathString();
 
         private:
-            Core(const Core&);
+            Core(const Core&); //!< Don't use (undefined symbol)
 
             void checkDevBuild();
             void setExecutablePath();

Modified: trunk/src/core/CoreIncludes.h
===================================================================
--- trunk/src/core/CoreIncludes.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/CoreIncludes.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -42,11 +42,11 @@
 
 #include "CorePrereqs.h"
 
+#include "util/Debug.h"
 #include "Identifier.h"
 #include "Factory.h"
 #include "ClassFactory.h"
-#include "Functor.h"
-#include "util/Debug.h"
+#include "ObjectList.h"
 
 
 /**
@@ -128,12 +128,4 @@
 #define ClassByID(networkID) \
     orxonox::Factory::getIdentifier(networkID)
 
-/**
-    @brief Registers a member function as callback when an object of 'type' is created.
-    @param
-*/
-#define RegisterConstructionCallback(ThisClassName, TargetClassName, FunctionName) \
-    orxonox::ClassIdentifier<TargetClassName>::getIdentifier()->addConstructionCallback( \
-        orxonox::createFunctor(&ThisClassName::FunctionName)->setObject(this))
-
 #endif /* _CoreIncludes_H__ */

Copied: trunk/src/core/CorePrecompiledHeaders.h (from rev 3195, branches/pch/src/core/CorePrecompiledHeaders.h)
===================================================================
--- trunk/src/core/CorePrecompiledHeaders.h	                        (rev 0)
+++ trunk/src/core/CorePrecompiledHeaders.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,81 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+ at file
+ at brief
+    Compilation of the most often used header files in the core library for MSVC
+*/
+
+#include "CorePrereqs.h"
+
+#include <fstream>
+#include <iostream>
+#include <list>
+#include <map>
+#include <set>
+#include <sstream>
+#include <string>
+#include <vector>
+
+
+#ifdef ORXONOX_COMPILER_MSVC
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef max
+#undef min
+
+#include <ois/OISKeyboard.h>
+#include <ois/OISMouse.h>
+#include <ois/OISJoyStick.h>
+#include <tinyxml/ticpp.h>
+// Included by both filesystem and thread but still relatively small
+#include <boost/iterator/iterator_facade.hpp>
+
+#endif /* ORXONOX_COMPILER_MSVC */
+
+
+#include "util/Convert.h"
+#include "util/Debug.h"
+#include "util/Exception.h"
+#include "util/Math.h"
+#include "util/mbool.h"
+#include "util/MultiType.h"
+#include "util/OrxAssert.h"
+#include "util/OrxEnum.h"
+#include "util/String.h"
+#include "util/SubString.h"
+
+
+#ifdef ORXONOX_COMPILER_MSVC
+
+// A change would trigger an 80% Core rebuild anyway
+#include "Identifier.h"
+
+#endif /*ORXONOX_COMPILER_MSVC */

Modified: trunk/src/core/CorePrereqs.h
===================================================================
--- trunk/src/core/CorePrereqs.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/CorePrereqs.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,8 +36,6 @@
 
 #include "OrxonoxConfig.h"
 
-#include <string>
-
 //-----------------------------------------------------------------------
 // Shared library settings
 //-----------------------------------------------------------------------
@@ -63,130 +61,180 @@
 //-----------------------------------------------------------------------
 namespace orxonox
 {
-  namespace XMLPort
-  {
-    enum Mode
+    namespace XMLPort
     {
-      LoadObject,
-      SaveObject,
-      ExpandObject
-    };
-  }
+        enum Mode
+        {
+            LoadObject,
+            SaveObject,
+            ExpandObject
+        };
+    }
 
-  namespace KeybindMode
-  {
-    enum Enum
+    namespace KeybindMode
     {
-      OnPress,
-      OnHold,
-      OnRelease,
-      None
+        enum Enum
+        {
+            OnPress,
+            OnHold,
+            OnRelease,
+            None
+        };
     };
-  };
 
-  typedef std::string LanguageEntryLabel;
+    typedef std::string LanguageEntryLabel;
 
-  class ArgumentCompleter;
-  class ArgumentCompletionListElement;
-  class BaseFactory;
-  class BaseMetaObjectListElement;
-  class BaseObject;
-  template <class T>
-  class ClassFactory;
-  template <class T>
-  class ClassIdentifier;
-  class ClassTreeMask;
-  class ClassTreeMaskIterator;
-  class ClassTreeMaskNode;
-  class ClassTreeMaskObjectIterator;
-  class Clock;
-  class CommandEvaluation;
-  class CommandExecutor;
-  class CommandLine;
-  class CommandLineArgument;
-  class ConfigFile;
-  class ConfigFileEntry;
-  class ConfigFileEntryComment;
-  class ConfigFileEntryValue;
-  class ConfigFileManager;
-  class ConfigFileSection;
-  class ConfigValueContainer;
-  class ConsoleCommand;
-  class Core;
-  struct Event;
-  class EventContainer;
-  class Executor;
-  template <class T>
-  class ExecutorMember;
-  class ExecutorStatic;
-  class Factory;
-  class Functor;
-  template <class T>
-  class FunctorMember;
-  class FunctorStatic;
-  class Identifier;
-  class IRC;
-  template <class T>
-  class Iterator;
-  class IteratorBase;
-  class Language;
-  class LanguageEntry;
-  class Loader;
-  class LuaBind;
-  class MetaObjectList;
-  class MetaObjectListElement;
-  class Namespace;
-  class NamespaceNode;
-  template <class T>
-  class ObjectList;
-  class ObjectListBase;
-  class ObjectListBaseElement;
-  template <class T>
-  class ObjectListElement;
-  template <class T>
-  class ObjectListIterator;
-  class OrxonoxClass;
-  class Shell;
-  class ShellListener;
-  template <class T>
-  class SubclassIdentifier;
-  class TclBind;
-  struct TclInterpreterBundle;
-  class TclThreadManager;
-  class Template;
-  class Tickable;
-  class XMLFile;
-  class XMLNameListener;
-  template <class T, class O>
-  class XMLPortClassObjectContainer;
-  template <class T>
-  class XMLPortClassParamContainer;
-  class XMLPortObjectContainer;
-  class XMLPortParamContainer;
+    class ArgumentCompleter;
+    class ArgumentCompletionListElement;
+    class BaseFactory;
+    class BaseMetaObjectListElement;
+    class BaseObject;
+    template <class T>
+    class ClassFactory;
+    template <class T>
+    class ClassIdentifier;
+    class ClassTreeMask;
+    class ClassTreeMaskIterator;
+    class ClassTreeMaskNode;
+    class ClassTreeMaskObjectIterator;
+    class Clock;
+    class CommandEvaluation;
+    class CommandExecutor;
+    class CommandLine;
+    class CommandLineArgument;
+    class ConfigFile;
+    class ConfigFileEntry;
+    class ConfigFileEntryComment;
+    class ConfigFileEntryValue;
+    class ConfigFileManager;
+    class ConfigFileSection;
+    class ConfigValueContainer;
+    class ConsoleCommand;
+    class Core;
+    struct Event;
+    class EventContainer;
+    class Executor;
+    template <class T>
+    class ExecutorMember;
+    class ExecutorStatic;
+    class Factory;
+    class Functor;
+    template <class T>
+    class FunctorMember;
+    class FunctorStatic;
+    class Identifier;
+    class IRC;
+    template <class T>
+    class Iterator;
+    class IteratorBase;
+    class Language;
+    class LanguageEntry;
+    class Loader;
+    class LuaBind;
+    class MetaObjectList;
+    class MetaObjectListElement;
+    class Namespace;
+    class NamespaceNode;
+    template <class T>
+    class ObjectList;
+    class ObjectListBase;
+    class ObjectListBaseElement;
+    template <class T>
+    class ObjectListElement;
+    template <class T>
+    class ObjectListIterator;
+    class OrxonoxClass;
+    class Shell;
+    class ShellListener;
+    template <class T>
+    class SubclassIdentifier;
+    class TclBind;
+    struct TclInterpreterBundle;
+    class TclThreadManager;
+    class Template;
+    class Tickable;
+    class XMLFile;
+    class XMLNameListener;
+    template <class T, class O>
+    class XMLPortClassObjectContainer;
+    template <class T>
+    class XMLPortClassParamContainer;
+    class XMLPortObjectContainer;
+    class XMLPortParamContainer;
 
-  // game states
-  class Game;
-  class GameState;
-  struct GameStateTreeNode;
+    // game states
+    class Game;
+    class GameState;
+    struct GameStateTreeNode;
 
-  // input
-  class BaseCommand;
-  class BufferedParamCommand;
-  class Button;
-  class CalibratorCallback;
-  class ExtendedInputState;
-  class HalfAxis;
-  class InputBuffer;
-  class InputManager;
-  class InputState;
-  class JoyStickHandler;
-  class MouseHandler;
-  class KeyBinder;
-  class KeyDetector;
-  class KeyHandler;
-  class ParamCommand;
-  class SimpleCommand;
-  class SimpleInputState;
+    // input
+    class BaseCommand;
+    class BufferedParamCommand;
+    class Button;
+    class CalibratorCallback;
+    class ExtendedInputState;
+    class HalfAxis;
+    class InputBuffer;
+    class InputManager;
+    class InputState;
+    class JoyStickHandler;
+    class MouseHandler;
+    class KeyBinder;
+    class KeyDetector;
+    class KeyHandler;
+    class ParamCommand;
+    class SimpleCommand;
+    class SimpleInputState;
 }
 
+// CppTcl
+namespace Tcl
+{
+    class interpreter;
+    class object;
+}
+
+// Boost
+namespace boost { namespace filesystem
+{
+    struct path_traits;
+    template <class String, class Traits> class basic_path;
+    typedef basic_path<std::string, path_traits> path;
+} }
+
+// TinyXML and TinyXML++
+class TiXmlString;
+class TiXmlOutStream;
+class TiXmlNode;
+class TiXmlHandle;
+class TiXmlDocument;
+class TiXmlElement;
+class TiXmlComment;
+class TiXmlUnknown;
+class TiXmlAttribute;
+class TiXmlText;
+class TiXmlDeclaration;
+class TiXmlParsingData;
+namespace ticpp
+{
+    class Document;
+    class Element;
+    class Declaration;
+    class StylesheetReference;
+    class Text;
+    class Comment;
+    class Attribute;
+}
+namespace orxonox
+{
+    using ticpp::Document;
+    using ticpp::Element;
+    using ticpp::Declaration;
+    using ticpp::StylesheetReference;
+    using ticpp::Text;
+    using ticpp::Comment;
+    using ticpp::Attribute;
+}
+
+
 #endif /* _CorePrereqs_H__ */

Modified: trunk/src/core/Event.cc
===================================================================
--- trunk/src/core/Event.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Event.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,6 +27,7 @@
  */
 
 #include "Event.h"
+
 #include "BaseObject.h"
 #include "Executor.h"
 

Modified: trunk/src/core/Event.h
===================================================================
--- trunk/src/core/Event.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Event.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,7 @@
 #define _Event_H__
 
 #include "CorePrereqs.h"
+#include <string>
 
 namespace orxonox
 {

Modified: trunk/src/core/EventIncludes.h
===================================================================
--- trunk/src/core/EventIncludes.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/EventIncludes.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,19 +32,19 @@
 #include "CorePrereqs.h"
 #include "Executor.h"
 
-#define SetEvent(classname, eventname, functionname, event) \
-    SetEventGeneric(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject)
+#define ORXONOX_SET_EVENT(classname, eventname, functionname, event) \
+    ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject)
 
-#define SetEventTemplate(classname, eventname, functionname, event, ...) \
-    SetEventGenericTemplate(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject, __VA_ARGS__)
+#define ORXONOX_SET_EVENT_TEMPLATE(classname, eventname, functionname, event, ...) \
+    ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject, __VA_ARGS__)
 
-#define SetSubclassEvent(classname, eventname, functionname, event, subclassname) \
-    SetEventGeneric(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname)
+#define ORXONOX_SET_SUBCLASS_EVENT(classname, eventname, functionname, event, subclassname) \
+    ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname)
 
-#define SetSubclassEventTemplate(classname, eventname, functionname, event, subclassname, ...) \
-    SetEventGenericTemplate(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname, __VA_ARGS__)
+#define ORXONOX_SET_SUBCLASS_EVENT_TEMPLATE(classname, eventname, functionname, event, subclassname, ...) \
+    ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname, __VA_ARGS__)
 
-#define SetEventGeneric(containername, classname, eventname, functionname, event, subclassname) \
+#define ORXONOX_SET_EVENT_GENERIC(containername, classname, eventname, functionname, event, subclassname) \
     orxonox::EventContainer* containername = this->getEventContainer(eventname); \
     if (!containername) \
     { \
@@ -56,7 +56,7 @@
     event.castedOriginator_ = dynamic_cast<subclassname*>(event.originator_); \
     containername->process(this, event)
 
-#define SetEventGenericTemplate(containername, classname, eventname, functionname, event, subclassname, ...) \
+#define ORXONOX_SET_EVENT_GENERIC_TEMPLATE(containername, classname, eventname, functionname, event, subclassname, ...) \
     orxonox::EventContainer* containername = this->getEventContainer(eventname); \
     if (!containername) \
     { \

Modified: trunk/src/core/Executor.cc
===================================================================
--- trunk/src/core/Executor.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Executor.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,7 +28,7 @@
  */
 
 #include "Executor.h"
-#include "util/Math.h"
+
 #include "util/Convert.h"
 #include "Language.h"
 

Modified: trunk/src/core/Executor.h
===================================================================
--- trunk/src/core/Executor.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Executor.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,11 +32,11 @@
 
 #include "CorePrereqs.h"
 
+#include "util/Debug.h"
+#include "util/Math.h"
+#include "util/String.h"
 #include "util/SubString.h"
-#include "util/String.h"
-#include "util/Math.h"
 #include "Functor.h"
-#include "util/Debug.h"
 
 
 #define EXECUTOR_PARSE_FUNCTORCALL(mode) EXECUTOR_PARSE_FUNCTORCALL##mode

Modified: trunk/src/core/Factory.cc
===================================================================
--- trunk/src/core/Factory.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Factory.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,9 +32,10 @@
 */
 
 #include "Factory.h"
+
+#include "util/Debug.h"
 #include "Identifier.h"
 #include "BaseObject.h"
-#include "util/Debug.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/Functor.h
===================================================================
--- trunk/src/core/Functor.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Functor.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,11 +32,10 @@
 
 #include "CorePrereqs.h"
 
+#include "util/Debug.h"
 #include "util/MultiType.h"
 #include "util/String.h"
-#include "util/Debug.h"
 
-
 namespace orxonox
 {
     const unsigned int MAX_FUNCTOR_ARGUMENTS = 5;

Modified: trunk/src/core/Game.cc
===================================================================
--- trunk/src/core/Game.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Game.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,7 @@
 #include "Game.h"
 
 #include <exception>
-#include <cassert>
+#include <boost/weak_ptr.hpp>
 
 #include "util/Debug.h"
 #include "util/Exception.h"
@@ -50,15 +50,18 @@
 
 namespace orxonox
 {
+    using boost::shared_ptr;
+    using boost::weak_ptr;
+
     static void stop_game()
         { Game::getInstance().stop(); }
     SetConsoleCommandShortcutExternAlias(stop_game, "exit");
 
     struct _CoreExport GameStateTreeNode
     {
-        GameState*                      state_;
-        GameStateTreeNode*              parent_;
-        std::vector<GameStateTreeNode*> children_;
+        GameState* state_;
+        weak_ptr<GameStateTreeNode> parent_;
+        std::vector<shared_ptr<GameStateTreeNode> > children_;
     };
 
     std::map<std::string, GameState*> Game::allStates_s;
@@ -73,9 +76,6 @@
         assert(singletonRef_s == 0);
         singletonRef_s = this;
 
-        this->rootStateNode_ = 0;
-        this->activeStateNode_ = 0;
-
         this->abort_ = false;
 
         // reset statistics
@@ -105,10 +105,6 @@
         // Destroy pretty much everyhting left
         delete this->core_;
 
-        // Delete all the created nodes
-        for (std::vector<GameStateTreeNode*>::const_iterator it = this->allStateNodes_.begin(); it != this->allStateNodes_.end(); ++it)
-            delete *it;
-
         delete this->gameClock_;
 
         assert(singletonRef_s);
@@ -171,8 +167,8 @@
             while (this->requestedStateNodes_.size() > 1)
             {
                 // Note: this->requestedStateNodes_.front() is the currently active state node
-                std::vector<GameStateTreeNode*>::iterator it = this->requestedStateNodes_.begin() + 1;
-                if (*it == this->activeStateNode_->parent_)
+                std::vector<shared_ptr<GameStateTreeNode> >::iterator it = this->requestedStateNodes_.begin() + 1;
+                if (*it == this->activeStateNode_->parent_.lock())
                     this->unloadState(this->activeStateNode_->state_);
                 else // has to be child
                     this->loadState((*it)->state_);
@@ -193,7 +189,7 @@
                 (*it)->update(*this->gameClock_);
 
                 if ((*it)->getCountTickTime())
-                    this->addTickTime(this->gameClock_->getRealMicroseconds() - timeBeforeTick);
+                    this->addTickTime(static_cast<uint32_t>(this->gameClock_->getRealMicroseconds() - timeBeforeTick));
             }
 
             // STATISTICS
@@ -215,8 +211,8 @@
                 }
 
                 uint32_t framesPerPeriod = this->statisticsTickTimes_.size();
-                this->avgFPS_ = (float)framesPerPeriod / (currentTime - this->statisticsTickTimes_.front().tickTime) * 1000000.0;
-                this->avgTickTime_ = (float)this->periodTickTime_ / framesPerPeriod / 1000.0;
+                this->avgFPS_ = static_cast<float>(framesPerPeriod) / (currentTime - this->statisticsTickTimes_.front().tickTime) * 1000000.0f;
+                this->avgTickTime_ = static_cast<float>(this->periodTickTime_) / framesPerPeriod / 1000.0f;
 
                 this->periodTime_ -= this->statisticsRefreshCycle_;
             }
@@ -225,7 +221,7 @@
         // UNLOAD all remaining states
         while (!this->activeStates_.empty())
             this->unloadState(this->activeStates_.back());
-        this->activeStateNode_ = 0;
+        this->activeStateNode_.reset();
         this->requestedStateNodes_.clear();
     }
 
@@ -250,10 +246,10 @@
         if (state == NULL || this->activeStateNode_ == NULL)
             return;
 
-        GameStateTreeNode* requestedNode = 0;
+        shared_ptr<GameStateTreeNode> requestedNode;
 
         // this->requestedStateNodes_.back() is the currently active state
-        GameStateTreeNode* lastRequestedNode = this->requestedStateNodes_.back();
+        shared_ptr<GameStateTreeNode> lastRequestedNode = this->requestedStateNodes_.back();
 
         // Already the active node?
         if (state == lastRequestedNode->state_)
@@ -273,12 +269,12 @@
         }
 
         // Check parent and all its grand parents
-        GameStateTreeNode* currentNode = lastRequestedNode;
+        shared_ptr<GameStateTreeNode> currentNode = lastRequestedNode;
         while (requestedNode == NULL && currentNode != NULL)
         {
             if (currentNode->state_ == state)
                 requestedNode = currentNode;
-            currentNode = currentNode->parent_;
+            currentNode = currentNode->parent_.lock();
         }
 
         if (requestedNode == NULL)
@@ -296,8 +292,8 @@
 
     void Game::popState()
     {
-        if (this->activeStateNode_ != NULL && this->requestedStateNodes_.back()->parent_)
-            this->requestState(this->requestedStateNodes_.back()->parent_->state_->getName());
+        if (this->activeStateNode_ != NULL && this->requestedStateNodes_.back()->parent_.lock())
+            this->requestState(this->requestedStateNodes_.back()->parent_.lock()->state_->getName());
         else
             COUT(2) << "Warning: Could not pop GameState. Ignoring." << std::endl;
     }
@@ -332,7 +328,7 @@
                 str.substr(startPos, pos - startPos), indentation));
         }
         unsigned int currentLevel = 0;
-        GameStateTreeNode* currentNode = 0;
+        shared_ptr<GameStateTreeNode> currentNode;
         for (std::vector<std::pair<std::string, unsigned> >::const_iterator it = stateStrings.begin(); it != stateStrings.end(); ++it)
         {
             std::string newStateName = it->first;
@@ -345,30 +341,27 @@
                 // root
                 if (this->rootStateNode_ != NULL)
                     ThrowException(GameState, "No two root GameStates are allowed!");
-                GameStateTreeNode* newNode = new GameStateTreeNode;
-                this->allStateNodes_.push_back(newNode);
+                shared_ptr<GameStateTreeNode> newNode(new GameStateTreeNode);
                 newNode->state_ = newState;
-                newNode->parent_ = 0;
                 this->rootStateNode_ = newNode;
                 currentNode = this->rootStateNode_;
             }
             else if (currentNode)
             {
-                GameStateTreeNode* newNode = new GameStateTreeNode;
-                this->allStateNodes_.push_back(newNode);
+                shared_ptr<GameStateTreeNode> newNode(new GameStateTreeNode);
                 newNode->state_ = newState;
                 if (newLevel < currentLevel)
                 {
                     // Get down the hierarchy
                     do
-                        currentNode = currentNode->parent_;
+                        currentNode = currentNode->parent_.lock();
                     while (newLevel < --currentLevel);
                 }
                 if (newLevel == currentLevel)
                 {
                     // same level
                     newNode->parent_ = currentNode->parent_;
-                    newNode->parent_->children_.push_back(newNode);
+                    newNode->parent_.lock()->children_.push_back(newNode);
                 }
                 else if (newLevel == currentLevel + 1)
                 {

Modified: trunk/src/core/Game.h
===================================================================
--- trunk/src/core/Game.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Game.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,10 +36,15 @@
 #define _Game_H__
 
 #include "CorePrereqs.h"
+
 #include <cassert>
 #include <list>
 #include <map>
+#include <string>
 #include <vector>
+#include <boost/shared_ptr.hpp>
+#include <boost/preprocessor/cat.hpp>
+
 #include "OrxonoxClass.h"
 
 /**
@@ -48,7 +53,7 @@
     and every following paramter is a constructor argument (which is usually non existent)
 */
 #define AddGameState(classname, ...) \
-    static bool MACRO_CONCATENATE(bGameStateDummy_##classname, __LINE__) = orxonox::Game::addGameState(new classname(__VA_ARGS__))
+    static bool BOOST_PP_CAT(bGameStateDummy_##classname, __LINE__) = orxonox::Game::addGameState(new classname(__VA_ARGS__))
 
 // tolua_begin
 namespace orxonox
@@ -105,10 +110,9 @@
         void unloadState(GameState* state);
 
         std::vector<GameState*>         activeStates_;
-        GameStateTreeNode*              rootStateNode_;
-        GameStateTreeNode*              activeStateNode_;
-        std::vector<GameStateTreeNode*> requestedStateNodes_;
-        std::vector<GameStateTreeNode*> allStateNodes_;
+        boost::shared_ptr<GameStateTreeNode> rootStateNode_;
+        boost::shared_ptr<GameStateTreeNode> activeStateNode_;
+        std::vector<boost::shared_ptr<GameStateTreeNode> > requestedStateNodes_;
 
         Core*                           core_;
         Clock*                          gameClock_;

Modified: trunk/src/core/GameState.cc
===================================================================
--- trunk/src/core/GameState.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/GameState.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,10 +33,10 @@
 */
 
 #include "GameState.h"
-#include <cassert>
+
 #include "util/Debug.h"
 #include "util/Exception.h"
-#include "Clock.h"
+#include "util/OrxAssert.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/GameState.h
===================================================================
--- trunk/src/core/GameState.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/GameState.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,9 +37,8 @@
 
 #include "CorePrereqs.h"
 
-#include <string>
 #include <map>
-#include "CorePrereqs.h"
+#include <string>
 
 namespace orxonox
 {

Modified: trunk/src/core/IRC.cc
===================================================================
--- trunk/src/core/IRC.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/IRC.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,13 +28,13 @@
 
 #include "IRC.h"
 
-#include <boost/thread/thread.hpp>
+#include <cpptcl/cpptcl.h>
+
+#include "util/Convert.h"
 #include "ConsoleCommand.h"
+#include "CoreIncludes.h"
 #include "TclThreadManager.h"
-#include "CoreIncludes.h"
-#include "util/Convert.h"
 
-
 namespace orxonox
 {
     static const unsigned int IRC_TCL_THREADID  = 1421421421;

Modified: trunk/src/core/IRC.h
===================================================================
--- trunk/src/core/IRC.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/IRC.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,7 +31,7 @@
 
 #include "CorePrereqs.h"
 
-#include <cpptcl/cpptcl.h>
+#include <string>
 #include "OrxonoxClass.h"
 
 namespace orxonox

Modified: trunk/src/core/Identifier.cc
===================================================================
--- trunk/src/core/Identifier.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Identifier.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,10 +35,10 @@
 
 #include <ostream>
 
-#include "Factory.h"
+#include "util/String.h"
 #include "ConfigValueContainer.h"
 #include "ConsoleCommand.h"
-#include "CommandExecutor.h"
+#include "Factory.h"
 #include "XMLPort.h"
 
 namespace orxonox
@@ -62,7 +62,6 @@
 
         this->bHasConfigValues_ = false;
         this->bHasConsoleCommands_ = false;
-        this->bHasConstructionCallback_ = false;
 
         this->children_ = new std::set<const Identifier*>();
         this->directChildren_ = new std::set<const Identifier*>();
@@ -92,8 +91,6 @@
             delete (it->second);
         for (std::map<std::string, XMLPortObjectContainer*>::iterator it = this->xmlportObjectContainers_.begin(); it != this->xmlportObjectContainers_.end(); ++it)
             delete (it->second);
-        for (std::vector<Functor*>::iterator it = this->constructionCallbacks_.begin(); it != this->constructionCallbacks_.end(); ++it)
-            delete *it;
     }
 
     /**
@@ -518,38 +515,6 @@
     }
 
     /**
-        @brief Adds a construction callback functor that gets called every time an object is created.
-        @param functor Functor pointer to any function with no argument.
-    */
-    void Identifier::addConstructionCallback(Functor* functor)
-    {
-        for (unsigned int i = 0; i < this->constructionCallbacks_.size(); ++i)
-        {
-            if (this->constructionCallbacks_[i] == functor)
-                return;
-        }
-        this->constructionCallbacks_.push_back(functor);
-        this->bHasConstructionCallback_ = true;
-    }
-
-    /**
-        @brief Removes a construction callback functor that gets called every time an object is created.
-        @param functor Functor pointer to any function with no argument.
-    */
-    void Identifier::removeConstructionCallback(Functor* functor)
-    {
-        for (unsigned int i = 0; i < this->constructionCallbacks_.size(); ++i)
-        {
-            if (this->constructionCallbacks_[i] == functor)
-            {
-                this->constructionCallbacks_.erase(this->constructionCallbacks_.begin() + i);
-            }
-        }
-        if (constructionCallbacks_.empty())
-            this->bHasConstructionCallback_ = false;
-    }
-
-    /**
         @brief Lists the names of all Identifiers in a std::set<const Identifier*>.
         @param out The outstream
         @param list The list (or set) of Identifiers

Modified: trunk/src/core/Identifier.h
===================================================================
--- trunk/src/core/Identifier.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Identifier.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -54,21 +54,17 @@
 
 #include "CorePrereqs.h"
 
-#include <set>
+#include <cassert>
 #include <map>
-#include <vector>
+#include <set>
 #include <string>
-#include <utility>
 #include <typeinfo>
-#include <cstdlib>
-#include <cassert>
 
+#include "util/Debug.h"
 #include "MetaObjectList.h"
-#include "Iterator.h"
+#include "ObjectList.h"
+#include "ObjectListBase.h"
 #include "Super.h"
-#include "Functor.h"
-#include "util/Debug.h"
-#include "util/String.h"
 
 namespace orxonox
 {
@@ -222,8 +218,6 @@
             inline bool hasConfigValues() const { return this->bHasConfigValues_; }
             /** @brief Returns true if this class has at least one console command. @return True if this class has at least one console command */
             inline bool hasConsoleCommands() const { return this->bHasConsoleCommands_; }
-            /** @brief Returns true if this class has at least one construction callback Functor registered. */
-            inline bool hasConstructionCallback() const { return this->bHasConstructionCallback_; }
 
             /** @brief Returns true, if a branch of the class-hierarchy is being created, causing all new objects to store their parents. @return The status of the class-hierarchy creation */
             inline static bool isCreatingHierarchy() { return (hierarchyCreatingCounter_s > 0); }
@@ -251,9 +245,6 @@
             ConsoleCommand* getConsoleCommand(const std::string& name) const;
             ConsoleCommand* getLowercaseConsoleCommand(const std::string& name) const;
 
-            void addConstructionCallback(Functor* functor);
-            void removeConstructionCallback(Functor* functor);
-
             void initializeClassHierarchy(std::set<const Identifier*>* parents, bool bRootClass);
 
             static void destroyAllIdentifiers();
@@ -276,9 +267,6 @@
             /** @brief Returns the direct children of the class the Identifier belongs to. @return The list of all direct children */
             inline std::set<const Identifier*>& getDirectChildrenIntern() const { return (*this->directChildren_); }
 
-            bool bHasConstructionCallback_;                                //!< True if at least one Functor is registered to get informed when an object of type T is created.
-            std::vector<Functor*> constructionCallbacks_;                  //!< All construction callback Functors of this class.
-
             ObjectListBase* objects_;                                      //!< The list of all objects of this class
 
         private:
@@ -382,7 +370,7 @@
         @return The unique Identifier
     */
     template <class T>
-    ClassIdentifier<T>* ClassIdentifier<T>::getIdentifier()
+    inline ClassIdentifier<T>* ClassIdentifier<T>::getIdentifier()
     {
         // check if the static field has already been filled
         if (ClassIdentifier<T>::classIdentifier_s == 0)
@@ -397,7 +385,7 @@
         @return The Identifier
     */
     template <class T>
-    ClassIdentifier<T>* ClassIdentifier<T>::getIdentifier(const std::string& name)
+    inline ClassIdentifier<T>* ClassIdentifier<T>::getIdentifier(const std::string& name)
     {
         ClassIdentifier<T>* identifier = ClassIdentifier<T>::getIdentifier();
         identifier->setName(name);
@@ -434,17 +422,10 @@
         @param object The object to add
     */
     template <class T>
-    void ClassIdentifier<T>::addObject(T* object)
+    inline void ClassIdentifier<T>::addObject(T* object)
     {
         COUT(5) << "*** ClassIdentifier: Added object to " << this->getName() << "-list." << std::endl;
         object->getMetaList().add(this->objects_, this->objects_->add(new ObjectListElement<T>(object)));
-        if (this->bHasConstructionCallback_)
-        {
-            // Call all registered callbacks that a new object of type T has been created.
-            // Do NOT deliver a T* pointer here because it's way too risky (object not yet fully created).
-            for (unsigned int i = 0; i < this->constructionCallbacks_.size(); ++i)
-                (*constructionCallbacks_[i])();
-        }
     }
 
     /**

Modified: trunk/src/core/Iterator.h
===================================================================
--- trunk/src/core/Iterator.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Iterator.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -46,9 +46,8 @@
 
 #include "CorePrereqs.h"
 
+#include "Identifier.h"
 #include "ObjectListBase.h"
-#include "ObjectListIterator.h"
-#include "OrxonoxClass.h"
 
 namespace orxonox
 {
@@ -304,7 +303,4 @@
     typedef Iterator<OrxonoxClass> BaseIterator;
 }
 
-// Include ObjectList.h so the user only has to include one file: Iterator.h
-#include "ObjectList.h"
-
 #endif /* _Iterator_H__ */

Modified: trunk/src/core/Language.cc
===================================================================
--- trunk/src/core/Language.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Language.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,8 +36,8 @@
 #include <fstream>
 #include <boost/filesystem.hpp>
 
+#include "util/Debug.h"
 #include "Core.h"
-#include "util/Debug.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/Loader.cc
===================================================================
--- trunk/src/core/Loader.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Loader.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,17 +31,15 @@
 #include <tinyxml/ticpp.h>
 #include <boost/filesystem.hpp>
 
-#include "XMLFile.h"
+#include "util/Debug.h"
+#include "util/Exception.h"
 #include "BaseObject.h"
-#include "Identifier.h"
+#include "Core.h"
 #include "Iterator.h"
 #include "ObjectList.h"
-#include "CoreIncludes.h"
 #include "LuaBind.h"
 #include "Namespace.h"
-#include "util/Debug.h"
-#include "util/Exception.h"
-#include "Core.h"
+#include "XMLFile.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/Loader.h
===================================================================
--- trunk/src/core/Loader.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Loader.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,7 +32,6 @@
 #include "CorePrereqs.h"
 
 #include <vector>
-
 #include "ClassTreeMask.h"
 
 namespace orxonox

Modified: trunk/src/core/LuaBind.cc
===================================================================
--- trunk/src/core/LuaBind.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/LuaBind.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,16 +30,14 @@
 
 #include <fstream>
 #include <map>
-
 extern "C" {
-#include <lua.h>
 #include <lualib.h>
 }
 #include <tolua/tolua++.h>
 #include <boost/filesystem.hpp>
 
-#include "util/String.h"
 #include "util/Debug.h"
+#include "util/String.h"
 #include "ToluaBindCore.h"
 #include "Core.h"
 
@@ -71,7 +69,7 @@
     isRunning_ = false;
   }
 
-  void LuaBind::luaPrint(std::string str)
+  void LuaBind::luaPrint(const std::string& str)
   {
     output_ += str;
 //    COUT(4) << "Lua_output!:" << std::endl << str << std::endl << "***" << std::endl;
@@ -83,7 +81,7 @@
       @param filename The filename of the file
       @param luaTags if true, the loaded file gets stripped off luaTags
   */
-  void LuaBind::loadFile(std::string filename, bool luaTags)
+  void LuaBind::loadFile(const std::string& filename, bool luaTags)
   {
     boost::filesystem::path filepath(filename);
 
@@ -116,7 +114,7 @@
     COUT(5) << "ParsedSourceCode: " << luaSource_ << std::endl;
   }
 
-  void LuaBind::loadString(std::string code)
+  void LuaBind::loadString(const std::string& code)
   {
     luaSource_ = code;
     output_ = "";

Modified: trunk/src/core/LuaBind.h
===================================================================
--- trunk/src/core/LuaBind.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/LuaBind.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,14 +37,12 @@
 
 #include "CorePrereqs.h"
 
+#include <cassert>
+#include <string>
 extern "C" {
 #include <lua.h>
 }
 
-#include <cassert>
-#include <list>
-#include <string>
-
 // tolua_begin
 namespace orxonox
 {
@@ -63,19 +61,19 @@
 
       inline static LuaBind& getInstance() { assert(singletonRef_s); return *LuaBind::singletonRef_s; } // tolua_export
 
-    void loadFile(std::string filename, bool luaTags);
-    void loadString(std::string code);
+    void loadFile(const std::string& filename, bool luaTags);
+    void loadString(const std::string& code);
     //void init(lua_State *state_);
     //void xmlToLua();
     void run();
-    void luaPrint(std::string str); // tolua_export
+    void luaPrint(const std::string& str); // tolua_export
 
 #if LUA_VERSION_NUM != 501
     static const char * lua_Chunkreader(lua_State *L, void *data, size_t *size);
 #endif
 
     inline lua_State* getLuaState() { return luaState_; };
-    inline std::string getLuaOutput() { return output_; };
+    inline const std::string& getLuaOutput() { return output_; };
     //inline std::string* getFileString() { return &fileString_; };
     inline void clearLuaOutput() { output_ = ""; }
 

Modified: trunk/src/core/MetaObjectList.cc
===================================================================
--- trunk/src/core/MetaObjectList.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/MetaObjectList.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,9 +32,10 @@
 */
 
 #include "MetaObjectList.h"
+
+#include "util/Debug.h"
+#include "Identifier.h"
 #include "ObjectListBase.h"
-#include "Identifier.h"
-#include "util/Debug.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/Namespace.cc
===================================================================
--- trunk/src/core/Namespace.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Namespace.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,6 +27,9 @@
  */
 
 #include "Namespace.h"
+
+#include <set>
+
 #include "NamespaceNode.h"
 #include "CoreIncludes.h"
 #include "XMLPort.h"

Modified: trunk/src/core/Namespace.h
===================================================================
--- trunk/src/core/Namespace.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Namespace.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,8 @@
 
 #include "CorePrereqs.h"
 
-#include <map>
-
-#include "XMLIncludes.h"
+#include <set>
+#include <string>
 #include "BaseObject.h"
 
 namespace orxonox

Modified: trunk/src/core/ObjectListBase.cc
===================================================================
--- trunk/src/core/ObjectListBase.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ObjectListBase.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,13 +34,12 @@
     Newly created objects are added through the RegisterObject-macro in its constructor.
 */
 
-#include <set>
-
-#include "CorePrereqs.h"
-
 #include "ObjectListBase.h"
+
+#include <set>
 #include "Identifier.h"
 #include "Iterator.h"
+#include "ObjectListIterator.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/ObjectListBase.h
===================================================================
--- trunk/src/core/ObjectListBase.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ObjectListBase.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,10 +37,11 @@
 #ifndef _ObjectListBase_H__
 #define _ObjectListBase_H__
 
+#include "CorePrereqs.h"
+
 #include <vector>
+#include "OrxonoxClass.h"
 
-#include "CorePrereqs.h"
-
 namespace orxonox
 {
     // ###############################
@@ -138,9 +139,9 @@
             inline Identifier* getIdentifier() const { return this->identifier_; }
 
         private:
-            Identifier* identifier_;               //!< The Iterator owning this list
-            ObjectListBaseElement* first_;         //!< The first element in the list
-            ObjectListBaseElement* last_;          //!< The last element in the list
+            Identifier* identifier_;                 //!< The Iterator owning this list
+            ObjectListBaseElement* first_;           //!< The first element in the list
+            ObjectListBaseElement* last_;            //!< The last element in the list
             std::vector<void*> iterators_;           //!< A list of Iterators pointing on an element in this list
             std::vector<void*> objectListIterators_; //!< A list of ObjectListIterators pointing on an element in this list
     };

Modified: trunk/src/core/ObjectListIterator.h
===================================================================
--- trunk/src/core/ObjectListIterator.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/ObjectListIterator.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file Iterator.h
+    @file
     @brief Definition and implementation of the Iterator class.
 
     The ObjectListIterator of a given class allows to iterate through the
@@ -46,7 +46,8 @@
 #define _ObjectListIterator_H__
 
 #include "CorePrereqs.h"
-#include "ObjectListBase.h"
+#include "Identifier.h"
+#include "ObjectList.h"
 
 namespace orxonox
 {
@@ -229,7 +230,4 @@
     };
 }
 
-// Include ObjectList.h so the user only has to include one file: Iterator.h
-#include "ObjectList.h"
-
 #endif /* _ObjectListIterator_H__ */

Modified: trunk/src/core/OrxonoxClass.cc
===================================================================
--- trunk/src/core/OrxonoxClass.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/OrxonoxClass.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,6 +32,7 @@
 */
 
 #include "OrxonoxClass.h"
+
 #include "MetaObjectList.h"
 #include "Identifier.h"
 

Modified: trunk/src/core/OrxonoxClass.h
===================================================================
--- trunk/src/core/OrxonoxClass.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/OrxonoxClass.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -38,9 +38,7 @@
 #define _OrxonoxClass_H__
 
 #include "CorePrereqs.h"
-
 #include <set>
-#include <string>
 
 namespace orxonox
 {

Modified: trunk/src/core/Shell.cc
===================================================================
--- trunk/src/core/Shell.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Shell.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,12 +27,13 @@
  */
 
 #include "Shell.h"
+
+#include "util/OutputHandler.h"
 #include "CommandExecutor.h"
 #include "CoreIncludes.h"
 #include "ConfigValueIncludes.h"
 #include "Core.h"
 #include "ConsoleCommand.h"
-#include "util/OutputHandler.h"
 
 #define SHELL_UPDATE_LISTENERS(function) \
     for (std::list<ShellListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); ) \

Modified: trunk/src/core/Shell.h
===================================================================
--- trunk/src/core/Shell.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Shell.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,7 +31,9 @@
 
 #include "CorePrereqs.h"
 
+#include <cassert>
 #include <list>
+#include <string>
 #include <vector>
 
 #include "OrxonoxClass.h"

Modified: trunk/src/core/Super.h
===================================================================
--- trunk/src/core/Super.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Super.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -66,12 +66,9 @@
 #ifndef _Super_H__
 #define _Super_H__
 
-#include <iostream>
-
 #include "CorePrereqs.h"
 
 #include "util/Debug.h"
-#include "XMLIncludes.h"
 #include "Event.h"
 
 ///////////////////////

Modified: trunk/src/core/TclBind.cc
===================================================================
--- trunk/src/core/TclBind.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/TclBind.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,13 +28,15 @@
 
 #include "TclBind.h"
 
-#include <iostream>
+#include <exception>
 #include <string>
+#include <cpptcl/cpptcl.h>
+
+#include "util/Debug.h"
+#include "util/String.h"
+#include "CommandExecutor.h"
 #include "ConsoleCommand.h"
-#include "CommandExecutor.h"
 #include "TclThreadManager.h"
-#include "util/Debug.h"
-#include "util/String.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/TclBind.h
===================================================================
--- trunk/src/core/TclBind.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/TclBind.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,7 +31,8 @@
 
 #include "CorePrereqs.h"
 
-#include <cpptcl/cpptcl.h>
+#include <cassert>
+#include <string>
 
 namespace orxonox
 {

Modified: trunk/src/core/TclThreadManager.cc
===================================================================
--- trunk/src/core/TclThreadManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/TclThreadManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,21 +28,18 @@
 
 #include "TclThreadManager.h"
 
-#include <iostream>
-#include <string>
-#include <boost/thread/thread.hpp>
 #include <boost/bind.hpp>
 #include <OgreTimer.h>
+#include <cpptcl/cpptcl.h>
 
+#include "util/Convert.h"
+#include "util/Debug.h"
 #include "Clock.h"
-#include "CoreIncludes.h"
-#include "ConsoleCommand.h"
 #include "CommandExecutor.h"
+#include "ConsoleCommand.h"
+#include "CoreIncludes.h"
 #include "TclBind.h"
-#include "util/Debug.h"
-#include "util/Convert.h"
 
-
 namespace orxonox
 {
     const unsigned int TCLTHREADMANAGER_MAX_QUEUE_LENGTH = 100;

Modified: trunk/src/core/TclThreadManager.h
===================================================================
--- trunk/src/core/TclThreadManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/TclThreadManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,15 +31,13 @@
 
 #include "CorePrereqs.h"
 
-#include <queue>
-#include <map>
 #include <list>
-
-#include <boost/thread/mutex.hpp>
+#include <map>
+#include <string>
 #include <boost/thread/condition.hpp>
+#include <boost/thread/mutex.hpp>
 #include <boost/thread/thread.hpp>
 
-#include <cpptcl/cpptcl.h>
 #include "core/OrxonoxClass.h"
 
 namespace orxonox

Modified: trunk/src/core/Template.cc
===================================================================
--- trunk/src/core/Template.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Template.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,18 +28,21 @@
 
 #include "Template.h"
 
+#include <tinyxml/tinyxml.h>
 #include <tinyxml/ticpp.h>
 
+#include "util/Debug.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "util/Debug.h"
 
 namespace orxonox
 {
     CreateFactory(Template);
 
-    Template::Template(BaseObject* creator) : BaseObject(creator), xmlelement_("")
+    Template::Template(BaseObject* creator) : BaseObject(creator)
     {
+        this->xmlelement_ = new TiXmlElement("");
+
         RegisterObject(Template);
 
         this->bIsLink_ = false;
@@ -51,6 +54,7 @@
     Template::~Template()
     {
         Template::getTemplateMap().erase(this->getName());
+        delete this->xmlelement_;
     }
 
     void Template::XMLPort(Element& xmlelement, XMLPort::Mode mode)
@@ -89,6 +93,11 @@
         }
     }
 
+    void Template::setXMLElement(const TiXmlElement& xmlelement)
+    {
+        *this->xmlelement_ = xmlelement;
+    }
+
     const TiXmlElement& Template::getXMLElement() const
     {
         if (this->bIsLink_)
@@ -114,7 +123,7 @@
             }
         }
 
-        return this->xmlelement_;
+        return *this->xmlelement_;
     }
 
     void Template::setBaseclass(const std::string& baseclass)

Modified: trunk/src/core/Template.h
===================================================================
--- trunk/src/core/Template.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/Template.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,11 +29,10 @@
 #ifndef _Template_H__
 #define _Template_H__
 
-#include <map>
-
 #include "CorePrereqs.h"
 
-#include <tinyxml/tinyxml.h>
+#include <map>
+#include <string>
 #include "BaseObject.h"
 
 namespace orxonox
@@ -57,8 +56,7 @@
             inline bool getLoadDefaults() const
                 { return this->bLoadDefaults_; }
 
-            inline void setXMLElement(const TiXmlElement& xmlelement)
-                { this->xmlelement_ = xmlelement; }
+            void setXMLElement(const TiXmlElement& xmlelement);
             const TiXmlElement& getXMLElement() const;
 
             void setBaseclass(const std::string& baseclass);
@@ -74,7 +72,7 @@
             static void apply(const std::string& name, BaseObject* object);
 
         private:
-            TiXmlElement xmlelement_;
+            TiXmlElement* xmlelement_;
             std::string link_;
             std::string baseclass_;
             Identifier* baseclassIdentifier_;

Modified: trunk/src/core/XMLFile.h
===================================================================
--- trunk/src/core/XMLFile.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/XMLFile.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,7 +32,6 @@
 #include "CorePrereqs.h"
 
 #include <string>
-
 #include "ClassTreeMask.h"
 
 namespace orxonox

Deleted: trunk/src/core/XMLIncludes.h
===================================================================
--- trunk/src/core/XMLIncludes.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/XMLIncludes.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,73 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Forward declarations of some XML classes.
-*/
-
-#include "CorePrereqs.h"
-
-//-----------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------
-
-class TiXmlString;
-class TiXmlOutStream;
-class TiXmlNode;
-class TiXmlHandle;
-class TiXmlDocument;
-class TiXmlElement;
-class TiXmlComment;
-class TiXmlUnknown;
-class TiXmlAttribute;
-class TiXmlText;
-class TiXmlDeclaration;
-class TiXmlParsingData;
-
-namespace ticpp
-{
-    class Document;
-    class Element;
-    class Declaration;
-    class StylesheetReference;
-    class Text;
-    class Comment;
-    class Attribute;
-}
-
-namespace orxonox
-{
-    using ticpp::Document;
-    using ticpp::Element;
-    using ticpp::Declaration;
-    using ticpp::StylesheetReference;
-    using ticpp::Text;
-    using ticpp::Comment;
-    using ticpp::Attribute;
-}

Modified: trunk/src/core/XMLPort.cc
===================================================================
--- trunk/src/core/XMLPort.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/XMLPort.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,10 +27,9 @@
  */
 
 #include "XMLPort.h"
-#include "Language.h"
+
 #include "Loader.h"
 #include "Namespace.h"
-#include "CoreIncludes.h"
 
 namespace orxonox
 {
@@ -39,6 +38,6 @@
     // ################################
     bool XMLPortObjectContainer::identifierIsIncludedInLoaderMask(const Identifier* identifier)
     {
-        return ((!this->bApplyLoaderMask_) || identifier->isA(Class(Namespace)) || Loader::currentMask_s.isIncluded(identifier));
+        return ((!this->bApplyLoaderMask_) || identifier->isA(ClassIdentifier<Namespace>::getIdentifier()) || Loader::currentMask_s.isIncluded(identifier));
     }
 }

Modified: trunk/src/core/XMLPort.h
===================================================================
--- trunk/src/core/XMLPort.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/XMLPort.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -43,13 +43,16 @@
 #include "CorePrereqs.h"
 
 #include <cassert>
+#include <string>
 #include <tinyxml/ticpp.h>
+
 #include "util/Debug.h"
 #include "util/Exception.h"
 #include "util/MultiType.h"
-#include "XMLIncludes.h"
+#include "util/OrxAssert.h"
+#include "Factory.h"
+#include "Identifier.h"
 #include "Executor.h"
-#include "CoreIncludes.h"
 #include "BaseObject.h"
 
 // ------------
@@ -175,7 +178,7 @@
     @brief This is the generic XMLPort param macro, which is used by all six specialized macros above.
 */
 #define XMLPortParamGeneric(containername, classname, objectclass, object, paramname, loadexecutor, saveexecutor, xmlelement, mode) \
-    orxonox::XMLPortClassParamContainer<objectclass>* containername = (orxonox::XMLPortClassParamContainer<objectclass>*)(ClassIdentifier<classname>::getIdentifier()->getXMLPortParamContainer(paramname)); \
+    orxonox::XMLPortClassParamContainer<objectclass>* containername = static_cast<orxonox::XMLPortClassParamContainer<objectclass>*>(ClassIdentifier<classname>::getIdentifier()->getXMLPortParamContainer(paramname)); \
     if (!containername) \
     { \
         containername = new orxonox::XMLPortClassParamContainer<objectclass>(std::string(paramname), ClassIdentifier<classname>::getIdentifier(), loadexecutor, saveexecutor); \
@@ -544,10 +547,10 @@
                         {
                             for (ticpp::Iterator<ticpp::Element> child = xmlsubelement->FirstChildElement(false); child != child.end(); child++)
                             {
-                                Identifier* identifier = ClassByString(child->Value());
+                                Identifier* identifier = Factory::getIdentifier(child->Value());
                                 if (identifier)
                                 {
-                                    if (identifier->isA(Class(O)))
+                                    if (identifier->isA(ClassIdentifier<O>::getIdentifier()))
                                     {
                                         if (identifier->isLoadable())
                                         {
@@ -605,7 +608,7 @@
                                     }
                                     else
                                     {
-                                        COUT(2) << object->getLoaderIndentation() << "Warning: '" << child->Value() << "' is not a '" << Class(O)->getName() << "'." << std::endl;
+                                        COUT(2) << object->getLoaderIndentation() << "Warning: '" << child->Value() << "' is not a '" << ClassIdentifier<O>::getIdentifier()->getName() << "'." << std::endl;
                                     }
                                 }
                                 else
@@ -625,7 +628,7 @@
                     catch (ticpp::Exception& ex)
                     {
                         COUT(1) << std::endl;
-                        COUT(1) << "An error occurred in XMLPort.h while loading a '" << Class(O)->getName() << "' in '" << this->sectionname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << object->getName() << ") in " << object->getFilename() << ":" << std::endl;
+                        COUT(1) << "An error occurred in XMLPort.h while loading a '" << ClassIdentifier<O>::getIdentifier()->getName() << "' in '" << this->sectionname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << object->getName() << ") in " << object->getFilename() << ":" << std::endl;
                         COUT(1) << ex.what() << std::endl;
                     }
                 }

Modified: trunk/src/core/input/CMakeLists.txt
===================================================================
--- trunk/src/core/input/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,6 +1,5 @@
 ADD_SOURCE_FILES(CORE_SRC_FILES
   Button.cc
-  CalibratorCallback.cc
   ExtendedInputState.cc
   HalfAxis.cc
   InputBuffer.cc

Deleted: trunk/src/core/input/CalibratorCallback.cc
===================================================================
--- trunk/src/core/input/CalibratorCallback.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/CalibratorCallback.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,47 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-/**
- at file
- at brief
-    Implementation of the different input handlers.
-*/
-
-#include "CalibratorCallback.h"
-#include "InputManager.h"
-
-namespace orxonox
-{
-    void CalibratorCallback::keyPressed(const orxonox::KeyEvent &evt)
-    {
-        if (evt.key == KeyCode::Return)
-        {
-            //InputManager::setInputState(InputManager::IS_NOCALIBRATE);
-        }
-    }
-}

Deleted: trunk/src/core/input/CalibratorCallback.h
===================================================================
--- trunk/src/core/input/CalibratorCallback.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/CalibratorCallback.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,58 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-/**
- at file
- at brief
-    Different definitions of input processing.
-*/
-
-#ifndef _CalibratorCallback_H__
-#define _CalibratorCallback_H__
-
-#include "core/CorePrereqs.h"
-#include "InputInterfaces.h"
-
-namespace orxonox
-{
-    class _CoreExport CalibratorCallback : public KeyHandler
-    {
-    public:
-        CalibratorCallback()  { }
-        ~CalibratorCallback() { }
-
-    private:
-        void keyPressed (const KeyEvent& evt);
-        void keyReleased(const KeyEvent& evt) { }
-        void keyHeld    (const KeyEvent& evt) { }
-
-        void updateInput(float dt) { }
-    };
-}
-
-#endif /* _CalibratorCallback_H__ */

Modified: trunk/src/core/input/ExtendedInputState.cc
===================================================================
--- trunk/src/core/input/ExtendedInputState.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/ExtendedInputState.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,7 @@
 #include "ExtendedInputState.h"
 
 #include <cassert>
-#include "util/Debug.h"
+#include "core/Executor.h"
 
 namespace orxonox
 {
@@ -456,4 +456,16 @@
 
         this->bHandlersChanged_ = true;
     }
+
+    void ExtendedInputState::onEnter()
+    {
+        if (executorOnEnter_)
+            (*executorOnEnter_)();
+    }
+
+    void ExtendedInputState::onLeave()
+    {
+        if (executorOnLeave_)
+            (*executorOnLeave_)();
+    }
 }

Modified: trunk/src/core/input/ExtendedInputState.h
===================================================================
--- trunk/src/core/input/ExtendedInputState.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/ExtendedInputState.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,7 +37,6 @@
 #include "core/CorePrereqs.h"
 
 #include <vector>
-
 #include "InputInterfaces.h"
 #include "InputState.h"
 
@@ -88,6 +87,9 @@
         void numberOfJoySticksChanged(unsigned int n);
         void update();
 
+        void onEnter();
+        void onLeave();
+
         std::vector<KeyHandler*>                    keyHandlers_;
         std::vector<MouseHandler*>                  mouseHandlers_;
         std::vector<std::vector<JoyStickHandler*> > joyStickHandlers_;

Modified: trunk/src/core/input/HalfAxis.h
===================================================================
--- trunk/src/core/input/HalfAxis.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/HalfAxis.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,6 +36,7 @@
 #define _HalfAxis_H__
 
 #include "core/CorePrereqs.h"
+
 #include "Button.h"
 #include "InputCommands.h"
 

Modified: trunk/src/core/input/InputBuffer.cc
===================================================================
--- trunk/src/core/input/InputBuffer.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/InputBuffer.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,8 +28,6 @@
 
 #include "InputBuffer.h"
 
-#include <iostream>
-
 #include "util/Clipboard.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
@@ -56,7 +54,7 @@
         setConfigValues();
     }
 
-    InputBuffer::InputBuffer(const std::string allowedChars)
+    InputBuffer::InputBuffer(const std::string& allowedChars)
     {
         RegisterRootObject(InputBuffer);
 

Modified: trunk/src/core/input/InputBuffer.h
===================================================================
--- trunk/src/core/input/InputBuffer.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/InputBuffer.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,8 @@
 
 #include "core/CorePrereqs.h"
 
-#include <string>
 #include <list>
-
+#include <string>
 #include "core/OrxonoxClass.h"
 #include "InputInterfaces.h"
 
@@ -79,7 +78,7 @@
         public:
             InputBuffer();
             ~InputBuffer();
-            InputBuffer(const std::string allowedChars);
+            InputBuffer(const std::string& allowedChars);
 
             void setConfigValues();
 
@@ -144,7 +143,7 @@
             void updated();
             void updated(const char& update, bool bSingleInput);
 
-            inline std::string get() const
+            inline const std::string& get() const
                 { return this->buffer_; }
             inline unsigned int getSize() const
                 { return this->buffer_.size(); }

Modified: trunk/src/core/input/InputCommands.cc
===================================================================
--- trunk/src/core/input/InputCommands.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/InputCommands.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,7 +34,6 @@
 
 #include "InputCommands.h"
 #include "util/Math.h"
-#include "core/CommandExecutor.h"
 
 namespace orxonox
 {

Modified: trunk/src/core/input/InputInterfaces.h
===================================================================
--- trunk/src/core/input/InputInterfaces.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/InputInterfaces.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,9 +37,9 @@
 
 #include "core/CorePrereqs.h"
 
-#include "ois/OISKeyboard.h"
-#include "ois/OISMouse.h"
-#include "ois/OISJoyStick.h"
+#include <ois/OISKeyboard.h>
+#include <ois/OISMouse.h>
+#include <ois/OISJoyStick.h>
 #include "util/Math.h"
 
 namespace orxonox

Modified: trunk/src/core/input/InputManager.cc
===================================================================
--- trunk/src/core/input/InputManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/InputManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,33 +37,30 @@
 
 #include <climits>
 #include <cassert>
+#include <ois/OISException.h>
+#include <ois/OISInputManager.h>
 
-#include "ois/OISException.h"
-#include "ois/OISInputManager.h"
-#include "core/ConsoleCommand.h"
-
-// HACK
-#ifdef ORXONOX_PLATFORM_LINUX
-#  include "ois/linux/LinuxMouse.h"
-#endif
-
+#include "util/Convert.h"
 #include "util/Exception.h"
+#include "util/Debug.h"
 #include "core/Clock.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
-#include "core/CommandExecutor.h"
+#include "core/ConsoleCommand.h"
 #include "core/CommandLine.h"
-#include "util/Debug.h"
 
 #include "InputBuffer.h"
-#include "KeyBinder.h"
 #include "KeyDetector.h"
-#include "CalibratorCallback.h"
 #include "InputState.h"
 #include "SimpleInputState.h"
 #include "ExtendedInputState.h"
 #include "JoyStickDeviceNumberListener.h"
 
+// HACK (include this as last, X11 seems to define some macros...)
+#ifdef ORXONOX_PLATFORM_LINUX
+#  include <ois/linux/LinuxMouse.h>
+#endif
+
 namespace orxonox
 {
     SetConsoleCommand(InputManager, calibrate, true);
@@ -366,8 +363,8 @@
 
         for (unsigned int i = 0; i < configValueVectorSize; ++i)
         {
-            list[i] = omni_cast<int>(ConfigFileManager::getInstance().getValue(
-                ConfigFileType::JoyStickCalibration, sectionName, valueName, i, omni_cast<std::string>(defaultValue), false));
+            list[i] = multi_cast<int>(ConfigFileManager::getInstance().getValue(
+                ConfigFileType::JoyStickCalibration, sectionName, valueName, i, multi_cast<std::string>(defaultValue), false));
         }
 
         // fill the rest with default values
@@ -402,18 +399,18 @@
         {
             // Generate some sort of execution unique id per joy stick
             std::string id = "JoyStick_";
-            id += omni_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_Button))  + "_";
-            id += omni_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_Axis))    + "_";
-            id += omni_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_Slider))  + "_";
-            id += omni_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_POV))     + "_";
-            id += omni_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_Vector3)) + "_";
+            id += multi_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_Button))  + "_";
+            id += multi_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_Axis))    + "_";
+            id += multi_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_Slider))  + "_";
+            id += multi_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_POV))     + "_";
+            id += multi_cast<std::string>(joySticks_[iJoyStick]->getNumberOfComponents(OIS::OIS_Vector3)) + "_";
             id += joySticks_[iJoyStick]->vendor();
             for (unsigned int i = 0; i < iJoyStick; ++i)
             {
                 if (id == joyStickIDs_[i])
                 {
                     // Two joysticks are probably equal --> add the index as well
-                    id += "_" + omni_cast<std::string>(iJoyStick);
+                    id += "_" + multi_cast<std::string>(iJoyStick);
                 }
             }
             joyStickIDs_[iJoyStick] = id;
@@ -496,17 +493,17 @@
                 if (joyStickMinValues_[iJoyStick][i] == INT_MAX)
                     joyStickMinValues_[iJoyStick][i] = -32768;
                 ConfigFileManager::getInstance().setValue(ConfigFileType::JoyStickCalibration,
-                    this->joyStickIDs_[iJoyStick], "MinValue", i, omni_cast<std::string>(joyStickMinValues_[iJoyStick][i]), false);
+                    this->joyStickIDs_[iJoyStick], "MinValue", i, multi_cast<std::string>(joyStickMinValues_[iJoyStick][i]), false);
 
                 // Maximum values
                 if (joyStickMaxValues_[iJoyStick][i] == INT_MIN)
                     joyStickMaxValues_[iJoyStick][i] = 32767;
                 ConfigFileManager::getInstance().setValue(ConfigFileType::JoyStickCalibration,
-                    this->joyStickIDs_[iJoyStick], "MaxValue", i, omni_cast<std::string>(joyStickMaxValues_[iJoyStick][i]), false);
+                    this->joyStickIDs_[iJoyStick], "MaxValue", i, multi_cast<std::string>(joyStickMaxValues_[iJoyStick][i]), false);
 
                 // Middle values
                 ConfigFileManager::getInstance().setValue(ConfigFileType::JoyStickCalibration,
-                    this->joyStickIDs_[iJoyStick], "MiddleValue", i, omni_cast<std::string>(joyStickMiddleValues_[iJoyStick][i]), false);
+                    this->joyStickIDs_[iJoyStick], "MiddleValue", i, multi_cast<std::string>(joyStickMiddleValues_[iJoyStick][i]), false);
             }
         }
 
@@ -1168,7 +1165,7 @@
         }
         else
         {
-            float fValue = value - joyStickCalibrations_[iJoyStick].middleValue[axis];
+            float fValue = static_cast<float>(value - joyStickCalibrations_[iJoyStick].middleValue[axis]);
             if (fValue > 0.0f)
                 fValue *= joyStickCalibrations_[iJoyStick].positiveCoeff[axis];
             else

Modified: trunk/src/core/input/InputManager.h
===================================================================
--- trunk/src/core/input/InputManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/InputManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -39,8 +39,13 @@
 #include "core/CorePrereqs.h"
 
 #include <map>
+#include <set>
+#include <string>
 #include <vector>
-#include <stack>
+#include <ois/OISKeyboard.h>
+#include <ois/OISMouse.h>
+#include <ois/OISJoyStick.h>
+
 #include "util/Math.h"
 #include "util/OrxEnum.h"
 #include "core/OrxonoxClass.h"

Modified: trunk/src/core/input/InputState.h
===================================================================
--- trunk/src/core/input/InputState.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/InputState.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -38,7 +38,6 @@
 
 #include <string>
 #include <vector>
-#include "core/Executor.h"
 #include "InputInterfaces.h"
 
 namespace orxonox
@@ -62,8 +61,8 @@
         bool handlersChanged() { return this->bHandlersChanged_; }
         void resetHandlersChanged() { bHandlersChanged_ = false; }
 
-        virtual void onEnter() { if (executorOnEnter_) (*executorOnEnter_)(); }
-        virtual void onLeave() { if (executorOnLeave_) (*executorOnLeave_)(); }
+        virtual void onEnter() = 0;
+        virtual void onLeave() = 0;
 
         virtual void registerOnEnter(Executor* executor)      { executorOnEnter_ = executor; }
         virtual void unRegisterOnEnter()                      { executorOnEnter_ = 0; }
@@ -91,11 +90,11 @@
     protected:
         InputState()
             : bHandlersChanged_(false)
+            , executorOnEnter_(0)
+            , executorOnLeave_(0)
             , priority_(0)
             , bAlwaysGetsInput_(false)
             , bTransparent_(false)
-            , executorOnEnter_(0)
-            , executorOnLeave_(0)
         { }
         virtual ~InputState() { }
 
@@ -107,6 +106,8 @@
         }
 
         bool bHandlersChanged_;
+        Executor*                                   executorOnEnter_;
+        Executor*                                   executorOnLeave_;
 
     private:
         void setNumOfJoySticks(unsigned int n)
@@ -122,9 +123,6 @@
         std::vector<bool>                           bInputDeviceEnabled_;
         bool                                        bAlwaysGetsInput_;
         bool                                        bTransparent_;
-
-        Executor*                                   executorOnEnter_;
-        Executor*                                   executorOnLeave_;
     };
 }
 

Modified: trunk/src/core/input/KeyBinder.cc
===================================================================
--- trunk/src/core/input/KeyBinder.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/KeyBinder.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,9 +33,6 @@
 
 #include "KeyBinder.h"
 
-#include <fstream>
-#include <string>
-
 #include "util/Convert.h"
 #include "util/Debug.h"
 #include "core/ConfigValueIncludes.h"
@@ -319,14 +316,14 @@
                     if (mouseRelative_[i] < 0)
                     {
                         mouseAxes_[2*i + 0].absVal_
-                            = -mouseRelative_[i] / deriveTime_ * 0.0005 * mouseSensitivityDerived_;
+                            = -mouseRelative_[i] / deriveTime_ * 0.0005f * mouseSensitivityDerived_;
                         mouseAxes_[2*i + 1].absVal_ = 0.0f;
                     }
                     else if (mouseRelative_[i] > 0)
                     {
                         mouseAxes_[2*i + 0].absVal_ = 0.0f;
                         mouseAxes_[2*i + 1].absVal_
-                            =  mouseRelative_[i] / deriveTime_ * 0.0005 * mouseSensitivityDerived_;
+                            =  mouseRelative_[i] / deriveTime_ * 0.0005f * mouseSensitivityDerived_;
                     }
                     else
                     {

Modified: trunk/src/core/input/KeyBinder.h
===================================================================
--- trunk/src/core/input/KeyBinder.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/KeyBinder.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,8 +37,9 @@
 
 #include "core/CorePrereqs.h"
 
+#include <cassert>
+#include <string>
 #include <vector>
-#include <cassert>
 
 #include "InputInterfaces.h"
 #include "Button.h"

Modified: trunk/src/core/input/KeyDetector.cc
===================================================================
--- trunk/src/core/input/KeyDetector.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/KeyDetector.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,11 +33,9 @@
 */
 
 #include "KeyDetector.h"
+
 #include "util/Debug.h"
 #include "core/CoreIncludes.h"
-#include "core/CommandExecutor.h"
-#include "core/CommandEvaluation.h"
-#include "InputCommands.h"
 #include "Button.h"
 
 namespace orxonox

Modified: trunk/src/core/input/KeyDetector.h
===================================================================
--- trunk/src/core/input/KeyDetector.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/KeyDetector.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,6 +37,7 @@
 
 #include "core/CorePrereqs.h"
 
+#include <string>
 #include "KeyBinder.h"
 
 namespace orxonox

Modified: trunk/src/core/input/SimpleInputState.cc
===================================================================
--- trunk/src/core/input/SimpleInputState.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/SimpleInputState.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,6 +33,7 @@
 */
 
 #include "SimpleInputState.h"
+#include "core/Executor.h"
 
 namespace orxonox
 {
@@ -147,4 +148,16 @@
         // inform InputManager that there might be changes in EMPTY_HANDLER situation
         bHandlersChanged_ = true;
     }
+
+    void SimpleInputState::onEnter()
+    {
+        if (executorOnEnter_)
+            (*executorOnEnter_)();
+    }
+
+    void SimpleInputState::onLeave()
+    {
+        if (executorOnLeave_)
+            (*executorOnLeave_)();
+    }
 }

Modified: trunk/src/core/input/SimpleInputState.h
===================================================================
--- trunk/src/core/input/SimpleInputState.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/core/input/SimpleInputState.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -79,6 +79,9 @@
         void update();
         void numberOfJoySticksChanged(unsigned int n);
 
+        void onEnter();
+        void onLeave();
+
         KeyHandler*                   keyHandler_;
         MouseHandler*                 mouseHandler_;
         std::vector<JoyStickHandler*> joyStickHandler_;

Modified: trunk/src/cpptcl/CMakeLists.txt
===================================================================
--- trunk/src/cpptcl/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/cpptcl/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,19 +30,18 @@
   details/methods.h
   details/methods_v.h
 )
-GENERATE_SOURCE_GROUPS(${CPPTCL_FILES})
 
 # No warnings needed from third party libraries
 REMOVE_COMPILER_FLAGS("-W3 -W4" MSVC)
 ADD_COMPILER_FLAGS("-w")
 
-IF(MSVC)
-  ADD_LIBRARY(cpptcl_orxonox STATIC ${CPPTCL_FILES})
-ELSE()
-  ADD_LIBRARY(cpptcl_orxonox SHARED ${CPPTCL_FILES})
-  ORXONOX_INSTALL(cpptcl_orxonox)
-ENDIF()
-
-TARGET_LINK_LIBRARIES(cpptcl_orxonox ${TCL_LIBRARY})
-
-SET_TARGET_PROPERTIES(cpptcl_orxonox PROPERTIES VERSION 1.1.3)
+ORXONOX_ADD_LIBRARY(cpptcl_orxonox
+  ORXONOX_EXTERNAL
+  NO_DLL_INTERFACE
+  VERSION
+    1.1.3
+  LINK_LIBRARIES
+    ${TCL_LIBRARY}
+  SOURCE_FILES
+    ${CPPTCL_FILES}
+)

Modified: trunk/src/network/CMakeLists.txt
===================================================================
--- trunk/src/network/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/network/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,19 +36,19 @@
 )
 ADD_SUBDIRECTORY(packet)
 ADD_SUBDIRECTORY(synchronisable)
-GET_ALL_HEADER_FILES(NETWORK_HDR_FILES)
-SET(NETWORK_FILES ${NETWORK_SRC_FILES} ${NETWORK_HDR_FILES})
 
-GENERATE_SOURCE_GROUPS(${NETWORK_FILES})
-
-ADD_LIBRARY(network SHARED ${NETWORK_FILES})
-SET_TARGET_PROPERTIES(network PROPERTIES DEFINE_SYMBOL "NETWORK_SHARED_BUILD")
-TARGET_LINK_LIBRARIES(network
-  ${ZLIB_LIBRARY}
-  ${ENET_LIBRARY}
-  ${Boost_THREAD_LIBRARY}
-  util
-  core
+ORXONOX_ADD_LIBRARY(network
+  FIND_HEADER_FILES
+  DEFINE_SYMBOL
+    "NETWORK_SHARED_BUILD"
+  PCH_FILE
+    NetworkPrecompiledHeaders.h
+  LINK_LIBRARIES
+    ${ZLIB_LIBRARY}
+    ${ENET_LIBRARY}
+    ${Boost_THREAD_LIBRARY}
+    util
+    core
+  SOURCE_FILES
+    ${NETWORK_SRC_FILES}
 )
-
-ORXONOX_INSTALL(network)

Modified: trunk/src/network/GamestateClient.cc
===================================================================
--- trunk/src/network/GamestateClient.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/network/GamestateClient.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,7 +33,6 @@
 
 #include "core/CoreIncludes.h"
 #include "core/BaseObject.h"
-#include "core/Iterator.h"
 #include "synchronisable/Synchronisable.h"
 #include "synchronisable/NetworkCallbackManager.h"
 #include "packet/Acknowledgement.h"

Modified: trunk/src/network/Host.h
===================================================================
--- trunk/src/network/Host.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/network/Host.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,7 @@
 
 namespace orxonox {
 
-  const int CLIENTID_SERVER = 0;
+  const unsigned int CLIENTID_SERVER = 0;
   const unsigned int NETWORK_FREQUENCY = 30;
   const float NETWORK_PERIOD = 1.0f/NETWORK_FREQUENCY;
 

Modified: trunk/src/network/NetworkFunction.h
===================================================================
--- trunk/src/network/NetworkFunction.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/network/NetworkFunction.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,9 @@
 #include <string>
 #include <map>
 #include <cassert>
+#include <boost/preprocessor/cat.hpp>
 #include "util/MultiType.h"
+#include "core/Functor.h"
 #include "synchronisable/Synchronisable.h"
 #include "OrxonoxConfig.h"
 #include "FunctionCallManager.h"
@@ -213,9 +215,9 @@
 }
 
 #define registerStaticNetworkFunction( functionPointer ) \
-  static void* MACRO_CONCATENATE( NETWORK_FUNCTION_, __LINE__ ) = registerStaticNetworkFunctionFct( functionPointer, #functionPointer );
+  static void* BOOST_PP_CAT( NETWORK_FUNCTION_, __LINE__ ) = registerStaticNetworkFunctionFct( functionPointer, #functionPointer );
 #define registerMemberNetworkFunction( class, function ) \
-  static void* MACRO_CONCATENATE( NETWORK_FUNCTION_##class, __LINE__ ) = registerMemberNetworkFunctionFct<class>( &class::function, #class "_" #function);
+  static void* BOOST_PP_CAT( NETWORK_FUNCTION_##class, __LINE__ ) = registerMemberNetworkFunctionFct<class>( &class::function, #class "_" #function);
   // call it with functionPointer, clientID, args
 #define callStaticNetworkFunction( functionPointer, ...) \
   { \

Copied: trunk/src/network/NetworkPrecompiledHeaders.h (from rev 3195, branches/pch/src/network/NetworkPrecompiledHeaders.h)
===================================================================
--- trunk/src/network/NetworkPrecompiledHeaders.h	                        (rev 0)
+++ trunk/src/network/NetworkPrecompiledHeaders.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,69 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+ at file
+ at brief
+    Compilation of the most often used header files in the network library
+*/
+
+#include "NetworkPrereqs.h"
+
+#include <fstream>
+#include <iostream>
+#include <list>
+#include <map>
+#include <set>
+#include <sstream>
+#include <string>
+#include <vector>
+
+
+#ifdef ORXONOX_COMPILER_MSVC
+
+#define WIN32_LEAN_AND_MEAN
+#include <enet/enet.h>
+#undef max
+#undef min
+
+// Too larg PCH file if you include this and only 10% faster
+//#include <boost/thread/recursive_mutex.hpp>
+
+#include "util/CRC32.h"
+#include "util/Debug.h"
+#include "util/Math.h"
+#include "util/mbool.h"
+#include "util/MultiType.h"
+#include "util/String.h"
+
+#include "core/Core.h"
+#include "core/CoreIncludes.h"
+#include "core/Functor.h"
+#include "core/GameMode.h"
+
+#endif /* ORXONOX_COMPILER_MSVC */

Modified: trunk/src/network/Server.cc
===================================================================
--- trunk/src/network/Server.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/network/Server.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -53,7 +53,6 @@
 #include "core/Clock.h"
 #include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
-#include "core/Iterator.h"
 #include "packet/Chat.h"
 #include "packet/Packet.h"
 #include "packet/Welcome.h"

Deleted: trunk/src/network/TODO
===================================================================
--- trunk/src/network/TODO	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/network/TODO	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,15 +0,0 @@
-TODO:
-
-- change ConnectionManager clientlist [done]
-- change gamestatemanager clientlist [done]
-- put them together into ClientInformation [done]
-
-- do better gamestate-update/snapshot-handling [partially done]
-- integrate ClientInformation into gamestatemanager [done]
-
-- write dummyserver and dummyclient (chat system) [done]
-
-- include GameStateClient into Client and write processGamestate (also packetdecoder (virtual))
-- create object with worldentity .....
-
-- try and error ;)
\ No newline at end of file

Modified: trunk/src/network/packet/Gamestate.cc
===================================================================
--- trunk/src/network/packet/Gamestate.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/network/packet/Gamestate.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,6 @@
 #include "../TrafficControl.h"
 #include "core/GameMode.h"
 #include "core/CoreIncludes.h"
-#include "core/Iterator.h"
 
 
 

Modified: trunk/src/ogreceguirenderer/CMakeLists.txt
===================================================================
--- trunk/src/ogreceguirenderer/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/ogreceguirenderer/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,19 +26,20 @@
   OgreCEGUIResourceProvider.cpp
   OgreCEGUITexture.cpp
 )
-GENERATE_SOURCE_GROUPS(${OCR_FILES})
 
 # No warnings needed from third party libraries
 REMOVE_COMPILER_FLAGS("-W3 -W4" MSVC)
 ADD_COMPILER_FLAGS("-w")
 
-ADD_LIBRARY(ogreceguirenderer_orxonox SHARED ${OCR_FILES})
-SET_TARGET_PROPERTIES(ogreceguirenderer_orxonox PROPERTIES DEFINE_SYMBOL "OGRE_GUIRENDERER_EXPORTS")
-TARGET_LINK_LIBRARIES(ogreceguirenderer_orxonox
-  ${OGRE_LIBRARY}
-  ${CEGUI_LIBRARY}
+ORXONOX_ADD_LIBRARY(ogreceguirenderer_orxonox
+  ORXONOX_EXTERNAL
+  LINK_LIBRARIES
+    ${OGRE_LIBRARY}
+    ${CEGUI_LIBRARY}
+  DEFINE_SYMBOL
+    "OGRE_GUIRENDERER_EXPORTS"
+  VERSION
+    1.4.9
+  SOURCE_FILES
+    ${OCR_FILES}
 )
-
-SET_TARGET_PROPERTIES(ogreceguirenderer_orxonox PROPERTIES VERSION 1.4.9)
-
-ORXONOX_INSTALL(ogreceguirenderer_orxonox)

Modified: trunk/src/ois/CMakeLists.txt
===================================================================
--- trunk/src/ois/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/ois/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -49,21 +49,22 @@
   ADD_SUBDIRECTORY(linux)
 ENDIF()
 
-GENERATE_SOURCE_GROUPS(${OIS_FILES})
-
 # No warnings needed from third party libraries
 REMOVE_COMPILER_FLAGS("-W3 -W4" MSVC)
 ADD_COMPILER_FLAGS("-w")
 
 INCLUDE_DIRECTORIES(.)
 
-ADD_LIBRARY(ois_orxonox SHARED ${OIS_FILES})
-SET_TARGET_PROPERTIES(ois_orxonox PROPERTIES DEFINE_SYMBOL "OIS_NONCLIENT_BUILD")
+ORXONOX_ADD_LIBRARY(ois_orxonox
+  ORXONOX_EXTERNAL
+  DEFINE_SYMBOL
+    "OIS_NONCLIENT_BUILD"
+  VERSION
+    1.2
+  SOURCE_FILES
+    ${OIS_FILES}
+)
 
 IF(WIN32)
   TARGET_LINK_LIBRARIES(ois_orxonox ${DIRECTX_LIBRARIES})
 ENDIF()
-
-SET_TARGET_PROPERTIES(ois_orxonox PROPERTIES VERSION 1.2)
-
-ORXONOX_INSTALL(ois_orxonox)

Modified: trunk/src/orxonox/CMakeLists.txt
===================================================================
--- trunk/src/orxonox/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,44 +27,56 @@
 )
 ADD_SUBDIRECTORY(gamestates)
 ADD_SUBDIRECTORY(gui)
+ADD_SUBDIRECTORY(interfaces)
 ADD_SUBDIRECTORY(objects)
 ADD_SUBDIRECTORY(overlays)
+ADD_SUBDIRECTORY(sound)
 ADD_SUBDIRECTORY(tools)
-ADD_SUBDIRECTORY(sound)
-GET_ALL_HEADER_FILES(ORXONOX_HDR_FILES)
-SET(ORXONOX_FILES ${ORXONOX_SRC_FILES} ${ORXONOX_HDR_FILES})
 
-GENERATE_SOURCE_GROUPS(${ORXONOX_FILES})
-GENERATE_TOLUA_BINDINGS(Orxonox ORXONOX_FILES INPUTFILES gui/GUIManager.h objects/quest/QuestManager.h objects/quest/QuestDescription.h objects/pickup/PickupInventory.h objects/pickup/BaseItem.h)
+# Translate argument
+IF(ORXONOX_USE_WINMAIN)
+  SET(ORXONOX_WIN32 WIN32)
+ENDIF()
 
-ADD_EXECUTABLE(orxonox ${ORXONOX_FILES})
+ORXONOX_ADD_EXECUTABLE(orxonox
+  FIND_HEADER_FILES
+  TOLUA_FILES
+    gui/GUIManager.h
+    objects/pickup/BaseItem.h
+    objects/pickup/PickupInventory.h
+    objects/quest/QuestDescription.h
+    objects/quest/QuestManager.h
+  PCH_FILE
+    OrxonoxPrecompiledHeaders.h
+  PCH_NO_DEFAULT
+  # When defined as WIN32 this removes the console window on Windows
+  ${ORXONOX_WIN32}
+  LINK_LIBRARIES
+    ${OGRE_LIBRARY}
+    ${CEGUI_LIBRARY}
+    ${LUA_LIBRARIES}
+    ${CEGUILUA_LIBRARY}
+    ${Boost_SYSTEM_LIBRARY}
+    ${OPENAL_LIBRARY}
+    ${ALUT_LIBRARY}
+    ${VORBISFILE_LIBRARY}
+    ${VORBIS_LIBRARY}
+    ${OGG_LIBRARY}
+    ogreceguirenderer_orxonox
+    tinyxml++_orxonox
+    tolua++_orxonox
+    bullet_orxonox
+    util
+    core
+    network
+  SOURCE_FILES ${ORXONOX_SRC_FILES}
+)
+
 GET_TARGET_PROPERTY(_exec_loc orxonox LOCATION)
 GET_FILENAME_COMPONENT(_exec_name ${_exec_loc} NAME)
 SET(ORXONOX_EXECUTABLE_NAME ${_exec_name} CACHE INTERNAL "")
 
-TARGET_LINK_LIBRARIES(orxonox
-  ${OGRE_LIBRARY}
-  ${CEGUI_LIBRARY}
-  ${LUA_LIBRARIES}
-  ${CEGUILUA_LIBRARY}
-  ${Boost_SYSTEM_LIBRARY}
-  ${OPENAL_LIBRARY}
-  ${ALUT_LIBRARY}
-  ${VORBISFILE_LIBRARY}
-  ${VORBIS_LIBRARY}
-  ${OGG_LIBRARY}
-  ogreceguirenderer_orxonox
-  tinyxml++_orxonox
-  tolua++_orxonox
-  bullet_orxonox
-  util
-  core
-  network
-)
 
-ORXONOX_INSTALL(orxonox)
-
-
 # When using Visual Studio we want to use the output directory as working
 # directory and we also want to specify where the external dlls
 # (lua, ogre, etc.) are. The problem hereby is that these information cannot
@@ -80,5 +92,5 @@
   ENDIF()
   STRING(REGEX REPLACE "^Visual Studio ([0-9][0-9]?) .*$" "\\1"
          VISUAL_STUDIO_VERSION_SIMPLE "${CMAKE_GENERATOR}")
-  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/orxonox.vcproj.user" "${CMAKE_CURRENT_BINARY_DIR}/orxonox.vcproj.user")
+  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/orxonox.vcproj.user.in" "${CMAKE_CURRENT_BINARY_DIR}/orxonox.vcproj.user")
 ENDIF(MSVC)

Modified: trunk/src/orxonox/CameraManager.cc
===================================================================
--- trunk/src/orxonox/CameraManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/CameraManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,16 +29,14 @@
 
 #include <OgreSceneManager.h>
 #include <OgreViewport.h>
-#include <OgreCamera.h>
 #include <OgreCompositorManager.h>
-#include <OgreResource.h>
 
+#include "util/String.h"
 #include "core/GameMode.h"
-#include "core/Iterator.h"
+#include "core/ObjectList.h"
+#include "tools/Shader.h"
 #include "objects/worldentities/Camera.h"
 #include "objects/Scene.h"
-#include "tools/Shader.h"
-#include "util/String.h"
 #include "gui/GUIManager.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/CameraManager.h
===================================================================
--- trunk/src/orxonox/CameraManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/CameraManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -39,7 +39,7 @@
 
 #include <cassert>
 #include <list>
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 
 namespace orxonox
 {
@@ -54,17 +54,17 @@
             void requestFocus(Camera* camera);
             void releaseFocus(Camera* camera);
 
+            void useCamera(Ogre::Camera* camera);
+
             static CameraManager& getInstance() { assert(singletonRef_s); return *singletonRef_s; }
             static CameraManager* getInstancePtr() { return singletonRef_s; }
 
-            void useCamera(Ogre::Camera* camera);
-
         private:
-            CameraManager(const CameraManager&);
+            CameraManager(const CameraManager&); // don't use
 
-            std::list<Camera*> cameraList_;
-            Ogre::Viewport* viewport_;
-            Ogre::Camera* fallbackCamera_;
+            std::list<Camera*>    cameraList_;
+            Ogre::Viewport*       viewport_;
+            Ogre::Camera*         fallbackCamera_;
 
             static CameraManager* singletonRef_s;
     };

Modified: trunk/src/orxonox/GraphicsManager.cc
===================================================================
--- trunk/src/orxonox/GraphicsManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/GraphicsManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -51,7 +51,6 @@
 #include <OgreWindowEventUtilities.h>
 
 #include "SpecialConfig.h"
-#include "util/Debug.h"
 #include "util/Exception.h"
 #include "util/String.h"
 #include "util/SubString.h"
@@ -62,9 +61,12 @@
 #include "core/Core.h"
 #include "core/Game.h"
 #include "core/GameMode.h"
-#include "tools/WindowEventListener.h"
 #include "tools/ParticleInterface.h"
+#include "interfaces/WindowEventListener.h"
 
+// HACK!
+#include "overlays/map/Map.h"
+
 namespace orxonox
 {
     class _OrxonoxExport OgreWindowEventListener : public Ogre::WindowEventListener
@@ -87,8 +89,6 @@
         , renderWindow_(0)
         , viewport_(0)
         , ogreWindowEventListener_(0)
-        , avgTickTime_(0.0f)
-        , avgFramesPerSecond_(0.0f)
     {
         RegisterObject(GraphicsManager);
 
@@ -144,6 +144,9 @@
 //            Ogre::RenderSystem* renderer = this->ogreRoot_->getRenderSystem();
 //            renderer->destroyRenderWindow("Orxonox");
 
+            // HACK! This fixes an exit crash
+            Map::hackDestroyMap();
+
             // unload all compositors
             Ogre::CompositorManager::getSingleton().removeAll();
 

Modified: trunk/src/orxonox/GraphicsManager.h
===================================================================
--- trunk/src/orxonox/GraphicsManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/GraphicsManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -38,10 +38,9 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <string>
 #include <cassert>
+#include <string>
 #include <OgreLog.h>
-
 #include "core/OrxonoxClass.h"
 
 namespace orxonox
@@ -65,14 +64,15 @@
         inline unsigned int getDetailLevelParticle() const
             { return this->detailLevelParticle_; }
 
-        inline Ogre::Viewport* getViewport() const
+        inline Ogre::Viewport* getViewport()
             { return this->viewport_; }
         inline Ogre::RenderWindow* getRenderWindow()
             { return this->renderWindow_; }
 
         void setCamera(Ogre::Camera* camera);
 
-        static GraphicsManager& getInstance() { assert(singletonRef_s); return *singletonRef_s; }
+        inline static GraphicsManager& getInstance()
+            { assert(singletonRef_s); return *singletonRef_s; }
 
     private:
         GraphicsManager(GraphicsManager&); // don't mess with singletons
@@ -100,10 +100,6 @@
         Ogre::Viewport*     viewport_;                 //!< default full size viewport
         OgreWindowEventListener* ogreWindowEventListener_;
 
-        // stats (Hack)
-        float               avgTickTime_;              //!< time in ms to tick() one frame
-        float               avgFramesPerSecond_;       //!< number of frames processed in one second
-
         // config values
         unsigned int        detailLevelParticle_;      //!< Detail level of particle effects (0: off, 1: low, 2: normal, 3: high)
         std::string         resourceFile_;             //!< resources file name

Modified: trunk/src/orxonox/LevelManager.cc
===================================================================
--- trunk/src/orxonox/LevelManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/LevelManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,6 +28,7 @@
 
 #include "LevelManager.h"
 
+#include <map>
 #include "PlayerManager.h"
 #include "objects/Level.h"
 #include "objects/infos/HumanPlayer.h"

Modified: trunk/src/orxonox/LevelManager.h
===================================================================
--- trunk/src/orxonox/LevelManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/LevelManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <cassert>
 #include <list>
-#include <map>
-#include <cassert>
 
 namespace orxonox
 {
@@ -56,6 +55,7 @@
             void activateNextLevel();
 
             std::list<Level*> levels_s;
+
             static LevelManager* singletonRef_s;
     };
 }

Modified: trunk/src/orxonox/Main.cc
===================================================================
--- trunk/src/orxonox/Main.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/Main.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,17 +27,14 @@
  *
  */
  
- /**
- @mainpage Orxonox Documentation
- */
+/**
+ at file
+ at brief
+    Entry point of the program.
+*/
 
- /**
- @file
- @brief Entry point of the program.
-  */
+#include "OrxonoxPrereqs.h"
 
-#include "OrxonoxConfig.h"
-
 #include "util/Debug.h"
 #include "core/Identifier.h"
 #include "core/Game.h"
@@ -46,7 +43,11 @@
 @brief
     Main method. Game starts here (except for static initialisations).
 */
+#ifdef ORXONOX_USE_WINMAIN
+INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
+#else
 int main(int argc, char** argv)
+#endif
 {
     {
         orxonox::Game orxonox(argc, argv);

Copied: trunk/src/orxonox/OrxonoxPrecompiledHeaders.h (from rev 3195, branches/pch/src/orxonox/OrxonoxPrecompiledHeaders.h)
===================================================================
--- trunk/src/orxonox/OrxonoxPrecompiledHeaders.h	                        (rev 0)
+++ trunk/src/orxonox/OrxonoxPrecompiledHeaders.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,100 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+ at file
+ at brief
+    Compilation of the most often used header files in the orxonox executable
+*/
+
+#include "OrxonoxPrereqs.h"
+
+#include <deque>
+#include <fstream>
+#include <iostream>
+#include <list>
+#include <map>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <string>
+#include <vector>
+
+// Prevent headers from including winsock.h that messes with winsock2.h from ENet
+#define WIN32_LEAN_AND_MEAN
+
+
+#ifdef ORXONOX_COMPILER_MSVC
+
+// Note: Numbers after the include specify the number of times included (2009-06-19)
+// The sizes in MB was just to see how much the MSVC9 PCH file increases for Ogre includes
+#include <OgreMaterial.h> // 33, 2.7MB
+#include <OgreRenderable.h> // 32, 2.6MB
+#include <OgreSingleton.h> // 28, 0.0MB
+#include <OgreSceneNode.h> // 25, 1.1MB
+#include <OgreTexture.h> // 25, 0.2MB (1.1MB)
+#include <OgreMovableObject.h> // 22, 1.3MB
+#include <OgreResourceGroupManager.h> // 21, 1.4MB
+#include <OgreTechnique.h> // 18, 1.2MB
+//#include <OgreSceneManager.h> // 16, 7.4MB
+
+#endif
+
+
+//#include <boost/preprocessor/cat.hpp> // 15
+//#include <boost/shared_ptr.hpp> // 13
+#include <LinearMath/btMotionState.h>
+#include <tinyxml/ticpp.h>
+
+// Just in case some header included windows.h
+#undef min
+#undef max
+
+//--------- Orxonox files --------
+//--------------------------------
+
+//#include "util/Convert.h" // 24
+#include "util/Debug.h"
+#include "util/Exception.h"
+#include "util/Math.h"
+#include "util/OgreForwardRefs.h"
+#include "util/OrxAssert.h"
+#include "util/String.h"
+#include "util/SubString.h"
+
+#include "core/BaseObject.h"
+//#include "core/ConfigValueIncludes.h" // 19
+//#include "core/ConsoleCommand.h" // 15
+#include "core/Core.h"
+#include "core/CoreIncludes.h"
+#include "core/GameMode.h"
+#include "core/XMLPort.h"
+
+#include "network/synchronisable/Synchronisable.h"
+//#include "network/ClientInformation.h" // 26
+//#include "network/ClientConnectionListener.h" // 24

Modified: trunk/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- trunk/src/orxonox/OrxonoxPrereqs.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/OrxonoxPrereqs.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -246,13 +246,12 @@
     class Shader;
     template <class T>
     class Timer;
-    class DynamicLines;
-    class DynamicRenderable;
 
     // overlays
     class BarColour;
     class DebugFPSText;
     class DebugRTRText;
+    class GUIOverlay;
     class HUDBar;
     class HUDNavigation;
     class HUDRadar;
@@ -287,14 +286,14 @@
 
 namespace Ogre
 {
-    // some got forgotten in OgrePrerequisites
-    class BorderPanelOverlayElement;
-    class PanelOverlayElement;
-    class TextAreaOverlayElement;
+    // OGRE Wiki adapted code
+    class DynamicLines;
+    class DynamicRenderable;
 }
 
 namespace CEGUI
 {
+    class DefaultLogger;
     class LuaScriptModule;
 
     class OgreCEGUIRenderer;
@@ -303,7 +302,6 @@
 }
 
 // Bullet Physics Engine
-
 class btTransform;
 class btVector3;
 
@@ -323,7 +321,13 @@
 class btCollisionDispatcher;
 class btSequentialImpulseConstraintSolver;
 
-// lua
+// ALUT
+typedef struct ALCcontext_struct ALCcontext;
+typedef struct ALCdevice_struct ALCdevice;
+typedef unsigned int ALuint;
+typedef int ALint;
+
+// Lua
 struct lua_State;
 
 #endif /* _OrxonoxPrereqs_H__ */

Modified: trunk/src/orxonox/PawnManager.cc
===================================================================
--- trunk/src/orxonox/PawnManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/PawnManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,7 +31,6 @@
 #include "core/CoreIncludes.h"
 #include "objects/worldentities/pawns/Pawn.h"
 
-
 namespace orxonox
 {
     PawnManager* PawnManager::singletonRef_s = 0;

Modified: trunk/src/orxonox/PawnManager.h
===================================================================
--- trunk/src/orxonox/PawnManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/PawnManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,7 @@
 #define _PawnManager_H__
 
 #include "OrxonoxPrereqs.h"
-#include "objects/Tickable.h"
+#include "interfaces/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/PlayerManager.cc
===================================================================
--- trunk/src/orxonox/PlayerManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/PlayerManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,11 +28,11 @@
 
 #include "PlayerManager.h"
 
-#include "LevelManager.h"
+#include "core/CoreIncludes.h"
 #include "core/GameMode.h"
-#include "core/CoreIncludes.h"
 #include "objects/Level.h"
 #include "objects/infos/HumanPlayer.h"
+#include "LevelManager.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/PlayerManager.h
===================================================================
--- trunk/src/orxonox/PlayerManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/PlayerManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -43,8 +43,8 @@
             PlayerManager();
             virtual ~PlayerManager();
 
-            static PlayerManager& getInstance()
-            { assert(singletonRef_s); return *singletonRef_s; }
+            inline static PlayerManager& getInstance()
+                { assert(singletonRef_s); return *singletonRef_s; }
 
             PlayerInfo* getClient(unsigned int clientID) const;
             inline const std::map<unsigned int, PlayerInfo*>& getClients() const

Modified: trunk/src/orxonox/gamestates/GSClient.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSClient.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSClient.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,7 +28,7 @@
 
 #include "GSClient.h"
 
-#include "core/input/InputManager.h"
+#include "util/Exception.h"
 #include "core/Clock.h"
 #include "core/CommandLine.h"
 #include "core/Game.h"

Modified: trunk/src/orxonox/gamestates/GSClient.h
===================================================================
--- trunk/src/orxonox/gamestates/GSClient.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSClient.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,7 @@
 #define _GSClient_H__
 
 #include "OrxonoxPrereqs.h"
+
 #include "core/GameState.h"
 #include "network/NetworkPrereqs.h"
 

Modified: trunk/src/orxonox/gamestates/GSDedicated.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSDedicated.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSDedicated.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,14 +28,13 @@
 
 #include "GSDedicated.h"
 
+#include "util/Debug.h"
+#include "util/Sleep.h"
 #include "core/Clock.h"
 #include "core/CommandLine.h"
 #include "core/Game.h"
 #include "core/GameMode.h"
-#include "core/Iterator.h"
 #include "network/Server.h"
-#include "objects/Tickable.h"
-#include "util/Sleep.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/gamestates/GSDedicated.h
===================================================================
--- trunk/src/orxonox/gamestates/GSDedicated.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSDedicated.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,7 @@
 #define _GSDedicated_H__
 
 #include "OrxonoxPrereqs.h"
+
 #include "core/GameState.h"
 #include "network/NetworkPrereqs.h"
 

Modified: trunk/src/orxonox/gamestates/GSGraphics.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSGraphics.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSGraphics.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,8 +27,9 @@
  */
 
 /**
-    @file
-    @brief Implementation of Graphics GameState class.
+ at file
+ at brief
+    Implementation of Graphics GameState class.
  */
 
 #include "GSGraphics.h"
@@ -36,7 +37,6 @@
 #include <boost/filesystem.hpp>
 #include <OgreRenderWindow.h>
 
-#include "util/Debug.h"
 #include "core/ConfigValueIncludes.h"
 #include "core/Clock.h"
 #include "core/ConsoleCommand.h"
@@ -51,6 +51,7 @@
 #include "core/XMLFile.h"
 #include "overlays/console/InGameConsole.h"
 #include "gui/GUIManager.h"
+#include "sound/SoundManager.h"
 #include "GraphicsManager.h"
 
 namespace orxonox
@@ -63,6 +64,7 @@
         , console_(0)
         , guiManager_(0)
         , graphicsManager_(0)
+        , soundManager_(0)
         , masterKeyBinder_(0)
         , masterInputState_(0)
         , debugOverlay_(0)
@@ -94,6 +96,7 @@
         \li manages render window
         \li creates input manager
         \li loads master key bindings
+        \li loads the SoundManager
         \li loads ingame console
         \li loads GUI interface (GUIManager)
         \li creates console command to toggle GUI
@@ -128,6 +131,9 @@
         masterKeyBinder_->loadBindings("masterKeybindings.ini");
         masterInputState_->setKeyHandler(masterKeyBinder_);
 
+        // Load the SoundManager
+        soundManager_ = new SoundManager();
+
         // Load the InGameConsole
         console_ = new InGameConsole();
         console_->initialise(renderWindow->getWidth(), renderWindow->getHeight());
@@ -172,6 +178,8 @@
         Loader::unload(this->debugOverlay_);
         delete this->debugOverlay_;
 
+        delete this->soundManager_;
+
         delete this->inputManager_;
         this->inputManager_ = 0;
 

Modified: trunk/src/orxonox/gamestates/GSGraphics.h
===================================================================
--- trunk/src/orxonox/gamestates/GSGraphics.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSGraphics.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,24 +26,25 @@
  *
  */
 
- /**
-    @file
-    @brief Declaration of the Graphics GameState class.
-  */
+/**
+ at file
+ at brief
+    Declaration of the Graphics GameState class.
+*/
 
 #ifndef _GSGraphics_H__
 #define _GSGraphics_H__
 
 #include "OrxonoxPrereqs.h"
+
 #include "core/GameState.h"
-#include "tools/WindowEventListener.h"
+#include "interfaces/WindowEventListener.h"
 
 namespace orxonox
 {
     /**
-    @class GSGraphics
     @brief
-        Game state used when displaying graphics of any kind
+        Game state used when displaying graphics of any kind. Another blubb resides here.
 
         This game state is only left out if we start a dedicated server where no graphics are present.
     */
@@ -70,6 +71,7 @@
         InGameConsole*        console_;
         GUIManager*           guiManager_;          //!< Interface to GUI
         GraphicsManager*      graphicsManager_;     //!< Interface to Ogre
+        SoundManager*         soundManager_;        //!< Keeps track of SoundBase objects
 
         KeyBinder*            masterKeyBinder_;     //!< Key binder for master key bindings
         SimpleInputState*     masterInputState_;    //!< Special input state for master input

Modified: trunk/src/orxonox/gamestates/GSIOConsole.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSIOConsole.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSIOConsole.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,9 +29,6 @@
 #include "GSIOConsole.h"
 
 #include <iostream>
-#include <OgreFrameListener.h>
-#include <OgreRoot.h>
-#include <OgreTimer.h>
 
 #include "core/ConsoleCommand.h"
 #include "core/Game.h"

Modified: trunk/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSLevel.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSLevel.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,25 +32,26 @@
 #include "core/input/InputManager.h"
 #include "core/input/SimpleInputState.h"
 #include "core/input/KeyBinder.h"
-#include "core/Loader.h"
-#include "core/XMLFile.h"
-#include "core/CommandExecutor.h"
+#include "core/Clock.h"
+#include "core/CommandLine.h"
 #include "core/ConsoleCommand.h"
-#include "core/CommandLine.h"
 #include "core/ConfigValueIncludes.h"
-#include "core/Core.h"
 #include "core/CoreIncludes.h"
 #include "core/Game.h"
 #include "core/GameMode.h"
-#include "objects/Tickable.h"
+#include "core/Core.h"
+#include "core/Loader.h"
+#include "core/XMLFile.h"
+
+#include "interfaces/Tickable.h"
 #include "objects/Radar.h"
+#include "objects/quest/QuestManager.h"
+#include "overlays/notifications/NotificationManager.h"
+#include "gui/GUIManager.h"
 #include "CameraManager.h"
 #include "GraphicsManager.h"
 #include "LevelManager.h"
 #include "PlayerManager.h"
-#include "gui/GUIManager.h"
-#include "objects/quest/QuestManager.h"
-#include "overlays/notifications/NotificationManager.h"
 
 namespace orxonox
 {
@@ -147,14 +148,14 @@
     {
         if (show)
         {
-            GUIManager::getInstancePtr()->showGUI("inGameTest");
-            GUIManager::getInstancePtr()->executeCode("showCursor()");
+            GUIManager::getInstance().showGUI("inGameTest");
+            GUIManager::getInstance().executeCode("showCursor()");
             InputManager::getInstance().requestEnterState("guiMouseOnly");
         }
         else
         {
-            GUIManager::getInstancePtr()->executeCode("hideGUI(\"inGameTest\")");
-            GUIManager::getInstancePtr()->executeCode("hideCursor()");
+            GUIManager::getInstance().executeCode("hideGUI(\"inGameTest\")");
+            GUIManager::getInstance().executeCode("hideCursor()");
             InputManager::getInstance().requestLeaveState("guiMouseOnly");
         }
     }

Modified: trunk/src/orxonox/gamestates/GSLevel.h
===================================================================
--- trunk/src/orxonox/gamestates/GSLevel.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSLevel.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,8 @@
 #define _GSLevel_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <string>
 #include "core/OrxonoxClass.h"
 #include "core/GameState.h"
 
@@ -47,7 +49,6 @@
         void update(const Clock& time);
 
         static void showIngameGUI(bool show);
-        static void setLevel(std::string levelName);
 
         static XMLFile* startFile_s;
 
@@ -68,7 +69,7 @@
         CameraManager*        cameraManager_;           //!< camera manager for this level
         LevelManager*         levelManager_;            //!< global level manager
         PlayerManager*        playerManager_;           //!< player manager for this level
-        QuestManager*          questManager_;
+        QuestManager*         questManager_;
         NotificationManager*  notificationManager_;
 
         //##### ConfigValues #####

Modified: trunk/src/orxonox/gamestates/GSMainMenu.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSMainMenu.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSMainMenu.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,17 +28,17 @@
 
 #include "GSMainMenu.h"
 
-//#include <OgreViewport.h>
 #include <OgreSceneManager.h>
+
+#include "core/input/InputManager.h"
+#include "core/input/SimpleInputState.h"
+#include "core/Game.h"
 #include "core/Clock.h"
 #include "core/ConsoleCommand.h"
-#include "core/Game.h"
-#include "core/input/InputManager.h"
-#include "core/input/SimpleInputState.h"
+#include "objects/Scene.h"
 #include "gui/GUIManager.h"
-#include "objects/Scene.h"
+#include "sound/SoundMainMenu.h"
 #include "GraphicsManager.h"
-#include "sound/SoundMainMenu.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/gamestates/GSMainMenu.h
===================================================================
--- trunk/src/orxonox/gamestates/GSMainMenu.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSMainMenu.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,8 @@
 #define _GSMainMenu_H__
 
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
+
+#include "util/OgreForwardRefs.h"
 #include "core/GameState.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/gamestates/GSRoot.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSRoot.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSRoot.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,16 +28,14 @@
 
 #include "GSRoot.h"
 
-#include "util/Exception.h"
-#include "util/Debug.h"
 #include "core/Clock.h"
-#include "core/Game.h"
-#include "core/GameMode.h"
 #include "core/CommandLine.h"
 #include "core/ConsoleCommand.h"
-#include "tools/TimeFactorListener.h"
+#include "core/Game.h"
+#include "core/GameMode.h"
 #include "tools/Timer.h"
-#include "objects/Tickable.h"
+#include "interfaces/TimeFactorListener.h"
+#include "interfaces/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/gamestates/GSRoot.h
===================================================================
--- trunk/src/orxonox/gamestates/GSRoot.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSRoot.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,7 +31,6 @@
 
 #include "OrxonoxPrereqs.h"
 #include "core/GameState.h"
-#include "core/OrxonoxClass.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/gamestates/GSServer.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSServer.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSServer.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,6 +28,7 @@
 
 #include "GSServer.h"
 
+#include "util/Debug.h"
 #include "core/CommandLine.h"
 #include "core/Game.h"
 #include "core/GameMode.h"

Modified: trunk/src/orxonox/gamestates/GSServer.h
===================================================================
--- trunk/src/orxonox/gamestates/GSServer.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSServer.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,7 @@
 #define _GSServer_H__
 
 #include "OrxonoxPrereqs.h"
+
 #include "core/GameState.h"
 #include "network/NetworkPrereqs.h"
 

Modified: trunk/src/orxonox/gamestates/GSStandalone.cc
===================================================================
--- trunk/src/orxonox/gamestates/GSStandalone.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gamestates/GSStandalone.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,13 +28,8 @@
 
 #include "GSStandalone.h"
 
-#include <OgreViewport.h>
-#include <OgreCamera.h>
 #include "core/Game.h"
 #include "core/GameMode.h"
-#include "core/ConsoleCommand.h"
-#include "gui/GUIManager.h"
-#include "GraphicsManager.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/gui/GUIManager.cc
===================================================================
--- trunk/src/orxonox/gui/GUIManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gui/GUIManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -23,23 +23,28 @@
  *      Reto Grieder
  *      Benjamin Knecht
  *   Co-authors:
+ *      ...
  *
- *
  */
 
 /**
-    @file
-    @brief
-        Implementation of the GUIManager class.
+ at file
+ at brief
+    Implementation of the GUIManager class.
 */
 
 #include "GUIManager.h"
 
-#include <boost/filesystem/path.hpp>
-#include <OgreRenderWindow.h>
-#include <CEGUI.h>
+extern "C" {
+#include <lua.h>
+}
 #include <CEGUIDefaultLogger.h>
+#include <CEGUIExceptions.h>
+#include <CEGUIInputEvent.h>
+#include <CEGUIResourceProvider.h>
+#include <CEGUISystem.h>
 #include <ogreceguirenderer/OgreCEGUIRenderer.h>
+
 #include "SpecialConfig.h" // Configures the macro below
 #ifdef CEGUILUA_USE_INTERNAL_LIBRARY
 #   include <ceguilua/CEGUILua.h>
@@ -48,19 +53,15 @@
 #endif
 
 #include "util/Exception.h"
-#include "core/ConsoleCommand.h"
 #include "core/Core.h"
 #include "core/Clock.h"
 #include "ToluaBindCore.h"
 #include "ToluaBindOrxonox.h"
 #include "core/Loader.h"
 
-extern "C" {
-#include <lua.h>
-}
-
 namespace orxonox
 {
+    static CEGUI::MouseButton convertButton(MouseButtonCode::ByEnum button);
     GUIManager* GUIManager::singletonRef_s = 0;
 
     GUIManager::GUIManager()
@@ -138,9 +139,8 @@
                 this->luaState_ = this->scriptModule_->getLuaState();
 
                 // Create our own logger to specify the filepath
-                boost::filesystem::path ceguiLogFilepath(Core::getLogPath() / "cegui.log");
                 this->ceguiLogger_ = new DefaultLogger();
-                this->ceguiLogger_->setLogFilename(ceguiLogFilepath.string());
+                this->ceguiLogger_->setLogFilename(Core::getLogPathString() + "cegui.log");
                 // set the log level according to ours (translate by subtracting 1)
                 this->ceguiLogger_->setLoggingLevel(
                     (LoggingLevel)(Core::getSoftDebugLevel(OutputHandler::LD_Logfile) - 1));
@@ -270,7 +270,7 @@
     @return
         Returns false if the Overlay was already present.
     */
-    bool GUIManager::registerOverlay(std::string name, GUIOverlay* overlay)
+    bool GUIManager::registerOverlay(const std::string& name, GUIOverlay* overlay)
     {
         return (this->guiOverlays_.insert(std::pair<std::string, GUIOverlay*>(name, overlay))).second;
     }
@@ -283,7 +283,7 @@
     @return
         Returns a pointer to the GUIOverlay.
     */
-    GUIOverlay* GUIManager::getOverlay(std::string name)
+    GUIOverlay* GUIManager::getOverlay(const std::string& name)
     {
         return (this->guiOverlays_.find(name))->second;
     }
@@ -339,6 +339,15 @@
         }
     }
 
+    void GUIManager::keyPressed(const KeyEvent& evt)
+    {
+        guiSystem_->injectKeyDown(evt.key); guiSystem_->injectChar(evt.text);
+    }
+    void GUIManager::keyReleased(const KeyEvent& evt)
+    {
+        guiSystem_->injectKeyUp(evt.key);
+    }
+
     /**
     @brief
         Function receiving a mouse button pressed event.
@@ -383,6 +392,15 @@
         }
     }
 
+    void GUIManager::mouseMoved(IntVector2 abs, IntVector2 rel, IntVector2 clippingSize)
+    {
+        guiSystem_->injectMouseMove(static_cast<float>(rel.x), static_cast<float>(rel.y));
+    }
+    void GUIManager::mouseScrolled(int abs, int rel)
+    {
+        guiSystem_->injectMouseWheelChange(static_cast<float>(rel));
+    }
+
     /**
     @brief
         converts mouse event code to CEGUI event code
@@ -393,7 +411,7 @@
 
         Simple convertion from mouse event code in Orxonox to the one used in CEGUI.
      */
-    inline CEGUI::MouseButton GUIManager::convertButton(MouseButtonCode::ByEnum button)
+    static inline CEGUI::MouseButton convertButton(MouseButtonCode::ByEnum button)
     {
         switch (button)
         {

Modified: trunk/src/orxonox/gui/GUIManager.h
===================================================================
--- trunk/src/orxonox/gui/GUIManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/gui/GUIManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -21,31 +21,30 @@
  *
  *   Author:
  *      Reto Grieder
- *   Co-authors:
  *      Benjamin Knecht
+ *   Co-authors:
+ *      ...
  *
  */
 
 /**
-    @file
-    @brief Declaration of the GUIManager class.
+ at file
+ at brief
+    Declaration of the GUIManager class.
 */
 
 #ifndef _GUIManager_H__
 #define _GUIManager_H__
 
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
+
+#include <map>
+#include <string>
 #include <CEGUIForwardRefs.h>
-#include <CEGUIInputEvent.h>
-#include <CEGUISystem.h>
+
+#include "util/OgreForwardRefs.h"
 #include "core/input/InputInterfaces.h"
-#include <map>
-#include "overlays/GUIOverlay.h"
 
-// Forward declaration
-namespace CEGUI { class DefaultLogger; }
-
 // tolua_begin
 namespace orxonox
 {
@@ -88,8 +87,8 @@
         void showGUI(const std::string& name);
         void executeCode(const std::string& str);
 
-        bool registerOverlay(std::string name, GUIOverlay* overlay); //!< Register a GUIOverlay with the GUIManager.
-        GUIOverlay* getOverlay(std::string name); // Get the GUIOverlay of the GUI with the given name.
+        bool registerOverlay(const std::string& name, GUIOverlay* overlay); //!< Register a GUIOverlay with the GUIManager.
+        GUIOverlay* getOverlay(const std::string& name); // Get the GUIOverlay of the GUI with the given name.
 
         void setCamera(Ogre::Camera* camera);
 
@@ -104,27 +103,21 @@
         void loadLuaCode();
 
         // keyHandler functions
-        void keyPressed (const KeyEvent& evt)
-            { guiSystem_->injectKeyDown(evt.key); guiSystem_->injectChar(evt.text); }
-        void keyReleased(const KeyEvent& evt)
-            { guiSystem_->injectKeyUp(evt.key); }
+        void keyPressed (const KeyEvent& evt);
+        void keyReleased(const KeyEvent& evt);
         void keyHeld    (const KeyEvent& evt) { }
 
         // mouseHandler functions
         void mouseButtonPressed (MouseButtonCode::ByEnum id);
         void mouseButtonReleased(MouseButtonCode::ByEnum id);
         void mouseButtonHeld    (MouseButtonCode::ByEnum id) { }
-        void mouseMoved         (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize)
-            { guiSystem_->injectMouseMove(rel.x, rel.y); }
-        void mouseScrolled      (int abs, int rel)
-            { guiSystem_->injectMouseWheelChange(rel);}
+        void mouseMoved         (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize);
+        void mouseScrolled      (int abs, int rel);
 
         void updateInput(float dt)  { }
         void updateKey  (float dt)  { }
         void updateMouse(float dt)  { }
 
-        static CEGUI::MouseButton convertButton(MouseButtonCode::ByEnum button);
-
         Ogre::RenderWindow*         renderWindow_;      //!< Ogre's render window to give CEGUI access to it
         CEGUI::OgreCEGUIRenderer*   guiRenderer_;       //!< CEGUI's interface to the Ogre Engine
         CEGUI::ResourceProvider*    resourceProvider_;  //!< CEGUI's resource provider

Deleted: trunk/src/orxonox/interfaces/CMakeLists.txt
===================================================================
--- branches/pch/src/orxonox/interfaces/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,4 +0,0 @@
-ADD_SOURCE_FILES(ORXONOX_SRC_FILES
-  InterfaceCompilation.cc
-  RadarViewable.cc
-)

Copied: trunk/src/orxonox/interfaces/CMakeLists.txt (from rev 3195, branches/pch/src/orxonox/interfaces/CMakeLists.txt)
===================================================================
--- trunk/src/orxonox/interfaces/CMakeLists.txt	                        (rev 0)
+++ trunk/src/orxonox/interfaces/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,4 @@
+ADD_SOURCE_FILES(ORXONOX_SRC_FILES
+  InterfaceCompilation.cc
+  RadarViewable.cc
+)

Deleted: trunk/src/orxonox/interfaces/GametypeMessageListener.h
===================================================================
--- branches/pch/src/orxonox/interfaces/GametypeMessageListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/GametypeMessageListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,49 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _GametypeMessageListener_H__
-#define _GametypeMessageListener_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport GametypeMessageListener : virtual public OrxonoxClass
-    {
-        public:
-            GametypeMessageListener();
-            virtual ~GametypeMessageListener() {}
-
-            virtual void announcemessage(const GametypeInfo* gtinfo, const std::string& message) {}
-            virtual void killmessage(const GametypeInfo* gtinfo, const std::string& message) {}
-            virtual void deathmessage(const GametypeInfo* gtinfo, const std::string& message) {}
-    };
-}
-
-#endif /* _GametypeMessageListener_H__ */

Copied: trunk/src/orxonox/interfaces/GametypeMessageListener.h (from rev 3195, branches/pch/src/orxonox/interfaces/GametypeMessageListener.h)
===================================================================
--- trunk/src/orxonox/interfaces/GametypeMessageListener.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/GametypeMessageListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,49 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _GametypeMessageListener_H__
+#define _GametypeMessageListener_H__
+
+#include "OrxonoxPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport GametypeMessageListener : virtual public OrxonoxClass
+    {
+        public:
+            GametypeMessageListener();
+            virtual ~GametypeMessageListener() {}
+
+            virtual void announcemessage(const GametypeInfo* gtinfo, const std::string& message) {}
+            virtual void killmessage(const GametypeInfo* gtinfo, const std::string& message) {}
+            virtual void deathmessage(const GametypeInfo* gtinfo, const std::string& message) {}
+    };
+}
+
+#endif /* _GametypeMessageListener_H__ */

Deleted: trunk/src/orxonox/interfaces/InterfaceCompilation.cc
===================================================================
--- branches/pch/src/orxonox/interfaces/InterfaceCompilation.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/InterfaceCompilation.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,122 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-/**
- at file
- at brief
-    Compiles all the interfaces (except RadarViewable) with mostly just a constructor.
-*/
-
-#include "GametypeMessageListener.h"
-#include "PawnListener.h"
-#include "RadarListener.h"
-#include "Rewardable.h"
-#include "TeamColourable.h"
-#include "Tickable.h"
-#include "TimeFactorListener.h"
-#include "WindowEventListener.h"
-
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    //----------------------------
-    // GametypeMessageListener
-    //----------------------------
-    GametypeMessageListener::GametypeMessageListener()
-    {
-        RegisterRootObject(GametypeMessageListener);
-    }
-
-    //----------------------------
-    // PawnListener
-    //----------------------------
-    /**
-        @brief Constructor for the PawnListener.
-    */
-    PawnListener::PawnListener()
-    {
-        RegisterRootObject(PawnListener);
-    }
-
-    //----------------------------
-    // RadarListener
-    //----------------------------
-    RadarListener::RadarListener()
-    {
-        RegisterRootObject(RadarListener);
-    }
-
-    //----------------------------
-    // TeamColourable
-    //----------------------------
-    TeamColourable::TeamColourable()
-    {
-        RegisterRootObject(TeamColourable);
-    }
-
-    //----------------------------
-    // TimeFactorListener
-    //----------------------------
-    float TimeFactorListener::timefactor_s = 1.0f;
-
-    TimeFactorListener::TimeFactorListener()
-    {
-        RegisterRootObject(TimeFactorListener);
-    }
-
-    //----------------------------
-    // Tickable
-    //----------------------------
-    /**
-        @brief Constructor: Registers the object in the Tickable-list
-    */
-    Tickable::Tickable()
-    {
-        RegisterRootObject(Tickable);
-    }
-
-    //----------------------------
-    // WindowEventListener
-    //----------------------------
-    /**
-        @brief Constructor for the WindowEventListener.
-    */
-    WindowEventListener::WindowEventListener()
-    {
-        RegisterRootObject(WindowEventListener);
-    }
-
-    //----------------------------
-    // Rewardable
-    //----------------------------
-    Rewardable::Rewardable()
-    {
-        RegisterObject(Rewardable);
-    }
-}

Copied: trunk/src/orxonox/interfaces/InterfaceCompilation.cc (from rev 3195, branches/pch/src/orxonox/interfaces/InterfaceCompilation.cc)
===================================================================
--- trunk/src/orxonox/interfaces/InterfaceCompilation.cc	                        (rev 0)
+++ trunk/src/orxonox/interfaces/InterfaceCompilation.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,122 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+ at file
+ at brief
+    Compiles all the interfaces (except RadarViewable) with mostly just a constructor.
+*/
+
+#include "GametypeMessageListener.h"
+#include "PawnListener.h"
+#include "RadarListener.h"
+#include "Rewardable.h"
+#include "TeamColourable.h"
+#include "Tickable.h"
+#include "TimeFactorListener.h"
+#include "WindowEventListener.h"
+
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+    //----------------------------
+    // GametypeMessageListener
+    //----------------------------
+    GametypeMessageListener::GametypeMessageListener()
+    {
+        RegisterRootObject(GametypeMessageListener);
+    }
+
+    //----------------------------
+    // PawnListener
+    //----------------------------
+    /**
+        @brief Constructor for the PawnListener.
+    */
+    PawnListener::PawnListener()
+    {
+        RegisterRootObject(PawnListener);
+    }
+
+    //----------------------------
+    // RadarListener
+    //----------------------------
+    RadarListener::RadarListener()
+    {
+        RegisterRootObject(RadarListener);
+    }
+
+    //----------------------------
+    // TeamColourable
+    //----------------------------
+    TeamColourable::TeamColourable()
+    {
+        RegisterRootObject(TeamColourable);
+    }
+
+    //----------------------------
+    // TimeFactorListener
+    //----------------------------
+    float TimeFactorListener::timefactor_s = 1.0f;
+
+    TimeFactorListener::TimeFactorListener()
+    {
+        RegisterRootObject(TimeFactorListener);
+    }
+
+    //----------------------------
+    // Tickable
+    //----------------------------
+    /**
+        @brief Constructor: Registers the object in the Tickable-list
+    */
+    Tickable::Tickable()
+    {
+        RegisterRootObject(Tickable);
+    }
+
+    //----------------------------
+    // WindowEventListener
+    //----------------------------
+    /**
+        @brief Constructor for the WindowEventListener.
+    */
+    WindowEventListener::WindowEventListener()
+    {
+        RegisterRootObject(WindowEventListener);
+    }
+
+    //----------------------------
+    // Rewardable
+    //----------------------------
+    Rewardable::Rewardable()
+    {
+        RegisterObject(Rewardable);
+    }
+}

Deleted: trunk/src/orxonox/interfaces/PawnListener.h
===================================================================
--- branches/pch/src/orxonox/interfaces/PawnListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/PawnListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,47 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _PawnListener_H__
-#define _PawnListener_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport PawnListener : virtual public OrxonoxClass
-    {
-        public:
-            PawnListener();
-            virtual ~PawnListener() {}
-
-            virtual void destroyedPawn(Pawn* pawn) = 0;
-    };
-}
-
-#endif /* _PawnListener_H__ */

Copied: trunk/src/orxonox/interfaces/PawnListener.h (from rev 3195, branches/pch/src/orxonox/interfaces/PawnListener.h)
===================================================================
--- trunk/src/orxonox/interfaces/PawnListener.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/PawnListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,47 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _PawnListener_H__
+#define _PawnListener_H__
+
+#include "OrxonoxPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport PawnListener : virtual public OrxonoxClass
+    {
+        public:
+            PawnListener();
+            virtual ~PawnListener() {}
+
+            virtual void destroyedPawn(Pawn* pawn) = 0;
+    };
+}
+
+#endif /* _PawnListener_H__ */

Deleted: trunk/src/orxonox/interfaces/RadarListener.h
===================================================================
--- branches/pch/src/orxonox/interfaces/RadarListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/RadarListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,49 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _RadarListener_H__
-#define _RadarListener_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport RadarListener : virtual public OrxonoxClass
-    {
-    public:
-        RadarListener();
-        virtual ~RadarListener() { }
-
-        virtual void displayObject(RadarViewable* viewable, bool bIsMarked) = 0;
-        virtual float getRadarSensitivity() const = 0;
-        virtual void radarTick(float dt) = 0;
-    };
-}
-
-#endif /* _RadarListener_H__ */

Copied: trunk/src/orxonox/interfaces/RadarListener.h (from rev 3195, branches/pch/src/orxonox/interfaces/RadarListener.h)
===================================================================
--- trunk/src/orxonox/interfaces/RadarListener.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/RadarListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,49 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _RadarListener_H__
+#define _RadarListener_H__
+
+#include "OrxonoxPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport RadarListener : virtual public OrxonoxClass
+    {
+    public:
+        RadarListener();
+        virtual ~RadarListener() { }
+
+        virtual void displayObject(RadarViewable* viewable, bool bIsMarked) = 0;
+        virtual float getRadarSensitivity() const = 0;
+        virtual void radarTick(float dt) = 0;
+    };
+}
+
+#endif /* _RadarListener_H__ */

Deleted: trunk/src/orxonox/interfaces/RadarViewable.cc
===================================================================
--- branches/pch/src/orxonox/interfaces/RadarViewable.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/RadarViewable.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,169 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "RadarViewable.h"
-
-#include <OgreSceneManager.h>
-#include <OgreSceneNode.h>
-#include <OgreEntity.h>
-
-#include "util/String.h"
-#include "core/CoreIncludes.h"
-#include "tools/DynamicLines.h"
-#include "objects/worldentities/WorldEntity.h"
-#include "objects/Radar.h"
-#include "overlays/map/Map.h"
-
-namespace orxonox
-{
-    /**
-        @brief Constructor.
-    */
-    RadarViewable::RadarViewable()
-        : MapNode_(NULL)
-        , MapEntity_(NULL)
-        , line_(NULL)
-        , LineNode_(NULL)
-        , radarObjectCamouflage_(0.0f)
-        , radarObjectShape_(Dot)
-        , radarObjectDescription_("staticObject")
-    {
-        RegisterRootObject(RadarViewable);
-
-        this->bVisibility_ = true;
-        this->isHumanShip_ = false;
-
-        this->uniqueId_=getUniqueNumberString();
-/*
-        if(Map::getSingletonPtr() && Map::getSingletonPtr()->getMapSceneManagerPtr())
-        {
-            this->addEntity();
-        }
-
-        */
-    }
-
-
-    RadarViewable::~RadarViewable()
-    {
-        if (this->isHumanShip_ && MapNode_)
-            MapNode_->removeAllChildren();
-
-        if (MapNode_)
-            delete MapNode_;
-
-        if (MapEntity_)
-            delete MapEntity_;
-
-        if (line_)
-            delete line_;
-
-        if (LineNode_)
-            delete LineNode_;
-    }
-
-    void RadarViewable::addMapEntity()
-    { //TODO Check shape and add accordantly
-        if( this->MapNode_ && !this->MapEntity_ && Map::getSingletonPtr() && Map::getSingletonPtr()->getMapSceneManagerPtr() )
-        {
-            COUT(0) << "Adding " << this->uniqueId_ << " to Map.\n";
-            this->MapEntity_ = Map::getSingletonPtr()->getMapSceneManagerPtr()->createEntity( this->uniqueId_, "drone.mesh");
-            /*this->line_ =  Map::getSingletonPtr()->getMapSceneManagerPtr()->createManualObject(this->uniqueId_ + "_l");
-            this->line_->begin("Map/line_", Ogre::RenderOperation::OT_LINE_STRIP);
-            //line_->position(0, -it->getRVWorldPosition().y, 0);
-            //this->line_->position(0, -20, 0);
-            this->line_->position(0, 0, -10); //Front Arrow
-            this->line_->position(0, 0, 0);
-
-            this->line_->end(); */
-            this->line_ = new Ogre::DynamicLines(Ogre::RenderOperation::OT_LINE_LIST);
-            this->line_->addPoint( Vector3(0,0,0) );
-            this->line_->addPoint( Vector3(0,0,0) );
-
-            this->MapNode_->attachObject( this->MapEntity_ );
-
-            this->LineNode_ = this->MapNode_->createChildSceneNode();
-            this->LineNode_->attachObject( this->line_ );
-        }
-        else
-        {
-            COUT(0) << "Unable to load " << this->uniqueId_ << " to Map.\n";
-        }
-    }
-
-    void RadarViewable::updateMapPosition()
-    {
-        if( this->MapNode_ )
-        {
-            this->MapNode_->setPosition( this->getRVWorldPosition() );
-            this->MapNode_->translate( this->getRVOrientedVelocity(), (Ogre::Node::TransformSpace)3 );
-            this->MapNode_->setOrientation( this->getWorldEntity()->getOrientation() );
-//Vector3 v = this->getRVWorldPosition();
-            //this->line_->setPoint(1, Vector3(0,v.y,0) );
-            this->line_->setPoint(1, Vector3( 0, static_cast<float>(static_cast<int>( -Map::getSingletonPtr()->movablePlane_->getDistance( this->getRVWorldPosition() ) ) ) ,0 ));
-            this->line_->update();
-            if( Map::getSingletonPtr()->playerShipNode_ )
-                this->LineNode_->setDirection( Map::getSingletonPtr()->playerShipNode_->getLocalAxes().GetColumn(1) ,Ogre::Node::TS_WORLD,Vector3::UNIT_Y);
-        }
-    }
-
-    void RadarViewable::setRadarObjectDescription(const std::string& str)
-    {
-        Radar* radar = Radar::getInstancePtr();
-        if (radar)
-            this->radarObjectShape_ = radar->addObjectDescription(str);
-        else
-        {
-            CCOUT(2) << "Attempting to access the radar, but the radar is non existent." << std::endl;
-        }
-        this->radarObjectDescription_ = str;
-    }
-
-    const Vector3& RadarViewable::getRVWorldPosition() const
-    {
-        const WorldEntity* object = this->getWorldEntity();
-        validate(object);
-        return object->getWorldPosition();
-    }
-
-    Vector3 RadarViewable::getRVOrientedVelocity() const
-    {
-        const WorldEntity* object = this->getWorldEntity();
-        validate(object);
-        return object->getWorldOrientation() * object->getVelocity();
-    }
-
-    void RadarViewable::validate(const WorldEntity* object) const
-    {
-        if (!object)
-        {
-            COUT(1) << "Assertation: Every RadarViewable has to be assigned a WorldEntity pointer!" << std::endl;
-            assert(0);
-        }
-    }
-}

Copied: trunk/src/orxonox/interfaces/RadarViewable.cc (from rev 3195, branches/pch/src/orxonox/interfaces/RadarViewable.cc)
===================================================================
--- trunk/src/orxonox/interfaces/RadarViewable.cc	                        (rev 0)
+++ trunk/src/orxonox/interfaces/RadarViewable.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,169 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "RadarViewable.h"
+
+#include <OgreSceneManager.h>
+#include <OgreSceneNode.h>
+#include <OgreEntity.h>
+
+#include "util/String.h"
+#include "core/CoreIncludes.h"
+#include "tools/DynamicLines.h"
+#include "objects/worldentities/WorldEntity.h"
+#include "objects/Radar.h"
+#include "overlays/map/Map.h"
+
+namespace orxonox
+{
+    /**
+        @brief Constructor.
+    */
+    RadarViewable::RadarViewable()
+        : MapNode_(NULL)
+        , MapEntity_(NULL)
+        , line_(NULL)
+        , LineNode_(NULL)
+        , radarObjectCamouflage_(0.0f)
+        , radarObjectShape_(Dot)
+        , radarObjectDescription_("staticObject")
+    {
+        RegisterRootObject(RadarViewable);
+
+        this->bVisibility_ = true;
+        this->isHumanShip_ = false;
+
+        this->uniqueId_=getUniqueNumberString();
+/*
+        if(Map::getSingletonPtr() && Map::getSingletonPtr()->getMapSceneManagerPtr())
+        {
+            this->addEntity();
+        }
+
+        */
+    }
+
+
+    RadarViewable::~RadarViewable()
+    {
+        if (this->isHumanShip_ && MapNode_)
+            MapNode_->removeAllChildren();
+
+        if (MapNode_)
+            delete MapNode_;
+
+        if (MapEntity_)
+            delete MapEntity_;
+
+        if (line_)
+            delete line_;
+
+        if (LineNode_)
+            delete LineNode_;
+    }
+
+    void RadarViewable::addMapEntity()
+    { //TODO Check shape and add accordantly
+        if( this->MapNode_ && !this->MapEntity_ && Map::getSingletonPtr() && Map::getSingletonPtr()->getMapSceneManagerPtr() )
+        {
+            COUT(0) << "Adding " << this->uniqueId_ << " to Map.\n";
+            this->MapEntity_ = Map::getSingletonPtr()->getMapSceneManagerPtr()->createEntity( this->uniqueId_, "drone.mesh");
+            /*this->line_ =  Map::getSingletonPtr()->getMapSceneManagerPtr()->createManualObject(this->uniqueId_ + "_l");
+            this->line_->begin("Map/line_", Ogre::RenderOperation::OT_LINE_STRIP);
+            //line_->position(0, -it->getRVWorldPosition().y, 0);
+            //this->line_->position(0, -20, 0);
+            this->line_->position(0, 0, -10); //Front Arrow
+            this->line_->position(0, 0, 0);
+
+            this->line_->end(); */
+            this->line_ = new Ogre::DynamicLines(Ogre::RenderOperation::OT_LINE_LIST);
+            this->line_->addPoint( Vector3(0,0,0) );
+            this->line_->addPoint( Vector3(0,0,0) );
+
+            this->MapNode_->attachObject( this->MapEntity_ );
+
+            this->LineNode_ = this->MapNode_->createChildSceneNode();
+            this->LineNode_->attachObject( this->line_ );
+        }
+        else
+        {
+            COUT(0) << "Unable to load " << this->uniqueId_ << " to Map.\n";
+        }
+    }
+
+    void RadarViewable::updateMapPosition()
+    {
+        if( this->MapNode_ )
+        {
+            this->MapNode_->setPosition( this->getRVWorldPosition() );
+            this->MapNode_->translate( this->getRVOrientedVelocity(), (Ogre::Node::TransformSpace)3 );
+            this->MapNode_->setOrientation( this->getWorldEntity()->getOrientation() );
+//Vector3 v = this->getRVWorldPosition();
+            //this->line_->setPoint(1, Vector3(0,v.y,0) );
+            this->line_->setPoint(1, Vector3( 0, static_cast<float>(static_cast<int>( -Map::getSingletonPtr()->movablePlane_->getDistance( this->getRVWorldPosition() ) ) ) ,0 ));
+            this->line_->update();
+            if( Map::getSingletonPtr()->playerShipNode_ )
+                this->LineNode_->setDirection( Map::getSingletonPtr()->playerShipNode_->getLocalAxes().GetColumn(1) ,Ogre::Node::TS_WORLD,Vector3::UNIT_Y);
+        }
+    }
+
+    void RadarViewable::setRadarObjectDescription(const std::string& str)
+    {
+        Radar* radar = Radar::getInstancePtr();
+        if (radar)
+            this->radarObjectShape_ = radar->addObjectDescription(str);
+        else
+        {
+            CCOUT(2) << "Attempting to access the radar, but the radar is non existent." << std::endl;
+        }
+        this->radarObjectDescription_ = str;
+    }
+
+    const Vector3& RadarViewable::getRVWorldPosition() const
+    {
+        const WorldEntity* object = this->getWorldEntity();
+        validate(object);
+        return object->getWorldPosition();
+    }
+
+    Vector3 RadarViewable::getRVOrientedVelocity() const
+    {
+        const WorldEntity* object = this->getWorldEntity();
+        validate(object);
+        return object->getWorldOrientation() * object->getVelocity();
+    }
+
+    void RadarViewable::validate(const WorldEntity* object) const
+    {
+        if (!object)
+        {
+            COUT(1) << "Assertation: Every RadarViewable has to be assigned a WorldEntity pointer!" << std::endl;
+            assert(0);
+        }
+    }
+}

Deleted: trunk/src/orxonox/interfaces/RadarViewable.h
===================================================================
--- branches/pch/src/orxonox/interfaces/RadarViewable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/RadarViewable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,130 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _RadarViewable_H__
-#define _RadarViewable_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <string>
-#include <cassert>
-
-#include "util/Math.h"
-#include "util/OgreForwardRefs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    /**
-    @brief Interface for receiving window events.
-    */
-    class _OrxonoxExport RadarViewable : virtual public OrxonoxClass
-    {
-    public:
-        enum Shape
-        {
-            Square,
-            Dot,
-            Triangle
-        };
-
-
-    public:
-        RadarViewable();
-        virtual ~RadarViewable();
-
-        inline void setRadarObjectCamouflage(float camouflage)
-            { this->radarObjectCamouflage_ = camouflage; }
-        inline float getRadarObjectCamouflage() const
-            { return this->radarObjectCamouflage_; }
-
-        inline void setRadarObjectColour(const ColourValue& colour)
-            { this->radarObjectColour_ = colour; }
-        inline const ColourValue& getRadarObjectColour() const
-            { return this->radarObjectColour_; }
-
-        void setRadarObjectDescription(const std::string& str);
-        inline const std::string& getRadarObjectDescription() const
-            { return this->radarObjectDescription_; }
-
-        inline void setRadarVisibility(bool b)
-            { this->bVisibility_ = b; }
-        inline bool getRadarVisibility() const
-            { return this->bVisibility_; }
-
-        virtual const WorldEntity* getWorldEntity() const = 0;
-
-        const Vector3& getRVWorldPosition() const;
-        Vector3 getRVOrientedVelocity() const;
-
-        inline void setRadarObjectShape(Shape shape)
-            { this->radarObjectShape_ = shape; }
-        inline Shape getRadarObjectShape() const
-            { return this->radarObjectShape_; }
-
-/*
-        inline void setMapNode(Ogre::SceneNode * node)
-            { this->MapNode_ = node; }
-        inline Ogre::SceneNode * getMapNode() const
-            { return this->MapNode_; }
-        inline void setMapEntity(Ogre::Entity * ent)
-            { this->MapEntity_ = ent; }
-        inline Ogre::Entity * getMapEntity() const
-            { return this->MapEntity_; }
-*/
-        //Used for Map
-        Ogre::SceneNode * MapNode_;
-        Ogre::Entity * MapEntity_;
-        Ogre::DynamicLines* line_;
-        Ogre::SceneNode * LineNode_;
-        void addMapEntity();
-        void updateMapPosition();
-        bool isHumanShip_;
-        inline const std::string& getUniqueId()
-        {
-            return this->uniqueId_;
-        }
-        //friend class Map;
-
-    private:
-        void validate(const WorldEntity* object) const;
-        bool bVisibility_;
-        //Map
-        std::string uniqueId_;
-
-
-        //Radar
-        float radarObjectCamouflage_;
-        Shape radarObjectShape_;
-        std::string radarObjectDescription_;
-        ColourValue radarObjectColour_;
-
-    };
-}
-
-#endif /* _RadarViewable_H__ */

Copied: trunk/src/orxonox/interfaces/RadarViewable.h (from rev 3195, branches/pch/src/orxonox/interfaces/RadarViewable.h)
===================================================================
--- trunk/src/orxonox/interfaces/RadarViewable.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/RadarViewable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,130 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _RadarViewable_H__
+#define _RadarViewable_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include <string>
+#include <cassert>
+
+#include "util/Math.h"
+#include "util/OgreForwardRefs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    /**
+    @brief Interface for receiving window events.
+    */
+    class _OrxonoxExport RadarViewable : virtual public OrxonoxClass
+    {
+    public:
+        enum Shape
+        {
+            Square,
+            Dot,
+            Triangle
+        };
+
+
+    public:
+        RadarViewable();
+        virtual ~RadarViewable();
+
+        inline void setRadarObjectCamouflage(float camouflage)
+            { this->radarObjectCamouflage_ = camouflage; }
+        inline float getRadarObjectCamouflage() const
+            { return this->radarObjectCamouflage_; }
+
+        inline void setRadarObjectColour(const ColourValue& colour)
+            { this->radarObjectColour_ = colour; }
+        inline const ColourValue& getRadarObjectColour() const
+            { return this->radarObjectColour_; }
+
+        void setRadarObjectDescription(const std::string& str);
+        inline const std::string& getRadarObjectDescription() const
+            { return this->radarObjectDescription_; }
+
+        inline void setRadarVisibility(bool b)
+            { this->bVisibility_ = b; }
+        inline bool getRadarVisibility() const
+            { return this->bVisibility_; }
+
+        virtual const WorldEntity* getWorldEntity() const = 0;
+
+        const Vector3& getRVWorldPosition() const;
+        Vector3 getRVOrientedVelocity() const;
+
+        inline void setRadarObjectShape(Shape shape)
+            { this->radarObjectShape_ = shape; }
+        inline Shape getRadarObjectShape() const
+            { return this->radarObjectShape_; }
+
+/*
+        inline void setMapNode(Ogre::SceneNode * node)
+            { this->MapNode_ = node; }
+        inline Ogre::SceneNode * getMapNode() const
+            { return this->MapNode_; }
+        inline void setMapEntity(Ogre::Entity * ent)
+            { this->MapEntity_ = ent; }
+        inline Ogre::Entity * getMapEntity() const
+            { return this->MapEntity_; }
+*/
+        //Used for Map
+        Ogre::SceneNode * MapNode_;
+        Ogre::Entity * MapEntity_;
+        Ogre::DynamicLines* line_;
+        Ogre::SceneNode * LineNode_;
+        void addMapEntity();
+        void updateMapPosition();
+        bool isHumanShip_;
+        inline const std::string& getUniqueId()
+        {
+            return this->uniqueId_;
+        }
+        //friend class Map;
+
+    private:
+        void validate(const WorldEntity* object) const;
+        bool bVisibility_;
+        //Map
+        std::string uniqueId_;
+
+
+        //Radar
+        float radarObjectCamouflage_;
+        Shape radarObjectShape_;
+        std::string radarObjectDescription_;
+        ColourValue radarObjectColour_;
+
+    };
+}
+
+#endif /* _RadarViewable_H__ */

Deleted: trunk/src/orxonox/interfaces/Rewardable.h
===================================================================
--- branches/pch/src/orxonox/interfaces/Rewardable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/Rewardable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,70 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Definition of the Rewardable class.
-*/
-
-#ifndef _Rewardable_H__
-#define _Rewardable_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Rewardable is an Interface, that can be implemented by any object to enable it to be given as reward to a player through QuestEffects. (With the AddReward effect.)
-        
-        It just needs to inherit form Rewardable, and implement the reward() method.
-    @author
-        Damian 'Mozork' Frick
-    */
-    class _OrxonoxExport Rewardable : public OrxonoxClass
-    {
-        public:
-            Rewardable();
-            virtual ~Rewardable() {}
-
-            /**
-            @brief
-                Method to transcribe a rewardable object to the player.
-                Must be implemented by every class inheriting from Rewardable.
-            @param player
-                A pointer to the ControllableEntity, do whatever you want with it.
-            @return
-                Return true if successful.
-            */
-            virtual bool reward(PlayerInfo* player) = 0;
-
-    };
-}
-
-#endif /* _Rewardable_H__ */

Copied: trunk/src/orxonox/interfaces/Rewardable.h (from rev 3195, branches/pch/src/orxonox/interfaces/Rewardable.h)
===================================================================
--- trunk/src/orxonox/interfaces/Rewardable.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/Rewardable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,70 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Definition of the Rewardable class.
+*/
+
+#ifndef _Rewardable_H__
+#define _Rewardable_H__
+
+#include "OrxonoxPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        Rewardable is an Interface, that can be implemented by any object to enable it to be given as reward to a player through QuestEffects. (With the AddReward effect.)
+        
+        It just needs to inherit form Rewardable, and implement the reward() method.
+    @author
+        Damian 'Mozork' Frick
+    */
+    class _OrxonoxExport Rewardable : public OrxonoxClass
+    {
+        public:
+            Rewardable();
+            virtual ~Rewardable() {}
+
+            /**
+            @brief
+                Method to transcribe a rewardable object to the player.
+                Must be implemented by every class inheriting from Rewardable.
+            @param player
+                A pointer to the ControllableEntity, do whatever you want with it.
+            @return
+                Return true if successful.
+            */
+            virtual bool reward(PlayerInfo* player) = 0;
+
+    };
+}
+
+#endif /* _Rewardable_H__ */

Deleted: trunk/src/orxonox/interfaces/TeamColourable.h
===================================================================
--- branches/pch/src/orxonox/interfaces/TeamColourable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/TeamColourable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,49 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _TeamColourable_H__
-#define _TeamColourable_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "util/UtilPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport TeamColourable : virtual public OrxonoxClass
-    {
-        public:
-            virtual void setTeamColour(const ColourValue& colour) = 0;
-
-        protected:
-            TeamColourable();
-    };
-}
-
-#endif /* _TeamColourable_H__ */

Copied: trunk/src/orxonox/interfaces/TeamColourable.h (from rev 3195, branches/pch/src/orxonox/interfaces/TeamColourable.h)
===================================================================
--- trunk/src/orxonox/interfaces/TeamColourable.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/TeamColourable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,49 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _TeamColourable_H__
+#define _TeamColourable_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "util/UtilPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport TeamColourable : virtual public OrxonoxClass
+    {
+        public:
+            virtual void setTeamColour(const ColourValue& colour) = 0;
+
+        protected:
+            TeamColourable();
+    };
+}
+
+#endif /* _TeamColourable_H__ */

Deleted: trunk/src/orxonox/interfaces/Tickable.h
===================================================================
--- branches/pch/src/orxonox/interfaces/Tickable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/Tickable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,68 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/*!
-    @file
-    @brief Declaration of the Tickable interface.
-
-    The Tickable interface provides a tick(dt) function, that gets called every frame.
-    float dt is the time since the last frame in seconds.
-
-    Attention:
-    Classes derived from a Tickable that want to have a tick(dt) function on their part, MUST call the
-    parent::tick(dt) function explicitly in their implementation of tick(dt) because it's a virtual function.
-*/
-
-#ifndef _Tickable_H__
-#define _Tickable_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "core/OrxonoxClass.h"
-#include "core/Super.h"
-
-namespace orxonox
-{
-    //! The Tickable interface provides a tick(dt) function, that gets called every frame.
-    class _OrxonoxExport Tickable : virtual public OrxonoxClass
-    {
-        public:
-            /**
-                @brief Gets called every frame.
-                @param dt The time since the last frame in seconds
-            */
-            virtual void tick(float dt) = 0;
-
-        protected:
-            Tickable();
-    };
-
-    SUPER_FUNCTION(1, Tickable, tick, true);
-}
-
-#endif /* _Tickable_H__ */

Copied: trunk/src/orxonox/interfaces/Tickable.h (from rev 3195, branches/pch/src/orxonox/interfaces/Tickable.h)
===================================================================
--- trunk/src/orxonox/interfaces/Tickable.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/Tickable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,68 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/*!
+    @file
+    @brief Declaration of the Tickable interface.
+
+    The Tickable interface provides a tick(dt) function, that gets called every frame.
+    float dt is the time since the last frame in seconds.
+
+    Attention:
+    Classes derived from a Tickable that want to have a tick(dt) function on their part, MUST call the
+    parent::tick(dt) function explicitly in their implementation of tick(dt) because it's a virtual function.
+*/
+
+#ifndef _Tickable_H__
+#define _Tickable_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "core/OrxonoxClass.h"
+#include "core/Super.h"
+
+namespace orxonox
+{
+    //! The Tickable interface provides a tick(dt) function, that gets called every frame.
+    class _OrxonoxExport Tickable : virtual public OrxonoxClass
+    {
+        public:
+            /**
+                @brief Gets called every frame.
+                @param dt The time since the last frame in seconds
+            */
+            virtual void tick(float dt) = 0;
+
+        protected:
+            Tickable();
+    };
+
+    SUPER_FUNCTION(1, Tickable, tick, true);
+}
+
+#endif /* _Tickable_H__ */

Deleted: trunk/src/orxonox/interfaces/TimeFactorListener.h
===================================================================
--- branches/pch/src/orxonox/interfaces/TimeFactorListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/TimeFactorListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,55 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _TimeFactorListener_H__
-#define _TimeFactorListener_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport TimeFactorListener : virtual public OrxonoxClass
-    {
-        friend class GSRoot;
-
-        public:
-            TimeFactorListener();
-            virtual ~TimeFactorListener() {}
-
-        protected:
-            virtual void changedTimeFactor(float factor_new, float factor_old) {}
-            inline float getTimeFactor() const
-                { return TimeFactorListener::timefactor_s; }
-
-        private:
-            static float timefactor_s;
-    };
-}
-
-#endif /* _TimeFactorListener_H__ */

Copied: trunk/src/orxonox/interfaces/TimeFactorListener.h (from rev 3195, branches/pch/src/orxonox/interfaces/TimeFactorListener.h)
===================================================================
--- trunk/src/orxonox/interfaces/TimeFactorListener.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/TimeFactorListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,55 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _TimeFactorListener_H__
+#define _TimeFactorListener_H__
+
+#include "OrxonoxPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport TimeFactorListener : virtual public OrxonoxClass
+    {
+        friend class GSRoot;
+
+        public:
+            TimeFactorListener();
+            virtual ~TimeFactorListener() {}
+
+        protected:
+            virtual void changedTimeFactor(float factor_new, float factor_old) {}
+            inline float getTimeFactor() const
+                { return TimeFactorListener::timefactor_s; }
+
+        private:
+            static float timefactor_s;
+    };
+}
+
+#endif /* _TimeFactorListener_H__ */

Deleted: trunk/src/orxonox/interfaces/WindowEventListener.h
===================================================================
--- branches/pch/src/orxonox/interfaces/WindowEventListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/interfaces/WindowEventListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,57 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _WindowEventListener_H__
-#define _WindowEventListener_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    /**
-        @brief Interface for receiving window events.
-    */
-    class _OrxonoxExport WindowEventListener : virtual public OrxonoxClass
-    {
-        public:
-            WindowEventListener();
-            virtual ~WindowEventListener() { }
-
-            /** Window has moved position */
-            virtual void windowMoved() { }
-
-            /** Window has resized */
-            virtual void windowResized(unsigned int newWidth, unsigned int newHeight) { }
-
-            /** Window has lost/gained focus */
-            virtual void windowFocusChanged() { }
-    };
-}
-
-#endif /* _WindowEventListener_H__ */

Copied: trunk/src/orxonox/interfaces/WindowEventListener.h (from rev 3195, branches/pch/src/orxonox/interfaces/WindowEventListener.h)
===================================================================
--- trunk/src/orxonox/interfaces/WindowEventListener.h	                        (rev 0)
+++ trunk/src/orxonox/interfaces/WindowEventListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,57 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _WindowEventListener_H__
+#define _WindowEventListener_H__
+
+#include "OrxonoxPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    /**
+        @brief Interface for receiving window events.
+    */
+    class _OrxonoxExport WindowEventListener : virtual public OrxonoxClass
+    {
+        public:
+            WindowEventListener();
+            virtual ~WindowEventListener() { }
+
+            /** Window has moved position */
+            virtual void windowMoved() { }
+
+            /** Window has resized */
+            virtual void windowResized(unsigned int newWidth, unsigned int newHeight) { }
+
+            /** Window has lost/gained focus */
+            virtual void windowFocusChanged() { }
+    };
+}
+
+#endif /* _WindowEventListener_H__ */

Modified: trunk/src/orxonox/objects/CMakeLists.txt
===================================================================
--- trunk/src/orxonox/objects/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -2,14 +2,9 @@
   EventListener.cc
   EventDispatcher.cc
   EventTarget.cc
-  GametypeMessageListener.cc
   GlobalShader.cc
   Level.cc
   Radar.cc
-  RadarListener.cc
-  RadarViewable.cc
-  Teamcolourable.cc
-  Tickable.cc
   Scene.cc
   Script.cc
 )

Modified: trunk/src/orxonox/objects/EventDispatcher.cc
===================================================================
--- trunk/src/orxonox/objects/EventDispatcher.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/EventDispatcher.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,7 +31,6 @@
 #include "core/CoreIncludes.h"
 #include "core/EventIncludes.h"
 #include "core/XMLPort.h"
-#include "core/EventIncludes.h"
 #include "EventTarget.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/EventDispatcher.h
===================================================================
--- trunk/src/orxonox/objects/EventDispatcher.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/EventDispatcher.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,8 @@
 #define _EventDispatcher_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <list>
 #include "core/BaseObject.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/EventListener.cc
===================================================================
--- trunk/src/orxonox/objects/EventListener.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/EventListener.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,7 +29,6 @@
 #include "EventListener.h"
 
 #include "core/CoreIncludes.h"
-#include "core/EventIncludes.h"
 #include "core/XMLPort.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/EventListener.h
===================================================================
--- trunk/src/orxonox/objects/EventListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/EventListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,8 @@
 #define _EventListener_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <string>
 #include "core/BaseObject.h"
 #include "core/XMLNameListener.h"
 

Modified: trunk/src/orxonox/objects/EventTarget.cc
===================================================================
--- trunk/src/orxonox/objects/EventTarget.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/EventTarget.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,9 +27,7 @@
  */
 
 #include "EventTarget.h"
-
 #include "core/CoreIncludes.h"
-#include "core/EventIncludes.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/EventTarget.h
===================================================================
--- trunk/src/orxonox/objects/EventTarget.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/EventTarget.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,7 @@
 #define _EventTarget_H__
 
 #include "OrxonoxPrereqs.h"
+
 #include "core/BaseObject.h"
 #include "core/XMLNameListener.h"
 

Deleted: trunk/src/orxonox/objects/GametypeMessageListener.cc
===================================================================
--- trunk/src/orxonox/objects/GametypeMessageListener.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/GametypeMessageListener.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,41 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "GametypeMessageListener.h"
-
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    GametypeMessageListener::GametypeMessageListener()
-    {
-        RegisterRootObject(GametypeMessageListener);
-    }
-}
-
-

Deleted: trunk/src/orxonox/objects/GametypeMessageListener.h
===================================================================
--- trunk/src/orxonox/objects/GametypeMessageListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/GametypeMessageListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,50 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _GametypeMessageListener_H__
-#define _GametypeMessageListener_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport GametypeMessageListener : virtual public OrxonoxClass
-    {
-        public:
-            GametypeMessageListener();
-            virtual ~GametypeMessageListener() {}
-
-            virtual void announcemessage(const GametypeInfo* gtinfo, const std::string& message) {}
-            virtual void killmessage(const GametypeInfo* gtinfo, const std::string& message) {}
-            virtual void deathmessage(const GametypeInfo* gtinfo, const std::string& message) {}
-    };
-}
-
-#endif /* _GametypeMessageListener_H__ */

Modified: trunk/src/orxonox/objects/GlobalShader.cc
===================================================================
--- trunk/src/orxonox/objects/GlobalShader.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/GlobalShader.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,10 +28,10 @@
 
 #include "GlobalShader.h"
 
+#include "util/Exception.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/Scene.h"
-#include "util/Exception.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/Level.cc
===================================================================
--- trunk/src/orxonox/objects/Level.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Level.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,21 +28,20 @@
 
 #include "Level.h"
 
+#include "util/Math.h"
+#include "core/Core.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 #include "core/Loader.h"
-#include "core/XMLFile.h"
 #include "core/Template.h"
-#include "core/Core.h"
+#include "core/XMLFile.h"
+#include "core/XMLPort.h"
 
-#include "LevelManager.h"
 #include "objects/infos/PlayerInfo.h"
 #include "objects/gametypes/Gametype.h"
 #include "overlays/OverlayGroup.h"
 #include "sound/SoundBase.h"
+#include "LevelManager.h"
 
-#include "util/Math.h"
-
 namespace orxonox
 {
     CreateFactory(Level);

Modified: trunk/src/orxonox/objects/Level.h
===================================================================
--- trunk/src/orxonox/objects/Level.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Level.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,10 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <list>
+#include <string>
+#include "core/BaseObject.h"
 #include "network/synchronisable/Synchronisable.h"
-#include "core/BaseObject.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/Radar.cc
===================================================================
--- trunk/src/orxonox/objects/Radar.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Radar.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,17 +27,18 @@
  */
 
 /**
-    @file
-    @brief
+ at file
+ at brief
 */
 
 #include "Radar.h"
-#include <cfloat>
+
 #include <cassert>
-#include "core/CoreIncludes.h"
+
+//#include "util/Math.h"
 #include "core/ConsoleCommand.h"
-#include "core/Iterator.h"
-#include "RadarListener.h"
+#include "core/ObjectList.h"
+#include "interfaces/RadarListener.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/Radar.h
===================================================================
--- trunk/src/orxonox/objects/Radar.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Radar.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,8 +27,8 @@
  */
 
 /**
-    @file
-    @brief
+ at file
+ at brief
 */
 
 #ifndef _Radar_H__
@@ -38,11 +38,11 @@
 
 #include <map>
 #include <string>
-#include "core/Iterator.h"
-#include "core/OrxonoxClass.h"
-#include "objects/Tickable.h"
-#include "RadarViewable.h"
 
+#include "core/ObjectListIterator.h"
+#include "interfaces/RadarViewable.h"
+#include "interfaces/Tickable.h"
+
 namespace orxonox
 {
     /**

Deleted: trunk/src/orxonox/objects/RadarListener.cc
===================================================================
--- trunk/src/orxonox/objects/RadarListener.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/RadarListener.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,38 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "RadarListener.h"
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    RadarListener::RadarListener()
-    {
-        RegisterRootObject(RadarListener);
-    }
-}

Deleted: trunk/src/orxonox/objects/RadarListener.h
===================================================================
--- trunk/src/orxonox/objects/RadarListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/RadarListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,49 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _RadarListener_H__
-#define _RadarListener_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport RadarListener : virtual public OrxonoxClass
-    {
-    public:
-        RadarListener();
-        virtual ~RadarListener() { }
-
-        virtual void displayObject(RadarViewable* viewable, bool bIsMarked) = 0;
-        virtual float getRadarSensitivity() const = 0;
-        virtual void radarTick(float dt) = 0;
-    };
-}
-
-#endif /* _RadarListener_H__ */

Deleted: trunk/src/orxonox/objects/RadarViewable.cc
===================================================================
--- trunk/src/orxonox/objects/RadarViewable.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/RadarViewable.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,159 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "RadarViewable.h"
-
-#include "util/Debug.h"
-#include "util/Exception.h"
-#include "core/CoreIncludes.h"
-#include "objects/worldentities/WorldEntity.h"
-#include "objects/Radar.h"
-#include "util/String.h"
-#include <OgreManualObject.h>
-#include "overlays/map/Map.h"
-#include "orxonox/tools/DynamicLines.h"
-
-namespace orxonox
-{
-    /**
-        @brief Constructor.
-    */
-    RadarViewable::RadarViewable()
-        : MapNode_(NULL)
-        , MapEntity_(NULL)
-        , line_(NULL)
-        , LineNode_(NULL)
-        , radarObjectCamouflage_(0.0f)
-        , radarObjectShape_(Dot)
-        , radarObjectDescription_("staticObject")
-    {
-        RegisterRootObject(RadarViewable);
-
-        this->bVisibility_ = true;
-        this->isHumanShip_ = false;
-
-        this->uniqueId_=getUniqueNumberString();
-/*
-        if(Map::getSingletonPtr() && Map::getSingletonPtr()->getMapSceneManagerPtr())
-        {
-            this->addEntity();
-        }
-
-        */
-    }
-
-
-    RadarViewable::~RadarViewable()
-    {
-        if (this->isHumanShip_ && MapNode_)
-            MapNode_->removeAllChildren();
-
-        if (MapNode_)
-            delete MapNode_;
-
-        if (MapEntity_)
-            delete MapEntity_;
-
-        if (line_)
-            delete line_;
-
-        if (LineNode_)
-            delete LineNode_;
-    }
-
-    void RadarViewable::addMapEntity()
-    { //TODO Check shape and add accordantly
-        if( this->MapNode_ && !this->MapEntity_ && Map::getSingletonPtr() && Map::getSingletonPtr()->getMapSceneManagerPtr() )
-        {
-            COUT(0) << "Adding " << this->uniqueId_ << " to Map.\n";
-            this->MapEntity_ = Map::getSingletonPtr()->getMapSceneManagerPtr()->createEntity( this->uniqueId_, "drone.mesh");
-            /*this->line_ =  Map::getSingletonPtr()->getMapSceneManagerPtr()->createManualObject(this->uniqueId_ + "_l");
-            this->line_->begin("Map/line_", Ogre::RenderOperation::OT_LINE_STRIP);
-            //line_->position(0, -it->getRVWorldPosition().y, 0);
-            //this->line_->position(0, -20, 0);
-            this->line_->position(0, 0, -10); //Front Arrow
-            this->line_->position(0, 0, 0);
-
-            this->line_->end(); */
-            this->line_ = new DynamicLines(Ogre::RenderOperation::OT_LINE_LIST);
-            this->line_->addPoint( Vector3(0,0,0) );
-            this->line_->addPoint( Vector3(0,0,0) );
-
-            this->MapNode_->attachObject( this->MapEntity_ );
-
-            this->LineNode_ = this->MapNode_->createChildSceneNode();
-            this->LineNode_->attachObject( this->line_ );
-        }
-        else
-        {
-            COUT(0) << "Unable to load " << this->uniqueId_ << " to Map.\n";
-        }
-    }
-
-    void RadarViewable::updateMapPosition()
-    {
-        if( this->MapNode_ )
-        {
-            this->MapNode_->setPosition( this->getRVWorldPosition() );
-            this->MapNode_->translate( this->getRVOrientedVelocity(), (Ogre::Node::TransformSpace)3 );
-            this->MapNode_->setOrientation( this->getWorldEntity()->getOrientation() );
-//Vector3 v = this->getRVWorldPosition();
-            //this->line_->setPoint(1, Vector3(0,v.y,0) );
-            this->line_->setPoint(1, Vector3( 0, (int) -Map::getSingletonPtr()->movablePlane_->getDistance( this->getRVWorldPosition() ) ,0 ));
-            this->line_->update();
-            if( Map::getSingletonPtr()->playerShipNode_ )
-                this->LineNode_->setDirection( Map::getSingletonPtr()->playerShipNode_->getLocalAxes().GetColumn(1) ,Ogre::Node::TS_WORLD,Vector3::UNIT_Y);
-        }
-    }
-
-    void RadarViewable::setRadarObjectDescription(const std::string& str)
-    {
-        Radar* radar = Radar::getInstancePtr();
-        if (radar)
-            this->radarObjectShape_ = radar->addObjectDescription(str);
-        else
-        {
-            CCOUT(2) << "Attempting to access the radar, but the radar is non existent." << std::endl;
-        }
-        this->radarObjectDescription_ = str;
-    }
-
-    const Vector3& RadarViewable::getRVWorldPosition() const
-    {
-        const WorldEntity* object = this->getWorldEntity();
-        validate(object);
-        return object->getWorldPosition();
-    }
-
-    Vector3 RadarViewable::getRVOrientedVelocity() const
-    {
-        const WorldEntity* object = this->getWorldEntity();
-        validate(object);
-        return object->getWorldOrientation() * object->getVelocity();
-    }
-}

Deleted: trunk/src/orxonox/objects/RadarViewable.h
===================================================================
--- trunk/src/orxonox/objects/RadarViewable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/RadarViewable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,142 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _RadarViewable_H__
-#define _RadarViewable_H__
-
-#include "OrxonoxPrereqs.h"
-#include <string>
-#include <cassert>
-#include "util/Math.h"
-#include "util/Debug.h"
-#include "core/OrxonoxClass.h"
-
-#include <string>
-#include <OgreSceneNode.h>
-#include <OgreEntity.h>
-#include <OgreManualObject.h>
-#include "orxonox/tools/DynamicLines.h"
-
-namespace orxonox
-{
-    /**
-    @brief Interface for receiving window events.
-    */
-    class _OrxonoxExport RadarViewable : virtual public OrxonoxClass
-    {
-    public:
-        enum Shape
-        {
-            Square,
-            Dot,
-            Triangle
-        };
-
-
-    public:
-        RadarViewable();
-        virtual ~RadarViewable();
-
-        inline void setRadarObjectCamouflage(float camouflage)
-            { this->radarObjectCamouflage_ = camouflage; }
-        inline float getRadarObjectCamouflage() const
-            { return this->radarObjectCamouflage_; }
-
-        inline void setRadarObjectColour(const ColourValue& colour)
-            { this->radarObjectColour_ = colour; }
-        inline const ColourValue& getRadarObjectColour() const
-            { return this->radarObjectColour_; }
-
-        void setRadarObjectDescription(const std::string& str);
-        inline const std::string& getRadarObjectDescription() const
-            { return this->radarObjectDescription_; }
-
-        inline void setRadarVisibility(bool b)
-            { this->bVisibility_ = b; }
-        inline bool getRadarVisibility() const
-            { return this->bVisibility_; }
-
-        virtual const WorldEntity* getWorldEntity() const = 0;
-
-        const Vector3& getRVWorldPosition() const;
-        Vector3 getRVOrientedVelocity() const;
-
-        inline void setRadarObjectShape(Shape shape)
-            { this->radarObjectShape_ = shape; }
-        inline Shape getRadarObjectShape() const
-            { return this->radarObjectShape_; }
-
-/*
-        inline void setMapNode(Ogre::SceneNode * node)
-            { this->MapNode_ = node; }
-        inline Ogre::SceneNode * getMapNode() const
-            { return this->MapNode_; }
-        inline void setMapEntity(Ogre::Entity * ent)
-            { this->MapEntity_ = ent; }
-        inline Ogre::Entity * getMapEntity() const
-            { return this->MapEntity_; }
-*/
-        //Used for Map
-        Ogre::SceneNode * MapNode_;
-        Ogre::Entity * MapEntity_;
-        DynamicLines* line_;
-        Ogre::SceneNode * LineNode_;
-        void addMapEntity();
-        void updateMapPosition();
-        bool isHumanShip_;
-        inline std::string getUniqueId()
-        {
-            return this->uniqueId_;
-        }
-        //friend class Map;
-
-    private:
-        void validate(const WorldEntity* object) const
-        {
-            if (!object)
-            {
-                COUT(1) << "Assertation: Every RadarViewable has to be assigned a WorldEntity pointer!" << std::endl;
-                assert(0);
-            }
-        }
-
-        bool bVisibility_;
-        //Map
-        std::string uniqueId_;
-
-
-        //Radar
-        float radarObjectCamouflage_;
-        Shape radarObjectShape_;
-        std::string radarObjectDescription_;
-        ColourValue radarObjectColour_;
-
-    };
-}
-
-#endif /* _RadarViewable_H__ */

Modified: trunk/src/orxonox/objects/Scene.cc
===================================================================
--- trunk/src/orxonox/objects/Scene.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Scene.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,13 +30,14 @@
 #include "Scene.h"
 
 #include <OgreRoot.h>
+#include <OgreSceneManager.h>
 #include <OgreSceneManagerEnumerator.h>
 #include <OgreSceneNode.h>
 
-#include "BulletCollision/BroadphaseCollision/btAxisSweep3.h"
-#include "BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h"
-#include "BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h"
-#include "BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h"
+#include <BulletCollision/BroadphaseCollision/btAxisSweep3.h>
+#include <BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h>
+#include <BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h>
+#include <BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h>
 
 #include "core/CoreIncludes.h"
 #include "core/GameMode.h"
@@ -57,16 +58,9 @@
 
         if (GameMode::showsGraphics())
         {
-            if (Ogre::Root::getSingletonPtr())
-            {
-                this->sceneManager_ = Ogre::Root::getSingleton().createSceneManager(Ogre::ST_GENERIC);
-                this->rootSceneNode_ = this->sceneManager_->getRootSceneNode();
-            }
-            else
-            {
-                this->sceneManager_ = 0;
-                this->rootSceneNode_ = 0;
-            }
+            assert(Ogre::Root::getSingletonPtr());
+            this->sceneManager_ = Ogre::Root::getSingleton().createSceneManager(Ogre::ST_GENERIC);
+            this->rootSceneNode_ = this->sceneManager_->getRootSceneNode();
         }
         else
         {
@@ -93,14 +87,10 @@
     {
         if (this->isInitialized())
         {
-            if (Ogre::Root::getSingletonPtr())
-            {
+            if (GameMode::showsGraphics())
                 Ogre::Root::getSingleton().destroySceneManager(this->sceneManager_);
-            }
-            else if (!GameMode::showsGraphics())
-            {
+            else
                 delete this->sceneManager_;
-            }
 
             this->setPhysicalWorld(false);
         }
@@ -111,7 +101,7 @@
         SUPER(Scene, XMLPort, xmlelement, mode);
 
         XMLPortParam(Scene, "skybox", setSkybox, getSkybox, xmlelement, mode);
-        XMLPortParam(Scene, "ambientlight", setAmbientLight, getAmbientLight, xmlelement, mode).defaultValues(ColourValue(0.2, 0.2, 0.2, 1));
+        XMLPortParam(Scene, "ambientlight", setAmbientLight, getAmbientLight, xmlelement, mode).defaultValues(ColourValue(0.2f, 0.2f, 0.2f, 1.0f));
         XMLPortParam(Scene, "shadow", setShadow, getShadow, xmlelement, mode).defaultValues(true);
 
         XMLPortParam(Scene, "gravity", setGravity, getGravity, xmlelement, mode);
@@ -138,7 +128,7 @@
         if (range.length() < 10.0f)
         {
             CCOUT(2) << "Warning: Setting the negative world range to a very small value: "
-                     << omni_cast<std::string>(range) << std::endl;
+                     << multi_cast<std::string>(range) << std::endl;
         }
         if (this->hasPhysics())
         {
@@ -157,7 +147,7 @@
         if (range.length() < 10.0f)
         {
             CCOUT(2) << "Warning: Setting the positive world range to a very small value: "
-                     << omni_cast<std::string>(range) << std::endl;
+                     << multi_cast<std::string>(range) << std::endl;
         }
         if (this->hasPhysics())
         {
@@ -175,7 +165,7 @@
     {
         this->gravity_ = gravity;
         if (this->hasPhysics())
-            this->physicalWorld_->setGravity(omni_cast<btVector3>(this->gravity_));
+            this->physicalWorld_->setGravity(multi_cast<btVector3>(this->gravity_));
     }
 
     void Scene::setPhysicalWorld(bool wantPhysics)
@@ -186,13 +176,13 @@
             // Note: These are all little known default classes and values.
             //       It would require further investigation to properly dertermine the right choices.
             this->broadphase_      = new bt32BitAxisSweep3(
-                omni_cast<btVector3>(this->negativeWorldRange_), omni_cast<btVector3>(this->positiveWorldRange_));
+                multi_cast<btVector3>(this->negativeWorldRange_), multi_cast<btVector3>(this->positiveWorldRange_));
             this->collisionConfig_ = new btDefaultCollisionConfiguration();
             this->dispatcher_      = new btCollisionDispatcher(this->collisionConfig_);
             this->solver_          = new btSequentialImpulseConstraintSolver();
 
             this->physicalWorld_   = new btDiscreteDynamicsWorld(this->dispatcher_, this->broadphase_, this->solver_, this->collisionConfig_);
-            this->physicalWorld_->setGravity(omni_cast<btVector3>(this->gravity_));
+            this->physicalWorld_->setGravity(multi_cast<btVector3>(this->gravity_));
 
             // also set the collision callback variable.
             // Note: This is a global variable which we assign a static function.

Modified: trunk/src/orxonox/objects/Scene.h
===================================================================
--- trunk/src/orxonox/objects/Scene.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Scene.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,10 +32,15 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <list>
+#include <set>
+#include <string>
+
+#include "util/Math.h"
+#include "util/OgreForwardRefs.h"
+#include "core/BaseObject.h"
 #include "network/synchronisable/Synchronisable.h"
-#include "core/BaseObject.h"
-#include "util/Math.h"
-#include "objects/Tickable.h"
+#include "interfaces/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/Script.cc
===================================================================
--- trunk/src/orxonox/objects/Script.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Script.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,9 +28,8 @@
 
 #include "Script.h"
 
-#include "util/Debug.h"
+#include <tinyxml/ticpp.h>
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 #include "core/LuaBind.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/Script.h
===================================================================
--- trunk/src/orxonox/objects/Script.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Script.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "core/BaseObject.h"
 
 namespace orxonox

Deleted: trunk/src/orxonox/objects/Teamcolourable.cc
===================================================================
--- trunk/src/orxonox/objects/Teamcolourable.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Teamcolourable.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,38 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "Teamcolourable.h"
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    Teamcolourable::Teamcolourable()
-    {
-        RegisterRootObject(Teamcolourable);
-    }
-}

Deleted: trunk/src/orxonox/objects/Teamcolourable.h
===================================================================
--- trunk/src/orxonox/objects/Teamcolourable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Teamcolourable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,49 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Teamcolourable_H__
-#define _Teamcolourable_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "util/Math.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport Teamcolourable : virtual public OrxonoxClass
-    {
-        public:
-            virtual void setTeamColour(const ColourValue& colour) = 0;
-
-        protected:
-            Teamcolourable();
-    };
-}
-
-#endif /* _Teamcolourable_H__ */

Modified: trunk/src/orxonox/objects/Test.h
===================================================================
--- trunk/src/orxonox/objects/Test.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Test.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,7 +32,7 @@
 #include "OrxonoxPrereqs.h"
 #include "core/BaseObject.h"
 #include "network/synchronisable/Synchronisable.h"
-#include "Tickable.h"
+#include "interfaces/Tickable.h"
 
 
 typedef int TYPE;

Deleted: trunk/src/orxonox/objects/Tickable.cc
===================================================================
--- trunk/src/orxonox/objects/Tickable.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Tickable.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,42 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "Tickable.h"
-#include "core/CoreIncludes.h"
-#include "core/ConsoleCommand.h"
-
-namespace orxonox
-{
-    /**
-        @brief Constructor: Registers the object in the Tickable-list
-    */
-    Tickable::Tickable()
-    {
-        RegisterRootObject(Tickable);
-    }
-}

Deleted: trunk/src/orxonox/objects/Tickable.h
===================================================================
--- trunk/src/orxonox/objects/Tickable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/Tickable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,68 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/*!
-    @file
-    @brief Declaration of the Tickable interface.
-
-    The Tickable interface provides a tick(dt) function, that gets called every frame.
-    float dt is the time since the last frame in seconds.
-
-    Attention:
-    Classes derived from a Tickable that want to have a tick(dt) function on their part, MUST call the
-    parent::tick(dt) function explicitly in their implementation of tick(dt) because it's a virtual function.
-*/
-
-#ifndef _Tickable_H__
-#define _Tickable_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "core/OrxonoxClass.h"
-#include "core/Super.h"
-
-namespace orxonox
-{
-    //! The Tickable interface provides a tick(dt) function, that gets called every frame.
-    class _OrxonoxExport Tickable : virtual public OrxonoxClass
-    {
-        public:
-            /**
-                @brief Gets called every frame.
-                @param dt The time since the last frame in seconds
-            */
-            virtual void tick(float dt) = 0;
-
-        protected:
-            Tickable();
-    };
-
-    SUPER_FUNCTION(1, Tickable, tick, true);
-}
-
-#endif /* _Tickable_H__ */

Modified: trunk/src/orxonox/objects/collisionshapes/BoxCollisionShape.cc
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/BoxCollisionShape.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/BoxCollisionShape.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,7 +28,7 @@
 
 #include "BoxCollisionShape.h"
 
-#include "BulletCollision/CollisionShapes/btBoxShape.h"
+#include <BulletCollision/CollisionShapes/btBoxShape.h>
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
@@ -71,6 +71,6 @@
 
     btCollisionShape* BoxCollisionShape::createNewShape() const
     {
-        return new btBoxShape(omni_cast<btVector3>(this->halfExtents_));
+        return new btBoxShape(multi_cast<btVector3>(this->halfExtents_));
     }
 }

Modified: trunk/src/orxonox/objects/collisionshapes/BoxCollisionShape.h
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/BoxCollisionShape.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/BoxCollisionShape.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
 #include "CollisionShape.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/collisionshapes/CollisionShape.cc
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/CollisionShape.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/CollisionShape.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,13 +28,10 @@
 
 #include "CollisionShape.h"
 
-#include "BulletCollision/CollisionShapes/btCollisionShape.h"
+#include <BulletCollision/CollisionShapes/btCollisionShape.h>
 
-#include "util/Exception.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "tools/BulletConversions.h"
-
 #include "objects/worldentities/WorldEntity.h"
 #include "CompoundCollisionShape.h"
 #include "WorldEntityCollisionShape.h"
@@ -128,8 +125,8 @@
 
     bool CollisionShape::hasTransform() const
     {
-        return (!this->position_.positionEquals(Vector3(0, 0, 0), 0.001) ||
-                !this->orientation_.equals(Quaternion(1,0,0,0), Degree(0.1)));
+        return (!this->position_.positionEquals(Vector3(0, 0, 0), 0.001f) ||
+                !this->orientation_.equals(Quaternion(1,0,0,0), Degree(0.1f)));
     }
 
     void CollisionShape::setScale3D(const Vector3& scale)

Modified: trunk/src/orxonox/objects/collisionshapes/CompoundCollisionShape.cc
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/CompoundCollisionShape.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/CompoundCollisionShape.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,9 +28,8 @@
 
 #include "CompoundCollisionShape.h"
 
-#include "BulletCollision/CollisionShapes/btCompoundShape.h"
+#include <BulletCollision/CollisionShapes/btCompoundShape.h>
 
-#include "util/Exception.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "tools/BulletConversions.h"
@@ -88,7 +87,7 @@
         if (shape->getCollisionShape())
         {
             // Only actually attach if we didn't pick a CompoundCollisionShape with no content
-            btTransform transf(omni_cast<btQuaternion>(shape->getOrientation()), omni_cast<btVector3>(shape->getPosition()));
+            btTransform transf(multi_cast<btQuaternion>(shape->getOrientation()), multi_cast<btVector3>(shape->getPosition()));
             this->compoundShape_->addChildShape(transf, shape->getCollisionShape());
 
             this->updatePublicShape();
@@ -133,7 +132,7 @@
         if (shape->getCollisionShape())
         {
             // Only actually attach if we didn't pick a CompoundCollisionShape with no content
-            btTransform transf(omni_cast<btQuaternion>(shape->getOrientation()), omni_cast<btVector3>(shape->getPosition()));
+            btTransform transf(multi_cast<btQuaternion>(shape->getOrientation()), multi_cast<btVector3>(shape->getPosition()));
             this->compoundShape_->addChildShape(transf, shape->getCollisionShape());
             it->second = shape->getCollisionShape();
         }

Modified: trunk/src/orxonox/objects/collisionshapes/CompoundCollisionShape.h
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/CompoundCollisionShape.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/CompoundCollisionShape.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <vector>
 #include <cassert>
+#include <map>
 #include "CollisionShape.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/collisionshapes/ConeCollisionShape.cc
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/ConeCollisionShape.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/ConeCollisionShape.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,11 +28,10 @@
 
 #include "ConeCollisionShape.h"
 
-#include "BulletCollision/CollisionShapes/btConeShape.h"
+#include <BulletCollision/CollisionShapes/btConeShape.h>
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "tools/BulletConversions.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/collisionshapes/ConeCollisionShape.h
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/ConeCollisionShape.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/ConeCollisionShape.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _ConeCollisionShape_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "CollisionShape.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/collisionshapes/PlaneCollisionShape.cc
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/PlaneCollisionShape.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/PlaneCollisionShape.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,7 +28,7 @@
 
 #include "PlaneCollisionShape.h"
 
-#include "BulletCollision/CollisionShapes/btStaticPlaneShape.h"
+#include <BulletCollision/CollisionShapes/btStaticPlaneShape.h>
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
@@ -71,6 +71,6 @@
 
     btCollisionShape* PlaneCollisionShape::createNewShape() const
     {
-        return new btStaticPlaneShape(omni_cast<btVector3>(this->normal_), this->offset_);
+        return new btStaticPlaneShape(multi_cast<btVector3>(this->normal_), this->offset_);
     }
 }

Modified: trunk/src/orxonox/objects/collisionshapes/PlaneCollisionShape.h
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/PlaneCollisionShape.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/PlaneCollisionShape.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
 #include "CollisionShape.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/collisionshapes/SphereCollisionShape.cc
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/SphereCollisionShape.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/SphereCollisionShape.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,11 +28,10 @@
 
 #include "SphereCollisionShape.h"
 
-#include "BulletCollision/CollisionShapes/btSphereShape.h"
+#include <BulletCollision/CollisionShapes/btSphereShape.h>
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "tools/BulletConversions.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/collisionshapes/SphereCollisionShape.h
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/SphereCollisionShape.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/SphereCollisionShape.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _SphereCollisionShape_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "CollisionShape.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/collisionshapes/WorldEntityCollisionShape.cc
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/WorldEntityCollisionShape.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/WorldEntityCollisionShape.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,9 +28,9 @@
 
 #include "WorldEntityCollisionShape.h"
 
-#include "BulletCollision/CollisionShapes/btCompoundShape.h"
+#include <BulletCollision/CollisionShapes/btCompoundShape.h>
 
-#include "util/Exception.h"
+#include "util/OrxAssert.h"
 #include "core/CoreIncludes.h"
 #include "objects/worldentities/WorldEntity.h"
 

Modified: trunk/src/orxonox/objects/collisionshapes/WorldEntityCollisionShape.h
===================================================================
--- trunk/src/orxonox/objects/collisionshapes/WorldEntityCollisionShape.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/collisionshapes/WorldEntityCollisionShape.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _WorldEntityCollisionShape_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "CompoundCollisionShape.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/controllers/AIController.cc
===================================================================
--- trunk/src/orxonox/objects/controllers/AIController.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/AIController.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,6 +28,7 @@
 
 #include "AIController.h"
 
+#include "util/Math.h"
 #include "core/CoreIncludes.h"
 #include "core/Executor.h"
 #include "objects/worldentities/ControllableEntity.h"
@@ -106,7 +107,7 @@
         if (this->bHasTargetPosition_)
             this->moveToTargetPosition();
 
-        if (this->getControllableEntity() && this->bShooting_ && this->isCloseAtTarget(1000) && this->isLookingAtTarget(Ogre::Math::PI / 20.0))
+        if (this->getControllableEntity() && this->bShooting_ && this->isCloseAtTarget(1000) && this->isLookingAtTarget(Ogre::Math::PI / 20.0f))
             this->getControllableEntity()->fire(0);
 
         SUPER(AIController, tick, dt);

Modified: trunk/src/orxonox/objects/controllers/AIController.h
===================================================================
--- trunk/src/orxonox/objects/controllers/AIController.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/AIController.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "tools/Timer.h"
+#include "interfaces/Tickable.h"
 #include "ArtificialController.h"
-#include "objects/Tickable.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/controllers/ArtificialController.cc
===================================================================
--- trunk/src/orxonox/objects/controllers/ArtificialController.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/ArtificialController.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,10 +31,9 @@
 #include "core/CoreIncludes.h"
 #include "objects/worldentities/ControllableEntity.h"
 #include "objects/worldentities/pawns/Pawn.h"
-
+#include "objects/worldentities/pawns/TeamBaseMatchBase.h"
 #include "objects/gametypes/TeamDeathmatch.h"
 #include "objects/controllers/WaypointPatrolController.h"
-#include "objects/worldentities/pawns/TeamBaseMatchBase.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/controllers/ArtificialController.h
===================================================================
--- trunk/src/orxonox/objects/controllers/ArtificialController.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/ArtificialController.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
+#include "interfaces/PawnListener.h"
 #include "Controller.h"
-#include "objects/worldentities/pawns/Pawn.h"
-#include "util/Math.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/controllers/Controller.cc
===================================================================
--- trunk/src/orxonox/objects/controllers/Controller.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/Controller.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,9 +27,7 @@
  */
 
 #include "Controller.h"
-
 #include "core/CoreIncludes.h"
-#include "overlays/OverlayGroup.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/controllers/Controller.h
===================================================================
--- trunk/src/orxonox/objects/controllers/Controller.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/Controller.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _Controller_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "core/BaseObject.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/controllers/HumanController.cc
===================================================================
--- trunk/src/orxonox/objects/controllers/HumanController.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/HumanController.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -191,4 +191,12 @@
         if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
             HumanController::localController_s->controllableEntity_->dropItems();
     }
+
+    Pawn* HumanController::getLocalControllerEntityAsPawn()
+    {
+        if (HumanController::localController_s)
+            return dynamic_cast<Pawn*>(HumanController::localController_s->getControllableEntity());
+        else
+            return NULL;
+    }
 }

Modified: trunk/src/orxonox/objects/controllers/HumanController.h
===================================================================
--- trunk/src/orxonox/objects/controllers/HumanController.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/HumanController.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,10 +30,7 @@
 #define _HumanController_H__
 
 #include "OrxonoxPrereqs.h"
-
-#include "util/Math.h"
 #include "Controller.h"
-#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {
@@ -68,15 +65,7 @@
 
             static inline HumanController* getLocalControllerSingleton()
                 { return HumanController::localController_s; }
-            static inline Pawn* getLocalControllerEntityAsPawn()
-            {
-                if (HumanController::localController_s) {
-                    return dynamic_cast<Pawn*>(HumanController::localController_s->getControllableEntity());
-                } else {
-                    return NULL;
-                }
-            }
-
+            static Pawn* getLocalControllerEntityAsPawn();
             //friend class, for mouselook
             friend class Map;
 

Modified: trunk/src/orxonox/objects/controllers/PongAI.cc
===================================================================
--- trunk/src/orxonox/objects/controllers/PongAI.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/PongAI.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,15 +30,15 @@
 
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
+#include "tools/Timer.h"
 #include "objects/worldentities/ControllableEntity.h"
 #include "objects/worldentities/PongBall.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {
     CreateUnloadableFactory(PongAI);
 
-    const static float MAX_REACTION_TIME = 0.4;
+    const static float MAX_REACTION_TIME = 0.4f;
 
     PongAI::PongAI(BaseObject* creator) : Controller(creator)
     {
@@ -48,8 +48,8 @@
         this->ballDirection_ = Vector2::ZERO;
         this->ballEndPosition_ = 0;
         this->randomOffset_ = 0;
-        this->relHysteresisOffset_ = 0.02;
-        this->strength_ = 0.5;
+        this->relHysteresisOffset_ = 0.02f;
+        this->strength_ = 0.5f;
         this->movement_ = 0;
         this->oldMove_ = 0;
         this->bOscillationAvoidanceActive_ = false;
@@ -170,7 +170,7 @@
                                           // exp < 1 -> position is more likely a large number
 
         // The position shouln't be larger than 0.5 (50% of the bat-length from the middle is the end)
-        position *= 0.48;
+        position *= 0.48f;
 
         // Both sides are equally probable
         position *= rndsgn();
@@ -189,7 +189,7 @@
         this->ballEndPosition_ = position.z + velocity.z / velocity.x * (-position.x + dimension.x / 2 * sgn(velocity.x));
 
         // Calculate bounces
-        for (float limit = 0.35; limit < this->strength_ || this->strength_ > 0.99; limit += 0.4)
+        for (float limit = 0.35f; limit < this->strength_ || this->strength_ > 0.99f; limit += 0.4f)
         {
             // Calculate a random prediction error, based on the vertical speed of the ball and the strength of the AI
             float randomError = rnd(-1, 1) * dimension.y * (velocity.z / velocity.x / PongBall::MAX_REL_Z_VELOCITY) * (1 - this->strength_);

Modified: trunk/src/orxonox/objects/controllers/PongAI.h
===================================================================
--- trunk/src/orxonox/objects/controllers/PongAI.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/PongAI.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,10 +32,9 @@
 #include "OrxonoxPrereqs.h"
 
 #include <list>
-
-#include "Controller.h"
-#include "objects/Tickable.h"
 #include "util/Math.h"
+#include "interfaces/Tickable.h"
+#include "Controller.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/controllers/ScriptController.cc
===================================================================
--- trunk/src/orxonox/objects/controllers/ScriptController.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/ScriptController.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,6 @@
  */
 
 #include "ScriptController.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox
@@ -38,8 +37,4 @@
     {
         RegisterObject(ScriptController);
     }
-
-    ScriptController::~ScriptController()
-    {
-    }
 }

Modified: trunk/src/orxonox/objects/controllers/ScriptController.h
===================================================================
--- trunk/src/orxonox/objects/controllers/ScriptController.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/ScriptController.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _ScriptController_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "ArtificialController.h"
 
 namespace orxonox
@@ -39,10 +38,8 @@
     {
         public:
             ScriptController(BaseObject* creator);
-            virtual ~ScriptController();
+            virtual ~ScriptController() { }
 
-        protected:
-
         private:
     };
 }

Modified: trunk/src/orxonox/objects/controllers/WaypointController.cc
===================================================================
--- trunk/src/orxonox/objects/controllers/WaypointController.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/WaypointController.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,7 @@
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "objects/worldentities/ControllableEntity.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/controllers/WaypointController.h
===================================================================
--- trunk/src/orxonox/objects/controllers/WaypointController.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/WaypointController.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,9 +32,8 @@
 #include "OrxonoxPrereqs.h"
 
 #include <vector>
-
+#include "interfaces/Tickable.h"
 #include "ArtificialController.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/controllers/WaypointPatrolController.cc
===================================================================
--- trunk/src/orxonox/objects/controllers/WaypointPatrolController.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/WaypointPatrolController.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,8 +28,10 @@
 
 #include "WaypointPatrolController.h"
 
+#include "util/Math.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/controllers/WaypointPatrolController.h
===================================================================
--- trunk/src/orxonox/objects/controllers/WaypointPatrolController.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/controllers/WaypointPatrolController.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "tools/Timer.h"
 #include "WaypointController.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/gametypes/Asteroids.cc
===================================================================
--- trunk/src/orxonox/objects/gametypes/Asteroids.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/Asteroids.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,11 +29,9 @@
 #include "Asteroids.h"
 
 #include "core/CoreIncludes.h"
-#include "objects/infos/PlayerInfo.h"
+#include "network/Host.h"
 #include "objects/worldentities/pawns/Pawn.h"
 
-#include "network/Host.h"
-
 namespace orxonox
 {
     CreateUnloadableFactory(Asteroids);

Modified: trunk/src/orxonox/objects/gametypes/Asteroids.h
===================================================================
--- trunk/src/orxonox/objects/gametypes/Asteroids.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/Asteroids.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _Asteroids_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "Gametype.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/gametypes/Deathmatch.cc
===================================================================
--- trunk/src/orxonox/objects/gametypes/Deathmatch.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/Deathmatch.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,11 +29,10 @@
 #include "Deathmatch.h"
 
 #include "core/CoreIncludes.h"
+#include "network/Host.h"
 #include "objects/infos/PlayerInfo.h"
 #include "objects/worldentities/pawns/Pawn.h"
 
-#include "network/Host.h"
-
 namespace orxonox
 {
     CreateUnloadableFactory(Deathmatch);

Modified: trunk/src/orxonox/objects/gametypes/Deathmatch.h
===================================================================
--- trunk/src/orxonox/objects/gametypes/Deathmatch.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/Deathmatch.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _Deathmatch_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "Gametype.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/gametypes/Gametype.cc
===================================================================
--- trunk/src/orxonox/objects/gametypes/Gametype.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/Gametype.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,19 +28,19 @@
 
 #include "Gametype.h"
 
-#include <cstdlib>
-#include <ctime>
-
+#include "util/Math.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
-#include "core/Template.h"
 #include "core/GameMode.h"
-#include "overlays/OverlayGroup.h"
+
 #include "objects/infos/PlayerInfo.h"
 #include "objects/infos/Bot.h"
+#include "objects/worldentities/Camera.h"
+#include "objects/worldentities/ControllableEntity.h"
+#include "objects/worldentities/SpawnPoint.h"
 #include "objects/worldentities/pawns/Spectator.h"
-#include "objects/worldentities/SpawnPoint.h"
-#include "objects/worldentities/Camera.h"
+#include "objects/worldentities/pawns/Pawn.h"
+#include "overlays/OverlayGroup.h"
 
 namespace orxonox
 {
@@ -286,7 +286,7 @@
     {
         if (this->spawnpoints_.size() > 0)
         {
-            unsigned int randomspawn = (unsigned int)rnd(this->spawnpoints_.size());
+            unsigned int randomspawn = static_cast<unsigned int>(rnd(static_cast<float>(this->spawnpoints_.size())));
             unsigned int index = 0;
             for (std::set<SpawnPoint*>::const_iterator it = this->spawnpoints_.begin(); it != this->spawnpoints_.end(); ++it)
             {

Modified: trunk/src/orxonox/objects/gametypes/Gametype.h
===================================================================
--- trunk/src/orxonox/objects/gametypes/Gametype.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/Gametype.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,11 +32,12 @@
 #include "OrxonoxPrereqs.h"
 
 #include <map>
+#include <set>
+#include <string>
 
 #include "core/BaseObject.h"
 #include "core/Identifier.h"
-#include "objects/worldentities/ControllableEntity.h"
-#include "objects/Tickable.h"
+#include "interfaces/Tickable.h"
 #include "objects/infos/GametypeInfo.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/gametypes/Pong.cc
===================================================================
--- trunk/src/orxonox/objects/gametypes/Pong.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/Pong.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,13 +29,10 @@
 #include "Pong.h"
 
 #include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
 #include "core/Executor.h"
-#include "objects/worldentities/Model.h"
 #include "objects/worldentities/PongCenterpoint.h"
 #include "objects/worldentities/PongBall.h"
 #include "objects/worldentities/PongBat.h"
-#include "objects/infos/HumanPlayer.h"
 #include "objects/infos/PongBot.h"
 #include "objects/controllers/PongAI.h"
 

Modified: trunk/src/orxonox/objects/gametypes/Pong.h
===================================================================
--- trunk/src/orxonox/objects/gametypes/Pong.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/Pong.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "tools/Timer.h"
 #include "Deathmatch.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/gametypes/TeamBaseMatch.cc
===================================================================
--- trunk/src/orxonox/objects/gametypes/TeamBaseMatch.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/TeamBaseMatch.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,8 +28,9 @@
 
 #include "TeamBaseMatch.h"
 
+#include "core/CoreIncludes.h"
+#include "core/Executor.h"
 #include "objects/worldentities/pawns/TeamBaseMatchBase.h"
-#include "core/CoreIncludes.h"
 #include "objects/infos/PlayerInfo.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/gametypes/TeamBaseMatch.h
===================================================================
--- trunk/src/orxonox/objects/gametypes/TeamBaseMatch.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/TeamBaseMatch.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,8 +32,8 @@
 #include "OrxonoxPrereqs.h"
 
 #include <set>
+#include "tools/Timer.h"
 #include "TeamDeathmatch.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc
===================================================================
--- trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,9 @@
 
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
-#include "objects/Teamcolourable.h"
+#include "interfaces/TeamColourable.h"
 #include "objects/worldentities/TeamSpawnPoint.h"
+#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {
@@ -52,10 +53,10 @@
 
         static ColourValue colours[] =
         {
-            ColourValue(1.0, 0.3, 0.3),
-            ColourValue(0.3, 0.3, 1.0),
-            ColourValue(0.3, 1.0, 0.3),
-            ColourValue(1.0, 1.0, 0.0)
+            ColourValue(1.0f, 0.3f, 0.3f),
+            ColourValue(0.3f, 0.3f, 1.0f),
+            ColourValue(0.3f, 1.0f, 0.3f),
+            ColourValue(1.0f, 1.0f, 0.0f)
         };
         static std::vector<ColourValue> defaultcolours(colours, colours + sizeof(colours) / sizeof(ColourValue));
 
@@ -137,7 +138,7 @@
 
         if (teamSpawnPoints.size() > 0)
         {
-            unsigned int randomspawn = (unsigned int)rnd(teamSpawnPoints.size());
+            unsigned int randomspawn = static_cast<unsigned int>(rnd(static_cast<float>(teamSpawnPoints.size())));
             unsigned int index = 0;
             for (std::set<SpawnPoint*>::const_iterator it = teamSpawnPoints.begin(); it != teamSpawnPoints.end(); ++it)
             {
@@ -167,9 +168,9 @@
                 std::set<WorldEntity*> pawnAttachments = pawn->getAttachedObjects();
                 for (std::set<WorldEntity*>::iterator it = pawnAttachments.begin(); it != pawnAttachments.end(); ++it)
                 {
-                    if ((*it)->isA(Class(Teamcolourable)))
+                    if ((*it)->isA(Class(TeamColourable)))
                     {
-                        Teamcolourable* tc = dynamic_cast<Teamcolourable*>(*it);
+                        TeamColourable* tc = dynamic_cast<TeamColourable*>(*it);
                         tc->setTeamColour(this->teamcolours_[it_player->second]);
                     }
                 }

Modified: trunk/src/orxonox/objects/gametypes/TeamDeathmatch.h
===================================================================
--- trunk/src/orxonox/objects/gametypes/TeamDeathmatch.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/TeamDeathmatch.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <map>
 #include <vector>
-
 #include "Deathmatch.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/gametypes/UnderAttack.cc
===================================================================
--- trunk/src/orxonox/objects/gametypes/UnderAttack.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/UnderAttack.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,11 +28,10 @@
 
 #include "UnderAttack.h"
 
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
-#include "util/Convert.h"
 #include "network/Host.h"
-
 #include "objects/worldentities/pawns/Destroyer.h"
 #include "objects/infos/PlayerInfo.h"
 

Modified: trunk/src/orxonox/objects/gametypes/UnderAttack.h
===================================================================
--- trunk/src/orxonox/objects/gametypes/UnderAttack.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/gametypes/UnderAttack.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/PawnListener.h"
 #include "TeamDeathmatch.h"
-#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/infos/Bot.cc
===================================================================
--- trunk/src/orxonox/objects/infos/Bot.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/Bot.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,12 +28,12 @@
 
 #include "Bot.h"
 
+#include "util/Math.h"
 #include "core/GameMode.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 #include "objects/gametypes/Gametype.h"
 #include "objects/controllers/AIController.h"
-#include "util/Math.h"
 
 namespace orxonox
 {
@@ -65,7 +65,7 @@
 
     void Bot::setConfigValues()
     {
-        static std::string names[] =
+        static const std::string names[] =
         {
             "Dr. Julius No",
             "Rosa Klebb",

Modified: trunk/src/orxonox/objects/infos/Bot.h
===================================================================
--- trunk/src/orxonox/objects/infos/Bot.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/Bot.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,8 @@
 #define _Bot_H__
 
 #include "OrxonoxPrereqs.h"
+
 #include <vector>
-
 #include "PlayerInfo.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/infos/GametypeInfo.cc
===================================================================
--- trunk/src/orxonox/objects/infos/GametypeInfo.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/GametypeInfo.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,7 +32,7 @@
 #include "core/GameMode.h"
 #include "network/NetworkFunction.h"
 #include "network/Host.h"
-#include "objects/GametypeMessageListener.h"
+#include "interfaces/GametypeMessageListener.h"
 
 namespace orxonox
 {
@@ -67,7 +67,7 @@
         registerVariable(this->hudtemplate_,            variableDirection::toclient);
     }
 
-    void GametypeInfo::sendAnnounceMessage(const std::string& message) const
+    void GametypeInfo::sendAnnounceMessage(const std::string& message)
     {
         if (GameMode::isMaster())
         {
@@ -76,7 +76,7 @@
         }
     }
 
-    void GametypeInfo::sendAnnounceMessage(const std::string& message, unsigned int clientID) const
+    void GametypeInfo::sendAnnounceMessage(const std::string& message, unsigned int clientID)
     {
         if (GameMode::isMaster())
         {
@@ -87,7 +87,7 @@
         }
     }
 
-    void GametypeInfo::sendKillMessage(const std::string& message, unsigned int clientID) const
+    void GametypeInfo::sendKillMessage(const std::string& message, unsigned int clientID)
     {
         if (GameMode::isMaster())
         {
@@ -98,7 +98,7 @@
         }
     }
 
-    void GametypeInfo::sendDeathMessage(const std::string& message, unsigned int clientID) const
+    void GametypeInfo::sendDeathMessage(const std::string& message, unsigned int clientID)
     {
         if (GameMode::isMaster())
         {
@@ -109,19 +109,19 @@
         }
     }
 
-    void GametypeInfo::dispatchAnnounceMessage(const std::string& message) const
+    void GametypeInfo::dispatchAnnounceMessage(const std::string& message)
     {
         for (ObjectList<GametypeMessageListener>::iterator it = ObjectList<GametypeMessageListener>::begin(); it != ObjectList<GametypeMessageListener>::end(); ++it)
             it->announcemessage(this, message);
     }
 
-    void GametypeInfo::dispatchKillMessage(const std::string& message) const
+    void GametypeInfo::dispatchKillMessage(const std::string& message)
     {
         for (ObjectList<GametypeMessageListener>::iterator it = ObjectList<GametypeMessageListener>::begin(); it != ObjectList<GametypeMessageListener>::end(); ++it)
             it->killmessage(this, message);
     }
 
-    void GametypeInfo::dispatchDeathMessage(const std::string& message) const
+    void GametypeInfo::dispatchDeathMessage(const std::string& message)
     {
         for (ObjectList<GametypeMessageListener>::iterator it = ObjectList<GametypeMessageListener>::begin(); it != ObjectList<GametypeMessageListener>::end(); ++it)
             it->deathmessage(this, message);

Modified: trunk/src/orxonox/objects/infos/GametypeInfo.h
===================================================================
--- trunk/src/orxonox/objects/infos/GametypeInfo.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/GametypeInfo.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "Info.h"
 
 namespace orxonox
@@ -58,14 +59,14 @@
             inline const std::string& getHUDTemplate() const
                 { return this->hudtemplate_; }
 
-            void sendAnnounceMessage(const std::string& message) const;
-            void sendAnnounceMessage(const std::string& message, unsigned int clientID) const;
-            void sendKillMessage(const std::string& message, unsigned int clientID) const;
-            void sendDeathMessage(const std::string& message, unsigned int clientID) const;
+            void sendAnnounceMessage(const std::string& message);
+            void sendAnnounceMessage(const std::string& message, unsigned int clientID);
+            void sendKillMessage(const std::string& message, unsigned int clientID);
+            void sendDeathMessage(const std::string& message, unsigned int clientID);
 
-            void dispatchAnnounceMessage(const std::string& message) const;
-            void dispatchKillMessage(const std::string& message) const;
-            void dispatchDeathMessage(const std::string& message) const;
+            void dispatchAnnounceMessage(const std::string& message);
+            void dispatchKillMessage(const std::string& message);
+            void dispatchDeathMessage(const std::string& message);
 
         private:
             bool bStarted_;

Modified: trunk/src/orxonox/objects/infos/HumanPlayer.cc
===================================================================
--- trunk/src/orxonox/objects/infos/HumanPlayer.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/HumanPlayer.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,9 +28,9 @@
 
 #include "HumanPlayer.h"
 
-#include "core/GameMode.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
+#include "core/GameMode.h"
 #include "network/ClientInformation.h"
 #include "network/Host.h"
 #include "objects/controllers/HumanController.h"
@@ -142,12 +142,12 @@
 
     float HumanPlayer::getPing() const
     {
-        return ClientInformation::findClient(this->getClientID())->getRTT();
+        return static_cast<float>(ClientInformation::findClient(this->getClientID())->getRTT());
     }
 
     float HumanPlayer::getPacketLossRatio() const
     {
-        return ClientInformation::findClient(this->getClientID())->getPacketLoss();
+        return static_cast<float>(ClientInformation::findClient(this->getClientID())->getPacketLoss());
     }
 
     void HumanPlayer::setClientID(unsigned int clientID)

Modified: trunk/src/orxonox/objects/infos/HumanPlayer.h
===================================================================
--- trunk/src/orxonox/objects/infos/HumanPlayer.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/HumanPlayer.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "PlayerInfo.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/infos/Info.cc
===================================================================
--- trunk/src/orxonox/objects/infos/Info.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/Info.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,6 @@
  */
 
 #include "Info.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/infos/PlayerInfo.cc
===================================================================
--- trunk/src/orxonox/objects/infos/PlayerInfo.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/PlayerInfo.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,6 +33,7 @@
 #include "core/CoreIncludes.h"
 #include "network/ClientInformation.h"
 #include "objects/gametypes/Gametype.h"
+#include "objects/worldentities/ControllableEntity.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/infos/PongBot.h
===================================================================
--- trunk/src/orxonox/objects/infos/PongBot.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/infos/PongBot.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _PongBot_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "Bot.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/items/Engine.cc
===================================================================
--- trunk/src/orxonox/objects/items/Engine.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/items/Engine.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,11 +28,13 @@
 
 #include "Engine.h"
 
+#include "util/Math.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/Scene.h"
 #include "objects/worldentities/pawns/SpaceShip.h"
+#include "objects/pickup/ModifierType.h"
 #include "tools/Shader.h"
 #include "sound/SoundBase.h"
 

Modified: trunk/src/orxonox/objects/items/Engine.h
===================================================================
--- trunk/src/orxonox/objects/items/Engine.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/items/Engine.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "Item.h"
-#include "objects/Tickable.h"
-#include "util/Math.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/items/Item.cc
===================================================================
--- trunk/src/orxonox/objects/items/Item.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/items/Item.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,6 @@
  */
 
 #include "Item.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox
@@ -36,8 +35,4 @@
     {
         RegisterObject(Item);
     }
-
-    Item::~Item()
-    {
-    }
 }

Modified: trunk/src/orxonox/objects/items/Item.h
===================================================================
--- trunk/src/orxonox/objects/items/Item.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/items/Item.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -40,7 +40,7 @@
     {
         public:
             Item(BaseObject* creator);
-            virtual ~Item();
+            virtual ~Item() {}
     };
 }
 

Modified: trunk/src/orxonox/objects/items/MultiStateEngine.cc
===================================================================
--- trunk/src/orxonox/objects/items/MultiStateEngine.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/items/MultiStateEngine.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,8 +28,8 @@
 
 #include "MultiStateEngine.h"
 
+#include "core/CoreIncludes.h"
 #include "core/GameMode.h"
-#include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/worldentities/pawns/SpaceShip.h"
 

Modified: trunk/src/orxonox/objects/items/MultiStateEngine.h
===================================================================
--- trunk/src/orxonox/objects/items/MultiStateEngine.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/items/MultiStateEngine.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <list>
 #include "Engine.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/pickup/BaseItem.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/BaseItem.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/BaseItem.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,8 +33,6 @@
 
 #include "BaseItem.h"
 
-#include "PickupCollection.h"
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/worldentities/pawns/Pawn.h"
@@ -54,7 +52,7 @@
         this->setGUIImage("");
         this->setGUIText("");
     }
-    //! Deconstructor.
+    //! Destructor.
     BaseItem::~BaseItem()
     {
     }
@@ -104,5 +102,8 @@
         return true;
     }
 
-    const std::string& BaseItem::getGUIText() const { return this->guiText_; }
+    const std::string& BaseItem::getGUIText() const
+    {
+        return this->guiText_;
+    }
 }

Modified: trunk/src/orxonox/objects/pickup/BaseItem.h
===================================================================
--- trunk/src/orxonox/objects/pickup/BaseItem.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/BaseItem.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,6 +36,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "core/BaseObject.h"
 
 // tolua_begin

Modified: trunk/src/orxonox/objects/pickup/DroppedItem.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/DroppedItem.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/DroppedItem.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,13 +28,14 @@
 
 #include "DroppedItem.h"
 
+#include "util/Math.h"
+#include "core/CoreIncludes.h"
+#include "core/Executor.h"
 #include "BaseItem.h"
+#include "objects/worldentities/Billboard.h"
+#include "objects/worldentities/Model.h"
 #include "objects/worldentities/pawns/Pawn.h"
-#include "objects/worldentities/Model.h"
-#include "objects/worldentities/Billboard.h"
 
-#include "core/CoreIncludes.h"
-
 namespace orxonox
 {
     CreateFactory(DroppedItem);

Modified: trunk/src/orxonox/objects/pickup/DroppedItem.h
===================================================================
--- trunk/src/orxonox/objects/pickup/DroppedItem.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/DroppedItem.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,7 +28,7 @@
 
 /**
     @file
-    @brief Definition of BaseItem (base-class for items/pickups).
+    @brief Definition of DroppedItem
 */
 
 #ifndef _DroppedItem_H__
@@ -36,9 +36,9 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include "objects/Tickable.h"
+#include "tools/Timer.h"
+#include "interfaces/Tickable.h"
 #include "objects/worldentities/StaticEntity.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/pickup/EquipmentItem.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/EquipmentItem.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/EquipmentItem.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,7 +32,6 @@
 */
 
 #include "EquipmentItem.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox
@@ -45,8 +44,4 @@
     {
         RegisterObject(EquipmentItem);
     }
-    //! Deconstructor.
-    EquipmentItem::~EquipmentItem()
-    {
-    }
 }

Modified: trunk/src/orxonox/objects/pickup/EquipmentItem.h
===================================================================
--- trunk/src/orxonox/objects/pickup/EquipmentItem.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/EquipmentItem.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,7 +37,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include "BaseItem.h"
-
 namespace orxonox
 {
     /**
@@ -48,7 +47,7 @@
     {
     public:
         EquipmentItem(BaseObject* creator);
-        virtual ~EquipmentItem();
+        virtual ~EquipmentItem() {}
     };
 }
 

Modified: trunk/src/orxonox/objects/pickup/ModifierPickup.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/ModifierPickup.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/ModifierPickup.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,11 +32,9 @@
 */
 
 #include "ModifierPickup.h"
-#include "PickupCollection.h"
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-
 #include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/pickup/ModifierPickup.h
===================================================================
--- trunk/src/orxonox/objects/pickup/ModifierPickup.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/ModifierPickup.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,13 +34,14 @@
 #ifndef _ModifierPickup_H__
 #define _ModifierPickup_H__
 
+#include "OrxonoxPrereqs.h"
+
 #include <climits>
+#include <map>
 
-#include "OrxonoxPrereqs.h"
-
+#include "orxonox/tools/Timer.h"
+#include "ModifierType.h"
 #include "PassiveItem.h"
-#include "ModifierType.h"
-#include "orxonox/tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/pickup/ModifierType.h
===================================================================
--- trunk/src/orxonox/objects/pickup/ModifierType.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/ModifierType.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,6 +34,8 @@
 #ifndef _ModifierType_H__
 #define _ModifierType_H__
 
+#include "OrxonoxPrereqs.h"
+
 namespace orxonox
 {
     namespace ModifierType

Modified: trunk/src/orxonox/objects/pickup/PassiveItem.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/PassiveItem.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/PassiveItem.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,6 @@
  */
 
 #include "PassiveItem.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox
@@ -40,8 +39,4 @@
     {
         RegisterObject(PassiveItem);
     }
-    //! Deconstructor.
-    PassiveItem::~PassiveItem()
-    {
-    }
 }

Modified: trunk/src/orxonox/objects/pickup/PassiveItem.h
===================================================================
--- trunk/src/orxonox/objects/pickup/PassiveItem.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/PassiveItem.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,6 @@
 #define _PassiveItem_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "BaseItem.h"
 
 namespace orxonox
@@ -48,7 +47,7 @@
     {
     public:
         PassiveItem(BaseObject* creator);
-        virtual ~PassiveItem();
+        virtual ~PassiveItem() {}
     };
 }
 

Modified: trunk/src/orxonox/objects/pickup/PickupCollection.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/PickupCollection.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/PickupCollection.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,13 +33,11 @@
 
 #include "PickupCollection.h"
 
-#include "BaseItem.h"
+#include "core/CoreIncludes.h"
 #include "EquipmentItem.h"
 #include "PassiveItem.h"
 #include "UsableItem.h"
 
-#include "core/CoreIncludes.h"
-
 namespace orxonox
 {
     typedef std::pair<std::multimap<std::string, BaseItem*>::iterator, std::multimap<std::string, BaseItem*>::iterator> item_range;

Modified: trunk/src/orxonox/objects/pickup/PickupCollection.h
===================================================================
--- trunk/src/orxonox/objects/pickup/PickupCollection.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/PickupCollection.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,12 +36,11 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <map>
 #include <deque>
+#include <map>
 #include <string>
 
 #include "util/Math.h"
-
 #include "ModifierType.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/pickup/PickupInventory.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/PickupInventory.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/PickupInventory.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,24 +28,24 @@
 
 #include "PickupInventory.h"
 
-#include "EquipmentItem.h"
-#include "PassiveItem.h"
-#include "UsableItem.h"
+#include <CEGUIImage.h>
+#include <CEGUIImageset.h>
+#include <CEGUIImagesetManager.h>
+#include <CEGUIWindow.h>
+#include <CEGUIWindowManager.h>
+#include <elements/CEGUITabControl.h>
 
 #include "core/ConsoleCommand.h"
 #include "core/input/InputManager.h"
-
 #include "gui/GUIManager.h"
 #include "objects/controllers/HumanController.h"
 #include "objects/worldentities/pawns/Pawn.h"
 
-#include <CEGUIImage.h>
-#include <CEGUIImageset.h>
-#include <CEGUIImagesetManager.h>
-#include <CEGUIWindow.h>
-#include <CEGUIWindowManager.h>
-#include <elements/CEGUITabControl.h>
+#include "EquipmentItem.h"
+#include "PassiveItem.h"
+#include "UsableItem.h"
 
+
 namespace orxonox
 {
     SetConsoleCommandShortcut(PickupInventory, toggleInventory);
@@ -85,14 +85,14 @@
     void PickupInventory::toggleInventory()
     {
         if(PickupInventory::getSingleton()->isVisible()) {
-            GUIManager::getInstancePtr()->executeCode("hideGUI(\"PickupInventory\")");
-            GUIManager::getInstancePtr()->executeCode("hideCursor()");
+            GUIManager::getInstance().executeCode("hideGUI(\"PickupInventory\")");
+            GUIManager::getInstance().executeCode("hideCursor()");
             InputManager::getInstance().requestLeaveState("guiMouseOnly");
         }
         else
         {
-            GUIManager::getInstancePtr()->showGUI("PickupInventory");
-            GUIManager::getInstancePtr()->executeCode("showCursor()");
+            GUIManager::getInstance().showGUI("PickupInventory");
+            GUIManager::getInstance().executeCode("showCursor()");
             InputManager::getInstance().requestEnterState("guiMouseOnly");
         }
         PickupInventory::getSingleton()->setVisible(!PickupInventory::getSingleton()->isVisible());

Modified: trunk/src/orxonox/objects/pickup/PickupInventory.h
===================================================================
--- trunk/src/orxonox/objects/pickup/PickupInventory.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/PickupInventory.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,10 +36,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <CEGUIForwardRefs.h>
 #include "core/BaseObject.h"
 
-namespace CEGUI { class Window; class WindowManager; class Image; }
-
 // tolua_begin
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/pickup/PickupSpawner.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/PickupSpawner.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/PickupSpawner.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,16 +32,17 @@
 */
 
 #include "PickupSpawner.h"
+
 #include "BaseItem.h"
-#include "PickupInventory.h"    // HACK; Only for hack, remove later
-#include "gui/GUIManager.h"     // HACK; see above
 
 #include "core/CoreIncludes.h"
+#include "core/Template.h"
 #include "core/XMLPort.h"
-#include "core/Template.h"
-
+#include "gui/GUIManager.h"     // HACK; see below
 #include "objects/worldentities/pawns/Pawn.h"
+#include "PickupInventory.h"    // HACK; Only for hack, remove later
 
+
 namespace orxonox
 {
     const float PickupSpawner::bounceSpeed_s = 6.0f;
@@ -94,8 +95,8 @@
 
         //  & load the GUI itself too, along with some empty windows
         //   = even less delays
-        GUIManager::getInstancePtr()->showGUI("PickupInventory");
-        GUIManager::getInstancePtr()->executeCode("hideGUI(\"PickupInventory\")");
+        GUIManager::getInstance().showGUI("PickupInventory");
+        GUIManager::getInstance().executeCode("hideGUI(\"PickupInventory\")");
         PickupInventory::getSingleton();
     }
     /**

Modified: trunk/src/orxonox/objects/pickup/PickupSpawner.h
===================================================================
--- trunk/src/orxonox/objects/pickup/PickupSpawner.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/PickupSpawner.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,9 +36,10 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include "objects/Tickable.h"
+#include <string>
+#include "tools/Timer.h"
+#include "interfaces/Tickable.h"
 #include "objects/worldentities/StaticEntity.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/pickup/UsableItem.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/UsableItem.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/UsableItem.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,7 +32,6 @@
 */
 
 #include "UsableItem.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox
@@ -45,8 +44,4 @@
     {
         RegisterObject(UsableItem);
     }
-    //! Deconstructor.
-    UsableItem::~UsableItem()
-    {
-    }
 }

Modified: trunk/src/orxonox/objects/pickup/UsableItem.h
===================================================================
--- trunk/src/orxonox/objects/pickup/UsableItem.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/UsableItem.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,6 @@
 #define _UsableItem_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "BaseItem.h"
 
 namespace orxonox
@@ -48,7 +47,7 @@
     {
     public:
         UsableItem(BaseObject* creator);
-        virtual ~UsableItem();
+        virtual ~UsableItem() { }
 
         /**
             @brief Method invoked when the item is being used.

Modified: trunk/src/orxonox/objects/pickup/items/HealthImmediate.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/items/HealthImmediate.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/items/HealthImmediate.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,10 +33,9 @@
 
 #include "HealthImmediate.h"
 
-#include "objects/worldentities/pawns/Pawn.h"
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/pickup/items/HealthImmediate.h
===================================================================
--- trunk/src/orxonox/objects/pickup/items/HealthImmediate.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/items/HealthImmediate.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,6 @@
 #define _HealthImmediate_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "objects/pickup/PassiveItem.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/pickup/items/HealthUsable.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/items/HealthUsable.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/items/HealthUsable.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,12 +32,12 @@
 */
 
 #include "HealthUsable.h"
-#include "objects/pickup/DroppedItem.h"
 
-#include "objects/worldentities/pawns/Pawn.h"
-
+#include "util/Math.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "objects/pickup/DroppedItem.h"
+#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/pickup/items/HealthUsable.h
===================================================================
--- trunk/src/orxonox/objects/pickup/items/HealthUsable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/items/HealthUsable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,12 +34,10 @@
 #ifndef _HealthUsable_H__
 #define _HealthUsable_H__
 
-#include <climits>
-
 #include "OrxonoxPrereqs.h"
 
+#include <climits>
 #include "objects/pickup/UsableItem.h"
-#include "util/Math.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/pickup/items/Jump.cc
===================================================================
--- trunk/src/orxonox/objects/pickup/items/Jump.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/items/Jump.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,12 +32,11 @@
 */
 
 #include "Jump.h"
-#include "objects/pickup/DroppedItem.h"
 
-#include "objects/worldentities/pawns/Pawn.h"
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "objects/pickup/DroppedItem.h"
+#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/pickup/items/Jump.h
===================================================================
--- trunk/src/orxonox/objects/pickup/items/Jump.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/pickup/items/Jump.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -38,8 +38,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <climits>
+#include "util/Math.h"
 #include "objects/pickup/UsableItem.h"
-#include "util/Math.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/quest/AddQuest.cc
===================================================================
--- trunk/src/orxonox/objects/quest/AddQuest.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/AddQuest.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,20 +27,15 @@
  */
 
 /**
-    @file AddQuest.cc
+    @file
     @brief Implementation of the AddQuest class.
 */
 
 #include "AddQuest.h"
 
-#include <string>
-
-#include "core/CoreIncludes.h"
 #include "util/Exception.h"
-
-#include "orxonox/objects/infos/PlayerInfo.h"
+#include "core/CoreIncludes.h"
 #include "QuestManager.h"
-#include "QuestDescription.h"
 #include "Quest.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/AddQuest.h
===================================================================
--- trunk/src/orxonox/objects/quest/AddQuest.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/AddQuest.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file AddQuest.h
+    @file
     @brief Definition of the AddQuest class.
 */
 
@@ -35,10 +35,6 @@
 #define _AddQuest_H__
 
 #include "OrxonoxPrereqs.h"
-
-#include <string>
-
-#include "core/XMLPort.h"
 #include "ChangeQuestStatus.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/AddQuestHint.cc
===================================================================
--- trunk/src/orxonox/objects/quest/AddQuestHint.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/AddQuestHint.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,16 +27,15 @@
  */
 
 /**
-    @file AddQuestHint.cc
+    @file
     @brief Implementation of the AddQuestHint class.
 */
 
 #include "AddQuestHint.h"
 
-#include "core/CoreIncludes.h"
 #include "util/Exception.h"
-
-#include "orxonox/objects/infos/PlayerInfo.h"
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
 #include "QuestManager.h"
 #include "QuestItem.h"
 #include "QuestHint.h"

Modified: trunk/src/orxonox/objects/quest/AddQuestHint.h
===================================================================
--- trunk/src/orxonox/objects/quest/AddQuestHint.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/AddQuestHint.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file AddQuestHint.h
+    @file
     @brief Definition of the AddQuestHint class.
 */
 
@@ -37,7 +37,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <string>
-
 #include "QuestEffect.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/AddReward.cc
===================================================================
--- trunk/src/orxonox/objects/quest/AddReward.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/AddReward.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,17 +27,16 @@
  */
 
 /**
-    @file AddReward.cc
+    @file
     @brief Implementation of the AddReward class.
 */
 
 #include "AddReward.h"
 
 #include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "interfaces/Rewardable.h"
 
-#include "orxonox/objects/infos/PlayerInfo.h"
-#include "Rewardable.h"
-
 namespace orxonox
 {
     CreateFactory(AddReward);

Modified: trunk/src/orxonox/objects/quest/AddReward.h
===================================================================
--- trunk/src/orxonox/objects/quest/AddReward.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/AddReward.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file AddReward.h
+    @file
     @brief Definition of the AddReward class.
 */
 
@@ -37,8 +37,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <list>
-
-#include "core/XMLPort.h"
 #include "QuestEffect.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/CMakeLists.txt
===================================================================
--- trunk/src/orxonox/objects/quest/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -16,5 +16,4 @@
   QuestListener.cc
   QuestManager.cc
   QuestNotification.cc
-  Rewardable.cc
 )

Modified: trunk/src/orxonox/objects/quest/ChangeQuestStatus.cc
===================================================================
--- trunk/src/orxonox/objects/quest/ChangeQuestStatus.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/ChangeQuestStatus.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,14 +27,14 @@
  */
 
 /**
-    @file ChangeQuestStatus.cc
+    @file
     @brief Implementation of the ChangeQuestStatus class.
 */
 
 #include "ChangeQuestStatus.h"
 
 #include "core/CoreIncludes.h"
-
+#include "core/XMLPort.h"
 #include "QuestItem.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/ChangeQuestStatus.h
===================================================================
--- trunk/src/orxonox/objects/quest/ChangeQuestStatus.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/ChangeQuestStatus.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file ChangeQuestStatus.h
+    @file
     @brief Definition of the ChangeQuestStatus class.
 */
 
@@ -37,8 +37,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <string>
-
-#include "core/XMLPort.h"
 #include "QuestEffect.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/CompleteQuest.cc
===================================================================
--- trunk/src/orxonox/objects/quest/CompleteQuest.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/CompleteQuest.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,16 +27,14 @@
  */
  
 /**
-    @file CompleteQuest.cc
+    @file
     @brief Implementation of the CompleteQuest class.
 */
 
 #include "CompleteQuest.h"
 
 #include "core/CoreIncludes.h"
-#include "util/Exception.h"
-
-#include "orxonox/objects/infos/PlayerInfo.h"
+#include "core/XMLPort.h"
 #include "QuestManager.h"
 #include "Quest.h"
 

Modified: trunk/src/orxonox/objects/quest/CompleteQuest.h
===================================================================
--- trunk/src/orxonox/objects/quest/CompleteQuest.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/CompleteQuest.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file CompleteQuest.h
+    @file
     @brief Definition of the CompleteQuest class.
 */
 
@@ -35,10 +35,6 @@
 #define _CompleteQuest_H__
 
 #include "OrxonoxPrereqs.h"
-
-#include <string>
-
-#include "core/XMLPort.h"
 #include "ChangeQuestStatus.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/FailQuest.cc
===================================================================
--- trunk/src/orxonox/objects/quest/FailQuest.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/FailQuest.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,16 +27,14 @@
  */
  
 /**
-    @file FailQuest.cc
+    @file
     @brief Implementation of the FailQuest class.
 */
 
 #include "FailQuest.h"
 
 #include "core/CoreIncludes.h"
-#include "util/Exception.h"
-
-#include "orxonox/objects/infos/PlayerInfo.h"
+#include "core/XMLPort.h"
 #include "QuestManager.h"
 #include "Quest.h"
 

Modified: trunk/src/orxonox/objects/quest/FailQuest.h
===================================================================
--- trunk/src/orxonox/objects/quest/FailQuest.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/FailQuest.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file FailQuest.h
+    @file
     @brief Definition of the FailQuest class.
 */
 
@@ -35,10 +35,6 @@
 #define _FailQuest_H__
 
 #include "OrxonoxPrereqs.h"
-
-#include <string>
-
-#include "core/XMLPort.h"
 #include "ChangeQuestStatus.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/GlobalQuest.cc
===================================================================
--- trunk/src/orxonox/objects/quest/GlobalQuest.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/GlobalQuest.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,17 +27,14 @@
  */
  
 /**
-    @file GlobalQuest.cc
+    @file
     @brief Implementation of the GlobalQuest class.
 */
 
 #include "GlobalQuest.h"
 
-#include "orxonox/objects/infos/PlayerInfo.h"
 #include "core/CoreIncludes.h"
-#include "core/Super.h"
-#include "util/Exception.h"
-
+#include "core/XMLPort.h"
 #include "QuestEffect.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/GlobalQuest.h
===================================================================
--- trunk/src/orxonox/objects/quest/GlobalQuest.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/GlobalQuest.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
  
 /**
-    @file GlobalQuest.h
+    @file
     @brief Definition of the GlobalQuest class.
 */
 
@@ -36,10 +36,8 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <set>
 #include <list>
-
-#include "core/XMLPort.h"
+#include <set>
 #include "Quest.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/LocalQuest.cc
===================================================================
--- trunk/src/orxonox/objects/quest/LocalQuest.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/LocalQuest.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,17 +27,14 @@
  */
 
 /**
-    @file LocalQuest.cc
+    @file
     @brief Implementation of the LocalQuest class.
 */
 
 #include "LocalQuest.h"
 
 #include "core/CoreIncludes.h"
-#include "core/Super.h"
-#include "util/Exception.h"
-
-#include "orxonox/objects/infos/PlayerInfo.h"
+#include "core/XMLPort.h"
 #include "QuestEffect.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/LocalQuest.h
===================================================================
--- trunk/src/orxonox/objects/quest/LocalQuest.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/LocalQuest.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
  
 /**
-    @file LocalQuest.h
+    @file
     @brief Definition of the LocalQuest class.
 */
 
@@ -37,9 +37,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <map>
-#include <string>
-
-#include "core/XMLPort.h"
 #include "Quest.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/Quest.cc
===================================================================
--- trunk/src/orxonox/objects/quest/Quest.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/Quest.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,15 +27,14 @@
  */
  
 /**
-    @file Quest.cc
+    @file
     @brief Implementation of the Quest class.
 */
 
 #include "Quest.h"
 
 #include "core/CoreIncludes.h"
-
-#include "orxonox/objects/infos/PlayerInfo.h"
+#include "core/XMLPort.h"
 #include "QuestManager.h"
 #include "QuestDescription.h"
 #include "QuestHint.h"

Modified: trunk/src/orxonox/objects/quest/Quest.h
===================================================================
--- trunk/src/orxonox/objects/quest/Quest.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/Quest.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
  
 /**
-    @file Quest.h
+    @file
     @brief Definition of the Quest class.
         The Quest is the parent class of LocalQuest and GlobalQuest.
 */
@@ -38,10 +38,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <list>
-#include <string>
-
-#include "core/XMLPort.h"
-
 #include "QuestItem.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/QuestDescription.cc
===================================================================
--- trunk/src/orxonox/objects/quest/QuestDescription.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestDescription.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file QuestDescription.cc
+    @file
     @brief Implementation of the QuestDescription class.
 */
 
@@ -35,6 +35,7 @@
 #include "QuestDescription.h"
 
 #include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
 #include "QuestNotification.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/QuestDescription.h
===================================================================
--- trunk/src/orxonox/objects/quest/QuestDescription.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestDescription.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file QuestDescription.h
+    @file
     @brief Definition of the QuestDescription class.
 */
 
@@ -37,9 +37,7 @@
 #include "OrxonoxPrereqs.h"
 
 #include <string>
-
 #include "core/BaseObject.h"
-#include "core/XMLPort.h"
 
 // tolua_begin
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/QuestEffect.cc
===================================================================
--- trunk/src/orxonox/objects/quest/QuestEffect.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestEffect.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,16 +27,13 @@
  */
 
 /**
-    @file QuestEffect.cc
+    @file
     @brief Implementation of the QuestEffect class.
 */
 
 #include "QuestEffect.h"
-
 #include "core/CoreIncludes.h"
 
-#include "orxonox/objects/infos/PlayerInfo.h"
-
 namespace orxonox
 {
     /**

Modified: trunk/src/orxonox/objects/quest/QuestEffect.h
===================================================================
--- trunk/src/orxonox/objects/quest/QuestEffect.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestEffect.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
  
 /**
-    @file QuestEffect.h
+    @file
     @brief Definition of the QuestEffect class.
 */
 
@@ -37,7 +37,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <list>
-
 #include "core/BaseObject.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/QuestEffectBeacon.cc
===================================================================
--- trunk/src/orxonox/objects/quest/QuestEffectBeacon.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestEffectBeacon.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file QuestEffectBeacon.cc
+    @file
     @brief Implementation of the QuestEffectBeacon class.
 */
 
@@ -35,10 +35,7 @@
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "core/Event.h"
 #include "core/EventIncludes.h"
-
-#include "orxonox/objects/infos/PlayerInfo.h"
 #include "orxonox/objects/worldentities/pawns/Pawn.h"
 #include "orxonox/objects/worldentities/triggers/PlayerTrigger.h"
 #include "QuestEffect.h"
@@ -88,7 +85,7 @@
     {
         SUPER(QuestEffectBeacon, processEvent, event);
     
-        SetSubclassEvent(QuestEffectBeacon, "execute", execute, event, PlayerTrigger);
+        ORXONOX_SET_SUBCLASS_EVENT(QuestEffectBeacon, "execute", execute, event, PlayerTrigger);
     }
     
     /**

Modified: trunk/src/orxonox/objects/quest/QuestEffectBeacon.h
===================================================================
--- trunk/src/orxonox/objects/quest/QuestEffectBeacon.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestEffectBeacon.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file QuestEffectBeacon.h
+    @file
     @brief Definition of the QuestEffectBeacon class.
 */
 
@@ -36,6 +36,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <list>
 #include "orxonox/objects/worldentities/StaticEntity.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/QuestHint.cc
===================================================================
--- trunk/src/orxonox/objects/quest/QuestHint.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestHint.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,16 +27,14 @@
  */
  
 /**
-    @file QuestHint.cc
+    @file
     @brief Implementation of the QuestHint class.
 */
 
 #include "QuestHint.h"
 
 #include "core/CoreIncludes.h"
-#include "util/Exception.h"
-
-#include "orxonox/objects/infos/PlayerInfo.h"
+#include "core/XMLPort.h"
 #include "QuestManager.h"
 #include "QuestDescription.h"
 #include "Quest.h"

Modified: trunk/src/orxonox/objects/quest/QuestHint.h
===================================================================
--- trunk/src/orxonox/objects/quest/QuestHint.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestHint.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
  
 /**
-    @file QuestHint.h
+    @file
     @brief Definition of the QuestHint class.
 */
 
@@ -37,9 +37,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <map>
-#include <string>
-
-#include "core/XMLPort.h"
 #include "QuestItem.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/QuestItem.cc
===================================================================
--- trunk/src/orxonox/objects/quest/QuestItem.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestItem.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,14 +27,14 @@
  */
  
 /**
-    @file QuestItem.cc
+    @file
     @brief Implementation of the QuestItem class.
 */
 
 #include "QuestItem.h"
 
 #include "core/CoreIncludes.h"
-
+#include "core/XMLPort.h"
 #include "QuestDescription.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/QuestItem.h
===================================================================
--- trunk/src/orxonox/objects/quest/QuestItem.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestItem.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
  
 /**
-    @file QuestItem.h
+    @file
     @brief Definition of the QuestItem class.
         The QuestItem is the parent class of Quest and QuestHint.
 */
@@ -39,9 +39,7 @@
 #include "OrxonoxPrereqs.h"
 
 #include <string>
-
 #include "core/BaseObject.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/quest/QuestListener.cc
===================================================================
--- trunk/src/orxonox/objects/quest/QuestListener.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestListener.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file QuestListener.cc
+    @file
     @brief Implementation of the QuestListener class.
 */
 
@@ -35,8 +35,6 @@
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "util/Exception.h"
-
 #include "Quest.h"
 #include "QuestManager.h"
 
@@ -163,7 +161,7 @@
     @return
         Return the mode of the QuestListener. Can be eighter 'all', 'start', 'fail' or 'complete'.
     */
-    const std::string QuestListener::getMode(void)
+    std::string QuestListener::getMode(void)
     {
         if(this->mode_ == questListenerMode::all)
         {
@@ -190,6 +188,17 @@
 
     /**
     @brief
+        Get the questId of the Quest the QuestListener reacts to.
+    @return
+        Returns the questId of the Quest the QuestListener reacts to.
+    */
+    const std::string & QuestListener::getQuestId(void)    
+    {
+        return this->quest_->getId();
+    }
+
+    /**
+    @brief
         Executes the QuestListener, resp. fires an Event.
     @return
         Returns true if successful.

Modified: trunk/src/orxonox/objects/quest/QuestListener.h
===================================================================
--- trunk/src/orxonox/objects/quest/QuestListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file QuestListener.h
+    @file
     @brief Definition of the QuestListener class.
 */
 
@@ -38,11 +38,8 @@
 
 #include <string>
 #include <list>
-
 #include "core/BaseObject.h"
 
-#include "Quest.h"
-
 namespace orxonox
 {
     namespace questListenerMode
@@ -89,15 +86,9 @@
         bool setQuestId(const std::string & id); //!< Sets the questId of the Quest the QuestListener reacts to.
         bool setMode(const std::string & mode); //!< Sets the mode of the QuestListener.
         
-        const std::string getMode(void); //!< Get the mode of the QuestListener.
+        std::string getMode(void); //!< Get the mode of the QuestListener.
         
-        /**
-        @brief Get the questId of the Quest the QuestListener reacts to.
-        @return Returns the questId of the Quest the QuestListener reacts to.
-        */
-        inline const std::string & getQuestId(void)
-                { return this->quest_->getId(); }
-        
+        const std::string & getQuestId(void);        
         bool execute(void); //!< Executes the QuestListener, resp. fires an Event.
         
     private:

Modified: trunk/src/orxonox/objects/quest/QuestManager.cc
===================================================================
--- trunk/src/orxonox/objects/quest/QuestManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,21 +27,22 @@
  */
 
 /**
-    @file QuestManager.cc
+    @file
     @brief Implementation of the QuestManager class.
 */
 
 #include "QuestManager.h"
 
+#include "util/Exception.h"
 #include "core/CoreIncludes.h"
-#include "core/ConsoleCommand.h"
-#include "core/input/InputManager.h"
+#include "gui/GUIManager.h"
 
-#include "util/Exception.h"
-#include "gui/GUIManager.h"
 #include "objects/infos/PlayerInfo.h"
+#include "objects/infos/PlayerInfo.h"
+#include "overlays/GUIOverlay.h"
 #include "Quest.h"
 #include "QuestHint.h"
+#include "QuestItem.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/quest/QuestManager.h
===================================================================
--- trunk/src/orxonox/objects/quest/QuestManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file QuestManager.h
+    @file
     @brief Definition of the QuestManager class.
 */
 
@@ -36,13 +36,10 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <map>
 #include <list>
+#include <map>
 #include <string>
-
 #include "core/OrxonoxClass.h"
-#include "orxonox/objects/infos/PlayerInfo.h"
-#include "overlays/GUIOverlay.h"
 
 // tolua_begin
 namespace orxonox

Modified: trunk/src/orxonox/objects/quest/QuestNotification.cc
===================================================================
--- trunk/src/orxonox/objects/quest/QuestNotification.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestNotification.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,11 +27,8 @@
  */
 
 #include "QuestNotification.h"
-
 #include "core/CoreIncludes.h"
 
-#include "orxonox/overlays/notifications/Notification.h"
-
 namespace orxonox {
 
     const std::string QuestNotification::SENDER = "questsystem";

Modified: trunk/src/orxonox/objects/quest/QuestNotification.h
===================================================================
--- trunk/src/orxonox/objects/quest/QuestNotification.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/QuestNotification.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,9 +32,8 @@
 #include "OrxonoxPrereqs.h"
 
 #include <string>
+#include "overlays/notifications/Notification.h"
 
-#include "orxonox/overlays/notifications/Notification.h"
-
 namespace orxonox {
 
     /**

Deleted: trunk/src/orxonox/objects/quest/Rewardable.cc
===================================================================
--- trunk/src/orxonox/objects/quest/Rewardable.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/Rewardable.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,58 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file Rewardable.cc
-    @brief Implementation of the Rewardable class.
-*/
-
-#include "Rewardable.h"
-
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Constructor. Registers the object.
-    */
-    Rewardable::Rewardable(BaseObject* creator) : BaseObject(creator)
-    {
-        RegisterObject(Rewardable);
-    }
-
-    /**
-    @brief
-        Destructor,
-    */
-    Rewardable::~Rewardable()
-    {
-    }
-
-
-}

Deleted: trunk/src/orxonox/objects/quest/Rewardable.h
===================================================================
--- trunk/src/orxonox/objects/quest/Rewardable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/quest/Rewardable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,72 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file Rewardable.h
-    @brief Definition of the Rewardable class.
-*/
-
-#ifndef _Rewardable_H__
-#define _Rewardable_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "core/BaseObject.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Rewardable is an Interface, that can be implemented by any object to enable it to be given as reward to a player through QuestEffects. (With the AddReward effect.)
-        
-        It just needs to inherit form Rewardable, and implement the reward() method.
-    @author
-        Damian 'Mozork' Frick
-    */
-    class _OrxonoxExport Rewardable : public BaseObject
-    {
-        public:
-            Rewardable(BaseObject* creator);
-            virtual ~Rewardable();
-
-            /**
-            @brief
-                Method to transcribe a rewardable object to the player.
-                Must be implemented by every class inheriting from Rewardable.
-            @param player
-                A pointer to the ControllableEntity, do whatever you want with it.
-            @return
-                Return true if successful.
-            */
-            virtual bool reward(PlayerInfo* player) = 0;
-
-    };
-
-}
-
-#endif /* _Rewardable_H__ */

Modified: trunk/src/orxonox/objects/weaponsystem/DefaultWeaponmodeLink.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/DefaultWeaponmodeLink.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/DefaultWeaponmodeLink.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-
 #include "WeaponSystem.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/Munition.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/Munition.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/Munition.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,7 +28,6 @@
  */
 
 #include "Munition.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/Munition.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/Munition.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/Munition.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,7 +33,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <map>
-
 #include "core/BaseObject.h"
 #include "tools/Timer.h"
 

Modified: trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,10 +29,8 @@
 
 #include "MuzzleFlash.h"
 
-#include "core/GameMode.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "util/Math.h"
+#include "core/Executor.h"
 
 namespace orxonox
 {
@@ -41,7 +39,7 @@
     MuzzleFlash::MuzzleFlash(BaseObject* creator) : Billboard(creator)
     {
         RegisterObject(MuzzleFlash);
-        this->setScale(0.1);
+        this->setScale(0.1f);
         
         this->delayTimer_.setTimer(0.1f, false, this, createExecutor(createFunctor(&MuzzleFlash::destroy)));
 

Modified: trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,10 +30,10 @@
 #define _MuzzleFlash_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include "tools/Timer.h"
 #include "objects/worldentities/Billboard.h"
-#include "tools/Timer.h"
 
-
 namespace orxonox
 {
     class _OrxonoxExport MuzzleFlash : public Billboard

Modified: trunk/src/orxonox/objects/weaponsystem/Weapon.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/Weapon.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/Weapon.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,10 @@
 #define _Weapon_H__
 
 #include "OrxonoxPrereqs.h"
-#include "objects/worldentities/StaticEntity.h"
 
+#include <map>
 #include "tools/Timer.h"
+#include "objects/worldentities/StaticEntity.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/weaponsystem/WeaponMode.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/WeaponMode.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/WeaponMode.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,11 +31,12 @@
 #define _WeaponMode_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <string>
+#include "util/Math.h"
 #include "core/BaseObject.h"
-
+#include "core/Identifier.h"
 #include "tools/Timer.h"
-#include "core/Identifier.h"
-#include "util/Math.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/weaponsystem/WeaponPack.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/WeaponPack.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/WeaponPack.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,10 +30,8 @@
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "objects/worldentities/pawns/Pawn.h"
 
 #include "Weapon.h"
-#include "WeaponSlot.h"
 #include "WeaponSystem.h"
 #include "DefaultWeaponmodeLink.h"
 

Modified: trunk/src/orxonox/objects/weaponsystem/WeaponPack.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/WeaponPack.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/WeaponPack.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,7 +33,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <set>
-
 #include "core/BaseObject.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/WeaponSet.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/WeaponSet.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/WeaponSet.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,7 +33,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <map>
-
 #include "core/BaseObject.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/WeaponSystem.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/WeaponSystem.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/WeaponSystem.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,10 +32,9 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <set>
 #include <map>
+#include <set>
 #include <vector>
-
 #include "core/BaseObject.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/munitions/FusionMunition.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/munitions/FusionMunition.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/munitions/FusionMunition.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,6 @@
  */
 
 #include "FusionMunition.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/munitions/LaserMunition.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/munitions/LaserMunition.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/munitions/LaserMunition.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,6 @@
  */
 
 #include "LaserMunition.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,6 @@
  */
 
 #include "ReplenishingMunition.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,9 @@
 #define _ReplenishingMunition_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include "tools/Timer.h"
 #include "objects/weaponsystem/Munition.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,10 +28,8 @@
 
 #include "BillboardProjectile.h"
 
-#include <OgreBillboardSet.h>
-
-#include "core/GameMode.h"
 #include "core/CoreIncludes.h"
+#include "core/GameMode.h"
 #include "objects/Scene.h"
 
 namespace orxonox
@@ -45,7 +43,7 @@
         if (GameMode::showsGraphics())
         {
             assert(this->getScene()->getSceneManager()); // getScene() was already checked by WorldEntity
-            this->billboard_.setBillboardSet(this->getScene()->getSceneManager(), "Examples/Flare", ColourValue(0.5, 0.5, 0.7, 0.8), 1);
+            this->billboard_.setBillboardSet(this->getScene()->getSceneManager(), "Examples/Flare", ColourValue(0.5f, 0.5f, 0.7f, 0.8f), 1);
             this->attachOgreObject(this->billboard_.getBillboardSet());
         }
 

Modified: trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
+#include "tools/BillboardSet.h"
 #include "Projectile.h"
-#include "tools/BillboardSet.h"
-#include "util/Math.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,12 +28,8 @@
 
 #include "LightningGunProjectile.h"
 
-#include <OgreBillboardSet.h>
-
-#include "core/GameMode.h"
-#include "core/CoreIncludes.h"
-#include "objects/Scene.h"
 #include "util/Convert.h"
+#include "core/CoreIncludes.h"
 
 namespace orxonox
 {
@@ -45,7 +41,7 @@
 
         this->textureIndex_ = 1;
         this->maxTextureIndex_ = 8;
-        this->textureTimer_.setTimer(0.01, true, this, createExecutor(createFunctor(&LightningGunProjectile::changeTexture)));
+        this->textureTimer_.setTimer(0.01f, true, this, createExecutor(createFunctor(&LightningGunProjectile::changeTexture)));
         
         registerVariables();
     }

Modified: trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "tools/Timer.h"
-
 #include "BillboardProjectile.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,12 +28,9 @@
 
 #include "ParticleProjectile.h"
 
-#include <OgreParticleSystem.h>
 #include <OgreParticleEmitter.h>
-
-#include "core/GameMode.h"
+#include "tools/ParticleInterface.h"
 #include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
 #include "objects/Scene.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,10 +30,7 @@
 #define _ParticleProjectile_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "BillboardProjectile.h"
-#include "tools/ParticleInterface.h"
-#include "util/Math.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,18 +28,13 @@
 
 #include "Projectile.h"
 
-#include <OgreBillboard.h>
-
 #include "core/CoreIncludes.h"
-#include "core/Executor.h"
 #include "core/ConfigValueIncludes.h"
-#include "core/Iterator.h"
-#include "tools/ParticleInterface.h"
-
-#include "objects/worldentities/Model.h"
-#include "objects/worldentities/ParticleSpawner.h"
-#include "objects/collisionshapes/SphereCollisionShape.h"
+#include "core/Executor.h"
 #include "core/GameMode.h"
+#include "objects/collisionshapes/SphereCollisionShape.h"
+#include "objects/worldentities/pawns/Pawn.h"
+#include "objects/worldentities/ParticleSpawner.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "tools/Timer.h"
+#include "interfaces/PawnListener.h"
 #include "objects/worldentities/MovableEntity.h"
-#include "objects/worldentities/pawns/Pawn.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,11 +29,12 @@
 #include "EnergyDrink.h"
 
 #include "core/CoreIncludes.h"
+#include "core/Executor.h"
 #include "core/XMLPort.h"
-#include "objects/weaponsystem/projectiles/ParticleProjectile.h"
 #include "objects/worldentities/Model.h"
-#include "objects/weaponsystem/MuzzleFlash.h"
 
+#include "objects/weaponsystem/projectiles/Projectile.h"
+#include "objects/weaponsystem/MuzzleFlash.h"
 #include "objects/weaponsystem/Weapon.h"
 #include "objects/weaponsystem/WeaponPack.h"
 #include "objects/weaponsystem/WeaponSystem.h"
@@ -70,11 +71,6 @@
         this->material_ = material;
     }
 
-    std::string& EnergyDrink::getMaterial()
-    {
-        return this->material_;
-    }
-
     void EnergyDrink::setDelay(float d)
     {
         this->delay_ = d;

Modified: trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,10 @@
 #define _EnergyDrink_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <string>
+#include "tools/Timer.h"
 #include "objects/weaponsystem/WeaponMode.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {
@@ -46,7 +48,8 @@
 
         private:
             void setMaterial(const std::string& material);
-            std::string& getMaterial();
+            inline const std::string& getMaterial()
+                { return this->material_; }
             void setDelay(float d);
             float getDelay() const;
             void shot();

Modified: trunk/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,6 +28,7 @@
 
 #include "FusionFire.h"
 
+#include "util/Math.h"
 #include "core/CoreIncludes.h"
 #include "objects/weaponsystem/projectiles/BillboardProjectile.h"
 

Modified: trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,11 +29,12 @@
 #include "HsW01.h"
 
 #include "core/CoreIncludes.h"
+#include "core/Executor.h"
 #include "core/XMLPort.h"
-#include "objects/weaponsystem/projectiles/ParticleProjectile.h"
 #include "objects/worldentities/Model.h"
+
+#include "objects/weaponsystem/projectiles/Projectile.h"
 #include "objects/weaponsystem/MuzzleFlash.h"
-
 #include "objects/weaponsystem/Weapon.h"
 #include "objects/weaponsystem/WeaponPack.h"
 #include "objects/weaponsystem/WeaponSystem.h"

Modified: trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,9 @@
 #define _HsW01_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include "tools/Timer.h"
 #include "objects/weaponsystem/WeaponMode.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 
 #include "core/CoreIncludes.h"
 #include "objects/weaponsystem/projectiles/ParticleProjectile.h"
-
 #include "objects/weaponsystem/Weapon.h"
 #include "objects/weaponsystem/WeaponPack.h"
 #include "objects/weaponsystem/WeaponSystem.h"

Modified: trunk/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.cc
===================================================================
--- trunk/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,17 +29,11 @@
 #include "LightningGun.h"
 
 #include "core/CoreIncludes.h"
-
-#include "objects/worldentities/Billboard.h"
-
+#include "objects/weaponsystem/projectiles/LightningGunProjectile.h"
 #include "objects/weaponsystem/Weapon.h"
 #include "objects/weaponsystem/WeaponPack.h"
 #include "objects/weaponsystem/WeaponSystem.h"
 
-#include "objects/weaponsystem/projectiles/LightningGunProjectile.h"
-
-#include "util/Math.h"
-
 namespace orxonox
 {
     CreateFactory(LightningGun);

Modified: trunk/src/orxonox/objects/worldentities/Attacher.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/Attacher.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Attacher.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,9 +32,9 @@
 #include "OrxonoxPrereqs.h"
 
 #include <list>
-
+#include <string>
+#include "core/XMLNameListener.h"
 #include "objects/worldentities/StaticEntity.h"
-#include "core/XMLNameListener.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/Backlight.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/Backlight.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Backlight.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,13 +30,13 @@
 
 #include <OgreRibbonTrail.h>
 #include <OgreSceneManager.h>
+#include <OgreSceneNode.h>
 
+#include "util/Exception.h"
+#include "core/CoreIncludes.h"
 #include "core/GameMode.h"
-#include "core/CoreIncludes.h"
-#include "core/Executor.h"
 #include "core/XMLPort.h"
 #include "objects/Scene.h"
-#include "util/Exception.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/Backlight.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/Backlight.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Backlight.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,10 @@
 #define _Backlight_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <string>
+#include "interfaces/TimeFactorListener.h"
 #include "FadingBillboard.h"
-#include "tools/TimeFactorListener.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/BigExplosion.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/BigExplosion.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/BigExplosion.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,21 +27,18 @@
  */
 
 #include "BigExplosion.h"
-#include "MovableEntity.h"
-#include "Model.h"
 
-#include <OgreParticleSystem.h>
-#include <OgreSceneNode.h>
-#include <sstream>
+//#include <sstream>
 
-#include "core/GameMode.h"
+#include "util/Exception.h"
 #include "core/CoreIncludes.h"
-#include "core/Executor.h"
 #include "core/CommandExecutor.h"
-#include "objects/Scene.h"
+#include "core/Executor.h"
+#include "core/GameMode.h"
 #include "tools/ParticleInterface.h"
+#include "objects/Scene.h"
 #include "objects/worldentities/ParticleSpawner.h"
-#include "util/Exception.h"
+#include "Model.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/BigExplosion.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/BigExplosion.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/BigExplosion.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,11 +30,10 @@
 #define _BigExplosion_H__
 
 #include "OrxonoxPrereqs.h"
-#include <string>
 
-
-#include "MovableEntity.h"
+#include <string>
 #include "tools/Timer.h"
+#include "MovableEntity.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/Billboard.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/Billboard.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Billboard.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,11 +28,9 @@
 
 #include "Billboard.h"
 
-#include <OgreBillboardSet.h>
-
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 #include "core/GameMode.h"
+#include "core/XMLPort.h"
 #include "objects/Scene.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/Billboard.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/Billboard.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Billboard.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,14 +30,15 @@
 #define _Billboard_H__
 
 #include "OrxonoxPrereqs.h"
-#include "StaticEntity.h"
+
 #include "util/Math.h"
 #include "tools/BillboardSet.h"
-#include "objects/Teamcolourable.h"
+#include "interfaces/TeamColourable.h"
+#include "StaticEntity.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport Billboard : public StaticEntity, public Teamcolourable
+    class _OrxonoxExport Billboard : public StaticEntity, public TeamColourable
     {
         public:
             Billboard(BaseObject* creator);

Modified: trunk/src/orxonox/objects/worldentities/BlinkingBillboard.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/BlinkingBillboard.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/BlinkingBillboard.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,10 +28,9 @@
 
 #include "BlinkingBillboard.h"
 
-#include "core/GameMode.h"
 #include "core/CoreIncludes.h"
+#include "core/GameMode.h"
 #include "core/XMLPort.h"
-#include "util/Math.h"
 
 namespace orxonox
 {
@@ -79,9 +78,9 @@
         {
             this->time_ += dt;
             if (this->bQuadratic_)
-                this->setScale(this->amplitude_ * square(sin((6.2831853 * this->time_ + this->phase_.valueRadians()) * this->frequency_)));
+                this->setScale(this->amplitude_ * static_cast<float>(square(sin((6.2831853 * this->time_ + this->phase_.valueRadians()) * this->frequency_))));
             else
-                this->setScale(this->amplitude_ * sin((6.2831853 * this->time_ + this->phase_.valueRadians()) * this->frequency_));
+                this->setScale(this->amplitude_ * static_cast<float>(sin((6.2831853 * this->time_ + this->phase_.valueRadians()) * this->frequency_)));
         }
     }
 }

Modified: trunk/src/orxonox/objects/worldentities/BlinkingBillboard.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/BlinkingBillboard.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/BlinkingBillboard.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,10 @@
 #define _BlinkingBillboard_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include "util/Math.h"
+#include "interfaces/Tickable.h"
 #include "Billboard.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/Camera.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/Camera.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Camera.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,14 +28,12 @@
 
 #include "Camera.h"
 
-#include <string>
-#include <cassert>
-
 #include <OgreCamera.h>
 #include <OgreSceneManager.h>
 #include <OgreSceneNode.h>
 
 #include "util/Exception.h"
+#include "util/String.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 #include "objects/Scene.h"

Modified: trunk/src/orxonox/objects/worldentities/Camera.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/Camera.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Camera.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
+#include "interfaces/Tickable.h"
 #include "objects/worldentities/StaticEntity.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/CameraPosition.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/CameraPosition.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/CameraPosition.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,8 +28,6 @@
 
 #include "CameraPosition.h"
 
-#include <OgreCamera.h>
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "Camera.h"

Modified: trunk/src/orxonox/objects/worldentities/CameraPosition.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/CameraPosition.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/CameraPosition.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _CameraPosition_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "objects/worldentities/StaticEntity.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/ControllableEntity.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/ControllableEntity.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ControllableEntity.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,12 +29,12 @@
 #include "ControllableEntity.h"
 
 #include <OgreSceneManager.h>
+#include <OgreSceneNode.h>
 
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 #include "core/GameMode.h"
 #include "core/XMLPort.h"
-#include "core/Template.h"
 
 #include "objects/Scene.h"
 #include "objects/infos/PlayerInfo.h"

Modified: trunk/src/orxonox/objects/worldentities/ControllableEntity.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/ControllableEntity.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ControllableEntity.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,10 @@
 #define _ControllableEntity_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <list>
+#include <string>
+#include "util/Math.h"
 #include "MobileEntity.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/ExplosionChunk.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/ExplosionChunk.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ExplosionChunk.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,14 +28,12 @@
 
 #include "ExplosionChunk.h"
 
-#include <OgreParticleSystem.h>
-
-#include "core/GameMode.h"
 #include "core/CoreIncludes.h"
 #include "core/Executor.h"
+#include "core/GameMode.h"
+#include "util/Exception.h"
 #include "objects/Scene.h"
 #include "tools/ParticleInterface.h"
-#include "util/Exception.h"
 
 namespace orxonox
 {
@@ -152,12 +150,12 @@
 
             Vector3 change(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1));
             change.normalise();
-            change *= rnd(0.4, 0.8);
+            change *= rnd(0.4f, 0.8f);
             Vector3 velocity = this->getVelocity();
             velocity.normalise();
             velocity += change;
             velocity.normalise();
-            velocity *= length * rnd(0.8, 1.0);
+            velocity *= length * rnd(0.8f, 1.0f);
 
             this->setVelocity(velocity);
         }

Modified: trunk/src/orxonox/objects/worldentities/ExplosionChunk.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/ExplosionChunk.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ExplosionChunk.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "tools/Timer.h"
 #include "MovableEntity.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/FadingBillboard.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/FadingBillboard.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/FadingBillboard.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,7 +29,6 @@
 #include "FadingBillboard.h"
 
 #include "core/CoreIncludes.h"
-#include "core/Executor.h"
 #include "core/XMLPort.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/FadingBillboard.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/FadingBillboard.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/FadingBillboard.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,9 +30,11 @@
 #define _FadingBillboard_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include "util/Math.h"
+#include "tools/Timer.h"
+#include "interfaces/Tickable.h"
 #include "Billboard.h"
-#include "objects/Tickable.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/ForceField.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/ForceField.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ForceField.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,9 +27,9 @@
  */
 
 #include "ForceField.h"
-#include "core/XMLPort.h"
 
 #include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
 #include "objects/worldentities/MobileEntity.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/ForceField.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/ForceField.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ForceField.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,10 @@
 #ifndef _ForceField_H__
 #define _ForceField_H__
 
+#include "OrxonoxPrereqs.h"
+
+#include "interfaces/Tickable.h"
 #include "StaticEntity.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/Light.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/Light.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Light.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,15 +28,14 @@
 
 #include "Light.h"
 
-#include <sstream>
-#include <cassert>
-
 #include <OgreSceneManager.h>
+#include <OgreLight.h>
+#include <boost/static_assert.hpp>
 
 #include "util/String.h"
 #include "util/Exception.h"
+#include "core/CoreIncludes.h"
 #include "core/GameMode.h"
-#include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/Scene.h"
 
@@ -44,6 +43,11 @@
 {
     CreateFactory(Light);
 
+    // Be sure we don't do bad conversions
+    BOOST_STATIC_ASSERT((int)Ogre::Light::LT_POINT       == (int)Light::LT_POINT);
+    BOOST_STATIC_ASSERT((int)Ogre::Light::LT_DIRECTIONAL == (int)Light::LT_DIRECTIONAL);
+    BOOST_STATIC_ASSERT((int)Ogre::Light::LT_SPOTLIGHT   == (int)Light::LT_SPOTLIGHT);
+
     Light::Light(BaseObject* creator) : StaticEntity(creator)
     {
         RegisterObject(Light);
@@ -51,7 +55,7 @@
         this->light_ = 0;
         this->diffuse_ = ColourValue::White;
         this->specular_ = ColourValue::White;
-        this->type_ = Ogre::Light::LT_POINT;
+        this->type_ = Light::LT_POINT;
         this->attenuation_ = Vector4(100000, 1, 0, 0);
         this->spotlightRange_ = Vector3(40.0f, 30.0f, 1.0f);
 
@@ -135,24 +139,24 @@
     void Light::setTypeString(const std::string& type)
     {
         if (type == "point")
-            this->setType(Ogre::Light::LT_POINT);
+            this->setType(Light::LT_POINT);
         else if (type == "directional")
-            this->setType(Ogre::Light::LT_DIRECTIONAL);
+            this->setType(Light::LT_DIRECTIONAL);
         else if (type == "spotlight")
-            this->setType(Ogre::Light::LT_SPOTLIGHT);
+            this->setType(Light::LT_SPOTLIGHT);
         else
-            this->setType(Ogre::Light::LT_POINT);
+            this->setType(Light::LT_POINT);
     }
 
     std::string Light::getTypeString() const
     {
         switch (this->type_)
         {
-            case Ogre::Light::LT_DIRECTIONAL:
+            case Light::LT_DIRECTIONAL:
                 return "directional";
-            case Ogre::Light::LT_SPOTLIGHT:
+            case Light::LT_SPOTLIGHT:
                 return "spotlight";
-            case Ogre::Light::LT_POINT:
+            case Light::LT_POINT:
             default:
                 return "point";
         }
@@ -162,7 +166,7 @@
     {
         if (this->light_)
         {
-            this->light_->setType(this->type_);
+            this->light_->setType(static_cast<Ogre::Light::LightTypes>(this->type_));
 
             if (this->type_ != Ogre::Light::LT_DIRECTIONAL)
                 this->updateAttenuation();

Modified: trunk/src/orxonox/objects/worldentities/Light.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/Light.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Light.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,19 +30,28 @@
 #define _Light_H__
 
 #include "OrxonoxPrereqs.h"
-#include "StaticEntity.h"
 
 #include <string>
-#include <OgreLight.h>
-
 #include "util/Math.h"
-#include "objects/Teamcolourable.h"
+#include "interfaces/TeamColourable.h"
+#include "StaticEntity.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport Light : public StaticEntity, public Teamcolourable
+    class _OrxonoxExport Light : public StaticEntity, public TeamColourable
     {
         public:
+            enum LightTypes // Copy from the Ogre enum
+            {
+                /// Point light sources give off light equally in all directions, so require only position not direction
+                LT_POINT,
+                /// Directional lights simulate parallel light beams from a distant source, hence have direction but no position
+                LT_DIRECTIONAL,
+                /// Spotlights simulate a cone of light from a source so require position and direction, plus extra values for falloff
+                LT_SPOTLIGHT
+            };
+
+        public:
             Light(BaseObject* creator);
             virtual ~Light();
 
@@ -54,9 +63,9 @@
             inline Ogre::Light* getLight()
                 { return this->light_; }
 
-            inline void setType(Ogre::Light::LightTypes type)
+            inline void setType(Light::LightTypes type)
                 { this->type_ = type; this->updateType(); }
-            inline Ogre::Light::LightTypes getType() const
+            inline Light::LightTypes getType() const
                 { return this->type_; }
 
             inline void setDiffuseColour(const ColourValue& colour)
@@ -132,7 +141,7 @@
             void updateSpotlightRange();
 
             Ogre::Light* light_;
-            Ogre::Light::LightTypes type_;
+            LightTypes type_;
             ColourValue diffuse_;
             ColourValue specular_;
             Vector4 attenuation_;

Modified: trunk/src/orxonox/objects/worldentities/MobileEntity.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/MobileEntity.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/MobileEntity.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,14 +29,10 @@
 #include "MobileEntity.h"
 
 #include <OgreSceneNode.h>
-#include "BulletDynamics/Dynamics/btRigidBody.h"
+#include <BulletDynamics/Dynamics/btRigidBody.h>
 
-#include "util/Debug.h"
-#include "util/MathConvert.h"
-#include "util/Exception.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-
 #include "objects/Scene.h"
 
 namespace orxonox
@@ -95,7 +91,7 @@
                 this->angularVelocity_.y += angularAcceleration_.y * dt;
                 this->angularVelocity_.z += angularAcceleration_.z * dt;
                 // Calculate new orientation with quaternion derivative. This is about 30% faster than with angle/axis method.
-                float mult = dt * 0.5;
+                float mult = dt * 0.5f;
                 // TODO: this could be optimized by writing it out. The calls currently create 4 new Quaternions!
                 Quaternion newOrientation(0.0f, this->angularVelocity_.x * mult, this->angularVelocity_.y * mult, this->angularVelocity_.z * mult);
                 newOrientation = this->node_->getOrientation() + newOrientation * this->node_->getOrientation();

Modified: trunk/src/orxonox/objects/worldentities/MobileEntity.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/MobileEntity.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/MobileEntity.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
+#include "interfaces/Tickable.h"
 #include "WorldEntity.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/Model.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/Model.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Model.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,11 +26,12 @@
  *
  */
 
+#include "Model.h"
 
 #include <OgreEntity.h>
-#include "Model.h"
+
+#include "core/CoreIncludes.h"
 #include "core/GameMode.h"
-#include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/Scene.h"
 

Modified: trunk/src/orxonox/objects/worldentities/Model.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/Model.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Model.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,10 @@
 #define _Model_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <string>
+#include "tools/Mesh.h"
 #include "StaticEntity.h"
-#include "tools/Mesh.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/MovableEntity.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/MovableEntity.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/MovableEntity.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,9 +30,9 @@
 #include "MovableEntity.h"
 
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 #include "core/Executor.h"
 #include "core/GameMode.h"
+#include "core/XMLPort.h"
 #include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/MovableEntity.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/MovableEntity.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/MovableEntity.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,9 +32,10 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include "MobileEntity.h"
+#include "util/Math.h"
 #include "network/ClientConnectionListener.h"
 #include "tools/Timer.h"
+#include "MobileEntity.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/ParticleEmitter.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/ParticleEmitter.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ParticleEmitter.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,13 +33,11 @@
 
 #include "ParticleEmitter.h"
 
-#include <OgreParticleSystem.h>
-
-#include "tools/ParticleInterface.h"
 #include "util/Exception.h"
-#include "core/GameMode.h"
 #include "core/CoreIncludes.h"
+#include "core/GameMode.h"
 #include "core/XMLPort.h"
+#include "tools/ParticleInterface.h"
 #include "objects/Scene.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/ParticleEmitter.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/ParticleEmitter.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ParticleEmitter.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,6 +30,8 @@
 #define _ParticleEmitter_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <string>
 #include "StaticEntity.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/ParticleSpawner.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/ParticleSpawner.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ParticleSpawner.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -74,7 +74,7 @@
     {
         SUPER(ParticleSpawner, processEvent, event);
 
-        SetEvent(ParticleSpawner, "spawn", spawn, event);
+        ORXONOX_SET_EVENT(ParticleSpawner, "spawn", spawn, event);
     }
 
     void ParticleSpawner::configure(float lifetime, float startdelay, float destroydelay, bool autodestroy)

Modified: trunk/src/orxonox/objects/worldentities/ParticleSpawner.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/ParticleSpawner.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/ParticleSpawner.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "tools/Timer.h"
 #include "ParticleEmitter.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/Planet.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/Planet.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Planet.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,19 +28,16 @@
 
 #include "Planet.h"
 
-#include <math.h>
-
 #include <OgreEntity.h>
 #include <OgreBillboardSet.h>
-#include <OgreHardwareVertexBuffer.h>
-#include <OgreMeshManager.h>
+#include <OgreProgressiveMesh.h>
 
 #include "core/CoreIncludes.h"
+#include "core/GameMode.h"
 #include "core/XMLPort.h"
 #include "objects/Scene.h"
+#include "Camera.h"
 #include "CameraManager.h"
-#include "Camera.h"
-#include "GraphicsManager.h"
 
 namespace orxonox
 {
@@ -69,18 +66,21 @@
         if(!this->isVisible())
             return;
 
-        Camera* activeCamera = CameraManager::getInstance().getActiveCamera();
-        if(activeCamera)
+        if (GameMode::showsGraphics())
         {
-            float distance = this->getPosition().distance( activeCamera->getWorldPosition() );
-            //             COUT(2) << distance << std::endl;
-            float planetRadius = this->getScale();
+            Camera* activeCamera = CameraManager::getInstance().getActiveCamera();
+            if(activeCamera)
+            {
+                float distance = this->getPosition().distance( activeCamera->getWorldPosition() );
+                //             COUT(2) << distance << std::endl;
+                float planetRadius = this->getScale();
 
-            float newScale = 2 * distance / sqrt(distance*distance - planetRadius*planetRadius);
-            float tempTest = newScale*(1+float(this->atmosphereSize)/float(this->imageSize));
-            newScale = tempTest;
+                float newScale = 2 * distance / sqrt(distance*distance - planetRadius*planetRadius);
+                float tempTest = newScale*(1+float(this->atmosphereSize)/float(this->imageSize));
+                newScale = tempTest;
 
-            this->billboard_.getBillboardSet()->setDefaultDimensions(newScale, newScale);
+                this->billboard_.getBillboardSet()->setDefaultDimensions(newScale, newScale);
+            }
         }
 
         SUPER(Planet, tick, dt);
@@ -90,18 +90,18 @@
     {
         float scaleFactor = this->getScale();
 
-        this->distList.push_back(10.0*scaleFactor);
-        this->distList.push_back(19.0*scaleFactor);
-        this->distList.push_back(27.0*scaleFactor);
-        this->distList.push_back(34.0*scaleFactor);
-        this->distList.push_back(40.0*scaleFactor);
-        this->distList.push_back(45.0*scaleFactor);
-        this->distList.push_back(49.0*scaleFactor);
-        this->distList.push_back(52.0*scaleFactor);
-        this->distList.push_back(54.0*scaleFactor);
-        this->distList.push_back(55.0*scaleFactor);
+        this->distList.push_back(10.0f*scaleFactor);
+        this->distList.push_back(19.0f*scaleFactor);
+        this->distList.push_back(27.0f*scaleFactor);
+        this->distList.push_back(34.0f*scaleFactor);
+        this->distList.push_back(40.0f*scaleFactor);
+        this->distList.push_back(45.0f*scaleFactor);
+        this->distList.push_back(49.0f*scaleFactor);
+        this->distList.push_back(52.0f*scaleFactor);
+        this->distList.push_back(54.0f*scaleFactor);
+        this->distList.push_back(55.0f*scaleFactor);
 
-        float reductionValue = 0.2;
+        float reductionValue = 0.2f;
 
         this->mesh_.getEntity()->getMesh()->generateLodLevels(distList, Ogre::ProgressiveMesh::VRQ_PROPORTIONAL, reductionValue);
         billboard_.setBillboardSet(this->getScene()->getSceneManager(), this->atmosphere_, Vector3(0,0,0));
@@ -144,11 +144,14 @@
     {
         SUPER(Planet, XMLPort, xmlelement, mode);
 
-        XMLPortParam(Planet, "atmosphere", setAtmosphere, getAtmosphere, xmlelement, mode).defaultValues("planet/Atmosphere");
-        XMLPortParam(Planet, "atmospheresize", setAtmosphereSize, getAtmosphereSize, xmlelement,mode);     
-        XMLPortParam(Planet, "imagesize", setImageSize, getImageSize, xmlelement,mode);         
-        XMLPortParam(Planet, "mesh", setMeshSource, getMeshSource, xmlelement, mode);
-        XMLPortParam(Planet, "shadow", setCastShadows, getCastShadows, xmlelement, mode).defaultValues(true);
+        if (GameMode::showsGraphics())
+        {
+            XMLPortParam(Planet, "atmosphere", setAtmosphere, getAtmosphere, xmlelement, mode).defaultValues("planet/Atmosphere");
+            XMLPortParam(Planet, "atmospheresize", setAtmosphereSize, getAtmosphereSize, xmlelement,mode);     
+            XMLPortParam(Planet, "imagesize", setImageSize, getImageSize, xmlelement,mode);         
+            XMLPortParam(Planet, "mesh", setMeshSource, getMeshSource, xmlelement, mode);
+            XMLPortParam(Planet, "shadow", setCastShadows, getCastShadows, xmlelement, mode).defaultValues(true);
+        }
     }
 
     void Planet::registerVariables()

Modified: trunk/src/orxonox/objects/worldentities/Planet.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/Planet.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/Planet.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,12 +31,10 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <OgreMesh.h>
-
+#include <string>
 #include "tools/BillboardSet.h"
 #include "tools/Mesh.h"
 #include "MovableEntity.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
@@ -107,7 +105,7 @@
             Mesh mesh_;
             float atmosphereSize;
             float imageSize;
-            Ogre::Mesh::LodDistanceList distList;
+            std::vector<float> distList;
             BillboardSet billboard_;
             bool bCastShadows_;
 

Modified: trunk/src/orxonox/objects/worldentities/PongBall.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/PongBall.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/PongBall.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 #include "core/CoreIncludes.h"
 #include "core/GameMode.h"
 #include "objects/gametypes/Gametype.h"
+#include "objects/worldentities/PongBat.h"
 #include "sound/SoundBase.h"
 
 namespace orxonox
@@ -48,7 +49,7 @@
         this->batID_ = new unsigned int[2];
         this->batID_[0] = OBJECTID_UNKNOWN;
         this->batID_[1] = OBJECTID_UNKNOWN;
-        this->relMercyOffset_ = 0.05;
+        this->relMercyOffset_ = 0.05f;
 
         this->registerVariables();
 
@@ -101,7 +102,7 @@
                 {
                     if (position.x > this->fieldWidth_ / 2 && this->bat_[1])
                     {
-                        distance = (position.z - this->bat_[1]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10) / 2);
+                        distance = (position.z - this->bat_[1]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10f) / 2);
                         if (fabs(distance) <= 1)
                         {
                             position.x = this->fieldWidth_ / 2;
@@ -121,7 +122,7 @@
                     }
                     if (position.x < -this->fieldWidth_ / 2 && this->bat_[0])
                     {
-                        distance = (position.z - this->bat_[0]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10) / 2);
+                        distance = (position.z - this->bat_[0]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10f) / 2);
                         if (fabs(distance) <= 1)
                         {
                             position.x = -this->fieldWidth_ / 2;
@@ -171,7 +172,7 @@
             {
               if (position.x > this->fieldWidth_ / 2 && this->bat_[1])
               {
-                distance = (position.z - this->bat_[1]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10) / 2);
+                distance = (position.z - this->bat_[1]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10f) / 2);
                 if (fabs(distance) <= 1)
                 {
                   position.x = this->fieldWidth_ / 2;
@@ -182,7 +183,7 @@
               }
               if (position.x < -this->fieldWidth_ / 2 && this->bat_[0])
               {
-                distance = (position.z - this->bat_[0]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10) / 2);
+                distance = (position.z - this->bat_[0]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10f) / 2);
                 if (fabs(distance) <= 1)
                 {
                   position.x = -this->fieldWidth_ / 2;
@@ -216,4 +217,21 @@
             this->setVelocity(velocity);
         }
     }
+
+    void PongBall::setBats(PongBat** bats)
+    {
+        this->bat_ = bats;
+        this->batID_[0] = this->bat_[0]->getObjectID();
+        this->batID_[1] = this->bat_[1]->getObjectID();
+    }
+
+    void PongBall::applyBats()
+    {
+        if (!this->bat_)
+            this->bat_ = new PongBat*[2];
+        if (this->batID_[0] != OBJECTID_UNKNOWN)
+            this->bat_[0] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[0]));
+        if (this->batID_[1] != OBJECTID_UNKNOWN)
+            this->bat_[1] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[1]));
+    }
 }

Modified: trunk/src/orxonox/objects/worldentities/PongBall.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/PongBall.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/PongBall.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
 #include "objects/worldentities/MovableEntity.h"
-#include "objects/worldentities/PongBat.h"
 
 namespace orxonox
 {
@@ -62,12 +62,9 @@
             float getBatLength() const
                 { return this->batlength_; }
 
-            void setBats(PongBat** bats)
-            { this->bat_ = bats; this->batID_[0] = this->bat_[0]->getObjectID(); this->batID_[1] = this->bat_[1]->getObjectID(); }
+            void setBats(PongBat** bats);
+            void applyBats();
 
-            void applyBats()
-            { if(!this->bat_) this->bat_ = new PongBat*[2]; if(this->batID_[0] != OBJECTID_UNKNOWN) this->bat_[0] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[0])); if(this->batID_[1] != OBJECTID_UNKNOWN) this->bat_[1] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[1])); }
-
             static const float MAX_REL_Z_VELOCITY;
 
         private:

Modified: trunk/src/orxonox/objects/worldentities/PongBat.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/PongBat.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/PongBat.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _PongBat_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "objects/worldentities/ControllableEntity.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/PongCenterpoint.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/PongCenterpoint.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/PongCenterpoint.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <string>
+#include <util/Math.h>
 #include "objects/worldentities/StaticEntity.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/SpawnPoint.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/SpawnPoint.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/SpawnPoint.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,8 +29,10 @@
 #include "SpawnPoint.h"
 
 #include "core/CoreIncludes.h"
+#include "core/Template.h"
 #include "core/XMLPort.h"
 #include "objects/gametypes/Gametype.h"
+#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {
@@ -70,6 +72,12 @@
         this->template_ = Template::getTemplate(name);
     }
 
+    void SpawnPoint::setTemplate(Template* temp)
+    {
+        this->template_ = temp;
+        this->templatename_ = temp->getName();
+    }
+
     Pawn* SpawnPoint::spawn()
     {
         Pawn* entity = this->spawnclass_.fabricate(this);

Modified: trunk/src/orxonox/objects/worldentities/SpawnPoint.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/SpawnPoint.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/SpawnPoint.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "core/Identifier.h"
-#include "core/Template.h"
-#include "objects/worldentities/pawns/Pawn.h"
 #include "objects/worldentities/StaticEntity.h"
 
 namespace orxonox
@@ -51,8 +50,7 @@
             inline Identifier* getSpawnClass() const
                 { return this->spawnclass_; }
 
-            inline void setTemplate(Template* temp)
-                { this->template_ = temp; this->templatename_ = temp->getName(); }
+            void setTemplate(Template* temp);
             inline Template* getTemplate() const
                 { return this->template_; }
 

Modified: trunk/src/orxonox/objects/worldentities/StaticEntity.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/StaticEntity.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/StaticEntity.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,9 +30,8 @@
 #include "StaticEntity.h"
 
 #include <OgreSceneNode.h>
-#include "BulletDynamics/Dynamics/btRigidBody.h"
-
-#include "util/Exception.h"
+#include <BulletDynamics/Dynamics/btRigidBody.h>
+#include "util/OrxAssert.h"
 #include "core/CoreIncludes.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/TeamSpawnPoint.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/TeamSpawnPoint.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/TeamSpawnPoint.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "objects/worldentities/pawns/Pawn.h"
 #include "SpawnPoint.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/WorldEntity.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/WorldEntity.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/WorldEntity.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,16 +29,20 @@
 
 #include "WorldEntity.h"
 
-#include <cassert>
+#include <OgreBillboardSet.h>
+#include <OgreCamera.h>
+#include <OgreEntity.h>
+#include <OgreParticleSystem.h>
+#include <OgreSceneManager.h>
 #include <OgreSceneNode.h>
-#include <OgreSceneManager.h>
-#include "BulletDynamics/Dynamics/btRigidBody.h"
+#include <BulletDynamics/Dynamics/btRigidBody.h>
+#include <boost/static_assert.hpp>
 
+#include "util/OrxAssert.h"
+#include "util/Convert.h"
 #include "util/Exception.h"
-#include "util/Convert.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-
 #include "objects/Scene.h"
 #include "objects/collisionshapes/WorldEntityCollisionShape.h"
 
@@ -51,6 +55,11 @@
     const Vector3 WorldEntity::DOWN  = Vector3::NEGATIVE_UNIT_Y;
     const Vector3 WorldEntity::UP    = Vector3::UNIT_Y;
 
+    // Be sure we don't do bad conversions
+    BOOST_STATIC_ASSERT((int)Ogre::Node::TS_LOCAL  == (int)WorldEntity::Local);
+    BOOST_STATIC_ASSERT((int)Ogre::Node::TS_PARENT == (int)WorldEntity::Parent);
+    BOOST_STATIC_ASSERT((int)Ogre::Node::TS_WORLD  == (int)WorldEntity::World);
+
     /**
     @brief
         Creates a new WorldEntity that may immediately be used.
@@ -462,15 +471,27 @@
 
     //! Attaches an Ogre::MovableObject to this WorldEntity.
     void WorldEntity::attachOgreObject(Ogre::MovableObject* object)
-    {
-        this->node_->attachObject(object);
-    }
+        { this->node_->attachObject(object); }
+    void WorldEntity::attachOgreObject(Ogre::BillboardSet* object)
+        { this->node_->attachObject(object); }
+    void WorldEntity::attachOgreObject(Ogre::Camera* object)
+        { this->node_->attachObject(object); }
+    void WorldEntity::attachOgreObject(Ogre::Entity* object)
+        { this->node_->attachObject(object); }
+    void WorldEntity::attachOgreObject(Ogre::ParticleSystem* object)
+        { this->node_->attachObject(object); }
 
     //! Detaches an Ogre::MovableObject from this WorldEntity.
     void WorldEntity::detachOgreObject(Ogre::MovableObject* object)
-    {
-        this->node_->detachObject(object);
-    }
+        { this->node_->detachObject(object); }
+    void WorldEntity::detachOgreObject(Ogre::BillboardSet* object)
+        { this->node_->detachObject(object); }
+    void WorldEntity::detachOgreObject(Ogre::Camera* object)
+        { this->node_->detachObject(object); }
+    void WorldEntity::detachOgreObject(Ogre::Entity* object)
+        { this->node_->detachObject(object); }
+    void WorldEntity::detachOgreObject(Ogre::ParticleSystem* object)
+        { this->node_->detachObject(object); }
 
     //! Detaches an Ogre::MovableObject (by string) from this WorldEntity.
     Ogre::MovableObject* WorldEntity::detachOgreObject(const Ogre::String& name)
@@ -500,7 +521,7 @@
     }
 
     // Note: These functions are placed in WorldEntity.h as inline functions for the release build.
-#ifndef NDEBUG
+#ifndef ORXONOX_RELEASE
     const Vector3& WorldEntity::getPosition() const
     {
         return this->node_->getPosition();
@@ -573,20 +594,20 @@
     @brief
         Translates this WorldEntity by a vector.
     @param relativeTo
-        @see TransformSpace::Enum
+        @see WorldEntity::TransformSpace
     */
-    void WorldEntity::translate(const Vector3& distance, TransformSpace::Enum relativeTo)
+    void WorldEntity::translate(const Vector3& distance, TransformSpace relativeTo)
     {
         switch (relativeTo)
         {
-        case TransformSpace::Local:
+        case WorldEntity::Local:
             // position is relative to parent so transform downwards
             this->setPosition(this->getPosition() + this->getOrientation() * distance);
             break;
-        case TransformSpace::Parent:
+        case WorldEntity::Parent:
             this->setPosition(this->getPosition() + distance);
             break;
-        case TransformSpace::World:
+        case WorldEntity::World:
             // position is relative to parent so transform upwards
             if (this->node_->getParent())
                 setPosition(getPosition() + (node_->getParent()->_getDerivedOrientation().Inverse() * distance)
@@ -601,20 +622,20 @@
     @brief
         Rotates this WorldEntity by a quaternion.
     @param relativeTo
-        @see TransformSpace::Enum
+        @see WorldEntity::TransformSpace
     */
-    void WorldEntity::rotate(const Quaternion& rotation, TransformSpace::Enum relativeTo)
+    void WorldEntity::rotate(const Quaternion& rotation, TransformSpace relativeTo)
     {
         switch(relativeTo)
         {
-        case TransformSpace::Local:
+        case WorldEntity::Local:
             this->setOrientation(this->getOrientation() * rotation);
             break;
-        case TransformSpace::Parent:
+        case WorldEntity::Parent:
             // Rotations are normally relative to local axes, transform up
             this->setOrientation(rotation * this->getOrientation());
             break;
-        case TransformSpace::World:
+        case WorldEntity::World:
             // Rotations are normally relative to local axes, transform up
             this->setOrientation(this->getOrientation() * this->getWorldOrientation().Inverse()
                 * rotation * this->getWorldOrientation());
@@ -626,22 +647,22 @@
     @brief
         Makes this WorldEntity look a specific target location.
     @param relativeTo
-        @see TransformSpace::Enum
+        @see WorldEntity::TransformSpace
     @param localDirectionVector
         The vector which normally describes the natural direction of the object, usually -Z.
     */
-    void WorldEntity::lookAt(const Vector3& target, TransformSpace::Enum relativeTo, const Vector3& localDirectionVector)
+    void WorldEntity::lookAt(const Vector3& target, TransformSpace relativeTo, const Vector3& localDirectionVector)
     {
-        Vector3 origin;
+        Vector3 origin(0, 0, 0);
         switch (relativeTo)
         {
-        case TransformSpace::Local:
+        case WorldEntity::Local:
             origin = Vector3::ZERO;
             break;
-        case TransformSpace::Parent:
+        case WorldEntity::Parent:
             origin = this->getPosition();
             break;
-        case TransformSpace::World:
+        case WorldEntity::World:
             origin = this->getWorldPosition();
             break;
         }
@@ -652,25 +673,14 @@
     @brief
         Makes this WorldEntity look in specific direction.
     @param relativeTo
-        @see TransformSpace::Enum
+        @see WorldEntity::TransformSpace
     @param localDirectionVector
         The vector which normally describes the natural direction of the object, usually -Z.
     */
-    void WorldEntity::setDirection(const Vector3& direction, TransformSpace::Enum relativeTo, const Vector3& localDirectionVector)
+    void WorldEntity::setDirection(const Vector3& direction, TransformSpace relativeTo, const Vector3& localDirectionVector)
     {
         Quaternion savedOrientation(this->getOrientation());
-        Ogre::Node::TransformSpace ogreRelativeTo;
-        switch (relativeTo)
-        {
-        case TransformSpace::Local:
-            ogreRelativeTo = Ogre::Node::TS_LOCAL; break;
-        case TransformSpace::Parent:
-            ogreRelativeTo = Ogre::Node::TS_PARENT; break;
-        case TransformSpace::World:
-            ogreRelativeTo = Ogre::Node::TS_WORLD; break;
-        default: OrxAssert(false, "Faulty TransformSpace::Enum assigned.");
-        }
-        this->node_->setDirection(direction, ogreRelativeTo, localDirectionVector);
+        this->node_->setDirection(direction, static_cast<Ogre::Node::TransformSpace>(relativeTo), localDirectionVector);
         Quaternion newOrientation(this->node_->getOrientation());
         this->node_->setOrientation(savedOrientation);
         this->setOrientation(newOrientation);
@@ -771,10 +781,10 @@
             this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT & !btCollisionObject::CF_KINEMATIC_OBJECT);
             break;
         case Kinematic:
-            this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT | btCollisionObject::CF_KINEMATIC_OBJECT);
+            this->physicalBody_->setCollisionFlags((this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT) | btCollisionObject::CF_KINEMATIC_OBJECT);
             break;
         case Static:
-            this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_KINEMATIC_OBJECT | btCollisionObject::CF_STATIC_OBJECT);
+            this->physicalBody_->setCollisionFlags((this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_KINEMATIC_OBJECT) | btCollisionObject::CF_STATIC_OBJECT);
             break;
         case None:
             assert(false); // Doesn't happen

Modified: trunk/src/orxonox/objects/worldentities/WorldEntity.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/WorldEntity.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/WorldEntity.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,14 +32,13 @@
 
 #include "OrxonoxPrereqs.h"
 
-#ifdef NDEBUG
-#include <OgreSceneNode.h>
-#else
-#include <OgrePrerequisites.h>
+#ifdef ORXONOX_RELEASE
+#  include <OgreSceneNode.h>
 #endif
-#include "LinearMath/btMotionState.h"
+#include <LinearMath/btMotionState.h>
 
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
 #include "network/synchronisable/Synchronisable.h"
 
@@ -74,6 +73,22 @@
         friend class Scene;
 
         public:
+            // Define our own transform space enum to avoid Ogre includes here
+            /**
+            @brief
+                Enumeration denoting the spaces which a transform can be relative to.
+            */
+            enum TransformSpace
+            {
+                //! Transform is relative to the local space
+                Local,
+                //! Transform is relative to the space of the parent node
+                Parent,
+                //! Transform is relative to world space
+                World
+            };
+
+        public:
             WorldEntity(BaseObject* creator);
             virtual ~WorldEntity();
 
@@ -96,8 +111,8 @@
             const Vector3& getPosition() const;
             const Vector3& getWorldPosition() const;
 
-            void translate(const Vector3& distance, TransformSpace::Enum relativeTo = TransformSpace::Parent);
-            inline void translate(float x, float y, float z, TransformSpace::Enum relativeTo = TransformSpace::Parent)
+            void translate(const Vector3& distance, TransformSpace relativeTo = WorldEntity::Parent);
+            inline void translate(float x, float y, float z, TransformSpace relativeTo = WorldEntity::Parent)
                 { this->translate(Vector3(x, y, z), relativeTo); }
 
             virtual inline const Vector3& getVelocity() const
@@ -113,20 +128,20 @@
             const Quaternion& getOrientation() const;
             const Quaternion& getWorldOrientation() const;
 
-            void rotate(const Quaternion& rotation, TransformSpace::Enum relativeTo = TransformSpace::Local);
-            inline void rotate(const Vector3& axis, const Degree& angle, TransformSpace::Enum relativeTo = TransformSpace::Local)
+            void rotate(const Quaternion& rotation, TransformSpace relativeTo = WorldEntity::Local);
+            inline void rotate(const Vector3& axis, const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
                 { this->rotate(Quaternion(angle, axis), relativeTo); }
 
-            inline void yaw(const Degree& angle, TransformSpace::Enum relativeTo = TransformSpace::Local)
+            inline void yaw(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
                 { this->rotate(Quaternion(angle, Vector3::UNIT_Y), relativeTo); }
-            inline void pitch(const Degree& angle, TransformSpace::Enum relativeTo = TransformSpace::Local)
+            inline void pitch(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
                 { this->rotate(Quaternion(angle, Vector3::UNIT_X), relativeTo); }
-            inline void roll(const Degree& angle, TransformSpace::Enum relativeTo = TransformSpace::Local)
+            inline void roll(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
                 { this->rotate(Quaternion(angle, Vector3::UNIT_Z), relativeTo); }
 
-            void lookAt(const Vector3& target, TransformSpace::Enum relativeTo = TransformSpace::Parent, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
-            void setDirection(const Vector3& direction, TransformSpace::Enum relativeTo = TransformSpace::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
-            inline void setDirection(float x, float y, float z, TransformSpace::Enum relativeTo = TransformSpace::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z)
+            void lookAt(const Vector3& target, TransformSpace relativeTo = WorldEntity::Parent, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
+            void setDirection(const Vector3& direction, TransformSpace relativeTo = WorldEntity::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
+            inline void setDirection(float x, float y, float z, TransformSpace relativeTo = WorldEntity::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z)
                 { this->setDirection(Vector3(x, y, z), relativeTo, localDirectionVector); }
 
             virtual void setScale3D(const Vector3& scale);
@@ -156,8 +171,18 @@
             inline const std::set<WorldEntity*>& getAttachedObjects() const
                 { return this->children_; }
 
-            void attachOgreObject(Ogre::MovableObject* object);
-            void detachOgreObject(Ogre::MovableObject* object);
+            void attachOgreObject(Ogre::MovableObject*  object);
+            void attachOgreObject(Ogre::BillboardSet*   object);
+            void attachOgreObject(Ogre::Camera*         object);
+            void attachOgreObject(Ogre::Entity*         object);
+            void attachOgreObject(Ogre::ParticleSystem* object);
+
+            void detachOgreObject(Ogre::MovableObject*  object);
+            void detachOgreObject(Ogre::BillboardSet*   object);
+            void detachOgreObject(Ogre::Camera*         object);
+            void detachOgreObject(Ogre::Entity*         object);
+            void detachOgreObject(Ogre::ParticleSystem* object);
+
             Ogre::MovableObject* detachOgreObject(const Ogre::String& name);
 
             inline void attachToParent(WorldEntity* parent)
@@ -426,7 +451,7 @@
     };
 
     // Inline heavily used functions for release builds. In debug, we better avoid including OgreSceneNode here.
-#ifdef NDEBUG
+#ifdef ORXONOX_RELEASE
     inline const Vector3& WorldEntity::getPosition() const
         { return this->node_->getPosition(); }
     inline const Quaternion& WorldEntity::getOrientation() const

Modified: trunk/src/orxonox/objects/worldentities/pawns/Pawn.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/pawns/Pawn.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/pawns/Pawn.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,23 +28,23 @@
 
 #include "Pawn.h"
 
-#include "core/GameMode.h"
 #include "core/CoreIncludes.h"
+#include "core/GameMode.h"
 #include "core/XMLPort.h"
-#include "util/Math.h"
+#include "network/NetworkFunction.h"
+
+#include "interfaces/PawnListener.h"
 #include "PawnManager.h"
 #include "objects/infos/PlayerInfo.h"
 #include "objects/gametypes/Gametype.h"
 #include "objects/worldentities/ParticleSpawner.h"
 #include "objects/worldentities/ExplosionChunk.h"
 #include "objects/worldentities/BigExplosion.h"
-
 #include "objects/weaponsystem/WeaponSystem.h"
 #include "objects/weaponsystem/WeaponSlot.h"
 #include "objects/weaponsystem/WeaponPack.h"
 #include "objects/weaponsystem/WeaponSet.h"
 
-#include "network/NetworkFunction.h"
 
 namespace orxonox
 {
@@ -372,13 +372,4 @@
         ControllableEntity::startLocalHumanControl();
         this->isHumanShip_ = true;
     }
-
-
-    ///////////////////
-    // Pawn Listener //
-    ///////////////////
-    PawnListener::PawnListener()
-    {
-        RegisterRootObject(PawnListener);
-    }
 }

Modified: trunk/src/orxonox/objects/worldentities/pawns/Pawn.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/pawns/Pawn.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/pawns/Pawn.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,8 +30,10 @@
 #define _Pawn_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <string>
+#include "interfaces/RadarViewable.h"
 #include "objects/worldentities/ControllableEntity.h"
-#include "objects/RadarViewable.h"
 #include "objects/pickup/PickupCollection.h"
 
 namespace orxonox
@@ -146,15 +148,6 @@
             inline void setWeaponSystem(WeaponSystem* weaponsystem)
                 { this->weaponSystem_ = weaponsystem; }
     };
-
-    class _OrxonoxExport PawnListener : virtual public OrxonoxClass
-    {
-        public:
-            PawnListener();
-            virtual ~PawnListener() {}
-
-            virtual void destroyedPawn(Pawn* pawn) = 0;
-    };
 }
 
 #endif /* _Pawn_H__ */

Modified: trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,10 +28,8 @@
 
 #include "SpaceShip.h"
 
-#include "BulletDynamics/Dynamics/btRigidBody.h"
+#include <BulletDynamics/Dynamics/btRigidBody.h>
 
-#include "util/Math.h"
-#include "util/Exception.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 #include "core/Template.h"

Modified: trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include "LinearMath/btVector3.h"
-
+#include <string>
+#include <LinearMath/btVector3.h>
+#include "util/Math.h"
 #include "Pawn.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/pawns/Spectator.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/pawns/Spectator.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/pawns/Spectator.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,19 +28,13 @@
 
 #include "Spectator.h"
 
-#include <OgreBillboardSet.h>
-
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 #include "core/GameMode.h"
-#include "objects/worldentities/Model.h"
+
+#include "tools/BillboardSet.h"
 #include "objects/Scene.h"
 #include "objects/infos/PlayerInfo.h"
-#include "objects/gametypes/Gametype.h"
-#include "tools/BillboardSet.h"
-#include "overlays/OverlayText.h"
-#include "overlays/OverlayGroup.h"
-#include "util/Convert.h"
 
 namespace orxonox
 {
@@ -64,7 +58,7 @@
         if (GameMode::showsGraphics())
         {
             this->greetingFlare_ = new BillboardSet();
-            this->greetingFlare_->setBillboardSet(this->getScene()->getSceneManager(), "Examples/Flare", ColourValue(1.0, 1.0, 0.8), Vector3(0, 20, 0), 1);
+            this->greetingFlare_->setBillboardSet(this->getScene()->getSceneManager(), "Examples/Flare", ColourValue(1.0f, 1.0f, 0.8f), Vector3(0, 20, 0), 1);
             if (this->greetingFlare_->getBillboardSet())
                 this->attachOgreObject(this->greetingFlare_->getBillboardSet());
             this->greetingFlare_->setVisible(false);

Modified: trunk/src/orxonox/objects/worldentities/pawns/Spectator.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/pawns/Spectator.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/pawns/Spectator.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,6 +31,7 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
 #include "objects/worldentities/ControllableEntity.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,9 +28,11 @@
 
 
 #include "TeamBaseMatchBase.h"
+
 #include "core/CoreIncludes.h"
+#include "interfaces/PawnListener.h"
+#include "interfaces/TeamColourable.h"
 #include "objects/gametypes/TeamBaseMatch.h"
-#include "objects/Teamcolourable.h"
 
 namespace orxonox
 {
@@ -79,9 +81,9 @@
         std::set<WorldEntity*> attachments = this->getAttachedObjects();
         for (std::set<WorldEntity*>::iterator it = attachments.begin(); it != attachments.end(); ++it)
         {
-            if ((*it)->isA(Class(Teamcolourable)))
+            if ((*it)->isA(Class(TeamColourable)))
             {
-                Teamcolourable* tc = dynamic_cast<Teamcolourable*>(*it);
+                TeamColourable* tc = dynamic_cast<TeamColourable*>(*it);
                 tc->setTeamColour(colour);
             }
         }

Modified: trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,12 +29,12 @@
 #ifndef _TeamBaseMatchBase_H__
 #define _TeamBaseMatchBase_H__
 
+#include "OrxonoxPrereqs.h"
+
 #include "Pawn.h"
 
 namespace orxonox
 {
-
-
     namespace BaseState
     {
         enum Enum

Modified: trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,9 +30,8 @@
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-
 #include "objects/gametypes/Asteroids.h"
-#include "orxonox/objects/worldentities/pawns/Pawn.h"
+#include "objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,8 +34,10 @@
 #ifndef _CheckPoint_H__
 #define _CheckPoint_H__
 
+#include "OrxonoxPrereqs.h"
+
+#include "interfaces/RadarViewable.h"
 #include "DistanceTrigger.h"
-#include "objects/RadarViewable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,11 +28,8 @@
 
 #include "DistanceTrigger.h"
 
-#include <OgreNode.h>
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-
 #include "orxonox/objects/worldentities/pawns/Pawn.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,15 +29,12 @@
 #ifndef _DistanceTrigger_H__
 #define _DistanceTrigger_H__
 
-#include "PlayerTrigger.h"
+#include "OrxonoxPrereqs.h"
 
 #include <set>
-
 #include "core/ClassTreeMask.h"
-#include "core/BaseObject.h"
+#include "PlayerTrigger.h"
 
-#include "orxonox/objects/worldentities/ControllableEntity.h"
-
 namespace orxonox
 {
   class _OrxonoxExport DistanceTrigger : public PlayerTrigger

Modified: trunk/src/orxonox/objects/worldentities/triggers/EventTrigger.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/EventTrigger.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/EventTrigger.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -50,7 +50,7 @@
     {
         SUPER(EventTrigger, processEvent, event);
 
-        SetEvent(EventTrigger, "trigger", trigger, event);
+        ORXONOX_SET_EVENT(EventTrigger, "trigger", trigger, event);
     }
 
     bool EventTrigger::isTriggered(TriggerMode mode)

Modified: trunk/src/orxonox/objects/worldentities/triggers/EventTrigger.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/EventTrigger.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/EventTrigger.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,11 +29,9 @@
 #ifndef _EventTrigger_H__
 #define _EventTrigger_H__
 
+#include "OrxonoxPrereqs.h"
 #include "Trigger.h"
 
-#include "core/ClassTreeMask.h"
-#include "core/BaseObject.h"
-
 namespace orxonox
 {
     class _OrxonoxExport EventTrigger : public Trigger

Modified: trunk/src/orxonox/objects/worldentities/triggers/PlayerTrigger.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/PlayerTrigger.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/PlayerTrigger.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,7 +33,6 @@
 */
 
 #include "PlayerTrigger.h"
-
 #include "core/CoreIncludes.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/triggers/PlayerTrigger.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/PlayerTrigger.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/PlayerTrigger.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,7 +36,6 @@
 #define _PlayerTrigger_H__
 
 #include "OrxonoxPrereqs.h"
-
 #include "Trigger.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/objects/worldentities/triggers/Trigger.cc
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/Trigger.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/Trigger.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,13 +28,10 @@
 
 #include "Trigger.h"
 
-#include <OgreBillboard.h>
-#include <OgreBillboardSet.h>
-#include "util/Debug.h"
 #include "core/CoreIncludes.h"
 #include "core/ConsoleCommand.h"
-#include "core/XMLPort.h"
 #include "core/GameMode.h"
+#include "core/XMLPort.h"
 #include "objects/Scene.h"
 
 namespace orxonox
@@ -236,7 +233,7 @@
   bool Trigger::switchState()
   {
     if (( (this->latestState_ & 2) && this->bStayActive_ && (this->remainingActivations_ <= 0))
-     || (!(this->latestState_ & 2))                      && (this->remainingActivations_ == 0))
+     || (!(this->latestState_ & 2)                       && (this->remainingActivations_ == 0)))
       return false;
     else
     {

Modified: trunk/src/orxonox/objects/worldentities/triggers/Trigger.h
===================================================================
--- trunk/src/orxonox/objects/worldentities/triggers/Trigger.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/objects/worldentities/triggers/Trigger.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,14 +29,14 @@
 #ifndef _Trigger_H__
 #define _Trigger_H__
 
+#include "OrxonoxPrereqs.h"
+
 #include <set>
 #include <queue>
 
-#include "OrxonoxPrereqs.h"
-
-#include "objects/Tickable.h"
+#include "tools/BillboardSet.h"
+#include "interfaces/Tickable.h"
 #include "objects/worldentities/StaticEntity.h"
-#include "tools/BillboardSet.h"
 
 namespace orxonox
 {

Deleted: trunk/src/orxonox/orxonox.vcproj.user
===================================================================
--- trunk/src/orxonox/orxonox.vcproj.user	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/orxonox.vcproj.user	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioUserFile
-	ProjectType="Visual C++"
-	Version="${VISUAL_STUDIO_VERSION_SIMPLE}.00"
-	ShowAllFiles="false"
-	>
-	<Configurations>
-		<Configuration
-			Name="Debug|${MSVC_PLATFORM}"
-			>
-			<DebugSettings
-				WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)"
-				Environment="Path=${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"
-				EnvironmentMerge="true"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|${MSVC_PLATFORM}"
-			>
-			<DebugSettings
-				WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)"
-				Environment="Path=${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"
-				EnvironmentMerge="true"
-			/>
-		</Configuration>
-		<Configuration
-			Name="MinSizeRel|${MSVC_PLATFORM}"
-			>
-			<DebugSettings
-				WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)"
-				Environment="Path=${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"
-				EnvironmentMerge="true"
-			/>
-		</Configuration>
-		<Configuration
-			Name="RelWithDebInfo|${MSVC_PLATFORM}"
-			>
-			<DebugSettings
-				WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)"
-				Environment="Path=${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"
-				EnvironmentMerge="true"
-			/>
-		</Configuration>
-	</Configurations>
-</VisualStudioUserFile>

Copied: trunk/src/orxonox/orxonox.vcproj.user.in (from rev 3195, branches/pch/src/orxonox/orxonox.vcproj.user.in)
===================================================================
--- trunk/src/orxonox/orxonox.vcproj.user.in	                        (rev 0)
+++ trunk/src/orxonox/orxonox.vcproj.user.in	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioUserFile
+	ProjectType="Visual C++"
+	Version="${VISUAL_STUDIO_VERSION_SIMPLE}.00"
+	ShowAllFiles="false"
+	>
+	<Configurations>
+		<Configuration
+			Name="Debug|${MSVC_PLATFORM}"
+			>
+			<DebugSettings
+				WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)"
+				Environment="Path=${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"
+				EnvironmentMerge="true"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|${MSVC_PLATFORM}"
+			>
+			<DebugSettings
+				WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)"
+				Environment="Path=${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"
+				EnvironmentMerge="true"
+			/>
+		</Configuration>
+		<Configuration
+			Name="MinSizeRel|${MSVC_PLATFORM}"
+			>
+			<DebugSettings
+				WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)"
+				Environment="Path=${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"
+				EnvironmentMerge="true"
+			/>
+		</Configuration>
+		<Configuration
+			Name="RelWithDebInfo|${MSVC_PLATFORM}"
+			>
+			<DebugSettings
+				WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)"
+				Environment="Path=${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"
+				EnvironmentMerge="true"
+			/>
+		</Configuration>
+	</Configurations>
+</VisualStudioUserFile>

Modified: trunk/src/orxonox/overlays/FadeoutText.cc
===================================================================
--- trunk/src/orxonox/overlays/FadeoutText.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/FadeoutText.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,7 +29,7 @@
 #include "FadeoutText.h"
 
 #include <OgreTextAreaOverlayElement.h>
-
+#include "util/Math.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 

Modified: trunk/src/orxonox/overlays/FadeoutText.h
===================================================================
--- trunk/src/orxonox/overlays/FadeoutText.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/FadeoutText.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "tools/Timer.h"
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/overlays/GUIOverlay.cc
===================================================================
--- trunk/src/orxonox/overlays/GUIOverlay.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/GUIOverlay.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,12 +27,15 @@
  */
 
 #include "GUIOverlay.h"
+
 #include <string>
 #include <sstream>
+
 #include "core/input/InputManager.h"
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "gui/GUIManager.h"
 
-#include "../gui/GUIManager.h"
-
 namespace orxonox
 {
     CreateFactory(GUIOverlay);
@@ -52,7 +55,7 @@
 
         XMLPortParam(GUIOverlay, "guiname", setGUIName, getGUIName, xmlElement, mode);
         
-        GUIManager::getInstancePtr()->registerOverlay(this->guiName_, this);
+        GUIManager::getInstance().registerOverlay(this->guiName_, this);
     }
 
     void GUIOverlay::changedVisibility()
@@ -65,14 +68,14 @@
             std::stringstream out;
             out << (long)this;
             str = out.str();
-            GUIManager::getInstancePtr()->executeCode("showCursor()");
+            GUIManager::getInstance().executeCode("showCursor()");
             InputManager::getInstance().requestEnterState("guiMouseOnly");
-            GUIManager::getInstancePtr()->executeCode("showGUI(\"" + this->guiName_ + "\", " + str + ")");
+            GUIManager::getInstance().executeCode("showGUI(\"" + this->guiName_ + "\", " + str + ")");
         }
         else
         {
-            GUIManager::getInstancePtr()->executeCode("hideGUI(\"" + this->guiName_ + "\")");
-            GUIManager::getInstancePtr()->executeCode("hideCursor()");
+            GUIManager::getInstance().executeCode("hideGUI(\"" + this->guiName_ + "\")");
+            GUIManager::getInstance().executeCode("hideCursor()");
             InputManager::getInstance().requestLeaveState("guiMouseOnly");
         }
     }

Modified: trunk/src/orxonox/overlays/GUIOverlay.h
===================================================================
--- trunk/src/orxonox/overlays/GUIOverlay.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/GUIOverlay.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,14 +29,11 @@
 #ifndef _GUIOverlay_H__
 #define _GUIOverlay_H__
 
+#include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "OrxonoxOverlay.h"
-#include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
-
-#include "core/XMLPort.h"
-
 namespace orxonox
 {
     class _OrxonoxExport GUIOverlay : public OrxonoxOverlay

Modified: trunk/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- trunk/src/orxonox/overlays/OrxonoxOverlay.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/OrxonoxOverlay.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -214,11 +214,11 @@
             float angle = this->angle_.valueDegrees();
             if (angle < 0.0)
                 angle = -angle;
-            angle -= 180.0 * (int)(angle / 180.0);
+            angle -= 180.0f * (int)(angle / 180.0);
 
             // take the reverse if angle is about 90 degrees
             float tempAspect;
-            if (angle > 89.0 && angle < 91.0)
+            if (angle > 89.0f && angle < 91.0f)
             {
                 tempAspect = 1.0 / this->windowAspectRatio_;
                 rotState_ = Vertical;
@@ -230,14 +230,14 @@
             }
             else
             {
-                tempAspect = 1.0;
+                tempAspect = 1.0f;
                 rotState_ = Inbetween;
             }
 
             // note: this is only an approximation that is mostly valid when the
             // magnitude of the width is about the magnitude of the height.
             // Correctly we would have to take the square root of width*height
-            this->sizeCorrection_.x = 2.0 / (tempAspect + 1.0);
+            this->sizeCorrection_.x = 2.0f / (tempAspect + 1.0f);
             this->sizeCorrection_.y = tempAspect * this->sizeCorrection_.x;
         }
         else

Modified: trunk/src/orxonox/overlays/OrxonoxOverlay.h
===================================================================
--- trunk/src/orxonox/overlays/OrxonoxOverlay.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/OrxonoxOverlay.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,10 +36,12 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
-#include "tools/WindowEventListener.h"
+#include <string>
+
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
+#include "interfaces/WindowEventListener.h"
 
 namespace orxonox
 {
@@ -133,10 +135,10 @@
         void setSize(const Vector2& size)         { this->size_ = size; this->sizeChanged(); }
 
         //! Gets the current size that was set (uncorrected)
-        const Vector2& getSize() const                   { return this->size_; }
+        const Vector2& getSize() const            { return this->size_; }
 
         //! Gets the actual size of the overlay on the screen (corrected)
-        Vector2 getActualSize() const      { return this->size_ * this->sizeCorrection_; }
+        Vector2 getActualSize() const             { return this->size_ * this->sizeCorrection_; }
 
         //! Gets the current size correction (default: 1.0, 1.0)
         const Vector2& getSizeCorrection() const  { return this->sizeCorrection_; }
@@ -197,7 +199,7 @@
         Vector2 position_;                         //!< Position of the pickPoint on the screen.
         Vector2 pickPoint_;                        //!< Point on the overlay to pick when translating
         Degree angle_;                             //!< Rotation angle of the overlay
-        RotationState rotState_;             //!< horizontal, vertical or inbetween
+        RotationState rotState_;                   //!< horizontal, vertical or inbetween
 
     private:
         void windowResized(unsigned int newWidth, unsigned int newHeight);

Modified: trunk/src/orxonox/overlays/OverlayGroup.cc
===================================================================
--- trunk/src/orxonox/overlays/OverlayGroup.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/OverlayGroup.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,10 +33,8 @@
 
 #include "OverlayGroup.h"
 
-#include "util/Debug.h"
 #include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
-#include "core/Iterator.h"
 #include "core/XMLPort.h"
 #include "OrxonoxOverlay.h"
 

Modified: trunk/src/orxonox/overlays/OverlayGroup.h
===================================================================
--- trunk/src/orxonox/overlays/OverlayGroup.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/OverlayGroup.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,9 +37,9 @@
 #include "OrxonoxPrereqs.h"
 
 #include <set>
-#include <OgrePrerequisites.h>
+#include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
-#include "util/Math.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/overlays/OverlayText.cc
===================================================================
--- trunk/src/orxonox/overlays/OverlayText.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/OverlayText.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,15 +30,22 @@
 
 #include <OgreOverlayManager.h>
 #include <OgrePanelOverlayElement.h>
+#include <OgreTextAreaOverlayElement.h>
+#include <boost/static_assert.hpp>
 
 #include "util/String.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 
+
 namespace orxonox
 {
     CreateFactory(OverlayText);
 
+    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Left   == (int)OverlayText::Left);
+    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Center == (int)OverlayText::Center);
+    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Right  == (int)OverlayText::Right);
+
     OverlayText::OverlayText(BaseObject* creator)
         : OrxonoxOverlay(creator)
     {
@@ -75,20 +82,14 @@
         XMLPortParam(OverlayText, "spacewidth", setSpaceWidth,      getSpaceWidth,      xmlElement, mode);
     }
 
-    void OverlayText::setFont(const std::string& font)
-    {
-        if (font != "")
-            this->text_->setFontName(font);
-    }
-
     void OverlayText::setAlignmentString(const std::string& alignment)
     {
         if (alignment == "right")
-            this->setAlignment(Ogre::TextAreaOverlayElement::Right);
+            this->setAlignment(OverlayText::Right);
         else if (alignment == "center")
-            this->setAlignment(Ogre::TextAreaOverlayElement::Center);
+            this->setAlignment(OverlayText::Center);
         else // "left" and default
-            this->setAlignment(Ogre::TextAreaOverlayElement::Left);
+            this->setAlignment(OverlayText::Left);
     }
 
     std::string OverlayText::getAlignmentString() const
@@ -119,4 +120,51 @@
 
         positionChanged();
     }
+
+    void OverlayText::setCaption(const std::string& caption)
+    {
+        this->text_->setCaption(caption);
+        this->changedCaption();
+    }
+    std::string OverlayText::getCaption() const
+    {
+        return this->text_->getCaption();
+    }
+
+    void OverlayText::setFont(const std::string& font)
+    {
+        if (font != "")
+            this->text_->setFontName(font);
+    }
+    const std::string& OverlayText::getFont() const
+    {
+        return this->text_->getFontName();
+    }
+
+    void OverlayText::setSpaceWidth(float width)
+    {
+        this->text_->setSpaceWidth(width);
+    }
+    float OverlayText::getSpaceWidth() const
+    {
+        return this->text_->getSpaceWidth();
+    }
+
+    void OverlayText::setColour(const ColourValue& colour)
+    {
+        this->text_->setColour(colour); this->changedColour();
+    }
+    const ColourValue& OverlayText::getColour() const
+    {
+        return this->text_->getColour();
+    }
+
+    void OverlayText::setAlignment(OverlayText::Alignment alignment)
+    {
+        this->text_->setAlignment(static_cast<Ogre::TextAreaOverlayElement::Alignment>(alignment));
+    }
+    OverlayText::Alignment OverlayText::getAlignment() const
+    {
+        return static_cast<OverlayText::Alignment>(this->text_->getAlignment());
+    }
 }

Modified: trunk/src/orxonox/overlays/OverlayText.h
===================================================================
--- trunk/src/orxonox/overlays/OverlayText.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/OverlayText.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,8 +32,8 @@
 #include "OrxonoxPrereqs.h"
 
 #include <string>
-#include <OgrePrerequisites.h>
-#include <OgreTextAreaOverlayElement.h>
+#include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "OrxonoxOverlay.h"
 
 namespace orxonox
@@ -41,25 +41,32 @@
     class _OrxonoxExport OverlayText : public OrxonoxOverlay
     {
     public:
+        enum Alignment
+        {
+            Left,
+            Right,
+            Center
+        };
+
         OverlayText(BaseObject* creator);
         virtual ~OverlayText();
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
 
-        inline void setCaption(const std::string& caption) { this->text_->setCaption(caption); this->changedCaption(); }
-        inline std::string getCaption() const              { return this->text_->getCaption(); }
+        void setCaption(const std::string& caption);
+        std::string getCaption() const;
 
         void setFont(const std::string& font);
-        inline const std::string& getFont() const { return this->text_->getFontName(); }
+        const std::string& getFont() const;
 
-        inline void setSpaceWidth(float width) { this->text_->setSpaceWidth(width); }
-        inline float getSpaceWidth() const     { return this->text_->getSpaceWidth(); }
+        void setSpaceWidth(float width);
+        float getSpaceWidth() const;
 
-        inline void setColour(const ColourValue& colour) { this->text_->setColour(colour); this->changedColour(); }
-        inline const ColourValue& getColour() const      { return this->text_->getColour(); }
+        void setColour(const ColourValue& colour);
+        const ColourValue& getColour() const;
 
-        inline void setAlignment(Ogre::TextAreaOverlayElement::Alignment alignment) { this->text_->setAlignment(alignment); }
-        inline Ogre::TextAreaOverlayElement::Alignment getAlignment() const         { return this->text_->getAlignment(); }
+        void setAlignment(OverlayText::Alignment alignment);
+        OverlayText::Alignment getAlignment() const;
 
         void setAlignmentString(const std::string& alignment);
         std::string getAlignmentString() const;

Modified: trunk/src/orxonox/overlays/console/InGameConsole.cc
===================================================================
--- trunk/src/orxonox/overlays/console/InGameConsole.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/console/InGameConsole.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,12 +34,14 @@
 #include <OgreOverlayElement.h>
 #include <OgreOverlayManager.h>
 #include <OgreOverlayContainer.h>
+#include <OgreBorderPanelOverlayElement.h>
+#include <OgreTextAreaOverlayElement.h>
 #include <OgreFontManager.h>
 #include <OgreFont.h>
 
 #include "util/Math.h"
 #include "util/Convert.h"
-#include "util/Debug.h"
+#include "util/UTFStringConversions.h"
 #include "core/Clock.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
@@ -465,14 +467,14 @@
                 while (output.size() > this->maxCharsPerLine_)
                 {
                     ++linesUsed;
-                    this->consoleOverlayTextAreas_[index]->setCaption(convert2UTF(output.substr(0, this->maxCharsPerLine_)));
+                    this->consoleOverlayTextAreas_[index]->setCaption(multi_cast<Ogre::UTFString>(output.substr(0, this->maxCharsPerLine_)));
                     output.erase(0, this->maxCharsPerLine_);
                     output.insert(0, 1, ' ');
                     if (linesUsed > numLinesShifted_ || alwaysShift)
                         this->shiftLines();
                     this->colourLine(level, index);
                 }
-                this->consoleOverlayTextAreas_[index]->setCaption(convert2UTF(output));
+                this->consoleOverlayTextAreas_[index]->setCaption(multi_cast<Ogre::UTFString>(output));
                 this->displayedText_ = output;
                 this->numLinesShifted_ = linesUsed;
             }
@@ -490,7 +492,7 @@
                 else
                   this->inputWindowStart_ = 0;
                 this->displayedText_ = output;
-                this->consoleOverlayTextAreas_[index]->setCaption(convert2UTF(output));
+                this->consoleOverlayTextAreas_[index]->setCaption(multi_cast<Ogre::UTFString>(output));
             }
         }
     }
@@ -605,22 +607,4 @@
     {
         InGameConsole::getInstance().deactivate();
     }
-
-    /**
-        @brief Converts a string into an Ogre::UTFString.
-        @param s The string to convert
-        @return The converted string
-    */
-    /*static*/ Ogre::UTFString InGameConsole::convert2UTF(const std::string& text)
-    {
-        Ogre::UTFString utf;
-        Ogre::UTFString::code_point cp;
-        for (unsigned int i = 0; i < text.size(); ++i)
-        {
-          cp = text[i];
-          cp &= 0xFF;
-          utf.append(1, cp);
-        }
-        return utf;
-    }
 }

Modified: trunk/src/orxonox/overlays/console/InGameConsole.h
===================================================================
--- trunk/src/orxonox/overlays/console/InGameConsole.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/console/InGameConsole.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,18 +31,15 @@
 
 
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
 
+#include <string>
+#include "util/OgreForwardRefs.h"
 #include "core/Shell.h"
-#include "core/OrxonoxClass.h"
-#include "tools/WindowEventListener.h"
+#include "interfaces/WindowEventListener.h"
 
-
 namespace orxonox
 {
-    class _OrxonoxExport InGameConsole : virtual public OrxonoxClass, public ShellListener, public WindowEventListener
+    class _OrxonoxExport InGameConsole : public ShellListener, public WindowEventListener
     {
     public: // functions
         InGameConsole();
@@ -60,8 +57,6 @@
         static void openConsole();
         static void closeConsole();
 
-        static Ogre::UTFString convert2UTF(const std::string& text);
-
     private: // functions
         InGameConsole(const InGameConsole& other);
 

Modified: trunk/src/orxonox/overlays/debug/DebugFPSText.cc
===================================================================
--- trunk/src/orxonox/overlays/debug/DebugFPSText.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/debug/DebugFPSText.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 #include "DebugFPSText.h"
-#include <OgreTextAreaOverlayElement.h>
+
 #include "util/Convert.h"
 #include "core/CoreIncludes.h"
 #include "core/Game.h"
@@ -50,6 +50,6 @@
         SUPER(DebugFPSText, tick, dt);
 
         float fps = Game::getInstance().getAvgFPS();
-        this->setCaption(convertToString(fps));
+        this->setCaption(multi_cast<std::string>(fps));
     }
 }

Modified: trunk/src/orxonox/overlays/debug/DebugFPSText.h
===================================================================
--- trunk/src/orxonox/overlays/debug/DebugFPSText.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/debug/DebugFPSText.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
@@ -40,7 +40,7 @@
     {
     public:
         DebugFPSText(BaseObject* creator);
-        ~DebugFPSText();
+        virtual ~DebugFPSText();
 
         virtual void tick(float dt);
     };

Modified: trunk/src/orxonox/overlays/debug/DebugRTRText.cc
===================================================================
--- trunk/src/orxonox/overlays/debug/DebugRTRText.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/debug/DebugRTRText.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,9 +27,9 @@
  */
 
 #include "DebugRTRText.h"
-#include <OgreTextAreaOverlayElement.h>
+
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
-#include "util/Convert.h"
 #include "core/Game.h"
 
 namespace orxonox
@@ -50,6 +50,6 @@
         SUPER(DebugRTRText, tick, dt);
 
         float rtr = Game::getInstance().getAvgTickTime();
-        this->setCaption(convertToString(rtr));
+        this->setCaption(multi_cast<std::string>(rtr));
     }
 }

Modified: trunk/src/orxonox/overlays/debug/DebugRTRText.h
===================================================================
--- trunk/src/orxonox/overlays/debug/DebugRTRText.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/debug/DebugRTRText.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
@@ -40,7 +40,7 @@
     {
     public:
         DebugRTRText(BaseObject* creator);
-        ~DebugRTRText();
+        virtual ~DebugRTRText();
 
         virtual void tick(float dt);
     };

Modified: trunk/src/orxonox/overlays/hud/AnnounceMessage.h
===================================================================
--- trunk/src/orxonox/overlays/hud/AnnounceMessage.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/AnnounceMessage.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/GametypeMessageListener.h"
 #include "overlays/FadeoutText.h"
-#include "objects/GametypeMessageListener.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/overlays/hud/ChatOverlay.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/ChatOverlay.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/ChatOverlay.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,21 +28,19 @@
 
 #include "ChatOverlay.h"
 
+#include <string>
 #include <OgreTextAreaOverlayElement.h>
 
+#include "util/Convert.h"
+#include "util/UTFStringConversions.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 #include "core/Executor.h"
 
-#include "network/ClientInformation.h"
-
-#include "PlayerManager.h"
-#include "objects/infos/PlayerInfo.h"
-#include "overlays/console/InGameConsole.h"
 #include "tools/Timer.h"
+#include "objects/infos/PlayerInfo.h"
+#include "PlayerManager.h"
 
-#include "util/Convert.h"
-
 namespace orxonox
 {
     CreateFactory(ChatOverlay);
@@ -85,7 +83,7 @@
             text = message;
         }
 
-        this->messages_.push_back(InGameConsole::convert2UTF(text));
+        this->messages_.push_back(multi_cast<Ogre::UTFString>(text));
         COUT(0) << "Chat: " << text << std::endl;
 
         new Timer<ChatOverlay>(this->displayTime_, false, this, createExecutor(createFunctor(&ChatOverlay::dropMessage)), true);

Modified: trunk/src/orxonox/overlays/hud/ChatOverlay.h
===================================================================
--- trunk/src/orxonox/overlays/hud/ChatOverlay.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/ChatOverlay.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,7 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <OgreTextAreaOverlayElement.h>
+#include <list>
+#include <OgreUTFString.h>
 
 #include "network/ChatListener.h"
 #include "overlays/OverlayText.h"
@@ -42,7 +43,7 @@
     {
         public:
             ChatOverlay(BaseObject* creator);
-            ~ChatOverlay();
+            virtual ~ChatOverlay();
 
             void setConfigValues();
 

Modified: trunk/src/orxonox/overlays/hud/DeathMessage.h
===================================================================
--- trunk/src/orxonox/overlays/hud/DeathMessage.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/DeathMessage.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/GametypeMessageListener.h"
 #include "overlays/FadeoutText.h"
-#include "objects/GametypeMessageListener.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/overlays/hud/GametypeStatus.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/GametypeStatus.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/GametypeStatus.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,10 +28,8 @@
 
 #include "GametypeStatus.h"
 
-#include <OgreTextAreaOverlayElement.h>
-
-#include "core/CoreIncludes.h"
 #include "util/Convert.h"
+#include "core/CoreIncludes.h"
 #include "objects/infos/GametypeInfo.h"
 #include "objects/infos/PlayerInfo.h"
 #include "objects/worldentities/ControllableEntity.h"

Modified: trunk/src/orxonox/overlays/hud/GametypeStatus.h
===================================================================
--- trunk/src/orxonox/overlays/hud/GametypeStatus.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/GametypeStatus.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
@@ -40,7 +40,7 @@
     {
         public:
             GametypeStatus(BaseObject* creator);
-            ~GametypeStatus();
+            virtual ~GametypeStatus();
 
             virtual void tick(float dt);
             virtual void changedOwner();

Modified: trunk/src/orxonox/overlays/hud/HUDBar.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDBar.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDBar.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,6 +33,7 @@
 #include <OgreOverlayManager.h>
 #include <OgreMaterialManager.h>
 #include <OgreTechnique.h>
+#include <OgrePass.h>
 #include <OgrePanelOverlayElement.h>
 
 #include "util/Convert.h"
@@ -76,7 +77,7 @@
         this->textureUnitState_ = material->getTechnique(0)->getPass(0)->createTextureUnitState();
         this->textureUnitState_->setTextureName("bar2.tga");
         // use the default colour
-        this->textureUnitState_->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, ColourValue(0.2, 0.7, 0.2));
+        this->textureUnitState_->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, ColourValue(0.2f, 0.7f, 0.2f));
 
         this->bar_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
             .createOverlayElement("Panel", "HUDBar_bar_" + getUniqueNumberString()));

Modified: trunk/src/orxonox/overlays/hud/HUDBar.h
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDBar.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDBar.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,8 +34,11 @@
 #include "OrxonoxPrereqs.h"
 
 #include <map>
-#include <OgrePrerequisites.h>
+#include <vector>
+
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
+#include "core/BaseObject.h"
 #include "overlays/OrxonoxOverlay.h"
 
 namespace orxonox
@@ -44,7 +47,7 @@
     {
     public:
         BarColour(BaseObject* creator);
-        ~BarColour() { }
+        virtual ~BarColour() { }
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
 

Modified: trunk/src/orxonox/overlays/hud/HUDHealthBar.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDHealthBar.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDHealthBar.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,15 +28,11 @@
 
 #include "HUDHealthBar.h"
 
-#include <OgreOverlayManager.h>
-#include <OgrePanelOverlayElement.h>
-
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/worldentities/pawns/Pawn.h"
-#include "objects/items/Engine.h"
 #include "overlays/OverlayGroup.h"
-#include "util/Convert.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/overlays/hud/HUDHealthBar.h
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDHealthBar.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDHealthBar.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,10 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
+#include "interfaces/Tickable.h"
+#include "overlays/OverlayText.h"
 #include "HUDBar.h"
-#include "objects/Tickable.h"
-#include "overlays/OverlayText.h"
 
 namespace orxonox
 {
@@ -41,7 +42,7 @@
     {
         public:
             HUDHealthBar(BaseObject* creator);
-            ~HUDHealthBar();
+            virtual ~HUDHealthBar();
 
             virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
             virtual void tick(float dt);
@@ -63,9 +64,9 @@
             inline bool getTextUseBarColour() const
                 { return this->bUseBarColour_; }
 
-            inline void setTextAlignment(Ogre::TextAreaOverlayElement::Alignment alignment)
+            inline void setTextAlignment(OverlayText::Alignment alignment)
                 { this->textoverlay_->setAlignment(alignment); }
-            inline Ogre::TextAreaOverlayElement::Alignment getTextAlignment() const
+            inline OverlayText::Alignment getTextAlignment() const
                 { return this->textoverlay_->getAlignment(); }
 
             void setTextAlignmentString(const std::string& alignment)

Modified: trunk/src/orxonox/overlays/hud/HUDNavigation.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDNavigation.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDNavigation.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,6 +28,7 @@
 
 #include "HUDNavigation.h"
 
+#include <string>
 #include <OgreOverlayManager.h>
 #include <OgreTextAreaOverlayElement.h>
 #include <OgrePanelOverlayElement.h>
@@ -35,7 +36,6 @@
 #include "util/Math.h"
 #include "util/String.h"
 #include "util/Convert.h"
-#include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/Radar.h"

Modified: trunk/src/orxonox/overlays/hud/HUDNavigation.h
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDNavigation.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDNavigation.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,9 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
+#include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
@@ -41,7 +41,7 @@
     {
     public:
         HUDNavigation(BaseObject* creator);
-        ~HUDNavigation();
+        virtual ~HUDNavigation();
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
         virtual void tick(float dt);

Modified: trunk/src/orxonox/overlays/hud/HUDRadar.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDRadar.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDRadar.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,13 +34,11 @@
 
 #include "util/Math.h"
 #include "util/String.h"
-#include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "objects/Radar.h"
+#include "tools/TextureGenerator.h"
 #include "objects/worldentities/WorldEntity.h"
 #include "objects/worldentities/pawns/Pawn.h"
-#include "tools/TextureGenerator.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/overlays/hud/HUDRadar.h
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDRadar.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDRadar.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,12 +32,13 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <map>
 #include <vector>
-#include <map>
-#include <OgrePrerequisites.h>
+
+#include "util/OgreForwardRefs.h"
+#include "interfaces/RadarListener.h"
+#include "interfaces/RadarViewable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/RadarListener.h"
-#include "objects/RadarViewable.h"
 
 namespace orxonox
 {
@@ -45,7 +46,7 @@
     {
     public:
         HUDRadar(BaseObject* creator);
-        ~HUDRadar();
+        virtual ~HUDRadar();
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
         virtual void changedOwner();

Modified: trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,6 +28,7 @@
  */
 
 #include "HUDSpeedBar.h"
+
 #include "core/CoreIncludes.h"
 #include "objects/worldentities/pawns/SpaceShip.h"
 #include "objects/items/Engine.h"

Modified: trunk/src/orxonox/overlays/hud/HUDSpeedBar.h
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDSpeedBar.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDSpeedBar.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,8 +32,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "HUDBar.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
@@ -41,7 +41,7 @@
     {
     public:
         HUDSpeedBar(BaseObject* creator);
-        ~HUDSpeedBar();
+        virtual ~HUDSpeedBar();
 
         virtual void tick(float dt);
         virtual void changedOwner();

Modified: trunk/src/orxonox/overlays/hud/HUDTimer.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDTimer.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDTimer.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,45 +28,45 @@
 
 #include "HUDTimer.h"
 
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
-#include "util/Convert.h"
 #include "objects/worldentities/ControllableEntity.h"
 #include "objects/gametypes/Gametype.h"
 
 namespace orxonox
 {
-  CreateFactory(HUDTimer);
+    CreateFactory(HUDTimer);
 
-  HUDTimer::HUDTimer(BaseObject* creator) : OverlayText(creator)
-  {
-    RegisterObject(HUDTimer);
+    HUDTimer::HUDTimer(BaseObject* creator) : OverlayText(creator)
+    {
+        RegisterObject(HUDTimer);
 
-    this->owner_ = 0;
-  }
+        this->owner_ = 0;
+    }
 
-  HUDTimer::~HUDTimer()
-  {
-  }
+    HUDTimer::~HUDTimer()
+    {
+    }
 
-  void HUDTimer::tick(float dt)
-  {
-    SUPER(HUDTimer, tick, dt);
+    void HUDTimer::tick(float dt)
+    {
+        SUPER(HUDTimer, tick, dt);
 
-    Gametype* gametype = this->getGametype();
-    
-    if(gametype)
-    {
-      if (gametype->getTimerIsActive())
-      {
-        this->setCaption(convertToString((int)gametype->getTime() + 1));
-      }
+        Gametype* gametype = this->getGametype();
+
+        if (gametype)
+        {
+            if (gametype->getTimerIsActive())
+            {
+                this->setCaption(convertToString((int)gametype->getTime() + 1));
+            }
+        }
     }
-  }
 
-  void HUDTimer::changedOwner()
-  {
-    SUPER(HUDTimer, changedOwner);
+    void HUDTimer::changedOwner()
+    {
+        SUPER(HUDTimer, changedOwner);
 
-    this->owner_ = dynamic_cast<ControllableEntity*>(this->getOwner());
-  }
+        this->owner_ = dynamic_cast<ControllableEntity*>(this->getOwner());
+    }
 }

Modified: trunk/src/orxonox/overlays/hud/HUDTimer.h
===================================================================
--- trunk/src/orxonox/overlays/hud/HUDTimer.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/HUDTimer.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,23 +31,23 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
-  class _OrxonoxExport HUDTimer : public OverlayText, public Tickable
-  {
+    class _OrxonoxExport HUDTimer : public OverlayText, public Tickable
+    {
     public:
-      HUDTimer(BaseObject* creator);
-      ~HUDTimer();
+        HUDTimer(BaseObject* creator);
+        virtual ~HUDTimer();
 
-      virtual void tick(float dt);
+        virtual void tick(float dt);
 
-      virtual void changedOwner();
+        virtual void changedOwner();
 
-      private:
+    private:
         ControllableEntity* owner_;
-  };
+    };
 }
 #endif /* _HUDTimer_H__ */

Modified: trunk/src/orxonox/overlays/hud/KillMessage.h
===================================================================
--- trunk/src/orxonox/overlays/hud/KillMessage.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/KillMessage.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/GametypeMessageListener.h"
 #include "overlays/FadeoutText.h"
-#include "objects/GametypeMessageListener.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/overlays/hud/PongScore.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/PongScore.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/PongScore.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,11 +28,9 @@
 
 #include "PongScore.h"
 
-#include <OgreTextAreaOverlayElement.h>
-
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "util/Convert.h"
 #include "objects/gametypes/Pong.h"
 #include "objects/infos/PlayerInfo.h"
 

Modified: trunk/src/orxonox/overlays/hud/PongScore.h
===================================================================
--- trunk/src/orxonox/overlays/hud/PongScore.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/PongScore.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
@@ -40,7 +40,7 @@
     {
         public:
             PongScore(BaseObject* creator);
-            ~PongScore();
+            virtual ~PongScore();
 
             virtual void tick(float dt);
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);

Modified: trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,8 +28,6 @@
 
 #include "TeamBaseMatchScore.h"
 
-#include <OgreTextAreaOverlayElement.h>
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "util/Convert.h"

Modified: trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.h
===================================================================
--- trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
@@ -40,7 +40,7 @@
     {
         public:
             TeamBaseMatchScore(BaseObject* creator);
-            ~TeamBaseMatchScore();
+            virtual ~TeamBaseMatchScore();
 
             virtual void tick(float dt);
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);

Modified: trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc
===================================================================
--- trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -46,7 +46,7 @@
 
         this->text_ = new OverlayText(this);
         this->text_->setFont("Monofur");
-        this->text_->setTextSize(0.04);
+        this->text_->setTextSize(0.04f);
         this->text_->setAlignmentString("center");
         this->text_->setColour(ColourValue::White);
         this->text_->setPickPoint(Vector2(0.5, 0));

Modified: trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.h
===================================================================
--- trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,8 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
+#include "tools/Timer.h"
 #include "HUDHealthBar.h"
-#include "tools/Timer.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/overlays/map/Map.cc
===================================================================
--- trunk/src/orxonox/overlays/map/Map.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/map/Map.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -23,38 +23,39 @@
  *      Si Sun
  *
  */
+
 #include "Map.h"
 
 #include <string>
-#include "util/String.h"
+
+#include <OgreBorderPanelOverlayElement.h>
+#include <OgreCamera.h>
+#include <OgreEntity.h>
+#include <OgreHardwarePixelBuffer.h>
+#include <OgreMaterialManager.h>
+#include <OgreMovablePlane.h>
+#include <OgreOverlay.h>
+#include <OgreOverlayContainer.h>
+#include <OgreOverlayManager.h>
+#include <OgrePass.h>
+#include <OgreRenderTexture.h>
+#include <OgreResourceGroupManager.h>
+#include <OgreRoot.h>
 #include <OgreSceneManager.h>
 #include <OgreSceneNode.h>
-#include <OgreEntity.h>
-#include <OgreNode.h>
-
-
-#include <OgreRenderWindow.h>
-#include <OgreRenderTexture.h>
+#include <OgreTechnique.h>
 #include <OgreTexture.h>
+#include <OgreTextureManager.h>
 #include <OgreViewport.h>
 
-#include <OgreMaterialManager.h>
-#include <OgreRoot.h>
-#include <OgreHardwarePixelBuffer.h>
-#include "objects/worldentities/ControllableEntity.h"
-#include "objects/worldentities/CameraPosition.h"
-
-#include <OgreOverlay.h>
-#include <OgreMovablePlane.h>
-#include <OgreOverlayElement.h>
-#include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
+#include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-#include "core/ConsoleCommand.h"
+#include "core/XMLPort.h"
+#include "interfaces/RadarViewable.h"
 #include "objects/Scene.h"
-#include "objects/RadarViewable.h"
 #include "objects/controllers/HumanController.h"
+#include "objects/worldentities/CameraPosition.h"
+#include "objects/worldentities/ControllableEntity.h"
 
  namespace orxonox
  {
@@ -263,7 +264,7 @@
         }*/
     }
 
-    Ogre::MaterialPtr Map::createRenderCamera(Ogre::Camera * cam, std::string matName)
+    Ogre::MaterialPtr Map::createRenderCamera(Ogre::Camera * cam, const std::string& matName)
     {
         Ogre::TexturePtr rttTex = Ogre::TextureManager::getSingleton().createManual(matName+"_tex", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, 512, 512, 0, Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET);
 
@@ -399,6 +400,12 @@
         }
     }
 
+    // HACK!
+    void Map::hackDestroyMap()
+    {
+        Map::OverlayMaterial_.setNull();
+    }
+
     void Map::tick(float dt)
     {
         //Debug

Modified: trunk/src/orxonox/overlays/map/Map.h
===================================================================
--- trunk/src/orxonox/overlays/map/Map.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/map/Map.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -24,29 +24,17 @@
  *
  */
 
-#ifndef _MAP_H__
-#define _MAP_H__
+#ifndef _Map_H__
+#define _Map_H__
 
-#include <string>
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreSceneManager.h>
-#include <OgreSceneNode.h>
-#include <OgreEntity.h>
-#include <OgreOverlay.h>
-#include <OgreOverlayElement.h>
-#include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
-#include <OgreMovablePlane.h>
 
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
+#include <OgreMaterial.h>
 
+#include "util/UtilPrereqs.h"
+#include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
 
-
-
 namespace orxonox
 {
     class _OrxonoxExport Map : public OrxonoxOverlay, public Tickable
@@ -54,15 +42,17 @@
 
     public: // functions
         Map(BaseObject* creator);
-        ~Map();
+        virtual ~Map();
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
         virtual void tick(float dt);
         virtual void changedOwner();
 
-        static Ogre::MaterialPtr createRenderCamera(Ogre::Camera * cam, std::string matName);
+        static Ogre::MaterialPtr createRenderCamera(Ogre::Camera * cam, const std::string& matName);
 
         static void openMap();
+        // HACK!
+        static void hackDestroyMap();
 
 //Not yet implemented
         static const int maxRange_s=1000;
@@ -125,4 +115,4 @@
     };
 }
 
-#endif /* _MAP_H__ */
+#endif /* _Map_H__ */

Modified: trunk/src/orxonox/overlays/notifications/Notification.cc
===================================================================
--- trunk/src/orxonox/overlays/notifications/Notification.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/notifications/Notification.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,15 +27,13 @@
  */
 
 /**
-    @file Notification.cc
+    @file
     @brief Implementation of the Notification class.
 */
 
 #include "Notification.h"
 
 #include "core/CoreIncludes.h"
-#include "util/Exception.h"
-
 #include "NotificationManager.h"
 
 namespace orxonox
@@ -47,6 +45,7 @@
     */
     Notification::Notification(BaseObject* creator) : BaseObject(creator)
     {
+        RegisterObject(Notification);
         this->initialize();
     }
     
@@ -75,8 +74,6 @@
     */
     void Notification::initialize(void)
     {
-        RegisterObject(Notification);
-        
         this->message_ = "";
         this->sender_ = NotificationManager::NONE;
         this->sent_ = false;

Modified: trunk/src/orxonox/overlays/notifications/Notification.h
===================================================================
--- trunk/src/orxonox/overlays/notifications/Notification.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/notifications/Notification.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file Notification.h
+    @file
     @brief Definition of the Notification class.
 */
 
@@ -37,7 +37,6 @@
 #include "OrxonoxPrereqs.h"
 
 #include <string>
-
 #include "core/BaseObject.h"
 
 namespace orxonox

Modified: trunk/src/orxonox/overlays/notifications/NotificationManager.cc
===================================================================
--- trunk/src/orxonox/overlays/notifications/NotificationManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/notifications/NotificationManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,16 +27,15 @@
  */
 
 /**
-    @file NotificationManager.cc
+    @file
     @brief Implementation of the NotificationManager class.
 */
 
 #include "NotificationManager.h"
 
-#include "core/CoreIncludes.h"
-
 #include <set>
 
+#include "core/CoreIncludes.h"
 #include "Notification.h"
 #include "NotificationQueue.h"
 

Modified: trunk/src/orxonox/overlays/notifications/NotificationManager.h
===================================================================
--- trunk/src/orxonox/overlays/notifications/NotificationManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/notifications/NotificationManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file NotificationManager.h
+    @file
     @brief Definition of the NotificationManager class.
 */
 
@@ -36,14 +36,11 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include "core/OrxonoxClass.h"
-
+#include <ctime>
 #include <map>
 #include <string>
-#include <ctime>
+#include "core/OrxonoxClass.h"
 
-#include "NotificationOverlay.h"
-
 namespace orxonox
 {
 

Modified: trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc
===================================================================
--- trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,19 +27,14 @@
  */
 
 /**
-    @file NotificationOverlay.cc
+    @file
     @brief Implementation of the NotificationOverlay class.
 */
 
 #include "NotificationOverlay.h"
 
-#include <OgreOverlayManager.h>
-#include <OgreTextAreaOverlayElement.h>
-#include <OgrePanelOverlayElement.h>
-
-#include "core/CoreIncludes.h"
 #include "util/Exception.h"
-
+#include "core/CoreIncludes.h"
 #include "Notification.h"
 #include "NotificationQueue.h"
 
@@ -52,6 +47,7 @@
     */
     NotificationOverlay::NotificationOverlay(BaseObject* creator) : OverlayText(creator)
     {
+        RegisterObject(NotificationOverlay);
         this->initialize();
     }
 
@@ -86,8 +82,6 @@
     */
     void NotificationOverlay::initialize(void)
     {
-        RegisterObject(NotificationOverlay);
-        
         this->queue_ = NULL;
     }
     
@@ -132,7 +126,7 @@
     @brief
         Clips the input message so that it meets the requirements for the maximal length of Notifications given by the NotificationQueue.
     */
-    const std::string NotificationOverlay::clipMessage(const std::string & message)
+    std::string NotificationOverlay::clipMessage(const std::string & message)
     {
         if(message.length() <= (unsigned int)this->queue_->getNotificationLength()) //!< If the message is not too long.
             return message;

Modified: trunk/src/orxonox/overlays/notifications/NotificationOverlay.h
===================================================================
--- trunk/src/orxonox/overlays/notifications/NotificationOverlay.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/notifications/NotificationOverlay.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file NotificationOverlay.h
+    @file
     @brief Definition of the NotificationOverlay class.
 */
 
@@ -37,13 +37,9 @@
 
 #include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "orxonox/overlays/OverlayText.h"
 
-#include <string>
-#include <set>
-#include <OgrePrerequisites.h>
-#include <OgreTextAreaOverlayElement.h>
-
 namespace orxonox
 {
 
@@ -71,7 +67,7 @@
                 { this->setTextSize(size); }
         
         protected:
-            const std::string clipMessage(const std::string & message); //!< Clips the input message if too long.
+            std::string clipMessage(const std::string & message); //!< Clips the input message if too long.
 
         private:
             NotificationQueue* queue_; //!< The NotificationQeue this overlay belongs to.

Modified: trunk/src/orxonox/overlays/notifications/NotificationQueue.cc
===================================================================
--- trunk/src/orxonox/overlays/notifications/NotificationQueue.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/notifications/NotificationQueue.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,23 +27,18 @@
  */
 
 /**
-    @file NotificationQueue.cc
+    @file
     @brief Implementation of the NotificationQueue class.
 */
 
 #include "NotificationQueue.h"
 
-#include <OgreOverlayManager.h>
-#include <OgreTextAreaOverlayElement.h>
-#include <list>
-#include <iostream>
 #include <sstream>
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-
-#include "Notification.h"
 #include "NotificationOverlay.h"
+#include "NotificationManager.h"
 
 namespace orxonox
 {
@@ -52,7 +47,7 @@
 
     const std::string NotificationQueue::DEFAULT_FONT = "VeraMono";
     const Vector2 NotificationQueue::DEFAULT_POSITION = Vector2(0.0,0.0);
-    const float NotificationQueue::DEFAULT_FONT_SIZE  = 0.025;
+    const float NotificationQueue::DEFAULT_FONT_SIZE  = 0.025f;
 
     /**
     @brief
@@ -60,6 +55,7 @@
     */
     NotificationQueue::NotificationQueue(BaseObject* creator) : OverlayGroup(creator)
     {
+        RegisterObject(NotificationQueue);
         this->initialize();
     }
 
@@ -80,8 +76,6 @@
     */
     void NotificationQueue::initialize(void)
     {
-        RegisterObject(NotificationQueue);
-
         this->size_ = 0;
         this->tickTime_ = 0.0;
 

Modified: trunk/src/orxonox/overlays/notifications/NotificationQueue.h
===================================================================
--- trunk/src/orxonox/overlays/notifications/NotificationQueue.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/notifications/NotificationQueue.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,7 +27,7 @@
  */
 
 /**
-    @file NotificationQueue.h
+    @file
     @brief Definition of the NotificationQueue class.
 */
 
@@ -36,19 +36,15 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <string>
-#include <set>
-#include <OgreOverlayManager.h>
-#include <OgreTextAreaOverlayElement.h>
-#include <OgrePanelOverlayElement.h>
-#include <map>
 #include <ctime>
+#include <map>
+#include <set>
+#include <string>
 
-#include "orxonox/overlays/OverlayGroup.h"
-#include "orxonox/objects/Tickable.h"
+#include "util/Math.h"
+#include "interfaces/Tickable.h"
+#include "overlays/OverlayGroup.h"
 
-#include "NotificationManager.h"
-
 namespace orxonox
 {
 

Modified: trunk/src/orxonox/overlays/stats/CMakeLists.txt
===================================================================
--- trunk/src/orxonox/overlays/stats/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -2,5 +2,4 @@
   CreateLines.cc
   Scoreboard.cc
   Stats.cc
-  StatsTest.cc
 )

Modified: trunk/src/orxonox/overlays/stats/CreateLines.cc
===================================================================
--- trunk/src/orxonox/overlays/stats/CreateLines.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/CreateLines.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,17 +26,6 @@
 
 #include "CreateLines.h"
 
-#include <string>
-#include <OgreOverlay.h>
-#include <OgreOverlayElement.h>
-#include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
-
-#include "util/Convert.h"
-#include "util/Debug.h"
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-
 #include "overlays/OverlayText.h"
 #include "overlays/stats/Stats.h"
 

Modified: trunk/src/orxonox/overlays/stats/CreateLines.h
===================================================================
--- trunk/src/orxonox/overlays/stats/CreateLines.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/CreateLines.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,16 +27,8 @@
 #ifndef _CreateLines_H__
 #define _CreateLines_H__
 
-
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
 
-#include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
-
-
 namespace orxonox
 {
     class _OrxonoxExport CreateLines

Modified: trunk/src/orxonox/overlays/stats/Scoreboard.cc
===================================================================
--- trunk/src/orxonox/overlays/stats/Scoreboard.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/Scoreboard.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,16 +26,8 @@
 
 #include "Scoreboard.h"
 
-#include <string>
-#include <OgreOverlay.h>
-#include <OgreOverlayElement.h>
-#include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
-
 #include "util/Convert.h"
-#include "util/Debug.h"
 #include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
 #include "objects/gametypes/Gametype.h"
 #include "objects/infos/PlayerInfo.h"
 #include "CreateLines.h"
@@ -100,9 +92,9 @@
         unsigned int index = 0;
         for (std::map<PlayerInfo*, Player>::const_iterator it = playerList.begin(); it != playerList.end(); ++it)
         {
-            this->lines_[index]->setPlayerName(omni_cast<std::string>(it->first->getName()));
-            this->lines_[index]->setScore(omni_cast<std::string>(it->second.frags_));
-            this->lines_[index]->setDeaths(omni_cast<std::string>(it->second.killed_));
+            this->lines_[index]->setPlayerName(multi_cast<std::string>(it->first->getName()));
+            this->lines_[index]->setScore(multi_cast<std::string>(it->second.frags_));
+            this->lines_[index]->setDeaths(multi_cast<std::string>(it->second.killed_));
             index++;
         }
 

Modified: trunk/src/orxonox/overlays/stats/Scoreboard.h
===================================================================
--- trunk/src/orxonox/overlays/stats/Scoreboard.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/Scoreboard.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,19 +29,16 @@
 
 
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
 
+#include <string>
+#include <vector>
+#include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
 
-
 namespace orxonox
 {
     class _OrxonoxExport Scoreboard : public OrxonoxOverlay, public Tickable
     {
-
     public: // functions
         Scoreboard(BaseObject* creator);
         virtual ~Scoreboard() {}

Modified: trunk/src/orxonox/overlays/stats/Stats.cc
===================================================================
--- trunk/src/orxonox/overlays/stats/Stats.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/Stats.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,13 +29,10 @@
 #include "Stats.h"
 
 #include <string>
-#include <OgreOverlay.h>
-#include <OgreOverlayElement.h>
 #include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
+#include <OgreBorderPanelOverlayElement.h>
 
-#include "util/Convert.h"
-#include "util/Debug.h"
+#include "util/String.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 

Modified: trunk/src/orxonox/overlays/stats/Stats.h
===================================================================
--- trunk/src/orxonox/overlays/stats/Stats.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/Stats.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,16 +29,12 @@
 #ifndef _Stats_H__
 #define _Stats_H__
 
-
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
 
+#include "util/OgreForwardRefs.h"
+#include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
 
-
 namespace orxonox
 {
     class _OrxonoxExport Stats : public OrxonoxOverlay, public Tickable

Deleted: trunk/src/orxonox/overlays/stats/StatsTest.cc
===================================================================
--- trunk/src/orxonox/overlays/stats/StatsTest.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/StatsTest.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,51 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "StatsTest.h"
-
-#include <OgreTextAreaOverlayElement.h>
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    CreateFactory(StatsTest);
-
-    StatsTest::StatsTest(BaseObject* creator)
-        : OrxonoxOverlay(creator)
-    {
-        RegisterObject(StatsTest);
-    }
-
-    StatsTest::~StatsTest()
-    {
-    }
-
-    void StatsTest::tick(float dt)
-    {
-    }
-}

Deleted: trunk/src/orxonox/overlays/stats/StatsTest.h
===================================================================
--- trunk/src/orxonox/overlays/stats/StatsTest.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/overlays/stats/StatsTest.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,48 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _StatsTest_H__
-#define _StatsTest_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport StatsTest : public OrxonoxOverlay, public Tickable
-    {
-    public:
-        StatsTest(BaseObject* creator);
-        ~StatsTest();
-
-        virtual void tick(float dt);
-    };
-}
-#endif /* _StatsTest_H__ */

Modified: trunk/src/orxonox/sound/CMakeLists.txt
===================================================================
--- trunk/src/orxonox/sound/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/sound/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,8 +1,4 @@
 ADD_SOURCE_FILES(ORXONOX_SRC_FILES
-    SoundManager.h
-    SoundBase.h
-    SoundMainMenu.h
-
     SoundManager.cc
     SoundBase.cc
     SoundMainMenu.cc

Modified: trunk/src/orxonox/sound/SoundBase.cc
===================================================================
--- trunk/src/orxonox/sound/SoundBase.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/sound/SoundBase.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -25,32 +25,28 @@
  *      ...
  *
  */
+
+#include "SoundBase.h"
+
+#include <string>
 #include <vector>
 #include <AL/alut.h>
 #include <vorbis/vorbisfile.h>
 
-#include "orxonox/objects/worldentities/WorldEntity.h"
 #include "util/Math.h"
-#include "SoundBase.h"
-#include "SoundManager.h"
 #include "core/Core.h"
+#include "orxonox/objects/worldentities/WorldEntity.h"
+#include "SoundManager.h"
 
 namespace orxonox 
 {
-    SoundManager* SoundBase::soundmanager_s = NULL;
-
     SoundBase::SoundBase(WorldEntity* entity)
     {
-        if(SoundBase::soundmanager_s == NULL)
-        {
-            SoundBase::soundmanager_s = new SoundManager();
-        }
-
         this->source_ = 0;
         this->buffer_ = 0;
         this->entity_ = entity;
 
-        SoundBase::soundmanager_s->addSound(this);
+        SoundManager::getInstance().addSound(this);
     }
 
     SoundBase::~SoundBase()
@@ -140,7 +136,7 @@
     bool SoundBase::loadFile(std::string filename) {
         filename = Core::getMediaPathString() + "/audio/" + filename;
 
-        if(!SoundBase::soundmanager_s->isSoundAvailable())
+        if(!SoundManager::getInstance().isSoundAvailable())
         {
             COUT(3) << "Sound: not available, skipping " << filename << std::endl;
             return false;
@@ -178,7 +174,7 @@
         return state;
     }
 
-    ALuint SoundBase::loadOggFile(std::string filename)
+    ALuint SoundBase::loadOggFile(const std::string& filename)
     {
         char inbuffer[4096];
         std::vector<char> outbuffer;

Modified: trunk/src/orxonox/sound/SoundBase.h
===================================================================
--- trunk/src/orxonox/sound/SoundBase.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/sound/SoundBase.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -25,13 +25,11 @@
  *      ...
  *
  */
-#ifndef _SOUNDBASE_H__
-#define _SOUNDBASE_H__
+#ifndef _SoundBase_H__
+#define _SoundBase_H__
 
-#include <AL/al.h>
-#include <string>
-
 #include "OrxonoxPrereqs.h"
+#include <cstring> // define NULL
 
 namespace orxonox
 {
@@ -59,15 +57,13 @@
         bool loadFile(std::string filename);
 
     private:
-        ALuint loadOggFile(std::string filename);
+        ALuint loadOggFile(const std::string& filename);
         ALuint source_;
         ALuint buffer_;
         WorldEntity* entity_;
 
         ALint getSourceState();
-
-        static SoundManager* soundmanager_s;
     }; // class SoundBase
 } // namepsace orxonox
 
-#endif // _SOUNDBASE_H__
+#endif /* _SoundBase_H__ */

Modified: trunk/src/orxonox/sound/SoundMainMenu.cc
===================================================================
--- trunk/src/orxonox/sound/SoundMainMenu.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/sound/SoundMainMenu.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,6 +27,7 @@
  */
 
 #include "SoundMainMenu.h"
+
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 

Modified: trunk/src/orxonox/sound/SoundMainMenu.h
===================================================================
--- trunk/src/orxonox/sound/SoundMainMenu.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/sound/SoundMainMenu.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,13 +26,13 @@
  *
  */
 
-#ifndef _SOUNDMAINMENU_H__
-#define _SOUNDMAINMENU_H__
+#ifndef _SoundMainMenu_H__
+#define _SoundMainMenu_H__
 
+#include "OrxonoxPrereqs.h"
+
 #include <string>
-
 #include "core/OrxonoxClass.h"
-#include "OrxonoxPrereqs.h"
 #include "SoundBase.h"
 
 namespace orxonox
@@ -47,4 +47,5 @@
             std::string filename_;
     };
 }
-#endif
+
+#endif /* _SoundMainMenu_H__ */

Modified: trunk/src/orxonox/sound/SoundManager.cc
===================================================================
--- trunk/src/orxonox/sound/SoundManager.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/sound/SoundManager.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,16 +26,18 @@
  *
  */
 
+#include "SoundManager.h"
+
 #include <AL/alut.h>
 
+#include "util/Math.h"
 #include "orxonox/CameraManager.h"
 #include "orxonox/objects/worldentities/Camera.h"
-#include "util/Math.h"
 #include "SoundBase.h"
-#include "SoundManager.h"
 
 namespace orxonox
 {
+    SoundManager* SoundManager::singletonRef_s = NULL;
     ALCdevice* SoundManager::device_s = NULL;
 
     /**
@@ -43,6 +45,9 @@
      */
     SoundManager::SoundManager()
     {
+        assert(singletonRef_s == NULL);
+        singletonRef_s = this;
+
         this->soundavailable_ = true;
         if(!alutInitWithoutContext(NULL,NULL))
         {
@@ -89,6 +94,9 @@
 
     SoundManager::~SoundManager()
     {
+        assert(singletonRef_s != NULL);
+        singletonRef_s = NULL;
+
         alcDestroyContext(this->context_);
         alcCloseDevice(SoundManager::device_s);
         alutExit();

Modified: trunk/src/orxonox/sound/SoundManager.h
===================================================================
--- trunk/src/orxonox/sound/SoundManager.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/sound/SoundManager.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -24,15 +24,15 @@
  *   Co-authors:
  *      ...
  */
-#ifndef _SOUNDMANGER_H__
-#define _SOUNDMANGER_H__
+#ifndef _SoundManager_H__
+#define _SoundManager_H__
 
-#include <AL/al.h>
-#include <AL/alc.h>
-
 #include "OrxonoxPrereqs.h"
-#include "orxonox/objects/Tickable.h"
 
+#include <cassert>
+#include <list>
+#include "interfaces/Tickable.h"
+
 namespace orxonox
 {
     /**
@@ -48,16 +48,19 @@
         ~SoundManager();
         void addSound(SoundBase* sound);
         void removeSound(SoundBase* sound);
-        virtual void tick(float dt);
+        void tick(float dt);
         bool isSoundAvailable();
 
+        static SoundManager& getInstance() { assert(singletonRef_s); return *singletonRef_s; }
+
     private:
         static ALCdevice* device_s;
         ALCcontext* context_;
         std::list<SoundBase*> soundlist_;
         bool soundavailable_;
 
+        static SoundManager* singletonRef_s;
     }; // class SoundManager
 } // namespace orxonox
 
-#endif // _SOUNDMANAGER_H__
+#endif /* _SoundManager_H__ */

Modified: trunk/src/orxonox/tools/BillboardSet.cc
===================================================================
--- trunk/src/orxonox/tools/BillboardSet.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/BillboardSet.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,16 +28,17 @@
 
 #include "BillboardSet.h"
 
+#include <cassert>
+#include <string>
 #include <sstream>
-#include <cassert>
-
 #include <OgreSceneManager.h>
 #include <OgreBillboardSet.h>
 #include <OgreBillboard.h>
 
-#include "core/GameMode.h"
 #include "util/Convert.h"
+#include "util/Math.h"
 #include "util/String.h"
+#include "core/GameMode.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/tools/BillboardSet.h
===================================================================
--- trunk/src/orxonox/tools/BillboardSet.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/BillboardSet.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,12 +30,8 @@
 #define _BillboardSet_H__
 
 #include "OrxonoxPrereqs.h"
+#include "util/OgreForwardRefs.h"
 
-#include <string>
-#include <OgrePrerequisites.h>
-
-#include "util/Math.h"
-
 namespace orxonox
 {
     class _OrxonoxExport BillboardSet
@@ -51,7 +47,7 @@
 
             inline Ogre::BillboardSet* getBillboardSet()
                 { return this->billboardSet_; }
-            inline Ogre::SceneManager* getSceneManager()
+            inline Ogre::SceneManager* getSceneManager() const
                 { return this->scenemanager_; }
 
             const std::string& getName() const;
@@ -68,9 +64,10 @@
         private:
             void destroyBillboardSet();
 
-            static unsigned int billboardSetCounter_s;
             Ogre::BillboardSet* billboardSet_;
             Ogre::SceneManager* scenemanager_;
+
+            static unsigned int billboardSetCounter_s;
     };
 }
 

Modified: trunk/src/orxonox/tools/BulletConversions.h
===================================================================
--- trunk/src/orxonox/tools/BulletConversions.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/BulletConversions.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,8 +33,8 @@
 
 #include "util/Convert.h"
 #include "util/Math.h"
-#include "LinearMath/btQuaternion.h"
-#include "LinearMath/btVector3.h"
+#include <LinearMath/btQuaternion.h>
+#include <LinearMath/btVector3.h>
 
 namespace orxonox
 {
@@ -42,7 +42,7 @@
     template <>
     struct ConverterExplicit<orxonox::Vector3, btVector3>
     {
-        static bool convert(btVector3* output, const orxonox::Vector3& input)
+        FORCEINLINE static bool convert(btVector3* output, const orxonox::Vector3& input)
         {
             output->setX(input.x);
             output->setY(input.y);
@@ -55,7 +55,7 @@
     template <>
     struct ConverterExplicit<btVector3, orxonox::Vector3>
     {
-        static bool convert(orxonox::Vector3* output, const btVector3& input)
+        FORCEINLINE static bool convert(orxonox::Vector3* output, const btVector3& input)
         {
             output->x = input.x();
             output->y = input.y();
@@ -68,7 +68,7 @@
     template <>
     struct ConverterExplicit<orxonox::Quaternion, btQuaternion>
     {
-        static bool convert(btQuaternion* output, const orxonox::Quaternion& input)
+        FORCEINLINE static bool convert(btQuaternion* output, const orxonox::Quaternion& input)
         {
             output->setW(input.w);
             output->setX(input.x);
@@ -82,7 +82,7 @@
     template <>
     struct ConverterExplicit<btQuaternion, orxonox::Quaternion>
     {
-        static bool convert(orxonox::Quaternion* output, const btQuaternion& input)
+        FORCEINLINE static bool convert(orxonox::Quaternion* output, const btQuaternion& input)
         {
             output->w = input.w();
             output->x = input.x();

Modified: trunk/src/orxonox/tools/CMakeLists.txt
===================================================================
--- trunk/src/orxonox/tools/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,12 +1,10 @@
 ADD_SOURCE_FILES(ORXONOX_SRC_FILES
   BillboardSet.cc
+  DynamicLines.cc
+  DynamicRenderable.cc
   Mesh.cc
   ParticleInterface.cc
   Shader.cc
   TextureGenerator.cc
-  TimeFactorListener.cc
   Timer.cc
-  WindowEventListener.cc
-  DynamicLines.cpp
-  DynamicRenderable.cpp
 )

Copied: trunk/src/orxonox/tools/DynamicLines.cc (from rev 3195, branches/pch/src/orxonox/tools/DynamicLines.cc)
===================================================================
--- trunk/src/orxonox/tools/DynamicLines.cc	                        (rev 0)
+++ trunk/src/orxonox/tools/DynamicLines.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,178 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Baxissimo, Emmeran, DWORD, EtherDrive (OGRE Wiki)
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "DynamicLines.h"
+
+#include <cassert>
+#include <cmath>
+
+namespace Ogre
+{
+    enum
+    {
+        POSITION_BINDING,
+        TEXCOORD_BINDING
+    };
+
+    DynamicLines::DynamicLines(OperationType opType)
+    {
+        initialize(opType,false);
+        setMaterial("BaseWhiteNoLighting");
+        mDirty = true;
+    }
+
+    DynamicLines::~DynamicLines()
+    {
+    }
+
+    void DynamicLines::setOperationType(OperationType opType)
+    {
+        mRenderOp.operationType = opType;
+    }
+
+    RenderOperation::OperationType DynamicLines::getOperationType() const
+    {
+        return mRenderOp.operationType;
+    }
+
+    void DynamicLines::addPoint(const Vector3 &p)
+    {
+        mPoints.push_back(p);
+        mDirty = true;
+    }
+
+    void DynamicLines::addPoint(Real x, Real y, Real z)
+    {
+        mPoints.push_back(Vector3(x,y,z));
+        mDirty = true;
+    }
+
+    const Vector3& DynamicLines::getPoint(unsigned short index) const
+    {
+        assert(index < mPoints.size() && "Point index is out of bounds!!");
+        return mPoints[index];
+    }
+
+    unsigned short DynamicLines::getNumPoints(void) const
+    {
+        return (unsigned short)mPoints.size();
+    }
+
+    void DynamicLines::setPoint(unsigned short index, const Vector3 &value)
+    {
+        assert(index < mPoints.size() && "Point index is out of bounds!!");
+
+        mPoints[index] = value;
+        mDirty = true;
+    }
+
+    void DynamicLines::clear()
+    {
+        mPoints.clear();
+        mDirty = true;
+    }
+
+    void DynamicLines::update()
+    {
+        if (mDirty)
+            fillHardwareBuffers();
+    }
+
+    void DynamicLines::createVertexDeclaration()
+    {
+        VertexDeclaration *decl = mRenderOp.vertexData->vertexDeclaration;
+        decl->addElement(POSITION_BINDING, 0, VET_FLOAT3, VES_POSITION);
+    }
+
+    void DynamicLines::fillHardwareBuffers()
+    {
+        int size = mPoints.size();
+
+        prepareHardwareBuffers(size,0);
+
+        if (!size)
+        {
+            mBox.setExtents(Vector3::ZERO,Vector3::ZERO);
+            mDirty=false;
+            return;
+        }
+
+        Vector3 vaabMin = mPoints[0];
+        Vector3 vaabMax = mPoints[0];
+
+        HardwareVertexBufferSharedPtr vbuf =
+            mRenderOp.vertexData->vertexBufferBinding->getBuffer(0);
+
+        Real *prPos = static_cast<Real*>(vbuf->lock(HardwareBuffer::HBL_DISCARD));
+        for (int i = 0; i < size; i++)
+        {
+            *prPos++ = mPoints[i].x;
+            *prPos++ = mPoints[i].y;
+            *prPos++ = mPoints[i].z;
+
+            if (mPoints[i].x < vaabMin.x)
+                vaabMin.x = mPoints[i].x;
+            if (mPoints[i].y < vaabMin.y)
+                vaabMin.y = mPoints[i].y;
+            if (mPoints[i].z < vaabMin.z)
+                vaabMin.z = mPoints[i].z;
+
+            if (mPoints[i].x > vaabMax.x)
+                vaabMax.x = mPoints[i].x;
+            if (mPoints[i].y > vaabMax.y)
+                vaabMax.y = mPoints[i].y;
+            if (mPoints[i].z > vaabMax.z)
+                vaabMax.z = mPoints[i].z;
+        }
+        vbuf->unlock();
+
+        mBox.setExtents(vaabMin, vaabMax);
+
+        mDirty = false;
+    }
+
+    /*
+    void DynamicLines::getWorldTransforms(Matrix4 *xform) const
+    {
+        // return identity matrix to prevent parent transforms
+        *xform = Matrix4::IDENTITY;
+    }
+    */
+
+    /*
+    const Quaternion &DynamicLines::getWorldOrientation(void) const
+    {
+        return Quaternion::IDENTITY;
+    }
+
+    const Vector3 &DynamicLines::getWorldPosition(void) const
+    {
+        return Vector3::ZERO;
+    }
+    */
+}

Deleted: trunk/src/orxonox/tools/DynamicLines.cpp
===================================================================
--- trunk/src/orxonox/tools/DynamicLines.cpp	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/DynamicLines.cpp	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,145 +0,0 @@
-#include "DynamicLines.h"
-#include <Ogre.h>
-#include <cassert>
-#include <cmath>
-
-using namespace Ogre;
-
-namespace orxonox
-{
-enum {
-  POSITION_BINDING,
-  TEXCOORD_BINDING
-};
-
-DynamicLines::DynamicLines(OperationType opType)
-{
-  initialize(opType,false);
-  setMaterial("BaseWhiteNoLighting");
-  mDirty = true;
-}
-
-DynamicLines::~DynamicLines()
-{
-}
-
-void DynamicLines::setOperationType(OperationType opType)
-{
-  mRenderOp.operationType = opType;
-}
-
-RenderOperation::OperationType DynamicLines::getOperationType() const
-{
-  return mRenderOp.operationType;
-}
-
-void DynamicLines::addPoint(const Vector3 &p)
-{
-   mPoints.push_back(p);
-   mDirty = true;
-}
-void DynamicLines::addPoint(Real x, Real y, Real z)
-{
-   mPoints.push_back(Vector3(x,y,z));
-   mDirty = true;
-}
-const Vector3& DynamicLines::getPoint(unsigned short index) const
-{
-   assert(index < mPoints.size() && "Point index is out of bounds!!");
-   return mPoints[index];
-}
-unsigned short DynamicLines::getNumPoints(void) const
-{
-  return (unsigned short)mPoints.size();
-}
-void DynamicLines::setPoint(unsigned short index, const Vector3 &value)
-{
-  assert(index < mPoints.size() && "Point index is out of bounds!!");
-
-  mPoints[index] = value;
-  mDirty = true;
-}
-void DynamicLines::clear()
-{
-  mPoints.clear();
-  mDirty = true;
-}
-
-void DynamicLines::update()
-{
-  if (mDirty) fillHardwareBuffers();
-}
-
-void DynamicLines::createVertexDeclaration()
-{
-  VertexDeclaration *decl = mRenderOp.vertexData->vertexDeclaration;
-  decl->addElement(POSITION_BINDING, 0, VET_FLOAT3, VES_POSITION);
-}
-
-void DynamicLines::fillHardwareBuffers()
-{
-  int size = mPoints.size();
-
-  prepareHardwareBuffers(size,0);
-
-  if (!size) {
-    mBox.setExtents(Vector3::ZERO,Vector3::ZERO);
-    mDirty=false;
-    return;
-  }
-
-  Vector3 vaabMin = mPoints[0];
-  Vector3 vaabMax = mPoints[0];
-
-  HardwareVertexBufferSharedPtr vbuf =
-    mRenderOp.vertexData->vertexBufferBinding->getBuffer(0);
-
-  Real *prPos = static_cast<Real*>(vbuf->lock(HardwareBuffer::HBL_DISCARD));
-  {
-   for(int i = 0; i < size; i++)
-   {
-      *prPos++ = mPoints[i].x;
-      *prPos++ = mPoints[i].y;
-      *prPos++ = mPoints[i].z;
-
-      if(mPoints[i].x < vaabMin.x)
-         vaabMin.x = mPoints[i].x;
-      if(mPoints[i].y < vaabMin.y)
-         vaabMin.y = mPoints[i].y;
-      if(mPoints[i].z < vaabMin.z)
-         vaabMin.z = mPoints[i].z;
-
-      if(mPoints[i].x > vaabMax.x)
-         vaabMax.x = mPoints[i].x;
-      if(mPoints[i].y > vaabMax.y)
-         vaabMax.y = mPoints[i].y;
-      if(mPoints[i].z > vaabMax.z)
-         vaabMax.z = mPoints[i].z;
-   }
-  }
-  vbuf->unlock();
-
-  mBox.setExtents(vaabMin, vaabMax);
-
-  mDirty = false;
-}
-
-/*
-void DynamicLines::getWorldTransforms(Matrix4 *xform) const
-{
-   // return identity matrix to prevent parent transforms
-   *xform = Matrix4::IDENTITY;
-}
-*/
-/*
-const Quaternion &DynamicLines::getWorldOrientation(void) const
-{
-   return Quaternion::IDENTITY;
-}
-
-const Vector3 &DynamicLines::getWorldPosition(void) const
-{
-   return Vector3::ZERO;
-}
-*/
-}

Modified: trunk/src/orxonox/tools/DynamicLines.h
===================================================================
--- trunk/src/orxonox/tools/DynamicLines.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/DynamicLines.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,67 +1,96 @@
-#ifndef _DYNAMIC_LINES_H_
-#define _DYNAMIC_LINES_H_
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Baxissimo, Emmeran, DWORD, EtherDrive (OGRE Wiki)
+ *   Co-authors:
+ *      ...
+ *
+ */
 
+#ifndef _DynamicLines_H__
+#define _DynamicLines_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include <vector>
 #include "DynamicRenderable.h"
-#include <vector>
 
-namespace orxonox
+namespace Ogre
 {
-class DynamicLines : public DynamicRenderable
-{
-  typedef Ogre::Vector3 Vector3;
-  typedef Ogre::Quaternion Quaternion;
-  typedef Ogre::Camera Camera;
-  typedef Ogre::Real Real;
-  typedef Ogre::RenderOperation::OperationType OperationType;
+    class DynamicLines : public DynamicRenderable
+    {
+        typedef RenderOperation::OperationType OperationType;
 
-public:
-  /// Constructor - see setOperationType() for description of argument.
-  DynamicLines(OperationType opType=Ogre::RenderOperation::OT_LINE_STRIP);
-  virtual ~DynamicLines();
+    public:
+        /// Constructor - see setOperationType() for description of argument.
+        DynamicLines(OperationType opType = RenderOperation::OT_LINE_STRIP);
+        virtual ~DynamicLines();
 
-  /// Add a point to the point list
-  void addPoint(const Ogre::Vector3 &p);
-  /// Add a point to the point list
-  void addPoint(Real x, Real y, Real z);
+        /// Add a point to the point list
+        void addPoint(const Vector3 &p);
+        /// Add a point to the point list
+        void addPoint(Real x, Real y, Real z);
 
-  /// Change the location of an existing point in the point list
-  void setPoint(unsigned short index, const Vector3 &value);
+        /// Change the location of an existing point in the point list
+        void setPoint(unsigned short index, const Vector3 &value);
 
-  /// Return the location of an existing point in the point list
-  const Vector3& getPoint(unsigned short index) const;
+        /// Return the location of an existing point in the point list
+        const Vector3& getPoint(unsigned short index) const;
 
-  /// Return the total number of points in the point list
-  unsigned short getNumPoints(void) const;
+        /// Return the total number of points in the point list
+        unsigned short getNumPoints(void) const;
 
-  /// Remove all points from the point list
-  void clear();
+        /// Remove all points from the point list
+        void clear();
 
-  /// Call this to update the hardware buffer after making changes.
-  void update();
+        /// Call this to update the hardware buffer after making changes.
+        void update();
 
-  /** Set the type of operation to draw with.
-   * @param opType Can be one of
-   *    - RenderOperation::OT_LINE_STRIP
-   *    - RenderOperation::OT_LINE_LIST
-   *    - RenderOperation::OT_POINT_LIST
-   *    - RenderOperation::OT_TRIANGLE_LIST
-   *    - RenderOperation::OT_TRIANGLE_STRIP
-   *    - RenderOperation::OT_TRIANGLE_FAN
-   *    The default is OT_LINE_STRIP.
-   */
-  void setOperationType(OperationType opType);
-  OperationType getOperationType() const;
+        /**
+        @brief
+            Set the type of operation to draw with.
+        @param opType
+            Can be one of
+                - RenderOperation::OT_LINE_STRIP
+                - RenderOperation::OT_LINE_LIST
+                - RenderOperation::OT_POINT_LIST
+                - RenderOperation::OT_TRIANGLE_LIST
+                - RenderOperation::OT_TRIANGLE_STRIP
+                - RenderOperation::OT_TRIANGLE_FAN
+            The default is OT_LINE_STRIP.
+        */
+        void setOperationType(OperationType opType);
+        OperationType getOperationType() const;
 
-protected:
-  /// Implementation DynamicRenderable, creates a simple vertex-only decl
-  virtual void createVertexDeclaration();
-  /// Implementation DynamicRenderable, pushes point list out to hardware memory
-  virtual void fillHardwareBuffers();
+    protected:
+        /// Implementation DynamicRenderable, creates a simple vertex-only decl
+        virtual void createVertexDeclaration();
+        /// Implementation DynamicRenderable, pushes point list out to hardware memory
+        virtual void fillHardwareBuffers();
 
-private:
-  std::vector<Vector3> mPoints;
-  bool mDirty;
-};
+    private:
+        std::vector<Vector3> mPoints;
+        bool mDirty;
+    };
 }
 
-#endif
+#endif /* _DynamicLines_H__ */

Copied: trunk/src/orxonox/tools/DynamicRenderable.cc (from rev 3195, branches/pch/src/orxonox/tools/DynamicRenderable.cc)
===================================================================
--- trunk/src/orxonox/tools/DynamicRenderable.cc	                        (rev 0)
+++ trunk/src/orxonox/tools/DynamicRenderable.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,160 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Sinbad, Baxissimo, DWORD, TheBren (OGRE Wiki)
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "DynamicRenderable.h"
+
+#include <OgreCamera.h>
+#include <OgreHardwareBufferManager.h>
+
+namespace Ogre
+{
+    DynamicRenderable::DynamicRenderable()
+    {
+    }
+
+    DynamicRenderable::~DynamicRenderable()
+    {
+        delete mRenderOp.vertexData;
+        delete mRenderOp.indexData;
+    }
+
+    void DynamicRenderable::initialize(RenderOperation::OperationType operationType,
+           bool useIndices)
+    {
+        // Initialize render operation
+        mRenderOp.operationType = operationType;
+        mRenderOp.useIndexes = useIndices;
+        mRenderOp.vertexData = new VertexData;
+        if (mRenderOp.useIndexes)
+            mRenderOp.indexData = new IndexData;
+
+        // Reset buffer capacities
+        mVertexBufferCapacity = 0;
+        mIndexBufferCapacity = 0;
+
+        // Create vertex declaration
+        createVertexDeclaration();
+    }
+
+    void DynamicRenderable::prepareHardwareBuffers(size_t vertexCount, size_t indexCount)
+    {
+        // Prepare vertex buffer
+        size_t newVertCapacity = mVertexBufferCapacity;
+        if ((vertexCount > mVertexBufferCapacity) || (!mVertexBufferCapacity))
+        {
+            // vertexCount exceeds current capacity!
+            // It is necessary to reallocate the buffer.
+
+            // Check if this is the first call
+            if (!newVertCapacity)
+                newVertCapacity = 1;
+
+            // Make capacity the next power of two
+            while (newVertCapacity < vertexCount)
+                newVertCapacity <<= 1;
+        }
+        else if (vertexCount < mVertexBufferCapacity>>1)
+        {
+            // Make capacity the previous power of two
+            while (vertexCount < newVertCapacity>>1)
+                newVertCapacity >>= 1;
+        }
+        if (newVertCapacity != mVertexBufferCapacity)
+        {
+            mVertexBufferCapacity = newVertCapacity;
+            // Create new vertex buffer
+            HardwareVertexBufferSharedPtr vbuf =
+                HardwareBufferManager::getSingleton().createVertexBuffer(
+                mRenderOp.vertexData->vertexDeclaration->getVertexSize(0),
+                mVertexBufferCapacity,
+                HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY); // TODO: Custom HBU_?
+
+            // Bind buffer
+            mRenderOp.vertexData->vertexBufferBinding->setBinding(0, vbuf);
+        }
+        // Update vertex count in the render operation
+        mRenderOp.vertexData->vertexCount = vertexCount;
+
+        if (mRenderOp.useIndexes)
+        {
+            OgreAssert(indexCount <= std::numeric_limits<unsigned short>::max(), "indexCount exceeds 16 bit");
+
+            size_t newIndexCapacity = mIndexBufferCapacity;
+            // Prepare index buffer
+            if ((indexCount > newIndexCapacity) || (!newIndexCapacity))
+            {
+                // indexCount exceeds current capacity!
+                // It is necessary to reallocate the buffer.
+
+                // Check if this is the first call
+                if (!newIndexCapacity)
+                    newIndexCapacity = 1;
+
+                // Make capacity the next power of two
+                while (newIndexCapacity < indexCount)
+                    newIndexCapacity <<= 1;
+            }
+            else if (indexCount < newIndexCapacity>>1)
+            {
+                // Make capacity the previous power of two
+                while (indexCount < newIndexCapacity>>1)
+                    newIndexCapacity >>= 1;
+            }
+
+            if (newIndexCapacity != mIndexBufferCapacity)
+            {
+                mIndexBufferCapacity = newIndexCapacity;
+                // Create new index buffer
+                mRenderOp.indexData->indexBuffer =
+                    HardwareBufferManager::getSingleton().createIndexBuffer(
+                    HardwareIndexBuffer::IT_16BIT,
+                    mIndexBufferCapacity,
+                    HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY); // TODO: Custom HBU_?
+            }
+
+            // Update index count in the render operation
+            mRenderOp.indexData->indexCount = indexCount;
+        }
+    }
+
+    Real DynamicRenderable::getBoundingRadius(void) const
+    {
+        return Math::Sqrt(std::max(mBox.getMaximum().squaredLength(), mBox.getMinimum().squaredLength()));
+    }
+
+    Real DynamicRenderable::getSquaredViewDepth(const Camera* cam) const
+    {
+        Vector3 vMin, vMax, vMid, vDist;
+        vMin = mBox.getMinimum();
+        vMax = mBox.getMaximum();
+        vMid = ((vMax - vMin) * 0.5) + vMin;
+        vDist = cam->getDerivedPosition() - vMid;
+
+        return vDist.squaredLength();
+    }
+}

Deleted: trunk/src/orxonox/tools/DynamicRenderable.cpp
===================================================================
--- trunk/src/orxonox/tools/DynamicRenderable.cpp	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/DynamicRenderable.cpp	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,136 +0,0 @@
-#include "DynamicRenderable.h"
-#include <OgreCamera.h>
-#include <OgreHardwareBufferManager.h>
-
-using namespace Ogre;
-
-namespace orxonox
-{
-DynamicRenderable::DynamicRenderable()
-{
-}
-
-DynamicRenderable::~DynamicRenderable()
-{
-  delete mRenderOp.vertexData;
-  delete mRenderOp.indexData;
-}
-
-void DynamicRenderable::initialize(RenderOperation::OperationType operationType,
-                                   bool useIndices)
-{
-  // Initialize render operation
-  mRenderOp.operationType = operationType;
-  mRenderOp.useIndexes = useIndices;
-  mRenderOp.vertexData = new VertexData;
-  if (mRenderOp.useIndexes)
-    mRenderOp.indexData = new IndexData;
-
-  // Reset buffer capacities
-  mVertexBufferCapacity = 0;
-  mIndexBufferCapacity = 0;
-
-  // Create vertex declaration
-  createVertexDeclaration();
-}
-
-void DynamicRenderable::prepareHardwareBuffers(size_t vertexCount,
-                                               size_t indexCount)
-{
-  // Prepare vertex buffer
-  size_t newVertCapacity = mVertexBufferCapacity;
-  if ((vertexCount > mVertexBufferCapacity) ||
-      (!mVertexBufferCapacity))
-  {
-    // vertexCount exceeds current capacity!
-    // It is necessary to reallocate the buffer.
-
-    // Check if this is the first call
-    if (!newVertCapacity)
-      newVertCapacity = 1;
-
-    // Make capacity the next power of two
-    while (newVertCapacity < vertexCount)
-      newVertCapacity <<= 1;
-  }
-  else if (vertexCount < mVertexBufferCapacity>>1) {
-    // Make capacity the previous power of two
-    while (vertexCount < newVertCapacity>>1)
-      newVertCapacity >>= 1;
-  }
-  if (newVertCapacity != mVertexBufferCapacity)
-  {
-    mVertexBufferCapacity = newVertCapacity;
-    // Create new vertex buffer
-    HardwareVertexBufferSharedPtr vbuf =
-      HardwareBufferManager::getSingleton().createVertexBuffer(
-        mRenderOp.vertexData->vertexDeclaration->getVertexSize(0),
-        mVertexBufferCapacity,
-        HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY); // TODO: Custom HBU_?
-
-    // Bind buffer
-    mRenderOp.vertexData->vertexBufferBinding->setBinding(0, vbuf);
-  }
-  // Update vertex count in the render operation
-  mRenderOp.vertexData->vertexCount = vertexCount;
-
-  if (mRenderOp.useIndexes)
-  {
-    OgreAssert(indexCount <= std::numeric_limits<unsigned short>::max(), "indexCount exceeds 16 bit");
-
-    size_t newIndexCapacity = mIndexBufferCapacity;
-    // Prepare index buffer
-    if ((indexCount > newIndexCapacity) ||
-        (!newIndexCapacity))
-    {
-      // indexCount exceeds current capacity!
-      // It is necessary to reallocate the buffer.
-
-      // Check if this is the first call
-      if (!newIndexCapacity)
-        newIndexCapacity = 1;
-
-      // Make capacity the next power of two
-      while (newIndexCapacity < indexCount)
-        newIndexCapacity <<= 1;
-
-    }
-    else if (indexCount < newIndexCapacity>>1)
-    {
-      // Make capacity the previous power of two
-      while (indexCount < newIndexCapacity>>1)
-        newIndexCapacity >>= 1;
-    }
-
-    if (newIndexCapacity != mIndexBufferCapacity)
-    {
-      mIndexBufferCapacity = newIndexCapacity;
-      // Create new index buffer
-      mRenderOp.indexData->indexBuffer =
-        HardwareBufferManager::getSingleton().createIndexBuffer(
-          HardwareIndexBuffer::IT_16BIT,
-          mIndexBufferCapacity,
-          HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY); // TODO: Custom HBU_?
-    }
-
-    // Update index count in the render operation
-    mRenderOp.indexData->indexCount = indexCount;
-  }
-}
-
-Real DynamicRenderable::getBoundingRadius(void) const
-{
-  return Math::Sqrt(std::max(mBox.getMaximum().squaredLength(), mBox.getMinimum().squaredLength()));
-}
-
-Real DynamicRenderable::getSquaredViewDepth(const Camera* cam) const
-{
-   Vector3 vMin, vMax, vMid, vDist;
-   vMin = mBox.getMinimum();
-   vMax = mBox.getMaximum();
-   vMid = ((vMax - vMin) * 0.5) + vMin;
-   vDist = cam->getDerivedPosition() - vMid;
-
-   return vDist.squaredLength();
-}
-}

Modified: trunk/src/orxonox/tools/DynamicRenderable.h
===================================================================
--- trunk/src/orxonox/tools/DynamicRenderable.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/DynamicRenderable.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,72 +1,116 @@
-#ifndef DYNAMIC_RENDERABLE_H
-#define DYNAMIC_RENDERABLE_H
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Sinbad, Baxissimo, DWORD, TheBren (OGRE Wiki)
+ *   Co-authors:
+ *      ...
+ *
+ */
 
+#ifndef _DynamicRenderable_H__
+#define _DynamicRenderable_H__
+
+#include "OrxonoxPrereqs.h"
+
 #include <OgreSimpleRenderable.h>
 
-namespace orxonox
+namespace Ogre
 {
-/// Abstract base class providing mechanisms for dynamically growing hardware buffers.
-class DynamicRenderable : public Ogre::SimpleRenderable
-{
-public:
-  /// Constructor
-  DynamicRenderable();
-  /// Virtual destructor
-  virtual ~DynamicRenderable();
+    /// Abstract base class providing mechanisms for dynamically growing hardware buffers.
+    class DynamicRenderable : public SimpleRenderable
+    {
+    public:
+        /// Constructor
+        DynamicRenderable();
+        /// Virtual destructor
+        virtual ~DynamicRenderable();
 
-  /** Initializes the dynamic renderable.
-   @remarks
-      This function should only be called once. It initializes the
-      render operation, and calls the abstract function
-      createVertexDeclaration().
-   @param operationType The type of render operation to perform.
-   @param useIndices Specifies whether to use indices to determine the
-          vertices to use as input. */
-  void initialize(Ogre::RenderOperation::OperationType operationType,
-                  bool useIndices);
+        /**
+        @brief
+            Initializes the dynamic renderable.
+        @remarks
+            This function should only be called once. It initializes the
+            render operation, and calls the abstract function
+            createVertexDeclaration().
+        @param operationType
+            The type of render operation to perform.
+        @param useIndices
+            Specifies whether to use indices to determine the vertices to use as input.
+        */
+        void initialize(RenderOperation::OperationType operationType,
+        bool useIndices);
 
-  /// Implementation of Ogre::SimpleRenderable
-  virtual Ogre::Real getBoundingRadius(void) const;
-  /// Implementation of Ogre::SimpleRenderable
-  virtual Ogre::Real getSquaredViewDepth(const Ogre::Camera* cam) const;
+        /// Implementation of SimpleRenderable
+        virtual Real getBoundingRadius(void) const;
+        /// Implementation of SimpleRenderable
+        virtual Real getSquaredViewDepth(const Camera* cam) const;
 
-protected:
-  /// Maximum capacity of the currently allocated vertex buffer.
-  size_t mVertexBufferCapacity;
-  /// Maximum capacity of the currently allocated index buffer.
-  size_t mIndexBufferCapacity;
+    protected:
+        /// Maximum capacity of the currently allocated vertex buffer.
+        size_t mVertexBufferCapacity;
+        /// Maximum capacity of the currently allocated index buffer.
+        size_t mIndexBufferCapacity;
 
-  /** Creates the vertex declaration.
-   @remarks
-      Override and set mRenderOp.vertexData->vertexDeclaration here.
-      mRenderOp.vertexData will be created for you before this method
-      is called. */
-  virtual void createVertexDeclaration() = 0;
+        /**
+        @brief
+            Creates the vertex declaration.
+        @remarks
+            Override and set mRenderOp.vertexData->vertexDeclaration here.
+            mRenderOp.vertexData will be created for you before this method
+            is called.
+        */
+        virtual void createVertexDeclaration() = 0;
 
-  /** Prepares the hardware buffers for the requested vertex and index counts.
-   @remarks
-      This function must be called before locking the buffers in
-      fillHardwareBuffers(). It guarantees that the hardware buffers
-      are large enough to hold at least the requested number of
-      vertices and indices (if using indices). The buffers are
-      possibly reallocated to achieve this.
-   @par
-      The vertex and index count in the render operation are set to
-      the values of vertexCount and indexCount respectively.
-   @param vertexCount The number of vertices the buffer must hold.
+        /**
+        @brief
+            Prepares the hardware buffers for the requested vertex and index counts.
+        @remarks
+            This function must be called before locking the buffers in
+            fillHardwareBuffers(). It guarantees that the hardware buffers
+            are large enough to hold at least the requested number of
+            vertices and indices (if using indices). The buffers are
+            possibly reallocated to achieve this.
+        @par
+            The vertex and index count in the render operation are set to
+            the values of vertexCount and indexCount respectively.
+        @param vertexCount
+            The number of vertices the buffer must hold.
+        @param indexCount
+            The number of indices the buffer must hold. This
+            parameter is ignored if not using indices.
+        */
+        void prepareHardwareBuffers(size_t vertexCount, size_t indexCount);
 
-   @param indexCount The number of indices the buffer must hold. This
-          parameter is ignored if not using indices. */
-  void prepareHardwareBuffers(size_t vertexCount, size_t indexCount);
-
-  /** Fills the hardware vertex and index buffers with data.
-   @remarks
-      This function must call prepareHardwareBuffers() before locking
-      the buffers to ensure the they are large enough for the data to
-      be written. Afterwards the vertex and index buffers (if using
-      indices) can be locked, and data can be written to them. */
-  virtual void fillHardwareBuffers() = 0;
-};
+        /**
+        @brief
+            Fills the hardware vertex and index buffers with data.
+        @remarks
+            This function must call prepareHardwareBuffers() before locking
+            the buffers to ensure the they are large enough for the data to
+            be written. Afterwards the vertex and index buffers (if using
+            indices) can be locked, and data can be written to them.
+        */
+        virtual void fillHardwareBuffers() = 0;
+    };
 }
 
-#endif // DYNAMIC_RENDERABLE_H
+#endif /* _DynamicRenderable_H__ */

Modified: trunk/src/orxonox/tools/Mesh.cc
===================================================================
--- trunk/src/orxonox/tools/Mesh.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/Mesh.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -28,14 +28,15 @@
 
 #include "Mesh.h"
 
+#include <cassert>
 #include <sstream>
+#include <string>
 #include <OgreEntity.h>
 #include <OgreSceneManager.h>
-#include <cassert>
 
-#include "core/GameMode.h"
 #include "util/Convert.h"
 #include "util/String.h"
+#include "core/GameMode.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/tools/Mesh.h
===================================================================
--- trunk/src/orxonox/tools/Mesh.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/Mesh.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,10 +30,8 @@
 #define _Mesh_H__
 
 #include "OrxonoxPrereqs.h"
+#include "util/OgreForwardRefs.h"
 
-#include <string>
-#include <OgrePrerequisites.h>
-
 namespace orxonox
 {
     class _OrxonoxExport Mesh
@@ -57,10 +55,11 @@
                 { return this->bCastShadows_; }
 
         private:
-            static unsigned int meshCounter_s;
             Ogre::Entity* entity_;
             bool bCastShadows_;
             Ogre::SceneManager* scenemanager_;
+
+            static unsigned int meshCounter_s;
     };
 }
 

Modified: trunk/src/orxonox/tools/ParticleInterface.cc
===================================================================
--- trunk/src/orxonox/tools/ParticleInterface.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/ParticleInterface.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,15 +33,17 @@
 
 #include "ParticleInterface.h"
 
+#include <cassert>
+#include <string>
 #include <OgreParticleSystem.h>
 #include <OgreParticleEmitter.h>
 #include <OgreSceneManager.h>
-#include <cassert>
 
+#include "util/Convert.h"
+#include "util/Math.h"
+#include "core/CoreIncludes.h"
+#include "core/GameMode.h"
 #include "GraphicsManager.h"
-#include "core/GameMode.h"
-#include "core/CoreIncludes.h"
-#include "util/Convert.h"
 
 namespace orxonox
 {
@@ -131,7 +133,7 @@
         else
             return 0;
     }
-    Ogre::ParticleAffector* ParticleInterface::getAffector(unsigned int affectorNr) const
+    Ogre::ParticleAffector* ParticleInterface::getAffector(unsigned int affectorNr)
     {
         if (this->particleSystem_ && (affectorNr < this->particleSystem_->getNumAffectors()))
             return this->particleSystem_->getAffector(affectorNr);

Modified: trunk/src/orxonox/tools/ParticleInterface.h
===================================================================
--- trunk/src/orxonox/tools/ParticleInterface.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/ParticleInterface.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -31,13 +31,9 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include <string>
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
+#include "interfaces/TimeFactorListener.h"
 
-#include "core/OrxonoxClass.h"
-#include "util/Math.h"
-#include "tools/TimeFactorListener.h"
-
 #define getAllEmitters() \
   storeThisAsCurrentParticleInterface(); \
   for (unsigned int i = 0; i < ParticleInterface::getCurrentParticleInterface()->getNumEmitters(); ++i) \
@@ -51,7 +47,7 @@
             ParticleInterface(Ogre::SceneManager* scenemanager, const std::string& templateName, LODParticle::LOD detaillevel);
             virtual ~ParticleInterface();
 
-            inline Ogre::ParticleSystem* getParticleSystem() const
+            inline Ogre::ParticleSystem* getParticleSystem()
                 { return this->particleSystem_; }
 
             Ogre::ParticleEmitter* createNewEmitter();
@@ -61,7 +57,7 @@
             unsigned int getNumEmitters() const;
 
             Ogre::ParticleAffector* addAffector(const std::string& name);
-            Ogre::ParticleAffector* getAffector(unsigned int affectorNr) const;
+            Ogre::ParticleAffector* getAffector(unsigned int affectorNr);
             void removeAffector(unsigned int affectorNr);
             void removeAllAffectors();
             unsigned int getNumAffectors() const;
@@ -94,16 +90,16 @@
         private:
             void updateVisibility();
 
-            static ParticleInterface* currentParticleInterface_s;
-            static unsigned int       counter_s;
-
             Ogre::ParticleSystem*     particleSystem_;
+            Ogre::SceneManager*       scenemanager_;
             bool                      bVisible_;
             bool                      bEnabled_;
             bool                      bAllowedByLOD_;
             unsigned int              detaillevel_;     //!< Detail level of this particle effect (0: off, 1: low, 2: normal, 3: high)
             float                     speedFactor_;
-            Ogre::SceneManager*       scenemanager_;
+
+            static ParticleInterface* currentParticleInterface_s;
+            static unsigned int       counter_s;
     };
 }
 

Modified: trunk/src/orxonox/tools/Shader.cc
===================================================================
--- trunk/src/orxonox/tools/Shader.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/Shader.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -33,18 +33,15 @@
 #include <OgreSceneManager.h>
 #include <OgreRoot.h>
 #include <OgrePlugin.h>
-
-#include "core/GameMode.h"
-#include "core/CoreIncludes.h"
-#include "core/Executor.h"
-#include "GraphicsManager.h"
-#include "util/Exception.h"
-
 #include <OgreMaterial.h>
 #include <OgreTechnique.h>
 #include <OgrePass.h>
 #include <OgreMaterialManager.h>
 
+#include "core/CoreIncludes.h"
+#include "core/GameMode.h"
+#include "GraphicsManager.h"
+
 namespace orxonox
 {
     bool Shader::bLoadedCgPlugin_s = false;
@@ -218,7 +215,7 @@
             if (pointer->first)
                 return (*((float*)pointer->second));
             else
-                return (*((int*)pointer->second));
+                return static_cast<float>(*((int*)pointer->second));
         }
         else
             return 0;

Modified: trunk/src/orxonox/tools/Shader.h
===================================================================
--- trunk/src/orxonox/tools/Shader.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/Shader.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,11 +30,13 @@
 #define _Shader_H__
 
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
+
+#include <map>
+#include <string>
 #include <vector>
-#include <map>
 
-#include "objects/Tickable.h"
+#include "util/OgreForwardRefs.h"
+#include "interfaces/Tickable.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/tools/TextureGenerator.cc
===================================================================
--- trunk/src/orxonox/tools/TextureGenerator.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/TextureGenerator.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,14 +32,16 @@
 */
 
 #include "TextureGenerator.h"
+
 #include <OgreMaterialManager.h>
 #include <OgreTechnique.h>
 #include "util/Convert.h"
+#include "util/Math.h"
 
 namespace std
 {
     template <>
-    bool less<orxonox::ColourValue>::operator()(const orxonox::ColourValue& __x, const orxonox::ColourValue& __y) const
+    inline bool less<orxonox::ColourValue>::operator()(const orxonox::ColourValue& __x, const orxonox::ColourValue& __y) const
     {
         if (__x.r == __y.r)
         {
@@ -62,7 +64,7 @@
     std::map<std::string, std::map<ColourValue, std::string> > TextureGenerator::materials_s;
     unsigned int TextureGenerator::materialCount_s = 0;
 
-    /*static*/ const std::string& TextureGenerator::getMaterialName(std::string textureName, const ColourValue& colour)
+    /*static*/ const std::string& TextureGenerator::getMaterialName(const std::string& textureName, const ColourValue& colour)
     {
         std::map<ColourValue, std::string>& colourMap = materials_s[textureName];
         std::map<ColourValue, std::string>::const_iterator it = colourMap.find(colour);

Modified: trunk/src/orxonox/tools/TextureGenerator.h
===================================================================
--- trunk/src/orxonox/tools/TextureGenerator.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/TextureGenerator.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,16 +35,17 @@
 #define _TextureGenerator_H__
 
 #include "OrxonoxPrereqs.h"
+
+#include <map>
 #include <string>
-#include <map>
-#include "util/Math.h"
+#include "util/UtilPrereqs.h"
 
 namespace orxonox
 {
     class _OrxonoxExport TextureGenerator
     {
     public:
-        static const std::string& getMaterialName(std::string textureName, const ColourValue& colour);
+        static const std::string& getMaterialName(const std::string& textureName, const ColourValue& colour);
 
     private:
         TextureGenerator();

Deleted: trunk/src/orxonox/tools/TimeFactorListener.cc
===================================================================
--- trunk/src/orxonox/tools/TimeFactorListener.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/TimeFactorListener.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,40 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "TimeFactorListener.h"
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    float TimeFactorListener::timefactor_s = 1.0f;
-
-    TimeFactorListener::TimeFactorListener()
-    {
-        RegisterRootObject(TimeFactorListener);
-    }
-}

Deleted: trunk/src/orxonox/tools/TimeFactorListener.h
===================================================================
--- trunk/src/orxonox/tools/TimeFactorListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/TimeFactorListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,56 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _TimeFactorListener_H__
-#define _TimeFactorListener_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-
-namespace orxonox
-{
-    class _OrxonoxExport TimeFactorListener : virtual public OrxonoxClass
-    {
-        friend class GSRoot;
-
-        public:
-            TimeFactorListener();
-            virtual ~TimeFactorListener() {}
-
-        protected:
-            virtual void changedTimeFactor(float factor_new, float factor_old) {}
-            inline float getTimeFactor() const
-                { return TimeFactorListener::timefactor_s; }
-
-        private:
-            static float timefactor_s;
-    };
-}
-
-#endif /* _TimeFactorListener_H__ */

Modified: trunk/src/orxonox/tools/Timer.cc
===================================================================
--- trunk/src/orxonox/tools/Timer.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/Timer.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -26,15 +26,15 @@
  *
  */
 
+#include "Timer.h"
+
 #include <set>
 
-#include "Timer.h"
-
-#include "core/Executor.h"
 #include "core/CoreIncludes.h"
 #include "core/ConsoleCommand.h"
 #include "core/CommandExecutor.h"
 #include "core/Clock.h"
+#include "core/Functor.h"
 
 namespace orxonox
 {

Modified: trunk/src/orxonox/tools/Timer.h
===================================================================
--- trunk/src/orxonox/tools/Timer.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/Timer.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -61,9 +61,10 @@
 #define _Timer_H__
 
 #include "OrxonoxPrereqs.h"
+
 #include "core/Executor.h"
 #include "core/OrxonoxClass.h"
-#include "tools/TimeFactorListener.h"
+#include "interfaces/TimeFactorListener.h"
 
 namespace orxonox
 {

Deleted: trunk/src/orxonox/tools/WindowEventListener.cc
===================================================================
--- trunk/src/orxonox/tools/WindowEventListener.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/WindowEventListener.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,41 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "WindowEventListener.h"
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    /**
-        @brief Constructor for the WindowEventListener.
-    */
-    WindowEventListener::WindowEventListener()
-    {
-        RegisterRootObject(WindowEventListener);
-    }
-}

Deleted: trunk/src/orxonox/tools/WindowEventListener.h
===================================================================
--- trunk/src/orxonox/tools/WindowEventListener.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/orxonox/tools/WindowEventListener.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -1,58 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _WindowEventListener_H__
-#define _WindowEventListener_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-
-namespace orxonox
-{
-    /**
-        @brief Interface for receiving window events.
-    */
-    class _OrxonoxExport WindowEventListener : virtual public OrxonoxClass
-    {
-        public:
-            WindowEventListener();
-            virtual ~WindowEventListener() { }
-
-            /** Window has moved position */
-            virtual void windowMoved() { }
-
-            /** Window has resized */
-            virtual void windowResized(unsigned int newWidth, unsigned int newHeight) { }
-
-            /** Window has lost/gained focus */
-            virtual void windowFocusChanged() { }
-    };
-}
-
-#endif /* _WindowEventListener_H__ */

Modified: trunk/src/tinyxml/CMakeLists.txt
===================================================================
--- trunk/src/tinyxml/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/tinyxml/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,17 +29,16 @@
   tinyxmlerror.cpp
   tinyxmlparser.cpp
 )
-GENERATE_SOURCE_GROUPS(${TINYXML++_FILES})
 
 # No warnings needed from third party libraries
 REMOVE_COMPILER_FLAGS("-W3 -W4" MSVC)
 ADD_COMPILER_FLAGS("-w")
 
-IF(MSVC)
-  ADD_LIBRARY(tinyxml++_orxonox STATIC ${TINYXML++_FILES})
-ELSE()
-  ADD_LIBRARY(tinyxml++_orxonox SHARED ${TINYXML++_FILES})
-  ORXONOX_INSTALL(tinyxml++_orxonox)
-ENDIF()
-
-SET_TARGET_PROPERTIES(tinyxml++_orxonox PROPERTIES VERSION 2.5.3)
+ORXONOX_ADD_LIBRARY(tinyxml++_orxonox
+  ORXONOX_EXTERNAL
+  NO_DLL_INTERFACE
+  VERSION
+    2.5.3
+  SOURCE_FILES
+    ${TINYXML++_FILES}
+)

Modified: trunk/src/tolua/CMakeLists.txt
===================================================================
--- trunk/src/tolua/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/tolua/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,22 +35,31 @@
 REMOVE_COMPILER_FLAGS("-W3 -W4" MSVC)
 ADD_COMPILER_FLAGS("-w")
 
-ADD_LIBRARY(tolua++_orxonox SHARED ${TOLUA++_FILES})
-SET_TARGET_PROPERTIES(tolua++_orxonox PROPERTIES DEFINE_SYMBOL "TOLUA_SHARED_BUILD")
-TARGET_LINK_LIBRARIES(tolua++_orxonox ${LUA_LIBRARIES})
+ORXONOX_ADD_LIBRARY(tolua++_orxonox
+  ORXONOX_EXTERNAL
+  DEFINE_SYMBOL
+    "TOLUA_SHARED_BUILD"
+  VERSION
+    1.0.92
+  LINK_LIBRARIES
+    ${LUA_LIBRARIES}
+  SOURCE_FILES
+    ${TOLUA++_FILES}
+)
 
-SET_TARGET_PROPERTIES(tolua++_orxonox PROPERTIES VERSION 1.0.92)
 
-ORXONOX_INSTALL(tolua++_orxonox)
-
-
 ################## Tolua++ generator ##################
 
-ADD_EXECUTABLE(tolua++app_orxonox tolua.c)
-TARGET_LINK_LIBRARIES(tolua++app_orxonox tolua++_orxonox ${LUA_LIBRARIES})
+ORXONOX_ADD_EXECUTABLE(tolua++app_orxonox
+  ORXONOX_EXTERNAL
+  VERSION
+    1.0.92
+  LINK_LIBRARIES
+    ${LUA_LIBRARIES}
+  SOURCE_FILES
+    tolua.c
+)
 
-OPTION(TOLUA_PARSER_RELEASE "Disable all debug messages from tolua bind files for Release and MinSizeRel build types." FALSE)
-
 # Set some variables to the cache in order to use them in the TOLUA macro
 SET(TOLUA_PARSER_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/all-${LUA_VERSION}.lua" CACHE INTERNAL "")
 SET(TOLUA_PARSER_DEPENDENCIES

Modified: trunk/src/util/CMakeLists.txt
===================================================================
--- trunk/src/util/CMakeLists.txt	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/CMakeLists.txt	2009-06-20 07:20:47 UTC (rev 3196)
@@ -17,27 +17,7 @@
  #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  #
 
-SET_SOURCE_FILES(UTIL_FILES
-  CRC32.h
-  Clipboard.h
-  Convert.h
-  Debug.h
-  Exception.h
-  ExprParser.h
-  Math.h
-  MathConvert.h
-  MultiType.h
-  MultiTypeValue.h
-  OrxEnum.h
-  OutputBuffer.h
-  OutputHandler.h
-  SignalHandler.h
-  Sleep.h
-  String.h
-  SubString.h
-  UtilPrereqs.h
-  mbool.h
-  
+SET_SOURCE_FILES(UTIL_SRC_FILES
   Clipboard.cc
   CRC32.cc
   Exception.cc
@@ -51,30 +31,18 @@
   String.cc
   SubString.cc
 )
-#GET_ALL_HEADER_FILES(UTIL_HDR_FILES)
-#SET(UTIL_FILES ${UTIL_SRC_FILES} ${UTIL_HDR_FILES})
-GENERATE_SOURCE_GROUPS(${UTIL_FILES})
-# Also add OrxonoxConfig to have it least somewhere in the IDE
-LIST(APPEND UTIL_FILES
-  ${CMAKE_BINARY_DIR}/src/OrxonoxConfig.h
-  ${CMAKE_SOURCE_DIR}/src/OrxonoxConfig.h.in
-  ${CMAKE_BINARY_DIR}/src/SpecialConfig.h
-  ${CMAKE_SOURCE_DIR}/src/SpecialConfig.h.in
-)
-SOURCE_GROUP("" FILES
-  ${CMAKE_BINARY_DIR}/src/OrxonoxConfig.h
-  ${CMAKE_SOURCE_DIR}/src/OrxonoxConfig.h.in
-  ${CMAKE_BINARY_DIR}/src/SpecialConfig.h
-  ${CMAKE_SOURCE_DIR}/src/SpecialConfig.h.in
-)
 
 IF(GCC_NO_SYSTEM_HEADER_SUPPORT)
   # Get around displaying a few hundred lines of warning code
   SET_SOURCE_FILES_PROPERTIES(MultiType.cc PROPERTIES COMPILE_FLAGS "-w")
 ENDIF()
 
-ADD_LIBRARY(util SHARED ${UTIL_FILES})
-SET_TARGET_PROPERTIES(util PROPERTIES DEFINE_SYMBOL "UTIL_SHARED_BUILD")
-TARGET_LINK_LIBRARIES(util ${OGRE_LIBRARY})
-
-ORXONOX_INSTALL(util)
+ORXONOX_ADD_LIBRARY(util
+  FIND_HEADER_FILES
+  DEFINE_SYMBOL
+    "UTIL_SHARED_BUILD"
+  LINK_LIBRARIES
+    ${OGRE_LIBRARY}
+  SOURCE_FILES
+    ${UTIL_SRC_FILES}
+)

Modified: trunk/src/util/CRC32.h
===================================================================
--- trunk/src/util/CRC32.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/CRC32.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -30,7 +30,6 @@
 #define _Util_CRC_H__
 
 #include "UtilPrereqs.h"
-#include <iostream>
 
 namespace orxonox
 {

Modified: trunk/src/util/Clipboard.cc
===================================================================
--- trunk/src/util/Clipboard.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Clipboard.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -111,7 +111,7 @@
 
 namespace orxonox
 {
-    std::string clipboard = ""; //!< Keeps the text of our internal clipboard
+    static std::string clipboard = ""; //!< Keeps the text of our internal clipboard
 
     /**
         @brief Default implementation if there is no OS-specific implementation or no clipboard. Copies the text into an internal clipboard.

Modified: trunk/src/util/Clipboard.h
===================================================================
--- trunk/src/util/Clipboard.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Clipboard.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -42,7 +42,6 @@
 #define _Clipboard_H__
 
 #include "UtilPrereqs.h"
-
 #include <string>
 
 namespace orxonox

Modified: trunk/src/util/Convert.h
===================================================================
--- trunk/src/util/Convert.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Convert.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -39,8 +39,6 @@
 
 #include <string>
 #include <sstream>
-#include <istream>
-#include <ostream>
 #include <typeinfo>
 
 #include "Debug.h"
@@ -122,7 +120,7 @@
 
 namespace orxonox
 {
-    namespace
+    namespace detail
     {
         //! Little template that maps integers to entire types (Alexandrescu 2001)
         template <int I>
@@ -138,7 +136,7 @@
     template <class FromType, class ToType>
     struct ConverterFallback
     {
-        static bool convert(ToType* output, const FromType& input)
+        FORCEINLINE static bool convert(ToType* output, const FromType& input)
         {
             COUT(2) << "Could not convert value of type " << typeid(FromType).name()
                     << " to type " << typeid(ToType).name() << std::endl;
@@ -150,7 +148,7 @@
     template <class FromType, class ToType>
     struct ConverterFallback<FromType*, ToType*>
     {
-        static bool convert(ToType** output, FromType* const input)
+        FORCEINLINE static bool convert(ToType** output, FromType* const input)
         {
             ToType* temp = dynamic_cast<ToType*>(input);
             if (temp)
@@ -173,7 +171,7 @@
 template <class FromType, class ToType>
 struct ConverterStringStream
 {
-    static bool convert(ToType* output, const FromType& input)
+    FORCEINLINE static bool convert(ToType* output, const FromType& input)
     {
         return orxonox::ConverterFallback<FromType, ToType>::convert(output, input);
     }
@@ -187,7 +185,7 @@
 namespace fallbackTemplates
 {
     template <class FromType>
-    inline bool operator <<(std::ostream& outstream,  const FromType& input)
+    FORCEINLINE bool operator <<(std::ostream& outstream,  const FromType& input)
     {
         std::string temp;
         if (orxonox::ConverterFallback<FromType, std::string>::convert(&temp, input))
@@ -204,7 +202,7 @@
 template <class FromType>
 struct ConverterStringStream<FromType, std::string>
 {
-    static bool convert(std::string* output, const FromType& input)
+    FORCEINLINE static bool convert(std::string* output, const FromType& input)
     {
         using namespace fallbackTemplates;
         // this operator call only chooses fallbackTemplates::operator<< if there's no other fitting function
@@ -227,7 +225,7 @@
 namespace fallbackTemplates
 {
     template <class ToType>
-    inline bool operator >>(std::istream& instream, ToType& output)
+    FORCEINLINE bool operator >>(std::istream& instream, ToType& output)
     {
         return orxonox::ConverterFallback<std::string, ToType>
             ::convert(&output, static_cast<std::istringstream&>(instream).str());
@@ -238,7 +236,7 @@
 template <class ToType>
 struct ConverterStringStream<std::string, ToType>
 {
-    static bool convert(ToType* output, const std::string& input)
+    FORCEINLINE static bool convert(ToType* output, const std::string& input)
     {
         using namespace fallbackTemplates;
         std::istringstream iss(input);
@@ -261,14 +259,14 @@
 
     // implicit cast not possible, try stringstream conversion next
     template <class FromType, class ToType>
-    inline bool convertImplicitely(ToType* output, const FromType& input, orxonox::Int2Type<false>)
+    FORCEINLINE bool convertImplicitely(ToType* output, const FromType& input, detail::Int2Type<false>)
     {
         return ConverterStringStream<FromType, ToType>::convert(output, input);
     }
 
     // We can cast implicitely
     template <class FromType, class ToType>
-    inline bool convertImplicitely(ToType* output, const FromType& input, orxonox::Int2Type<true>)
+    FORCEINLINE bool convertImplicitely(ToType* output, const FromType& input, detail::Int2Type<true>)
     {
         (*output) = static_cast<ToType>(input);
         return true;
@@ -283,12 +281,12 @@
     template <class FromType, class ToType>
     struct ConverterExplicit
     {
-        static bool convert(ToType* output, const FromType& input)
+        FORCEINLINE static bool convert(ToType* output, const FromType& input)
         {
             // Try implict cast and probe first. If a simple cast is not possible, it will not compile
             // We therefore have to out source it into another template function
             const bool probe = ImplicitConversion<FromType, ToType>::exists;
-            return convertImplicitely(output, input, orxonox::Int2Type<probe>());
+            return convertImplicitely(output, input, detail::Int2Type<probe>());
         }
     };
 
@@ -305,18 +303,11 @@
         'Actual conversion sequence' in this file above.
     */
     template <class FromType, class ToType>
-    inline bool convertValue(ToType* output, const FromType& input)
+    FORCEINLINE bool convertValue(ToType* output, const FromType& input)
     {
         return ConverterExplicit<FromType, ToType>::convert(output, input);
     }
 
-    // For compatibility reasons. The same, but with capital ConvertValue
-    template<class FromType, class ToType>
-    inline bool ConvertValue(ToType* output, const FromType& input)
-    {
-        return convertValue(output, input);
-    }
-
     // Calls convertValue and returns true if the conversion was successful.
     // Otherwise the fallback is used.
     /**
@@ -330,7 +321,7 @@
         A default value that gets written to '*output' if there is no conversion.
     */
     template<class FromType, class ToType>
-    inline bool convertValue(ToType* output, const FromType& input, const ToType& fallback)
+    FORCEINLINE bool convertValue(ToType* output, const FromType& input, const ToType& fallback)
     {
         if (convertValue(output, input))
             return true;
@@ -341,16 +332,9 @@
         }
     }
 
-    // for compatibility reason. (capital 'c' in ConvertValue)
-    template<class FromType, class ToType>
-    inline bool ConvertValue(ToType* output, const FromType& input, const ToType& fallback)
-    {
-        return convertValue(output, input, fallback);
-    }
-
     // Directly returns the converted value, even if the conversion was not successful.
     template<class FromType, class ToType>
-    inline ToType getConvertedValue(const FromType& input)
+    FORCEINLINE ToType getConvertedValue(const FromType& input)
     {
         ToType output;
         convertValue(&output, input);
@@ -359,7 +343,7 @@
 
     // Directly returns the converted value, but uses the fallback on failure.
     template<class FromType, class ToType>
-    inline ToType getConvertedValue(const FromType& input, const ToType& fallback)
+    FORCEINLINE ToType getConvertedValue(const FromType& input, const ToType& fallback)
     {
         ToType output;
         convertValue(&output, input, fallback);
@@ -369,7 +353,7 @@
     // Like getConvertedValue, but the template argument order is in reverse.
     // That means you can call it exactly like static_cast<ToType>(fromTypeValue).
     template<class ToType, class FromType>
-    inline ToType omni_cast(const FromType& input)
+    FORCEINLINE ToType multi_cast(const FromType& input)
     {
         ToType output;
         convertValue(&output, input);
@@ -378,16 +362,16 @@
 
     // convert to string Shortcut
     template <class FromType>
-    inline std::string convertToString(FromType value)
+    FORCEINLINE std::string convertToString(FromType value)
     {
-      return getConvertedValue<FromType, std::string>(value);
+        return getConvertedValue<FromType, std::string>(value);
     }
 
     // convert from string Shortcut
     template <class ToType>
-    inline ToType convertFromString(std::string str)
+    FORCEINLINE ToType convertFromString(std::string str)
     {
-      return getConvertedValue<std::string, ToType>(str);
+        return getConvertedValue<std::string, ToType>(str);
     }
 
     ////////////////////////////////
@@ -398,7 +382,7 @@
     template <class ToType>
     struct ConverterExplicit<const char*, ToType>
     {
-        static bool convert(ToType* output, const char* input)
+        FORCEINLINE static bool convert(ToType* output, const char* input)
         {
             return convertValue<std::string, ToType>(output, input);
         }
@@ -408,7 +392,7 @@
     template <>
     struct ConverterExplicit<char, std::string>
     {
-        static bool convert(std::string* output, const char input)
+        FORCEINLINE static bool convert(std::string* output, const char input)
         {
             *output = std::string(1, input);
             return true;
@@ -417,7 +401,7 @@
     template <>
     struct ConverterExplicit<unsigned char, std::string>
     {
-        static bool convert(std::string* output, const unsigned char input)
+        FORCEINLINE static bool convert(std::string* output, const unsigned char input)
         {
             *output = std::string(1, input);
             return true;
@@ -426,7 +410,7 @@
     template <>
     struct ConverterExplicit<std::string, char>
     {
-        static bool convert(char* output, const std::string input)
+        FORCEINLINE static bool convert(char* output, const std::string input)
         {
             if (input != "")
                 *output = input[0];
@@ -438,7 +422,7 @@
     template <>
     struct ConverterExplicit<std::string, unsigned char>
     {
-        static bool convert(unsigned char* output, const std::string input)
+        FORCEINLINE static bool convert(unsigned char* output, const std::string input)
         {
             if (input != "")
                 *output = input[0];
@@ -453,7 +437,7 @@
     template <>
     struct ConverterExplicit<bool, std::string>
     {
-        static bool convert(std::string* output, const bool& input)
+        FORCEINLINE static bool convert(std::string* output, const bool& input)
         {
             if (input)
               *output = "true";

Modified: trunk/src/util/Debug.h
===================================================================
--- trunk/src/util/Debug.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Debug.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -62,8 +62,6 @@
 
 #include "UtilPrereqs.h"
 
-#include <stdio.h>
-
 #include "OutputHandler.h"
 
 namespace orxonox
@@ -72,7 +70,7 @@
         @brief Returns the soft debug level, stored in the only existing instance of the OutputHandler class, configured in the config-file.
         @return The soft debug level
     */
-    static inline int getSoftDebugLevel()
+    inline int getSoftDebugLevel()
     {
         return OutputHandler::getSoftDebugLevel();
     }

Modified: trunk/src/util/Exception.cc
===================================================================
--- trunk/src/util/Exception.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Exception.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,7 +36,7 @@
 
 namespace orxonox
 {
-    Exception::Exception(const std::string& description, int lineNumber,
+    Exception::Exception(const std::string& description, unsigned int lineNumber,
                          const char* filename, const char* functionName)
         : description_(description)
         , lineNumber_(lineNumber)
@@ -51,6 +51,12 @@
         , filename_("")
     { }
 
+    /**
+    @remarks
+        The composed full description gets stored to fullDescription_. But for compliance
+        with std::exception, this method has to be const. Hence fullDescription_ is declared
+        as mutable.
+    */
     const std::string& Exception::getFullDescription() const
     {
         if (fullDescription_ == "")

Modified: trunk/src/util/Exception.h
===================================================================
--- trunk/src/util/Exception.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Exception.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -29,7 +29,7 @@
 /**
 @file
 @brief
-    Declaration of the Exception class.
+    Declaration of facilities to handle exceptions.
 */
 
 #ifndef _Exception_H__
@@ -37,63 +37,85 @@
 
 #include "UtilPrereqs.h"
 
+#include <exception>
+#include <sstream>
 #include <string>
-#include <exception>
-#include <cassert>
 #include "Debug.h"
 
 namespace orxonox
 {
+    /**
+    @brief
+        Base class for all exceptions (derived from std::exception).
+    @details
+        This class provides support for information about the file, the line
+        and the function the error occured.
+    */
     class _UtilExport Exception : public std::exception
     {
     public:
-
-        Exception(const std::string& description, int lineNumber,
+        /**
+        @brief
+            Creates the exception but doesn't yet compose the full descrption (because of the virtual functions)
+        @param description
+            Exception description as string. This message is supposed to help developers!
+        */
+        Exception(const std::string& description, unsigned int lineNumber,
                   const char* filename, const char* functionName);
+        //! Simplified constructor with just a description. If you need more, use the other one.
         Exception(const std::string& description);
 
-        /// Needed for  compatibility with std::exception (from Ogre::Exception)
+        //! Needed for compatibility with std::exception
         virtual ~Exception() throw() { }
 
+        //! Returns a full description with type, line, file and function
         virtual const std::string& getFullDescription() const;
+        //! Returns the string name of the exception type
         virtual std::string        getTypeName()        const = 0;
+        //! Returns the short developer written exception
         virtual const std::string& getDescription()     const { return this->description_; }
-        virtual const int          getLineNumber()      const { return this->lineNumber_; }
+        //! Returns the line number on which the exception occurred.
+        virtual const unsigned int getLineNumber()      const { return this->lineNumber_; }
+        //! Returns the function in which the exception occurred.
         virtual const std::string& getFunctionName()    const { return this->functionName_; }
+        //! Returns the filename in which the exception occurred.
+        virtual const std::string& getFilename()        const { return this->filename_; }
 
-        /// Override std::exception::what (from Ogre::Exception)
+        //! Returns a full description of the error.
         const char* what() const throw() { return getFullDescription().c_str(); }
 
     protected:
-        std::string description_;
-        int lineNumber_;
-        std::string functionName_;
-        std::string filename_;
+        std::string description_;             //!< User typed text about why the exception occurred
+        unsigned int lineNumber_;             //!< Line on which the exception occurred
+        std::string functionName_;            //!< Function (including namespace and class) where the exception occurred
+        std::string filename_;                //!< File where the exception occurred
         // mutable because "what()" is a const method
-        mutable std::string fullDescription_;
+        mutable std::string fullDescription_; //!< Full description with line, file and function
     };
 
-
+//! Creates a new type of exception that inherits from tracker::Exception
 #define CREATE_ORXONOX_EXCEPTION(ExceptionName)                                     \
     class ExceptionName##Exception : public Exception                               \
     {                                                                               \
     public:                                                                         \
-        ExceptionName##Exception(const std::string& description, int lineNumber,    \
-                  const char* filename, const char* functionName)                   \
-                  : Exception(description, lineNumber, filename, functionName)      \
+        ExceptionName##Exception(const std::string& description,                    \
+                unsigned int lineNumber, const char* filename,                      \
+                const char* functionName)                                           \
+            : Exception(description, lineNumber, filename, functionName)            \
         { }                                                                         \
                                                                                     \
         ExceptionName##Exception(const std::string& description)                    \
-                  : Exception(description)                                          \
+            : Exception(description)                                                \
         { }                                                                         \
                                                                                     \
         ~ExceptionName##Exception() throw() { }                                     \
                                                                                     \
         std::string getTypeName() const { return #ExceptionName; }                  \
-    };
+    }
 
     // Creates all possible exception types.
     // If you want to add a new type, simply copy and adjust a new line here.
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
     CREATE_ORXONOX_EXCEPTION(General);
     CREATE_ORXONOX_EXCEPTION(FileNotFound);
     CREATE_ORXONOX_EXCEPTION(Argument);
@@ -105,30 +127,33 @@
     CREATE_ORXONOX_EXCEPTION(GameState);
     CREATE_ORXONOX_EXCEPTION(NoGraphics);
     CREATE_ORXONOX_EXCEPTION(AbortLoading);
-}
+#endif
 
     /**
     @brief
-        Helper function that creates an exception, displays the message, but doesn't throw it.
+        Helper function that forwards an exception and displays the message.
+    @details
+        This is necessary because only when using 'throw' the objects storage is managed.
     */
     template <class T>
-    inline const T& InternalHandleException(const T& exception)
+    inline const T& exceptionThrowerHelper(const T& exception)
     {
         // let the catcher decide whether to display the message below level 4
         COUT(4) << exception.getFullDescription() << std::endl;
         return exception;
     }
 
-#define ThrowException(type, description) \
-    throw InternalHandleException(type##Exception(description, __LINE__, __FILE__, __FUNCTIONNAME__))
+/**
+ at brief
+    Throws an exception and logs a message beforehand.
+ at param type
+    Type of the exception as literal (General, Initialisation, etc.)
+ at param description
+    Exception description as string
+*/
+#define ThrowException(type, description, ...) \
+    throw orxonox::exceptionThrowerHelper(type##Exception(static_cast<std::ostringstream&>(std::ostringstream().flush() << description).str(), __LINE__, __FILE__, __FUNCTIONNAME__))
 
-    // define an assert macro that can display a message
-#ifndef NDEBUG
-#define OrxAssert(Assertion, ErrorMessage) \
-    Assertion ? ((void)0) : (void)(orxonox::OutputHandler::getOutStream().setOutputLevel(ORX_ERROR) << ErrorMessage << std::endl); \
-    assert(Assertion)
-#else
-#define OrxAssert(condition, errorMessage)  ((void)0)
-#endif
+} /* namespace orxonox */
 
 #endif /* _Exception_H__ */

Modified: trunk/src/util/ExprParser.cc
===================================================================
--- trunk/src/util/ExprParser.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/ExprParser.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,7 +34,7 @@
 #include "ExprParser.h"
 #include <cmath>
 #include <cstring>
-#include <stdlib.h>
+#include <cstdlib>
 
 // macros for easier if, else statements
 #define CASE_1(var) if (!strcmp(SWITCH,var))
@@ -246,11 +246,11 @@
             this->failed_ = true;
             return 0;
         }
-        else if (*reading_stream > 47 && *reading_stream < 59 || *reading_stream == 46)
+        else if ((*reading_stream > 47 && *reading_stream < 59) || *reading_stream == 46)
         {  // number
             value = strtod(reading_stream, const_cast<char**>(&reading_stream));
         }
-        else if (*reading_stream > 64 && *reading_stream < 91 || *reading_stream > 96 && *reading_stream < 123 || *reading_stream == 46)
+        else if ((*reading_stream > 64 && *reading_stream < 91) || (*reading_stream > 96 && *reading_stream < 123) || *reading_stream == 46)
         {  // variable or function
             char* word = new char[256];
             parse_word(word);
@@ -383,7 +383,7 @@
     {
         char* word = str;
         int counter = 0;
-        while (*reading_stream > 47 && *reading_stream < 58 || *reading_stream > 64 && *reading_stream < 91 || *reading_stream > 96 && *reading_stream < 123 || *reading_stream == 46)
+        while ((*reading_stream > 47 && *reading_stream < 58) || (*reading_stream > 64 && *reading_stream < 91) || (*reading_stream > 96 && *reading_stream < 123) || *reading_stream == 46)
         {
             *word++ = *reading_stream++;
             counter++;

Modified: trunk/src/util/ExprParser.h
===================================================================
--- trunk/src/util/ExprParser.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/ExprParser.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -71,9 +71,9 @@
 
 
         ExprParser(const std::string& str);
-        std::string& getRemains() { return  this->remains_; }
-        double       getResult()  { return  this->result_; }
-        bool         getSuccess() { return !this->failed_; }
+        const std::string& getRemains() { return  this->remains_; }
+        double             getResult()  { return  this->result_; }
+        bool               getSuccess() { return !this->failed_; }
 
     private:
         double parse_expr_1();

Modified: trunk/src/util/Math.cc
===================================================================
--- trunk/src/util/Math.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Math.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,10 +34,10 @@
 #include "Math.h"
 
 #include <OgrePlane.h>
+
 #include "MathConvert.h"
 #include "SubString.h"
-
-// Do not remove this include to avoid linker errors.
+// Do not remove this include, it avoids linker errors.
 #include "mbool.h"
 
 namespace orxonox
@@ -237,9 +237,9 @@
                          ",", SubString::WhiteSpaces, false, '\\', true, '"', true, '\0', '\0', true, '\0');
         if (tokens.size() >= 2)
         {
-            if (!ConvertValue(&(output->x), tokens[0]))
+            if (!convertValue(&(output->x), tokens[0]))
                 return false;
-            if (!ConvertValue(&(output->y), tokens[1]))
+            if (!convertValue(&(output->y), tokens[1]))
                 return false;
 
             return true;
@@ -260,11 +260,11 @@
                          ",", SubString::WhiteSpaces, false, '\\', true, '"', true, '\0', '\0', true, '\0');
         if (tokens.size() >= 3)
         {
-            if (!ConvertValue(&(output->x), tokens[0]))
+            if (!convertValue(&(output->x), tokens[0]))
                 return false;
-            if (!ConvertValue(&(output->y), tokens[1]))
+            if (!convertValue(&(output->y), tokens[1]))
                 return false;
-            if (!ConvertValue(&(output->z), tokens[2]))
+            if (!convertValue(&(output->z), tokens[2]))
                 return false;
 
             return true;
@@ -285,13 +285,13 @@
                          ",", SubString::WhiteSpaces, false, '\\', true, '"', true, '\0', '\0', true, '\0');
         if (tokens.size() >= 4)
         {
-            if (!ConvertValue(&(output->x), tokens[0]))
+            if (!convertValue(&(output->x), tokens[0]))
                 return false;
-            if (!ConvertValue(&(output->y), tokens[1]))
+            if (!convertValue(&(output->y), tokens[1]))
                 return false;
-            if (!ConvertValue(&(output->z), tokens[2]))
+            if (!convertValue(&(output->z), tokens[2]))
                 return false;
-            if (!ConvertValue(&(output->w), tokens[3]))
+            if (!convertValue(&(output->w), tokens[3]))
                 return false;
 
             return true;
@@ -308,13 +308,13 @@
         SubString tokens(input.substr(opening_parenthesis, closing_parenthesis - opening_parenthesis), ",", SubString::WhiteSpaces, false, '\\', true, '"', true, '\0', '\0', true, '\0');
         if (tokens.size() >= 4)
         {
-            if (!ConvertValue(&(output->w), tokens[0]))
+            if (!convertValue(&(output->w), tokens[0]))
                 return false;
-            if (!ConvertValue(&(output->x), tokens[1]))
+            if (!convertValue(&(output->x), tokens[1]))
                 return false;
-            if (!ConvertValue(&(output->y), tokens[2]))
+            if (!convertValue(&(output->y), tokens[2]))
                 return false;
-            if (!ConvertValue(&(output->z), tokens[3]))
+            if (!convertValue(&(output->z), tokens[3]))
                 return false;
 
             return true;
@@ -331,15 +331,15 @@
         SubString tokens(input.substr(opening_parenthesis, closing_parenthesis - opening_parenthesis), ",", SubString::WhiteSpaces, false, '\\', true, '"', true, '\0', '\0', true, '\0');
         if (tokens.size() >= 3)
         {
-            if (!ConvertValue(&(output->r), tokens[0]))
+            if (!convertValue(&(output->r), tokens[0]))
                 return false;
-            if (!ConvertValue(&(output->g), tokens[1]))
+            if (!convertValue(&(output->g), tokens[1]))
                 return false;
-            if (!ConvertValue(&(output->b), tokens[2]))
+            if (!convertValue(&(output->b), tokens[2]))
                 return false;
             if (tokens.size() >= 4)
             {
-                if (!ConvertValue(&(output->a), tokens[3]))
+                if (!convertValue(&(output->a), tokens[3]))
                     return false;
             }
             else

Modified: trunk/src/util/Math.h
===================================================================
--- trunk/src/util/Math.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Math.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -36,17 +36,13 @@
 
 #include "UtilPrereqs.h"
 
-#include <ostream>
 #include <string>
 #include <cmath>
-#include <boost/static_assert.hpp>
 
 #include <OgreMath.h>
 #include <OgreVector2.h>
 #include <OgreVector3.h>
 #include <OgreVector4.h>
-#include <OgreMatrix3.h>
-#include <OgreMatrix4.h>
 #include <OgreQuaternion.h>
 #include <OgreColourValue.h>
 
@@ -57,34 +53,6 @@
 
 namespace orxonox
 {
-    using Ogre::Radian;
-    using Ogre::Degree;
-    using Ogre::Vector2;
-    using Ogre::Vector3;
-    using Ogre::Vector4;
-    using Ogre::Matrix3;
-    using Ogre::Matrix4;
-    using Ogre::Quaternion;
-    using Ogre::ColourValue;
-
-    // Also define our own transform space enum
-    namespace TransformSpace
-    {
-        /**
-        @brief
-            Enumeration denoting the spaces which a transform can be relative to.
-        */
-        enum Enum
-        {
-            //! Transform is relative to the local space
-            Local,
-            //! Transform is relative to the space of the parent node
-            Parent,
-            //! Transform is relative to world space
-            World
-        };
-    }
-
     _UtilExport std::ostream& operator<<(std::ostream& out, const orxonox::Radian& radian);
     _UtilExport std::istream& operator>>(std::istream& in, orxonox::Radian& radian);
     _UtilExport std::ostream& operator<<(std::ostream& out, const orxonox::Degree& degree);
@@ -216,6 +184,19 @@
     template <> inline orxonox::ColourValue zeroise<orxonox::ColourValue>() { return orxonox::ColourValue(0, 0, 0, 0); }
     template <> inline orxonox::Quaternion  zeroise<orxonox::Quaternion>()  { return orxonox::Quaternion (0, 0, 0, 0); }
 
+    //! Provides zero value symbols that can be returned as reference
+    template <typename T>
+    struct NilValue
+    {
+        inline operator const T&() const
+        {
+            return value;
+        }
+        static T value;
+    };
+    template <typename T>
+    T NilValue<T>::value = zeroise<T>();
+
     /**
         @brief Interpolates between two values for a time between 0 and 1.
         @param time The time is a value between 0 and 1 - the function returns start if time is 0 and end if time is 1 and interpolates if time is between 0 and 1.
@@ -224,7 +205,7 @@
         @return The interpolation at a given time
     */
     template <typename T>
-    T interpolate(float time, const T& start, const T& end)
+    inline T interpolate(float time, const T& start, const T& end)
     {
         return time * (end - start) + start;
     }
@@ -237,7 +218,7 @@
         @return The smoothed interpolation at a given time
     */
     template <typename T>
-    T interpolateSmooth(float time, const T& start, const T& end)
+    inline T interpolateSmooth(float time, const T& start, const T& end)
     {
         return (-2 * (end - start) * cube(time)) + (3 * (end - start) * square(time)) + start;
     }
@@ -247,7 +228,7 @@
     */
     inline float rnd()
     {
-        return rand() / (RAND_MAX + 1.0);
+        return rand() / (RAND_MAX + 1.0f);
     }
 
     /**
@@ -274,7 +255,7 @@
     */
     inline float rndsgn()
     {
-        return ((rand() & 0x2) - 1); // rand() & 0x2 is either 2 or 0
+        return static_cast<float>((rand() & 0x2) - 1); // rand() & 0x2 is either 2 or 0
     }
 
     _UtilExport unsigned long getUniqueNumber();
@@ -282,20 +263,20 @@
     class IntVector2
     {
     public:
-      IntVector2() : x(0), y(0) { }
-      IntVector2(int _x, int _y) : x(_x), y(_y) { }
-      int x;
-      int y;
+        IntVector2() : x(0), y(0) { }
+        IntVector2(int _x, int _y) : x(_x), y(_y) { }
+        int x;
+        int y;
     };
 
     class IntVector3
     {
     public:
-      IntVector3() : x(0), y(0), z(0) { }
-      IntVector3(int _x, int _y, int _z) : x(_x), y(_y), z(_z) { }
-      int x;
-      int y;
-      int z;
+        IntVector3() : x(0), y(0), z(0) { }
+        IntVector3(int _x, int _y, int _z) : x(_x), y(_y), z(_z) { }
+        int x;
+        int y;
+        int z;
     };
 }
 

Modified: trunk/src/util/MathConvert.h
===================================================================
--- trunk/src/util/MathConvert.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/MathConvert.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -49,7 +49,7 @@
     template <>
     struct ConverterExplicit<orxonox::Vector2, std::string>
     {
-        static bool convert(std::string* output, const orxonox::Vector2& input)
+        FORCEINLINE static bool convert(std::string* output, const orxonox::Vector2& input)
         {
             std::ostringstream ostream;
             if (ostream << input.x << "," << input.y)
@@ -65,7 +65,7 @@
     template <>
     struct ConverterExplicit<orxonox::Vector3, std::string>
     {
-        static bool convert(std::string* output, const orxonox::Vector3& input)
+        FORCEINLINE static bool convert(std::string* output, const orxonox::Vector3& input)
         {
             std::ostringstream ostream;
             if (ostream << input.x << "," << input.y << "," << input.z)
@@ -81,7 +81,7 @@
     template <>
     struct ConverterExplicit<orxonox::Vector4, std::string>
     {
-        static bool convert(std::string* output, const orxonox::Vector4& input)
+        FORCEINLINE static bool convert(std::string* output, const orxonox::Vector4& input)
         {
             std::ostringstream ostream;
             if (ostream << input.x << "," << input.y << "," << input.z << "," << input.w)
@@ -97,7 +97,7 @@
     template <>
     struct ConverterExplicit<orxonox::Quaternion, std::string>
     {
-        static bool convert(std::string* output, const orxonox::Quaternion& input)
+        FORCEINLINE static bool convert(std::string* output, const orxonox::Quaternion& input)
         {
             std::ostringstream ostream;
             if (ostream << input.w << "," << input.x << "," << input.y << "," << input.z)
@@ -113,7 +113,7 @@
     template <>
     struct ConverterExplicit<orxonox::ColourValue, std::string>
     {
-        static bool convert(std::string* output, const orxonox::ColourValue& input)
+        FORCEINLINE static bool convert(std::string* output, const orxonox::ColourValue& input)
         {
             std::ostringstream ostream;
             if (ostream << input.r << "," << input.g << "," << input.b << "," << input.a)
@@ -155,7 +155,7 @@
     template <class ToType>
     struct ConverterFallback<orxonox::Radian, ToType>
     {
-        static bool convert(ToType* output, const orxonox::Radian& input)
+        FORCEINLINE static bool convert(ToType* output, const orxonox::Radian& input)
         {
             return convertValue<Ogre::Real, ToType>(output, input.valueRadians());
         }
@@ -165,7 +165,7 @@
     template <class ToType>
     struct ConverterFallback<orxonox::Degree, ToType>
     {
-        static bool convert(ToType* output, const orxonox::Degree& input)
+        FORCEINLINE static bool convert(ToType* output, const orxonox::Degree& input)
         {
             return convertValue<Ogre::Real, ToType>(output, input.valueDegrees());
         }
@@ -175,7 +175,7 @@
     template <class FromType>
     struct ConverterFallback<FromType, orxonox::Radian>
     {
-        static bool convert(orxonox::Radian* output, const FromType& input)
+        FORCEINLINE static bool convert(orxonox::Radian* output, const FromType& input)
         {
             float temp;
             if (convertValue(&temp, input))
@@ -192,7 +192,7 @@
     template <class FromType>
     struct ConverterFallback<FromType, orxonox::Degree>
     {
-        static bool convert(orxonox::Degree* output, const FromType& input)
+        FORCEINLINE static bool convert(orxonox::Degree* output, const FromType& input)
         {
             float temp;
             if (convertValue(&temp, input))

Modified: trunk/src/util/MultiType.cc
===================================================================
--- trunk/src/util/MultiType.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/MultiType.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -158,29 +158,29 @@
         };
     }
 
-    MultiType::operator char()                 const { return (this->value_) ? ((this->value_->type_ == MT_char       ) ? ((MT_Value<char>                *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator unsigned char()        const { return (this->value_) ? ((this->value_->type_ == MT_uchar      ) ? ((MT_Value<unsigned char>       *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator short()                const { return (this->value_) ? ((this->value_->type_ == MT_short      ) ? ((MT_Value<short>               *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator unsigned short()       const { return (this->value_) ? ((this->value_->type_ == MT_ushort     ) ? ((MT_Value<unsigned short>      *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator int()                  const { return (this->value_) ? ((this->value_->type_ == MT_int        ) ? ((MT_Value<int>                 *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator unsigned int()         const { return (this->value_) ? ((this->value_->type_ == MT_uint       ) ? ((MT_Value<unsigned int>        *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator long()                 const { return (this->value_) ? ((this->value_->type_ == MT_long       ) ? ((MT_Value<long>                *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator unsigned long()        const { return (this->value_) ? ((this->value_->type_ == MT_ulong      ) ? ((MT_Value<unsigned long>       *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator long long()            const { return (this->value_) ? ((this->value_->type_ == MT_longlong   ) ? ((MT_Value<long long>           *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator unsigned long long()   const { return (this->value_) ? ((this->value_->type_ == MT_ulonglong  ) ? ((MT_Value<unsigned long long>  *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator float()                const { return (this->value_) ? ((this->value_->type_ == MT_float      ) ? ((MT_Value<float>               *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator double()               const { return (this->value_) ? ((this->value_->type_ == MT_double     ) ? ((MT_Value<double>              *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator long double()          const { return (this->value_) ? ((this->value_->type_ == MT_longdouble ) ? ((MT_Value<long double>         *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator bool()                 const { return (this->value_) ? ((this->value_->type_ == MT_bool       ) ? ((MT_Value<bool>                *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator void*()                const { return (this->value_) ? ((this->value_->type_ == MT_void       ) ? ((MT_Value<void*>               *)this->value_)->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator std::string()          const { return (this->value_) ? ((this->value_->type_ == MT_string     ) ? ((MT_Value<std::string>         *)this->value_)->value_ : (*this->value_)) : zeroise<std::string>();          } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator orxonox::Vector2()     const { return (this->value_) ? ((this->value_->type_ == MT_vector2    ) ? ((MT_Value<orxonox::Vector2>    *)this->value_)->value_ : (*this->value_)) : zeroise<orxonox::Vector2>();     } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator orxonox::Vector3()     const { return (this->value_) ? ((this->value_->type_ == MT_vector3    ) ? ((MT_Value<orxonox::Vector3>    *)this->value_)->value_ : (*this->value_)) : zeroise<orxonox::Vector3>();     } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator orxonox::Vector4()     const { return (this->value_) ? ((this->value_->type_ == MT_vector4    ) ? ((MT_Value<orxonox::Vector4>    *)this->value_)->value_ : (*this->value_)) : zeroise<orxonox::Vector4>();     } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator orxonox::ColourValue() const { return (this->value_) ? ((this->value_->type_ == MT_colourvalue) ? ((MT_Value<orxonox::ColourValue>*)this->value_)->value_ : (*this->value_)) : zeroise<orxonox::ColourValue>(); } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator orxonox::Quaternion()  const { return (this->value_) ? ((this->value_->type_ == MT_quaternion ) ? ((MT_Value<orxonox::Quaternion> *)this->value_)->value_ : (*this->value_)) : zeroise<orxonox::Quaternion>();  } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator orxonox::Radian()      const { return (this->value_) ? ((this->value_->type_ == MT_radian     ) ? ((MT_Value<orxonox::Radian>     *)this->value_)->value_ : (*this->value_)) : zeroise<orxonox::Radian>();      } /** @brief Returns the current value, converted to the requested type. */
-    MultiType::operator orxonox::Degree()      const { return (this->value_) ? ((this->value_->type_ == MT_degree     ) ? ((MT_Value<orxonox::Degree>     *)this->value_)->value_ : (*this->value_)) : zeroise<orxonox::Degree>();      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator char()                 const { return (this->value_) ? ((this->value_->type_ == MT_char       ) ? (static_cast<MT_Value<char>                *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator unsigned char()        const { return (this->value_) ? ((this->value_->type_ == MT_uchar      ) ? (static_cast<MT_Value<unsigned char>       *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator short()                const { return (this->value_) ? ((this->value_->type_ == MT_short      ) ? (static_cast<MT_Value<short>               *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator unsigned short()       const { return (this->value_) ? ((this->value_->type_ == MT_ushort     ) ? (static_cast<MT_Value<unsigned short>      *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator int()                  const { return (this->value_) ? ((this->value_->type_ == MT_int        ) ? (static_cast<MT_Value<int>                 *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator unsigned int()         const { return (this->value_) ? ((this->value_->type_ == MT_uint       ) ? (static_cast<MT_Value<unsigned int>        *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator long()                 const { return (this->value_) ? ((this->value_->type_ == MT_long       ) ? (static_cast<MT_Value<long>                *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator unsigned long()        const { return (this->value_) ? ((this->value_->type_ == MT_ulong      ) ? (static_cast<MT_Value<unsigned long>       *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator long long()            const { return (this->value_) ? ((this->value_->type_ == MT_longlong   ) ? (static_cast<MT_Value<long long>           *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator unsigned long long()   const { return (this->value_) ? ((this->value_->type_ == MT_ulonglong  ) ? (static_cast<MT_Value<unsigned long long>  *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator float()                const { return (this->value_) ? ((this->value_->type_ == MT_float      ) ? (static_cast<MT_Value<float>               *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator double()               const { return (this->value_) ? ((this->value_->type_ == MT_double     ) ? (static_cast<MT_Value<double>              *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator long double()          const { return (this->value_) ? ((this->value_->type_ == MT_longdouble ) ? (static_cast<MT_Value<long double>         *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator bool()                 const { return (this->value_) ? ((this->value_->type_ == MT_bool       ) ? (static_cast<MT_Value<bool>                *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator void*()                const { return (this->value_) ? ((this->value_->type_ == MT_void       ) ? (static_cast<MT_Value<void*>               *>(this->value_))->value_ : (*this->value_)) : 0;                      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator std::string()          const { return (this->value_) ? ((this->value_->type_ == MT_string     ) ? (static_cast<MT_Value<std::string>         *>(this->value_))->value_ : (*this->value_)) : NilValue<std::string>();          } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator orxonox::Vector2()     const { return (this->value_) ? ((this->value_->type_ == MT_vector2    ) ? (static_cast<MT_Value<orxonox::Vector2>    *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector2>();     } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator orxonox::Vector3()     const { return (this->value_) ? ((this->value_->type_ == MT_vector3    ) ? (static_cast<MT_Value<orxonox::Vector3>    *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector3>();     } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator orxonox::Vector4()     const { return (this->value_) ? ((this->value_->type_ == MT_vector4    ) ? (static_cast<MT_Value<orxonox::Vector4>    *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector4>();     } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator orxonox::ColourValue() const { return (this->value_) ? ((this->value_->type_ == MT_colourvalue) ? (static_cast<MT_Value<orxonox::ColourValue>*>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::ColourValue>(); } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator orxonox::Quaternion()  const { return (this->value_) ? ((this->value_->type_ == MT_quaternion ) ? (static_cast<MT_Value<orxonox::Quaternion> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Quaternion>();  } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator orxonox::Radian()      const { return (this->value_) ? ((this->value_->type_ == MT_radian     ) ? (static_cast<MT_Value<orxonox::Radian>     *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Radian>();      } /** @brief Returns the current value, converted to the requested type. */
+    MultiType::operator orxonox::Degree()      const { return (this->value_) ? ((this->value_->type_ == MT_degree     ) ? (static_cast<MT_Value<orxonox::Degree>     *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Degree>();      } /** @brief Returns the current value, converted to the requested type. */
 
     template <> void MultiType::createNewValueContainer(const char& value)                 { this->value_ = new MT_Value<char>                (value, MT_char       ); } /** @brief Creates a new value container for the given type. */
     template <> void MultiType::createNewValueContainer(const unsigned char& value)        { this->value_ = new MT_Value<unsigned char>       (value, MT_uchar      ); } /** @brief Creates a new value container for the given type. */

Modified: trunk/src/util/MultiType.h
===================================================================
--- trunk/src/util/MultiType.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/MultiType.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -68,10 +68,14 @@
 
 #include "UtilPrereqs.h"
 
-#include <boost/static_assert.hpp>
+#include <cassert>
+#include <string>
+#include <OgreVector2.h>
+#include <OgreVector3.h>
+#include <OgreVector4.h>
+#include <OgreQuaternion.h>
+#include <OgreColourValue.h>
 
-#include "Math.h"
-
 namespace orxonox
 {
     /**
@@ -440,7 +444,7 @@
             /** @brief Changes the value container. */
             template <typename T> inline void changeValueContainer(const T& value) { if (this->value_) { delete this->value_; } this->createNewValueContainer<T>(value); }
             /** @brief Creates a new value container (works only with specialized types). */
-            template <typename T>        void createNewValueContainer(const T& value) { BOOST_STATIC_ASSERT(sizeof(T) == 0); return false; }
+            template <typename T>        void createNewValueContainer(const T& value) { /* STATIC ASSERT */ *****value; return false; }
 
             MT_ValueBase* value_; //!< A pointer to the value container
     };

Modified: trunk/src/util/MultiTypeValue.h
===================================================================
--- trunk/src/util/MultiTypeValue.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/MultiTypeValue.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -37,10 +37,11 @@
 #define _MultiTypeValue_H__
 
 #include "UtilPrereqs.h"
+
+#include <cassert>
 #include "MathConvert.h"
 #include "MultiType.h"
 #include "Serialise.h"
-#include <cassert>
 
 namespace orxonox
 {
@@ -74,53 +75,53 @@
             }
         }
 
-        inline bool getValue(char*                 value) const { return ConvertValue<T, char                >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(unsigned char*        value) const { return ConvertValue<T, unsigned char       >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(short*                value) const { return ConvertValue<T, short               >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(unsigned short*       value) const { return ConvertValue<T, unsigned short      >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(int*                  value) const { return ConvertValue<T, int                 >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(unsigned int*         value) const { return ConvertValue<T, unsigned int        >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(long*                 value) const { return ConvertValue<T, long                >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(unsigned long*        value) const { return ConvertValue<T, unsigned long       >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(long long*            value) const { return ConvertValue<T, long long           >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(unsigned long long*   value) const { return ConvertValue<T, unsigned long long  >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(float*                value) const { return ConvertValue<T, float               >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(double*               value) const { return ConvertValue<T, double              >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(long double*          value) const { return ConvertValue<T, long double         >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(bool*                 value) const { return ConvertValue<T, bool                >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(void**                value) const { return ConvertValue<T, void*               >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(std::string*          value) const { return ConvertValue<T, std::string         >(value, value_, zeroise<std::string>         ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(orxonox::Vector2*     value) const { return ConvertValue<T, orxonox::Vector2    >(value, value_, zeroise<orxonox::Vector2>    ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(orxonox::Vector3*     value) const { return ConvertValue<T, orxonox::Vector3    >(value, value_, zeroise<orxonox::Vector3>    ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(orxonox::Vector4*     value) const { return ConvertValue<T, orxonox::Vector4    >(value, value_, zeroise<orxonox::Vector4>    ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(orxonox::ColourValue* value) const { return ConvertValue<T, orxonox::ColourValue>(value, value_, zeroise<orxonox::ColourValue>()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(orxonox::Quaternion*  value) const { return ConvertValue<T, orxonox::Quaternion >(value, value_, zeroise<orxonox::Quaternion> ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(orxonox::Radian*      value) const { return ConvertValue<T, orxonox::Radian     >(value, value_, zeroise<orxonox::Radian>     ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
-        inline bool getValue(orxonox::Degree*      value) const { return ConvertValue<T, orxonox::Degree     >(value, value_, zeroise<orxonox::Degree>     ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(char*                 value) const { return convertValue<T, char                >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(unsigned char*        value) const { return convertValue<T, unsigned char       >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(short*                value) const { return convertValue<T, short               >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(unsigned short*       value) const { return convertValue<T, unsigned short      >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(int*                  value) const { return convertValue<T, int                 >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(unsigned int*         value) const { return convertValue<T, unsigned int        >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(long*                 value) const { return convertValue<T, long                >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(unsigned long*        value) const { return convertValue<T, unsigned long       >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(long long*            value) const { return convertValue<T, long long           >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(unsigned long long*   value) const { return convertValue<T, unsigned long long  >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(float*                value) const { return convertValue<T, float               >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(double*               value) const { return convertValue<T, double              >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(long double*          value) const { return convertValue<T, long double         >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(bool*                 value) const { return convertValue<T, bool                >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(void**                value) const { return convertValue<T, void*               >(value, value_, 0); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(std::string*          value) const { return convertValue<T, std::string         >(value, value_, zeroise<std::string>         ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(orxonox::Vector2*     value) const { return convertValue<T, orxonox::Vector2    >(value, value_, zeroise<orxonox::Vector2>    ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(orxonox::Vector3*     value) const { return convertValue<T, orxonox::Vector3    >(value, value_, zeroise<orxonox::Vector3>    ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(orxonox::Vector4*     value) const { return convertValue<T, orxonox::Vector4    >(value, value_, zeroise<orxonox::Vector4>    ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(orxonox::ColourValue* value) const { return convertValue<T, orxonox::ColourValue>(value, value_, zeroise<orxonox::ColourValue>()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(orxonox::Quaternion*  value) const { return convertValue<T, orxonox::Quaternion >(value, value_, zeroise<orxonox::Quaternion> ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(orxonox::Radian*      value) const { return convertValue<T, orxonox::Radian     >(value, value_, zeroise<orxonox::Radian>     ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
+        inline bool getValue(orxonox::Degree*      value) const { return convertValue<T, orxonox::Degree     >(value, value_, zeroise<orxonox::Degree>     ()); } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
 
-        inline bool setValue(const char& value)                 { return !(bHasDefaultValue_ = !ConvertValue<char                , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const unsigned char& value)        { return !(bHasDefaultValue_ = !ConvertValue<unsigned char       , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const short& value)                { return !(bHasDefaultValue_ = !ConvertValue<short               , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const unsigned short& value)       { return !(bHasDefaultValue_ = !ConvertValue<unsigned short      , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const int& value)                  { return !(bHasDefaultValue_ = !ConvertValue<int                 , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const unsigned int& value)         { return !(bHasDefaultValue_ = !ConvertValue<unsigned int        , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const long& value)                 { return !(bHasDefaultValue_ = !ConvertValue<long                , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const unsigned long& value)        { return !(bHasDefaultValue_ = !ConvertValue<unsigned long       , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const long long& value)            { return !(bHasDefaultValue_ = !ConvertValue<long long           , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const unsigned long long& value)   { return !(bHasDefaultValue_ = !ConvertValue<unsigned long long  , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const float& value)                { return !(bHasDefaultValue_ = !ConvertValue<float               , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const double& value)               { return !(bHasDefaultValue_ = !ConvertValue<double              , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const long double& value)          { return !(bHasDefaultValue_ = !ConvertValue<long double         , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const bool& value)                 { return !(bHasDefaultValue_ = !ConvertValue<bool                , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(      void* const& value)          { return !(bHasDefaultValue_ = !ConvertValue<void*               , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const std::string& value)          { return !(bHasDefaultValue_ = !ConvertValue<std::string         , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const orxonox::Vector2& value)     { return !(bHasDefaultValue_ = !ConvertValue<orxonox::Vector2    , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const orxonox::Vector3& value)     { return !(bHasDefaultValue_ = !ConvertValue<orxonox::Vector3    , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const orxonox::Vector4& value)     { return !(bHasDefaultValue_ = !ConvertValue<orxonox::Vector4    , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const orxonox::ColourValue& value) { return !(bHasDefaultValue_ = !ConvertValue<orxonox::ColourValue, T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const orxonox::Quaternion& value)  { return !(bHasDefaultValue_ = !ConvertValue<orxonox::Quaternion , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const orxonox::Radian& value)      { return !(bHasDefaultValue_ = !ConvertValue<orxonox::Radian     , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
-        inline bool setValue(const orxonox::Degree& value)      { return !(bHasDefaultValue_ = !ConvertValue<orxonox::Degree     , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const char& value)                 { return !(bHasDefaultValue_ = !convertValue<char                , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const unsigned char& value)        { return !(bHasDefaultValue_ = !convertValue<unsigned char       , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const short& value)                { return !(bHasDefaultValue_ = !convertValue<short               , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const unsigned short& value)       { return !(bHasDefaultValue_ = !convertValue<unsigned short      , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const int& value)                  { return !(bHasDefaultValue_ = !convertValue<int                 , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const unsigned int& value)         { return !(bHasDefaultValue_ = !convertValue<unsigned int        , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const long& value)                 { return !(bHasDefaultValue_ = !convertValue<long                , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const unsigned long& value)        { return !(bHasDefaultValue_ = !convertValue<unsigned long       , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const long long& value)            { return !(bHasDefaultValue_ = !convertValue<long long           , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const unsigned long long& value)   { return !(bHasDefaultValue_ = !convertValue<unsigned long long  , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const float& value)                { return !(bHasDefaultValue_ = !convertValue<float               , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const double& value)               { return !(bHasDefaultValue_ = !convertValue<double              , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const long double& value)          { return !(bHasDefaultValue_ = !convertValue<long double         , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const bool& value)                 { return !(bHasDefaultValue_ = !convertValue<bool                , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(      void* const& value)          { return !(bHasDefaultValue_ = !convertValue<void*               , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const std::string& value)          { return !(bHasDefaultValue_ = !convertValue<std::string         , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const orxonox::Vector2& value)     { return !(bHasDefaultValue_ = !convertValue<orxonox::Vector2    , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const orxonox::Vector3& value)     { return !(bHasDefaultValue_ = !convertValue<orxonox::Vector3    , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const orxonox::Vector4& value)     { return !(bHasDefaultValue_ = !convertValue<orxonox::Vector4    , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const orxonox::ColourValue& value) { return !(bHasDefaultValue_ = !convertValue<orxonox::ColourValue, T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const orxonox::Quaternion& value)  { return !(bHasDefaultValue_ = !convertValue<orxonox::Quaternion , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const orxonox::Radian& value)      { return !(bHasDefaultValue_ = !convertValue<orxonox::Radian     , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
+        inline bool setValue(const orxonox::Degree& value)      { return !(bHasDefaultValue_ = !convertValue<orxonox::Degree     , T>(&value_, value, zeroise<T>())); } /** @brief Assigns the value by converting it to T. */
 
         inline operator char()                 const { return getConvertedValue<T, char>                (this->value_, 0); }     /** @brief Returns the current value, converted to the requested type. */
         inline operator unsigned char()        const { return getConvertedValue<T, unsigned char>       (this->value_, 0); }     /** @brief Returns the current value, converted to the requested type. */
@@ -193,7 +194,8 @@
         saveAndIncrease( this->value_.y, mem );
         saveAndIncrease( this->value_.z, mem );
         saveAndIncrease( this->value_.w, mem );
-    }template <> inline uint8_t MT_Value<Ogre::Quaternion>::getSize() const
+    }
+    template <> inline uint8_t MT_Value<Ogre::Quaternion>::getSize() const
     {
         return 4*returnSize(this->value_.x);
     }

Copied: trunk/src/util/OgreForwardRefs.h (from rev 3195, branches/pch/src/util/OgreForwardRefs.h)
===================================================================
--- trunk/src/util/OgreForwardRefs.h	                        (rev 0)
+++ trunk/src/util/OgreForwardRefs.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,227 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _OgreForwardRefs_H__
+#define _OgreForwardRefs_H__
+
+#include "UtilPrereqs.h"
+
+namespace Ogre
+{
+    class Angle;
+    class Animation;
+    class AnimationState;
+    class AnimationStateSet;
+    class AnimationTrack;
+    class Archive;
+    class ArchiveFactory;
+    class ArchiveManager;
+    class AutoParamDataSource;
+    class AxisAlignedBox;
+    class AxisAlignedBoxSceneQuery;
+    class Billboard;
+    class BillboardChain;
+    class BillboardSet;
+    class Bone;
+    class Camera;
+    class Codec;
+    class ColourValue;
+    class ConfigDialog;
+    template <typename T> class Controller;
+    template <typename T> class ControllerFunction;
+    class ControllerManager;
+    template <typename T> class ControllerValue;
+    class Degree;
+    class DynLib;
+    class DynLibManager;
+    class EdgeData;
+    class EdgeListBuilder;
+    class Entity;
+    class ErrorDialog;
+    class ExternalTextureSourceManager;
+    class Factory;
+    class Font;
+    class FontPtr;
+    class FontManager;
+    struct FrameEvent;
+    class FrameListener;
+    class Frustum;
+    class GpuProgram;
+    class GpuProgramPtr;
+    class GpuProgramManager;
+	class GpuProgramUsage;
+    class HardwareIndexBuffer;
+    class HardwareOcclusionQuery;
+    class HardwareVertexBuffer;
+	class HardwarePixelBuffer;
+    class HardwarePixelBufferSharedPtr;
+	class HighLevelGpuProgram;
+    class HighLevelGpuProgramPtr;
+	class HighLevelGpuProgramManager;
+	class HighLevelGpuProgramFactory;
+    class IndexData;
+    class IntersectionSceneQuery;
+    class IntersectionSceneQueryListener;
+    class Image;
+    class KeyFrame;
+    class Light;
+    class Log;
+    class LogManager;
+	class ManualResourceLoader;
+	class ManualObject;
+    class Material;
+    class MaterialPtr;
+    class MaterialManager;
+    class MaterialScriptCompiler;
+    class Math;
+    class Matrix3;
+    class Matrix4;
+    class MemoryManager;
+    class Mesh;
+    class MeshPtr;
+    class MeshSerializer;
+    class MeshSerializerImpl;
+    class MeshManager;
+    class MovableObject;
+    class MovablePlane;
+    class Node;
+	class NodeAnimationTrack;
+	class NodeKeyFrame;
+	class NumericAnimationTrack;
+	class NumericKeyFrame;
+    class Overlay;
+    class OverlayContainer;
+    class OverlayElement;
+    class OverlayElementFactory;
+    class OverlayManager;
+    class Particle;
+    class ParticleAffector;
+    class ParticleAffectorFactory;
+    class ParticleEmitter;
+    class ParticleEmitterFactory;
+    class ParticleSystem;
+    class ParticleSystemManager;
+    class ParticleSystemRenderer;
+    class ParticleSystemRendererFactory;
+    class ParticleVisualData;
+    class Pass;
+    class PatchMesh;
+    class PixelBox;
+    class Plane;
+    class PlaneBoundedVolume;
+	class Plugin;
+    class Pose;
+    class ProgressiveMesh;
+    class Profile;
+	class Profiler;
+    class Quaternion;
+	class Radian;
+    class Ray;
+    class RaySceneQuery;
+    class RaySceneQueryListener;
+    class Renderable;
+    class RenderPriorityGroup;
+    class RenderQueue;
+    class RenderQueueGroup;
+	class RenderQueueInvocation;
+	class RenderQueueInvocationSequence;
+    class RenderQueueListener;
+    class RenderSystem;
+    class RenderSystemCapabilities;
+    class RenderTarget;
+    class RenderTargetListener;
+    class RenderTexture;
+	class MultiRenderTarget;
+    class RenderWindow;
+    class RenderOperation;
+    class Resource;
+	class ResourceBackgroundQueue;
+	class ResourceGroupManager;
+    class ResourceManager;
+    class RibbonTrail;
+	class Root;
+    class SceneManager;
+    class SceneManagerEnumerator;
+    class SceneNode;
+    class SceneQuery;
+    class SceneQueryListener;
+	class ScriptLoader;
+    class Serializer;
+    class ShadowCaster;
+    class ShadowRenderable;
+	class ShadowTextureManager;
+    class SimpleRenderable;
+    class SimpleSpline;
+    class Skeleton;
+    class SkeletonPtr;
+    class SkeletonInstance;
+    class SkeletonManager;
+    class Sphere;
+    class SphereSceneQuery;
+	class StaticGeometry;
+    class StringConverter;
+    class StringInterface;
+    class SubEntity;
+    class SubMesh;
+	class TagPoint;
+    class Technique;
+	class TempBlendedBufferInfo;
+	class ExternalTextureSource;
+    class TextureUnitState;
+    class Texture;
+    class TexturePtr;
+	class TextureFont;
+    class TextureManager;
+    class TransformKeyFrame;
+	class Timer;
+    class UserDefinedObject;
+    class Vector2;
+    class Vector3;
+    class Vector4;
+    class Viewport;
+	class VertexAnimationTrack;
+    class VertexBufferBinding;
+    class VertexData;
+    class VertexDeclaration;
+	class VertexMorphKeyFrame;
+    class WireBoundingBox;
+    class Compositor;
+    class CompositorManager;
+    class CompositorChain;
+    class CompositorInstance;
+    class CompositionTechnique;
+    class CompositionPass;
+    class CompositionTargetPass;
+
+    // Originally not in OgrePrerequisites.h
+    class BorderPanelOverlayElement;
+    class PanelOverlayElement;
+    class TextAreaOverlayElement;
+}
+
+#endif /* _OgreForwardRefs_H__ */

Copied: trunk/src/util/OrxAssert.h (from rev 3195, branches/pch/src/util/OrxAssert.h)
===================================================================
--- trunk/src/util/OrxAssert.h	                        (rev 0)
+++ trunk/src/util/OrxAssert.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,52 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+ at file
+ at brief
+    Declaration of custom assertion facilities
+*/
+
+#ifndef _OrxAssert_H__
+#define _OrxAssert_H__
+
+#include "UtilPrereqs.h"
+
+#include <cassert>
+#include "OutputHandler.h"
+
+// define an assert macro that can display a message
+#ifndef NDEBUG
+#define OrxAssert(Assertion, ErrorMessage) \
+    Assertion ? ((void)0) : (void)(orxonox::OutputHandler::getOutStream().setOutputLevel(1) << ErrorMessage << std::endl); \
+    assert(Assertion)
+#else
+#define OrxAssert(condition, errorMessage)  ((void)0)
+#endif
+
+#endif /* _OrxAssert_H__ */

Modified: trunk/src/util/OutputBuffer.cc
===================================================================
--- trunk/src/util/OutputBuffer.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/OutputBuffer.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -43,7 +43,7 @@
     */
     void OutputBuffer::registerListener(OutputBufferListener* listener)
     {
-        this->listeners_.insert(this->listeners_.end(), listener);
+        this->listeners_.push_back(listener);
     }
 
     /**
@@ -52,10 +52,10 @@
     */
     void OutputBuffer::unregisterListener(OutputBufferListener* listener)
     {
-        for (std::list<OutputBufferListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); )
+        for (std::vector<OutputBufferListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); )
         {
             if ((*it) == listener)
-                this->listeners_.erase(it++);
+                it = this->listeners_.erase(it);
             else
                 ++it;
         }
@@ -126,7 +126,7 @@
     */
     void OutputBuffer::callListeners()
     {
-        for (std::list<OutputBufferListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); ++it)
+        for (std::vector<OutputBufferListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); ++it)
             (*it)->outputChanged();
     }
 }

Modified: trunk/src/util/OutputBuffer.h
===================================================================
--- trunk/src/util/OutputBuffer.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/OutputBuffer.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -42,12 +42,11 @@
 #ifndef _OutputBuffer_H__
 #define _OutputBuffer_H__
 
-#include <list>
-#include <sstream>
-#include <iostream>
-
 #include "UtilPrereqs.h"
 
+#include <vector>
+#include <sstream>
+
 namespace orxonox
 {
     /**
@@ -166,8 +165,8 @@
         private:
             void callListeners();
 
-            std::stringstream stream_;                   //!< The stringstream that stores the assigned text
-            std::list<OutputBufferListener*> listeners_; //!< A list of all listeners
+            std::stringstream stream_;                     //!< The stringstream that stores the assigned text
+            std::vector<OutputBufferListener*> listeners_; //!< A list of all listeners
     };
 }
 

Modified: trunk/src/util/OutputHandler.h
===================================================================
--- trunk/src/util/OutputHandler.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/OutputHandler.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -62,23 +62,23 @@
             static OutputHandler& getOutStream();
 
             /** @brief Puts some text on the outstream. @param text The text */
-            static inline std::string log(const std::string& text)
+            static inline const std::string& log(const std::string& text)
                 { OutputHandler::getOutStream().setOutputLevel(0); OutputHandler::getOutStream().output(text + "\n"); return text; }
 
             /** @brief Puts an error on the outstream. @param text The text */
-            static inline std::string error(const std::string& text)
+            static inline const std::string& error(const std::string& text)
                 { OutputHandler::getOutStream().setOutputLevel(1); OutputHandler::getOutStream().output(text + "\n"); return text; }
 
             /** @brief Puts a warning on the outstream. @param text The text */
-            static inline std::string warning(const std::string& text)
+            static inline const std::string& warning(const std::string& text)
                 { OutputHandler::getOutStream().setOutputLevel(2); OutputHandler::getOutStream().output(text + "\n"); return text; }
 
             /** @brief Puts an info on the outstream. @param text The text */
-            static inline std::string info(const std::string& text)
+            static inline const std::string& info(const std::string& text)
                 { OutputHandler::getOutStream().setOutputLevel(3); OutputHandler::getOutStream().output(text + "\n"); return text; }
 
             /** @brief Puts some debug output on the outstream. @param text The text */
-            static inline std::string debug(const std::string& text)
+            static inline const std::string& debug(const std::string& text)
                 { OutputHandler::getOutStream().setOutputLevel(4); OutputHandler::getOutStream().output(text + "\n"); return text; }
 
             /** @brief Returns a reference to the logfile. @return The logfile */

Modified: trunk/src/util/SignalHandler.cc
===================================================================
--- trunk/src/util/SignalHandler.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/SignalHandler.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -32,11 +32,11 @@
 */
 
 #include "SignalHandler.h"
-#include "Debug.h"
 
 #include <iostream>
 #include <cstdlib>
 #include <cstring>
+#include "Debug.h"
 
 namespace orxonox
 {
@@ -208,12 +208,12 @@
       while ( read( gdbOut[0], &byte, 1 ) == 1 )
       {
         if (
-          charsFound == 0 && byte == '(' ||
-          charsFound == 1 && byte == 'g' ||
-          charsFound == 2 && byte == 'd' ||
-          charsFound == 3 && byte == 'b' ||
-          charsFound == 4 && byte == ')' ||
-          charsFound == 5 && byte == ' '
+          (charsFound == 0 && byte == '(') ||
+          (charsFound == 1 && byte == 'g') ||
+          (charsFound == 2 && byte == 'd') ||
+          (charsFound == 3 && byte == 'b') ||
+          (charsFound == 4 && byte == ')') ||
+          (charsFound == 5 && byte == ' ')
             )
               charsFound++;
         else
@@ -245,12 +245,12 @@
         bt += std::string( &byte, 1 );
 
         if (
-          charsFound == 0 && byte == '(' ||
-          charsFound == 1 && byte == 'g' ||
-          charsFound == 2 && byte == 'd' ||
-          charsFound == 3 && byte == 'b' ||
-          charsFound == 4 && byte == ')' ||
-          charsFound == 5 && byte == ' '
+          (charsFound == 0 && byte == '(') ||
+          (charsFound == 1 && byte == 'g') ||
+          (charsFound == 2 && byte == 'd') ||
+          (charsFound == 3 && byte == 'b') ||
+          (charsFound == 4 && byte == ')') ||
+          (charsFound == 5 && byte == ' ')
             )
               charsFound++;
         else

Modified: trunk/src/util/Sleep.cc
===================================================================
--- trunk/src/util/Sleep.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Sleep.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,8 +27,9 @@
  */
 
 /**
-    @file
-    @brief Implementation of three sleep functions.
+ at file
+ at brief
+    Implementation of three sleep functions. Avoids including windows.h
 */
 
 #include "Sleep.h"
@@ -42,7 +43,7 @@
     void usleep(unsigned long microseconds)
     {
         if (microseconds < 1000)
-            COUT(2) << "Warning: Windows can not sleep less than 1ms, ignoring" << std::endl;
+            COUT(2) << "Warning: Windows cannot sleep less than 1ms, ignoring" << std::endl;
         Sleep(microseconds / 1000);
     }
 

Modified: trunk/src/util/Sleep.h
===================================================================
--- trunk/src/util/Sleep.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/Sleep.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -27,9 +27,9 @@
  */
 
 /**
- @file
- @brief
-    Functions for using sleep() and usleep() on windows.
+ at file
+ at brief
+    Functions declarations to make the current thread sleep.
  */
 
 #ifndef _Sleep_H__
@@ -39,8 +39,11 @@
 
 namespace orxonox
 {
+    //! Makes the thread sleep for a few @a microseconds
     _UtilExport void usleep(unsigned long microseconds);
+    //! Makes the thread sleep for a few @a milliseconds
     _UtilExport void msleep(unsigned long milliseconds);
+    //! Makes the thread sleep for a few @a seconds
     _UtilExport void sleep (unsigned long seconds);
 }
 

Modified: trunk/src/util/String.cc
===================================================================
--- trunk/src/util/String.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/String.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -34,8 +34,6 @@
 #include "String.h"
 
 #include <cctype>
-#include <iostream>
-
 #include "Convert.h"
 #include "Math.h"
 

Modified: trunk/src/util/String.h
===================================================================
--- trunk/src/util/String.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/String.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,9 +35,7 @@
 #define _Util_String_H__
 
 #include "UtilPrereqs.h"
-
 #include <string>
-#include <sstream>
 
 namespace orxonox
 {

Modified: trunk/src/util/SubString.cc
===================================================================
--- trunk/src/util/SubString.cc	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/SubString.cc	2009-06-20 07:20:47 UTC (rev 3196)
@@ -38,7 +38,7 @@
  */
 
 #include "SubString.h"
-#include <stdio.h>
+#include <cstdio>
 
 namespace orxonox
 {

Copied: trunk/src/util/UTFStringConversions.h (from rev 3195, branches/pch/src/util/UTFStringConversions.h)
===================================================================
--- trunk/src/util/UTFStringConversions.h	                        (rev 0)
+++ trunk/src/util/UTFStringConversions.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -0,0 +1,61 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ */
+
+/**
+ at file
+ at brief
+    std::sring to Ogre::UTFString conversion functions
+*/
+
+#ifndef _UTFStringConversions_H__
+#define _UTFStringConversions_H__
+
+#include "UtilPrereqs.h"
+#include <OgreUTFString.h>
+
+namespace orxonox
+{
+    template <>
+    struct ConverterExplicit<std::string, Ogre::UTFString>
+    {
+        //! Converts an std::string into an Ogre::UTFString
+        inline static bool convert(Ogre::UTFString* output, const std::string& input)
+        {
+            Ogre::UTFString::code_point cp;
+            for (unsigned int i = 0; i < input.size(); ++i)
+            {
+              cp = input[i];
+              cp &= 0xFF;
+              output->append(1, cp);
+            }
+            return true;
+        }
+    };
+}
+
+#endif /* _UTFStringConversions_H__ */

Modified: trunk/src/util/UtilPrereqs.h
===================================================================
--- trunk/src/util/UtilPrereqs.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/UtilPrereqs.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -59,8 +59,31 @@
 //-----------------------------------------------------------------------
 // Forward declarations
 //-----------------------------------------------------------------------
+namespace Ogre
+{
+    class Radian;
+    class Degree;
+    class Vector2;
+    class Vector3;
+    class Vector4;
+    class Matrix3;
+    class Matrix4;
+    class Quaternion;
+    class ColourValue;
+}
+
 namespace orxonox
 {
+    using Ogre::Radian;
+    using Ogre::Degree;
+    using Ogre::Vector2;
+    using Ogre::Vector3;
+    using Ogre::Vector4;
+    using Ogre::Matrix3;
+    using Ogre::Matrix4;
+    using Ogre::Quaternion;
+    using Ogre::ColourValue;
+
     class Exception;
     class ExprParser;
     class IntVector2;

Modified: trunk/src/util/mbool.h
===================================================================
--- trunk/src/util/mbool.h	2009-06-19 12:28:24 UTC (rev 3195)
+++ trunk/src/util/mbool.h	2009-06-20 07:20:47 UTC (rev 3196)
@@ -35,7 +35,6 @@
 {
     struct _UtilExport mbool
     {
-//        friend Synchronisable::registerVariable<>()
         public:
             inline mbool(bool value = false)
                 { this->value_.memory_ = 0; this->value_.bool_ = value; }




More information about the Orxonox-commit mailing list