X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/cb255541b2148bd5f41afbaab0268f15b9fdbb53..e823e42acdae7dee401096b9a46b1982179fbb33:/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp diff --git a/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp b/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp index 7d9520f..28206fa 100644 --- a/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp +++ b/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp @@ -5,7 +5,7 @@ using GameServ::GameLayer::GameObjects::ArmorGO; #include using GameServ::GameLayer::GameObjects::WeaponGO; -#include +#include using boost::shared_ptr; #include @@ -14,6 +14,14 @@ using GameServ::Exceptions::GameServException; #include using boost::posix_time::ptime; +#include +using std::vector; +#include +using std::string; +#include +using std::find; +using std::sort; + PlayerGO::PlayerGO() : GameObject(), mName(""), mLevel(1), mExperience(0), mGold(0), mHealth(0), mMaxHealth(0), mStrength(1), mDefense(1), mForestFights(0), mPlayerFights(0), mPassword("") { @@ -216,6 +224,44 @@ ptime PlayerGO::LastLogin(void) const return mLastLogin; } +void PlayerGO::Inventory(const vector< shared_ptr > &items) +{ + mItems.clear(); + mItems.insert(mItems.begin(), items.begin(), items.end()); +} + +vector< shared_ptr > PlayerGO::Inventory(void) const +{ + return mItems; +} + +void PlayerGO::AddItemToInventory(shared_ptr spItem, const int &Number) +{ + for (int x = 0; x < Number; ++x) + { + shared_ptr item = shared_ptr(new ItemGO(*spItem->Clone())); + mItems.push_back(item); + } +} + +void PlayerGO::RemoveItemFromInventory(shared_ptr spItem, const int &Number) +{ + vector< shared_ptr >::iterator iter; + for (int x = 0; x < Number; ++x) + { + iter = find(mItems.begin(), mItems.end(), spItem); + if (iter != mItems.end()) + { + mItems.erase(iter); + } + else + { + break; + } + } +} + + bool PlayerGO::operator !=(const PlayerGO &right) const { return !(*this == right); @@ -227,9 +273,9 @@ bool PlayerGO::operator ==(const PlayerGO &right) const mName == right.mName && right.mArmor == mArmor && right.mDefense == mDefense && right.mExperience == mExperience && right.mForestFights == mForestFights && right.mGold == mGold && - right.mHealth == mHealth && right.mInventory == mInventory && - right.mLevel == mLevel && right.mMaxHealth == mMaxHealth && - right.mPassword == mPassword && right.mPlayerFights == mPlayerFights && + right.mHealth == mHealth && right.mMaxHealth == mMaxHealth && + right.mLevel == mLevel && right.mPassword == mPassword && + right.mPlayerFights == mPlayerFights && right.mStrength == mStrength && right.mWeapon == mWeapon; }