예제 #1
0
파일: MailMgr.cpp 프로젝트: hpljack/AscEmu
void MailSystem::SendAutomatedMessage(uint32 type, uint64 sender, uint64 receiver, std::string subject, std::string body,
                                      uint32 money, uint32 cod, std::vector<uint64> &item_guids, uint32 stationery, MailCheckMask checked, uint32 deliverdelay)
{
    // This is for sending automated messages, for example from an auction house.
    MailMessage msg;
    msg.message_type = type;
    msg.sender_guid = sender;
    msg.player_guid = receiver;
    msg.subject = subject;
    msg.body = body;
    msg.money = money;
    msg.cod = cod;
    for (std::vector<uint64>::iterator itr = item_guids.begin(); itr != item_guids.end(); ++itr)
        msg.items.push_back(Arcemu::Util::GUID_LOPART(*itr));

    msg.stationery = stationery;
    msg.delivery_time = (uint32)UNIXTIME + deliverdelay;

    // 30 days expiration time for unread mail + possible delivery delay.
    if (!sMailSystem.MailOption(MAIL_FLAG_NO_EXPIRY))
        msg.expire_time = (uint32)UNIXTIME + deliverdelay + (TIME_DAY * MAIL_DEFAULT_EXPIRATION_TIME);
    else
        msg.expire_time = 0;

    msg.deleted_flag = false;
    msg.checked_flag = checked;

    // Send the message.
    DeliverMessage(receiver, &msg);
}
예제 #2
0
void
PlaylistObserver::ImportFailed()
{
    BMessage message(MSG_PLAYLIST_IMPORT_FAILED);

    DeliverMessage(message);
}
예제 #3
0
void
PlaylistObserver::ItemsSorted()
{
    BMessage message(MSG_PLAYLIST_ITEMS_SORTED);

    DeliverMessage(message);
}
예제 #4
0
void MailSystem::SendAutomatedMessage(uint32 type, uint64 sender, uint64 receiver, string subject, string body,
									  uint32 money, uint32 cod, uint64 item_guid, uint32 stationary)
{
	// This is for sending automated messages, for example from an auction house.
	MailMessage msg;
	msg.message_type = type;
	msg.sender_guid = sender;
	msg.player_guid = receiver;
	msg.subject = subject;
	msg.body = body;
	msg.money = money;
	msg.cod = cod;
	if( GUID_LOPART(item_guid) != 0 )
		msg.items.push_back( GUID_LOPART(item_guid) );

	msg.stationary = stationary;
	msg.delivery_time = (uint32)UNIXTIME;
	msg.expire_time = (uint32)UNIXTIME + (TIME_DAY * MAIL_DEFAULT_EXPIRATION_TIME);
	msg.read_flag = false;
	msg.copy_made = false;
	msg.deleted_flag = false;

	// Send the message.
	DeliverMessage(receiver, &msg);
}
예제 #5
0
// Execute
void
MessageEvent::Execute()
{
	BMessage msg(fCommand);
	msg.AddInt64("time", Time());
	DeliverMessage(msg);
}
예제 #6
0
void
PlaylistObserver::CurrentItemChanged(int32 newIndex)
{
    BMessage message(MSG_PLAYLIST_CURRENT_ITEM_CHANGED);
    message.AddInt32("index", newIndex);

    DeliverMessage(message);
}
예제 #7
0
void
PlaylistObserver::ItemRemoved(int32 index)
{
    BMessage message(MSG_PLAYLIST_ITEM_REMOVED);
    message.AddInt32("index", index);

    DeliverMessage(message);
}
예제 #8
0
// ObjectChanged
void
ListenerAdapter::ObjectChanged(const Notifier* object)
{
	BMessage message(MSG_OBJECT_CHANGED);
	message.AddPointer("object", object);

	DeliverMessage(message);
}
예제 #9
0
void
PlaylistObserver::ItemAdded(PlaylistItem* item, int32 index)
{
    BMessage message(MSG_PLAYLIST_ITEM_ADDED);
    message.AddPointer("item", item);
    message.AddInt32("index", index);

    DeliverMessage(message);
}
예제 #10
0
BOOL CXTPMouseManager::PreTranslateMouseEvents(WPARAM wParam, POINT point)
{
	HWND hWndMouse = ::WindowFromPoint(point);
	CTrackArray& arrTracked = m_arrTracked;
	int i;

	for (i = (int)arrTracked.GetSize() - 1; i >= 0; i--)
	{
		CXTPCommandBar* pCommandBar = arrTracked[i];

		if (!pCommandBar->GetSafeHwnd())
			continue;

		int nHtCode = pCommandBar->OnMouseHitTest(point);

		if ((nHtCode != HTERROR) && ((nHtCode == HTCLIENT) || ::IsChild(pCommandBar->GetSafeHwnd(), hWndMouse) || IsRelated(pCommandBar->GetSafeHwnd(), hWndMouse)))
		{
			if (pCommandBar->m_nLockRecurse > 0 && wParam != WM_MOUSEMOVE && wParam != WM_NCMOUSEMOVE && !m_bIgnoreLButtonUp)
			{
				SendTrackLostRecurse();
				ptMouse = 0;
			}
			return FALSE;
		}
	}

	if (arrTracked.GetSize() > 0)
	{
		CTrustedArray& arrTrusted = m_arrTrusted;
		for (i = 0; i < arrTrusted.GetSize(); i++)
		{
			HWND hWnd = arrTrusted[i];
			if (IsWindow(hWnd) && IsWindowVisible(hWnd) && CXTPWindowRect(hWnd).PtInRect(point))
			{
				return FALSE;
			}
		}

	}

	if (hWndMouse && arrTracked.GetSize() > 0)
	{
		if (GetClassLong(hWndMouse, GCL_STYLE) & CS_IME)
			return FALSE;
	}

	for (i = 0; i < arrTracked.GetSize(); i++)
	{
		DeliverMessage(arrTracked.GetAt(i), wParam, point);
	}

	return FALSE;

}
예제 #11
0
void MailSystem::SendAutomatedMessage(uint32 type, uint64 sender, uint64 receiver, string subject, string body,
                                      uint32 money, uint32 cod, vector<uint64> &item_guids, uint32 stationery, MailCheckMask checked, uint32 deliverdelay)
{
	// This is for sending automated messages, for example from an auction house.
	MailMessage msg;
	msg.message_type = type;
	msg.sender_guid = sender;
	msg.player_guid = receiver;
	msg.subject = subject;
	msg.body = body;
	msg.money = money;
	msg.cod = cod;
	for(vector<uint64>::iterator itr = item_guids.begin(); itr != item_guids.end(); ++itr)
		msg.items.push_back(Arcemu::Util::GUID_LOPART(*itr));

	msg.stationery = stationery;
	msg.delivery_time = (uint32)UNIXTIME + deliverdelay;
	msg.expire_time = 0;
	msg.deleted_flag = false;
	msg.checked_flag = checked;

	// Send the message.
	DeliverMessage(receiver, &msg);
}
예제 #12
0
// DeliverMessage
void
AbstractLOAdapter::DeliverMessage(uint32 command)
{
	BMessage message(command);
	DeliverMessage(&message);
}
예제 #13
0
// DeliverMessage
void
AbstractLOAdapter::DeliverMessage(BMessage& message)
{
	DeliverMessage(&message);
}