Index: /code/trunk/data/gui/scripts/QuestGUI.lua
===================================================================
--- /code/trunk/data/gui/scripts/QuestGUI.lua	(revision 7455)
+++ /code/trunk/data/gui/scripts/QuestGUI.lua	(revision 7456)
@@ -39,9 +39,9 @@
     questWindow:setSize(CEGUI.UVector2(CEGUI.UDim(1, 0),CEGUI.UDim(1, 0)))
 
-    -- Iterate through all parent-quests.
-    local numParentQuests = orxonox.QuestManager:getInstance():getNumParentQuests(P.player)
+    -- Iterate through all root-quests.
+    local numRootQuests = orxonox.QuestManager:getInstance():getNumRootQuests(P.player)
     local i = 0
-    while i <= numParentQuests-1 do
-        local quest = orxonox.QuestManager:getInstance():getParentQuest(P.player, i)
+    while i <= numRootQuests-1 do
+        local quest = orxonox.QuestManager:getInstance():getRootQuest(P.player, i)
         index = P.createQuestNodes(questWindow, quest, depth, index)
         i = i+1
Index: /code/trunk/doc/api/Groups.dox
===================================================================
--- /code/trunk/doc/api/Groups.dox	(revision 7455)
+++ /code/trunk/doc/api/Groups.dox	(revision 7456)
@@ -23,5 +23,5 @@
  *      Fabian 'x3n' Landau
  *   Co-authors:
- *      ...
+ *      Damian 'Mozork' Frick
  *
  */
@@ -119,4 +119,7 @@
     @defgroup Notifications Notifications
     @ingroup Modules
+
+    @defgroup NotificationDispatchers Dispatchers
+    @ingroup Notifications
 */
 
@@ -134,4 +137,7 @@
     @defgroup Pickup Pickup
     @ingroup Modules
+
+    @defgroup PickupItems Items
+    @ingroup Pickup
 */
 
@@ -144,4 +150,195 @@
     @defgroup Questsystem Questsystem
     @ingroup Modules
+
+    The Questsystem is a module that enhances Orxonox with @ref orxonox::Quest "Quests". @ref orxonox::Quest "Quests" are objects that challenge the player that receives such an object to fulfill some specific task (e.g. Rescue a princess, fetch some rare metal alloy, destroy the evil pirates den, ...). Upon having fulfilled that task the player can be rewarded with some kind of reward. Quests can be hierarchically structured, meaning that to fulfill some @ref orxonox::Quest "Quest" you first have to fulfill all (or some, depending on the quest) sub-quests.
+
+    @section TechnicalDetails Technical details
+    The Questsystem essentially consists of the @ref orxonox::Quest "Quest" entity which is the quest itself (and sub- or helper-entities, such as @ref orxonox::QuestHint "QuestHint" (hints for quests) or @ref orxonox::QuestDescription "QuestDescription" (descriptions for quests and hints, to separate content from function)), the @ref orxonox::QuestEffect "QuestEffect" and @ref orxonox::QuestListener "QuestListener" entities which are the only tools for quests to have any influence on the game world. By enabling quests to have @ref orxonox::QuestEffect "QuestEffects" they are able to (for example) fail or complete other quests, activate hints, give rewards or even add a quest to a player. @ref orxonox::QuestListener "QuestListeners" on the other hand can be used by any object to react to a status change of a quest. The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is the physical entity which finally makes quests available for the player in the game, by being able to invoke a @ref orxonox::QuestEffect "QuestEffect" on a player (under some conditions).
+    @image html questsystem.png
+
+    @section CreatingQuests Creating Quests
+
+    @subsection CreatingTheQuestHierarchy Creating the Quest-Hierarchy
+    To start you have to create a Quest-Hierarchy in the XML-Levelfile by hierarchically nesting your quests. There are two types of Quests you can use, the LocalQuest and the GlobalQuest.
+
+    @subsubsection LocalQuest LocalQuest
+    A @ref orxonox::LocalQuest "LocalQuest" is a @ref orxonox::Quest "Quest" which has different states for each player, that means each @ref orxonox::LocalQuest "LocalQuest" can be obtained and completed (or failed) by each player in parallel. A questId is some string that uniquely identifies the quest, this can either be a name or, to ensure uniqueness, you can use a GUID generator (<a href="http://www.google.com/search?q=guid+generator">google</a> or you can use this <a href="http://www.famkruithof.net/uuid/uuidgen">generator</a>). The advantage of GUID is, that you can be quite sure that your id is unique, the drawback is, that it provides less overview and can be quite confusing when looking at the level file. So make your own choice.
+
+    Creating a @ref orxonox::LocalQuest "LocalQuest" in XML goes as follows:
+    @code
+    <LocalQuest id="questId">
+        <QuestDescription title="Title" description="Description." /> //The description of the quest.
+        <subquests>
+            <Quest id ="questId1" /> //A list of n subquest, be aware, each of the <Quest /> tags must have a description and so on and so forth as well.
+            ...
+            <Quest id="questIdn" />
+        </subquests>
+        <hints>
+            <QuestHint id="hintId1" /> //A list of n QuestHints, see QuestHint for the full XML representation of those.
+            ...
+            <QuestHint id="hintIdn" />
+        </hints>
+        <fail-effects>
+            <QuestEffect /> //A list of QuestEffects, invoked when the Quest is failed, see QuestEffect for the full XML representation.
+            ...
+            <QuestEffect />
+        </fail-effects>
+        <complete-effects>
+            <QuestEffect /> //A list of QuestEffects, invoked when the Quest is completed, see QuestEffect for the full XML representation.
+            ...
+            <QuestEffect />
+        </complete-effects>
+    </LocalQuest>
+    @endcode
+
+    @subsubsection GlobalQuest GlobalQuest
+    @ref orxonox::GlobalQuest "GlobalQuests" are different, they can be obtained by every player but the changes made to the @ref orxonox::Quest "Quest" (e.g. completion of the quest) affect all owners of the quest. A short example: There are 3 Players, A, B and C. Player A obtains the quest, a while later player B obtains the quest and completes it. Since it is a @ref orxonox::GlobalQuest "GlobalQuest" it is completed for all players having obtained the Quest which means it is also completed for player A. Player C though, never having obtained the quest, can now never complete it.
+
+    Creating a @ref orxonox::GlobalQuest "GlobalQuest" in XML goes as follows:
+    @code
+    <GlobalQuest id="questId">
+        <QuestDescription title="Title" description="Description." /> //The description of the quest.
+        <subquests>
+            <Quest id ="questId1" /> //A list of n subquest, be aware, each of the <Quest /> tags must have a description and so on and so forth as well.
+            ...
+            <Quest id="questIdn" />
+        </subquests>
+        <hints>
+            <QuestHint id="hintId1" /> //A list of n QuestHints, see QuestHint for the full XML representation of those.
+            ...
+            <QuestHint id="hintIdn" />
+        </hints>
+        <fail-effects>
+            <QuestEffect /> //A list of QuestEffects, invoked on all players possessing this quest, when the Quest is failed, see QuestEffect for the full XML representation.
+            ...
+            <QuestEffect />
+        </fail-effects>
+        <complete-effects>
+            <QuestEffect /> //A list of QuestEffects, invoked on all players possessing this quest, when the Quest is completed, see QuestEffect for the full XML representation.
+            ...
+            <QuestEffect />
+        </complete-effects>
+        <reward-effects>
+            <QuestEffect /> //A list of QuestEffects, invoked on the player completing this quest. See QuestEffect for the full XML representation.
+            ...
+            <QuestEffect />
+        </reward-effects>
+    </GlobalQuest>
+    @endcode
+
+    As you may see that another difference between a @ref orxonox::GlobalQuest "GlobalQuest" and a @ref orxonox::LocalQuest "LocalQuest" is, that with a \ref orxonox::GlobalQuest "GlobalQuest" having @ref orxonox::AddReward "RewardEffects", the RewardEffects are only executed on the player completing the quest. Additionally \ref orxonox::CompleteQuest "CompleteEffects" are executed on all players having obtained the quest before it was completed, when it is completed., while with a @ref orxonox::LocalQuest "LocalQuest" each player that completes a quest, completes it for himself alone, but also gets the reward, regardless whether another player completed the quest before him.
+
+    @subsubsection QuestHint QuestHint
+    @ref orxonox::QuestHint "QuestHints" can be used to give a player useful information for @ref orxonox::Quest "Quests" he is working on completing. @ref orxonox::QuestHint "QuestHints" cannot have any side effects, but also have an identifier which follows the same form as in the @ref orxonox::Quest "Quests".
+
+    Creating a @ref orxonox::QuestHint "QuestHint" in XML goes as follows:
+    @code
+    <QuestHint id="hintId">
+        <QuestDesctription title="" description="" />
+    </QuestHint>
+    @endcode
+
+    @subsubsection QuestDescription QuestDescription
+    Each @ref orxonox::Quest "Quest" (and also each @ref orxonox::QuestHint "QuestHint") must have a @ref orxonox::QuestDescription "QuestDescription" consisting of a title and description, and for @ref orxonox::Quest "Quests" also messages for the event the quest is either failed or completed. Of course these are (as is the title and the description) optional.
+
+    Creating a @ref orxonox::QuestDescription "QuestDescription" in XML goes as follows:
+    @code
+    <QuestDescription title="Title" description="Description Text" failMessage="You fail." completeMessage="You win!" />
+    @endcode
+
+    @subsection CreatingSideEffects Creating side effects
+    @ref orxonox::Quest "Quests" can have side effects, in fact that is mostly what they are about. This means that they can have an influence on the game world. @ref orxonox::Quest "Quests" do that through two distinct devices, @ref orxonox::QuestEffect "QuestEffects" (active) and @ref orxonox::QuestListener "QuestListeners" (passive).
+
+    @subsubsection QuestEffect QuestEffect
+    A @ref orxonox::QuestEffect "QuestEffect" is the first (and probably most important) device for @ref orxonox::Quest "Quests" to have side effects. There are two entities that can have @ref orxonox::QuestEffect "QuestEffects": @ref orxonox::Quest "Quests" and \ref orxonox::QuestEffectBeacon "QuestEffectBeacons" (which will be explained later on). @ref orxonox::QuestEffect "QuestEffects", for example, can start a @ref orxonox::Quest "Quest" for a player, complete/fail @ref orxonox::Quest "Quests" for a player, add a @ref orxonox::QuestHint "QuestHint" or a @ref orxonox::Rewardable "Reward" to a player, and potentially much, much more.
+
+    These @ref orxonox::QuestEffect "QuestEffects" are implemented so far, but feel free to <a href="http://www.orxonox.net/wiki/DamianFrick">contact me</a> if you have suggestions for new @ref orxonox::QuestEffect "QuestEffects" or if you need help implementing a new one yourself.
+
+    @paragraph AddQuest AddQuest
+    This @ref orxonox::QuestEffect "QuestEffect" adds (respectively starts) a @ref orxonox::Quest "Quest" (identified by the given questId) to the player.
+    @code
+    <AddQuest questId="id" />  //Where id identifies the Quest that should be added.
+    @endcode
+
+    @paragraph FailQuest FailQuest
+    This @ref orxonox::QuestEffect "QuestEffect" fails a @ref orxonox::Quest "Quest" (identified by the given questId) for the player.
+    @code
+    <FailQuest questId="id" />  //Where id identifies the Quest that should be added.
+    @endcode
+
+    @paragraph CompleteQuest CompleteQuest
+    This @ref orxonox::QuestEffect "QuestEffect" completes a @ref orxonox::Quest "Quest" (identified by the given questId) for the player.
+    @code
+    <CompleteQuest questId="id" />  //Where id identifies the Quest that should be added.
+    @endcode
+
+    @paragraph AddQuestHint AddQuestHint
+    This @ref orxonox::QuestEffect "QuestEffect" adds a @ref orxonox::QuestHint "QuestHint" to a @ref orxonox::Quest "Quest" (identified by the given questId) of a player.
+    @code
+    <AddQuestHint hintId="id" />  //Where id identifies the QuestHint that should be added.
+    @endcode
+
+    @paragraph AddReward AddReward
+    This @ref orxonox::QuestEffect "QuestEffect" adds a @ref orxonox::Rewardable "Rewardable" (@ref orxonox::Rewardable "Rewardable" is an Interface which can be implemented by an object that its creator thinks should be able to be rewarded a player for completing (or failing for that matter) a @ref orxonox::Quest "Quest") to the player. @ref Pickup Pickups for example wold be good @ref orxonox::Rewardable "Rewardables".
+    @code
+    <AddReward>
+        <Rewardable /> //A list of Rewardable objects to be rewarded the player, see the specific Rewardables for their respective XML representations.
+        ...
+        <Rewardable />
+    </AddReward>
+    @endcode
+
+    @subsubsection QuestListener QuestListener
+    The @ref orxonox::QuestListener "QuestListener" is the second device you can use to create side effects. As opposed to @ref orxonox::QuestEffect "QuestEffects" (that are executed (or invoked) either as a result of failing or completing a Quest or by a @ref orxonox::QuestEffectBeacon "QuestEffectBeacon"), @ref orxonox::QuestListener "QuestListeners" are passive, meaning that they relay information regarding status changes of @ref orxonox::Quest "Quests" rather than enforcing status changes. @ref orxonox::QuestListener "QuestListeners" have a certain mode (all, start, complete or fail) and a @ref orxonox::Quest "Quest" which they belong to (resp. to which they react). You then can use @ref orxonox::QuestListener "QuestListeners" to make basically any object aware of when the status of the given @ref orxonox::Quest "Quest" changes (the way you defined through the mode) and take any action you may think of.
+
+    Here is an example of the usage of @ref orxonox::QuestListener "QuestListeners" in XML:
+    @code
+    <BaseObject> // The object that should react to the status change of a Quest.
+        <events>
+            <function> // Where function is the method of the object that schould be executed. Normally this would be visibility or activity.
+                <QuestListener questId="someQuestId" mode="someMode" /> // Where someQuestId is the identifier for the Quest the QuestListener is reacting to, and someMode is the kind of status change the QUestListener reacts to (all, start, complete or fail).
+            </function>
+        </events>
+    </BaseObject>
+    @endcode
+
+    I hope this example has made the usage of @ref orxonox::QuestListener "QuestListeners" a little clearer. The @ref orxonox::QuestListener "QuestListener" actually reacts exactly as any @ref orxonox::Trigger "Trigger" or @ref orxonox::EventListener "EventListener" would (although the @ref orxonox::QuestListener "QuestListener" is really neighter the one nor the other) which means you can use it in exactly the same way you would use one of the above, it just reacts to a different thing. Namely to the change in a @ref orxonox::Quest "Quests" status.
+
+    @subsection PuttingTheQuestsInTheGameWorld Putting the Quests in the game world
+    As of now we know how to create @ref orxonox::Quest "Quests" and @ref orxonox::QuestHint "QuestHints", we have a way for quests to add new quests, or even complete/fail other quests. We also have a way of reacting to a status change in a @ref orxonox::Quest "Quest". In short we know how quests can be created, how they can influence other quests and how we can react to changes in quests. But our @ref orxonox::Quest "Quests" have no ties (well, not really at least) to the game world as of yet, meaning, that the game world cannot influence quests. For this we have @ref orxonox::QuestEffectBeacon "QuestEffectBeacons".
+
+    @subsubsection QuestEffectBeacon QuestEffectBeacon
+    The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is a @ref orxonox::StaticEntity "StaticEntity" and has the ability to (when triggered trough some circumstance) invoke a specified list of @ref orxonox::QuestEffect "QuestEffects" on the player triggering the @ref orxonox::QuestEffectBeacon "QuestEffectBeacon".
+
+    Creating a @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" in XML goes as follows:
+    @code
+    <QuestEffectBeacon times=n> //Where 'n' is either a number >= 0, which means the QuestEffectBeacon can be executed n times. Or n = -1, which means the QuestEffectBeacon can be executed an infinite number of times.
+        <effects>
+            <QuestEffect /> //A list of QuestEffects, invoked when the QuestEffectBeacon is executed, see QuestEffect for the full XML representation.
+            ...
+            <QuestEffect />
+        </effects>
+        <events>
+            <execute>
+                <EventListener event=eventIdString />
+            </execute>
+        </events>
+        <attached>
+            <PlayerTrigger name=eventIdString /> //A PlayerTrigger triggering the execution of the QuestEffectBeacon.
+        </attached>
+    </QuestEffectBeacon>
+    @endcode
+
+    The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" can only be executed a defined number of times (where -1 times stands for an infinite number of times) and the @ref orxonox::QuestEffect "QuestEffects" are invoked whenever the method 'execute' is called, which is (indirectly through an @ref orxonox::EventListener "EventListener", because I wanted to attach the @ref orxonox::PlayerTrigger "PlayerTrigger" so that its position is always relative to the @ref orxonox::QuestEffectBeacon "QuestEffectBeacons" position) done by the @ref orxonox::PlayerTrigger "PlayerTrigger".
+
+    A @ref orxonox::PlayerTrigger "PlayerTrigger" is a special sort of @ref orxonox::Trigger "Trigger" that knows the player that triggered it and therefore can be asked who that was. This allows the @ref orxonox::QuestEffect "QuestEffects" to be executed on the right player.
+
+    @section SampleQuest Sample quest
+    To get your head around all of this and see some of the things mentioned here in action you might want to check out the "The Tale of Princess Aeryn"-Quest (Levelfile: princessaeryn.oxw) in the level-folder.
+
+    @defgroup QuestEffects Effects
+    @ingroup Questsystem
+
+    A @ref orxonox::QuestEffect "QuestEffect" is a device for @ref orxonox::Quest "Quests" to have side effects. There are two entities that can have @ref orxonox::QuestEffect "QuestEffects": @ref orxonox::Quest "Quests" and \ref orxonox::QuestEffectBeacon "QuestEffectBeacons". @ref orxonox::QuestEffect "QuestEffects", for example, can start a @ref orxonox::Quest "Quest" for a player, complete/fail @ref orxonox::Quest "Quests" for a player, add a @ref orxonox::QuestHint "QuestHint" or a @ref orxonox::Rewardable "Reward" to a player, and potentially much, much more.
 */
 
Index: /code/trunk/src/modules/notifications/Notification.cc
===================================================================
--- /code/trunk/src/modules/notifications/Notification.cc	(revision 7455)
+++ /code/trunk/src/modules/notifications/Notification.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file Notification.cc
     @brief Implementation of the Notification class.
 */
Index: /code/trunk/src/modules/notifications/Notification.h
===================================================================
--- /code/trunk/src/modules/notifications/Notification.h	(revision 7455)
+++ /code/trunk/src/modules/notifications/Notification.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file Notification.h
     @brief Definition of the Notification class.
+    @ingroup Notifications
 */
 
Index: /code/trunk/src/modules/notifications/NotificationDispatcher.cc
===================================================================
--- /code/trunk/src/modules/notifications/NotificationDispatcher.cc	(revision 7455)
+++ /code/trunk/src/modules/notifications/NotificationDispatcher.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file NotificationDispatcher.cc
     @brief Implementation of the NotificationDispatcher class.
 */
Index: /code/trunk/src/modules/notifications/NotificationDispatcher.h
===================================================================
--- /code/trunk/src/modules/notifications/NotificationDispatcher.h	(revision 7455)
+++ /code/trunk/src/modules/notifications/NotificationDispatcher.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file NotificationDispatcher.h
     @brief Definition of the NotificationDispatcher class.
+    @ingroup Notifications
 */
 
Index: /code/trunk/src/modules/notifications/NotificationManager.h
===================================================================
--- /code/trunk/src/modules/notifications/NotificationManager.h	(revision 7455)
+++ /code/trunk/src/modules/notifications/NotificationManager.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file NotificationManager.h
     @brief Definition of the NotificationManager class.
+    @ingroup Notifications
 */
 
Index: /code/trunk/src/modules/notifications/NotificationQueue.h
===================================================================
--- /code/trunk/src/modules/notifications/NotificationQueue.h	(revision 7455)
+++ /code/trunk/src/modules/notifications/NotificationQueue.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file NotificationQueue.h
     @brief Definition of the NotificationQueue class.
+    @ingroup Notifications
 */
 
Index: /code/trunk/src/modules/notifications/dispatchers/CommandNotification.cc
===================================================================
--- /code/trunk/src/modules/notifications/dispatchers/CommandNotification.cc	(revision 7455)
+++ /code/trunk/src/modules/notifications/dispatchers/CommandNotification.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file CommandNotification.cc
     @brief Implementation of the CommandNotification class.
 */
Index: /code/trunk/src/modules/notifications/dispatchers/CommandNotification.h
===================================================================
--- /code/trunk/src/modules/notifications/dispatchers/CommandNotification.h	(revision 7455)
+++ /code/trunk/src/modules/notifications/dispatchers/CommandNotification.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file CommandNotification.h
     @brief Definition of the CommandNotification class.
+    @ingroup NotificationDispatchers
 */
 
Index: /code/trunk/src/modules/notifications/dispatchers/SimpleNotification.cc
===================================================================
--- /code/trunk/src/modules/notifications/dispatchers/SimpleNotification.cc	(revision 7455)
+++ /code/trunk/src/modules/notifications/dispatchers/SimpleNotification.cc	(revision 7456)
@@ -26,4 +26,9 @@
  *
  */
+
+/**
+    @file SimpleNotification.cc
+    @brief Implementation of the SimpleNotification class.
+*/
 
 #include "SimpleNotification.h"
Index: /code/trunk/src/modules/notifications/dispatchers/SimpleNotification.h
===================================================================
--- /code/trunk/src/modules/notifications/dispatchers/SimpleNotification.h	(revision 7455)
+++ /code/trunk/src/modules/notifications/dispatchers/SimpleNotification.h	(revision 7456)
@@ -26,4 +26,10 @@
  *
  */
+
+/**
+    @file SimpleNotification.h
+    @brief Declaration of the SimpleNotification class.
+    @ingroup NotificationDispatchers
+*/
 
 #ifndef _SimpleNotification_H__
Index: /code/trunk/src/modules/pickup/CollectiblePickup.h
===================================================================
--- /code/trunk/src/modules/pickup/CollectiblePickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/CollectiblePickup.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file CollectiblePickup.h
     @brief Definition of the CollectiblePickup class.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/modules/pickup/DroppedPickup.h
===================================================================
--- /code/trunk/src/modules/pickup/DroppedPickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/DroppedPickup.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file DroppedPickup.h
     @brief Definition of the DroppedPickup class.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/modules/pickup/Pickup.h
===================================================================
--- /code/trunk/src/modules/pickup/Pickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/Pickup.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file Pickup.h
     @brief Declaration of the Pickup class.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/modules/pickup/PickupCollection.h
===================================================================
--- /code/trunk/src/modules/pickup/PickupCollection.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/PickupCollection.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file PickupCollection.h
     @brief Declaration of PickupCollection.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/modules/pickup/PickupCollectionIdentifier.h
===================================================================
--- /code/trunk/src/modules/pickup/PickupCollectionIdentifier.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/PickupCollectionIdentifier.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file PickupCollectionIdentifier.h
     @brief Declaration of PickupCollectionIdentifier.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/modules/pickup/PickupManager.h
===================================================================
--- /code/trunk/src/modules/pickup/PickupManager.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/PickupManager.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file PickupManager.h
     @brief Definition of the PickupManager class.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/modules/pickup/PickupRepresentation.h
===================================================================
--- /code/trunk/src/modules/pickup/PickupRepresentation.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/PickupRepresentation.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file PickupRepresentation.h
     @brief Definition of the PickupRepresentation class.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/modules/pickup/PickupSpawner.h
===================================================================
--- /code/trunk/src/modules/pickup/PickupSpawner.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/PickupSpawner.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file PickupSpawner.h
     @brief Definition of the PickupSpawner class.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/modules/pickup/items/DronePickup.h
===================================================================
--- /code/trunk/src/modules/pickup/items/DronePickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/items/DronePickup.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file DronePickup.h
     @brief Declaration of the DronePickup class.
+    @ingroup PickupItems
 */
 
Index: /code/trunk/src/modules/pickup/items/HealthPickup.h
===================================================================
--- /code/trunk/src/modules/pickup/items/HealthPickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/items/HealthPickup.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file HealthPickup.h
     @brief Declaration of the HealthPickup class.
+    @ingroup PickupItems
 */
 
Index: /code/trunk/src/modules/pickup/items/InvisiblePickup.h
===================================================================
--- /code/trunk/src/modules/pickup/items/InvisiblePickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/items/InvisiblePickup.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file InvisiblePickup.h
     @brief Declaration of the InvisiblePickup class.
+    @ingroup PickupItems
 */
 
Index: /code/trunk/src/modules/pickup/items/MetaPickup.h
===================================================================
--- /code/trunk/src/modules/pickup/items/MetaPickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/items/MetaPickup.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file MetaPickup.h
     @brief Definition of the MetaPickup class.
+    @ingroup PickupItems
 */
 
Index: /code/trunk/src/modules/pickup/items/ShieldPickup.h
===================================================================
--- /code/trunk/src/modules/pickup/items/ShieldPickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/items/ShieldPickup.h	(revision 7456)
@@ -31,4 +31,5 @@
     @file ShieldPickup.h
     @brief Declaration of the ShieldPickup class.
+    @ingroup PickupItems
 */
 
Index: /code/trunk/src/modules/pickup/items/SpeedPickup.h
===================================================================
--- /code/trunk/src/modules/pickup/items/SpeedPickup.h	(revision 7455)
+++ /code/trunk/src/modules/pickup/items/SpeedPickup.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file SpeedPickup.h
     @brief Declaration of the SpeedPickup class.
+    @ingroup PickupItems
 */
 
Index: /code/trunk/src/modules/questsystem/GlobalQuest.cc
===================================================================
--- /code/trunk/src/modules/questsystem/GlobalQuest.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/GlobalQuest.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file GlobalQuest.cc
     @brief Implementation of the GlobalQuest class.
 */
@@ -36,4 +36,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
 #include "QuestEffect.h"
 
@@ -84,5 +85,5 @@
     bool GlobalQuest::fail(PlayerInfo* player)
     {
-        if(!this->isFailable(player)) //!< Check whether the Quest can be failed.
+        if(!this->isFailable(player)) // Check whether the Quest can be failed.
         {
             COUT(4) << "A non-completable quest was trying to be failed." << std::endl;
@@ -92,11 +93,9 @@
         Quest::fail(player);
 
-    //! Iterate through all players possessing this Quest.
-    for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)
-    {
-        QuestEffect::invokeEffects(*it, this->getFailEffectList());
-    }
-
-    return true;
+        // Iterate through all players possessing this Quest.
+        for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)
+            QuestEffect::invokeEffects(*it, this->getFailEffectList());
+
+        return true;
     }
 
@@ -113,5 +112,5 @@
     bool GlobalQuest::complete(PlayerInfo* player)
     {
-        if(!this->isCompletable(player)) //!< Check whether the Quest can be completed.
+        if(!this->isCompletable(player)) // Check whether the Quest can be completed.
         {
             COUT(4) << "A non-completable quest was trying to be completed." << std::endl;
@@ -119,13 +118,11 @@
         }
 
-        //! Iterate through all players possessing the Quest.
+        // Iterate through all players possessing the Quest.
         for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)
-        {
             QuestEffect::invokeEffects(*it, this->getCompleteEffectList());
-        }
 
         Quest::complete(player);
 
-        QuestEffect::invokeEffects(player, this->rewards_); //!< Invoke reward QuestEffects on the player completing the Quest.
+        QuestEffect::invokeEffects(player, this->rewards_); // Invoke reward QuestEffects on the player completing the Quest.
         return true;
     }
@@ -144,7 +141,6 @@
     {
         if(!(this->getParentQuest() == NULL || this->getParentQuest()->isActive(player)))
-        {
-            return false;
-        }
+            return false;
+
         return (this->isInactive(player) && !(this->status_ == QuestStatus::Completed || this->status_ == QuestStatus::Failed));
     }
@@ -191,15 +187,12 @@
     QuestStatus::Value GlobalQuest::getStatus(const PlayerInfo* player) const
     {
-        if(player == NULL) //!< We don't want NULL-Pointers!
-        {
+        //TODO: Replace with assert.
+        if(player == NULL) // We don't want NULL-Pointers!
             ThrowException(Argument, "The input PlayerInfo* is NULL.");
-        }
-
-        //! Find the player.
+
+        // Find the player.
         std::set<PlayerInfo*>::const_iterator it = this->players_.find((PlayerInfo*)(void*)player);
-        if (it != this->players_.end()) //!< If the player was found.
-        {
+        if (it != this->players_.end()) // If the player was found.
             return this->status_;
-        }
 
         return QuestStatus::Inactive;
@@ -219,17 +212,14 @@
     bool GlobalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status)
     {
-        if(player == NULL) //!< We don't want NULL-Pointers!
-        {
-            return false;
-        }
-
-        //! Find the player.
+        //TODO: Replace with assert.
+        if(player == NULL) // We don't want NULL-Pointers!
+            return false;
+
+        // Find the player.
         std::set<PlayerInfo*>::const_iterator it = this->players_.find(player);
-        if (it == this->players_.end()) //!< Player is not yet in the list.
-        {
-            this->players_.insert(player); //!< Add the player to the set.
-        }
-
-        this->status_ = status; //!< Set the status, which is global, remember...?
+        if (it == this->players_.end()) // Player is not yet in the list.
+            this->players_.insert(player); // Add the player to the set.
+
+        this->status_ = status; // Set the status, which is global, remember...?
         return true;
     }
@@ -245,5 +235,6 @@
     bool GlobalQuest::addRewardEffect(QuestEffect* effect)
     {
-        if(effect == NULL) //!< We don't want NULL-Pointers!
+        //TODO: Replace with assert?
+        if(effect == NULL) // We don't want NULL-Pointers!
         {
             COUT(2) << "The reward effect to be added to quest {" << this->getId() << "} was NULL." << std::endl;
@@ -251,5 +242,5 @@
         }
 
-        this->rewards_.push_back(effect); //!< Add the QuestEffect to the list.
+        this->rewards_.push_back(effect); // Add the QuestEffect to the list.
 
         COUT(4) << "Reward effect was added to Quest {" << this->getId() << "}." << std::endl;
@@ -271,7 +262,6 @@
         {
             if(i == 0)
-            {
                return *effect;
-            }
+
             i--;
         }
@@ -279,4 +269,3 @@
     }
 
-
 }
Index: /code/trunk/src/modules/questsystem/GlobalQuest.h
===================================================================
--- /code/trunk/src/modules/questsystem/GlobalQuest.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/GlobalQuest.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file GlobalQuest.h
     @brief Definition of the GlobalQuest class.
+    @ingroup Questsystem
 */
 
@@ -45,9 +46,8 @@
     /**
     @brief
-        GlobalQuests are Quests, that have the same status for all players.
+        GlobalQuests are @ref orxonox::Quest "Quests", that have the same status for all players.
         This means, that when a player successfully completes a GlobalQuest, it is completed for all players that have it.
 
         Creating a GlobalQuest through XML goes as follows:
-
         @code
         <GlobalQuest id="questId">
Index: /code/trunk/src/modules/questsystem/LocalQuest.cc
===================================================================
--- /code/trunk/src/modules/questsystem/LocalQuest.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/LocalQuest.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file LocalQuest.cc
     @brief Implementation of the LocalQuest class.
 */
@@ -36,4 +36,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
 #include "QuestEffect.h"
 
@@ -82,5 +83,5 @@
     bool LocalQuest::fail(PlayerInfo* player)
     {
-        if(!this->isFailable(player)) //!< Checks whether the quest can be failed.
+        if(!this->isFailable(player)) // Checks whether the quest can be failed.
         {
             COUT(4) << "A non-failable quest was trying to be failed." << std::endl;
@@ -90,5 +91,5 @@
         Quest::fail(player);
 
-        QuestEffect::invokeEffects(player, this->getFailEffectList()); //!< Invoke the failEffects.
+        QuestEffect::invokeEffects(player, this->getFailEffectList()); // Invoke the failEffects.
         return true;
     }
@@ -105,5 +106,5 @@
     bool LocalQuest::complete(PlayerInfo* player)
     {
-        if(!this->isCompletable(player)) //!< Checks whether the Quest can be completed.
+        if(!this->isCompletable(player)) // Checks whether the Quest can be completed.
         {
             COUT(4) << "A non-completable quest was trying to be completed." << std::endl;
@@ -113,5 +114,5 @@
         Quest::complete(player);
 
-        QuestEffect::invokeEffects(player, this->getCompleteEffectList()); //!< Invoke the complete QuestEffects.
+        QuestEffect::invokeEffects(player, this->getCompleteEffectList()); // Invoke the complete QuestEffects.
         return true;
     }
@@ -130,7 +131,6 @@
     {
         if(!(this->getParentQuest() == NULL || this->getParentQuest()->isActive(player)))
-        {
-            return false;
-        }
+            return false;
+
         return this->isInactive(player);
     }
@@ -178,16 +178,13 @@
     QuestStatus::Value LocalQuest::getStatus(const PlayerInfo* player) const
     {
-        if(player == NULL) //!< No player has no defined status.
-        {
+        //TODO: Replace with assert.
+        if(player == NULL) // No player has no defined status.
             ThrowException(Argument, "The input PlayerInfo* is NULL.");
-        }
 
         std::map<const PlayerInfo*, QuestStatus::Value>::const_iterator it = this->playerStatus_.find(player);
-        if (it != this->playerStatus_.end()) //!< If there is a player in the map.
-        {
+        if (it != this->playerStatus_.end()) // If there is a player in the map.
             return it->second;
-        }
-
-        return QuestStatus::Inactive; //!< If the player is not yet in the map, that means the status of the quest form him is 'inactive'.
+
+        return QuestStatus::Inactive; // If the player is not yet in the map, that means the status of the quest form him is 'inactive'.
     }
 
@@ -205,8 +202,7 @@
     bool LocalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status)
     {
-        if(player == NULL) //!< We can't set a status for no player.
-        {
-            return false;
-        }
+        //TODO: Replace with assert.
+        if(player == NULL) // We can't set a status for no player.
+            return false;
 
         this->playerStatus_[player] = status;
Index: /code/trunk/src/modules/questsystem/LocalQuest.h
===================================================================
--- /code/trunk/src/modules/questsystem/LocalQuest.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/LocalQuest.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file LocalQuest.h
     @brief Definition of the LocalQuest class.
+    @ingroup Questsystem
 */
 
@@ -44,9 +45,8 @@
     /**
     @brief
-        Handles Quests which have different states for different players.
-        LocalQuests have (as opposed to GlobalQuests) a different state for each player, that means if for one player the status of the Quest changes it does not for all the other players which also possess this quest.
+        Handles @ref orxonox::Quest "Quests" which have different states for different players.
+        LocalQuests have (as opposed to @ref orxonox::GlobalQuest "GlobalQuests") a different state for each player, that means if for one player the status of the @ref orxonox::Quest "Quest" changes it does not for all the other players which also possess this quest.
 
         Creating a LocalQuest through XML goes as follows:
-
         @code
         <LocalQuest id="questId">
Index: /code/trunk/src/modules/questsystem/Quest.cc
===================================================================
--- /code/trunk/src/modules/questsystem/Quest.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/Quest.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file Quest.cc
     @brief Implementation of the Quest class.
 */
@@ -36,9 +36,10 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
+#include "QuestDescription.h"
+#include "QuestEffect.h"
+#include "QuestHint.h"
+#include "QuestListener.h"
 #include "QuestManager.h"
-#include "QuestDescription.h"
-#include "QuestHint.h"
-#include "QuestEffect.h"
-#include "QuestListener.h"
 
 namespace orxonox
@@ -78,18 +79,19 @@
         XMLPortObject(Quest, QuestEffect, "complete-effects", addCompleteEffect, getCompleteEffect, xmlelement, mode);
 
-        QuestManager::getInstance().registerQuest(this); //!<Registers the Quest with the QuestManager.
-    }
-
-    /**
-    @brief
-        Sets the parentquest of the Quest.
+        QuestManager::getInstance().registerQuest(this); // Registers the Quest with the QuestManager.
+    }
+
+    /**
+    @brief
+        Sets the parent-quest of the Quest.
     @param quest
-        A pointer to the Quest to be set as parentquest.
-    @return
-        Returns true if the parentquest could be set.
+        A pointer to the Quest to be set as parent-quest.
+    @return
+        Returns true if the parent-quest could be set.
     */
     bool Quest::setParentQuest(Quest* quest)
     {
-        if(quest == NULL) //!< We don't want to set NULL-Pointers.
+        //TODO: Replace with assert.
+        if(quest == NULL) // We don't want to set NULL-Pointers.
         {
             COUT(2) << "The parentquest to be added to quest {" << this->getId() << "} was NULL." << std::endl;
@@ -105,13 +107,14 @@
     /**
     @brief
-        Adds a subquest to the Quest.
+        Adds a sub-quest to the Quest.
     @param quest
-        A pointer to the Quest to be set as subquest.
-    @return
-        Returns true if the subquest could be set.
+        A pointer to the Quest to be set as sub-quest.
+    @return
+        Returns true if the sub-quest could be set.
     */
     bool Quest::addSubQuest(Quest* quest)
     {
-        if(quest == NULL) //!< We don't want to set NULL-Pointers.
+        //TODO: Replace with assert.
+        if(quest == NULL) // We don't want to set NULL-Pointers.
         {
             COUT(2) << "The subquest to be added to quest {" << this->getId() << "} was NULL." << std::endl;
@@ -119,6 +122,6 @@
         }
 
-        quest->setParentQuest(this); //!< Sets the currentQuest (this) as parentquest for the added subquest.
-        this->subQuests_.push_back(quest); //!< Adds the Quest to the end of the list of subquests.
+        quest->setParentQuest(this); // Sets the currentQuest (this) as parent-quest for the added sub-quest.
+        this->subQuests_.push_back(quest); // Adds the Quest to the end of the list of sub-quests.
 
         COUT(4) << "Sub Quest {" << quest->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;
@@ -137,5 +140,6 @@
     bool Quest::addHint(QuestHint* hint)
     {
-        if(hint == NULL) //!< We don't want to set NULL-Pointers. Seriously!
+        //TODO: Replace with assert.
+        if(hint == NULL) // We don't want to set NULL-Pointers. Seriously!
         {
             COUT(2) << "A NULL-QuestHint was trying to be added." << std::endl;
@@ -143,6 +147,6 @@
         }
 
-        hint->setQuest(this); //!< Sets the current Quest (this) as Quest for the added QuestHint.
-        this->hints_.push_back(hint); //!< Adds the QuestHint to the end of the list of QuestHints.
+        hint->setQuest(this); // Sets the current Quest (this) as Quest for the added QuestHint.
+        this->hints_.push_back(hint); // Adds the QuestHint to the end of the list of QuestHints.
 
         COUT(4) << "QuestHint {" << hint->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;
@@ -160,5 +164,6 @@
     bool Quest::addFailEffect(QuestEffect* effect)
     {
-        if(effect == NULL) //!< We don't want to set NULL-Pointers.
+        //TODO: Replace with assert.
+        if(effect == NULL) // We don't want to set NULL-Pointers.
         {
             COUT(2) << "A NULL-QuestEffect was trying to be added" << std::endl;
@@ -166,5 +171,5 @@
         }
 
-        this->failEffects_.push_back(effect); //!< Adds the QuestEffect to the end of the list of fail QuestEffects.
+        this->failEffects_.push_back(effect); // Adds the QuestEffect to the end of the list of fail QuestEffects.
 
         COUT(4) << "A FailEffect was added to Quest {" << this->getId() << "}." << std::endl;
@@ -182,5 +187,6 @@
     bool Quest::addCompleteEffect(QuestEffect* effect)
     {
-        if(effect == NULL) //!< We don't want to set NULL-Pointers.
+        //TODO: Replace with assert.
+        if(effect == NULL) // We don't want to set NULL-Pointers.
         {
             COUT(2) << "A NULL-QuestEffect was trying to be added" << std::endl;
@@ -188,5 +194,5 @@
         }
 
-        this->completeEffects_.push_back(effect); //!< Adds the QuestEffect to the end of the list of complete QuestEffects.
+        this->completeEffects_.push_back(effect); // Adds the QuestEffect to the end of the list of complete QuestEffects.
 
         COUT(4) << "A CompleteEffect was added to Quest {" << this->getId() << "}." << std::endl;
@@ -196,9 +202,9 @@
     /**
     @brief
-        Returns the subquest at the given index.
+        Returns the sub-quest at the given index.
     @param index
         The index.
     @return
-        Returns a pointer to the subquest at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the sub-quest at the given index. NULL if there is no element at the given index.
     */
     const Quest* Quest::getSubQuest(unsigned int index) const
@@ -206,15 +212,14 @@
         int i = index;
 
-        //! Iterate through all subquests.
+        // Iterate through all subquests.
         for (std::list<Quest*>::const_iterator subQuest = this->subQuests_.begin(); subQuest != this->subQuests_.end(); ++subQuest)
         {
-            if(i == 0) //!< We're counting down...
-            {
+            if(i == 0) // We're counting down...
                return *subQuest;
-            }
+
             i--;
         }
 
-        return NULL; //!< If the index is greater than the number of elements in the list.
+        return NULL; // If the index is greater than the number of elements in the list.
     }
 
@@ -231,14 +236,13 @@
         int i = index;
 
-        //! Iterate through all QuestHints.
+        // Iterate through all QuestHints.
         for (std::list<QuestHint*>::const_iterator hint = this->hints_.begin(); hint != this->hints_.end(); ++hint)
         {
-            if(i == 0) //!< We're counting down...
-            {
+            if(i == 0) // We're counting down...
                return *hint;
-            }
+
             i--;
         }
-        return NULL; //!< If the index is greater than the number of elements in the list.
+        return NULL; // If the index is greater than the number of elements in the list.
     }
 
@@ -255,14 +259,13 @@
         int i = index;
 
-        //! Iterate through all fail QuestEffects.
+        // Iterate through all fail QuestEffects.
         for (std::list<QuestEffect*>::const_iterator effect = this->failEffects_.begin(); effect != this->failEffects_.end(); ++effect)
         {
-            if(i == 0) //!< We're counting down...
-            {
+            if(i == 0) // We're counting down...
                return *effect;
-            }
+
             i--;
         }
-        return NULL; //!< If the index is greater than the number of elements in the list.
+        return NULL; // If the index is greater than the number of elements in the list.
     }
 
@@ -279,14 +282,13 @@
         int i = index;
 
-        //! Iterate through all complete QuestEffects.
+        // Iterate through all complete QuestEffects.
         for (std::list<QuestEffect*>::const_iterator effect = this->completeEffects_.begin(); effect != this->completeEffects_.end(); ++effect)
         {
-            if(i == 0) //!< We're counting down...
-            {
+            if(i == 0) // We're counting down...
                return *effect;
-            }
+
             i--;
         }
-        return NULL; //!< If the index is greater than the number of elements in the list.
+        return NULL; // If the index is greater than the number of elements in the list.
     }
 
@@ -318,5 +320,4 @@
     bool Quest::isActive(const PlayerInfo* player) const
     {
-
         return this->getStatus(player) == QuestStatus::Active;
     }
@@ -362,5 +363,5 @@
     bool Quest::fail(PlayerInfo* player)
     {
-        QuestListener::advertiseStatusChange(this->listeners_, "fail"); //!< Tells the QuestListeners, that the status has changed to failed.
+        QuestListener::advertiseStatusChange(this->listeners_, "fail"); // Tells the QuestListeners, that the status has changed to failed.
         this->setStatus(player, QuestStatus::Failed);
 
@@ -381,5 +382,5 @@
     bool Quest::complete(PlayerInfo* player)
     {
-        QuestListener::advertiseStatusChange(this->listeners_, "complete"); //!< Tells the QuestListeners, that the status has changed to completed.
+        QuestListener::advertiseStatusChange(this->listeners_, "complete"); // Tells the QuestListeners, that the status has changed to completed.
         this->setStatus(player, QuestStatus::Completed);
 
@@ -400,5 +401,5 @@
     bool Quest::start(PlayerInfo* player)
     {
-        if(!this->isStartable(player)) //!< Checks whether the quest can be started.
+        if(!this->isStartable(player)) // Checks whether the quest can be started.
         {
             COUT(4) << "A non-startable quest was trying to be started." << std::endl;
@@ -408,5 +409,5 @@
         COUT(4) << "Quest {" << this->getId() << "} is started for player: " << player << " ." <<std::endl;
 
-        QuestListener::advertiseStatusChange(this->listeners_, "start"); //!< Tells the QuestListeners, that the status has changed to active.
+        QuestListener::advertiseStatusChange(this->listeners_, "start"); // Tells the QuestListeners, that the status has changed to active.
 
         this->setStatus(player, QuestStatus::Active);
@@ -426,4 +427,5 @@
     bool Quest::addListener(QuestListener* listener)
     {
+        //TODO: Replace with assert?
         if(listener == NULL)
         {
Index: /code/trunk/src/modules/questsystem/Quest.h
===================================================================
--- /code/trunk/src/modules/questsystem/Quest.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/Quest.h	(revision 7456)
@@ -28,7 +28,8 @@
 
 /**
-    @file
+    @file Quest.h
     @brief Definition of the Quest class.
-        The Quest is the parent class of LocalQuest and GlobalQuest.
+        The Quest class is the parent class of @ref orxonox::LocalQuest "LocalQuest" and @ref orxonox::GlobalQuest "GlobalQuest".
+    @ingroup Questsystem
 */
 
@@ -45,5 +46,5 @@
     namespace QuestStatus
     {
-        //!Different states of a Quest.
+        //! Different states of a @ref orxonox::Quest "Quest".
         enum Value
         {
@@ -57,11 +58,12 @@
     /**
     @brief
-        Represents a Quest in the game.
-        A Quest has a list of subquests and a parentquest (if it is not a rootquest).
+        Represents a Quest in the game. A Quest is a task that the player can (or has to) fulfill upon which he will (possibly) receive some kind of reward.
+
+        A Quest can have a list of sub-quests and has a parent-quest (if it is not a root-quest).
         Each Quest exists only once but it has a different status (inactive, active, failed or completed) for each player.
-        A Quest has several hints (QuestHint) that can be unlocked through QuestEffects and then display aid in solving the Quest.
-        A Quest has a list of QuestEffects that are invoked when the quest is failed and also a list of QuestEffects that are invoked, when the Quest is completed.
+        A Quest can have several hints (QuestHint) that can be unlocked through @ref orxonox::QuestEffect "QuestEffects" and then display aid in solving the Quest.
+        A Quest can have a list of @ref orxonox::QuestEffect "QuestEffects" that are invoked when the quest is failed and also a list of @ref orxonox::QuestEffect "QuestEffects" that are invoked, when the Quest is completed.
 
-        Quest itself should not be instantiated, if you want to create a quest either go for LocalQuest or GlobalQuest, whichever suits you needs better.
+        Quest itself should not be instantiated, if you want to create a quest either use LocalQuest or GlobalQuest, whichever suits you needs better.
     @author
         Damian 'Mozork' Frick
@@ -77,6 +79,6 @@
 
             /**
-            @brief Returns the parentquest of the Quest.
-            @return Returns a pointer to the parentquest of the Quest.
+            @brief Returns the parent-quest of the Quest.
+            @return Returns a pointer to the parent-quest of the Quest.
             */
             inline Quest* getParentQuest(void) const
@@ -84,6 +86,6 @@
 
             /**
-            @brief Returns the list of subquests.
-            @return Returns a reference to the list of subquests of the quest.
+            @brief Returns the list of sub-quests.
+            @return Returns a reference to the list of sub-quests of the quest.
             */
             inline const std::list<Quest*> & getSubQuestList(void) const
@@ -113,5 +115,5 @@
             virtual bool isCompletable(const PlayerInfo* player) const = 0; //!< Checks whether the Quest can be completed.
 
-            const Quest* getSubQuest(unsigned int index) const; //!<Returns the subquest at the given index.
+            const Quest* getSubQuest(unsigned int index) const; //!<Returns the sub-quest at the given index.
             const QuestHint* getHint(unsigned int index) const; //!< Returns the QuestHint at the given index.
             const QuestEffect* getFailEffect(unsigned int index) const; //!< Returns the fail QuestEffect at the given index.
@@ -136,6 +138,6 @@
 
         private:
-            Quest* parentQuest_; //!< Pointer to the parentquest.
-            std::list<Quest*> subQuests_; //!< List of all the subquests.
+            Quest* parentQuest_; //!< Pointer to the parent-quest.
+            std::list<Quest*> subQuests_; //!< List of all the sub-quests.
 
             std::list<QuestHint*> hints_; //!< A list of all the QuestHints tied to this Quest.
@@ -146,6 +148,6 @@
             std::list<QuestListener*> listeners_; //!< A list of QuestListeners, that listen to what exactly happens with this Quest.
 
-            bool setParentQuest(Quest* quest); //!< Sets the parentquest of the Quest.
-            bool addSubQuest(Quest* quest); //!< Adds a subquest to the Quest.
+            bool setParentQuest(Quest* quest); //!< Sets the parent-quest of the Quest.
+            bool addSubQuest(Quest* quest); //!< Adds a sub-quest to the Quest.
             bool addHint(QuestHint* hint); //!< Add a QuestHint to the list of QuestHints.
             bool addFailEffect(QuestEffect* effect); //!< Adds an QuestEffect to the list of fail QuestEffects.
Index: /code/trunk/src/modules/questsystem/QuestDescription.cc
===================================================================
--- /code/trunk/src/modules/questsystem/QuestDescription.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestDescription.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file QuestDescription.cc
     @brief Implementation of the QuestDescription class.
 */
@@ -37,4 +37,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
 #include "QuestNotification.h"
 
@@ -93,21 +94,13 @@
         std::string message;
         if(item == "hint")
-        {
             message = "You received a hint: '" + this->title_ + '\'';
-        }
         else if(item == "quest")
         {
             if(status == "start")
-            {
                 message = "You received a new quest: '" + this->title_ + '\'';
-            }
             else if(status == "fail")
-            {
                 message = "You failed the quest: '" + this->title_ + '\'';
-            }
             else if(status == "complete")
-            {
                 message = "You successfully completed the quest: '" + this->title_ + '\'';
-            }
             else
             {
Index: /code/trunk/src/modules/questsystem/QuestDescription.h
===================================================================
--- /code/trunk/src/modules/questsystem/QuestDescription.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestDescription.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file QuestDescription.h
     @brief Definition of the QuestDescription class.
+    @ingroup Questsystem
 */
 
@@ -45,9 +46,8 @@
     /**
     @brief
-        This class is a description of a QuestItem.
-        It holds a title and a description.
+        This class is a description of a QuestItem (@ref orxonox::Quest "Quest" and @ref orxonox::QuestHint "QuestHint").
+        It holds a title and a description. For quests also messages that are sent, when failing or completing the quest can be added.
 
         Creating a QuestDescription through XML goes as follows:
-
         @code
         <QuestDescription title="Title" description="Description Text" failMessage="You fail." completeMessage="You win!" />
Index: /code/trunk/src/modules/questsystem/QuestEffect.cc
===================================================================
--- /code/trunk/src/modules/questsystem/QuestEffect.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestEffect.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file QuestEffect.cc
     @brief Implementation of the QuestEffect class.
 */
@@ -64,5 +64,5 @@
         A list of all the QuestEffects to be invoked.
     @return
-        Returns false if there was an error, view console of log for further detail.
+        Returns false if there was an error, view console or log for further details.
     */
     /*static*/ bool QuestEffect::invokeEffects(PlayerInfo* player, std::list<QuestEffect*> & effects)
@@ -73,7 +73,6 @@
 
         for (std::list<QuestEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++)
-        {
             check = check && (*effect)->invoke(player);
-        }
+
         return check;
     }
Index: /code/trunk/src/modules/questsystem/QuestEffect.h
===================================================================
--- /code/trunk/src/modules/questsystem/QuestEffect.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestEffect.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file QuestEffect.h
     @brief Definition of the QuestEffect class.
+    @ingroup Questsystem
 */
 
@@ -44,6 +45,6 @@
     /**
     @brief
-        Handles QuestEffects for Quests.
-        QuestEffects are the only way for Quests to have any sideeffects in the game world. They are also the only way for a player to gain, complete or fail Quests.
+        Handles QuestEffects for @ref orxonox::Quest "Quests".
+        QuestEffects are one of the ways for @ref orxonox::Quest "Quests" to have any side effects on the game world and for the game world to influence the @ref orxonox::Quest "Quests".
     @author
         Damian 'Mozork' Frick
@@ -58,5 +59,4 @@
             static bool invokeEffects(PlayerInfo* player, std::list<QuestEffect*> & effects); //!< Invokes all QuestEffects in the list.
 
-
     };
 
Index: /code/trunk/src/modules/questsystem/QuestEffectBeacon.cc
===================================================================
--- /code/trunk/src/modules/questsystem/QuestEffectBeacon.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestEffectBeacon.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file QuestEffectBeacon.cc
     @brief Implementation of the QuestEffectBeacon class.
 */
@@ -37,6 +37,8 @@
 #include "core/XMLPort.h"
 #include "core/EventIncludes.h"
+
+#include "interfaces/PlayerTrigger.h"
 #include "worldentities/pawns/Pawn.h"
-#include "interfaces/PlayerTrigger.h"
+
 #include "objects/triggers/MultiTriggerContainer.h"
 #include "QuestEffect.h"
@@ -50,4 +52,5 @@
         Constructor. Registers the object and initializes defaults.
     */
+    //TODO: Make just BaseObject?
     QuestEffectBeacon::QuestEffectBeacon(BaseObject* creator) : StaticEntity(creator)
     {
@@ -99,4 +102,5 @@
         Returns true if successfully executed, false if not.
     */
+    //TODO: Eliminate MultiTriggerContainer stuff, since they are now PlayerTriggers as well.
     bool QuestEffectBeacon::execute(bool bTriggered, BaseObject* trigger)
     {
@@ -105,5 +109,5 @@
             return false;
         }
-        if(!(this->isActive())) //!< If the QuestEffectBeacon is inactive it cannot be executed.
+        if(!(this->isActive())) // If the QuestEffectBeacon is inactive it cannot be executed.
         {
             COUT(4) << "The QuestEffectBeacon is inactive." << std::endl;
@@ -115,5 +119,5 @@
         Pawn* pawn = NULL;
 
-        //! If the trigger is neither a Playertrigger nor a MultiTrigger (i.e. a MultitriggerContainer) we can do anything with it.
+        // If the trigger is neither a Playertrigger nor a MultiTrigger (i.e. a MultitriggerContainer) we can do anything with it.
         if(pTrigger == NULL && mTrigger == NULL)
             return false;
@@ -122,5 +126,5 @@
         if(pTrigger != NULL)
         {
-            if(!pTrigger->isForPlayer())  //!< The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
+            if(!pTrigger->isForPlayer())  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
                 return false;
             else
@@ -140,5 +144,5 @@
         }
 
-        //! Extract the PlayerInfo from the Pawn.
+        // Extract the PlayerInfo from the Pawn.
         PlayerInfo* player = pawn->getPlayer();
 
@@ -151,8 +155,8 @@
         COUT(4) << "QuestEffectBeacon executed on player: " << player << " ." << std::endl;
 
-        bool check = QuestEffect::invokeEffects(player, this->effects_); //!< Invoke the QuestEffects on the PlayerInfo.
+        bool check = QuestEffect::invokeEffects(player, this->effects_); // Invoke the QuestEffects on the PlayerInfo.
         if(check)
         {
-            this->decrementTimes(); //!< Decrement the number of times the beacon can be used.
+            this->decrementTimes(); // Decrement the number of times the beacon can be used.
             return true;
         }
@@ -171,13 +175,11 @@
     bool QuestEffectBeacon::setActive(bool activate)
     {
-        if(this->getTimes() == 0 && activate) //!< A QuestEffectBeacon that can be executed only 0 times is always inactive.
-        {
-            return false;
-        }
+        if(this->getTimes() == 0 && activate) // A QuestEffectBeacon that can be executed only 0 times is always inactive.
+            return false;
 
         if(activate)
         {
-        this->status_ = QuestEffectBeaconStatus::Active;
-        return true;
+            this->status_ = QuestEffectBeaconStatus::Active;
+            return true;
         }
 
@@ -194,18 +196,13 @@
     bool QuestEffectBeacon::decrementTimes(void)
     {
-        if(!(this->isActive())) //!< The QuestEffectBeacon mus be active to decrement the number of times it can be executed.
-        {
-            return false;
-        }
-        if(this->getTimes() == INFINITE_TIME) //!< If times is infinity the QuestEffectBeacon can be executed an infinite number fo times.
-        {
+        if(!(this->isActive())) // The QuestEffectBeacon mus be active to decrement the number of times it can be executed.
+            return false;
+
+        if(this->getTimes() == INFINITE_TIME) // If times is infinity the QuestEffectBeacon can be executed an infinite number fo times.
             return true;
-        }
-
-        this->times_ = this->times_ - 1; //!< Decrement number of times the QuestEffectBeacon can be executed.
-        if(this->getTimes() == 0) //!< Set the QuestEffectBeacon to inactive when the number of times it can be executed is reduced to 0.
-        {
+
+        this->times_ = this->times_ - 1; // Decrement number of times the QuestEffectBeacon can be executed.
+        if(this->getTimes() == 0) // Set the QuestEffectBeacon to inactive when the number of times it can be executed is reduced to 0.
             this->status_ = QuestEffectBeaconStatus::Inactive;
-        }
 
         return true;
@@ -225,7 +222,5 @@
     {
         if(n < 0 && n != INFINITE_TIME)
-        {
-            return false;
-        }
+            return false;
 
         this->times_ = n;
@@ -243,5 +238,6 @@
     bool QuestEffectBeacon::addEffect(QuestEffect* effect)
     {
-        if(effect == NULL) //!< NULL-pointers are not well liked here...
+        //TODO: Replace with assert.
+        if(effect == NULL) // NULL-pointers are not well liked here...
         {
             COUT(2) << "A NULL-QuestEffect was trying to be added" << std::endl;
@@ -269,7 +265,6 @@
         {
             if(i == 0)
-            {
                return *effect;
-            }
+
             i--;
         }
Index: /code/trunk/src/modules/questsystem/QuestEffectBeacon.h
===================================================================
--- /code/trunk/src/modules/questsystem/QuestEffectBeacon.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestEffectBeacon.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file QuestEffectBeacon.h
     @brief Definition of the QuestEffectBeacon class.
+    @ingroup Questsystem
 */
 
@@ -44,5 +45,5 @@
     namespace QuestEffectBeaconStatus
     {
-        //! The status of the beacon, can be either active or inactive.
+        //! The status of the @ref orxonox::QuestEffectBeacon "QuestEffectBeacon", can be either active or inactive.
         enum Value
         {
@@ -54,11 +55,10 @@
     /**
     @brief
-        A QuestEffectBeacon is a physical entity in the game which can (under some condition(s)) invoke a number QuestEffects on players meeting the condition(s).
-        The conditions under which the QuestEffects are invoked on the player are defined by Triggers.
+        A QuestEffectBeacon is a physical entity in the game which can (under some condition(s)) invoke a number of @ref orxonox::QuestEffect "QuestEffects" on players meeting the condition(s).
+        The conditions under which the @ref orxonox::QuestEffect "QuestEffects" are invoked on the player are defined by @ref orxonox::Trigger "Triggers" (or really any kind of entity firing events, e.g. @ref oroxnox::EventListener "EventListeners"). The trigger the event originates from, however has to be a @ref orxonox::PlayerTrigger PlayerTrigger.
         A QuestEffectBeacon can be executed a defined number of times.
-        A QuestEffectBeacon can be inactive or active.
+        A QuestEffectBeacon can be inactive or active. While inactive it can't be executed.
 
         Creating a QuestEffectBeacon through XML goes as follows:
-
         @code
         <QuestEffectBeacon times=n> //Where 'n' is eighter a number >= 0, which means the QuestEffectBeacon can be executed n times. Or n = -1, which means the QuestEffectBeacon can be executed an infinite number of times.
Index: /code/trunk/src/modules/questsystem/QuestHint.cc
===================================================================
--- /code/trunk/src/modules/questsystem/QuestHint.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestHint.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file QuestHint.cc
     @brief Implementation of the QuestHint class.
 */
@@ -36,7 +36,8 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
+#include "Quest.h"
+#include "QuestDescription.h"
 #include "QuestManager.h"
-#include "QuestDescription.h"
-#include "Quest.h"
 
 namespace orxonox
@@ -71,5 +72,5 @@
         SUPER(QuestHint, XMLPort, xmlelement, mode);
 
-        QuestManager::getInstance().registerHint(this); //!< Registers the QuestHint with the QuestManager.
+        QuestManager::getInstance().registerHint(this); // Registers the QuestHint with the QuestManager.
 
         COUT(4) << "New QuestHint {" << this->getId() << "} created." << std::endl;
@@ -89,5 +90,6 @@
     bool QuestHint::isActive(const PlayerInfo* player) const
     {
-        if(player == NULL) //!< NULL-Pointers are ugly!
+        //TODO: Replace with asser.
+        if(player == NULL) // NULL-Pointers are ugly!
         {
             ThrowException(Argument, "The input PlayerInfo* is NULL.");
@@ -95,10 +97,8 @@
         }
 
-        //! Find the player.
+        // Find the player.
         std::map<const PlayerInfo*, QuestHintStatus::Value>::const_iterator it = this->playerStatus_.find(player);
-        if (it != this->playerStatus_.end()) //!< If the player is in the map.
-        {
+        if (it != this->playerStatus_.end()) // If the player is in the map.
             return it->second;
-        }
 
         return QuestStatus::Inactive;
@@ -115,7 +115,7 @@
     bool QuestHint::setActive(PlayerInfo* player)
     {
-        if(this->quest_->isActive(player)) //!< For a hint to get activated the quest must be active.
+        if(this->quest_->isActive(player)) // For a hint to get activated the quest must be active.
         {
-            if(!(this->isActive(player)))  //!< If the hint is already active, activation is pointless.
+            if(!(this->isActive(player)))  // If the hint is already active, activation is pointless.
             {
                 this->playerStatus_[player] = QuestHintStatus::Active;
@@ -145,5 +145,6 @@
     bool QuestHint::setQuest(Quest* quest)
     {
-        if(quest == NULL) //!< NULL-Pointer. Again..?
+        //TODO: Replace with assert.
+        if(quest == NULL) // NULL-Pointer. Again..?
         {
             COUT(2) << "The input Quest* is NULL." << std::endl;
Index: /code/trunk/src/modules/questsystem/QuestHint.h
===================================================================
--- /code/trunk/src/modules/questsystem/QuestHint.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestHint.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file QuestHint.h
     @brief Definition of the QuestHint class.
+    @ingroup Questsystem
 */
 
@@ -42,7 +43,8 @@
 namespace orxonox // tolua_export
 { // tolua_export
+
     namespace QuestHintStatus
     {
-        //! The state of the hint.
+        //! The state of the @ref orxonox::QuestHint "QuestHint".
         enum Value
         {
@@ -54,10 +56,9 @@
     /**
     @brief
-        Represents a hint in the game towards completing a Quest.
-        Consists of title and description (which is stored in a QuestDescription object) in textual form and must belong to a quest.
+        Represents a hint in the game that gives aid towards completing a @ref orxonox::Quest "Quest".
+        Consists of title and description (which is stored in a @ref orxonox::QuestDescription "QuestDescription" object) in textual form and must belong to a quest.
         A QuestHint has a defined status (inactive or active, where inactive is default) for each player, which means each a QuestHint exists only once for all players, it doesn't belong to a player, it just has different states for each of them.
 
         Creating a QuestHint through XML goes as follows:
-
         @code
         <QuestHint id="hintId">
Index: /code/trunk/src/modules/questsystem/QuestItem.cc
===================================================================
--- /code/trunk/src/modules/questsystem/QuestItem.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestItem.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file QuestItem.cc
     @brief Implementation of the QuestItem class.
 */
@@ -36,4 +36,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
 #include "QuestDescription.h"
 
@@ -86,5 +87,5 @@
     void QuestItem::setId(const std::string & id)
     {
-        if(id.compare(BLANKSTRING) == 0) //!< Checks whether the id is a valid id.
+        if(id.compare(BLANKSTRING) == 0) // Checks whether the id is a valid id.
         {
             COUT(2) << "Invalid id. QuestItem id {" << id << "} could not be set." << std::endl;
Index: /code/trunk/src/modules/questsystem/QuestItem.h
===================================================================
--- /code/trunk/src/modules/questsystem/QuestItem.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestItem.h	(revision 7456)
@@ -28,7 +28,8 @@
 
 /**
-    @file
+    @file QuestItem.h
     @brief Definition of the QuestItem class.
-        The QuestItem is the parent class of Quest and QuestHint.
+        The @ref orxonox::QuestItem "QuestItem" is the parent class of @ref orxonox::Quest "Quest" and @ref orxonox::QuestHint "QuestHint".
+    @ingroup Questsystem
 */
 
@@ -47,6 +48,6 @@
     /**
     @brief
-        Functions as a base class for quest classes such as Quest or QuestHint.
-        Has a unique identifier and a description.
+        Functions as a base class for quest classes such as @ref orxonox::Quest "Quest" or @ref orxonox::QuestHint "QuestHint".
+        Has a unique identifier and a @ref orxonox::QuestDescription "QuestDescription".
     @author
         Damian 'Mozork' Frick
Index: /code/trunk/src/modules/questsystem/QuestListener.cc
===================================================================
--- /code/trunk/src/modules/questsystem/QuestListener.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestListener.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file QuestListener.cc
     @brief Implementation of the QuestListener class.
 */
@@ -36,4 +36,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
 #include "Quest.h"
 #include "QuestManager.h"
@@ -43,4 +44,10 @@
     CreateFactory(QuestListener);
 
+    //! Initialization of the static variables for the modes as strings.
+    /*static*/ const std::string QuestListener::ALL = "all";
+    /*static*/ const std::string QuestListener::START = "start";
+    /*static*/ const std::string QuestListener::FAIL = "fail";
+    /*static*/ const std::string QuestListener::COMPLETE = "complete";
+
     /**
     @brief
@@ -75,5 +82,5 @@
 
         if(this->quest_ != NULL)
-            this->quest_->addListener(this); //!< Adds the QuestListener to the Quests list of listeners.
+            this->quest_->addListener(this); // Adds the QuestListener to the Quests list of listeners.
 
         COUT(4) << "QuestListener created for quest: {" << this->quest_->getId() << "} with mode '" << this->getMode() << "'." << std::endl;
@@ -90,11 +97,9 @@
     /* static */ void QuestListener::advertiseStatusChange(std::list<QuestListener*> & listeners, const std::string & status)
     {
-        for (std::list<QuestListener*>::iterator it = listeners.begin(); it != listeners.end(); ++it) //!< Iterate through all QuestListeners
+        for (std::list<QuestListener*>::iterator it = listeners.begin(); it != listeners.end(); ++it) // Iterate through all QuestListeners
         {
             QuestListener* listener = *it;
-            if(listener->getMode() == status || listener->getMode() == "all") //!< Check whether the status change affects the give QuestListener.
-            {
+            if(listener->getMode() == status || listener->getMode() == QuestListener::ALL) // Check whether the status change affects the give QuestListener.
                 listener->execute();
-            }
         }
     }
@@ -110,7 +115,7 @@
     bool QuestListener::setQuestId(const std::string & id)
     {
-        this->quest_ = QuestManager::getInstance().findQuest(id); //!< Find the Quest corresponding to the given questId.
-
-        if(this->quest_ == NULL) //!< If there is no such Quest.
+        this->quest_ = QuestManager::getInstance().findQuest(id); // Find the Quest corresponding to the given questId.
+
+        if(this->quest_ == NULL) // If there is no such Quest.
         {
             ThrowException(Argument, "This is bad! The QuestListener has not found a Quest with a corresponding id..");
@@ -131,25 +136,17 @@
     bool QuestListener::setMode(const std::string & mode)
     {
-        if(mode == "all")
-        {
+        if(mode == QuestListener::ALL)
             this->mode_ = QuestListenerMode::All;
-        }
-        else if(mode == "start")
-        {
+        else if(mode == QuestListener::START)
             this->mode_ = QuestListenerMode::Start;
-        }
-        else if(mode == "fail")
-        {
+        else if(mode == QuestListener::FAIL)
             this->mode_ = QuestListenerMode::Fail;
-        }
-        else if(mode == "complete")
-        {
+        else if(mode == QuestListener::COMPLETE)
             this->mode_ = QuestListenerMode::Complete;
-        }
         else
         {
             COUT(2) << "QuestListener with invalid mode '" << mode << "' created. Mode set to 'all'." << std::endl;
-        this->mode_ = QuestListenerMode::All;
-        return false;
+            this->mode_ = QuestListenerMode::All;
+            return false;
         }
 
@@ -161,28 +158,20 @@
         Get the mode of the QuestListener.
     @return
-        Return the mode of the QuestListener. Can be eighter 'all', 'start', 'fail' or 'complete'.
+        Return the mode of the QuestListener. Can be either 'all', 'start', 'fail' or 'complete'.
     */
     std::string QuestListener::getMode(void)
     {
-        if(this->mode_ == QuestListenerMode::All)
-        {
-            return "all";
-        }
-        else if(this->mode_ == QuestListenerMode::Start)
-        {
-            return "start";
-        }
-        else if(this->mode_ == QuestListenerMode::Fail)
-        {
-            return "fail";
-        }
-        else if(this->mode_ == QuestListenerMode::Complete)
-        {
-            return "complete";
-        }
-        else
-        {
-            COUT(1) << "An unforseen, never to happen, Error has occurred. This is impossible!" << std::endl;
-            return "";
+        switch(this->mode_)
+        {
+            case QuestListenerMode::All:
+                return QuestListener::ALL;
+            case QuestListenerMode::Start:
+                return QuestListener::START;
+            case QuestListenerMode::Fail:
+                return QuestListener::FAIL;
+            case QuestListenerMode::Complete:
+                return QuestListener::COMPLETE;
+            default: // This will never happen.
+                return QuestListener::ALL;
         }
     }
Index: /code/trunk/src/modules/questsystem/QuestListener.h
===================================================================
--- /code/trunk/src/modules/questsystem/QuestListener.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestListener.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file QuestListener.h
     @brief Definition of the QuestListener class.
+    @ingroup Questsystem
 */
 
@@ -45,5 +46,5 @@
     namespace QuestListenerMode
     {
-        //! The mode of the QuestListener.
+        //! The mode of the @ref orxonox::QuestListener "QuestListener".
         enum Value
         {
@@ -57,9 +58,7 @@
     /**
     @brief
-        Provides a way to react to the starting, completing and failing of Quests.
+        Provides a way to react to the starting, completing and failing of @ref orxonox::Quest "Quests".
 
         The XML representation goes as follows:
-        You can use the QuestListener as if it were a Trigger or EventListener, that fires an Event when the status (depending on the set mode) of the given Quest changes.
-
         @code
         <BaseObject> // The object that should react to the status change of a Quest.
@@ -71,4 +70,6 @@
         </BaseObject>
         @endcode
+
+        You can use the QuestListener as if it were a @ref orxonox::Trigger "Trigger" or @ref orxonox::EventListener "EventListener", that fires an Event when the status (depending on the set mode) of the given @ref orxonox::Quest "Quest" changes.
     @author
     Damian 'Mozork' Frick
@@ -76,23 +77,30 @@
     class _QuestsystemExport QuestListener : public BaseObject
     {
-    public:
-        QuestListener(BaseObject* creator);
-        virtual ~QuestListener();
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestListener object through XML.
+        public:
+            QuestListener(BaseObject* creator);
+            virtual ~QuestListener();
 
-        static void advertiseStatusChange(std::list<QuestListener*> & listeners, const std::string & status); //!< Makes all QuestListener in the list aware that a certain status change has occured.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestListener object through XML.
 
-        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.
+            static void advertiseStatusChange(std::list<QuestListener*> & listeners, const std::string & status); //!< Makes all QuestListener in the list aware that a certain status change has occured.
 
-        std::string getMode(void); //!< Get the mode of the QuestListener.
+            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 & getQuestId(void);
-        bool execute(void); //!< Executes the QuestListener, resp. fires an Event.
+            std::string getMode(void); //!< Get the mode of the QuestListener.
 
-    private:
-        QuestListenerMode::Value mode_; //!< The mode of the QuestListener.
-        Quest* quest_; //!< A pointer to the Quest the QuestListener is reacting to.
+            const std::string & getQuestId(void);
+            bool execute(void); //!< Executes the QuestListener, resp. fires an Event.
+
+        private:
+            QuestListenerMode::Value mode_; //!< The mode of the QuestListener.
+            Quest* quest_; //!< A pointer to the Quest the QuestListener is reacting to.
+
+            //! Static variables for the modes as strings.
+            static const std::string ALL;
+            static const std::string START;
+            static const std::string FAIL;
+            static const std::string COMPLETE;
 
     };
Index: /code/trunk/src/modules/questsystem/QuestManager.cc
===================================================================
--- /code/trunk/src/modules/questsystem/QuestManager.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestManager.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file QuestManager.cc
     @brief Implementation of the QuestManager class.
 */
@@ -34,19 +34,18 @@
 #include "QuestManager.h"
 
-#include <CEGUIWindow.h>
-
 #include "util/Exception.h"
 #include "util/ScopedSingletonManager.h"
+#include "core/command/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
 #include "core/GUIManager.h"
 #include "core/LuaState.h"
-#include "core/command/ConsoleCommand.h"
+
 #include "infos/PlayerInfo.h"
-#include "overlays/GUIOverlay.h"
-
-#include "ToluaBindQuestsystem.h"
+
 #include "Quest.h"
 #include "QuestHint.h"
 #include "QuestItem.h"
+
+#include "ToluaBindQuestsystem.h"
 
 namespace orxonox
@@ -66,4 +65,6 @@
     {
         RegisterRootObject(QuestManager);
+
+        COUT(3) << "QuestManager created." << std::endl;
     }
 
@@ -74,5 +75,5 @@
     QuestManager::~QuestManager()
     {
-
+        COUT(3) << "QuestManager destroyed." << std::endl;
     }
 
@@ -99,5 +100,6 @@
     bool QuestManager::registerQuest(Quest* quest)
     {
-        if(quest == NULL) //!< Doh! Just as if there were actual quests behind NULL-pointers.
+        //TODO: Replace with assert.
+        if(quest == NULL) // Doh! Just as if there were actual quests behind NULL-pointers.
         {
             COUT(2) << "Registration of Quest in QuestManager failed, because inserted Quest-pointer was NULL." << std::endl;
@@ -106,7 +108,7 @@
 
         std::pair<std::map<std::string, Quest*>::iterator,bool> result;
-        result = this->questMap_.insert( std::pair<std::string,Quest*>(quest->getId(),quest) ); //!< Inserting the Quest.
-
-        if(result.second) //!< If inserting was a success.
+        result = this->questMap_.insert( std::pair<std::string,Quest*>(quest->getId(),quest) ); // Inserting the Quest.
+
+        if(result.second) // If inserting was a success.
         {
             quest->setRegistered();
@@ -141,5 +143,6 @@
     bool QuestManager::registerHint(QuestHint* hint)
     {
-        if(hint == NULL) //!< Still not liking NULL-pointers.
+        //TODO: Replace with assert.
+        if(hint == NULL) // Still not liking NULL-pointers.
         {
             COUT(2) << "Registration of QuestHint in QuestManager failed, because inserted QuestHint-pointer was NULL." << std::endl;
@@ -148,7 +151,7 @@
 
         std::pair<std::map<std::string, QuestHint*>::iterator,bool> result;
-        result = this->hintMap_.insert ( std::pair<std::string,QuestHint*>(hint->getId(),hint) ); //!< Inserting the QuestHSint.
-
-        if(result.second) //!< If inserting was a success.
+        result = this->hintMap_.insert ( std::pair<std::string,QuestHint*>(hint->getId(),hint) ); // Inserting the QuestHSint.
+
+        if(result.second) // If inserting was a success.
         {
             hint->setRegistered();
@@ -185,15 +188,11 @@
     Quest* QuestManager::findQuest(const std::string & questId)
     {
-        if(questId.compare(BLANKSTRING) == 1) //!< Check vor validity of the given id.
-        {
+        if(questId.compare(BLANKSTRING) == 1) // Check vor validity of the given id.
             ThrowException(Argument, "Invalid questId.");
-        }
 
         Quest* quest;
         std::map<std::string, Quest*>::iterator it = this->questMap_.find(questId);
-        if (it != this->questMap_.end()) //!< If the Quest is registered.
-        {
+        if (it != this->questMap_.end()) // If the Quest is registered.
             quest = it->second;
-        }
         else
         {
@@ -203,5 +202,4 @@
 
         return quest;
-
     }
 
@@ -219,15 +217,11 @@
     QuestHint* QuestManager::findHint(const std::string & hintId)
     {
-        if(hintId.compare(BLANKSTRING) == 1) //!< Check vor validity of the given id.
-        {
+        if(hintId.compare(BLANKSTRING) == 1) // Check vor validity of the given id.
             ThrowException(Argument, "Invalid hintId.");
-        }
 
         QuestHint* hint;
         std::map<std::string, QuestHint*>::iterator it = this->hintMap_.find(hintId);
-        if (it != this->hintMap_.end()) //!< If the QuestHint is registered.
-        {
+        if (it != this->hintMap_.end()) // If the QuestHint is registered.
             hint = it->second;
-        }
         else
         {
@@ -237,8 +231,15 @@
 
         return hint;
-
-    }
-
-    int QuestManager::getNumParentQuests(PlayerInfo* player)
+    }
+
+    /**
+    @brief
+        Get the number of Quests the input player has, that are root quests.
+    @param player
+        The player.
+    @return
+        Returns the number of Quests the input player has, that are root quests.
+    */
+    int QuestManager::getNumRootQuests(PlayerInfo* player)
     {
         int numQuests = 0;
@@ -251,5 +252,15 @@
     }
 
-    Quest* QuestManager::getParentQuest(PlayerInfo* player, int index)
+    /**
+    @brief
+        Get the index-th root quest of the input player.
+    @param player
+        The player.
+    @param index
+        The index of the root quest.
+    @return
+        Returns the index-th root quest of the input player.
+    */
+    Quest* QuestManager::getRootQuest(PlayerInfo* player, int index)
     {
         for(std::map<std::string, Quest*>::iterator it = this->questMap_.begin(); it != this->questMap_.end(); it++)
@@ -261,4 +272,14 @@
     }
 
+    /**
+    @brief
+        Get the number of sub-quest of an input Quest for the input player.
+    @param quest
+        The quest to get the sub-quests of.
+    @param player
+        The player.
+    @return
+        Returns the number of sub-quest of an input Quest for the input player.
+    */
     int QuestManager::getNumSubQuests(Quest* quest, PlayerInfo* player)
     {
@@ -273,4 +294,14 @@
     }
 
+    /**
+    @brief
+        Get the index-th sub-quest of the input Quest for the input player.
+    @param quest
+        The Quest to get the sub-quest of.
+    @param player
+        The player.
+    @param index
+        The index of the sub-quest.
+    */
     Quest* QuestManager::getSubQuest(Quest* quest, PlayerInfo* player, int index)
     {
@@ -284,4 +315,13 @@
     }
 
+    /**
+    @brief
+        Get the number of QuestHints of the input Quest for the input player.
+    @param quest
+        The quest to get the hints of.
+    @param player
+        The player.
+    @return Returns the number of QuestHints of the input Quest for the input player.
+    */
     int QuestManager::getNumHints(Quest* quest, PlayerInfo* player)
     {
@@ -296,4 +336,14 @@
     }
 
+    /**
+    @brief
+        Get the index-th QuestHint of the input Quest for the input player.
+    @param quest
+        The Quest to get the QuestHint of.
+    @param player
+        The player.
+    @param index
+        The index of the QuestHint.
+    */
     QuestHint* QuestManager::getHints(Quest* quest, PlayerInfo* player, int index)
     {
@@ -307,4 +357,12 @@
     }
 
+    /**
+    @brief
+        Get the QuestDescription of the input Quest.
+    @param item
+        The Quest to get the QuestDescription of.
+    @return
+        Return a pointer ot the QuestDescription of the input Quest.
+    */
     QuestDescription* QuestManager::getDescription(Quest* item)
     {
@@ -312,4 +370,12 @@
     }
 
+    /**
+    @brief
+        Get the QuestDescription of the input QuestHint.
+    @param item
+        The QuestHint to get the QuestDescription of.
+    @return
+        Returns a pointer to the QuestDescription of the input QuestHint.
+    */
     QuestDescription* QuestManager::getDescription(QuestHint* item)
     {
Index: /code/trunk/src/modules/questsystem/QuestManager.h
===================================================================
--- /code/trunk/src/modules/questsystem/QuestManager.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestManager.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file QuestManager.h
     @brief Definition of the QuestManager class.
+    @ingroup Questsystem
 */
 
@@ -44,16 +45,14 @@
 #include "core/OrxonoxClass.h"
 
-// tolua_begin
-namespace orxonox
-{
+namespace orxonox  // tolua_export
+{  // tolua_export
     /**
     @brief
-        Is a Singleton and manages Quests, by registering every Quest/QuestHint (through registerX()) and making them globally accessible (through findX()).
-        Quests (and QuestHints) are registered in the QuestManager with their id, and can be accessed in the same way.
+        Is a Singleton and manages @ref orxonox::Quest "Quests", by registering every @ref orxonox::Quest "Quest" / @ref orxonox::QuestHint "QuestHint" (through registerX()) and making them globally accessible (through findX()).
+        @ref orxonox::Quest "Quests" (and @ref orxonox::QuestHint 2) are registered in the QuestManager with their id, and can be accessed in the same way.
     @author
         Damian 'Mozork' Frick
     */
-    class _QuestsystemExport QuestManager
-// tolua_end
+    class _QuestsystemExport QuestManager  // tolua_export
         : public Singleton<QuestManager>, public orxonox::OrxonoxClass
     { // tolua_export
@@ -65,16 +64,16 @@
             virtual ~QuestManager();
 
-            //! Returns a reference to the single instance of the Quest Manager.
+            //! Returns a reference to the single instance of the QuestManager.
             static QuestManager& getInstance() { return Singleton<QuestManager>::getInstance(); } // tolua_export
 
             // tolua_begin
-            int getNumParentQuests(orxonox::PlayerInfo* player);
-            Quest* getParentQuest(orxonox::PlayerInfo* player, int index);
+            int getNumRootQuests(orxonox::PlayerInfo* player); //!< Get the number of Quests the input player has, that are root quests.
+            Quest* getRootQuest(orxonox::PlayerInfo* player, int index); //!< Get the index-th root quest of the input player.
 
-            int getNumSubQuests(Quest* quest, orxonox::PlayerInfo* player);
-            Quest* getSubQuest(Quest* quest, orxonox::PlayerInfo* player, int index);
+            int getNumSubQuests(Quest* quest, orxonox::PlayerInfo* player); //!< Get the number of sub-quest of an input Quest for an input player.
+            Quest* getSubQuest(Quest* quest, orxonox::PlayerInfo* player, int index); //!< Get the index-th sub-quest of the input Quest for the input player.
 
-            int getNumHints(Quest* quest, orxonox::PlayerInfo* player);
-            QuestHint* getHints(Quest* quest, orxonox::PlayerInfo* player, int index);
+            int getNumHints(Quest* quest, orxonox::PlayerInfo* player); //!< Get the number of QuestHints of the input Quest for the input player.
+            QuestHint* getHints(Quest* quest, orxonox::PlayerInfo* player, int index); //!< Get the index-th QuestHint of the input Quest for the input player.
 
             QuestDescription* getDescription(Quest* item);
Index: /code/trunk/src/modules/questsystem/QuestNotification.cc
===================================================================
--- /code/trunk/src/modules/questsystem/QuestNotification.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestNotification.cc	(revision 7456)
@@ -26,4 +26,9 @@
  *
  */
+
+/**
+    @file QuestNotification.cc
+    @brief Implementation of the QuestNotification class.
+*/
 
 #include "QuestNotification.h"
Index: /code/trunk/src/modules/questsystem/QuestNotification.h
===================================================================
--- /code/trunk/src/modules/questsystem/QuestNotification.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/QuestNotification.h	(revision 7456)
@@ -26,4 +26,10 @@
  *
  */
+
+/**
+    @file QuestNotification.h
+    @brief Definition of the QuestNotification class.
+    @ingroup Questsystem
+*/
 
 #ifndef _QuestNotification_H__
Index: /code/trunk/src/modules/questsystem/effects/AddQuest.cc
===================================================================
--- /code/trunk/src/modules/questsystem/effects/AddQuest.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/AddQuest.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file AddQuest.cc
     @brief Implementation of the AddQuest class.
 */
@@ -34,8 +34,10 @@
 #include "AddQuest.h"
 
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
 #include "util/Exception.h"
-#include "core/CoreIncludes.h"
+
+#include "questsystem/Quest.h"
 #include "questsystem/QuestManager.h"
-#include "questsystem/Quest.h"
 
 namespace orxonox
@@ -81,5 +83,6 @@
     bool AddQuest::invoke(PlayerInfo* player)
     {
-        if(player == NULL) //!< Null-pointers are badass.
+        //TODO: Replace with assert?
+        if(player == NULL) // Null-pointers are badass.
         {
             COUT(2) << "Input player is NULL." << std::endl;
@@ -93,7 +96,5 @@
             Quest* quest = QuestManager::getInstance().findQuest(this->getQuestId());
             if(quest == NULL || !quest->start(player))
-            {
                return false;
-            }
         }
         catch(const orxonox::Exception& ex)
Index: /code/trunk/src/modules/questsystem/effects/AddQuest.h
===================================================================
--- /code/trunk/src/modules/questsystem/effects/AddQuest.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/AddQuest.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file AddQuest.h
     @brief Definition of the AddQuest class.
+    @ingroup QuestEffects
 */
 
@@ -42,8 +43,7 @@
     /**
     @brief
-        Adds a Quest, resp. changes the quests status to active for the player invoking the Quest.
+        Adds a @ref orxonox::Quest "Quest", resp. changes the @ref orxonox::Quest "Quests" status to active for the player invoking the @ref orxonox::Quest "Quest".
 
-        Creating a AddQuest through XML goes as follows:
-
+        Creating an AddQuest through XML goes as follows:
         @code
         <AddQuest questId="id" />  //Where id identifies the Quest that should be added.
Index: /code/trunk/src/modules/questsystem/effects/AddQuestHint.cc
===================================================================
--- /code/trunk/src/modules/questsystem/effects/AddQuestHint.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/AddQuestHint.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file AddQuestHint.cc
     @brief Implementation of the AddQuestHint class.
 */
@@ -34,10 +34,11 @@
 #include "AddQuestHint.h"
 
-#include "util/Exception.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "util/Exception.h"
+
+#include "questsystem/QuestHint.h"
 #include "questsystem/QuestManager.h"
 #include "questsystem/QuestItem.h"
-#include "questsystem/QuestHint.h"
 
 namespace orxonox
@@ -105,5 +106,6 @@
     bool AddQuestHint::invoke(PlayerInfo* player)
     {
-        if(player == NULL) //!< NULL-pointers are evil!
+        //TODO: Replace with assert?
+        if(player == NULL) // NULL-pointers are evil!
         {
             COUT(2) << "The input player is NULL." << std::endl;
@@ -117,7 +119,5 @@
             QuestHint* hint = QuestManager::getInstance().findHint(this->hintId_);
             if(hint == NULL || !hint->setActive(player))
-            {
                 return false;
-            }
         }
         catch(const Exception& e)
Index: /code/trunk/src/modules/questsystem/effects/AddQuestHint.h
===================================================================
--- /code/trunk/src/modules/questsystem/effects/AddQuestHint.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/AddQuestHint.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file AddQuestHint.h
     @brief Definition of the AddQuestHint class.
+    @ingroup QuestEffects
 */
 
@@ -44,8 +45,7 @@
     /**
     @brief
-        Adds a QuestHint, resp. activates the QuestHint of the given id for the player the QuestEffect is invoked on.
+        Adds a @ref orxonox::QuestHint "QuestHint", resp. activates the @ref orxonox::QuestHint "QuestHint" of the given id for the player the QuestEffect is invoked on.
 
         Creating a AddQuestHint through XML goes as follows:
-
         @code
         <AddQuestHint hintId="id" />  //Where id identifies the QuestHint that should be added.
Index: /code/trunk/src/modules/questsystem/effects/AddReward.cc
===================================================================
--- /code/trunk/src/modules/questsystem/effects/AddReward.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/AddReward.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file AddReward.cc
     @brief Implementation of the AddReward class.
 */
@@ -36,4 +36,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
 #include "interfaces/Rewardable.h"
 
@@ -57,4 +58,5 @@
     AddReward::~AddReward()
     {
+
     }
 
@@ -85,7 +87,5 @@
         {
             if(i == 0)
-            {
                return *reward;
-            }
             i--;
         }
@@ -107,7 +107,5 @@
         bool check = true;
         for ( std::list<Rewardable*>::iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward )
-        {
             check = check && (*reward)->reward(player);
-        }
 
         COUT(4) << "Rewardable successfully added to player." << player << " ." << std::endl;
Index: /code/trunk/src/modules/questsystem/effects/AddReward.h
===================================================================
--- /code/trunk/src/modules/questsystem/effects/AddReward.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/AddReward.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file AddReward.h
     @brief Definition of the AddReward class.
+    @ingroup QuestEffects
 */
 
@@ -44,8 +45,7 @@
     /**
     @brief
-        Adds a list of Rewardables to a player.
+        Adds a list of @ref orxonox::Rewardable "Rewardables" to a player.
 
         Creating a AddReward through XML goes as follows:
-
         @code
         <AddReward>
Index: /code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.cc
===================================================================
--- /code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.cc	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file ChangeQuestStatus.cc
     @brief Implementation of the ChangeQuestStatus class.
+    @ingroup QuestEffects
 */
 
@@ -36,4 +37,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
 #include "questsystem/QuestItem.h"
 
@@ -55,4 +57,5 @@
     ChangeQuestStatus::~ChangeQuestStatus()
     {
+
     }
 
Index: /code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h
===================================================================
--- /code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file ChangeQuestStatus.h
     @brief Definition of the ChangeQuestStatus class.
+    @ingroup QuestEffects
 */
 
@@ -44,5 +45,5 @@
     /**
     @brief
-        A QuestEffect which changes the status of a specified Quest for the player invoking the QuestEffect.
+        A QuestEffect which changes the status of a specified @ref orxonox::Quest "Quest" for the player invoking the QuestEffect.
     @author
         Damian 'Mozork' Frick
Index: /code/trunk/src/modules/questsystem/effects/CompleteQuest.cc
===================================================================
--- /code/trunk/src/modules/questsystem/effects/CompleteQuest.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/CompleteQuest.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file CompleteQuest.cc
     @brief Implementation of the CompleteQuest class.
 */
@@ -36,6 +36,7 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
+#include "questsystem/Quest.h"
 #include "questsystem/QuestManager.h"
-#include "questsystem/Quest.h"
 
 namespace orxonox
@@ -58,4 +59,5 @@
     CompleteQuest::~CompleteQuest()
     {
+
     }
 
@@ -81,5 +83,6 @@
     bool CompleteQuest::invoke(PlayerInfo* player)
     {
-        if(player == NULL) //!< You know, what we think of NULL-pointers...
+        //TODO: Replace with assert?
+        if(player == NULL) // You know, what we think of NULL-pointers...
         {
             COUT(2) << "Input player is NULL." << std::endl;
@@ -95,7 +98,5 @@
             quest = QuestManager::getInstance().findQuest(this->getQuestId());
             if(quest == NULL || !quest->complete(player))
-            {
                return false;
-            }
         }
         catch(const Exception& e)
Index: /code/trunk/src/modules/questsystem/effects/CompleteQuest.h
===================================================================
--- /code/trunk/src/modules/questsystem/effects/CompleteQuest.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/CompleteQuest.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file CompleteQuest.h
     @brief Definition of the CompleteQuest class.
+    @ingroup QuestEffects
 */
 
@@ -42,8 +43,7 @@
     /**
     @brief
-        Completes a Quest (with a specified id) for the player invoking the QuestEffect.
+        Completes a @ref orxonox::Quest "Quest" (with a specified id) for the player invoking the QuestEffect.
 
         Creating a CompleteQuest through XML goes as follows:
-
         @code
         <CompleteQuest questId="id" />  //Where id identifies the Quest that should be completed.
Index: /code/trunk/src/modules/questsystem/effects/FailQuest.cc
===================================================================
--- /code/trunk/src/modules/questsystem/effects/FailQuest.cc	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/FailQuest.cc	(revision 7456)
@@ -28,5 +28,5 @@
 
 /**
-    @file
+    @file FailQuest.cc
     @brief Implementation of the FailQuest class.
 */
@@ -36,6 +36,7 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+
+#include "questsystem/Quest.h"
 #include "questsystem/QuestManager.h"
-#include "questsystem/Quest.h"
 
 namespace orxonox
@@ -58,4 +59,5 @@
     FailQuest::~FailQuest()
     {
+
     }
 
@@ -68,5 +70,5 @@
         SUPER(FailQuest, XMLPort, xmlelement, mode);
 
-        COUT(4) << "New FailQUest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
+        COUT(4) << "New FailQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
     }
 
@@ -81,5 +83,6 @@
     bool FailQuest::invoke(PlayerInfo* player)
     {
-        if(player == NULL) //!< We don't know what to do with no player.
+        //TODO: Replace with assert?
+        if(player == NULL) // We don't know what to do with no player.
         {
             COUT(2) << "Input player is NULL." << std::endl;
@@ -94,7 +97,5 @@
             quest = QuestManager::getInstance().findQuest(this->getQuestId());
             if(quest == NULL || !quest->fail(player))
-            {
                return false;
-            }
         }
         catch(const Exception& e)
Index: /code/trunk/src/modules/questsystem/effects/FailQuest.h
===================================================================
--- /code/trunk/src/modules/questsystem/effects/FailQuest.h	(revision 7455)
+++ /code/trunk/src/modules/questsystem/effects/FailQuest.h	(revision 7456)
@@ -28,6 +28,7 @@
 
 /**
-    @file
+    @file FailQuest.h
     @brief Definition of the FailQuest class.
+    @ingroup QuestEffects
 */
 
@@ -42,8 +43,7 @@
     /**
     @brief
-        Fails a quest (with a specified id) for the player invoking the QuestEffect.
+        Fails a @ref orxonox::Quest "Quest" (with a specified id) for the player invoking the QuestEffect.
 
         Creating a FailQuest through XML goes as follows:
-
         @code
         <FailQuest questId="id" />  //Where id identifies the Quest that should be failed.
Index: /code/trunk/src/orxonox/interfaces/PickupCarrier.h
===================================================================
--- /code/trunk/src/orxonox/interfaces/PickupCarrier.h	(revision 7455)
+++ /code/trunk/src/orxonox/interfaces/PickupCarrier.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file PickupCarrier.h
     @brief Definition of the PickupCarrier class.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/orxonox/interfaces/Pickupable.h
===================================================================
--- /code/trunk/src/orxonox/interfaces/Pickupable.h	(revision 7455)
+++ /code/trunk/src/orxonox/interfaces/Pickupable.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file Pickupable.h
     @brief Definition of the Pickupable class.
+    @ingroup Pickup
 */
 
Index: /code/trunk/src/orxonox/pickup/PickupIdentifier.h
===================================================================
--- /code/trunk/src/orxonox/pickup/PickupIdentifier.h	(revision 7455)
+++ /code/trunk/src/orxonox/pickup/PickupIdentifier.h	(revision 7456)
@@ -30,4 +30,5 @@
     @file PickupIdentifier.h
     @brief Definition of the PickupIdentifier class.
+    @ingroup Pickup
 */
 
