From 79864826790a33a3583819fe02893eed010381d9 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 23 Aug 2017 20:34:31 +0300 Subject: Add mailqueuetype enum for mail queue types. --- src/CMakeLists.txt | 1 + src/Makefile.am | 1 + src/actions/commands.cpp | 8 +++----- src/enums/resources/mailqueuetype.h | 35 +++++++++++++++++++++++++++++++++++ src/net/eathena/mail2handler.cpp | 15 +++++++-------- src/net/eathena/mail2handler.h | 9 +++++---- src/net/eathena/mail2recv.cpp | 22 +++++++++++++--------- src/net/mail2handler.h | 11 +++++++---- src/net/tmwa/mail2handler.cpp | 10 +++++----- src/net/tmwa/mail2handler.h | 9 +++++---- src/resources/mailqueue.h | 6 ++++-- 11 files changed, 86 insertions(+), 41 deletions(-) create mode 100644 src/enums/resources/mailqueuetype.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6ef09d849..71ab89d2b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -701,6 +701,7 @@ SET(SRCS enums/resources/frametype.h enums/resources/imageposition.h enums/resources/imagetype.h + enums/resources/mailqueuetype.h enums/resources/map/maplayertype.h enums/resources/item/itemdbtype.h enums/resources/item/itemsoundevent.h diff --git a/src/Makefile.am b/src/Makefile.am index 3e498f10c..455274823 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1459,6 +1459,7 @@ SRC = ${BASE_SRC} \ enums/resources/frametype.h \ enums/resources/imageposition.h \ enums/resources/imagetype.h \ + enums/resources/mailqueuetype.h \ enums/resources/map/maplayertype.h \ enums/resources/item/itemdbtype.h \ enums/resources/item/itemsoundevent.h \ diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 18560f8df..557d7891a 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -567,14 +567,12 @@ impHandler(sendMail) { if (settings.enableNewMailSystem) { - if (mail2Handler->queueSendMail(name, + mail2Handler->queueCheckName(MailQueueType::SendMail, + name, // TRANSLATORS: quick mail message caption _("Quick message"), text, - 0)) - { - mail2Handler->requestCheckName(name); - } + 0); } else { diff --git a/src/enums/resources/mailqueuetype.h b/src/enums/resources/mailqueuetype.h new file mode 100644 index 000000000..c4fb6162f --- /dev/null +++ b/src/enums/resources/mailqueuetype.h @@ -0,0 +1,35 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2017 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef ENUMS_RESOURCES_MAILQUEUETYPE_H +#define ENUMS_RESOURCES_MAILQUEUETYPE_H + +#include "enums/simpletypes/enumdefines.h" + +enumStart(MailQueueType) +{ + Unknown = 0, + SendMail = 1, + EditMail = 2, + ValidateTO = 3 +} +enumEnd(MailQueueType); + +#endif // ENUMS_RESOURCES_MAILQUEUETYPE_H diff --git a/src/net/eathena/mail2handler.cpp b/src/net/eathena/mail2handler.cpp index f3ed3201d..1b19e4823 100644 --- a/src/net/eathena/mail2handler.cpp +++ b/src/net/eathena/mail2handler.cpp @@ -140,21 +140,20 @@ void Mail2Handler::sendMail(const std::string &to, outMsg.writeString(body, bodySz, "body"); } -bool Mail2Handler::queueSendMail(const std::string &to, - const std::string &title, - const std::string &body, - const int64_t &money) const +void Mail2Handler::queueCheckName(const MailQueueTypeT type, + const std::string &to, + const std::string &title, + const std::string &body, + const int64_t &money) const { - if (!Mail2Recv::mMailQueue.empty()) - return false; MailQueue *const mail = new MailQueue; mail->to = to; mail->title = title; mail->body = body; mail->money = money; - mail->sendMail = true; + mail->type = type; Mail2Recv::mMailQueue.push(mail); - return true; + requestCheckName(to); } void Mail2Handler::nextPage(const MailOpenTypeT openType, diff --git a/src/net/eathena/mail2handler.h b/src/net/eathena/mail2handler.h index 8e450da9d..0b7957375 100644 --- a/src/net/eathena/mail2handler.h +++ b/src/net/eathena/mail2handler.h @@ -48,10 +48,11 @@ class Mail2Handler final : public Net::Mail2Handler const std::string &body, const int64_t &money) const override final; - bool queueSendMail(const std::string &to, - const std::string &title, - const std::string &body, - const int64_t &money) const override final; + void queueCheckName(const MailQueueTypeT type, + const std::string &to, + const std::string &title, + const std::string &body, + const int64_t &money) const override final; void nextPage(const MailOpenTypeT openType, const int64_t mailId) const override final; diff --git a/src/net/eathena/mail2recv.cpp b/src/net/eathena/mail2recv.cpp index 1af7d47e2..04f7751a3 100644 --- a/src/net/eathena/mail2recv.cpp +++ b/src/net/eathena/mail2recv.cpp @@ -116,16 +116,20 @@ void Mail2Recv::processCheckNameResult(Net::MessageIn &msg) delete mail; return; } - if (mail->sendMail) + switch (mail->type) { - mail2Handler->sendMail(mail->to, - mail->title, - mail->body, - mail->money); - } - else - { - reportAlways("Not implemented yet."); + case MailQueueType::SendMail: + mail2Handler->sendMail(mail->to, + mail->title, + mail->body, + mail->money); + break; + case MailQueueType::Unknown: + case MailQueueType::EditMail: + case MailQueueType::ValidateTO: + default: + reportAlways("Not implemented yet."); + break; } delete mail; } diff --git a/src/net/mail2handler.h b/src/net/mail2handler.h index 2fd0f594c..47b441f77 100644 --- a/src/net/mail2handler.h +++ b/src/net/mail2handler.h @@ -23,6 +23,8 @@ #include "enums/net/mailopentype.h" +#include "enums/resources/mailqueuetype.h" + #include #include "localconsts.h" @@ -56,10 +58,11 @@ class Mail2Handler notfinal const std::string &body, const int64_t &money) const = 0; - virtual bool queueSendMail(const std::string &to, - const std::string &title, - const std::string &body, - const int64_t &money) const = 0; + virtual void queueCheckName(const MailQueueTypeT type, + const std::string &to, + const std::string &title, + const std::string &body, + const int64_t &money) const = 0; virtual void nextPage(const MailOpenTypeT openType, const int64_t mailId) const = 0; diff --git a/src/net/tmwa/mail2handler.cpp b/src/net/tmwa/mail2handler.cpp index b964af8cd..d79e9585e 100644 --- a/src/net/tmwa/mail2handler.cpp +++ b/src/net/tmwa/mail2handler.cpp @@ -56,12 +56,12 @@ void Mail2Handler::sendMail(const std::string &to A_UNUSED, { } -bool Mail2Handler::queueSendMail(const std::string &to A_UNUSED, - const std::string &title A_UNUSED, - const std::string &body A_UNUSED, - const int64_t &money A_UNUSED) const +void Mail2Handler::queueCheckName(const MailQueueTypeT type A_UNUSED, + const std::string &to A_UNUSED, + const std::string &title A_UNUSED, + const std::string &body A_UNUSED, + const int64_t &money A_UNUSED) const { - return false; } void Mail2Handler::nextPage(const MailOpenTypeT openType A_UNUSED, diff --git a/src/net/tmwa/mail2handler.h b/src/net/tmwa/mail2handler.h index 6a3b1639b..e39e99347 100644 --- a/src/net/tmwa/mail2handler.h +++ b/src/net/tmwa/mail2handler.h @@ -48,10 +48,11 @@ class Mail2Handler final : public Net::Mail2Handler const std::string &body, const int64_t &money) const override final; - bool queueSendMail(const std::string &to, - const std::string &title, - const std::string &body, - const int64_t &money) const override final; + void queueCheckName(const MailQueueTypeT type, + const std::string &to, + const std::string &title, + const std::string &body, + const int64_t &money) const override final; void nextPage(const MailOpenTypeT openType, const int64_t mailId) const override final; diff --git a/src/resources/mailqueue.h b/src/resources/mailqueue.h index bf694ad91..6f8fe83ff 100644 --- a/src/resources/mailqueue.h +++ b/src/resources/mailqueue.h @@ -21,6 +21,8 @@ #ifndef RESOURCES_MAILQUEUE_H #define RESOURCES_MAILQUEUE_H +#include "enums/resources/mailqueuetype.h" + #include "localconsts.h" #include @@ -32,7 +34,7 @@ struct MailQueue final title(), body(), money(0), - sendMail(false) + type(MailQueueType::Unknown) { } A_DELETE_COPY(MailQueue) @@ -41,7 +43,7 @@ struct MailQueue final std::string title; std::string body; int money; - bool sendMail; + MailQueueTypeT type; }; #endif // RESOURCES_MAILQUEUE_H -- cgit v1.2.3-70-g09d2