diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-12-25 17:13:24 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-12-25 17:13:24 +0300 |
commit | 8357e89fc0923f4b97cf8b990a4ffba2716bfabf (patch) | |
tree | 9253ddf8d30e97a947683e12dc195f3ec69ee7bc | |
parent | 63446aa820db2a6ad83cb25c64a013e9e1418bd5 (diff) | |
download | manaplus-8357e89fc0923f4b97cf8b990a4ffba2716bfabf.tar.gz manaplus-8357e89fc0923f4b97cf8b990a4ffba2716bfabf.tar.bz2 manaplus-8357e89fc0923f4b97cf8b990a4ffba2716bfabf.tar.xz manaplus-8357e89fc0923f4b97cf8b990a4ffba2716bfabf.zip |
add support for pet sit direction logic.
New pet db attribute: sitDirectionType
It can be set same values like in directionType.
-rw-r--r-- | src/being/being.cpp | 3 | ||||
-rw-r--r-- | src/resources/beinginfo.cpp | 3 | ||||
-rw-r--r-- | src/resources/beinginfo.h | 7 | ||||
-rw-r--r-- | src/resources/db/petdb.cpp | 3 |
4 files changed, 15 insertions, 1 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp index 235bd6455..7a3a198c1 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -1713,7 +1713,8 @@ void Being::petLogic() } if (mAction == STAND) { - const int directionType = mInfo->getDirectionType(); + const int directionType = mOwner->getCurrentAction() != SIT + ? mInfo->getDirectionType() : mInfo->getSitDirectionType(); int newDir = 0; switch (directionType) { diff --git a/src/resources/beinginfo.cpp b/src/resources/beinginfo.cpp index fc23bf231..20a15429c 100644 --- a/src/resources/beinginfo.cpp +++ b/src/resources/beinginfo.cpp @@ -66,6 +66,9 @@ BeingInfo::BeingInfo() : mWalkSpeed(0), mSitOffsetX(0), mSitOffsetY(0), + mThinkTime(50), + mDirectionType(1), + mSitDirectionType(1), mStaticMaxHP(false), mTargetSelection(true) { diff --git a/src/resources/beinginfo.h b/src/resources/beinginfo.h index c1d53ccde..bb8f6b6ff 100644 --- a/src/resources/beinginfo.h +++ b/src/resources/beinginfo.h @@ -272,6 +272,12 @@ class BeingInfo final int getDirectionType() const A_WARN_UNUSED { return mDirectionType; } + void setSitDirectionType(const int n) + { mSitDirectionType = n; } + + int getSitDirectionType() const A_WARN_UNUSED + { return mSitDirectionType; } + void setColorsList(const std::string &name); std::string getColor(const int idx) const A_WARN_UNUSED; @@ -310,6 +316,7 @@ class BeingInfo final int mSitOffsetY; int mThinkTime; int mDirectionType; + int mSitDirectionType; bool mStaticMaxHP; bool mTargetSelection; }; diff --git a/src/resources/db/petdb.cpp b/src/resources/db/petdb.cpp index 072dad7c0..631dceb60 100644 --- a/src/resources/db/petdb.cpp +++ b/src/resources/db/petdb.cpp @@ -103,8 +103,11 @@ void PETDB::load() currentInfo->setThinkTime(XML::getProperty(petNode, "thinkTime", 500) / 10); + currentInfo->setDirectionType(XML::getProperty(petNode, "directionType", 1)); + currentInfo->setSitDirectionType(XML::getProperty(petNode, + "sitDirectionType", 1)); SpriteDisplay display; for_each_xml_child_node(spriteNode, petNode) |