diff options
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/download.cpp | 1 | ||||
-rw-r--r-- | src/net/ea/beinghandler.cpp | 114 | ||||
-rw-r--r-- | src/net/ea/inventoryhandler.cpp | 32 | ||||
-rw-r--r-- | src/net/net.cpp | 2 | ||||
-rw-r--r-- | src/net/tmwa/beinghandler.cpp | 35 |
5 files changed, 183 insertions, 1 deletions
diff --git a/src/net/download.cpp b/src/net/download.cpp index 069290cde..d831578b2 100644 --- a/src/net/download.cpp +++ b/src/net/download.cpp @@ -154,6 +154,7 @@ unsigned long Download::fadler32(FILE *const file) unsigned long Download::adlerBuffer(const char *const buffer, int size) { + FUNC_BLOCK("Download::adlerBuffer", 1) unsigned long adler = adler32(0L, Z_NULL, 0); return adler32(static_cast<uInt>(adler), reinterpret_cast<const Bytef*>(buffer), size); diff --git a/src/net/ea/beinghandler.cpp b/src/net/ea/beinghandler.cpp index 8366d1dc4..002d7cb43 100644 --- a/src/net/ea/beinghandler.cpp +++ b/src/net/ea/beinghandler.cpp @@ -118,8 +118,12 @@ void BeingHandler::setSprite(Being *const being, const unsigned int slot, void BeingHandler::processBeingVisibleOrMove(Net::MessageIn &msg, const bool visible) { + BLOCK_START("BeingHandler::processBeingVisibleOrMove") if (!actorManager) + { + BLOCK_END("BeingHandler::processBeingVisibleOrMove") return; + } int spawnId; @@ -154,15 +158,24 @@ void BeingHandler::processBeingVisibleOrMove(Net::MessageIn &msg, // Being with id >= 110000000 and job 0 are better // known as ghosts, so don't create those. if (job == 0 && id >= 110000000) + { + BLOCK_END("BeingHandler::processBeingVisibleOrMove") return; + } if (actorManager->isBlocked(id) == true) + { + BLOCK_END("BeingHandler::processBeingVisibleOrMove") return; + } dstBeing = createBeing(id, job); if (!dstBeing) + { + BLOCK_END("BeingHandler::processBeingVisibleOrMove") return; + } if (job == 1022 && killStats) killStats->jackoAlive(dstBeing->getId()); @@ -339,12 +352,17 @@ void BeingHandler::processBeingVisibleOrMove(Net::MessageIn &msg, (statusEffects >> 16) & 0xffff)); dstBeing->setStatusEffectBlock(16, static_cast<uint16_t>( statusEffects & 0xffff)); + BLOCK_END("BeingHandler::processBeingVisibleOrMove") } void BeingHandler::processBeingMove2(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processBeingMove2") if (!actorManager) + { + BLOCK_END("BeingHandler::processBeingMove2") return; + } /* * A simplified movement packet, used by the @@ -360,7 +378,10 @@ void BeingHandler::processBeingMove2(Net::MessageIn &msg) const */ if (!dstBeing) + { + BLOCK_END("BeingHandler::processBeingMove2") return; + } uint16_t srcX, srcY, dstX, dstY; msg.readCoordinatePair(srcX, srcY, dstX, dstY); @@ -371,10 +392,12 @@ void BeingHandler::processBeingMove2(Net::MessageIn &msg) const dstBeing->setDestination(dstX, dstY); if (dstBeing->getType() == ActorType::PLAYER) dstBeing->setMoveTime(); + BLOCK_END("BeingHandler::processBeingMove2") } void BeingHandler::processBeingSpawn(Net::MessageIn &msg) { + BLOCK_START("BeingHandler::processBeingSpawn") // skipping this packet mSpawnId = msg.readInt32(); // id msg.readInt16(); // speed @@ -382,19 +405,27 @@ void BeingHandler::processBeingSpawn(Net::MessageIn &msg) msg.readInt16(); // opt2 msg.readInt16(); // option msg.readInt16(); // disguise + BLOCK_END("BeingHandler::processBeingSpawn") } void BeingHandler::processBeingRemove(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processBeingRemove") if (!actorManager || !player_node) + { + BLOCK_END("BeingHandler::processBeingRemove") return; + } // A being should be removed or has died const int id = msg.readInt32(); Being *const dstBeing = actorManager->findBeing(id); if (!dstBeing) + { + BLOCK_END("BeingHandler::processBeingRemove") return; + } player_node->followMoveTo(dstBeing, player_node->getNextDestX(), player_node->getNextDestY()); @@ -424,19 +455,27 @@ void BeingHandler::processBeingRemove(Net::MessageIn &msg) const } actorManager->destroy(dstBeing); } + BLOCK_END("BeingHandler::processBeingRemove") } void BeingHandler::processBeingResurrect(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processBeingResurrect") if (!actorManager || !player_node) + { + BLOCK_END("BeingHandler::processBeingResurrect") return; + } // A being changed mortality status const int id = msg.readInt32(); Being *const dstBeing = actorManager->findBeing(id); if (!dstBeing) + { + BLOCK_END("BeingHandler::processBeingResurrect") return; + } // If this is player's current target, clear it. if (dstBeing == player_node->getTarget()) @@ -444,13 +483,17 @@ void BeingHandler::processBeingResurrect(Net::MessageIn &msg) const if (msg.readInt8() == 1) dstBeing->setAction(BeingAction::STAND, 0); + BLOCK_END("BeingHandler::processBeingResurrect") } - void BeingHandler::processSkillDamage(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processSkillDamage") if (!actorManager) + { + BLOCK_END("BeingHandler::processSkillDamage") return; + } const int id = msg.readInt16(); // Skill Id Being *const srcBeing = actorManager->findBeing(msg.readInt32()); @@ -466,12 +509,17 @@ void BeingHandler::processSkillDamage(Net::MessageIn &msg) const srcBeing->handleSkill(dstBeing, param1, id, level); if (dstBeing) dstBeing->takeDamage(srcBeing, param1, Being::SKILL, id); + BLOCK_END("BeingHandler::processSkillDamage") } void BeingHandler::processBeingAction(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processBeingAction") if (!actorManager) + { + BLOCK_END("BeingHandler::processBeingAction") return; + } Being *const srcBeing = actorManager->findBeing(msg.readInt32()); Being *const dstBeing = actorManager->findBeing(msg.readInt32()); @@ -550,17 +598,25 @@ void BeingHandler::processBeingAction(Net::MessageIn &msg) const logger->log("type: " + toString(type)); break; } + BLOCK_END("BeingHandler::processBeingAction") } void BeingHandler::processBeingSelfEffect(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processBeingSelfEffect") if (!effectManager || !actorManager) + { + BLOCK_END("BeingHandler::processBeingSelfEffect") return; + } const int id = static_cast<uint32_t>(msg.readInt32()); Being *const being = actorManager->findBeing(id); if (!being) + { + BLOCK_END("BeingHandler::processBeingSelfEffect") return; + } const int effectType = msg.readInt32(); @@ -573,16 +629,24 @@ void BeingHandler::processBeingSelfEffect(Net::MessageIn &msg) const { // reset received damage socialWindow->resetDamage(being->getName()); } + BLOCK_END("BeingHandler::processBeingSelfEffect") } void BeingHandler::processBeingEmotion(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processBeingEmotion") if (!player_node || !actorManager) + { + BLOCK_END("BeingHandler::processBeingEmotion") return; + } Being *const dstBeing = actorManager->findBeing(msg.readInt32()); if (!dstBeing) + { + BLOCK_END("BeingHandler::processBeingEmotion") return; + } if (player_relations.hasPermission(dstBeing, PlayerRelation::EMOTE)) { @@ -595,12 +659,17 @@ void BeingHandler::processBeingEmotion(Net::MessageIn &msg) const } if (dstBeing->getType() == ActorType::PLAYER) dstBeing->setOtherTime(); + BLOCK_END("BeingHandler::processBeingEmotion") } void BeingHandler::processNameResponse(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processNameResponse") if (!player_node || !actorManager) + { + BLOCK_END("BeingHandler::processNameResponse") return; + } const int beingId = msg.readInt32(); Being *const dstBeing = actorManager->findBeing(beingId); @@ -635,22 +704,32 @@ void BeingHandler::processNameResponse(Net::MessageIn &msg) const } } } + BLOCK_END("BeingHandler::processNameResponse") } void BeingHandler::processIpResponse(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processIpResponse") if (!actorManager) + { + BLOCK_END("BeingHandler::processIpResponse") return; + } Being *const dstBeing = actorManager->findBeing(msg.readInt32()); if (dstBeing) dstBeing->setIp(ipToString(msg.readInt32())); + BLOCK_END("BeingHandler::processIpResponse") } void BeingHandler::processPlayerGuilPartyInfo(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processPlayerGuilPartyInfo") if (!actorManager) + { + BLOCK_END("BeingHandler::processPlayerGuilPartyInfo") return; + } Being *const dstBeing = actorManager->findBeing(msg.readInt32()); @@ -669,17 +748,25 @@ void BeingHandler::processPlayerGuilPartyInfo(Net::MessageIn &msg) const dstBeing->addToCache(); msg.readString(24); // Discard this } + BLOCK_END("BeingHandler::processPlayerGuilPartyInfo") } void BeingHandler::processBeingChangeDirection(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processBeingChangeDirection") if (!actorManager) + { + BLOCK_END("BeingHandler::processBeingChangeDirection") return; + } Being *const dstBeing = actorManager->findBeing(msg.readInt32()); if (!dstBeing) + { + BLOCK_END("BeingHandler::processBeingChangeDirection") return; + } msg.readInt16(); // unused @@ -688,12 +775,17 @@ void BeingHandler::processBeingChangeDirection(Net::MessageIn &msg) const dstBeing->setDirection(dir); if (player_node) player_node->imitateDirection(dstBeing, dir); + BLOCK_END("BeingHandler::processBeingChangeDirection") } void BeingHandler::processPlayerStop(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processPlayerStop") if (!actorManager || !player_node) + { + BLOCK_END("BeingHandler::processPlayerStop") return; + } const int id = msg.readInt32(); @@ -709,11 +801,13 @@ void BeingHandler::processPlayerStop(Net::MessageIn &msg) const dstBeing->setAction(BeingAction::STAND, 0); } } + BLOCK_END("BeingHandler::processPlayerStop") } void BeingHandler::processPlayerMoveToAttack(Net::MessageIn &msg A_UNUSED) const { + BLOCK_START("BeingHandler::processPlayerStop") /* * This is an *advisory* message, telling the client that * it needs to move the character before attacking @@ -722,12 +816,17 @@ void BeingHandler::processPlayerMoveToAttack(Net::MessageIn &msg A_UNUSED) */ if (player_node) player_node->fixAttackTarget(); + BLOCK_END("BeingHandler::processPlayerStop") } void BeingHandler::processPlaterStatusChange(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processPlayerStop") if (!actorManager) + { + BLOCK_END("BeingHandler::processPlayerStop") return; + } // Change in players' flags const int id = msg.readInt32(); @@ -745,12 +844,17 @@ void BeingHandler::processPlaterStatusChange(Net::MessageIn &msg) const (statusEffects >> 16) & 0xffff)); dstBeing->setStatusEffectBlock(16, static_cast<uint16_t>( statusEffects & 0xffff)); + BLOCK_END("BeingHandler::processPlayerStop") } void BeingHandler::processBeingStatusChange(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processBeingStatusChange") if (!actorManager) + { + BLOCK_END("BeingHandler::processBeingStatusChange") return; + } // Status change const uint16_t status = msg.readInt16(); @@ -760,6 +864,7 @@ void BeingHandler::processBeingStatusChange(Net::MessageIn &msg) const Being *const dstBeing = actorManager->findBeing(id); if (dstBeing) dstBeing->setStatusEffect(status, flag); + BLOCK_END("BeingHandler::processBeingStatusChange") } void BeingHandler::processSkilCasting(Net::MessageIn &msg) const @@ -784,17 +889,23 @@ void BeingHandler::processSkillNoDamage(Net::MessageIn &msg) const void BeingHandler::processPvpMapMode(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processPvpMapMode") const Game *const game = Game::instance(); if (!game) + { + BLOCK_END("BeingHandler::processPvpMapMode") return; + } Map *const map = game->getCurrentMap(); if (map) map->setPvpMode(msg.readInt16()); + BLOCK_END("BeingHandler::processPvpMapMode") } void BeingHandler::processPvpSet(Net::MessageIn &msg) const { + BLOCK_START("BeingHandler::processPvpSet") const int id = msg.readInt32(); // id const int rank = msg.readInt32(); // rank msg.readInt32(); // num @@ -804,6 +915,7 @@ void BeingHandler::processPvpSet(Net::MessageIn &msg) const if (dstBeing) dstBeing->setPvpRank(rank); } + BLOCK_END("BeingHandler::processPvpSet") } } // namespace Ea diff --git a/src/net/ea/inventoryhandler.cpp b/src/net/ea/inventoryhandler.cpp index a508460d4..09b8b6bad 100644 --- a/src/net/ea/inventoryhandler.cpp +++ b/src/net/ea/inventoryhandler.cpp @@ -176,6 +176,7 @@ int InventoryHandler::getSlot(const int eAthenaSlot) void InventoryHandler::processPlayerInventory(Net::MessageIn &msg, const bool playerInvintory) { + BLOCK_START("InventoryHandler::processPlayerInventory") Inventory *const inventory = player_node ? PlayerInfo::getInventory() : nullptr; if (playerInvintory) @@ -239,10 +240,12 @@ void InventoryHandler::processPlayerInventory(Net::MessageIn &msg, amount, 0, identified, false)); } } + BLOCK_END("InventoryHandler::processPlayerInventory") } void InventoryHandler::processPlayerStorageEquip(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerStorageEquip") msg.readInt16(); // length const int number = (msg.getLength() - 4) / 20; @@ -276,10 +279,12 @@ void InventoryHandler::processPlayerStorageEquip(Net::MessageIn &msg) mInventoryItems.push_back(Ea::InventoryItem(index, itemId, amount, refine, identified, false)); } + BLOCK_END("InventoryHandler::processPlayerStorageEquip") } void InventoryHandler::processPlayerInventoryAdd(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerInventoryAdd") Inventory *const inventory = player_node ? PlayerInfo::getInventory() : nullptr; @@ -341,10 +346,12 @@ void InventoryHandler::processPlayerInventoryAdd(Net::MessageIn &msg) } ArrowsListener::distributeEvent(); } + BLOCK_END("InventoryHandler::processPlayerInventoryAdd") } void InventoryHandler::processPlayerInventoryRemove(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerInventoryRemove") Inventory *const inventory = player_node ? PlayerInfo::getInventory() : nullptr; @@ -360,10 +367,12 @@ void InventoryHandler::processPlayerInventoryRemove(Net::MessageIn &msg) ArrowsListener::distributeEvent(); } } + BLOCK_END("InventoryHandler::processPlayerInventoryRemove") } void InventoryHandler::processPlayerInventoryUse(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerInventoryUse") Inventory *const inventory = player_node ? PlayerInfo::getInventory() : nullptr; @@ -383,10 +392,12 @@ void InventoryHandler::processPlayerInventoryUse(Net::MessageIn &msg) inventory->removeItemAt(index); } } + BLOCK_END("InventoryHandler::processPlayerInventoryUse") } void InventoryHandler::processItemUseResponse(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processItemUseResponse") Inventory *const inventory = player_node ? PlayerInfo::getInventory() : nullptr; @@ -410,10 +421,12 @@ void InventoryHandler::processItemUseResponse(Net::MessageIn &msg) } } } + BLOCK_END("InventoryHandler::processItemUseResponse") } void InventoryHandler::processPlayerStorageStatus(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerStorageStatus") /* * This is the closest we get to an "Open Storage" packet from the * server. It always comes after the two SMSG_PLAYER_STORAGE_... @@ -437,10 +450,12 @@ void InventoryHandler::processPlayerStorageStatus(Net::MessageIn &msg) mStorageWindow = new InventoryWindow(mStorage); mStorageWindow->postInit(); } + BLOCK_END("InventoryHandler::processPlayerStorageStatus") } void InventoryHandler::processPlayerStorageAdd(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerStorageAdd") // Move an item into storage const int index = msg.readInt16() - STORAGE_OFFSET; const int amount = msg.readInt32(); @@ -467,10 +482,12 @@ void InventoryHandler::processPlayerStorageAdd(Net::MessageIn &msg) refine, identified, false); } } + BLOCK_END("InventoryHandler::processPlayerStorageAdd") } void InventoryHandler::processPlayerStorageRemove(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerStorageRemove") // Move an item out of storage const int index = msg.readInt16() - STORAGE_OFFSET; const int amount = msg.readInt16(); @@ -483,10 +500,12 @@ void InventoryHandler::processPlayerStorageRemove(Net::MessageIn &msg) mStorage->removeItemAt(index); } } + BLOCK_END("InventoryHandler::processPlayerStorageRemove") } void InventoryHandler::processPlayerStorageClose(Net::MessageIn &msg A_UNUSED) { + BLOCK_START("InventoryHandler::processPlayerStorageClose") // Storage access has been closed // Storage window deletes itself if (mStorageWindow) @@ -500,10 +519,12 @@ void InventoryHandler::processPlayerStorageClose(Net::MessageIn &msg A_UNUSED) mStorage->clear(); delete2(mStorage); + BLOCK_END("InventoryHandler::processPlayerStorageClose") } void InventoryHandler::processPlayerEquipment(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerEquipment") Inventory *const inventory = player_node ? PlayerInfo::getInventory() : nullptr; @@ -547,10 +568,12 @@ void InventoryHandler::processPlayerEquipment(Net::MessageIn &msg) if (equipType) mEquips.setEquipment(getSlot(equipType), index); } + BLOCK_END("InventoryHandler::processPlayerEquipment") } void InventoryHandler::processPlayerEquip(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerEquip") const int index = msg.readInt16() - INVENTORY_OFFSET; const int equipType = msg.readInt16(); const int flag = msg.readInt8(); @@ -559,10 +582,12 @@ void InventoryHandler::processPlayerEquip(Net::MessageIn &msg) NotifyManager::notify(NotifyTypes::EQUIP_FAILED); else mEquips.setEquipment(getSlot(equipType), index); + BLOCK_END("InventoryHandler::processPlayerEquip") } void InventoryHandler::processPlayerUnEquip(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerUnEquip") msg.readInt16(); // inder val - INVENTORY_OFFSET; const int equipType = msg.readInt16(); const int flag = msg.readInt8(); @@ -571,19 +596,23 @@ void InventoryHandler::processPlayerUnEquip(Net::MessageIn &msg) mEquips.setEquipment(getSlot(equipType), -1); if (equipType & 0x8000) ArrowsListener::distributeEvent(); + BLOCK_END("InventoryHandler::processPlayerUnEquip") } void InventoryHandler::processPlayerAttackRange(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerAttackRange") const int range = msg.readInt16(); if (player_node) player_node->setAttackRange(range); PlayerInfo::setStatBase(Attributes::ATTACK_RANGE, range); PlayerInfo::setStatMod(Attributes::ATTACK_RANGE, 0); + BLOCK_END("InventoryHandler::processPlayerAttackRange") } void InventoryHandler::processPlayerArrowEquip(Net::MessageIn &msg) { + BLOCK_START("InventoryHandler::processPlayerArrowEquip") int index = msg.readInt16(); if (index <= 1) return; @@ -591,16 +620,19 @@ void InventoryHandler::processPlayerArrowEquip(Net::MessageIn &msg) index -= INVENTORY_OFFSET; mEquips.setEquipment(Equipment::EQUIP_PROJECTILE_SLOT, index); ArrowsListener::distributeEvent(); + BLOCK_END("InventoryHandler::processPlayerArrowEquip") } void InventoryHandler::closeStorage() { + BLOCK_START("InventoryHandler::closeStorage") if (mStorageWindow) { mStorageWindow->unsetInventory(); mStorageWindow->close(); mStorageWindow = nullptr; } + BLOCK_END("InventoryHandler::closeStorage") } void InventoryHandler::forgotStorage() diff --git a/src/net/net.cpp b/src/net/net.cpp index 90cf9e16a..63a348bde 100644 --- a/src/net/net.cpp +++ b/src/net/net.cpp @@ -137,6 +137,7 @@ ServerInfo::Type networkType = ServerInfo::UNKNOWN; void connectToServer(const ServerInfo &server) { + BLOCK_START("Net::connectToServer") if (networkType == server.type && getGeneralHandler()) { getGeneralHandler()->reload(); @@ -175,6 +176,7 @@ void connectToServer(const ServerInfo &server) getLoginHandler()->setServer(server); getLoginHandler()->connect(); } + BLOCK_END("Net::connectToServer") } void unload() diff --git a/src/net/tmwa/beinghandler.cpp b/src/net/tmwa/beinghandler.cpp index 28c167e86..53ca71aca 100644 --- a/src/net/tmwa/beinghandler.cpp +++ b/src/net/tmwa/beinghandler.cpp @@ -250,8 +250,12 @@ void BeingHandler::undress(Being *const being) const void BeingHandler::processBeingChangeLook(Net::MessageIn &msg, const bool look2) const { + BLOCK_START("BeingHandler::processBeingChangeLook") if (!actorManager) + { + BLOCK_END("BeingHandler::processBeingChangeLook") return; + } /* * SMSG_BEING_CHANGE_LOOKS (0x00c3) and @@ -267,7 +271,10 @@ void BeingHandler::processBeingChangeLook(Net::MessageIn &msg, Being *const dstBeing = actorManager->findBeing(msg.readInt32()); if (!dstBeing) + { + BLOCK_END("BeingHandler::processBeingChangeLook") return; + } const int type = msg.readInt8(); int id = 0; @@ -292,7 +299,10 @@ void BeingHandler::processBeingChangeLook(Net::MessageIn &msg, dstBeing->setOtherTime(); if (!player_node) + { + BLOCK_END("BeingHandler::processBeingChangeLook") return; + } switch (type) { @@ -388,12 +398,17 @@ void BeingHandler::processBeingChangeLook(Net::MessageIn &msg, logger->log("name: " + toString(dstBeing->getName())); break; } + BLOCK_END("BeingHandler::processBeingChangeLook") } void BeingHandler::processNameResponse2(Net::MessageIn &msg) { + BLOCK_START("BeingHandler::processNameResponse2") if (!actorManager || !player_node) + { + BLOCK_END("BeingHandler::processNameResponse2") return; + } const int len = msg.readInt16(); const int beingId = msg.readInt32(); @@ -429,13 +444,18 @@ void BeingHandler::processNameResponse2(Net::MessageIn &msg) } } } + BLOCK_END("BeingHandler::processNameResponse2") } void BeingHandler::processPlayerMoveUpdate(Net::MessageIn &msg, const int msgType) const { + BLOCK_START("BeingHandler::processPlayerMoveUpdate") if (!actorManager || !player_node) + { + BLOCK_END("BeingHandler::processPlayerMoveUpdate") return; + } // An update about a player, potentially including movement. const int id = msg.readInt32(); @@ -453,12 +473,18 @@ void BeingHandler::processPlayerMoveUpdate(Net::MessageIn &msg, if (!dstBeing) { if (actorManager->isBlocked(id) == true) + { + BLOCK_END("BeingHandler::processPlayerMoveUpdate") return; + } dstBeing = createBeing(id, job); if (!dstBeing) + { + BLOCK_END("BeingHandler::processPlayerMoveUpdate") return; + } } else if (disguiseId) { @@ -651,12 +677,17 @@ void BeingHandler::processPlayerMoveUpdate(Net::MessageIn &msg, if (msgType == 3 && dstBeing->getType() == ActorType::PLAYER) dstBeing->setMoveTime(); + BLOCK_END("BeingHandler::processPlayerMoveUpdate") } void BeingHandler::processBeingMove3(Net::MessageIn &msg) { + BLOCK_START("BeingHandler::processBeingMove3") if (serverVersion < 10) + { + BLOCK_END("BeingHandler::processBeingMove3") return; + } static const int16_t dirx[8] = {0, -1, -1, -1, 0, 1, 1, 1}; static const int16_t diry[8] = {1, 1, 0, -1, -1, -1, 0, 1}; @@ -664,7 +695,10 @@ void BeingHandler::processBeingMove3(Net::MessageIn &msg) const int len = msg.readInt16() - 14; Being *const dstBeing = actorManager->findBeing(msg.readInt32()); if (!dstBeing) + { + BLOCK_END("BeingHandler::processBeingMove3") return; + } const int16_t speed = msg.readInt16(); dstBeing->setWalkSpeed(Vector(speed, speed, 0)); int16_t x = msg.readInt16(); @@ -690,6 +724,7 @@ void BeingHandler::processBeingMove3(Net::MessageIn &msg) delete [] moves; } dstBeing->setPath(path); + BLOCK_END("BeingHandler::processBeingMove3") } } // namespace TmwAthena |