aboutsummaryrefslogtreecommitdiff
path: root/src/game/Mail.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-09-01 17:09:39 -0500
committermegamage <none@none>2009-09-01 17:09:39 -0500
commit176a710e72b6e9c81e6b84967faae17d9f84f3af (patch)
tree6cce15b108373c70a1a4fb549c10b4de280e8c84 /src/game/Mail.cpp
parent28e229d8a894619629e8c5bd745fcc274b417729 (diff)
[8442] Fixed displaying return button in mails Author: arrai
--HG-- branch : trunk
Diffstat (limited to 'src/game/Mail.cpp')
-rw-r--r--src/game/Mail.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/game/Mail.cpp b/src/game/Mail.cpp
index d50a1715952..d0e75f425ab 100644
--- a/src/game/Mail.cpp
+++ b/src/game/Mail.cpp
@@ -37,8 +37,8 @@ enum MailShowFlags
MAIL_SHOW_UNK0 = 0x0001,
MAIL_SHOW_DELETE = 0x0002, // forced show delete button instead return button
MAIL_SHOW_AUCTION = 0x0004, // from old comment
- MAIL_SHOW_COD = 0x0008, // show subject prefix
- MAIL_SHOW_UNK4 = 0x0010,
+ MAIL_SHOW_UNK2 = 0x0008, // unknown, COD will be shown even without that flag
+ MAIL_SHOW_RETURN = 0x0010,
};
void MailItem::deleteItem( bool inDB )
@@ -321,14 +321,15 @@ void WorldSession::HandleMailDelete(WorldPacket & recv_data )
Mail *m = _player->GetMail(mailId);
if(m)
{
- if (m->COD > 0)
+ // delete shouldn't show up for COD mails
+ if (m->COD)
+ {
+ pl->SendMailResult(mailId, MAIL_DELETED, MAIL_ERR_INTERNAL_ERROR);
return;
- m->state = MAIL_STATE_DELETED;
- }
-
- Player* pl = _player;
- pl->m_mailsUpdated = true;
+ }
+ m->state = MAIL_STATE_DELETED;
+ }
pl->SendMailResult(mailId, MAIL_DELETED, MAIL_OK);
}
@@ -605,8 +606,8 @@ void WorldSession::HandleGetMailList(WorldPacket & recv_data )
show_flags |= MAIL_SHOW_DELETE;
if ((*itr)->messageType == MAIL_AUCTION)
show_flags |= MAIL_SHOW_AUCTION;
- if ((*itr)->COD)
- show_flags |= MAIL_SHOW_COD;
+ if ((*itr)->HasItems() && (*itr)->messageType == MAIL_NORMAL)
+ show_flags |= MAIL_SHOW_RETURN;
data << (uint16) 0x0040; // unknown 2.3.0, different values
data << (uint32) (*itr)->messageID; // Message ID