X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/cb255541b2148bd5f41afbaab0268f15b9fdbb53..99c0151e0d0ad682e7ee58de89f2e11b18a7864c:/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..73f3f9b 100644 --- a/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp +++ b/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp @@ -4,16 +4,35 @@ using GameServ::GameLayer::GameObjects::PlayerGO; using GameServ::GameLayer::GameObjects::ArmorGO; #include using GameServ::GameLayer::GameObjects::WeaponGO; - -#include -using boost::shared_ptr; +#include +using GameServ::GameLayer::GameObjects::PotionGO; #include using GameServ::Exceptions::GameServException; +#include +using GameServ::Types::ObjectTypes; + +#include +using boost::shared_ptr; +using boost::shared_static_cast; + +#include +#include +using boost::str; +using boost::format; + #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("") { @@ -186,16 +205,6 @@ void PlayerGO::Armor(shared_ptr spArmor) mArmor = spArmor; } -void PlayerGO::Use(shared_ptr spItem) -{ - throw GameServException("Undefined function.", __FILE__, __LINE__); -} - -void PlayerGO::Undo(shared_ptr spItem) -{ - throw GameServException("Undefined function.", __FILE__, __LINE__); -} - void PlayerGO::Password(const string &value) { mPassword = value; @@ -216,6 +225,33 @@ 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) +{ + mItems.push_back(spItem); +} + +void PlayerGO::RemoveItemFromInventory(shared_ptr spItem) +{ + vector< shared_ptr >::iterator iter; + iter = find(mItems.begin(), mItems.end(), spItem); + if (iter != mItems.end()) + { + mItems.erase(iter); + } +} + + bool PlayerGO::operator !=(const PlayerGO &right) const { return !(*this == right); @@ -227,9 +263,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; } @@ -238,3 +274,7 @@ PlayerGO *PlayerGO::Clone(void) const return new PlayerGO(*this); } +ObjectTypes::ObjectType PlayerGO::ObjectType(void) const +{ + return ObjectTypes::Player; +}