add launcher info for most plugins, add launcher build date for plugins

(DivaMovie excluded to avoid conflicts when merging changes to that later)
This commit is contained in:
somewhatlurker
2019-10-06 15:51:09 +11:00
parent 32f6a4db26
commit 9a8fc1147d
10 changed files with 71 additions and 8 deletions
@@ -165,4 +165,12 @@ namespace PluginConfig
PluginConfigOption* options; PluginConfigOption* options;
}; };
#pragma pack(pop) #pragma pack(pop)
// note: this is actually the build date of PluginConfigApi -- make sure this isn't cached for CI
extern "C" __declspec(dllexport) LPCWSTR GetBuildDate(void)
{
WCHAR utf16buf[128];
MultiByteToWideChar(CP_UTF8, 0, __DATE__, -1, utf16buf, 128);
return _wcsdup(utf16buf);
}
} }
@@ -311,6 +311,7 @@ struct PluginInfo {
std::wstring filename; std::wstring filename;
std::wstring name; std::wstring name;
std::wstring description; std::wstring description;
std::wstring builddate;
std::vector<ConfigOptionBase*> configopts; std::vector<ConfigOptionBase*> configopts;
}; };
std::vector<PluginInfo> LoadPlugins() std::vector<PluginInfo> LoadPlugins()
@@ -341,6 +342,7 @@ std::vector<PluginInfo> LoadPlugins()
auto nameFunc = (LPCWSTR(*)())GetProcAddress(thisplugin.handle, "GetPluginName"); auto nameFunc = (LPCWSTR(*)())GetProcAddress(thisplugin.handle, "GetPluginName");
auto descFunc = (LPCWSTR(*)())GetProcAddress(thisplugin.handle, "GetPluginDescription"); auto descFunc = (LPCWSTR(*)())GetProcAddress(thisplugin.handle, "GetPluginDescription");
auto dateFunc = (LPCWSTR(*)())GetProcAddress(thisplugin.handle, "GetBuildDate");
auto optsFunc = (PluginConfig::PluginConfigArray(*)())GetProcAddress(thisplugin.handle, "GetPluginOptions"); auto optsFunc = (PluginConfig::PluginConfigArray(*)())GetProcAddress(thisplugin.handle, "GetPluginOptions");
if (nameFunc != NULL) if (nameFunc != NULL)
@@ -353,6 +355,13 @@ std::vector<PluginInfo> LoadPlugins()
else else
thisplugin.description = (thisplugin.filename + L" Plugin").c_str(); thisplugin.description = (thisplugin.filename + L" Plugin").c_str();
if (dateFunc != NULL)
thisplugin.builddate = dateFunc();
else
thisplugin.builddate = L"Unknown";
thisplugin.description += L"\n\nVersion: " + thisplugin.builddate;
if (optsFunc != NULL) if (optsFunc != NULL)
thisplugin.configopts = PluginConfig::GetConfigOptionVec(optsFunc()); thisplugin.configopts = PluginConfig::GetConfigOptionVec(optsFunc());
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"> <ProjectConfiguration Include="Debug|Win32">
@@ -96,7 +96,7 @@
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard> <LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -133,7 +133,7 @@
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile> <PrecompiledHeaderFile>
</PrecompiledHeaderFile> </PrecompiledHeaderFile>
<AdditionalIncludeDirectories>..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard> <LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -6,6 +6,7 @@
#include <filesystem> #include <filesystem>
#include <sstream> #include <sstream>
#include <iomanip> #include <iomanip>
#include "PluginConfigApi.h"
void InjectCode(void* address, const std::vector<uint8_t> data); void InjectCode(void* address, const std::vector<uint8_t> data);
void ApplyPatches(); void ApplyPatches();
@@ -322,3 +323,16 @@ void InjectCode(void* address, const std::vector<uint8_t> data)
memcpy(address, data.data(), byteCount); memcpy(address, data.data(), byteCount);
VirtualProtect(address, byteCount, oldProtect, nullptr); VirtualProtect(address, byteCount, oldProtect, nullptr);
} }
using namespace PluginConfig;
extern "C" __declspec(dllexport) LPCWSTR GetPluginName(void)
{
return L"Patches";
}
extern "C" __declspec(dllexport) LPCWSTR GetPluginDescription(void)
{
return L"Applies patches/tweaks to the game before it starts.\nThis plugin is required.";
}
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"> <ProjectConfiguration Include="Debug|Win32">
@@ -96,7 +96,7 @@
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile> <PrecompiledHeaderFile>
</PrecompiledHeaderFile> </PrecompiledHeaderFile>
<AdditionalIncludeDirectories>..\..\..\dependencies\freeglut\include;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\freeglut\include;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard> <LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -135,7 +135,7 @@
<PrecompiledHeaderFile> <PrecompiledHeaderFile>
</PrecompiledHeaderFile> </PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard> <LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\freeglut\include;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\freeglut\include;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -11,6 +11,8 @@
#include <chrono> #include <chrono>
#include "PluginConfigApi.h"
using namespace std::chrono; using namespace std::chrono;
int hookedCreateWindow(const char* title, void(__cdecl* exit_function)(int)) int hookedCreateWindow(const char* title, void(__cdecl* exit_function)(int))
@@ -238,3 +240,15 @@ BOOL APIENTRY DllMain(HMODULE hModule,
return TRUE; return TRUE;
} }
using namespace PluginConfig;
extern "C" __declspec(dllexport) LPCWSTR GetPluginName(void)
{
return L"Render";
}
extern "C" __declspec(dllexport) LPCWSTR GetPluginDescription(void)
{
return L"Applies window mode/size and FPS limiting.";
}
+3 -2
View File
@@ -99,7 +99,7 @@
<PrecompiledHeaderFile> <PrecompiledHeaderFile>
</PrecompiledHeaderFile> </PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard> <LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -139,7 +139,7 @@
<PrecompiledHeaderFile> <PrecompiledHeaderFile>
</PrecompiledHeaderFile> </PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard> <LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -225,6 +225,7 @@
<ClInclude Include="Input\Mouse\MouseState.h" /> <ClInclude Include="Input\Mouse\MouseState.h" />
<ClInclude Include="Input\Xinput\Xinput.h" /> <ClInclude Include="Input\Xinput\Xinput.h" />
<ClInclude Include="Input\Xinput\XinputState.h" /> <ClInclude Include="Input\Xinput\XinputState.h" />
<ClInclude Include="pluginconfig.h" />
<ClInclude Include="Utilities\EnumBitwiseOperations.h" /> <ClInclude Include="Utilities\EnumBitwiseOperations.h" />
<ClInclude Include="Utilities\Math.h" /> <ClInclude Include="Utilities\Math.h" />
<ClInclude Include="Utilities\Operations.h" /> <ClInclude Include="Utilities\Operations.h" />
@@ -195,6 +195,9 @@
<ClInclude Include="Components\ScoreSaver.h"> <ClInclude Include="Components\ScoreSaver.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="pluginconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="dllmain.cpp"> <ClCompile Include="dllmain.cpp">
@@ -5,6 +5,7 @@
#include <stdio.h> #include <stdio.h>
#include "Constants.h" #include "Constants.h"
#include "framework.h" #include "framework.h"
#include "pluginconfig.h"
#include "Input/Mouse/Mouse.h" #include "Input/Mouse/Mouse.h"
#include "Input/Xinput/Xinput.h" #include "Input/Xinput/Xinput.h"
#include "Input/Keyboard/Keyboard.h" #include "Input/Keyboard/Keyboard.h"
@@ -0,0 +1,13 @@
#include "PluginConfigApi.h"
using namespace PluginConfig;
extern "C" __declspec(dllexport) LPCWSTR GetPluginName(void)
{
return L"TLAC";
}
extern "C" __declspec(dllexport) LPCWSTR GetPluginDescription(void)
{
return L"Provides keyboard/mouse/controller input, player data management, bug fixes for running on more PCs, etc.\nThis plugin is required.";
}