]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp
Added all old gameserv data files with some modifications to work better with 2.0...
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / src / GameLayer / GameObjects / PlayerGO.cpp
index efe34fc128a3b0fc87c628f177c5712d8d4ceebf..846f33294c002d15952f7ee59b10bc5bdc7de879 100644 (file)
@@ -14,6 +14,14 @@ using GameServ::Exceptions::GameServException;
 #include <boost/date_time/posix_time/posix_time.hpp>\r
 using boost::posix_time::ptime;\r
 \r
+#include <vector>\r
+using std::vector;\r
+#include <string>\r
+using std::string;\r
+#include <algorithm>\r
+using std::find;\r
+using std::sort;\r
+\r
 PlayerGO::PlayerGO() : GameObject(), mName(""), mLevel(1), mExperience(0), mGold(0), mHealth(0), mMaxHealth(0), mStrength(1),\r
 mDefense(1), mForestFights(0), mPlayerFights(0), mPassword("")\r
 {\r
@@ -216,6 +224,46 @@ ptime PlayerGO::LastLogin(void) const
        return mLastLogin;\r
 }\r
 \r
+\r
+void PlayerGO::Inventory(const vector<string> &value)\r
+{\r
+       mfkItemIds.clear();\r
+       mfkItemIds.insert(mfkItemIds.begin(), value.begin(), value.end());\r
+}\r
+\r
+vector<string> PlayerGO::Inventory(void) const\r
+{\r
+       return mfkItemIds;\r
+}\r
+\r
+\r
+void PlayerGO::AddItemToInventory(const string &fkItemId, const int &Number)\r
+{\r
+       for (int x = 0; x < Number; ++x)\r
+       {\r
+               mfkItemIds.push_back(fkItemId);\r
+       }\r
+       sort(mfkItemIds.begin(), mfkItemIds.end());\r
+}\r
+\r
+void PlayerGO::RemoveItemFromInventory(const string &fkItemId, const int &Number)\r
+{\r
+       vector<string>::iterator iter;\r
+       for (int x = 0; x < Number; ++x)\r
+       {\r
+               iter = find(mfkItemIds.begin(), mfkItemIds.end(), fkItemId);\r
+               if (iter != mfkItemIds.end())\r
+               {\r
+                       mfkItemIds.erase(iter);\r
+               }\r
+               else\r
+               {\r
+                       break;\r
+               }\r
+       }\r
+}\r
+\r
+\r
 bool PlayerGO::operator !=(const PlayerGO &right) const\r
 {\r
        return !(*this == right);\r
@@ -227,9 +275,9 @@ bool PlayerGO::operator ==(const PlayerGO &right) const
                mName == right.mName && right.mArmor == mArmor &&\r
                right.mDefense == mDefense && right.mExperience == mExperience &&\r
                right.mForestFights == mForestFights && right.mGold == mGold &&\r
-               right.mHealth == mHealth && right.mInventory == mInventory &&\r
-               right.mLevel == mLevel && right.mMaxHealth == mMaxHealth &&\r
-               right.mPassword == mPassword && right.mPlayerFights == mPlayerFights &&\r
+               right.mHealth == mHealth && right.mMaxHealth == mMaxHealth &&\r
+               right.mLevel == mLevel && right.mPassword == mPassword && \r
+               right.mPlayerFights == mPlayerFights && \r
                right.mStrength == mStrength && right.mWeapon == mWeapon;\r
 }\r
 \r