From 4c60037f6852f7771ed86e0b285a872e4bbadb87 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 17 Jan 2023 14:37:50 +0300 Subject: PROTO_INTERFACE::GetAvatarPath - new helper for calculating avatars' root for an account --- protocols/Steam/src/steam_avatars.cpp | 12 ++++-------- protocols/Steam/src/steam_proto.cpp | 2 ++ 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'protocols/Steam/src') diff --git a/protocols/Steam/src/steam_avatars.cpp b/protocols/Steam/src/steam_avatars.cpp index 9a72b6fec0..cee909ed30 100644 --- a/protocols/Steam/src/steam_avatars.cpp +++ b/protocols/Steam/src/steam_avatars.cpp @@ -2,17 +2,13 @@ wchar_t* CSteamProto::GetAvatarFilePath(MCONTACT hContact) { - wchar_t path[MAX_PATH]; - mir_snwprintf(path, L"%s\\%S", VARSW(L"%miranda_avatarcache%").get(), m_szModuleName); - CreateDirectoryTreeW(path); - ptrA steamId(getStringA(hContact, "SteamID")); - if (steamId != NULL) - mir_snwprintf(path, MAX_PATH, L"%s\\%S.jpg", path, steamId.get()); - else + if (steamId == NULL) return nullptr; - return mir_wstrdup(path); + CMStringW wszPath(GetAvatarPath()); + wszPath.AppendFormat(L"\\%S.jpg", steamId.get()); + return wszPath.Detach(); } bool CSteamProto::GetDbAvatarInfo(PROTO_AVATAR_INFORMATION &pai) diff --git a/protocols/Steam/src/steam_proto.cpp b/protocols/Steam/src/steam_proto.cpp index f185171edd..8a2959f84a 100644 --- a/protocols/Steam/src/steam_proto.cpp +++ b/protocols/Steam/src/steam_proto.cpp @@ -49,6 +49,8 @@ CSteamProto::CSteamProto(const char *protoName, const wchar_t *userName) : SetAllContactStatuses(ID_STATUS_OFFLINE); // avatar API + CreateDirectoryTreeW(GetAvatarPath()); + CreateProtoService(PS_GETAVATARINFO, &CSteamProto::GetAvatarInfo); CreateProtoService(PS_GETAVATARCAPS, &CSteamProto::GetAvatarCaps); CreateProtoService(PS_GETMYAVATAR, &CSteamProto::GetMyAvatar); -- cgit v1.2.3