]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/ItemGO.cpp
Revisited GameServ 2.0 and got it compiling in VS 2010!
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / src / GameLayer / GameObjects / ItemGO.cpp
index 33472b034c9352d8fd2d6cd147a1a109bd2de459..7777c2c4d307f251cc29d2a46f7e303082be87c3 100644 (file)
@@ -6,7 +6,7 @@ using GameServ::GameLayer::GameObjects::PlayerGO;
 #include <GameServ/Types.h>\r
 using GameServ::Types::ItemTypes;\r
 using GameServ::Types::Modifiers;\r
-using GameServ::Types::Range;\r
+using GameServ::Types::IntRange;\r
 using GameServ::Types::ObjectTypes;\r
 \r
 #include <GameServ/GameServException.h>\r
@@ -18,7 +18,7 @@ using std::string;
 using std::map;\r
 \r
 #include <boost/smart_ptr/shared_ptr.hpp>\r
-using boost::shared_ptr;\r
+\r
 using boost::shared_static_cast;\r
 \r
 #include <boost/algorithm/string.hpp>\r
@@ -26,14 +26,28 @@ using boost::shared_static_cast;
 using boost::str;\r
 using boost::format;\r
 \r
-ItemGO::ItemGO() : GameObject(), mName(""), mPrice(0), mUses(1)\r
+ItemGO::ItemGO() : GameObject()\r
 {\r
+       mName = "";\r
+       mPrice = 0;\r
+       mUses = 0;\r
+       mNumber = 0;\r
 }\r
 \r
 ItemGO::~ItemGO()\r
 {\r
 }\r
 \r
+unsigned long long ItemGO::Number(void) const\r
+{\r
+       return mNumber;\r
+}\r
+\r
+void ItemGO::Number(const unsigned long long &value)\r
+{\r
+       mNumber = value;\r
+}\r
+\r
 string ItemGO::Name(void) const\r
 {\r
        return mName;\r
@@ -64,25 +78,25 @@ void ItemGO::Uses(const int &value)
        mUses = value;\r
 }\r
 \r
-void ItemGO::Use(shared_ptr<GameObject> spObject)\r
+void ItemGO::Use(boost::shared_ptr<GameObject> spObject)\r
 {\r
-       map<Modifiers::Modifier, Range>::const_iterator iter;\r
+       map<Modifiers::Modifier, IntRange>::const_iterator iter;\r
        for (iter = mModifiers.begin(); iter != mModifiers.end(); iter++)\r
        {\r
                ApplyModifier(spObject, iter->first, iter->second);\r
        }\r
 }\r
 \r
-void ItemGO::Undo(shared_ptr<GameObject> spObject)\r
+void ItemGO::Undo(boost::shared_ptr<GameObject> spObject)\r
 {\r
-       map<Modifiers::Modifier, Range>::const_iterator iter;\r
+       map<Modifiers::Modifier, IntRange>::const_iterator iter;\r
        for (iter = mModifiers.begin(); iter != mModifiers.end(); iter++)\r
        {\r
                UndoModifier(spObject, iter->first, iter->second);\r
        }\r
 }\r
 \r
-void ItemGO::ApplyModifier(shared_ptr<GameObject> spObject, const Modifiers::Modifier &modifier, Range r)\r
+void ItemGO::ApplyModifier(boost::shared_ptr<GameObject> spObject, const Modifiers::Modifier &modifier, IntRange r)\r
 {\r
        if (spObject->ObjectType() != ObjectTypes::Player)\r
        {\r
@@ -90,7 +104,7 @@ void ItemGO::ApplyModifier(shared_ptr<GameObject> spObject, const Modifiers::Mod
                        Id() % Name() % ObjectTypes::GetName(spObject->ObjectType())), __FILE__, __LINE__);\r
        }\r
 \r
-       shared_ptr<PlayerGO> spPlayer = shared_static_cast<PlayerGO>(spObject);\r
+       boost::shared_ptr<PlayerGO> spPlayer = shared_static_cast<PlayerGO>(spObject);\r
 \r
        switch (modifier)\r
        {\r
@@ -123,7 +137,7 @@ void ItemGO::ApplyModifier(shared_ptr<GameObject> spObject, const Modifiers::Mod
        }\r
 }\r
 \r
-void ItemGO::UndoModifier(shared_ptr<GameObject> spObject, const Modifiers::Modifier &modifier, Range r)\r
+void ItemGO::UndoModifier(boost::shared_ptr<GameObject> spObject, const Modifiers::Modifier &modifier, IntRange r)\r
 {\r
        if (spObject->ObjectType() != ObjectTypes::Player)\r
        {\r
@@ -131,7 +145,7 @@ void ItemGO::UndoModifier(shared_ptr<GameObject> spObject, const Modifiers::Modi
                        Id() % Name() % ObjectTypes::GetName(spObject->ObjectType())), __FILE__, __LINE__);\r
        }\r
 \r
-       shared_ptr<PlayerGO> spPlayer = shared_static_cast<PlayerGO>(spObject);\r
+       boost::shared_ptr<PlayerGO> spPlayer = shared_static_cast<PlayerGO>(spObject);\r
 \r
        switch (modifier)\r
        {\r
@@ -164,12 +178,12 @@ void ItemGO::UndoModifier(shared_ptr<GameObject> spObject, const Modifiers::Modi
        }\r
 }\r
 \r
-map<Modifiers::Modifier, Range> ItemGO::Modifiers(void) const\r
+map<Modifiers::Modifier, IntRange> ItemGO::Modifiers(void) const\r
 {\r
        return mModifiers;\r
 }\r
 \r
-void ItemGO::Modifiers(const map<Modifiers::Modifier, Range> &modifiers)\r
+void ItemGO::Modifiers(const map<Modifiers::Modifier, IntRange> &modifiers)\r
 {\r
        mModifiers.clear();\r
        mModifiers.insert(modifiers.begin(), modifiers.end());\r