summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-01-20 21:09:46 +0300
committerAndrei Karas <akaras@inbox.ru>2014-01-20 21:09:46 +0300
commit8f24400fc10658db9636e6cdd315504d75c71a5d (patch)
treef2f5a1094f6c48040b87238612d4042704846e40 /src/resources
parent1f2dd660dad937a3c1f2a2dfc07b756965e4ddae (diff)
downloadmanaplus-8f24400fc10658db9636e6cdd315504d75c71a5d.tar.gz
manaplus-8f24400fc10658db9636e6cdd315504d75c71a5d.tar.bz2
manaplus-8f24400fc10658db9636e6cdd315504d75c71a5d.tar.xz
manaplus-8f24400fc10658db9636e6cdd315504d75c71a5d.zip
add attack action for pets.
New pets db attributes: attackOffsetX attackOffsetY attaclDirectionType
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/beinginfo.cpp3
-rw-r--r--src/resources/beinginfo.h21
-rw-r--r--src/resources/db/petdb.cpp6
3 files changed, 30 insertions, 0 deletions
diff --git a/src/resources/beinginfo.cpp b/src/resources/beinginfo.cpp
index 38c141d63..40ea7af1a 100644
--- a/src/resources/beinginfo.cpp
+++ b/src/resources/beinginfo.cpp
@@ -70,10 +70,13 @@ BeingInfo::BeingInfo() :
mMoveOffsetY(0),
mDeadOffsetX(0),
mDeadOffsetY(0),
+ mAttackOffsetX(0),
+ mAttackOffsetY(0),
mThinkTime(50),
mDirectionType(1),
mSitDirectionType(1),
mDeadDirectionType(1),
+ mAttackDirectionType(1),
mStaticMaxHP(false),
mTargetSelection(true)
{
diff --git a/src/resources/beinginfo.h b/src/resources/beinginfo.h
index d862f1020..31725d218 100644
--- a/src/resources/beinginfo.h
+++ b/src/resources/beinginfo.h
@@ -284,6 +284,18 @@ class BeingInfo final
int getDeadOffsetY() const A_WARN_UNUSED
{ return mDeadOffsetY; }
+ void setAttackOffsetX(const int n)
+ { mAttackOffsetX = n; }
+
+ int getAttackOffsetX() const A_WARN_UNUSED
+ { return mAttackOffsetX; }
+
+ void setAttackOffsetY(const int n)
+ { mAttackOffsetY = n; }
+
+ int getAttackOffsetY() const A_WARN_UNUSED
+ { return mAttackOffsetY; }
+
void setThinkTime(const int n)
{ mThinkTime = n; }
@@ -308,6 +320,12 @@ class BeingInfo final
int getDeadDirectionType() const A_WARN_UNUSED
{ return mDeadDirectionType; }
+ void setAttackDirectionType(const int n)
+ { mAttackDirectionType = n; }
+
+ int getAttackDirectionType() const A_WARN_UNUSED
+ { return mAttackDirectionType; }
+
void setColorsList(const std::string &name);
std::string getColor(const int idx) const A_WARN_UNUSED;
@@ -348,10 +366,13 @@ class BeingInfo final
int mMoveOffsetY;
int mDeadOffsetX;
int mDeadOffsetY;
+ int mAttackOffsetX;
+ int mAttackOffsetY;
int mThinkTime;
int mDirectionType;
int mSitDirectionType;
int mDeadDirectionType;
+ int mAttackDirectionType;
bool mStaticMaxHP;
bool mTargetSelection;
};
diff --git a/src/resources/db/petdb.cpp b/src/resources/db/petdb.cpp
index c9f3bdbeb..7af3c5d09 100644
--- a/src/resources/db/petdb.cpp
+++ b/src/resources/db/petdb.cpp
@@ -132,6 +132,10 @@ void PETDB::loadXmlFile(const std::string &fileName)
"deadOffsetX", 0));
currentInfo->setDeadOffsetY(XML::getProperty(petNode,
"deadOffsetY", 1));
+ currentInfo->setAttackOffsetX(XML::getProperty(petNode,
+ "attackOffsetX", currentInfo->getTargetOffsetX()));
+ currentInfo->setAttackOffsetY(XML::getProperty(petNode,
+ "attackOffsetY", currentInfo->getTargetOffsetY()));
currentInfo->setThinkTime(XML::getProperty(petNode,
"thinkTime", 500) / 10);
@@ -142,6 +146,8 @@ void PETDB::loadXmlFile(const std::string &fileName)
"sitDirectionType", 1));
currentInfo->setDeadDirectionType(XML::getProperty(petNode,
"deadDirectionType", 1));
+ currentInfo->setAttackDirectionType(XML::getProperty(petNode,
+ "attackDirectionType", 4));
SpriteDisplay display;
for_each_xml_child_node(spriteNode, petNode)