mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-11-23 19:25:35 +08:00
new type of notification when the auto accept config file is used
This commit is contained in:
parent
9d533cd945
commit
21545509fd
@ -48,6 +48,7 @@ enum notification_type
|
|||||||
notification_type_message = 0,
|
notification_type_message = 0,
|
||||||
notification_type_invite,
|
notification_type_invite,
|
||||||
notification_type_achievement,
|
notification_type_achievement,
|
||||||
|
notification_type_auto_accept_invite,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Notification
|
struct Notification
|
||||||
@ -150,6 +151,7 @@ class Steam_Overlay
|
|||||||
|
|
||||||
void NotifyUser(friend_window_state& friend_state);
|
void NotifyUser(friend_window_state& friend_state);
|
||||||
void NotifyUserAchievement();
|
void NotifyUserAchievement();
|
||||||
|
void NotifySoundAutoAcceptFriendInvite();
|
||||||
|
|
||||||
// Right click on friend
|
// Right click on friend
|
||||||
void BuildContextMenu(Friend const& frd, friend_window_state &state);
|
void BuildContextMenu(Friend const& frd, friend_window_state &state);
|
||||||
@ -195,6 +197,7 @@ public:
|
|||||||
void AddMessageNotification(std::string const& message);
|
void AddMessageNotification(std::string const& message);
|
||||||
void AddAchievementNotification(nlohmann::json const& ach);
|
void AddAchievementNotification(nlohmann::json const& ach);
|
||||||
void AddInviteNotification(std::pair<const Friend, friend_window_state> &wnd_state);
|
void AddInviteNotification(std::pair<const Friend, friend_window_state> &wnd_state);
|
||||||
|
void AddAutoAcceptInviteNotification();
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@ -237,6 +240,7 @@ public:
|
|||||||
void AddMessageNotification(std::string const& message) {}
|
void AddMessageNotification(std::string const& message) {}
|
||||||
void AddAchievementNotification(nlohmann::json const& ach) {}
|
void AddAchievementNotification(nlohmann::json const& ach) {}
|
||||||
void AddInviteNotification(std::pair<const Friend, friend_window_state> &wnd_state) {}
|
void AddInviteNotification(std::pair<const Friend, friend_window_state> &wnd_state) {}
|
||||||
|
void AddAutoAcceptInviteNotification() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -355,6 +355,17 @@ void Steam_Overlay::NotifyUserAchievement()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Steam_Overlay::NotifySoundAutoAcceptFriendInvite()
|
||||||
|
{
|
||||||
|
#ifdef __WINDOWS__
|
||||||
|
if (notif_achievement_wav_custom_inuse) {
|
||||||
|
PlaySoundA((LPCSTR)notif_achievement_wav_custom, NULL, SND_ASYNC | SND_MEMORY);
|
||||||
|
} else {
|
||||||
|
PlaySoundA((LPCSTR)notif_invite_wav, NULL, SND_ASYNC | SND_MEMORY);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void Steam_Overlay::SetLobbyInvite(Friend friendId, uint64 lobbyId)
|
void Steam_Overlay::SetLobbyInvite(Friend friendId, uint64 lobbyId)
|
||||||
{
|
{
|
||||||
std::lock_guard<std::recursive_mutex> lock(overlay_mutex);
|
std::lock_guard<std::recursive_mutex> lock(overlay_mutex);
|
||||||
@ -512,6 +523,31 @@ void Steam_Overlay::AddInviteNotification(std::pair<const Friend, friend_window_
|
|||||||
PRINT_DEBUG("No more free id to create a notification window\n");
|
PRINT_DEBUG("No more free id to create a notification window\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Steam_Overlay::AddAutoAcceptInviteNotification()
|
||||||
|
{
|
||||||
|
std::lock_guard<std::recursive_mutex> lock(notifications_mutex);
|
||||||
|
int id = find_free_notification_id(notifications);
|
||||||
|
if (id != 0)
|
||||||
|
{
|
||||||
|
Notification notif{};
|
||||||
|
notif.id = id;
|
||||||
|
notif.type = notification_type_auto_accept_invite;
|
||||||
|
|
||||||
|
{
|
||||||
|
char tmp[TRANSLATION_BUFFER_SIZE]{};
|
||||||
|
snprintf(tmp, sizeof(tmp), "%s", translationAutoAcceptFriendInvite[current_language]);
|
||||||
|
notif.message = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
notif.start_time = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch());
|
||||||
|
notifications.emplace_back(notif);
|
||||||
|
NotifySoundAutoAcceptFriendInvite();
|
||||||
|
have_notifications = true;
|
||||||
|
} else {
|
||||||
|
PRINT_DEBUG("No free id to create an auto-accept notification window\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool Steam_Overlay::FriendJoinable(std::pair<const Friend, friend_window_state> &f)
|
bool Steam_Overlay::FriendJoinable(std::pair<const Friend, friend_window_state> &f)
|
||||||
{
|
{
|
||||||
Steam_Friends* steamFriends = get_steam_client()->steam_friends;
|
Steam_Friends* steamFriends = get_steam_client()->steam_friends;
|
||||||
@ -761,6 +797,8 @@ void Steam_Overlay::BuildNotifications(int width, int height)
|
|||||||
break;
|
break;
|
||||||
case notification_type_message:
|
case notification_type_message:
|
||||||
ImGui::TextWrapped("%s", it->message.c_str()); break;
|
ImGui::TextWrapped("%s", it->message.c_str()); break;
|
||||||
|
case notification_type_auto_accept_invite:
|
||||||
|
ImGui::TextWrapped("%s", it->message.c_str()); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
|
Loading…
Reference in New Issue
Block a user