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 b7c45cfe13
commit d0942a35b1
10 changed files with 71 additions and 8 deletions
@@ -165,4 +165,12 @@ namespace PluginConfig
PluginConfigOption* options;
};
#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 name;
std::wstring description;
std::wstring builddate;
std::vector<ConfigOptionBase*> configopts;
};
std::vector<PluginInfo> LoadPlugins()
@@ -341,6 +342,7 @@ std::vector<PluginInfo> LoadPlugins()
auto nameFunc = (LPCWSTR(*)())GetProcAddress(thisplugin.handle, "GetPluginName");
auto descFunc = (LPCWSTR(*)())GetProcAddress(thisplugin.handle, "GetPluginDescription");
auto dateFunc = (LPCWSTR(*)())GetProcAddress(thisplugin.handle, "GetBuildDate");
auto optsFunc = (PluginConfig::PluginConfigArray(*)())GetProcAddress(thisplugin.handle, "GetPluginOptions");
if (nameFunc != NULL)
@@ -353,6 +355,13 @@ std::vector<PluginInfo> LoadPlugins()
else
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)
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">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
@@ -96,7 +96,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -133,7 +133,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
@@ -6,6 +6,7 @@
#include <filesystem>
#include <sstream>
#include <iomanip>
#include "PluginConfigApi.h"
void InjectCode(void* address, const std::vector<uint8_t> data);
void ApplyPatches();
@@ -322,3 +323,16 @@ void InjectCode(void* address, const std::vector<uint8_t> data)
memcpy(address, data.data(), byteCount);
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">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
@@ -96,7 +96,7 @@
<ConformanceMode>true</ConformanceMode>
<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>
</ClCompile>
<Link>
@@ -135,7 +135,7 @@
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\freeglut\include;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\freeglut\include;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -11,6 +11,8 @@
#include <chrono>
#include "PluginConfigApi.h"
using namespace std::chrono;
int hookedCreateWindow(const char* title, void(__cdecl* exit_function)(int))
@@ -238,3 +240,15 @@ BOOL APIENTRY DllMain(HMODULE hModule,
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>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -139,7 +139,7 @@
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -225,6 +225,7 @@
<ClInclude Include="Input\Mouse\MouseState.h" />
<ClInclude Include="Input\Xinput\Xinput.h" />
<ClInclude Include="Input\Xinput\XinputState.h" />
<ClInclude Include="pluginconfig.h" />
<ClInclude Include="Utilities\EnumBitwiseOperations.h" />
<ClInclude Include="Utilities\Math.h" />
<ClInclude Include="Utilities\Operations.h" />
@@ -195,6 +195,9 @@
<ClInclude Include="Components\ScoreSaver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pluginconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
@@ -5,6 +5,7 @@
#include <stdio.h>
#include "Constants.h"
#include "framework.h"
#include "pluginconfig.h"
#include "Input/Mouse/Mouse.h"
#include "Input/Xinput/Xinput.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.";
}