Index: de/branches/doc/src/modules/questsystem/AddQuest.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/AddQuest.cc	(revision 7310)
+++ 	(revision )
@@ -1,110 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Implementation of the AddQuest class.
-*/
-
-#include "AddQuest.h"
-
-#include "util/Exception.h"
-#include "core/CoreIncludes.h"
-#include "QuestManager.h"
-#include "Quest.h"
-
-namespace orxonox
-{
-    CreateFactory(AddQuest);
-
-    /**
-    @brief
-        Constructor. Registers the object.
-    */
-    AddQuest::AddQuest(BaseObject* creator) : ChangeQuestStatus(creator)
-    {
-        RegisterObject(AddQuest);
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    AddQuest::~AddQuest()
-    {
-    }
-
-    /**
-    @brief
-        Method for creating a AddQuest object through XML.
-    */
-    void AddQuest::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(AddQuest, XMLPort, xmlelement, mode);
-
-        COUT(4) << "New AddQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
-    }
-
-    /**
-    @brief
-        Invokes the QuestEffect.
-    @param player
-        The player the QuestEffect is invoked on.
-    @return
-        Returns true if the QuestEffect was successfully invoked.
-    */
-    bool AddQuest::invoke(PlayerInfo* player)
-    {
-        if(player == NULL) //!< Null-pointers are badass.
-        {
-            COUT(2) << "Input player is NULL." << std::endl;
-            return false;
-        }
-
-        COUT(5) << "AddQuest on player: " << player << " ." << std::endl;
-
-        try
-        {
-            Quest* quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->start(player))
-            {
-               return false;
-            }
-        }
-        catch(const orxonox::Exception& ex)
-        {
-            COUT(2) << ex.getFullDescription() << std::endl;
-            return false;
-        }
-
-        COUT(4) << "Quest {" << this->getQuestId() << "} successfully added to player: " << player << " ." << std::endl;
-        return true;
-    }
-
-
-}
Index: de/branches/doc/src/modules/questsystem/AddQuest.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/AddQuest.h	(revision 7310)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Definition of the AddQuest class.
-*/
-
-#ifndef _AddQuest_H__
-#define _AddQuest_H__
-
-#include "questsystem/QuestsystemPrereqs.h"
-#include "ChangeQuestStatus.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Adds a Quest, resp. changes the quests status to active for the player invoking the Quest.
-
-        Creating a AddQuest through XML goes as follows:
-
-        @code
-        <AddQuest questId="id" />  //Where id identifies the Quest that should be added.
-        @endcode
-    @author
-        Damian 'Mozork' Frick
-    */
-    class _QuestsystemExport AddQuest : public ChangeQuestStatus
-    {
-        public:
-        AddQuest(BaseObject* creator);
-        virtual ~AddQuest();
-
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuest object through XML.
-
-        virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
-
-    };
-
-}
-
-#endif /* _AddQuest_H__ */
Index: de/branches/doc/src/modules/questsystem/AddQuestHint.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/AddQuestHint.cc	(revision 7310)
+++ 	(revision )
@@ -1,133 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Implementation of the AddQuestHint class.
-*/
-
-#include "AddQuestHint.h"
-
-#include "util/Exception.h"
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "QuestManager.h"
-#include "QuestItem.h"
-#include "QuestHint.h"
-
-namespace orxonox
-{
-    CreateFactory(AddQuestHint);
-
-    /**
-    @brief
-        Constructor. Registers the object.
-    */
-    AddQuestHint::AddQuestHint(BaseObject* creator) : QuestEffect(creator)
-    {
-        RegisterObject(AddQuestHint);
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    AddQuestHint::~AddQuestHint()
-    {
-    }
-
-    /**
-    @brief
-        Method for creating a AddQuestHint object through XML.
-    */
-    void AddQuestHint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(AddQuestHint, XMLPort, xmlelement, mode);
-
-        XMLPortParam(AddQuestHint, "hintId", setHintId, getHintId, xmlelement, mode);
-
-        COUT(4) << "New AddQuestHint, with target QuestHint {" << this->getHintId() << "}, created." << std::endl;
-    }
-
-    /**
-    @brief
-        Sets the id of the QuestHint to be added to the player the QuestEffect is invoked on.
-    @param id
-        The QuestHint id.
-    @return
-        Returns true if successful.
-    */
-    bool AddQuestHint::setHintId(const std::string & id)
-    {
-        if(id.compare(BLANKSTRING) == 0)
-        {
-            COUT(2) << "Invalid id. QuestItem id {" << id << "} could not be set." << std::endl;
-            return false;
-        }
-
-        this->hintId_ = id;
-        return true;
-    }
-
-    /**
-    @brief
-        Invokes the QuestEffect.
-    @param player
-        The player.
-    @return
-        Returns true if the QuestEffect was successfully invoked.
-    */
-    bool AddQuestHint::invoke(PlayerInfo* player)
-    {
-        if(player == NULL) //!< NULL-pointers are evil!
-        {
-            COUT(2) << "The input player is NULL." << std::endl;
-            return false;
-        }
-
-        COUT(5) << "AddQuestHint on player: " << player << " ." << std::endl;
-
-        try
-        {
-            QuestHint* hint = QuestManager::getInstance().findHint(this->hintId_);
-            if(hint == NULL || !hint->setActive(player))
-            {
-                return false;
-            }
-        }
-        catch(const Exception& e)
-        {
-           COUT(2) << e.getFullDescription() << std::endl;
-           return false;
-        }
-
-        COUT(4) << "QuestHint {" << this->getHintId() << "} successfully added to player: " << player << " ." << std::endl;
-        return true;
-
-    }
-}
Index: de/branches/doc/src/modules/questsystem/AddQuestHint.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/AddQuestHint.h	(revision 7310)
+++ 	(revision )
@@ -1,82 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Definition of the AddQuestHint class.
-*/
-
-#ifndef _AddQuestHint_H__
-#define _AddQuestHint_H__
-
-#include "questsystem/QuestsystemPrereqs.h"
-
-#include <string>
-#include "QuestEffect.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Adds a QuestHint, resp. activates the 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.
-        @endcode
-    @author
-        Damian 'Mozork' Frick
-    */
-    class _QuestsystemExport AddQuestHint : public QuestEffect
-    {
-        public:
-            AddQuestHint(BaseObject* creator);
-            virtual ~AddQuestHint();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuestHint object through XML.
-
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
-
-        private:
-            std::string hintId_; //!< The id of the QuestHint.
-
-            /**
-            @brief Returns the id of the QuestHint.
-            @return Returns the id of the QuestHint.
-            */
-            inline const std::string & getHintId(void) const
-                { return this->hintId_; }
-
-            bool setHintId(const std::string & id); //!< Sets the id of the QuestHint.
-
-    };
-
-}
-
-#endif /* _AddQuestHint_H__ */
Index: de/branches/doc/src/modules/questsystem/AddReward.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/AddReward.cc	(revision 7310)
+++ 	(revision )
@@ -1,118 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Implementation of the AddReward class.
-*/
-
-#include "AddReward.h"
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "interfaces/Rewardable.h"
-
-namespace orxonox
-{
-    CreateFactory(AddReward);
-
-    /**
-    @brief
-        Constructor. Registers the object.
-    */
-    AddReward::AddReward(BaseObject* creator) : QuestEffect(creator)
-    {
-        RegisterObject(AddReward);
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    AddReward::~AddReward()
-    {
-    }
-
-    /**
-        Method for creating a AddReward object through XML.
-    */
-    void AddReward::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(AddReward, XMLPort, xmlelement, mode);
-
-        XMLPortObject(AddReward, Rewardable, "", addRewardable, getRewardables, xmlelement, mode);
-
-        COUT(4) << "New AddReward, with " << this->rewards_.size() << " Rewardables created." << std::endl;
-    }
-
-    /**
-    @brief
-        Returns the Rewardable object at the given index.
-    @param index
-        The index.
-    @return
-        Returns a pointer to the Rewardable object at the given index.
-    */
-    const Rewardable* AddReward::getRewardables(unsigned int index) const
-    {
-        int i = index;
-        for (std::list<Rewardable*>::const_iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward)
-        {
-            if(i == 0)
-            {
-               return *reward;
-            }
-            i--;
-        }
-        return NULL;
-    }
-
-    /**
-    @brief
-        Invokes the QuestEffect.
-    @param player
-        The player.
-    @return
-        Returns true if the QuestEffect was invoked successfully.
-    */
-    bool AddReward::invoke(PlayerInfo* player)
-    {
-        COUT(5) << "AddReward on player: " << player << " ." << std::endl;
-
-        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;
-
-        return check;
-    }
-
-}
Index: de/branches/doc/src/modules/questsystem/AddReward.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/AddReward.h	(revision 7310)
+++ 	(revision )
@@ -1,86 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Definition of the AddReward class.
-*/
-
-#ifndef _AddReward_H__
-#define _AddReward_H__
-
-#include "questsystem/QuestsystemPrereqs.h"
-
-#include <list>
-#include "QuestEffect.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Adds a list of Rewardables to a player.
-
-        Creating a AddReward through XML goes as follows:
-
-        @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
-    @author
-        Damian 'Mozork' Frick
-    */
-    class _QuestsystemExport AddReward : public QuestEffect
-    {
-        public:
-            AddReward(BaseObject* creator);
-            virtual ~AddReward();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddReward object through XML.
-
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
-
-        private:
-            std::list<Rewardable*> rewards_; //!< A list of Rewardables to be added to the player invoking the QuestEffect.
-
-            /**
-            @brief Add a Rewardable object to the list of objects to be awarded to the player invoking the QuestEffect.
-            @param reward Pointer to the Rewardable to be added.
-            */
-            inline void addRewardable(Rewardable* reward)
-                { this->rewards_.push_back(reward); }
-
-            const Rewardable* getRewardables(unsigned int index) const; //!< Returns the Rewardable object at the given index.
-
-    };
-
-}
-
-#endif /* _AddReward_H__ */
Index: /code/branches/doc/src/modules/questsystem/CMakeLists.txt
===================================================================
--- /code/branches/doc/src/modules/questsystem/CMakeLists.txt	(revision 7310)
+++ /code/branches/doc/src/modules/questsystem/CMakeLists.txt	(revision 7311)
@@ -1,9 +1,3 @@
 SET_SOURCE_FILES(QUESTSYSTEM_SRC_FILES
-  AddQuest.cc
-  AddQuestHint.cc
-  AddReward.cc
-  ChangeQuestStatus.cc
-  CompleteQuest.cc
-  FailQuest.cc
   GlobalQuest.cc
   LocalQuest.cc
@@ -18,4 +12,6 @@
   QuestNotification.cc
 )
+
+ADD_SUBDIRECTORY(effects)
 
 ORXONOX_ADD_LIBRARY(questsystem
Index: de/branches/doc/src/modules/questsystem/ChangeQuestStatus.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/ChangeQuestStatus.cc	(revision 7310)
+++ 	(revision )
@@ -1,90 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Implementation of the ChangeQuestStatus class.
-*/
-
-#include "ChangeQuestStatus.h"
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "QuestItem.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Constructor. Registers the object.
-    */
-    ChangeQuestStatus::ChangeQuestStatus(BaseObject* creator) : QuestEffect(creator)
-    {
-        RegisterObject(ChangeQuestStatus);
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    ChangeQuestStatus::~ChangeQuestStatus()
-    {
-    }
-
-    /**
-    @brief
-        Method for creating a ChangeQuestStatus object through XML.
-    */
-    void ChangeQuestStatus::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(ChangeQuestStatus, XMLPort, xmlelement, mode);
-
-        XMLPortParam(ChangeQuestStatus, "questId", setQuestId, getQuestId, xmlelement, mode);
-    }
-
-    /**
-    @brief
-        Sets the id of the Quest the Questffect changes the status of.
-    @param id
-        The id of the Quest.
-    @return
-        Returns true if successful.
-    */
-    bool ChangeQuestStatus::setQuestId(const std::string & id)
-    {
-        if(id.compare(BLANKSTRING) == 0)
-        {
-            COUT(2) << "Invalid id. QuestItem id {" << id << "} could not be set." << std::endl;
-            return false;
-        }
-
-        this->questId_ = id;
-        return true;
-    }
-
-}
Index: de/branches/doc/src/modules/questsystem/ChangeQuestStatus.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/ChangeQuestStatus.h	(revision 7310)
+++ 	(revision )
@@ -1,77 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Definition of the ChangeQuestStatus class.
-*/
-
-#ifndef _ChangeQuestStatus_H__
-#define _ChangeQuestStatus_H__
-
-#include "questsystem/QuestsystemPrereqs.h"
-
-#include <string>
-#include "QuestEffect.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        A QuestEffect which changes the status of a specified Quest for the player invoking the QuestEffect.
-    @author
-        Damian 'Mozork' Frick
-    */
-    class _QuestsystemExport ChangeQuestStatus : public QuestEffect
-    {
-        public:
-            ChangeQuestStatus(BaseObject* creator);
-            virtual ~ChangeQuestStatus();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a ChangeQuestStatus object through XML.
-
-            virtual bool invoke(PlayerInfo* player) = 0; //!< Invokes the QuestEffect.
-
-        protected:
-            /**
-            @brief Returns the id of the Quest.
-            @return Returns the id of the Quest.
-            */
-            inline const std::string & getQuestId(void) const
-                { return this->questId_; }
-
-        private:
-            std::string questId_; //!< The id of the Quest the status should be changed of.
-
-            bool setQuestId(const std::string & id); //!< Sets the id of the Quest.
-
-    };
-
-}
-
-#endif /* _ChangeQuestStatus_H__ */
Index: de/branches/doc/src/modules/questsystem/CompleteQuest.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/CompleteQuest.cc	(revision 7310)
+++ 	(revision )
@@ -1,112 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Implementation of the CompleteQuest class.
-*/
-
-#include "CompleteQuest.h"
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "QuestManager.h"
-#include "Quest.h"
-
-namespace orxonox
-{
-    CreateFactory(CompleteQuest);
-
-    /**
-    @brief
-        Constructor. Registers the object.
-    */
-    CompleteQuest::CompleteQuest(BaseObject* creator) : ChangeQuestStatus(creator)
-    {
-        RegisterObject(CompleteQuest);
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    CompleteQuest::~CompleteQuest()
-    {
-    }
-
-    /**
-    @brief
-        Method for creating a CompleteQuest object through XML.
-    */
-    void CompleteQuest::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(CompleteQuest, XMLPort, xmlelement, mode);
-
-        COUT(4) << "New CompleteQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
-    }
-
-    /**
-    @brief
-        Invokes the QuestEffect.
-    @param player
-        The player the QuestEffect is invoked on.
-    @return
-        Returns true if the QuestEffect was invoked successfully.
-    */
-    bool CompleteQuest::invoke(PlayerInfo* player)
-    {
-        if(player == NULL) //!< You know, what we think of NULL-pointers...
-        {
-            COUT(2) << "Input player is NULL." << std::endl;
-            return false;
-        }
-
-        COUT(5) << "CompleteQuest on player: " << player << " ." << std::endl;
-
-        Quest* quest;
-
-        try
-        {
-            quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->complete(player))
-            {
-               return false;
-            }
-        }
-        catch(const Exception& e)
-        {
-            COUT(2) << e.getFullDescription() << std::endl;
-            return false;
-        }
-
-        COUT(4) << "Quest {" << quest->getId() << "} successfully completed by player: " << player << " ." << std::endl;
-        return true;
-    }
-
-
-}
Index: de/branches/doc/src/modules/questsystem/CompleteQuest.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/CompleteQuest.h	(revision 7310)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Definition of the CompleteQuest class.
-*/
-
-#ifndef _CompleteQuest_H__
-#define _CompleteQuest_H__
-
-#include "questsystem/QuestsystemPrereqs.h"
-#include "ChangeQuestStatus.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Completes a 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.
-        @endcode
-    @author
-        Damian 'Mozork' Frick
-    */
-    class _QuestsystemExport CompleteQuest : public ChangeQuestStatus
-    {
-        public:
-            CompleteQuest(BaseObject* creator);
-            virtual ~CompleteQuest();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a CompleteQuest object through XML.
-
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
-
-    };
-
-}
-
-#endif /* _CompleteQuest_H__ */
Index: de/branches/doc/src/modules/questsystem/FailQuest.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/FailQuest.cc	(revision 7310)
+++ 	(revision )
@@ -1,111 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Implementation of the FailQuest class.
-*/
-
-#include "FailQuest.h"
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "QuestManager.h"
-#include "Quest.h"
-
-namespace orxonox
-{
-    CreateFactory(FailQuest);
-
-    /**
-    @brief
-        Constructor. Registers the object.
-    */
-    FailQuest::FailQuest(BaseObject* creator) : ChangeQuestStatus(creator)
-    {
-        RegisterObject(FailQuest);
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    FailQuest::~FailQuest()
-    {
-    }
-
-    /**
-    @brief
-        Method for creating a FailQuest object through XML.
-    */
-    void FailQuest::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(FailQuest, XMLPort, xmlelement, mode);
-
-        COUT(4) << "New FailQUest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
-    }
-
-    /**
-    @brief
-        Invokes the QuestEffect.
-    @param player
-        The player the QuestEffect is invoked on.
-    @return
-        Returns true if the QuestEffect was invoked successfully.
-    */
-    bool FailQuest::invoke(PlayerInfo* player)
-    {
-        if(player == NULL) //!< We don't know what to do with no player.
-        {
-            COUT(2) << "Input player is NULL." << std::endl;
-            return false;
-        }
-
-        COUT(4) << "FailQuest on player: " << player << " ." << std::endl;
-
-        Quest* quest;
-        try
-        {
-            quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->fail(player))
-            {
-               return false;
-            }
-        }
-        catch(const Exception& e)
-        {
-            COUT(2) << e.getFullDescription() << std::endl;
-            return false;
-        }
-
-        COUT(4) << "Quest {" << quest->getId() << "} failed by player: " << player << " ." << std::endl;
-        return true;
-    }
-
-
-}
Index: de/branches/doc/src/modules/questsystem/FailQuest.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/FailQuest.h	(revision 7310)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file
-    @brief Definition of the FailQuest class.
-*/
-
-#ifndef _FailQuest_H__
-#define _FailQuest_H__
-
-#include "questsystem/QuestsystemPrereqs.h"
-#include "ChangeQuestStatus.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Fails a 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.
-        @endcode
-    @author
-        Damian 'Mozork' Frick
-    */
-    class _QuestsystemExport FailQuest : public ChangeQuestStatus
-    {
-        public:
-            FailQuest(BaseObject* creator);
-            virtual ~FailQuest();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a FailQuest object through XML.
-
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
-
-    };
-
-}
-
-#endif /* _FailQuest_H__ */
Index: /code/branches/doc/src/modules/questsystem/effects/AddQuest.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/AddQuest.cc	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/AddQuest.cc	(revision 7311)
@@ -0,0 +1,110 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Implementation of the AddQuest class.
+*/
+
+#include "AddQuest.h"
+
+#include "util/Exception.h"
+#include "core/CoreIncludes.h"
+#include "questsystem/QuestManager.h"
+#include "questsystem/Quest.h"
+
+namespace orxonox
+{
+    CreateFactory(AddQuest);
+
+    /**
+    @brief
+        Constructor. Registers the object.
+    */
+    AddQuest::AddQuest(BaseObject* creator) : ChangeQuestStatus(creator)
+    {
+        RegisterObject(AddQuest);
+    }
+
+    /**
+    @brief
+        Destructor.
+    */
+    AddQuest::~AddQuest()
+    {
+    }
+
+    /**
+    @brief
+        Method for creating a AddQuest object through XML.
+    */
+    void AddQuest::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(AddQuest, XMLPort, xmlelement, mode);
+
+        COUT(4) << "New AddQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
+    }
+
+    /**
+    @brief
+        Invokes the QuestEffect.
+    @param player
+        The player the QuestEffect is invoked on.
+    @return
+        Returns true if the QuestEffect was successfully invoked.
+    */
+    bool AddQuest::invoke(PlayerInfo* player)
+    {
+        if(player == NULL) //!< Null-pointers are badass.
+        {
+            COUT(2) << "Input player is NULL." << std::endl;
+            return false;
+        }
+
+        COUT(5) << "AddQuest on player: " << player << " ." << std::endl;
+
+        try
+        {
+            Quest* quest = QuestManager::getInstance().findQuest(this->getQuestId());
+            if(quest == NULL || !quest->start(player))
+            {
+               return false;
+            }
+        }
+        catch(const orxonox::Exception& ex)
+        {
+            COUT(2) << ex.getFullDescription() << std::endl;
+            return false;
+        }
+
+        COUT(4) << "Quest {" << this->getQuestId() << "} successfully added to player: " << player << " ." << std::endl;
+        return true;
+    }
+
+
+}
Index: /code/branches/doc/src/modules/questsystem/effects/AddQuest.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/AddQuest.h	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/AddQuest.h	(revision 7311)
@@ -0,0 +1,68 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Definition of the AddQuest class.
+*/
+
+#ifndef _AddQuest_H__
+#define _AddQuest_H__
+
+#include "questsystem/QuestsystemPrereqs.h"
+#include "ChangeQuestStatus.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        Adds a Quest, resp. changes the quests status to active for the player invoking the Quest.
+
+        Creating a AddQuest through XML goes as follows:
+
+        @code
+        <AddQuest questId="id" />  //Where id identifies the Quest that should be added.
+        @endcode
+    @author
+        Damian 'Mozork' Frick
+    */
+    class _QuestsystemExport AddQuest : public ChangeQuestStatus
+    {
+        public:
+        AddQuest(BaseObject* creator);
+        virtual ~AddQuest();
+
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuest object through XML.
+
+        virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+
+    };
+
+}
+
+#endif /* _AddQuest_H__ */
Index: /code/branches/doc/src/modules/questsystem/effects/AddQuestHint.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/AddQuestHint.cc	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/AddQuestHint.cc	(revision 7311)
@@ -0,0 +1,133 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Implementation of the AddQuestHint class.
+*/
+
+#include "AddQuestHint.h"
+
+#include "util/Exception.h"
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "questsystem/QuestManager.h"
+#include "questsystem/QuestItem.h"
+#include "questsystem/QuestHint.h"
+
+namespace orxonox
+{
+    CreateFactory(AddQuestHint);
+
+    /**
+    @brief
+        Constructor. Registers the object.
+    */
+    AddQuestHint::AddQuestHint(BaseObject* creator) : QuestEffect(creator)
+    {
+        RegisterObject(AddQuestHint);
+    }
+
+    /**
+    @brief
+        Destructor.
+    */
+    AddQuestHint::~AddQuestHint()
+    {
+    }
+
+    /**
+    @brief
+        Method for creating a AddQuestHint object through XML.
+    */
+    void AddQuestHint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(AddQuestHint, XMLPort, xmlelement, mode);
+
+        XMLPortParam(AddQuestHint, "hintId", setHintId, getHintId, xmlelement, mode);
+
+        COUT(4) << "New AddQuestHint, with target QuestHint {" << this->getHintId() << "}, created." << std::endl;
+    }
+
+    /**
+    @brief
+        Sets the id of the QuestHint to be added to the player the QuestEffect is invoked on.
+    @param id
+        The QuestHint id.
+    @return
+        Returns true if successful.
+    */
+    bool AddQuestHint::setHintId(const std::string & id)
+    {
+        if(id.compare(BLANKSTRING) == 0)
+        {
+            COUT(2) << "Invalid id. QuestItem id {" << id << "} could not be set." << std::endl;
+            return false;
+        }
+
+        this->hintId_ = id;
+        return true;
+    }
+
+    /**
+    @brief
+        Invokes the QuestEffect.
+    @param player
+        The player.
+    @return
+        Returns true if the QuestEffect was successfully invoked.
+    */
+    bool AddQuestHint::invoke(PlayerInfo* player)
+    {
+        if(player == NULL) //!< NULL-pointers are evil!
+        {
+            COUT(2) << "The input player is NULL." << std::endl;
+            return false;
+        }
+
+        COUT(5) << "AddQuestHint on player: " << player << " ." << std::endl;
+
+        try
+        {
+            QuestHint* hint = QuestManager::getInstance().findHint(this->hintId_);
+            if(hint == NULL || !hint->setActive(player))
+            {
+                return false;
+            }
+        }
+        catch(const Exception& e)
+        {
+           COUT(2) << e.getFullDescription() << std::endl;
+           return false;
+        }
+
+        COUT(4) << "QuestHint {" << this->getHintId() << "} successfully added to player: " << player << " ." << std::endl;
+        return true;
+
+    }
+}
Index: /code/branches/doc/src/modules/questsystem/effects/AddQuestHint.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/AddQuestHint.h	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/AddQuestHint.h	(revision 7311)
@@ -0,0 +1,82 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Definition of the AddQuestHint class.
+*/
+
+#ifndef _AddQuestHint_H__
+#define _AddQuestHint_H__
+
+#include "questsystem/QuestsystemPrereqs.h"
+
+#include <string>
+#include "questsystem/QuestEffect.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        Adds a QuestHint, resp. activates the 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.
+        @endcode
+    @author
+        Damian 'Mozork' Frick
+    */
+    class _QuestsystemExport AddQuestHint : public QuestEffect
+    {
+        public:
+            AddQuestHint(BaseObject* creator);
+            virtual ~AddQuestHint();
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuestHint object through XML.
+
+            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+
+        private:
+            std::string hintId_; //!< The id of the QuestHint.
+
+            /**
+            @brief Returns the id of the QuestHint.
+            @return Returns the id of the QuestHint.
+            */
+            inline const std::string & getHintId(void) const
+                { return this->hintId_; }
+
+            bool setHintId(const std::string & id); //!< Sets the id of the QuestHint.
+
+    };
+
+}
+
+#endif /* _AddQuestHint_H__ */
Index: /code/branches/doc/src/modules/questsystem/effects/AddReward.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/AddReward.cc	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/AddReward.cc	(revision 7311)
@@ -0,0 +1,118 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Implementation of the AddReward class.
+*/
+
+#include "AddReward.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "interfaces/Rewardable.h"
+
+namespace orxonox
+{
+    CreateFactory(AddReward);
+
+    /**
+    @brief
+        Constructor. Registers the object.
+    */
+    AddReward::AddReward(BaseObject* creator) : QuestEffect(creator)
+    {
+        RegisterObject(AddReward);
+    }
+
+    /**
+    @brief
+        Destructor.
+    */
+    AddReward::~AddReward()
+    {
+    }
+
+    /**
+        Method for creating a AddReward object through XML.
+    */
+    void AddReward::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(AddReward, XMLPort, xmlelement, mode);
+
+        XMLPortObject(AddReward, Rewardable, "", addRewardable, getRewardables, xmlelement, mode);
+
+        COUT(4) << "New AddReward, with " << this->rewards_.size() << " Rewardables created." << std::endl;
+    }
+
+    /**
+    @brief
+        Returns the Rewardable object at the given index.
+    @param index
+        The index.
+    @return
+        Returns a pointer to the Rewardable object at the given index.
+    */
+    const Rewardable* AddReward::getRewardables(unsigned int index) const
+    {
+        int i = index;
+        for (std::list<Rewardable*>::const_iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward)
+        {
+            if(i == 0)
+            {
+               return *reward;
+            }
+            i--;
+        }
+        return NULL;
+    }
+
+    /**
+    @brief
+        Invokes the QuestEffect.
+    @param player
+        The player.
+    @return
+        Returns true if the QuestEffect was invoked successfully.
+    */
+    bool AddReward::invoke(PlayerInfo* player)
+    {
+        COUT(5) << "AddReward on player: " << player << " ." << std::endl;
+
+        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;
+
+        return check;
+    }
+
+}
Index: /code/branches/doc/src/modules/questsystem/effects/AddReward.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/AddReward.h	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/AddReward.h	(revision 7311)
@@ -0,0 +1,86 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Definition of the AddReward class.
+*/
+
+#ifndef _AddReward_H__
+#define _AddReward_H__
+
+#include "questsystem/QuestsystemPrereqs.h"
+
+#include <list>
+#include "questsystem/QuestEffect.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        Adds a list of Rewardables to a player.
+
+        Creating a AddReward through XML goes as follows:
+
+        @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
+    @author
+        Damian 'Mozork' Frick
+    */
+    class _QuestsystemExport AddReward : public QuestEffect
+    {
+        public:
+            AddReward(BaseObject* creator);
+            virtual ~AddReward();
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddReward object through XML.
+
+            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+
+        private:
+            std::list<Rewardable*> rewards_; //!< A list of Rewardables to be added to the player invoking the QuestEffect.
+
+            /**
+            @brief Add a Rewardable object to the list of objects to be awarded to the player invoking the QuestEffect.
+            @param reward Pointer to the Rewardable to be added.
+            */
+            inline void addRewardable(Rewardable* reward)
+                { this->rewards_.push_back(reward); }
+
+            const Rewardable* getRewardables(unsigned int index) const; //!< Returns the Rewardable object at the given index.
+
+    };
+
+}
+
+#endif /* _AddReward_H__ */
Index: /code/branches/doc/src/modules/questsystem/effects/CMakeLists.txt
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/CMakeLists.txt	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/CMakeLists.txt	(revision 7311)
@@ -0,0 +1,9 @@
+ADD_SOURCE_FILES(QUESTSYSTEM_SRC_FILES
+  AddQuest.cc
+  AddQuestHint.cc
+  AddReward.cc
+  ChangeQuestStatus.cc
+  CompleteQuest.cc
+  FailQuest.cc
+)
+
Index: /code/branches/doc/src/modules/questsystem/effects/ChangeQuestStatus.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/ChangeQuestStatus.cc	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/ChangeQuestStatus.cc	(revision 7311)
@@ -0,0 +1,90 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Implementation of the ChangeQuestStatus class.
+*/
+
+#include "ChangeQuestStatus.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "questsystem/QuestItem.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        Constructor. Registers the object.
+    */
+    ChangeQuestStatus::ChangeQuestStatus(BaseObject* creator) : QuestEffect(creator)
+    {
+        RegisterObject(ChangeQuestStatus);
+    }
+
+    /**
+    @brief
+        Destructor.
+    */
+    ChangeQuestStatus::~ChangeQuestStatus()
+    {
+    }
+
+    /**
+    @brief
+        Method for creating a ChangeQuestStatus object through XML.
+    */
+    void ChangeQuestStatus::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(ChangeQuestStatus, XMLPort, xmlelement, mode);
+
+        XMLPortParam(ChangeQuestStatus, "questId", setQuestId, getQuestId, xmlelement, mode);
+    }
+
+    /**
+    @brief
+        Sets the id of the Quest the Questffect changes the status of.
+    @param id
+        The id of the Quest.
+    @return
+        Returns true if successful.
+    */
+    bool ChangeQuestStatus::setQuestId(const std::string & id)
+    {
+        if(id.compare(BLANKSTRING) == 0)
+        {
+            COUT(2) << "Invalid id. QuestItem id {" << id << "} could not be set." << std::endl;
+            return false;
+        }
+
+        this->questId_ = id;
+        return true;
+    }
+
+}
Index: /code/branches/doc/src/modules/questsystem/effects/ChangeQuestStatus.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 7311)
@@ -0,0 +1,77 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Definition of the ChangeQuestStatus class.
+*/
+
+#ifndef _ChangeQuestStatus_H__
+#define _ChangeQuestStatus_H__
+
+#include "questsystem/QuestsystemPrereqs.h"
+
+#include <string>
+#include "questsystem/QuestEffect.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        A QuestEffect which changes the status of a specified Quest for the player invoking the QuestEffect.
+    @author
+        Damian 'Mozork' Frick
+    */
+    class _QuestsystemExport ChangeQuestStatus : public QuestEffect
+    {
+        public:
+            ChangeQuestStatus(BaseObject* creator);
+            virtual ~ChangeQuestStatus();
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a ChangeQuestStatus object through XML.
+
+            virtual bool invoke(PlayerInfo* player) = 0; //!< Invokes the QuestEffect.
+
+        protected:
+            /**
+            @brief Returns the id of the Quest.
+            @return Returns the id of the Quest.
+            */
+            inline const std::string & getQuestId(void) const
+                { return this->questId_; }
+
+        private:
+            std::string questId_; //!< The id of the Quest the status should be changed of.
+
+            bool setQuestId(const std::string & id); //!< Sets the id of the Quest.
+
+    };
+
+}
+
+#endif /* _ChangeQuestStatus_H__ */
Index: /code/branches/doc/src/modules/questsystem/effects/CompleteQuest.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/CompleteQuest.cc	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/CompleteQuest.cc	(revision 7311)
@@ -0,0 +1,112 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Implementation of the CompleteQuest class.
+*/
+
+#include "CompleteQuest.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "questsystem/QuestManager.h"
+#include "questsystem/Quest.h"
+
+namespace orxonox
+{
+    CreateFactory(CompleteQuest);
+
+    /**
+    @brief
+        Constructor. Registers the object.
+    */
+    CompleteQuest::CompleteQuest(BaseObject* creator) : ChangeQuestStatus(creator)
+    {
+        RegisterObject(CompleteQuest);
+    }
+
+    /**
+    @brief
+        Destructor.
+    */
+    CompleteQuest::~CompleteQuest()
+    {
+    }
+
+    /**
+    @brief
+        Method for creating a CompleteQuest object through XML.
+    */
+    void CompleteQuest::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(CompleteQuest, XMLPort, xmlelement, mode);
+
+        COUT(4) << "New CompleteQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
+    }
+
+    /**
+    @brief
+        Invokes the QuestEffect.
+    @param player
+        The player the QuestEffect is invoked on.
+    @return
+        Returns true if the QuestEffect was invoked successfully.
+    */
+    bool CompleteQuest::invoke(PlayerInfo* player)
+    {
+        if(player == NULL) //!< You know, what we think of NULL-pointers...
+        {
+            COUT(2) << "Input player is NULL." << std::endl;
+            return false;
+        }
+
+        COUT(5) << "CompleteQuest on player: " << player << " ." << std::endl;
+
+        Quest* quest;
+
+        try
+        {
+            quest = QuestManager::getInstance().findQuest(this->getQuestId());
+            if(quest == NULL || !quest->complete(player))
+            {
+               return false;
+            }
+        }
+        catch(const Exception& e)
+        {
+            COUT(2) << e.getFullDescription() << std::endl;
+            return false;
+        }
+
+        COUT(4) << "Quest {" << quest->getId() << "} successfully completed by player: " << player << " ." << std::endl;
+        return true;
+    }
+
+
+}
Index: /code/branches/doc/src/modules/questsystem/effects/CompleteQuest.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/CompleteQuest.h	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/CompleteQuest.h	(revision 7311)
@@ -0,0 +1,68 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Definition of the CompleteQuest class.
+*/
+
+#ifndef _CompleteQuest_H__
+#define _CompleteQuest_H__
+
+#include "questsystem/QuestsystemPrereqs.h"
+#include "ChangeQuestStatus.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        Completes a 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.
+        @endcode
+    @author
+        Damian 'Mozork' Frick
+    */
+    class _QuestsystemExport CompleteQuest : public ChangeQuestStatus
+    {
+        public:
+            CompleteQuest(BaseObject* creator);
+            virtual ~CompleteQuest();
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a CompleteQuest object through XML.
+
+            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+
+    };
+
+}
+
+#endif /* _CompleteQuest_H__ */
Index: /code/branches/doc/src/modules/questsystem/effects/FailQuest.cc
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/FailQuest.cc	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/FailQuest.cc	(revision 7311)
@@ -0,0 +1,111 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Implementation of the FailQuest class.
+*/
+
+#include "FailQuest.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "questsystem/QuestManager.h"
+#include "questsystem/Quest.h"
+
+namespace orxonox
+{
+    CreateFactory(FailQuest);
+
+    /**
+    @brief
+        Constructor. Registers the object.
+    */
+    FailQuest::FailQuest(BaseObject* creator) : ChangeQuestStatus(creator)
+    {
+        RegisterObject(FailQuest);
+    }
+
+    /**
+    @brief
+        Destructor.
+    */
+    FailQuest::~FailQuest()
+    {
+    }
+
+    /**
+    @brief
+        Method for creating a FailQuest object through XML.
+    */
+    void FailQuest::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(FailQuest, XMLPort, xmlelement, mode);
+
+        COUT(4) << "New FailQUest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
+    }
+
+    /**
+    @brief
+        Invokes the QuestEffect.
+    @param player
+        The player the QuestEffect is invoked on.
+    @return
+        Returns true if the QuestEffect was invoked successfully.
+    */
+    bool FailQuest::invoke(PlayerInfo* player)
+    {
+        if(player == NULL) //!< We don't know what to do with no player.
+        {
+            COUT(2) << "Input player is NULL." << std::endl;
+            return false;
+        }
+
+        COUT(4) << "FailQuest on player: " << player << " ." << std::endl;
+
+        Quest* quest;
+        try
+        {
+            quest = QuestManager::getInstance().findQuest(this->getQuestId());
+            if(quest == NULL || !quest->fail(player))
+            {
+               return false;
+            }
+        }
+        catch(const Exception& e)
+        {
+            COUT(2) << e.getFullDescription() << std::endl;
+            return false;
+        }
+
+        COUT(4) << "Quest {" << quest->getId() << "} failed by player: " << player << " ." << std::endl;
+        return true;
+    }
+
+
+}
Index: /code/branches/doc/src/modules/questsystem/effects/FailQuest.h
===================================================================
--- /code/branches/doc/src/modules/questsystem/effects/FailQuest.h	(revision 7311)
+++ /code/branches/doc/src/modules/questsystem/effects/FailQuest.h	(revision 7311)
@@ -0,0 +1,68 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Definition of the FailQuest class.
+*/
+
+#ifndef _FailQuest_H__
+#define _FailQuest_H__
+
+#include "questsystem/QuestsystemPrereqs.h"
+#include "ChangeQuestStatus.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        Fails a 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.
+        @endcode
+    @author
+        Damian 'Mozork' Frick
+    */
+    class _QuestsystemExport FailQuest : public ChangeQuestStatus
+    {
+        public:
+            FailQuest(BaseObject* creator);
+            virtual ~FailQuest();
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a FailQuest object through XML.
+
+            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+
+    };
+
+}
+
+#endif /* _FailQuest_H__ */
