Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Creature::onWalk()
- {
- if (getWalkDelay() <= 0) {
- Direction dir;
- uint32_t flags = FLAG_IGNOREFIELDDAMAGE;
- if (getNextStep(dir, flags)) {
- ReturnValue ret = !noMove ? g_game.internalMoveCreature(this, dir, flags) : RETURNVALUE_NOTPOSSIBLE;
- if (ret != RETURNVALUE_NOERROR) {
- if (Player* player = getPlayer()) {
- player->sendCancelMessage(ret);
- player->sendCancelWalk();
- }
- else if(Monster* monster = getMonster()) {
- cancelNextWalk = true;
- }
- forceUpdateFollowPath = true;
- }
- }
- else {
- if (listWalkDir.empty()) {
- onWalkComplete();
- }
- stopEventWalk();
- }
- }
- if (cancelNextWalk) {
- listWalkDir.clear();
- onWalkAborted();
- cancelNextWalk = false;
- }
- if (eventWalk != 0) {
- eventWalk = 0;
- addEventWalk();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement