summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/net')
-rw-r--r--src/net/ea/npcrecv.cpp4
-rw-r--r--src/net/eathena/beingrecv.cpp9
-rw-r--r--src/net/eathena/buyingstorerecv.cpp9
-rw-r--r--src/net/eathena/chatrecv.cpp9
-rw-r--r--src/net/eathena/guildrecv.cpp17
-rw-r--r--src/net/eathena/mailrecv.cpp1
-rw-r--r--src/net/eathena/npcrecv.cpp14
-rw-r--r--src/net/eathena/partyrecv.cpp14
-rw-r--r--src/net/eathena/vendingrecv.cpp9
-rw-r--r--src/net/tmwa/beingrecv.cpp7
-rw-r--r--src/net/tmwa/chatrecv.cpp13
-rw-r--r--src/net/tmwa/partyrecv.cpp8
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)