summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/mail2recv.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/net/eathena/mail2recv.cpp b/src/net/eathena/mail2recv.cpp
index 392e679d6..0ed6f44f0 100644
--- a/src/net/eathena/mail2recv.cpp
+++ b/src/net/eathena/mail2recv.cpp
@@ -459,10 +459,31 @@ void Mail2Recv::processMailDelete(Net::MessageIn &msg)
void Mail2Recv::processRequestMoney(Net::MessageIn &msg)
{
- UNIMPLEMENTEDPACKET;
- msg.readInt64("mail id");
+ const int64_t mailId = msg.readInt64("mail id");
msg.readUInt8("open type");
- msg.readUInt8("result");
+ const int res = msg.readUInt8("result");
+ switch (res)
+ {
+ case 0:
+ NotifyManager::notify(
+ NotifyTypes::MAIL_GET_MONEY_OK);
+ if (mailViewWindow)
+ mailViewWindow->removeMoney(mailId);
+ break;
+ case 1:
+ NotifyManager::notify(
+ NotifyTypes::MAIL_GET_MONEY_ERROR);
+ break;
+ case 2:
+ NotifyManager::notify(
+ NotifyTypes::MAIL_GET_MONEY_LIMIT_ERROR);
+ break;
+ default:
+ UNIMPLEMENTEDPACKETFIELD(res);
+ NotifyManager::notify(
+ NotifyTypes::MAIL_GET_MONEY_ERROR);
+ break;
+ }
}
void Mail2Recv::processRequestItems(Net::MessageIn &msg)