summaryrefslogtreecommitdiff
path: root/protocols/Steam
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Steam')
-rw-r--r--protocols/Steam/proto_steam/res/FFC.icobin0 -> 5430 bytes
-rw-r--r--protocols/Steam/proto_steam/res/Proto_Steam.rc1
-rw-r--r--protocols/Steam/proto_steam/src/resource.h1
-rw-r--r--protocols/Steam/src/steam_contacts.cpp7
-rw-r--r--protocols/Steam/src/steam_proto.cpp4
-rw-r--r--protocols/Steam/src/steam_utils.cpp6
6 files changed, 14 insertions, 5 deletions
diff --git a/protocols/Steam/proto_steam/res/FFC.ico b/protocols/Steam/proto_steam/res/FFC.ico
new file mode 100644
index 0000000000..1e8b4f3bad
--- /dev/null
+++ b/protocols/Steam/proto_steam/res/FFC.ico
Binary files differ
diff --git a/protocols/Steam/proto_steam/res/Proto_Steam.rc b/protocols/Steam/proto_steam/res/Proto_Steam.rc
index 7658ab5894..00ad7ff43c 100644
--- a/protocols/Steam/proto_steam/res/Proto_Steam.rc
+++ b/protocols/Steam/proto_steam/res/Proto_Steam.rc
@@ -56,6 +56,7 @@ IDI_ICON2 ICON "Online.ico"
IDI_ICON3 ICON "Away.ico"
IDI_ICON5 ICON "NA.ico"
IDI_ICON6 ICON "DND.ico"
+IDI_ICON8 ICON "FFC.ico"
#endif // Russian (Russia) resources
/////////////////////////////////////////////////////////////////////////////
diff --git a/protocols/Steam/proto_steam/src/resource.h b/protocols/Steam/proto_steam/src/resource.h
index f0b1594ea6..0ecf950bc3 100644
--- a/protocols/Steam/proto_steam/src/resource.h
+++ b/protocols/Steam/proto_steam/src/resource.h
@@ -7,6 +7,7 @@
#define IDI_ICON3 128
#define IDI_ICON5 131
#define IDI_ICON6 158
+#define IDI_ICON8 129
// Next default values for new objects
//
diff --git a/protocols/Steam/src/steam_contacts.cpp b/protocols/Steam/src/steam_contacts.cpp
index 4cd9ffc563..63e4c05905 100644
--- a/protocols/Steam/src/steam_contacts.cpp
+++ b/protocols/Steam/src/steam_contacts.cpp
@@ -19,6 +19,11 @@ void CSteamProto::SetContactStatus(MCONTACT hContact, WORD status)
// Special handling of some statuses
switch (status) {
+ case ID_STATUS_FREECHAT:
+ // Contact is looking to play, save it to as status message
+ db_set_ws(hContact, "CList", "StatusMsg", TranslateT("Looking to play"));
+ break;
+
case ID_STATUS_OFFLINE:
// if contact is offline, remove played game info
delSetting(hContact, "GameID");
@@ -162,7 +167,7 @@ void CSteamProto::UpdateContactDetails(MCONTACT hContact, const JSONNode &data)
if (stateflags == PersonaStateFlag::None) {
// nothing special, either standard client or in different status (only online, I want to play, I want to trade statuses support this flags)
WORD status = getWord(hContact, "Status", ID_STATUS_OFFLINE);
- if (status == ID_STATUS_ONLINE)
+ if (status == ID_STATUS_ONLINE || status == ID_STATUS_FREECHAT)
setWString(hContact, "MirVer", L"Steam");
}
else if (contains_flag(stateflags, PersonaStateFlag::InJoinableGame)) {
diff --git a/protocols/Steam/src/steam_proto.cpp b/protocols/Steam/src/steam_proto.cpp
index 143a26e444..40d6e8ae09 100644
--- a/protocols/Steam/src/steam_proto.cpp
+++ b/protocols/Steam/src/steam_proto.cpp
@@ -189,11 +189,11 @@ INT_PTR CSteamProto::GetCaps(int type, MCONTACT)
case PFLAGNUM_1:
return PF1_IM | PF1_BASICSEARCH | PF1_SEARCHBYNAME | PF1_AUTHREQ | PF1_SERVERCLIST | PF1_ADDSEARCHRES | PF1_MODEMSGRECV;
case PFLAGNUM_2:
- return PF2_ONLINE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_HEAVYDND;
+ return PF2_ONLINE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_HEAVYDND | PF2_FREECHAT;
case PFLAGNUM_4:
return PF4_AVATARS | PF4_NOCUSTOMAUTH | PF4_NOAUTHDENYREASON | PF4_FORCEAUTH | PF4_SUPPORTIDLE | PF4_SUPPORTTYPING;// | PF4_IMSENDOFFLINE;
case PFLAGNUM_5:
- return PF2_HEAVYDND;
+ return PF2_HEAVYDND | PF2_FREECHAT;
case PFLAG_UNIQUEIDTEXT:
return (INT_PTR)Translate("SteamID");
default:
diff --git a/protocols/Steam/src/steam_utils.cpp b/protocols/Steam/src/steam_utils.cpp
index e4a45e7dbe..ad6b8b3732 100644
--- a/protocols/Steam/src/steam_utils.cpp
+++ b/protocols/Steam/src/steam_utils.cpp
@@ -13,9 +13,9 @@ WORD CSteamProto::SteamToMirandaStatus(PersonaState state)
return ID_STATUS_AWAY;
case PersonaState::Snooze:
return ID_STATUS_NA;
-
- case PersonaState::LookingToTrade:
case PersonaState::LookingToPlay:
+ return ID_STATUS_FREECHAT;
+ case PersonaState::LookingToTrade:
default:
return ID_STATUS_ONLINE;
}
@@ -34,6 +34,8 @@ PersonaState CSteamProto::MirandaToSteamState(int status)
return PersonaState::Away;
case ID_STATUS_NA:
return PersonaState::Snooze;
+ case ID_STATUS_FREECHAT:
+ return PersonaState::LookingToPlay;
default:
return PersonaState::Online;
}