From 4bbe001b15dec9cacd882ee55fe54f85c56a147f Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 15 Dec 2024 15:50:25 +0300 Subject: Steam: service calls switched to static handlers --- protocols/Steam/src/steam_messages.cpp | 60 ---------------------------------- 1 file changed, 60 deletions(-) (limited to 'protocols/Steam/src/steam_messages.cpp') diff --git a/protocols/Steam/src/steam_messages.cpp b/protocols/Steam/src/steam_messages.cpp index b5a89e3c8c..17da66fbb7 100644 --- a/protocols/Steam/src/steam_messages.cpp +++ b/protocols/Steam/src/steam_messages.cpp @@ -1,65 +1,5 @@ #include "stdafx.h" -int CSteamProto::SendMsg(MCONTACT hContact, MEVENT, const char *message) -{ - if (!IsOnline()) - return -1; - - UINT hMessage = InterlockedIncrement(&hMessageProcess); - CMStringA szId(FORMAT, "%d", hMessage); - { - mir_cslock lck(m_csOwnMessages); - m_arOwnMessages.insert(new COwnMessage(hContact, hMessage)); - } - - CFriendMessagesSendMessageRequest request; - request.chat_entry_type = (int)EChatEntryType::ChatMsg; request.has_chat_entry_type = true; - request.client_message_id = szId.GetBuffer(); - request.contains_bbcode = request.has_contains_bbcode = true; - request.steamid = GetId(hContact, DBKEY_STEAM_ID); request.has_steamid = true; - request.message = (char *)message; - WSSendClient("FriendMessages.SendMessage#1", request, &CSteamProto::OnMessageSent); - - return hMessage; -} - -void CSteamProto::OnMessageSent(const uint8_t *buf, size_t cbLen) -{ - proto::FriendMessagesSendMessageResponse reply(buf, cbLen); - if (!reply) - return; - - COwnMessage *pOwn; - { - mir_cslock lck(m_csOwnMessages); - pOwn = m_arOwnMessages.find((COwnMessage *)&reply->ordinal); - } - - if (pOwn) { - uint32_t timestamp = (reply->has_server_timestamp) ? reply->server_timestamp : 0; - if (timestamp > getDword(pOwn->hContact, DB_KEY_LASTMSGTS)) - setDword(pOwn->hContact, DB_KEY_LASTMSGTS, timestamp); - - pOwn->timestamp = timestamp; - ProtoBroadcastAck(pOwn->hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)pOwn->iMessageId, 0); - } -} - -int CSteamProto::OnPreCreateMessage(WPARAM, LPARAM lParam) -{ - MessageWindowEvent *evt = (MessageWindowEvent *)lParam; - if (mir_strcmp(Proto_GetBaseAccountName(evt->hContact), m_szModuleName)) - return 0; - - mir_cslock lck(m_csOwnMessages); - if (auto *pOwn = m_arOwnMessages.find((COwnMessage *)&evt->seq)) { - evt->dbei->timestamp = pOwn->timestamp; - m_arOwnMessages.remove(pOwn); - } - - return 0; -} - int CSteamProto::UserIsTyping(MCONTACT hContact, int type) { // NOTE: Steam doesn't support sending "user stopped typing" so we're sending only positive info -- cgit v1.2.3