]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp
Finally figured out how to do the Item cloning properly... no more ItemCloner class...
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / src / GameLayer / GameObjects / PlayerGO.cpp
index 28206fa8de16e5eb2a3377c5b0ac91e31b040027..73f3f9b1691bf3f850639ee2af4d6a5d835d7234 100644 (file)
@@ -4,12 +4,23 @@ using GameServ::GameLayer::GameObjects::PlayerGO;
 using GameServ::GameLayer::GameObjects::ArmorGO;\r
 #include <GameServ/GameLayer/GameObjects/WeaponGO.h>\r
 using GameServ::GameLayer::GameObjects::WeaponGO;\r
+#include <GameServ/GameLayer/GameObjects/PotionGO.h>\r
+using GameServ::GameLayer::GameObjects::PotionGO;\r
+\r
+#include <GameServ/GameServException.h>\r
+using GameServ::Exceptions::GameServException;\r
+\r
+#include <GameServ/Types.h>\r
+using GameServ::Types::ObjectTypes;\r
 \r
 #include <boost/smart_ptr/shared_ptr.hpp>\r
 using boost::shared_ptr;\r
+using boost::shared_static_cast;\r
 \r
-#include <GameServ/GameServException.h>\r
-using GameServ::Exceptions::GameServException;\r
+#include <boost/algorithm/string.hpp>\r
+#include <boost/format.hpp>\r
+using boost::str;\r
+using boost::format;\r
 \r
 #include <boost/date_time/posix_time/posix_time.hpp>\r
 using boost::posix_time::ptime;\r
@@ -194,16 +205,6 @@ void PlayerGO::Armor(shared_ptr<ArmorGO> spArmor)
        mArmor = spArmor;\r
 }\r
 \r
-void PlayerGO::Use(shared_ptr<ItemGO> spItem)\r
-{\r
-       throw GameServException("Undefined function.", __FILE__, __LINE__);\r
-}\r
-\r
-void PlayerGO::Undo(shared_ptr<ItemGO> spItem)\r
-{\r
-       throw GameServException("Undefined function.", __FILE__, __LINE__);\r
-}\r
-\r
 void PlayerGO::Password(const string &value)\r
 {\r
        mPassword = value;\r
@@ -235,29 +236,18 @@ vector< shared_ptr<ItemGO> > PlayerGO::Inventory(void) const
        return mItems;\r
 }\r
 \r
-void PlayerGO::AddItemToInventory(shared_ptr<ItemGO> spItem, const int &Number)\r
+void PlayerGO::AddItemToInventory(shared_ptr<ItemGO> spItem)\r
 {\r
-       for (int x = 0; x < Number; ++x)\r
-       {\r
-               shared_ptr<ItemGO> item = shared_ptr<ItemGO>(new ItemGO(*spItem->Clone()));\r
-               mItems.push_back(item);\r
-       }\r
+       mItems.push_back(spItem);\r
 }\r
 \r
-void PlayerGO::RemoveItemFromInventory(shared_ptr<ItemGO> spItem, const int &Number)\r
+void PlayerGO::RemoveItemFromInventory(shared_ptr<ItemGO> spItem)\r
 {\r
        vector< shared_ptr<ItemGO> >::iterator iter;\r
-       for (int x = 0; x < Number; ++x)\r
+       iter = find(mItems.begin(), mItems.end(), spItem);\r
+       if (iter != mItems.end())\r
        {\r
-               iter = find(mItems.begin(), mItems.end(), spItem);\r
-               if (iter != mItems.end())\r
-               {\r
-                       mItems.erase(iter);\r
-               }\r
-               else\r
-               {\r
-                       break;\r
-               }\r
+               mItems.erase(iter);\r
        }\r
 }\r
 \r
@@ -284,3 +274,7 @@ PlayerGO *PlayerGO::Clone(void) const
        return new PlayerGO(*this);\r
 }\r
 \r
+ObjectTypes::ObjectType PlayerGO::ObjectType(void) const\r
+{\r
+       return ObjectTypes::Player;\r
+}\r