--- /dev/null
+#ifndef __GS__ARMOR_H__\r
+#define __GS__ARMOR_H__\r
+\r
+#include <GameServ/GameLayer/GameObjects/ItemGO.h>\r
+using GameServ::GameLayer::GameObjects::ItemGO;\r
+\r
+namespace GameServ { namespace GameLayer { namespace GameObjects\r
+\r
+class ArmorBO : public ItemGO\r
+{\r
+};\r
+\r
+}}}\r
+#endif\r
--- /dev/null
+#ifndef __GS__ARMOR_H__\r
+#define __GS__ARMOR_H__\r
+\r
+#include <GameServ/GameLayer/GameObjects/ItemGO.h>\r
+using GameServ::GameLayer::GameObjects::ItemGO;\r
+\r
+namespace GameServ { namespace GameLayer { namespace GameObjects\r
+\r
+class ArmorBO : public ItemGO\r
+{\r
+};\r
+\r
+}}}\r
+#endif\r
--- /dev/null
+#ifndef __GS__GAMEOBJECT_H__\r
+#define __GS__GAMEOBJECT_H__\r
+#include <functional>\r
+#include <string>\r
+using std::string;\r
+using std::unary_function;\r
+\r
+#include <boost/shared_ptr.hpp>\r
+using boost::shared_ptr;\r
+\r
+namespace GameServ { namespace GameLayer { namespace GameObjects\r
+{\r
+ class GameObject\r
+ {\r
+ public:\r
+ GameObject(void);\r
+ GameObject(const string &Id);\r
+ virtual ~GameObject();\r
+\r
+ //! Returns the Id of this Game Object\r
+ string Id(void) const;\r
+ //! Set the Id for this Game Object\r
+ void Id(const string &value);\r
+\r
+ //! Clone the entire game object\r
+ /*! \r
+ Overridden to allow deep cloning to prevent slicing.\r
+ \return Pointer to new Game object\r
+ */\r
+ virtual GameObject *Clone(void) const = 0;\r
+\r
+ bool operator==(const GameObject &right) const;\r
+ bool operator!=(const GameObject &right) const;\r
+\r
+ private:\r
+ string mId;\r
+ friend class GameObjectIds_Eq;\r
+ };\r
+\r
+ //! Functor to compare Id's of Game Objects\r
+ class GameObjectIds_Eq : public unary_function<shared_ptr<GameObject>, bool>\r
+ {\r
+ public:\r
+ explicit GameObjectIds_Eq(const string &Id);\r
+ \r
+ //! Comparison against shared_ptr types\r
+ bool operator()(const shared_ptr<GameObject> &BO) const;\r
+ \r
+ private:\r
+ string mId;\r
+ };\r
+}}}\r
+#endif\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
--- /dev/null
+#ifndef __GS__ITEM_H__\r
+#define __GS__ITEM_H__\r
+#include <GameServ/GameLayer/GameObjects/GameObject.h>\r
+using GameServ::GameLayer::GameObjects::GameObject;\r
+\r
+#include <string>\r
+using std::string;\r
+#include <vector>\r
+using std::vector;\r
+\r
+namespace GameServ { namespace GameLayer { namespace GameObjects\r
+{\r
+ enum ItemType { NOTYPE, WEAPON, ARMOR, POTION };\r
+\r
+ class ItemGO : public GameObject\r
+ {\r
+ public:\r
+ ItemGO();\r
+ ItemGO(const string &name, const unsigned long int &price, const int &uses, const vector<string> &modifiers);\r
+ virtual ~ItemGO();\r
+\r
+ //! Property get - Name\r
+ string Name(void) const;\r
+ //! Property set - Name\r
+ void Name(const string &value);\r
+\r
+ //! Property get - Price\r
+ unsigned long int Price(void) const;\r
+ //! Property set - Price\r
+ void Price(const unsigned long int &value);\r
+\r
+ //! Property get - Uses\r
+ int Uses(void) const;\r
+ //! Property set - Uses\r
+ void Uses(const int &value);\r
+\r
+ //! Property get - Item Type\r
+ ItemType Type(void) const;\r
+\r
+ //! Property set - Item Type\r
+ void Type(const ItemType &value);\r
+\r
+ //! Property get - Modifiers\r
+ vector<string> Modifiers(void) const;\r
+ //! Property set - Modifiers\r
+ void Modifiers(const vector<string> &value);\r
+\r
+ virtual ItemGO *Clone(void) const;\r
+\r
+ private:\r
+ string mName;\r
+ unsigned long int mPrice;\r
+ int mUses;\r
+ ItemType mType;\r
+ vector<string> mModifiers;\r
+ };\r
+}}}\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef __GS__PLAYER_H__\r
+#define __GS__PLAYER_H__\r
+#include <GameServ/GameLayer/GameObjects/GameObject.h>\r
+using GameServ::GameLayer::GameObjects::GameObject;\r
+\r
+#include <boost/shared_ptr.hpp>\r
+using boost::shared_ptr;\r
+\r
+#include <string>\r
+using std::string;\r
+\r
+namespace GameServ { namespace GameLayer { namespace GameObjects\r
+{\r
+ class PlayerGO : public GameObject\r
+ {\r
+ public:\r
+ Player();\r
+ ~Player();\r
+\r
+ //! Property get - Name\r
+ string Name(void) const;\r
+ //! Property set - Name\r
+ void Name(const string &value);\r
+\r
+ //! Property get - Level\r
+ int Level(void) const;\r
+ //! Property set - Level\r
+ void Level(const int &value);\r
+\r
+ //! Property get - Experience\r
+ unsigned long int Experience(void) const;\r
+ //! Property set - Experience\r
+ void Experience(const unsigned long int &value);\r
+\r
+ //! Property get - Gold\r
+ unsigned long int Gold(void) const;\r
+ //! Property set - Gold\r
+ void Gold(const unsigned long int &gold);\r
+\r
+ //! Property get - Health\r
+ int Health(void) const;\r
+ //! Property set - Health\r
+ void Health(const int &value);\r
+\r
+ //! Property get - Max Health\r
+ int MaxHealth(void) const;\r
+ //! Property set - Max Health\r
+ void MaxHealth(const int &value);\r
+\r
+ //! Property get - Strength\r
+ int Strength(void) const;\r
+ //! Property set - Strength\r
+ void Strength(const int &value);\r
+\r
+ //! Property get - Defense\r
+ int Defense(void) const;\r
+ //! Property set - Defense\r
+ void Defense(const int &value);\r
+\r
+ //! Property get - Forest Fights\r
+ int ForestFights(void) const;\r
+ //! Propety set - Forest Fights\r
+ void ForestFights(const int &value);\r
+\r
+ //! Property get - Player Fights\r
+ int PlayerFights(void) const;\r
+ //! Property set - Player Fights\r
+ void PlayerFights(const int &value);\r
+\r
+ //! Property get - Weapon\r
+ shared_ptr<WeaponGO> Weapon(void) const;\r
+ //! Property set - Weapon\r
+ void Weapon(const shared_ptr<WeaponGO> spWeapon);\r
+\r
+\r
+ private:\r
+ string mName;\r
+ int mLevel;\r
+ unsigned long int mExperience;\r
+ unsigned long int mGold;\r
+ int mHealth;\r
+ int mMaxHealth;\r
+ int mStrength;\r
+ int mDefense;\r
+ int mForestFights;\r
+ int mPlayerFights;\r
+ string mPassword;\r
+ shared_ptr<WeaponGO> mWeapon;\r
+ shared_ptr<ArmorGO> mArmor;\r
+\r
+ };\r
+}}} // GameServ::GameLayer::GameObjects\r
+#endif
\ No newline at end of file
Name="Debug|Win32"\r
OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
IntermediateDirectory="$(ConfigurationName)"\r
- ConfigurationType="1"\r
+ ConfigurationType="4"\r
CharacterSet="2"\r
>\r
<Tool\r
<Tool\r
Name="VCCLCompilerTool"\r
Optimization="0"\r
+ AdditionalIncludeDirectories=""$(ProjectDir)\include""\r
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS ;_SCL_SECURE_NO_WARNINGS"\r
MinimalRebuild="true"\r
BasicRuntimeChecks="3"\r
RuntimeLibrary="3"\r
Name="VCPreLinkEventTool"\r
/>\r
<Tool\r
- Name="VCLinkerTool"\r
- GenerateDebugInformation="true"\r
- TargetMachine="1"\r
+ Name="VCLibrarianTool"\r
/>\r
<Tool\r
Name="VCALinkTool"\r
/>\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
<Tool\r
Name="VCXDCMakeTool"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
/>\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCWebDeploymentTool"\r
- />\r
<Tool\r
Name="VCPostBuildEventTool"\r
/>\r
</References>\r
<Files>\r
<Filter\r
- Name="Source Files"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- </Filter>\r
- <Filter\r
- Name="Header Files"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+ Name="DataLayer"\r
>\r
</Filter>\r
<Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+ Name="GameLayer"\r
>\r
+ <Filter\r
+ Name="GameObjects"\r
+ >\r
+ <File\r
+ RelativePath=".\include\GameServ\GameLayer\GameObjects\Armor.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\src\GameLayer\GameObjects\ArmorGO.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\src\GameLayer\GameObjects\GameObject.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\include\GameServ\GameLayer\GameObjects\GameObject.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\src\GameLayer\GameObjects\ItemGO.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\include\GameServ\GameLayer\GameObjects\ItemGO.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\src\GameLayer\GameObjects\PlayerGO.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\include\GameServ\GameLayer\GameObjects\PlayerGO.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\src\GameLayer\GameObjects\WeaponGO.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\include\GameServ\GameLayer\GameObjects\WeaponGO.h"\r
+ >\r
+ </File>\r
+ </Filter>\r
</Filter>\r
</Files>\r
<Globals>\r
--- /dev/null
+#include <GameServ/GameLayer/GameObjects/GameObject.h>\r
+using GameServ::GameLayer::GameObjects::GameObject;\r
+using GameServ::GameLayer::GameObjects::GameObjectIds_Eq;\r
+\r
+#include <string>\r
+using std::string;\r
+\r
+#include <boost/shared_ptr.hpp>\r
+using boost::shared_ptr;\r
+\r
+GameObject::GameObject(void) : mId()\r
+{\r
+}\r
+\r
+GameObject::GameObject(const string &Id) : mId(Id)\r
+{\r
+}\r
+\r
+GameObject::~GameObject(void)\r
+{\r
+}\r
+\r
+bool GameObject::operator==(const GameObject &right) const\r
+{\r
+ return mId == right.mId;\r
+}\r
+\r
+bool GameObject::operator!=(const GameObject &right) const\r
+{\r
+ return !(right == *this);\r
+}\r
+\r
+string GameObject::Id(void) const\r
+{\r
+ return mId;\r
+}\r
+\r
+void GameObject::Id(const string &value) \r
+{\r
+ mId = value;\r
+}\r
+\r
+\r
+GameObjectIds_Eq::GameObjectIds_Eq(const string &Id) : mId(Id)\r
+{\r
+}\r
+\r
+bool GameObjectIds_Eq::operator ()(const shared_ptr<GameObject> &BO) const\r
+{\r
+ return mId == BO->mId;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
--- /dev/null
+#include <GameServ/GameLayer/GameObjects/ItemGO.h>\r
+using GameServ::GameLayer::GameObjects::ItemGO;\r
+\r
+#include <string>\r
+using std::string;\r
+#include <vector>\r
+using std::vector;\r
+\r
+ItemGO::ItemGO() : GameObject(), mName(""), mPrice(0), mUses(1), mType(NOTYPE)\r
+{\r
+ mModifiers.resize(8);\r
+}\r
+\r
+ItemGO::ItemGO(const string &name, const unsigned long &price, const int &uses, const vector<string> &modifiers) : GameObject(),\r
+mName(name), mPrice(price), mUses(uses), mType(NOTYPE)\r
+{\r
+ mModifiers.clear();\r
+ mModifiers.insert(mModifiers.begin(), modifiers.begin(), modifiers.end());\r
+}\r
+\r
+ItemGO::~ItemGO()\r
+{\r
+}\r
+\r
+string ItemGO::Name(void) const\r
+{\r
+ return mName;\r
+}\r
+\r
+void ItemGO::Name(const string &value)\r
+{\r
+ mName = value;\r
+}\r
+\r
+unsigned long int ItemGO::Price(void) const\r
+{\r
+ return mPrice;\r
+}\r
+\r
+void ItemGO::Price(const unsigned long int &price)\r
+{\r
+ mPrice = price;\r
+}\r
+\r
+int ItemGO::Uses(void) const\r
+{\r
+ return mUses;\r
+}\r
+\r
+void ItemGO::Uses(const int &value)\r
+{\r
+ mUses = value;\r
+}\r
+\r
+GameServ::GameLayer::GameObjects::ItemType ItemGO::Type(void) const\r
+{\r
+ return mType;\r
+}\r
+\r
+void ItemGO::Type(const GameServ::GameLayer::GameObjects::ItemType &value)\r
+{\r
+ mType = value;\r
+}\r
+\r
+vector<string> ItemGO::Modifiers(void) const\r
+{\r
+ return mModifiers;\r
+}\r
+\r
+void ItemGO::Modifiers(const vector<string> &value)\r
+{\r
+ mModifiers.clear();\r
+ mModifiers.insert(mModifiers.begin(), value.begin(), value.end());\r
+}\r
+\r
+ItemGO *ItemGO::Clone(void) const\r
+{\r
+ return new ItemGO(*this);\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r