 |
ManaPlus
|
Go to the documentation of this file.
38 const std::string &hoverCursor)
41 "targetCursor",
"medium"));
56 "quickActionEffect", -1));
61 const int moreBlockFlags)
65 node,
"walkType",
"walk");
67 const uint8_t allFlags =
CAST_U8(
77 if (walkStr ==
"walk" || walkStr ==
"ground")
79 else if (walkStr ==
"fly" || walkStr ==
"air")
81 else if (walkStr ==
"all")
83 else if (walkStr ==
"wall")
85 else if (walkStr ==
"monsterwall")
87 else if (walkStr ==
"swim" || walkStr ==
"water")
89 else if (walkStr ==
"walkswim" || walkStr ==
"swimwalk")
99 "startFollowDistance", 3));
101 "followDistance", 0));
103 "warpDistance", 11));
122 "attackOffsetX",
info->getTargetOffsetX()));
124 "attackOffsetY",
info->getTargetOffsetY()));
127 "thinkTime", 500) / 10);
130 "directionType", 1));
132 "sitDirectionType", 1));
134 "deadDirectionType", 1));
136 "attackDirectionType", 4));
142 const std::string &dbName)
144 if (xmlNameEqual(spriteNode,
"sprite"))
146 if (!XmlHaveChildContent(spriteNode))
150 currentSprite->
sprite = XmlChildContent(spriteNode);
153 spriteNode,
"variant", 0);
154 display.
sprites.push_back(currentSprite);
157 else if (xmlNameEqual(spriteNode,
"sound"))
159 if (!XmlHaveChildContent(spriteNode))
163 spriteNode,
"event",
"");
165 spriteNode,
"delay", 0);
166 const char *
const filename = XmlChildContent(spriteNode);
172 else if (event ==
"miss")
176 else if (event ==
"hurt")
180 else if (event ==
"die")
184 else if (event ==
"move")
188 else if (event ==
"sit")
192 else if (event ==
"sittop")
196 else if (event ==
"spawn")
202 logger->
log((dbName +
": Warning, sound effect %s for "
203 "unknown event %s of monster %s").c_str(),
204 filename, event.c_str(),
205 currentInfo->
getName().c_str());
209 else if (xmlNameEqual(spriteNode,
"attack"))
217 "critical-hit-effect-id",
225 "skyaction",
"skyattack");
227 "wateraction",
"waterattack");
229 "rideaction",
"rideattack");
232 "missile-particle",
"");
235 spriteNode,
"missile-z", 32.0F);
237 spriteNode,
"missile-lifetime", 500);
239 spriteNode,
"missile-speed", 7.0F);
241 spriteNode,
"missile-diedistance", 8.0F);
259 else if (xmlNameEqual(spriteNode,
"particlefx"))
261 if (!XmlHaveChildContent(spriteNode))
264 display.
particles.push_back(XmlChildContent(spriteNode));
float getFloatProperty(const xmlNodePtr node, const char *const name, float def)
void readAiAttributes(BeingInfo *const info, xmlNode *const node)
std::vector< SpriteReference * > sprites
void splitToStringVector(StringVect &tokens, const std::string &text, const char separator)
std::vector< std::string > StringVect
int getProperty(const xmlNodePtr node, const char *const name, int def)
bool info(InputEvent &event)
const std::string & getName() const
void readBasicAttributes(BeingInfo *const info, xmlNode *const node, const std::string &hoverCursor)
int getIntValue(const std::string &key) const
void addSound(const ItemSoundEvent::Type event, const std::string &filename, const int delay)
void addAttack(const int id, const std::string &action, const std::string &skyAttack, const std::string &waterAttack, const std::string &rideAttack, const int effectId, const int hitEffectId, const int criticalHitEffectId, const int missEffectId, const std::string &missileParticle, const float missileZ, const float missileSpeed, const float missileDieDistance, const int missileLifeTime)
bool readObjectNodes(xmlNode *const &spriteNode, SpriteDisplay &display, BeingInfo *const currentInfo, const std::string &dbName)
StringVect::const_iterator StringVectCIter
void readWalkingAttributes(BeingInfo *const info, xmlNode *const node, const int moreBlockFlags)
void log(const char *const log_text,...)
#define FOR_EACH(type, iter, array)