]> jfr.im git - irc/gameservirc.git/commitdiff
Added some initial Game Objects with the start of a namespace hierarchy
authorkainazzzo <redacted>
Mon, 12 May 2008 19:28:28 +0000 (19:28 +0000)
committerkainazzzo <redacted>
Mon, 12 May 2008 19:28:28 +0000 (19:28 +0000)
git-svn-id: https://svn.code.sf.net/p/gameservirc/code/trunk@497 bc333340-6410-0410-a689-9d09f3c113fa

12 files changed:
gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/Armor.h [new file with mode: 0644]
gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/ArmorGO.h [new file with mode: 0644]
gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/GameObject.h [new file with mode: 0644]
gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/ItemGO.h [new file with mode: 0644]
gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/PlayerGO.h [new file with mode: 0644]
gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/WeaponGO.h [new file with mode: 0644]
gameserv-2.0/libgameservgldl/libgameservgldl.vcproj
gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/ArmorGO.cpp [new file with mode: 0644]
gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/GameObject.cpp [new file with mode: 0644]
gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/ItemGO.cpp [new file with mode: 0644]
gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp [new file with mode: 0644]
gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/WeaponGO.cpp [new file with mode: 0644]

diff --git a/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/Armor.h b/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/Armor.h
new file mode 100644 (file)
index 0000000..9726586
--- /dev/null
@@ -0,0 +1,14 @@
+#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
diff --git a/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/ArmorGO.h b/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/ArmorGO.h
new file mode 100644 (file)
index 0000000..9726586
--- /dev/null
@@ -0,0 +1,14 @@
+#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
diff --git a/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/GameObject.h b/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/GameObject.h
new file mode 100644 (file)
index 0000000..ed6b5fc
--- /dev/null
@@ -0,0 +1,62 @@
+#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
diff --git a/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/ItemGO.h b/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/ItemGO.h
new file mode 100644 (file)
index 0000000..95e2c7e
--- /dev/null
@@ -0,0 +1,58 @@
+#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
diff --git a/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/PlayerGO.h b/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/PlayerGO.h
new file mode 100644 (file)
index 0000000..e266ce3
--- /dev/null
@@ -0,0 +1,93 @@
+#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
diff --git a/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/WeaponGO.h b/gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/WeaponGO.h
new file mode 100644 (file)
index 0000000..e69de29
index 199a3926acb2efc8beee93e24889ff6b26b939d9..2e0a62e095bfcce04efbe95734aede525d8cdb36 100644 (file)
@@ -18,7 +18,7 @@
                        Name="Debug|Win32"\r
                        OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
                        IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="1"\r
+                       ConfigurationType="4"\r
                        CharacterSet="2"\r
                        >\r
                        <Tool\r
@@ -39,6 +39,8 @@
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)\include&quot;"\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
diff --git a/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/ArmorGO.cpp b/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/ArmorGO.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/GameObject.cpp b/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/GameObject.cpp
new file mode 100644 (file)
index 0000000..93daa5c
--- /dev/null
@@ -0,0 +1,60 @@
+#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
diff --git a/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/ItemGO.cpp b/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/ItemGO.cpp
new file mode 100644 (file)
index 0000000..2fcafa8
--- /dev/null
@@ -0,0 +1,86 @@
+#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
diff --git a/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp b/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/WeaponGO.cpp b/gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/WeaponGO.cpp
new file mode 100644 (file)
index 0000000..e69de29