diff --git a/CMakeLists.txt b/CMakeLists.txt index b1a657054..99bbc91df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules/") if(NOT ANDROID) option(BUILD_SDL_FRONTEND "Build the SDL frontend" ON) option(BUILD_QT_FRONTEND "Build the Qt frontend" ON) + option(ENABLE_DISCORD_PRESENCE "Build with Discord Rich Presence support" ON) option(USE_SDL2 "Link with SDL2 for controller support" ON) endif() diff --git a/src/duckstation-qt/duckstation-qt.vcxproj b/src/duckstation-qt/duckstation-qt.vcxproj index cac016915..268a65d82 100644 --- a/src/duckstation-qt/duckstation-qt.vcxproj +++ b/src/duckstation-qt/duckstation-qt.vcxproj @@ -301,7 +301,7 @@ Level4 Disabled - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true ProgramDatabase $(SolutionDir)dep\glad\Include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;$(SolutionDir)dep\msvc\qt5-x86\include;%(AdditionalIncludeDirectories) @@ -322,7 +322,7 @@ Level4 Disabled - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true ProgramDatabase $(SolutionDir)dep\glad\Include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;$(SolutionDir)dep\msvc\qt5-x64\include;%(AdditionalIncludeDirectories) @@ -343,7 +343,7 @@ Level4 Disabled - _ITERATOR_DEBUG_LEVEL=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUGFAST;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_ITERATOR_DEBUG_LEVEL=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUGFAST;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true ProgramDatabase $(SolutionDir)dep\glad\Include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;$(SolutionDir)dep\msvc\qt5-x86\include;%(AdditionalIncludeDirectories) @@ -366,7 +366,7 @@ Level4 Disabled - _ITERATOR_DEBUG_LEVEL=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUGFAST;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_ITERATOR_DEBUG_LEVEL=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUGFAST;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true ProgramDatabase $(SolutionDir)dep\glad\Include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;$(SolutionDir)dep\msvc\qt5-x64\include;%(AdditionalIncludeDirectories) @@ -390,7 +390,7 @@ MaxSpeed true - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)dep\glad\Include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;$(SolutionDir)dep\msvc\qt5-x86\include;%(AdditionalIncludeDirectories) true false @@ -413,7 +413,7 @@ MaxSpeed true - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)dep\glad\Include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;$(SolutionDir)dep\msvc\qt5-x86\include;%(AdditionalIncludeDirectories) true true @@ -437,7 +437,7 @@ MaxSpeed true - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)dep\glad\Include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;$(SolutionDir)dep\msvc\qt5-x64\include;%(AdditionalIncludeDirectories) true false @@ -460,7 +460,7 @@ MaxSpeed true - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)dep\glad\Include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;$(SolutionDir)dep\msvc\qt5-x64\include;%(AdditionalIncludeDirectories) true true diff --git a/src/duckstation-qt/duckstation-qt.vcxproj.filters b/src/duckstation-qt/duckstation-qt.vcxproj.filters index 673685338..6fc9a4551 100644 --- a/src/duckstation-qt/duckstation-qt.vcxproj.filters +++ b/src/duckstation-qt/duckstation-qt.vcxproj.filters @@ -37,6 +37,7 @@ + @@ -45,7 +46,6 @@ - @@ -70,6 +70,7 @@ + @@ -79,11 +80,9 @@ + - - - \ No newline at end of file diff --git a/src/duckstation-qt/generalsettingswidget.cpp b/src/duckstation-qt/generalsettingswidget.cpp index 4e206e508..615b74501 100644 --- a/src/duckstation-qt/generalsettingswidget.cpp +++ b/src/duckstation-qt/generalsettingswidget.cpp @@ -63,6 +63,18 @@ GeneralSettingsWidget::GeneralSettingsWidget(QtHostInterface* host_interface, QW dialog->registerWidgetHelp( m_ui.showSpeed, "Show Speed", "Unchecked", "Shows the current emulation speed of the system in the top-right corner of the display as a percentage."); + + // Since this one is compile-time selected, we don't put it in the .ui file. +#ifdef WITH_DISCORD_PRESENCE + { + QCheckBox* enableDiscordPresence = new QCheckBox(tr("Enable Discord Presence"), m_ui.groupBox_4); + SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, enableDiscordPresence, + QStringLiteral("Main/EnableDiscordPresence")); + m_ui.formLayout_4->addWidget(enableDiscordPresence, m_ui.formLayout_4->rowCount(), 0); + dialog->registerWidgetHelp(enableDiscordPresence, "Enable Discord Presence", "Unchecked", + "Shows the game you are currently playing as part of your profile in Discord."); + } +#endif } GeneralSettingsWidget::~GeneralSettingsWidget() = default; diff --git a/src/duckstation-sdl/duckstation-sdl.vcxproj b/src/duckstation-sdl/duckstation-sdl.vcxproj index d555ae760..b5133a6a8 100644 --- a/src/duckstation-sdl/duckstation-sdl.vcxproj +++ b/src/duckstation-sdl/duckstation-sdl.vcxproj @@ -217,7 +217,7 @@ Level4 Disabled - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true ProgramDatabase $(SolutionDir)dep\msvc\include;$(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\nativefiledialog\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) @@ -238,7 +238,7 @@ Level4 Disabled - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true ProgramDatabase $(SolutionDir)dep\msvc\include;$(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\nativefiledialog\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) @@ -259,7 +259,7 @@ Level4 Disabled - _ITERATOR_DEBUG_LEVEL=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUGFAST;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_ITERATOR_DEBUG_LEVEL=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUGFAST;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true ProgramDatabase $(SolutionDir)dep\msvc\include;$(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\nativefiledialog\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) @@ -283,7 +283,7 @@ Level4 Disabled - _ITERATOR_DEBUG_LEVEL=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUGFAST;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_ITERATOR_DEBUG_LEVEL=1;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUGFAST;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true ProgramDatabase $(SolutionDir)dep\msvc\include;$(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\nativefiledialog\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) @@ -308,7 +308,7 @@ MaxSpeed true - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)dep\msvc\include;$(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\nativefiledialog\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true false @@ -331,7 +331,7 @@ MaxSpeed true - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)dep\msvc\include;$(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\nativefiledialog\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true true @@ -355,7 +355,7 @@ MaxSpeed true - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)dep\msvc\include;$(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\nativefiledialog\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true false @@ -378,7 +378,7 @@ MaxSpeed true - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WITH_DISCORD_PRESENCE=1;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)dep\msvc\include;$(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\nativefiledialog\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true true diff --git a/src/frontend-common/CMakeLists.txt b/src/frontend-common/CMakeLists.txt index 9104f2016..d31915019 100644 --- a/src/frontend-common/CMakeLists.txt +++ b/src/frontend-common/CMakeLists.txt @@ -13,6 +13,8 @@ add_library(frontend-common save_state_selector_ui.h ) +target_link_libraries(frontend-common PUBLIC core common imgui simpleini scmversion) + if(SDL2_FOUND) target_sources(frontend-common PRIVATE sdl_audio_stream.cpp @@ -27,5 +29,7 @@ if(SDL2_FOUND) target_link_libraries(frontend-common PRIVATE ${SDL2_LIBRARIES}) endif() -target_link_libraries(frontend-common PUBLIC core common imgui simpleini scmversion) - +if(ENABLE_DISCORD_PRESENCE) + target_compile_definitions(frontend-common PUBLIC -DWITH_DISCORD_PRESENCE=1) + target_link_libraries(frontend-common PRIVATE discord-rpc) +endif() diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp index 875c2d1f1..ed3857724 100644 --- a/src/frontend-common/common_host_interface.cpp +++ b/src/frontend-common/common_host_interface.cpp @@ -15,9 +15,11 @@ #include "sdl_audio_stream.h" #include "sdl_controller_interface.h" #endif +#include "discord_rpc.h" #include "ini_settings_interface.h" #include #include +#include Log_SetChannel(CommonHostInterface); CommonHostInterface::CommonHostInterface() = default; @@ -57,6 +59,10 @@ void CommonHostInterface::Shutdown() { HostInterface::Shutdown(); +#ifdef WITH_DISCORD_PRESENCE + ShutdownDiscordPresence(); +#endif + m_system.reset(); m_audio_stream.reset(); if (m_display) @@ -293,6 +299,9 @@ bool CommonHostInterface::ParseCommandLineParameters(int argc, char* argv[], void CommonHostInterface::PollAndUpdate() { +#ifdef WITH_DISCORD_PRESENCE + PollDiscordPresence(); +#endif } bool CommonHostInterface::IsFullscreen() const @@ -363,6 +372,10 @@ void CommonHostInterface::OnSystemDestroyed() void CommonHostInterface::OnRunningGameChanged() { HostInterface::OnRunningGameChanged(); + +#ifdef WITH_DISCORD_PRESENCE + UpdateDiscordPresence(); +#endif } void CommonHostInterface::OnControllerTypeChanged(u32 slot) @@ -410,11 +423,19 @@ void CommonHostInterface::SetDefaultSettings(SettingsInterface& si) si.SetStringValue("Hotkeys", "IncreaseResolutionScale", "Keyboard/PageUp"); si.SetStringValue("Hotkeys", "DecreaseResolutionScale", "Keyboard/PageDown"); si.SetStringValue("Hotkeys", "ToggleSoftwareRendering", "Keyboard/End"); + +#ifdef WITH_DISCORD_PRESENCE + si.SetBoolValue("Main", "EnableDiscordPresence", false); +#endif } void CommonHostInterface::ApplySettings(SettingsInterface& si) { HostInterface::ApplySettings(si); + +#ifdef WITH_DISCORD_PRESENCE + SetDiscordPresenceEnabled(si.GetBoolValue("Main", "EnableDiscordPresence", false)); +#endif } std::optional @@ -1042,3 +1063,75 @@ bool CommonHostInterface::SaveInputProfile(const char* profile_path, SettingsInt profile.Save(); return true; } + +#ifdef WITH_DISCORD_PRESENCE + +void CommonHostInterface::SetDiscordPresenceEnabled(bool enabled) +{ + if (m_discord_presence_enabled == enabled) + return; + + m_discord_presence_enabled = enabled; + if (enabled) + InitializeDiscordPresence(); + else + ShutdownDiscordPresence(); +} + +void CommonHostInterface::InitializeDiscordPresence() +{ + if (m_discord_presence_active) + return; + + DiscordEventHandlers handlers = {}; + Discord_Initialize("705325712680288296", &handlers, 0, nullptr); + m_discord_presence_active = true; + + UpdateDiscordPresence(); +} + +void CommonHostInterface::ShutdownDiscordPresence() +{ + if (!m_discord_presence_active) + return; + + Discord_ClearPresence(); + Discord_Shutdown(); + m_discord_presence_active = false; +} + +void CommonHostInterface::UpdateDiscordPresence() +{ + if (!m_discord_presence_active) + return; + + DiscordRichPresence rp = {}; + rp.smallImageKey = "duckstation_logo"; + rp.smallImageText = "DuckStation PS1/PSX Emulator"; + rp.startTimestamp = std::time(nullptr); + + SmallString details_string; + if (m_system) + { + details_string.AppendFormattedString("%s (%s)", m_system->GetRunningTitle().c_str(), + m_system->GetRunningCode().c_str()); + } + else + { + details_string.AppendString("No Game Running"); + } + + rp.details = details_string; + + Discord_UpdatePresence(&rp); +} + +void CommonHostInterface::PollDiscordPresence() +{ + if (!m_discord_presence_active) + return; + + Discord_RunCallbacks(); +} + +#endif \ No newline at end of file diff --git a/src/frontend-common/common_host_interface.h b/src/frontend-common/common_host_interface.h index 8b2bbf25c..f93e37ac6 100644 --- a/src/frontend-common/common_host_interface.h +++ b/src/frontend-common/common_host_interface.h @@ -128,6 +128,14 @@ private: void UpdateHotkeyInputMap(SettingsInterface& si); void ClearAllControllerBindings(SettingsInterface& si); +#ifdef WITH_DISCORD_PRESENCE + void SetDiscordPresenceEnabled(bool enabled); + void InitializeDiscordPresence(); + void ShutdownDiscordPresence(); + void UpdateDiscordPresence(); + void PollDiscordPresence(); +#endif + HotkeyInfoList m_hotkeys; std::unique_ptr m_save_state_selector_ui; @@ -153,4 +161,10 @@ private: // running in batch mode? i.e. exit after stopping emulation bool m_batch_mode = false; + +#ifdef WITH_DISCORD_PRESENCE + // discord rich presence + bool m_discord_presence_enabled = false; + bool m_discord_presence_active = false; +#endif }; diff --git a/src/frontend-common/frontend-common.vcxproj b/src/frontend-common/frontend-common.vcxproj index 7ba1d303a..31b051895 100644 --- a/src/frontend-common/frontend-common.vcxproj +++ b/src/frontend-common/frontend-common.vcxproj @@ -38,6 +38,9 @@ {72f9423c-91ee-4487-aac6-555ed6f61aa1} + + {4266505b-dbaf-484b-ab31-b53b9c8235b3} + {43540154-9e1e-409c-834f-b84be5621388} @@ -221,10 +224,10 @@ Level3 Disabled - WITH_SDL2=1;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + WITH_SDL2=1;WITH_DISCORD_PRESENCE=1;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) true ProgramDatabase - $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\discord-rpc\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true stdcpp17 true @@ -248,10 +251,10 @@ Level3 Disabled - WITH_SDL2=1;_ITERATOR_DEBUG_LEVEL=1;WIN32;_DEBUGFAST;_DEBUG;_LIB;%(PreprocessorDefinitions) + WITH_SDL2=1;WITH_DISCORD_PRESENCE=1;_ITERATOR_DEBUG_LEVEL=1;WIN32;_DEBUGFAST;_DEBUG;_LIB;%(PreprocessorDefinitions) true ProgramDatabase - $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\discord-rpc\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) Default false true @@ -278,10 +281,10 @@ Level3 Disabled - WITH_SDL2=1;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + WITH_SDL2=1;WITH_DISCORD_PRESENCE=1;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) true ProgramDatabase - $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\discord-rpc\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true stdcpp17 true @@ -305,10 +308,10 @@ Level3 Disabled - WITH_SDL2=1;_ITERATOR_DEBUG_LEVEL=1;WIN32;_DEBUGFAST;_DEBUG;_LIB;%(PreprocessorDefinitions) + WITH_SDL2=1;WITH_DISCORD_PRESENCE=1;_ITERATOR_DEBUG_LEVEL=1;WIN32;_DEBUGFAST;_DEBUG;_LIB;%(PreprocessorDefinitions) true ProgramDatabase - $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\discord-rpc\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) Default false true @@ -337,9 +340,9 @@ MaxSpeed true true - WITH_SDL2=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + WITH_SDL2=1;WITH_DISCORD_PRESENCE=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true - $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\discord-rpc\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true stdcpp17 false @@ -366,9 +369,9 @@ MaxSpeed true true - WITH_SDL2=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + WITH_SDL2=1;WITH_DISCORD_PRESENCE=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true - $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\discord-rpc\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true true stdcpp17 @@ -397,9 +400,9 @@ MaxSpeed true true - WITH_SDL2=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + WITH_SDL2=1;WITH_DISCORD_PRESENCE=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true - $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\discord-rpc\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true stdcpp17 false @@ -426,9 +429,9 @@ MaxSpeed true true - WITH_SDL2=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + WITH_SDL2=1;WITH_DISCORD_PRESENCE=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true - $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\discord-rpc\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) true true stdcpp17