From dea9c0c99fcef8eb681d975d18ea98f179569551 Mon Sep 17 00:00:00 2001 From: Exynox Date: Wed, 11 Dec 2024 22:08:23 +0200 Subject: [PATCH 1/5] Cleaned up project files --- .gitignore | 13 +- Metin2Client.sln | 165 ---------------------- src/CWebBrowser/CWebBrowser.vcxproj | 27 ++-- src/EffectLib/EffectLib.vcxproj | 171 ++--------------------- src/EterBase/EterBase.vcxproj | 174 ++--------------------- src/EterGrnLib/EterGrnLib.vcxproj | 169 ++--------------------- src/EterImageLib/EterImageLib.vcxproj | 165 ++-------------------- src/EterLib/EterLib.vcxproj | 173 ++--------------------- src/EterLocale/EterLocale.vcxproj | 167 ++-------------------- src/EterPack/EterPack.vcxproj | 170 ++--------------------- src/EterPythonLib/EterPythonLib.vcxproj | 172 ++--------------------- src/GameLib/GameLib.vcxproj | 175 ++---------------------- src/MilesLib/MilesLib.vcxproj | 170 ++--------------------- src/PRTerrainLib/PRTerrainLib.vcxproj | 171 ++--------------------- src/ScriptLib/ScriptLib.vcxproj | 171 ++--------------------- src/SpeedTreeLib/SpeedTreeLib.vcxproj | 167 ++-------------------- src/SphereLib/SphereLib.vcxproj | 174 ++--------------------- src/UserInterface/UserInterface.vcxproj | 105 ++------------ 18 files changed, 156 insertions(+), 2543 deletions(-) diff --git a/.gitignore b/.gitignore index 648260ad..af1a9360 100644 --- a/.gitignore +++ b/.gitignore @@ -363,16 +363,17 @@ MigrationBackup/ # Fody - auto-generated XML schema FodyWeavers.xsd -# vcpkg dependency folder -vcpkg_installed/ - ## ## Project rules ## + +# Binary game data !bin/ !bin/** -!bin/ -!bin_original/** +# External dependencies !extern -!extern/** \ No newline at end of file +!extern/** + +# Build directory +build/ diff --git a/Metin2Client.sln b/Metin2Client.sln index 1f4fc6ea..0a5a4da4 100644 --- a/Metin2Client.sln +++ b/Metin2Client.sln @@ -38,270 +38,105 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Distribute|Win32 = Distribute|Win32 - DLL-Import Debug|Win32 = DLL-Import Debug|Win32 - DLL-Import Release|Win32 = DLL-Import Release|Win32 - MfcDebug|Win32 = MfcDebug|Win32 - MfcRelease|Win32 = MfcRelease|Win32 Release|Win32 = Release|Win32 - VTune|Win32 = VTune|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {D64AE35F-F982-46D4-8E38-09E5C9752955}.Debug|Win32.ActiveCfg = Debug|Win32 {D64AE35F-F982-46D4-8E38-09E5C9752955}.Debug|Win32.Build.0 = Debug|Win32 {D64AE35F-F982-46D4-8E38-09E5C9752955}.Distribute|Win32.ActiveCfg = Distribute|Win32 {D64AE35F-F982-46D4-8E38-09E5C9752955}.Distribute|Win32.Build.0 = Distribute|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.MfcDebug|Win32.ActiveCfg = Debug|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.MfcDebug|Win32.Build.0 = Debug|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.MfcRelease|Win32.ActiveCfg = Release|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.MfcRelease|Win32.Build.0 = Release|Win32 {D64AE35F-F982-46D4-8E38-09E5C9752955}.Release|Win32.ActiveCfg = Release|Win32 {D64AE35F-F982-46D4-8E38-09E5C9752955}.Release|Win32.Build.0 = Release|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.VTune|Win32.ActiveCfg = Distribute|Win32 - {D64AE35F-F982-46D4-8E38-09E5C9752955}.VTune|Win32.Build.0 = Distribute|Win32 {790B152D-6582-467F-B767-8603C5A9E613}.Debug|Win32.ActiveCfg = Debug|Win32 {790B152D-6582-467F-B767-8603C5A9E613}.Debug|Win32.Build.0 = Debug|Win32 {790B152D-6582-467F-B767-8603C5A9E613}.Distribute|Win32.ActiveCfg = Distribute|Win32 {790B152D-6582-467F-B767-8603C5A9E613}.Distribute|Win32.Build.0 = Distribute|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {790B152D-6582-467F-B767-8603C5A9E613}.Release|Win32.ActiveCfg = Release|Win32 {790B152D-6582-467F-B767-8603C5A9E613}.Release|Win32.Build.0 = Release|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.VTune|Win32.ActiveCfg = VTune|Win32 - {790B152D-6582-467F-B767-8603C5A9E613}.VTune|Win32.Build.0 = VTune|Win32 {4950BA04-3877-4F66-BCA0-60E00DE3770B}.Debug|Win32.ActiveCfg = Debug|Win32 {4950BA04-3877-4F66-BCA0-60E00DE3770B}.Debug|Win32.Build.0 = Debug|Win32 {4950BA04-3877-4F66-BCA0-60E00DE3770B}.Distribute|Win32.ActiveCfg = Distribute|Win32 {4950BA04-3877-4F66-BCA0-60E00DE3770B}.Distribute|Win32.Build.0 = Distribute|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {4950BA04-3877-4F66-BCA0-60E00DE3770B}.Release|Win32.ActiveCfg = Release|Win32 {4950BA04-3877-4F66-BCA0-60E00DE3770B}.Release|Win32.Build.0 = Release|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.VTune|Win32.ActiveCfg = VTune|Win32 - {4950BA04-3877-4F66-BCA0-60E00DE3770B}.VTune|Win32.Build.0 = VTune|Win32 {8B1D0DDE-A521-4EB2-9544-F606376278CC}.Debug|Win32.ActiveCfg = Debug|Win32 {8B1D0DDE-A521-4EB2-9544-F606376278CC}.Debug|Win32.Build.0 = Debug|Win32 {8B1D0DDE-A521-4EB2-9544-F606376278CC}.Distribute|Win32.ActiveCfg = Distribute|Win32 {8B1D0DDE-A521-4EB2-9544-F606376278CC}.Distribute|Win32.Build.0 = Distribute|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {8B1D0DDE-A521-4EB2-9544-F606376278CC}.Release|Win32.ActiveCfg = Release|Win32 {8B1D0DDE-A521-4EB2-9544-F606376278CC}.Release|Win32.Build.0 = Release|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.VTune|Win32.ActiveCfg = VTune|Win32 - {8B1D0DDE-A521-4EB2-9544-F606376278CC}.VTune|Win32.Build.0 = VTune|Win32 {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.Debug|Win32.ActiveCfg = Debug|Win32 {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.Debug|Win32.Build.0 = Debug|Win32 {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.Distribute|Win32.ActiveCfg = Distribute|Win32 {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.Distribute|Win32.Build.0 = Distribute|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.Release|Win32.ActiveCfg = Release|Win32 {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.Release|Win32.Build.0 = Release|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.VTune|Win32.ActiveCfg = VTune|Win32 - {0FDDD886-1EB5-4655-80C3-EF08087FAEFD}.VTune|Win32.Build.0 = VTune|Win32 {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.Debug|Win32.ActiveCfg = Debug|Win32 {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.Debug|Win32.Build.0 = Debug|Win32 {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.Distribute|Win32.ActiveCfg = Distribute|Win32 {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.Distribute|Win32.Build.0 = Distribute|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.Release|Win32.ActiveCfg = Release|Win32 {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.Release|Win32.Build.0 = Release|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.VTune|Win32.ActiveCfg = VTune|Win32 - {A5D7AF9F-0A4F-4ED3-B209-2553B1ADD17D}.VTune|Win32.Build.0 = VTune|Win32 {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.Debug|Win32.ActiveCfg = Debug|Win32 {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.Debug|Win32.Build.0 = Debug|Win32 {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.Distribute|Win32.ActiveCfg = Distribute|Win32 {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.Distribute|Win32.Build.0 = Distribute|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.MfcDebug|Win32.ActiveCfg = Debug|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.MfcDebug|Win32.Build.0 = Debug|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.MfcRelease|Win32.ActiveCfg = Release|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.MfcRelease|Win32.Build.0 = Release|Win32 {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.Release|Win32.ActiveCfg = Release|Win32 {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.Release|Win32.Build.0 = Release|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.VTune|Win32.ActiveCfg = VTune|Win32 - {F6CEB04C-4403-4CD4-84A2-D6A372BD4334}.VTune|Win32.Build.0 = VTune|Win32 {678C47DC-B3EF-460E-A932-56F3208FC65E}.Debug|Win32.ActiveCfg = Debug|Win32 {678C47DC-B3EF-460E-A932-56F3208FC65E}.Debug|Win32.Build.0 = Debug|Win32 {678C47DC-B3EF-460E-A932-56F3208FC65E}.Distribute|Win32.ActiveCfg = Distribute|Win32 {678C47DC-B3EF-460E-A932-56F3208FC65E}.Distribute|Win32.Build.0 = Distribute|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {678C47DC-B3EF-460E-A932-56F3208FC65E}.Release|Win32.ActiveCfg = Release|Win32 {678C47DC-B3EF-460E-A932-56F3208FC65E}.Release|Win32.Build.0 = Release|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.VTune|Win32.ActiveCfg = VTune|Win32 - {678C47DC-B3EF-460E-A932-56F3208FC65E}.VTune|Win32.Build.0 = VTune|Win32 {E1FF7630-628F-4AD0-BF66-F14D86A04035}.Debug|Win32.ActiveCfg = Debug|Win32 {E1FF7630-628F-4AD0-BF66-F14D86A04035}.Debug|Win32.Build.0 = Debug|Win32 {E1FF7630-628F-4AD0-BF66-F14D86A04035}.Distribute|Win32.ActiveCfg = Distribute|Win32 {E1FF7630-628F-4AD0-BF66-F14D86A04035}.Distribute|Win32.Build.0 = Distribute|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {E1FF7630-628F-4AD0-BF66-F14D86A04035}.Release|Win32.ActiveCfg = Release|Win32 {E1FF7630-628F-4AD0-BF66-F14D86A04035}.Release|Win32.Build.0 = Release|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.VTune|Win32.ActiveCfg = VTune|Win32 - {E1FF7630-628F-4AD0-BF66-F14D86A04035}.VTune|Win32.Build.0 = VTune|Win32 {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.Debug|Win32.ActiveCfg = Debug|Win32 {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.Debug|Win32.Build.0 = Debug|Win32 {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.Distribute|Win32.ActiveCfg = Distribute|Win32 {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.Distribute|Win32.Build.0 = Distribute|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.Release|Win32.ActiveCfg = Release|Win32 {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.Release|Win32.Build.0 = Release|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.VTune|Win32.ActiveCfg = VTune|Win32 - {FE95382C-8E3E-40AC-8060-634D1A0D4CF5}.VTune|Win32.Build.0 = VTune|Win32 {24516A87-8544-46A9-A0C8-0A01269642D9}.Debug|Win32.ActiveCfg = Debug|Win32 {24516A87-8544-46A9-A0C8-0A01269642D9}.Debug|Win32.Build.0 = Debug|Win32 {24516A87-8544-46A9-A0C8-0A01269642D9}.Distribute|Win32.ActiveCfg = Distribute|Win32 {24516A87-8544-46A9-A0C8-0A01269642D9}.Distribute|Win32.Build.0 = Distribute|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {24516A87-8544-46A9-A0C8-0A01269642D9}.Release|Win32.ActiveCfg = Release|Win32 {24516A87-8544-46A9-A0C8-0A01269642D9}.Release|Win32.Build.0 = Release|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.VTune|Win32.ActiveCfg = VTune|Win32 - {24516A87-8544-46A9-A0C8-0A01269642D9}.VTune|Win32.Build.0 = VTune|Win32 {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.Debug|Win32.ActiveCfg = Debug|Win32 {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.Debug|Win32.Build.0 = Debug|Win32 {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.Distribute|Win32.ActiveCfg = Distribute|Win32 {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.Distribute|Win32.Build.0 = Distribute|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.Release|Win32.ActiveCfg = Release|Win32 {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.Release|Win32.Build.0 = Release|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.VTune|Win32.ActiveCfg = VTune|Win32 - {887F89DF-A1A2-47DF-A869-F3FC84704E3E}.VTune|Win32.Build.0 = VTune|Win32 {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.Debug|Win32.ActiveCfg = Debug|Win32 {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.Debug|Win32.Build.0 = Debug|Win32 {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.Distribute|Win32.ActiveCfg = Distribute|Win32 {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.Distribute|Win32.Build.0 = Distribute|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.Release|Win32.ActiveCfg = Release|Win32 {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.Release|Win32.Build.0 = Release|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.VTune|Win32.ActiveCfg = VTune|Win32 - {1801F0ED-7DE6-4175-BF25-6FA98AAA350B}.VTune|Win32.Build.0 = VTune|Win32 {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.Debug|Win32.ActiveCfg = Debug|Win32 {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.Debug|Win32.Build.0 = Debug|Win32 {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.Distribute|Win32.ActiveCfg = Distribute|Win32 {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.Distribute|Win32.Build.0 = Distribute|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.Release|Win32.ActiveCfg = Release|Win32 {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.Release|Win32.Build.0 = Release|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.VTune|Win32.ActiveCfg = VTune|Win32 - {9189BA90-1997-4B47-A673-A54C7DF4A4F7}.VTune|Win32.Build.0 = VTune|Win32 {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.Debug|Win32.ActiveCfg = Debug|Win32 {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.Debug|Win32.Build.0 = Debug|Win32 {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.Distribute|Win32.ActiveCfg = Distribute|Win32 {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.Distribute|Win32.Build.0 = Distribute|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.Release|Win32.ActiveCfg = Release|Win32 {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.Release|Win32.Build.0 = Release|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.VTune|Win32.ActiveCfg = VTune|Win32 - {E682CEA2-1D79-4DE9-A2CE-6AED27E4170E}.VTune|Win32.Build.0 = VTune|Win32 {05207E97-C83A-49C6-8E08-403679963A7B}.Debug|Win32.ActiveCfg = Debug|Win32 {05207E97-C83A-49C6-8E08-403679963A7B}.Debug|Win32.Build.0 = Debug|Win32 {05207E97-C83A-49C6-8E08-403679963A7B}.Distribute|Win32.ActiveCfg = Distribute|Win32 {05207E97-C83A-49C6-8E08-403679963A7B}.Distribute|Win32.Build.0 = Distribute|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.DLL-Import Debug|Win32.Build.0 = Debug|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.DLL-Import Release|Win32.ActiveCfg = Release|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.DLL-Import Release|Win32.Build.0 = Release|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.MfcDebug|Win32.ActiveCfg = MfcDebug|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.MfcDebug|Win32.Build.0 = MfcDebug|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.MfcRelease|Win32.ActiveCfg = MfcRelease|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.MfcRelease|Win32.Build.0 = MfcRelease|Win32 {05207E97-C83A-49C6-8E08-403679963A7B}.Release|Win32.ActiveCfg = Release|Win32 {05207E97-C83A-49C6-8E08-403679963A7B}.Release|Win32.Build.0 = Release|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.VTune|Win32.ActiveCfg = VTune|Win32 - {05207E97-C83A-49C6-8E08-403679963A7B}.VTune|Win32.Build.0 = VTune|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/CWebBrowser/CWebBrowser.vcxproj b/src/CWebBrowser/CWebBrowser.vcxproj index 7a35f4fa..08641de6 100644 --- a/src/CWebBrowser/CWebBrowser.vcxproj +++ b/src/CWebBrowser/CWebBrowser.vcxproj @@ -49,40 +49,43 @@ - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -94,10 +97,6 @@ EnableFastChecks MultiThreadedDebug - .\Debug/CWebBrowser.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true EditAndContinue @@ -121,10 +120,6 @@ MultiThreaded true - .\Release/CWebBrowser.pch - .\Release/ - .\Release/ - .\Release/ Level3 true ProgramDatabase @@ -149,10 +144,6 @@ MultiThreaded true - .\Distribute/CWebBrowser.pch - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true ProgramDatabase diff --git a/src/EffectLib/EffectLib.vcxproj b/src/EffectLib/EffectLib.vcxproj index 19e0bbdf..c4fb87b1 100644 --- a/src/EffectLib/EffectLib.vcxproj +++ b/src/EffectLib/EffectLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -39,12 +27,6 @@ 10.0 - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -63,144 +45,52 @@ MultiByte v143 - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - false - MultiByte - - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true - - - /Gs /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - .\VTune/EffectLib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\EffectLib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;WORLD_EDITOR;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Use - stdafx.h - .\EffectLib___Win32_MfcDebug/EffectLib.pch - .\EffectLib___Win32_MfcDebug/ - .\EffectLib___Win32_MfcDebug/ - .\EffectLib___Win32_MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\EffectLib___Win32_MfcDebug\EffectLib.lib - true - - MaxSpeed @@ -212,10 +102,6 @@ true Use stdafx.h - .\Release/EffectLib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -241,10 +127,6 @@ MultiThreadedDebug Use stdafx.h - .\Debug/EffectLib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true @@ -271,11 +153,7 @@ true Use stdafx.h - .\Distribute/EffectLib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -292,37 +170,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Use - stdafx.h - .\EffectLib___Win32_MfcRelease/EffectLib.pch - All - .\EffectLib___Win32_MfcRelease/ - .\EffectLib___Win32_MfcRelease/ - .\EffectLib___Win32_MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\EffectLib___Win32_MfcRelease\EffectLib.lib - true - - Disabled diff --git a/src/EterBase/EterBase.vcxproj b/src/EterBase/EterBase.vcxproj index 07430bb7..ba42df85 100644 --- a/src/EterBase/EterBase.vcxproj +++ b/src/EterBase/EterBase.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -39,30 +27,12 @@ 10.0 - - StaticLibrary - v143 - false - MultiByte - StaticLibrary false MultiByte v143 - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -78,63 +48,45 @@ - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -146,10 +98,6 @@ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug - .\Debug/eterBase.pch - .\Debug/ - .\Debug/ - .\Debug/ Level4 true @@ -163,7 +111,7 @@ true - ../../../extern/lib;%(AdditionalLibraryDirectories) + $(SolutionDir)extern\lib;%(AdditionalLibraryDirectories) true @@ -176,11 +124,7 @@ true MultiThreaded true - .\Distribute/eterBase.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level4 true @@ -194,64 +138,7 @@ 0x0412 - $(SolutionDir)Extern\lib;%(AdditionalLibraryDirectories) - true - - - - - MaxSpeed - OnlyExplicitInline - ../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - .\MfcRelease/eterBase.pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level4 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcRelease\eterBase.lib - ../../extern/lib;%(AdditionalLibraryDirectories) - true - - - - - Disabled - ../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - .\MfcDebug/eterBase.pch - .\MfcDebug/ - .\MfcDebug/ - .\MfcDebug/ - - Level4 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcDebug\eterBase.lib - ../../extern/lib;%(AdditionalLibraryDirectories) + $(SolutionDir)extern\lib;%(AdditionalLibraryDirectories) true @@ -264,10 +151,6 @@ true MultiThreaded true - .\Release/eterBase.pch - .\Release/ - .\Release/ - .\Release/ Level4 true @@ -281,40 +164,7 @@ 0x0412 - ../../extern/lib;%(AdditionalLibraryDirectories) - true - - - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - ../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - .\VTune/eterBase.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level4 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\eterBase.lib - ../../extern/lib;%(AdditionalLibraryDirectories) + $(SolutionDir)extern\lib;%(AdditionalLibraryDirectories) true diff --git a/src/EterGrnLib/EterGrnLib.vcxproj b/src/EterGrnLib/EterGrnLib.vcxproj index df038e11..fa893bf1 100644 --- a/src/EterGrnLib/EterGrnLib.vcxproj +++ b/src/EterGrnLib/EterGrnLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -45,24 +33,6 @@ MultiByte v143 - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - false - MultiByte - - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -80,61 +50,43 @@ - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -148,10 +100,6 @@ MultiThreadedDebug Use stdafx.h - .\Debug/eterGrnLib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true @@ -177,11 +125,7 @@ true MultiThreaded true - .\Distribute/eterGrnLib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -198,97 +142,6 @@ true - - - MinSpace - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Use - stdafx.h - .\MfcRelease/eterGrnLib.pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcRelease\eterGrnLib.lib - true - - - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - .\VTune/eterGrnLib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\eterGrnLib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Use - stdafx.h - .\MfcDebug/eterGrnLib.pch - .\MfcDebug/ - .\MfcDebug/ - .\MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcDebug\eterGrnLib.lib - true - - MinSpace @@ -298,10 +151,6 @@ true MultiThreaded true - .\Release/eterGrnLib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true diff --git a/src/EterImageLib/EterImageLib.vcxproj b/src/EterImageLib/EterImageLib.vcxproj index 4354f6ca..aaab4f94 100644 --- a/src/EterImageLib/EterImageLib.vcxproj +++ b/src/EterImageLib/EterImageLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -39,12 +27,6 @@ 10.0 - - StaticLibrary - v143 - false - MultiByte - StaticLibrary false @@ -57,18 +39,6 @@ false MultiByte - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -78,63 +48,45 @@ - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -148,11 +100,7 @@ true MultiThreaded true - .\Distribute/eterImageLib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -169,61 +117,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - .\MfcRelease/eterImageLib.pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcRelease\eterImageLib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - .\MfcDebug/eterImageLib.pch - .\MfcDebug/ - .\MfcDebug/ - .\MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcDebug\eterImageLib.lib - true - - Disabled @@ -231,10 +124,6 @@ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug - .\Debug/eterImageLib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true @@ -260,10 +149,6 @@ true MultiThreaded true - .\Release/eterImageLib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -280,38 +165,6 @@ true - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - .\VTune/eterImageLib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\eterImageLib.lib - true - - Disabled diff --git a/src/EterLib/EterLib.vcxproj b/src/EterLib/EterLib.vcxproj index f19eaa83..4cedcfb5 100644 --- a/src/EterLib/EterLib.vcxproj +++ b/src/EterLib/EterLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -51,126 +39,58 @@ MultiByte v143 - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - false - MultiByte - StaticLibrary v143 false MultiByte - - StaticLibrary - v143 - Static - MultiByte - - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - - $(SolutionDir)build\$(Configuration)\ - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Use - StdAfx.h - $(IntDir)$(TargetName).pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - c:/eterlib/bin/;%(AdditionalIncludeDirectories) - - - .\MfcRelease\eterlib.lib - true - - Disabled @@ -180,10 +100,6 @@ MultiThreadedDebug Use StdAfx.h - $(IntDir)$(TargetName).pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true @@ -200,69 +116,6 @@ true - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - StdAfx.h - $(IntDir)$(TargetName).pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - c:/eterlib/bin/;%(AdditionalIncludeDirectories) - - - .\VTune\eterlib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Use - StdAfx.h - $(IntDir)$(TargetName).pch - .\MfcDebug/ - .\MfcDebug/ - .\MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcDebug\eterlib.lib - true - - MaxSpeed @@ -274,10 +127,6 @@ true Use StdAfx.h - $(IntDir)$(TargetName).pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -306,11 +155,7 @@ true Use StdAfx.h - $(IntDir)$(TargetName).pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true diff --git a/src/EterLocale/EterLocale.vcxproj b/src/EterLocale/EterLocale.vcxproj index 0f38afea..c0001ce7 100644 --- a/src/EterLocale/EterLocale.vcxproj +++ b/src/EterLocale/EterLocale.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -51,24 +39,6 @@ MultiByte v143 - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - false - MultiByte - - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -80,61 +50,43 @@ - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -148,11 +100,7 @@ true MultiThreaded true - .\Distribute/EterLocale.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -169,95 +117,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - - .\MfcRelease/EterLocale.pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcRelease\EterLocale.lib - true - - - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - .\VTune/EterLocale.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\EterLocale.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - - .\MfcDebug/EterLocale.pch - .\MfcDebug/ - .\MfcDebug/ - .\MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcDebug\EterLocale.lib - true - - MaxSpeed @@ -267,10 +126,6 @@ true MultiThreaded true - .\Release/EterLocale.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -296,10 +151,6 @@ MultiThreadedDebug StdAfx.h - .\Debug/EterLocale.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true diff --git a/src/EterPack/EterPack.vcxproj b/src/EterPack/EterPack.vcxproj index 28073d33..7110dbdb 100644 --- a/src/EterPack/EterPack.vcxproj +++ b/src/EterPack/EterPack.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -50,24 +38,6 @@ MultiByte v143 - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - false - MultiByte - - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -79,61 +49,43 @@ - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -147,11 +99,7 @@ true MultiThreaded true - .\Distribute/EterPack.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -169,98 +117,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - - .\MfcRelease/EterPack.pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcRelease\EterPack.lib - ../../extern/lib;%(AdditionalLibraryDirectories) - true - - - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - .\VTune/EterPack.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\EterPack.lib - ../../extern/lib;%(AdditionalLibraryDirectories) - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - - .\MfcDebug/EterPack.pch - .\MfcDebug/ - .\MfcDebug/ - .\MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcDebug\EterPack.lib - ../../extern/lib;%(AdditionalLibraryDirectories) - true - - MaxSpeed @@ -270,10 +126,6 @@ true MultiThreaded true - .\Release/EterPack.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -300,10 +152,6 @@ MultiThreadedDebug StdAfx.h - .\Debug/EterPack.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true diff --git a/src/EterPythonLib/EterPythonLib.vcxproj b/src/EterPythonLib/EterPythonLib.vcxproj index a78015e3..5e257848 100644 --- a/src/EterPythonLib/EterPythonLib.vcxproj +++ b/src/EterPythonLib/EterPythonLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -45,30 +33,12 @@ false MultiByte - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - false - MultiByte - StaticLibrary false MultiByte v143 - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -80,61 +50,43 @@ - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -150,11 +102,7 @@ true Use stdafx.h - .\Distribute/eterPythonLib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -171,37 +119,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Use - stdafx.h - .\eterPythonLib___Win32_MfcRelease/eterPythonLib.pch - All - .\eterPythonLib___Win32_MfcRelease/ - .\eterPythonLib___Win32_MfcRelease/ - .\eterPythonLib___Win32_MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\eterPythonLib___Win32_MfcRelease\eterPythonLib.lib - true - - MaxSpeed @@ -213,10 +130,6 @@ true Use stdafx.h - .\Release/eterPythonLib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -233,69 +146,6 @@ true - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;__VTUNE__;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - .\VTune/eterPythonLib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\eterPythonLib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Use - stdafx.h - .\eterPythonLib___Win32_MfcDebug/eterPythonLib.pch - .\eterPythonLib___Win32_MfcDebug/ - .\eterPythonLib___Win32_MfcDebug/ - .\eterPythonLib___Win32_MfcDebug/ - - Level3 - true - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\eterPythonLib___Win32_MfcDebug\eterPythonLib.lib - true - - Disabled @@ -305,10 +155,6 @@ MultiThreadedDebug Use stdafx.h - .\Debug/eterPythonLib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true diff --git a/src/GameLib/GameLib.vcxproj b/src/GameLib/GameLib.vcxproj index f2ddcbf6..275bb579 100644 --- a/src/GameLib/GameLib.vcxproj +++ b/src/GameLib/GameLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -39,18 +27,6 @@ 10.0 - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -69,111 +45,52 @@ false MultiByte - - StaticLibrary - v143 - false - MultiByte - - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - - $(SolutionDir)build\$(Configuration)\ - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;USE_LOD;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - .\VTune/gamelib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - c:/eterlib/bin/;%(AdditionalIncludeDirectories) - - - .\VTune\gamelib.lib - true - - Disabled @@ -182,10 +99,6 @@ MultiThreadedDebug Use stdafx.h - .\Debug/gamelib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true @@ -214,10 +127,6 @@ true Use stdafx.h - .\Release/gamelib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -246,11 +155,7 @@ true Use stdafx.h - .\Distribute/gamelib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -268,68 +173,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;WORLD_EDITOR;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Use - stdafx.h - .\MfcRelease/gamelib.pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - c:/eterlib/bin/;%(AdditionalIncludeDirectories) - - - .\MfcRelease\gamelib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;WORLD_EDITOR;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Use - stdafx.h - .\MfcDebug/gamelib.pch - .\MfcDebug/ - .\MfcDebug/ - .\MfcDebug/ - - Level3 - true - ProgramDatabase - Default - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcDebug\gamelib.lib - true - - Disabled diff --git a/src/MilesLib/MilesLib.vcxproj b/src/MilesLib/MilesLib.vcxproj index 1ef6e1e8..57dccd48 100644 --- a/src/MilesLib/MilesLib.vcxproj +++ b/src/MilesLib/MilesLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -45,30 +33,12 @@ false MultiByte - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary false MultiByte v143 - - StaticLibrary - v143 - false - MultiByte - StaticLibrary v143 @@ -80,61 +50,43 @@ - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -149,11 +101,7 @@ MultiThreaded true - .\Distribute/mileslib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -170,39 +118,6 @@ true - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - - .\VTune/mileslib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\mileslib.lib - true - - MaxSpeed @@ -213,10 +128,6 @@ MultiThreaded true - .\Release/mileslib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -233,65 +144,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Use - stdafx.h - .\MfcRelease/mileslib.pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcRelease\mileslib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Use - stdafx.h - .\mileslib___Win32_MfcDebug/mileslib.pch - .\mileslib___Win32_MfcDebug/ - .\mileslib___Win32_MfcDebug/ - .\mileslib___Win32_MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\mileslib___Win32_MfcDebug\mileslib.lib - true - - Disabled @@ -301,10 +153,6 @@ MultiThreadedDebug Use stdafx.h - .\Debug/mileslib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true diff --git a/src/PRTerrainLib/PRTerrainLib.vcxproj b/src/PRTerrainLib/PRTerrainLib.vcxproj index e35231cc..84d223ed 100644 --- a/src/PRTerrainLib/PRTerrainLib.vcxproj +++ b/src/PRTerrainLib/PRTerrainLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -51,122 +39,58 @@ MultiByte v143 - - StaticLibrary - v143 - false - MultiByte - - - StaticLibrary - v143 - false - MultiByte - StaticLibrary v143 false MultiByte - - StaticLibrary - v143 - Static - MultiByte - - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - - $(SolutionDir)build\$(Configuration)\ - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Use - stdafx.h - .\PRTerrainLib___Win32_MfcDebug/PRTerrainLib.pch - .\PRTerrainLib___Win32_MfcDebug/ - .\PRTerrainLib___Win32_MfcDebug/ - .\PRTerrainLib___Win32_MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\PRTerrainLib___Win32_MfcDebug\PRTerrainLib.lib - true - - MaxSpeed @@ -178,11 +102,7 @@ true Use stdafx.h - .\Distribute/PRTerrainLib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -199,71 +119,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Use - stdafx.h - .\PRTerrainLib___Win32_MfcRelease/PRTerrainLib.pch - All - .\PRTerrainLib___Win32_MfcRelease/ - .\PRTerrainLib___Win32_MfcRelease/ - .\PRTerrainLib___Win32_MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\PRTerrainLib___Win32_MfcRelease\PRTerrainLib.lib - true - - - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - .\VTune/PRTerrainLib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\PRTerrainLib.lib - true - - MaxSpeed @@ -275,10 +130,6 @@ true Use stdafx.h - .\Release/PRTerrainLib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -304,10 +155,6 @@ MultiThreadedDebug Use stdafx.h - .\Debug/PRTerrainLib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true diff --git a/src/ScriptLib/ScriptLib.vcxproj b/src/ScriptLib/ScriptLib.vcxproj index 3f232af7..604bdd19 100644 --- a/src/ScriptLib/ScriptLib.vcxproj +++ b/src/ScriptLib/ScriptLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -45,18 +33,6 @@ MultiByte v143 - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -69,110 +45,52 @@ false MultiByte - - StaticLibrary - v143 - false - MultiByte - - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - - $(SolutionDir)build\$(Configuration)\ - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - .\VTune/scriptLib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\scriptLib.lib - true - - MaxSpeed @@ -184,11 +102,7 @@ true Use stdafx.h - .\Distribute/scriptLib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -214,10 +128,6 @@ MultiThreadedDebug Use stdafx.h - .\Debug/scriptLib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true @@ -234,65 +144,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Use - stdafx.h - .\MfcRelease/scriptLib.pch - All - .\MfcRelease/ - .\MfcRelease/ - .\MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcRelease\scriptLib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Use - stdafx.h - .\MfcDebug/scriptLib.pch - .\MfcDebug/ - .\MfcDebug/ - .\MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\MfcDebug\scriptLib.lib - true - - MaxSpeed @@ -304,10 +155,6 @@ true Use stdafx.h - .\Release/scriptLib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true diff --git a/src/SpeedTreeLib/SpeedTreeLib.vcxproj b/src/SpeedTreeLib/SpeedTreeLib.vcxproj index 9ad8da5d..0e5a8483 100644 --- a/src/SpeedTreeLib/SpeedTreeLib.vcxproj +++ b/src/SpeedTreeLib/SpeedTreeLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -45,24 +33,6 @@ false MultiByte - - StaticLibrary - v143 - Static - MultiByte - - - StaticLibrary - v143 - false - MultiByte - - - StaticLibrary - v143 - false - MultiByte - StaticLibrary v143 @@ -80,61 +50,43 @@ - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -150,10 +102,6 @@ true Use stdafx.h - .\Release/SpeedTreeLib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -181,11 +129,7 @@ true Use stdafx.h - .\Distribute/SpeedTreeLib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -202,95 +146,6 @@ true - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - - stdafx.h - .\VTune/SpeedTreeLib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\SpeedTreeLib.lib - true - - - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - true - .\SpeedTreeLib___Win32_MfcRelease/SpeedTreeLib.pch - All - .\SpeedTreeLib___Win32_MfcRelease/ - .\SpeedTreeLib___Win32_MfcRelease/ - .\SpeedTreeLib___Win32_MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\SpeedTreeLib___Win32_MfcRelease\SpeedTreeLib.lib - true - - - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - .\SpeedTreeLib___Win32_MfcDebug/SpeedTreeLib.pch - .\SpeedTreeLib___Win32_MfcDebug/ - .\SpeedTreeLib___Win32_MfcDebug/ - .\SpeedTreeLib___Win32_MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\SpeedTreeLib___Win32_MfcDebug\SpeedTreeLib.lib - true - - Disabled @@ -299,10 +154,6 @@ EnableFastChecks MultiThreadedDebug - .\Debug/SpeedTreeLib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true diff --git a/src/SphereLib/SphereLib.vcxproj b/src/SphereLib/SphereLib.vcxproj index 29c7bd00..782712aa 100644 --- a/src/SphereLib/SphereLib.vcxproj +++ b/src/SphereLib/SphereLib.vcxproj @@ -9,22 +9,10 @@ Distribute Win32 - - MfcDebug - Win32 - - - MfcRelease - Win32 - Release Win32 - - VTune - Win32 - 17.0 @@ -39,24 +27,12 @@ 10.0 - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 false MultiByte - - StaticLibrary - v143 - Static - MultiByte - StaticLibrary v143 @@ -69,111 +45,52 @@ MultiByte v143 - - StaticLibrary - v143 - false - MultiByte - - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.32203.90 - - $(SolutionDir)build\$(Configuration)\ - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)build\$(Configuration)\ - - - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ true - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - Strict - Use - stdafx.h - .\VTune/SphereLib.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\VTune\SphereLib.lib - true - - MaxSpeed @@ -186,10 +103,6 @@ Strict Use stdafx.h - .\Release/SphereLib.pch - .\Release/ - .\Release/ - .\Release/ Level3 true @@ -218,11 +131,7 @@ Strict Use stdafx.h - .\Distribute/SphereLib.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true @@ -239,38 +148,6 @@ true - - - MaxSpeed - OnlyExplicitInline - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - Strict - true - Use - stdafx.h - .\SphereLib___Win32_MfcRelease/SphereLib.pch - All - .\SphereLib___Win32_MfcRelease/ - .\SphereLib___Win32_MfcRelease/ - .\SphereLib___Win32_MfcRelease/ - - Level3 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\SphereLib___Win32_MfcRelease\SphereLib.lib - true - - Disabled @@ -281,10 +158,6 @@ Strict Use stdafx.h - .\Debug/SphereLib.pch - .\Debug/ - .\Debug/ - .\Debug/ Level3 true @@ -300,35 +173,6 @@ true - - - Disabled - .;../../extern/include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - Strict - true - Use - stdafx.h - .\SphereLib___Win32_MfcDebug/SphereLib.pch - .\SphereLib___Win32_MfcDebug/ - .\SphereLib___Win32_MfcDebug/ - .\SphereLib___Win32_MfcDebug/ - - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - .\SphereLib___Win32_MfcDebug\SphereLib.lib - true - - Disabled diff --git a/src/UserInterface/UserInterface.vcxproj b/src/UserInterface/UserInterface.vcxproj index f0ffb321..a87b508c 100644 --- a/src/UserInterface/UserInterface.vcxproj +++ b/src/UserInterface/UserInterface.vcxproj @@ -13,10 +13,6 @@ Release Win32 - - VTune - Win32 - 17.0 @@ -29,12 +25,6 @@ 10.0 - - Application - v143 - false - MultiByte - Application false @@ -56,21 +46,14 @@ - - - - - - - @@ -78,20 +61,19 @@ false - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true true - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)build\$(Configuration)\ - - - false - $(SolutionDir)build\$(Configuration)\ + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ true @@ -99,13 +81,16 @@ true Release + $(SolutionDir)build\vcpkg\ true $(Configuration) + $(SolutionDir)build\vcpkg\ $(Configuration) + $(SolutionDir)build\vcpkg\ true @@ -129,11 +114,7 @@ true Use stdafx.h - .\Distribute/UserInterface.pch All - .\Distribute/ - .\Distribute/ - .\Distribute/ Level3 true ProgramDatabase @@ -151,9 +132,7 @@ $(SolutionDir)Extern\lib;%(AdditionalLibraryDirectories) RequireAdministrator - .\Distribute/metin2client.pdb true - .\Distribute/metin2client.map true Windows true @@ -177,16 +156,12 @@ Disabled - $(SolutionDir)extern\include;$(SolutionDir)extern\include\directx;%(AdditionalIncludeDirectories) + $(SolutionDir)extern\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;USE_LOD;HAVE_SNPRINTF;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug Use stdafx.h - .\Debug/UserInterface.pch - .\Debug/ - .\Debug/ - .\Debug/ true Level3 true @@ -222,15 +197,11 @@ Disabled - $(SolutionDir)extern\include;$(SolutionDir)extern\include\directx;%(AdditionalIncludeDirectories) + $(SolutionDir)extern\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;USE_LOD;DUNGEON_WORK;%(PreprocessorDefinitions) MultiThreaded Use stdafx.h - .\Release/UserInterface.pch - .\Release/ - .\Release/ - .\Release/ true Level3 true @@ -250,7 +221,6 @@ RequireAdministrator false true - .\Release/metin2.map Windows true MachineX86 @@ -258,59 +228,6 @@ UseLinkTimeCodeGeneration - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\VTune/UserInterface.tlb - - - - /Gs %(AdditionalOptions) - Disabled - OnlyExplicitInline - Size - true - $(SolutionDir)extern\include;$(SolutionDir)extern\include\directx;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;USE_LOD;__VTUNE__;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - .\VTune/UserInterface.pch - All - .\VTune/ - .\VTune/ - .\VTune/ - Level3 - true - ProgramDatabase - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - NotSet - true - $(SolutionDir)Extern\lib;%(AdditionalLibraryDirectories) - false - true - true - .\VTune/Metin2VTuned.map - Windows - true - MachineX86 - false - - - COPY "$(TARGETPATH)" ..\bin - - From 0a2248cfac5e8d3d5b3d5aec92a3a836b59dc2fb Mon Sep 17 00:00:00 2001 From: Exynox Date: Wed, 11 Dec 2024 22:38:32 +0200 Subject: [PATCH 2/5] Removed VTune/MFCDebug/MFCRelease references --- src/EffectLib/EffectLib.vcxproj | 93 -------- src/EterGrnLib/EterGrnLib.vcxproj | 79 ------- src/EterImageLib/EterImageLib.vcxproj | 26 --- src/EterLib/EterLib.vcxproj | 3 - src/EterLocale/EterLocale.vcxproj | 7 - src/EterPack/EterPack.vcxproj | 16 -- src/EterPythonLib/EterPythonLib.vcxproj | 59 ----- src/GameLib/GameLib.vcxproj | 298 ------------------------ src/MilesLib/MilesLib.vcxproj | 59 ----- src/PRTerrainLib/PRTerrainLib.vcxproj | 18 -- src/ScriptLib/ScriptLib.vcxproj | 8 - src/SpeedTreeLib/SpeedTreeLib.vcxproj | 26 --- src/SphereLib/SphereLib.vcxproj | 23 -- src/UserInterface/UserInterface.vcxproj | 1 - 14 files changed, 716 deletions(-) diff --git a/src/EffectLib/EffectLib.vcxproj b/src/EffectLib/EffectLib.vcxproj index c4fb87b1..74b27e2f 100644 --- a/src/EffectLib/EffectLib.vcxproj +++ b/src/EffectLib/EffectLib.vcxproj @@ -176,192 +176,112 @@ EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled @@ -370,28 +290,15 @@ true MaxSpeed Create - Disabled - EnableFastChecks - Create - true - MaxSpeed - Create MaxSpeed Create - Size - Create Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size diff --git a/src/EterGrnLib/EterGrnLib.vcxproj b/src/EterGrnLib/EterGrnLib.vcxproj index fa893bf1..6e073d58 100644 --- a/src/EterGrnLib/EterGrnLib.vcxproj +++ b/src/EterGrnLib/EterGrnLib.vcxproj @@ -173,132 +173,77 @@ EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled @@ -308,54 +253,30 @@ MaxSpeed Create stdafx.h - Disabled - EnableFastChecks - Create - true - MinSpace - Create MinSpace Create stdafx.h - Size - Create - stdafx.h Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MinSpace MinSpace - Size diff --git a/src/EterImageLib/EterImageLib.vcxproj b/src/EterImageLib/EterImageLib.vcxproj index aaab4f94..d008366b 100644 --- a/src/EterImageLib/EterImageLib.vcxproj +++ b/src/EterImageLib/EterImageLib.vcxproj @@ -171,24 +171,14 @@ EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled @@ -199,32 +189,16 @@ MaxSpeed Create stdafx.h - Disabled - EnableFastChecks - Create - stdafx.h - true - MaxSpeed - Create - stdafx.h MaxSpeed Create stdafx.h - Size - Create - stdafx.h Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size diff --git a/src/EterLib/EterLib.vcxproj b/src/EterLib/EterLib.vcxproj index 4cedcfb5..667f05d2 100644 --- a/src/EterLib/EterLib.vcxproj +++ b/src/EterLib/EterLib.vcxproj @@ -241,10 +241,7 @@ Create Create - Create - Create Create - Create diff --git a/src/EterLocale/EterLocale.vcxproj b/src/EterLocale/EterLocale.vcxproj index c0001ce7..6f5add5a 100644 --- a/src/EterLocale/EterLocale.vcxproj +++ b/src/EterLocale/EterLocale.vcxproj @@ -175,15 +175,8 @@ stdafx.h Create stdafx.h - Create - stdafx.h - Create - stdafx.h Create stdafx.h - Size - Create - stdafx.h diff --git a/src/EterPack/EterPack.vcxproj b/src/EterPack/EterPack.vcxproj index 7110dbdb..82245bfb 100644 --- a/src/EterPack/EterPack.vcxproj +++ b/src/EterPack/EterPack.vcxproj @@ -175,33 +175,21 @@ EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - MaxSpeed MaxSpeed - Size @@ -211,11 +199,7 @@ Create true MaxSpeed - Disabled - EnableFastChecks - MaxSpeed MaxSpeed - Size diff --git a/src/EterPythonLib/EterPythonLib.vcxproj b/src/EterPythonLib/EterPythonLib.vcxproj index 5e257848..6dc93fc7 100644 --- a/src/EterPythonLib/EterPythonLib.vcxproj +++ b/src/EterPythonLib/EterPythonLib.vcxproj @@ -176,121 +176,70 @@ EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Disabled - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled @@ -299,16 +248,8 @@ true MaxSpeed Create - Disabled - EnableFastChecks - Create - true - MaxSpeed - Create MaxSpeed Create - Size - Create diff --git a/src/GameLib/GameLib.vcxproj b/src/GameLib/GameLib.vcxproj index 275bb579..04b60767 100644 --- a/src/GameLib/GameLib.vcxproj +++ b/src/GameLib/GameLib.vcxproj @@ -179,648 +179,378 @@ EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled @@ -829,64 +559,36 @@ true MaxSpeed Create - Disabled - EnableFastChecks - Create - true - MinSpace - Create MaxSpeed Create - Size - Create Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size diff --git a/src/MilesLib/MilesLib.vcxproj b/src/MilesLib/MilesLib.vcxproj index 57dccd48..244efa91 100644 --- a/src/MilesLib/MilesLib.vcxproj +++ b/src/MilesLib/MilesLib.vcxproj @@ -175,108 +175,63 @@ EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled @@ -286,30 +241,16 @@ MaxSpeed Create stdafx.h - Disabled - EnableFastChecks - Create - true - MaxSpeed - Create MaxSpeed Create stdafx.h - Size - Create - stdafx.h Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size diff --git a/src/PRTerrainLib/PRTerrainLib.vcxproj b/src/PRTerrainLib/PRTerrainLib.vcxproj index 84d223ed..4a5558b6 100644 --- a/src/PRTerrainLib/PRTerrainLib.vcxproj +++ b/src/PRTerrainLib/PRTerrainLib.vcxproj @@ -178,40 +178,22 @@ true MaxSpeed Create - Disabled - EnableFastChecks - Create - true - MaxSpeed - Create MaxSpeed Create - Size - Create Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size diff --git a/src/ScriptLib/ScriptLib.vcxproj b/src/ScriptLib/ScriptLib.vcxproj index 604bdd19..1e4896dd 100644 --- a/src/ScriptLib/ScriptLib.vcxproj +++ b/src/ScriptLib/ScriptLib.vcxproj @@ -184,16 +184,8 @@ true MaxSpeed Create - Disabled - EnableFastChecks - Create - true - MaxSpeed - Create MaxSpeed Create - Size - Create diff --git a/src/SpeedTreeLib/SpeedTreeLib.vcxproj b/src/SpeedTreeLib/SpeedTreeLib.vcxproj index 0e5a8483..c7372859 100644 --- a/src/SpeedTreeLib/SpeedTreeLib.vcxproj +++ b/src/SpeedTreeLib/SpeedTreeLib.vcxproj @@ -179,16 +179,9 @@ MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size - - @@ -200,16 +193,9 @@ MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size - - Disabled @@ -220,16 +206,9 @@ MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size - - Disabled @@ -237,13 +216,8 @@ true MaxSpeed Create - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed Create - Size diff --git a/src/SphereLib/SphereLib.vcxproj b/src/SphereLib/SphereLib.vcxproj index 782712aa..d3873b8d 100644 --- a/src/SphereLib/SphereLib.vcxproj +++ b/src/SphereLib/SphereLib.vcxproj @@ -179,36 +179,21 @@ EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled EnableFastChecks true MaxSpeed - Disabled - EnableFastChecks - true - MaxSpeed MaxSpeed - Size Disabled @@ -217,16 +202,8 @@ true MaxSpeed Create - Disabled - EnableFastChecks - Create - true - MaxSpeed - Create MaxSpeed Create - Size - Create diff --git a/src/UserInterface/UserInterface.vcxproj b/src/UserInterface/UserInterface.vcxproj index a87b508c..02da3bb0 100644 --- a/src/UserInterface/UserInterface.vcxproj +++ b/src/UserInterface/UserInterface.vcxproj @@ -321,7 +321,6 @@ Create Create Create - Create From c4236ba185db5d5315e9d1e0bf448393a46d7d21 Mon Sep 17 00:00:00 2001 From: Exynox Date: Wed, 11 Dec 2024 22:46:33 +0200 Subject: [PATCH 3/5] Updated build script --- .gitignore | 3 ++- build.bat | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index af1a9360..21e3bf30 100644 --- a/.gitignore +++ b/.gitignore @@ -375,5 +375,6 @@ FodyWeavers.xsd !extern !extern/** -# Build directory +# Build directories build/ +dist/ diff --git a/build.bat b/build.bat index 4d501abd..080e1eec 100644 --- a/build.bat +++ b/build.bat @@ -31,7 +31,7 @@ msbuild Metin2Client.sln /p:Configuration=Distribute /p:Platform="Win32" rem Start assembling the client package RMDIR /S /Q dist MKDIR dist\ -COPY /Y build\Distribute\UserInterface.exe dist\metin2.exe +COPY /Y build\bin\Distribute\UserInterface.exe dist\metin2.exe rem Copy over the data from the bin directory xcopy bin\ dist\ /Y /Q From a7eac9dedfea135fd82d2c5e83783bd700720d03 Mon Sep 17 00:00:00 2001 From: Exynox Date: Sat, 14 Dec 2024 20:38:00 +0200 Subject: [PATCH 4/5] Added configuration utility, consolidated language config --- Metin2Client.sln | 8 + bin/.gitignore | 4 + bin/config.exe | Bin 258048 -> 0 bytes bin/locale.cfg | 1 - bin/locale_cz.cfg | 1 - bin/locale_de.cfg | 1 - bin/locale_dk.cfg | 1 - bin/locale_en.cfg | 1 - bin/locale_es.cfg | 1 - bin/locale_fr.cfg | 1 - bin/locale_gr.cfg | 1 - bin/locale_hu.cfg | 1 - bin/locale_it.cfg | 1 - bin/locale_nl.cfg | 1 - bin/locale_pl.cfg | 1 - bin/locale_pt.cfg | 1 - bin/locale_ro.cfg | 1 - bin/locale_ru.cfg | 1 - bin/locale_tr.cfg | 1 - build.bat | 1 + src/Config/MainDialog.cpp | 491 ++++++++++++++++++++++++ src/Config/MainDialog.h | 134 +++++++ src/Config/Metin2Config.cpp | 26 ++ src/Config/Metin2Config.rc | 19 + src/Config/Metin2Config.vcxproj | 198 ++++++++++ src/Config/Metin2Config.vcxproj.filters | 43 +++ src/Config/metin2.ico | Bin 0 -> 7406 bytes src/Config/resource.h | 63 +++ src/Config/ui.rc | 283 ++++++++++++++ src/Config/version_info.rc | 47 +++ src/UserInterface/Locale.cpp | 13 +- src/UserInterface/UserInterface.rc | 8 +- src/vcpkg.json | 8 +- 33 files changed, 1332 insertions(+), 30 deletions(-) delete mode 100644 bin/config.exe delete mode 100644 bin/locale.cfg delete mode 100644 bin/locale_cz.cfg delete mode 100644 bin/locale_de.cfg delete mode 100644 bin/locale_dk.cfg delete mode 100644 bin/locale_en.cfg delete mode 100644 bin/locale_es.cfg delete mode 100644 bin/locale_fr.cfg delete mode 100644 bin/locale_gr.cfg delete mode 100644 bin/locale_hu.cfg delete mode 100644 bin/locale_it.cfg delete mode 100644 bin/locale_nl.cfg delete mode 100644 bin/locale_pl.cfg delete mode 100644 bin/locale_pt.cfg delete mode 100644 bin/locale_ro.cfg delete mode 100644 bin/locale_ru.cfg delete mode 100644 bin/locale_tr.cfg create mode 100644 src/Config/MainDialog.cpp create mode 100644 src/Config/MainDialog.h create mode 100644 src/Config/Metin2Config.cpp create mode 100644 src/Config/Metin2Config.rc create mode 100644 src/Config/Metin2Config.vcxproj create mode 100644 src/Config/Metin2Config.vcxproj.filters create mode 100644 src/Config/metin2.ico create mode 100644 src/Config/resource.h create mode 100644 src/Config/ui.rc create mode 100644 src/Config/version_info.rc diff --git a/Metin2Client.sln b/Metin2Client.sln index 0a5a4da4..acf3b98e 100644 --- a/Metin2Client.sln +++ b/Metin2Client.sln @@ -34,6 +34,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ScriptLib", "src\ScriptLib\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EterLocale", "src\EterLocale\EterLocale.vcxproj", "{05207E97-C83A-49C6-8E08-403679963A7B}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Config", "src\Config\Metin2Config.vcxproj", "{879A444C-3A51-4B63-8888-DC0AAD578B03}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -137,6 +139,12 @@ Global {05207E97-C83A-49C6-8E08-403679963A7B}.Distribute|Win32.Build.0 = Distribute|Win32 {05207E97-C83A-49C6-8E08-403679963A7B}.Release|Win32.ActiveCfg = Release|Win32 {05207E97-C83A-49C6-8E08-403679963A7B}.Release|Win32.Build.0 = Release|Win32 + {879A444C-3A51-4B63-8888-DC0AAD578B03}.Debug|Win32.ActiveCfg = Debug|Win32 + {879A444C-3A51-4B63-8888-DC0AAD578B03}.Debug|Win32.Build.0 = Debug|Win32 + {879A444C-3A51-4B63-8888-DC0AAD578B03}.Distribute|Win32.ActiveCfg = Distribute|Win32 + {879A444C-3A51-4B63-8888-DC0AAD578B03}.Distribute|Win32.Build.0 = Distribute|Win32 + {879A444C-3A51-4B63-8888-DC0AAD578B03}.Release|Win32.ActiveCfg = Release|Win32 + {879A444C-3A51-4B63-8888-DC0AAD578B03}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/bin/.gitignore b/bin/.gitignore index e3d4d4f3..d8377271 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,8 +1,12 @@ # Game executable metin2client.exe +# Configuration executable +config.exe + # User configuration files channel.inf +locale.cfg metin2.cfg BGM/lastplay.inf diff --git a/bin/config.exe b/bin/config.exe deleted file mode 100644 index 24f2bc116afaab0a832b08c74a03abce88baaa42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258048 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 + +#include +#include + +#define APP_NAME _T("Metin2 Config") +#define FILENAME_CONFIG "metin2.cfg" +#define LOCALE_CONFIG "locale.cfg" + +static const unsigned int kVisibilityNames[CMainDialog::VISIBILITY_MAX_NUM] = { + IDS_FOG_NEAR, IDS_FOG_MID, IDS_FOG_FAR +}; + +static const unsigned int kTilingNames[CMainDialog::TILING_MAX_NUM] = { + IDS_TILE_AUTO, IDS_TILE_CPU, IDS_TILE_GPU +}; + +static const unsigned int kShadowNames[CMainDialog::SHADOW_MAX_NUM] = { + IDS_SHADOW_NONE, IDS_SHADOW_LV1, IDS_SHADOW_LV2, IDS_SHADOW_ALL +}; + +enum Language +{ + kLanguageCzech, + kLanguageDanish, + kLanguageDutch, + kLanguageEnglish, + kLanguageFrench, + kLanguageGerman, + kLanguageGreek, + kLanguageHungarian, + kLanguageItalian, + kLanguagePolish, + kLanguagePortuguese, + kLanguageRomanian, + kLanguageRussian, + kLanguageSpanish, + kLanguageTurkish, + + kLanguageMax +}; + +struct LanguageConfig +{ + int stringId; + int charset; + const char* name; +} kLanguageConfig[] = { + {IDS_LANGUAGE_CZECH, 1250, "cz"}, + {IDS_LANGUAGE_DANISH, 1252, "dk"}, + {IDS_LANGUAGE_DUTCH, 1252, "nl"}, + {IDS_LANGUAGE_ENGLISH, 1252, "en"}, + {IDS_LANGUAGE_FRENCH, 1252, "fr"}, + {IDS_LANGUAGE_GERMAN, 1252, "de"}, + {IDS_LANGUAGE_GREEK, 1253, "gr"}, + {IDS_LANGUAGE_HUNGARIAN, 1250, "hu"}, + {IDS_LANGUAGE_ITALIAN, 1252, "it"}, + {IDS_LANGUAGE_POLISH, 1250, "pl"}, + {IDS_LANGUAGE_PORTUGUESE, 1252, "pt"}, + {IDS_LANGUAGE_ROMANIAN, 1250, "ro"}, + {IDS_LANGUAGE_RUSSIAN, 1251, "ru"}, + {IDS_LANGUAGE_SPANISH, 1252, "es"}, + {IDS_LANGUAGE_TURKISH, 1254, "tr"}, +}; + +CMainDialog::CMainDialog() +{ + InitDefaultConfig(); +} + +BOOL CMainDialog::OnInitDialog(CWindow wndFocus, LPARAM lInitParam) +{ + CenterWindow(); + + HICON hIcon = AtlLoadIconImage(IDR_MAINFRAME, LR_DEFAULTCOLOR, + ::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON)); + SetIcon(hIcon, TRUE); + + HICON hIconSmall = AtlLoadIconImage(IDR_MAINFRAME, LR_DEFAULTCOLOR, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON)); + SetIcon(hIconSmall, FALSE); + + GetResolutionList(); + + LoadConfig(); + + DoDataExchange(FALSE); + + // Screen Resolution + ATL::CString strResolutionName; + for (int i=0; i < m_nResolutionCount; i++) { + strResolutionName.Format(_T("%dx%d %dbpp"), m_ResolutionList[i].width, m_ResolutionList[i].height, m_ResolutionList[i].bpp); + m_comboResolution.InsertString( i, strResolutionName ); + } + + // Resolution Selection + strResolutionName.Format(_T("%dx%d %dbpp"), m_stConfig.width, m_stConfig.height, m_stConfig.bpp); + int iResolutionSel = m_comboResolution.FindString(0, strResolutionName); + + if (iResolutionSel < 0) + m_comboResolution.SetCurSel(0); + else + m_comboResolution.SetCurSel(iResolutionSel); + + // Frequency + UpdateFrequencyComboBox(); + + ATL::CString strFrequency; + strFrequency.Format(_T("%d"), m_stConfig.frequency); + + int iFrequencySel = m_comboFrequency.FindString(0, strFrequency); + if (iFrequencySel < 0) + m_comboFrequency.SetCurSel(0); + else + m_comboFrequency.SetCurSel(iFrequencySel); + + // Gamma + ATL::CString strGammaName; + for (int i=0; i < GAMMA_MAX_NUM; i++) { + strGammaName.Format(_T("%d"), i + 1); + m_comboGamma.InsertString(i, strGammaName); + } + + // Gamma Selection + if (m_stConfig.gamma > 0 && m_stConfig.gamma <= GAMMA_MAX_NUM) + m_comboGamma.SetCurSel(m_stConfig.gamma - 1); + else + m_comboGamma.SetCurSel(0); + + // Visibility + ATL::CString strVisibility; + for (int i = 0; i < VISIBILITY_MAX_NUM; i++) { + strVisibility.LoadString(kVisibilityNames[i]); + m_comboVisibility.InsertString(i, strVisibility); + } + + if (m_stConfig.iDistance > 0 && m_stConfig.iDistance <= VISIBILITY_MAX_NUM) + m_comboVisibility.SetCurSel(m_stConfig.iDistance - 1); + else + m_comboVisibility.SetCurSel(0); + + // Tiling + ATL::CString strTiling; + for (int i=0; i < TILING_MAX_NUM; i++) { + strTiling.LoadString(kTilingNames[i]); + m_comboTiling.InsertString(i, strTiling); + } + + m_stConfig.iTiling = std::max(m_stConfig.iTiling, 0); + m_stConfig.iTiling = std::min(m_stConfig.iTiling, TILING_MAX_NUM - 1); + + m_comboTiling.SetCurSel(m_stConfig.iTiling); + + // Shadow + ATL::CString strShadow; + for (int i=0; i < SHADOW_MAX_NUM; i++) { + strShadow.LoadString(kShadowNames[i]); + m_comboShadow.InsertString(i, strShadow); + } + + m_stConfig.iShadowLevel = std::max(m_stConfig.iShadowLevel, 0); + m_stConfig.iShadowLevel = std::min(m_stConfig.iShadowLevel, SHADOW_MAX_NUM-1); + m_comboShadow.SetCurSel(m_stConfig.iShadowLevel); + + // Language + ATL::CString language; + for (int i = 0; i < kLanguageMax; ++i) { + language.LoadString(kLanguageConfig[i].stringId); + m_comboLanguage.InsertString(i, language); + } + + m_stConfig.language = std::clamp((int) m_stConfig.language, 0, kLanguageMax - 1); + + m_comboLanguage.SetCurSel(m_stConfig.language); + + // Sound + m_sliderBGMVolume.SetRange(0, 1000, true); + m_sliderSoundVolume.SetRange(0, 1000, true); + + if (m_stConfig.music_volume >= 0.0f && + m_stConfig.music_volume <= MUSIC_VOLUME_MAX_NUM) + m_sliderBGMVolume.SetPos(int(m_stConfig.music_volume * 1000.0f)); + + if (m_stConfig.voice_volume >= 0 && + m_stConfig.voice_volume <= SOUND_VOLUME_MAX_NUM) + m_sliderSoundVolume.SetPos(m_stConfig.voice_volume * 200); + + return TRUE; +} + +void CMainDialog::OnOK(UINT uNotifyCode, int nID, CWindow wndCtl) +{ + if (DoDataExchange(TRUE) == FALSE) { + //MessageBox(); + } + + ApplyConfig(); + SaveConfig(); + + EndDialog(nID); +} + +void CMainDialog::OnCancel(UINT uNotifyCode, int nID, CWindow wndCtl) +{ + EndDialog(nID); +} + +// Utility functions +void CMainDialog::InitDefaultConfig() +{ + memset(&m_stConfig, 0, sizeof(m_stConfig)); + + m_stConfig.width = 800; + m_stConfig.height = 600; + m_stConfig.frequency = 60; + m_stConfig.bpp = 16; + + m_stConfig.bUseSoftwareCursor = false; + m_stConfig.iDistance = 3; + m_stConfig.iTiling = 0; + m_stConfig.iShadowLevel = 3; + + m_stConfig.gamma = 3; + m_stConfig.music_volume = 1.0f; + m_stConfig.voice_volume = 5; + + m_stConfig.bFullscreen = true; + + auto lang = PRIMARYLANGID(LANGIDFROMLCID(GetUserDefaultLCID())); + switch (lang) { + case LANG_GERMAN: + m_stConfig.language = kLanguageGerman; + break; + + default: + m_stConfig.language = kLanguageEnglish; + break; + } +} + +void CMainDialog::LoadConfig() +{ + char buf[256]; + char command[256]; + char value[256]; + + FILE * fp = fopen(FILENAME_CONFIG, "rt"); + if (fp == NULL) + return; + + while (fgets(buf, 256, fp)) { + if (sscanf(buf, " %s %s \n", command, value) == EOF) + break; + + if (!_stricmp(command, "WIDTH")) + m_stConfig.width = atoi(value); + else if (!_stricmp(command, "HEIGHT")) + m_stConfig.height = atoi(value); + else if (!_stricmp(command, "BPP")) + m_stConfig.bpp = atoi(value); + else if (!_stricmp(command, "FREQUENCY")) + m_stConfig.frequency = atoi(value); + else if (!_stricmp(command, "SOFTWARE_CURSOR")) + m_stConfig.bUseSoftwareCursor = atoi(value) ? true : false; + else if (!_stricmp(command, "VISIBILITY")) + m_stConfig.iDistance = atoi(value); + else if (!_stricmp(command, "SOFTWARE_TILING")) + m_stConfig.iTiling = atoi(value); + else if (!_stricmp(command, "SHADOW_LEVEL")) + m_stConfig.iShadowLevel = atoi(value); + else if (!_stricmp(command, "MUSIC_VOLUME")) + m_stConfig.music_volume = (float) atof(value); + else if (!_stricmp(command, "VOICE_VOLUME")) + m_stConfig.voice_volume = (char) atoi(value); + else if (!_stricmp(command, "GAMMA")) + m_stConfig.gamma = std::max(1, std::min(GAMMA_MAX_NUM, atoi(value))); + else if (!_stricmp(command, "WINDOWED")) + m_stConfig.bFullscreen = atoi(value) == 1 ? false : true; + } + + fclose(fp); + + int charset; + char lang[256]; + + fp = fopen(LOCALE_CONFIG, "rt"); + if (!fp) + return; + + fgets(buf, 256, fp); + sscanf(buf, "%d %s", &charset, lang); + + for (int i = 0; i < kLanguageMax; ++i) { + const auto& cfg = kLanguageConfig[i]; + if (0 == std::strcmp(lang, cfg.name)) + m_stConfig.language = i; + } + + fclose(fp); +} + +void CMainDialog::SaveConfig() +{ + FILE* fp = fopen(FILENAME_CONFIG, "wt"); + if (fp == NULL) + return; + + fprintf(fp, "WIDTH %d\n", m_stConfig.width); + fprintf(fp, "HEIGHT %d\n", m_stConfig.height); + fprintf(fp, "BPP %d\n", m_stConfig.bpp); + fprintf(fp, "FREQUENCY %d\n", m_stConfig.frequency); + fprintf(fp, "SOFTWARE_CURSOR %d\n", m_stConfig.bUseSoftwareCursor); + fprintf(fp, "VISIBILITY %d\n", m_stConfig.iDistance); + fprintf(fp, "SOFTWARE_TILING %d\n", m_stConfig.iTiling); + fprintf(fp, "SHADOW_LEVEL %d\n", m_stConfig.iShadowLevel); + fprintf(fp, "MUSIC_VOLUME %.3f\n", m_stConfig.music_volume); + fprintf(fp, "VOICE_VOLUME %d\n", m_stConfig.voice_volume); + fprintf(fp, "GAMMA %d\n", m_stConfig.gamma); + fprintf(fp, "WINDOWED %d\n", !m_stConfig.bFullscreen); + fprintf(fp, "\n"); + fclose(fp); + + fp = fopen(LOCALE_CONFIG, "wt"); + if (!fp) + return; + + fprintf(fp, "%d %s", kLanguageConfig[m_stConfig.language].charset, kLanguageConfig[m_stConfig.language].name); + fclose(fp); +} + +void CMainDialog::UpdateFrequencyComboBox() +{ + int iScreenCurrentSelection = m_comboResolution.GetCurSel(); + + m_comboFrequency.ResetContent(); + + ATL::CString strFrequencyName; + for (int i=0; i < m_ResolutionList[iScreenCurrentSelection].frequency_count; i++) { + strFrequencyName.Format(_T("%d"), m_ResolutionList[iScreenCurrentSelection].frequency[i]); + m_comboFrequency.InsertString(i, strFrequencyName); + } + + m_comboFrequency.SetCurSel(m_ResolutionList[iScreenCurrentSelection].frequency_count - 1); +} + +void CMainDialog::GetResolutionList() +{ + m_nResolutionCount = 0; + + auto lpd3d = Direct3DCreate9(D3D_SDK_VERSION); + if (!lpd3d) { + m_ResolutionList[m_nResolutionCount].width = 800; + m_ResolutionList[m_nResolutionCount].height = 600; + m_ResolutionList[m_nResolutionCount].bpp = 16; + m_ResolutionList[m_nResolutionCount].frequency[0] = 60; + m_ResolutionList[m_nResolutionCount].frequency_count = 1; + + ++m_nResolutionCount; + return; + } + + const D3DFORMAT allowedFormats[] = { + D3DFMT_X8R8G8B8, + D3DFMT_R5G6B5, + }; + + for (int i = 0; i < sizeof(allowedFormats) / sizeof(D3DFORMAT); ++i) { + // 이 어뎁터가 가지고 있는 디스플래이 모드갯수를 나열한다.. + DWORD dwNumAdapterModes = lpd3d->GetAdapterModeCount(0, allowedFormats[i]); + if (dwNumAdapterModes == 0) { + m_ResolutionList[m_nResolutionCount].width = 800; + m_ResolutionList[m_nResolutionCount].height = 600; + m_ResolutionList[m_nResolutionCount].bpp = 16; + m_ResolutionList[m_nResolutionCount].frequency[0] = 60; + m_ResolutionList[m_nResolutionCount].frequency_count = 1; + + ++m_nResolutionCount; + lpd3d->Release(); + return; + } + + for (UINT iMode = 0; iMode < dwNumAdapterModes; iMode++) { + D3DDISPLAYMODE displayMode; + lpd3d->EnumAdapterModes(0, allowedFormats[i], iMode, &displayMode); + + if (displayMode.Width < 800 || displayMode.Height < 600) + continue; + + int bpp = 0; + if (allowedFormats[i] == D3DFMT_R5G6B5) + bpp = 16; + else if (allowedFormats[i] == D3DFMT_X8R8G8B8) + bpp = 32; + + int check_res = false; + for (int i = 0; !check_res && i < m_nResolutionCount; ++i) { + if (m_ResolutionList[i].bpp != bpp || + m_ResolutionList[i].width != displayMode.Width || + m_ResolutionList[i].height != displayMode.Height) + continue; + + int check_fre = false; + + for (int j = 0; j < m_ResolutionList[i].frequency_count; ++j) { + if (m_ResolutionList[i].frequency[j] == displayMode.RefreshRate) { + check_fre = true; + break; + } + } + + if (!check_fre ) + if (m_ResolutionList[i].frequency_count < FREQUENCY_MAX_NUM) + m_ResolutionList[i].frequency[m_ResolutionList[i].frequency_count++] = displayMode.RefreshRate; + + check_res = true; + } + + if (!check_res) { + if (m_nResolutionCount < RESOLUTION_MAX_NUM) { + m_ResolutionList[m_nResolutionCount].width = displayMode.Width; + m_ResolutionList[m_nResolutionCount].height = displayMode.Height; + m_ResolutionList[m_nResolutionCount].bpp = bpp; + m_ResolutionList[m_nResolutionCount].frequency[0] = displayMode.RefreshRate; + m_ResolutionList[m_nResolutionCount].frequency_count = 1; + + ++m_nResolutionCount; + } + } + } + } + + lpd3d->Release(); +} + +void CMainDialog::ApplyConfig() +{ + int iResolutionSel = m_comboResolution.GetCurSel(); + if ((iResolutionSel >= 0) && (iResolutionSel < m_nResolutionCount)) { + m_stConfig.width = m_ResolutionList[iResolutionSel].width; + m_stConfig.height = m_ResolutionList[iResolutionSel].height; + m_stConfig.bpp = m_ResolutionList[iResolutionSel].bpp; + + int iFrequencySel = m_comboFrequency.GetCurSel(); + if ((iFrequencySel >= 0) && (iFrequencySel < m_ResolutionList[iResolutionSel].frequency_count)) + m_stConfig.frequency = m_ResolutionList[iResolutionSel].frequency[iFrequencySel]; + else + m_stConfig.frequency = 60; + } else { + m_stConfig.width = 800; + m_stConfig.height = 600; + m_stConfig.bpp = 16; + m_stConfig.frequency = 60; + } + + m_stConfig.gamma = m_comboGamma.GetCurSel() + 1; + m_stConfig.music_volume = float(m_sliderBGMVolume.GetPos()) / 1000.0f; + m_stConfig.voice_volume = m_sliderSoundVolume.GetPos() / 200; + + m_stConfig.iDistance = m_comboVisibility.GetCurSel() + 1; + m_stConfig.iTiling = m_comboTiling.GetCurSel(); + m_stConfig.iShadowLevel = m_comboShadow.GetCurSel(); + m_stConfig.language = m_comboLanguage.GetCurSel(); +} + +void CMainDialog::OnResolutionSelChange(UINT uNotifyCode, int nID, CWindow wndCtl) +{ + UpdateFrequencyComboBox(); +} + +void CMainDialog::OnTilingSelChange(UINT uNotifyCode, int nID, CWindow wndCtl) +{ + switch (m_comboTiling.GetCurSel()) { + case 0: + break; + + case 1: { + ATL::CString strCaption((LPCTSTR) IDS_NOTIFY); + ATL::CString strDescription((LPCTSTR) IDS_TILING_CPU); + MessageBox(strDescription, strCaption); + break; + } + + case 2: { + ATL::CString strCaption((LPCTSTR) IDS_NOTIFY); + ATL::CString strDescription((LPCTSTR) IDS_TILING_GPU); + MessageBox(strDescription, strCaption); + break; + } + } +} diff --git a/src/Config/MainDialog.h b/src/Config/MainDialog.h new file mode 100644 index 00000000..3dea2960 --- /dev/null +++ b/src/Config/MainDialog.h @@ -0,0 +1,134 @@ +#ifndef METIN2_CLIENT_CONFIG_MAINDIALOG_HPP +#define METIN2_CLIENT_CONFIG_MAINDIALOG_HPP + +#if VSTD_HAS_PRAGMA_ONCE +#pragma once +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include "resource.h" + +#define MUSIC_VOLUME_MAX_NUM 1.0f + +class CMainDialog : public CDialogImpl, public CWinDataExchange +{ + public: + enum { IDD = IDR_MAINFRAME }; + + typedef struct SResolution + { + DWORD width; + DWORD height; + DWORD bpp; // bits per pixel (high-color = 16bpp, true-color = 32bpp) + + DWORD frequency[20]; + BYTE frequency_count; + } TResolution; + + typedef struct SConfig + { + DWORD width; + DWORD height; + DWORD bpp; + DWORD frequency; + + bool is_object_culling; + int iDistance; + int iTiling; + int iShadowLevel; + + FLOAT music_volume; + int voice_volume; + + int gamma; + + BOOL bUseSoftwareCursor; + BOOL bFullscreen; + + unsigned int language; + } TConfig; + + enum + { + FREQUENCY_MAX_NUM = 30, + RESOLUTION_MAX_NUM = 64, + + SOUND_VOLUME_MAX_NUM = 5, + + GAMMA_MAX_NUM = 5, + + VISIBILITY_MAX_NUM = 3, + TILING_MAX_NUM = 3, + SHADOW_MAX_NUM = 4, + }; + + CMainDialog(); + + BEGIN_MSG_MAP(CMainDialog) + MSG_WM_INITDIALOG(OnInitDialog) + COMMAND_HANDLER_EX(IDC_VIDEO_RESOLUTION, CBN_SELCHANGE, OnResolutionSelChange) + COMMAND_HANDLER_EX(IDC_OPTIMIZE_TILING, CBN_SELCHANGE, OnTilingSelChange) + COMMAND_ID_HANDLER_EX(IDOK, OnOK) + COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel) + END_MSG_MAP() + + BEGIN_DDX_MAP(CMainDialog) + DDX_CONTROL_HANDLE(IDC_VIDEO_RESOLUTION, m_comboResolution) + DDX_CONTROL_HANDLE(IDC_VIDEO_FREQUENCY, m_comboFrequency) + DDX_CONTROL_HANDLE(IDC_VIDEO_GAMMA, m_comboGamma) + DDX_CONTROL_HANDLE(IDC_SOUND_BGM, m_sliderBGMVolume) + DDX_CONTROL_HANDLE(IDC_SOUND_SOUND, m_sliderSoundVolume) + DDX_CONTROL_HANDLE(IDC_OPTIMIZE_VISIBILITY, m_comboVisibility) + DDX_CONTROL_HANDLE(IDC_OPTIMIZE_TILING, m_comboTiling) + DDX_CONTROL_HANDLE(IDC_OPTIMIZE_SHADOW, m_comboShadow) + DDX_CONTROL_HANDLE(IDC_LANGUAGE_COMBO, m_comboLanguage) + + DDX_RADIO(IDC_GRAPHIC_WINDOW_MODE, m_stConfig.bFullscreen) + DDX_CHECK(IDC_GRAPHIC_SOFTWARE_CURSOR, m_stConfig.bUseSoftwareCursor) + END_DDX_MAP() + + BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam); + + void OnOK(UINT uNotifyCode, int nID, CWindow wndCtl); + void OnCancel(UINT uNotifyCode, int nID, CWindow wndCtl); + void OnResolutionSelChange(UINT uNotifyCode, int nID, CWindow wndCtl); + void OnTilingSelChange(UINT uNotifyCode, int nID, CWindow wndCtl); + + void GetResolutionList(); + void InitDefaultConfig(); + void LoadConfig(); + void SaveConfig(); + void ApplyConfig(); + void UpdateFrequencyComboBox(); + + protected: + typedef ATL::CSimpleArray TStringVector; + + WTL::CComboBox m_comboResolution; + WTL::CComboBox m_comboFrequency; + WTL::CComboBox m_comboGamma; + + WTL::CTrackBarCtrl m_sliderBGMVolume; + WTL::CTrackBarCtrl m_sliderSoundVolume; + + WTL::CComboBox m_comboVisibility; + WTL::CComboBox m_comboTiling; + WTL::CComboBox m_comboShadow; + WTL::CComboBox m_comboLanguage; + + TStringVector m_ShadowNameVector; + + protected: + TConfig m_stConfig; + TResolution m_ResolutionList[RESOLUTION_MAX_NUM]; + int m_nResolutionCount; +}; + +#endif diff --git a/src/Config/Metin2Config.cpp b/src/Config/Metin2Config.cpp new file mode 100644 index 00000000..0cc7d57b --- /dev/null +++ b/src/Config/Metin2Config.cpp @@ -0,0 +1,26 @@ +#include "MainDialog.h" +#include "resource.h" + +#include + +#include + +#pragma comment(lib, "d3d9.lib") + +CAppModule _Module; + +int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + ::InitCommonControls(); + + _Module.Init(NULL, hInstance); + + CMainDialog cDialog; + int nRet = (int) cDialog.DoModal(); + + _Module.Term(); + return nRet; +} diff --git a/src/Config/Metin2Config.rc b/src/Config/Metin2Config.rc new file mode 100644 index 00000000..62c71471 --- /dev/null +++ b/src/Config/Metin2Config.rc @@ -0,0 +1,19 @@ +#include + +#include "ui.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON "metin2.ico" + +#define METIN2_COMPONENT_DESCRIPTION "Metin2 Client Configuration Utility" +#define METIN2_COMPONENT_INTERNALNAME "Config" +#define METIN2_COMPONENT_FILENAME "config.exe" +#define METIN2_COMPONENT_TYPE VFT_APP + +#include diff --git a/src/Config/Metin2Config.vcxproj b/src/Config/Metin2Config.vcxproj new file mode 100644 index 00000000..9c58713e --- /dev/null +++ b/src/Config/Metin2Config.vcxproj @@ -0,0 +1,198 @@ + + + + + Debug + Win32 + + + Distribute + Win32 + + + Release + Win32 + + + + 17.0 + Config + {879A444C-3A51-4B63-8888-DC0AAD578B03} + Metin2Config + SAK + SAK + SAK + SAK + MFCProj + 10.0 + + + + Application + v143 + false + MultiByte + + + Application + v143 + false + MultiByte + + + Application + false + MultiByte + v143 + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.32203.90 + + + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ + + + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ + + + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ + + + true + $(Configuration) + $(SolutionDir)build\vcpkg\ + + + true + Release + $(SolutionDir)build\vcpkg\ + + + true + $(Configuration) + $(SolutionDir)build\vcpkg\ + + + true + + + + MaxSpeed + OnlyExplicitInline + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + Strict + + Level3 + true + ProgramDatabase + Default + true + true + stdcpp17 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0009 + + + true + + + UseLinkTimeCodeGeneration + + + + + MaxSpeed + OnlyExplicitInline + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + Strict + All + + Level3 + true + ProgramDatabase + Default + true + true + stdcpp17 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0009 + + + true + + + + UseLinkTimeCodeGeneration + + + + + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + Strict + + Level3 + true + EditAndContinue + Default + true + stdcpp17 + + + _DEBUG;%(PreprocessorDefinitions) + 0x0009 + + + true + + + + false + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Config/Metin2Config.vcxproj.filters b/src/Config/Metin2Config.vcxproj.filters new file mode 100644 index 00000000..7ae2a5e0 --- /dev/null +++ b/src/Config/Metin2Config.vcxproj.filters @@ -0,0 +1,43 @@ + + + + + {62c8d2c1-c25e-4a7e-ab94-f76adb8b3c53} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {2c236430-8de1-4024-be66-ae2c7469e916} + h;hpp;hxx;hm;inl + + + {a9554394-acc3-46ba-a041-6122aabc25db} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + + + Resource Files + + + + + Resource Files + + + \ No newline at end of file diff --git a/src/Config/metin2.ico b/src/Config/metin2.ico new file mode 100644 index 0000000000000000000000000000000000000000..1097646e81e39e5dbf71f9da359ffd697c9b4aa7 GIT binary patch literal 7406 zcmeHL&2Hn!5pI&2SRg&5RBLvVqYPz6qJ~y;8WK!x_NI9WpLdTr<_&BhK+buCxdwg- zJJ`d%z@B$}%XNG`3h}iN z;`DS=?hEk~>IQ?h{D(I}{8eg%% zdTbl@*Npwrh^Ap*pbwkZU(m+(*J$T@^nbznuz$_=Z5_&E*c$_Pc?~;wzPiF#uB|P$ zci_Vu9QMHe9>7a?AR(ebW-?30{F?cod_(mxFSBd_ivFEmRv({lsNQI1(0ftG_k&SM zr+|;gN29Gu5CpzfSwywAJ#?;MQFLYtfsgOpa1^vE zqv3Gkk4O=X^{(F<)2r>gGCT~!A>)VELI@45NbV|R^VK}(4ty*mTn)uA06fC?6f_C^ z8l!kri1d85%77pGMniD`g;8D_om;%XD0tZ0F%0qzKCI0=US+v~PZVWwHjoBxVmvkF zG0|o#m~g)OW|c=G9O^8NV~srme7q7e)FdN#G*Y?jX?)|EOb)9nI37k?r*Z6|gNSl3 zGBoauDdN%Bih8|n2qa;31*=(3UK|&39)*l2?Rl~cd3Hw_fw$UtWGIb24~vMNfC!7Z z5$v$BwU{67pp;(MfsvW~#fCCj-|SU;uH<+8{+ zyvkueRlvuXGanmfnuSR zf;q=+r-v14WgKU==(fO96+>s-KW|y&_gDlF)(d*7T_ci+i?hzB_& z%~jhD7_Mug`KJ&rt|E8$D8kO|&!~sI`ff*}{pu6SYcSKe6!^_JRu>M8p81m50Ldnmj>hkNRN?2akqc|7o84*u`=zzfI0f3+&I^xD^2 z7+r(TYkT$Uj_F5-d|b!)&W5`i|LOKZvT5gNU{uOezN$$}dmmbk77&7!K;-2hiuSKs zxF*>EBnZw)=Jw*!nvD>wf&4H;{EHv1R=T8ZOpDurMsvU*gj_Z%8U|W*fN1^(PEKlK zS10uVHyjuXG=gP*5|Mthio`JceQ%B?GhYo1t}nh{%J!?D>)tnL$mU)#hlmGe9G7S( z<+V`x@-*?T6%f3tO&6b<%s?fJE4OxSr+XOD6WROs*D&S-Y$|nYpavxvJHZC zQt22Wycp3G@p~D29PSyf@>-ylRq9rS!Kgl{usSnSMBnkU!nMgxQ5zIPKM3jtxlS(1 z#n)$ui&}LdG=gBqjW~j&v&uoQBY$&kYz;`Ka$-cdhy z&vo^kBnJ_r)yKR#vuRh~$;d^F$pxNQM3;7vyGEANod8l!pLJm5>@kEaiF49>G?2d( z)0MBjQG14-7ut9M{|`9o9)x2V!Af(7=UWl|fH37xh-6%BRcJFK+7U-r2x~gN#q-@h zA0aNf1UL6EWBIp`+d;$X&%5#yu|GLDY%PMJ|P}_nUH(l&6ST4@T|eeneXMv zk*D6~$C1l^%#mLLyUB&$Ko5C#&d+n6oMRx)opX+ybLN~+=iE5w!)-47Gjx%Y=e)Vi zhp*e5Ifj5T+Muz`mm@dMIdsm~bNhi0b8y%L|JfeE3-)VBO+0Th#RtTKUDurizv-iF zi%3kk&ZOVx#`L|Q^k^`M1$hA~-k-$kV{r7o-&YQ2LZ&ByIyve0Kfasvymx(k;otSo zg0TPgtDJM{#IczJl!d7N<1x- E0s4VfY5)KL literal 0 HcmV?d00001 diff --git a/src/Config/resource.h b/src/Config/resource.h new file mode 100644 index 00000000..74fe034d --- /dev/null +++ b/src/Config/resource.h @@ -0,0 +1,63 @@ +#include + +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by ui.rc +// +#define IDS_NOTIFY 1 +#define IDS_MAY_SLOW 2 +#define IDS_TILING_CPU 3 +#define IDS_TILING_GPU 4 +#define IDS_FOG_NEAR 5 +#define IDS_FOG_MID 6 +#define IDS_FOG_FAR 7 +#define IDS_TILE_AUTO 8 +#define IDS_TILE_CPU 9 +#define IDS_TILE_GPU 10 +#define IDS_SHADOW_NONE 11 +#define IDS_SHADOW_LV1 12 +#define IDS_SHADOW_LV2 13 +#define IDS_SHADOW_ALL 14 +#define IDS_LANGUAGE_CZECH 15 +#define IDS_LANGUAGE_DANISH 16 +#define IDS_LANGUAGE_DUTCH 17 +#define IDS_LANGUAGE_ENGLISH 18 +#define IDS_LANGUAGE_FRENCH 19 +#define IDS_LANGUAGE_GERMAN 20 +#define IDS_LANGUAGE_GREEK 21 +#define IDS_LANGUAGE_HUNGARIAN 22 +#define IDS_LANGUAGE_ITALIAN 23 +#define IDS_LANGUAGE_POLISH 24 +#define IDS_LANGUAGE_PORTUGUESE 25 +#define IDS_LANGUAGE_ROMANIAN 26 +#define IDS_LANGUAGE_RUSSIAN 27 +#define IDS_LANGUAGE_SPANISH 28 +#define IDS_LANGUAGE_TURKISH 29 +#define IDD_CONFIG_DIALOG 102 +#define IDR_MAINFRAME 128 +#define IDC_VIDEO_RESOLUTION 1001 +#define IDC_VIDEO_FREQUENCY 1002 +#define IDC_VIDEO_GAMMA 1003 +#define IDC_GRAPHIC_SOFTWARE_CURSOR 1004 +#define IDC_SOUND_BGM 1006 +#define IDC_SOUND_SOUND 1007 +#define IDC_OPTIMIZE_SHADOW 1010 +#define IDC_OPTIMIZE_OPAQUE 1011 +#define IDC_OPTIMIZE_VISIBILITY 1012 +#define IDC_OPTIMIZE_DECOMPRESSED_TEXTURE 1013 +#define IDC_OPTIMIZE_USE_COMPRESSED_TEXTURE 1013 +#define IDC_OPTIMIZE_TILING 1013 +#define IDC_GRAPHIC_WINDOW_MODE 1014 +#define IDC_GRAPHIC_FULLSCREEN_MODE 1015 +#define IDC_LANGUAGE_COMBO 1016 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 135 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1017 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/src/Config/ui.rc b/src/Config/ui.rc new file mode 100644 index 00000000..a08cdd90 --- /dev/null +++ b/src/Config/ui.rc @@ -0,0 +1,283 @@ +// Microsoft Visual C++ generated resource script. +// +#include +#include "resource.h" +///////////////////////////////////////////////////////////////////////////// +// English resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDR_MAINFRAME DIALOGEX 0, 0, 286, 167 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION +EXSTYLE WS_EX_APPWINDOW +CAPTION "Configuration" +FONT 9, "Arial", 0, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,84,150,50,14 + PUSHBUTTON "Cancel",IDCANCEL,139,150,50,14 + GROUPBOX "Display",IDC_STATIC,7,7,127,66 + LTEXT "Resolution",IDC_STATIC,15,20,36,8 + COMBOBOX IDC_VIDEO_RESOLUTION,61,20,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + LTEXT "Frequency",IDC_STATIC,15,38,36,8 + COMBOBOX IDC_VIDEO_FREQUENCY,61,36,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + GROUPBOX "Sound",IDC_STATIC,7,77,127,44 + CONTROL "Slider1",IDC_SOUND_BGM,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,61,88,68,12 + LTEXT "BGM",IDC_STATIC,13,90,43,8 + CONTROL "Slider1",IDC_SOUND_SOUND,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,61,104,68,12 + LTEXT "SFX",IDC_STATIC,13,106,47,8 + LTEXT "Gamma",IDC_STATIC,15,55,34,8 + COMBOBOX IDC_VIDEO_GAMMA,61,54,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + LTEXT "FOG",IDC_STATIC,145,88,53,8 + COMBOBOX IDC_OPTIMIZE_VISIBILITY,204,88,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + GROUPBOX "GFX",IDC_STATIC,139,77,140,66 + GROUPBOX "Window Mode",IDC_STATIC,139,7,140,30 + CONTROL "Windowed",IDC_GRAPHIC_WINDOW_MODE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,145,20,58,10 + CONTROL "Fullscreen",IDC_GRAPHIC_FULLSCREEN_MODE,"Button",BS_AUTORADIOBUTTON,204,20,66,10 + LTEXT "TNL",IDC_STATIC,145,106,55,8 + COMBOBOX IDC_OPTIMIZE_TILING,204,106,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + LTEXT "Shadow",IDC_STATIC,145,123,53,8 + COMBOBOX IDC_OPTIMIZE_SHADOW,204,123,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + CONTROL "Use software mouse cursor",IDC_GRAPHIC_SOFTWARE_CURSOR, + "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,13,130,110,10 + GROUPBOX "Language",IDC_STATIC,139,41,139,33 + COMBOBOX IDC_LANGUAGE_COMBO,144,55,127,91,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDR_MAINFRAME, DIALOG + BEGIN + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDR_MAINFRAME AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_NOTIFY "Notify\n" + IDS_MAY_SLOW "This may slow the game" + IDS_TILING_CPU "CPU tilling mode accelates by low system requirements.\nPlease set to GPU mode if error occurs.\n" + IDS_TILING_GPU "GPU tilling mode slows down by low system requirements.\nPlease set to CPU if error occurs." + IDS_FOG_NEAR "Near" + IDS_FOG_MID "Mid" + IDS_FOG_FAR "Far" + IDS_TILE_AUTO "Auto" + IDS_TILE_CPU "CPU" + IDS_TILE_GPU "GPU" + IDS_SHADOW_NONE "None" + IDS_SHADOW_LV1 "Background" + IDS_SHADOW_LV2 "Background+Player" + IDS_SHADOW_ALL "All" +END + +STRINGTABLE +BEGIN + IDS_LANGUAGE_CZECH "Czech" + IDS_LANGUAGE_DANISH "Danish" + IDS_LANGUAGE_DUTCH "Dutch" + IDS_LANGUAGE_ENGLISH "English" + IDS_LANGUAGE_FRENCH "French" + IDS_LANGUAGE_GERMAN "German" + IDS_LANGUAGE_GREEK "Greek" + IDS_LANGUAGE_HUNGARIAN "Hungarian" + IDS_LANGUAGE_ITALIAN "Italian" + IDS_LANGUAGE_POLISH "Polish" + IDS_LANGUAGE_PORTUGUESE "Portuguese" + IDS_LANGUAGE_ROMANIAN "Romanian" + IDS_LANGUAGE_RUSSIAN "Russian" + IDS_LANGUAGE_SPANISH "Spanish" + IDS_LANGUAGE_TURKISH "Turkish" +END + +#endif // English resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// German (Germany) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDR_MAINFRAME DIALOGEX 0, 0, 286, 167 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION +EXSTYLE WS_EX_APPWINDOW +CAPTION "Einstellungen" +FONT 9, "Arial", 0, 0, 0x1 +BEGIN + DEFPUSHBUTTON "bernehmen",1,84,150,50,14 + PUSHBUTTON "Abbrechen",2,139,150,50,14 + GROUPBOX "Display",IDC_STATIC,7,7,127,66 + LTEXT "Auflsung",IDC_STATIC,15,21,32,8 + COMBOBOX 1001,61,21,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + LTEXT "Frequenz",IDC_STATIC,15,39,33,8 + COMBOBOX 1002,61,36,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + GROUPBOX "Sound",IDC_STATIC,7,77,127,44 + CONTROL "Slider1",1006,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,61,88,68,12 + LTEXT "Musik",IDC_STATIC,13,90,44,8 + CONTROL "Slider1",1007,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,61,104,68,12 + LTEXT "SFX",IDC_STATIC,13,106,45,8 + LTEXT "Gamma",IDC_STATIC,15,55,38,8 + COMBOBOX 1003,61,54,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + LTEXT "Nebel",IDC_STATIC,145,88,51,8 + COMBOBOX IDC_OPTIMIZE_VISIBILITY,204,88,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + GROUPBOX "GFX",IDC_STATIC,139,77,140,66 + GROUPBOX "Window Mode",IDC_STATIC,139,7,140,30 + CONTROL "Fenstermodus",IDC_GRAPHIC_WINDOW_MODE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,145,20,58,10 + CONTROL "Vollbildmodus",IDC_GRAPHIC_FULLSCREEN_MODE,"Button",BS_AUTORADIOBUTTON,204,20,66,10 + LTEXT "TNL",IDC_STATIC,145,106,52,8 + COMBOBOX IDC_OPTIMIZE_TILING,204,106,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + LTEXT "Schatten",IDC_STATIC,145,123,48,8 + COMBOBOX IDC_OPTIMIZE_SHADOW,204,123,59,402,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL + CONTROL "Software-Mauszeiger",1004,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,7,130,103,10 + GROUPBOX "Sprache",IDC_STATIC,139,41,139,33 + COMBOBOX IDC_LANGUAGE_COMBO,144,55,127,90,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDR_MAINFRAME, DIALOG + BEGIN + LEFTMARGIN, 7 + TOPMARGIN, 7 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDR_MAINFRAME AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_NOTIFY "ACHTUNG" + IDS_MAY_SLOW "Das |knnte| das Spiel verlangsamen" + IDS_TILING_CPU "CPU Tiling wird lediglich fr sehr alte PCs empfohlen." + IDS_TILING_GPU "GPU Tiling ist eine gute Entscheidung!" + IDS_FOG_NEAR "Nah" + IDS_FOG_MID "Mittel" + IDS_FOG_FAR "Fern" + IDS_TILE_AUTO "Auto" + IDS_TILE_CPU "CPU" + IDS_TILE_GPU "GPU" + IDS_SHADOW_NONE "Deaktiviert" + IDS_SHADOW_LV1 "Hintergrund" + IDS_SHADOW_LV2 "Hintergrund+Spieler" + IDS_SHADOW_ALL "Alles" +END + +STRINGTABLE +BEGIN + IDS_LANGUAGE_CZECH "Tschechisch" + IDS_LANGUAGE_DANISH "Dnisch" + IDS_LANGUAGE_DUTCH "Niederlndisch" + IDS_LANGUAGE_ENGLISH "Englisch" + IDS_LANGUAGE_FRENCH "Franzsisch" + IDS_LANGUAGE_GERMAN "Deutsch" + IDS_LANGUAGE_GREEK "Griechisch" + IDS_LANGUAGE_HUNGARIAN "Ungarisch" + IDS_LANGUAGE_ITALIAN "Italienisch" + IDS_LANGUAGE_POLISH "Polnisch" + IDS_LANGUAGE_PORTUGUESE "Portugiesisch" + IDS_LANGUAGE_ROMANIAN "Rumnisch" + IDS_LANGUAGE_RUSSIAN "Russisch" + IDS_LANGUAGE_SPANISH "Spanisch" + IDS_LANGUAGE_TURKISH "Trkisch" +END + +#endif // German (Germany) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/src/Config/version_info.rc b/src/Config/version_info.rc new file mode 100644 index 00000000..14016f91 --- /dev/null +++ b/src/Config/version_info.rc @@ -0,0 +1,47 @@ +#include + +// +// The following macros have to be set before including this file: +// METIN2_COMPONENT_TYPE - Type of this PE (i.e. VFT_DLL or VFT_APP) +// METIN2_COMPONENT_DESCRIPTION - Description of this PE +// METIN2_COMPONENT_INTERNALNAME - Internal name of this PE +// METIN2_COMPONENT_FILENAME - Expected filename of this PE +// + +#ifndef DEBUG +#define METIN2_DEBUG 0 +#else +#define METIN2_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 0, 3, 1, 0 +PRODUCTVERSION 0, 3, 1, 0 +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +FILEFLAGS METIN2_DEBUG +FILEOS VOS__WINDOWS32 +FILETYPE METIN2_COMPONENT_TYPE // VFT_DLL +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "The Old Metin2 Project" + VALUE "FileDescription", METIN2_COMPONENT_DESCRIPTION + VALUE "FileVersion", "0.3.1.0" + VALUE "InternalName", METIN2_COMPONENT_INTERNALNAME + VALUE "LegalCopyright", "Copyright (C) 2024" + VALUE "OriginalFilename", METIN2_COMPONENT_FILENAME + VALUE "ProductName", "Metin2Config" + VALUE "ProductVersion", "0.3.1.0" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#undef METIN2_DEBUG diff --git a/src/UserInterface/Locale.cpp b/src/UserInterface/Locale.cpp index 414f546b..aa91dc76 100644 --- a/src/UserInterface/Locale.cpp +++ b/src/UserInterface/Locale.cpp @@ -18,11 +18,10 @@ const char* LSS_GLOBAL = "GLOBAL"; static bool IS_CHEONMA = false; -char MULTI_LOCALE_SERVICE[256] = "YMIR"; -char MULTI_LOCALE_PATH[256] = "locale/ymir"; -char MULTI_LOCALE_NAME[256] = "ymir"; -int MULTI_LOCALE_CODE = 949; -int MULTI_LOCALE_REPORT_PORT = 10000; +char MULTI_LOCALE_SERVICE[256] = "EUROPE"; +char MULTI_LOCALE_PATH[256] = "locale/en"; +char MULTI_LOCALE_NAME[256] = "en"; +int MULTI_LOCALE_CODE = 1252; void LocaleService_LoadConfig(const char* fileName) { @@ -34,13 +33,11 @@ void LocaleService_LoadConfig(const char* fileName) char line[256]; char name[256]; int code; - int id; if (fgets(line, sizeof(line)-1, fp)) { line[sizeof(line)-1] = '\0'; - sscanf(line, "%d %d %s", &id, &code, name); + sscanf(line, "%d %s", &code, name); - MULTI_LOCALE_REPORT_PORT = id; MULTI_LOCALE_CODE = code; strcpy(MULTI_LOCALE_NAME, name); sprintf(MULTI_LOCALE_PATH, "locale/%s", MULTI_LOCALE_NAME); diff --git a/src/UserInterface/UserInterface.rc b/src/UserInterface/UserInterface.rc index 8d6e6623..0c13c245 100644 --- a/src/UserInterface/UserInterface.rc +++ b/src/UserInterface/UserInterface.rc @@ -126,8 +126,8 @@ IDI_METIN2 ICON "metin2.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,3,0,0 - PRODUCTVERSION 0,3,0,0 + FILEVERSION 0,3,1,0 + PRODUCTVERSION 0,3,1,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -144,12 +144,12 @@ BEGIN BEGIN VALUE "CompanyName", "The Old Metin2 Project" VALUE "FileDescription", "The Metin2 Client" - VALUE "FileVersion", "0.3.0.0" + VALUE "FileVersion", "0.3.1.0" VALUE "InternalName", "Metin2Client" VALUE "LegalCopyright", "Copyright (C) 2024" VALUE "OriginalFilename", "Metin2.exe" VALUE "ProductName", "Metin2Client" - VALUE "ProductVersion", "0.3.0.0" + VALUE "ProductVersion", "0.3.1.0" END END BLOCK "VarFileInfo" diff --git a/src/vcpkg.json b/src/vcpkg.json index 377ede68..1a21caa7 100644 --- a/src/vcpkg.json +++ b/src/vcpkg.json @@ -11,6 +11,10 @@ "name": "devil", "version>=": "1.8.0#8" }, + { + "name": "directxsdk", + "version>=": "jun10" + }, { "name": "lzo", "version>=": "2.10#7" @@ -20,8 +24,8 @@ "version>=": "2.7.18#3" }, { - "name": "directxsdk", - "version>=": "jun10" + "name": "wtl", + "version>=": "10.0.10320#2" } ] } \ No newline at end of file From 1ccfffff0738844ee2c8b64dee46b16fb42aea33 Mon Sep 17 00:00:00 2001 From: Exynox Date: Sat, 14 Dec 2024 20:40:34 +0200 Subject: [PATCH 5/5] Removed BOM from MainDialog.cpp --- src/Config/MainDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Config/MainDialog.cpp b/src/Config/MainDialog.cpp index d4c4e227..9e54319f 100644 --- a/src/Config/MainDialog.cpp +++ b/src/Config/MainDialog.cpp @@ -1,4 +1,4 @@ -#include "MainDialog.h" +#include "MainDialog.h" #include