mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 14:37:41 +00:00
Compare commits
26 Commits
OPENURU_BU
...
ticket/56
Author | SHA1 | Date | |
---|---|---|---|
101ebbd717 | |||
0717a9e792 | |||
f293e06ade | |||
93491a7df4 | |||
6725fc49f0 | |||
e9786f9990 | |||
147f47e31c | |||
883495c35c | |||
e1306da736 | |||
8d1d813df5 | |||
65d50895bb | |||
6a41bdbee7 | |||
3dcf1c2f26 | |||
70449244f4 | |||
82abcb2f07 | |||
870d0534df | |||
1f09d6c48a | |||
66ce08ed67 | |||
1c1d3dd82e | |||
4924156ad4 | |||
13ea0a98de | |||
f9723462d7 | |||
7d3774a732 | |||
ea7e4b2ab5 | |||
5d5ba00f7d | |||
af38137822 |
@ -228,6 +228,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pfMoviePlayer", "FeatureLib
|
|||||||
{B2270EDB-6E92-332F-60C8-255E8AF2CFFC} = {B2270EDB-6E92-332F-60C8-255E8AF2CFFC}
|
{B2270EDB-6E92-332F-60C8-255E8AF2CFFC} = {B2270EDB-6E92-332F-60C8-255E8AF2CFFC}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundDecompress", "Apps\SoundDecompress\SoundDecompress.vcxproj", "{885DFDA6-A470-4770-9035-64F6BAD39CE7}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{59197414-421B-457E-A559-F6D875379603} = {59197414-421B-457E-A559-F6D875379603}
|
||||||
|
{EEFE2438-9F93-4C5C-B85D-6FDD431A1CF1} = {EEFE2438-9F93-4C5C-B85D-6FDD431A1CF1}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug_Internal|Win32 = Debug_Internal|Win32
|
Debug_Internal|Win32 = Debug_Internal|Win32
|
||||||
@ -1028,14 +1034,22 @@ Global
|
|||||||
{84868043-5563-435A-A176-76A059653D5C}.Release_Internal|Win32.Build.0 = Release_Internal|Win32
|
{84868043-5563-435A-A176-76A059653D5C}.Release_Internal|Win32.Build.0 = Release_Internal|Win32
|
||||||
{84868043-5563-435A-A176-76A059653D5C}.Release|Win32.ActiveCfg = Release|Win32
|
{84868043-5563-435A-A176-76A059653D5C}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{84868043-5563-435A-A176-76A059653D5C}.Release|Win32.Build.0 = Release|Win32
|
{84868043-5563-435A-A176-76A059653D5C}.Release|Win32.Build.0 = Release|Win32
|
||||||
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Debug_Internal|Win32.ActiveCfg = Debug|Win32
|
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
|
||||||
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Debug_Internal|Win32.Build.0 = Debug|Win32
|
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
|
||||||
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Debug|Win32.ActiveCfg = Debug|Win32
|
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Debug|Win32.Build.0 = Debug|Win32
|
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Release_Internal|Win32.ActiveCfg = Release_Internal|Win32
|
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Release_Internal|Win32.ActiveCfg = Release_Internal|Win32
|
||||||
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Release_Internal|Win32.Build.0 = Release_Internal|Win32
|
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Release_Internal|Win32.Build.0 = Release_Internal|Win32
|
||||||
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Release|Win32.ActiveCfg = Release|Win32
|
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Release|Win32.Build.0 = Release|Win32
|
{90045C91-576B-4639-8C2F-A6B5B70EC6A1}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{885DFDA6-A470-4770-9035-64F6BAD39CE7}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
|
||||||
|
{885DFDA6-A470-4770-9035-64F6BAD39CE7}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
|
||||||
|
{885DFDA6-A470-4770-9035-64F6BAD39CE7}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{885DFDA6-A470-4770-9035-64F6BAD39CE7}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{885DFDA6-A470-4770-9035-64F6BAD39CE7}.Release_Internal|Win32.ActiveCfg = Release_Internal|Win32
|
||||||
|
{885DFDA6-A470-4770-9035-64F6BAD39CE7}.Release_Internal|Win32.Build.0 = Release_Internal|Win32
|
||||||
|
{885DFDA6-A470-4770-9035-64F6BAD39CE7}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{885DFDA6-A470-4770-9035-64F6BAD39CE7}.Release|Win32.Build.0 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -111,6 +111,10 @@
|
|||||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\SoundDecompress\SoundDecompress.vcxproj">
|
||||||
|
<Project>{885DFDA6-A470-4770-9035-64F6BAD39CE7}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
418
Build/VS2010/Plasma/Apps/SoundDecompress/SoundDecompress.vcxproj
Normal file
418
Build/VS2010/Plasma/Apps/SoundDecompress/SoundDecompress.vcxproj
Normal file
@ -0,0 +1,418 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug_Internal|Win32">
|
||||||
|
<Configuration>Debug_Internal</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release_Internal|Win32">
|
||||||
|
<Configuration>Release_Internal</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{885DFDA6-A470-4770-9035-64F6BAD39CE7}</ProjectGuid>
|
||||||
|
<SccProjectName />
|
||||||
|
<SccLocalPath />
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</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)'=='Debug_Internal|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>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Internal|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>10.0.40219.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</OutDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">$(Configuration)\</IntDir>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">false</LinkIncremental>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</OutDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">$(Configuration)\</IntDir>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">false</LinkIncremental>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_dbg</TargetName>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">$(ProjectName)_dbg</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<AdditionalIncludeDirectories>../../../../../Sources/Plasma/CoreLib;../../../../../Sources/Plasma/NucleusLib/inc;../../../../../Sources/Plasma/PubUtilLib/inc;../../../StaticSDKs/XPlatform/OpenSSL/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||||
|
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||||
|
<PrecompiledHeaderOutputFile>
|
||||||
|
</PrecompiledHeaderOutputFile>
|
||||||
|
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DisableSpecificWarnings>4800</DisableSpecificWarnings>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>ws2_32.lib;Rpcrt4.lib;dxerr.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<AdditionalLibraryDirectories>..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\StaticSDKs\XPlatform\oggvorbis\libogg\win32\VS2010\Win32\Debug;..\..\..\StaticSDKs\XPlatform\oggvorbis\libvorbis\win32\VS2010\Win32\Debug;..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;libcid.lib;libcmtd.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AssemblyDebug>true</AssemblyDebug>
|
||||||
|
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
|
||||||
|
<MapExports>true</MapExports>
|
||||||
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
|
</Link>
|
||||||
|
<Midl>
|
||||||
|
<TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
|
||||||
|
<HeaderFileName>
|
||||||
|
</HeaderFileName>
|
||||||
|
</Midl>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Message>Copy to Tools directory</Message>
|
||||||
|
<Command>xcopy /Y /I "$(TargetPath)" ..\..\..\..\tools\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>0x0409</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<AdditionalIncludeDirectories>../../../../../Sources/Plasma/CoreLib;../../../../../Sources/Plasma/NucleusLib/inc;../../../../../Sources/Plasma/PubUtilLib/inc;../../../StaticSDKs/XPlatform/OpenSSL/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>WIN32;PLASMA_EXTERNAL_RELEASE;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||||
|
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||||
|
<PrecompiledHeaderOutputFile>
|
||||||
|
</PrecompiledHeaderOutputFile>
|
||||||
|
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DisableSpecificWarnings>4800</DisableSpecificWarnings>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>ws2_32.lib;Rpcrt4.lib;dxerr.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<AdditionalLibraryDirectories>..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\StaticSDKs\XPlatform\oggvorbis\libogg\win32\VS2010\Win32\Debug;..\..\..\StaticSDKs\XPlatform\oggvorbis\libvorbis\win32\VS2010\Win32\Debug;..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;libcid.lib;libcmtd.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AssemblyDebug>true</AssemblyDebug>
|
||||||
|
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
|
||||||
|
<MapExports>true</MapExports>
|
||||||
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
|
</Link>
|
||||||
|
<Midl>
|
||||||
|
<TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
|
||||||
|
<HeaderFileName>
|
||||||
|
</HeaderFileName>
|
||||||
|
</Midl>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Message>Copy to Tools directory</Message>
|
||||||
|
<Command>xcopy /Y /I "$(TargetPath)" ..\..\..\..\tools\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>0x0409</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>Full</Optimization>
|
||||||
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
|
<AdditionalIncludeDirectories>../../../../../Sources/Plasma/CoreLib;../../../../../Sources/Plasma/NucleusLib/inc;../../../../../Sources/Plasma/PubUtilLib/inc;../../../StaticSDKs/XPlatform/OpenSSL/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||||
|
<PrecompiledHeaderOutputFile>
|
||||||
|
</PrecompiledHeaderOutputFile>
|
||||||
|
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
|
<BrowseInformation>false</BrowseInformation>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<DebugInformationFormat>
|
||||||
|
</DebugInformationFormat>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<DisableSpecificWarnings>4800</DisableSpecificWarnings>
|
||||||
|
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>ws2_32.lib;Rpcrt4.lib;dxerr.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<AdditionalLibraryDirectories>..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\StaticSDKs\XPlatform\oggvorbis\libogg\win32\VS2010\Win32\Release;..\..\..\StaticSDKs\XPlatform\oggvorbis\libvorbis\win32\VS2010\Win32\Release;..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<IgnoreSpecificDefaultLibraries>libc.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AssemblyDebug>false</AssemblyDebug>
|
||||||
|
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
<MapExports>true</MapExports>
|
||||||
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
|
</Link>
|
||||||
|
<Midl>
|
||||||
|
<TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
|
||||||
|
<HeaderFileName>
|
||||||
|
</HeaderFileName>
|
||||||
|
</Midl>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Message>Copy to Tools directory</Message>
|
||||||
|
<Command>xcopy /Y /I "$(TargetPath)" ..\..\..\..\tools\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>0x0409</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>Full</Optimization>
|
||||||
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
|
<AdditionalIncludeDirectories>../../../../../Sources/Plasma/CoreLib;../../../../../Sources/Plasma/NucleusLib/inc;../../../../../Sources/Plasma/PubUtilLib/inc;../../../StaticSDKs/XPlatform/OpenSSL/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PLASMA_EXTERNAL_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;MS_NO_COREDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<FunctionLevelLinking>
|
||||||
|
</FunctionLevelLinking>
|
||||||
|
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<PrecompiledHeaderOutputFile>
|
||||||
|
</PrecompiledHeaderOutputFile>
|
||||||
|
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DebugInformationFormat>
|
||||||
|
</DebugInformationFormat>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>ws2_32.lib;Rpcrt4.lib;dxerr.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<AdditionalLibraryDirectories>..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\StaticSDKs\XPlatform\oggvorbis\libogg\win32\VS2010\Win32\Release;..\..\..\StaticSDKs\XPlatform\oggvorbis\libvorbis\win32\VS2010\Win32\Release;..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<IgnoreSpecificDefaultLibraries>libc.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AssemblyDebug>false</AssemblyDebug>
|
||||||
|
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
<MapExports>true</MapExports>
|
||||||
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
|
</Link>
|
||||||
|
<Midl>
|
||||||
|
<TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
|
||||||
|
<HeaderFileName>
|
||||||
|
</HeaderFileName>
|
||||||
|
</Midl>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Message>Copy to Tools directory</Message>
|
||||||
|
<Command>xcopy /Y /I "$(TargetPath)" ..\..\..\..\tools\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>0x0409</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\Apps\SoundDecompress\main.cpp">
|
||||||
|
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
||||||
|
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">Disabled</Optimization>
|
||||||
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
|
||||||
|
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">MaxSpeed</Optimization>
|
||||||
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\CoreLibExe\CoreLibExe.vcxproj">
|
||||||
|
<Project>{4054c94f-866a-4aa7-874b-2afcfef23a71}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\CoreLib\CoreLib.vcxproj">
|
||||||
|
<Project>{83a96477-baef-4db7-8134-aeadf4b2e63f}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnAddrInfo\pnAddrInfo.vcxproj">
|
||||||
|
<Project>{af37952c-0c38-4057-8d59-eaa18f28da26}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnDispatch\pnDispatch.vcxproj">
|
||||||
|
<Project>{e609c4f6-52a0-45c6-958a-8b41680ad809}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnFactory\pnFactory.vcxproj">
|
||||||
|
<Project>{7c9680f1-6d8c-429d-a3a9-0cd36d9aea0c}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnKeyedObject\pnKeyedObject.vcxproj">
|
||||||
|
<Project>{4f020dd6-7d46-49e1-bfc1-082d5f979dac}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnMessage\pnMessage.vcxproj">
|
||||||
|
<Project>{633286c6-e4e8-428f-b1ee-d48cdacc0490}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnModifier\pnModifier.vcxproj">
|
||||||
|
<Project>{b4752dfb-c7f8-4864-a23b-5f15bc64a7a0}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnNetCommon\pnNetCommon.vcxproj">
|
||||||
|
<Project>{90da3776-6b7c-48a0-8cec-1a60db5be61f}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnNucleusInc\pnNucleusInc.vcxproj">
|
||||||
|
<Project>{f2635bc2-a8ba-4d43-807a-ea91307dbf93}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnProduct\pnProduct.vcxproj">
|
||||||
|
<Project>{ca208971-6c77-47f6-aa4b-fb6ecc071132}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnSceneObject\pnSceneObject.vcxproj">
|
||||||
|
<Project>{c0e5499c-1b5b-49a2-9047-95ab6a6c2b13}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnTimer\pnTimer.vcxproj">
|
||||||
|
<Project>{59197414-421b-457e-a559-f6d875379603}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnUtilsExe\pnUtilsExe.vcxproj">
|
||||||
|
<Project>{08eb4dcb-75f7-419e-a212-0bead6a10ff1}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\NucleusLib\pnUtils\pnUtils.vcxproj">
|
||||||
|
<Project>{89316659-f4a9-4e92-8200-c36288a61b9b}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plAgeDescription\plAgeDescription.vcxproj">
|
||||||
|
<Project>{7147ce72-97c7-48d9-b3be-e0fca3fba83c}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plAudioCore\plAudioCore.vcxproj">
|
||||||
|
<Project>{99445121-67ba-4696-8904-f2fc13c928bb}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plCompression\plCompression.vcxproj">
|
||||||
|
<Project>{7d696f05-8019-4029-a6e5-1225619ed40a}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plFile\plFile.vcxproj">
|
||||||
|
<Project>{eefe2438-9f93-4c5c-b85d-6fdd431a1cf1}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plNetCommon\plNetCommon.vcxproj">
|
||||||
|
<Project>{050ac8c8-a537-46fe-afee-bd3f9cb98f69}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plMessage\plMessage.vcxproj">
|
||||||
|
<Project>{05ab7d6b-5c79-4aa2-bee0-b7f9cbfb976a}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plResMgr\plResMgr.vcxproj">
|
||||||
|
<Project>{e157e0e4-ac35-4435-95a6-9179aab66436}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plStatusLog\plStatusLog.vcxproj">
|
||||||
|
<Project>{21694294-7039-4c2a-b332-08dcad747f05}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plUnifiedTime\plUnifiedTime.vcxproj">
|
||||||
|
<Project>{fe69f407-565e-4c33-a91a-fba622d59c18}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\PubUtilLib\plUUID\plUUID.vcxproj">
|
||||||
|
<Project>{bbdf8302-be9c-43ec-aaf8-912e601515b3}</Project>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Resource Files">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\Apps\SoundDecompress\main.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
@ -167,20 +167,18 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Intern.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Intern.h" />
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Pch.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Pch.h" />
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbAuthKey.hpp" />
|
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbCsrKey.hpp" />
|
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbGameKey.hpp" />
|
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbGateKeeperKey.hpp" />
|
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNetBase.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNetBase.h" />
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbAllIncludes.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbAllIncludes.h" />
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbConst.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbConst.h" />
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbEchoMsgs.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbEchoMsgs.h" />
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbError.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbError.h" />
|
||||||
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbKeys.h" />
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbProtocol.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbProtocol.h" />
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbSrvs.h" />
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbSrvs.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbError.cpp" />
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbError.cpp" />
|
||||||
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbKeys.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbProtocol.cpp" />
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbProtocol.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbSrvs.cpp" />
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbSrvs.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -20,18 +20,6 @@
|
|||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Pch.h">
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Pch.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbAuthKey.hpp">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbCsrKey.hpp">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbGameKey.hpp">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNbGateKeeperKey.hpp">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNetBase.h">
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\pnNetBase.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@ -53,6 +41,9 @@
|
|||||||
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbSrvs.h">
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbSrvs.h">
|
||||||
<Filter>Private</Filter>
|
<Filter>Private</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbKeys.h">
|
||||||
|
<Filter>Private</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbError.cpp">
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbError.cpp">
|
||||||
@ -64,5 +55,8 @@
|
|||||||
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbSrvs.cpp">
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbSrvs.cpp">
|
||||||
<Filter>Private</Filter>
|
<Filter>Private</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\..\Sources\Plasma\NucleusLib\pnNetBase\Private\pnNbKeys.cpp">
|
||||||
|
<Filter>Private</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
261
Sources/Plasma/Apps/SoundDecompress/main.cpp
Normal file
261
Sources/Plasma/Apps/SoundDecompress/main.cpp
Normal file
@ -0,0 +1,261 @@
|
|||||||
|
/*==LICENSE==*
|
||||||
|
|
||||||
|
CyanWorlds.com Engine - MMOG client, server and tools
|
||||||
|
Copyright (C) 2011 Cyan Worlds, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Additional permissions under GNU GPL version 3 section 7
|
||||||
|
|
||||||
|
If you modify this Program, or any covered work, by linking or
|
||||||
|
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
|
||||||
|
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
|
||||||
|
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
|
||||||
|
(or a modified version of those libraries),
|
||||||
|
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
|
||||||
|
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
|
||||||
|
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
|
||||||
|
licensors of this Program grant you additional
|
||||||
|
permission to convey the resulting work. Corresponding Source for a
|
||||||
|
non-source form of such a combination shall include the source code for
|
||||||
|
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
|
||||||
|
work.
|
||||||
|
|
||||||
|
You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||||
|
or by snail mail at:
|
||||||
|
Cyan Worlds, Inc.
|
||||||
|
14617 N Newport Hwy
|
||||||
|
Mead, WA 99021
|
||||||
|
|
||||||
|
*==LICENSE==*/
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
|
#include "../plResMgr/plResManager.h"
|
||||||
|
#include "../plResMgr/plResMgrSettings.h"
|
||||||
|
#include "../plResMgr/plRegistryHelpers.h"
|
||||||
|
#include "../plResMgr/plRegistryNode.h"
|
||||||
|
|
||||||
|
#include "../plAgeDescription/plAgeManifest.h"
|
||||||
|
|
||||||
|
#include "../plAudioCore/plSoundBuffer.h"
|
||||||
|
|
||||||
|
#include "hsUtils.h"
|
||||||
|
#include "../plFile/hsFiles.h"
|
||||||
|
#include "../plFile/plFileUtils.h"
|
||||||
|
|
||||||
|
#define NO_AV_MSGS
|
||||||
|
#include "pnNucleusCreatables.h"
|
||||||
|
#include "../pnDispatch/pnDispatchCreatable.h"
|
||||||
|
#include "../pnKeyedObject/pnKeyedObjectCreatable.h"
|
||||||
|
#include "../pnMessage/pnMessageCreatable.h"
|
||||||
|
#include "../pnNetCommon/pnNetCommonCreatable.h"
|
||||||
|
#include "../pnSceneObject/pnSceneObjectCreatable.h"
|
||||||
|
#include "../pnTimer/pnTimerCreatable.h"
|
||||||
|
#include "../plAudioCore/plAudioCoreCreatable.h"
|
||||||
|
#include "../plNetCommon/plNetCommonCreatable.h"
|
||||||
|
#include "../plMessage/plMessageCreatable.h"
|
||||||
|
#include "../plResMgr/plResMgrCreatable.h"
|
||||||
|
|
||||||
|
typedef std::set<std::pair<std::string, unsigned short>> SoundSet;
|
||||||
|
|
||||||
|
enum OutputStyle
|
||||||
|
{
|
||||||
|
kSilent,
|
||||||
|
kProgress,
|
||||||
|
kVerbose
|
||||||
|
};
|
||||||
|
|
||||||
|
//// plSoundBufferCollector //////////////////////////////////////////////////
|
||||||
|
// Page iterator that collects all the plSoundBuffers in all of our pages
|
||||||
|
|
||||||
|
class plSoundBufferCollector : public plRegistryPageIterator, public plKeyCollector
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
plSoundBufferCollector(std::set<plKey>& keyArray)
|
||||||
|
: plKeyCollector(keyArray) {}
|
||||||
|
|
||||||
|
hsBool EatPage(plRegistryPageNode* page)
|
||||||
|
{
|
||||||
|
if (page->IsValid())
|
||||||
|
{
|
||||||
|
page->LoadKeys();
|
||||||
|
return page->IterateKeys(this, plSoundBuffer::Index());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr, "INVALID PAGE: %s\n", page->GetPagePath());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void PrintHelp()
|
||||||
|
{
|
||||||
|
printf("Plasma Sound Decompressor\n");
|
||||||
|
printf("-------------------------\n");
|
||||||
|
printf("-s, --silent Run silently, no output\n");
|
||||||
|
printf("-v, --verbose Print each filename when decompressing\n");
|
||||||
|
printf("-f, --force Force decompressing existing files\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CollectSounds(plResManager* rm, SoundSet& sfxArray)
|
||||||
|
{
|
||||||
|
std::set<plKey> soundKeys;
|
||||||
|
|
||||||
|
plSoundBufferCollector soundCollector(soundKeys);
|
||||||
|
rm->IterateAllPages(&soundCollector);
|
||||||
|
|
||||||
|
for (auto it = soundKeys.begin(); it != soundKeys.end(); ++it)
|
||||||
|
{
|
||||||
|
plSoundBuffer* buffer = plSoundBuffer::ConvertNoRef((*it)->VerifyLoaded());
|
||||||
|
if (buffer)
|
||||||
|
{
|
||||||
|
// Ref it...
|
||||||
|
buffer->GetKey()->RefObject();
|
||||||
|
|
||||||
|
// Get the filename from it and add that file if necessary
|
||||||
|
const char* filename = buffer->GetFileName();
|
||||||
|
if (filename)
|
||||||
|
{
|
||||||
|
unsigned short flags = 0;
|
||||||
|
|
||||||
|
if (stricmp(plFileUtils::GetFileExt(filename), "wav") != 0)
|
||||||
|
{
|
||||||
|
if (buffer->HasFlag(plSoundBuffer::kOnlyLeftChannel) ||
|
||||||
|
buffer->HasFlag(plSoundBuffer::kOnlyRightChannel))
|
||||||
|
hsSetBits(flags, plManifestFile::kSndFlagCacheSplit);
|
||||||
|
else if (buffer->HasFlag(plSoundBuffer::kStreamCompressed))
|
||||||
|
hsSetBits(flags, plManifestFile::kSndFlagStreamCompressed);
|
||||||
|
else
|
||||||
|
hsSetBits(flags, plManifestFile::kSndFlagCacheStereo);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::pair<std::string, unsigned short> pair = std::make_pair(filename, flags);
|
||||||
|
sfxArray.insert(pair);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unref the object so it goes away
|
||||||
|
buffer->GetKey()->UnRefObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
soundKeys.clear();
|
||||||
|
|
||||||
|
plIndirectUnloadIterator iter;
|
||||||
|
rm->IterateAllPages(&iter);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DecompressSounds(SoundSet& sounds, bool overwrite, OutputStyle verbosity)
|
||||||
|
{
|
||||||
|
int total = sounds.size();
|
||||||
|
int curr = 0;
|
||||||
|
|
||||||
|
if (verbosity == kVerbose)
|
||||||
|
{
|
||||||
|
printf("There are %d sounds\n\n", total);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto it = sounds.begin(); it != sounds.end(); ++it)
|
||||||
|
{
|
||||||
|
curr++;
|
||||||
|
char path[256];
|
||||||
|
memset(path, 0, sizeof(path));
|
||||||
|
strcat(path, "sfx\\");
|
||||||
|
strcat(path, it->first.c_str());
|
||||||
|
|
||||||
|
if (verbosity == kVerbose)
|
||||||
|
{
|
||||||
|
printf("%s\n", path);
|
||||||
|
}
|
||||||
|
else if (verbosity == kProgress)
|
||||||
|
{
|
||||||
|
int percent = (100 * curr) / total;
|
||||||
|
int progress = int((float(curr) / total) * 75);
|
||||||
|
|
||||||
|
fprintf(stdout, "\r%3d%% ", percent);
|
||||||
|
for (int i = 0; i < progress; i++)
|
||||||
|
{
|
||||||
|
fprintf(stdout, "=");
|
||||||
|
}
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hsCheckBits(it->second, plManifestFile::kSndFlagCacheSplit))
|
||||||
|
{
|
||||||
|
plAudioFileReader::CacheFile(path, true, !overwrite);
|
||||||
|
}
|
||||||
|
else if (hsCheckBits(it->second, plManifestFile::kSndFlagCacheStereo))
|
||||||
|
{
|
||||||
|
plAudioFileReader::CacheFile(path, false, !overwrite);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (verbosity == kProgress)
|
||||||
|
{
|
||||||
|
// Hack to ensure we always end with 100%
|
||||||
|
fprintf(stdout, "\r100%%\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, const char** argv)
|
||||||
|
{
|
||||||
|
bool overwrite = false;
|
||||||
|
OutputStyle verbosity = kProgress;
|
||||||
|
|
||||||
|
for (int arg = 1; arg < argc; arg++)
|
||||||
|
{
|
||||||
|
if (!strcmp(argv[arg], "-h") || !strcmp(argv[arg], "--help"))
|
||||||
|
{
|
||||||
|
PrintHelp();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (!strcmp(argv[arg], "-s") || !strcmp(argv[arg], "--silent"))
|
||||||
|
{
|
||||||
|
verbosity = kSilent;
|
||||||
|
}
|
||||||
|
else if (!strcmp(argv[arg], "-v") || !strcmp(argv[arg], "--verbose"))
|
||||||
|
{
|
||||||
|
verbosity = kVerbose;
|
||||||
|
}
|
||||||
|
else if (!strcmp(argv[arg], "-f") || !strcmp(argv[arg], "--force"))
|
||||||
|
{
|
||||||
|
overwrite = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Init our special resMgr
|
||||||
|
plResMgrSettings::Get().SetFilterNewerPageVersions(false);
|
||||||
|
plResMgrSettings::Get().SetFilterOlderPageVersions(false);
|
||||||
|
plResMgrSettings::Get().SetLoadPagesOnInit(true);
|
||||||
|
|
||||||
|
plResManager* rm = new plResManager();
|
||||||
|
rm->SetDataPath("dat");
|
||||||
|
hsgResMgr::Init(rm);
|
||||||
|
|
||||||
|
SoundSet sounds;
|
||||||
|
|
||||||
|
CollectSounds(rm, sounds);
|
||||||
|
DecompressSounds(sounds, overwrite, verbosity);
|
||||||
|
|
||||||
|
hsgResMgr::Shutdown();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -7,7 +7,8 @@
|
|||||||
//
|
//
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
// Generated from the TEXTINCLUDE 2 resource.
|
||||||
//
|
//
|
||||||
#include "afxres.h"
|
#include <windows.h>
|
||||||
|
#define IDC_STATIC (-1)
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
@ -72,6 +72,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
|
|
||||||
#include "../plPhysX/plSimulationMgr.h"
|
#include "../plPhysX/plSimulationMgr.h"
|
||||||
|
|
||||||
|
#include "pfConsole/pfConsoleEngine.h"
|
||||||
|
|
||||||
#include "res\resource.h"
|
#include "res\resource.h"
|
||||||
|
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
@ -112,6 +114,7 @@ enum
|
|||||||
kArgAuthSrv,
|
kArgAuthSrv,
|
||||||
kArgFileSrv,
|
kArgFileSrv,
|
||||||
kArgGateKeeperSrv,
|
kArgGateKeeperSrv,
|
||||||
|
kArgServerIni,
|
||||||
kArgLocalData,
|
kArgLocalData,
|
||||||
kArgBackgroundDownloader,
|
kArgBackgroundDownloader,
|
||||||
};
|
};
|
||||||
@ -122,6 +125,7 @@ static const CmdArgDef s_cmdLineArgs[] = {
|
|||||||
{ kCmdArgFlagged | kCmdTypeString, L"AuthSrv", kArgAuthSrv },
|
{ kCmdArgFlagged | kCmdTypeString, L"AuthSrv", kArgAuthSrv },
|
||||||
{ kCmdArgFlagged | kCmdTypeString, L"FileSrv", kArgFileSrv },
|
{ kCmdArgFlagged | kCmdTypeString, L"FileSrv", kArgFileSrv },
|
||||||
{ kCmdArgFlagged | kCmdTypeString, L"GateKeeperSrv", kArgGateKeeperSrv },
|
{ kCmdArgFlagged | kCmdTypeString, L"GateKeeperSrv", kArgGateKeeperSrv },
|
||||||
|
{ kCmdArgFlagged | kCmdTypeString, L"ServerIni", kArgServerIni },
|
||||||
{ kCmdArgFlagged | kCmdTypeBool, L"LocalData", kArgLocalData },
|
{ kCmdArgFlagged | kCmdTypeBool, L"LocalData", kArgLocalData },
|
||||||
{ kCmdArgFlagged | kCmdTypeBool, L"BGDownload", kArgBackgroundDownloader },
|
{ kCmdArgFlagged | kCmdTypeBool, L"BGDownload", kArgBackgroundDownloader },
|
||||||
};
|
};
|
||||||
@ -1321,7 +1325,7 @@ void StatusCallback(void *param)
|
|||||||
while(s_loginDlgRunning)
|
while(s_loginDlgRunning)
|
||||||
{
|
{
|
||||||
// get status message from webpage and display in status area.
|
// get status message from webpage and display in status area.
|
||||||
const wchar *path = BuildTypeServerStatusPath();
|
const wchar *path = GetServerStatusUrl();
|
||||||
if(path)
|
if(path)
|
||||||
{
|
{
|
||||||
HINTERNET hSession = 0;
|
HINTERNET hSession = 0;
|
||||||
@ -1336,22 +1340,51 @@ void StatusCallback(void *param)
|
|||||||
);
|
);
|
||||||
if(hSession)
|
if(hSession)
|
||||||
{
|
{
|
||||||
HINTERNET hConnect = WinHttpConnect( hSession, STATUS_PATH, INTERNET_DEFAULT_HTTP_PORT, 0);
|
INTERNET_PORT port = INTERNET_DEFAULT_HTTP_PORT;
|
||||||
|
const wchar* truncpath = path;
|
||||||
|
|
||||||
|
if (wcsncmp(path, L"http:", 5) == 0) {
|
||||||
|
truncpath += 7;
|
||||||
|
} else if (wcsncmp(path, L"https:", 6) == 0) {
|
||||||
|
port = INTERNET_DEFAULT_HTTPS_PORT;
|
||||||
|
truncpath += 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
const wchar* pathval = wcschr(truncpath, L'/');
|
||||||
|
const wchar* portnum = wcschr(truncpath, L':');
|
||||||
|
|
||||||
|
wchar host[256];
|
||||||
|
if (portnum != nil && portnum < pathval) {
|
||||||
|
int count = wcslen(truncpath) - wcslen(portnum);
|
||||||
|
wcsncpy(host, truncpath, count);
|
||||||
|
host[count] = L'\0';
|
||||||
|
|
||||||
|
unsigned long parsedport = wcstoul(portnum + 1, nil, 10);
|
||||||
|
if (parsedport != 0) {
|
||||||
|
port = (INTERNET_PORT)parsedport;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int count = wcslen(truncpath) - wcslen(pathval);
|
||||||
|
wcsncpy(host, truncpath, count);
|
||||||
|
host[count] = L'\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
HINTERNET hConnect = WinHttpConnect( hSession, host, port, 0);
|
||||||
if(hConnect)
|
if(hConnect)
|
||||||
{
|
{
|
||||||
HINTERNET hRequest = WinHttpOpenRequest(
|
HINTERNET hRequest = WinHttpOpenRequest(
|
||||||
hConnect,
|
hConnect,
|
||||||
L"GET",
|
L"GET",
|
||||||
path,
|
pathval,
|
||||||
NULL,
|
NULL,
|
||||||
WINHTTP_NO_REFERER,
|
WINHTTP_NO_REFERER,
|
||||||
WINHTTP_DEFAULT_ACCEPT_TYPES,
|
WINHTTP_DEFAULT_ACCEPT_TYPES,
|
||||||
0
|
(port == INTERNET_DEFAULT_HTTPS_PORT ? WINHTTP_FLAG_SECURE : 0)
|
||||||
);
|
);
|
||||||
if(hRequest)
|
if(hRequest)
|
||||||
{
|
{
|
||||||
static char data[256] = {0};
|
static char data[256] = {0};
|
||||||
DWORD bytesRead;
|
DWORD bytesRead = 0;
|
||||||
if(
|
if(
|
||||||
WinHttpSendRequest(
|
WinHttpSendRequest(
|
||||||
hRequest,
|
hRequest,
|
||||||
@ -1528,7 +1561,8 @@ BOOL CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
|
|||||||
}
|
}
|
||||||
else if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_URULOGIN_GAMETAPLINK)
|
else if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_URULOGIN_GAMETAPLINK)
|
||||||
{
|
{
|
||||||
ShellExecute(NULL, "open", "http://www.mystonline.com/signup.html", NULL, NULL, SW_SHOWNORMAL);
|
const wchar *signupurl = GetServerSignupUrl();
|
||||||
|
ShellExecuteW(NULL, L"open", signupurl, NULL, NULL, SW_SHOWNORMAL);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -1708,6 +1742,13 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nC
|
|||||||
if(cmdParser.IsSpecified(kArgBackgroundDownloader))
|
if(cmdParser.IsSpecified(kArgBackgroundDownloader))
|
||||||
gUseBackgroundDownloader = true;
|
gUseBackgroundDownloader = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const wchar *serverIni = nil;
|
||||||
|
if(cmdParser.IsSpecified(kArgServerIni))
|
||||||
|
{
|
||||||
|
serverIni = cmdParser.GetString(kArgServerIni);
|
||||||
|
}
|
||||||
|
|
||||||
if(cmdParser.IsSpecified(kArgAuthSrv))
|
if(cmdParser.IsSpecified(kArgAuthSrv))
|
||||||
{
|
{
|
||||||
SetAuthSrvHostname(cmdParser.GetString(kArgAuthSrv));
|
SetAuthSrvHostname(cmdParser.GetString(kArgAuthSrv));
|
||||||
@ -1810,6 +1851,20 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nC
|
|||||||
return PARABLE_NORMAL_EXIT;
|
return PARABLE_NORMAL_EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef PLASMA_EXTERNAL_RELEASE
|
||||||
|
/////////<<<<<<<<
|
||||||
|
if (serverIni) {
|
||||||
|
FILE *serverIniFile = _wfopen(serverIni, L"rb");
|
||||||
|
if (serverIniFile)
|
||||||
|
{
|
||||||
|
fclose(serverIniFile);
|
||||||
|
pfConsoleEngine tempConsole;
|
||||||
|
tempConsole.ExecuteFile(serverIni);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/////////<<<<<<<<
|
||||||
|
#endif
|
||||||
|
|
||||||
NetCliAuthAutoReconnectEnable(false);
|
NetCliAuthAutoReconnectEnable(false);
|
||||||
|
|
||||||
NetCommSetReadIniAccountInfo(!doIntroDialogs);
|
NetCommSetReadIniAccountInfo(!doIntroDialogs);
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
//
|
//
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
// Generated from the TEXTINCLUDE 2 resource.
|
||||||
//
|
//
|
||||||
#include "afxres.h"
|
#include <windows.h>
|
||||||
|
#define IDC_STATIC (-1)
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
@ -1071,3 +1071,336 @@ PF_CONSOLE_CMD(
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
*
|
||||||
|
* Server
|
||||||
|
*
|
||||||
|
***/
|
||||||
|
|
||||||
|
#ifndef LIMIT_CONSOLE_COMMANDS
|
||||||
|
|
||||||
|
//TODO: Fix Plasma to use OpenSSL's byte order (or better yet, to use OpenSSL),
|
||||||
|
// so this hack isn't needed
|
||||||
|
static void swap_key_bytes(byte keyData[])
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < (kNetDiffieHellmanKeyBits / 16); ++i)
|
||||||
|
std::swap(keyData[i], keyData[ (kNetDiffieHellmanKeyBits / 8) - i - 1 ]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
// Server group
|
||||||
|
PF_CONSOLE_GROUP(Server)
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server,
|
||||||
|
Status,
|
||||||
|
"string url",
|
||||||
|
"Set the server's status URL"
|
||||||
|
) {
|
||||||
|
wchar_t *wurl = hsStringToWString((const char *)params[0]);
|
||||||
|
SetServerStatusUrl(wurl);
|
||||||
|
delete [] wurl;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server,
|
||||||
|
Signup,
|
||||||
|
"string url",
|
||||||
|
"Set the server's new user sign-up URL"
|
||||||
|
) {
|
||||||
|
wchar_t *wurl = hsStringToWString((const char *)params[0]);
|
||||||
|
SetServerSignupUrl(wurl);
|
||||||
|
delete [] wurl;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server,
|
||||||
|
DispName,
|
||||||
|
"string name",
|
||||||
|
"Set the displayable server name"
|
||||||
|
) {
|
||||||
|
wchar_t *wname = hsStringToWString((const char *)params[0]);
|
||||||
|
SetServerDisplayName(wname);
|
||||||
|
delete [] wname;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server,
|
||||||
|
Port,
|
||||||
|
"int port",
|
||||||
|
"Set the server's port"
|
||||||
|
) {
|
||||||
|
SetClientPort((int)params[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
// Server.File group
|
||||||
|
PF_CONSOLE_SUBGROUP(Server, File)
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_File,
|
||||||
|
Host,
|
||||||
|
"string address",
|
||||||
|
"Set the File Server address"
|
||||||
|
) {
|
||||||
|
wchar_t *wHost = hsStringToWString((const char *)params[0]);
|
||||||
|
SetFileSrvHostname(wHost);
|
||||||
|
delete [] wHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
// Server.Auth group
|
||||||
|
PF_CONSOLE_SUBGROUP(Server, Auth)
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Auth,
|
||||||
|
Host,
|
||||||
|
"string address",
|
||||||
|
"Set the Auth Server address"
|
||||||
|
) {
|
||||||
|
wchar_t *wHost = hsStringToWString((const char *)params[0]);
|
||||||
|
SetAuthSrvHostname(wHost);
|
||||||
|
delete [] wHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Auth,
|
||||||
|
N,
|
||||||
|
"string base64Key",
|
||||||
|
"Set the Auth Server N key"
|
||||||
|
) {
|
||||||
|
int baseLength = hsStrlen((const char *)params[0]);
|
||||||
|
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) {
|
||||||
|
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||||
|
kNetDiffieHellmanKeyBits / 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||||
|
kNetDiffieHellmanKeyBits / 8, kAuthDhNData);
|
||||||
|
swap_key_bytes(kAuthDhNData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Auth,
|
||||||
|
X,
|
||||||
|
"string base64Key",
|
||||||
|
"Set the Auth Server X key"
|
||||||
|
) {
|
||||||
|
int baseLength = hsStrlen((const char *)params[0]);
|
||||||
|
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) {
|
||||||
|
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||||
|
kNetDiffieHellmanKeyBits / 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||||
|
kNetDiffieHellmanKeyBits / 8, kAuthDhXData);
|
||||||
|
swap_key_bytes(kAuthDhXData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Auth,
|
||||||
|
G,
|
||||||
|
"int GValue",
|
||||||
|
"Set the Auth Server G value"
|
||||||
|
) {
|
||||||
|
kAuthDhGValue = (int)params[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
// Server.Csr group
|
||||||
|
PF_CONSOLE_SUBGROUP(Server, Csr)
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Csr,
|
||||||
|
Host,
|
||||||
|
"string address",
|
||||||
|
"Set the Csr Server address"
|
||||||
|
) {
|
||||||
|
wchar_t *wHost = hsStringToWString((const char *)params[0]);
|
||||||
|
SetCsrSrvHostname(wHost);
|
||||||
|
delete [] wHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Csr,
|
||||||
|
N,
|
||||||
|
"string base64Key",
|
||||||
|
"Set the Csr Server N key"
|
||||||
|
) {
|
||||||
|
int baseLength = hsStrlen((const char *)params[0]);
|
||||||
|
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) {
|
||||||
|
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||||
|
kNetDiffieHellmanKeyBits / 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||||
|
kNetDiffieHellmanKeyBits / 8, kCsrDhNData);
|
||||||
|
swap_key_bytes(kCsrDhNData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Csr,
|
||||||
|
X,
|
||||||
|
"string base64Key",
|
||||||
|
"Set the Csr Server X key"
|
||||||
|
) {
|
||||||
|
int baseLength = hsStrlen((const char *)params[0]);
|
||||||
|
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) {
|
||||||
|
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||||
|
kNetDiffieHellmanKeyBits / 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||||
|
kNetDiffieHellmanKeyBits / 8, kCsrDhXData);
|
||||||
|
swap_key_bytes(kCsrDhXData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Csr,
|
||||||
|
G,
|
||||||
|
"int GValue",
|
||||||
|
"Set the Csr Server G value"
|
||||||
|
) {
|
||||||
|
kCsrDhGValue = (int)params[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
// Server.Game group
|
||||||
|
PF_CONSOLE_SUBGROUP(Server, Game)
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Game,
|
||||||
|
N,
|
||||||
|
"string base64Key",
|
||||||
|
"Set the Game Server N key"
|
||||||
|
) {
|
||||||
|
int baseLength = hsStrlen((const char *)params[0]);
|
||||||
|
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) {
|
||||||
|
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||||
|
kNetDiffieHellmanKeyBits / 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||||
|
kNetDiffieHellmanKeyBits / 8, kGameDhNData);
|
||||||
|
swap_key_bytes(kGameDhNData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Game,
|
||||||
|
X,
|
||||||
|
"string base64Key",
|
||||||
|
"Set the Game Server X key"
|
||||||
|
) {
|
||||||
|
int baseLength = hsStrlen((const char *)params[0]);
|
||||||
|
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) {
|
||||||
|
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||||
|
kNetDiffieHellmanKeyBits / 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||||
|
kNetDiffieHellmanKeyBits / 8, kGameDhXData);
|
||||||
|
swap_key_bytes(kGameDhXData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Game,
|
||||||
|
G,
|
||||||
|
"int GValue",
|
||||||
|
"Set the Game Server G value"
|
||||||
|
) {
|
||||||
|
kGameDhGValue = (int)params[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
// Server.Gate group
|
||||||
|
PF_CONSOLE_SUBGROUP(Server, Gate)
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Gate,
|
||||||
|
Host,
|
||||||
|
"string address",
|
||||||
|
"Set the GateKeeper Server address"
|
||||||
|
) {
|
||||||
|
wchar_t *wHost = hsStringToWString((const char *)params[0]);
|
||||||
|
SetGateKeeperSrvHostname(wHost);
|
||||||
|
delete [] wHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Gate,
|
||||||
|
N,
|
||||||
|
"string base64Key",
|
||||||
|
"Set the GateKeeper Server N key"
|
||||||
|
) {
|
||||||
|
int baseLength = hsStrlen((const char *)params[0]);
|
||||||
|
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) {
|
||||||
|
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||||
|
kNetDiffieHellmanKeyBits / 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||||
|
kNetDiffieHellmanKeyBits / 8, kGateKeeperDhNData);
|
||||||
|
swap_key_bytes(kGateKeeperDhNData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Gate,
|
||||||
|
X,
|
||||||
|
"string base64Key",
|
||||||
|
"Set the GateKeeper Server X key"
|
||||||
|
) {
|
||||||
|
int baseLength = hsStrlen((const char *)params[0]);
|
||||||
|
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) {
|
||||||
|
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||||
|
kNetDiffieHellmanKeyBits / 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||||
|
kNetDiffieHellmanKeyBits / 8, kGateKeeperDhXData);
|
||||||
|
swap_key_bytes(kGateKeeperDhXData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
PF_CONSOLE_CMD(
|
||||||
|
Server_Gate,
|
||||||
|
G,
|
||||||
|
"int GValue",
|
||||||
|
"Set the GateKeeper Server G value"
|
||||||
|
) {
|
||||||
|
kGateKeeperDhGValue = (int)params[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
@ -53,9 +53,56 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
|
|
||||||
|
|
||||||
const Int32 pfConsoleEngine::fMaxNumParams = 16;
|
const Int32 pfConsoleEngine::fMaxNumParams = 16;
|
||||||
const char pfConsoleEngine::fTokenSeparators[] = " =\r\n\t,";
|
|
||||||
const char pfConsoleEngine::fTokenGrpSeps[] = " =\r\n._\t,";
|
|
||||||
|
|
||||||
|
static const char kTokenSeparators[] = " =\r\n\t,";
|
||||||
|
static const char kTokenGrpSeps[] = " =\r\n._\t,";
|
||||||
|
|
||||||
|
static char *console_strtok( char *&line, hsBool haveCommand )
|
||||||
|
{
|
||||||
|
char *begin = line;
|
||||||
|
|
||||||
|
while (*begin && isspace(*begin))
|
||||||
|
++begin;
|
||||||
|
|
||||||
|
for (line = begin; *line; ++line) {
|
||||||
|
if (!haveCommand) {
|
||||||
|
for (const char *sep = kTokenGrpSeps; *sep; ++sep) {
|
||||||
|
if (*line == *sep) {
|
||||||
|
*line = 0;
|
||||||
|
while (*++line && (*line == *sep))
|
||||||
|
/* skip duplicate delimiters */;
|
||||||
|
return begin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (*begin == '"' || *begin == '\'') {
|
||||||
|
// Handle strings as a single token
|
||||||
|
char *endptr = strchr(line + 1, *line);
|
||||||
|
if (endptr == nil) {
|
||||||
|
// Bad string token sentry
|
||||||
|
return "\xFF";
|
||||||
|
}
|
||||||
|
*endptr = 0;
|
||||||
|
line = endptr + 1;
|
||||||
|
return begin + 1;
|
||||||
|
}
|
||||||
|
for (const char *sep = kTokenSeparators; *sep; ++sep) {
|
||||||
|
if (*line == *sep) {
|
||||||
|
*line = 0;
|
||||||
|
while (*++line && (*line == *sep))
|
||||||
|
/* skip duplicate delimiters */;
|
||||||
|
return begin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (begin == line)
|
||||||
|
return nil;
|
||||||
|
|
||||||
|
line = line + strlen(line);
|
||||||
|
return begin;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//// Constructor & Destructor ////////////////////////////////////////////////
|
//// Constructor & Destructor ////////////////////////////////////////////////
|
||||||
@ -82,7 +129,7 @@ hsBool pfConsoleEngine::PrintCmdHelp( char *name, void (*PrintFn)( const char *
|
|||||||
|
|
||||||
/// Scan for subgroups. This can be an empty loop
|
/// Scan for subgroups. This can be an empty loop
|
||||||
group = pfConsoleCmdGroup::GetBaseGroup();
|
group = pfConsoleCmdGroup::GetBaseGroup();
|
||||||
ptr = strtok( name, fTokenGrpSeps );
|
ptr = console_strtok( name, false );
|
||||||
while( ptr != nil )
|
while( ptr != nil )
|
||||||
{
|
{
|
||||||
// Take this token and check to see if it's a group
|
// Take this token and check to see if it's a group
|
||||||
@ -91,7 +138,7 @@ hsBool pfConsoleEngine::PrintCmdHelp( char *name, void (*PrintFn)( const char *
|
|||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
||||||
ptr = strtok( nil, fTokenGrpSeps );
|
ptr = console_strtok( name, false );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ptr == nil )
|
if( ptr == nil )
|
||||||
@ -159,7 +206,7 @@ const char *pfConsoleEngine::GetCmdSignature( char *name )
|
|||||||
|
|
||||||
/// Scan for subgroups. This can be an empty loop
|
/// Scan for subgroups. This can be an empty loop
|
||||||
group = pfConsoleCmdGroup::GetBaseGroup();
|
group = pfConsoleCmdGroup::GetBaseGroup();
|
||||||
ptr = strtok( name, fTokenGrpSeps );
|
ptr = console_strtok( name, false );
|
||||||
while( ptr != nil )
|
while( ptr != nil )
|
||||||
{
|
{
|
||||||
// Take this token and check to see if it's a group
|
// Take this token and check to see if it's a group
|
||||||
@ -168,7 +215,7 @@ const char *pfConsoleEngine::GetCmdSignature( char *name )
|
|||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
||||||
ptr = strtok( nil, fTokenGrpSeps );
|
ptr = console_strtok( name, false );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ptr == nil )
|
if( ptr == nil )
|
||||||
@ -262,7 +309,7 @@ hsBool pfConsoleEngine::RunCommand( char *line, void (*PrintFn)( const char * )
|
|||||||
|
|
||||||
/// Loop #1: Scan for subgroups. This can be an empty loop
|
/// Loop #1: Scan for subgroups. This can be an empty loop
|
||||||
group = pfConsoleCmdGroup::GetBaseGroup();
|
group = pfConsoleCmdGroup::GetBaseGroup();
|
||||||
ptr = strtok( line, fTokenGrpSeps );
|
ptr = console_strtok( line, false );
|
||||||
while( ptr != nil )
|
while( ptr != nil )
|
||||||
{
|
{
|
||||||
// Take this token and check to see if it's a group
|
// Take this token and check to see if it's a group
|
||||||
@ -271,7 +318,7 @@ hsBool pfConsoleEngine::RunCommand( char *line, void (*PrintFn)( const char * )
|
|||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
||||||
ptr = strtok( nil, fTokenGrpSeps );
|
ptr = console_strtok( line, false );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ptr == nil )
|
if( ptr == nil )
|
||||||
@ -293,59 +340,15 @@ hsBool pfConsoleEngine::RunCommand( char *line, void (*PrintFn)( const char * )
|
|||||||
/// params
|
/// params
|
||||||
|
|
||||||
for( numParams = numQuotedParams = 0; numParams < fMaxNumParams
|
for( numParams = numQuotedParams = 0; numParams < fMaxNumParams
|
||||||
&& ( ptr = strtok( nil, fTokenSeparators ) ) != nil
|
&& ( ptr = console_strtok( line, true ) ) != nil
|
||||||
&& valid; numParams++ )
|
&& valid; numParams++ )
|
||||||
{
|
{
|
||||||
if( ptr[ 0 ] == '\'' || ptr[ 0 ] == '"' )
|
if( ptr[ 0 ] == '\xFF' )
|
||||||
{
|
|
||||||
// String parameter--keep getting tokens until we hit the other end
|
|
||||||
|
|
||||||
// Note: since params take pointers to strings, we have to have unique temp strings
|
|
||||||
// for each quoted param we parse. So we have a static array here to a) do so, b)
|
|
||||||
// avoid having to delete them afterwards, and thus c) reduce overhead.
|
|
||||||
static char tempStrings[ fMaxNumParams ][ 512 ];
|
|
||||||
|
|
||||||
char *tempStr = tempStrings[ numQuotedParams++ ], toSearch[ 2 ] = "'";
|
|
||||||
|
|
||||||
toSearch[ 0 ] = ptr[ 0 ];
|
|
||||||
|
|
||||||
if( strlen( ptr ) >= sizeof( tempStrings[ 0 ] ) ) // They're all the same, after all...
|
|
||||||
{
|
|
||||||
ISetErrorMsg( "Invalid syntax: quoted parameter too long" );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( strlen( ptr ) > 1 && ptr[ strlen( ptr ) - 1 ] == toSearch[ 0 ] )
|
|
||||||
{
|
|
||||||
// Single word string
|
|
||||||
strcpy( tempStr, ptr + 1 );
|
|
||||||
tempStr[ strlen( tempStr ) - 1 ] = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Multiple word string
|
|
||||||
sprintf( tempStr, "%s ", ptr + 1 ); // Not perfect, but close
|
|
||||||
ptr = strtok( nil, toSearch );
|
|
||||||
if( ptr == nil )
|
|
||||||
{
|
{
|
||||||
ISetErrorMsg( "Invalid syntax: unterminated quoted parameter" );
|
ISetErrorMsg( "Invalid syntax: unterminated quoted parameter" );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( strlen( ptr ) + strlen( tempStr ) >= sizeof( tempStrings[ 0 ] ) ) // They're all the same, after all...
|
|
||||||
{
|
|
||||||
ISetErrorMsg( "Invalid syntax: quoted parameter too long" );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
strcat( tempStr, ptr );
|
|
||||||
}
|
|
||||||
|
|
||||||
valid = IConvertToParam( cmd->GetSigEntry( (UInt8)numParams ), tempStr, ¶mArray[ numParams ] );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Normal parameter
|
|
||||||
|
|
||||||
// Special case for context variables--if we're specifying one, we want to just grab
|
// Special case for context variables--if we're specifying one, we want to just grab
|
||||||
// the value of it and return that instead
|
// the value of it and return that instead
|
||||||
valid = false;
|
valid = false;
|
||||||
@ -371,7 +374,6 @@ hsBool pfConsoleEngine::RunCommand( char *line, void (*PrintFn)( const char * )
|
|||||||
if( !valid )
|
if( !valid )
|
||||||
valid = IConvertToParam( cmd->GetSigEntry( (UInt8)numParams ), ptr, ¶mArray[ numParams ] );
|
valid = IConvertToParam( cmd->GetSigEntry( (UInt8)numParams ), ptr, ¶mArray[ numParams ] );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
for( i = numParams; i < fMaxNumParams + 1; i++ )
|
for( i = numParams; i < fMaxNumParams + 1; i++ )
|
||||||
paramArray[ i ].SetNone();
|
paramArray[ i ].SetNone();
|
||||||
|
|
||||||
@ -493,7 +495,7 @@ hsBool pfConsoleEngine::FindPartialCmd( char *line, hsBool findAgain, hsBool pre
|
|||||||
|
|
||||||
/// Loop #1: Scan for subgroups. This can be an empty loop
|
/// Loop #1: Scan for subgroups. This can be an empty loop
|
||||||
lastParentGroup = group = pfConsoleCmdGroup::GetBaseGroup();
|
lastParentGroup = group = pfConsoleCmdGroup::GetBaseGroup();
|
||||||
ptr = strtok( line, fTokenGrpSeps );
|
ptr = console_strtok( line, false );
|
||||||
while( ptr != nil )
|
while( ptr != nil )
|
||||||
{
|
{
|
||||||
// Take this token and check to see if it's a group
|
// Take this token and check to see if it's a group
|
||||||
@ -508,7 +510,7 @@ hsBool pfConsoleEngine::FindPartialCmd( char *line, hsBool findAgain, hsBool pre
|
|||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
||||||
ptr = strtok( nil, fTokenGrpSeps );
|
ptr = console_strtok( line, false );
|
||||||
strcat( newStr, "." );
|
strcat( newStr, "." );
|
||||||
insertLoc++;
|
insertLoc++;
|
||||||
}
|
}
|
||||||
|
@ -68,8 +68,6 @@ class pfConsoleEngine
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
static const Int32 fMaxNumParams;
|
static const Int32 fMaxNumParams;
|
||||||
static const char fTokenSeparators[];
|
|
||||||
static const char fTokenGrpSeps[];
|
|
||||||
|
|
||||||
hsBool IConvertToParam( UInt8 type, char *string, pfConsoleCmdParam *param );
|
hsBool IConvertToParam( UInt8 type, char *string, pfConsoleCmdParam *param );
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
#ifndef pnDispatchCreatable_inc
|
#ifndef pnDispatchCreatable_inc
|
||||||
#define pnDispatchCreatable_inc
|
#define pnDispatchCreatable_inc
|
||||||
|
|
||||||
#include "../pnFactory/plCreatable.h"
|
#include "../pnFactory/plCreator.h"
|
||||||
|
|
||||||
#include "plDispatch.h"
|
#include "plDispatch.h"
|
||||||
|
|
||||||
|
@ -53,6 +53,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
|
|
||||||
#include "pnNbConst.h"
|
#include "pnNbConst.h"
|
||||||
#include "pnNbError.h"
|
#include "pnNbError.h"
|
||||||
|
#include "pnNbKeys.h"
|
||||||
#include "pnNbProtocol.h"
|
#include "pnNbProtocol.h"
|
||||||
#include "pnNbSrvs.h"
|
#include "pnNbSrvs.h"
|
||||||
|
|
||||||
|
141
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp
Normal file
141
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
/*==LICENSE==*
|
||||||
|
|
||||||
|
CyanWorlds.com Engine - MMOG client, server and tools
|
||||||
|
Copyright (C) 2011 Cyan Worlds, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Additional permissions under GNU GPL version 3 section 7
|
||||||
|
|
||||||
|
If you modify this Program, or any covered work, by linking or
|
||||||
|
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
|
||||||
|
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
|
||||||
|
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
|
||||||
|
(or a modified version of those libraries),
|
||||||
|
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
|
||||||
|
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
|
||||||
|
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
|
||||||
|
licensors of this Program grant you additional
|
||||||
|
permission to convey the resulting work. Corresponding Source for a
|
||||||
|
non-source form of such a combination shall include the source code for
|
||||||
|
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
|
||||||
|
work.
|
||||||
|
|
||||||
|
You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||||
|
or by snail mail at:
|
||||||
|
Cyan Worlds, Inc.
|
||||||
|
14617 N Newport Hwy
|
||||||
|
Mead, WA 99021
|
||||||
|
|
||||||
|
*==LICENSE==*/
|
||||||
|
/*****************************************************************************
|
||||||
|
*
|
||||||
|
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp
|
||||||
|
*
|
||||||
|
***/
|
||||||
|
|
||||||
|
#include "../Pch.h"
|
||||||
|
#pragma hdrstop
|
||||||
|
|
||||||
|
// Auth Server
|
||||||
|
unsigned kAuthDhGValue = 41;
|
||||||
|
byte kAuthDhNData[kNetDiffieHellmanKeyBits / 8] = {
|
||||||
|
0x2d, 0x17, 0x19, 0x42, 0xeb, 0x71, 0x8f, 0x91,
|
||||||
|
0x29, 0x7c, 0x61, 0x88, 0x43, 0x75, 0xe5, 0xee,
|
||||||
|
0x72, 0xfe, 0x45, 0x1b, 0x43, 0xc3, 0x8e, 0xb9,
|
||||||
|
0x47, 0x5e, 0x03, 0xc8, 0x0c, 0x78, 0xb7, 0xe4,
|
||||||
|
0x4d, 0x31, 0x5b, 0xcb, 0x66, 0xc2, 0x54, 0x1a,
|
||||||
|
0x0a, 0x61, 0x11, 0x57, 0x38, 0x66, 0x9b, 0x34,
|
||||||
|
0x6b, 0xab, 0x6d, 0x12, 0x12, 0x38, 0x87, 0xc5,
|
||||||
|
0x3f, 0x20, 0xbe, 0x97, 0xa3, 0xa6, 0x56, 0x8f
|
||||||
|
};
|
||||||
|
byte kAuthDhXData[kNetDiffieHellmanKeyBits / 8] = {
|
||||||
|
0x21, 0xcf, 0x1d, 0xc6, 0x08, 0xc0, 0x23, 0xad,
|
||||||
|
0x53, 0x36, 0xce, 0x61, 0x25, 0xdd, 0xb9, 0x55,
|
||||||
|
0x05, 0xc1, 0xbb, 0x8f, 0xf4, 0x0d, 0x59, 0xf9,
|
||||||
|
0x20, 0x27, 0x9a, 0xee, 0xfb, 0x23, 0x5b, 0xeb,
|
||||||
|
0xe5, 0xec, 0x01, 0x55, 0x2e, 0xd5, 0x64, 0xef,
|
||||||
|
0xea, 0x43, 0xb1, 0x9e, 0xb9, 0x8c, 0x75, 0x3f,
|
||||||
|
0xda, 0xb2, 0xbb, 0xb3, 0x6a, 0x3d, 0xcd, 0xbc,
|
||||||
|
0xfa, 0x6f, 0x03, 0xf3, 0x55, 0xd8, 0xe9, 0x1b
|
||||||
|
};
|
||||||
|
|
||||||
|
// CSR Server
|
||||||
|
unsigned kCsrDhGValue = 97;
|
||||||
|
byte kCsrDhNData[kNetDiffieHellmanKeyBits / 8] = {
|
||||||
|
0xbd, 0xf8, 0x03, 0x17, 0xed, 0x27, 0x74, 0x0d,
|
||||||
|
0x76, 0x8e, 0x7a, 0x8c, 0x88, 0xeb, 0xec, 0xde,
|
||||||
|
0xd7, 0x73, 0x37, 0x8f, 0x4b, 0xbc, 0xae, 0x75,
|
||||||
|
0xf8, 0xda, 0x22, 0xee, 0x50, 0xc9, 0xb3, 0x69,
|
||||||
|
0x97, 0x0b, 0xe5, 0x28, 0x98, 0x91, 0xf7, 0x44,
|
||||||
|
0x97, 0xdf, 0x70, 0xf1, 0x86, 0x6c, 0xfa, 0x03,
|
||||||
|
0x7c, 0x47, 0x73, 0xb1, 0x62, 0x00, 0x42, 0x99,
|
||||||
|
0xf0, 0xc6, 0xe7, 0x05, 0xd8, 0xcd, 0xd6, 0x6d
|
||||||
|
};
|
||||||
|
byte kCsrDhXData[kNetDiffieHellmanKeyBits / 8] = {
|
||||||
|
0x03, 0x1d, 0x83, 0x62, 0x36, 0x92, 0x63, 0xa6,
|
||||||
|
0xa8, 0x66, 0x31, 0xbe, 0x28, 0x42, 0xc2, 0xe6,
|
||||||
|
0x86, 0x98, 0x3a, 0x81, 0x13, 0x0e, 0xb7, 0x96,
|
||||||
|
0x5e, 0x27, 0x87, 0x6a, 0x06, 0x68, 0x51, 0x21,
|
||||||
|
0xf3, 0x74, 0xe9, 0x11, 0xe9, 0x73, 0x5f, 0xdb,
|
||||||
|
0x37, 0x2a, 0x2d, 0x49, 0xa4, 0x76, 0x12, 0x06,
|
||||||
|
0x58, 0x36, 0x59, 0x6d, 0xbb, 0x59, 0x57, 0x2c,
|
||||||
|
0x34, 0xe4, 0x5e, 0xd4, 0x2c, 0x78, 0xc3, 0x34
|
||||||
|
};
|
||||||
|
|
||||||
|
// Game Server
|
||||||
|
unsigned kGameDhGValue = 73;
|
||||||
|
byte kGameDhNData[kNetDiffieHellmanKeyBits / 8] = {
|
||||||
|
0x38, 0xa4, 0xf7, 0x69, 0x43, 0xd7, 0xa6, 0xc7,
|
||||||
|
0x27, 0x72, 0x3b, 0x12, 0x6a, 0x76, 0x09, 0x5d,
|
||||||
|
0xaa, 0x9a, 0x38, 0x44, 0xde, 0x84, 0x22, 0xc4,
|
||||||
|
0xde, 0x3f, 0xfd, 0x50, 0x26, 0xea, 0xbb, 0x20,
|
||||||
|
0xd6, 0xad, 0x2e, 0xcd, 0xfe, 0xf2, 0x70, 0x1b,
|
||||||
|
0x19, 0xd1, 0x82, 0x15, 0xd7, 0xcb, 0x33, 0x60,
|
||||||
|
0x20, 0xbc, 0x43, 0xc9, 0x55, 0x0b, 0xc9, 0x20,
|
||||||
|
0xd9, 0x24, 0xd2, 0x49, 0xd0, 0x28, 0x4b, 0x90
|
||||||
|
};
|
||||||
|
byte kGameDhXData[kNetDiffieHellmanKeyBits / 8] = {
|
||||||
|
0xf9, 0xb2, 0x93, 0xbd, 0x02, 0xbd, 0x72, 0x48,
|
||||||
|
0xa9, 0x21, 0xbd, 0x09, 0x3e, 0x44, 0x65, 0x3e,
|
||||||
|
0xc2, 0xfd, 0x5a, 0xf0, 0x99, 0x3b, 0x3f, 0x5c,
|
||||||
|
0x47, 0x76, 0x5c, 0x1f, 0x84, 0xd8, 0x01, 0x68,
|
||||||
|
0xdc, 0x5f, 0xb6, 0xba, 0xc8, 0xfd, 0x79, 0x98,
|
||||||
|
0x62, 0x93, 0x36, 0x7f, 0x14, 0xcf, 0x33, 0x67,
|
||||||
|
0x84, 0x04, 0xcf, 0xa3, 0x7a, 0x65, 0xe9, 0x68,
|
||||||
|
0x4f, 0x58, 0x58, 0xb3, 0x8f, 0x3d, 0xdb, 0x3d
|
||||||
|
};
|
||||||
|
|
||||||
|
// GateKeeper Server
|
||||||
|
unsigned kGateKeeperDhGValue = 4;
|
||||||
|
byte kGateKeeperDhNData[kNetDiffieHellmanKeyBits / 8] = {
|
||||||
|
0x8d, 0xfa, 0x35, 0xe6, 0xf8, 0x7a, 0x50, 0x50,
|
||||||
|
0xab, 0x25, 0x4b, 0x81, 0xd1, 0xd7, 0x7a, 0x23,
|
||||||
|
0xa3, 0x9a, 0x21, 0x0f, 0x34, 0xab, 0x66, 0x2e,
|
||||||
|
0x16, 0x98, 0x55, 0xb6, 0xfc, 0x49, 0xd5, 0x50,
|
||||||
|
0xdc, 0xb8, 0x4c, 0x4d, 0xc7, 0xdb, 0xf1, 0x1c,
|
||||||
|
0x15, 0x4c, 0x55, 0xf5, 0x92, 0x0d, 0x6a, 0xec,
|
||||||
|
0x60, 0xbc, 0x55, 0xfa, 0x29, 0x2f, 0x6f, 0xc3,
|
||||||
|
0xd7, 0x21, 0x80, 0xa3, 0x6b, 0x44, 0x23, 0xb5,
|
||||||
|
};
|
||||||
|
byte kGateKeeperDhXData[kNetDiffieHellmanKeyBits / 8] = {
|
||||||
|
0xb3, 0x88, 0xff, 0x0b, 0x90, 0x70, 0x2b, 0x2e,
|
||||||
|
0x07, 0xbc, 0x62, 0x98, 0x83, 0x9d, 0x0f, 0x05,
|
||||||
|
0x39, 0xfa, 0x35, 0x39, 0xa9, 0xf3, 0xb3, 0xfc,
|
||||||
|
0xcd, 0x5e, 0xa9, 0xa6, 0x61, 0x0f, 0x9b, 0x38,
|
||||||
|
0x0f, 0x9c, 0xbe, 0xa0, 0xbe, 0x6f, 0x7f, 0xe4,
|
||||||
|
0x7c, 0xcb, 0xc4, 0x09, 0x6c, 0x8d, 0xce, 0x47,
|
||||||
|
0x68, 0x82, 0x32, 0xc5, 0x89, 0x94, 0xf9, 0xca,
|
||||||
|
0x69, 0x69, 0xd0, 0x60, 0x19, 0xb7, 0xf3, 0x1a,
|
||||||
|
};
|
@ -39,36 +39,33 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
Mead, WA 99021
|
Mead, WA 99021
|
||||||
|
|
||||||
*==LICENSE==*/
|
*==LICENSE==*/
|
||||||
/*************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
* This file was auto-generated by plDhKeyGen.exe
|
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h
|
||||||
*
|
*
|
||||||
***/
|
***/
|
||||||
|
|
||||||
static const unsigned kDhGValue = 41;
|
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H
|
||||||
|
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h included more than once"
|
||||||
|
#endif
|
||||||
|
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H
|
||||||
|
|
||||||
static const byte kDhNData[] = {
|
// Auth Server
|
||||||
0x2d, 0x17, 0x19, 0x42, 0xeb, 0x71, 0x8f, 0x91,
|
extern unsigned kAuthDhGValue;
|
||||||
0x29, 0x7c, 0x61, 0x88, 0x43, 0x75, 0xe5, 0xee,
|
extern byte kAuthDhNData[kNetDiffieHellmanKeyBits / 8];
|
||||||
0x72, 0xfe, 0x45, 0x1b, 0x43, 0xc3, 0x8e, 0xb9,
|
extern byte kAuthDhXData[kNetDiffieHellmanKeyBits / 8];
|
||||||
0x47, 0x5e, 0x03, 0xc8, 0x0c, 0x78, 0xb7, 0xe4,
|
|
||||||
0x4d, 0x31, 0x5b, 0xcb, 0x66, 0xc2, 0x54, 0x1a,
|
|
||||||
0x0a, 0x61, 0x11, 0x57, 0x38, 0x66, 0x9b, 0x34,
|
|
||||||
0x6b, 0xab, 0x6d, 0x12, 0x12, 0x38, 0x87, 0xc5,
|
|
||||||
0x3f, 0x20, 0xbe, 0x97, 0xa3, 0xa6, 0x56, 0x8f
|
|
||||||
};
|
|
||||||
COMPILER_ASSERT(sizeof(kDhNData) == kNetDiffieHellmanKeyBits / 8);
|
|
||||||
|
|
||||||
static const byte kDhXData[] = {
|
// CSR Server
|
||||||
0x21, 0xcf, 0x1d, 0xc6, 0x08, 0xc0, 0x23, 0xad,
|
extern unsigned kCsrDhGValue;
|
||||||
0x53, 0x36, 0xce, 0x61, 0x25, 0xdd, 0xb9, 0x55,
|
extern byte kCsrDhNData[kNetDiffieHellmanKeyBits / 8];
|
||||||
0x05, 0xc1, 0xbb, 0x8f, 0xf4, 0x0d, 0x59, 0xf9,
|
extern byte kCsrDhXData[kNetDiffieHellmanKeyBits / 8];
|
||||||
0x20, 0x27, 0x9a, 0xee, 0xfb, 0x23, 0x5b, 0xeb,
|
|
||||||
0xe5, 0xec, 0x01, 0x55, 0x2e, 0xd5, 0x64, 0xef,
|
|
||||||
0xea, 0x43, 0xb1, 0x9e, 0xb9, 0x8c, 0x75, 0x3f,
|
|
||||||
0xda, 0xb2, 0xbb, 0xb3, 0x6a, 0x3d, 0xcd, 0xbc,
|
|
||||||
0xfa, 0x6f, 0x03, 0xf3, 0x55, 0xd8, 0xe9, 0x1b
|
|
||||||
};
|
|
||||||
COMPILER_ASSERT(sizeof(kDhXData) == kNetDiffieHellmanKeyBits / 8);
|
|
||||||
|
|
||||||
|
// Game Server
|
||||||
|
extern unsigned kGameDhGValue;
|
||||||
|
extern byte kGameDhNData[kNetDiffieHellmanKeyBits / 8];
|
||||||
|
extern byte kGameDhXData[kNetDiffieHellmanKeyBits / 8];
|
||||||
|
|
||||||
|
// GateKeeper Server
|
||||||
|
extern unsigned kGateKeeperDhGValue;
|
||||||
|
extern byte kGateKeeperDhNData[kNetDiffieHellmanKeyBits / 8];
|
||||||
|
extern byte kGateKeeperDhXData[kNetDiffieHellmanKeyBits / 8];
|
@ -162,6 +162,9 @@ static const wchar * s_gateKeeperAddrsOverride[] = {
|
|||||||
s_gateKeeperAddrCmdLine
|
s_gateKeeperAddrCmdLine
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static unsigned s_clientPort = 14617;
|
||||||
|
static unsigned s_serverPort = 14618;
|
||||||
|
static unsigned s_simpleNetPort = 14620;
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
@ -276,3 +279,77 @@ bool GateKeeperSrvHostnameOverride () {
|
|||||||
return s_gateKeeperAddrCmdLine[0];
|
return s_gateKeeperAddrCmdLine[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
// Client Port
|
||||||
|
//============================================================================
|
||||||
|
unsigned GetClientPort() {
|
||||||
|
return s_clientPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
void SetClientPort(unsigned port) {
|
||||||
|
s_clientPort = port;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
unsigned GetServerPort() {
|
||||||
|
return s_serverPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
unsigned GetSimpleNetPort() {
|
||||||
|
return s_simpleNetPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
// User-visible Server
|
||||||
|
//============================================================================
|
||||||
|
static const wchar* kDefaultStatusUrl = L"http://account.mystonline.com/serverstatus/moullive.php";
|
||||||
|
static const wchar* kDefaultSignupUrl = L"http://www.mystonline.com/signup.html";
|
||||||
|
static const wchar* kDefaultServerName = L"MOULagain";
|
||||||
|
|
||||||
|
static wchar s_serverStatusUrl[256];
|
||||||
|
static wchar s_serverSignupUrl[256];
|
||||||
|
static wchar s_serverName[256];
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
const wchar *GetServerStatusUrl () {
|
||||||
|
if (s_serverStatusUrl[0]) {
|
||||||
|
return s_serverStatusUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return kDefaultStatusUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
void SetServerStatusUrl (const wchar url[]) {
|
||||||
|
StrCopy(s_serverStatusUrl, url, arrsize(s_serverStatusUrl));
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
const wchar *GetServerSignupUrl () {
|
||||||
|
if (s_serverSignupUrl[0]) {
|
||||||
|
return s_serverSignupUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return kDefaultSignupUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
void SetServerSignupUrl (const wchar url[]) {
|
||||||
|
StrCopy(s_serverSignupUrl, url, arrsize(s_serverSignupUrl));
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
const wchar *GetServerDisplayName () {
|
||||||
|
if (s_serverName[0]) {
|
||||||
|
return s_serverName;
|
||||||
|
}
|
||||||
|
|
||||||
|
return kDefaultServerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
void SetServerDisplayName (const wchar name[]) {
|
||||||
|
StrCopy(s_serverName, name, arrsize(s_serverName));
|
||||||
|
}
|
@ -104,3 +104,17 @@ bool CsrSrvHostnameOverride ();
|
|||||||
unsigned GetGateKeeperSrvHostnames (const wchar *** addrs); // returns addrCount
|
unsigned GetGateKeeperSrvHostnames (const wchar *** addrs); // returns addrCount
|
||||||
void SetGateKeeperSrvHostname (const wchar addr[]);
|
void SetGateKeeperSrvHostname (const wchar addr[]);
|
||||||
bool GateKeeperSrvHostnameOverride ();
|
bool GateKeeperSrvHostnameOverride ();
|
||||||
|
|
||||||
|
unsigned GetClientPort();
|
||||||
|
void SetClientPort(unsigned port);
|
||||||
|
unsigned GetServerPort();
|
||||||
|
unsigned GetSimpleNetPort();
|
||||||
|
|
||||||
|
const wchar *GetServerStatusUrl ();
|
||||||
|
void SetServerStatusUrl (const wchar url[]);
|
||||||
|
|
||||||
|
const wchar *GetServerSignupUrl ();
|
||||||
|
void SetServerSignupUrl (const wchar url[]);
|
||||||
|
|
||||||
|
const wchar *GetServerDisplayName ();
|
||||||
|
void SetServerDisplayName (const wchar name[]);
|
@ -60,10 +60,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
// Network constants
|
// Network constants
|
||||||
//============================================================================
|
//============================================================================
|
||||||
const unsigned kNetLegacyClientPort = 80;
|
|
||||||
const unsigned kNetDefaultClientPort = 14617;
|
|
||||||
const unsigned kNetDefaultServerPort = 14618;
|
|
||||||
const unsigned kNetDefaultSimpleNetPort = 14620;
|
|
||||||
const unsigned kMaxTcpPacketSize = 1460;
|
const unsigned kMaxTcpPacketSize = 1460;
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
/*==LICENSE==*
|
|
||||||
|
|
||||||
CyanWorlds.com Engine - MMOG client, server and tools
|
|
||||||
Copyright (C) 2011 Cyan Worlds, Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Additional permissions under GNU GPL version 3 section 7
|
|
||||||
|
|
||||||
If you modify this Program, or any covered work, by linking or
|
|
||||||
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
|
|
||||||
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
|
|
||||||
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
|
|
||||||
(or a modified version of those libraries),
|
|
||||||
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
|
|
||||||
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
|
|
||||||
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
|
|
||||||
licensors of this Program grant you additional
|
|
||||||
permission to convey the resulting work. Corresponding Source for a
|
|
||||||
non-source form of such a combination shall include the source code for
|
|
||||||
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
|
|
||||||
work.
|
|
||||||
|
|
||||||
You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|
||||||
or by snail mail at:
|
|
||||||
Cyan Worlds, Inc.
|
|
||||||
14617 N Newport Hwy
|
|
||||||
Mead, WA 99021
|
|
||||||
|
|
||||||
*==LICENSE==*/
|
|
||||||
/*************************************************************
|
|
||||||
*
|
|
||||||
* This file was auto-generated by plDhKeyGen.exe
|
|
||||||
*
|
|
||||||
***/
|
|
||||||
|
|
||||||
static const unsigned kDhGValue = 73;
|
|
||||||
|
|
||||||
static const byte kDhNData[] = {
|
|
||||||
0x38, 0xa4, 0xf7, 0x69, 0x43, 0xd7, 0xa6, 0xc7,
|
|
||||||
0x27, 0x72, 0x3b, 0x12, 0x6a, 0x76, 0x09, 0x5d,
|
|
||||||
0xaa, 0x9a, 0x38, 0x44, 0xde, 0x84, 0x22, 0xc4,
|
|
||||||
0xde, 0x3f, 0xfd, 0x50, 0x26, 0xea, 0xbb, 0x20,
|
|
||||||
0xd6, 0xad, 0x2e, 0xcd, 0xfe, 0xf2, 0x70, 0x1b,
|
|
||||||
0x19, 0xd1, 0x82, 0x15, 0xd7, 0xcb, 0x33, 0x60,
|
|
||||||
0x20, 0xbc, 0x43, 0xc9, 0x55, 0x0b, 0xc9, 0x20,
|
|
||||||
0xd9, 0x24, 0xd2, 0x49, 0xd0, 0x28, 0x4b, 0x90
|
|
||||||
};
|
|
||||||
COMPILER_ASSERT(sizeof(kDhNData) == kNetDiffieHellmanKeyBits / 8);
|
|
||||||
|
|
||||||
static const byte kDhXData[] = {
|
|
||||||
0xf9, 0xb2, 0x93, 0xbd, 0x02, 0xbd, 0x72, 0x48,
|
|
||||||
0xa9, 0x21, 0xbd, 0x09, 0x3e, 0x44, 0x65, 0x3e,
|
|
||||||
0xc2, 0xfd, 0x5a, 0xf0, 0x99, 0x3b, 0x3f, 0x5c,
|
|
||||||
0x47, 0x76, 0x5c, 0x1f, 0x84, 0xd8, 0x01, 0x68,
|
|
||||||
0xdc, 0x5f, 0xb6, 0xba, 0xc8, 0xfd, 0x79, 0x98,
|
|
||||||
0x62, 0x93, 0x36, 0x7f, 0x14, 0xcf, 0x33, 0x67,
|
|
||||||
0x84, 0x04, 0xcf, 0xa3, 0x7a, 0x65, 0xe9, 0x68,
|
|
||||||
0x4f, 0x58, 0x58, 0xb3, 0x8f, 0x3d, 0xdb, 0x3d
|
|
||||||
};
|
|
||||||
COMPILER_ASSERT(sizeof(kDhXData) == kNetDiffieHellmanKeyBits / 8);
|
|
||||||
|
|
||||||
|
|
@ -617,6 +617,11 @@ static const NetMsgField kScoreGetRanksReplyFields[] = {
|
|||||||
NET_MSG_FIELD_VAR_PTR(), // nodeBuffer
|
NET_MSG_FIELD_VAR_PTR(), // nodeBuffer
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const NetMsgField kServerCapsFields[] = {
|
||||||
|
NET_MSG_FIELD_VAR_COUNT(1, 1024 * 1024), // capsBytes
|
||||||
|
NET_MSG_FIELD_VAR_PTR(), // capsBuffer
|
||||||
|
};
|
||||||
|
|
||||||
} using namespace Cli2Auth;
|
} using namespace Cli2Auth;
|
||||||
|
|
||||||
|
|
||||||
@ -719,3 +724,4 @@ const NetMsg kNetMsg_Auth2Cli_ScoreAddPointsReply = NET_MSG(kAuth2Cli_ScoreAddP
|
|||||||
const NetMsg kNetMsg_Auth2Cli_ScoreTransferPointsReply = NET_MSG(kAuth2Cli_ScoreTransferPointsReply, kScoreTransferPointsReplyFields);
|
const NetMsg kNetMsg_Auth2Cli_ScoreTransferPointsReply = NET_MSG(kAuth2Cli_ScoreTransferPointsReply, kScoreTransferPointsReplyFields);
|
||||||
const NetMsg kNetMsg_Auth2Cli_ScoreSetPointsReply = NET_MSG(kAuth2Cli_ScoreSetPointsReply, kScoreSetPointsReplyFields);
|
const NetMsg kNetMsg_Auth2Cli_ScoreSetPointsReply = NET_MSG(kAuth2Cli_ScoreSetPointsReply, kScoreSetPointsReplyFields);
|
||||||
const NetMsg kNetMsg_Auth2Cli_ScoreGetRanksReply = NET_MSG(kAuth2Cli_ScoreGetRanksReply, kScoreGetRanksReplyFields);
|
const NetMsg kNetMsg_Auth2Cli_ScoreGetRanksReply = NET_MSG(kAuth2Cli_ScoreGetRanksReply, kScoreGetRanksReplyFields);
|
||||||
|
const NetMsg kNetMsg_Auth2Cli_ServerCaps = NET_MSG(kAuth2Cli_ServerCaps, kServerCapsFields);
|
||||||
|
@ -210,6 +210,8 @@ enum {
|
|||||||
|
|
||||||
kAuth2Cli_AccountExistsReply,
|
kAuth2Cli_AccountExistsReply,
|
||||||
|
|
||||||
|
kAuth2Cli_ServerCaps = 0x1002,
|
||||||
|
|
||||||
kNumAuth2CliMessages
|
kNumAuth2CliMessages
|
||||||
};
|
};
|
||||||
COMPILER_ASSERT_HEADER(Cli2Auth, kNumAuth2CliMessages <= (word)-1);
|
COMPILER_ASSERT_HEADER(Cli2Auth, kNumAuth2CliMessages <= (word)-1);
|
||||||
@ -1043,6 +1045,14 @@ struct Auth2Cli_ScoreGetRanksReply {
|
|||||||
// no more fields
|
// no more fields
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// ServerCaps
|
||||||
|
extern const NetMsg kNetMsg_Auth2Cli_ServerCaps;
|
||||||
|
struct Auth2Cli_ServerCaps {
|
||||||
|
dword messageId;
|
||||||
|
dword byteCount;
|
||||||
|
byte buffer[1]; // [byteCount], actually
|
||||||
|
};
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
// END PACKED DATA STRUCTURES
|
// END PACKED DATA STRUCTURES
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
@ -488,7 +488,7 @@ bool SimpleNetStartListening (
|
|||||||
s_queryAcceptParam = param;
|
s_queryAcceptParam = param;
|
||||||
|
|
||||||
NetAddress addr;
|
NetAddress addr;
|
||||||
NetAddressFromNode(0, kNetDefaultSimpleNetPort, &addr);
|
NetAddressFromNode(0, GetSimpleNetPort(), &addr);
|
||||||
return (0 != AsyncSocketStartListening(addr, nil));
|
return (0 != AsyncSocketStartListening(addr, nil));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -498,7 +498,7 @@ void SimpleNetStopListening () {
|
|||||||
ASSERT(s_running);
|
ASSERT(s_running);
|
||||||
|
|
||||||
NetAddress addr;
|
NetAddress addr;
|
||||||
NetAddressFromNode(0, kNetDefaultSimpleNetPort, &addr);
|
NetAddressFromNode(0, GetSimpleNetPort(), &addr);
|
||||||
AsyncSocketStopListening(addr, nil);
|
AsyncSocketStopListening(addr, nil);
|
||||||
|
|
||||||
s_queryAccept = nil;
|
s_queryAccept = nil;
|
||||||
@ -591,7 +591,7 @@ void SimpleNetStartConnecting (
|
|||||||
&cancelId,
|
&cancelId,
|
||||||
AsyncLookupCallback,
|
AsyncLookupCallback,
|
||||||
addr,
|
addr,
|
||||||
kNetDefaultSimpleNetPort,
|
GetSimpleNetPort(),
|
||||||
cp
|
cp
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -599,7 +599,7 @@ void SimpleNetStartConnecting (
|
|||||||
}
|
}
|
||||||
if (!name[0]) {
|
if (!name[0]) {
|
||||||
NetAddress netAddr;
|
NetAddress netAddr;
|
||||||
NetAddressFromString(&netAddr, addr, kNetDefaultSimpleNetPort);
|
NetAddressFromString(&netAddr, addr, GetSimpleNetPort());
|
||||||
Connect(netAddr, cp);
|
Connect(netAddr, cp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ unsigned Base64Decode (
|
|||||||
byte * dstData
|
byte * dstData
|
||||||
) {
|
) {
|
||||||
ASSERT(srcData);
|
ASSERT(srcData);
|
||||||
ASSERT(dstChars >= Base64DecodeSize(srcChars));
|
ASSERT(dstChars >= Base64DecodeSize(srcChars, srcData));
|
||||||
ASSERT(dstData);
|
ASSERT(dstData);
|
||||||
REF(dstChars);
|
REF(dstChars);
|
||||||
|
|
||||||
|
@ -62,7 +62,8 @@ const unsigned kBase64EncodeBlock = 4;
|
|||||||
const unsigned kBase64EncodeMultiple = 3;
|
const unsigned kBase64EncodeMultiple = 3;
|
||||||
|
|
||||||
inline unsigned Base64EncodeSize (unsigned srcChars) {
|
inline unsigned Base64EncodeSize (unsigned srcChars) {
|
||||||
return srcChars * kBase64EncodeBlock / kBase64EncodeMultiple + kBase64EncodeBlock;
|
return (srcChars + kBase64EncodeMultiple - 1) / kBase64EncodeMultiple
|
||||||
|
* kBase64EncodeBlock;
|
||||||
}
|
}
|
||||||
unsigned Base64Encode (
|
unsigned Base64Encode (
|
||||||
unsigned srcChars,
|
unsigned srcChars,
|
||||||
@ -71,8 +72,10 @@ unsigned Base64Encode (
|
|||||||
char * dstData
|
char * dstData
|
||||||
);
|
);
|
||||||
|
|
||||||
inline unsigned Base64DecodeSize (unsigned srcChars) {
|
inline unsigned Base64DecodeSize (unsigned srcChars, const char srcData[]) {
|
||||||
return srcChars * kBase64EncodeMultiple / kBase64EncodeBlock + kBase64EncodeMultiple;
|
return srcChars * kBase64EncodeMultiple / kBase64EncodeBlock
|
||||||
|
- ((srcChars >= 1 && srcData[srcChars - 1] == '=') ? 1 : 0)
|
||||||
|
- ((srcChars >= 2 && srcData[srcChars - 2] == '=') ? 1 : 0);
|
||||||
}
|
}
|
||||||
unsigned Base64Decode (
|
unsigned Base64Decode (
|
||||||
unsigned srcChars,
|
unsigned srcChars,
|
||||||
|
@ -217,6 +217,8 @@ bool plResponderModifier::IIsLocalOnlyCmd(plMessage* cmd)
|
|||||||
return true;
|
return true;
|
||||||
if (plCameraMsg::ConvertNoRef(cmd)) // don't want to change our camera
|
if (plCameraMsg::ConvertNoRef(cmd)) // don't want to change our camera
|
||||||
return true;
|
return true;
|
||||||
|
if (plSubWorldMsg::ConvertNoRef(cmd)) // don't want to enter a subworld (changes the avatar SDL)
|
||||||
|
return true;
|
||||||
|
|
||||||
plSoundMsg *snd = plSoundMsg::ConvertNoRef( cmd );
|
plSoundMsg *snd = plSoundMsg::ConvertNoRef( cmd );
|
||||||
if( snd != nil && snd->Cmd( plSoundMsg::kIsLocalOnly ) )
|
if( snd != nil && snd->Cmd( plSoundMsg::kIsLocalOnly ) )
|
||||||
|
@ -211,7 +211,7 @@ void plNCAgeJoiner::Start () {
|
|||||||
|
|
||||||
plNetClientMgr * nc = plNetClientMgr::GetInstance();
|
plNetClientMgr * nc = plNetClientMgr::GetInstance();
|
||||||
nc->SetFlagsBit(plNetClientMgr::kPlayingGame, false);
|
nc->SetFlagsBit(plNetClientMgr::kPlayingGame, false);
|
||||||
nc->fServerTimeOffset = 0; // reset since we're connecting to a new server
|
nc->ResetServerTimeOffset();
|
||||||
nc->fRequiredNumInitialSDLStates = 0;
|
nc->fRequiredNumInitialSDLStates = 0;
|
||||||
nc->fNumInitialSDLStates = 0;
|
nc->fNumInitialSDLStates = 0;
|
||||||
nc->SetFlagsBit(plNetClientApp::kNeedInitialAgeStateCount);
|
nc->SetFlagsBit(plNetClientApp::kNeedInitialAgeStateCount);
|
||||||
|
@ -133,9 +133,7 @@ plNetClientMgr::plNetClientMgr() :
|
|||||||
// fProgressBar( nil ),
|
// fProgressBar( nil ),
|
||||||
fTaskProgBar( nil ),
|
fTaskProgBar( nil ),
|
||||||
fMsgRecorder(nil),
|
fMsgRecorder(nil),
|
||||||
fServerTimeOffset(0),
|
fLastLocalTime(),
|
||||||
fTimeSamples(0),
|
|
||||||
fLastTimeUpdate(0),
|
|
||||||
fListenListMode(kListenList_Distance),
|
fListenListMode(kListenList_Distance),
|
||||||
fAgeSDLObjectKey(nil),
|
fAgeSDLObjectKey(nil),
|
||||||
fExperimentalLevel(0),
|
fExperimentalLevel(0),
|
||||||
@ -480,34 +478,23 @@ void plNetClientMgr::StartLinkInFX()
|
|||||||
//
|
//
|
||||||
void plNetClientMgr::UpdateServerTimeOffset(plNetMessage* msg)
|
void plNetClientMgr::UpdateServerTimeOffset(plNetMessage* msg)
|
||||||
{
|
{
|
||||||
if ((hsTimer::GetSysSeconds() - fLastTimeUpdate) > 5)
|
if (!msg->GetHasTimeSent())
|
||||||
{
|
return;
|
||||||
fLastTimeUpdate = hsTimer::GetSysSeconds();
|
if (msg->GetTimeSent().AtEpoch())
|
||||||
|
return;
|
||||||
|
|
||||||
const plUnifiedTime& msgSentUT = msg->GetTimeSent();
|
double localTime = hsTimer::GetSeconds();
|
||||||
if (!msgSentUT.AtEpoch())
|
if (localTime - fLastLocalTime < 1.0)
|
||||||
{
|
return;
|
||||||
double diff = plUnifiedTime::GetTimeDifference(msgSentUT, plClientUnifiedTime::GetCurrentTime());
|
|
||||||
|
|
||||||
if (fServerTimeOffset == 0)
|
fLastServerTime = msg->GetTimeSent();
|
||||||
{
|
fLastLocalTime = localTime;
|
||||||
fServerTimeOffset = diff;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fServerTimeOffset = fServerTimeOffset + ((diff - fServerTimeOffset) / ++fTimeSamples);
|
|
||||||
}
|
|
||||||
|
|
||||||
DebugMsg("Setting server time offset to %f", fServerTimeOffset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void plNetClientMgr::ResetServerTimeOffset()
|
void plNetClientMgr::ResetServerTimeOffset()
|
||||||
{
|
{
|
||||||
fServerTimeOffset = 0;
|
fLastServerTime.ToEpoch();
|
||||||
fTimeSamples = 0;
|
fLastLocalTime = 0.0;
|
||||||
fLastTimeUpdate = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -515,14 +502,12 @@ void plNetClientMgr::ResetServerTimeOffset()
|
|||||||
//
|
//
|
||||||
plUnifiedTime plNetClientMgr::GetServerTime() const
|
plUnifiedTime plNetClientMgr::GetServerTime() const
|
||||||
{
|
{
|
||||||
if ( fServerTimeOffset==0 ) // offline mode or before connecting/calibrating to a server
|
if (fLastServerTime.AtEpoch()) {
|
||||||
|
WarningMsg("Someone asked for the server time, but we don't know it yet!");
|
||||||
return plUnifiedTime::GetCurrentTime();
|
return plUnifiedTime::GetCurrentTime();
|
||||||
|
}
|
||||||
|
|
||||||
plUnifiedTime serverUT;
|
return fLastServerTime + plUnifiedTime(hsTimer::GetSeconds() - fLastLocalTime);
|
||||||
if (fServerTimeOffset<0)
|
|
||||||
return plUnifiedTime::GetCurrentTime() - plUnifiedTime(fabs(fServerTimeOffset));
|
|
||||||
else
|
|
||||||
return plUnifiedTime::GetCurrentTime() + plUnifiedTime(fServerTimeOffset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -166,9 +166,8 @@ private:
|
|||||||
std::string fSPDesiredPlayerName; // SP: the player we want to load from vault.
|
std::string fSPDesiredPlayerName; // SP: the player we want to load from vault.
|
||||||
|
|
||||||
// server info
|
// server info
|
||||||
double fServerTimeOffset; // diff between our unified time and server's unified time
|
plUnifiedTime fLastServerTime; // Last received time update from the server
|
||||||
UInt32 fTimeSamples;
|
double fLastLocalTime; // Last monotonic time (in seconds) when the above update was received
|
||||||
double fLastTimeUpdate;
|
|
||||||
|
|
||||||
UInt8 fJoinOrder; // returned by the server
|
UInt8 fJoinOrder; // returned by the server
|
||||||
|
|
||||||
|
@ -48,9 +48,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
#include "../Pch.h"
|
#include "../Pch.h"
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
|
|
||||||
// This file excluded from pre-compiled header because it is auto-generated by the build server.
|
|
||||||
#include "pnNetBase/pnNbAuthKey.hpp"
|
|
||||||
|
|
||||||
namespace Ngl { namespace Auth {
|
namespace Ngl { namespace Auth {
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
@ -2373,6 +2370,17 @@ static bool Recv_ScoreGetRanksReply (
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
static bool Recv_ServerCaps(
|
||||||
|
const byte msg[],
|
||||||
|
unsigned bytes,
|
||||||
|
void *
|
||||||
|
) {
|
||||||
|
// Ignore the message
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
* Cli2Auth protocol
|
* Cli2Auth protocol
|
||||||
@ -2476,6 +2484,7 @@ static NetMsgInitRecv s_recv[] = {
|
|||||||
{ MSG(ScoreSetPointsReply) },
|
{ MSG(ScoreSetPointsReply) },
|
||||||
{ MSG(ScoreGetRanksReply) },
|
{ MSG(ScoreGetRanksReply) },
|
||||||
{ MSG(AccountExistsReply) },
|
{ MSG(AccountExistsReply) },
|
||||||
|
{ MSG(ServerCaps) },
|
||||||
};
|
};
|
||||||
#undef MSG
|
#undef MSG
|
||||||
|
|
||||||
@ -5089,9 +5098,9 @@ void AuthInitialize () {
|
|||||||
false,
|
false,
|
||||||
s_send, arrsize(s_send),
|
s_send, arrsize(s_send),
|
||||||
s_recv, arrsize(s_recv),
|
s_recv, arrsize(s_recv),
|
||||||
kDhGValue,
|
kAuthDhGValue,
|
||||||
BigNum(sizeof(kDhXData), kDhXData),
|
BigNum(sizeof(kAuthDhXData), kAuthDhXData),
|
||||||
BigNum(sizeof(kDhNData), kDhNData)
|
BigNum(sizeof(kAuthDhNData), kAuthDhNData)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5201,7 +5210,7 @@ void NetCliAuthStartConnect (
|
|||||||
&cancelId,
|
&cancelId,
|
||||||
AsyncLookupCallback,
|
AsyncLookupCallback,
|
||||||
authAddrList[i],
|
authAddrList[i],
|
||||||
kNetDefaultClientPort,
|
GetClientPort(),
|
||||||
nil
|
nil
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -5209,7 +5218,7 @@ void NetCliAuthStartConnect (
|
|||||||
}
|
}
|
||||||
if (!name[0]) {
|
if (!name[0]) {
|
||||||
NetAddress addr;
|
NetAddress addr;
|
||||||
NetAddressFromString(&addr, authAddrList[i], kNetDefaultClientPort);
|
NetAddressFromString(&addr, authAddrList[i], GetClientPort());
|
||||||
Connect(authAddrList[i], addr);
|
Connect(authAddrList[i], addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,9 +48,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
#include "../Pch.h"
|
#include "../Pch.h"
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
|
|
||||||
// This file excluded from pre-compiled header because it is auto-generated by the build server.
|
|
||||||
#include "pnNetBase/pnNbCsrKey.hpp"
|
|
||||||
|
|
||||||
|
|
||||||
namespace Ngl { namespace Csr {
|
namespace Ngl { namespace Csr {
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
@ -764,9 +761,9 @@ void CsrInitialize () {
|
|||||||
false,
|
false,
|
||||||
s_send, arrsize(s_send),
|
s_send, arrsize(s_send),
|
||||||
s_recv, arrsize(s_recv),
|
s_recv, arrsize(s_recv),
|
||||||
kDhGValue,
|
kCsrDhGValue,
|
||||||
BigNum(sizeof(kDhXData), kDhXData),
|
BigNum(sizeof(kCsrDhXData), kCsrDhXData),
|
||||||
BigNum(sizeof(kDhNData), kDhNData)
|
BigNum(sizeof(kCsrDhNData), kCsrDhNData)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -860,7 +857,7 @@ void NetCliCsrStartConnect (
|
|||||||
&cancelId,
|
&cancelId,
|
||||||
AsyncLookupCallback,
|
AsyncLookupCallback,
|
||||||
addrList[i],
|
addrList[i],
|
||||||
kNetDefaultClientPort,
|
GetClientPort(),
|
||||||
cp
|
cp
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -868,7 +865,7 @@ void NetCliCsrStartConnect (
|
|||||||
}
|
}
|
||||||
if (!name[0]) {
|
if (!name[0]) {
|
||||||
NetAddress addr;
|
NetAddress addr;
|
||||||
NetAddressFromString(&addr, addrList[i], kNetDefaultClientPort);
|
NetAddressFromString(&addr, addrList[i], GetClientPort());
|
||||||
|
|
||||||
ConnectParam * cp = NEW(ConnectParam);
|
ConnectParam * cp = NEW(ConnectParam);
|
||||||
cp->callback = callback;
|
cp->callback = callback;
|
||||||
|
@ -1361,7 +1361,7 @@ void NetCliFileStartConnect (
|
|||||||
&cancelId,
|
&cancelId,
|
||||||
AsyncLookupCallback,
|
AsyncLookupCallback,
|
||||||
fileAddrList[i],
|
fileAddrList[i],
|
||||||
kNetDefaultClientPort,
|
GetClientPort(),
|
||||||
nil
|
nil
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -1369,7 +1369,7 @@ void NetCliFileStartConnect (
|
|||||||
}
|
}
|
||||||
if (!name[0]) {
|
if (!name[0]) {
|
||||||
NetAddress addr;
|
NetAddress addr;
|
||||||
NetAddressFromString(&addr, fileAddrList[i], kNetDefaultClientPort);
|
NetAddressFromString(&addr, fileAddrList[i], GetClientPort());
|
||||||
Connect(fileAddrList[i], addr);
|
Connect(fileAddrList[i], addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1399,7 +1399,7 @@ void NetCliFileStartConnectAsServer (
|
|||||||
&cancelId,
|
&cancelId,
|
||||||
AsyncLookupCallback,
|
AsyncLookupCallback,
|
||||||
fileAddrList[i],
|
fileAddrList[i],
|
||||||
kNetDefaultClientPort,
|
GetClientPort(),
|
||||||
nil
|
nil
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -1407,7 +1407,7 @@ void NetCliFileStartConnectAsServer (
|
|||||||
}
|
}
|
||||||
if (!name[0]) {
|
if (!name[0]) {
|
||||||
NetAddress addr;
|
NetAddress addr;
|
||||||
NetAddressFromString(&addr, fileAddrList[i], kNetDefaultServerPort);
|
NetAddressFromString(&addr, fileAddrList[i], GetServerPort());
|
||||||
Connect(fileAddrList[i], addr);
|
Connect(fileAddrList[i], addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,9 +48,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
#include "../Pch.h"
|
#include "../Pch.h"
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
|
|
||||||
// This file excluded from pre-compiled header because it is auto-generated by the build server.
|
|
||||||
#include "pnNetBase/pnNbGameKey.hpp"
|
|
||||||
|
|
||||||
namespace Ngl { namespace Game {
|
namespace Ngl { namespace Game {
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
@ -665,9 +662,9 @@ void GameInitialize () {
|
|||||||
false,
|
false,
|
||||||
s_send, arrsize(s_send),
|
s_send, arrsize(s_send),
|
||||||
s_recv, arrsize(s_recv),
|
s_recv, arrsize(s_recv),
|
||||||
kDhGValue,
|
kGameDhGValue,
|
||||||
BigNum(sizeof(kDhXData), kDhXData),
|
BigNum(sizeof(kGameDhXData), kGameDhXData),
|
||||||
BigNum(sizeof(kDhNData), kDhNData)
|
BigNum(sizeof(kGameDhNData), kGameDhNData)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
#include "../Pch.h"
|
#include "../Pch.h"
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
|
|
||||||
// This file excluded from pre-compiled header because it is auto-generated by the build server.
|
|
||||||
#include "pnNetBase/pnNbGateKeeperKey.hpp"
|
|
||||||
|
|
||||||
namespace Ngl { namespace GateKeeper {
|
namespace Ngl { namespace GateKeeper {
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
@ -1005,9 +1002,9 @@ void GateKeeperInitialize () {
|
|||||||
false,
|
false,
|
||||||
s_send, arrsize(s_send),
|
s_send, arrsize(s_send),
|
||||||
s_recv, arrsize(s_recv),
|
s_recv, arrsize(s_recv),
|
||||||
kDhGValue,
|
kGateKeeperDhGValue,
|
||||||
BigNum(sizeof(kDhXData), kDhXData),
|
BigNum(sizeof(kGateKeeperDhXData), kGateKeeperDhXData),
|
||||||
BigNum(sizeof(kDhNData), kDhNData)
|
BigNum(sizeof(kGateKeeperDhNData), kGateKeeperDhNData)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1091,7 +1088,7 @@ void NetCliGateKeeperStartConnect (
|
|||||||
&cancelId,
|
&cancelId,
|
||||||
AsyncLookupCallback,
|
AsyncLookupCallback,
|
||||||
gateKeeperAddrList[i],
|
gateKeeperAddrList[i],
|
||||||
kNetDefaultClientPort,
|
GetClientPort(),
|
||||||
nil
|
nil
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -1099,7 +1096,7 @@ void NetCliGateKeeperStartConnect (
|
|||||||
}
|
}
|
||||||
if (!name[0]) {
|
if (!name[0]) {
|
||||||
NetAddress addr;
|
NetAddress addr;
|
||||||
NetAddressFromString(&addr, gateKeeperAddrList[i], kNetDefaultClientPort);
|
NetAddressFromString(&addr, gateKeeperAddrList[i], GetClientPort());
|
||||||
Connect(gateKeeperAddrList[i], addr);
|
Connect(gateKeeperAddrList[i], addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,9 +59,11 @@ plRegistryKeyList::~plRegistryKeyList()
|
|||||||
for (int i = 0; i < fStaticKeys.size(); i++)
|
for (int i = 0; i < fStaticKeys.size(); i++)
|
||||||
{
|
{
|
||||||
plKeyImp* keyImp = fStaticKeys[i];
|
plKeyImp* keyImp = fStaticKeys[i];
|
||||||
if (!keyImp->ObjectIsLoaded())
|
if (keyImp && !keyImp->ObjectIsLoaded()) {
|
||||||
|
fStaticKeys[i] = nullptr;
|
||||||
delete keyImp;
|
delete keyImp;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Special dummy key that lets us set the return value of the GetName call.
|
// Special dummy key that lets us set the return value of the GetName call.
|
||||||
|
@ -203,6 +203,7 @@ void plRegistryPageNode::UnloadKeys()
|
|||||||
for (; it != fKeyLists.end(); it++)
|
for (; it != fKeyLists.end(); it++)
|
||||||
{
|
{
|
||||||
plRegistryKeyList* keyList = it->second;
|
plRegistryKeyList* keyList = it->second;
|
||||||
|
it->second = nullptr;
|
||||||
delete keyList;
|
delete keyList;
|
||||||
}
|
}
|
||||||
fKeyLists.clear();
|
fKeyLists.clear();
|
||||||
|
@ -219,14 +219,20 @@ void plResManager::IShutdown()
|
|||||||
// Shut down the registry (finally!)
|
// Shut down the registry (finally!)
|
||||||
ILockPages();
|
ILockPages();
|
||||||
|
|
||||||
PageSet::const_iterator it;
|
// Unload all keys before actually deleting the pages.
|
||||||
for (it = fAllPages.begin(); it != fAllPages.end(); it++)
|
// When a key's refcount drops to zero, IKeyUnreffed looks up the key's page.
|
||||||
delete *it;
|
// If the page is already deleted at that point, this causes a use after free and potential crash.
|
||||||
fAllPages.clear();
|
for (PageSet::const_iterator it = fAllPages.begin(); it != fAllPages.end(); it++) {
|
||||||
|
(*it)->UnloadKeys();
|
||||||
|
}
|
||||||
fLoadedPages.clear();
|
fLoadedPages.clear();
|
||||||
|
fLastFoundPage = nil;
|
||||||
|
for (PageSet::const_iterator it = fAllPages.begin(); it != fAllPages.end(); it++) {
|
||||||
|
delete *it;
|
||||||
|
}
|
||||||
|
fAllPages.clear();
|
||||||
|
|
||||||
IUnlockPages();
|
IUnlockPages();
|
||||||
fLastFoundPage = nil;
|
|
||||||
|
|
||||||
// Now, kill off the Dispatcher
|
// Now, kill off the Dispatcher
|
||||||
hsRefCnt_SafeUnRef(fDispatch);
|
hsRefCnt_SafeUnRef(fDispatch);
|
||||||
|
Reference in New Issue
Block a user