summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-08-25 23:55:43 +0300
committerAndrei Karas <akaras@inbox.ru>2017-08-25 23:55:43 +0300
commitd0768817618143739b8fd81cfa9124e8f60e1b12 (patch)
tree94450009f3bf4cd7726250633865f0a112f625fb /src/net/eathena
parentf7d3792df9fd01ea7baabaf9b612031b1f28d7ab (diff)
downloadplus-d0768817618143739b8fd81cfa9124e8f60e1b12.tar.gz
plus-d0768817618143739b8fd81cfa9124e8f60e1b12.tar.bz2
plus-d0768817618143739b8fd81cfa9124e8f60e1b12.tar.xz
plus-d0768817618143739b8fd81cfa9124e8f60e1b12.zip
Validate destination name after it entered in mail edit window.
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/mail2handler.cpp7
-rw-r--r--src/net/eathena/mail2handler.h2
-rw-r--r--src/net/eathena/mail2recv.cpp22
-rw-r--r--src/net/eathena/mail2recv.h1
4 files changed, 30 insertions, 2 deletions
diff --git a/src/net/eathena/mail2handler.cpp b/src/net/eathena/mail2handler.cpp
index bc749b0bf..ae48fc3ed 100644
--- a/src/net/eathena/mail2handler.cpp
+++ b/src/net/eathena/mail2handler.cpp
@@ -49,6 +49,7 @@ Mail2Handler::Mail2Handler()
Mail2Handler::~Mail2Handler()
{
mail2Handler = nullptr;
+ Mail2Recv::mCheckedName.clear();
while (!Mail2Recv::mMailQueue.empty())
{
MailQueue *const mail = Mail2Recv::mMailQueue.front();
@@ -135,6 +136,7 @@ void Mail2Handler::sendMail(const std::string &to,
outMsg.writeInt32(0, "to char id");
outMsg.writeString(title, titleSz, "title");
outMsg.writeString(body, bodySz, "body");
+ Mail2Recv::mCheckedName.clear();
}
void Mail2Handler::queueCheckName(const MailQueueTypeT type,
@@ -274,4 +276,9 @@ void Mail2Handler::requestCheckName(const std::string &name) const
outMsg.writeString(name, 24, "name");
}
+std::string Mail2Handler::getCheckedName() const
+{
+ return Mail2Recv::mCheckedName;
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/mail2handler.h b/src/net/eathena/mail2handler.h
index f6f217579..c7d15dc78 100644
--- a/src/net/eathena/mail2handler.h
+++ b/src/net/eathena/mail2handler.h
@@ -79,6 +79,8 @@ class Mail2Handler final : public Net::Mail2Handler
void cancelWriteMail() const override final;
void requestCheckName(const std::string &name) const override final;
+
+ std::string getCheckedName() const override final;
};
} // namespace EAthena
diff --git a/src/net/eathena/mail2recv.cpp b/src/net/eathena/mail2recv.cpp
index 3da4ae4c5..fe36172b9 100644
--- a/src/net/eathena/mail2recv.cpp
+++ b/src/net/eathena/mail2recv.cpp
@@ -63,6 +63,7 @@ namespace EAthena
namespace Mail2Recv
{
std::queue<MailQueue*> mMailQueue;
+ std::string mCheckedName;
} // namespace Mail2Recv
void Mail2Recv::processMailIcon(Net::MessageIn &msg)
@@ -255,6 +256,7 @@ void Mail2Recv::processCheckNameResult(Net::MessageIn &msg)
delete mail;
return;
}
+ mCheckedName = mail->to;
switch (mail->type)
{
case MailQueueType::SendMail:
@@ -264,10 +266,26 @@ void Mail2Recv::processCheckNameResult(Net::MessageIn &msg)
mail->money);
break;
case MailQueueType::EditMail:
- mailWindow->createMail(mail->to);
+ if (mailWindow == nullptr)
+ {
+ reportAlways("Mail window not created");
+ }
+ else
+ {
+ mailWindow->createMail(mail->to);
+ }
+ break;
+ case MailQueueType::ValidateTo:
+ if (mailEditWindow == nullptr)
+ {
+ reportAlways("Mail edit window not created");
+ }
+ else
+ {
+ mailEditWindow->validatedTo();
+ }
break;
case MailQueueType::Unknown:
- case MailQueueType::ValidateTO:
default:
reportAlways("Not implemented yet.");
break;
diff --git a/src/net/eathena/mail2recv.h b/src/net/eathena/mail2recv.h
index dd867618e..dc575b0c8 100644
--- a/src/net/eathena/mail2recv.h
+++ b/src/net/eathena/mail2recv.h
@@ -35,6 +35,7 @@ namespace EAthena
namespace Mail2Recv
{
extern std::queue<MailQueue*> mMailQueue;
+ extern std::string mCheckedName;
void processMailIcon(Net::MessageIn &msg);
void processOpenNewMailWindow(Net::MessageIn &msg);