diff options
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/ea/npcrecv.cpp | 4 | ||||
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 9 | ||||
-rw-r--r-- | src/net/eathena/buyingstorerecv.cpp | 9 | ||||
-rw-r--r-- | src/net/eathena/chatrecv.cpp | 9 | ||||
-rw-r--r-- | src/net/eathena/guildrecv.cpp | 17 | ||||
-rw-r--r-- | src/net/eathena/mailrecv.cpp | 1 | ||||
-rw-r--r-- | src/net/eathena/npcrecv.cpp | 14 | ||||
-rw-r--r-- | src/net/eathena/partyrecv.cpp | 14 | ||||
-rw-r--r-- | src/net/eathena/vendingrecv.cpp | 9 | ||||
-rw-r--r-- | src/net/tmwa/beingrecv.cpp | 7 | ||||
-rw-r--r-- | src/net/tmwa/chatrecv.cpp | 13 | ||||
-rw-r--r-- | src/net/tmwa/partyrecv.cpp | 8 |
12 files changed, 93 insertions, 21 deletions
diff --git a/src/net/ea/npcrecv.cpp b/src/net/ea/npcrecv.cpp index 16060d6fa..098f07e79 100644 --- a/src/net/ea/npcrecv.cpp +++ b/src/net/ea/npcrecv.cpp @@ -236,9 +236,11 @@ void NpcRecv::processChangeTitle(Net::MessageIn &msg) msg.readInt16("len"); npcHandler->getNpc(msg, NpcAction::Other); mRequestLang = false; - const std::string str = msg.readString(-1, "title"); if (mDialog != nullptr) + { + const std::string str = msg.readString(-1, "title"); mDialog->setCaption(str); + } } } // namespace Ea diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp index ce2b3a581..8d986797b 100644 --- a/src/net/eathena/beingrecv.cpp +++ b/src/net/eathena/beingrecv.cpp @@ -2079,9 +2079,12 @@ void BeingRecv::processSkillCancel(Net::MessageIn &msg) void BeingRecv::processSolveCharName(Net::MessageIn &msg) { const int id = msg.readInt32("char id"); - const std::string name = msg.readString(24, "name"); - if (actorManager != nullptr) - actorManager->addChar(id, name); + if (actorManager == nullptr) + { + msg.readString(24, "name"); + return; + } + actorManager->addChar(id, msg.readString(24, "name")); } void BeingRecv::processGraffiti(Net::MessageIn &msg) diff --git a/src/net/eathena/buyingstorerecv.cpp b/src/net/eathena/buyingstorerecv.cpp index 55c1624f9..bf5d2032b 100644 --- a/src/net/eathena/buyingstorerecv.cpp +++ b/src/net/eathena/buyingstorerecv.cpp @@ -94,10 +94,15 @@ void BuyingStoreRecv::processBuyingStoreOwnItems(Net::MessageIn &msg) void BuyingStoreRecv::processBuyingStoreShowBoard(Net::MessageIn &msg) { const BeingId id = msg.readBeingId("owner id"); - const std::string shopName = msg.readString(80, "shop name"); Being *const dstBeing = actorManager->findBeing(id); if (dstBeing != nullptr) - dstBeing->setBuyBoard(shopName); + { + dstBeing->setBuyBoard(msg.readString(80, "shop name")); + } + else + { + msg.readString(80, "shop name"); + } } void BuyingStoreRecv::processBuyingStoreHideBoard(Net::MessageIn &msg) diff --git a/src/net/eathena/chatrecv.cpp b/src/net/eathena/chatrecv.cpp index d52183962..97f0de803 100644 --- a/src/net/eathena/chatrecv.cpp +++ b/src/net/eathena/chatrecv.cpp @@ -295,9 +295,16 @@ void ChatRecv::processGmChat2(Net::MessageIn &msg) msg.readInt16("font size"); msg.readInt16("font align"); msg.readInt16("font y"); - const std::string chatMsg = msg.readRawString(chatMsgLength, "message"); if (chatWindow != nullptr) + { + const std::string chatMsg = msg.readRawString(chatMsgLength, + "message"); chatWindow->addGlobalMessage(chatMsg); + } + else + { + msg.readRawString(chatMsgLength, "message"); + } } void ChatRecv::processWhisper(Net::MessageIn &msg) diff --git a/src/net/eathena/guildrecv.cpp b/src/net/eathena/guildrecv.cpp index 7f17f57db..d235c23bb 100644 --- a/src/net/eathena/guildrecv.cpp +++ b/src/net/eathena/guildrecv.cpp @@ -377,22 +377,33 @@ void GuildRecv::processGuildSkillInfo(Net::MessageIn &msg) void GuildRecv::processGuildNotice(Net::MessageIn &msg) { - const std::string msg1 = msg.readString(60, "msg1"); - const std::string msg2 = msg.readString(120, "msg2"); if (guildTab != nullptr) { + const std::string msg1 = msg.readString(60, "msg1"); + const std::string msg2 = msg.readString(120, "msg2"); guildTab->chatLog(msg1, ChatMsgType::BY_SERVER); guildTab->chatLog(msg2, ChatMsgType::BY_SERVER); } + else + { + msg.readString(60, "msg1"); + msg.readString(120, "msg2"); + } } void GuildRecv::processGuildInvite(Net::MessageIn &msg) { const int guildId = msg.readInt32("guild id"); - const std::string guildName = msg.readString(24, "guild name"); if (socialWindow != nullptr) + { + const std::string guildName = msg.readString(24, "guild name"); socialWindow->showGuildInvite(guildName, guildId, ""); + } + else + { + msg.readString(24, "guild name"); + } } void GuildRecv::processGuildInviteAck(Net::MessageIn &msg) diff --git a/src/net/eathena/mailrecv.cpp b/src/net/eathena/mailrecv.cpp index 5e5f0939a..b51e418a6 100644 --- a/src/net/eathena/mailrecv.cpp +++ b/src/net/eathena/mailrecv.cpp @@ -123,6 +123,7 @@ void MailRecv::processReadMail(Net::MessageIn &msg) if (!mailWindow) { reportAlways("Mail window not created"); + delete mail; return; } mailWindow->showMessage(mail, itemId != 0 ? 1 : 0); diff --git a/src/net/eathena/npcrecv.cpp b/src/net/eathena/npcrecv.cpp index 875718768..535e57d7c 100644 --- a/src/net/eathena/npcrecv.cpp +++ b/src/net/eathena/npcrecv.cpp @@ -45,6 +45,12 @@ namespace NpcRecv void NpcRecv::processNpcCutin(Net::MessageIn &msg) { Ea::NpcRecv::mRequestLang = false; + if (cutInWindow == nullptr) + { + msg.readString(64, "image name"); + msg.readUInt8("type"); + return; + } const std::string image = msg.readString(64, "image name"); const CutInT cutin = static_cast<CutInT>(msg.readUInt8("type")); if (cutInWindow != nullptr) @@ -112,9 +118,15 @@ void NpcRecv::processNpcSkin(Net::MessageIn &msg) { const int len = msg.readInt16("len"); npcHandler->getNpc(msg, NpcAction::Other); - const std::string skin = msg.readString(len - 8, "skin"); if (Ea::NpcRecv::mDialog != nullptr) + { + const std::string skin = msg.readString(len - 8, "skin"); Ea::NpcRecv::mDialog->setSkin(skin); + } + else + { + msg.readString(len - 8, "skin"); + } } } // namespace EAthena diff --git a/src/net/eathena/partyrecv.cpp b/src/net/eathena/partyrecv.cpp index 2f6482ac1..9ce0dbdce 100644 --- a/src/net/eathena/partyrecv.cpp +++ b/src/net/eathena/partyrecv.cpp @@ -176,9 +176,15 @@ void PartyRecv::processPartyInfo(Net::MessageIn &msg) Ea::taParty->clearMembers(); const int length = msg.readInt16("len"); - const std::string name = msg.readString(24, "party name"); if (Ea::taParty != nullptr) + { + const std::string name = msg.readString(24, "party name"); Ea::taParty->setName(name); + } + else + { + msg.readString(24, "party name"); + } int partySize = 0; int offset = 0; @@ -370,6 +376,12 @@ void PartyRecv::processPartyLeader(Net::MessageIn &msg) void PartyRecv::processPartyInvited(Net::MessageIn &msg) { + if (socialWindow == nullptr) + { + msg.readInt32("party id"); + msg.readString(24, "party name"); + return; + } const int id = msg.readInt32("party id"); const std::string partyName = msg.readString(24, "party name"); diff --git a/src/net/eathena/vendingrecv.cpp b/src/net/eathena/vendingrecv.cpp index 33494fd33..d4f14bc87 100644 --- a/src/net/eathena/vendingrecv.cpp +++ b/src/net/eathena/vendingrecv.cpp @@ -75,10 +75,15 @@ void VendingRecv::processOpenReq(Net::MessageIn &msg) void VendingRecv::processShowBoard(Net::MessageIn &msg) { const BeingId id = msg.readBeingId("owner id"); - const std::string shopName = msg.readString(80, "shop name"); Being *const dstBeing = actorManager->findBeing(id); if (dstBeing != nullptr) - dstBeing->setSellBoard(shopName); + { + dstBeing->setSellBoard(msg.readString(80, "shop name")); + } + else + { + msg.readString(80, "shop name"); + } } void VendingRecv::processHideBoard(Net::MessageIn &msg) diff --git a/src/net/tmwa/beingrecv.cpp b/src/net/tmwa/beingrecv.cpp index 7b37d1438..d73abccc1 100644 --- a/src/net/tmwa/beingrecv.cpp +++ b/src/net/tmwa/beingrecv.cpp @@ -1398,11 +1398,16 @@ void BeingRecv::processIpResponse(Net::MessageIn &msg) Being *const dstBeing = actorManager->findBeing( msg.readBeingId("being id")); - const std::string ip = ipToString(msg.readInt32("ip address")); if (dstBeing != nullptr) + { + const std::string ip = ipToString(msg.readInt32("ip address")); dstBeing->setIp(ip); + } else + { + ipToString(msg.readInt32("ip address")); DEBUGLOGSTR("invisible player?"); + } BLOCK_END("BeingRecv::processIpResponse") } diff --git a/src/net/tmwa/chatrecv.cpp b/src/net/tmwa/chatrecv.cpp index d0ac861df..afa501004 100644 --- a/src/net/tmwa/chatrecv.cpp +++ b/src/net/tmwa/chatrecv.cpp @@ -129,12 +129,15 @@ void ChatRecv::processGmChat(Net::MessageIn &msg) return; } - std::string chatMsg = msg.readRawString(chatMsgLength, "message"); - - if (localChatTab != nullptr) + if (localChatTab != nullptr && + chatWindow != nullptr) + { + std::string chatMsg = msg.readRawString(chatMsgLength, "message"); + chatWindow->addGlobalMessage(chatMsg); + } + else { - if (chatWindow != nullptr) - chatWindow->addGlobalMessage(chatMsg); + msg.readRawString(chatMsgLength, "message"); } BLOCK_END("ChatRecv::processChat") } diff --git a/src/net/tmwa/partyrecv.cpp b/src/net/tmwa/partyrecv.cpp index 819b891d3..b25a501c8 100644 --- a/src/net/tmwa/partyrecv.cpp +++ b/src/net/tmwa/partyrecv.cpp @@ -224,7 +224,6 @@ void PartyRecv::processPartyInviteResponse(Net::MessageIn &msg) void PartyRecv::processPartyInvited(Net::MessageIn &msg) { const BeingId id = msg.readBeingId("account id"); - const std::string partyName = msg.readString(24, "party name"); std::string nick; if (actorManager != nullptr) @@ -238,7 +237,14 @@ void PartyRecv::processPartyInvited(Net::MessageIn &msg) } if (socialWindow != nullptr) + { + const std::string partyName = msg.readString(24, "party name"); socialWindow->showPartyInvite(partyName, nick, 0); + } + else + { + msg.readString(24, "party name"); + } } void PartyRecv::processPartyMove(Net::MessageIn &msg) |