From 8700635293ff1d39266f0c1a8a77d2d28ba4a241 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 2 Oct 2015 02:33:08 +0300 Subject: Allow read "walkType" attributes from xml for all being types. --- src/resources/beingcommon.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/resources/beingcommon.cpp') diff --git a/src/resources/beingcommon.cpp b/src/resources/beingcommon.cpp index d78f9e7ad..b37a6e879 100644 --- a/src/resources/beingcommon.cpp +++ b/src/resources/beingcommon.cpp @@ -23,6 +23,8 @@ #include "configuration.h" #include "logger.h" +#include "enums/resources/map/blockmask.h" + #include "utils/files.h" #include "resources/beinginfo.h" @@ -50,6 +52,21 @@ void BeingCommon::readBasicAttributes(BeingInfo *const info, info->setHpBarOffsetX(XML::getProperty(node, "hpBarOffsetX", 0)); info->setHpBarOffsetY(XML::getProperty(node, "hpBarOffsetY", 0)); + + unsigned char block = 0; + std::string walkStr = XML::getProperty( + node, "walkType", "walk"); + if (walkStr == "walk") + block = BlockMask::WATER | BlockMask::AIR; + else if (walkStr == "fly") + block = 0; + else if (walkStr == "swim") + block = BlockMask::GROUND | BlockMask::AIR; + else if (walkStr == "walkswim" || walkStr == "swimwalk") + block = BlockMask::AIR; + + info->setBlockWalkMask(static_cast( + BlockMask::WALL | block)); } void BeingCommon::getIncludeFiles(const std::string &dir, -- cgit v1.2.3-60-g2f50