Compare commits
14
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d7dfc57192 | ||
|
|
af017ecc4e | ||
|
|
902f0c3421 | ||
|
|
501bb2de61 | ||
|
|
f498fee877 | ||
|
|
5a72210023 | ||
|
|
49c69de847 | ||
|
|
5652879f74 | ||
|
|
0a3b41977e | ||
|
|
057a267fe8 | ||
|
|
ede1039f43 | ||
|
|
2bac4de81d | ||
|
|
74e2c9a31d | ||
|
|
25a2a5f6f6 |
+2
-8
@@ -18,7 +18,7 @@ after_build:
|
||||
|
||||
md %TMP%\full\ram\
|
||||
|
||||
md %TMP%\full\ram\databank_template\
|
||||
md %TMP%\full\ram\databank_template_v2\
|
||||
|
||||
|
||||
|
||||
@@ -30,19 +30,13 @@ after_build:
|
||||
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\verify_base_game.sfv %TMP%\full\
|
||||
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\verify_base_game.md5 %TMP%\full\
|
||||
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\verify_mount_data.sfv %TMP%\full\
|
||||
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\verify_mount_data.md5 %TMP%\full\
|
||||
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\glut32.dll %TMP%\full\
|
||||
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\plugins\*.* %TMP%\full\plugins\
|
||||
|
||||
copy "%APPVEYOR_BUILD_FOLDER%\source-code\data\plugins\Novidia Shaders\*.*" "%TMP%\full\plugins\Novidia Shaders\"
|
||||
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\ram\databank_template\*.dat %TMP%\full\ram\databank_template\
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\ram\databank_template_v2\*.dat %TMP%\full\ram\databank_template_v2\
|
||||
|
||||
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\patches\custom_freeplay_text_example.p %TMP%\full\patches\
|
||||
|
||||
|
||||
@@ -17,12 +17,6 @@ Skip=0
|
||||
No_GPU_Dialog=0
|
||||
# Sets the dark colour scheme in the launcher.
|
||||
Dark_Launcher=0
|
||||
# Enables acrylic blur in the launcher on Windows 10 20H2 or later.
|
||||
Acrylic_Blur=0
|
||||
#Ignores some OpenGL-related errors. Don't use both patches at the same time unless you're know what you're doing
|
||||
OpenGL_Patch_A=0
|
||||
#Ignores some OpenGL-related errors. Don't use both patches at the same time unless you're know what you're doing
|
||||
OpenGL_Patch_B=0
|
||||
# Command line arguments
|
||||
Command_Line=
|
||||
# Launches divahook.bat/start.bat intead of diva.exe.
|
||||
@@ -90,8 +84,6 @@ Card=0
|
||||
Hardware_Slider=0
|
||||
#Enable custom patches
|
||||
Custom_Patches=1
|
||||
#Prevent data deletion
|
||||
Prevent_Data_Deletion=0
|
||||
|
||||
[Graphics]
|
||||
# Lag Compensation
|
||||
|
||||
@@ -63,6 +63,7 @@ MENU_CIRCLE = Spacebar
|
||||
|
||||
TOON = F9
|
||||
COIN = F10
|
||||
WIREFRAME = Backspace
|
||||
|
||||
# Touch Slider:
|
||||
LEFT_SIDE_SLIDE_LEFT = Q, Ds4_L_Stick_Left, XINPUT_LLEFT
|
||||
@@ -94,6 +95,7 @@ RIGHT_SIDE_SLIDE_RIGHT = O, Ds4_R_Stick_Right, XINPUT_RRIGHT
|
||||
|
||||
# - Special Keys
|
||||
# "Enter", "Tab", "Backspace", "Spacebar", "Insert", "Delete", "Home", "End", "PageUp", "PageDown", "Escape"
|
||||
# "Comma", "Period", "Colon", "Slash", "Tilde", "LeftBracket", "Backslash", "RightBracket", "SingleDoubleQuote", "OEM_8"
|
||||
|
||||
# --- MOUSE BUTTON NAMES: ---
|
||||
# "MouseLeft", "MouseMiddle", "MouseRight", "MouseX1", "MouseX2"
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
%2A%2A%$A
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
%2A%2A%2A
|
||||
@@ -798,7 +798,7 @@ void Init()
|
||||
stream.close();
|
||||
}
|
||||
|
||||
const std::filesystem::path databank_template = L"ram\\databank_template";
|
||||
const std::filesystem::path databank_template = L"ram\\databank_template_v2";
|
||||
const std::filesystem::path databank = L"ram\\databank";
|
||||
if (!std::filesystem::exists(databank)&&std::filesystem::exists(databank_template))
|
||||
{
|
||||
|
||||
@@ -152,7 +152,7 @@ VTABLE_HOOK(HRESULT, IMFTransform, ProcessMessage, MFT_MESSAGE_TYPE eMessage, UL
|
||||
static bool warn = false;
|
||||
if (!warn)
|
||||
{
|
||||
MessageBoxW(0, L"Your system supports DXVA hardware decoding.\nDivaMovie will be disabled.\n\nIt is highly recommended to restart the game now.", L"DivaMovie", MB_ICONWARNING);
|
||||
MessageBoxW(0, L"Your system supports DXVA hardware decoding and Force Hybrid Decoding is disabled.\nDivaMovie will be disabled.\n\nIt is HIGHLY recommended to restart the game now.", L"DivaMovie", MB_ICONINFORMATION);
|
||||
|
||||
CSimpleIniW ini_reader;
|
||||
ini_reader.SetUnicode(false);
|
||||
|
||||
@@ -174,8 +174,9 @@ ConfigOptionBase* graphicsArray[] = {
|
||||
new BooleanOption(L"reflections", GRAPHICS_SECTION, CONFIG_FILE, L"Reflections", L"Enable or disable reflections.", true, false),
|
||||
new ResolutionOption(L"reflect_res_width", L"reflect_res_height", GRAPHICS_SECTION, CONFIG_FILE, L"Reflection Res:", L"Sets the reflection buffer resolution (instead of 512x256).", resolution(512, 256), std::vector<resolution>({resolution(256,256), resolution(512,256), resolution(512,512), resolution(1024,1024), resolution(2048,2048), resolution(4096,4096)}), true, RESOPT_NONE),
|
||||
new ResolutionOption(L"refract_res_width", L"refract_res_height", GRAPHICS_SECTION, CONFIG_FILE, L"Refraction Res:", L"Sets the refraction buffer resolution (instead of 512x256).", resolution(512, 256), std::vector<resolution>({resolution(256,256), resolution(512,256), resolution(512,512), resolution(1024,1024), resolution(2048,2048), resolution(4096,4096)}), true, RESOPT_NONE),
|
||||
new NumericOption(L"gamma", GRAPHICS_SECTION, CONFIG_FILE, L"Gamma:", L"Increase to darken shadows.\nSet to 125 for a console-like experience.\n\nDefault: 0 or 100", 100, 0, 200),
|
||||
new BooleanOption(L"shadows", GRAPHICS_SECTION, CONFIG_FILE, L"Shadows", L"Enable or disable shadows.", true, false),
|
||||
new ResolutionOption(L"shadow_res_width", L"shadow_res_height", GRAPHICS_SECTION, CONFIG_FILE, L"Shadow Res:", L"Sets the shadow buffer resolution (instead of 2048x2048).", resolution(2048, 2048), std::vector<resolution>({resolution(256,256), resolution(512,512), resolution(1024,1024), resolution(2048,2048), resolution(4096,4096), resolution(8192,8192)}), true, RESOPT_NONE),
|
||||
new NumericOption(L"gamma", GRAPHICS_SECTION, CONFIG_FILE, L"Gamma:", L"Increase to darken shadows.\nSet to 125 for a console-like experience.\n\nDefault: 0 or 100", 100, 0, 200),
|
||||
new BooleanOption(L"punchthrough", GRAPHICS_SECTION, CONFIG_FILE, L"Transparent Meshes", L"Show transparent meshes.", true, false),
|
||||
new BooleanOption(L"glare", GRAPHICS_SECTION, CONFIG_FILE, L"Glare", L"Enable or disable glare.", true, false),
|
||||
new BooleanOption(L"shader", GRAPHICS_SECTION, CONFIG_FILE, L"Shader", L"Enable or disable high-quality shaders.", true, false),
|
||||
@@ -232,7 +233,7 @@ ConfigOptionBase* optionsArray[] = {
|
||||
new BooleanOption(L"hide_volume", PATCHES_SECTION, CONFIG_FILE, L"Hide Volume Buttons", L"Hide the volume and SE control buttons.", false, false),
|
||||
new BooleanOption(L"no_pv_ui", PATCHES_SECTION, CONFIG_FILE, L"Disable PV UI", L"Remove the photo controls during PV playback.", false, false),
|
||||
new BooleanOption(L"hide_pv_watermark", PATCHES_SECTION, CONFIG_FILE, L"Hide PV Watermark", L"Hide the watermark that's usually shown in PV viewing mode.", false, false),
|
||||
new DropdownOption(L"status_icons", PATCHES_SECTION, CONFIG_FILE, L"Top-Right Corner Icons:", L"Set the state of card reader and network status icons.", 3, std::vector<LPCWSTR>({ L"Default", L"Hidden", L"Error", L"OK", L"Partial OK" })),
|
||||
new DropdownOption(L"status_icons", PATCHES_SECTION, CONFIG_FILE, L"Top-Right Network Icons:", L"Set the state of card reader and network status icons.", 3, std::vector<LPCWSTR>({ L"Default", L"Hidden", L"Error", L"OK", L"Partial OK" })),
|
||||
new BooleanOption(L"no_lyrics", PATCHES_SECTION, CONFIG_FILE, L"Disable Lyrics", L"Disable showing lyrics.", false, false),
|
||||
new BooleanOption(L"no_error", PATCHES_SECTION, CONFIG_FILE, L"Disable Error Banner", L"Disable the error banner on the attract screen.", true, false),
|
||||
new BooleanOption(L"hide_freeplay", PATCHES_SECTION, CONFIG_FILE, L"Hide \"FREE PLAY\"/\"CREDIT(S)\"", L"Hide the \"FREE PLAY\"/\"CREDIT(S)\" text.", false, false),
|
||||
@@ -250,21 +251,21 @@ ConfigOptionBase* optionsArray[] = {
|
||||
new OptionMetaSeparator(),
|
||||
new OptionMetaSpacer(8),
|
||||
|
||||
new OptionMetaSectionLabel(L"Advanced Compatibility"),
|
||||
new BooleanOption(L"opengl_patch_a", LAUNCHER_SECTION, CONFIG_FILE, L"OpenGL Patch A", L"Ignores some OpenGL-related errors. Don't use both patches at the same time unless you're know what you're doing.", false, false),
|
||||
new BooleanOption(L"opengl_patch_b", LAUNCHER_SECTION, CONFIG_FILE, L"OpenGL Patch B", L"Ignores some OpenGL-related errors. Don't use both patches at the same time unless you're know what you're doing.", false, false),
|
||||
new OptionMetaSeparator(),
|
||||
new OptionMetaSpacer(8),
|
||||
//new OptionMetaSectionLabel(L"Advanced Compatibility"),
|
||||
//new BooleanOption(L"opengl_patch_a", LAUNCHER_SECTION, CONFIG_FILE, L"OpenGL Patch A", L"Ignores some OpenGL-related errors. Don't use both patches at the same time unless you're know what you're doing.", false, false),
|
||||
//new BooleanOption(L"opengl_patch_b", LAUNCHER_SECTION, CONFIG_FILE, L"OpenGL Patch B", L"Ignores some OpenGL-related errors. Don't use both patches at the same time unless you're know what you're doing.", false, false),
|
||||
//new OptionMetaSeparator(),
|
||||
//new OptionMetaSpacer(8),
|
||||
|
||||
new OptionMetaSectionLabel(L"Loader"),
|
||||
new BooleanOption(L"custom_patches", PATCHES_SECTION, CONFIG_FILE, L"Enable Custom Patches", L"Enables all custom patches.", true, false),
|
||||
new BooleanOption(L"prevent_data_deletion", PATCHES_SECTION, CONFIG_FILE, L"Prevent Data Deletion", L"Prevents the game from deleting files.", false, false),
|
||||
//new BooleanOption(L"prevent_data_deletion", PATCHES_SECTION, CONFIG_FILE, L"Prevent Data Deletion", L"Prevents the game from deleting files.", false, false),
|
||||
new OptionMetaSeparator(),
|
||||
new OptionMetaSpacer(8),
|
||||
|
||||
new OptionMetaSectionLabel(L"Launcher"),
|
||||
new BooleanOption(L"dark_launcher", LAUNCHER_SECTION, CONFIG_FILE, L"Dark Launcher", L"Sets the dark colour scheme in the launcher.", false, false),
|
||||
new BooleanOption(L"acrylic_blur", LAUNCHER_SECTION, CONFIG_FILE, L"Acrylic Blur", L"Enables acrylic blur in the launcher on Windows 10 20H2 or later.", false, false),
|
||||
//new BooleanOption(L"acrylic_blur", LAUNCHER_SECTION, CONFIG_FILE, L"Acrylic Blur", L"Enables acrylic blur in the launcher on Windows 10 20H2 or later.", false, false),
|
||||
new BooleanOption(L"no_gpu_dialog", LAUNCHER_SECTION, CONFIG_FILE, L"Disable GPU Warning", L"Disables the warning dialog for unsupported GPUs.", false, false),
|
||||
//new BooleanOption(L"ignore_exe_checksum", PATCHES_SECTION, CONFIG_FILE, L"Ignore exe checksum", L"Use at your own risk.", false, false),
|
||||
new StringOption(L"command_line", LAUNCHER_SECTION, CONFIG_FILE, L"Command Line:", L"Allows setting command line parameters for the game when using the launcher.\nDisabling the launcher will bypass this.", L"", false),
|
||||
|
||||
@@ -245,9 +245,25 @@ namespace Launcher {
|
||||
{
|
||||
if (wineVersion == "" && (driver_version_major < 21 || (driver_version_major == 21 && driver_version_minor < 6)))
|
||||
{
|
||||
this->labelGPU->Text += L"Driver has known issues.";
|
||||
GPUIssueText = L"The graphics driver you're using has known issues. Please install the latest driver from your GPU vendor's website.";
|
||||
if (driver_version_major == 21 && driver_version_minor == 5)
|
||||
{
|
||||
this->labelGPU->Text += L"Driver may have issues.";
|
||||
GPUIssueText = L"The graphics driver you're using should be able to play movies without issues, but may crash while loading a song after playing multiple stages in one session.\nIf possible, please install the latest driver from your GPU vendor's website.\nHowever, note that if your GPU is old, you may not be able to install a more recent driver.";
|
||||
}
|
||||
else
|
||||
{
|
||||
this->labelGPU->Text += L"Driver has known issues.";
|
||||
GPUIssueText = L"The graphics driver you're using has known issues. Movies may not play back correctly.\nPlease install the latest driver from your GPU vendor's website.";
|
||||
showGpuDialog = true;
|
||||
}
|
||||
|
||||
this->labelGPU->LinkColor = System::Drawing::Color::Orange;
|
||||
}
|
||||
else if (wineVersion == "" && (driver_version_major > 22 || (driver_version_major == 22 && driver_version_minor > 6)))
|
||||
{
|
||||
this->labelGPU->Text += "Issues: Unsupported GPU driver.";
|
||||
GPUIssueText = "The graphics driver you're using is too new for Novidia.\nThe game will not run unless you install driver version 22.6.1 or earlier from AMD's website.";
|
||||
this->labelGPU->LinkColor = System::Drawing::Color::Red;
|
||||
showGpuDialog = true;
|
||||
}
|
||||
else
|
||||
@@ -282,7 +298,7 @@ namespace Launcher {
|
||||
}
|
||||
else if (gpuModel->StartsWith("TU") || gpuModel->StartsWith("GV")) // let's assume Volta is like Turing for now
|
||||
{
|
||||
this->labelGPU->Text += L"Issues: Ampere GPU detected! Possible noise.\n(Click for more information)";
|
||||
this->labelGPU->Text += L"Issues: Turing GPU detected! Possible noise.\n(Click for more information)";
|
||||
GPUIssueText = L"On Turing GPUs (GTX 16xx/RTX 20xx), some important character shaders have issues resulting in lines/noise.\nPlease make sure the ShaderPatch plugin is enabled.";
|
||||
this->labelGPU->LinkColor = System::Drawing::Color::Yellow;
|
||||
}
|
||||
@@ -386,9 +402,6 @@ namespace Launcher {
|
||||
void updateStyle()
|
||||
{
|
||||
int nDarkLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"dark_launcher", FALSE, CONFIG_FILE);
|
||||
int nAcrylicLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"acrylic_blur", FALSE, CONFIG_FILE);
|
||||
|
||||
bool useAcrylic = nAcrylicLauncher && setBlur(hWnd, AccentState::ACCENT_ENABLE_ACRYLICBLURBEHIND);
|
||||
|
||||
Color colourBg, colourBg2, colourFg;
|
||||
|
||||
@@ -407,22 +420,10 @@ namespace Launcher {
|
||||
colourBg2 = Color::FromArgb(242, 242, 242);
|
||||
}
|
||||
|
||||
if (useAcrylic)
|
||||
{
|
||||
this->button_Discord->BackColor = colourBg2;
|
||||
this->button_github->BackColor = colourBg2;
|
||||
this->button_Wiki->BackColor = colourBg2;
|
||||
|
||||
colourBg2 = Color::FromArgb(255, 0, 255);
|
||||
}
|
||||
else
|
||||
{
|
||||
setBlur(hWnd, AccentState::ACCENT_DISABLED);
|
||||
|
||||
this->button_Discord->BackColor = Color::Transparent;
|
||||
this->button_github->BackColor = Color::Transparent;
|
||||
this->button_Wiki->BackColor = Color::Transparent;
|
||||
}
|
||||
this->button_Discord->BackColor = Color::Transparent;
|
||||
this->button_github->BackColor = Color::Transparent;
|
||||
this->button_Wiki->BackColor = Color::Transparent;
|
||||
|
||||
this->tabPage_Resolution->BackColor = colourBg;
|
||||
this->tabPage_Resolution->ForeColor = colourFg;
|
||||
@@ -938,7 +939,7 @@ private: System::Windows::Forms::Button^ button_Wiki;
|
||||
this->MaximizeBox = false;
|
||||
this->Name = L"ui";
|
||||
this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
|
||||
this->Text = L"PD Launcher (2.6.5a)";
|
||||
this->Text = L"PD Launcher -- TEST VERSION --";
|
||||
this->TransparencyKey = System::Drawing::Color::Magenta;
|
||||
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &ui::Ui_FormClosing);
|
||||
this->FormClosed += gcnew System::Windows::Forms::FormClosedEventHandler(this, &ui::Ui_FormClosed);
|
||||
|
||||
@@ -149,7 +149,7 @@ class PatchApplier600 : public PatchApplier {
|
||||
|
||||
if (nPDLoaderText && !nHideFreeplay)
|
||||
{
|
||||
InjectCode((void*)0x00000001409BC188, { 0x50, 0x44, 0x20, 0x4C, 0x6F, 0x61, 0x64, 0x65, 0x72, 0x20, 0x00 });
|
||||
InjectCode((void*)0x00000001409BC188, { 'U', 'N', 'S', 'U', 'P', 'P', 'O', 'R', 'T', 'E', 'D', '\0' });
|
||||
printf("[Patches] Show PD Loader text\n");
|
||||
}
|
||||
}
|
||||
@@ -308,16 +308,16 @@ class PatchApplier600 : public PatchApplier {
|
||||
printf("[Patches] Enhanced Stage Manager enabled\n");
|
||||
}
|
||||
// OpenGL Patches
|
||||
if (nOGLPatchA)
|
||||
{
|
||||
// (call cs:glGetError) -> (xor eax, eax); (nop); (nop); (nop); (nop);
|
||||
InjectCode((void*)0x000000014067842D, { 0x31, 0xC0, 0x90, 0x90, 0x90, 0x90 });
|
||||
}
|
||||
if (nOGLPatchB)
|
||||
{
|
||||
// (js loc_14069BC32) -> (nop)...
|
||||
InjectCode((void*)0x0000000140676D04, { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
}
|
||||
//if (nOGLPatchA)
|
||||
//{
|
||||
// // (call cs:glGetError) -> (xor eax, eax); (nop); (nop); (nop); (nop);
|
||||
// InjectCode((void*)0x000000014067842D, { 0x31, 0xC0, 0x90, 0x90, 0x90, 0x90 });
|
||||
//}
|
||||
//if (nOGLPatchB)
|
||||
//{
|
||||
// // (js loc_14069BC32) -> (nop)...
|
||||
// InjectCode((void*)0x0000000140676D04, { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
//}
|
||||
// Unlock PSEUDO modules (which will all default to Miku, unless we also patch them to match the first performer)
|
||||
if (nUnlockPseudo)
|
||||
{
|
||||
|
||||
@@ -167,7 +167,7 @@ class PatchApplier710 : public PatchApplier {
|
||||
if (nPDLoaderText && !nHideFreeplay)
|
||||
{
|
||||
InjectCode((void*)0x00000001409F61F0, { 0x50, 0x44, 0x20, 0x4C, 0x6F, 0x61, 0x64, 0x65, 0x72,
|
||||
0x20, 0x32, 0x2E, 0x36, 0x2E, 0x35, 0x61,
|
||||
0x20, 't', 'e', 's', 't',
|
||||
0x00});
|
||||
printf("[Patches] Show PD Loader text\n");
|
||||
}
|
||||
@@ -325,18 +325,20 @@ class PatchApplier710 : public PatchApplier {
|
||||
ESM[2] = nEStageManagerEncore;
|
||||
|
||||
printf("[Patches] Enhanced Stage Manager enabled\n");
|
||||
|
||||
}
|
||||
// OpenGL Patches
|
||||
if (nOGLPatchA)
|
||||
{
|
||||
// (call cs:glGetError) -> (xor eax, eax); (nop); (nop); (nop); (nop);
|
||||
InjectCode((void*)0x000000014069D21D, { 0x31, 0xC0, 0x90, 0x90, 0x90, 0x90 });
|
||||
}
|
||||
if (nOGLPatchB)
|
||||
{
|
||||
// (js loc_14069BC32) -> (nop)...
|
||||
InjectCode((void*)0x000000014069BAF4, { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
}
|
||||
//// OpenGL Patches
|
||||
//if (nOGLPatchA)
|
||||
//{
|
||||
// // (call cs:glGetError) -> (xor eax, eax); (nop); (nop); (nop); (nop);
|
||||
// InjectCode((void*)0x000000014069D21D, { 0x31, 0xC0, 0x90, 0x90, 0x90, 0x90 });
|
||||
//}
|
||||
//if (nOGLPatchB)
|
||||
//{
|
||||
// // (js loc_14069BC32) -> (nop)...
|
||||
// InjectCode((void*)0x000000014069BAF4, { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
//}
|
||||
//
|
||||
// Unlock PSEUDO modules (which will all default to Miku, unless we also patch them to match the first performer)
|
||||
if (nUnlockPseudo)
|
||||
{
|
||||
@@ -596,58 +598,59 @@ class PatchApplier710 : public PatchApplier {
|
||||
|
||||
InjectCode((void*)0x140A07920, { 0x00 }); // ignore objset
|
||||
}
|
||||
// Prevent data deletion
|
||||
if (nNoDelete)
|
||||
{
|
||||
InjectCode((void*)(0x1406FEF80 + 0x1DB), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407113F0 + 0x13C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140712270 + 0x6C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140712580 + 0x4C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140712580 + 0x7C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140713470 + 0x104), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407135B0 + 0x102), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407135B0 + 0x135), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407135B0 + 0x232), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140713810 + 0x3E8), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140713D00 + 0x677), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x9C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x1D2), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x218), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x22A), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140720910 + 0x25C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140723EE0 + 0xEC), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140870DE0 + 0x4), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1406FEF80 + 0x1DB), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407113F0 + 0x13C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140712270 + 0x6E), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140712580 + 0x4C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140712580 + 0x7C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140713470 + 0x104), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407135B0 + 0x102), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407135B0 + 0x135), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407135B0 + 0x232), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140713810 + 0x3E8), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140713D00 + 0x677), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x9C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x1D2), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x218), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x22A), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140720910 + 0x25C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140723EE0 + 0xEC), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407168A0 + 0x9C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140870DE0 + 0x4), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x14081B6A4), { 0xC3 });
|
||||
|
||||
InjectCode((void*)(0x1406E1090 + 0x43C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140718250 + 0x176), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140718750 + 0xC9), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407193E0 + 0xFC), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1406E1090 + 0x43C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140718250 + 0x176), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x140718750 + 0xC9), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x1407193E0 + 0xFC), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
InjectCode((void*)(0x14081B67A), { 0xC3 });
|
||||
}
|
||||
//// Prevent data deletion
|
||||
//if (nNoDelete)
|
||||
//{
|
||||
// InjectCode((void*)(0x1406FEF80 + 0x1DB), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407113F0 + 0x13C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140712270 + 0x6C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140712580 + 0x4C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140712580 + 0x7C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140713470 + 0x104), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407135B0 + 0x102), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407135B0 + 0x135), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407135B0 + 0x232), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140713810 + 0x3E8), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140713D00 + 0x677), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x9C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x1D2), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x218), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x22A), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140720910 + 0x25C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140723EE0 + 0xEC), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140870DE0 + 0x4), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1406FEF80 + 0x1DB), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407113F0 + 0x13C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140712270 + 0x6E), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140712580 + 0x4C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140712580 + 0x7C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140713470 + 0x104), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407135B0 + 0x102), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407135B0 + 0x135), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407135B0 + 0x232), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140713810 + 0x3E8), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140713D00 + 0x677), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x9C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x1D2), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x218), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x22A), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140720910 + 0x25C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140723EE0 + 0xEC), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407168A0 + 0x9C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140870DE0 + 0x4), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x14081B6A4), { 0xC3 });
|
||||
|
||||
// InjectCode((void*)(0x1406E1090 + 0x43C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140718250 + 0x176), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140718750 + 0xC9), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407193E0 + 0xFC), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1406E1090 + 0x43C), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140718250 + 0x176), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x140718750 + 0xC9), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x1407193E0 + 0xFC), { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
// InjectCode((void*)(0x14081B67A), { 0xC3 });
|
||||
//}
|
||||
|
||||
// patch refract and reflect buffer sizes
|
||||
if (nRefractResWidth != 512 || nRefractResHeight != 256)
|
||||
@@ -702,6 +705,13 @@ class PatchApplier710 : public PatchApplier {
|
||||
|
||||
printf("[Patches] Reflection resolution patched.\n");
|
||||
}
|
||||
if (nShadowResWidth != 2048 || nShadowResHeight != 2048)
|
||||
{
|
||||
InjectUint((void*)(0x140A81E04), nShadowResHeight);
|
||||
InjectUint((void*)(0x140A81E08), nShadowResWidth);
|
||||
|
||||
printf("[Patches] Shadow resolution patched.\n");
|
||||
}
|
||||
|
||||
// lag compensation
|
||||
if (nLagCompensation > 0 && nLagCompensation <= 500)
|
||||
|
||||
@@ -47,6 +47,14 @@ void InjectCode(void* address, const std::vector<uint8_t> data)
|
||||
VirtualProtect(address, byteCount, oldProtect, nullptr);
|
||||
}
|
||||
|
||||
void InjectUint(void* address, const uint32_t data)
|
||||
{
|
||||
DWORD oldProtect;
|
||||
VirtualProtect(address, 4, PAGE_EXECUTE_READWRITE, &oldProtect);
|
||||
memcpy(address, &data, 4);
|
||||
VirtualProtect(address, 4, oldProtect, nullptr);
|
||||
}
|
||||
|
||||
// patchMovieExt will modify an extension to mp4 only if the file exists on disk as an mp4
|
||||
void patchMovieExt(std::string moviefile, void* address)
|
||||
{
|
||||
@@ -98,8 +106,6 @@ auto nEStageManagerEncore = GetPrivateProfileIntW(L"patches", L"enhanced_stage_m
|
||||
auto nUnlockPseudo = GetPrivateProfileIntW(L"patches", L"unlock_pseudo", FALSE, CONFIG_FILE);
|
||||
auto nCard = GetPrivateProfileIntW(L"patches", L"card", TRUE, CONFIG_FILE);
|
||||
auto nHardwareSlider = GetPrivateProfileIntW(L"patches", L"hardware_slider", FALSE, CONFIG_FILE);
|
||||
auto nOGLPatchA = GetPrivateProfileIntW(L"patches", L"opengl_patch_a", FALSE, CONFIG_FILE);
|
||||
auto nOGLPatchB = GetPrivateProfileIntW(L"patches", L"opengl_patch_b", FALSE, CONFIG_FILE);
|
||||
auto nTAA = GetPrivateProfileIntW(L"graphics", L"taa", TRUE, CONFIG_FILE);
|
||||
auto nMLAA = GetPrivateProfileIntW(L"graphics", L"mlaa", TRUE, CONFIG_FILE);
|
||||
auto nDoF = GetPrivateProfileIntW(L"graphics", L"dof", TRUE, CONFIG_FILE);
|
||||
@@ -123,10 +129,11 @@ auto nPunchthrough = GetPrivateProfileIntW(L"graphics", L"punchthrough", TRUE, C
|
||||
auto nGlare = GetPrivateProfileIntW(L"graphics", L"glare", TRUE, CONFIG_FILE);
|
||||
auto nShader = GetPrivateProfileIntW(L"graphics", L"shader", TRUE, CONFIG_FILE);
|
||||
auto n2D = GetPrivateProfileIntW(L"graphics", L"2D", FALSE, CONFIG_FILE);
|
||||
auto nNoDelete = GetPrivateProfileIntW(L"patches", L"prevent_data_deletion", FALSE, CONFIG_FILE);
|
||||
auto nReflectResWidth = GetPrivateProfileIntW(L"graphics", L"reflect_res_width", 512, CONFIG_FILE);
|
||||
auto nReflectResHeight = GetPrivateProfileIntW(L"graphics", L"reflect_res_height", 256, CONFIG_FILE);
|
||||
auto nRefractResWidth = GetPrivateProfileIntW(L"graphics", L"refract_res_width", 512, CONFIG_FILE);
|
||||
auto nRefractResHeight = GetPrivateProfileIntW(L"graphics", L"refract_res_height", 256, CONFIG_FILE);
|
||||
auto nShadowResWidth = GetPrivateProfileIntW(L"graphics", L"shadow_res_width", 2048, CONFIG_FILE);
|
||||
auto nShadowResHeight = GetPrivateProfileIntW(L"graphics", L"shadow_res_height", 2048, CONFIG_FILE);
|
||||
auto nLagCompensation = GetPrivateProfileIntW(L"graphics", L"lag_compensation", 0, CONFIG_FILE);
|
||||
auto nUseDivahookBat = GetPrivateProfileIntW(L"launcher", L"use_divahook_bat", FALSE, CONFIG_FILE);
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "../../Input/Bindings/XinputBinding.h"
|
||||
#include "../../Input/Bindings/MouseBinding.h"
|
||||
#include "../../Input/Bindings/Ds4Binding.h"
|
||||
#include "../../Input/Bindings/DVLBinding.h"
|
||||
#include "../../Input/KeyConfig/Config.h"
|
||||
#include "../../Utilities/Operations.h"
|
||||
#include "../../Utilities/EnumBitwiseOperations.h"
|
||||
@@ -83,6 +84,7 @@ namespace TLAC::Components
|
||||
|
||||
CoinBinding = new Binding();
|
||||
ToonBinding = new Binding();
|
||||
WireframeBinding = new Binding();
|
||||
|
||||
FileSystem::ConfigFile configFile(framework::GetModuleDirectory(), KEY_CONFIG_FILE_NAME);
|
||||
configFile.OpenRead();
|
||||
@@ -103,8 +105,18 @@ namespace TLAC::Components
|
||||
Config::BindConfigKeys(configFile.ConfigMap, "MENU_CIRCLE", *MenuCircleBinding, { "D", "L", "Spacebar" });
|
||||
Config::BindConfigKeys(configFile.ConfigMap, "TOON", *ToonBinding, { "F9" });
|
||||
Config::BindConfigKeys(configFile.ConfigMap, "COIN", *CoinBinding, { "F10" });
|
||||
Config::BindConfigKeys(configFile.ConfigMap, "WIREFRAME", *WireframeBinding, { "Backspace" });
|
||||
|
||||
mouseScrollPvSelection = configFile.GetBooleanValue("mouse_scroll_pv_selection");
|
||||
|
||||
TestBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_L3));
|
||||
ServiceBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_L2));
|
||||
CoinBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_L1));
|
||||
StartBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_FN));
|
||||
SankakuBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_TRIANGLE));
|
||||
ShikakuBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_SQUARE));
|
||||
BatsuBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_CROSS));
|
||||
MaruBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_CIRCLE));
|
||||
}
|
||||
|
||||
void InputEmulator::Update()
|
||||
@@ -176,6 +188,9 @@ namespace TLAC::Components
|
||||
|
||||
if (ToonBinding->AnyTapped())
|
||||
toggleNpr1();
|
||||
|
||||
if (WireframeBinding->AnyTapped())
|
||||
toggleWireframe();
|
||||
}
|
||||
|
||||
HoldState InputEmulator::GetHoldState()
|
||||
@@ -467,4 +482,28 @@ namespace TLAC::Components
|
||||
printf("[TLAC] NPR1 restored\n");
|
||||
}
|
||||
}
|
||||
|
||||
void InputEmulator::toggleWireframe()
|
||||
{
|
||||
static bool wireframeEnabled = false;
|
||||
|
||||
if (!wireframeEnabled)
|
||||
{
|
||||
// inject samyuu's wireframe code
|
||||
InjectCode((void*)0x00000000140500BE6, { 0xBA, 0x01, 0x1B, 0x00, 0x00, // mov edx,00001B01
|
||||
0xB9, 0x08, 0x04, 0x00, 0x00, // mov ecx,00000408
|
||||
0xE8, 0xE1, 0x5A, 0x3B, 0x00, // call 1408B66D6
|
||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 });
|
||||
|
||||
wireframeEnabled = true;
|
||||
printf("[TLAC] Wireframe enabled\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
InjectCode((void*)0x00000000140500BE6, { 0xB9, 0x1C, 0x00, 0x00, 0x00, 0xE8, 0x30, 0x7C, 0xF3, 0xFF, 0xB9, 0x1B, 0x00, 0x00, 0x00, 0x8B, 0xD8, 0xE8, 0x24, 0x7C, 0xF3, 0xFF, 0xB9, 0x1A, 0x00, 0x00, 0x00 });
|
||||
|
||||
wireframeEnabled = false;
|
||||
printf("[TLAC] Wireframe disabled\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -40,6 +40,7 @@ namespace TLAC::Components
|
||||
|
||||
Input::Binding* CoinBinding;
|
||||
Input::Binding* ToonBinding;
|
||||
Input::Binding* WireframeBinding;
|
||||
|
||||
InputEmulator();
|
||||
~InputEmulator();
|
||||
@@ -112,5 +113,6 @@ namespace TLAC::Components
|
||||
|
||||
void addCoin();
|
||||
void toggleNpr1();
|
||||
void toggleWireframe();
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "../../Input/Bindings/KeyboardBinding.h"
|
||||
#include "../../Input/KeyConfig/Config.h"
|
||||
#include "../../Input/DirectInput/Ds4/DualShock4.h"
|
||||
#include "../../Input/Divaller/Divaller.h"
|
||||
#include "../../FileSystem/ConfigFile.h"
|
||||
#include "../../Utilities/Math.h"
|
||||
#include <algorithm>
|
||||
@@ -100,7 +101,11 @@ namespace TLAC::Components
|
||||
if (!componentsManager->GetUpdateGameInput() || componentsManager->IsDwGuiActive() || (!enableInMenus && !(*(GameState*)CURRENT_GAME_STATE_ADDRESS == GS_GAME && *(SubGameState*)CURRENT_GAME_SUB_STATE_ADDRESS == SUB_GAME_MAIN)))
|
||||
return;
|
||||
|
||||
if (usePs4OfficialSlider)
|
||||
if (Input::Divaller::GetInstance() != nullptr)
|
||||
{
|
||||
ApplyBitfieldState(Input::Divaller::GetInstance()->GetSlider());
|
||||
}
|
||||
else if (usePs4OfficialSlider)
|
||||
{
|
||||
DualShock4* ds4 = DualShock4::GetInstance();
|
||||
if (ds4 == nullptr)
|
||||
@@ -140,7 +145,7 @@ namespace TLAC::Components
|
||||
|
||||
void TouchSliderEmulator::OnFocusLost()
|
||||
{
|
||||
if (usePs4OfficialSlider)
|
||||
if (usePs4OfficialSlider || Input::Divaller::GetInstance() != nullptr)
|
||||
sliderState->ResetSensors(TouchSliderState::SENSOR_SET_MODE_RAW);
|
||||
else
|
||||
sliderState->ResetSensors(TouchSliderState::SENSOR_SET_MODE_SECTIONS);
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#include "DVLBinding.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
#define DivallerInstanceCheckDefault(checkFunc) (Divaller::InstanceInitialized() ? Divaller::GetInstance()->checkFunc : false)
|
||||
|
||||
DivallerBinding::DivallerBinding(DivallerButton button) : Button(button)
|
||||
{
|
||||
}
|
||||
|
||||
DivallerBinding::~DivallerBinding()
|
||||
{
|
||||
}
|
||||
|
||||
bool DivallerBinding::IsDown()
|
||||
{
|
||||
return DivallerInstanceCheckDefault(IsDown(Button));
|
||||
}
|
||||
|
||||
bool DivallerBinding::IsTapped()
|
||||
{
|
||||
return DivallerInstanceCheckDefault(IsTapped(Button));
|
||||
}
|
||||
|
||||
bool DivallerBinding::IsReleased()
|
||||
{
|
||||
return DivallerInstanceCheckDefault(IsReleased(Button));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
#include "IInputBinding.h"
|
||||
#include "../Divaller/Divaller.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
class DivallerBinding : public IInputBinding
|
||||
{
|
||||
public:
|
||||
DivallerButton Button;
|
||||
|
||||
DivallerBinding(DivallerButton button);
|
||||
~DivallerBinding();
|
||||
|
||||
bool IsDown() override;
|
||||
bool IsTapped() override;
|
||||
bool IsReleased() override;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,272 @@
|
||||
#include "Divaller.h"
|
||||
#include "../../framework.h"
|
||||
#include "DivallerButton.h"
|
||||
#include "DivallerState.h"
|
||||
#include <stdio.h>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
Divaller *Divaller::instance;
|
||||
|
||||
Divaller::Divaller()
|
||||
{
|
||||
memset(outputBuffer, 0, sizeof(outputBuffer));
|
||||
outputBuffer[0] = 0x44;
|
||||
outputBuffer[1] = 0x4c;
|
||||
outputBuffer[2] = 0x61;
|
||||
}
|
||||
|
||||
Divaller::~Divaller()
|
||||
{
|
||||
CloseHandle(hDeviceHandle);
|
||||
}
|
||||
|
||||
bool Divaller::TryInitializeInstance()
|
||||
{
|
||||
if (InstanceInitialized())
|
||||
return true;
|
||||
|
||||
Divaller *divaller = new Divaller();
|
||||
|
||||
BOOL success = divaller->Initialize();
|
||||
instance = success ? divaller : nullptr;
|
||||
|
||||
if (!success)
|
||||
delete divaller;
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
bool Divaller::Initialize()
|
||||
{
|
||||
HDEVINFO hDevInfo = SetupDiGetClassDevs(&GUID_DEVINTERFACE_USB_DEVICE, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
|
||||
if (hDevInfo == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
printf("[TLAC] Divaller::Initialize(): SetupDiGetClassDevs returned INVALID_HANDLE_VALUE\n");
|
||||
return false;
|
||||
}
|
||||
LPCWSTR devPath = NULL;
|
||||
for (size_t i = 0;; i++)
|
||||
{
|
||||
SP_DEVICE_INTERFACE_DATA device_interface_data = {0};
|
||||
device_interface_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
|
||||
BOOL success = SetupDiEnumDeviceInterfaces(
|
||||
hDevInfo,
|
||||
NULL,
|
||||
&GUID_DEVINTERFACE_USB_DEVICE,
|
||||
(DWORD)i,
|
||||
&device_interface_data);
|
||||
if (!success)
|
||||
{
|
||||
break;
|
||||
}
|
||||
ULONG required_length = 0;
|
||||
success = SetupDiGetDeviceInterfaceDetail(
|
||||
hDevInfo,
|
||||
&device_interface_data,
|
||||
NULL,
|
||||
0,
|
||||
&required_length,
|
||||
NULL);
|
||||
|
||||
UINT8 *interface_data = (UINT8 *)calloc(required_length, sizeof(UINT8));
|
||||
|
||||
PSP_DEVICE_INTERFACE_DETAIL_DATA device_interface_detail_data = (PSP_DEVICE_INTERFACE_DETAIL_DATA)interface_data;
|
||||
device_interface_detail_data->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
|
||||
|
||||
ULONG actual_length = required_length;
|
||||
success = SetupDiGetDeviceInterfaceDetail(
|
||||
hDevInfo,
|
||||
&device_interface_data,
|
||||
device_interface_detail_data,
|
||||
actual_length,
|
||||
&required_length,
|
||||
NULL);
|
||||
|
||||
if (!success)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (
|
||||
wcsstr(device_interface_detail_data->DevicePath, L"vid_0e8f") == 0 ||
|
||||
wcsstr(device_interface_detail_data->DevicePath, L"pid_2213") == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
devPath = device_interface_detail_data->DevicePath;
|
||||
break;
|
||||
}
|
||||
if (devPath == NULL)
|
||||
{
|
||||
SetupDiDestroyDeviceInfoList(hDevInfo);
|
||||
return false;
|
||||
}
|
||||
hDeviceHandle = CreateFile(
|
||||
devPath,
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
FILE_FLAG_OVERLAPPED,
|
||||
NULL);
|
||||
if (hDeviceHandle == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
printf("[TLAC] Divaller::Initialize(): Open device failed.\n");
|
||||
SetupDiDestroyDeviceInfoList(hDevInfo);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!WinUsb_Initialize(hDeviceHandle, &hInterfaceHandle))
|
||||
{
|
||||
printf("[TLAC] Divaller::Initialize(): WinUsb_Initialize failed.\n");
|
||||
std::cout << GetLastError() << std::endl;
|
||||
SetupDiDestroyDeviceInfoList(hDevInfo);
|
||||
CloseHandle(hDeviceHandle);
|
||||
return false;
|
||||
}
|
||||
|
||||
USB_INTERFACE_DESCRIPTOR USBInterfaceDescriptor;
|
||||
if (!WinUsb_QueryInterfaceSettings(hInterfaceHandle, 0, &USBInterfaceDescriptor))
|
||||
{
|
||||
std::cout << GetLastError() << std::endl;
|
||||
SetupDiDestroyDeviceInfoList(hDevInfo);
|
||||
CloseHandle(hDeviceHandle);
|
||||
return false;
|
||||
}
|
||||
SetupDiDestroyDeviceInfoList(hDevInfo);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Divaller::PollInput()
|
||||
{
|
||||
lastState = currentState;
|
||||
ULONG len = 0;
|
||||
memset(currentState.state, 0, sizeof(currentState.state));
|
||||
BOOL bResult = WinUsb_ReadPipe(hInterfaceHandle, (UCHAR)132, currentState.state, _countof(currentState.state), &len, nullptr);
|
||||
if (!bResult || currentState.state[0] != 0x42 || currentState.state[1] != 0x56 || currentState.state[2] != 0x5a)
|
||||
{
|
||||
printf("[TLAC] Divaller::PollInput(): WinUsb_ReadPipe failed.\n");
|
||||
std::cout << GetLastError() << std::endl;
|
||||
}
|
||||
SetLED();
|
||||
return bResult;
|
||||
}
|
||||
|
||||
bool Divaller::SetLED()
|
||||
{
|
||||
outputBuffer[3] &= 0x0F; // Reset Button LED
|
||||
outputBuffer[3] |= (!(*buttonLed >> 1 & 0x0001)) << 4; // SQUARE
|
||||
outputBuffer[3] |= (!(*buttonLed >> 3 & 0x0001)) << 5; // CIRCLE
|
||||
outputBuffer[3] |= (!(*buttonLed & 0x0001)) << 6; // TRIANGLE
|
||||
outputBuffer[3] |= (!(*buttonLed >> 2 & 0x0001)) << 7; // CROSS
|
||||
if (*sliderLedInit && !sliderLedData)
|
||||
{
|
||||
sliderLedData = reinterpret_cast<UCHAR *>(*(uint64_t *)(0x14cc5de40 + 0x68) + 0x189c);
|
||||
}
|
||||
if (sliderLedData)
|
||||
{
|
||||
for (int n = 0; n < 32; n++)
|
||||
{
|
||||
// LED number + 3 bytes header + color offset
|
||||
outputBuffer[(31 - n) * 3 + 3 + 3] = sliderLedData[n * 3 + 1]; // BLUE
|
||||
outputBuffer[(31 - n) * 3 + 3 + 2] = sliderLedData[n * 3 + 2]; // RED
|
||||
outputBuffer[(31 - n) * 3 + 3 + 1] = sliderLedData[n * 3 + 3]; // GREEN
|
||||
}
|
||||
}
|
||||
|
||||
ULONG len = 0;
|
||||
BOOL bResult = WinUsb_WritePipe(hInterfaceHandle, (UCHAR)0x03, outputBuffer, 100, &len, NULL);
|
||||
if (!bResult)
|
||||
{
|
||||
printf("[TLAC] Divaller::SetLED(): WinUsb_WritePipe failed.\n");
|
||||
std::cout << GetLastError() << std::endl;
|
||||
}
|
||||
return bResult;
|
||||
}
|
||||
|
||||
bool Divaller::IsDown(DivallerButton button)
|
||||
{
|
||||
switch (button)
|
||||
{
|
||||
case DivallerButton::DVL_L1:
|
||||
return (currentState.state[5] >> 0) & 1;
|
||||
case DivallerButton::DVL_L2:
|
||||
return (currentState.state[4] >> 7) & 1;
|
||||
case DivallerButton::DVL_L3:
|
||||
return (currentState.state[4] >> 6) & 1;
|
||||
case DivallerButton::DVL_FN:
|
||||
return (currentState.state[3] >> 1) & 1;
|
||||
case DivallerButton::DVL_TRIANGLE:
|
||||
return (currentState.state[3] >> 4) & 1;
|
||||
case DivallerButton::DVL_SQUARE:
|
||||
return (currentState.state[3] >> 2) & 1;
|
||||
case DivallerButton::DVL_CROSS:
|
||||
return (currentState.state[3] >> 5) & 1;
|
||||
case DivallerButton::DVL_CIRCLE:
|
||||
return (currentState.state[3] >> 3) & 1;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Divaller::IsUp(DivallerButton button)
|
||||
{
|
||||
return !IsDown(button);
|
||||
}
|
||||
|
||||
bool Divaller::IsTapped(DivallerButton button)
|
||||
{
|
||||
return IsDown(button) && WasUp(button);
|
||||
}
|
||||
|
||||
bool Divaller::IsReleased(DivallerButton button)
|
||||
{
|
||||
return IsUp(button) && WasDown(button);
|
||||
}
|
||||
|
||||
bool Divaller::WasDown(DivallerButton button)
|
||||
{
|
||||
switch (button)
|
||||
{
|
||||
case DivallerButton::DVL_L1:
|
||||
return (lastState.state[5] >> 0) & 1;
|
||||
case DivallerButton::DVL_L2:
|
||||
return (lastState.state[4] >> 7) & 1;
|
||||
case DivallerButton::DVL_L3:
|
||||
return (lastState.state[4] >> 6) & 1;
|
||||
case DivallerButton::DVL_FN:
|
||||
return (lastState.state[3] >> 1) & 1;
|
||||
case DivallerButton::DVL_TRIANGLE:
|
||||
return (lastState.state[3] >> 4) & 1;
|
||||
case DivallerButton::DVL_SQUARE:
|
||||
return (lastState.state[3] >> 2) & 1;
|
||||
case DivallerButton::DVL_CROSS:
|
||||
return (lastState.state[3] >> 5) & 1;
|
||||
case DivallerButton::DVL_CIRCLE:
|
||||
return (lastState.state[3] >> 3) & 1;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Divaller::WasUp(DivallerButton button)
|
||||
{
|
||||
return !WasDown(button);
|
||||
}
|
||||
|
||||
uint32_t Divaller::GetSlider()
|
||||
{
|
||||
uint32_t i = 0;
|
||||
i |= currentState.state[5] >> 4;
|
||||
i |= currentState.state[6] << 4;
|
||||
i |= currentState.state[7] << 12;
|
||||
i |= currentState.state[8] << 20;
|
||||
i |= currentState.state[9] << 28;
|
||||
// Reverse the bit order of uint32
|
||||
i = (i & 0xaaaaaaaa) >> 1 | (i & 0x55555555) << 1;
|
||||
i = (i & 0xcccccccc) >> 2 | (i & 0x33333333) << 2;
|
||||
i = (i & 0xf0f0f0f0) >> 4 | (i & 0x0f0f0f0f) << 4;
|
||||
i = (i & 0xff00ff00) >> 8 | (i & 0x00ff00ff) << 8;
|
||||
return i >> 16 | i << 16;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
#pragma once
|
||||
#include "../IInputDevice.h"
|
||||
#include "DivallerState.h"
|
||||
#include "DivallerButton.h"
|
||||
#include <SetupAPI.h>
|
||||
#include <initguid.h>
|
||||
#include <usbiodef.h>
|
||||
#include <winusb.h>
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
|
||||
class Divaller : public IInputDevice
|
||||
{
|
||||
public:
|
||||
Divaller();
|
||||
~Divaller();
|
||||
|
||||
static bool TryInitializeInstance();
|
||||
|
||||
bool Initialize();
|
||||
bool PollInput() override;
|
||||
bool SetLED();
|
||||
bool IsDown(DivallerButton button);
|
||||
bool IsUp(DivallerButton button);
|
||||
bool IsTapped(DivallerButton button);
|
||||
bool IsReleased(DivallerButton button);
|
||||
|
||||
bool WasDown(DivallerButton button);
|
||||
bool WasUp(DivallerButton button);
|
||||
uint32_t GetSlider();
|
||||
static inline bool InstanceInitialized() { return instance != nullptr; };
|
||||
static inline Divaller *GetInstance() { return instance; };
|
||||
static inline void DeleteInstance()
|
||||
{
|
||||
delete instance;
|
||||
instance = nullptr;
|
||||
};
|
||||
|
||||
private:
|
||||
static Divaller *instance;
|
||||
DivallerState lastState;
|
||||
DivallerState currentState;
|
||||
WINUSB_INTERFACE_HANDLE hInterfaceHandle;
|
||||
HANDLE hDeviceHandle;
|
||||
UCHAR outputBuffer[100];
|
||||
int *buttonLed = reinterpret_cast<int *>(0x14119b950);
|
||||
uint64_t *partionLed = reinterpret_cast<uint64_t *>(*(uint64_t *)0x140eda330 + 0xc9);
|
||||
uint64_t *sliderLedInit = reinterpret_cast<uint64_t *>((uint64_t *)0x14cc5dea8);
|
||||
UCHAR *sliderLedData = nullptr;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
enum DivallerButton : int
|
||||
{
|
||||
DVL_SQUARE = 0,
|
||||
DVL_CROSS = 1,
|
||||
DVL_CIRCLE = 2,
|
||||
DVL_TRIANGLE = 3,
|
||||
|
||||
DVL_FN = 4,
|
||||
|
||||
DVL_L1 = 5,
|
||||
DVL_L2 = 6,
|
||||
DVL_L3 = 7,
|
||||
|
||||
DVL_R1 = 8,
|
||||
DVL_R2 = 9,
|
||||
DVL_R3 = 10,
|
||||
|
||||
DVL_UP = 11,
|
||||
DVL_LEFT = 12,
|
||||
DVL_DOWN = 13,
|
||||
DVL_RIGHT = 14,
|
||||
|
||||
DVL_PAD = 11,
|
||||
DVL_SHARE = 12,
|
||||
DVL_HOME = 13,
|
||||
DVL_OPTION = 14
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
#include "../../framework.h"
|
||||
namespace TLAC::Input
|
||||
{
|
||||
|
||||
struct DivallerState
|
||||
{
|
||||
uint8_t state[24];
|
||||
};
|
||||
}
|
||||
@@ -26,9 +26,6 @@ namespace TLAC::Input::KeyConfig
|
||||
{ "Minus", VK_SUBTRACT },
|
||||
{ "Divide", VK_DIVIDE },
|
||||
{ "Multiply", VK_MULTIPLY },
|
||||
{ "Comma", VK_OEM_COMMA },
|
||||
{ "Period", VK_OEM_PERIOD },
|
||||
{ "Slash", VK_OEM_2 },
|
||||
// F-Keys
|
||||
{ "F1", VK_F1 },
|
||||
{ "F2", VK_F2 },
|
||||
@@ -91,7 +88,14 @@ namespace TLAC::Input::KeyConfig
|
||||
{ "Escape", VK_ESCAPE },
|
||||
{ "Comma", VK_OEM_COMMA },
|
||||
{ "Period", VK_OEM_PERIOD },
|
||||
{ "Colon", VK_OEM_1 },
|
||||
{ "Slash", VK_OEM_2 },
|
||||
{ "Tilde", VK_OEM_3 },
|
||||
{ "LeftBracket", VK_OEM_4 },
|
||||
{ "Backslash", VK_OEM_5 },
|
||||
{ "RightBracket", VK_OEM_6 },
|
||||
{ "SingleDoubleQuote", VK_OEM_7 },
|
||||
{ "OEM_8", VK_OEM_8 },
|
||||
// Mouse buttons
|
||||
{ "MouseLeft", VK_LBUTTON },
|
||||
{ "MouseMiddle", VK_MBUTTON },
|
||||
|
||||
@@ -1,231 +1,237 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<ProjectGuid>{2B5533BB-04A1-424F-9BCA-1CA963B46B7F}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>TLAC</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<TargetExt>.dva</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<TargetExt>.dva</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>Xinput.h</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalLibraryDirectories>..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>-d2:-FH4- %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>Xinput.h</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalOptions>-d2:-FH4- %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Components\CameraController.h" />
|
||||
<ClInclude Include="Components\ComponentsManager.h" />
|
||||
<ClInclude Include="Components\CustomPlayerData.h" />
|
||||
<ClInclude Include="Components\DebugComponent.h" />
|
||||
<ClInclude Include="Components\EmulatorComponent.h" />
|
||||
<ClInclude Include="Components\FastLoader.h" />
|
||||
<ClInclude Include="Components\FrameRateManager.h" />
|
||||
<ClInclude Include="Components\GameState.h" />
|
||||
<ClInclude Include="Components\GameTargets\HoldState.h" />
|
||||
<ClInclude Include="Components\GameTargets\TargetHitStates.h" />
|
||||
<ClInclude Include="Components\GameTargets\TargetInspector.h" />
|
||||
<ClInclude Include="Components\GameTargets\TargetState.h" />
|
||||
<ClInclude Include="Components\GameTargets\TargetTypes.h" />
|
||||
<ClInclude Include="Components\Input\InputBufferType.h" />
|
||||
<ClInclude Include="Components\Input\InputEmulator.h" />
|
||||
<ClInclude Include="Components\Input\InputState.h" />
|
||||
<ClInclude Include="Components\Input\JvsButtons.h" />
|
||||
<ClInclude Include="Components\Input\TouchPanelEmulator.h" />
|
||||
<ClInclude Include="Components\Input\TouchPanelState.h" />
|
||||
<ClInclude Include="Components\Input\TouchSliderEmulator.h" />
|
||||
<ClInclude Include="Components\Input\TouchSliderState.h" />
|
||||
<ClInclude Include="Components\Pause.h" />
|
||||
<ClInclude Include="Components\PlayerData.h" />
|
||||
<ClInclude Include="Components\PlayerDataManager.h" />
|
||||
<ClInclude Include="Components\ScaleComponent.h" />
|
||||
<ClInclude Include="Components\ScoreSaver.h" />
|
||||
<ClInclude Include="Constants.h" />
|
||||
<ClInclude Include="FileSystem\ConfigFile.h" />
|
||||
<ClInclude Include="FileSystem\TextFile.h" />
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="Input\Bindings\Binding.h" />
|
||||
<ClInclude Include="Input\Bindings\Ds4Binding.h" />
|
||||
<ClInclude Include="Input\Bindings\GuBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\IInputBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\KeyboardBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\MouseBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\XinputBinding.h" />
|
||||
<ClInclude Include="Input\DirectInput\Controller.h" />
|
||||
<ClInclude Include="Input\DirectInput\DirectInput.h" />
|
||||
<ClInclude Include="Input\DirectInput\DirectInputDevice.h" />
|
||||
<ClInclude Include="Input\DirectInput\DirectInputMouse.h" />
|
||||
<ClInclude Include="Input\DirectInput\Ds4\Ds4Button.h" />
|
||||
<ClInclude Include="Input\DirectInput\Ds4\Ds4State.h" />
|
||||
<ClInclude Include="Input\DirectInput\Ds4\DualShock4.h" />
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GenericUsbInput.h" />
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GuButton.h" />
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GuState.h" />
|
||||
<ClInclude Include="Input\IInputDevice.h" />
|
||||
<ClInclude Include="Input\Keyboard\Keyboard.h" />
|
||||
<ClInclude Include="Input\Keyboard\KeyboardState.h" />
|
||||
<ClInclude Include="Input\KeyConfig\Config.h" />
|
||||
<ClInclude Include="Input\KeyConfig\KeyString.h" />
|
||||
<ClInclude Include="Input\KeyConfig\KeyStringHash.h" />
|
||||
<ClInclude Include="Input\Mouse\Mouse.h" />
|
||||
<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\Drawing.h" />
|
||||
<ClInclude Include="Utilities\EnumBitwiseOperations.h" />
|
||||
<ClInclude Include="Utilities\Math.h" />
|
||||
<ClInclude Include="Utilities\Operations.h" />
|
||||
<ClInclude Include="Utilities\Stopwatch.h" />
|
||||
<ClInclude Include="Utilities\Vec2.h" />
|
||||
<ClInclude Include="Utilities\Vec3.h" />
|
||||
<ClInclude Include="Utils.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Components\CameraController.cpp" />
|
||||
<ClCompile Include="Components\ComponentsManager.cpp" />
|
||||
<ClCompile Include="Components\DebugComponent.cpp" />
|
||||
<ClCompile Include="Components\EmulatorComponent.cpp" />
|
||||
<ClCompile Include="Components\FastLoader.cpp" />
|
||||
<ClCompile Include="Components\FrameRateManager.cpp" />
|
||||
<ClCompile Include="Components\GameTargets\TargetInspector.cpp" />
|
||||
<ClCompile Include="Components\Input\InputEmulator.cpp" />
|
||||
<ClCompile Include="Components\Input\InputState.cpp" />
|
||||
<ClCompile Include="Components\Input\TouchPanelEmulator.cpp" />
|
||||
<ClCompile Include="Components\Input\TouchSliderEmulator.cpp" />
|
||||
<ClCompile Include="Components\Input\TouchSliderState.cpp" />
|
||||
<ClCompile Include="Components\Pause.cpp" />
|
||||
<ClCompile Include="Components\PlayerDataManager.cpp" />
|
||||
<ClCompile Include="Components\ScaleComponent.cpp" />
|
||||
<ClCompile Include="Components\ScoreSaver.cpp" />
|
||||
<ClCompile Include="dllmain.cpp" />
|
||||
<ClCompile Include="FileSystem\ConfigFile.cpp" />
|
||||
<ClCompile Include="FileSystem\TextFile.cpp" />
|
||||
<ClCompile Include="framework.cpp" />
|
||||
<ClCompile Include="Input\Bindings\Binding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\Ds4Binding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\GuBinding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\KeyboardBinding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\MouseBinding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\XinputBinding.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\Controller.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\DirectInput.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\DirectInputDevice.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\DirectInputMouse.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\Ds4\Ds4State.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\Ds4\DualShock4.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\GenericUsb\GenericUsbInput.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\GenericUsb\GuState.cpp" />
|
||||
<ClCompile Include="Input\Keyboard\Keyboard.cpp" />
|
||||
<ClCompile Include="Input\Keyboard\KeyboardState.cpp" />
|
||||
<ClCompile Include="Input\KeyConfig\Config.cpp" />
|
||||
<ClCompile Include="Input\KeyConfig\KeyString.cpp" />
|
||||
<ClCompile Include="Input\KeyConfig\KeyStringHash.cpp" />
|
||||
<ClCompile Include="Input\Mouse\Mouse.cpp" />
|
||||
<ClCompile Include="Input\Xinput\Xinput.cpp" />
|
||||
<ClCompile Include="Input\Xinput\XinputState.cpp" />
|
||||
<ClCompile Include="Utilities\Drawing.cpp" />
|
||||
<ClCompile Include="Utilities\Math.cpp" />
|
||||
<ClCompile Include="Utilities\Operations.cpp" />
|
||||
<ClCompile Include="Utilities\Stopwatch.cpp" />
|
||||
<ClCompile Include="Utilities\Vec2.cpp" />
|
||||
<ClCompile Include="Utilities\Vec3.cpp" />
|
||||
<ClCompile Include="Utils.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<ProjectGuid>{2B5533BB-04A1-424F-9BCA-1CA963B46B7F}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>TLAC</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<TargetExt>.dva</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<TargetExt>.dva</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Winusb.lib;Setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>Xinput.h</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalLibraryDirectories>..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>-d2:-FH4- %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>Xinput.h</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalOptions>-d2:-FH4- %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Components\CameraController.h" />
|
||||
<ClInclude Include="Components\ComponentsManager.h" />
|
||||
<ClInclude Include="Components\CustomPlayerData.h" />
|
||||
<ClInclude Include="Components\DebugComponent.h" />
|
||||
<ClInclude Include="Components\EmulatorComponent.h" />
|
||||
<ClInclude Include="Components\FastLoader.h" />
|
||||
<ClInclude Include="Components\FrameRateManager.h" />
|
||||
<ClInclude Include="Components\GameState.h" />
|
||||
<ClInclude Include="Components\GameTargets\HoldState.h" />
|
||||
<ClInclude Include="Components\GameTargets\TargetHitStates.h" />
|
||||
<ClInclude Include="Components\GameTargets\TargetInspector.h" />
|
||||
<ClInclude Include="Components\GameTargets\TargetState.h" />
|
||||
<ClInclude Include="Components\GameTargets\TargetTypes.h" />
|
||||
<ClInclude Include="Components\Input\InputBufferType.h" />
|
||||
<ClInclude Include="Components\Input\InputEmulator.h" />
|
||||
<ClInclude Include="Components\Input\InputState.h" />
|
||||
<ClInclude Include="Components\Input\JvsButtons.h" />
|
||||
<ClInclude Include="Components\Input\TouchPanelEmulator.h" />
|
||||
<ClInclude Include="Components\Input\TouchPanelState.h" />
|
||||
<ClInclude Include="Components\Input\TouchSliderEmulator.h" />
|
||||
<ClInclude Include="Components\Input\TouchSliderState.h" />
|
||||
<ClInclude Include="Components\Pause.h" />
|
||||
<ClInclude Include="Components\PlayerData.h" />
|
||||
<ClInclude Include="Components\PlayerDataManager.h" />
|
||||
<ClInclude Include="Components\ScaleComponent.h" />
|
||||
<ClInclude Include="Components\ScoreSaver.h" />
|
||||
<ClInclude Include="Constants.h" />
|
||||
<ClInclude Include="FileSystem\ConfigFile.h" />
|
||||
<ClInclude Include="FileSystem\TextFile.h" />
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="Input\Bindings\Binding.h" />
|
||||
<ClInclude Include="Input\Bindings\Ds4Binding.h" />
|
||||
<ClInclude Include="Input\Bindings\DVLBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\GuBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\IInputBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\KeyboardBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\MouseBinding.h" />
|
||||
<ClInclude Include="Input\Bindings\XinputBinding.h" />
|
||||
<ClInclude Include="Input\DirectInput\Controller.h" />
|
||||
<ClInclude Include="Input\DirectInput\DirectInput.h" />
|
||||
<ClInclude Include="Input\DirectInput\DirectInputDevice.h" />
|
||||
<ClInclude Include="Input\DirectInput\DirectInputMouse.h" />
|
||||
<ClInclude Include="Input\DirectInput\Ds4\Ds4Button.h" />
|
||||
<ClInclude Include="Input\DirectInput\Ds4\Ds4State.h" />
|
||||
<ClInclude Include="Input\DirectInput\Ds4\DualShock4.h" />
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GenericUsbInput.h" />
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GuButton.h" />
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GuState.h" />
|
||||
<ClInclude Include="Input\Divaller\Divaller.h" />
|
||||
<ClInclude Include="Input\Divaller\DivallerButton.h" />
|
||||
<ClInclude Include="Input\Divaller\DivallerState.h" />
|
||||
<ClInclude Include="Input\IInputDevice.h" />
|
||||
<ClInclude Include="Input\Keyboard\Keyboard.h" />
|
||||
<ClInclude Include="Input\Keyboard\KeyboardState.h" />
|
||||
<ClInclude Include="Input\KeyConfig\Config.h" />
|
||||
<ClInclude Include="Input\KeyConfig\KeyString.h" />
|
||||
<ClInclude Include="Input\KeyConfig\KeyStringHash.h" />
|
||||
<ClInclude Include="Input\Mouse\Mouse.h" />
|
||||
<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\Drawing.h" />
|
||||
<ClInclude Include="Utilities\EnumBitwiseOperations.h" />
|
||||
<ClInclude Include="Utilities\Math.h" />
|
||||
<ClInclude Include="Utilities\Operations.h" />
|
||||
<ClInclude Include="Utilities\Stopwatch.h" />
|
||||
<ClInclude Include="Utilities\Vec2.h" />
|
||||
<ClInclude Include="Utilities\Vec3.h" />
|
||||
<ClInclude Include="Utils.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Components\CameraController.cpp" />
|
||||
<ClCompile Include="Components\ComponentsManager.cpp" />
|
||||
<ClCompile Include="Components\DebugComponent.cpp" />
|
||||
<ClCompile Include="Components\EmulatorComponent.cpp" />
|
||||
<ClCompile Include="Components\FastLoader.cpp" />
|
||||
<ClCompile Include="Components\FrameRateManager.cpp" />
|
||||
<ClCompile Include="Components\GameTargets\TargetInspector.cpp" />
|
||||
<ClCompile Include="Components\Input\InputEmulator.cpp" />
|
||||
<ClCompile Include="Components\Input\InputState.cpp" />
|
||||
<ClCompile Include="Components\Input\TouchPanelEmulator.cpp" />
|
||||
<ClCompile Include="Components\Input\TouchSliderEmulator.cpp" />
|
||||
<ClCompile Include="Components\Input\TouchSliderState.cpp" />
|
||||
<ClCompile Include="Components\Pause.cpp" />
|
||||
<ClCompile Include="Components\PlayerDataManager.cpp" />
|
||||
<ClCompile Include="Components\ScaleComponent.cpp" />
|
||||
<ClCompile Include="Components\ScoreSaver.cpp" />
|
||||
<ClCompile Include="dllmain.cpp" />
|
||||
<ClCompile Include="FileSystem\ConfigFile.cpp" />
|
||||
<ClCompile Include="FileSystem\TextFile.cpp" />
|
||||
<ClCompile Include="framework.cpp" />
|
||||
<ClCompile Include="Input\Bindings\Binding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\Ds4Binding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\DVLBinding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\GuBinding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\KeyboardBinding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\MouseBinding.cpp" />
|
||||
<ClCompile Include="Input\Bindings\XinputBinding.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\Controller.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\DirectInput.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\DirectInputDevice.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\DirectInputMouse.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\Ds4\Ds4State.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\Ds4\DualShock4.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\GenericUsb\GenericUsbInput.cpp" />
|
||||
<ClCompile Include="Input\DirectInput\GenericUsb\GuState.cpp" />
|
||||
<ClCompile Include="Input\Divaller\Divaller.cpp" />
|
||||
<ClCompile Include="Input\Keyboard\Keyboard.cpp" />
|
||||
<ClCompile Include="Input\Keyboard\KeyboardState.cpp" />
|
||||
<ClCompile Include="Input\KeyConfig\Config.cpp" />
|
||||
<ClCompile Include="Input\KeyConfig\KeyString.cpp" />
|
||||
<ClCompile Include="Input\KeyConfig\KeyStringHash.cpp" />
|
||||
<ClCompile Include="Input\Mouse\Mouse.cpp" />
|
||||
<ClCompile Include="Input\Xinput\Xinput.cpp" />
|
||||
<ClCompile Include="Input\Xinput\XinputState.cpp" />
|
||||
<ClCompile Include="Utilities\Drawing.cpp" />
|
||||
<ClCompile Include="Utilities\Math.cpp" />
|
||||
<ClCompile Include="Utilities\Operations.cpp" />
|
||||
<ClCompile Include="Utilities\Stopwatch.cpp" />
|
||||
<ClCompile Include="Utilities\Vec2.cpp" />
|
||||
<ClCompile Include="Utilities\Vec3.cpp" />
|
||||
<ClCompile Include="Utils.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,366 +1,384 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="framework.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Constants.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\CameraController.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\ComponentsManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\CustomPlayerData.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\DebugComponent.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\EmulatorComponent.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\FastLoader.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\FrameRateManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\PlayerData.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\PlayerDataManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\InputBufferType.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\InputEmulator.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\InputState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\JvsButtons.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\TouchPanelEmulator.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\TouchPanelState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\TouchSliderEmulator.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\TouchSliderState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FileSystem\ConfigFile.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FileSystem\TextFile.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\Binding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\Ds4Binding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\IInputBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\KeyboardBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\MouseBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\Ds4\Ds4Button.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\Ds4\Ds4State.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\Ds4\DualShock4.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\Controller.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\DirectInput.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\DirectInputDevice.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\DirectInputMouse.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Keyboard\Keyboard.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Keyboard\KeyboardState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\KeyConfig\Config.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\KeyConfig\KeyString.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\KeyConfig\KeyStringHash.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Mouse\Mouse.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Mouse\MouseState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\IInputDevice.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\EnumBitwiseOperations.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Math.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Operations.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Stopwatch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Vec2.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Vec3.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\ScaleComponent.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\XinputBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Xinput\Xinput.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Xinput\XinputState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\HoldState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\TargetHitStates.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\TargetInspector.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\TargetState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\TargetTypes.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\ScoreSaver.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pluginconfig.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Pause.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Drawing.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GuButton.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GuState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GenericUsbInput.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\GuBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utils.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dllmain.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="framework.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\CameraController.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\ComponentsManager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\DebugComponent.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\EmulatorComponent.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\FastLoader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\FrameRateManager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\PlayerDataManager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\InputEmulator.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\InputState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\TouchPanelEmulator.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\TouchSliderEmulator.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\TouchSliderState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FileSystem\ConfigFile.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FileSystem\TextFile.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\Binding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\Ds4Binding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\KeyboardBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\MouseBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\Ds4\Ds4State.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\Ds4\DualShock4.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\Controller.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\DirectInput.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\DirectInputDevice.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\DirectInputMouse.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Keyboard\Keyboard.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Keyboard\KeyboardState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\KeyConfig\Config.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\KeyConfig\KeyString.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\KeyConfig\KeyStringHash.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Mouse\Mouse.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Math.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Operations.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Stopwatch.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Vec2.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Vec3.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\ScaleComponent.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\XinputBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Xinput\Xinput.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Xinput\XinputState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\GameTargets\TargetInspector.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\ScoreSaver.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Pause.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Drawing.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\GenericUsb\GuState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\GenericUsb\GenericUsbInput.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\GuBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utils.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="framework.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Constants.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\CameraController.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\ComponentsManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\CustomPlayerData.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\DebugComponent.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\EmulatorComponent.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\FastLoader.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\FrameRateManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\PlayerData.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\PlayerDataManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\InputBufferType.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\InputEmulator.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\InputState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\JvsButtons.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\TouchPanelEmulator.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\TouchPanelState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\TouchSliderEmulator.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Input\TouchSliderState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FileSystem\ConfigFile.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FileSystem\TextFile.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\Binding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\Ds4Binding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\IInputBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\KeyboardBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\MouseBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\Ds4\Ds4Button.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\Ds4\Ds4State.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\Ds4\DualShock4.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\Controller.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\DirectInput.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\DirectInputDevice.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\DirectInputMouse.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Keyboard\Keyboard.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Keyboard\KeyboardState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\KeyConfig\Config.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\KeyConfig\KeyString.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\KeyConfig\KeyStringHash.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Mouse\Mouse.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Mouse\MouseState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\IInputDevice.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\EnumBitwiseOperations.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Math.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Operations.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Stopwatch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Vec2.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Vec3.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\ScaleComponent.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\XinputBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Xinput\Xinput.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Xinput\XinputState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\HoldState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\TargetHitStates.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\TargetInspector.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\TargetState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\GameTargets\TargetTypes.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\ScoreSaver.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pluginconfig.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Components\Pause.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utilities\Drawing.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GuButton.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GuState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\DirectInput\GenericUsb\GenericUsbInput.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\GuBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Utils.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Divaller\Divaller.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Divaller\DivallerButton.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Divaller\DivallerState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\Bindings\DVLBinding.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dllmain.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="framework.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\CameraController.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\ComponentsManager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\DebugComponent.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\EmulatorComponent.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\FastLoader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\FrameRateManager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\PlayerDataManager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\InputEmulator.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\InputState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\TouchPanelEmulator.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\TouchSliderEmulator.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Input\TouchSliderState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FileSystem\ConfigFile.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FileSystem\TextFile.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\Binding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\Ds4Binding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\KeyboardBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\MouseBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\Ds4\Ds4State.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\Ds4\DualShock4.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\Controller.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\DirectInput.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\DirectInputDevice.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\DirectInputMouse.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Keyboard\Keyboard.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Keyboard\KeyboardState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\KeyConfig\Config.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\KeyConfig\KeyString.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\KeyConfig\KeyStringHash.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Mouse\Mouse.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Math.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Operations.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Stopwatch.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Vec2.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Vec3.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\ScaleComponent.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\XinputBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Xinput\Xinput.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Xinput\XinputState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\GameTargets\TargetInspector.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\ScoreSaver.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Components\Pause.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utilities\Drawing.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\GenericUsb\GuState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\DirectInput\GenericUsb\GenericUsbInput.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\GuBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Utils.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Divaller\Divaller.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\Bindings\DVLBinding.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "Input/DirectInput/DirectInput.h"
|
||||
#include "Input/DirectInput/Ds4/DualShock4.h"
|
||||
#include "Input/DirectInput/GenericUsb/GenericUsbInput.h"
|
||||
#include "Input/Divaller/Divaller.h"
|
||||
#include "Components/ComponentsManager.h"
|
||||
#include <tchar.h>
|
||||
#include <GL/freeglut.h>
|
||||
@@ -81,6 +82,12 @@ namespace TLAC
|
||||
if (Input::GenericUsbInput::TryInitializeInstance())
|
||||
printf("[TLAC] UpdateTick(): GenericUsbInput connected and initialized\n");
|
||||
}
|
||||
|
||||
if (!Input::Divaller::InstanceInitialized())
|
||||
{
|
||||
if (Input::Divaller::TryInitializeInstance())
|
||||
printf("[TLAC] UpdateTick(): Divaller connected and initialized\n");
|
||||
}
|
||||
}
|
||||
|
||||
ComponentsManager.Update();
|
||||
@@ -112,6 +119,15 @@ namespace TLAC
|
||||
}
|
||||
}
|
||||
|
||||
if (Input::Divaller::GetInstance() != nullptr)
|
||||
{
|
||||
if (!Input::Divaller::GetInstance()->PollInput())
|
||||
{
|
||||
Input::Divaller::DeleteInstance();
|
||||
printf("[TLAC] UpdateTick(): Divaller connection lost\n");
|
||||
}
|
||||
}
|
||||
|
||||
ComponentsManager.UpdateInput();
|
||||
}
|
||||
|
||||
@@ -140,6 +156,15 @@ namespace TLAC
|
||||
printf("[TLAC] UpdateTick(): GenericUsbInput connection lost\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (Input::Divaller::GetInstance() != nullptr)
|
||||
{
|
||||
if (!Input::Divaller::GetInstance()->PollInput())
|
||||
{
|
||||
Input::Divaller::DeleteInstance();
|
||||
printf("[TLAC] UpdateTick(): Divaller connection lost\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (HasWindowFocus && !HadWindowFocus)
|
||||
|
||||
Reference in New Issue
Block a user