]> jfr.im git - irc/gameservirc.git/commitdiff
Finished preliminary work on the FilePlayerDAO and FileItemDAO!!!
authorkainazzzo <redacted>
Wed, 16 Sep 2009 17:07:00 +0000 (17:07 +0000)
committerkainazzzo <redacted>
Wed, 16 Sep 2009 17:07:00 +0000 (17:07 +0000)
git-svn-id: https://svn.code.sf.net/p/gameservirc/code/trunk@523 bc333340-6410-0410-a689-9d09f3c113fa

gameserv-2.0/data/players.dat [new file with mode: 0644]
gameserv-2.0/libgameservgldl/src/DataLayer/File/FileItemDAO.cpp
gameserv-2.0/libgameservgldl/src/DataLayer/File/FilePlayerDAO.cpp
gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/ArmorGO.cpp
gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PotionGO.cpp
gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/WeaponGO.cpp

diff --git a/gameserv-2.0/data/players.dat b/gameserv-2.0/data/players.dat
new file mode 100644 (file)
index 0000000..3b52634
--- /dev/null
@@ -0,0 +1 @@
+Kain 1 1 100 0 10 10 10 10 100 3 2 test 100000000 1 3001 3001 -1 1 -1 3002 -1
\ No newline at end of file
index ed6bca78edc0d5e9cc3330e99c80ceaa114ae4c6..aa0e2a2b1c5c5c69c6f2a40c45e9af73cd1c0560 100644 (file)
@@ -74,47 +74,16 @@ string FileItemDAO::GetItemFilePath() const
 \r
 shared_ptr<ItemGO> FileItemDAO::GetById(const string &Id) const\r
 {\r
-       string line;\r
-       ifstream infile;\r
-       infile.open(GetItemFilePath().c_str());\r
-\r
-       if (infile.fail())\r
+       map<string, shared_ptr<ItemGO> >::const_iterator iter;\r
+       iter = spItemCache.find(Id);\r
+       if (iter != spItemCache.end())\r
        {\r
-               throw ResourceException(str(format("Unable to open file %1%") % GetItemFilePath()), __FILE__, __LINE__);\r
+               return shared_ptr<ItemGO>(iter->second->Clone());\r
        }\r
-\r
-\r
-       while (getline(infile, line))\r
+       else\r
        {\r
-               if (line.empty())\r
-               {\r
-                       continue;\r
-               }\r
-               if (line[0] == '#')\r
-               {\r
-                       continue;\r
-               }\r
-               size_t tilde1 = line.find_first_of("~");\r
-               if (tilde1 == string::npos)\r
-               {\r
-                       throw DataLayerException(str(format("Invalid Item in %1%: %2%") % mFilename % line), __FILE__,\r
-                               __LINE__);\r
-               }\r
-               size_t tilde2 = line.find_first_of("~", tilde1 + 1);\r
-               if (tilde2 == string::npos)\r
-               {\r
-                       throw DataLayerException(str(format("Invalid Item in %1%: %2%") % mFilename % line), __FILE__,\r
-                               __LINE__);\r
-               }\r
-               string lineId = FileId::CreateItemId(line.substr(tilde1 + 1, tilde2 - tilde1 - 1));\r
-               \r
-               if (lineId == Id)\r
-               {\r
-                       shared_ptr<ItemGO> spItem = CreateItemFromLine(line);\r
-                       return spItem;\r
-               }\r
+               return shared_ptr<ItemGO>();\r
        }\r
-       return shared_ptr<ItemGO>();\r
 }\r
 \r
 shared_ptr<ItemGO> FileItemDAO::CreateItemFromLine(const string &line) const\r
index d40108829a7f94132fbc9fc2b48e02903e9400e7..f983ffcaf857fe0ccf715f0c71819ca56249221e 100644 (file)
@@ -121,7 +121,7 @@ shared_ptr<PlayerGO> FilePlayerDAO::GetById(const string &Id) const
        iter = spPlayerCache.find(id);\r
        if (iter != spPlayerCache.end())\r
        {\r
-               return iter->second;\r
+               return shared_ptr<PlayerGO>(iter->second->Clone());\r
        }\r
        return shared_ptr<PlayerGO>();\r
 }\r
@@ -290,6 +290,7 @@ shared_ptr<PlayerGO> FilePlayerDAO::CreatePlayerFromLine(const string &line) con
                        throw DataLayerException(str(format("Corrupt %1% file: Non integer item uses for item %2% on player %3%") %\r
                                mFilename % itemid % spPlayer->Name()), __FILE__, __LINE__);\r
                }\r
+               spPlayer->AddItemToInventory(spItem);\r
                tok_iter++;\r
        }\r
        \r
index 311a889dc8eb252f70f8e9fdca8902fd111a8369..3a7e6bde3f66425a695ba3950993da9937326577 100644 (file)
@@ -18,6 +18,7 @@ using boost::str;
 \r
 ArmorGO::ArmorGO() : ItemGO()\r
 {\r
+       mType = ItemTypes::Armor;\r
 }\r
 \r
 ArmorGO::ArmorGO(const string &name, const int &price, const int &uses, const int &strength, const int &defense, const int &maxhp) :\r
@@ -30,6 +31,7 @@ ItemGO()
        mModifiers[Modifiers::strength] = strength;\r
        mModifiers[Modifiers::defense] = defense;\r
        mModifiers[Modifiers::maxhp] = maxhp;\r
+       mType = ItemTypes::Armor;\r
 }\r
 \r
 ArmorGO::~ArmorGO()\r
index 781d0e6ad9348c8b5a4e68aa22462abd9aee6afc..a5eb1bb711a006687865bc8bdb349fc861e8d62c 100644 (file)
@@ -18,6 +18,7 @@ using boost::str;
 \r
 PotionGO::PotionGO() : ItemGO()\r
 {\r
+       mType = ItemTypes::Potion;\r
 }\r
 \r
 PotionGO::PotionGO(const string &name, const int &price, const int &uses, const int &strength, const int &defense, const int &maxhp) :\r
@@ -30,6 +31,7 @@ ItemGO()
        mModifiers[Modifiers::strength] = strength;\r
        mModifiers[Modifiers::defense] = defense;\r
        mModifiers[Modifiers::maxhp] = maxhp;\r
+       mType = ItemTypes::Potion;\r
 }\r
 \r
 PotionGO::~PotionGO()\r
index 2f482961960136c9f137446deb238c1d0a5d9ed2..f4aff7abbbee9c10cd732f736de0a08cf0344317 100644 (file)
@@ -18,6 +18,7 @@ using boost::str;
 \r
 WeaponGO::WeaponGO() : ItemGO()\r
 {\r
+       mType = ItemTypes::Weapon;\r
 }\r
 \r
 WeaponGO::WeaponGO(const string &name, const int &price, const int &uses, const int &strength, const int &defense, const int &maxhp) :\r
@@ -30,6 +31,7 @@ ItemGO()
        mModifiers[Modifiers::strength] = strength;\r
        mModifiers[Modifiers::defense] = defense;\r
        mModifiers[Modifiers::maxhp] = maxhp;\r
+       mType = ItemTypes::Weapon;\r
 }\r
 \r
 WeaponGO::~WeaponGO()\r