Compare commits

...

23 Commits

Author SHA1 Message Date
0ad2d3b7cc Merge pull request 'Convert source files from EUC-KR to UTF8' (#13) from Tr0n/client:chore/convert-euckr into master
Reviewed-on: metin2/client#13
Reviewed-by: Exynox <exynox@old-metin2.com>
2025-03-22 19:00:33 +02:00
540ba33b0e
translate according to pr review 2025-01-12 18:37:38 +01:00
67c4325b01
lognf instancebase 2025-01-12 18:31:32 +01:00
62916f0622
logbox 2025-01-12 18:29:08 +01:00
2589163a49
translate commented out code and traces 2025-01-12 18:14:49 +01:00
077a365840
use modern fontfaces in GetFontFaceFromCodePage9x 2025-01-01 19:37:28 +01:00
373c184dfe
convert comments in h files to utf8 2024-12-17 22:41:21 +01:00
361a62853d
convert comments in cpp files to utf8 2024-12-17 22:41:21 +01:00
4525e3103d
convert literals to escaped bytes 2024-12-17 22:41:21 +01:00
609862f222 Cleaned up project, added configuration utility
Reviewed-on: metin2/client#12
2024-12-14 20:54:06 +02:00
1ccfffff07 Removed BOM from MainDialog.cpp 2024-12-14 20:40:34 +02:00
a7eac9dedf Added configuration utility, consolidated language config 2024-12-14 20:38:00 +02:00
c4236ba185 Updated build script 2024-12-11 22:46:33 +02:00
0a2248cfac Removed VTune/MFCDebug/MFCRelease references 2024-12-11 22:38:32 +02:00
dea9c0c99f Cleaned up project files 2024-12-11 22:08:23 +02:00
3400b6e356 Fetch updates from master
Reviewed-on: metin2/client#11
2024-12-11 21:58:43 +02:00
d82532f054 Bumped version in resource file to 0.3.0 2024-12-01 08:06:54 +02:00
82a1a28787 Merge updates from the nightly branch
Reviewed-on: metin2/client#8
2024-11-16 19:20:29 +02:00
e685bdd3e3 Added a crude build script, DirectX 9 documentation 2024-11-16 18:51:55 +02:00
d19dc772db Fixed buffer overflow issue in DXTCImage, added nicer error messages. 2024-07-07 21:09:33 +03:00
c698136614 Set the default client language to English 2024-06-01 15:21:03 +03:00
9fac112e35 Added required changes for the Argon2ID system 2024-06-01 15:06:24 +03:00
f46e28d3f2 Removed mobile/SMS from messenger 2024-03-31 10:35:00 +00:00
316 changed files with 3330 additions and 7031 deletions

14
.gitignore vendored
View File

@ -363,16 +363,18 @@ 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/**
!extern/**
# Build directories
build/
dist/

View File

@ -34,274 +34,117 @@ 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
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
{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

View File

@ -9,4 +9,17 @@ while using files from [TMP4's project](https://metin2.dev/topic/27610-40250-ref
Except for some work in order to ensure compatibility with the server, this client is pretty much
unchanged.
## Requirements
### Installing DirectX 9.0c
The client has been updated to DirectX 9. This means that if DirectX 9 is not installed on your computer, you might be met with one of these error messages:
![picture](/doc/img/directx-error-1.png)
![picture](/doc/img/directx-error-2.png)
In this case, simply [download the DirectX End-User Runtimes (June 2010) from Microsoft's website](http://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe) (SHA-1 checksum: `7E5D2E5E1A13FBC47F990CC55CBDB428CD12F759`). This is a self-extracting archive, so simply create a new folder, run the executable and extract its contents to that folder.
In this working folder, find and run `DXSETUP.exe` in order to start the install.
After the installation is complete, your client should run without issue.

5
bin/.gitignore vendored
View File

@ -1,12 +1,17 @@
# Game executable
metin2client.exe
# Configuration executable
config.exe
# User configuration files
channel.inf
locale.cfg
metin2.cfg
BGM/lastplay.inf
# Log files
ErrorLog.txt
log.txt
syserr.txt

Binary file not shown.

Binary file not shown.

View File

@ -1 +0,0 @@
10022 1250 ro

View File

@ -1 +0,0 @@
10019 1250 cz

View File

@ -1 +0,0 @@
10000 1252 de

View File

@ -1 +0,0 @@
10013 1252 dk

View File

@ -1 +0,0 @@
10002 1252 en

View File

@ -1 +0,0 @@
10004 1252 es

View File

@ -1 +0,0 @@
10000 1252 fr

View File

@ -1 +0,0 @@
0 1253 gr

View File

@ -1 +0,0 @@
10021 1250 hu

View File

@ -1 +0,0 @@
10006 1252 it

View File

@ -1 +0,0 @@
10018 1252 nl

View File

@ -1 +0,0 @@
10012 1250 pl

View File

@ -1 +0,0 @@
10010 1252 pt

View File

@ -1 +0,0 @@
10022 1250 ro

View File

@ -1 +0,0 @@
10020 1251 ru

View File

@ -1 +0,0 @@
10012 1254 tr

View File

@ -265,22 +265,17 @@ LEFT_TIME Zb
LOGIN_CONNECT_FAILURE Chyba při spojení se serverem.
LOGIN_CONNECT_SUCCESS Byl jsi připojen na server.
LOGIN_CONNETING Budeš připojen na server...
LOGIN_FAILURE_ALREAY Tvé konto je už připojeno.
LOGIN_FAILURE_BE_SAME_KEY Problém s přihlášením
LOGIN_FAILURE_ALREADY Tvé konto je už pøipojeno.
LOGIN_FAILURE_BLOCK_ID Konto je zablokováno.
LOGIN_FAILURE_BLOCK_LOGIN Prosím, zvolte si některý z jiných serverů!
LOGIN_FAILURE_NOBILL Konto nemá k dispozici žádnou hrací dobu.
LOGIN_FAILURE_NOT_AVAIL Konto není k dispozici.
LOGIN_FAILURE_NOT_EXIST_ID Konto neexistuje nebo je chybné heslo.
LOGIN_FAILURE_REPAIR_ID Právě se znovu zřizují předměty pro toto konto.
LOGIN_FAILURE_SAMELOGIN Někdo se připojil na tvůj účet.
LOGIN_FAILURE_SHUTDOWN Server zatím není přístupný.
LOGIN_FAILURE_TOO_MANY_USER Nemohl jsi navázat spojení, protože právě hraje příliš mnoho hráčů.
LOGIN_FAILURE_UNKNOWN Z neznámých důvodů jsi se nemohl přihlásit.
LOGIN_FAILURE_WEB_BLOCK Byl jsi na webové stránce zablokován. Prosím zkontroluj si e-maily.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Zadal jsi špatné číslo.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Zadal jsi třikrát špatné číslo. Tvoje připojení bude přerušeno.
LOGIN_FAILURE_WRONG_PASSWORD Chybné jméno nebo heslo.
LOGIN_FAILURE_WRONG_CREDENTIALS Chybné jméno nebo heslo.
LOGIN_INPUT_ID Zadej ID.
LOGIN_INPUT_PASSWORD Zadej heslo.
LOGIN_PROCESSING Přihlášení probíhá...

View File

@ -236,21 +236,16 @@ LEFT_TIME Verbl. Zeit
LOGIN_CONNECT_FAILURE Fehler beim Verbinden mit dem Server.
LOGIN_CONNECT_SUCCESS Verbindung zum Server hergestellt.
LOGIN_CONNETING Du wirst mit dem Server verbunden...
LOGIN_FAILURE_ALREAY Dein Konto ist bereits verbunden.
LOGIN_FAILURE_BE_SAME_KEY Anmeldeproblem
LOGIN_FAILURE_ALREADY Dein Konto ist bereits verbunden.
LOGIN_FAILURE_BLOCK_ID Das Konto ist gesperrt.
LOGIN_FAILURE_BLOCK_LOGIN Bitte wähle einen anderen Server!
LOGIN_FAILURE_NOBILL Das Konto verfügt über keine Spielzeit.
LOGIN_FAILURE_NOT_AVAIL Das Konto ist nicht verfügbar.
LOGIN_FAILURE_NOT_EXIST_ID Accountname oder Passwort falsch.
LOGIN_FAILURE_REPAIR_ID Für das Konto werden gerade Gegenstände wiederhergestellt.
LOGIN_FAILURE_SHUTDOWN Der Server ist noch nicht offen.
LOGIN_FAILURE_TOO_MANY_USER Du konntest keine Verbindung herstellen, da es zu viele Spieler gibt.
LOGIN_FAILURE_UNKNOWN Du konntest dich aus unbekannten Gründen nicht anmelden.
LOGIN_FAILURE_WEB_BLOCK Du wurdest auf der Webseite geblockt. Bitte überprüfe deine E-Mails.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Du hast eine falsche Nr. eingegeben.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Du hast dreimal eine falsche Nr. eingegeben. Deine Verbindung wird beendet.
LOGIN_FAILURE_WRONG_PASSWORD Accountname oder Passwort falsch.
LOGIN_FAILURE_WRONG_CREDENTIALS Accountname oder Passwort falsch.
LOGIN_INPUT_ID Gib die ID ein.
LOGIN_INPUT_PASSWORD Gib das Kennwort ein.
LOGIN_PROCESSING Anmeldevorgang läuft...

View File

@ -265,22 +265,17 @@ LEFT_TIME Resterende tid
LOGIN_CONNECT_FAILURE En fejl opstod ved forbindelsen til serveren.
LOGIN_CONNECT_SUCCESS Du er forbundet til serveren.
LOGIN_CONNETING Forbinder til Serveren...
LOGIN_FAILURE_ALREAY Din account er allerede forbundet.
LOGIN_FAILURE_BE_SAME_KEY Registrerings problem.
LOGIN_FAILURE_ALREADY Din account er allerede forbundet.
LOGIN_FAILURE_BLOCK_ID Din account er spærret.
LOGIN_FAILURE_BLOCK_LOGIN Vælg venligst en anden servere.
LOGIN_FAILURE_NOBILL Denne konto har ingen spilletid tilovers.
LOGIN_FAILURE_NOT_AVAIL Denne konto er ikke tilgængeligt.
LOGIN_FAILURE_NOT_EXIST_ID Forkert brugernavn eller password.
LOGIN_FAILURE_REPAIR_ID For denne konto bliver der gendannet nogle genstande.
LOGIN_FAILURE_SAMELOGIN En person har forbundet sig til din konto.
LOGIN_FAILURE_SHUTDOWN Denne server er ikke åben.
LOGIN_FAILURE_TOO_MANY_USER Du kan ikke få forbindelse med serveren, da der er for mange spillere online.
LOGIN_FAILURE_UNKNOWN Du kunne ikke logge på. Årsagen er ukendt.
LOGIN_FAILURE_WEB_BLOCK Du blev blokeret på websiden. Tjek venligst din e-mail.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Du har indtastet et forkert nr.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Du har 3 gange i træk indtastet et forkert nr. - din forbindelse blev afbrudt.
LOGIN_FAILURE_WRONG_PASSWORD Forkert brugernavn eller password.
LOGIN_FAILURE_WRONG_CREDENTIALS Forkert brugernavn eller password.
LOGIN_INPUT_ID Angiv ID.
LOGIN_INPUT_PASSWORD Angiv kodeordet.
LOGIN_PROCESSING Registreringen med serveren er i gang...

View File

@ -236,21 +236,16 @@ LEFT_TIME Time Remaining
LOGIN_CONNECT_FAILURE Error while connecting to the server.
LOGIN_CONNECT_SUCCESS You have been connected to the server.
LOGIN_CONNETING You will be connected to the server...
LOGIN_FAILURE_ALREAY Your account is already connected.
LOGIN_FAILURE_BE_SAME_KEY Registration problem.
LOGIN_FAILURE_ALREADY Your account is already connected.
LOGIN_FAILURE_BLOCK_ID Your account is banned.
LOGIN_FAILURE_BLOCK_LOGIN Please choose one of the other servers!
LOGIN_FAILURE_NOBILL Your account had no play time.
LOGIN_FAILURE_NOT_AVAIL Your account cannot be used.
LOGIN_FAILURE_NOT_EXIST_ID Account name or password incorrect.
LOGIN_FAILURE_REPAIR_ID Items have been restored for this account.
LOGIN_FAILURE_SHUTDOWN The server is not open yet.
LOGIN_FAILURE_TOO_MANY_USER You could not connect because too many players are online.
LOGIN_FAILURE_UNKNOWN You could not register for unknown reasons.
LOGIN_FAILURE_WEB_BLOCK You have been blocked at the website. Please check your EMails.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER You entered a wrong number.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE You entered a wrong number three times. /n Your connection will be disabled.
LOGIN_FAILURE_WRONG_PASSWORD Account name or password incorrect.
LOGIN_FAILURE_WRONG_CREDENTIALS Account name or password incorrect.
LOGIN_INPUT_ID Enter the ID.
LOGIN_INPUT_PASSWORD Enter the password.
LOGIN_PROCESSING Logging in...

View File

@ -265,22 +265,17 @@ LEFT_TIME Tiempo restante
LOGIN_CONNECT_FAILURE Error al conectar al servidor.
LOGIN_CONNECT_SUCCESS Has sido conectado al servidor.
LOGIN_CONNETING Estás siendo conectado al servidor...
LOGIN_FAILURE_ALREAY Tu cuenta ya está conectada.
LOGIN_FAILURE_BE_SAME_KEY Problema de registro.
LOGIN_FAILURE_ALREADY Tu cuenta ya está conectada.
LOGIN_FAILURE_BLOCK_ID Tu cuenta está baneada.
LOGIN_FAILURE_BLOCK_LOGIN ¡Por favor, elige uno de los otros servidores!
LOGIN_FAILURE_NOBILL Tu cuenta no tiene horas de juego.
LOGIN_FAILURE_NOT_AVAIL Tu cuenta no puede ser usada.
LOGIN_FAILURE_NOT_EXIST_ID Nombre de cuenta o contraseńa incorrectos.
LOGIN_FAILURE_REPAIR_ID Han sido restablecidos objetos para esta cuenta.
LOGIN_FAILURE_SAMELOGIN Alguien se ha conectado con tu cuenta.
LOGIN_FAILURE_SHUTDOWN Este servidor aún no está abierto.
LOGIN_FAILURE_TOO_MANY_USER No puedes conectar porque hay demasiados jugadores conectados.
LOGIN_FAILURE_UNKNOWN No te puedes registrar por razones desconocidas.
LOGIN_FAILURE_WEB_BLOCK Has sido bloqueado del sitio web. Por favor comprueba tus EMails.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Has introducido un número incorrecto.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Has introducido un número incorrecto tres veces. /n Tu conexión será deshabilitada.
LOGIN_FAILURE_WRONG_PASSWORD Nombre de cuenta o contraseńa incorrectos
LOGIN_FAILURE_WRONG_CREDENTIALS Nombre de cuenta o contraseńa incorrectos
LOGIN_INPUT_ID Introduce el ID.
LOGIN_INPUT_PASSWORD Introduce la contraseña.
LOGIN_PROCESSING Registro en curso...

View File

@ -236,21 +236,16 @@ LEFT_TIME Temps restant
LOGIN_CONNECT_FAILURE Erreur lors de la connection au serveur
LOGIN_CONNECT_SUCCESS Connexion au serveur en cours.
LOGIN_CONNETING Connexion au serveur en cours.
LOGIN_FAILURE_ALREAY Votre compte est déjà connecté.
LOGIN_FAILURE_BE_SAME_KEY Problème
LOGIN_FAILURE_ALREADY Votre compte est déjà connecté.
LOGIN_FAILURE_BLOCK_ID Votre compte est banni
LOGIN_FAILURE_BLOCK_LOGIN Veuillez choisir un autre serveur !
LOGIN_FAILURE_NOBILL Votre compte n'a pas de temps de jeu.
LOGIN_FAILURE_NOT_AVAIL Votre compte ne peut pas être utilisé.
LOGIN_FAILURE_NOT_EXIST_ID Compte ou mot de passe incorrect
LOGIN_FAILURE_REPAIR_ID Sur ce compte, les objets ont été restaurés
LOGIN_FAILURE_SHUTDOWN Le serveur n'est pour le moment pas ouvert
LOGIN_FAILURE_TOO_MANY_USER Vous ne pouvez pas vous connecter car trop de joueurs sont actuellement en ligne.
LOGIN_FAILURE_UNKNOWN Vous ne pouvez pas vous enregistrer vous des raisons inconnues.
LOGIN_FAILURE_WEB_BLOCK Vous avez été bloqué sur ce site. Veuillez consulter vos mails.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Vous avez entré un mauvais numéro.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Vous avez entré un mauvais numéro trois fois. La connexion va être perdue.
LOGIN_FAILURE_WRONG_PASSWORD Compte ou mot de passe incorrect
LOGIN_FAILURE_WRONG_CREDENTIALS Compte ou mot de passe incorrect
LOGIN_INPUT_ID Entrez le nom du compte
LOGIN_INPUT_PASSWORD Entrez le mot de passe
LOGIN_PROCESSING Connexion au compte en cours

View File

@ -265,22 +265,17 @@ LEFT_TIME
LOGIN_CONNECT_FAILURE Σφάλμα κατά τη σύνδεση.
LOGIN_CONNECT_SUCCESS Συνδέθηκες με τον σέρβερ.
LOGIN_CONNETING Σύνδεση με σέρβερ...
LOGIN_FAILURE_ALREAY Ï ëïãáñéáóìüò åßíáé Þäç óõíäåäåìÝíïò.
LOGIN_FAILURE_BE_SAME_KEY Ðñüâëçìá åããñáöÞò.
LOGIN_FAILURE_ALREADY Ï ëïãáñéáóìüò åßíáé Þäç óõíäåäåìÝíïò.
LOGIN_FAILURE_BLOCK_ID Ο λογαριασμός σου είναι τιμωρημένος.
LOGIN_FAILURE_BLOCK_LOGIN Παρακαλώ διαλέξτε έναν άλλο σέρβερ.
LOGIN_FAILURE_NOBILL Ï ëïãáñéáóìüò óïõ äåí åß÷å ÷ñüíï ðáé÷íéäéïý.
LOGIN_FAILURE_NOT_AVAIL Ο λογαριασμός σου δε μπορεί να χρησιμοποιηθεί.
LOGIN_FAILURE_NOT_EXIST_ID ËÜèïò ëïãáñéáóìüò Þ êùäéêüò.
LOGIN_FAILURE_REPAIR_ID Αποκαταστάθηκαν αντικείμενα για αυτόν το λογαριασμό.
LOGIN_FAILURE_SAMELOGIN Κάποιος συνδέθηκε με τον λογαριασμό σου.
LOGIN_FAILURE_SHUTDOWN Ο server δεν έχει ανοίξει ακόμη.
LOGIN_FAILURE_TOO_MANY_USER Δε μπορείς να συνδεθείς γιατί είναι πάρα πολλοί παίκτες συνδεδεμένοι.
LOGIN_FAILURE_UNKNOWN Δε μπόρεσες να εγγραφείς για άγνωστη αιτία.
LOGIN_FAILURE_WEB_BLOCK Έχετε αποκελιστεί από την Ιστοσελίδα. Παρακαλώ δείτε τα E-mail σας
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER ÅéóÞãáãåò ëÜèïò áñéèìü.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE ÅéóÞãáãåò ëÜèïò áñéèìü ôñåéò öïñÝò. /n Ç óýíäåóÞ óïõ èá ôåèåß åêôüò ëåéôïõñãßáò.
LOGIN_FAILURE_WRONG_PASSWORD ËÜèïò ëïãáñéáóìüò Þ êùäéêüò.
LOGIN_FAILURE_WRONG_CREDENTIALS ËÜèïò ëïãáñéáóìüò Þ êùäéêüò.
LOGIN_INPUT_ID Εισήγαγε την ID.
LOGIN_INPUT_PASSWORD Εισήγαγε το συνθηματικό.
LOGIN_PROCESSING Γίνεται εγγραφή...

View File

@ -236,21 +236,16 @@ LEFT_TIME Marad
LOGIN_CONNECT_FAILURE Hiba a szerver kapcsolatban.
LOGIN_CONNECT_SUCCESS A szerver kapcsolat létrejött.
LOGIN_CONNETING Kapcsolódás a szerverhez...
LOGIN_FAILURE_ALREAY A számlád már csatlakoztatva van.
LOGIN_FAILURE_BE_SAME_KEY Bejelentkezési probléma
LOGIN_FAILURE_ALREADY A számlád már csatlakoztatva van.
LOGIN_FAILURE_BLOCK_ID Az előfizetői számla le van tiltva.
LOGIN_FAILURE_BLOCK_LOGIN Kérlek válassz egyet a többi szerver közül!
LOGIN_FAILURE_NOBILL Elõfizetõi számládnak nincs már játékideje
LOGIN_FAILURE_NOT_AVAIL Az előfizetői számla nem elérhető.
LOGIN_FAILURE_NOT_EXIST_ID Hibás Felhasználónév vagy Jelszó.
LOGIN_FAILURE_REPAIR_ID Az előfizetői számlára éppen tárgyak helyreállítása van folyamatban.
LOGIN_FAILURE_SHUTDOWN A szerver még nem nyílt meg.
LOGIN_FAILURE_TOO_MANY_USER Nem csatlakozhatsz, mert túl sokan játszanak.
LOGIN_FAILURE_UNKNOWN Ismeretlen okból nem tudsz bejelentkezni.
LOGIN_FAILURE_WEB_BLOCK Le lettél tiltva a web oldalon. Ellenőrizd leveleidet.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Rossz számot adtál meg.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Háromszor adtál meg helytelen számot. A kapcsolat lezáródik.
LOGIN_FAILURE_WRONG_PASSWORD Hibás Felhasználónév vagy Jelszó.
LOGIN_FAILURE_WRONG_CREDENTIALS Hibás Felhasználónév vagy Jelszó.
LOGIN_INPUT_ID Add meg az ID-t.
LOGIN_INPUT_PASSWORD Add meg a jelszót.
LOGIN_PROCESSING Bejelentkezés folyamatban...

View File

@ -265,22 +265,17 @@ LEFT_TIME Tempo rimanente
LOGIN_CONNECT_FAILURE Errore di collegamento con il server.
LOGIN_CONNECT_SUCCESS Sei stato collegato al server.
LOGIN_CONNETING Stai per essere collegato al server.
LOGIN_FAILURE_ALREAY Il tuo account è già collegato.
LOGIN_FAILURE_BE_SAME_KEY Problema d'iscrizione
LOGIN_FAILURE_ALREADY Il tuo account è già collegato.
LOGIN_FAILURE_BLOCK_ID Il tuo account è bloccato.
LOGIN_FAILURE_BLOCK_LOGIN Sei pregato di scegliere un altro server!
LOGIN_FAILURE_NOBILL Il tuo account non ha tempo di gioco.
LOGIN_FAILURE_NOT_AVAIL L'account non è disponibile.
LOGIN_FAILURE_NOT_EXIST_ID Nome account o password errati.
LOGIN_FAILURE_REPAIR_ID Vengono rigenerati oggetti per l'account.
LOGIN_FAILURE_SAMELOGIN Qualcuno si è collegato al tuo account.
LOGIN_FAILURE_SHUTDOWN Il server non è ancora aperto.
LOGIN_FAILURE_TOO_MANY_USER Non sei riuscito a connetterti perchè ci sono troppi giocatori
LOGIN_FAILURE_UNKNOWN Non sei riuscito a connetterti per ragioni sconosciute.
LOGIN_FAILURE_WEB_BLOCK È stato bloccato sulla pagina web. Per favore controlli la sua e-mail
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Hai inserito un numero sbagliato.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Hai inserito per tre volte un numero sbagliato. La connessione è stata conclusa.
LOGIN_FAILURE_WRONG_PASSWORD Nome account o password errati.
LOGIN_FAILURE_WRONG_CREDENTIALS Nome account o password errati.
LOGIN_INPUT_ID Inserisci l'ID.
LOGIN_INPUT_PASSWORD Inserisci la password.
LOGIN_PROCESSING È in corso il login.

View File

@ -265,22 +265,17 @@ LEFT_TIME Overgebleven Tijd
LOGIN_CONNECT_FAILURE Fout bij de server verbinding.
LOGIN_CONNECT_SUCCESS Je bent verbonden met de server
LOGIN_CONNETING Je wordt verbonden met de server...
LOGIN_FAILURE_ALREAY Je account is al verbonden.
LOGIN_FAILURE_BE_SAME_KEY Registratie probleem.
LOGIN_FAILURE_ALREADY Je account is al verbonden.
LOGIN_FAILURE_BLOCK_ID Je account is geband.
LOGIN_FAILURE_BLOCK_LOGIN kies een van de andere servers!
LOGIN_FAILURE_NOBILL Je account heeft geen speeltijd.
LOGIN_FAILURE_NOT_AVAIL Je account kan niet worden gebruikt.
LOGIN_FAILURE_NOT_EXIST_ID Account naam of wachtwoord is incorrect
LOGIN_FAILURE_REPAIR_ID Voorwerpen zijn hersteld voor dit account.
LOGIN_FAILURE_SAMELOGIN Iemand heeft zich met jouw account verbonden.
LOGIN_FAILURE_SHUTDOWN De server is nog niet open.
LOGIN_FAILURE_TOO_MANY_USER Je kan niet verbonden worden want er zijn teveel spelers online.
LOGIN_FAILURE_UNKNOWN Je kon niet registreren voor onbekende redenen.
LOGIN_FAILURE_WEB_BLOCK Je bent geblokkerd bij de website. Controleer je e-mails alstublieft.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Je hebt een verkeerd nummer ingevoerd.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Je hebt drie keer een verkeerd nummer ingevoerd. /n Je verbinding wordt verbroken.
LOGIN_FAILURE_WRONG_PASSWORD Account naam of wachtwoord is incorrect.
LOGIN_FAILURE_WRONG_CREDENTIALS Account naam of wachtwoord is incorrect.
LOGIN_INPUT_ID Voer ID in.
LOGIN_INPUT_PASSWORD Voer wachtwoord in.
LOGIN_PROCESSING Login proces is gestart.

View File

@ -265,22 +265,17 @@ LEFT_TIME Pozosta
LOGIN_CONNECT_FAILURE Błąd podczas łączenia się z serwerem.
LOGIN_CONNECT_SUCCESS Zostałeś połączony z serwerem.
LOGIN_CONNETING Zostaniesz połączony z serwerem...
LOGIN_FAILURE_ALREAY Twoje konto jest już połączone.
LOGIN_FAILURE_BE_SAME_KEY Problem z rejestracją.
LOGIN_FAILURE_ALREADY Twoje konto jest ju¿ po³¹czone.
LOGIN_FAILURE_BLOCK_ID Twoje konto jest zablokowane.
LOGIN_FAILURE_BLOCK_LOGIN Serwer Zamknięty - proszę wybrać inny!
LOGIN_FAILURE_NOBILL Twoje konto nie ma czasu gry.
LOGIN_FAILURE_NOT_AVAIL Twoje konto nie może być użyte.
LOGIN_FAILURE_NOT_EXIST_ID Nieprawidłowa nazwa konta lub hasło.
LOGIN_FAILURE_REPAIR_ID Przedmioty zostały przywrócone dla tego konta.
LOGIN_FAILURE_SAMELOGIN Ktoś połączył się z Twoim kontem.
LOGIN_FAILURE_SHUTDOWN Serwer nie jest jeszcze otwarty.
LOGIN_FAILURE_TOO_MANY_USER Nie możesz się połączyć, ponieważ za dużo graczy jest online.
LOGIN_FAILURE_UNKNOWN Nie możesz się zarejestrować z nieznanych powodów.
LOGIN_FAILURE_WEB_BLOCK Twoje konto zostało zablokowane na stronie www. Proszę sprawdzić swoją pocztę e-mail.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Wpisałeś nieprawidłowy numer.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Wybrałeś zły numer trzy razy. /n Twoje połączenie zostanie zerwane.
LOGIN_FAILURE_WRONG_PASSWORD Nieprawidłowa nazwa konta lub hasło.
LOGIN_FAILURE_WRONG_CREDENTIALS Nieprawid³owa nazwa konta lub has³o.
LOGIN_INPUT_ID Podaj swoje ID.
LOGIN_INPUT_PASSWORD Wpisz swoje hasło.
LOGIN_PROCESSING Logowanie...

View File

@ -265,22 +265,17 @@ LEFT_TIME Tempo Restante
LOGIN_CONNECT_FAILURE Ocorreu um erro enquanto te ligavas ao Servidor.
LOGIN_CONNECT_SUCCESS Estás ligado ao Servidor.
LOGIN_CONNETING Vais ser ligado ao Servidor...
LOGIN_FAILURE_ALREAY A tua conta já está ligada.
LOGIN_FAILURE_BE_SAME_KEY Problema de registo.
LOGIN_FAILURE_ALREADY A tua conta já está ligada.
LOGIN_FAILURE_BLOCK_ID A tua conta está bloqueada.
LOGIN_FAILURE_BLOCK_LOGIN Por favor escolhe um dos outros Servidores!
LOGIN_FAILURE_NOBILL A tua conta não tinha tempo de jogo.
LOGIN_FAILURE_NOT_AVAIL A tua conta não pode ser usada.
LOGIN_FAILURE_NOT_EXIST_ID O nome da conta ou a palavra-passe está/ão incorrecta(s).
LOGIN_FAILURE_REPAIR_ID Foram restaurados Itens a esta conta.
LOGIN_FAILURE_SAMELOGIN Alguém se ligou à tua conta.
LOGIN_FAILURE_SHUTDOWN O Servidor ainda não está aberto.
LOGIN_FAILURE_TOO_MANY_USER Não te podes ligar ao Servidor porque estão muitos jogadores ligados.
LOGIN_FAILURE_UNKNOWN Não te foi possível registar por razões desconhecidas.
LOGIN_FAILURE_WEB_BLOCK Foste bloqueado no site, por favor verifica os teus E-mails.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Inseriste um número errado.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Inseriste um número errado três vezes. /n A tua ligação vai ser anulada.
LOGIN_FAILURE_WRONG_PASSWORD O nome da conta ou a palavra-passe está/ão incorrecta(s).
LOGIN_FAILURE_WRONG_CREDENTIALS O nome da conta ou a palavra-passe está/ão incorrecta(s).
LOGIN_INPUT_ID Insere o ID.
LOGIN_INPUT_PASSWORD Insere a palavra-passe.
LOGIN_PROCESSING Processo de Login em progresso...

View File

@ -265,22 +265,17 @@ LEFT_TIME Timp r
LOGIN_CONNECT_FAILURE Eroare la conectarea la server.
LOGIN_CONNECT_SUCCESS Ai fost conectat la server.
LOGIN_CONNETING Vei fi conectat la server...
LOGIN_FAILURE_ALREAY Contul tău este deja conectat.
LOGIN_FAILURE_BE_SAME_KEY Problemă la login
LOGIN_FAILURE_ALREADY Contul tău este deja conectat.
LOGIN_FAILURE_BLOCK_ID Contul este blocat.
LOGIN_FAILURE_BLOCK_LOGIN Alege alt server!
LOGIN_FAILURE_NOBILL Contul nu deţine timp de joc.
LOGIN_FAILURE_NOT_AVAIL Contul este inaccesibil.
LOGIN_FAILURE_NOT_EXIST_ID Nume contului sau parola sunt greşite.
LOGIN_FAILURE_REPAIR_ID Pentru acest cont sunt refăcute obiectele.
LOGIN_FAILURE_SAMELOGIN Cineva s-a conectat la contul tau.
LOGIN_FAILURE_SHUTDOWN Serverul nu este încă deschis.
LOGIN_FAILURE_TOO_MANY_USER Conectarea nu s-a realizat pentru ca există prea mulţi jucători.
LOGIN_FAILURE_UNKNOWN Login a eşuat din motive necunoscute.
LOGIN_FAILURE_WEB_BLOCK Ai fost blocat pe website. Verifică-ţi mailurile.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Ai introdus un număr greşit.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Ai introdus de 3 ori un număr greşit. Conectarea va fi închisă.
LOGIN_FAILURE_WRONG_PASSWORD Nume sau parola greşită.
LOGIN_FAILURE_WRONG_CREDENTIALS Nume sau parola greşită.
LOGIN_INPUT_ID Introdu ID-ul.
LOGIN_INPUT_PASSWORD Introdu parola.
LOGIN_PROCESSING Conectarea rulează ...

View File

@ -265,22 +265,17 @@ LEFT_TIME
LOGIN_CONNECT_FAILURE Ошибка при соединении с сервером.
LOGIN_CONNECT_SUCCESS Вы соединены с сервером.
LOGIN_CONNETING Происходит соединение с сервером...
LOGIN_FAILURE_ALREAY Ваша учётная запись уже соединена.
LOGIN_FAILURE_BE_SAME_KEY Проблема с регистрацией
LOGIN_FAILURE_ALREADY Ваша учётная запись уже соединена.
LOGIN_FAILURE_BLOCK_ID Учетная запись заблокирована.
LOGIN_FAILURE_BLOCK_LOGIN Выберите другой сервер!
LOGIN_FAILURE_NOBILL В вашей учётной записи нет игрового времени.
LOGIN_FAILURE_NOT_AVAIL Учётная запись недоступна.
LOGIN_FAILURE_NOT_EXIST_ID Неверное имя или пароль.
LOGIN_FAILURE_REPAIR_ID Предметы для данного учётной записи сейчас восстанавливаются.
LOGIN_FAILURE_SAMELOGIN Кто-то зашел на ваш аккаунт.
LOGIN_FAILURE_SHUTDOWN Сервер пока ещё закрыт.
LOGIN_FAILURE_TOO_MANY_USER В соединении отказано. Сервер переполнен.
LOGIN_FAILURE_UNKNOWN Регистрация не состоялась по неизвестным причинам.
LOGIN_FAILURE_WEB_BLOCK Вас заблокировали на сайте. Пожалуйста проверьте свой Email.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Введён неверный номер.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE Неверный номер введён трижды. Связь будет прервана.
LOGIN_FAILURE_WRONG_PASSWORD Неправильное имя или пароль.
LOGIN_FAILURE_WRONG_CREDENTIALS Неправильное имя или пароль.
LOGIN_INPUT_ID Введите номер идентификации.
LOGIN_INPUT_PASSWORD Введите пароль.
LOGIN_PROCESSING Происходит регистрация...

View File

@ -265,22 +265,17 @@ LEFT_TIME Kalan S
LOGIN_CONNECT_FAILURE Sunucuya bağlanırken hata
LOGIN_CONNECT_SUCCESS Sunucuya bağlandın.
LOGIN_CONNETING Sunucuya bağlanıyorsun...
LOGIN_FAILURE_ALREAY Hesap zaten bağlı.
LOGIN_FAILURE_BE_SAME_KEY Kayıt problemi
LOGIN_FAILURE_ALREADY Hesap zaten baðlý.
LOGIN_FAILURE_BLOCK_ID Hesabınız engellendi!
LOGIN_FAILURE_BLOCK_LOGIN Lütfen başka server seç!
LOGIN_FAILURE_NOBILL Hesabınızın oyun süresi yok.
LOGIN_FAILURE_NOT_AVAIL Hesabınız kullanılamaz.
LOGIN_FAILURE_NOT_EXIST_ID Hesap ismi veya şifre yanlış.
LOGIN_FAILURE_REPAIR_ID Bu hesap için, nesneler yüklendi.
LOGIN_FAILURE_SAMELOGIN Biri senin hesabınla giriş yaptı.
LOGIN_FAILURE_SHUTDOWN Sunucu henüz açılmadı.
LOGIN_FAILURE_TOO_MANY_USER Çok fazla kullanıcı bağlı olduğu için bağlanamazsınız.
LOGIN_FAILURE_UNKNOWN Bilinmeyen bir nedenle kaydolamadınız.
LOGIN_FAILURE_WEB_BLOCK Web sitesine erişiminiz engellendi. Lütfen E-Postanızı kontrol ediniz.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER Yanlış numara girdiniz.
LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE 3 kere yanlış numara girdiniz. Bağlantınız kesildi.
LOGIN_FAILURE_WRONG_PASSWORD Hesap ismi veya şifre yanlış.
LOGIN_FAILURE_WRONG_CREDENTIALS Hesap ismi veya þifre yanlýþ.
LOGIN_INPUT_ID ID nizi yazın.
LOGIN_INPUT_PASSWORD Şifreyi gir.
LOGIN_PROCESSING Giriş işlemi yapılıyor...

View File

@ -683,13 +683,6 @@ class GameWindow(ui.ScriptWindow):
def RefreshGuildGradePage(self):
self.interface.RefreshGuildGradePage()
def RefreshMobile(self):
if self.interface:
self.interface.RefreshMobile()
def OnMobileAuthority(self):
self.interface.OnMobileAuthority()
def OnBlockMode(self, mode):
self.interface.OnBlockMode(mode)

View File

@ -610,12 +610,6 @@ class Interface(object):
self.wndMessenger.ClearGuildMember()
self.wndGuild.DeleteGuild()
def RefreshMobile(self):
self.dlgSystem.RefreshMobile()
def OnMobileAuthority(self):
self.dlgSystem.OnMobileAuthority()
def OnBlockMode(self, mode):
self.dlgSystem.OnBlockMode(mode)

View File

@ -203,27 +203,19 @@ class LoginWindow(ui.ScriptWindow):
self.loginFailureMsgDict={
#"DEFAULT" : localeInfo.LOGIN_FAILURE_UNKNOWN,
"ALREADY" : localeInfo.LOGIN_FAILURE_ALREAY,
"NOID" : localeInfo.LOGIN_FAILURE_NOT_EXIST_ID,
"WRONGPWD" : localeInfo.LOGIN_FAILURE_WRONG_PASSWORD,
"ALREADY" : localeInfo.LOGIN_FAILURE_ALREADY,
"WRONGCRD" : localeInfo.LOGIN_FAILURE_WRONG_CREDENTIALS,
"FULL" : localeInfo.LOGIN_FAILURE_TOO_MANY_USER,
"SHUTDOWN" : localeInfo.LOGIN_FAILURE_SHUTDOWN,
"REPAIR" : localeInfo.LOGIN_FAILURE_REPAIR_ID,
"BLOCK" : localeInfo.LOGIN_FAILURE_BLOCK_ID,
"WRONGMAT" : localeInfo.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER,
"QUIT" : localeInfo.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE,
"BESAMEKEY" : localeInfo.LOGIN_FAILURE_BE_SAME_KEY,
"NOTAVAIL" : localeInfo.LOGIN_FAILURE_NOT_AVAIL,
"NOBILL" : localeInfo.LOGIN_FAILURE_NOBILL,
"BLKLOGIN" : localeInfo.LOGIN_FAILURE_BLOCK_LOGIN,
"WEBBLK" : localeInfo.LOGIN_FAILURE_WEB_BLOCK,
"BADSCLID" : localeInfo.LOGIN_FAILURE_WRONG_SOCIALID,
"AGELIMIT" : localeInfo.LOGIN_FAILURE_SHUTDOWN_TIME,
}
self.loginFailureFuncDict = {
"WRONGPWD" : self.__DisconnectAndInputPassword,
"WRONGMAT" : self.__DisconnectAndInputMatrix,
"WRONGCRD" : self.__DisconnectAndInputPassword,
"QUIT" : app.Exit,
}
@ -238,9 +230,7 @@ class LoginWindow(ui.ScriptWindow):
if app.loggined:
self.loginFailureFuncDict = {
"WRONGPWD" : app.Exit,
"WRONGMAT" : app.Exit,
"QUIT" : app.Exit,
"WRONGCRD" : app.Exit,
}
if musicInfo.loginMusic != "":
@ -491,20 +481,6 @@ class LoginWindow(ui.ScriptWindow):
self.SetPasswordEditLineFocus()
net.Disconnect()
def __DisconnectAndInputMatrix(self):
if self.connectingDialog:
self.connectingDialog.Close()
self.connectingDialog = None
self.stream.popupWindow.Close()
self.matrixInputChanceCount -= 1
if self.matrixInputChanceCount <= 0:
self.__OnCloseInputDialog()
elif self.inputDialog:
self.inputDialog.Show()
def __LoadScript(self, fileName):
import dbg
try:
@ -985,7 +961,6 @@ class LoginWindow(ui.ScriptWindow):
def OnExit(self):
self.stream.popupWindow.Close()
self.stream.popupWindow.Open(localeInfo.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE, app.Exit, localeInfo.UI_OK)
def OnUpdate(self):
ServerStateChecker.Update()

View File

@ -350,7 +350,6 @@ class SelectCharacterWindow(ui.Window):
def SameLoginDisconnect(self):
self.stream.popupWindow.Close()
self.stream.popupWindow.Open(localeInfo.LOGIN_FAILURE_SAMELOGIN, self.ExitSelect, localeInfo.UI_OK)
#self.stream.popupWindow.Open(localeInfo.LOGIN_FAILURE_ALREAY, app.Exit, localeInfo.UI_OK)
def MakeCharacter(self, index, id, name, race, form, hair):
if 0 == id:

View File

@ -46,9 +46,7 @@ __IS_ARABIC = "locale/ae" == app.GetLocalePath()
__IS_CIBN10 = "locale/cibn10" == app.GetLocalePath()
__IS_WE_KOREA = "locale/we_korea" == app.GetLocalePath()
__IS_TAIWAN = "locale/taiwan" == app.GetLocalePath()
__IS_JAPAN = "locale/japan" == app.GetLocalePath()
LOGIN_FAILURE_WRONG_SOCIALID = "ASDF"
LOGIN_FAILURE_SHUTDOWN_TIME = "ASDF"
__IS_JAPAN = "locale/japan" == app.GetLocalePath()
if __IS_CANADA:
__IS_EUROPE = True

View File

@ -14,11 +14,6 @@ import interfaceModule #
blockMode = 0
viewChatMode = 0
MOBILE = False
if localeInfo.IsYMIR():
MOBILE = True
class OptionDialog(ui.ScriptWindow):
@ -87,22 +82,13 @@ class OptionDialog(ui.ScriptWindow):
self.showsalesTextButtonList.append(GetObject("salestext_on_button"))
self.showsalesTextButtonList.append(GetObject("salestext_off_button"))
global MOBILE
if MOBILE:
self.inputMobileButton = GetObject("input_mobile_button")
self.deleteMobileButton = GetObject("delete_mobile_button")
except:
import exception
exception.Abort("OptionDialog.__Load_BindObject")
def __Load(self):
global MOBILE
if MOBILE:
self.__Load_LoadScript("uiscript/gameoptiondialog_formobile.py")
else:
self.__Load_LoadScript("uiscript/gameoptiondialog.py")
self.__Load_LoadScript("uiscript/gameoptiondialog.py")
self.__Load_BindObject()
@ -151,11 +137,6 @@ class OptionDialog(ui.ScriptWindow):
self.__ClickRadioButton(self.viewTargetBoardButtonList, constInfo.GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD())
self.__SetPeacePKMode()
#global MOBILE
if MOBILE:
self.inputMobileButton.SetEvent(ui.__mem_func__(self.__OnChangeMobilePhoneNumber))
self.deleteMobileButton.SetEvent(ui.__mem_func__(self.__OnDeleteMobilePhoneNumber))
def __ClickRadioButton(self, buttonList, buttonIndex):
try:
selButton=buttonList[buttonIndex]
@ -334,67 +315,6 @@ class OptionDialog(ui.ScriptWindow):
def OnChangePKMode(self):
self.__RefreshPVPButtonList()
def __OnChangeMobilePhoneNumber(self):
global MOBILE
if not MOBILE:
return
import uiCommon
inputDialog = uiCommon.InputDialog()
inputDialog.SetTitle(localeInfo.MESSENGER_INPUT_MOBILE_PHONE_NUMBER_TITLE)
inputDialog.SetMaxLength(13)
inputDialog.SetAcceptEvent(ui.__mem_func__(self.OnInputMobilePhoneNumber))
inputDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseInputDialog))
inputDialog.Open()
self.inputDialog = inputDialog
def __OnDeleteMobilePhoneNumber(self):
global MOBILE
if not MOBILE:
return
import uiCommon
questionDialog = uiCommon.QuestionDialog()
questionDialog.SetText(localeInfo.MESSENGER_DO_YOU_DELETE_PHONE_NUMBER)
questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDeleteMobile))
questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
questionDialog.Open()
self.questionDialog = questionDialog
def OnInputMobilePhoneNumber(self):
global MOBILE
if not MOBILE:
return
text = self.inputDialog.GetText()
if not text:
return
text.replace('-', '')
net.SendChatPacket("/mobile " + text)
self.OnCloseInputDialog()
return True
def OnInputMobileAuthorityCode(self):
global MOBILE
if not MOBILE:
return
text = self.inputDialog.GetText()
net.SendChatPacket("/mobile_auth " + text)
self.OnCloseInputDialog()
return True
def OnDeleteMobile(self):
global MOBILE
if not MOBILE:
return
net.SendChatPacket("/mobile")
self.OnCloseQuestionDialog()
return True
def OnCloseInputDialog(self):
self.inputDialog.Close()
self.inputDialog = None
@ -409,34 +329,6 @@ class OptionDialog(ui.ScriptWindow):
self.Close()
return True
def RefreshMobile(self):
global MOBILE
if not MOBILE:
return
if player.HasMobilePhoneNumber():
self.inputMobileButton.Hide()
self.deleteMobileButton.Show()
else:
self.inputMobileButton.Show()
self.deleteMobileButton.Hide()
def OnMobileAuthority(self):
global MOBILE
if not MOBILE:
return
import uiCommon
inputDialog = uiCommon.InputDialogWithDescription()
inputDialog.SetTitle(localeInfo.MESSENGER_INPUT_MOBILE_AUTHORITY_TITLE)
inputDialog.SetDescription(localeInfo.MESSENGER_INPUT_MOBILE_AUTHORITY_DESCRIPTION)
inputDialog.SetAcceptEvent(ui.__mem_func__(self.OnInputMobileAuthorityCode))
inputDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseInputDialog))
inputDialog.SetMaxLength(4)
inputDialog.SetBoardWidth(310)
inputDialog.Open()
self.inputDialog = inputDialog
def RefreshBlock(self):
global blockMode
for i in xrange(len(self.blockButtonList)):
@ -483,7 +375,6 @@ class OptionDialog(ui.ScriptWindow):
self.RefreshBlock()
def Show(self):
self.RefreshMobile()
self.RefreshBlock()
ui.ScriptWindow.Show(self)

View File

@ -71,15 +71,9 @@ class MessengerItem(ui.Window):
def IsOnline(self):
return False
def IsMobile(self):
return False
def OnWhisper(self):
pass
def OnMobileMessage(self):
pass
# Remove
def CanRemove(self):
return False
@ -123,17 +117,16 @@ class MessengerMemberItem(MessengerItem):
STATE_OFFLINE = 0
STATE_ONLINE = 1
STATE_MOBILE = 2
IMAGE_FILE_NAME = { "ONLINE" : "d:/ymir work/ui/game/windows/messenger_list_online.sub",
"OFFLINE" : "d:/ymir work/ui/game/windows/messenger_list_offline.sub",
"MOBILE" : "d:/ymir work/ui/game/windows/messenger_list_mobile.sub", }
IMAGE_FILE_NAME = {
"ONLINE" : "d:/ymir work/ui/game/windows/messenger_list_online.sub",
"OFFLINE" : "d:/ymir work/ui/game/windows/messenger_list_offline.sub",
}
def __init__(self, getParentEvent):
MessengerItem.__init__(self, getParentEvent)
self.key = None
self.state = self.STATE_OFFLINE
self.mobileFlag = False
self.Offline()
def GetStepWidth(self):
@ -151,30 +144,13 @@ class MessengerMemberItem(MessengerItem):
return False
def IsMobile(self):
if self.STATE_MOBILE == self.state:
return True
return False
def Online(self):
self.image.LoadImage(self.IMAGE_FILE_NAME["ONLINE"])
self.state = self.STATE_ONLINE
def Offline(self):
if self.mobileFlag:
self.image.LoadImage(self.IMAGE_FILE_NAME["MOBILE"])
self.state = self.STATE_MOBILE
else:
self.image.LoadImage(self.IMAGE_FILE_NAME["OFFLINE"])
self.state = self.STATE_OFFLINE
def SetMobile(self, flag):
self.mobileFlag = flag
if not self.IsOnline():
self.Offline()
self.image.LoadImage(self.IMAGE_FILE_NAME["OFFLINE"])
self.state = self.STATE_OFFLINE
def CanWhisper(self):
if self.IsOnline():
@ -186,15 +162,6 @@ class MessengerMemberItem(MessengerItem):
if self.IsOnline():
self.getParentEvent().whisperButtonEvent(self.GetName())
def OnMobileMessage(self):
if not uiGameOption.MOBILE:
return
if not self.IsMobile():
return
self.getParentEvent().SendMobileMessage(self.GetName())
def Select(self):
MessengerItem.Select(self)
@ -370,7 +337,6 @@ class MessengerWindow(ui.ScriptWindow):
self.showingPageSize = 0
self.startLine = 0
self.hasMobilePhoneNumber = True
self.isLoaded = 0
@ -396,7 +362,6 @@ class MessengerWindow(ui.ScriptWindow):
self.board = self.GetChild("board")
self.scrollBar = self.GetChild("ScrollBar")
self.whisperButton = self.GetChild("WhisperButton")
self.mobileButton = self.GetChild("MobileButton")
self.removeButton = self.GetChild("RemoveButton")
self.addFriendButton = self.GetChild("AddFriendButton")
self.guildButton = self.GetChild("GuildButton")
@ -407,22 +372,11 @@ class MessengerWindow(ui.ScriptWindow):
self.board.SetCloseEvent(ui.__mem_func__(self.Close))
self.scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScroll))
self.whisperButton.SetEvent(ui.__mem_func__(self.OnPressWhisperButton))
self.mobileButton.SetEvent(ui.__mem_func__(self.OnPressMobileButton))
self.removeButton.SetEvent(ui.__mem_func__(self.OnPressRemoveButton))
self.addFriendButton.SetEvent(ui.__mem_func__(self.OnPressAddFriendButton))
self.guildButton.SetEvent(ui.__mem_func__(self.OnPressGuildButton))
if not uiGameOption.MOBILE: #constInfo.SEND_MOBILE_PHONE_MESSAGE_ENABLE:
self.mobileButton.Hide()
width = self.GetWidth()
height = self.GetHeight()
self.addFriendButton.SetPosition(-60, 30)
self.whisperButton.SetPosition(-20, 30)
self.removeButton.SetPosition(20, 30)
self.guildButton.SetPosition(60, 30)
self.whisperButton.Disable()
self.mobileButton.Disable()
self.removeButton.Disable()
resizeButton = self.ResizeButton()
@ -450,11 +404,9 @@ class MessengerWindow(ui.ScriptWindow):
self.friendNameBoard = None
self.questionDialog = None
self.popupDialog = None
self.inputDialog = None
self.familyGroup = None
self.whisperButton = None
self.mobileButton = None
self.removeButton = None
def OnCloseQuestionDialog(self):
@ -543,84 +495,6 @@ class MessengerWindow(ui.ScriptWindow):
def SetGuildButtonEvent(self, event):
self.guildButtonEvent=event
def SendMobileMessage(self, name):
if not uiGameOption.MOBILE:
return
if not self.hasMobilePhoneNumber:
questionDialog = uiCommon.QuestionDialog2()
questionDialog.SetText1(localeInfo.MESSENGER_INPUT_MOBILE_PHONE_NUMBER_1)
questionDialog.SetText2(localeInfo.MESSENGER_INPUT_MOBILE_PHONE_NUMBER_2)
questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnAcceptInputMobilePhoneNumber))
questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCancelInputMobilePhoneNumber))
questionDialog.SetWidth(400)
questionDialog.Open()
self.questionDialog = questionDialog
return
## Input Sending Mobile Message
inputDialog = uiCommon.InputDialog()
inputDialog.SetTitle(localeInfo.MESSENGER_SEND_MOBILE_MESSAGE_TITLE)
inputDialog.SetMaxLength(50)
inputDialog.SetAcceptEvent(ui.__mem_func__(self.OnInputMobileMessage))
inputDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseInputDialog))
inputDialog.name = name
inputDialog.Open()
self.inputDialog = inputDialog
def OnAcceptInputMobilePhoneNumber(self):
if not uiGameOption.MOBILE:
return
## Input Mobile Phone Number
inputDialog = uiCommon.InputDialog()
inputDialog.SetTitle(localeInfo.MESSENGER_INPUT_MOBILE_PHONE_NUMBER_TITLE)
inputDialog.SetMaxLength(13)
inputDialog.SetAcceptEvent(ui.__mem_func__(self.OnInputMobilePhoneNumber))
inputDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseInputDialog))
inputDialog.Open()
self.inputDialog = inputDialog
self.OnCancelInputMobilePhoneNumber()
def OnCancelInputMobilePhoneNumber(self):
if not uiGameOption.MOBILE:
return
self.questionDialog.Close()
self.questionDialog = None
return True
def OnInputMobilePhoneNumber(self):
if not uiGameOption.MOBILE:
return
text = self.inputDialog.GetText()
if not text:
return
text.replace('-', '')
net.SendChatPacket("/mobile " + text)
self.OnCloseInputDialog()
return True
def OnInputMobileMessage(self):
if not uiGameOption.MOBILE:
return
text = self.inputDialog.GetText()
if not text:
return
net.SendMobileMessagePacket(self.inputDialog.name, text)
self.OnCloseInputDialog()
return True
def OnCloseInputDialog(self):
self.inputDialog.Close()
self.inputDialog = None
return True
def OnPressGuildButton(self):
self.guildButtonEvent()
@ -649,10 +523,6 @@ class MessengerWindow(ui.ScriptWindow):
if self.selectedItem:
self.selectedItem.OnWhisper()
def OnPressMobileButton(self):
if self.selectedItem:
self.selectedItem.OnMobileMessage()
def OnPressRemoveButton(self):
if self.selectedItem:
if self.selectedItem.CanRemove():
@ -702,11 +572,6 @@ class MessengerWindow(ui.ScriptWindow):
else:
self.whisperButton.Disable()
if self.selectedItem.IsMobile():
self.mobileButton.Enable()
else:
self.mobileButton.Disable()
if self.selectedItem.CanRemove():
self.removeButton.Enable()
else:
@ -720,9 +585,6 @@ class MessengerWindow(ui.ScriptWindow):
if self.selectedItem.IsOnline():
self.OnPressWhisperButton()
elif self.selectedItem.IsMobile():
self.OnPressMobileButton()
def GetSelf(self):
return self
@ -796,14 +658,6 @@ class MessengerWindow(ui.ScriptWindow):
member.Offline()
self.OnRefreshList()
def OnMobile(self, groupIndex, key, mobileFlag):
group = self.groupList[groupIndex]
member = group.FindMember(key)
if not member:
return
member.SetMobile(mobileFlag)
self.OnRefreshList()
def OnAddLover(self, name, lovePoint):
if not self.familyGroup:
self.__AddFamilyGroup()

View File

@ -9,11 +9,6 @@ import constInfo
import chrmgr
import player
MOBILE = False
if localeInfo.IsYMIR():
MOBILE = True
blockMode = 0
class OptionDialog(ui.ScriptWindow):
@ -45,15 +40,9 @@ class OptionDialog(ui.ScriptWindow):
print " -------------------------------------- DESTROY OPTION DIALOG"
def __LoadDialog(self):
global NO_MOBILE
try:
pyScriptLoader = ui.PythonScriptLoader()
if MOBILE:
pyScriptLoader.LoadScriptFile(self, "uiscript/optiondialog_formobile.py")
else:
pyScriptLoader.LoadScriptFile(self, "uiscript/optiondialog.py")
pyScriptLoader.LoadScriptFile(self, "uiscript/optiondialog.py")
except:
import exception
@ -82,10 +71,6 @@ class OptionDialog(ui.ScriptWindow):
self.blockButtonList.append(GetObject("block_guild_button"))
self.blockButtonList.append(GetObject("block_whisper_button"))
self.blockButtonList.append(GetObject("block_friend_button"))
if MOBILE:
self.inputMobileButton = GetObject("input_mobile_button")
self.deleteMobileButton = GetObject("delete_mobile_button")
except:
import exception
@ -134,10 +119,6 @@ class OptionDialog(ui.ScriptWindow):
self.__ClickRadioButton(self.viewTargetBoardButtonList, constInfo.GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD())
self.__SetPeacePKMode()
if MOBILE:
self.inputMobileButton.SetEvent(ui.__mem_func__(self.__OnChangeMobilePhoneNumber))
self.deleteMobileButton.SetEvent(ui.__mem_func__(self.__OnDeleteMobilePhoneNumber))
def __ClickRadioButton(self, buttonList, buttonIndex):
try:
selButton=buttonList[buttonIndex]
@ -294,53 +275,6 @@ class OptionDialog(ui.ScriptWindow):
snd.SetSoundVolumef(pos)
systemSetting.SetSoundVolumef(pos)
def __OnChangeMobilePhoneNumber(self):
import uiCommon
inputDialog = uiCommon.InputDialog()
inputDialog.SetTitle(localeInfo.MESSENGER_INPUT_MOBILE_PHONE_NUMBER_TITLE)
inputDialog.SetMaxLength(13)
inputDialog.SetAcceptEvent(ui.__mem_func__(self.OnInputMobilePhoneNumber))
inputDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseInputDialog))
inputDialog.Open()
self.inputDialog = inputDialog
def __OnDeleteMobilePhoneNumber(self):
import uiCommon
questionDialog = uiCommon.QuestionDialog()
questionDialog.SetText(localeInfo.MESSENGER_DO_YOU_DELETE_PHONE_NUMBER)
questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDeleteMobile))
questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
questionDialog.Open()
self.questionDialog = questionDialog
def OnInputMobilePhoneNumber(self):
text = self.inputDialog.GetText()
if not text:
return
text.replace('-', '')
net.SendChatPacket("/mobile " + text)
self.OnCloseInputDialog()
return True
def OnInputMobileAuthorityCode(self):
text = self.inputDialog.GetText()
net.SendChatPacket("/mobile_auth " + text)
self.OnCloseInputDialog()
return True
def OnDeleteMobile(self):
net.SendChatPacket("/mobile")
self.OnCloseQuestionDialog()
return True
def OnCloseInputDialog(self):
self.inputDialog.Close()
self.inputDialog = None
return True
def OnCloseQuestionDialog(self):
self.questionDialog.Close()
self.questionDialog = None
@ -350,30 +284,6 @@ class OptionDialog(ui.ScriptWindow):
self.Close()
return True
def RefreshMobile(self):
global MOBILE
if not MOBILE:
return
if player.HasMobilePhoneNumber():
self.inputMobileButton.Hide()
self.deleteMobileButton.Show()
else:
self.inputMobileButton.Show()
self.deleteMobileButton.Hide()
def OnMobileAuthority(self):
import uiCommon
inputDialog = uiCommon.InputDialogWithDescription()
inputDialog.SetTitle(localeInfo.MESSENGER_INPUT_MOBILE_AUTHORITY_TITLE)
inputDialog.SetDescription(localeInfo.MESSENGER_INPUT_MOBILE_AUTHORITY_DESCRIPTION)
inputDialog.SetAcceptEvent(ui.__mem_func__(self.OnInputMobileAuthorityCode))
inputDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseInputDialog))
inputDialog.SetMaxLength(4)
inputDialog.SetBoardWidth(310)
inputDialog.Open()
self.inputDialog = inputDialog
def RefreshBlock(self):
global blockMode
for i in xrange(len(self.blockButtonList)):
@ -388,7 +298,6 @@ class OptionDialog(ui.ScriptWindow):
self.RefreshBlock()
def Show(self):
self.RefreshMobile()
self.RefreshBlock()
ui.ScriptWindow.Show(self)

View File

@ -136,16 +136,6 @@ class SystemDialog(ui.ScriptWindow):
self.Hide()
return True
def RefreshMobile(self):
if self.gameOptionDlg:
self.gameOptionDlg.RefreshMobile()
#self.optionDialog.RefreshMobile()
def OnMobileAuthority(self):
if self.gameOptionDlg:
self.gameOptionDlg.OnMobileAuthority()
#self.optionDialog.OnMobileAuthority()
def OnBlockMode(self, mode):
uiGameOption.blockMode = mode
if self.gameOptionDlg:

View File

@ -1,479 +0,0 @@
import uiScriptLocale
ROOT_PATH = "d:/ymir work/ui/public/"
TEMPORARY_X = +13
BUTTON_TEMPORARY_X = 5
PVP_X = -10
LINE_LABEL_X = 30
LINE_DATA_X = 90
LINE_STEP = 0
SMALL_BUTTON_WIDTH = 45
MIDDLE_BUTTON_WIDTH = 65
window = {
"name" : "GameOptionDialog",
"style" : ("movable", "float",),
"x" : 0,
"y" : 0,
"width" : 300,
"height" : (258+25),
"children" :
(
{
"name" : "board",
"type" : "board",
"x" : 0,
"y" : 0,
"width" : 300,
"height" : 25*12+8,
"children" :
(
## Title
{
"name" : "titlebar",
"type" : "titlebar",
"style" : ("attach",),
"x" : 8,
"y" : 8,
"width" : 284,
"color" : "gray",
"children" :
(
{ "name":"titlename", "type":"text", "x":0, "y":3,
"text" : uiScriptLocale.GAMEOPTION_TITLE,
"horizontal_align":"center", "text_horizontal_align":"center" },
),
},
## À̸§»ö
{
"name" : "name_color",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 40+2,
"text" : uiScriptLocale.OPTION_NAME_COLOR,
},
{
"name" : "name_color_normal",
"type" : "radio_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*0,
"y" : 40,
"text" : uiScriptLocale.OPTION_NAME_COLOR_NORMAL,
"default_image" : ROOT_PATH + "Middle_Button_01.sub",
"over_image" : ROOT_PATH + "Middle_Button_02.sub",
"down_image" : ROOT_PATH + "Middle_Button_03.sub",
},
{
"name" : "name_color_empire",
"type" : "radio_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*1,
"y" : 40,
"text" : uiScriptLocale.OPTION_NAME_COLOR_EMPIRE,
"default_image" : ROOT_PATH + "Middle_Button_01.sub",
"over_image" : ROOT_PATH + "Middle_Button_02.sub",
"down_image" : ROOT_PATH + "Middle_Button_03.sub",
},
## Ÿ°Ùâ
{
"name" : "target_board",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 65+2,
"text" : uiScriptLocale.OPTION_TARGET_BOARD,
},
{
"name" : "target_board_no_view",
"type" : "radio_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*0,
"y" : 65,
"text" : uiScriptLocale.OPTION_TARGET_BOARD_NO_VIEW,
"default_image" : ROOT_PATH + "Middle_Button_01.sub",
"over_image" : ROOT_PATH + "Middle_Button_02.sub",
"down_image" : ROOT_PATH + "Middle_Button_03.sub",
},
{
"name" : "target_board_view",
"type" : "radio_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*1,
"y" : 65,
"text" : uiScriptLocale.OPTION_TARGET_BOARD_VIEW,
"default_image" : ROOT_PATH + "Middle_Button_01.sub",
"over_image" : ROOT_PATH + "Middle_Button_02.sub",
"down_image" : ROOT_PATH + "Middle_Button_03.sub",
},
## PvP Mode
{
"name" : "pvp_mode",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 90+2,
"text" : uiScriptLocale.OPTION_PVPMODE,
},
{
"name" : "pvp_peace",
"type" : "radio_button",
"x" : LINE_DATA_X+SMALL_BUTTON_WIDTH*0,
"y" : 90,
"text" : uiScriptLocale.OPTION_PVPMODE_PEACE,
"tooltip_text" : uiScriptLocale.OPTION_PVPMODE_PEACE_TOOLTIP,
"default_image" : ROOT_PATH + "small_Button_01.sub",
"over_image" : ROOT_PATH + "small_Button_02.sub",
"down_image" : ROOT_PATH + "small_Button_03.sub",
},
{
"name" : "pvp_revenge",
"type" : "radio_button",
"x" : LINE_DATA_X+SMALL_BUTTON_WIDTH*1,
"y" : 90,
"text" : uiScriptLocale.OPTION_PVPMODE_REVENGE,
"tooltip_text" : uiScriptLocale.OPTION_PVPMODE_REVENGE_TOOLTIP,
"default_image" : ROOT_PATH + "small_Button_01.sub",
"over_image" : ROOT_PATH + "small_Button_02.sub",
"down_image" : ROOT_PATH + "small_Button_03.sub",
},
{
"name" : "pvp_guild",
"type" : "radio_button",
"x" : LINE_DATA_X+SMALL_BUTTON_WIDTH*2,
"y" : 90,
"text" : uiScriptLocale.OPTION_PVPMODE_GUILD,
"tooltip_text" : uiScriptLocale.OPTION_PVPMODE_GUILD_TOOLTIP,
"default_image" : ROOT_PATH + "small_Button_01.sub",
"over_image" : ROOT_PATH + "small_Button_02.sub",
"down_image" : ROOT_PATH + "small_Button_03.sub",
},
{
"name" : "pvp_free",
"type" : "radio_button",
"x" : LINE_DATA_X+SMALL_BUTTON_WIDTH*3,
"y" : 90,
"text" : uiScriptLocale.OPTION_PVPMODE_FREE,
"tooltip_text" : uiScriptLocale.OPTION_PVPMODE_FREE_TOOLTIP,
"default_image" : ROOT_PATH + "small_Button_01.sub",
"over_image" : ROOT_PATH + "small_Button_02.sub",
"down_image" : ROOT_PATH + "small_Button_03.sub",
},
## Block
{
"name" : "block",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 115+2,
"text" : uiScriptLocale.OPTION_BLOCK,
},
{
"name" : "block_exchange_button",
"type" : "toggle_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*0,
"y" : 115,
"text" : uiScriptLocale.OPTION_BLOCK_EXCHANGE,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "block_party_button",
"type" : "toggle_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*1,
"y" : 115,
"text" : uiScriptLocale.OPTION_BLOCK_PARTY,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "block_guild_button",
"type" : "toggle_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*2,
"y" : 115,
"text" : uiScriptLocale.OPTION_BLOCK_GUILD,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "block_whisper_button",
"type" : "toggle_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*0,
"y" : 140,
"text" : uiScriptLocale.OPTION_BLOCK_WHISPER,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "block_friend_button",
"type" : "toggle_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*1,
"y" : 140,
"text" : uiScriptLocale.OPTION_BLOCK_FRIEND,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "block_party_request_button",
"type" : "toggle_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*2,
"y" : 140,
"text" : uiScriptLocale.OPTION_BLOCK_PARTY_REQUEST,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
## Chat
{
"name" : "chat",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 165+2,
"text" : uiScriptLocale.OPTION_VIEW_CHAT,
},
{
"name" : "view_chat_on_button",
"type" : "radio_button",
"x" : LINE_DATA_X,
"y" : 165,
"text" : uiScriptLocale.OPTION_VIEW_CHAT_ON,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "view_chat_off_button",
"type" : "radio_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH,
"y" : 165,
"text" : uiScriptLocale.OPTION_VIEW_CHAT_OFF,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
## Always Show Name
{
"name" : "always_show_name",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 190+2,
"text" : uiScriptLocale.OPTION_ALWAYS_SHOW_NAME,
},
{
"name" : "always_show_name_on_button",
"type" : "radio_button",
"x" : LINE_DATA_X,
"y" : 190,
"text" : uiScriptLocale.OPTION_ALWAYS_SHOW_NAME_ON,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "always_show_name_off_button",
"type" : "radio_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH,
"y" : 190,
"text" : uiScriptLocale.OPTION_ALWAYS_SHOW_NAME_OFF,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
## Mobile
{
"name" : "mobile",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 215+2,
"text" : uiScriptLocale.OPTION_MOBILE,
},
{
"name" : "input_mobile_button",
"type" : "button",
"x" : LINE_DATA_X,
"y" : 215,
"text" : uiScriptLocale.OPTION_INPUT_MOBILE_BUTTON,
"default_image" : ROOT_PATH + "Large_Button_01.sub",
"over_image" : ROOT_PATH + "Large_Button_02.sub",
"down_image" : ROOT_PATH + "Large_Button_03.sub",
},
{
"name" : "delete_mobile_button",
"type" : "button",
"x" : 90,
"y" : 215,
"text" : uiScriptLocale.OPTION_DELETE_MOBILE_BUTTON,
"default_image" : ROOT_PATH + "Large_Button_01.sub",
"over_image" : ROOT_PATH + "Large_Button_02.sub",
"down_image" : ROOT_PATH + "Large_Button_03.sub",
},
## Effect On/Off
{
"name" : "effect_on_off",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 240+2,
"text" : uiScriptLocale.OPTION_EFFECT,
},
{
"name" : "show_damage_on_button",
"type" : "radio_button",
"x" : LINE_DATA_X,
"y" : 240,
"text" : uiScriptLocale.OPTION_VIEW_CHAT_ON,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "show_damage_off_button",
"type" : "radio_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH,
"y" : 240,
"text" : uiScriptLocale.OPTION_VIEW_CHAT_OFF,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
## ÆǸŹ®±¸
{
"name" : "salestext_on_off",
"type" : "text",
"x" : LINE_LABEL_X,
"y" : 265+2,
"text" : uiScriptLocale.OPTION_SALESTEXT,
},
{
"name" : "salestext_on_button",
"type" : "radio_button",
"x" : LINE_DATA_X,
"y" : 265,
"text" : uiScriptLocale.OPTION_SALESTEXT_VIEW_ON,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "salestext_off_button",
"type" : "radio_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH,
"y" : 265,
"text" : uiScriptLocale.OPTION_SALESTEXT_VIEW_OFF,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
),
},
),
}

View File

@ -1,7 +1,7 @@
import uiScriptLocale
BUTTON_START_X_POS = -60
BUTTON_X_STEP = 30
BUTTON_X_STEP = 40
window = {
"name" : "MessengerWindow",
@ -73,28 +73,11 @@ window = {
"down_image" : "d:/ymir work/ui/game/windows/messenger_whisper_03.sub",
"disable_image" : "d:/ymir work/ui/game/windows/messenger_whisper_04.sub",
},
{
"name" : "MobileButton",
"type" : "button",
"x" : BUTTON_START_X_POS + BUTTON_X_STEP*2,
"y" : 30,
"horizontal_align" : "center",
"vertical_align" : "bottom",
"tooltip_text" : uiScriptLocale.MESSENGER_MOBILE,
"tooltip_x" : 0,
"tooltip_y" : 35,
"default_image" : "d:/ymir work/ui/game/windows/messenger_mobile_01.sub",
"over_image" : "d:/ymir work/ui/game/windows/messenger_mobile_02.sub",
"down_image" : "d:/ymir work/ui/game/windows/messenger_mobile_03.sub",
"disable_image" : "d:/ymir work/ui/game/windows/messenger_mobile_04.sub",
},
{
"name" : "RemoveButton",
"type" : "button",
"x" : BUTTON_START_X_POS + BUTTON_X_STEP*3,
"x" : BUTTON_START_X_POS + BUTTON_X_STEP*2,
"y" : 30,
"horizontal_align" : "center",
"vertical_align" : "bottom",
@ -111,7 +94,7 @@ window = {
"name" : "GuildButton",
"type" : "button",
"x" : BUTTON_START_X_POS + BUTTON_X_STEP*4,
"x" : BUTTON_START_X_POS + BUTTON_X_STEP*3,
"y" : 30,
"horizontal_align" : "center",
"vertical_align" : "bottom",

59
build.bat Normal file
View File

@ -0,0 +1,59 @@
@echo off
ECHO ======================================================
ECHO The Old Metin2 Project - Automated client build script
ECHO Only use on a clean project directory.
ECHO ======================================================
rem SET M2_MSVC_DIR=C:\Program Files\Microsoft Visual Studio\2022\Community\
rem SET M2_PML_PATH=C:\Users\User\Path\To\PackMakerLite\PackMakerLite.exe
rem Check the environment variables
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 ECHO Unable to enable extensions
IF NOT DEFINED M2_MSVC_DIR (
ECHO M2_MSVC_DIR is NOT defined! Please define M2_MSVC_DIR with the path of your local MSVC install.
EXIT /B -1
)
IF NOT DEFINED M2_PML_PATH (
ECHO M2_PML_PATH is NOT defined! Please define M2_PML_PATH with the path of your local PackMakerLite executable.
EXIT /B -1
)
ENDLOCAL
rem Initialize the MSVC environment
CALL "%M2_MSVC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
rem Build
msbuild Metin2Client.sln /p:Configuration=Distribute /p:Platform="Win32"
rem Start assembling the client package
RMDIR /S /Q dist
MKDIR dist\
COPY /Y build\bin\Distribute\UserInterface.exe dist\metin2.exe
COPY /Y build\bin\Distribute\Config.exe dist\config.exe
rem Copy over the data from the bin directory
xcopy bin\ dist\ /Y /Q
DEL /S dist\.gitignore
xcopy bin\BGM\ dist\BGM\ /E /Y /Q
xcopy bin\lib\ dist\lib\ /E /Y /Q
MKDIR dist\mark\
xcopy bin\miles\ dist\miles\ /E /Y /Q
MKDIR dist\pack\
COPY /Y bin\pack\Index dist\pack\
COPY /Y bin\pack\*.rdch dist\pack\
MKDIR dist\screenshot\
xcopy bin\upload\ dist\upload\ /E /Y /Q
rem Build and copy the archives
DEL /F /Q "bin\pack\*.eix"
DEL /F /Q "bin\pack\*.epk"
FOR /d %%i IN ("bin\pack\*") DO (
echo Packing %%i
%M2_PML_PATH% --nolog --parallel -p "%%i"
)
MOVE /Y bin\pack\*.eix dist\pack\
MOVE /Y bin\pack\*.epk dist\pack\

BIN
doc/img/directx-error-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
doc/img/directx-error-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -49,40 +49,43 @@
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>17.0.32203.90</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>Release</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg">
<VcpkgEnableManifest>true</VcpkgEnableManifest>
@ -94,10 +97,6 @@
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader />
<PrecompiledHeaderOutputFile>.\Debug/CWebBrowser.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
<ObjectFileName>.\Debug/</ObjectFileName>
<ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
@ -121,10 +120,6 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<PrecompiledHeaderOutputFile>.\Release/CWebBrowser.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Release/</AssemblerListingLocation>
<ObjectFileName>.\Release/</ObjectFileName>
<ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@ -149,10 +144,6 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<PrecompiledHeaderOutputFile>.\Distribute/CWebBrowser.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Distribute/</AssemblerListingLocation>
<ObjectFileName>.\Distribute/</ObjectFileName>
<ProgramDataBaseFileName>.\Distribute/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

491
src/Config/MainDialog.cpp Normal file
View File

@ -0,0 +1,491 @@
#include "MainDialog.h"
#include <d3d9.h>
#include <algorithm>
#include <math.h>
#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<int>(m_stConfig.iTiling, 0);
m_stConfig.iTiling = std::min<int>(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<int>(m_stConfig.iShadowLevel, 0);
m_stConfig.iShadowLevel = std::min<int>(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<int>(1, std::min<int>(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;
}
}
}

134
src/Config/MainDialog.h Normal file
View File

@ -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 <atlbase.h>
#include <wtl/atlapp.h>
#include <atlwin.h>
#include <wtl/atlcrack.h>
#include <wtl/atlmisc.h>
#include <wtl/atlctrls.h>
#include <wtl/atlddx.h>
#include "resource.h"
#define MUSIC_VOLUME_MAX_NUM 1.0f
class CMainDialog : public CDialogImpl<CMainDialog>, public CWinDataExchange<CMainDialog>
{
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<ATL::CString> 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

View File

@ -0,0 +1,26 @@
#include "MainDialog.h"
#include "resource.h"
#include <wtl/atlapp.h>
#include <locale.h>
#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;
}

View File

@ -0,0 +1,19 @@
#include <wtl/atlres.h>
#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 <version_info.rc>

View File

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Distribute|Win32">
<Configuration>Distribute</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<ProjectName>Config</ProjectName>
<ProjectGuid>{879A444C-3A51-4B63-8888-DC0AAD578B03}</ProjectGuid>
<RootNamespace>Metin2Config</RootNamespace>
<SccProjectName>SAK</SccProjectName>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<SccProvider>SAK</SccProvider>
<Keyword>MFCProj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>17.0.32203.90</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>Release</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg">
<VcpkgEnableManifest>true</VcpkgEnableManifest>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<FloatingPointModel>Strict</FloatingPointModel>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<WholeProgramOptimization>true</WholeProgramOptimization>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0009</Culture>
</ResourceCompile>
<Lib>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Link>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<FloatingPointModel>Strict</FloatingPointModel>
<AssemblerOutput>All</AssemblerOutput>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<WholeProgramOptimization>true</WholeProgramOptimization>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0009</Culture>
</ResourceCompile>
<Lib>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Link />
<Link>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FloatingPointModel>Strict</FloatingPointModel>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0009</Culture>
</ResourceCompile>
<Lib>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Link />
<Link>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="MainDialog.cpp" />
<ClCompile Include="Metin2Config.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="MainDialog.h" />
<ClInclude Include="resource.h" />
</ItemGroup>
<ItemGroup>
<Image Include="metin2.ico" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Metin2Config.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{62c8d2c1-c25e-4a7e-ab94-f76adb8b3c53}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{2c236430-8de1-4024-be66-ae2c7469e916}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{a9554394-acc3-46ba-a041-6122aabc25db}</UniqueIdentifier>
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="MainDialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Metin2Config.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="MainDialog.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Metin2Config.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Image Include="metin2.ico">
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
</Project>

BIN
src/Config/metin2.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

63
src/Config/resource.h Normal file
View File

@ -0,0 +1,63 @@
#include <wtl/atlres.h>
//{{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

283
src/Config/ui.rc Normal file
View File

@ -0,0 +1,283 @@
// Microsoft Visual C++ generated resource script.
//
#include <windows.h>
#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 "Auflösung",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 |könnte| das Spiel verlangsamen"
IDS_TILING_CPU "CPU Tiling wird lediglich für 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 "Dänisch"
IDS_LANGUAGE_DUTCH "Niederländisch"
IDS_LANGUAGE_ENGLISH "Englisch"
IDS_LANGUAGE_FRENCH "Französisch"
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 "Rumänisch"
IDS_LANGUAGE_RUSSIAN "Russisch"
IDS_LANGUAGE_SPANISH "Spanisch"
IDS_LANGUAGE_TURKISH "Türkisch"
END
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@ -0,0 +1,47 @@
#include <winver.h>
//
// 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

View File

@ -42,8 +42,8 @@ class CEffectData
void __ClearLightDataVector();
void __ClearMeshDataVector();
// FIXME : 이 부분은 그다지 맘에 들지 않는다. 좋은 아이디어를 찾아내어 고치자.
// 상위가 (특화된) 상위의 인터페이스 때문에 모양이 바뀌어야 한다는 것은 옳지 못하다. - [levites]
// FIXME : 이 부분은 그다지 맘에 들지 않는다. 좋은 아이디어를 찾아내어 고치자.
// 상위가 (특화된) 상위의 인터페이스 때문에 모양이 바뀌어야 한다는 것은 옳지 못하다. - [levites]
virtual CParticleSystemData * AllocParticle();
virtual CEffectMeshScript * AllocMesh();
virtual CLightData * AllocLight();

View File

@ -52,7 +52,7 @@ void CEffectInstance::UpdateSound()
{
CSoundManager& rkSndMgr=CSoundManager::Instance();
rkSndMgr.UpdateSoundInstance(m_matGlobal._41, m_matGlobal._42, m_matGlobal._43, m_dwFrame, m_pSoundInstanceVector);
// NOTE : 매트릭스에서 위치를 직접 얻어온다 - [levites]
// NOTE : 매트릭스에서 위치를 직접 얻어온다 - [levites]
}
++m_dwFrame;
}

View File

@ -9,22 +9,10 @@
<Configuration>Distribute</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="MfcDebug|Win32">
<Configuration>MfcDebug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="MfcRelease|Win32">
<Configuration>MfcRelease</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="VTune|Win32">
<Configuration>VTune</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
@ -39,12 +27,6 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
@ -63,144 +45,52 @@
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>17.0.32203.90</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>Release</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg">
<VcpkgEnableManifest>true</VcpkgEnableManifest>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">
<ClCompile>
<AdditionalOptions>/Gs /Gs %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>.;../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\VTune/EffectLib.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\VTune/</AssemblerListingLocation>
<ObjectFileName>.\VTune/</ObjectFileName>
<ProgramDataBaseFileName>.\VTune/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\VTune\EffectLib.lib</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;WORLD_EDITOR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\EffectLib___Win32_MfcDebug/EffectLib.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\EffectLib___Win32_MfcDebug/</AssemblerListingLocation>
<ObjectFileName>.\EffectLib___Win32_MfcDebug/</ObjectFileName>
<ProgramDataBaseFileName>.\EffectLib___Win32_MfcDebug/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\EffectLib___Win32_MfcDebug\EffectLib.lib</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
@ -212,10 +102,6 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\Release/EffectLib.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Release/</AssemblerListingLocation>
<ObjectFileName>.\Release/</ObjectFileName>
<ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -241,10 +127,6 @@
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\Debug/EffectLib.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
<ObjectFileName>.\Debug/</ObjectFileName>
<ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -271,11 +153,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\Distribute/EffectLib.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\Distribute/</AssemblerListingLocation>
<ObjectFileName>.\Distribute/</ObjectFileName>
<ProgramDataBaseFileName>.\Distribute/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -292,229 +170,118 @@
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>.;../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\EffectLib___Win32_MfcRelease/EffectLib.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\EffectLib___Win32_MfcRelease/</AssemblerListingLocation>
<ObjectFileName>.\EffectLib___Win32_MfcRelease/</ObjectFileName>
<ProgramDataBaseFileName>.\EffectLib___Win32_MfcRelease/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\EffectLib___Win32_MfcRelease\EffectLib.lib</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="EffectData.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="EffectElementBase.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="EffectElementBaseInstance.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="EffectInstance.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="EffectManager.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="EffectMesh.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="EffectMeshInstance.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="EffectUpdateDecorator.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="EmitterProperty.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="FrameController.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ParticleInstance.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ParticleProperty.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ParticleSystemData.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ParticleSystemInstance.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="SimpleLightData.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="SimpleLightInstance.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="StdAfx.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
@ -523,28 +290,15 @@
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">Create</PrecompiledHeader>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Create</PrecompiledHeader>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">Create</PrecompiledHeader>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="Type.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
</ItemGroup>
<ItemGroup>

View File

@ -48,7 +48,7 @@ bool CEffectManager::IsAliveEffect(DWORD dwInstanceIndex)
void CEffectManager::Update()
{
// 2004. 3. 1. myevan. 이펙트 모니터링 하는 코드
// 2004. 3. 1. myevan. 이펙트 모니터링 하는 코드
/*
if (GetAsyncKeyState(VK_F9))
{
@ -173,8 +173,8 @@ BOOL CEffectManager::RegisterEffect(const char * c_szFileName,bool isExistDelete
return TRUE;
}
// CEffectData 를 포인터형으로 리턴하게 하고..
// CEffectData에서 CRC를 얻을수 있게 한다
// CEffectData 를 포인터형으로 리턴하게 하고..
// CEffectData에서 CRC를 얻을수 있게 한다
BOOL CEffectManager::RegisterEffect2(const char * c_szFileName, DWORD* pdwRetCRC, bool isNeedCache)
{
std::string strFileName;

View File

@ -62,8 +62,8 @@ class CEffectManager : public CScreen, public CSingleton<CEffectManager>
bool GetEffectData(DWORD dwID, CEffectData ** ppEffect);
bool GetEffectData(DWORD dwID, const CEffectData ** c_ppEffect);
// Area에 직접 찍는 Effect용 함수... EffectInstance의 Pointer를 반환한다.
// EffectManager 내부 EffectInstanceMap을 이용하지 않는다.
// Area에 직접 찍는 Effect용 함수... EffectInstance의 Pointer를 반환한다.
// EffectManager 내부 EffectInstanceMap을 이용하지 않는다.
void CreateUnsafeEffectInstance(DWORD dwEffectDataID, CEffectInstance ** ppEffectInstance);
bool DestroyUnsafeEffectInstance(CEffectInstance * pEffectInstance);

View File

@ -9,7 +9,7 @@
class CEffectMeshInstance : public CEffectElementBaseInstance
{
public:
// NOTE : Mesh 단위 텍스춰 데이타의 인스턴스이다.
// NOTE : Mesh 단위 텍스춰 데이타의 인스턴스이다.
typedef struct STextureInstance
{
CFrameController TextureFrameController;

View File

@ -185,9 +185,9 @@ void CParticleInstance::Transform(const D3DXMATRIX * c_matLocal)
case BILLBOARD_TYPE_ALL:
default:
{
// NOTE : Rotation Routine. Camera의 Up Vector와 Cross Vector 자체를 View Vector 기준으로
// Rotation 시킨다.
// FIXME : 반드시 최적화 할 것!
// NOTE : Rotation Routine. Camera의 Up Vector와 Cross Vector 자체를 View Vector 기준으로
// Rotation 시킨다.
// FIXME : 반드시 최적화 할 것!
if (m_fRotation==0.0f)
{
v3Up = -c_rv3Cross;
@ -239,7 +239,7 @@ void CParticleInstance::Transform(const D3DXMATRIX * c_matLocal)
D3DXVec3TransformNormal(&v3Up, &v3Up, c_matLocal);
}
// NOTE: 속도가 길이에 주는 영향 : log(velocity)만큼 늘어난다.
// NOTE: 속도가 길이에 주는 영향 : log(velocity)만큼 늘어난다.
float length = D3DXVec3Length(&v3Up);
if (length == 0.0f)
{
@ -342,9 +342,9 @@ void CParticleInstance::Transform(const D3DXMATRIX * c_matLocal, const float c_f
case BILLBOARD_TYPE_ALL:
default:
{
// NOTE : Rotation Routine. Camera의 Up Vector와 Cross Vector 자체를 View Vector 기준으로
// Rotation 시킨다.
// FIXME : 반드시 최적화 할 것!
// NOTE : Rotation Routine. Camera의 Up Vector와 Cross Vector 자체를 View Vector 기준으로
// Rotation 시킨다.
// FIXME : 반드시 최적화 할 것!
if (m_fRotation==0.0f)
{
v3Up = -c_rv3Cross;
@ -373,7 +373,7 @@ void CParticleInstance::Transform(const D3DXMATRIX * c_matLocal, const float c_f
D3DXVec3TransformNormal(&v3Up, &v3Up, c_matLocal);
}
// NOTE: 속도가 길이에 주는 영향 : log(velocity)만큼 늘어난다.
// NOTE: 속도가 길이에 주는 영향 : log(velocity)만큼 늘어난다.
float length = D3DXVec3Length(&v3Up);
if (length == 0.0f)
{

View File

@ -161,8 +161,8 @@ void CParticleSystemInstance::CreateParticles(float fElapsedTime)
D3DXVec3TransformCoord(&v3TimePosition, &v3TimePosition, mc_pmatLocal);
}
pInstance->m_v3StartPosition = v3TimePosition;
// NOTE : Update를 호출하지 않고 Rendering 되기 때문에 length가 0이 되는 문제가 있다.
// Velocity를 구한 후 그만큼 빼준 값으로 초기화 해주도록 바꿨음 - [levites]
// NOTE : Update를 호출하지 않고 Rendering 되기 때문에 length가 0이 되는 문제가 있다.
// Velocity를 구한 후 그만큼 빼준 값으로 초기화 해주도록 바꿨음 - [levites]
//pInstance->m_v3LastPosition = pInstance->m_v3Position;
// Direction & Velocity
@ -212,8 +212,8 @@ void CParticleSystemInstance::CreateParticles(float fElapsedTime)
// Rotation
pInstance->m_fRotation = m_pParticleProperty->m_wRotationRandomStartingBegin;
pInstance->m_fRotation = frandom(m_pParticleProperty->m_wRotationRandomStartingBegin,m_pParticleProperty->m_wRotationRandomStartingEnd);
// Rotation - Lie 일 경우 LocalMatrix 의 Rotation 값을 Random 에 적용한다.
// 매번 할 필요는 없을듯. 어느 정도의 최적화가 필요. - [levites]
// Rotation - Lie 일 경우 LocalMatrix 의 Rotation 값을 Random 에 적용한다.
// 매번 할 필요는 없을듯. 어느 정도의 최적화가 필요. - [levites]
if (BILLBOARD_TYPE_LIE == m_pParticleProperty->m_byBillboardType && mc_pmatLocal)
{
pInstance->m_fRotation += fLieRotation;
@ -486,7 +486,7 @@ void CParticleSystemInstance::OnInitialize()
void CParticleSystemInstance::OnDestroy()
{
// 2004. 3. 1. myevan. 파티클 제거 루틴
// 2004. 3. 1. myevan. 파티클 제거 루틴
TParticleInstanceListVector::iterator i;
for(i = m_ParticleInstanceListVector.begin(); i!=m_ParticleInstanceListVector.end(); ++i)
{

View File

@ -71,12 +71,12 @@ enum EBillBoardType
BILLBOARD_TYPE_ALL,
BILLBOARD_TYPE_Y,
BILLBOARD_TYPE_LIE, // 바닥에 누은 형상
BILLBOARD_TYPE_LIE, // 바닥에 누은 형상
BILLBOARD_TYPE_2FACE, // / and \
BILLBOARD_TYPE_3FACE, // / and \ and -
//BILLBOARD_TYPE_RAY, // 잔상
//BILLBOARD_TYPE_RAY, // 잔상
};
@ -220,8 +220,8 @@ typedef std::vector<TTimeEventTypeVector2> TTimeEventTableVector2;
typedef std::vector<TTimeEventTypeVector3> TTimeEventTableVector3;
// NOTE : TimeEventValue 함수들은 값을 넘겨 받지 말아야 하는 때도 있으므로
// 값의 직접 리턴이 아닌 포인터 리턴으로 작성 했습니다. - [levites]
// NOTE : TimeEventValue 함수들은 값을 넘겨 받지 말아야 하는 때도 있으므로
// 값의 직접 리턴이 아닌 포인터 리턴으로 작성 했습니다. - [levites]
template <typename T>
__forceinline void GetTimeEventBlendValue(float fElapsedTime, std::vector<CTimeEvent<T> >& rVector, T * pReturnValue)

View File

@ -6,14 +6,14 @@ class _CPostItMemoryBlock;
/**
* @class CPostIt
* @brief
* @brief
*/
class CPostIt
{
public:
/**
* @brief CPostIt constructor
* @param [in] szAppName : .
* @param [in] szAppName : .
*/
explicit CPostIt( LPCSTR szAppName );
@ -23,45 +23,45 @@ public:
~CPostIt( void );
/**
* @brief CPostIt class에서 .
* @brief CPostIt class에서 .
*/
BOOL Flush( void );
/**
* @brief CPostIt class에서 .
* @brief CPostIt class에서 .
*/
void Empty( void );
/**
* @brief .
* @param [in] lpszKeyName : . "KEY" .
* @param [in] lpszData :
* @param [in] nSize : lpszData
* @brief .
* @param [in] lpszKeyName : . "KEY" .
* @param [in] lpszData :
* @param [in] nSize : lpszData
*/
BOOL Get( LPCSTR lpszKeyName, LPSTR lpszData, DWORD nSize );
/**
* @brief .
* @param [in] lpBuffer : . "KEY=DATA" .
* @brief .
* @param [in] lpBuffer : . "KEY=DATA" .
*/
BOOL Set( LPCSTR lpszData );
/**
* @brief .
* @param [in] lpszKeyName : . "KEY" .
* @param [in] lpszData : . "DATA" .
* @brief .
* @param [in] lpszKeyName : . "KEY" .
* @param [in] lpszData : . "DATA" .
*/
BOOL Set( LPCSTR lpszKeyName, LPCSTR lpszData );
/**
* @brief (DWORD) .
* @param [in] lpBuffer : . "KEY=DATA" .
* @param [in] dwValue : . (DWORD)
* @brief (DWORD) .
* @param [in] lpBuffer : . "KEY=DATA" .
* @param [in] dwValue : . (DWORD)
*/
BOOL Set( LPCSTR lpszKeyName, DWORD dwValue );
/**
* @brief CPostIt class를 . ( constructor에 , )
* @brief CPostIt class를 . ( constructor에 , )
* @param [in] pPostIt : Destination class
* @param [in] lpszKeyName : Destination class's new app-name
*/

View File

@ -9,22 +9,10 @@
<Configuration>Distribute</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="MfcDebug|Win32">
<Configuration>MfcDebug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="MfcRelease|Win32">
<Configuration>MfcRelease</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="VTune|Win32">
<Configuration>VTune</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
@ -39,30 +27,12 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
@ -78,63 +48,45 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>17.0.32203.90</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>Release</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg">
<VcpkgEnableManifest>true</VcpkgEnableManifest>
@ -146,10 +98,6 @@
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeaderOutputFile>.\Debug/eterBase.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
<ObjectFileName>.\Debug/</ObjectFileName>
<ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -163,7 +111,7 @@
<IgnoreStandardIncludePath>true</IgnoreStandardIncludePath>
</ResourceCompile>
<Lib>
<AdditionalLibraryDirectories>../../../extern/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(SolutionDir)extern\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
@ -176,11 +124,7 @@
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\Distribute/eterBase.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\Distribute/</AssemblerListingLocation>
<ObjectFileName>.\Distribute/</ObjectFileName>
<ProgramDataBaseFileName>.\Distribute/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -194,64 +138,7 @@
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<AdditionalLibraryDirectories>$(SolutionDir)Extern\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeaderOutputFile>.\MfcRelease/eterBase.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\MfcRelease/</AssemblerListingLocation>
<ObjectFileName>.\MfcRelease/</ObjectFileName>
<ProgramDataBaseFileName>.\MfcRelease/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\MfcRelease\eterBase.lib</OutputFile>
<AdditionalLibraryDirectories>../../extern/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeaderOutputFile>.\MfcDebug/eterBase.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\MfcDebug/</AssemblerListingLocation>
<ObjectFileName>.\MfcDebug/</ObjectFileName>
<ProgramDataBaseFileName>.\MfcDebug/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\MfcDebug\eterBase.lib</OutputFile>
<AdditionalLibraryDirectories>../../extern/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(SolutionDir)extern\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
@ -264,10 +151,6 @@
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\Release/eterBase.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Release/</AssemblerListingLocation>
<ObjectFileName>.\Release/</ObjectFileName>
<ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -281,40 +164,7 @@
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<AdditionalLibraryDirectories>../../extern/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">
<ClCompile>
<AdditionalOptions>/Gs %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\VTune/eterBase.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\VTune/</AssemblerListingLocation>
<ObjectFileName>.\VTune/</ObjectFileName>
<ProgramDataBaseFileName>.\VTune/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\VTune\eterBase.lib</OutputFile>
<AdditionalLibraryDirectories>../../extern/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(SolutionDir)extern\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>

View File

@ -60,9 +60,9 @@ bool CDir::Create(const char * c_szFilter, const char* c_szPath, BOOL bCheckedEx
if (!c_szExtension)
continue;
// NOTE : 임시 변수 - [levites]
// 최종적으로는 무조건 TRUE 형태로 만든다.
// 그전에 전 프로젝트의 CDir을 사용하는 곳에서 Extension을 "wav", "gr2" 이런식으로 넣게끔 한다. - [levites]
// NOTE : 임시 변수 - [levites]
// 최종적으로는 무조건 TRUE 형태로 만든다.
// 그전에 전 프로젝트의 CDir을 사용하는 곳에서 Extension을 "wav", "gr2" 이런식으로 넣게끔 한다. - [levites]
if (bCheckedExtension)
{
std::string strFilter = c_szFilter;

View File

@ -72,7 +72,7 @@ int CMemoryTextFileLoader::SplitLine2(DWORD dwLine, CTokenVector* pstTokenVector
pstTokenVector->push_back(c_rstLine.substr(beginPos, endPos - beginPos));
// 추가 코드. 맨뒤에 탭이 있는 경우를 체크한다. - [levites]
// 추가 코드. 맨뒤에 탭이 있는 경우를 체크한다. - [levites]
if (int(c_rstLine.find_first_not_of(c_szDelimeter, basePos)) < 0)
break;
} while (basePos < c_rstLine.length());
@ -116,7 +116,7 @@ bool CMemoryTextFileLoader::SplitLine(DWORD dwLine, CTokenVector* pstTokenVector
pstTokenVector->push_back(c_rstLine.substr(beginPos, endPos - beginPos));
// 추가 코드. 맨뒤에 탭이 있는 경우를 체크한다. - [levites]
// 추가 코드. 맨뒤에 탭이 있는 경우를 체크한다. - [levites]
if (int(c_rstLine.find_first_not_of(c_szDelimeter, basePos)) < 0)
break;
} while (basePos < c_rstLine.length());

View File

@ -1,6 +1,6 @@
#pragma once
#pragma warning(disable:4786) // character 255 넘어가는거 끄기
#pragma warning(disable:4786) // character 255 넘어가는거 끄기
#include <windows.h>
#include <vector>

View File

@ -85,7 +85,7 @@ BYTE* CMappedFile::AppendDataBlock( const void* pBlock, DWORD dwBlockSize )
void CMappedFile::Destroy()
{
if (m_pLZObj) // 압축된 데이터가 이 포인터로 연결 된다
if (m_pLZObj) // 압축된 데이터가 이 포인터로 연결 된다
{
delete m_pLZObj;
m_pLZObj = NULL;
@ -144,7 +144,7 @@ int CMappedFile::Seek(DWORD offset, int iSeekType)
return m_seekPosition;
}
// 2004.09.16.myevan.MemoryMappedFile 98/ME 개수 제한 문제 체크
// 2004.09.16.myevan.MemoryMappedFile 98/ME 개수 제한 문제 체크
//DWORD g_dwCount=0;
int CMappedFile::Map(const void **dest, int offset, int size)
@ -192,7 +192,7 @@ int CMappedFile::Map(const void **dest, int offset, int size)
return 0;
}
// 2004.09.16.myevan.MemoryMappedFile 98/ME 개수 제한 문제 체크
// 2004.09.16.myevan.MemoryMappedFile 98/ME 개수 제한 문제 체크
//g_dwCount++;
//Tracenf("MAPFILE %d", g_dwCount);
@ -247,7 +247,7 @@ void CMappedFile::Unmap(LPCVOID data)
{
if (UnmapViewOfFile(data))
{
// 2004.09.16.myevan.MemoryMappedFile 98/ME 개수 제한 문제 체크
// 2004.09.16.myevan.MemoryMappedFile 98/ME 개수 제한 문제 체크
//g_dwCount--;
//Tracenf("UNMAPFILE %d", g_dwCount);
}

View File

@ -6,7 +6,7 @@
#endif
#pragma warning(disable:4710) // not inlined
#pragma warning(disable:4786) // character 255 넘어가는거 끄기
#pragma warning(disable:4786) // character 255 넘어가는거 끄기
#pragma warning(disable:4244) // type conversion possible lose of data
#include <windows.h>

View File

@ -27,7 +27,7 @@ BOOL ELTimer_Init()
DWORD ELTimer_GetMSec()
{
//assert(gs_dwBaseTime!=0 && "ELTimer_Init 를 먼저 실행하세요");
//assert(gs_dwBaseTime!=0 && "ELTimer_Init 를 먼저 실행하세요");
//LARGE_INTEGER liTickCount;
//QueryPerformanceCounter(&liTickCount);
return timeGetTime() - gs_dwBaseTime; //(liTickCount.QuadPart*1000 / gs_liTickCountPerSec.QuadPart)-gs_dwBaseTime;
@ -36,7 +36,7 @@ DWORD ELTimer_GetMSec()
VOID ELTimer_SetServerMSec(DWORD dwServerTime)
{
NANOBEGIN
if (0 != dwServerTime) // nanomite를 위한 더미 if
if (0 != dwServerTime) // nanomite를 위한 더미 if
{
gs_dwServerTime = dwServerTime;
gs_dwClientTime = CTimer::instance().GetCurrentMillisecond();
@ -70,7 +70,7 @@ CTimer::CTimer()
ELTimer_Init();
NANOBEGIN
if (this) // nanomite를 위한 더미 if
if (this) // nanomite를 위한 더미 if
{
m_dwCurrentTime = 0;
m_bUseRealTime = true;

View File

@ -433,7 +433,7 @@ void MyCreateDirectory(const char* path)
if (strlen(path) >= 3)
{
if (*(path + 1) == ':') // C:, D: 같은 경우를 체크
if (*(path + 1) == ':') // C:, D: 같은 경우를 체크
path += 3;
}

View File

@ -64,9 +64,9 @@ extern void GetExceptionPathName(const char * sz_Name, std::string & OnlyFileN
extern void GetWorkingFolder(std::string & strFileName);
extern void StringLowers(char * pString);
extern void StringPath(std::string & rString);
extern void StringPath(char * pString); // 모두 소문자로 만들고, \는 /로 바꾼다.
extern void StringPath(const char * c_szSrc, char * szDest); // 모두 소문자로 만들고, \는 /로 바꾼다.
extern void StringPath(const char * c_szSrc, std::string & rString); // 모두 소문자로 만들고, \는 /로 바꾼다.
extern void StringPath(char * pString); // 모두 소문자로 만들고, \는 /로 바꾼다.
extern void StringPath(const char * c_szSrc, char * szDest); // 모두 소문자로 만들고, \는 /로 바꾼다.
extern void StringPath(const char * c_szSrc, std::string & rString); // 모두 소문자로 만들고, \는 /로 바꾼다.
extern void PrintAsciiData(const void* data, int bytes);
bool IsFile(const char* filename);
bool IsGlobalFileName(const char * c_szFileName);

View File

@ -7,32 +7,13 @@
FILE * fException;
/*
static char __msg[4000], __cmsg[4000];
static int __idx;
CLZObject __l;
*/
/*
typedef BOOL
(CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
__in PCSTR ModuleName,
__in ULONG ModuleBase,
__in ULONG ModuleSize,
__in_opt PVOID UserContext
);
*/
#if _MSC_VER >= 1400
BOOL CALLBACK EnumerateLoadedModulesProc(PCSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize, PVOID UserContext)
#else
BOOL CALLBACK EnumerateLoadedModulesProc(PSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize, PVOID UserContext)
#endif
{
DWORD offset = *((DWORD*)UserContext);
if (offset >= ModuleBase && offset <= ModuleBase + ModuleSize)
{
fprintf(fException, "%s", ModuleName);
//__idx += sprintf(__msg+__idx, "%s", ModuleName);
return FALSE;
}
else
@ -56,20 +37,10 @@ LONG __stdcall EterExceptionFilter(_EXCEPTION_POINTERS* pExceptionInfo)
module_time = (time_t)GetTimestampForLoadedLibrary(hModule);
fprintf(fException, "Module Name: %s\n", module_name);
fprintf(fException, "Time Stamp: 0x%08x - %s\n", module_time, ctime(&module_time));
fprintf(fException, "Time Stamp: %lld - %s\n", module_time, ctime(&module_time));
fprintf(fException, "\n");
fprintf(fException, "Exception Type: 0x%08x\n", pExceptionInfo->ExceptionRecord->ExceptionCode);
fprintf(fException, "\n");
/*
{
__idx+=sprintf(__msg+__idx,"Module Name: %s\n", module_name);
__idx+=sprintf(__msg+__idx, "Time Stamp: 0x%08x - %s\n", module_time, ctime(&module_time));
__idx+=sprintf(__msg+__idx, "\n");
__idx+=sprintf(__msg+__idx, "Exception Type: 0x%08x\n", pExceptionInfo->ExceptionRecord->ExceptionCode);
__idx+=sprintf(__msg+__idx, "\n");
}
*/
CONTEXT& context = *pExceptionInfo->ContextRecord;
@ -78,15 +49,6 @@ LONG __stdcall EterExceptionFilter(_EXCEPTION_POINTERS* pExceptionInfo)
fprintf(fException, "esi: 0x%08x\tedi: 0x%08x\n", context.Esi, context.Edi);
fprintf(fException, "ebp: 0x%08x\tesp: 0x%08x\n", context.Ebp, context.Esp);
fprintf(fException, "\n");
/*
{
__idx+=sprintf(__msg+__idx, "eax: 0x%08x\tebx: 0x%08x\n", context.Eax, context.Ebx);
__idx+=sprintf(__msg+__idx, "ecx: 0x%08x\tedx: 0x%08x\n", context.Ecx, context.Edx);
__idx+=sprintf(__msg+__idx, "esi: 0x%08x\tedi: 0x%08x\n", context.Esi, context.Edi);
__idx+=sprintf(__msg+__idx, "ebp: 0x%08x\tesp: 0x%08x\n", context.Ebp, context.Esp);
__idx+=sprintf(__msg+__idx, "\n");
}
*/
STACKFRAME stackFrame = {0,};
stackFrame.AddrPC.Offset = context.Eip;
@ -101,11 +63,8 @@ LONG __stdcall EterExceptionFilter(_EXCEPTION_POINTERS* pExceptionInfo)
if (StackWalk(IMAGE_FILE_MACHINE_I386, hProcess, hThread, &stackFrame, &context, NULL, NULL, NULL, NULL) != FALSE)
{
fprintf(fException, "0x%08x\t", stackFrame.AddrPC.Offset);
//__idx+=sprintf(__msg+__idx, "0x%08x\t", stackFrame.AddrPC.Offset);
EnumerateLoadedModules(hProcess, (PENUMLOADED_MODULES_CALLBACK) EnumerateLoadedModulesProc, &stackFrame.AddrPC.Offset);
fprintf(fException, "\n");
//__idx+=sprintf(__msg+__idx, "\n");
}
else
{
@ -114,89 +73,13 @@ LONG __stdcall EterExceptionFilter(_EXCEPTION_POINTERS* pExceptionInfo)
}
fprintf(fException, "\n");
//__idx+=sprintf(__msg+__idx, "\n");
/*
BYTE* stack = (BYTE*)(context.Esp);
fprintf(fException, "stack %08x - %08x\n", context.Esp, context.Esp+1024);
//__idx+=sprintf(__msg+__idx, "stack %08x - %08x\n", context.Esp, context.Esp+1024);
for(i=0; i<16; ++i)
{
fprintf(fException, "%08X : ", context.Esp+i*16);
//__idx+=sprintf(__msg+__idx, "%08X : ", context.Esp+i*16);
for(int j=0; j<16; ++j)
{
fprintf(fException, "%02X ", stack[i*16+j]);
//__idx+=sprintf(__msg+__idx, "%02X ", stack[i*16+j]);
}
fprintf(fException, "\n");
//__idx+=sprintf(__msg+__idx, "\n");
}
fprintf(fException, "\n");
//__idx+=sprintf(__msg+__idx, "\n");
*/
fflush(fException);
fclose(fException);
fException = NULL;
//WinExec()
/*CreateProcess("cmd.exe",NULL,NULL,NULL,FALSE,
CREATE_NEW_PROCESS_GROUP|DETACHED_PROCESS,NULL,NULL,NULL,NULL);
MessageBox(NULL,"게임 실행에 치명적인 문제가 발생하였습니다.\n게임을 종료하고 에러 로그를 남깁니다.\n에러 로그를 서버에 보내시겠습니까?","에러 발생!",MB_YESNO);*/
/*
__l.BeginCompressInBuffer(__msg,__idx,__cmsg);
if (__l.Compress())
{
//fprintf(fException,"Compress printing\n");
// send this to server
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
ioctlsocket(s,FIONBIO,0);
if (s==INVALID_SOCKET)
{
//fprintf(fException,"INVALID %X\n",WSAGetLastError());
}
sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(19294);
sa.sin_addr.s_addr = inet_addr("147.46.127.42");
if (connect(s,(sockaddr*)&sa,sizeof(sa)))
{
//fprintf(fException,"%X\n",WSAGetLastError());
}
int total = 0;
int ret=0;
while(1)
{
//ret = send(s,(char*)__msg+total,__idx-total,0);
ret = send(s,(char*)__l.GetBuffer()+total,__l.GetSize()-total,0);
//fprintf(fException,"send %d\n",ret);
if (ret<0)
{
//fprintf(fException,"%X\n",WSAGetLastError());
break;
}
total+=ret;
if (total>=__idx)
//if (total>=__l.GetSize())
break;
}
//__l.GetBuffer();
Sleep(500);
closesocket(s);
}*/
WinExec("errorlog.exe",SW_SHOW);
MessageBox(NULL, "A fatal error was encountered while running the game.\nAn error log was saved to ErrorLog.txt.\nPlease consider reporting this issue.", "Error!", MB_OK);
}
return EXCEPTION_EXECUTE_HANDLER;

View File

@ -120,9 +120,9 @@ void CLZObject::BeginCompress(const void * pvIn, UINT uiInLen)
m_pbIn = (const BYTE *) pvIn;
// sizeof(SHeader) +
// 암호화를 위한 fourCC 4바이트
// 압축된 후 만들어질 수 있는 최대 용량 +
// 암호화를 위한 8 바이트
// 암호화를 위한 fourCC 4바이트
// 압축된 후 만들어질 수 있는 최대 용량 +
// 암호화를 위한 8 바이트
m_dwBufferSize = sizeof(THeader) + sizeof(DWORD) + (uiInLen + uiInLen / 64 + 16 + 3) + 8;
m_pbBuffer = gs_freeMemMgr.Alloc(m_dwBufferSize);
@ -139,9 +139,9 @@ void CLZObject::BeginCompressInBuffer(const void * pvIn, UINT uiInLen, void * /*
m_pbIn = (const BYTE *) pvIn;
// sizeof(SHeader) +
// 암호화를 위한 fourCC 4바이트
// 압축된 후 만들어질 수 있는 최대 용량 +
// 암호화를 위한 8 바이트
// 암호화를 위한 fourCC 4바이트
// 압축된 후 만들어질 수 있는 최대 용량 +
// 암호화를 위한 8 바이트
m_dwBufferSize = sizeof(THeader) + sizeof(DWORD) + (uiInLen + uiInLen / 64 + 16 + 3) + 8;
m_pbBuffer = gs_freeMemMgr.Alloc(m_dwBufferSize);

View File

@ -12,9 +12,9 @@ class CLZObject
typedef struct SHeader
{
DWORD dwFourCC;
DWORD dwEncryptSize; // 암호화된 크기
DWORD dwCompressedSize; // 압축된 데이터 크기
DWORD dwRealSize; // 실제 데이터 크기
DWORD dwEncryptSize; // 암호화된 크기
DWORD dwCompressedSize; // 압축된 데이터 크기
DWORD dwRealSize; // 실제 데이터 크기
} THeader;
#pragma pack()

View File

@ -1,8 +1,8 @@
/*
* Filename: tea.c
* Description: TEA
* Description: TEA
*
* Author: (aka. , Cronan), (aka. myevan, )
* Author: (aka. , Cronan), (aka. myevan, )
*/
#include "StdAfx.h"
#include "tea.h"
@ -10,24 +10,24 @@
/*
* TEA Encryption Module Instruction
* Edited by aka. , Cronan
* Edited by aka. , Cronan
*
* void tea_code(const unsigned long sz, const unsigned long sy, const unsigned long *key, unsigned long *dest)
* void tea_decode(const unsigned long sz, const unsigned long sy, const unsigned long *key, unsigned long *dest)
* 8 / . key 16 .
* sz, sy 8 .
* 8 / . key 16 .
* sz, sy 8 .
*
* int tea_decrypt(unsigned long *dest, const unsigned long *src, const unsigned long *key, int size);
* int tea_encrypt(unsigned long *dest, const unsigned long *src, const unsigned long *key, int size);
* 8 / . size
* 8 8 "늘려서" .
* 8 / . size
* 8 8 "늘려서" .
*
* ex. tea_code(pdwSrc[1], pdwSrc[0], pdwKey, pdwDest);
* tea_decrypt(pdwDest, pdwSrc, pdwKey, nSize);
*/
#define TEA_ROUND 32 // 32 를 권장하며, 높을 수록 결과가 난해해 진다.
#define DELTA 0x9E3779B9 // DELTA 값 바꾸지 말것.
#define TEA_ROUND 32 // 32 를 권장하며, 높을 수록 결과가 난해해 진다.
#define DELTA 0x9E3779B9 // DELTA 값 바꾸지 말것.
void tea_code(const unsigned long sz, const unsigned long sy, const unsigned long *key, unsigned long *dest)
{

View File

@ -9,22 +9,10 @@
<Configuration>Distribute</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="MfcDebug|Win32">
<Configuration>MfcDebug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="MfcRelease|Win32">
<Configuration>MfcRelease</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="VTune|Win32">
<Configuration>VTune</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
@ -45,24 +33,6 @@
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
@ -80,61 +50,43 @@
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>17.0.32203.90</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)build\$(Configuration)\</OutDir>
<OutDir>$(SolutionDir)build\bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>Release</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<VcpkgUseStatic>true</VcpkgUseStatic>
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<VcpkgInstalledDir>$(SolutionDir)build\vcpkg\</VcpkgInstalledDir>
</PropertyGroup>
<PropertyGroup Label="Vcpkg">
<VcpkgEnableManifest>true</VcpkgEnableManifest>
@ -148,10 +100,6 @@
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\Debug/eterGrnLib.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
<ObjectFileName>.\Debug/</ObjectFileName>
<ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -177,11 +125,7 @@
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\Distribute/eterGrnLib.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\Distribute/</AssemblerListingLocation>
<ObjectFileName>.\Distribute/</ObjectFileName>
<ProgramDataBaseFileName>.\Distribute/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -198,97 +142,6 @@
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">
<ClCompile>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>.;../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\MfcRelease/eterGrnLib.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\MfcRelease/</AssemblerListingLocation>
<ObjectFileName>.\MfcRelease/</ObjectFileName>
<ProgramDataBaseFileName>.\MfcRelease/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\MfcRelease\eterGrnLib.lib</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">
<ClCompile>
<AdditionalOptions>/Gs %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>.;../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\VTune/eterGrnLib.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\VTune/</AssemblerListingLocation>
<ObjectFileName>.\VTune/</ObjectFileName>
<ProgramDataBaseFileName>.\VTune/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\VTune\eterGrnLib.lib</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;../../extern/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>.\MfcDebug/eterGrnLib.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\MfcDebug/</AssemblerListingLocation>
<ObjectFileName>.\MfcDebug/</ObjectFileName>
<ProgramDataBaseFileName>.\MfcDebug/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
<Lib>
<OutputFile>.\MfcDebug\eterGrnLib.lib</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MinSpace</Optimization>
@ -298,10 +151,6 @@
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\Release/eterGrnLib.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Release/</AssemblerListingLocation>
<ObjectFileName>.\Release/</ObjectFileName>
<ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
<BrowseInformation />
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -324,132 +173,77 @@
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="Material.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="Mesh.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="Model.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ModelInstance.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ModelInstanceCollisionDetection.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ModelInstanceModel.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ModelInstanceMotion.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ModelInstanceRender.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ModelInstanceUpdate.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="Motion.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="StdAfx.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
@ -459,54 +253,30 @@
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">stdafx.h</PrecompiledHeaderFile>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Create</PrecompiledHeader>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">Create</PrecompiledHeader>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">stdafx.h</PrecompiledHeaderFile>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">stdafx.h</PrecompiledHeaderFile>
</ClCompile>
<ClCompile Include="Thing.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="ThingInstance.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
<ClCompile Include="Util.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Distribute|Win32'">MaxSpeed</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">Disabled</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<BrowseInformation Condition="'$(Configuration)|$(Platform)'=='MfcDebug|Win32'">true</BrowseInformation>
<Optimization Condition="'$(Configuration)|$(Platform)'=='MfcRelease|Win32'">MinSpace</Optimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MinSpace</Optimization>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='VTune|Win32'">Size</FavorSizeOrSpeed>
</ClCompile>
</ItemGroup>
<ItemGroup>

View File

@ -282,8 +282,8 @@ void CGrannyLODController::AddModel(CGraphicThing * pThing, int iSrcModel, CGran
}
else
{
// FIXME : CModelInstance::m_pgrnWorldPose를 Update에서 사용하는데,
// Deform을 하지 않으면 NULL 입니다. 구조가 조금 바뀌어야 할지도.. - [levites]
// FIXME : CModelInstance::m_pgrnWorldPose를 Update에서 사용하는데,
// Deform을 하지 않으면 NULL 입니다. 구조가 조금 바뀌어야 할지도.. - [levites]
pModelInstance->DeformNoSkin(&ms_matIdentity);
}
@ -460,10 +460,10 @@ void CGrannyLODController::UpdateLODLevel(float fDistanceFromCenter, float fDist
assert(m_pCurrentModelInstance != NULL);
if (fDistanceFromCenter > LOD_APPLY_MIN) // 중심 LOD 예외 취소
if (fDistanceFromCenter > LOD_APPLY_MIN) // 중심 LOD 예외 취소
{
// 카메라부터 멀어질 수록 fLODRate가 작아진다
// 3개 LOD가 있을때.. 가장 먼게 0, 가까울 수록 숫자가 커진다
// 카메라부터 멀어질 수록 fLODRate가 작아진다
// 3개 LOD가 있을때.. 가장 먼게 0, 가까울 수록 숫자가 커진다
// 100fps 50fps 33fps 25fps 20fps
// 10ms 20ms 30ms 40ms 50ms

View File

@ -269,7 +269,7 @@ class CGrannyLODController : public CGraphicBase
BOOL isModelInstance();
CGrannyModelInstance* GetModelInstance();
bool HaveBlendThing() { return 0 != GetModelInstance() ? GetModelInstance()->HaveBlendThing() : false; } // NOTE: GetModelInstance() == 0일 때 클라 크래쉬나는 문제 수정(2012. 05. 07)
bool HaveBlendThing() { return 0 != GetModelInstance() ? GetModelInstance()->HaveBlendThing() : false; } // NOTE: GetModelInstance() == 0일 때 클라 크래쉬나는 문제 수정(2012. 05. 07)
protected:
void SetCurrentModelInstance(CGrannyModelInstance * pgrnModelInstance);

View File

@ -238,7 +238,7 @@ bool CGrannyMaterial::CreateFromGrannyMaterialPointer(granny_material * pgrnMate
pgrnOpacityTexture = GrannyGetMaterialTextureByType(m_pgrnMaterial, GrannyOpacityTexture);
}
// Two-Side 렌더링이 필요한 지 검사
// Two-Side 렌더링이 필요한 지 검사
{
granny_int32 twoSided = 0;
granny_data_type_definition TwoSidedFieldType[] =
@ -262,7 +262,7 @@ bool CGrannyMaterial::CreateFromGrannyMaterialPointer(granny_material * pgrnMate
if (pgrnOpacityTexture)
m_roImage[1].SetPointer(__GetImagePointer(pgrnOpacityTexture->FromFileName));
// 오퍼시티가 있으면 블렌딩 메쉬
// 오퍼시티가 있으면 블렌딩 메쉬
if (!m_roImage[1].IsNull())
m_eType = TYPE_BLEND_PNT;
else
@ -285,7 +285,7 @@ void CGrannyMaterial::__ApplyDiffuseRenderState()
if (m_bTwoSideRender)
{
// -_-렌더링 프로세스가 좀 구려서... Save & Restore 하면 순서때문에 좀 꼬인다. 귀찮으니 Save & Restore 대신 따로 저장해 둠.
// -_-렌더링 프로세스가 좀 구려서... Save & Restore 하면 순서때문에 좀 꼬인다. 귀찮으니 Save & Restore 대신 따로 저장해 둠.
m_dwLastCullRenderStateForTwoSideRendering = STATEMANAGER.GetRenderState(D3DRS_CULLMODE);
STATEMANAGER.SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
}
@ -511,7 +511,7 @@ DWORD CGrannyMaterialPalette::GetMaterialCount() const
/*
void CActorInstance::BeginSpecularRender()
{
// NOTE - Blending해서 찍는 부분은 Specular를 적용시키지 않는다 - [levites]
// NOTE - Blending해서 찍는 부분은 Specular를 적용시키지 않는다 - [levites]
STATEMANAGER.SaveRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, D3DXCOLOR(1.0f, 1.0f, 1.0f, m_AddColor.r));

View File

@ -159,7 +159,7 @@ bool CGrannyMesh::LoadTriGroupNodeList(CGrannyMaterialPalette& rkMtrlPal)
assert(m_triGroupNodes == NULL);
int mtrlCount = m_pgrnMesh->MaterialBindingCount;
if (mtrlCount <= 0) // 천의 동굴 2층 크래쉬 발생
if (mtrlCount <= 0) // 천의 동굴 2층 크래쉬 발생
return true;
int GroupNodeCount = GrannyGetMeshTriangleGroupCount(m_pgrnMesh);
@ -199,7 +199,7 @@ bool CGrannyMesh::LoadTriGroupNodeList(CGrannyMaterialPalette& rkMtrlPal)
void CGrannyMesh::RebuildTriGroupNodeList()
{
assert(!"CGrannyMesh::RebuildTriGroupNodeList() - 왜 리빌드를 하는가- -?");
assert(!"CGrannyMesh::RebuildTriGroupNodeList() - \xBF\xD6 \xB8\xAE\xBA\xF4\xB5\xE5\xB8\xA6 \xC7\xCF\xB4\xC2\xB0\xA1- -?");
/*
int mtrlCount = m_pgrnMesh->MaterialBindingCount;
int GroupNodeCount = GrannyGetMeshTriangleGroupCount(m_pgrnMesh);

View File

@ -155,7 +155,7 @@ bool CGrannyModel::LoadMeshs()
assert(m_meshs == NULL);
assert(m_pgrnModel != NULL);
if (m_pgrnModel->MeshBindingCount <= 0) // 메쉬가 없는 모델
if (m_pgrnModel->MeshBindingCount <= 0) // 메쉬가 없는 모델
return true;
granny_skeleton * pgrnSkeleton = m_pgrnModel->Skeleton;

View File

@ -55,12 +55,12 @@ class CGrannyModelInstance : public CGraphicCollisionObject
void DeformNoSkin(const D3DXMATRIX * c_pWorldMatrix);
void Deform(const D3DXMATRIX * c_pWorldMatrix);
// FIXME : 현재는 하드웨어의 한계로 2장의 텍스춰로 제한이 되어있는 상태이기에 이런
// 불안정한 아키텍춰가 가능하지만, 궁극적인 방향은 (모델 텍스춰 전부) + (효과용 텍스춰)
// 이런식의 자동 셋팅이 이뤄져야 되지 않나 생각합니다. - [levites]
// NOTE : 내부에 if문을 포함 시키기 보다는 조금은 번거롭지만 이렇게 함수 콜 자체를 분리
// 시키는 것이 퍼포먼스 적인 측면에서는 더 나은 것 같습니다. - [levites]
// NOTE : 건물은 무조건 OneTexture. 캐릭터는 경우에 따라 TwoTexture.
// FIXME : 현재는 하드웨어의 한계로 2장의 텍스춰로 제한이 되어있는 상태이기에 이런
// 불안정한 아키텍춰가 가능하지만, 궁극적인 방향은 (모델 텍스춰 전부) + (효과용 텍스춰)
// 이런식의 자동 셋팅이 이뤄져야 되지 않나 생각합니다. - [levites]
// NOTE : 내부에 if문을 포함 시키기 보다는 조금은 번거롭지만 이렇게 함수 콜 자체를 분리
// 시키는 것이 퍼포먼스 적인 측면에서는 더 나은 것 같습니다. - [levites]
// NOTE : 건물은 무조건 OneTexture. 캐릭터는 경우에 따라 TwoTexture.
void RenderWithOneTexture();
void RenderWithTwoTexture();
void BlendRenderWithOneTexture();
@ -160,7 +160,7 @@ class CGrannyModelInstance : public CGraphicCollisionObject
// Granny Data
granny_model_instance * m_pgrnModelInstance;
//granny_world_pose * m_pgrnWorldPose; // 현재 월드 포즈 포인터
//granny_world_pose * m_pgrnWorldPose; // 현재 월드 포즈 포인터
granny_control * m_pgrnCtrl;
granny_animation * m_pgrnAni;
@ -182,7 +182,7 @@ class CGrannyModelInstance : public CGraphicCollisionObject
CGrannyMaterialPalette m_kMtrlPal;
// WORK
granny_world_pose* m_pgrnWorldPoseReal; // 실제 메모리는 여기에 할당
granny_world_pose* m_pgrnWorldPoseReal; // 실제 메모리는 여기에 할당
std::vector<granny_mesh_binding*> m_vct_pgrnMeshBinding;
// Dynamic Vertex Buffer

View File

@ -239,7 +239,7 @@ void CGraphicThingInstance::DrawBoundBox()
D3DXVECTOR3 vtMax;
SetDiffuseColor(0.0f, 1.0f, 0.0f);
// 캐릭터 꽉차는 바운딩 박스
// 캐릭터 꽉차는 바운딩 박스
//GetBoundBox(&vtMin, &vtMax);
//DrawLineCube(vtMin.x, vtMin.y, vtMin.z, vtMax.x, vtMax.y, vtMax.z);
//const CThing::TMeshVector& rmeshVector=mc_pModel->meshVector;

View File

@ -161,7 +161,7 @@ void CGrannyModelInstance::__CreateMeshMatrices()
{
assert(m_pModel != NULL);
if (m_pModel->GetMeshCount() <= 0) // 메쉬가 없는 (카메라 같은) 모델도 간혹 있다..
if (m_pModel->GetMeshCount() <= 0) // 메쉬가 없는 (카메라 같은) 모델도 간혹 있다..
return;
int meshCount = m_pModel->GetMeshCount();
@ -274,14 +274,14 @@ const float * CGrannyModelInstance::GetBoneMatrixPointer(int iBone) const
const float * CGrannyModelInstance::GetCompositeBoneMatrixPointer(int iBone) const
{
// NOTE : GrannyGetWorldPose4x4는 스케일 값등이 잘못나올 수 있음.. 그래니가 속도를 위해
// GrannyGetWorldPose4x4에 모든 matrix 원소를 제 값으로 넣지 않음
// NOTE : GrannyGetWorldPose4x4는 스케일 값등이 잘못나올 수 있음.. 그래니가 속도를 위해
// GrannyGetWorldPose4x4에 모든 matrix 원소를 제 값으로 넣지 않음
return GrannyGetWorldPoseComposite4x4(__GetWorldPosePtr(), iBone);
}
void CGrannyModelInstance::ReloadTexture()
{
assert("현재 사용하지 않음 - CGrannyModelInstance::ReloadTexture()");
assert("\xC7\xF6\xC0\xE7 \xBB\xE7\xBF\xEB\xC7\xCF\xC1\xF6 \xBE\xCA\xC0\xBD - CGrannyModelInstance::ReloadTexture()");
/*
assert(m_pModel != NULL);
const CGrannyMaterialPalette & c_rGrannyMaterialPalette = m_pModel->GetMaterialPalette();

View File

@ -112,7 +112,7 @@ void CGrannyModelInstance::ChangeMotionPointer(const CGrannyMotion* pMotion, int
if (!pgrnModelInstance)
return;
// 보간 되는 앞부분을 스킵 하기 위해 LocalTime 을 어느 정도 무시한다. - [levites]
// 보간 되는 앞부분을 스킵 하기 위해 LocalTime 을 어느 정도 무시한다. - [levites]
float fSkipTime = 0.3f;
float localTime = GetLocalTime() - fSkipTime;

View File

@ -47,7 +47,7 @@ void CGrannyModelInstance::DeformNoSkin(const D3DXMATRIX * c_pWorldMatrix)
// With One Texture
void CGrannyModelInstance::RenderWithOneTexture()
{
// FIXME : Deform, Render, BlendRender를 묶어 상위에서 걸러주는 것이 더 나을 듯 - [levites]
// FIXME : Deform, Render, BlendRender를 묶어 상위에서 걸러주는 것이 더 나을 듯 - [levites]
if (IsEmpty())
return;
@ -99,7 +99,7 @@ void CGrannyModelInstance::BlendRenderWithOneTexture()
// With Two Texture
void CGrannyModelInstance::RenderWithTwoTexture()
{
// FIXME : Deform, Render, BlendRender를 묶어 상위에서 걸러주는 것이 더 나을 듯 - [levites]
// FIXME : Deform, Render, BlendRender를 묶어 상위에서 걸러주는 것이 더 나을 듯 - [levites]
if (IsEmpty())
return;

View File

@ -1,6 +1,6 @@
#pragma once
#pragma warning(disable:4786) // character 255 넘어가는거 끄기
#pragma warning(disable:4786) // character 255 넘어가는거 끄기
//#include <crtdbg.h>
#include <granny/granny.h>

View File

@ -342,8 +342,8 @@ bool CGraphicThingInstance::GetBonePosition(int iModelIndex, int iBoneIndex, flo
*pfz = pfMatrix[14];
return true;
}
//iSkelInstance 가 있으면 기본 본에 Link(본이 붙는것)시키고,
//없으면 기본 본에 attach(좌표만 가져다 쓰는것) 됩니다.
//iSkelInstance 가 있으면 기본 본에 Link(본이 붙는것)시키고,
//없으면 기본 본에 attach(좌표만 가져다 쓰는것) 됩니다.
bool CGraphicThingInstance::SetModelInstance(int iDstModelInstance, int iSrcModelThing, int iSrcModel,int iSkelInstance)
{
if (!CheckModelInstanceIndex(iDstModelInstance))
@ -735,7 +735,7 @@ void CGraphicThingInstance::UpdateLODLevel()
const D3DXVECTOR3 & c_rv3CameraPosition = pcurCamera->GetEye();
const D3DXVECTOR3 & c_v3Position = GetPosition();
// NOTE : 중심으로부터의 거리 계산에 z값 차이는 사용하지 않는다. - [levites]
// NOTE : 중심으로부터의 거리 계산에 z값 차이는 사용하지 않는다. - [levites]
CGrannyLODController::FUpdateLODLevel update;
update.fDistanceFromCenter = sqrtf((c_rv3TargetPosition.x - c_v3Position.x) * (c_rv3TargetPosition.x - c_v3Position.x) +
(c_rv3TargetPosition.y - c_v3Position.y) * (c_rv3TargetPosition.y - c_v3Position.y));

Some files were not shown because too many files have changed in this diff Show More