summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-12-31 15:07:43 +0300
committerAndrei Karas <akaras@inbox.ru>2013-12-31 15:07:43 +0300
commit94342625a7e97c1f4adda6f0788c85c8d112b3a5 (patch)
tree2f90c467e7fc598054a3ebc5b727a8ac21041e02
parent332334a876da21687911c6d22cf4a5dcb2cb586a (diff)
downloadmanaplus-94342625a7e97c1f4adda6f0788c85c8d112b3a5.tar.gz
manaplus-94342625a7e97c1f4adda6f0788c85c8d112b3a5.tar.bz2
manaplus-94342625a7e97c1f4adda6f0788c85c8d112b3a5.tar.xz
manaplus-94342625a7e97c1f4adda6f0788c85c8d112b3a5.zip
add pet offset if owner is dead.
New pet db attributes: deadOffsetX, deadOffsetY
-rw-r--r--src/being/being.cpp6
-rw-r--r--src/resources/beinginfo.cpp2
-rw-r--r--src/resources/beinginfo.h14
-rw-r--r--src/resources/db/petdb.cpp4
4 files changed, 25 insertions, 1 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp
index 600de11e8..d87eb5da6 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -3258,8 +3258,12 @@ void Being::fixPetSpawnPos(int &dstX, int &dstY) const
offsetY1 = mInfo->getMoveOffsetY();
break;
- case ATTACK:
case DEAD:
+ offsetX1 = mInfo->getDeadOffsetX();
+ offsetY1 = mInfo->getDeadOffsetY();
+ break;
+
+ case ATTACK:
case SPAWN:
case HURT:
case STAND:
diff --git a/src/resources/beinginfo.cpp b/src/resources/beinginfo.cpp
index d79391ed9..5193ae4d3 100644
--- a/src/resources/beinginfo.cpp
+++ b/src/resources/beinginfo.cpp
@@ -68,6 +68,8 @@ BeingInfo::BeingInfo() :
mSitOffsetY(0),
mMoveOffsetX(0),
mMoveOffsetY(0),
+ mDeadOffsetX(0),
+ mDeadOffsetY(0),
mThinkTime(50),
mDirectionType(1),
mSitDirectionType(1),
diff --git a/src/resources/beinginfo.h b/src/resources/beinginfo.h
index 85d4af20b..f59dbe4d1 100644
--- a/src/resources/beinginfo.h
+++ b/src/resources/beinginfo.h
@@ -272,6 +272,18 @@ class BeingInfo final
int getMoveOffsetY() const A_WARN_UNUSED
{ return mMoveOffsetY; }
+ void setDeadOffsetX(const int n)
+ { mDeadOffsetX = n; }
+
+ int getDeadOffsetX() const A_WARN_UNUSED
+ { return mDeadOffsetX; }
+
+ void setDeadOffsetY(const int n)
+ { mDeadOffsetY = n; }
+
+ int getDeadOffsetY() const A_WARN_UNUSED
+ { return mDeadOffsetY; }
+
void setThinkTime(const int n)
{ mThinkTime = n; }
@@ -328,6 +340,8 @@ class BeingInfo final
int mSitOffsetY;
int mMoveOffsetX;
int mMoveOffsetY;
+ int mDeadOffsetX;
+ int mDeadOffsetY;
int mThinkTime;
int mDirectionType;
int mSitDirectionType;
diff --git a/src/resources/db/petdb.cpp b/src/resources/db/petdb.cpp
index 046146cce..cb8208179 100644
--- a/src/resources/db/petdb.cpp
+++ b/src/resources/db/petdb.cpp
@@ -109,6 +109,10 @@ void PETDB::load()
"moveOffsetX", 0));
currentInfo->setMoveOffsetY(XML::getProperty(petNode,
"moveOffsetY", 1));
+ currentInfo->setDeadOffsetX(XML::getProperty(petNode,
+ "deadOffsetX", 0));
+ currentInfo->setDeadOffsetY(XML::getProperty(petNode,
+ "deadOffsetY", 1));
currentInfo->setThinkTime(XML::getProperty(petNode,
"thinkTime", 500) / 10);