summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-02-14 02:29:16 +0300
committerAndrei Karas <akaras@inbox.ru>2016-02-14 02:29:16 +0300
commit6db83b4ee1c20162a9dd31428cbc36ce7405352d (patch)
tree502c13b828500568dbc842469ae44522a1b2ca2c /src/resources
parent4e3b36697e96e30008aea877a625d1be1e920073 (diff)
downloadmv-6db83b4ee1c20162a9dd31428cbc36ce7405352d.tar.gz
mv-6db83b4ee1c20162a9dd31428cbc36ce7405352d.tar.bz2
mv-6db83b4ee1c20162a9dd31428cbc36ce7405352d.tar.xz
mv-6db83b4ee1c20162a9dd31428cbc36ce7405352d.zip
Dont check and modify floor item position if server support haveExtendedDropsPosition.
Also add for legacy servers support for maxFloorOffsetX/Y.
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/db/itemdb.cpp7
-rw-r--r--src/resources/iteminfo.cpp3
-rw-r--r--src/resources/iteminfo.h17
3 files changed, 20 insertions, 7 deletions
diff --git a/src/resources/db/itemdb.cpp b/src/resources/db/itemdb.cpp
index d07301e88..e953aa433 100644
--- a/src/resources/db/itemdb.cpp
+++ b/src/resources/db/itemdb.cpp
@@ -320,6 +320,10 @@ void ItemDB::loadXmlFile(const std::string &fileName, int &tagNum)
int pet = XML::getProperty(node, "pet", 0);
const int maxFloorOffset = XML::getIntProperty(
node, "maxFloorOffset", mapTileSize, 0, mapTileSize);
+ const int maxFloorOffsetX = XML::getIntProperty(
+ node, "maxFloorOffsetX", maxFloorOffset, 0, mapTileSize);
+ const int maxFloorOffsetY = XML::getIntProperty(
+ node, "maxFloorOffsetY", maxFloorOffset, 0, mapTileSize);
std::string useButton = XML::langProperty(node, "useButton", "");
std::string useButton2 = XML::langProperty(node, "useButton2", "");
std::string colors = XML::getProperty(node, "colors", "");
@@ -500,7 +504,8 @@ void ItemDB::loadXmlFile(const std::string &fileName, int &tagNum)
if (iconColors.empty() && inheritItemInfo)
iconColors = inheritItemInfo->getIconColorsListName();
itemInfo->setIconColorsList(iconColors);
- itemInfo->setMaxFloorOffset(maxFloorOffset);
+ itemInfo->setMaxFloorOffsetX(maxFloorOffsetX);
+ itemInfo->setMaxFloorOffsetY(maxFloorOffsetY);
itemInfo->setPickupCursor(XML::getProperty(
node, "pickupCursor", "pickup"));
diff --git a/src/resources/iteminfo.cpp b/src/resources/iteminfo.cpp
index 9fd4f2ba2..133242567 100644
--- a/src/resources/iteminfo.cpp
+++ b/src/resources/iteminfo.cpp
@@ -68,7 +68,8 @@ ItemInfo::ItemInfo() :
mHitEffectId(-1),
mCriticalHitEffectId(-1),
mMissEffectId(-1),
- maxFloorOffset(mapTileSize),
+ maxFloorOffsetX(mapTileSize),
+ maxFloorOffsetY(mapTileSize),
mPickupCursor(Cursor::CURSOR_POINTER),
mPet(0),
mProtected(false)
diff --git a/src/resources/iteminfo.h b/src/resources/iteminfo.h
index 2bf4e7980..c07136581 100644
--- a/src/resources/iteminfo.h
+++ b/src/resources/iteminfo.h
@@ -219,11 +219,17 @@ class ItemInfo final
bool isRemoveSprites() const A_WARN_UNUSED
{ return mIsRemoveSprites; }
- void setMaxFloorOffset(const int i)
- { maxFloorOffset = i; }
+ void setMaxFloorOffsetX(const int i)
+ { maxFloorOffsetX = i; }
- int getMaxFloorOffset() const A_WARN_UNUSED
- { return maxFloorOffset; }
+ void setMaxFloorOffsetY(const int i)
+ { maxFloorOffsetY = i; }
+
+ int getMaxFloorOffsetX() const A_WARN_UNUSED
+ { return maxFloorOffsetX; }
+
+ int getMaxFloorOffsetY() const A_WARN_UNUSED
+ { return maxFloorOffsetY; }
bool isRemoveItemId(int id) const A_WARN_UNUSED;
@@ -360,7 +366,8 @@ class ItemInfo final
int mHitEffectId;
int mCriticalHitEffectId;
int mMissEffectId;
- int maxFloorOffset;
+ int maxFloorOffsetX;
+ int maxFloorOffsetY;
Cursor::Cursor mPickupCursor;
int mPet;
bool mProtected;