mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-15 10:54:18 +00:00
Compare commits
59 Commits
avatar-phy
...
bink-stub
Author | SHA1 | Date | |
---|---|---|---|
f03a837642 | |||
30d140b8a0 | |||
431bb5ff90 | |||
1d309e3ce5 | |||
78bfdad9c4 | |||
368d757bf8 | |||
ca58d0e701 | |||
a3592d9a0a | |||
3cf35d0bc0 | |||
76ee9975b7 | |||
7f3d416290 | |||
ec29c270e4 | |||
357d4aa7d1 | |||
91a4f8ab3e | |||
48ded426a9 | |||
eba0968808 | |||
97b9503cb1 | |||
68ba122afe | |||
743419d9e5 | |||
5951a11e86 | |||
46810aa990 | |||
fdc8e28c2f | |||
1cac4f85da | |||
487f63f60b | |||
a7271982d5 | |||
1d23f50bf6 | |||
f67e52eeb2 | |||
0b57fd1339 | |||
f4b3a43026 | |||
1530af77f7 | |||
487d7b4923 | |||
9553ecd05b | |||
3c552912fa | |||
603bc51cfd | |||
ae5f410eee | |||
f892871a33 | |||
ff9aa4ac84 | |||
40611119c0 | |||
d0e842aec2 | |||
d751f371b5 | |||
5da91faed0 | |||
043adb2d7c | |||
508e431a99 | |||
197e24a746 | |||
f3344fc544 | |||
6538d78d9f | |||
7998b3bcc4 | |||
86251807fc | |||
da4003b7fc | |||
7af3a02c66 | |||
7523f6fa1f | |||
c3657d20a4 | |||
8cee080878 | |||
3e34e30308 | |||
503012c700 | |||
ced3c03fed | |||
ff435650b8 | |||
259f07462f | |||
a87b691e33 |
@ -5,10 +5,12 @@ syntax: glob
|
||||
*.user
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.pyc
|
||||
Release*/
|
||||
Debug*/
|
||||
ipch/
|
||||
syntax: regexp
|
||||
^MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/render/
|
||||
^MOULOpenSourceClientPlugin/Plasma20/test/
|
||||
^MOULOpenSourceClientPlugin/Plasma20/tools/
|
||||
^MOULOpenSourceClientPlugin/StaticSDKs/
|
||||
|
@ -192,6 +192,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plClientPatcher", "..\plCli
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plClipboard", "..\..\PubUtilLib\plClipboard\plClipboard.vcxproj", "{CA2D4E65-EA68-465F-843A-4AF75243B474}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plClientResMgr", "..\..\PubUtilLib\plClientResMgr\plClientResMgr.vcxproj", "{D005F6EF-6A43-1957-7458-10ED3CA39F02}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug_Internal|Win32 = Debug_Internal|Win32
|
||||
@ -968,6 +970,14 @@ Global
|
||||
{CA2D4E65-EA68-465F-843A-4AF75243B474}.Release_Internal|Win32.Build.0 = Release_Internal|Win32
|
||||
{CA2D4E65-EA68-465F-843A-4AF75243B474}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{CA2D4E65-EA68-465F-843A-4AF75243B474}.Release|Win32.Build.0 = Release|Win32
|
||||
{D005F6EF-6A43-1957-7458-10ED3CA39F02}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
|
||||
{D005F6EF-6A43-1957-7458-10ED3CA39F02}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
|
||||
{D005F6EF-6A43-1957-7458-10ED3CA39F02}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D005F6EF-6A43-1957-7458-10ED3CA39F02}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D005F6EF-6A43-1957-7458-10ED3CA39F02}.Release_Internal|Win32.ActiveCfg = Release_Internal|Win32
|
||||
{D005F6EF-6A43-1957-7458-10ED3CA39F02}.Release_Internal|Win32.Build.0 = Release_Internal|Win32
|
||||
{D005F6EF-6A43-1957-7458-10ED3CA39F02}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D005F6EF-6A43-1957-7458-10ED3CA39F02}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -106,10 +106,10 @@
|
||||
<StringPooling>true</StringPooling>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;version.lib;Rpcrt4.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;version.lib;Rpcrt4.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlibd.lib;libpngd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Debug;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Debug;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;..\..\..\..\..\StaticSDKs\XPlatform\png\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;libcid.lib;libcmtd.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AssemblyDebug>true</AssemblyDebug>
|
||||
@ -158,10 +158,10 @@
|
||||
<StringPooling>true</StringPooling>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;version.lib;Rpcrt4.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;version.lib;Rpcrt4.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlibd.lib;libpngd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Debug;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Debug;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;..\..\..\..\..\StaticSDKs\XPlatform\png\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;libcid.lib;libcmtd.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AssemblyDebug>true</AssemblyDebug>
|
||||
@ -214,10 +214,10 @@
|
||||
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;version.lib;Rpcrt4.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;version.lib;Rpcrt4.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlib.lib;libpng.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Release;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Release;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;..\..\..\..\..\StaticSDKs\XPlatform\png\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<AssemblyDebug>false</AssemblyDebug>
|
||||
@ -274,10 +274,10 @@
|
||||
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;version.lib;Rpcrt4.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;version.lib;Rpcrt4.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlib.lib;libpng.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Release;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Release;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;..\..\..\..\..\StaticSDKs\XPlatform\png\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<AssemblyDebug>false</AssemblyDebug>
|
||||
@ -406,53 +406,9 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\banner.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap1.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap2.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap3.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00001.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00002.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00003.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00004.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00005.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\book.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\book_cli.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\book_hig.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cnsl1.bin" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_clicked.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_disabled.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_down.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_grab.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_left.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_open.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_poised.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_right.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_u.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_up.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_upward.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\Dirt.ICO" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\headspin.ico" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\Microphone.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\Speaker.bmp" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.01.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.02.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.03.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.04.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.05.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.06.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.07.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.08.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.09.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.10.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.11.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.12.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.13.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.14.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.15.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.16.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.17.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.18.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking_Text.jpg" />
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Updating_Text.jpg" />
|
||||
<None Include="..\..\..\..\Docs\ReleaseNotes\ReleaseNotes.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@ -672,6 +628,10 @@
|
||||
<Project>{7e6c6f09-c580-4b4d-95e2-c02248122da2}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\PubUtilLib\plClientResMgr\plClientResMgr.vcxproj">
|
||||
<Project>{d005f6ef-6a43-1957-7458-10ed3ca39f02}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\PubUtilLib\plClipboard\plClipboard.vcxproj">
|
||||
<Project>{ca2d4e65-ea68-465f-843a-4af75243b474}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
|
@ -50,147 +50,15 @@
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\banner.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap1.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap2.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap3.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00001.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00002.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00003.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00004.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00005.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\book.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\book_cli.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\book_hig.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cnsl1.bin">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_clicked.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_disabled.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_down.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_grab.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_left.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_open.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_poised.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_right.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_u.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_up.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_upward.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\Dirt.ICO">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\headspin.ico">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\Microphone.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\Speaker.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.01.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.02.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.03.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.04.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.05.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.06.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.07.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.08.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.09.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.10.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.11.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.12.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.13.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.14.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.15.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.16.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.17.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.18.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking_Text.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Updating_Text.jpg">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\Docs\ReleaseNotes\ReleaseNotes.txt">
|
||||
<Filter>Text</Filter>
|
||||
</None>
|
||||
|
@ -61,9 +61,9 @@
|
||||
<StringPooling>true</StringPooling>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>CoreLib.lib;CoreLibExe.lib;pfAnimation.lib;pfAudio.lib;pfCamera.lib;pfCharacter.lib;pfConditional.lib;pfGameGUIMgr.lib;pfGameMgr.lib;pfGameScoreMgr.lib;pfJournalBook.lib;pfLocalizationMgr.lib;pfMessage.lib;pfPython.lib;pfSurface.lib;pnAddrInfo.lib;pnAsyncCore.lib;pnAsyncCoreExe.lib;pnDispatch.lib;pnFactory.lib;pnGameMgr.lib;pnIni.lib;pnIniExe.lib;pnInputCore.lib;pnKeyedObject.lib;pnMessage.lib;pnModifier.lib;pnNetBase.lib;pnNetCli.lib;pnNetCommon.lib;pnNetProtocol.lib;pnNucleusInc.lib;pnProduct.lib;pnSceneObject.lib;pnTimer.lib;pnUtils.lib;pnUtilsExe.lib;plAgeDescription.lib;plAgeLoader.lib;plAudible.lib;plAudio.lib;plAudioCore.lib;plAvatar.lib;plCompression.lib;plContainer.lib;plDrawable.lib;plEncryption.lib;plFile.lib;plGImage.lib;plGLight.lib;plInputCore.lib;plInterp.lib;plIntersect.lib;plJPEG.lib;plMath.lib;plMessage.lib;plModifier.lib;plNetClient.lib;plNetClientComm.lib;plNetClientRecorder.lib;plNetCommon.lib;plNetGameLib.lib;plNetMessage.lib;plNetTransport.lib;plParticleSystem.lib;plPhysical.lib;plPhysX.lib;plPipeline.lib;plProgressMgr.lib;plResMgr.lib;plScene.lib;plSDL.lib;plStatusLog.lib;plSurface.lib;plTransform.lib;plUnifiedTime.lib;plUUID.lib;plVault.lib;winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;Rpcrt4.lib;pythoncore_static.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>CoreLib.lib;CoreLibExe.lib;pfAnimation.lib;pfAudio.lib;pfCamera.lib;pfCharacter.lib;pfConditional.lib;pfGameGUIMgr.lib;pfGameMgr.lib;pfGameScoreMgr.lib;pfJournalBook.lib;pfLocalizationMgr.lib;pfMessage.lib;pfPython.lib;pfSurface.lib;pnAddrInfo.lib;pnAsyncCore.lib;pnAsyncCoreExe.lib;pnDispatch.lib;pnFactory.lib;pnGameMgr.lib;pnIni.lib;pnIniExe.lib;pnInputCore.lib;pnKeyedObject.lib;pnMessage.lib;pnModifier.lib;pnNetBase.lib;pnNetCli.lib;pnNetCommon.lib;pnNetProtocol.lib;pnNucleusInc.lib;pnProduct.lib;pnSceneObject.lib;pnTimer.lib;pnUtils.lib;pnUtilsExe.lib;plAgeDescription.lib;plAgeLoader.lib;plAudible.lib;plAudio.lib;plAudioCore.lib;plAvatar.lib;plClientResMgr.lib;plCompression.lib;plContainer.lib;plDrawable.lib;plEncryption.lib;plFile.lib;plGImage.lib;plGLight.lib;plInputCore.lib;plInterp.lib;plIntersect.lib;plJPEG.lib;plMath.lib;plMessage.lib;plModifier.lib;plNetClient.lib;plNetClientComm.lib;plNetClientRecorder.lib;plNetCommon.lib;plNetGameLib.lib;plNetMessage.lib;plNetTransport.lib;plParticleSystem.lib;plPhysical.lib;plPhysX.lib;plPipeline.lib;plProgressMgr.lib;plResMgr.lib;plScene.lib;plSDL.lib;plStatusLog.lib;plSurface.lib;plTransform.lib;plUnifiedTime.lib;plUUID.lib;plVault.lib;winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;Rpcrt4.lib;pythoncore_static.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;libpngd.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\CoreLib\Debug;..\..\CoreLibExe\Debug;..\..\FeatureLib\pfAnimation\Debug;..\..\FeatureLib\pfAudio\Debug;..\..\FeatureLib\pfCamera\Debug;..\..\FeatureLib\pfCharacter\Debug;..\..\FeatureLib\pfConditional\Debug;..\..\FeatureLib\pfGameGUIMgr\Debug;..\..\FeatureLib\pfGameMgr\Debug;..\..\FeatureLib\pfGameScoreMgr\Debug;..\..\FeatureLib\pfJournalBook\Debug;..\..\FeatureLib\pfLocalizationMgr\Debug;..\..\FeatureLib\pfMessage\Debug;..\..\FeatureLib\pfPython\Debug;..\..\FeatureLib\pfSurface\Debug;..\..\NucleusLib\pnAddrInfo\Debug;..\..\NucleusLib\pnAsyncCore\Debug;..\..\NucleusLib\pnAsyncCoreExe\Debug;..\..\NucleusLib\pnDispatch\Debug;..\..\NucleusLib\pnFactory\Debug;..\..\NucleusLib\pnGameMgr\Debug;..\..\NucleusLib\pnIni\Debug;..\..\NucleusLib\pnIniExe\Debug;..\..\NucleusLib\pnInputCore\Debug;..\..\NucleusLib\pnKeyedObject\Debug;..\..\NucleusLib\pnMessage\Debug;..\..\NucleusLib\pnModifier\Debug;..\..\NucleusLib\pnNetBase\Debug;..\..\NucleusLib\pnNetCli\Debug;..\..\NucleusLib\pnNetCommon\Debug;..\..\NucleusLib\pnNetProtocol\Debug;..\..\NucleusLib\pnNucleusInc\Debug;..\..\NucleusLib\pnProduct\Debug;..\..\NucleusLib\pnSceneObject\Debug;..\..\NucleusLib\pnTimer\Debug;..\..\NucleusLib\pnUtils\Debug;..\..\NucleusLib\pnUtilsExe\Debug;..\..\PubUtilLib\plAgeDescription\Debug;..\..\PubUtilLib\plAgeLoader\Debug;..\..\PubUtilLib\plAudible\Debug;..\..\PubUtilLib\plAudio\Debug;..\..\PubUtilLib\plAudioCore\Debug;..\..\PubUtilLib\plAvatar\Debug;..\..\PubUtilLib\plCompression\Debug;..\..\PubUtilLib\plContainer\Debug;..\..\PubUtilLib\plDrawable\Debug;..\..\PubUtilLib\plEncryption\Debug;..\..\PubUtilLib\plFile\Debug;..\..\PubUtilLib\plGImage\Debug;..\..\PubUtilLib\plGLight\Debug;..\..\PubUtilLib\plInputCore\Debug;..\..\PubUtilLib\plInterp\Debug;..\..\PubUtilLib\plIntersect\Debug;..\..\PubUtilLib\plJPEG\Debug;..\..\PubUtilLib\plMath\Debug;..\..\PubUtilLib\plMessage\Debug;..\..\PubUtilLib\plModifier\Debug;..\..\PubUtilLib\plNetClient\Debug;..\..\PubUtilLib\plNetClientComm\Debug;..\..\PubUtilLib\plNetClientRecorder\Debug;..\..\PubUtilLib\plNetCommon\Debug;..\..\PubUtilLib\plNetGameLib\Debug;..\..\PubUtilLib\plNetMessage\Debug;..\..\PubUtilLib\plNetTransport\Debug;..\..\PubUtilLib\plParticleSystem\Debug;..\..\PubUtilLib\plPhysical\Debug;..\..\PubUtilLib\plPhysX\Debug;..\..\PubUtilLib\plPipeline\Debug;..\..\PubUtilLib\plProgressMgr\Debug;..\..\PubUtilLib\plResMgr\Debug;..\..\PubUtilLib\plScene\Debug;..\..\PubUtilLib\plSDL\Debug;..\..\PubUtilLib\plStatusLog\Debug;..\..\PubUtilLib\plSurface\Debug;..\..\PubUtilLib\plTransform\Debug;..\..\PubUtilLib\plUnifiedTime\Debug;..\..\PubUtilLib\plUUID\Debug;..\..\PubUtilLib\plVault\Debug;..\..\..\..\SDKs\XPlatform\Cypython-2.3.3\PCbuild\Debug;..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Debug;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\CoreLib\Debug;..\..\CoreLibExe\Debug;..\..\FeatureLib\pfAnimation\Debug;..\..\FeatureLib\pfAudio\Debug;..\..\FeatureLib\pfCamera\Debug;..\..\FeatureLib\pfCharacter\Debug;..\..\FeatureLib\pfConditional\Debug;..\..\FeatureLib\pfGameGUIMgr\Debug;..\..\FeatureLib\pfGameMgr\Debug;..\..\FeatureLib\pfGameScoreMgr\Debug;..\..\FeatureLib\pfJournalBook\Debug;..\..\FeatureLib\pfLocalizationMgr\Debug;..\..\FeatureLib\pfMessage\Debug;..\..\FeatureLib\pfPython\Debug;..\..\FeatureLib\pfSurface\Debug;..\..\NucleusLib\pnAddrInfo\Debug;..\..\NucleusLib\pnAsyncCore\Debug;..\..\NucleusLib\pnAsyncCoreExe\Debug;..\..\NucleusLib\pnDispatch\Debug;..\..\NucleusLib\pnFactory\Debug;..\..\NucleusLib\pnGameMgr\Debug;..\..\NucleusLib\pnIni\Debug;..\..\NucleusLib\pnIniExe\Debug;..\..\NucleusLib\pnInputCore\Debug;..\..\NucleusLib\pnKeyedObject\Debug;..\..\NucleusLib\pnMessage\Debug;..\..\NucleusLib\pnModifier\Debug;..\..\NucleusLib\pnNetBase\Debug;..\..\NucleusLib\pnNetCli\Debug;..\..\NucleusLib\pnNetCommon\Debug;..\..\NucleusLib\pnNetProtocol\Debug;..\..\NucleusLib\pnNucleusInc\Debug;..\..\NucleusLib\pnProduct\Debug;..\..\NucleusLib\pnSceneObject\Debug;..\..\NucleusLib\pnTimer\Debug;..\..\NucleusLib\pnUtils\Debug;..\..\NucleusLib\pnUtilsExe\Debug;..\..\PubUtilLib\plAgeDescription\Debug;..\..\PubUtilLib\plAgeLoader\Debug;..\..\PubUtilLib\plAudible\Debug;..\..\PubUtilLib\plAudio\Debug;..\..\PubUtilLib\plAudioCore\Debug;..\..\PubUtilLib\plAvatar\Debug;..\..\PubUtilLib\plClientResMgr\Debug;..\..\PubUtilLib\plCompression\Debug;..\..\PubUtilLib\plContainer\Debug;..\..\PubUtilLib\plDrawable\Debug;..\..\PubUtilLib\plEncryption\Debug;..\..\PubUtilLib\plFile\Debug;..\..\PubUtilLib\plGImage\Debug;..\..\PubUtilLib\plGLight\Debug;..\..\PubUtilLib\plInputCore\Debug;..\..\PubUtilLib\plInterp\Debug;..\..\PubUtilLib\plIntersect\Debug;..\..\PubUtilLib\plJPEG\Debug;..\..\PubUtilLib\plMath\Debug;..\..\PubUtilLib\plMessage\Debug;..\..\PubUtilLib\plModifier\Debug;..\..\PubUtilLib\plNetClient\Debug;..\..\PubUtilLib\plNetClientComm\Debug;..\..\PubUtilLib\plNetClientRecorder\Debug;..\..\PubUtilLib\plNetCommon\Debug;..\..\PubUtilLib\plNetGameLib\Debug;..\..\PubUtilLib\plNetMessage\Debug;..\..\PubUtilLib\plNetTransport\Debug;..\..\PubUtilLib\plParticleSystem\Debug;..\..\PubUtilLib\plPhysical\Debug;..\..\PubUtilLib\plPhysX\Debug;..\..\PubUtilLib\plPipeline\Debug;..\..\PubUtilLib\plProgressMgr\Debug;..\..\PubUtilLib\plResMgr\Debug;..\..\PubUtilLib\plScene\Debug;..\..\PubUtilLib\plSDL\Debug;..\..\PubUtilLib\plStatusLog\Debug;..\..\PubUtilLib\plSurface\Debug;..\..\PubUtilLib\plTransform\Debug;..\..\PubUtilLib\plUnifiedTime\Debug;..\..\PubUtilLib\plUUID\Debug;..\..\PubUtilLib\plVault\Debug;..\..\..\..\SDKs\XPlatform\Cypython-2.3.3\PCbuild\Debug;..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Debug;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\png\lib;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;libcid.lib;libcmt.lib;libcmtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
@ -95,9 +95,9 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>CoreLib.lib;CoreLibExe.lib;pfAnimation.lib;pfAudio.lib;pfCamera.lib;pfCharacter.lib;pfConditional.lib;pfGameGUIMgr.lib;pfGameMgr.lib;pfGameScoreMgr.lib;pfJournalBook.lib;pfLocalizationMgr.lib;pfMessage.lib;pfPython.lib;pfSurface.lib;pnAddrInfo.lib;pnAsyncCore.lib;pnAsyncCoreExe.lib;pnDispatch.lib;pnFactory.lib;pnGameMgr.lib;pnIni.lib;pnIniExe.lib;pnInputCore.lib;pnKeyedObject.lib;pnMessage.lib;pnModifier.lib;pnNetBase.lib;pnNetCli.lib;pnNetCommon.lib;pnNetProtocol.lib;pnNucleusInc.lib;pnProduct.lib;pnSceneObject.lib;pnTimer.lib;pnUtils.lib;pnUtilsExe.lib;plAgeDescription.lib;plAgeLoader.lib;plAudible.lib;plAudio.lib;plAudioCore.lib;plAvatar.lib;plCompression.lib;plContainer.lib;plDrawable.lib;plEncryption.lib;plFile.lib;plGImage.lib;plGLight.lib;plInputCore.lib;plInterp.lib;plIntersect.lib;plJPEG.lib;plMath.lib;plMessage.lib;plModifier.lib;plNetClient.lib;plNetClientComm.lib;plNetClientRecorder.lib;plNetCommon.lib;plNetGameLib.lib;plNetMessage.lib;plNetTransport.lib;plParticleSystem.lib;plPhysical.lib;plPhysX.lib;plPipeline.lib;plProgressMgr.lib;plResMgr.lib;plScene.lib;plSDL.lib;plStatusLog.lib;plSurface.lib;plTransform.lib;plUnifiedTime.lib;plUUID.lib;plVault.lib;winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;Rpcrt4.lib;pythoncore_static.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>CoreLib.lib;CoreLibExe.lib;pfAnimation.lib;pfAudio.lib;pfCamera.lib;pfCharacter.lib;pfConditional.lib;pfGameGUIMgr.lib;pfGameMgr.lib;pfGameScoreMgr.lib;pfJournalBook.lib;pfLocalizationMgr.lib;pfMessage.lib;pfPython.lib;pfSurface.lib;pnAddrInfo.lib;pnAsyncCore.lib;pnAsyncCoreExe.lib;pnDispatch.lib;pnFactory.lib;pnGameMgr.lib;pnIni.lib;pnIniExe.lib;pnInputCore.lib;pnKeyedObject.lib;pnMessage.lib;pnModifier.lib;pnNetBase.lib;pnNetCli.lib;pnNetCommon.lib;pnNetProtocol.lib;pnNucleusInc.lib;pnProduct.lib;pnSceneObject.lib;pnTimer.lib;pnUtils.lib;pnUtilsExe.lib;plAgeDescription.lib;plAgeLoader.lib;plAudible.lib;plAudio.lib;plAudioCore.lib;plAvatar.lib;plClientResMgr.lib;plCompression.lib;plContainer.lib;plDrawable.lib;plEncryption.lib;plFile.lib;plGImage.lib;plGLight.lib;plInputCore.lib;plInterp.lib;plIntersect.lib;plJPEG.lib;plMath.lib;plMessage.lib;plModifier.lib;plNetClient.lib;plNetClientComm.lib;plNetClientRecorder.lib;plNetCommon.lib;plNetGameLib.lib;plNetMessage.lib;plNetTransport.lib;plParticleSystem.lib;plPhysical.lib;plPhysX.lib;plPipeline.lib;plProgressMgr.lib;plResMgr.lib;plScene.lib;plSDL.lib;plStatusLog.lib;plSurface.lib;plTransform.lib;plUnifiedTime.lib;plUUID.lib;plVault.lib;winhttp.lib;ws2_32.lib;strmiids.lib;vfw32.lib;Rpcrt4.lib;pythoncore_static.lib;d3dx9.lib;dinput8.lib;dxerr9.lib;dxguid.lib;dsound.lib;OpenAL32.lib;libeay32.lib;NxCharacter.lib;PhysXLoader.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;libspeex.lib;libjpeg.lib;libpng.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\CoreLib\Release;..\..\CoreLibExe\Release;..\..\FeatureLib\pfAnimation\Release;..\..\FeatureLib\pfAudio\Release;..\..\FeatureLib\pfCamera\Release;..\..\FeatureLib\pfCharacter\Release;..\..\FeatureLib\pfConditional\Release;..\..\FeatureLib\pfGameGUIMgr\Release;..\..\FeatureLib\pfGameMgr\Release;..\..\FeatureLib\pfGameScoreMgr\Release;..\..\FeatureLib\pfJournalBook\Release;..\..\FeatureLib\pfLocalizationMgr\Release;..\..\FeatureLib\pfMessage\Release;..\..\FeatureLib\pfPython\Release;..\..\FeatureLib\pfSurface\Release;..\..\NucleusLib\pnAddrInfo\Release;..\..\NucleusLib\pnAsyncCore\Release;..\..\NucleusLib\pnAsyncCoreExe\Release;..\..\NucleusLib\pnDispatch\Release;..\..\NucleusLib\pnFactory\Release;..\..\NucleusLib\pnGameMgr\Release;..\..\NucleusLib\pnIni\Release;..\..\NucleusLib\pnIniExe\Release;..\..\NucleusLib\pnInputCore\Release;..\..\NucleusLib\pnKeyedObject\Release;..\..\NucleusLib\pnMessage\Release;..\..\NucleusLib\pnModifier\Release;..\..\NucleusLib\pnNetBase\Release;..\..\NucleusLib\pnNetCli\Release;..\..\NucleusLib\pnNetCommon\Release;..\..\NucleusLib\pnNetProtocol\Release;..\..\NucleusLib\pnNucleusInc\Release;..\..\NucleusLib\pnProduct\Release;..\..\NucleusLib\pnSceneObject\Release;..\..\NucleusLib\pnTimer\Release;..\..\NucleusLib\pnUtils\Release;..\..\NucleusLib\pnUtilsExe\Release;..\..\PubUtilLib\plAgeDescription\Release;..\..\PubUtilLib\plAgeLoader\Release;..\..\PubUtilLib\plAudible\Release;..\..\PubUtilLib\plAudio\Release;..\..\PubUtilLib\plAudioCore\Release;..\..\PubUtilLib\plAvatar\Release;..\..\PubUtilLib\plCompression\Release;..\..\PubUtilLib\plContainer\Release;..\..\PubUtilLib\plDrawable\Release;..\..\PubUtilLib\plEncryption\Release;..\..\PubUtilLib\plFile\Release;..\..\PubUtilLib\plGImage\Release;..\..\PubUtilLib\plGLight\Release;..\..\PubUtilLib\plInputCore\Release;..\..\PubUtilLib\plInterp\Release;..\..\PubUtilLib\plIntersect\Release;..\..\PubUtilLib\plJPEG\Release;..\..\PubUtilLib\plMath\Release;..\..\PubUtilLib\plMessage\Release;..\..\PubUtilLib\plModifier\Release;..\..\PubUtilLib\plNetClient\Release;..\..\PubUtilLib\plNetClientComm\Release;..\..\PubUtilLib\plNetClientRecorder\Release;..\..\PubUtilLib\plNetCommon\Release;..\..\PubUtilLib\plNetGameLib\Release;..\..\PubUtilLib\plNetMessage\Release;..\..\PubUtilLib\plNetTransport\Release;..\..\PubUtilLib\plParticleSystem\Release;..\..\PubUtilLib\plPhysical\Release;..\..\PubUtilLib\plPhysX\Release;..\..\PubUtilLib\plPipeline\Release;..\..\PubUtilLib\plProgressMgr\Release;..\..\PubUtilLib\plResMgr\Release;..\..\PubUtilLib\plScene\Release;..\..\PubUtilLib\plSDL\Release;..\..\PubUtilLib\plStatusLog\Release;..\..\PubUtilLib\plSurface\Release;..\..\PubUtilLib\plTransform\Release;..\..\PubUtilLib\plUnifiedTime\Release;..\..\PubUtilLib\plUUID\Release;..\..\PubUtilLib\plVault\Release;..\..\..\..\SDKs\XPlatform\Cypython-2.3.3\PCbuild\Release;..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Release;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\CoreLib\Release;..\..\CoreLibExe\Release;..\..\FeatureLib\pfAnimation\Release;..\..\FeatureLib\pfAudio\Release;..\..\FeatureLib\pfCamera\Release;..\..\FeatureLib\pfCharacter\Release;..\..\FeatureLib\pfConditional\Release;..\..\FeatureLib\pfGameGUIMgr\Release;..\..\FeatureLib\pfGameMgr\Release;..\..\FeatureLib\pfGameScoreMgr\Release;..\..\FeatureLib\pfJournalBook\Release;..\..\FeatureLib\pfLocalizationMgr\Release;..\..\FeatureLib\pfMessage\Release;..\..\FeatureLib\pfPython\Release;..\..\FeatureLib\pfSurface\Release;..\..\NucleusLib\pnAddrInfo\Release;..\..\NucleusLib\pnAsyncCore\Release;..\..\NucleusLib\pnAsyncCoreExe\Release;..\..\NucleusLib\pnDispatch\Release;..\..\NucleusLib\pnFactory\Release;..\..\NucleusLib\pnGameMgr\Release;..\..\NucleusLib\pnIni\Release;..\..\NucleusLib\pnIniExe\Release;..\..\NucleusLib\pnInputCore\Release;..\..\NucleusLib\pnKeyedObject\Release;..\..\NucleusLib\pnMessage\Release;..\..\NucleusLib\pnModifier\Release;..\..\NucleusLib\pnNetBase\Release;..\..\NucleusLib\pnNetCli\Release;..\..\NucleusLib\pnNetCommon\Release;..\..\NucleusLib\pnNetProtocol\Release;..\..\NucleusLib\pnNucleusInc\Release;..\..\NucleusLib\pnProduct\Release;..\..\NucleusLib\pnSceneObject\Release;..\..\NucleusLib\pnTimer\Release;..\..\NucleusLib\pnUtils\Release;..\..\NucleusLib\pnUtilsExe\Release;..\..\PubUtilLib\plAgeDescription\Release;..\..\PubUtilLib\plAgeLoader\Release;..\..\PubUtilLib\plAudible\Release;..\..\PubUtilLib\plAudio\Release;..\..\PubUtilLib\plAudioCore\Release;..\..\PubUtilLib\plAvatar\Release;..\..\PubUtilLib\plClientResMgr\Release;..\..\PubUtilLib\plCompression\Release;..\..\PubUtilLib\plContainer\Release;..\..\PubUtilLib\plDrawable\Release;..\..\PubUtilLib\plEncryption\Release;..\..\PubUtilLib\plFile\Release;..\..\PubUtilLib\plGImage\Release;..\..\PubUtilLib\plGLight\Release;..\..\PubUtilLib\plInputCore\Release;..\..\PubUtilLib\plInterp\Release;..\..\PubUtilLib\plIntersect\Release;..\..\PubUtilLib\plJPEG\Release;..\..\PubUtilLib\plMath\Release;..\..\PubUtilLib\plMessage\Release;..\..\PubUtilLib\plModifier\Release;..\..\PubUtilLib\plNetClient\Release;..\..\PubUtilLib\plNetClientComm\Release;..\..\PubUtilLib\plNetClientRecorder\Release;..\..\PubUtilLib\plNetCommon\Release;..\..\PubUtilLib\plNetGameLib\Release;..\..\PubUtilLib\plNetMessage\Release;..\..\PubUtilLib\plNetTransport\Release;..\..\PubUtilLib\plParticleSystem\Release;..\..\PubUtilLib\plPhysical\Release;..\..\PubUtilLib\plPhysX\Release;..\..\PubUtilLib\plPipeline\Release;..\..\PubUtilLib\plProgressMgr\Release;..\..\PubUtilLib\plResMgr\Release;..\..\PubUtilLib\plScene\Release;..\..\PubUtilLib\plSDL\Release;..\..\PubUtilLib\plStatusLog\Release;..\..\PubUtilLib\plSurface\Release;..\..\PubUtilLib\plTransform\Release;..\..\PubUtilLib\plUnifiedTime\Release;..\..\PubUtilLib\plUUID\Release;..\..\PubUtilLib\plVault\Release;..\..\..\..\SDKs\XPlatform\Cypython-2.3.3\PCbuild\Release;..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\xiph\lib\Release;..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32;..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba;..\..\..\..\..\StaticSDKs\XPlatform\png\lib;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>
|
||||
</GenerateDebugInformation>
|
||||
|
@ -276,22 +276,6 @@
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\FeatureLib\pfSurface\plLayerBink.cpp">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">MaxSpeed</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\FeatureLib\pfSurface\plLayerMovie.cpp">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
||||
|
@ -26,9 +26,6 @@
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\FeatureLib\pfSurface\plLayerAVI.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\FeatureLib\pfSurface\plLayerBink.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\FeatureLib\pfSurface\plLayerMovie.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
|
@ -328,6 +328,7 @@
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAntiGravAction.cpp" />
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plArmatureEffects.cpp">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
||||
@ -554,6 +555,7 @@
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvCallbackAction.cpp" />
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvLadderModifier.cpp">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
||||
@ -805,6 +807,7 @@
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAGMasterSDLModifier.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAGModifier.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAnimStage.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAntiGravAction.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plArmatureEffects.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plArmatureMod.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvatarClothing.h" />
|
||||
@ -822,6 +825,7 @@
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvBrainHuman.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvBrainRideAnimatedPhysical.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvBrainSwim.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvCallbackAction.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvDefs.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvLadderModifier.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvTask.h" />
|
||||
|
@ -35,6 +35,9 @@
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAnimStage.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAntiGravAction.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plArmatureEffects.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@ -83,6 +86,9 @@
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvBrainSwim.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvCallbackAction.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvLadderModifier.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@ -157,6 +163,9 @@
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAnimStage.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAntiGravAction.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plArmatureEffects.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@ -208,6 +217,9 @@
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvBrainSwim.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvCallbackAction.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvDefs.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
@ -0,0 +1,212 @@
|
||||
<?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>{D005F6EF-6A43-1957-7458-10ED3CA39F02}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<SccProjectName />
|
||||
<SccLocalPath />
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</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)'=='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)'=='Release_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>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">$(Configuration)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">$(Configuration)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">$(Configuration)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">$(Configuration)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/NucleusLib;../../../../Sources/Plasma/PubUtilLib</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||
<DisableSpecificWarnings>4800</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
</Lib>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/NucleusLib;../../../../Sources/Plasma/PubUtilLib</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;PLASMA_EXTERNAL_RELEASE;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||
<DisableSpecificWarnings>4800</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
</Lib>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/NucleusLib;../../../../Sources/Plasma/PubUtilLib</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<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>
|
||||
<StringPooling>true</StringPooling>
|
||||
<DisableSpecificWarnings>4800</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
</Lib>
|
||||
<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/NucleusLib;../../../../Sources/Plasma/PubUtilLib</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;PLASMA_EXTERNAL_RELEASE;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<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>
|
||||
<StringPooling>true</StringPooling>
|
||||
<DisableSpecificWarnings>4800</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
</Lib>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plClientResMgr\plClientResMgr.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plClientResMgr\plClientResMgr.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
@ -0,0 +1,23 @@
|
||||
<?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>{cc91b05f-c1df-bb82-d45a-44c78b160984}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{c84f95f0-9c5b-3f0c-1219-72629c0c7b9c}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plClientResMgr\plClientResMgr.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plClientResMgr\plClientResMgr.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -78,7 +78,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
@ -111,7 +111,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;PLASMA_EXTERNAL_RELEASE;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
@ -143,7 +143,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
@ -171,7 +171,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;PLASMA_EXTERNAL_RELEASE;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
|
@ -77,7 +77,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
@ -111,7 +111,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;PLASMA_EXTERNAL_RELEASE;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
@ -144,7 +144,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
@ -173,7 +173,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;PLASMA_EXTERNAL_RELEASE;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
|
@ -78,7 +78,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;../../../../../StaticSDKs/XPlatform/zlib;../../../../../StaticSDKs/XPlatform/png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
@ -111,7 +111,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;../../../../../StaticSDKs/XPlatform/zlib;../../../../../StaticSDKs/XPlatform/png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;PLASMA_EXTERNAL_RELEASE;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
@ -143,7 +143,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;../../../../../StaticSDKs/XPlatform/zlib;../../../../../StaticSDKs/XPlatform/png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
@ -171,7 +171,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;../../../../../StaticSDKs/XPlatform/zlib;../../../../../StaticSDKs/XPlatform/png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;PLASMA_EXTERNAL_RELEASE;BUILD_TYPE=BUILD_TYPE_LIVE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
@ -405,6 +405,10 @@
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plPNG.cpp">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">MaxSpeed</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plTGAWriter.cpp">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
||||
@ -454,6 +458,7 @@
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\PlGImage\plGImageCreatable.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plLODMipmap.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plMipmap.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plPNG.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plTGAWriter.h" />
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plWinFontCache.h" />
|
||||
</ItemGroup>
|
||||
|
@ -50,6 +50,9 @@
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plMipmap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plPNG.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plTGAWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@ -103,6 +106,9 @@
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plMipmap.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plPNG.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plTGAWriter.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
@ -245,22 +245,6 @@
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plPipeline\plBinkPlayer.cpp">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">MaxSpeed</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release_Internal|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plPipeline\plCaptureRender.cpp">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug_Internal|Win32'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
||||
|
@ -23,9 +23,6 @@
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plPipeline\hsGDDrawDllLoad.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plPipeline\plBinkPlayer.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\Sources\Plasma\PubUtilLib\plPipeline\plCaptureRender.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
|
@ -121,6 +121,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plClient", "..\plClient\plC
|
||||
{6CB8A937-3C28-447E-B753-081E275E58FF} = {6CB8A937-3C28-447E-B753-081E275E58FF}
|
||||
{C28B9838-04AE-4EBD-A93F-A94A64230887} = {C28B9838-04AE-4EBD-A93F-A94A64230887}
|
||||
{46B6473A-BD67-4DB8-9479-3C26B8626CFA} = {46B6473A-BD67-4DB8-9479-3C26B8626CFA}
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474} = {17A0AA3A-8445-4C66-FE58-0A5C222CC474}
|
||||
{65A72F3C-FE82-4014-81A3-4647938F40AA} = {65A72F3C-FE82-4014-81A3-4647938F40AA}
|
||||
{A58C3644-55E7-44EB-BE85-0D53773B8BA9} = {A58C3644-55E7-44EB-BE85-0D53773B8BA9}
|
||||
{28E5E146-D581-4492-9DD7-D56247A9F027} = {28E5E146-D581-4492-9DD7-D56247A9F027}
|
||||
@ -190,6 +191,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plClientKey", "..\plClientK
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plClientResMgr", "..\..\PubUtilLib\plClientResMgr\plClientResMgr.vcproj", "{17A0AA3A-8445-4C66-FE58-0A5C222CC474}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plCompression", "..\..\PubUtilLib\plCompression\plCompression.vcproj", "{EF33BFC0-C38B-4BA6-B5B7-E7F90323956F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
@ -489,6 +494,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plPageOptimizer", "..\plPag
|
||||
{5CB24835-47C1-4AE7-900E-70CBD1CC1DEA} = {5CB24835-47C1-4AE7-900E-70CBD1CC1DEA}
|
||||
{6CB8A937-3C28-447E-B753-081E275E58FF} = {6CB8A937-3C28-447E-B753-081E275E58FF}
|
||||
{46B6473A-BD67-4DB8-9479-3C26B8626CFA} = {46B6473A-BD67-4DB8-9479-3C26B8626CFA}
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474} = {17A0AA3A-8445-4C66-FE58-0A5C222CC474}
|
||||
{65A72F3C-FE82-4014-81A3-4647938F40AA} = {65A72F3C-FE82-4014-81A3-4647938F40AA}
|
||||
{A58C3644-55E7-44EB-BE85-0D53773B8BA9} = {A58C3644-55E7-44EB-BE85-0D53773B8BA9}
|
||||
{28E5E146-D581-4492-9DD7-D56247A9F027} = {28E5E146-D581-4492-9DD7-D56247A9F027}
|
||||
@ -929,6 +935,18 @@ Global
|
||||
{CE472632-E2F1-446C-ABAB-1CE5BD9F367B}.Release_Patcher.Build.0 = Release|Win32
|
||||
{CE472632-E2F1-446C-ABAB-1CE5BD9F367B}.Release_Server.ActiveCfg = Release|Win32
|
||||
{CE472632-E2F1-446C-ABAB-1CE5BD9F367B}.Release_Server.Build.0 = Release|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Debug.ActiveCfg = Debug|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Debug.Build.0 = Debug|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Debug_Patcher.ActiveCfg = Debug|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Debug_Patcher.Build.0 = Debug|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Debug_Server.ActiveCfg = Debug|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Debug_Server.Build.0 = Debug|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Release.ActiveCfg = Release|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Release.Build.0 = Release|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Release_Patcher.ActiveCfg = Release|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Release_Patcher.Build.0 = Release|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Release_Server.ActiveCfg = Release|Win32
|
||||
{17A0AA3A-8445-4C66-FE58-0A5C222CC474}.Release_Server.Build.0 = Release|Win32
|
||||
{EF33BFC0-C38B-4BA6-B5B7-E7F90323956F}.Debug.ActiveCfg = Debug|Win32
|
||||
{EF33BFC0-C38B-4BA6-B5B7-E7F90323956F}.Debug.Build.0 = Debug|Win32
|
||||
{EF33BFC0-C38B-4BA6-B5B7-E7F90323956F}.Debug_Patcher.ActiveCfg = Debug_Patcher|Win32
|
||||
|
@ -39,11 +39,11 @@
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winhttp.lib ogg_static_d.lib vorbis_static_d.lib vorbisfile_static_d.lib ksproxy.lib strmiids.lib eax.lib wininet.lib vfw32.lib winmm.lib ijl15l.lib libcrypto.a ws2_32.lib version.lib odbc32.lib odbccp32.lib eaxguid.lib libspeex.lib binkw32.lib Rpcrt4.lib largeint.lib Iphlpapi.lib OpenAL32.lib"
|
||||
AdditionalDependencies="winhttp.lib ogg_static_d.lib vorbis_static_d.lib vorbisfile_static_d.lib ksproxy.lib strmiids.lib eax.lib wininet.lib vfw32.lib winmm.lib ijl15l.lib libcrypto.a ws2_32.lib version.lib odbc32.lib odbccp32.lib eaxguid.lib libspeex.lib binkw32.lib Rpcrt4.lib largeint.lib Iphlpapi.lib OpenAL32.lib libpngd.lib"
|
||||
OutputFile="Debug/plClient_dbg.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories=""..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32";"..\..\..\..\..\StaticSDKs\Win32\speex-1.0.1\win32\libspeex\Release";..\..\..\..\..\StaticSDKs\Win32\Bink\lib;..\..\..\..\..\StaticSDKs\Win32\eax\lib;..\..\..\..\..\StaticSDKs\Win32\oggvorbis\lib;..\..\..\..\..\STATICSDKS\XPLATFORM\STLPORT\lib;..\..\..\..\..\STATICSDKS\Win32\ijl\lib;..\..\..\..\..\StaticSDKs\Win32\WMSDK\lib;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\dx9.0csdk\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\PlatformSDK\Lib"
|
||||
AdditionalLibraryDirectories=""..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32";"..\..\..\..\..\StaticSDKs\Win32\speex-1.0.1\win32\libspeex\Release";..\..\..\..\..\StaticSDKs\Win32\Bink\lib;..\..\..\..\..\StaticSDKs\Win32\eax\lib;..\..\..\..\..\StaticSDKs\Win32\oggvorbis\lib;..\..\..\..\..\STATICSDKS\XPLATFORM\STLPORT\lib;..\..\..\..\..\STATICSDKS\Win32\ijl\lib;..\..\..\..\..\StaticSDKs\Win32\WMSDK\lib;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\dx9.0csdk\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32;..\..\..\..\..\StaticSDKs\Win32\PlatformSDK\Lib;"..\..\..\..\..\StaticSDKs\XPlatform\png\lib""
|
||||
IgnoreDefaultLibraryNames="libc.lib,libcd.lib,libci.lib,libcid.lib,libcmtd.lib,libcmt.lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
AssemblyDebug="1"
|
||||
@ -72,6 +72,7 @@ xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\NxCharacter.dll ..\..\.
|
||||
xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\NxCooking.dll ..\..\..\..\test\
|
||||
xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\NxExtensions.dll ..\..\..\..\test\
|
||||
xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\PhysXLoader.dll ..\..\..\..\test\
|
||||
xcopy /Y ..\..\..\..\Sources\Plasma\Apps\plClient\external\resource.dat ..\..\..\..\test\
|
||||
"
|
||||
ExcludedFromBuild="FALSE"/>
|
||||
<Tool
|
||||
@ -124,11 +125,11 @@ xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\PhysXLoader.dll ..\..\.
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winhttp.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib strmiids.lib wininet.lib vfw32.lib winmm.lib libjpeg.lib libeay32.lib ws2_32.lib version.lib odbc32.lib odbccp32.lib libspeex.lib Rpcrt4.lib largeint.lib Iphlpapi.lib OpenAL32.lib"
|
||||
AdditionalDependencies="winhttp.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib strmiids.lib wininet.lib vfw32.lib winmm.lib libjpeg.lib libeay32.lib ws2_32.lib version.lib odbc32.lib odbccp32.lib libspeex.lib Rpcrt4.lib largeint.lib Iphlpapi.lib OpenAL32.lib libpng.lib"
|
||||
OutputFile=".\Release/plClient.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories=""..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32";"..\..\..\..\..\StaticSDKs\Win32\speex-1.0.1\Win32\libspeex\Release";..\..\..\..\..\StaticSDKs\Win32\Bink\lib;..\..\..\..\..\StaticSDKs\Win32\oggvorbis\lib;..\..\..\..\..\STATICSDKS\XPLATFORM\STLPORT\lib;..\..\..\..\..\StaticSDKs\Win32\WMSDK\lib;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;"..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32";..\..\..\..\..\StaticSDKs\Win32\PlatformSDK\Lib;"..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba""
|
||||
AdditionalLibraryDirectories=""..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32";"..\..\..\..\..\StaticSDKs\Win32\speex-1.0.1\Win32\libspeex\Release";..\..\..\..\..\StaticSDKs\Win32\Bink\lib;..\..\..\..\..\StaticSDKs\Win32\oggvorbis\lib;..\..\..\..\..\STATICSDKS\XPLATFORM\STLPORT\lib;..\..\..\..\..\StaticSDKs\Win32\WMSDK\lib;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\DX9.0c\Lib\x86;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;"..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32";..\..\..\..\..\StaticSDKs\Win32\PlatformSDK\Lib;"..\..\..\..\..\StaticSDKs\XPlatform\jpeg-8c-rgba";"..\..\..\..\..\StaticSDKs\XPlatform\png\lib""
|
||||
IgnoreDefaultLibraryNames="libc.lib,libci.lib,libcmt.lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
AssemblyDebug="1"
|
||||
@ -161,6 +162,7 @@ xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\NxCharacter.dll ..\..\.
|
||||
xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\NxCooking.dll ..\..\..\..\test\
|
||||
xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\NxExtensions.dll ..\..\..\..\test\
|
||||
xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\PhysXLoader.dll ..\..\..\..\test\
|
||||
xcopy /Y ..\..\..\..\Sources\Plasma\Apps\plClient\external\resource.dat ..\..\..\..\test\
|
||||
"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
@ -363,84 +365,15 @@ xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\PhysXLoader.dll ..\..\.
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\banner.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap1.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap2.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\bitmap3.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00001.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00002.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00003.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00004.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\bmp00005.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\book.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\book_cli.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\book_hig.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cnsl1.bin">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_clicked.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_disabled.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_down.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_grab.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_left.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_open.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_poised.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_right.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_u.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_up.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\cursor_upward.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\Dirt.ICO">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\headspin.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\Microphone.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\plClient.rc">
|
||||
<FileConfiguration
|
||||
@ -461,69 +394,6 @@ xcopy /Y ..\..\..\..\..\StaticSDKs\Win32\PhysX\Bin\win32\PhysXLoader.dll ..\..\.
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\Speaker.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.01.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.02.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.03.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.04.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.05.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.06.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.07.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.08.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.09.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.10.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.11.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.12.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.13.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.14.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.15.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.16.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.17.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking.18.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Linking_Text.jpg">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plClient\res\xLoading_Updating_Text.jpg">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Text"
|
||||
|
@ -33,10 +33,10 @@
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="ogg_static.lib vorbis_static.lib vorbisfile_static.lib ksproxy.lib strmiids.lib eax.lib wininet.lib vfw32.lib winmm.lib libcrypto.a ws2_32.lib version.lib odbc32.lib odbccp32.lib eaxguid.lib binkw32.lib d3dx9.lib dinput8.lib dplayx.lib dsound.lib dxerr9.lib dxguid.lib zlibd.lib Rpcrt4.lib ijl15l.lib NxCharacter.lib PhysXLoader.lib libspeex.lib OpenAL32.lib"
|
||||
AdditionalDependencies="ogg_static.lib vorbis_static.lib vorbisfile_static.lib ksproxy.lib strmiids.lib eax.lib wininet.lib vfw32.lib winmm.lib libcrypto.a ws2_32.lib version.lib odbc32.lib odbccp32.lib eaxguid.lib binkw32.lib d3dx9.lib dinput8.lib dplayx.lib dsound.lib dxerr9.lib dxguid.lib libpngd.lib zlibd.lib Rpcrt4.lib ijl15l.lib NxCharacter.lib PhysXLoader.lib libspeex.lib OpenAL32.lib"
|
||||
OutputFile="$(OutDir)/plPageOptimizer.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\..\..\..\StaticSDKs\Win32\Bink\lib;..\..\..\..\..\StaticSDKs\Win32\eax\lib;..\..\..\..\..\StaticSDKs\Win32\oggvorbis\lib;..\..\..\..\..\STATICSDKS\Win32\ijl\lib;..\..\..\..\..\StaticSDKs\Win32\WMSDK\lib;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\dx8.1sdk\lib;..\..\..\..\SDKs\XPlatform\ODE\lib\win32;"..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs";..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;"..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32";"..\..\..\..\..\StaticSDKs\Win32\speex-1.0.1\Win32\libspeex\Debug";"..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32";..\..\..\..\..\StaticSDKs\Win32\dx9.0c\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\..\..\StaticSDKs\Win32\Bink\lib;..\..\..\..\..\StaticSDKs\Win32\eax\lib;..\..\..\..\..\StaticSDKs\Win32\oggvorbis\lib;..\..\..\..\..\STATICSDKS\Win32\ijl\lib;..\..\..\..\..\StaticSDKs\Win32\WMSDK\lib;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\dx8.1sdk\lib;..\..\..\..\SDKs\XPlatform\ODE\lib\win32;"..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs";..\..\..\..\..\StaticSDKs\XPlatform\png\lib;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;"..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32";"..\..\..\..\..\StaticSDKs\Win32\speex-1.0.1\Win32\libspeex\Debug";"..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32";..\..\..\..\..\StaticSDKs\Win32\dx9.0c\lib"
|
||||
IgnoreDefaultLibraryNames="libc.lib,libcd.lib,libci.lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/plPageOptimizer.pdb"
|
||||
@ -83,10 +83,10 @@
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="ogg_static.lib vorbis_static.lib vorbisfile_static.lib strmiids.lib wininet.lib vfw32.lib winmm.lib libeay32.lib ws2_32.lib version.lib odbc32.lib odbccp32.lib d3dx9.lib dinput8.lib dplayx.lib dsound.lib dxerr9.lib dxguid.lib zlib.lib libspeex.lib OpenAL32.lib Rpcrt4.lib NxCharacter.lib PhysXLoader.lib libjpeg.lib"
|
||||
AdditionalDependencies="ogg_static.lib vorbis_static.lib vorbisfile_static.lib strmiids.lib wininet.lib vfw32.lib winmm.lib libeay32.lib ws2_32.lib version.lib odbc32.lib odbccp32.lib d3dx9.lib dinput8.lib dplayx.lib dsound.lib dxerr9.lib dxguid.lib libpng.lib zlib.lib libspeex.lib OpenAL32.lib Rpcrt4.lib NxCharacter.lib PhysXLoader.lib libjpeg.lib"
|
||||
OutputFile="$(OutDir)/plPageOptimizer.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\..\..\..\StaticSDKs\Win32\Bink\lib;..\..\..\..\..\StaticSDKs\Win32\eax\lib;..\..\..\..\..\StaticSDKs\Win32\oggvorbis\lib;..\..\..\..\..\STATICSDKS\Win32\ijl\lib;..\..\..\..\..\StaticSDKs\Win32\WMSDK\lib;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\dx9.0c\lib\x86;..\..\..\..\SDKs\XPlatform\ODE\lib\win32;"..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs";..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;"..\..\..\..\..\StaticSDKs\Win32\speex-1.0.1\Win32\libspeex\Release";"..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32";"..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32";..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;"../../../../../StaticSDKs/XPlatform/jpeg-8c-rgba""
|
||||
AdditionalLibraryDirectories="..\..\..\..\..\StaticSDKs\Win32\Bink\lib;..\..\..\..\..\StaticSDKs\Win32\eax\lib;..\..\..\..\..\StaticSDKs\Win32\oggvorbis\lib;..\..\..\..\..\STATICSDKS\Win32\ijl\lib;..\..\..\..\..\StaticSDKs\Win32\WMSDK\lib;..\..\..\..\..\StaticSDKs\Win32\OpenSSL\lib;..\..\..\..\..\StaticSDKs\Win32\dx9.0c\lib\x86;..\..\..\..\SDKs\XPlatform\ODE\lib\win32;"..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs";..\..\..\..\..\StaticSDKs\XPlatform\png\lib;..\..\..\..\..\StaticSDKs\XPlatform\zlib\lib;"..\..\..\..\..\StaticSDKs\Win32\speex-1.0.1\Win32\libspeex\Release";"..\..\..\..\..\StaticSDKs\Win32\OpenAL 1.1 with EFX SDK\libs\Win32";"..\..\..\..\..\StaticSDKs\XPlatform\expat-1.95.7\StaticLibs\Win32";..\..\..\..\..\StaticSDKs\Win32\PhysX\lib\win32;"../../../../../StaticSDKs/XPlatform/jpeg-8c-rgba""
|
||||
IgnoreDefaultLibraryNames="libc.lib,libci.lib,libcmt.lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
|
@ -22,7 +22,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\Sources\Plasma\CoreLib,..\..\..\..\Sources\Plasma\PubUtilLib\inc,..\..\..\..\..\StaticSDKs\XPlatform\zlib\inc,..\..\..\..\Sources\AssetMan\Libs\jvCoreUtil"
|
||||
AdditionalIncludeDirectories="..\..\..\..\Sources\Plasma\CoreLib,..\..\..\..\Sources\Plasma\PubUtilLib\inc,..\..\..\..\..\StaticSDKs\XPlatform\zlib,..\..\..\..\Sources\AssetMan\Libs\jvCoreUtil"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
@ -89,7 +89,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\Sources\Plasma\CoreLib,..\..\..\..\Sources\Plasma\PubUtilLib\inc,..\..\..\..\..\StaticSDKs\XPlatform\zlib\inc,..\..\..\..\Sources\AssetMan\Libs\jvCoreUtil"
|
||||
AdditionalIncludeDirectories="..\..\..\..\Sources\Plasma\CoreLib,..\..\..\..\Sources\Plasma\PubUtilLib\inc,..\..\..\..\..\StaticSDKs\XPlatform\zlib,..\..\..\..\Sources\AssetMan\Libs\jvCoreUtil"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -254,7 +254,7 @@
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\StaticSDKs\XPlatform\zlib\SRC\contrib\minizip\unzip.c">
|
||||
RelativePath="..\..\..\..\..\StaticSDKs\XPlatform\zlib\contrib\minizip\unzip.c">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
@ -290,7 +290,7 @@
|
||||
RelativePath="..\..\..\..\Sources\Plasma\Apps\plPlasmaInstaller\plUnzip.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\StaticSDKs\XPlatform\zlib\SRC\contrib\minizip\unzip.h">
|
||||
RelativePath="..\..\..\..\..\StaticSDKs\XPlatform\zlib\contrib\minizip\unzip.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
|
@ -21,7 +21,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\Sources\Plasma\CoreLib;..\..\..\..\Sources\Plasma\NucleusLib\inc;..\..\..\..\Sources\Plasma\PubUtilLib\inc;..\..\..\..\..\StaticSDKs\XPlatform\zlib\inc;..\..\..\..\Sources\AssetMan\Libs\jvCoreUtil;..\..\..\..\Sources\Plasma\PubUtilLib\plHttpServer"
|
||||
AdditionalIncludeDirectories="..\..\..\..\Sources\Plasma\CoreLib;..\..\..\..\Sources\Plasma\NucleusLib\inc;..\..\..\..\Sources\Plasma\PubUtilLib\inc;..\..\..\..\..\StaticSDKs\XPlatform\zlib;..\..\..\..\Sources\AssetMan\Libs\jvCoreUtil;..\..\..\..\Sources\Plasma\PubUtilLib\plHttpServer"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -89,7 +89,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\Sources\Plasma\CoreLib;..\..\..\..\Sources\Plasma\NucleusLib\inc;..\..\..\..\Sources\Plasma\PubUtilLib\inc;..\..\..\..\..\StaticSDKs\XPlatform\zlib\inc;..\..\..\..\Sources\AssetMan\Libs\jvCoreUtil;..\..\..\..\Sources\Plasma\PubUtilLib\plHttpServer"
|
||||
AdditionalIncludeDirectories="..\..\..\..\Sources\Plasma\CoreLib;..\..\..\..\Sources\Plasma\NucleusLib\inc;..\..\..\..\Sources\Plasma\PubUtilLib\inc;..\..\..\..\..\StaticSDKs\XPlatform\zlib;..\..\..\..\Sources\AssetMan\Libs\jvCoreUtil;..\..\..\..\Sources\Plasma\PubUtilLib\plHttpServer"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
|
@ -21,7 +21,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/FeatureLib/inc;../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/Bink/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/FeatureLib/inc;../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -73,7 +73,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/FeatureLib/inc;../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/Bink/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/FeatureLib/inc;../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
@ -221,26 +221,6 @@
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\FeatureLib\pfSurface\plLayerBink.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\FeatureLib\pfSurface\plLayerMovie.cpp">
|
||||
<FileConfiguration
|
||||
|
@ -282,6 +282,26 @@
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAntiGravAction.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plArmatureEffects.cpp">
|
||||
<FileConfiguration
|
||||
@ -568,6 +588,26 @@
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvCallbackAction.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvLadderModifier.cpp">
|
||||
<FileConfiguration
|
||||
@ -899,6 +939,9 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAnimStage.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAntiGravAction.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plArmatureEffects.h">
|
||||
</File>
|
||||
@ -950,6 +993,9 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvBrainSwim.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvCallbackAction.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plAvatar\plAvDefs.h">
|
||||
</File>
|
||||
|
@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="plClientResMgr"
|
||||
ProjectGUID="{17A0AA3A-8445-4C66-FE58-0A5C222CC474}"
|
||||
SccProjectName=""
|
||||
SccLocalPath="">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="4"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/NucleusLib;../../../../Sources/Plasma/PubUtilLib"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
ForceConformanceInForLoopScope="TRUE"
|
||||
PrecompiledHeaderFile=""
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
OutputFile=".\Release\plClientResMgr.lib"
|
||||
SuppressStartupBanner="TRUE"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="4"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc;../../../../Sources/Plasma/NucleusLib;../../../../Sources/Plasma/PubUtilLib"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
ForceConformanceInForLoopScope="TRUE"
|
||||
PrecompiledHeaderFile=""
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
OutputFile=".\Debug\plClientResMgr.lib"
|
||||
SuppressStartupBanner="TRUE"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plClientResMgr\plClientResMgr.cpp">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl">
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plClientResMgr\plClientResMgr.h">
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
@ -24,7 +24,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\Win32\zlib\inc,../../../../../StaticSDKs\XPlatform\zlib\inc,../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\Win32\zlib\inc,../../../../../StaticSDKs\XPlatform\zlib,../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
@ -76,7 +76,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\XPlatform\zlib\inc,../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\XPlatform\zlib,../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -127,7 +127,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\XPlatform\zlib\inc,../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\XPlatform\zlib,../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;STREAM_LOGGER"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -178,7 +178,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\XPlatform\zlib\inc,../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\XPlatform\zlib,../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;SERVER"
|
||||
StringPooling="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -232,7 +232,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\Win32\zlib\inc,../../../../../StaticSDKs\XPlatform\zlib\inc,../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\Win32\zlib\inc,../../../../../StaticSDKs\XPlatform\zlib,../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;SERVER"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -285,7 +285,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\Win32\zlib\inc,../../../../../StaticSDKs\XPlatform\zlib\inc,../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\Win32\zlib\inc,../../../../../StaticSDKs\XPlatform\zlib,../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -336,7 +336,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\XPlatform\zlib\inc,../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs\XPlatform\zlib,../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
|
@ -22,7 +22,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;STREAM_LOGGER"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -74,7 +74,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
@ -126,7 +126,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -178,7 +178,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;SERVER"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -229,7 +229,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;SERVER"
|
||||
StringPooling="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -282,7 +282,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@ -334,7 +334,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../../StaticSDKs/XPlatform/zlib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/NucleusLib/inc"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
|
@ -22,7 +22,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/dx8.1sdk/include;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/dx8.1sdk/include;../../../../../StaticSDKs/XPlatform/zlib;../../../../../StaticSDKs/XPlatform/png;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
@ -74,7 +74,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/dx8.1sdk/include;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/dx8.1sdk/include;../../../../../StaticSDKs/XPlatform/zlib;../../../../../StaticSDKs/XPlatform/png;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -381,6 +381,9 @@
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plPNG.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plTGAWriter.cpp">
|
||||
<FileConfiguration
|
||||
@ -470,6 +473,9 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plMipmap.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plPNG.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plGImage\plTGAWriter.h">
|
||||
</File>
|
||||
|
@ -21,7 +21,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/dx9.0c/include;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;../../../../../StaticSDKs/Win32/Bink/inc;../../../../Sources/Plasma/FeatureLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/dx9.0c/include;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/FeatureLib/inc"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -73,7 +73,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/dx9.0c/include;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;../../../../../StaticSDKs/Win32/Bink/inc;../../../../Sources/Plasma/FeatureLib/inc"
|
||||
AdditionalIncludeDirectories="../../../../Sources/Plasma/NucleusLib/inc;../../../../../StaticSDKs/Win32/dx9.0c/include;../../../../Sources/Plasma/PubUtilLib/inc;../../../../Sources/Plasma/CoreLib;../../../../Sources/Plasma/FeatureLib/inc"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
@ -181,26 +181,6 @@
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plPipeline\plBinkPlayer.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\Sources\Plasma\PubUtilLib\plPipeline\plCaptureRender.cpp">
|
||||
<FileConfiguration
|
||||
|
@ -5480,6 +5480,22 @@ This event record is used to pass a ptKey variable to another python program"""
|
||||
|
||||
def addVarNumber(self,name,number):
|
||||
"""Add a number variable event record to the Notify message
|
||||
Method will try to pick appropriate variable type
|
||||
This event record is used to pass a number variable to another python program"""
|
||||
pass
|
||||
|
||||
def addVarFloat(self,name,number):
|
||||
"""Add a float variable event record to the Notify message
|
||||
This event record is used to pass a number variable to another python program"""
|
||||
pass
|
||||
|
||||
def addVarInt(self,name,number):
|
||||
"""Add a integer variable event record to the Notify message
|
||||
This event record is used to pass a number variable to another python program"""
|
||||
pass
|
||||
|
||||
def addVarNull(self,name):
|
||||
"""Add a null (no data) variable event record to the Notify message
|
||||
This event record is used to pass a number variable to another python program"""
|
||||
pass
|
||||
|
||||
|
@ -215,8 +215,10 @@ class PtNotificationType:
|
||||
|
||||
class PtNotifyDataType:
|
||||
"""(none)"""
|
||||
kNumber = 1
|
||||
kFloat = 1
|
||||
kKey = 2
|
||||
kInt = 3
|
||||
kNull = 4
|
||||
|
||||
class PtSDLReadWriteOptions:
|
||||
"""(none)"""
|
||||
|
@ -69,7 +69,7 @@ kOfferLinkingBook=PtEventType.kOfferLinkingBook # [1]=offerer, [2]=link panel ID
|
||||
|
||||
|
||||
# OnNotify Var Event Data Types
|
||||
kVarNumberType=PtNotifyDataType.kNumber
|
||||
kVarNumberType=PtNotifyDataType.kFloat
|
||||
kVarKeyType=PtNotifyDataType.kKey
|
||||
# OnNotify MultiStageEvent - what event types
|
||||
kEnterStage=PtMultiStageEventType.kEnterStage
|
||||
@ -179,8 +179,12 @@ def PtAddEvent(notify,event):
|
||||
elif event[0] == kControlKeyEvent:
|
||||
notify.addControlKeyEvent(event[1],event[2])
|
||||
elif event[0] == kVariableEvent:
|
||||
if event[2] == kVarNumberType:
|
||||
notify.addVarNumber(event[1],event[3])
|
||||
if event[2] == PtNotifyDataType.kFloat:
|
||||
notify.addVarFloat(event[1],event[3])
|
||||
elif event[2] == PtNotifyDataType.kInt:
|
||||
notify.addVarInt(event[1],event[3])
|
||||
elif event[2] == PtNotifyDataType.kNull:
|
||||
notify.addVarNull(event[1])
|
||||
elif event[2] == kVarKeyType:
|
||||
notify.addVarKey(event[1],event[3])
|
||||
elif event[0] == kFacingEvent:
|
||||
|
864
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/Cursor_Base.svg
vendored
Normal file
864
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/Cursor_Base.svg
vendored
Normal file
@ -0,0 +1,864 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="making of cursors.svg"
|
||||
inkscape:export-xdpi="360"
|
||||
inkscape:export-ydpi="360">
|
||||
<defs
|
||||
id="defs4">
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
id="filter6135"
|
||||
x="-0.5"
|
||||
width="2"
|
||||
y="-0.5"
|
||||
height="2"
|
||||
inkscape:label="filter6135"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="1.5"
|
||||
id="feGaussianBlur6137" />
|
||||
</filter>
|
||||
<mask
|
||||
x="-0.5"
|
||||
y="-0.5"
|
||||
width="2"
|
||||
height="2"
|
||||
id="mask6840">
|
||||
<g
|
||||
id="g6842">
|
||||
<rect
|
||||
y="0"
|
||||
x="0"
|
||||
height="48"
|
||||
width="48"
|
||||
id="rect6844"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||
<use
|
||||
height="1"
|
||||
width="1"
|
||||
id="use6846"
|
||||
xlink:href="#path4148"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#404040;fill-opacity:1;display:inline" />
|
||||
<use
|
||||
height="1"
|
||||
width="1"
|
||||
id="use6845"
|
||||
xlink:href="#path4146"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#404040;fill-opacity:1;display:inline" />
|
||||
<use
|
||||
height="1"
|
||||
width="1"
|
||||
id="use6844"
|
||||
xlink:href="#path4144"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#404040;fill-opacity:1;display:inline" />
|
||||
<use
|
||||
height="1"
|
||||
width="1"
|
||||
id="use6843"
|
||||
xlink:href="#path4119"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#404040;fill-opacity:1;display:inline" />
|
||||
</g>
|
||||
</mask>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="12"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer35"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1541"
|
||||
inkscape:window-height="889"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-grids="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2985"
|
||||
empspacing="4"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3997"
|
||||
empspacing="8"
|
||||
visible="true"
|
||||
enabled="false"
|
||||
snapvisiblegridlinesonly="true"
|
||||
spacingx="0.5px"
|
||||
spacingy="0.5px"
|
||||
color="#00ff00"
|
||||
opacity="0.1254902"
|
||||
empcolor="#00ff00"
|
||||
empopacity="0.25098039" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4665"
|
||||
empspacing="2"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
spacingx="24px"
|
||||
spacingy="24px"
|
||||
color="#ff00ff"
|
||||
opacity="0.15686275"
|
||||
empcolor="#ff00ff"
|
||||
empopacity="0.4" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="poised orig in"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<image
|
||||
y="7.2600002"
|
||||
x="7.2600002"
|
||||
id="image3065"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAA3NCSVQICAjb4U/gAAAAvUlEQVRI
|
||||
ie2UTRKDIAyFn53eK9yM5GYvJ6OLjBnHVrCjCxd8K3yRhPwAMJlMnoGqkmwrJFX1NtftmDNhXn1z
|
||||
KQWAu5vZsmJm7p7WPu+OjaSIuDtJAK210FMREZL9MIMMIgyAWmsqIpL6JaLQuYiKZ1e2P9wTYKj/
|
||||
ZFyiJDP4/6gHxOyr6vewpjjsRC+D2BxDYmapxzr0SwEAuLuIhK+8B+E9Jri/fczukdhy8sFYzoTJ
|
||||
axWfedHubPhkMnkyH5cn3C3UVHXpAAAAAElFTkSuQmCC
|
||||
"
|
||||
height="34.560001"
|
||||
width="34.560001"
|
||||
inkscape:export-xdpi="333.32999"
|
||||
inkscape:export-ydpi="333.32999" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer5"
|
||||
inkscape:label="poised orig out"
|
||||
style="display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<image
|
||||
y="6"
|
||||
x="6"
|
||||
id="image4063"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAIAAABuYg/PAAAAA3NCSVQICAjb4U/gAAACd0lEQVRI
|
||||
ie2UvWvqUBiHjyY1iR+kKWgxceoSP1JEKBIIuAtuxe5uDgWdOtq/wdExOKqTICi4OCiYDE6KaKao
|
||||
CFqraJGamNzB5cKFxtYOd8gznvOe8zsP5+UFwMTExOSnWM4vxXHcbrejKApBEABAVdX9fv/x8bHb
|
||||
7X7zRSiKXl9fv7y81Gq1t7c3Xdd1XZdluVwup1IpHMcRBPm1pFwut91uNU3TNE3/i9OKJEnpdPqc
|
||||
q2DjChjmOM5ms/V6vW63y/P8eDwGALAsm0wmo9Gox+OJRCLnhBn82e3tbT6fTyQSw+Gw0+msViuO
|
||||
40iSBACs12tJkhRFiUajBEGUSqVMJnORGQzDPp/PbrcLgrBareLxeCgUwjAMAPD5+amqaqvV6vf7
|
||||
8XicoihDM+vX2zabLRAIWCwWnuc5jguFQqIoZrPZ19fX4XDIMIzX661WqyiK0jRtGGZgBkHQzc0N
|
||||
AGA8HpMkiWFYpVIpFosYhrnd7ufnZ5fLJcsyBEEEQVxq9i84jmMY5nQ6HQ7Hd88amKmqOplMfD4f
|
||||
y7KDwYAkycfHR7fb7XA4YrHYfD5fLpf39/eKokynU8Mw6OttBEHC4XAgEDgej6eODwaDsVgsEokc
|
||||
Dod2uz2bzViW9Xq99Xq9VqtdZKYoymg0WiwWDw8Px+NREITJZOJyuQAAy+Vys9nc3d3RND2fzyVJ
|
||||
utQMhmGKolAU9fv9BEFomtZoNJrNpiAIVquVZVmGYa6urtrttiiK/X7fMM8ABEHS6XShUJjNZrvd
|
||||
TlXV06w6HA7v7++DwYDn+aenp3Ou+sbUz+fzFEXRNH3q8ul0KoqiJEmyLJdKpR+qmJiYmPyP/AHn
|
||||
shrr/cpNswAAAABJRU5ErkJggg==
|
||||
"
|
||||
height="36"
|
||||
width="36" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="4wayclosed orig in"
|
||||
style="display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<image
|
||||
y="7.2599926"
|
||||
x="7.2600002"
|
||||
id="image3191"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAA3NCSVQICAjb4U/gAAABQElEQVRI
|
||||
icVWW5LEIAiU2b0XHCU3CbkZnMz9YIpy0RidxBq+YgLdPLRNSpPGzLMhEyYiOedVHMycc845i8hC
|
||||
dLPxIl6DfkTUWd61kP5Uo35H0Pd9V9US8ckKOu1eu2UHDUacrDmIaEtv1wMVNMfrQ/6cwCPt6AYs
|
||||
Zvb3dciFiYiHlSglqGEFDgvs0dRK4MpTN8pfunNPSDy7IAO2dKb6lLlD6R+1pJldIGgOuU/gSbyY
|
||||
WVX7g6kdRkLeBCklIjqO4wzXGhg++TydqRyvqhJRY+BhY5RjPNtFjuKtDrj/5NpKQUR3UlVENA4i
|
||||
AgCTORFBxLJRRKSqAHB9IGwL+nO9hXyGpdst2Qg0t0TiC3Yz2aE7uRY7a9pjjWrOefBOHqqgeQM/
|
||||
/He0/L+olKxLIfrcZtNPKf1MEQAAAGzbNhW11v4AthMpECAoHYUAAAAASUVORK5CYII=
|
||||
"
|
||||
height="34.560001"
|
||||
width="34.560001" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer6"
|
||||
inkscape:label="4wayclosed orig out"
|
||||
style="opacity:0.5;display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<image
|
||||
y="6"
|
||||
x="6"
|
||||
id="image4110"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAIAAABuYg/PAAAAA3NCSVQICAjb4U/gAAAFr0lEQVRI
|
||||
ib1XTUwTWxS+0E6n1tYKrR3TKZAaf0omZtpaGmwTImJCapSFiYkRYmxiDJoad8YVxMS9uFF0pRY3
|
||||
NFGJFTDdNCUFKg1B1E7JwCBK6TTtNNBJU5oZ27eYF0QfypTne99qcm6+77vnzJlz7wDwP0KyMxqG
|
||||
YVqtNpPJ/OdmFy5cuH37ttlspml6eXl5Bwpi4XQ6h4aG8vk8QRBXr16tiFtZZg6H4/r1662trWq1
|
||||
Wi6Xcxy3uLiYTCZF0qsrMjt58mRLS4tWqwUAKJVKq9XqcDjE0yvIDMdxt9ttMplkMpkQgSCoqqqK
|
||||
pumlpaU/aYZh2I0bN44dO7a2trayspJKpVKpVLFYRBCkurr67du3YkSkIs1Onz6t0WhGR0djsVgu
|
||||
lxOCtbW1KIomk8n6+vovX76IlNoeXV1de/fu3XJJr9efO3dOjEiVeD8EQaRSqUwmk0gkAACe5wuF
|
||||
AsdxHMexLPvHzORyuVwu7+/vNxgMjY2NtbW1AIDl5eVIJEKSJEVRz549KxaL4vf9O6eenh6WZUul
|
||||
UqlUKm9CqVRKpVIvX77s7u4WI/XL7+zAgQNdXV0AAKlU6nQ6ZTLZzMzM48ePHQ6HTqfT6XQdHR0D
|
||||
AwMMwzidTovFskHs7u7W6XRbam5Rxvb29s7OToIgHj58CMPw/fv3z5w5Mzc35/F4zGYzjuMYhhUK
|
||||
hXg8PjEx8e3bt97e3pqaGp/Pd/PmTQDA06dPIQj6+PGjz+cjSXKz8g+t73A4Ll68eOrUKRiGV1ZW
|
||||
VldXURQ1GAwKhWJqaspsNnd2dppMJpVKVSqVcByvq6sLhUKxWMzlcqEoKogsLCxcvnz5xIkTNpvt
|
||||
3r17Y2NjP2fT2tp669at4eHhTCZTLpfj8fi1a9cAAEajkWGYcrl8/Pjx/v5+YXUDFEXduXPn0qVL
|
||||
PM9/+PBho/6xWKxcLudyuXfv3t29e9dqtX7PzGw2ezweq9Wq0+kUCgUAoFgsCl+uRCIRem9+fh7D
|
||||
MJVKtXmLCILo9fpgMCiRSGpqaoQgRVHr6+sAAJVK1dTUZDAYDh065PV6w+FwNQCAZVmpVKrVagWn
|
||||
X6FQKJRKpc0Rnue37XgYhhEE2b9/P8/z1UKVHz169OrVq38eFjzPC8djc3NzPB7fGFQCaJpmGObo
|
||||
0aMcxyUSCSFot9uVSqXwnM1m/X7/gwcPJiYmWJb9u0GGh4dpmo7FYu3t7RaLZdeuXUL1CoVCJBJB
|
||||
UfT8+fMjIyN1dXU4jiMIwvM8TdPBYDCRSJw9ezafz0ejUUHK6XQK1aYoKhAIPHnyZHJyUlj63o3T
|
||||
09PT09ORSOTKlSs4jtvtdqPRuLa2RpJkOp222Wx+vz8UCs3Ozur1+mKxyDBMIpFQKBRHjhyhaXph
|
||||
YUHQ0Wg0LMt++vRpZGRkaGhofn5+w+LnI2ZxcZEgCLVajWFYLpebnZ1FUVQul5tMpqamJrlcPjk5
|
||||
GQ6HCYJQqVQul8vlckEQND4+Ho1GCYJoaGjo6OiYm5vr6enx+/3ZbHaz+Naz8fDhw21tbalU6sWL
|
||||
FzAMu91ui8XS1ta2b9++3bt3C4OY47h8Pr+0tBQMBsfHxwcHByUSidvthiDI5/NtefGqYOq73e6W
|
||||
lhabzSZ0eSKRiEajo6Ojr1+/Fi8iClKp2GP2NxB74fF4PBqN5l+aid0vBEF9fX0kSQ4MDFAUBQCw
|
||||
2+1Op1Oj0SAIEgqFvF7vtiJi35lOp+vr62tubl5fXxemkVKpVKlULMsGAoHe3t5Kr+LbAMOwmZmZ
|
||||
8o8gSdLj8YhUqODemE6nDQbDwYMHN8YxRVHPnz8fHBxcXV39w2YAgGQyaTQa6+vrYRjOZrPv378P
|
||||
BALhcFgkvTKzTCbDMExjY2NDQwNJkm/evBkbG0un0/+JGQDg8+fPKIrq9fpwOOz1emOxmHjuTv7P
|
||||
8vn8169fg8Hg1NTUDugVQ61W79mzp1LWXwDmqKUkUgO0AAAAAElFTkSuQmCC
|
||||
"
|
||||
height="36"
|
||||
width="36" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer8"
|
||||
inkscape:label="disabled orig out"
|
||||
sodipodi:insensitive="true"
|
||||
style="display:none">
|
||||
<image
|
||||
y="6"
|
||||
x="6"
|
||||
id="image4210"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAIAAABuYg/PAAAAA3NCSVQICAjb4U/gAAADU0lEQVRI
|
||||
ie2VzUsqURTAb17xi2LINJlyoGIcMRQDEwoslyEmQitrV+vWrfonghb9A4WL1oLrwlWgEDFGTRmj
|
||||
TlZ+kE1T6nje4vIe7wMcrQfvLfotzz33/s653DmD0Bdf/N94PJ54PP6xvVtbW3a7fQDTwcFBLpeL
|
||||
RCIDaTDG6+vrT09Pu7u7NE33tScej+dyOQDI5/PhcLhPk8lkisfjiqIAwMnJydzcXL81RiKRfD4P
|
||||
AKIoBgIBzXyLxbK6ugoAAJDNZjmO69dECIfDoigCQKPR4DgOY0xRFE3T09PTLMuyLDs1NeVwOIaH
|
||||
h81mczQaBYButysIwsTExGAmQiAQaDQapF6WZXd2dlKpVLVaJRFRFI+Pjzc3N2OxGACoqipJksVi
|
||||
+YiJwHEcOVpV1W632+124SdIRFVVACgWizqd7uMmhBDGmGVZchwAHB4eLi4u2u12u90ei8XS6TSJ
|
||||
X1xcjI2NfcqEEHI4HMlk8kdDjUZDEASe53mev7u7azabJF6r1fb29jRP02ss6/VOpxMhdHR0FI1G
|
||||
KYqiKOrnhEKhwPP88vLy5OSkpkzjlg0Gg8fjGRoa2t/fr1arfyZcXl4mk0mTyeR2uz8rwxhbrVaE
|
||||
0PX1davV+jOh2WyKoogxHh0d/azs76Ih63Q6xWIRIbSwsMDz/PPz828JNpvN5/O12+1SqaQpw72X
|
||||
jUaj3+/3eDyqqhqNRoZhzGbzbwlOp5OiqHQ6nUqlep+m8Rrb7fbV1dXj4+P8/PzMzIzRaMxkMuVy
|
||||
mfTkdrtpmqZpulKpCIKg2Zm2rFAolMtlr9er1+sRQqlUKpPJIIR8Pl8ikSC/EoPBwDCMpkwDg8EQ
|
||||
CoXIBJFl+eXlpdPpkA+51WrV6/X7+/tarQYAlUrF6/X2nlhDvU3BYPD09BQhJElSNptVFMXtdpNX
|
||||
XiqVzs7OBEFgGGZjY2N8fPz9/d3n893c3KiqOlhPOp1uaWmJTFtFUWw2W49kr9f79vZGOna5XANP
|
||||
5JWVldfXVwCo1+sjIyOalblcLiKTZdnv9w9gWltbe3h4AIDb21syGzXBGLtcLlmWAUCSpFAo1K/M
|
||||
arVub2+fn5/Pzs72X6JOp/P7/ZIkJRIJzcv4BZvNFgwGB9jwnVAoNJjpiy/+Bd8A15jBvOYCWCMA
|
||||
AAAASUVORK5CYII=
|
||||
"
|
||||
height="36"
|
||||
width="36" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer9"
|
||||
inkscape:label="book orig out"
|
||||
style="display:none">
|
||||
<image
|
||||
y="-3.5"
|
||||
x="-3.5"
|
||||
id="image4273"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAIAAABuYg/PAAAAA3NCSVQICAjb4U/gAAAEjklEQVRI
|
||||
idWWSywzXRzGz3SKtnpD6p5Upei4VGncqpUSRQgh6KZioYnYWViLxEbChj1hScJCkLBziXtVqsVI
|
||||
1GBo2lSrbq1GW+9i3vB9Dd5W3/f78j6LWcx5/ueXc+Z/njkA/C8qKytjs9mB+zkcTnFxcVAIGAAg
|
||||
FAqrq6u7u7vFYnFycrLNZnM4HF/UCASClpYWtVpdU1NDJpPDwsJMJlOgMKlUKhaLRSKRVCqVyWSJ
|
||||
iYkvLy8ul+v+/t7PzePxSktLu7u7Ozo6cnNzn5+f3W63z+fT6XSBwMgAgMjIyPDwcAAAg8FgMBit
|
||||
ra1SqXRnZ2dqakqv12MYBgBIS0vLzs5WqVR5eXkQBJ2enkZHRwMAIiIi6HR6IKSfMD9FRkby+Xw+
|
||||
n19fXz87O9vX1wcAGBwcrKqquru7m5+f39/fv7q6qq+vz8/PDxDzKexNDAajtrbWaDQCAKqqqqan
|
||||
p/V6/czMDLHWnJyc3wnz08DAAIqiQc3uJ1Ioxf8RLC4ujsPhBFsVxDYCAJhMJo1Go1Ao7e3tLS0t
|
||||
FovlT8GYTKZCoVAoFEVFRbGxsQCAPwjb3NyEIAgAQDy/oSBgJFKo3fQ3dOP39L6NGxsbNpsNQZBA
|
||||
etpsNh8fHy8sLJhMJiIkA4XZbLaYmBiLxTI+Pv709CSXy5uamhISEj4s2N7eNpvNW1tbVqsVQRAE
|
||||
QZaWloKAra6unpyclJSUZGZmPjw8aDQajUaTkZEhl8vT0tLerOvr68vLy1tbWwkJCTwej8Vi6fV6
|
||||
jUaD43iAsPcmZrFYAoFAIpFwuVwMw66vr71eb1ZW1u7ubklJSVhYmMfjwXGcTqczmUwcxw0GA4qi
|
||||
Dw8PAZL+BSNEp9MLCwvFYjGXy93b27NYLFarNS4uDoKg8vJyDoej1Wq1Wu3Ozo7L5XqfBYI4HA6V
|
||||
SqXRaMQbt9vtdDpvbm48Hs+nMEIUCqWioqKgoCA9Pf34+HhtbU2tVi8vL5+dna2vr7+8vPwTw2az
|
||||
k5KS+vv7BQJBRkYGcRwvLi5QFB0eHtZoNA6Hg0B+lQUwDFdWVsIwnJKScn5+vri46PP5/DxsNnt0
|
||||
dLSxsfHu7u729nZhYcHr9QIAJBIJ8V21Wm1XV9fBwcGv9vhXgiBIIBAcHR0Zjcbe3t6mpqa3IaFQ
|
||||
2NPTs7KygmFYc3MzDMOhwrhc7uHhoc1m6+3t/dAgl8uNRiOO4w0NDSD0BIEg6Pb21mAwfDhqsVgw
|
||||
DIMg6NvZ/S4EQbxe78jIyBee6upqn8/X2dkJQl8ZiUQiOuIzeTyet5X9PanvdrsvLi4kEolQKPzQ
|
||||
EB8fr1Qqb25u7HZ7qDCn04miKI/HUygUHxpSU1NlMpnJZDKbzaHCvF6vyWR6fHxsaGiQy+UIgrwN
|
||||
xcfHSySStrY2KpV6eXlJZFtwtys/ORyOiYmJqKgokUg0NjaGYdjQ0BCRTEqlUiaTUalUDMMmJydD
|
||||
vN3+FJlMFgqFzc3NOI5fXV35fL7X19fX11er1arT6ebm5lQqFYPBIMwhnzUAAAAwDNfV1UEQRPwf
|
||||
AAB2u91sNrtcLhRFHx8ffwslOP0Alp/f+dOOZb8AAAAASUVORK5CYII=
|
||||
"
|
||||
height="36"
|
||||
width="36" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="black"
|
||||
style="display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
|
||||
id="rect3988"
|
||||
width="48"
|
||||
height="48"
|
||||
x="0"
|
||||
y="0" />
|
||||
</g>
|
||||
<g
|
||||
style="display:none"
|
||||
inkscape:label="green"
|
||||
id="g6764"
|
||||
inkscape:groupmode="layer"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
y="0"
|
||||
x="0"
|
||||
height="48"
|
||||
width="48"
|
||||
id="rect6766"
|
||||
style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
|
||||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
inkscape:label="white"
|
||||
id="g4621"
|
||||
inkscape:groupmode="layer"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
y="0"
|
||||
x="0"
|
||||
height="48"
|
||||
width="48"
|
||||
id="rect4623"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer7"
|
||||
inkscape:label="raw material"
|
||||
style="display:none">
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 24,7 C 15,18 15,30 24,41 33,30 33,18 24,7 z"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;display:inline"
|
||||
id="path4130" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 34,24 c -10e-7,6.428573 -3.571428,10 -10,10 -6.428573,0 -10,-3.571427 -10,-10 0,-6.428572 3.571427,-10 10,-10 6.428572,0 10.000003,3.571428 10,10 z"
|
||||
id="path4132"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sssss" />
|
||||
<path
|
||||
sodipodi:nodetypes="sssss"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4348"
|
||||
d="m 26,8 c -1e-6,2.571429 -1.964286,4 -5.5,4 C 16.964285,12 15,10.571429 15,8 15,5.4285714 16.964285,4 20.5,4 24.035714,4 26.000001,5.4285714 26,8 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
|
||||
transform="matrix(1.2727273,0,0,1.75,-2.0909091,10)" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 29,24 c -1e-6,3.214286 -1.785714,5 -5,5 -3.214286,0 -5,-1.785714 -5,-5 0,-3.214286 1.785714,-5 5,-5 3.214286,0 5.000001,1.785714 5,5 z"
|
||||
id="path4350"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sssss" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 27.7,24 c 0,2.378573 -1.321428,3.7 -3.7,3.7 -2.378573,0 -3.7,-1.321427 -3.7,-3.7 0,-2.378572 1.321427,-3.7 3.7,-3.7 2.378572,0 3.700001,1.321428 3.7,3.7 z"
|
||||
id="path4352"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sssss" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 25.8,24 c 0,1.157143 -0.642857,1.8 -1.8,1.8 -1.157144,0 -1.8,-0.642857 -1.8,-1.8 0,-1.157144 0.642856,-1.8 1.8,-1.8 1.157143,0 1.800001,0.642856 1.8,1.8 z"
|
||||
id="path4354"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sssss" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 18.5,-1 0,15 -8,4 C 10,19 7,19 6.5,18 l -8,-4 0,-15"
|
||||
id="path4280"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 0,-2 0,15 c 3,1 6,2 8,4 L 8,2 C 6,0 3,-1 0,-2 z"
|
||||
id="path6725"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path6719"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 16,0.84375 0,5.5 C 13.81145,7.0854 11.67582,7.87061 10,9.125 l 0,-5.5 C 11.67582,2.37061 13.81145,1.5854 16,0.84375 z M 17,-2 c -3,1 -6,2 -8,4 l 0,15 c 2,-2 5,-3 8,-4 l 0,-15 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer18"
|
||||
inkscape:label="shapes 1"
|
||||
style="display:none">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 24,17 c -4.500001,0 -7,2.5 -7,7 0,4.500001 2.499999,7 7,7 4.5,0 6.999999,-2.499999 7,-7 1e-6,-4.5 -2.5,-7 -7,-7 z m 0,2 c 3.214286,0 5.000001,1.785714 5,5 -1e-6,3.214286 -1.785714,5 -5,5 -3.214286,0 -5,-1.785714 -5,-5 0,-3.214286 1.785714,-5 5,-5 z"
|
||||
id="path3216"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 24,20.3125 c -2.378573,0 -3.6875,1.308928 -3.6875,3.6875 0,2.378573 1.308927,3.6875 3.6875,3.6875 2.378572,0 3.6875,-1.308927 3.6875,-3.6875 1e-6,-2.378572 -1.308928,-3.6875 -3.6875,-3.6875 z m 0,1.875 c 1.157143,0 1.812501,0.655356 1.8125,1.8125 0,1.157143 -0.655357,1.8125 -1.8125,1.8125 -1.157144,0 -1.8125,-0.655357 -1.8125,-1.8125 0,-1.157144 0.655356,-1.8125 1.8125,-1.8125 z"
|
||||
id="path4001"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path6738"
|
||||
style="fill-rule:evenodd;stroke:none;display:inline"
|
||||
d="m 16,0.84375 0,5.5 C 13.81145,7.0854 11.67582,7.87061 10,9.125 l 0,-5.5 C 11.67582,2.37061 13.81145,1.5854 16,0.84375 z M 17,-2 c -3,1 -6,2 -8,4 l 0,15 c 2,-2 5,-3 8,-4 z M 0,-2 0,13 c 3,1 6,2 8,4 L 8,2 C 6,0 3,-1 0,-2 z m -2,1 0,15.3125 c 0,0 5.5231347,2.745942 8.28125,4.125 0.2252675,0.2606 0.4852377,0.47997 0.8125,0.5938 0.4294557,0.14938 0.921131,0.21875 1.40625,0.21875 0.485119,0 0.9767943,-0.0694 1.40625,-0.21875 0.327262,-0.11383 0.587233,-0.3332 0.8125,-0.5938 0,0 5.524469,-2.825606 8.28125,-4.125 L 19,-1 l -1,0 0,14.6875 -7.71875,3.875 -0.15625,0.0625 -0.0625,0.15625 c -0.03556,0.0711 -0.2107057,0.21188 -0.5,0.3125 C 9.2732057,18.19437 8.889881,18.25 8.5,18.25 8.110119,18.25 7.7267943,18.1944 7.4375,18.09375 7.1482057,17.99313 6.9730573,17.85236 6.9375,17.78125 L 6.875,17.625 6.71875,17.5625 -1,13.6875 -1,-1 z"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccccccccccsscccccccccssccccccc" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer19"
|
||||
inkscape:label="shapes 2"
|
||||
style="display:none">
|
||||
<path
|
||||
sodipodi:nodetypes="sssss"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6749"
|
||||
d="m 27.7,24 c 0,2.378573 -1.321428,3.7 -3.7,3.7 -2.378573,0 -3.7,-1.321427 -3.7,-3.7 0,-2.378572 1.321427,-3.7 3.7,-3.7 2.378572,0 3.700001,1.321428 3.7,3.7 z"
|
||||
style="fill-rule:evenodd;stroke:none;display:inline" />
|
||||
<path
|
||||
style="stroke:none;display:inline"
|
||||
d="M 24,7 C 21.882173,9.5884549 20.277368,12.23311 19.15625,14.90625 20.523744,14.321333 22.133081,14 24,14 c 1.866918,0 3.476256,0.321333 4.84375,0.90625 C 27.722632,12.23311 26.117827,9.5884549 24,7 z"
|
||||
id="path4148"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="stroke:none;display:inline"
|
||||
d="M 14.90625,19.15625 C 12.23311,20.277368 9.5884549,21.882173 7,24 c 2.5884549,2.117827 5.23311,3.722632 7.90625,4.84375 C 14.321333,27.476256 14,25.866919 14,24 c 0,-1.866918 0.321333,-3.476256 0.90625,-4.84375 z"
|
||||
id="path4146"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="stroke:none;display:inline"
|
||||
d="M 33.09375,19.15625 C 33.678667,20.523744 34.000001,22.133082 34,24 34,25.866919 33.678667,27.476256 33.09375,28.84375 35.76689,27.722632 38.411545,26.117827 41,24 38.411545,21.882173 35.76689,20.277368 33.09375,19.15625 z"
|
||||
id="path4144"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="stroke:none;display:inline"
|
||||
d="M 19.15625,33.09375 C 20.277368,35.76689 21.882173,38.411545 24,41 26.117827,38.411545 27.722632,35.76689 28.84375,33.09375 27.476256,33.678667 25.866918,34 24,34 22.133081,34 20.523744,33.678667 19.15625,33.09375 z"
|
||||
id="path4119"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer20"
|
||||
inkscape:label="shapes 3"
|
||||
style="display:none">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="translate(0,-192)"
|
||||
id="path6758"
|
||||
d="m 14.5,205 -1.5,1.5 5.15625,5.15625 C 17.409919,212.77794 17,214.22611 17,216 c 0,1.77389 0.409919,3.22206 1.15625,4.34375 L 13,225.5 l 1.5,1.5 5.15625,-5.15625 C 20.777944,222.59008 22.226111,223 24,223 c 1.773889,0 3.222056,-0.40992 4.34375,-1.15625 L 33.5,227 35,225.5 29.84375,220.34375 C 30.590081,219.22206 31,217.77389 31,216 c 0,-1.77389 -0.409919,-3.22206 -1.15625,-4.34375 L 35,206.5 33.5,205 28.34375,210.15625 C 27.222055,209.40992 25.773889,209 24,209 c -1.773889,0 -3.222056,0.40992 -4.34375,1.15625 L 14.5,205 z m 9.5,6 c 1.128621,0 2.082846,0.23139 2.84375,0.65625 l -1,1 C 25.330626,212.42921 24.710234,212.3125 24,212.3125 c -0.710234,0 -1.330626,0.11671 -1.84375,0.34375 l -1,-1 C 21.917154,211.23139 22.871379,211 24,211 z m -4.34375,2.15625 1,1 c -0.227037,0.51312 -0.34375,1.13352 -0.34375,1.84375 0,0.71023 0.116713,1.33063 0.34375,1.84375 l -1,1 C 19.23139,218.08285 19,217.12862 19,216 c 0,-1.12862 0.23139,-2.08285 0.65625,-2.84375 z m 8.6875,0 C 28.76861,213.91715 29,214.87138 29,216 c 0,1.12862 -0.23139,2.08285 -0.65625,2.84375 l -1,-1 c 0.227038,-0.51312 0.34375,-1.13352 0.34375,-1.84375 0,-0.71023 -0.116712,-1.33063 -0.34375,-1.84375 l 1,-1 z m -6.1875,6.1875 c 0.513124,0.22704 1.133516,0.34375 1.84375,0.34375 0.710234,0 1.330626,-0.11671 1.84375,-0.34375 l 1,1 C 26.082847,220.76861 25.128621,221 24,221 c -1.128621,0 -2.082846,-0.23139 -2.84375,-0.65625 l 1,-1 z"
|
||||
style="stroke:none;display:inline" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="circleOuterShadow"
|
||||
inkscape:label="shadow outer circle"
|
||||
style="display:inline">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path3216"
|
||||
id="use6769"
|
||||
width="1"
|
||||
height="1" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="circleInnerOpenShadow"
|
||||
inkscape:label="shadow inner circle open"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4001"
|
||||
id="use6776"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="circleInnerClosedShadow"
|
||||
inkscape:label="shadow inner circle closed"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path6749"
|
||||
id="use6780"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowOpaqueUpperShadow"
|
||||
inkscape:label="shadow upper arrow opaque"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4148"
|
||||
id="use6784"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowOpaqueLowerShadow"
|
||||
inkscape:label="shadow lower arrow opaque"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4119"
|
||||
id="use6790"
|
||||
width="1"
|
||||
height="1" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowOpaqueRightShadow"
|
||||
inkscape:label="shadow right arrow opaque"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4144"
|
||||
id="use6794"
|
||||
width="1"
|
||||
height="1" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowOpaqueLeftShadow"
|
||||
inkscape:label="shadow left arrow opaque"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4146"
|
||||
id="use6799"
|
||||
width="1"
|
||||
height="1" />
|
||||
</g>
|
||||
<g
|
||||
style="display:none"
|
||||
inkscape:label="shadow upper arrow translucent"
|
||||
id="arrowTranslucentUpperShadow"
|
||||
inkscape:groupmode="layer">
|
||||
<use
|
||||
height="240"
|
||||
width="240"
|
||||
id="use6807"
|
||||
xlink:href="#path4148"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#000000;fill-opacity:0.2;display:inline;filter:url(#filter6135)"
|
||||
mask="url(#mask6840)" />
|
||||
</g>
|
||||
<g
|
||||
style="display:none"
|
||||
inkscape:label="shadow lower arrow translucent"
|
||||
id="arrowTranslucentLowerShadow"
|
||||
inkscape:groupmode="layer">
|
||||
<use
|
||||
height="240"
|
||||
width="240"
|
||||
id="use6850"
|
||||
xlink:href="#path4119"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#000000;fill-opacity:0.2;display:inline;filter:url(#filter6135)"
|
||||
mask="url(#mask6840)" />
|
||||
</g>
|
||||
<g
|
||||
style="display:none"
|
||||
inkscape:label="shadow right arrow translucent"
|
||||
id="arrowTranslucentRightShadow"
|
||||
inkscape:groupmode="layer">
|
||||
<use
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4144"
|
||||
id="use6852"
|
||||
width="240"
|
||||
height="240"
|
||||
style="fill:#000000;fill-opacity:0.2;display:inline;filter:url(#filter6135)"
|
||||
mask="url(#mask6840)" />
|
||||
</g>
|
||||
<g
|
||||
style="display:none"
|
||||
inkscape:label="shadow left arrow translucent"
|
||||
id="arrowTranslucentLeftShadow"
|
||||
inkscape:groupmode="layer">
|
||||
<use
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4146"
|
||||
id="use6848"
|
||||
width="240"
|
||||
height="240"
|
||||
style="fill:#000000;fill-opacity:0.2;display:inline;filter:url(#filter6135)"
|
||||
mask="url(#mask6840)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="crossShadow"
|
||||
inkscape:label="shadow cross"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path6758"
|
||||
id="use6861"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="bookShadow"
|
||||
inkscape:label="shadow book"
|
||||
style="display:inline">
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:0.50196078;display:inline;filter:url(#filter6135)"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path6738"
|
||||
id="use6865"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="circleOuter"
|
||||
inkscape:label="outer circle"
|
||||
style="display:inline">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path3216"
|
||||
id="use6869"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="circleInnerOpen"
|
||||
inkscape:label="inner circle open"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4001"
|
||||
id="use6873"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="circleInnerClosed"
|
||||
inkscape:label="inner circle closed"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path6749"
|
||||
id="use6877"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowOpaqueUpper"
|
||||
inkscape:label="upper arrow opaque"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4148"
|
||||
id="use6881"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowOpaqueLower"
|
||||
inkscape:label="lower arrow opaque"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4119"
|
||||
id="use6887"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowOpaqueRight"
|
||||
inkscape:label="right arrow opaque"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4144"
|
||||
id="use6885"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowOpaqueLeft"
|
||||
inkscape:label="left arrow opaque"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4146"
|
||||
id="use6883"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowTranslucentUpper"
|
||||
inkscape:label="upper arrow translucent"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:0.50196078;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4148"
|
||||
id="use6903"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowTranslucentLower"
|
||||
inkscape:label="lower arrow translucent"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:0.50196078;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4119"
|
||||
id="use6909"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowTranslucentRight"
|
||||
inkscape:label="right arrow translucent"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:0.50196078;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4144"
|
||||
id="use6907"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="arrowTranslucentLeft"
|
||||
inkscape:label="left arrow translucent"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:0.50196078;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4146"
|
||||
id="use6905"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="cross"
|
||||
inkscape:label="cross"
|
||||
style="display:none">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path6758"
|
||||
id="use6925"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="book"
|
||||
inkscape:label="book"
|
||||
style="display:inline">
|
||||
<use
|
||||
style="fill:#ffffff;fill-opacity:1;display:inline"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path6738"
|
||||
id="use6929"
|
||||
width="240"
|
||||
height="240" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 31 KiB |
508
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/Linking_Book.svg
vendored
Normal file
508
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/Linking_Book.svg
vendored
Normal file
@ -0,0 +1,508 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="1175.8176"
|
||||
height="1177.8379"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="Linking_Book.svg"
|
||||
inkscape:export-xdpi="19.561266"
|
||||
inkscape:export-ydpi="19.561266">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.66138134"
|
||||
inkscape:cx="437.66142"
|
||||
inkscape:cy="576.10909"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer3"
|
||||
showgrid="false"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
showborder="false"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="998"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:snap-global="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0">
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-1422.8571,-1.5258789e-005"
|
||||
id="guide2996" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="0,1562.8571"
|
||||
id="guide2998" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-628.31488,1177.8379"
|
||||
id="guide3000" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="1175.8176,1228.3455"
|
||||
id="guide3002" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="617.82713,588.96043"
|
||||
id="guide4160" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="587.89131,597.24623"
|
||||
id="guide4162" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="background"
|
||||
inkscape:label="Background"
|
||||
style="display:inline"
|
||||
transform="translate(0,125.47572)">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="rect3004"
|
||||
width="1175.8176"
|
||||
height="1177.8379"
|
||||
x="0"
|
||||
y="-125.47572"
|
||||
inkscape:export-xdpi="19.561266"
|
||||
inkscape:export-ydpi="19.561266" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="circles"
|
||||
inkscape:label="Circles"
|
||||
style="display:inline"
|
||||
transform="translate(0,125.47572)">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:none;stroke:none"
|
||||
id="circlePath"
|
||||
sodipodi:cx="587.90881"
|
||||
sodipodi:cy="463.44324"
|
||||
sodipodi:rx="587.90881"
|
||||
sodipodi:ry="588.91895"
|
||||
d="m 1175.8176,463.44324 c 0,325.25095 -263.21571,588.91896 -587.90879,588.91896 C 263.21574,1052.3622 0,788.69419 0,463.44324 0,138.19228 263.21574,-125.47571 587.90881,-125.47571 c 324.69308,0 587.90879,263.66799 587.90879,588.91895 z"
|
||||
transform="matrix(0.8793304,0,0,0.8793304,70.94272,55.923509)" />
|
||||
<g
|
||||
id="g3224"
|
||||
transform="translate(-0.03253824,-0.03474644)"
|
||||
inkscape:export-xdpi="19.561266"
|
||||
inkscape:export-ydpi="19.561266"
|
||||
style="fill:#352f42;fill-opacity:1">
|
||||
<path
|
||||
inkscape:tile-y0="-85.78605"
|
||||
inkscape:tile-x0="556.15709"
|
||||
inkscape:tile-h="63.503456"
|
||||
inkscape:tile-w="63.50345"
|
||||
inkscape:tile-cy="463.40173"
|
||||
inkscape:tile-cx="587.90882"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3883"
|
||||
d="m 619.66054,-54.034322 c 0,17.535995 -14.21573,31.751728 -31.75173,31.751728 -17.53599,0 -31.75172,-14.215733 -31.75172,-31.751728 0,-17.535995 14.21573,-31.751728 31.75172,-31.751728 17.536,0 31.75173,14.215733 31.75173,31.751728 z"
|
||||
inkscape:transform-center-y="-517.43605"
|
||||
style="fill:#352f42;fill-opacity:1;stroke:none" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="517.43605"
|
||||
inkscape:transform-center-x="3e-005"
|
||||
id="use5519"
|
||||
transform="matrix(-1,0,0,-1,1175.8176,926.80346)"
|
||||
xlink:href="#path3883"
|
||||
inkscape:tiled-clone-of="#path3883"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="-4.3e-005"
|
||||
inkscape:transform-center-x="517.43605"
|
||||
id="use5521"
|
||||
transform="matrix(0,-1,1,0,124.50709,1051.3105)"
|
||||
xlink:href="#path3883"
|
||||
inkscape:tiled-clone-of="#path3883"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-x="-517.43601"
|
||||
id="use5525"
|
||||
transform="matrix(0,1,-1,0,1051.3105,-124.50709)"
|
||||
xlink:href="#path3883"
|
||||
inkscape:tiled-clone-of="#path3883"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:transform-center-x="-98.74896"
|
||||
inkscape:tile-y0="-69.933668"
|
||||
inkscape:tile-x0="661.23414"
|
||||
inkscape:tile-h="50.812266"
|
||||
inkscape:tile-w="50.81225"
|
||||
inkscape:tile-cy="463.40173"
|
||||
inkscape:tile-cx="587.89131"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3883-1"
|
||||
d="m 711.57495,-39.680724 c -2.67682,13.771051 -16.01044,22.764699 -29.7815,20.087876 -13.77104,-2.676818 -22.76468,-16.010449 -20.08786,-29.781498 2.67682,-13.771047 16.01044,-22.764697 29.7815,-20.087878 13.77104,2.676823 22.76468,16.010454 20.08786,29.7815 z"
|
||||
inkscape:transform-center-y="-507.92927"
|
||||
style="fill:#352f42;fill-opacity:1;stroke:none;display:inline" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="98.748955"
|
||||
inkscape:transform-center-x="-507.92923"
|
||||
id="use3037"
|
||||
transform="matrix(0,1,-1,0,1051.293,-124.48958)"
|
||||
xlink:href="#path3883-1"
|
||||
inkscape:tiled-clone-of="#path3883-1"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="507.92927"
|
||||
inkscape:transform-center-x="98.74898"
|
||||
id="use3039"
|
||||
transform="matrix(-1,0,0,-1,1175.7826,926.80347)"
|
||||
xlink:href="#path3883-1"
|
||||
inkscape:tiled-clone-of="#path3883-1"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="-98.749005"
|
||||
inkscape:transform-center-x="507.92927"
|
||||
id="use3041"
|
||||
transform="matrix(0,-1,1,0,124.48958,1051.293)"
|
||||
xlink:href="#path3883-1"
|
||||
inkscape:tiled-clone-of="#path3883-1"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:transform-center-x="98.71521"
|
||||
inkscape:tile-y0="-69.940277"
|
||||
inkscape:tile-x0="463.76997"
|
||||
inkscape:tile-h="50.812269"
|
||||
inkscape:tile-w="50.812241"
|
||||
inkscape:tile-cy="463.40169"
|
||||
inkscape:tile-cx="587.8913"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3883-1-1"
|
||||
d="m 514.11077,-49.380953 c 2.67682,13.771051 -6.31682,27.104678 -20.08788,29.781501 -13.77103,2.676816 -27.10465,-6.316834 -29.78147,-20.087883 -2.67682,-13.771047 6.3168,-27.104672 20.08786,-29.781499 13.77104,-2.676815 27.10467,6.316835 29.78149,20.087881 z"
|
||||
inkscape:transform-center-y="-507.93583"
|
||||
style="fill:#352f42;fill-opacity:1;stroke:none;display:inline" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="-98.715213"
|
||||
inkscape:transform-center-x="-507.93584"
|
||||
id="use3067"
|
||||
transform="matrix(0,1,-1,0,1051.293,-124.48962)"
|
||||
xlink:href="#path3883-1-1"
|
||||
inkscape:tiled-clone-of="#path3883-1-1"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="507.93583"
|
||||
inkscape:transform-center-x="-98.715201"
|
||||
id="use3069"
|
||||
transform="matrix(-1,0,0,-1,1175.7826,926.80337)"
|
||||
xlink:href="#path3883-1-1"
|
||||
inkscape:tiled-clone-of="#path3883-1-1"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="98.715218"
|
||||
inkscape:transform-center-x="507.93583"
|
||||
id="use3071"
|
||||
transform="matrix(0,-1,1,0,124.48962,1051.293)"
|
||||
xlink:href="#path3883-1-1"
|
||||
inkscape:tiled-clone-of="#path3883-1-1"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:transform-center-x="-193.85213"
|
||||
inkscape:tile-y0="-34.138981"
|
||||
inkscape:tile-x0="763.95777"
|
||||
inkscape:tile-h="35.571355"
|
||||
inkscape:tile-w="35.571339"
|
||||
inkscape:tile-cy="463.40174"
|
||||
inkscape:tile-cx="587.89131"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3883-1-4"
|
||||
d="m 798.22966,-9.6924378 c -3.6787,9.10509363 -14.04199,13.5040578 -23.1471,9.82535891 -9.10507,-3.67869161 -13.50403,-14.04199711 -9.82534,-23.14709011 3.6787,-9.10509 14.04199,-13.504057 23.14709,-9.825361 9.10509,3.678696 13.50404,14.042002 9.82535,23.1470922 z"
|
||||
inkscape:transform-center-y="-479.75504"
|
||||
style="fill:#352f42;fill-opacity:1;stroke:none;display:inline" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="193.85213"
|
||||
inkscape:transform-center-x="-479.75499"
|
||||
id="use3097"
|
||||
transform="matrix(0,1,-1,0,1051.293,-124.48957)"
|
||||
xlink:href="#path3883-1-4"
|
||||
inkscape:tiled-clone-of="#path3883-1-4"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="479.75504"
|
||||
inkscape:transform-center-x="193.85215"
|
||||
id="use3099"
|
||||
transform="matrix(-1,0,0,-1,1175.7826,926.80347)"
|
||||
xlink:href="#path3883-1-4"
|
||||
inkscape:tiled-clone-of="#path3883-1-4"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="-193.85218"
|
||||
inkscape:transform-center-x="479.75504"
|
||||
id="use3101"
|
||||
transform="matrix(0,-1,1,0,124.48957,1051.293)"
|
||||
xlink:href="#path3883-1-4"
|
||||
inkscape:tiled-clone-of="#path3883-1-4"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:transform-center-x="193.8203"
|
||||
inkscape:tile-y0="-34.151876"
|
||||
inkscape:tile-x0="376.28534"
|
||||
inkscape:tile-h="35.571356"
|
||||
inkscape:tile-w="35.57134"
|
||||
inkscape:tile-cy="463.4017"
|
||||
inkscape:tile-cx="587.89131"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3883-1-4-2"
|
||||
d="m 410.55723,-23.027064 c 3.67869,9.105096 -0.72026,19.4683926 -9.82537,23.14709892 -9.10507,3.67868398 -19.46837,-0.72027955 -23.14707,-9.82536842 -3.67869,-9.1050935 0.72026,-19.4683925 9.82535,-23.1470935 9.10509,-3.678694 19.46839,0.720278 23.14709,9.825363 z"
|
||||
inkscape:transform-center-y="-479.7679"
|
||||
style="fill:#352f42;fill-opacity:1;stroke:none;display:inline" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="-193.8203"
|
||||
inkscape:transform-center-x="-479.76789"
|
||||
id="use3129"
|
||||
transform="matrix(0,1,-1,0,1051.293,-124.48961)"
|
||||
xlink:href="#path3883-1-4-2"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-2"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="479.7679"
|
||||
inkscape:transform-center-x="-193.82028"
|
||||
id="use3131"
|
||||
transform="matrix(-1,0,0,-1,1175.7826,926.8034)"
|
||||
xlink:href="#path3883-1-4-2"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-2"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="193.82029"
|
||||
inkscape:transform-center-x="479.7679"
|
||||
id="use3133"
|
||||
transform="matrix(0,-1,1,0,124.48961,1051.293)"
|
||||
xlink:href="#path3883-1-4-2"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-2"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:transform-center-x="-281.8321"
|
||||
inkscape:tile-y0="17.001703"
|
||||
inkscape:tile-x0="857.27527"
|
||||
inkscape:tile-h="24.896278"
|
||||
inkscape:tile-w="24.896273"
|
||||
inkscape:tile-cy="463.40173"
|
||||
inkscape:tile-cx="587.89131"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3883-1-4-7"
|
||||
d="m 880.16207,36.228786 c -3.74392,5.765115 -11.45249,7.403629 -17.21761,3.659715 -5.76511,-3.743903 -7.40362,-11.452487 -3.65971,-17.217603 3.74391,-5.765113 11.45248,-7.403628 17.21761,-3.659718 5.76511,3.743909 7.40361,11.452492 3.65971,17.217606 z"
|
||||
inkscape:transform-center-y="-433.95189"
|
||||
style="fill:#352f42;fill-opacity:1;stroke:none;display:inline" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="281.8321"
|
||||
inkscape:transform-center-x="-433.95185"
|
||||
id="use3171"
|
||||
transform="matrix(0,1,-1,0,1051.293,-124.48958)"
|
||||
xlink:href="#path3883-1-4-7"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-7"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="433.95189"
|
||||
inkscape:transform-center-x="281.83212"
|
||||
id="use3173"
|
||||
transform="matrix(-1,0,0,-1,1175.7826,926.80346)"
|
||||
xlink:href="#path3883-1-4-7"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-7"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="-281.83214"
|
||||
inkscape:transform-center-x="433.95189"
|
||||
id="use3175"
|
||||
transform="matrix(0,-1,1,0,124.48958,1051.293)"
|
||||
xlink:href="#path3883-1-4-7"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-7"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:transform-center-x="281.80334"
|
||||
inkscape:tile-y0="16.983003"
|
||||
inkscape:tile-x0="293.63983"
|
||||
inkscape:tile-h="24.896278"
|
||||
inkscape:tile-w="24.896279"
|
||||
inkscape:tile-cy="463.40171"
|
||||
inkscape:tile-cx="587.89131"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3883-1-4-7-0"
|
||||
d="m 316.52663,22.652196 c 3.74391,5.765124 2.10541,13.473696 -3.65971,17.217608 -5.76511,3.743908 -13.47369,2.105398 -17.2176,-3.659718 -3.74392,-5.765114 -2.10542,-13.473687 3.65971,-17.217611 5.76511,-3.743904 13.47369,-2.105386 17.2176,3.659721 z"
|
||||
inkscape:transform-center-y="-433.97057"
|
||||
style="fill:#352f42;fill-opacity:1;stroke:none;display:inline" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="-281.80334"
|
||||
inkscape:transform-center-x="-433.97055"
|
||||
id="use3203"
|
||||
transform="matrix(0,1,-1,0,1051.293,-124.4896)"
|
||||
xlink:href="#path3883-1-4-7-0"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-7-0"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="433.97057"
|
||||
inkscape:transform-center-x="-281.80332"
|
||||
id="use3205"
|
||||
transform="matrix(-1,0,0,-1,1175.7826,926.80342)"
|
||||
xlink:href="#path3883-1-4-7-0"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-7-0"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
<use
|
||||
height="1052.3622"
|
||||
width="744.09448"
|
||||
inkscape:transform-center-y="281.80332"
|
||||
inkscape:transform-center-x="433.97057"
|
||||
id="use3207"
|
||||
transform="matrix(0,-1,1,0,124.4896,1051.293)"
|
||||
xlink:href="#path3883-1-4-7-0"
|
||||
inkscape:tiled-clone-of="#path3883-1-4-7-0"
|
||||
y="0"
|
||||
x="0"
|
||||
style="fill:#352f42;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="book"
|
||||
inkscape:label="Book"
|
||||
style="display:inline"
|
||||
transform="translate(0,125.47572)">
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;stroke:none"
|
||||
d="m 628.62755,669.05838 19.4375,-30.625 237.65628,-44.84375 -53.8125,-312.375 -47.09378,-8.21875 -196.92188,29.875 -196.92187,-29.875 -47.0625,8.21875 -53.8125,312.375 237.65625,44.84375 19.40625,30.625 40.73437,6 z"
|
||||
id="bookShading"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccccc" />
|
||||
<path
|
||||
style="opacity:1;fill:#352f42;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 624.37755,687.02459 c 22.02381,-3.33334 22.99405,-34.51041 32.875,-37.84375 80.95238,-15 246.04608,-40.27455 242.84378,-45 4.6212,-3.15333 -50.402,-325.63145 -57.8438,-325.71875 -0.39,-2.23828 -3.8554,-3.02407 -8.4062,-3.03125 -5.8511,-0.009 -13.5121,1.25745 -18.75,2.3125 2.619,2.61905 7.9077,2.95684 9.8125,7.71875 2.2619,11.90476 56.6832,309.0794 50.9062,308 0.2825,6.37389 -154.51933,22.85268 -231.78123,34.28125 -15.47619,3.45238 -13.81399,34.74851 -28.21875,37.84375 l -27.90625,-0.71875 -27.90625,0.71875 c -14.40476,-3.09524 -12.74256,-34.39137 -28.21875,-37.84375 -77.2619,-11.42857 -232.06378,-27.90736 -231.78125,-34.28125 -5.77694,1.0794 48.64434,-296.09524 50.90625,-308 1.90476,-4.76191 7.19345,-5.0997 9.8125,-7.71875 -5.23791,-1.05505 -12.89897,-2.32173 -18.75,-2.3125 -4.5508,0.007 -8.0162,0.79297 -8.40625,3.03125 -7.44179,0.0873 -62.46496,322.56542 -57.84375,325.71875 -3.20233,4.72545 161.89137,30 242.84375,45 9.88095,3.33334 10.85119,34.51041 32.875,37.84375 l 36.46875,0.71875 z"
|
||||
id="bookCover"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccscccccccccccscccccc" />
|
||||
<g
|
||||
id="bookPages"
|
||||
transform="translate(-190.45045,127.31819)">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="bookPageLeft"
|
||||
d="m 773.87535,479.18577 c -54.0564,-66.01358 -162.66742,-25.90721 -245.12212,-37.36617 15.9429,-99.14492 31.8858,-198.28985 47.8287,-297.43477 63.5225,9.4661 160.67457,-33.38045 190.56751,28.39829 2.98929,101.13779 3.73662,205.26486 6.72591,306.40265 z"
|
||||
style="fill:#262230;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="bookPageRight"
|
||||
d="m 782.84323,479.18577 c 54.0564,-66.01358 162.66742,-25.90721 245.12207,-37.36617 -15.9429,-99.14492 -31.88575,-198.28985 -47.82865,-297.43477 -63.5225,9.46609 -160.67457,-33.38046 -190.56751,28.39828 -2.98929,101.1378 -3.73662,205.26487 -6.72591,306.40266 z"
|
||||
style="fill:#262230;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 615.95128,330.38838 c 31.97315,-40.8005 85.78627,-16.21216 153.82568,-17.97615 4.28396,27.97176 8.30065,61.82377 12.58461,89.79553 -73.28596,5.34568 -92.71946,-20.73283 -164.58516,8.80464 z"
|
||||
id="bookLinkingPanel"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 20 KiB |
@ -0,0 +1,216 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="1386.2081"
|
||||
height="296.01321"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="Loading_Text_rasterfont.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.74023945"
|
||||
inkscape:cx="563.12545"
|
||||
inkscape:cy="89.24182"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="textUpdating"
|
||||
showgrid="true"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="998"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
showborder="false"
|
||||
inkscape:snap-global="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0">
|
||||
<sodipodi:guide
|
||||
position="4.0136719e-006,-1.9531228e-008"
|
||||
orientation="-296.01321,0"
|
||||
id="guide3001" />
|
||||
<sodipodi:guide
|
||||
position="4.0136719e-006,296.01321"
|
||||
orientation="0,1386.2081"
|
||||
id="guide3003" />
|
||||
<sodipodi:guide
|
||||
position="1386.2081,296.01321"
|
||||
orientation="296.01321,0"
|
||||
id="guide3005" />
|
||||
<sodipodi:guide
|
||||
position="1386.2081,-1.9531228e-008"
|
||||
orientation="0,-1386.2081"
|
||||
id="guide3007" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3797"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
spacingx="10px"
|
||||
spacingy="10px"
|
||||
originy="33px"
|
||||
originx="335px" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Background"
|
||||
inkscape:groupmode="layer"
|
||||
id="background"
|
||||
transform="translate(314.84811,-319.4097)">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="rect3009"
|
||||
width="1386.2081"
|
||||
height="296.01321"
|
||||
x="-314.84811"
|
||||
y="319.4097"
|
||||
inkscape:export-xdpi="12.465658"
|
||||
inkscape:export-ydpi="12.465658" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="circles"
|
||||
inkscape:label="Circles"
|
||||
transform="translate(314.84811,-319.4097)">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#3e364e;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="path2999"
|
||||
sodipodi:cx="-193.18074"
|
||||
sodipodi:cy="430.94165"
|
||||
sodipodi:rx="27.018284"
|
||||
sodipodi:ry="27.018284"
|
||||
d="m -166.16246,430.94165 c 0,14.92179 -12.09649,27.01828 -27.01828,27.01828 -14.92179,0 -27.01828,-12.09649 -27.01828,-27.01828 0,-14.92179 12.09649,-27.01828 27.01828,-27.01828 14.92179,0 27.01828,12.09649 27.01828,27.01828 z"
|
||||
transform="translate(5.1990242,36.474655)" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#3e364e;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="path2999-0"
|
||||
sodipodi:cx="-193.18074"
|
||||
sodipodi:cy="430.94165"
|
||||
sodipodi:rx="27.018284"
|
||||
sodipodi:ry="27.018284"
|
||||
d="m -166.16246,430.94165 c 0,14.92179 -12.09649,27.01828 -27.01828,27.01828 -14.92179,0 -27.01828,-12.09649 -27.01828,-27.01828 0,-14.92179 12.09649,-27.01828 27.01828,-27.01828 14.92179,0 27.01828,12.09649 27.01828,27.01828 z"
|
||||
transform="translate(1151.1625,36.474655)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="textLinking"
|
||||
inkscape:label="Linking Text"
|
||||
style="display:none"
|
||||
transform="translate(314.84811,-319.4097)">
|
||||
<g
|
||||
style="font-size:195.61486816px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#3e364e;fill-opacity:1;stroke:none;font-family:Hobo Std;-inkscape-font-specification:Hobo Std Bold"
|
||||
id="text3799">
|
||||
<path
|
||||
d="m 64.536466,548.776 c 1.377337,0.12226 3.072643,0.12226 5.085921,0 2.013073,-0.12226 3.121542,-1.10032 3.32541,-2.93418 -0.07135,-0.78608 -0.776515,-4.27812 -2.11551,-10.47613 -1.339202,-6.198 -2.88478,-12.34167 -4.636736,-18.43104 -1.752156,-6.0893 -3.283244,-9.36399 -4.59327,-9.82408 -1.624161,0.20531 -3.940112,1.64221 -6.947862,4.31071 -3.007925,2.66858 -6.743877,5.33711 -11.207867,8.00562 -4.464142,2.66857 -9.69254,4.10547 -15.685208,4.31072 -5.644286,0.29345 -10.738353,-1.90719 -15.282216,-6.60192 -4.5439543,-4.69466 -6.9483532,-13.64391 -7.2132041,-26.84779 0.2800977,-18.15565 2.2410482,-34.50738 5.8828571,-49.05523 3.641721,-14.54765 7.283487,-26.33509 10.925309,-35.36237 3.641712,-9.027 5.602665,-14.3375 5.882866,-15.93154 -0.06934,-1.70329 -0.517615,-2.79546 -1.344833,-3.27651 -0.827337,-0.48072 -1.617937,-0.69263 -2.371801,-0.63573 l -31.1023638,0 c -1.4594784,0.40259 -3.1130135,5.24603 -4.9606102,14.53033 -1.847639,9.28459 -3.64177,20.59546 -5.382397,33.93263 -1.74066,13.33739 -3.180243,26.28651 -4.318755,38.84738 -1.138534,12.56103 -1.728426,22.31922 -1.769675,29.27462 0.122244,19.32082 0.317856,32.02746 0.586837,38.11995 0.26896,6.09252 2.811918,8.77403 7.628881,8.04456 z"
|
||||
id="path2998"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 129.7671,548.776 3.91225,0 c 0.89242,0.0326 1.60152,-0.0815 2.12728,-0.34232 0.52565,-0.26082 0.79462,-0.86396 0.8069,-1.80941 -0.40758,-1.6138 -2.03768,-9.87842 -4.89031,-24.79387 -2.85272,-14.9154 -4.48283,-35.01455 -4.89031,-60.29751 0.43193,-19.41034 2.15984,-35.94772 5.18373,-49.61218 3.02379,-13.66419 4.7517,-21.25231 5.18373,-22.76439 -0.15084,-1.75627 -1.07185,-2.74248 -2.76303,-2.95863 -1.69128,-0.21583 -3.24803,-0.27288 -4.67024,-0.17116 l -21.12614,0 c -0.8757,-0.26983 -2.04631,0.0501 -3.51185,0.95972 -1.46558,0.90996 -2.96018,4.02957 -4.4838,9.35883 -1.523657,5.32956 -2.81042,14.48869 -3.860293,27.47742 -1.049902,12.98898 -1.597002,31.42746 -1.641304,55.3155 0.04225,23.9529 0.609766,40.83833 1.702551,50.65635 1.092758,9.81806 2.457213,15.56085 4.093366,17.22838 1.63612,1.66753 3.29038,2.25196 4.96276,1.75327 z"
|
||||
id="path3000"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 273.31853,548.776 c 1.67224,0.49869 3.32649,-0.0857 4.96275,-1.75327 1.63602,-1.66753 3.00047,-7.41032 4.09337,-17.22838 1.09265,-9.81801 1.66017,-26.70345 1.70256,-50.65635 -0.0368,-23.88804 -0.53807,-42.32653 -1.50378,-55.3155 -0.96596,-12.98873 -2.17632,-22.14786 -3.63105,-27.47743 -1.45499,-5.32926 -2.93431,-8.44886 -4.43795,-9.35883 -1.50389,-0.90963 -2.81205,-1.22954 -3.92447,-0.95971 l -14.86654,0 c -1.9603,-0.0813 -3.76156,-0.065 -5.4038,0.0489 -1.64242,0.11427 -2.51452,0.81521 -2.61631,2.10283 0.41558,2.74688 2.07829,10.99519 4.98811,24.74496 2.90964,13.75004 4.57234,30.01845 4.98812,48.80529 0.057,1.66279 0.0407,3.86342 -0.0489,6.60191 -0.0898,2.73865 -0.59509,4.25465 -1.516,4.54799 -0.8722,-0.0855 -1.57314,-0.55009 -2.10283,-1.39374 -0.52988,-0.84351 -0.93741,-1.5526 -1.22258,-2.12728 -12.10511,-22.33593 -22.06201,-39.56429 -29.87073,-51.68513 -7.80886,-12.12058 -13.99841,-20.48119 -18.56869,-25.08186 -4.57037,-4.60035 -8.05033,-6.78831 -10.43989,-6.56387 l -15.45338,0 c -0.8757,-0.26983 -2.04631,0.0501 -3.51185,0.95972 -1.46558,0.90996 -2.96018,4.02957 -4.48381,9.35883 -1.52365,5.32956 -2.81041,14.48869 -3.86029,27.47742 -1.0499,12.98898 -1.597,31.42746 -1.6413,55.3155 0.0422,23.9529 0.60977,40.83833 1.70255,50.65635 1.09276,9.81806 2.45721,15.56085 4.09337,17.22838 1.63612,1.66753 3.29037,2.25196 4.96276,1.75327 l 18.19195,0 c 0.99839,0.0856 2.13131,0.11003 3.39876,0.0734 1.26736,-0.0367 1.96015,-0.64796 2.07838,-1.83386 -0.33421,-4.4624 -1.6709,-12.99598 -4.01005,-25.60077 -2.33924,-12.60473 -3.67592,-32.43491 -4.01005,-59.4906 -0.0471,-1.54308 -0.10509,-4.30338 -0.17388,-8.28093 -0.0689,-3.97735 0.13399,-7.73745 0.60857,-11.28031 0.4745,-3.54265 1.50328,-5.43356 3.08633,-5.67276 2.24467,0.37323 5.23198,3.27843 8.96194,8.71562 3.72986,5.43739 7.2533,11.1681 10.57031,17.19215 3.3169,6.02422 5.47829,10.10309 6.48419,12.23664 9.75036,20.37272 16.02685,35.92026 18.8295,46.64268 2.80248,10.72247 4.65958,18.01083 5.57132,21.86511 0.91157,3.85429 3.40623,5.66552 7.48399,5.43368 z"
|
||||
id="path3002"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 393.94758,386.02653 c -2.11923,0.0368 -3.45591,0.40361 -4.01006,1.10032 -0.55432,0.69703 -1.10856,2.09076 -1.6627,4.18121 -3.40277,11.16696 -8.16026,21.78314 -14.27246,31.84859 -6.11235,10.06569 -11.94207,18.30555 -17.4892,24.7196 -5.54723,6.41424 -9.1745,9.72758 -10.88184,9.94001 -1.8502,-0.37891 -2.89347,-2.16387 -3.12979,-5.35489 -0.23641,-3.19083 -0.30161,-5.51372 -0.19562,-6.96869 0.39934,-14.65858 1.99684,-27.54453 4.7925,-38.65789 2.79558,-11.11308 4.39308,-17.00589 4.79251,-17.67847 -0.11823,-1.75627 -0.90884,-2.74248 -2.3718,-2.95863 -1.46307,-0.21583 -2.8894,-0.27288 -4.27902,-0.17116 l -19.75685,0 c -0.87569,-0.26983 -2.04631,0.0501 -3.51185,0.95972 -1.46558,0.90996 -2.96018,4.02957 -4.4838,9.35883 -1.52366,5.32956 -2.81042,14.48869 -3.8603,27.47742 -1.04989,12.98898 -1.59699,31.42746 -1.6413,55.3155 0.0423,23.9529 0.60977,40.83833 1.70255,50.65635 1.09276,9.81806 2.45722,15.56085 4.09337,17.22838 1.63613,1.66753 3.29038,2.25196 4.96276,1.75327 l 23.86471,0 c 1.09619,0.008 1.9846,-0.25266 2.66521,-0.78245 0.68052,-0.52978 1.03099,-1.37744 1.05142,-2.54296 -0.0822,-0.89353 -0.65691,-4.36625 -1.72428,-10.41817 -1.06747,-6.05189 -2.13488,-12.45155 -3.20225,-19.19899 -1.06746,-6.74738 -1.64222,-11.61112 -1.72429,-14.59123 0.6031,-5.94575 3.60249,-11.61035 8.99817,-16.99382 5.39558,-5.38335 9.56864,-8.26048 12.51919,-8.6314 2.29022,-0.0529 6.16986,5.28568 11.63893,16.01576 5.46892,10.7302 8.76172,27.16977 9.87843,49.31877 -0.12642,1.26741 -0.0205,2.84046 0.31787,4.71914 0.33817,1.8787 1.6667,2.91381 3.9856,3.10535 l 23.86471,0 c 2.23312,0.15894 4.17294,0.13448 5.81946,-0.0734 1.64629,-0.20783 2.51024,-1.55267 2.59187,-4.0345 -0.4638,-19.1084 -3.70951,-35.2935 -9.73715,-48.55533 -6.02787,-13.26173 -12.05562,-23.57846 -18.08328,-30.95022 -6.02785,-7.3716 -9.27356,-11.7765 -9.73714,-13.2147 0.41046,-1.47666 3.28426,-5.39132 8.62143,-11.74399 5.33698,-6.35246 10.67405,-14.10691 16.01123,-23.26338 5.33696,-9.15621 8.21077,-18.67841 8.62144,-28.56665 -0.13868,-1.46692 -0.93743,-2.24937 -2.39626,-2.34734 -1.45906,-0.0976 -2.74683,-0.0976 -3.86334,0 z"
|
||||
id="path3004"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 484.91374,548.776 3.91224,0 c 0.89243,0.0326 1.60153,-0.0815 2.12729,-0.34232 0.52565,-0.26082 0.79462,-0.86396 0.8069,-1.80941 -0.40758,-1.6138 -2.03768,-9.87842 -4.89031,-24.79387 -2.85273,-14.9154 -4.48283,-35.01455 -4.89031,-60.29751 0.43193,-19.41034 2.15984,-35.94772 5.18372,-49.61218 3.02379,-13.66419 4.7517,-21.25231 5.18373,-22.76439 -0.15083,-1.75627 -1.07184,-2.74248 -2.76302,-2.95863 -1.69129,-0.21583 -3.24803,-0.27288 -4.67024,-0.17116 l -21.12614,0 c -0.8757,-0.26983 -2.04632,0.0501 -3.51185,0.95972 -1.46559,0.90996 -2.96018,4.02957 -4.4838,9.35883 -1.52366,5.32956 -2.81042,14.48869 -3.8603,27.47742 -1.0499,12.98898 -1.597,31.42746 -1.6413,55.3155 0.0423,23.9529 0.60977,40.83833 1.70255,50.65635 1.09276,9.81806 2.45721,15.56085 4.09337,17.22838 1.63612,1.66753 3.29037,2.25196 4.96276,1.75327 z"
|
||||
id="path3006"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 628.46517,548.776 c 1.67224,0.49869 3.32649,-0.0857 4.96275,-1.75327 1.63602,-1.66753 3.00047,-7.41032 4.09337,-17.22838 1.09265,-9.81801 1.66017,-26.70345 1.70256,-50.65635 -0.0368,-23.88804 -0.53807,-42.32653 -1.50378,-55.3155 -0.96597,-12.98873 -2.17632,-22.14786 -3.63106,-27.47743 -1.45498,-5.32926 -2.9343,-8.44886 -4.43795,-9.35883 -1.50388,-0.90963 -2.81204,-1.22954 -3.92447,-0.95971 l -14.86653,0 c -1.9603,-0.0813 -3.76157,-0.065 -5.4038,0.0489 -1.64242,0.11427 -2.51453,0.81521 -2.61631,2.10283 0.41558,2.74688 2.07828,10.99519 4.98811,24.74496 2.90963,13.75004 4.57234,30.01845 4.98812,48.80529 0.0569,1.66279 0.0406,3.86342 -0.0489,6.60191 -0.0898,2.73865 -0.59509,4.25465 -1.51599,4.54799 -0.8722,-0.0855 -1.57315,-0.55009 -2.10283,-1.39374 -0.52989,-0.84351 -0.93741,-1.5526 -1.22258,-2.12728 -12.10511,-22.33593 -22.06201,-39.56429 -29.87073,-51.68513 -7.80886,-12.12058 -13.99842,-20.48119 -18.56869,-25.08186 -4.57037,-4.60035 -8.05033,-6.78831 -10.4399,-6.56387 l -15.45337,0 c -0.8757,-0.26983 -2.04632,0.0501 -3.51186,0.95972 -1.46558,0.90996 -2.96018,4.02957 -4.4838,9.35883 -1.52365,5.32956 -2.81042,14.48869 -3.86029,27.47742 -1.0499,12.98898 -1.597,31.42746 -1.6413,55.3155 0.0423,23.9529 0.60976,40.83833 1.70255,50.65635 1.09276,9.81806 2.45721,15.56085 4.09337,17.22838 1.63612,1.66753 3.29037,2.25196 4.96275,1.75327 l 18.19195,0 c 0.9984,0.0856 2.13132,0.11003 3.39876,0.0734 1.26736,-0.0367 1.96016,-0.64796 2.07839,-1.83386 -0.33422,-4.4624 -1.6709,-12.99598 -4.01006,-25.60077 -2.33924,-12.60473 -3.67592,-32.43491 -4.01005,-59.4906 -0.0471,-1.54308 -0.10508,-4.30338 -0.17388,-8.28093 -0.0689,-3.97735 0.13399,-7.73745 0.60857,-11.28031 0.47451,-3.54265 1.50329,-5.43356 3.08633,-5.67276 2.24468,0.37323 5.23199,3.27843 8.96195,8.71562 3.72986,5.43739 7.25329,11.1681 10.57031,17.19215 3.31689,6.02422 5.47829,10.10309 6.48419,12.23664 9.75035,20.37272 16.02684,35.92026 18.82949,46.64268 2.80248,10.72247 4.65959,18.01083 5.57133,21.86511 0.91156,3.85429 3.40622,5.66552 7.48399,5.43368 z"
|
||||
id="path3008"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 730.11984,551.71019 c 12.68212,0.0611 23.99502,-2.89751 33.93874,-8.87592 9.94352,-5.97839 15.19244,-15.34332 15.7468,-28.09482 -0.0315,-2.50911 -0.46862,-8.0104 -1.31133,-16.50389 -0.84294,-8.49338 -1.90311,-16.66079 -3.18051,-24.50226 -1.27764,-7.84131 -2.58413,-12.03852 -3.91949,-12.59163 -1.18345,0.13412 -4.64168,1.2136 -10.3747,3.23847 -5.73323,2.02503 -11.33595,4.19125 -16.80818,6.49867 -5.47239,2.30758 -8.40899,3.95217 -8.80979,4.93378 0.19071,1.58309 1.52618,3.09003 4.00643,4.52082 2.48009,1.43093 4.96025,3.4595 7.44051,6.08572 2.48008,2.62634 3.81556,6.52409 4.00643,11.69327 -0.29351,6.77312 -2.98318,11.61452 -8.06901,14.52422 -5.086,2.90976 -10.80765,4.32795 -17.16498,4.25457 -12.53147,-0.49308 -21.01615,-5.13072 -25.45406,-13.91293 -4.43799,-8.78213 -6.51637,-18.7502 -6.23514,-29.90424 -0.058,-9.32772 1.25333,-18.7316 3.93398,-28.21165 2.68057,-9.47984 7.07822,-17.44922 13.19296,-23.90818 6.11464,-6.45869 14.29413,-9.82032 24.53849,-10.0849 7.94515,0.22715 12.94172,1.81619 14.9897,4.76714 2.0478,2.95122 3.1611,5.90231 3.3399,8.85328 0.17862,2.95121 1.43681,4.54026 3.7746,4.76715 6.23096,-0.0325 11.12941,-1.58108 14.69537,-4.6458 3.56573,-3.06447 5.3833,-7.44944 5.4527,-13.15493 -0.21868,-7.00084 -2.69402,-12.58182 -7.42603,-16.74296 -4.73224,-4.16084 -10.40982,-7.14815 -17.03276,-8.96195 -6.62314,-1.81348 -12.88031,-2.69977 -18.77154,-2.65888 -15.61162,0.30204 -28.7925,4.97982 -39.54268,14.03337 -10.75025,9.05386 -18.90318,20.67225 -24.45879,34.85523 -5.55564,14.1832 -8.34734,29.11976 -8.3751,44.80972 -0.008,22.20612 5.63199,40.14539 16.92046,53.81784 11.28843,13.67249 28.27409,20.70638 50.95702,21.10169 z"
|
||||
id="path3010"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="textUpdating"
|
||||
inkscape:label="Updating Text"
|
||||
style="display:inline"
|
||||
transform="translate(314.84811,-319.4097)">
|
||||
<g
|
||||
transform="translate(-2.0722657e-6,0.02741704)"
|
||||
style="font-size:220px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#3e364e;fill-opacity:1;stroke:none;display:inline;font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="text3799-0">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 25.320627,483.66859 c -0.03675,10.74324 -1.283395,18.73646 -3.739951,23.97969 -3.483362,7.91992 -9.936606,11.87987 -19.3597511,11.87985 -15.5831789,0.0367 -23.3564039,-11.91648 -23.3196999,-35.85954 l 0,-73.25906 c 0.0045,-3.63898 0.105376,-6.8656 0.302495,-9.67987 0.197045,-2.814 0.462875,-5.16063 0.797491,-7.03991 l -29.919615,0 c 0.623315,5.97672 0.916645,10.52333 0.879989,13.63982 l 0.219997,80.07897 c -8e-6,16.05983 4.399931,29.25965 13.19983,39.59949 9.203186,10.74319 21.816345,16.09645 37.8395129,16.05979 15.6197241,-0.0367 28.1595501,-5.46326 37.6195161,-16.27979 8.79978,-10.37651 13.199719,-23.50299 13.19983,-39.37949 l 0,-71.93907 0,-8.1399 c 0.10072,-2.86441 0.229051,-5.44021 0.384995,-7.7274 0.155722,-2.28691 0.394052,-4.25771 0.71499,-5.91242 l -30.139612,0 c 0.439913,1.86095 0.769907,3.91425 0.989984,6.15992 0.219913,2.24594 0.329913,4.73924 0.329999,7.4799 z"
|
||||
style="font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="path2998-1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 117.16073,506.1083 c 14.26308,-5.93988 25.77626,-14.07977 34.53956,-24.41969 9.93644,-11.91644 14.92304,-25.04292 14.9598,-39.37949 -1e-4,-14.11637 -5.06003,-25.70288 -15.1798,-34.75955 -10.15661,-9.23974 -23.50309,-13.85968 -40.03949,-13.85982 l -32.99957,0 c 0.325401,1.86095 0.554564,4.51924 0.687489,7.97489 0.132902,3.45592 0.197068,7.7642 0.192499,12.92484 l 0,105.15864 c 0.03666,7.66325 -0.256673,14.55649 -0.879988,20.67974 l 28.59963,0 c -0.3392,-1.7554 -0.59587,-4.34953 -0.76999,-7.7824 -0.17421,-3.43286 -0.21087,-7.73197 -0.11,-12.89734 l 0,-7.6999 z m -5.05993,-88.43886 c 7.51652,1.2e-4 13.8231,2.20009 18.91975,6.59991 5.71986,4.87672 8.57982,11.4033 8.57989,19.57975 -0.0367,8.57998 -3.70335,16.71986 -10.99986,24.41969 -6.37997,6.81997 -13.85987,11.8799 -22.43971,15.1798 l 0,-65.77915 z"
|
||||
style="font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="path3000-7" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 188.44123,393.68975 c 0.62331,3.33676 0.91664,10.30333 0.87999,20.89973 l 0,105.15864 c 0.0366,10.08322 -0.25667,16.97646 -0.87999,20.67974 l 45.97941,0 c 20.86298,0 35.23612,-6.81991 43.11944,-20.45974 6.34315,-10.96316 9.49643,-28.85624 9.45988,-53.67931 -0.0368,-48.39925 -19.32317,-72.59892 -57.85925,-72.59906 z m 71.27908,86.89888 c 0.0778,12.75529 -2.82796,21.94933 -8.71739,27.58214 -5.88958,5.63287 -15.23028,8.392 -28.02213,8.2774 l -6.81992,0 0,-98.99873 5.49993,0 c 14.73975,-0.0365 24.85961,3.11675 30.35961,9.45988 5.09652,5.68337 7.66315,15.87656 7.6999,30.5796 z"
|
||||
style="font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="path3002-4" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 328.51225,540.42786 c 0.0366,-2.01664 1.06329,-6.78324 3.07996,-14.29982 l 5.05993,-17.81977 38.27951,0 4.39994,17.81977 c 0.87991,3.6208 1.5399,6.60909 1.97998,8.96489 0.43991,2.3558 0.65991,4.13411 0.65999,5.33493 l 30.57961,0 -8.57989,-32.11959 5.27993,0 0,-23.3197 -11.43985,0 -24.19969,-91.29882 -32.55958,0 -38.71951,146.73811 z m 28.15964,-104.49866 12.31984,49.05937 -25.95967,0 z"
|
||||
style="font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="path3004-0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 497.1829,417.66944 c 4.0607,1.2e-4 7.43398,0.0551 10.11987,0.165 2.68571,0.11012 4.73901,0.27511 6.15992,0.49499 l 0,-24.63968 -90.85883,0 0,24.63968 c 2.45663,-0.43987 7.88322,-0.65987 16.27979,-0.65999 l 15.6198,0 0,102.07868 c 0.0366,9.86322 -0.2567,16.75646 -0.87999,20.67974 l 28.81963,0 c -0.62339,-3.11662 -0.91672,-9.8632 -0.87999,-20.23974 l 0,-102.51868 15.6198,0 z"
|
||||
style="font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="path3006-9" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 561.23086,540.42786 c -0.62337,-3.55662 -0.9167,-10.30319 -0.87999,-20.23974 l 0,-106.25863 c -0.0367,-10.1564 0.25662,-16.90298 0.87999,-20.23974 l -29.91962,0 c 0.3254,1.43929 0.55457,3.89592 0.68749,7.3699 0.1329,3.47426 0.19707,7.91086 0.1925,13.30983 l 0,105.37864 c 0.005,4.95912 -0.0596,9.17573 -0.1925,12.64984 -0.13292,3.47412 -0.36209,6.15075 -0.68749,8.0299 z"
|
||||
style="font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="path3008-4" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 681.95847,540.64785 c -0.62343,-5.46326 -0.91676,-14.11647 -0.87998,-25.95966 l 0,-97.01875 c -1.1e-4,-8.79976 0.21989,-16.93965 0.65999,-24.41969 l -27.71965,0 c 0.69658,7.70004 1.06324,15.83993 1.09999,24.41969 l 0,46.4194 -43.11944,-70.39909 -29.25963,0 6.59992,12.09984 0,108.01861 c 0.005,5.60078 -0.0596,10.62404 -0.1925,15.0698 -0.13293,4.44578 -0.36209,8.36906 -0.68749,11.76985 l 27.93964,0 c -0.62337,-7.22323 -0.9167,-15.43645 -0.87999,-24.63968 l 0,-69.7391 39.59949,64.01917 c -0.11008,0.55919 -0.16508,1.47584 -0.165,2.74997 -7e-5,1.27417 0.0549,2.85082 0.165,4.72994 -0.0367,5.75661 -0.4034,13.38317 -1.09999,22.8797 z"
|
||||
style="font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="path3010-8" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 801.81037,540.42786 c 1.97987,0.21999 3.51985,0.21999 4.61994,0 -0.0368,-1.4254 -0.18344,-3.85454 -0.44,-7.28741 -0.25677,-3.43287 -0.40343,-7.23698 -0.43999,-11.41235 l 0,-25.51967 c -0.005,-3.84074 0.0595,-7.48903 0.1925,-10.94487 0.1328,-3.45573 0.36197,-6.77401 0.68749,-9.95487 l -26.83966,0 c 0.47658,9.67994 0.62325,15.39986 0.44,17.15978 0.0366,17.59981 -7.07665,26.39969 -21.33973,26.39966 -17.41648,-0.0366 -26.14303,-17.34306 -26.17966,-51.91933 -3e-5,-34.13612 10.77982,-51.22255 32.33958,-51.25934 10.33979,-0.0365 20.23966,3.99674 29.69962,12.09985 l 0,-25.07968 c -8.35998,-7.29643 -18.25984,-10.96305 -29.69962,-10.99986 -19.95104,0.0827 -35.04833,6.46256 -45.29192,19.13975 -10.24362,12.67746 -15.38605,31.1572 -15.4273,55.43929 0.0367,50.85603 18.22308,76.30235 54.5593,76.33902 8.13983,-0.0367 15.39973,-1.72331 21.77972,-5.05994 5.05985,-2.82329 8.5798,-5.97658 10.55987,-9.45987 z"
|
||||
style="font-family:Collegiate;-inkscape-font-specification:Collegiate Bold"
|
||||
id="path3012" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 22 KiB |
13
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/Makefile
vendored
Normal file
13
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/Makefile
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
SOURCE_DIR = .
|
||||
BINARY_DIR = .
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(BINARY_DIR)/resource.dat
|
||||
|
||||
$(BINARY_DIR)/resource.dat: $(SOURCE_DIR)/makeres.py $(SOURCE_DIR)/render_svg.py $(SOURCE_DIR)/create_resource_dat.py $(SOURCE_DIR)/Cursor_Base.svg $(SOURCE_DIR)/Linking_Book.svg $(SOURCE_DIR)/Loading_Text_rasterfont.svg $(SOURCE_DIR)/Voice_Chat.svg
|
||||
python $(SOURCE_DIR)/makeres.py --optimize --render --package -i $(SOURCE_DIR) -o $(BINARY_DIR)
|
||||
|
||||
clean:
|
||||
rm -rf $(BINARY_DIR)/render
|
||||
rm -fv $(BINARY_DIR)/resource.dat
|
1595
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/Voice_Chat.svg
vendored
Normal file
1595
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/Voice_Chat.svg
vendored
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 48 KiB |
62
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/create_resource_dat.py
vendored
Normal file
62
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/create_resource_dat.py
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
from __future__ import with_statement
|
||||
|
||||
import os
|
||||
import sys
|
||||
import glob
|
||||
import struct
|
||||
from optparse import OptionParser
|
||||
|
||||
version = 1
|
||||
|
||||
def create_resource_dat(resfilepath, inrespath):
|
||||
datHeader = 0xCBBCF00D
|
||||
datVersion = 0x00000001
|
||||
|
||||
## Get list of files to archive
|
||||
resourceList = glob.glob(os.path.join(inrespath, "*"))
|
||||
resourceList.sort()
|
||||
if len(resourceList) == 0:
|
||||
print("No files found in '{0}'. Quitting.\n".format(inrespath))
|
||||
return False
|
||||
print("{0} resources found in '{1}'.".format(len(resourceList), inrespath, ))
|
||||
|
||||
## Write each resource into the output file
|
||||
with open(resfilepath, "wb") as datFile:
|
||||
datFile.write(struct.pack("<I",datHeader))
|
||||
datFile.write(struct.pack("<I",datVersion))
|
||||
datFile.write(struct.pack("<I",len(resourceList)))
|
||||
for res in resourceList:
|
||||
with open(res, "rb") as resFile:
|
||||
name = os.path.basename(res)
|
||||
datFile.write(struct.pack("<I", len(name)))
|
||||
datFile.write(name)
|
||||
datFile.write(struct.pack("<I", os.path.getsize(res)))
|
||||
datFile.write(resFile.read())
|
||||
|
||||
print("{0} resources written to '{1}'.\n".format(len(resourceList), resfilepath))
|
||||
|
||||
return True
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = OptionParser(usage="usage: %prog [options]", version="%prog {0}".format(version))
|
||||
parser.add_option("-q", "--quiet", dest="verbose", default=True, action="store_false", help="Don't print status messages")
|
||||
parser.add_option("-o", "--outfile", dest="outfile", default="resource.dat", help="Sets name for output file")
|
||||
parser.add_option("-i", "--inpath", dest="inpath", default=".", help="Sets input path for files to add to resource file")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
## Send output to OS's null if unwanted
|
||||
if not options.verbose:
|
||||
sys.stdout = open(os.devnull,"w")
|
||||
sys.stderr = open(os.devnull,"w")
|
||||
|
||||
## Compute Paths
|
||||
outfile = os.path.expanduser(options.outfile)
|
||||
inpath = os.path.expanduser(options.inpath)
|
||||
|
||||
## Do the work!
|
||||
print("Creating {0}...".format(outfile))
|
||||
create_resource_dat(outfile, inpath)
|
52
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/makeres.py
vendored
Normal file
52
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/makeres.py
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import sys
|
||||
import glob
|
||||
import subprocess
|
||||
from optparse import OptionParser
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = OptionParser(usage="usage: %prog [options]")
|
||||
parser.add_option("-q", "--quiet", dest="verbose", default=True, action="store_false", help="Don't print status messages")
|
||||
parser.add_option("-r", "--render", dest="render", default=False, action="store_true", help="Perform SVG Render to images")
|
||||
parser.add_option("-p", "--package", dest="package", default=False, action="store_true", help="Perform packaging into resource container")
|
||||
parser.add_option("-z", "--optimize", dest="optimize", default=False, action="store_true", help="Perform PNGCrush optimization on PNG resources")
|
||||
parser.add_option("-o", "--outpath", dest="outpath", default=".", help="Sets output path for resource container")
|
||||
parser.add_option("-i", "--inpath", dest="inpath", default=".", help="Sets input path for files to add to resource file")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
## Send output to OS's null if unwanted
|
||||
if not options.verbose:
|
||||
sys.stdout = open(os.devnull,"w")
|
||||
sys.stderr = open(os.devnull,"w")
|
||||
|
||||
## Compute Paths
|
||||
outpath = os.path.expanduser(options.outpath)
|
||||
inpath = os.path.expanduser(options.inpath)
|
||||
|
||||
## Do the work!
|
||||
if options.render:
|
||||
ret = subprocess.call(["python", os.path.join(inpath, "render_svg.py"), "-i", inpath, "-o", os.path.join(outpath, "render")], stdout=sys.stdout, stderr=sys.stderr)
|
||||
if ret != 0:
|
||||
print("An error has occurred. Aborting.")
|
||||
exit(1)
|
||||
|
||||
if options.optimize:
|
||||
print("Optimizing PNGs with pngcrush...")
|
||||
for png in glob.glob(os.path.join("render", "*.png")):
|
||||
#print("pngcrushing - {0}".format(png))
|
||||
ret = subprocess.call(["pngcrush", "-q", "-l 9", "-brute", png, "temp.png"], stdout=sys.stdout, stderr=sys.stderr)
|
||||
if ret != 0:
|
||||
print("An error has occurred. Aborting.")
|
||||
exit(1)
|
||||
os.remove(png)
|
||||
os.rename("temp.png", png)
|
||||
|
||||
if options.package:
|
||||
ret = subprocess.call(["python", os.path.join(inpath, "create_resource_dat.py"), "-i", os.path.join(outpath, "render"), "-o", "resource.dat"], stdout=sys.stdout, stderr=sys.stderr)
|
||||
if ret != 0:
|
||||
print("An error has occurred. Aborting.")
|
||||
exit(1)
|
220
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/render_svg.py
vendored
Normal file
220
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/render_svg.py
vendored
Normal file
@ -0,0 +1,220 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
from __future__ import with_statement
|
||||
|
||||
|
||||
import os
|
||||
import math
|
||||
from xml.dom.minidom import parse
|
||||
from optparse import OptionParser
|
||||
import scalergba
|
||||
|
||||
try:
|
||||
import rsvg
|
||||
import cairo
|
||||
except ImportError as e:
|
||||
print("Rendering SVG resources requires PyGTK. Exiting...")
|
||||
exit(1)
|
||||
|
||||
cursorList = {
|
||||
"cursor_up": ["circleOuter"],
|
||||
"cursor_poised": ["circleOuter", "circleInnerOpen"],
|
||||
"cursor_clicked": ["circleOuter", "circleInnerClosed"],
|
||||
"cursor_disabled": ["cross"],
|
||||
|
||||
"cursor_open": ["circleOuter", "arrowTranslucentUpper", "arrowTranslucentLower"],
|
||||
"cursor_grab": ["circleOuter", "circleInnerOpen", "arrowTranslucentUpper", "arrowTranslucentLower"],
|
||||
"cursor_updown_open": ["circleOuter", "circleInnerOpen", "arrowTranslucentUpper", "arrowTranslucentLower"],
|
||||
"cursor_updown_closed": ["circleOuter", "circleInnerClosed", "arrowOpaqueUpper", "arrowOpaqueLower"],
|
||||
|
||||
"cursor_leftright_open": ["circleOuter", "circleInnerOpen", "arrowTranslucentLeft", "arrowTranslucentRight"],
|
||||
"cursor_leftright_closed": ["circleOuter", "circleInnerClosed", "arrowOpaqueLeft", "arrowOpaqueRight"],
|
||||
|
||||
"cursor_4way_open": ["circleOuter", "circleInnerOpen", "arrowTranslucentUpper", "arrowTranslucentRight", "arrowTranslucentLower", "arrowTranslucentLeft"],
|
||||
"cursor_4way_closed": ["circleOuter", "circleInnerClosed", "arrowOpaqueUpper", "arrowOpaqueRight", "arrowOpaqueLower", "arrowOpaqueLeft"],
|
||||
|
||||
"cursor_upward": ["circleOuter", "arrowOpaqueUpper"],
|
||||
"cursor_right": ["circleOuter", "arrowOpaqueRight"],
|
||||
"cursor_down": ["circleOuter", "arrowOpaqueLower"],
|
||||
"cursor_left": ["circleOuter", "arrowOpaqueLeft"],
|
||||
|
||||
"cursor_book": ["circleOuter", "book"],
|
||||
"cursor_book_poised": ["circleOuter", "circleInnerOpen", "book"],
|
||||
"cursor_book_clicked": ["circleOuter", "circleInnerClosed", "book"],
|
||||
}
|
||||
cursorOffsetList = {
|
||||
"cursor_book": [7, 7],
|
||||
"cursor_book_poised": [7, 7],
|
||||
"cursor_book_clicked": [7, 7]
|
||||
}
|
||||
|
||||
textList = {
|
||||
"xLoading_Linking_Text": ["background", "circles", "textLinking"],
|
||||
"xLoading_Updating_Text": ["background", "circles", "textUpdating"]
|
||||
}
|
||||
|
||||
voiceList = {
|
||||
"ui_speaker": ["speakerGrille", "speakerIndicator", "speakerOuterRing"],
|
||||
"ui_microphone": ["microphoneGrille", "microphoneIndicator", "microphoneOuterRing"]
|
||||
}
|
||||
|
||||
def enable_only_layers(layerlist, layers):
|
||||
for layer in layers:
|
||||
if layer in layerlist:
|
||||
layers[layer].setAttribute("style","")
|
||||
else:
|
||||
layers[layer].setAttribute("style","display:none")
|
||||
# sanity check
|
||||
for layer in layerlist:
|
||||
if layer not in layers:
|
||||
print("warning: unknown layer", layer)
|
||||
|
||||
def shift_all_layers(layers, shiftx, shifty):
|
||||
# note: this assumes that all layers start out with no transform of their own
|
||||
for layer in layers:
|
||||
layers[layer].setAttribute("transform", "translate(%g,%g)" % (shiftx, shifty))
|
||||
|
||||
def get_layers_from_svg(svgData):
|
||||
inkscapeNS = "http://www.inkscape.org/namespaces/inkscape"
|
||||
layers = {}
|
||||
|
||||
groups = svgData.getElementsByTagName("g")
|
||||
for group in groups:
|
||||
if group.getAttributeNS(inkscapeNS,"groupmode") == "layer":
|
||||
layers[group.getAttribute("id")] = group
|
||||
|
||||
return layers
|
||||
|
||||
def render_cursors(inpath, outpath):
|
||||
scalefactor = 4
|
||||
with open(os.path.join(inpath,"Cursor_Base.svg"), "r") as svgFile:
|
||||
cursorSVG = parse(svgFile)
|
||||
layers = get_layers_from_svg(cursorSVG)
|
||||
svgwidth = float(cursorSVG.documentElement.getAttribute("width"))
|
||||
svgheight = float(cursorSVG.documentElement.getAttribute("height"))
|
||||
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, int(math.ceil(scalefactor*svgwidth)), int(math.ceil(scalefactor*svgheight)))
|
||||
|
||||
for cursor in cursorList:
|
||||
ctx = cairo.Context(surface)
|
||||
ctx.save()
|
||||
ctx.set_operator(cairo.OPERATOR_CLEAR)
|
||||
ctx.paint()
|
||||
ctx.restore()
|
||||
|
||||
enabledlayers = cursorList[cursor]
|
||||
enabledlayers = enabledlayers + [l + "Shadow" for l in enabledlayers]
|
||||
enable_only_layers(enabledlayers, layers)
|
||||
|
||||
shift_all_layers(layers, *cursorOffsetList.get(cursor, [0, 0]))
|
||||
|
||||
svg = rsvg.Handle(data=cursorSVG.toxml())
|
||||
ctx.scale(scalefactor, scalefactor)
|
||||
svg.render_cairo(ctx)
|
||||
|
||||
outfile = os.path.join(outpath, cursor + ".png")
|
||||
surface.write_to_png(outfile)
|
||||
scalergba.scale(outfile, outfile, scalefactor)
|
||||
|
||||
def render_loading_books(inpath, outpath):
|
||||
resSize = {"width":256, "height":256}
|
||||
with open(os.path.join(inpath,"Linking_Book.svg"), "r") as svgFile:
|
||||
bookSVG = parse(svgFile)
|
||||
layers = get_layers_from_svg(bookSVG)
|
||||
ratioW = resSize["width"] / float(bookSVG.documentElement.getAttribute("width"))
|
||||
ratioH = resSize["height"] / float(bookSVG.documentElement.getAttribute("height"))
|
||||
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, resSize["width"], resSize["height"])
|
||||
|
||||
for angle in range(0, 18):
|
||||
ctx = cairo.Context(surface)
|
||||
|
||||
# Draw Book and Black Background
|
||||
enable_only_layers(["background", "book"],layers)
|
||||
svg = rsvg.Handle(data=bookSVG.toxml())
|
||||
ctx.save()
|
||||
ctx.scale(ratioW, ratioH)
|
||||
svg.render_cairo(ctx)
|
||||
ctx.restore()
|
||||
|
||||
# Draw Circles at appropriate angle
|
||||
enable_only_layers(["circles"],layers)
|
||||
svg = rsvg.Handle(data=bookSVG.toxml())
|
||||
ctx.translate(resSize["height"] / 2, resSize["width"] / 2)
|
||||
ctx.rotate(math.radians(angle*(5)))
|
||||
ctx.translate(-resSize["width"] / 2, -resSize["height"] / 2)
|
||||
ctx.scale(ratioW, ratioH)
|
||||
svg.render_cairo(ctx)
|
||||
|
||||
surface.write_to_png(os.path.join(outpath, "xLoading_Linking.{0:02}.png".format(angle)))
|
||||
|
||||
def render_loading_text(inpath, outpath):
|
||||
resSize = {"width":192, "height":41}
|
||||
with open(os.path.join(inpath,"Loading_Text_rasterfont.svg"), "r") as svgFile:
|
||||
textSVG = parse(svgFile)
|
||||
layers = get_layers_from_svg(textSVG)
|
||||
ratioW = resSize["width"] / float(textSVG.documentElement.getAttribute("width"))
|
||||
ratioH = resSize["height"] / float(textSVG.documentElement.getAttribute("height"))
|
||||
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, resSize["width"], resSize["height"])
|
||||
|
||||
for textEntry in textList:
|
||||
ctx = cairo.Context(surface)
|
||||
ctx.save()
|
||||
ctx.set_operator(cairo.OPERATOR_CLEAR)
|
||||
ctx.paint()
|
||||
ctx.restore()
|
||||
enable_only_layers(textList[textEntry], layers)
|
||||
svg = rsvg.Handle(data=textSVG.toxml())
|
||||
ctx.scale(ratioW, ratioH)
|
||||
svg.render_cairo(ctx)
|
||||
surface.write_to_png(os.path.join(outpath, textEntry + ".png"))
|
||||
|
||||
def render_voice_icons(inpath, outpath):
|
||||
resSize = {"width":32, "height":32}
|
||||
with open(os.path.join(inpath,"Voice_Chat.svg"), "r") as svgFile:
|
||||
uiSVG = parse(svgFile)
|
||||
layers = get_layers_from_svg(uiSVG)
|
||||
ratioW = resSize["width"] / float(uiSVG.documentElement.getAttribute("width"))
|
||||
ratioH = resSize["height"] / float(uiSVG.documentElement.getAttribute("height"))
|
||||
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, resSize["width"], resSize["height"])
|
||||
|
||||
for voiceUI in voiceList:
|
||||
ctx = cairo.Context(surface)
|
||||
ctx.save()
|
||||
ctx.set_operator(cairo.OPERATOR_CLEAR)
|
||||
ctx.paint()
|
||||
ctx.restore()
|
||||
|
||||
enable_only_layers(voiceList[voiceUI], layers)
|
||||
|
||||
svg = rsvg.Handle(data=uiSVG.toxml())
|
||||
ctx.scale(ratioW, ratioH)
|
||||
svg.render_cairo(ctx)
|
||||
|
||||
surface.write_to_png(os.path.join(outpath, voiceUI + ".png"))
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = OptionParser(usage="usage: %prog [options]")
|
||||
parser.add_option("-q", "--quiet", dest="verbose", default=True, action="store_false", help="Don't print status messages")
|
||||
parser.add_option("-o", "--outpath", dest="outpath", default="./out", help="Sets output path for rendered images")
|
||||
parser.add_option("-i", "--inpath", dest="inpath", default=".", help="Sets input path for SVG files")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
## Send output to OS's null if unwanted
|
||||
if not options.verbose:
|
||||
sys.stdout = open(os.devnull,"w")
|
||||
sys.stderr = open(os.devnull,"w")
|
||||
|
||||
## Compute Paths
|
||||
outpath = os.path.expanduser(options.outpath)
|
||||
inpath = os.path.expanduser(options.inpath)
|
||||
|
||||
if not os.path.exists(outpath):
|
||||
os.mkdir(outpath)
|
||||
|
||||
## Do the work!
|
||||
print("Rendering SVGs...")
|
||||
render_cursors(inpath, outpath)
|
||||
render_loading_books(inpath, outpath)
|
||||
render_loading_text(inpath, outpath)
|
||||
render_voice_icons(inpath, outpath)
|
BIN
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/resource.dat
vendored
Normal file
BIN
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/resource.dat
vendored
Normal file
Binary file not shown.
180
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/scalergba.py
vendored
Executable file
180
MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/external/scalergba.py
vendored
Executable file
@ -0,0 +1,180 @@
|
||||
#!/opt/local/bin/python2.7
|
||||
|
||||
# Christian Walther 2011-07-20
|
||||
# Public Domain
|
||||
|
||||
# scalergba.py <input> <factor> <output>
|
||||
#
|
||||
# Scale image <input> down by <factor> (integer) and save as PNG file <output>.
|
||||
#
|
||||
# - Taking into account that adding (averaging) colors must be done in a linear
|
||||
# color space, not with the power-law-encoded values stored in the files.
|
||||
# (I know of no image processing application that does this right.)
|
||||
# Gamma is hardcoded to 2.2.
|
||||
# - Assuming that alpha compositing will be done directly with the raw
|
||||
# power-law-encoded values rather than in the linear color space that would
|
||||
# be correct, which is the way almost all software will do it, in particular
|
||||
# OpenGL/Direct3D. (Photoshop has an option to do it right, maybe other
|
||||
# high-end image processing software too.)
|
||||
|
||||
|
||||
from __future__ import division
|
||||
import sys
|
||||
import math
|
||||
try:
|
||||
import Image
|
||||
except ImportError:
|
||||
print("Scaling requires the Python Imaging Library.")
|
||||
raise
|
||||
|
||||
|
||||
gamma = 2.2
|
||||
|
||||
|
||||
def add(a, b):
|
||||
for i, y in enumerate(b):
|
||||
a[i] += y
|
||||
|
||||
def sub(a, b):
|
||||
for i, y in enumerate(b):
|
||||
a[i] -= y
|
||||
|
||||
def subsc(a, b):
|
||||
for i in range(3):
|
||||
a[i] -= b
|
||||
|
||||
def mul(a, b):
|
||||
for i, y in enumerate(b):
|
||||
a[i] *= y
|
||||
|
||||
def mulsc(a, b):
|
||||
for i in range(3):
|
||||
a[i] *= b
|
||||
|
||||
def pixel2linear(p):
|
||||
l = [math.pow(p[i]/255.0, gamma) for i in range(3)]
|
||||
if len(p) == 4:
|
||||
l.append(p[3]/255.0)
|
||||
else:
|
||||
l.append(1.0)
|
||||
return l
|
||||
|
||||
def pixel2nonlinear(p):
|
||||
return [p[i]/255.0 for i in range(3)], p[3]/255.0 if len(p) > 3 else 1.0
|
||||
|
||||
def clamp(x):
|
||||
return 255 if x > 255 else 0 if x < 0 else x
|
||||
|
||||
def linear2pixel(l):
|
||||
p = [clamp(int(math.floor(math.pow(l[i], 1.0/gamma)*255 + 0.5))) for i in range(3)]
|
||||
if len(l) == 4:
|
||||
p.append(clamp(int(math.floor(l[3]*255 + 0.5))))
|
||||
return p
|
||||
|
||||
def nonlinear2pixel(l):
|
||||
return [clamp(int(math.floor(c*255 + 0.5))) for c in l]
|
||||
|
||||
|
||||
def scale(infilename, outfilename, factor):
|
||||
inimg = Image.open(infilename)
|
||||
inpix = inimg.load()
|
||||
|
||||
outw = inimg.size[0] // factor
|
||||
outh = inimg.size[1] // factor
|
||||
outimg = Image.new("RGBA", (outw, outh), None)
|
||||
outpix = outimg.load()
|
||||
|
||||
for oy in range(outh):
|
||||
for ox in range(outw):
|
||||
# scale down in linear color space to get a tentative color to compute the fixed points from
|
||||
sum = [0.0, 0.0, 0.0, 0.0]
|
||||
for j in range(factor):
|
||||
for i in range(factor):
|
||||
l = pixel2linear(inpix[ox*factor+i, oy*factor+j])
|
||||
mulsc(l, l[3])
|
||||
add(sum, l)
|
||||
if sum[3] != 0:
|
||||
mulsc(sum, 1.0/sum[3])
|
||||
sum[3] /= factor*factor
|
||||
|
||||
# determine the two fixed points (background colors on which we will achieve the correct result) per component
|
||||
# I used to use constant black and white for that, but later realized that that results in a large error (result too light) on midtones and I can do better by distributing the error more evenly. The dependency of the fixed points on the foreground color is empirical magic that has been experimentally determined to produce visually pleasing results.
|
||||
fix1 = [0.04*sum[i] for i in range(3)]
|
||||
fix2 = [0.4 + 0.6*sum[i] for i in range(3)]
|
||||
fix1n = [math.pow(l, 1.0/gamma) for l in fix1]
|
||||
fix2n = [math.pow(l, 1.0/gamma) for l in fix2]
|
||||
|
||||
# composite against the fixed points in nonlinear color space as that's what the image expects (only matters in areas of medium alpha), then scale down in linear color space again
|
||||
f1c = [0.0, 0.0, 0.0]
|
||||
for j in range(factor):
|
||||
for i in range(factor):
|
||||
c, a = pixel2nonlinear(inpix[ox*factor+i, oy*factor+j])
|
||||
mulsc(c, a)
|
||||
f = fix1n[:]
|
||||
mulsc(f, 1.0 - a)
|
||||
add(c, f)
|
||||
add(f1c, [math.pow(p, gamma) for p in c])
|
||||
mulsc(f1c, 1.0/(factor*factor))
|
||||
|
||||
f2c = [0.0, 0.0, 0.0]
|
||||
for j in range(factor):
|
||||
for i in range(factor):
|
||||
c, a = pixel2nonlinear(inpix[ox*factor+i, oy*factor+j])
|
||||
mulsc(c, a)
|
||||
f = fix2n[:]
|
||||
mulsc(f, 1.0 - a)
|
||||
add(c, f)
|
||||
add(f2c, [math.pow(p, gamma) for p in c])
|
||||
mulsc(f2c, 1.0/(factor*factor))
|
||||
|
||||
# go back to gamma-encoded color space, assuming that alpha blending will be done in that
|
||||
f1cn = [math.pow(l, 1.0/gamma) for l in f1c]
|
||||
f2cn = [math.pow(l, 1.0/gamma) for l in f2c]
|
||||
|
||||
# compute color and alpha
|
||||
# This gives us three alphas, in general different, but we can only output one - the best thing to do with them I can think of is to average them together and leave the color components alone, this ensures that the alpha deviation does not affect the case where background color equals foreground color.
|
||||
a = [1.0 - (f2cn[i] - f1cn[i])/(fix2n[i] - fix1n[i]) for i in range(3)]
|
||||
c = [(f1cn[i] - (1.0-a[i])*fix1n[i])/a[i] if math.floor(a[i]*255 + 0.5) > 0 else 0.0 for i in range(3)]
|
||||
outpix[ox, oy] = tuple(nonlinear2pixel(c + [(a[0] + a[1] + a[2])/3]))
|
||||
|
||||
# collect pixels that ended up with alpha 0
|
||||
transparent = [0]*outh*outw
|
||||
for oy in range(outh):
|
||||
for ox in range(outw):
|
||||
if outpix[ox, oy][3] == 0:
|
||||
transparent[oy*outw + ox] = 1
|
||||
|
||||
# expand neighboring color values from nonzero-alpha pixels into the zero-alpha region twice, so that bilinear interpolation cannot bleed the arbitrary background color (black here) from zero-alpha into nonzero-alpha territory
|
||||
for i in range(2):
|
||||
transp = transparent[:]
|
||||
for oy in range(outh):
|
||||
for ox in range(outw):
|
||||
if transp[oy*outw + ox]:
|
||||
count = 0
|
||||
sum = [0, 0, 0]
|
||||
if ox > 0:
|
||||
if not transp[oy*outw + ox-1]:
|
||||
add(sum, outpix[ox-1, oy][0:3])
|
||||
count += 1
|
||||
if ox < outw-1:
|
||||
if not transp[oy*outw + ox+1]:
|
||||
add(sum, outpix[ox+1, oy][0:3])
|
||||
count += 1
|
||||
if oy > 0:
|
||||
if not transp[(oy-1)*outw + ox]:
|
||||
add(sum, outpix[ox, oy-1][0:3])
|
||||
count += 1
|
||||
if oy < outh-1:
|
||||
if not transp[(oy+1)*outw + ox]:
|
||||
add(sum, outpix[ox, oy+1][0:3])
|
||||
count += 1
|
||||
if count > 0:
|
||||
mulsc(sum, 1.0/count)
|
||||
outpix[ox, oy] = tuple(clamp(int(math.floor(c + 0.5))) for c in sum) + (0,)
|
||||
transparent[oy*outw + ox] = 0
|
||||
|
||||
outimg.save(outfilename, "PNG")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
scale(sys.argv[1], sys.argv[3], int(sys.argv[2]))
|
@ -767,7 +767,7 @@ hsBool plClient::MsgReceive(plMessage* msg)
|
||||
{
|
||||
ISetGraphicsDefaults();
|
||||
ResetDisplayDevice(plPipeline::fDefaultPipeParams.Width, plPipeline::fDefaultPipeParams.Height, plPipeline::fDefaultPipeParams.ColorDepth, plPipeline::fDefaultPipeParams.Windowed,
|
||||
plPipeline::fDefaultPipeParams.AntiAliasingAmount, plPipeline::fDefaultPipeParams.AnisotropicLevel, plPipeline::fDefaultPipeParams.VSync, true);
|
||||
plPipeline::fDefaultPipeParams.AntiAliasingAmount, plPipeline::fDefaultPipeParams.AnisotropicLevel, plPipeline::fDefaultPipeParams.VSync);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1546,6 +1546,7 @@ hsBool plClient::StartInit()
|
||||
|
||||
pfGameGUIMgr::GetInstance()->SetAspectRatio( aspectratio );
|
||||
plMouseDevice::Instance()->SetDisplayResolution((float)fPipeline->Width(), (float)fPipeline->Height());
|
||||
plInputManager::SetRecenterMouse(false);
|
||||
|
||||
// create the listener for the audio system:
|
||||
plListener* pLMod = TRACKED_NEW plListener;
|
||||
@ -2164,55 +2165,61 @@ hsG3DDeviceModeRecord plClient::ILoadDevMode(const char* devModeFile)
|
||||
return dmr;
|
||||
}
|
||||
|
||||
void plClient::ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync, hsBool windowOnly)
|
||||
void plClient::ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync)
|
||||
{
|
||||
if(!fPipeline) return;
|
||||
int BorderWidth = 0, BorderHeight = 0, CaptionHeight = 0;
|
||||
|
||||
WindowActivate(false);
|
||||
int ActualWidth;
|
||||
int ActualHeight;
|
||||
|
||||
if( Windowed )
|
||||
{
|
||||
BorderWidth = GetSystemMetrics( SM_CXSIZEFRAME );
|
||||
BorderHeight = GetSystemMetrics( SM_CYSIZEFRAME );
|
||||
CaptionHeight = GetSystemMetrics( SM_CYCAPTION );
|
||||
ActualWidth = Width + BorderWidth * 2;
|
||||
ActualHeight = Height + BorderHeight * 2 + CaptionHeight;
|
||||
SetWindowLong( fWindowHndl, GWL_STYLE,
|
||||
WS_POPUP | WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE);
|
||||
SetWindowLong(fWindowHndl, GWL_EXSTYLE, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetWindowLong(fWindowHndl, GWL_STYLE,
|
||||
WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_MAXIMIZE | WS_VISIBLE);
|
||||
|
||||
SetWindowLong(fWindowHndl, GWL_EXSTYLE, WS_EX_APPWINDOW);
|
||||
}
|
||||
|
||||
if(!windowOnly)
|
||||
fPipeline->ResetDisplayDevice(Width, Height, ColorDepth, Windowed, NumAASamples, MaxAnisotropicSamples, VSync);
|
||||
|
||||
float aspectratio = (float)Width / (float)Height;
|
||||
plMouseDevice::Instance()->SetDisplayResolution((float)Width, (float)Height);
|
||||
pfGameGUIMgr::GetInstance()->SetAspectRatio( aspectratio );
|
||||
|
||||
UINT flags = SWP_NOCOPYBITS | SWP_NOMOVE | SWP_SHOWWINDOW;
|
||||
if(Windowed)
|
||||
{
|
||||
SetWindowPos( fWindowHndl, HWND_NOTOPMOST, 0, 0, ActualWidth, ActualHeight, flags );
|
||||
}
|
||||
else
|
||||
{
|
||||
SetWindowPos( fWindowHndl, HWND_TOP, 0, 0, Width, Height, flags );
|
||||
::ClipCursor(nil);
|
||||
}
|
||||
fPipeline->ResetDisplayDevice(Width, Height, ColorDepth, Windowed, NumAASamples, MaxAnisotropicSamples, VSync);
|
||||
|
||||
ResizeDisplayDevice(Width, Height, Windowed);
|
||||
|
||||
WindowActivate(true);
|
||||
}
|
||||
|
||||
void plClient::ResizeDisplayDevice(int Width, int Height, hsBool Windowed)
|
||||
{
|
||||
|
||||
if (plMouseDevice::Instance())
|
||||
plMouseDevice::Instance()->SetDisplayResolution((float)Width, (float)Height);
|
||||
|
||||
float aspectratio = (float)Width / (float)Height;
|
||||
if (pfGameGUIMgr::GetInstance())
|
||||
pfGameGUIMgr::GetInstance()->SetAspectRatio( aspectratio );
|
||||
|
||||
|
||||
UInt32 winStyle, winExStyle;
|
||||
if( Windowed )
|
||||
{
|
||||
// WS_VISIBLE appears necessary to avoid leaving behind framebuffer junk when going from windowed to a smaller window
|
||||
winStyle = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_VISIBLE;
|
||||
winExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
|
||||
} else {
|
||||
winStyle = WS_POPUP;
|
||||
winExStyle = WS_EX_APPWINDOW;
|
||||
}
|
||||
SetWindowLong(fWindowHndl, GWL_STYLE, winStyle);
|
||||
SetWindowLong(fWindowHndl, GWL_EXSTYLE, winExStyle);
|
||||
|
||||
|
||||
UInt32 flags = SWP_NOCOPYBITS | SWP_SHOWWINDOW | SWP_FRAMECHANGED;
|
||||
UInt32 OutsideWidth, OutsideHeight;
|
||||
HWND insertAfter;
|
||||
if( Windowed )
|
||||
{
|
||||
RECT winRect = { 0, 0, Width, Height };
|
||||
AdjustWindowRectEx(&winRect, winStyle, false, winExStyle);
|
||||
OutsideWidth = winRect.right - winRect.left;
|
||||
OutsideHeight = winRect.bottom - winRect.top;
|
||||
insertAfter = HWND_NOTOPMOST;
|
||||
} else {
|
||||
OutsideWidth = Width;
|
||||
OutsideHeight = Height;
|
||||
insertAfter = HWND_TOP;
|
||||
}
|
||||
SetWindowPos( fWindowHndl, insertAfter, 0, 0, OutsideWidth, OutsideHeight, flags );
|
||||
}
|
||||
|
||||
void WriteBool(hsStream *stream, char *name, hsBool on )
|
||||
{
|
||||
|
@ -292,7 +292,8 @@ public:
|
||||
virtual hsBool WindowActive() const { return fWindowActive; }
|
||||
|
||||
void SetMessagePumpProc( plMessagePumpProc proc ) { fMessagePumpProc = proc; }
|
||||
void ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync = false, hsBool windowOnly = false);
|
||||
void ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync = false);
|
||||
void ResizeDisplayDevice(int Width, int Height, hsBool Windowed);
|
||||
void IDetectAudioVideoSettings();
|
||||
void IWriteDefaultGraphicsSettings(const wchar* destFile);
|
||||
|
||||
|
@ -63,29 +63,6 @@ END
|
||||
// Bitmap
|
||||
//
|
||||
|
||||
IDB_CURSOR_UP BITMAP "cursor_up.bmp"
|
||||
IDB_CURSOR_DOWN BITMAP "cursor_down.bmp"
|
||||
IDB_CURSOR_LEFT BITMAP "cursor_right.bmp"
|
||||
IDB_CURSOR_RIGHT BITMAP "cursor_left.bmp"
|
||||
IDB_CURSOR_OPEN BITMAP "cursor_open.bmp"
|
||||
IDB_CURSOR_GRAB BITMAP "cursor_grab.bmp"
|
||||
IDB_CURSOR_CLICKED BITMAP "cursor_clicked.bmp"
|
||||
IDB_CURSOR_POISED BITMAP "cursor_poised.bmp"
|
||||
IDB_CURSOR_ARROW BITMAP "cursor_u.bmp"
|
||||
IDB_CURSOR_4WAYOPEN BITMAP "bitmap1.bmp"
|
||||
IDB_CURSOR_UPDOWNCLOSED BITMAP "bmp00001.bmp"
|
||||
IDB_CURSOR_UPDOWNOPEN BITMAP "bitmap2.bmp"
|
||||
IDB_CURSOR_4WAYCLOSED BITMAP "bitmap3.bmp"
|
||||
IDB_CURSOR_LEFTRIGHTCLOSED BITMAP "bmp00003.bmp"
|
||||
IDB_CURSOR_LEFTRIGHTOPEN BITMAP "bmp00002.bmp"
|
||||
IDB_MICROPHONE BITMAP "Microphone.bmp"
|
||||
IDB_TALKING BITMAP "Speaker.bmp"
|
||||
IDB_CURSOR_BOOK_HIGHLIGHT BITMAP "book_hig.bmp"
|
||||
IDB_CURSOR_BOOK BITMAP "book.bmp"
|
||||
IDB_CURSOR_BOOK_CLICKED BITMAP "book_cli.bmp"
|
||||
IDB_CURSOR_DISABLED BITMAP "cursor_disabled.bmp"
|
||||
IDB_CURSOR_HAND BITMAP "bmp00005.bmp"
|
||||
IDB_CURSOR_UPWARD BITMAP "cursor_upward.bmp"
|
||||
IDB_BANNER BITMAP "banner.bmp"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
@ -327,32 +304,6 @@ END
|
||||
//
|
||||
|
||||
IDR_CNSL1 CNSL "cnsl1.bin"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// JPEG
|
||||
//
|
||||
|
||||
IDR_LOADING_01 JPEG "xLoading_Linking.01.jpg"
|
||||
IDR_LOADING_02 JPEG "xLoading_Linking.02.jpg"
|
||||
IDR_LOADING_03 JPEG "xLoading_Linking.03.jpg"
|
||||
IDR_LOADING_04 JPEG "xLoading_Linking.04.jpg"
|
||||
IDR_LOADING_05 JPEG "xLoading_Linking.05.jpg"
|
||||
IDR_LOADING_06 JPEG "xLoading_Linking.06.jpg"
|
||||
IDR_LOADING_07 JPEG "xLoading_Linking.07.jpg"
|
||||
IDR_LOADING_08 JPEG "xLoading_Linking.08.jpg"
|
||||
IDR_LOADING_09 JPEG "xLoading_Linking.09.jpg"
|
||||
IDR_LOADING_10 JPEG "xLoading_Linking.10.jpg"
|
||||
IDR_LOADING_11 JPEG "xLoading_Linking.11.jpg"
|
||||
IDR_LOADING_12 JPEG "xLoading_Linking.12.jpg"
|
||||
IDR_LOADING_13 JPEG "xLoading_Linking.13.jpg"
|
||||
IDR_LOADING_14 JPEG "xLoading_Linking.14.jpg"
|
||||
IDR_LOADING_15 JPEG "xLoading_Linking.15.jpg"
|
||||
IDR_LOADING_16 JPEG "xLoading_Linking.16.jpg"
|
||||
IDR_LOADING_17 JPEG "xLoading_Linking.17.jpg"
|
||||
IDR_LOADING_18 JPEG "xLoading_Linking.18.jpg"
|
||||
IDR_LOADING_LINKTEXT JPEG "xLoading_Linking_Text.jpg"
|
||||
IDR_LOADING_UPDATETEXT JPEG "xLoading_Updating_Text.jpg"
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -2,33 +2,10 @@
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by plClient.rc
|
||||
//
|
||||
#define IDB_CURSOR_UP 112
|
||||
#define IDB_CURSOR_DOWN 113
|
||||
#define IDB_CURSOR_RIGHT 114
|
||||
#define IDB_CURSOR_LEFT 115
|
||||
#define IDB_CURSOR_OPEN 116
|
||||
#define IDB_CURSOR_GRAB 117
|
||||
#define IDB_CURSOR_CLICKED 118
|
||||
#define IDB_CURSOR_POISED 119
|
||||
#define IDB_MICROPHONE 121
|
||||
#define IDB_TALKING 122
|
||||
#define IDB_CURSOR_ARROW 123
|
||||
#define IDB_CURSOR_4WAYOPEN 124
|
||||
#define IDB_CURSOR_UPDOWNCLOSED 125
|
||||
#define IDB_CURSOR_UPDOWNOPEN 126
|
||||
#define IDB_CURSOR_4WAYCLOSED 127
|
||||
#define IDB_CURSOR_LEFTRIGHTCLOSED 128
|
||||
#define IDB_CURSOR_LEFTRIGHTOPEN 129
|
||||
#define IDI_ICON_DIRT 135
|
||||
#define IDD_LOADING 136
|
||||
#define IDD_EXCEPTION 138
|
||||
#define IDR_CNSL1 139
|
||||
#define IDB_CURSOR_BOOK_HIGHLIGHT 141
|
||||
#define IDB_CURSOR_BOOK 142
|
||||
#define IDB_CURSOR_BOOK_CLICKED 143
|
||||
#define IDB_CURSOR_DISABLED 144
|
||||
#define IDB_CURSOR_HAND 145
|
||||
#define IDB_CURSOR_UPWARD 147
|
||||
#define IDD_URUTAP_LOGIN 148
|
||||
#define IDD_URU_LOGIN 149
|
||||
#define IDB_BANNER 151
|
||||
@ -37,26 +14,6 @@
|
||||
#define IDD_URULOGIN_EULA 154
|
||||
#define IDD_AUTHFAILED 155
|
||||
#define IDD_AUTHENTICATING 156
|
||||
#define IDR_LOADING_01 177
|
||||
#define IDR_LOADING_02 178
|
||||
#define IDR_LOADING_03 179
|
||||
#define IDR_LOADING_04 180
|
||||
#define IDR_LOADING_05 181
|
||||
#define IDR_LOADING_06 182
|
||||
#define IDR_LOADING_07 183
|
||||
#define IDR_LOADING_08 184
|
||||
#define IDR_LOADING_09 185
|
||||
#define IDR_LOADING_10 186
|
||||
#define IDR_LOADING_11 187
|
||||
#define IDR_LOADING_12 188
|
||||
#define IDR_LOADING_13 189
|
||||
#define IDR_LOADING_14 190
|
||||
#define IDR_LOADING_15 191
|
||||
#define IDR_LOADING_16 192
|
||||
#define IDR_LOADING_17 193
|
||||
#define IDR_LOADING_18 194
|
||||
#define IDR_LOADING_LINKTEXT 195
|
||||
#define IDR_LOADING_UPDATETEXT 196
|
||||
#define IDC_CRASHINFO 1001
|
||||
#define IDC_COPY 1002
|
||||
#define IDC_MSG 1003
|
||||
|
@ -54,9 +54,11 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "hsStream.h"
|
||||
#include "hsUtils.h"
|
||||
#include "plClient.h"
|
||||
#include "../plClientResMgr/plClientResMgr.h"
|
||||
#include "../plNetClient/plNetClientMgr.h"
|
||||
#include "../plNetClient/plNetLinkingMgr.h"
|
||||
#include "../plInputCore/plInputManager.h"
|
||||
#include "../plInputCore/plInputDevice.h"
|
||||
#include "../plUnifiedTime/plUnifiedTime.h"
|
||||
#include "plPipeline.h"
|
||||
#include "../plResMgr/plResManager.h"
|
||||
@ -452,7 +454,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
case WM_LBUTTONUP :
|
||||
case WM_RBUTTONUP :
|
||||
case WM_MBUTTONUP : // The middle mouse button was released.
|
||||
case WM_MOUSEMOVE :
|
||||
case 0x020A: // fuc&ing windows b.s...
|
||||
{
|
||||
if (gClient && gClient->WindowActive() && gClient->GetInputManager())
|
||||
@ -462,6 +463,13 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_MOUSEMOVE:
|
||||
{
|
||||
if (gClient && gClient->GetInputManager())
|
||||
gClient->GetInputManager()->HandleWin32ControlEvent(message, wParam, lParam, hWnd);
|
||||
}
|
||||
break;
|
||||
|
||||
#if 0
|
||||
case WM_KILLFOCUS:
|
||||
SetForegroundWindow(hWnd);
|
||||
@ -497,6 +505,31 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_SETCURSOR:
|
||||
{
|
||||
static bool winCursor = true;
|
||||
if (LOWORD(lParam) == HTCLIENT)
|
||||
{
|
||||
if (winCursor)
|
||||
{
|
||||
winCursor = false;
|
||||
ShowCursor(FALSE);
|
||||
plMouseDevice::ShowCursor();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!winCursor)
|
||||
{
|
||||
winCursor = true;
|
||||
ShowCursor(TRUE);
|
||||
plMouseDevice::HideCursor();
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_ACTIVATE:
|
||||
{
|
||||
bool active = (LOWORD(wParam) == WA_ACTIVE || LOWORD(wParam) == WA_CLICKACTIVE);
|
||||
@ -508,28 +541,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
(LOWORD(wParam) == WA_CLICKACTIVE) ? "true" : "false");
|
||||
|
||||
if (gClient && !minimized && !gClient->GetDone())
|
||||
{
|
||||
if (LOWORD(wParam) == WA_CLICKACTIVE)
|
||||
{
|
||||
// See if they've clicked on the frame, in which case they just want to
|
||||
// move, not activate, us.
|
||||
POINT pt;
|
||||
GetCursorPos(&pt);
|
||||
ScreenToClient(hWnd, &pt);
|
||||
|
||||
RECT rect;
|
||||
GetClientRect(hWnd, &rect);
|
||||
|
||||
if( (pt.x < rect.left)
|
||||
||(pt.x >= rect.right)
|
||||
||(pt.y < rect.top)
|
||||
||(pt.y >= rect.bottom) )
|
||||
{
|
||||
active = false;
|
||||
}
|
||||
}
|
||||
gClient->WindowActivate(active);
|
||||
}
|
||||
else
|
||||
{
|
||||
gPendingActivate = true;
|
||||
@ -774,6 +786,14 @@ bool InitClient( HWND hWnd )
|
||||
plResManager *resMgr = TRACKED_NEW plResManager;
|
||||
resMgr->SetDataPath("dat");
|
||||
hsgResMgr::Init(resMgr);
|
||||
|
||||
if(!plFileUtils::FileExists("resource.dat"))
|
||||
{
|
||||
hsMessageBox("Required file 'resource.dat' not found.", "Error", hsMessageBoxNormal);
|
||||
return false;
|
||||
}
|
||||
plClientResMgr::Instance().ILoadResources("resource.dat");
|
||||
|
||||
gClient = TRACKED_NEW plClient;
|
||||
if( gClient == nil )
|
||||
return false;
|
||||
@ -785,11 +805,6 @@ bool InitClient( HWND hWnd )
|
||||
|
||||
#ifdef DETACH_EXE
|
||||
hInstance = ((LPCREATESTRUCT) lParam)->hInstance;
|
||||
#endif
|
||||
// If in fullscreen mode, get rid of the window borders. Note: this won't take
|
||||
// effect until the next SetWindowPos call
|
||||
|
||||
#ifdef DETACH_EXE
|
||||
|
||||
// This Function loads the EXE into Virtual memory...supposedly
|
||||
HRESULT hr = DetachFromMedium(hInstance, DMDFM_ALWAYS | DMDFM_ALLPAGES);
|
||||
@ -799,34 +814,7 @@ bool InitClient( HWND hWnd )
|
||||
gClient->SetDone(true);
|
||||
else
|
||||
{
|
||||
if( gClient->GetPipeline()->IsFullScreen() )
|
||||
{
|
||||
SetWindowLong(hWnd, GWL_STYLE, WS_POPUP);
|
||||
SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOPMOST);
|
||||
SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
|
||||
gWinBorderDX = gWinBorderDY = gWinMenuDY = 0;
|
||||
}
|
||||
else {
|
||||
SetWindowLong(hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION);
|
||||
SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
|
||||
}
|
||||
|
||||
int goodWidth = gClient->GetPipeline()->Width() + gWinBorderDX * 2;
|
||||
int goodHeight = gClient->GetPipeline()->Height() + gWinBorderDY * 2 + gWinMenuDY;
|
||||
|
||||
SetWindowPos(
|
||||
hWnd,
|
||||
nil,
|
||||
0,
|
||||
0,
|
||||
goodWidth,
|
||||
goodHeight,
|
||||
SWP_NOCOPYBITS
|
||||
| SWP_NOMOVE
|
||||
| SWP_NOOWNERZORDER
|
||||
| SWP_NOZORDER
|
||||
| SWP_FRAMECHANGED
|
||||
);
|
||||
gClient->ResizeDisplayDevice(gClient->GetPipeline()->Width(), gClient->GetPipeline()->Height(), !gClient->GetPipeline()->IsFullScreen());
|
||||
}
|
||||
|
||||
if( gPendingActivate )
|
||||
|
@ -155,8 +155,7 @@ void ErrorMinimizeAppWindow () {
|
||||
// If the application's topmost window is a fullscreen
|
||||
// popup window, minimize it before displaying an error
|
||||
HWND appWindow = GetActiveWindow();
|
||||
if ( ((GetWindowLong(appWindow, GWL_STYLE) & WS_POPUP) != 0) &&
|
||||
((GetWindowLong(appWindow, GWL_EXSTYLE) & WS_EX_TOPMOST) != 0) )
|
||||
if ( ((GetWindowLong(appWindow, GWL_STYLE) & WS_POPUP) != 0) )
|
||||
SetWindowPos(
|
||||
appWindow,
|
||||
HWND_NOTOPMOST,
|
||||
|
@ -57,7 +57,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
|
||||
#include "../plAvatar/plAvatarMgr.h"
|
||||
#include "../plAvatar/plArmatureMod.h"
|
||||
#include "../plAvatar/plPhysicalControllerCore.h"
|
||||
#include "../plAvatar/plAvCallbackAction.h"
|
||||
|
||||
hsBool plListener::fPrintDbgInfo = false;
|
||||
|
||||
|
@ -63,7 +63,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../pnSceneObject/plSimulationInterface.h"
|
||||
#include "../plAvatar/plAvatarMgr.h"
|
||||
#include "../plAvatar/plArmatureMod.h"
|
||||
#include "../plAvatar/plPhysicalControllerCore.h"
|
||||
#include "../plAvatar/plAvCallbackAction.h"
|
||||
|
||||
// new stuff
|
||||
|
||||
|
@ -752,7 +752,7 @@ public:
|
||||
|
||||
if(strncmp("SampleCmd",c->GetName(), 9) != 0)
|
||||
{
|
||||
fprintf(fFile, "<P><I>%s </I><BR>%s </P>\n",c->GetSignature(),
|
||||
fprintf(fFile, "<p><em>%s </em><br />%s </p>\n",c->GetSignature(),
|
||||
c->GetHelp());
|
||||
}
|
||||
}
|
||||
@ -760,10 +760,11 @@ public:
|
||||
{
|
||||
// if(g->GetFirstCommand() != nil)
|
||||
{
|
||||
fprintf(fFile, "<P><B><H%s>Command %sGroup %s </B></H2></P>\n",
|
||||
fprintf(fFile, "<p><strong><h%s>Command %sGroup %s </strong></h%s></p>\n",
|
||||
(depth > 0) ? "3" : "2",
|
||||
(depth > 0) ? "Sub" :"" ,
|
||||
g->GetName());
|
||||
g->GetName(),
|
||||
(depth > 0) ? "3" : "2");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -781,7 +782,7 @@ public:
|
||||
|
||||
if(strncmp("SampleCmd",c->GetName(), 9) != 0)
|
||||
{
|
||||
fprintf(fFile, "<I>%s.%s </I> - %s <BR>\n",fGrpName,c->GetSignature(),
|
||||
fprintf(fFile, "<em>%s.%s </em> - %s <br />\n",fGrpName,c->GetSignature(),
|
||||
c->GetHelp());
|
||||
}
|
||||
}
|
||||
@ -789,11 +790,14 @@ public:
|
||||
{
|
||||
// if(g->GetFirstCommand() != nil)
|
||||
{
|
||||
fprintf(fFile, "<BR>\n");
|
||||
fprintf(fFile, "<br />\n");
|
||||
if(depth <1)
|
||||
strcpy(fGrpName, g->GetName());
|
||||
else
|
||||
{
|
||||
pfConsoleCmdGroup *parentGrp;
|
||||
parentGrp = g->GetParent();
|
||||
strcpy(fGrpName, parentGrp->GetName());
|
||||
strcat(fGrpName,".");
|
||||
strcat(fGrpName,g->GetName());
|
||||
}
|
||||
@ -822,7 +826,7 @@ PF_CONSOLE_CMD( Console, CreateDocumentation, "string fileName",
|
||||
}
|
||||
|
||||
|
||||
fprintf(f, "<CENTER> <H2> Console Commands for Plasma 2.0 Client </H2> <I>Built %s on %s.</I></CENTER><BR>",
|
||||
fprintf(f, "<h2 style=\"text-align: center;\"> Console Commands for Plasma 2.0 Client </h2> <em style=\"display: block; text-align: center;\">Built %s on %s.</em><br />",
|
||||
pnBuildDates::fBuildTime, pnBuildDates::fBuildDate );
|
||||
|
||||
DocGenIterator iter(f);
|
||||
@ -852,7 +856,7 @@ PF_CONSOLE_CMD( Console, CreateBriefDocumentation, "string fileName",
|
||||
return;
|
||||
}
|
||||
|
||||
fprintf(f, "<CENTER> <H3> Console Commands for Plasma 2.0 Client </H3> <I>Built %s on %s.</I></CENTER><BR>",
|
||||
fprintf(f, "<h2 style=\"text-align: center;\"> Console Commands for Plasma 2.0 Client </h2> <em style=\"display: block; text-align: center;\">Built %s on %s.</em><br />",
|
||||
pnBuildDates::fBuildTime, pnBuildDates::fBuildDate );
|
||||
BriefDocGenIterator iter(f);
|
||||
group = pfConsoleCmdGroup::GetBaseGroup();
|
||||
|
@ -176,6 +176,13 @@ void pyImage::SaveAsJPEG(const wchar* fileName, UInt8 quality)
|
||||
plJPEG::Instance().WriteToFile( fileName, this->GetImage() );
|
||||
}
|
||||
|
||||
#include "../plGImage/plPNG.h"
|
||||
void pyImage::SaveAsPNG(const wchar* fileName)
|
||||
{
|
||||
|
||||
plPNG::Instance().WriteToFile( fileName, this->GetImage() );
|
||||
}
|
||||
|
||||
#include "hsResMgr.h"
|
||||
#include "../pnKeyedObject/plUoid.h"
|
||||
PyObject* pyImage::LoadJPEGFromDisk(const wchar* filename, UInt16 width, UInt16 height)
|
||||
|
@ -166,6 +166,7 @@ public:
|
||||
UInt32 GetWidth(); // returns the width of the image
|
||||
UInt32 GetHeight(); // returns the height of the image
|
||||
void SaveAsJPEG(const wchar* fileName, UInt8 quality = 75);
|
||||
void SaveAsPNG(const wchar* fileName);
|
||||
static PyObject* LoadJPEGFromDisk(const wchar* filename, UInt16 width, UInt16 height); // returns pyImage
|
||||
#endif
|
||||
};
|
||||
|
@ -174,6 +174,41 @@ PYTHON_METHOD_DEFINITION(ptImage, saveAsJPEG, args)
|
||||
PYTHON_RETURN_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
PYTHON_METHOD_DEFINITION(ptImage, saveAsPNG, args)
|
||||
{
|
||||
PyObject* filenameObj;
|
||||
if (!PyArg_ParseTuple(args, "O", &filenameObj))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "saveAsPNG expects a string");
|
||||
PYTHON_RETURN_ERROR;
|
||||
}
|
||||
|
||||
if (PyUnicode_Check(filenameObj))
|
||||
{
|
||||
int strLen = PyUnicode_GetSize(filenameObj);
|
||||
wchar_t* text = TRACKED_NEW wchar_t[strLen + 1];
|
||||
PyUnicode_AsWideChar((PyUnicodeObject*)filenameObj, text, strLen);
|
||||
text[strLen] = L'\0';
|
||||
self->fThis->SaveAsPNG(text);
|
||||
delete [] text;
|
||||
PYTHON_RETURN_NONE;
|
||||
}
|
||||
else if (PyString_Check(filenameObj))
|
||||
{
|
||||
// we'll allow this, just in case something goes weird
|
||||
char* text = PyString_AsString(filenameObj);
|
||||
wchar_t* wText = hsStringToWString(text);
|
||||
self->fThis->SaveAsPNG(wText);
|
||||
delete [] wText;
|
||||
PYTHON_RETURN_NONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "saveAsPNG expects a string");
|
||||
PYTHON_RETURN_ERROR;
|
||||
}
|
||||
}
|
||||
#endif // BUILDING_PYPLASMA
|
||||
|
||||
PYTHON_START_METHODS_TABLE(ptImage)
|
||||
@ -183,6 +218,7 @@ PYTHON_START_METHODS_TABLE(ptImage)
|
||||
PYTHON_METHOD_NOARGS(ptImage, getWidth, "Returns the width of the image"),
|
||||
PYTHON_METHOD_NOARGS(ptImage, getHeight, "Returns the height of the image"),
|
||||
PYTHON_METHOD(ptImage, saveAsJPEG, "Params: filename,quality=75\nSaves this image to disk as a JPEG file"),
|
||||
PYTHON_METHOD(ptImage, saveAsPNG, "Params: filename\nSaves this image to disk as a PNG file"),
|
||||
#endif
|
||||
PYTHON_END_METHODS_TABLE;
|
||||
|
||||
|
@ -545,7 +545,7 @@ hsBool pySceneObject::IsAvatar()
|
||||
return false;
|
||||
}
|
||||
|
||||
#include "../plAvatar/plPhysicalControllerCore.h"
|
||||
#include "../plAvatar/plAvCallbackAction.h"
|
||||
|
||||
PyObject* pySceneObject::GetAvatarVelocity()
|
||||
{
|
||||
|
@ -171,6 +171,8 @@ PyObject* pyVaultImageNode::Image_GetImage( void )
|
||||
else
|
||||
fMipmapKey->RefObject();
|
||||
}
|
||||
else
|
||||
PYTHON_RETURN_NONE;
|
||||
}
|
||||
|
||||
return pyImage::New(fMipmap);
|
||||
|
@ -0,0 +1,65 @@
|
||||
/*==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==*/
|
||||
|
||||
#ifndef plLayerBink_inc
|
||||
#define plLayerBink_inc
|
||||
|
||||
#include "plLayerMovie.h"
|
||||
|
||||
class plLayerBink : public plLayerMovie
|
||||
{
|
||||
protected:
|
||||
virtual Int32 ISecsToFrame(float secs) { return 0; }
|
||||
virtual hsBool IInit() { return true; }
|
||||
virtual hsBool IGetCurrentFrame() { return true; }
|
||||
virtual hsBool IRelease() { return true; }
|
||||
|
||||
public:
|
||||
plLayerBink() { }
|
||||
virtual ~plLayerBink() { }
|
||||
|
||||
CLASSNAME_REGISTER( plLayerBink );
|
||||
GETINTERFACE_ANY( plLayerBink, plLayerMovie );
|
||||
|
||||
};
|
||||
|
||||
#endif // plLayerBink_inc
|
@ -57,7 +57,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
|
||||
// This line must NEVER be modified manually; it is automatically updated
|
||||
// by the build server.
|
||||
#define BUILD_ID 906
|
||||
#define BUILD_ID 912
|
||||
COMPILER_ASSERT(BUILD_ID != 0);
|
||||
|
||||
|
||||
|
@ -66,8 +66,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../plPipeline/plDebugText.h"
|
||||
#include "../plStatusLog/plStatusLog.h"
|
||||
|
||||
#define MICROPHONE 121
|
||||
#define TALKING 122
|
||||
#define MICROPHONE "ui_microphone.png"
|
||||
#define TALKING "ui_speaker.png"
|
||||
#define NUM_CHANNELS 1
|
||||
#define VOICE_STOP_MS 2000
|
||||
#define MAX_DATA_SIZE 1024 * 4 // 4 KB
|
||||
@ -84,13 +84,13 @@ hsBool plVoicePlayer::fEnabled = true;
|
||||
plVoiceRecorder::plVoiceRecorder()
|
||||
{
|
||||
plPlateManager::Instance().CreatePlate( &fDisabledIcon );
|
||||
fDisabledIcon->CreateFromResource( MAKEINTRESOURCE( MICROPHONE ) );
|
||||
fDisabledIcon->CreateFromResource( MICROPHONE );
|
||||
fDisabledIcon->SetPosition(-0.90, -0.90);
|
||||
fDisabledIcon->SetSize(0.0675, 0.09);
|
||||
fDisabledIcon->SetVisible(false);
|
||||
|
||||
plPlateManager::Instance().CreatePlate( &fTalkIcon );
|
||||
fTalkIcon->CreateFromResource( MAKEINTRESOURCE( TALKING ) );
|
||||
fTalkIcon->CreateFromResource( TALKING );
|
||||
fTalkIcon->SetPosition(-0.9,-0.9);
|
||||
fTalkIcon->SetSize(0.0675, 0.09);
|
||||
fTalkIcon->SetVisible(false);
|
||||
@ -208,7 +208,7 @@ void plVoiceRecorder::DrawDisabledIcon(hsBool b)
|
||||
plPlateManager::Instance().CreatePlate( &fDisabledIcon );
|
||||
if (fDisabledIcon)
|
||||
{
|
||||
fDisabledIcon->CreateFromResource( MAKEINTRESOURCE( MICROPHONE ) );
|
||||
fDisabledIcon->CreateFromResource( MICROPHONE );
|
||||
fDisabledIcon->SetPosition(-0.90, -0.90);
|
||||
fDisabledIcon->SetSize(0.0675, 0.09);
|
||||
fDisabledIcon->SetVisible(false);
|
||||
@ -225,7 +225,7 @@ void plVoiceRecorder::DrawTalkIcon(hsBool b)
|
||||
{
|
||||
plPlateManager::Instance().CreatePlate( &fTalkIcon );
|
||||
if (fTalkIcon)
|
||||
{ fTalkIcon->CreateFromResource( MAKEINTRESOURCE( TALKING ) );
|
||||
{ fTalkIcon->CreateFromResource( TALKING );
|
||||
fTalkIcon->SetPosition(-0.9,-0.9);
|
||||
fTalkIcon->SetSize(0.0675, 0.09);
|
||||
fTalkIcon->SetVisible(false);
|
||||
|
@ -39,6 +39,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
Mead, WA 99021
|
||||
|
||||
*==LICENSE==*/
|
||||
#include "plAvCallbackAction.h" // must be first: references havok new
|
||||
|
||||
// singular
|
||||
#include "plAnimStage.h"
|
||||
|
@ -0,0 +1,171 @@
|
||||
/*==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==*/
|
||||
#if 0
|
||||
// havok first
|
||||
#include <hkdynamics/entity/rigidbody.h>
|
||||
#include <hkdynamics/world/subspace.h>
|
||||
|
||||
#include "plAntiGravAction.h"
|
||||
|
||||
#include "../pnSceneObject/plSceneObject.h"
|
||||
#include "../plHavok1/plHKPhysical.h"
|
||||
#include "../plAvatar/plSwimRegion.h"
|
||||
#include "hsTimer.h"
|
||||
|
||||
// This is meant to be a specific physicsAction for the swim behavior
|
||||
plAntiGravAction::plAntiGravAction(plHKPhysical *physical, plAGApplicator *rootApp) :
|
||||
plAnimatedCallbackAction(physical, rootApp),
|
||||
fOnGround(false),
|
||||
fBuoyancy(1.f),
|
||||
fSurfaceHeight(0.f),
|
||||
fCurrentRegion(nil),
|
||||
fHadContacts(false)
|
||||
{
|
||||
}
|
||||
|
||||
plSimDefs::ActionType plAntiGravAction::GetType()
|
||||
{
|
||||
return plSimDefs::kAntiGravAction;
|
||||
}
|
||||
|
||||
void plAntiGravAction::apply(Havok::Subspace &space, Havok::hkTime time)
|
||||
{
|
||||
double elapsed = time.asDouble() - getRefresh().asDouble();
|
||||
setRefresh(time);
|
||||
|
||||
IAdjustBuoyancy();
|
||||
Havok::RigidBody *body = fPhysical->GetBody();
|
||||
float mass = body->getMass();
|
||||
Havok::Vector3 gravity = space.getGravity();
|
||||
Havok::Vector3 force = -gravity * (mass * fBuoyancy);
|
||||
body->applyForce(force);
|
||||
|
||||
hsVector3 vel;
|
||||
fPhysical->GetLinearVelocitySim(vel);
|
||||
fAnimPosVel.fZ = vel.fZ;
|
||||
|
||||
hsVector3 linCurrent(0.f, 0.f, 0.f);
|
||||
hsScalar angCurrent = 0.f;
|
||||
if (fCurrentRegion != nil)
|
||||
fCurrentRegion->GetCurrent(fPhysical, linCurrent, angCurrent, (hsScalar)elapsed);
|
||||
|
||||
int numContacts = fPhysical->GetNumContacts();
|
||||
fHadContacts = (numContacts > 0);
|
||||
|
||||
const Havok::Vector3 straightUp(0.0f, 0.0f, 1.0f);
|
||||
fOnGround = false;
|
||||
int i;
|
||||
for (i = 0; i < numContacts; i++)
|
||||
{
|
||||
const Havok::ContactPoint *contact = fPhysical->GetContactPoint(i);
|
||||
hsScalar dotUp = straightUp.dot(contact->m_normal);
|
||||
if (dotUp > .5)
|
||||
{
|
||||
fOnGround = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fPhysical->SetLinearVelocitySim(fAnimPosVel + linCurrent);
|
||||
fPhysical->SetAngularVelocitySim(hsVector3(0.f, 0.f, fAnimAngVel + fTurnStr + angCurrent));
|
||||
}
|
||||
|
||||
void plAntiGravAction::SetSurface(plSwimRegionInterface *region, hsScalar surfaceHeight)
|
||||
{
|
||||
fCurrentRegion = region;
|
||||
if (region != nil)
|
||||
fSurfaceHeight = surfaceHeight;
|
||||
}
|
||||
|
||||
void plAntiGravAction::IAdjustBuoyancy()
|
||||
{
|
||||
// "surface depth" refers to the depth our handle object should be below
|
||||
// the surface for the avatar to be "at the surface"
|
||||
static const float surfaceDepth = 4.0f;
|
||||
// 1.0 = neutral buoyancy
|
||||
// 0 = no buoyancy (normal gravity)
|
||||
// 2.0 = opposite of gravity, floating upwards
|
||||
static const float buoyancyAtSurface = 1.0f;
|
||||
|
||||
if (fCurrentRegion == nil)
|
||||
{
|
||||
fBuoyancy = 0.f;
|
||||
return;
|
||||
}
|
||||
|
||||
hsMatrix44 l2w, w2l;
|
||||
fPhysical->GetTransform(l2w, w2l);
|
||||
float depth = fSurfaceHeight - surfaceDepth - l2w.GetTranslate().fZ;
|
||||
if (depth < -1)
|
||||
fBuoyancy = 0.f; // Same as being above ground. Plain old gravity.
|
||||
else if (depth < 0)
|
||||
fBuoyancy = 1 + depth;
|
||||
else
|
||||
{
|
||||
hsVector3 vel;
|
||||
fPhysical->GetLinearVelocitySim(vel);
|
||||
if (vel.fZ > 0)
|
||||
{
|
||||
if (vel.fZ > fCurrentRegion->fMaxUpwardVel)
|
||||
{
|
||||
vel.fZ = fCurrentRegion->fMaxUpwardVel;
|
||||
fPhysical->SetLinearVelocitySim(vel);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (depth > 1)
|
||||
fBuoyancy = fCurrentRegion->fUpBuoyancy;
|
||||
else
|
||||
fBuoyancy = (fCurrentRegion->fUpBuoyancy - 1) * depth + 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (depth > 1)
|
||||
fBuoyancy = fCurrentRegion->fDownBuoyancy;
|
||||
else
|
||||
fBuoyancy = (fCurrentRegion->fDownBuoyancy - 1) * depth + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
@ -0,0 +1,79 @@
|
||||
/*==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==*/
|
||||
#if 0//ndef PL_ANTI_GRAV_ACTION_H
|
||||
#define PL_ANTI_GRAV_ACTION_H
|
||||
|
||||
#include "plAvCallbackAction.h"
|
||||
|
||||
class plSwimRegionInterface;
|
||||
|
||||
class plAntiGravAction : public plAnimatedCallbackAction
|
||||
{
|
||||
public:
|
||||
plAntiGravAction(plHKPhysical *physical, plAGApplicator *rootApp);
|
||||
|
||||
/** Return the type of the action as defined in the enum plSimDefs::ActionType.
|
||||
Used to retrieve actions by entity/type indexing, and to
|
||||
reuse actions that can be shared between entities. */
|
||||
virtual plSimDefs::ActionType GetType();
|
||||
|
||||
/** Called by Havok at substep frequency. */
|
||||
void apply(Havok::Subspace &s, Havok::hkTime time);
|
||||
|
||||
void SetSurface(plSwimRegionInterface *region, hsScalar surfaceHeight);
|
||||
hsScalar GetBuoyancy() { return fBuoyancy; }
|
||||
hsBool IsOnGround() { return fOnGround; }
|
||||
hsBool HadContacts() { return fHadContacts; }
|
||||
|
||||
protected:
|
||||
void IAdjustBuoyancy();
|
||||
|
||||
hsBool fOnGround;
|
||||
hsBool fHadContacts;
|
||||
hsScalar fBuoyancy;
|
||||
hsScalar fSurfaceHeight;
|
||||
plSwimRegionInterface *fCurrentRegion;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -39,6 +39,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
Mead, WA 99021
|
||||
|
||||
*==LICENSE==*/
|
||||
#include "plAvCallbackAction.h"
|
||||
|
||||
#include "../plStatusLog/plStatusLog.h"
|
||||
#include "plArmatureEffects.h"
|
||||
|
@ -54,7 +54,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "plAvBrainHuman.h"
|
||||
#include "plMatrixChannel.h"
|
||||
#include "plAvatarTasks.h"
|
||||
#include "plPhysicalControllerCore.h"
|
||||
#include "plAvCallbackAction.h"
|
||||
#include "plAvBrainCritter.h"
|
||||
|
||||
// global
|
||||
@ -534,7 +534,8 @@ void plArmatureModBase::EnablePhysics(hsBool status, UInt16 reason /* = kDisable
|
||||
// i.e. normal enabled physical
|
||||
void plArmatureModBase::EnablePhysicsKinematic(hsBool status)
|
||||
{
|
||||
EnablePhysics(!status, kDisableReasonKinematic);
|
||||
if (fController)
|
||||
fController->Kinematic(status);
|
||||
}
|
||||
|
||||
void plArmatureModBase::EnableDrawing(hsBool status, UInt16 reason /* = kDisableReasonUnknown */)
|
||||
@ -2006,7 +2007,7 @@ hsBool plArmatureMod::ValidatePhysics()
|
||||
return false;
|
||||
|
||||
if (!fController)
|
||||
fController = plPhysicalControllerCore::Create(GetTarget(0)->GetKey(), fPhysHeight, fPhysWidth, (fBodyType == kBoneBaseMale || fBodyType == kBoneBaseFemale));
|
||||
fController = plPhysicalControllerCore::Create(GetTarget(0)->GetKey(), fPhysHeight, fPhysWidth);
|
||||
|
||||
if (fController)
|
||||
{
|
||||
@ -2683,7 +2684,19 @@ void plArmatureMod::DumpToDebugDisplay(int &x, int &y, int lineHeight, char *str
|
||||
debugTxt.DrawString(x, y, strBuf);
|
||||
y += lineHeight;
|
||||
|
||||
hsPoint3 kPos;
|
||||
char *kinematic = "n.a.";
|
||||
const char* frozen = "n.a.";
|
||||
if (fController)
|
||||
{
|
||||
fController->GetKinematicPosition(kPos);
|
||||
kinematic = fController->IsKinematic() ? "on" : "off";
|
||||
}
|
||||
sprintf(strBuf, "kinematc(world): %.2f, %.2f, %.2f Kinematic: %3s",
|
||||
kPos.fX, kPos.fY, kPos.fZ,kinematic);
|
||||
debugTxt.DrawString(x, y, strBuf);
|
||||
y += lineHeight;
|
||||
|
||||
if (fController)
|
||||
frozen = fController->IsEnabled() ? "no" : "yes";
|
||||
|
||||
|
@ -145,7 +145,6 @@ public:
|
||||
kDisableReasonCCR = 0x0008,
|
||||
kDisableReasonVehicle = 0x0010,
|
||||
kDisableReasonGenericBrain = 0x0020,
|
||||
kDisableReasonKinematic = 0x0040
|
||||
};
|
||||
void EnablePhysics(hsBool status, UInt16 reason = kDisableReasonUnknown);
|
||||
void EnablePhysicsKinematic(hsBool status);
|
||||
|
@ -42,7 +42,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "hsConfig.h"
|
||||
#include "hsWindows.h"
|
||||
|
||||
#include "plPhysicalControllerCore.h"
|
||||
#include "plAvCallbackAction.h"
|
||||
#include "plAvBrainCritter.h"
|
||||
#include "plAvBrainHuman.h"
|
||||
#include "plArmatureMod.h"
|
||||
@ -127,7 +127,7 @@ protected:
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
plAvBrainCritter::plAvBrainCritter(): fWalkingStrategy(nil), fCurMode(kIdle), fNextMode(kIdle), fFadingNextBehavior(true),
|
||||
plAvBrainCritter::plAvBrainCritter(): fCallbackAction(nil), fCurMode(kIdle), fNextMode(kIdle), fFadingNextBehavior(true),
|
||||
fLocallyControlled(false), fAvoidingAvatars(false), fFinalGoalPos(0, 0, 0), fImmediateGoalPos(0, 0, 0), fDotGoal(0),
|
||||
fAngRight(0)
|
||||
{
|
||||
@ -145,8 +145,8 @@ plAvBrainCritter::~plAvBrainCritter()
|
||||
fBehaviors[i] = nil;
|
||||
}
|
||||
|
||||
delete fWalkingStrategy;
|
||||
fWalkingStrategy = nil;
|
||||
delete fCallbackAction;
|
||||
fCallbackAction = nil;
|
||||
|
||||
fUserBehaviors.clear();
|
||||
fReceivers.clear();
|
||||
@ -169,8 +169,8 @@ hsBool plAvBrainCritter::Apply(double time, hsScalar elapsed)
|
||||
IProcessBehavior(time, elapsed); // just continue with the currently running one
|
||||
|
||||
// update our controller to keep us turned and moving to where we want to go
|
||||
fWalkingStrategy->SetTurnStrength(IGetTurnStrength(time));
|
||||
fWalkingStrategy->RecalcVelocity(time, elapsed);
|
||||
fCallbackAction->RecalcVelocity(time, time - elapsed);
|
||||
fCallbackAction->SetTurnStrength(IGetTurnStrength(time));
|
||||
|
||||
return plArmatureBrain::Apply(time, elapsed);
|
||||
}
|
||||
@ -190,13 +190,13 @@ void plAvBrainCritter::Activate(plArmatureModBase* avMod)
|
||||
IInitBaseAnimations();
|
||||
|
||||
// create the controller if we haven't done so already
|
||||
if (!fWalkingStrategy)
|
||||
if (!fCallbackAction)
|
||||
{
|
||||
plSceneObject* avObj = fArmature->GetTarget(0);
|
||||
plAGModifier* agMod = const_cast<plAGModifier*>(plAGModifier::ConvertNoRef(FindModifierByClass(avObj, plAGModifier::Index())));
|
||||
plPhysicalControllerCore* controller = avMod->GetController();
|
||||
fWalkingStrategy = TRACKED_NEW plWalkingStrategy(agMod->GetApplicator(kAGPinTransform), controller);
|
||||
controller->SetMovementStrategy(fWalkingStrategy);
|
||||
fCallbackAction = TRACKED_NEW plWalkingController(avObj, agMod->GetApplicator(kAGPinTransform), controller);
|
||||
fCallbackAction->ActivateController();
|
||||
}
|
||||
|
||||
// tell people that care that we are good to go
|
||||
@ -226,7 +226,7 @@ void plAvBrainCritter::Resume()
|
||||
// fade in the idle
|
||||
fNextMode = kIdle;
|
||||
|
||||
fWalkingStrategy->Reset(false);
|
||||
fCallbackAction->Reset(false);
|
||||
|
||||
plArmatureBrain::Resume();
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../pnKeyedObject/plKey.h"
|
||||
|
||||
class plArmatureMod;
|
||||
class plWalkingStrategy;
|
||||
class plWalkingController;
|
||||
class plAIMsg;
|
||||
|
||||
class plAvBrainCritter : public plArmatureBrain
|
||||
@ -127,6 +127,8 @@ public:
|
||||
|
||||
virtual void DumpToDebugDisplay(int& x, int& y, int lineHeight, char* strBuf, plDebugText& debugTxt);
|
||||
|
||||
plWalkingController* GetCallbackAction() {return fCallbackAction;}
|
||||
|
||||
// For the console
|
||||
static bool fDrawDebug;
|
||||
|
||||
@ -150,7 +152,7 @@ protected:
|
||||
std::vector<plArmatureMod*> IAvatarsICanSee() const;
|
||||
std::vector<plArmatureMod*> IAvatarsICanHear() const;
|
||||
|
||||
plWalkingStrategy* fWalkingStrategy;
|
||||
plWalkingController* fCallbackAction;
|
||||
int fCurMode; // current behavior we are running
|
||||
int fNextMode; // the next behavior to run (-1 if we aren't switching on next eval)
|
||||
bool fFadingNextBehavior; // is the next behavior supposed to blend?
|
||||
|
@ -42,6 +42,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
// local includes
|
||||
#include "plAvBrainDrive.h"
|
||||
#include "plArmatureMod.h"
|
||||
#include "plAvCallbackAction.h"
|
||||
|
||||
// global includes
|
||||
#include "hsTimer.h"
|
||||
|
@ -39,6 +39,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
Mead, WA 99021
|
||||
|
||||
*==LICENSE==*/
|
||||
#include "plAvCallbackAction.h" // havok-contaminated file: must go first
|
||||
|
||||
// singular
|
||||
#include "plAvBrainGeneric.h"
|
||||
@ -93,6 +94,7 @@ plAvBrainGeneric::plAvBrainGeneric()
|
||||
fFadeIn(0.0f),
|
||||
fFadeOut(0.0f),
|
||||
fMoveMode(kMoveRelative),
|
||||
fCallbackAction(nil),
|
||||
fBodyUsage(plAGAnim::kBodyUnknown)
|
||||
{
|
||||
}
|
||||
@ -120,6 +122,7 @@ plAvBrainGeneric::plAvBrainGeneric(plAnimStageVec *stages,
|
||||
fFadeIn(fadeIn),
|
||||
fFadeOut(fadeOut),
|
||||
fMoveMode(moveMode),
|
||||
fCallbackAction(nil),
|
||||
fBodyUsage(plAGAnim::kBodyUnknown)
|
||||
{
|
||||
}
|
||||
@ -138,6 +141,7 @@ plAvBrainGeneric::plAvBrainGeneric(UInt32 exitFlags, float fadeIn, float fadeOut
|
||||
fFadeIn(fadeIn),
|
||||
fFadeOut(fadeOut),
|
||||
fMoveMode(moveMode),
|
||||
fCallbackAction(nil),
|
||||
fBodyUsage(plAGAnim::kBodyUnknown)
|
||||
{
|
||||
|
||||
@ -166,12 +170,6 @@ void plAvBrainGeneric::Activate(plArmatureModBase *avMod)
|
||||
{
|
||||
plArmatureBrain::Activate(avMod);
|
||||
|
||||
if ((GetType() == kEmote || GetType() == kAFK || GetType() == kSitOnGround) && fAvMod->IsLocalAvatar())
|
||||
{
|
||||
plInputIfaceMgrMsg* msg = TRACKED_NEW plInputIfaceMgrMsg(plInputIfaceMgrMsg::kDisableClickables );
|
||||
plgDispatch::MsgSend(msg);
|
||||
}
|
||||
|
||||
int numStages = fStages->size();
|
||||
if (!numStages)
|
||||
return;
|
||||
@ -311,12 +309,6 @@ void plAvBrainGeneric::Deactivate()
|
||||
}
|
||||
|
||||
plArmatureBrain::Deactivate();
|
||||
|
||||
if ((GetType() == kEmote || GetType() == kAFK || GetType() == kSitOnGround) && fAvMod->IsLocalAvatar())
|
||||
{
|
||||
plInputIfaceMgrMsg* msg = TRACKED_NEW plInputIfaceMgrMsg(plInputIfaceMgrMsg::kEnableClickables );
|
||||
plgDispatch::MsgSend(msg);
|
||||
}
|
||||
}
|
||||
|
||||
// GETRECIPIENT
|
||||
|
@ -49,6 +49,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
class plAnimStage;
|
||||
class plAnimStageVec;
|
||||
class plAvBrainGenericMsg;
|
||||
class plHorizontalFreezeAction;
|
||||
class plNotifyMsg;
|
||||
|
||||
/** \class plAvBrainGeneric
|
||||
@ -299,6 +300,7 @@ protected:
|
||||
int fCurStage; // which stage are we playing? (zero-based)
|
||||
BrainType fType; // what type of brain are we?
|
||||
UInt32 fExitFlags; // what will cause us to exit?
|
||||
plHorizontalFreezeAction *fCallbackAction;
|
||||
|
||||
bool fForward; // are we currently moving forward or backward through the stages?
|
||||
// this is used by the "auto-" movement types in the stages
|
||||
|
@ -42,7 +42,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "hsConfig.h"
|
||||
#include "hsWindows.h"
|
||||
|
||||
#include "plPhysicalControllerCore.h"
|
||||
#include "plAvCallbackAction.h" // subclasses a havok object; must be in first include section
|
||||
|
||||
|
||||
#include "plAvBrainHuman.h"
|
||||
#include "plAvBrainClimb.h"
|
||||
#include "plAvBrainDrive.h"
|
||||
@ -140,7 +142,7 @@ plAvBrainHuman::TurnCurve plAvBrainHuman::GetTurnCurve(hsBool walk)
|
||||
plAvBrainHuman::plAvBrainHuman(bool isActor /* = false */) :
|
||||
fHandleAGMod(nil),
|
||||
fStartedTurning(-1.0f),
|
||||
fWalkingStrategy(nil),
|
||||
fCallbackAction(nil),
|
||||
fPreconditions(0),
|
||||
fIsActor(isActor)
|
||||
{
|
||||
@ -154,9 +156,9 @@ hsBool plAvBrainHuman::Apply(double timeNow, hsScalar elapsed)
|
||||
#endif
|
||||
// SetTurnStrength runs first to make sure it's set to a sane value
|
||||
// (or cleared). RunStandardBehaviors may overwrite it.
|
||||
fWalkingStrategy->SetTurnStrength(IGetTurnStrength(timeNow));
|
||||
fCallbackAction->SetTurnStrength(IGetTurnStrength(timeNow));
|
||||
RunStandardBehaviors(timeNow, elapsed);
|
||||
fWalkingStrategy->RecalcVelocity(timeNow, elapsed, (fPreconditions & plHBehavior::kBehaviorTypeNeedsRecalcMask));
|
||||
fCallbackAction->RecalcVelocity(timeNow, timeNow - elapsed, (fPreconditions & plHBehavior::kBehaviorTypeNeedsRecalcMask));
|
||||
|
||||
plArmatureBrain::Apply(timeNow, elapsed);
|
||||
#ifndef _DEBUG
|
||||
@ -177,13 +179,13 @@ void plAvBrainHuman::Activate(plArmatureModBase *avMod)
|
||||
|
||||
IInitBoneMap();
|
||||
IInitAnimations();
|
||||
if (!fWalkingStrategy)
|
||||
if (!fCallbackAction)
|
||||
{
|
||||
plSceneObject* avObj = fArmature->GetTarget(0);
|
||||
plAGModifier* agMod = const_cast<plAGModifier*>(plAGModifier::ConvertNoRef(FindModifierByClass(avObj, plAGModifier::Index())));
|
||||
plPhysicalControllerCore* controller = avMod->GetController();
|
||||
fWalkingStrategy = TRACKED_NEW plWalkingStrategy(agMod->GetApplicator(kAGPinTransform), controller);
|
||||
controller->SetMovementStrategy(fWalkingStrategy);
|
||||
fCallbackAction = TRACKED_NEW plWalkingController(avObj, agMod->GetApplicator(kAGPinTransform), controller);
|
||||
fCallbackAction->ActivateController();
|
||||
}
|
||||
|
||||
|
||||
@ -328,8 +330,8 @@ plAvBrainHuman::~plAvBrainHuman()
|
||||
delete fBehaviors[i];
|
||||
fBehaviors.Reset();
|
||||
|
||||
delete fWalkingStrategy;
|
||||
fWalkingStrategy = nil;
|
||||
delete fCallbackAction;
|
||||
fCallbackAction = nil;
|
||||
}
|
||||
|
||||
void plAvBrainHuman::Deactivate()
|
||||
@ -362,7 +364,7 @@ void plAvBrainHuman::Resume()
|
||||
if (fAvMod->GetInputFlag(S_PUSH_TO_TALK))
|
||||
IChatOn();
|
||||
|
||||
fWalkingStrategy->Reset(false);
|
||||
fCallbackAction->Reset(false);
|
||||
|
||||
plArmatureBrain::Resume();
|
||||
}
|
||||
@ -466,23 +468,25 @@ hsBool plAvBrainHuman::MsgReceive(plMessage * msg)
|
||||
{
|
||||
if(ride->Entering())
|
||||
{
|
||||
// Switch to dynamic walking strategy
|
||||
delete fWalkingStrategy;
|
||||
//plAvBrainRideAnimatedPhysical *rideBrain = TRACKED_NEW plAvBrainRideAnimatedPhysical();
|
||||
//fAvMod->PushBrain(rideBrain);
|
||||
delete fCallbackAction;
|
||||
plSceneObject* avObj = fArmature->GetTarget(0);
|
||||
plAGModifier* agMod = const_cast<plAGModifier*>(plAGModifier::ConvertNoRef(FindModifierByClass(avObj, plAGModifier::Index())));
|
||||
plPhysicalControllerCore* controller = fAvMod->GetController();
|
||||
fWalkingStrategy = TRACKED_NEW plDynamicWalkingStrategy(agMod->GetApplicator(kAGPinTransform), controller);
|
||||
controller->SetMovementStrategy(fWalkingStrategy);
|
||||
fCallbackAction= TRACKED_NEW plRidingAnimatedPhysicalController(avObj, agMod->GetApplicator(kAGPinTransform), controller);
|
||||
fCallbackAction->ActivateController();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// Restore default walking strategy
|
||||
delete fWalkingStrategy;
|
||||
delete fCallbackAction;
|
||||
plSceneObject* avObj = fArmature->GetTarget(0);
|
||||
plAGModifier* agMod = const_cast<plAGModifier*>(plAGModifier::ConvertNoRef(FindModifierByClass(avObj, plAGModifier::Index())));
|
||||
plPhysicalControllerCore* controller = fAvMod->GetController();
|
||||
fWalkingStrategy = TRACKED_NEW plWalkingStrategy(agMod->GetApplicator(kAGPinTransform), controller);
|
||||
controller->SetMovementStrategy(fWalkingStrategy);
|
||||
fCallbackAction= TRACKED_NEW plWalkingController(avObj, agMod->GetApplicator(kAGPinTransform), controller);
|
||||
fCallbackAction->ActivateController();
|
||||
//hsStatusMessage("Got an exiting ride animated physical message");
|
||||
}
|
||||
}
|
||||
|
||||
@ -556,8 +560,8 @@ hsScalar plAvBrainHuman::IGetTurnStrength(double timeNow)
|
||||
// Turning based on keypress
|
||||
if ((turnLeftStrength > 0.f)
|
||||
|| (turnRightStrength > 0.f)
|
||||
|| (!fWalkingStrategy->IsOnGround()
|
||||
&& !fWalkingStrategy->IsControlledFlight())
|
||||
|| (!fCallbackAction->IsOnGround()
|
||||
&& !fCallbackAction->IsControlledFlight())
|
||||
) {
|
||||
float t = (float)(timeNow - fStartedTurning);
|
||||
float turnSpeed;
|
||||
@ -589,7 +593,7 @@ hsScalar plAvBrainHuman::IGetTurnStrength(double timeNow)
|
||||
result += fAvMod->GetKeyTurnStrength() * turnSpeed;
|
||||
}
|
||||
|
||||
if (!fWalkingStrategy->IsControlledFlight())
|
||||
if (!fCallbackAction->IsControlledFlight())
|
||||
result += fAvMod->GetAnalogTurnStrength() * maxTurnSpeed;
|
||||
|
||||
return result;
|
||||
@ -646,7 +650,7 @@ void plAvBrainHuman::ResetIdle()
|
||||
|
||||
void plAvBrainHuman::IdleOnly(bool instantOff)
|
||||
{
|
||||
if (!fWalkingStrategy)
|
||||
if (!fCallbackAction)
|
||||
return;
|
||||
|
||||
hsScalar rate = instantOff ? 0.f : 1.f;
|
||||
@ -672,7 +676,7 @@ bool plAvBrainHuman::IsMovementZeroBlend()
|
||||
|
||||
void plAvBrainHuman::TurnToPoint(hsPoint3 point)
|
||||
{
|
||||
if (!fWalkingStrategy->IsOnGround() || IsRunningTask() || fAvMod->GetCurrentBrain() != this || !IsMovementZeroBlend())
|
||||
if (!fCallbackAction->IsOnGround() || IsRunningTask() || fAvMod->GetCurrentBrain() != this || !IsMovementZeroBlend())
|
||||
return;
|
||||
|
||||
hsPoint3 avPos;
|
||||
@ -871,23 +875,23 @@ void plAvBrainHuman::Spawn(double timeNow)
|
||||
hsBool plAvBrainHuman::LeaveAge()
|
||||
{
|
||||
plPhysicalControllerCore* controller = fAvMod->GetController();
|
||||
|
||||
// If our current walking strategy is dynamic, restore the default kinematic strategy.
|
||||
if (!fWalkingStrategy->IsKinematic())
|
||||
if(!controller->BehavingLikeAnAnimatedPhysical())
|
||||
{
|
||||
delete fWalkingStrategy;
|
||||
controller->BehaveLikeAnimatedPhysical(true);
|
||||
delete fCallbackAction;
|
||||
plSceneObject* avObj = fArmature->GetTarget(0);
|
||||
plAGModifier* agMod = const_cast<plAGModifier*>(plAGModifier::ConvertNoRef(FindModifierByClass(avObj, plAGModifier::Index())));
|
||||
fWalkingStrategy = TRACKED_NEW plWalkingStrategy(agMod->GetApplicator(kAGPinTransform), controller);
|
||||
fCallbackAction= TRACKED_NEW plWalkingController(avObj, agMod->GetApplicator(kAGPinTransform), controller);
|
||||
fCallbackAction->ActivateController();
|
||||
}
|
||||
|
||||
fWalkingStrategy->Reset(true);
|
||||
|
||||
plArmatureBrain::LeaveAge();
|
||||
|
||||
|
||||
|
||||
// pin the physical so it doesn't fall when the world is deleted
|
||||
fAvMod->EnablePhysics(false);
|
||||
|
||||
// this will get set to true when we hit ground
|
||||
fCallbackAction->Reset(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -897,10 +901,11 @@ void plAvBrainHuman::DumpToDebugDisplay(int &x, int &y, int lineHeight, char *st
|
||||
debugTxt.DrawString(x, y, strBuf);
|
||||
y += lineHeight;
|
||||
|
||||
const char *grounded = fWalkingStrategy->IsOnGround() ? "yes" : "no";
|
||||
const char *pushing = (fWalkingStrategy->GetPushingPhysical() ? (fWalkingStrategy->GetFacingPushingPhysical() ? "facing" : "behind") : "none");
|
||||
sprintf(strBuf, "Ground: %3s, AirTime: %5.2f (Peak: %5.2f), PushingPhys: %6s",
|
||||
grounded, fWalkingStrategy->GetAirTime(), fWalkingStrategy->GetImpactTime(), pushing);
|
||||
const char *grounded = fCallbackAction->IsOnGround() ? "yes" : "no";
|
||||
const char *falseGrounded = fCallbackAction->IsOnFalseGround() ? "yes" : "no";
|
||||
const char *pushing = (fCallbackAction->GetPushingPhysical() ? (fCallbackAction->GetFacingPushingPhysical() ? "facing" : "behind") : "none");
|
||||
sprintf(strBuf, "Ground: %3s, FalseGround: %3s, AirTime: %5.2f (Peak: %5.2f), PushingPhys: %6s",
|
||||
grounded, falseGrounded, fCallbackAction->GetAirTime(), fCallbackAction->GetImpactTime(), pushing);
|
||||
debugTxt.DrawString(x, y, strBuf);
|
||||
y += lineHeight;
|
||||
|
||||
@ -1013,8 +1018,8 @@ hsBool Run::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (fAnim)
|
||||
{
|
||||
if (fAvMod->ForwardKeyDown() && fAvMod->FastKeyDown() && fHuBrain->fWalkingStrategy->IsOnGround() &&
|
||||
(!fHuBrain->fWalkingStrategy->GetPushingPhysical() || !fHuBrain->fWalkingStrategy->GetFacingPushingPhysical()))
|
||||
if (fAvMod->ForwardKeyDown() && fAvMod->FastKeyDown() && fHuBrain->fCallbackAction->IsOnGround() &&
|
||||
(!fHuBrain->fCallbackAction->GetPushingPhysical() || !fHuBrain->fCallbackAction->GetFacingPushingPhysical()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -1024,8 +1029,8 @@ hsBool Walk::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (fAnim)
|
||||
{
|
||||
if (fAvMod->ForwardKeyDown() && !fAvMod->FastKeyDown() && fHuBrain->fWalkingStrategy->IsOnGround() &&
|
||||
(!fHuBrain->fWalkingStrategy->GetPushingPhysical() || !fHuBrain->fWalkingStrategy->GetFacingPushingPhysical()))
|
||||
if (fAvMod->ForwardKeyDown() && !fAvMod->FastKeyDown() && fHuBrain->fCallbackAction->IsOnGround() &&
|
||||
(!fHuBrain->fCallbackAction->GetPushingPhysical() || !fHuBrain->fCallbackAction->GetFacingPushingPhysical()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -1035,8 +1040,8 @@ hsBool WalkBack::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (fAnim)
|
||||
{
|
||||
if (fAvMod->BackwardKeyDown() && !fAvMod->ForwardKeyDown() && fHuBrain->fWalkingStrategy->IsOnGround() &&
|
||||
(!fHuBrain->fWalkingStrategy->GetPushingPhysical() || fHuBrain->fWalkingStrategy->GetFacingPushingPhysical()))
|
||||
if (fAvMod->BackwardKeyDown() && !fAvMod->ForwardKeyDown() && fHuBrain->fCallbackAction->IsOnGround() &&
|
||||
(!fHuBrain->fCallbackAction->GetPushingPhysical() || fHuBrain->fCallbackAction->GetFacingPushingPhysical()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -1049,7 +1054,7 @@ hsBool StepLeft::PreCondition(double time, float elapsed)
|
||||
return ((fAvMod->StrafeLeftKeyDown() || (fAvMod->StrafeKeyDown() && fAvMod->TurnLeftKeyDown())) &&
|
||||
!(fAvMod->StrafeRightKeyDown() || (fAvMod->StrafeKeyDown() && fAvMod->TurnRightKeyDown())) &&
|
||||
!(fAvMod->ForwardKeyDown() || fAvMod->BackwardKeyDown()) &&
|
||||
fHuBrain->fWalkingStrategy->IsOnGround());
|
||||
fHuBrain->fCallbackAction->IsOnGround());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -1061,7 +1066,7 @@ hsBool StepRight::PreCondition(double time, float elapsed)
|
||||
return ((fAvMod->StrafeRightKeyDown() || (fAvMod->StrafeKeyDown() && fAvMod->TurnRightKeyDown())) &&
|
||||
!(fAvMod->StrafeLeftKeyDown() || (fAvMod->StrafeKeyDown() && fAvMod->TurnLeftKeyDown())) &&
|
||||
!(fAvMod->ForwardKeyDown() || fAvMod->BackwardKeyDown()) &&
|
||||
fHuBrain->fWalkingStrategy->IsOnGround());
|
||||
fHuBrain->fCallbackAction->IsOnGround());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -1102,8 +1107,8 @@ hsBool MovingTurnLeft::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (fAvMod->GetTurnStrength() > 0)
|
||||
{
|
||||
if (fHuBrain->fWalkingStrategy->IsOnGround() && (fAvMod->ForwardKeyDown() || fAvMod->BackwardKeyDown()) &&
|
||||
(!fHuBrain->fWalkingStrategy->GetPushingPhysical() || !fHuBrain->fWalkingStrategy->GetFacingPushingPhysical()))
|
||||
if (fHuBrain->fCallbackAction->IsOnGround() && (fAvMod->ForwardKeyDown() || fAvMod->BackwardKeyDown()) &&
|
||||
(!fHuBrain->fCallbackAction->GetPushingPhysical() || !fHuBrain->fCallbackAction->GetFacingPushingPhysical()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -1113,8 +1118,8 @@ hsBool MovingTurnRight::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (fAvMod->GetTurnStrength() < 0)
|
||||
{
|
||||
if (fHuBrain->fWalkingStrategy->IsOnGround() && (fAvMod->ForwardKeyDown() || fAvMod->BackwardKeyDown()) &&
|
||||
(!fHuBrain->fWalkingStrategy->GetPushingPhysical() || !fHuBrain->fWalkingStrategy->GetFacingPushingPhysical()))
|
||||
if (fHuBrain->fCallbackAction->IsOnGround() && (fAvMod->ForwardKeyDown() || fAvMod->BackwardKeyDown()) &&
|
||||
(!fHuBrain->fCallbackAction->GetPushingPhysical() || !fHuBrain->fCallbackAction->GetFacingPushingPhysical()))
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1123,14 +1128,14 @@ hsBool MovingTurnRight::PreCondition(double time, float elapsed)
|
||||
|
||||
void Jump::IStart()
|
||||
{
|
||||
fHuBrain->fWalkingStrategy->EnableControlledFlight(true);
|
||||
fHuBrain->fCallbackAction->EnableControlledFlight(true);
|
||||
|
||||
plHBehavior::IStart();
|
||||
}
|
||||
|
||||
void Jump::IStop()
|
||||
{
|
||||
fHuBrain->fWalkingStrategy->EnableControlledFlight(false);
|
||||
fHuBrain->fCallbackAction->EnableControlledFlight(false);
|
||||
|
||||
plHBehavior::IStop();
|
||||
}
|
||||
@ -1141,7 +1146,7 @@ hsBool StandingJump::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (GetStrength() > 0.f)
|
||||
{
|
||||
if (!fHuBrain->fWalkingStrategy->IsControlledFlight() ||
|
||||
if (!fHuBrain->fCallbackAction->IsControlledFlight() ||
|
||||
fAnim->GetTimeConvert()->WorldToAnimTimeNoUpdate(time) >= fAnim->GetTimeConvert()->GetEnd())
|
||||
{
|
||||
return false;
|
||||
@ -1153,7 +1158,7 @@ hsBool StandingJump::PreCondition(double time, float elapsed)
|
||||
if (fAvMod->JumpKeyDown() &&
|
||||
!fAvMod->ForwardKeyDown() &&
|
||||
fAnim->GetBlend() == 0.0f &&
|
||||
fHuBrain->fWalkingStrategy->IsOnGround())
|
||||
fHuBrain->fCallbackAction->IsOnGround())
|
||||
{
|
||||
if (fAvMod->ConsumeJump())
|
||||
return true;
|
||||
@ -1169,7 +1174,7 @@ hsBool WalkingJump::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (GetStrength() > 0.f)
|
||||
{
|
||||
if (!fHuBrain->fWalkingStrategy->IsControlledFlight() ||
|
||||
if (!fHuBrain->fCallbackAction->IsControlledFlight() ||
|
||||
fAnim->GetTimeConvert()->WorldToAnimTimeNoUpdate(time) >= fAnim->GetTimeConvert()->GetEnd())
|
||||
{
|
||||
return false;
|
||||
@ -1182,8 +1187,8 @@ hsBool WalkingJump::PreCondition(double time, float elapsed)
|
||||
!fAvMod->FastKeyDown() &&
|
||||
fAvMod->ForwardKeyDown() &&
|
||||
fAnim->GetBlend() == 0.0f &&
|
||||
fHuBrain->fWalkingStrategy->IsOnGround() &&
|
||||
(!fHuBrain->fWalkingStrategy->GetPushingPhysical() || !fHuBrain->fWalkingStrategy->GetFacingPushingPhysical()))
|
||||
fHuBrain->fCallbackAction->IsOnGround() &&
|
||||
(!fHuBrain->fCallbackAction->GetPushingPhysical() || !fHuBrain->fCallbackAction->GetFacingPushingPhysical()))
|
||||
{
|
||||
if (fAvMod->ConsumeJump())
|
||||
return true;
|
||||
@ -1199,7 +1204,7 @@ hsBool RunningJump::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (GetStrength() > 0.f)
|
||||
{
|
||||
if (!fHuBrain->fWalkingStrategy->IsControlledFlight() ||
|
||||
if (!fHuBrain->fCallbackAction->IsControlledFlight() ||
|
||||
fAnim->GetTimeConvert()->WorldToAnimTimeNoUpdate(time) >= fAnim->GetTimeConvert()->GetEnd())
|
||||
{
|
||||
return false;
|
||||
@ -1212,8 +1217,8 @@ hsBool RunningJump::PreCondition(double time, float elapsed)
|
||||
fAvMod->ForwardKeyDown() &&
|
||||
fAvMod->FastKeyDown() &&
|
||||
fAnim->GetBlend() == 0.0f &&
|
||||
fHuBrain->fWalkingStrategy->IsOnGround() &&
|
||||
(!fHuBrain->fWalkingStrategy->GetPushingPhysical() || !fHuBrain->fWalkingStrategy->GetFacingPushingPhysical()))
|
||||
fHuBrain->fCallbackAction->IsOnGround() &&
|
||||
(!fHuBrain->fCallbackAction->GetPushingPhysical() || !fHuBrain->fCallbackAction->GetFacingPushingPhysical()))
|
||||
{
|
||||
if (fAvMod->ConsumeJump())
|
||||
return true;
|
||||
@ -1238,13 +1243,13 @@ hsBool RunningImpact::PreCondition(double time, float elapsed)
|
||||
{
|
||||
if (fDuration > 0.0f)
|
||||
fDuration = fDuration - elapsed;
|
||||
else if (fHuBrain->fWalkingStrategy->IsOnGround() && fHuBrain->fWalkingStrategy->GetImpactTime() > kMinAirTime)
|
||||
else if (fHuBrain->fCallbackAction->IsOnGround() && fHuBrain->fCallbackAction->GetImpactTime() > kMinAirTime)
|
||||
{
|
||||
if (fHuBrain->fWalkingStrategy->GetImpactVelocity().fZ < -kMinImpactVel)
|
||||
if (fHuBrain->fCallbackAction->GetImpactVelocity().fZ < -kMinImpactVel)
|
||||
{
|
||||
if (fHuBrain->fWalkingStrategy->GetImpactVelocity().fY < kRunningImpactThresh)
|
||||
if (fHuBrain->fCallbackAction->GetImpactVelocity().fY < kRunningImpactThresh)
|
||||
{
|
||||
fMaxBlend = 0.5f + (0.5f * (-fHuBrain->fWalkingStrategy->GetImpactVelocity().fZ / (kFullImpactVel - kMinImpactVel)));
|
||||
fMaxBlend = 0.5f + (0.5f * (-fHuBrain->fCallbackAction->GetImpactVelocity().fZ / (kFullImpactVel - kMinImpactVel)));
|
||||
if (fMaxBlend > 1)
|
||||
fMaxBlend = 1;
|
||||
fDuration = 1.0f / fFadeIn;
|
||||
@ -1268,13 +1273,13 @@ hsBool GroundImpact::PreCondition(double time, float elapsed)
|
||||
bool result = false;
|
||||
if (fDuration > 0.0f)
|
||||
fDuration = fDuration - elapsed;
|
||||
else if (fHuBrain->fWalkingStrategy->IsOnGround() && fHuBrain->fWalkingStrategy->GetImpactTime() > kMinAirTime)
|
||||
else if (fHuBrain->fCallbackAction->IsOnGround() && fHuBrain->fCallbackAction->GetImpactTime() > kMinAirTime)
|
||||
{
|
||||
if (fHuBrain->fWalkingStrategy->GetImpactVelocity().fZ < -kMinImpactVel)
|
||||
if (fHuBrain->fCallbackAction->GetImpactVelocity().fZ < -kMinImpactVel)
|
||||
{
|
||||
if (fHuBrain->fWalkingStrategy->GetImpactVelocity().fY >= kRunningImpactThresh)
|
||||
if (fHuBrain->fCallbackAction->GetImpactVelocity().fY >= kRunningImpactThresh)
|
||||
{
|
||||
fMaxBlend = 0.5f + (0.5f * (-fHuBrain->fWalkingStrategy->GetImpactVelocity().fZ / (kFullImpactVel - kMinImpactVel)));
|
||||
fMaxBlend = 0.5f + (0.5f * (-fHuBrain->fCallbackAction->GetImpactVelocity().fZ / (kFullImpactVel - kMinImpactVel)));
|
||||
if (fMaxBlend > 1)
|
||||
fMaxBlend = 1;
|
||||
fDuration = 1.0f / fFadeIn;
|
||||
@ -1293,7 +1298,7 @@ void GroundImpact::IStop()
|
||||
|
||||
hsBool Fall::PreCondition(double time, float elapsed)
|
||||
{
|
||||
return !fHuBrain->fWalkingStrategy->IsOnGround() && fHuBrain->fWalkingStrategy->HitGroundInThisAge();
|
||||
return !fHuBrain->fCallbackAction->IsOnGround() && fHuBrain->fCallbackAction->HitGroundInThisAge();
|
||||
}
|
||||
|
||||
void Fall::Process(double time, float elapsed)
|
||||
@ -1305,7 +1310,7 @@ void Fall::Process(double time, float elapsed)
|
||||
if (fAnim && fAnim->GetBlend() > 0.8)
|
||||
{
|
||||
float panicThresh = plAvBrainHuman::kAirTimePanicThreshold;
|
||||
if (panicThresh > 0.0f && fHuBrain->fWalkingStrategy->GetAirTime() > panicThresh)
|
||||
if (panicThresh > 0.0f && fHuBrain->fCallbackAction->GetAirTime() > panicThresh)
|
||||
{
|
||||
fHuBrain->IdleOnly(); // clear the fall state; we're going somewhere new
|
||||
fAvMod->PanicLink();
|
||||
@ -1322,7 +1327,7 @@ void Push::Process(double time, float elapsed)
|
||||
fAvMod->GetPositionAndRotationSim(&pos, &rot);
|
||||
|
||||
hsPoint3 lookAt;
|
||||
fHuBrain->fWalkingStrategy->GetPushingPhysical()->GetPositionSim(lookAt);
|
||||
fHuBrain->fCallbackAction->GetPushingPhysical()->GetPositionSim(lookAt);
|
||||
hsVector3 up(0.f, 0.f, 1.f);
|
||||
hsScalar angle = hsATan2(lookAt.fY - pos.fY, lookAt.fX - pos.fX) + hsScalarPI / 2;
|
||||
hsQuat targRot(angle, &up);
|
||||
@ -1336,23 +1341,23 @@ void Push::Process(double time, float elapsed)
|
||||
globFwd = rot.Rotate(&globFwd);
|
||||
|
||||
if (globFwd.fX < 0)
|
||||
fHuBrain->fWalkingStrategy->SetTurnStrength(-turnSpeed);
|
||||
fHuBrain->fCallbackAction->SetTurnStrength(-turnSpeed);
|
||||
else
|
||||
fHuBrain->fWalkingStrategy->SetTurnStrength(turnSpeed);
|
||||
fHuBrain->fCallbackAction->SetTurnStrength(turnSpeed);
|
||||
}
|
||||
|
||||
//hsBool PushIdle::PreCondition(double time, float elapsed)
|
||||
//{
|
||||
// return (fHuBrain->fWalkingStrategy->GetPushingPhysical() &&
|
||||
// fHuBrain->fWalkingStrategy->IsOnGround() &&
|
||||
// return (fHuBrain->fCallbackAction->GetPushingPhysical() &&
|
||||
// fHuBrain->fCallbackAction->IsOnGround() &&
|
||||
// !fAvMod->TurnLeftKeyDown() && !fAvMod->TurnRightKeyDown()
|
||||
// && fAvMod->GetTurnStrength() == 0);
|
||||
//}
|
||||
|
||||
hsBool PushWalk::PreCondition(double time, float elapsed)
|
||||
{
|
||||
return (fHuBrain->fWalkingStrategy->GetPushingPhysical() && fHuBrain->fWalkingStrategy->GetFacingPushingPhysical() &&
|
||||
fHuBrain->fWalkingStrategy->IsOnGround() &&
|
||||
return (fHuBrain->fCallbackAction->GetPushingPhysical() && fHuBrain->fCallbackAction->GetFacingPushingPhysical() &&
|
||||
fHuBrain->fCallbackAction->IsOnGround() &&
|
||||
fAvMod->ForwardKeyDown());
|
||||
}
|
||||
|
||||
@ -1367,7 +1372,7 @@ bool PushSimpleMultiStage(plArmatureMod *avatar, const char *enterAnim, const ch
|
||||
{
|
||||
plAvBrainHuman *huBrain = plAvBrainHuman::ConvertNoRef(avatar->FindBrainByClass(plAvBrainHuman::Index()));
|
||||
const char *names[3] = {enterAnim, idleAnim, exitAnim};
|
||||
if (!huBrain || !huBrain->fWalkingStrategy->IsOnGround() || !huBrain->fWalkingStrategy->HitGroundInThisAge() || huBrain->IsRunningTask() ||
|
||||
if (!huBrain || !huBrain->fCallbackAction->IsOnGround() || !huBrain->fCallbackAction->HitGroundInThisAge() || huBrain->IsRunningTask() ||
|
||||
!avatar->IsPhysicsEnabled() || avatar->FindMatchingGenericBrain(names, 3))
|
||||
return false;
|
||||
|
||||
@ -1431,7 +1436,7 @@ bool AvatarEmote(plArmatureMod *avatar, const char *emoteName)
|
||||
if (swimBrain && swimBrain->IsSwimming())
|
||||
return false;
|
||||
|
||||
if (huBrain && huBrain->fWalkingStrategy->IsOnGround() && huBrain->fWalkingStrategy->HitGroundInThisAge() && !huBrain->IsRunningTask() &&
|
||||
if (huBrain && huBrain->fCallbackAction->IsOnGround() && huBrain->fCallbackAction->HitGroundInThisAge() && !huBrain->IsRunningTask() &&
|
||||
emote && !alreadyActive && avatar->IsPhysicsEnabled())
|
||||
{
|
||||
plKey avKey = avatar->GetKey();
|
||||
|
@ -58,7 +58,7 @@ class plAGAnimInstance;
|
||||
class plAvTask;
|
||||
class plAvTaskMsg;
|
||||
class plAvBrainHuman;
|
||||
class plWalkingStrategy;
|
||||
class plWalkingController;
|
||||
class plArmatureUpdateMsg;
|
||||
class plClimbMsg;
|
||||
class plControlEventMsg;
|
||||
@ -164,7 +164,7 @@ public:
|
||||
static const hsScalar kControlledFlightThreshold;
|
||||
static const hsScalar kAirTimeThreshold;
|
||||
static const hsScalar kAirTimePanicThreshold;
|
||||
plWalkingStrategy* fWalkingStrategy;
|
||||
plWalkingController* fCallbackAction;
|
||||
|
||||
protected:
|
||||
plAGAnim *FindCustomAnim(const char *baseName);
|
||||
|
@ -44,7 +44,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
|
||||
#include "plAvBrainHuman.h"
|
||||
#include "plAvBrain.h"
|
||||
#include "plPhysicalControllerCore.h"
|
||||
#include "plAvCallbackAction.h"
|
||||
#include "../plMessage/plRideAnimatedPhysMsg.h"
|
||||
|
||||
|
||||
@ -52,19 +52,20 @@ void plAvBrainRideAnimatedPhysical::Activate(plArmatureModBase *avMod)
|
||||
{
|
||||
plArmatureBrain::Activate(avMod);
|
||||
IInitAnimations();
|
||||
if (!fWalkingStrategy)
|
||||
if (!fCallbackAction)
|
||||
{
|
||||
plSceneObject* avObj = fArmature->GetTarget(0);
|
||||
plAGModifier* agMod = const_cast<plAGModifier*>(plAGModifier::ConvertNoRef(FindModifierByClass(avObj, plAGModifier::Index())));
|
||||
plPhysicalControllerCore* controller = avMod->GetController();
|
||||
fWalkingStrategy = TRACKED_NEW plDynamicWalkingStrategy(agMod->GetApplicator(kAGPinTransform), controller);
|
||||
controller->SetMovementStrategy(fWalkingStrategy);
|
||||
fCallbackAction = TRACKED_NEW plRidingAnimatedPhysicalController(avObj, agMod->GetApplicator(kAGPinTransform), controller);
|
||||
fCallbackAction->ActivateController();
|
||||
}
|
||||
}
|
||||
plAvBrainRideAnimatedPhysical::~plAvBrainRideAnimatedPhysical()
|
||||
{
|
||||
delete fWalkingStrategy;
|
||||
fWalkingStrategy = nil;
|
||||
delete fCallbackAction;
|
||||
fCallbackAction=nil;
|
||||
|
||||
}
|
||||
|
||||
void plAvBrainRideAnimatedPhysical::Deactivate()
|
||||
|
@ -41,6 +41,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
*==LICENSE==*/
|
||||
#include "plAvBrainHuman.h"
|
||||
|
||||
class plRidingAnimatedPhysicalController;
|
||||
|
||||
class plAvBrainRideAnimatedPhysical : public plAvBrainHuman
|
||||
{
|
||||
public:
|
||||
|
@ -46,6 +46,10 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//#include <hkmath/vector3.h>
|
||||
//#include <hkdynamics/entity/rigidbody.h>
|
||||
#include "plAntiGravAction.h" // descends from Havok class, so must be included first, like havok objects
|
||||
|
||||
// singular
|
||||
#include "plAvBrainSwim.h"
|
||||
|
||||
@ -65,6 +69,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "hsTimer.h"
|
||||
#include "plPhysical.h"
|
||||
#include "plPhysicalControllerCore.h"
|
||||
#include "plAvCallbackAction.h"
|
||||
// other
|
||||
#include "../plPhysical/plCollisionDetector.h"
|
||||
#include "../plPipeline/plDebugText.h"
|
||||
@ -175,16 +180,18 @@ public:
|
||||
static const float timeToMaxTurn = 0.5f;
|
||||
static const float incPerSec = maxTurnSpeed / timeToMaxTurn;
|
||||
|
||||
float oldSpeed = fabs(fSwimBrain->fSwimStrategy->GetTurnStrength());
|
||||
// hsAssert(0, "fixme physx");
|
||||
float oldSpeed = fabs(fSwimBrain->fCallbackAction->GetTurnStrength());
|
||||
float thisInc = elapsed * incPerSec;
|
||||
float newSpeed = __min(oldSpeed + thisInc, maxTurnSpeed);
|
||||
fSwimBrain->fSwimStrategy->SetTurnStrength(newSpeed * fAvMod->GetKeyTurnStrength() + fAvMod->GetAnalogTurnStrength());
|
||||
fSwimBrain->fCallbackAction->SetTurnStrength(newSpeed * fAvMod->GetKeyTurnStrength() + fAvMod->GetAnalogTurnStrength());
|
||||
// the turn is actually applied during PhysicsUpdate
|
||||
}
|
||||
virtual void IStop()
|
||||
{
|
||||
if (fSwimBrain->fSwimStrategy)
|
||||
fSwimBrain->fSwimStrategy->SetTurnStrength(0.0f);
|
||||
// hsAssert(0, "fixme physx");
|
||||
if (fSwimBrain->fCallbackAction)
|
||||
fSwimBrain->fCallbackAction->SetTurnStrength(0.0f);
|
||||
plSwimBehavior::IStop();
|
||||
}
|
||||
};
|
||||
@ -230,7 +237,7 @@ public:
|
||||
const hsScalar plAvBrainSwim::kMinSwimDepth = 4.0f;
|
||||
|
||||
plAvBrainSwim::plAvBrainSwim() :
|
||||
fSwimStrategy(nil),
|
||||
fCallbackAction(nil),
|
||||
fMode(kWalking),
|
||||
fSurfaceDistance(0.f)
|
||||
{
|
||||
@ -243,9 +250,12 @@ plAvBrainSwim::plAvBrainSwim() :
|
||||
|
||||
plAvBrainSwim::~plAvBrainSwim()
|
||||
{
|
||||
delete fSwimStrategy;
|
||||
fSwimStrategy = nil;
|
||||
|
||||
if(fCallbackAction)
|
||||
{
|
||||
IDetachAction();
|
||||
delete fCallbackAction;
|
||||
fCallbackAction=nil;
|
||||
}
|
||||
fSurfaceProbeMsg->UnRef();
|
||||
|
||||
int i;
|
||||
@ -263,7 +273,8 @@ hsBool plAvBrainSwim::Apply(double time, hsScalar elapsed)
|
||||
fMode = kWading;
|
||||
|
||||
plAvBrainHuman *huBrain = plAvBrainHuman::ConvertNoRef(fAvMod->GetNextBrain(this));
|
||||
if (huBrain && !huBrain->fWalkingStrategy->IsOnGround())
|
||||
// hsAssert(0, "fixme physx");
|
||||
if (huBrain && !huBrain->fCallbackAction->IsOnGround())
|
||||
{
|
||||
// We're jumping in! Trigger splash effect (sound)
|
||||
plArmatureEffectMsg *msg = TRACKED_NEW plArmatureEffectMsg(fAvMod->GetArmatureEffects()->GetKey(), kTime);
|
||||
@ -307,7 +318,8 @@ hsBool plAvBrainSwim::Apply(double time, hsScalar elapsed)
|
||||
|
||||
// The contact check is so that if buoyancy bobs us a little too high, we don't
|
||||
// switch to wading only to fall again.
|
||||
if (fSurfaceDistance < kMinSwimDepth-.5 && fSwimStrategy->HadContacts())
|
||||
// hsAssert(0, "fixme physx");
|
||||
if (fSurfaceDistance < kMinSwimDepth-.5 && fCallbackAction->HadContacts())
|
||||
IStartWading();
|
||||
}
|
||||
else if (fMode == kSwimming3D)
|
||||
@ -334,12 +346,13 @@ hsBool plAvBrainSwim::MsgReceive(plMessage *msg)
|
||||
else
|
||||
fSurfaceDistance = -100.f;
|
||||
|
||||
if (fSwimStrategy)
|
||||
// hsAssert(0, "fixme physx");
|
||||
if (fCallbackAction)
|
||||
{
|
||||
if (region)
|
||||
fSwimStrategy->SetSurface(region, fArmature->GetTarget(0)->GetLocalToWorld().GetTranslate().fZ + fSurfaceDistance);
|
||||
fCallbackAction->SetSurface(region, fArmature->GetTarget(0)->GetLocalToWorld().GetTranslate().fZ + fSurfaceDistance);
|
||||
else
|
||||
fSwimStrategy->SetSurface(nil, 0.f);
|
||||
fCallbackAction->SetSurface(nil, 0.f);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -406,16 +419,20 @@ void plAvBrainSwim::Activate(plArmatureModBase* avMod)
|
||||
void plAvBrainSwim::Deactivate()
|
||||
{
|
||||
plArmatureBrain::Deactivate();
|
||||
|
||||
IDetachAction();
|
||||
}
|
||||
|
||||
void plAvBrainSwim::Suspend()
|
||||
{
|
||||
if (fMode == kSwimming2D)
|
||||
IDetachAction();
|
||||
}
|
||||
|
||||
void plAvBrainSwim::Resume()
|
||||
{
|
||||
if (fMode == kSwimming2D)
|
||||
fSwimStrategy->Reset(false);
|
||||
IAttachAction();
|
||||
}
|
||||
|
||||
bool plAvBrainSwim::IsWalking()
|
||||
@ -443,6 +460,8 @@ void plAvBrainSwim::IStartWading()
|
||||
for (i = 0; i < fBehaviors.GetCount(); i++)
|
||||
fBehaviors[i]->SetStrength(0.f, 2.f);
|
||||
|
||||
IDetachAction();
|
||||
|
||||
if (fAvMod->IsLocalAvatar())
|
||||
{
|
||||
plCameraMsg* pMsg = TRACKED_NEW plCameraMsg;
|
||||
@ -460,16 +479,7 @@ void plAvBrainSwim::IStartSwimming(bool is2D)
|
||||
plArmatureBrain *nextBrain = fAvMod->GetNextBrain(this);
|
||||
nextBrain->Suspend();
|
||||
|
||||
if (!fSwimStrategy)
|
||||
{
|
||||
plSceneObject * avObj = fArmature->GetTarget(0);
|
||||
plAGModifier *agMod = const_cast<plAGModifier*>(plAGModifier::ConvertNoRef(FindModifierByClass(avObj, plAGModifier::Index())));
|
||||
plPhysicalControllerCore *controller = fAvMod->GetController();
|
||||
fSwimStrategy = new plSwimStrategy(agMod->GetApplicator(kAGPinTransform), controller);
|
||||
}
|
||||
|
||||
fSwimStrategy->Reset(false);
|
||||
|
||||
IAttachAction();
|
||||
if (is2D)
|
||||
fMode = kSwimming2D;
|
||||
else
|
||||
@ -499,8 +509,8 @@ hsBool plAvBrainSwim::IProcessSwimming2D(double time, float elapsed)
|
||||
else
|
||||
behavior->SetStrength(0.f, 2.f);
|
||||
}
|
||||
|
||||
fSwimStrategy->RecalcVelocity(time, elapsed);
|
||||
// hsAssert(0, "fixme physx");
|
||||
fCallbackAction->RecalcVelocity(time, time - elapsed);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -558,6 +568,59 @@ hsBool plAvBrainSwim::IInitAnimations()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool plAvBrainSwim::IAttachAction()
|
||||
{
|
||||
bool result = false;
|
||||
if(fAvMod)
|
||||
{
|
||||
// hsAssert(0, "fixme physx");
|
||||
plPhysicalControllerCore *physical = fAvMod->GetController();
|
||||
|
||||
if (physical)
|
||||
{
|
||||
if (!fCallbackAction)
|
||||
{
|
||||
plSceneObject * avObj = fArmature->GetTarget(0);
|
||||
plAGModifier *agMod = const_cast<plAGModifier*>(plAGModifier::ConvertNoRef(FindModifierByClass(avObj, plAGModifier::Index())));
|
||||
fCallbackAction = new plSwimmingController(avObj, agMod->GetApplicator(kAGPinTransform),physical);
|
||||
// physical->AttachAction(fCallbackAction, true, false);
|
||||
result = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
fCallbackAction->ActivateController();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool plAvBrainSwim::IDetachAction()
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
if (fCallbackAction)
|
||||
{
|
||||
// hsAssert(0, "fixme physx");
|
||||
// plPhysical *physical = fAvMod->GetPhysical();
|
||||
//
|
||||
// if(physical)
|
||||
// {
|
||||
// physical->RemoveAction(fCallbackAction);
|
||||
// result = true; // there was an action and we removed it
|
||||
// }
|
||||
|
||||
// TODO: We get a compiler warning about deleting a pointer to an
|
||||
// undefined class. So, who knows what the code is actually doing.
|
||||
// Seems bad. Just putting a note in here for whoever fixes the
|
||||
// physx issue.
|
||||
//delete fCallbackAction;
|
||||
//fCallbackAction = nil;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void plAvBrainSwim::IProbeSurface()
|
||||
{
|
||||
hsPoint3 ourPos = fAvMod->GetTarget(0)->GetLocalToWorld().GetTranslate();
|
||||
@ -613,15 +676,21 @@ void plAvBrainSwim::DumpToDebugDisplay(int &x, int &y, int lineHeight, char *str
|
||||
debugTxt.DrawString(x, y, strBuf);
|
||||
y += lineHeight;
|
||||
|
||||
float buoy = fSwimStrategy ? fSwimStrategy->GetBuoyancy() : 0.0f;
|
||||
sprintf(strBuf, "Distance to surface: %f Buoyancy: %f", fSurfaceDistance, buoy);
|
||||
debugTxt.DrawString(x, y, strBuf);
|
||||
y += lineHeight;
|
||||
|
||||
hsVector3 linV = fAvMod->GetController()->GetAchievedLinearVelocity();
|
||||
sprintf(strBuf, "Linear Velocity: (%5.2f, %5.2f, %5.2f)", linV.fX, linV.fY, linV.fZ);
|
||||
debugTxt.DrawString(x, y, strBuf);
|
||||
y += lineHeight;
|
||||
// hsAssert(0, "fixme physx");
|
||||
// float buoy = fCallbackAction? fCallbackAction->GetBuoyancy() : 0.0f;
|
||||
// sprintf(strBuf, "Distance to surface: %f Buoyancy: %f", fSurfaceDistance, buoy);
|
||||
// debugTxt.DrawString(x, y, strBuf);
|
||||
// y += lineHeight;
|
||||
//
|
||||
// hsVector3 linV;
|
||||
// fAvMod->GetPhysical()->GetLinearVelocitySim(linV);
|
||||
// hsVector3 angV;
|
||||
// fAvMod->GetPhysical()->GetAngularVelocitySim(angV);
|
||||
// hsScalar angle = angV.fZ > 0 ? angV.Magnitude() : -angV.Magnitude();
|
||||
// sprintf(strBuf, "Velocity: Linear (%5.2f, %5.2f, %5.2f), Angular %5.2f", linV.fX, linV.fY, linV.fZ, angle);
|
||||
// debugTxt.DrawString(x, y, strBuf);
|
||||
// y += lineHeight;
|
||||
|
||||
int i;
|
||||
for (i = 0; i < fBehaviors.GetCount(); i++)
|
||||
|
@ -47,10 +47,11 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../pnKeyedObject/plKey.h"
|
||||
|
||||
class plArmatureMod;
|
||||
class plAntiGravAction;
|
||||
class plControlEventMsg;
|
||||
class plLOSRequestMsg;
|
||||
class plSwimRegionInterface;
|
||||
class plSwimStrategy;
|
||||
class plSwimmingController;
|
||||
class plAvBrainSwim : public plArmatureBrain
|
||||
{
|
||||
public:
|
||||
@ -72,7 +73,7 @@ public:
|
||||
bool IsSwimming();
|
||||
hsScalar GetSurfaceDistance() { return fSurfaceDistance; }
|
||||
|
||||
plSwimStrategy *fSwimStrategy;
|
||||
plSwimmingController *fCallbackAction;
|
||||
static const hsScalar kMinSwimDepth;
|
||||
|
||||
protected:
|
||||
@ -85,6 +86,8 @@ protected:
|
||||
hsBool IProcessBehaviors(double time, float elapsed);
|
||||
|
||||
virtual hsBool IInitAnimations();
|
||||
bool IAttachAction();
|
||||
bool IDetachAction();
|
||||
void IProbeSurface();
|
||||
hsBool IHandleControlMsg(plControlEventMsg* msg);
|
||||
float IGetTargetZ();
|
||||
|
@ -0,0 +1,579 @@
|
||||
/*==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 "plAvCallbackAction.h"
|
||||
#include "../plMessage/plLOSHitMsg.h"
|
||||
|
||||
#include "plArmatureMod.h" // for LOS enum type
|
||||
#include "plMatrixChannel.h"
|
||||
#include "hsTimer.h"
|
||||
#include "plPhysicalControllerCore.h"
|
||||
|
||||
// Generic geom utils.
|
||||
hsBool LinearVelocity(hsVector3 &outputV, float elapsed, hsMatrix44 &prevMat, hsMatrix44 &curMat);
|
||||
void AngularVelocity(hsScalar &outputV, float elapsed, hsMatrix44 &prevMat, hsMatrix44 &curMat);
|
||||
float AngleRad2d (float x1, float y1, float x3, float y3);
|
||||
inline hsVector3 GetYAxis(hsMatrix44 &mat)
|
||||
{
|
||||
return hsVector3(mat.fMap[1][0], mat.fMap[1][1], mat.fMap[1][2]);
|
||||
}
|
||||
|
||||
plAnimatedController::plAnimatedController(plSceneObject* rootObject, plAGApplicator* rootApp, plPhysicalControllerCore* controller)
|
||||
: fRootObject(rootObject)
|
||||
, fRootApp(rootApp)
|
||||
, fController(controller)
|
||||
, fTurnStr(0.f)
|
||||
, fAnimAngVel(0.f)
|
||||
, fAnimPosVel(0.f, 0.f, 0.f)
|
||||
{
|
||||
}
|
||||
|
||||
void plAnimatedController::RecalcVelocity(double timeNow, double timePrev, hsBool useAnim /* = true */)
|
||||
{
|
||||
if (useAnim)
|
||||
{
|
||||
// while you may think it would be correct to cache this,
|
||||
// what we're actually asking is "what would the animation's
|
||||
// position be at the previous time given its *current*
|
||||
// parameters (particularly blends)"
|
||||
hsMatrix44 prevMat = ((plMatrixChannel *)fRootApp->GetChannel())->Value(timePrev, true);
|
||||
hsMatrix44 curMat = ((plMatrixChannel *)fRootApp->GetChannel())->Value(timeNow, true);
|
||||
|
||||
// If we get a valid linear velocity (ie, we didn't wrap around in the anim),
|
||||
// use it. Otherwise just reuse the previous frames velocity.
|
||||
hsVector3 linearVel;
|
||||
if (LinearVelocity(linearVel, (float)(timeNow - timePrev), prevMat, curMat))
|
||||
fAnimPosVel = linearVel;
|
||||
|
||||
// Automatically sets fAnimAngVel
|
||||
AngularVelocity(fAnimAngVel, (float)(timeNow - timePrev), prevMat, curMat);
|
||||
}
|
||||
else
|
||||
{
|
||||
fAnimPosVel.Set(0.f, 0.f, 0.f);
|
||||
fAnimAngVel = 0.f;
|
||||
}
|
||||
|
||||
if (fController)
|
||||
fController->SetVelocities(fAnimPosVel, fAnimAngVel + fTurnStr);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
const hsScalar plWalkingController::kControlledFlightThreshold = 1.f; // seconds
|
||||
|
||||
plWalkingController::plWalkingController(plSceneObject* rootObject, plAGApplicator* rootApp, plPhysicalControllerCore* controller)
|
||||
: plAnimatedController(rootObject, rootApp, controller)
|
||||
, fHitGroundInThisAge(false)
|
||||
, fWaitingForGround(false)
|
||||
, fControlledFlightTime(0)
|
||||
, fControlledFlight(0)
|
||||
, fImpactTime(0.f)
|
||||
, fImpactVelocity(0.f, 0.f, 0.f)
|
||||
, fClearImpact(false)
|
||||
, fGroundLastFrame(false)
|
||||
{
|
||||
if (fController)
|
||||
{
|
||||
fWalkingStrategy= TRACKED_NEW plWalkingStrategy(fController);
|
||||
fController->SetMovementSimulationInterface(fWalkingStrategy);
|
||||
}
|
||||
else
|
||||
fWalkingStrategy = nil;
|
||||
}
|
||||
|
||||
void plWalkingController::RecalcVelocity(double timeNow, double timePrev, hsBool useAnim)
|
||||
{
|
||||
if (!fHitGroundInThisAge && fController && fController->IsEnabled() && fWalkingStrategy->IsOnGround())
|
||||
fHitGroundInThisAge = true; // if we're not pinned and we're not in an age yet, we are now.
|
||||
|
||||
if (fClearImpact)
|
||||
{
|
||||
fImpactTime = 0.f;
|
||||
fImpactVelocity.Set(0.f, 0.f, 0.f);
|
||||
}
|
||||
|
||||
if (fController && !fWalkingStrategy->IsOnGround())
|
||||
{
|
||||
// PhysX Hack
|
||||
// LinearVelocity is always (0,0,0) outside the PhysController
|
||||
fImpactTime = fWalkingStrategy->GetAirTime();
|
||||
fImpactVelocity = fController->GetAchievedLinearVelocity();
|
||||
// convert orientation from subworld to avatar-local coordinates
|
||||
fImpactVelocity = (hsVector3)fController->GetLocalRotation().Rotate(&fImpactVelocity);
|
||||
fClearImpact = false;
|
||||
}
|
||||
else
|
||||
fClearImpact = true;
|
||||
|
||||
if (IsControlledFlight())
|
||||
{
|
||||
if (fWalkingStrategy && fWalkingStrategy->IsOnGround())
|
||||
fControlledFlightTime = fWalkingStrategy->GetAirTime();
|
||||
if(fGroundLastFrame&&(fWalkingStrategy && !fWalkingStrategy->IsOnGround()))
|
||||
{
|
||||
//we have started to leave the ground tell the movement strategy in case it cares
|
||||
fWalkingStrategy->StartJump();
|
||||
}
|
||||
if (fControlledFlightTime > kControlledFlightThreshold)
|
||||
EnableControlledFlight(false);
|
||||
}
|
||||
if (fWalkingStrategy)
|
||||
fGroundLastFrame = fWalkingStrategy->IsOnGround();
|
||||
else
|
||||
fGroundLastFrame=false;
|
||||
plAnimatedController::RecalcVelocity(timeNow, timePrev, useAnim);
|
||||
}
|
||||
|
||||
void plWalkingController::Reset(bool newAge)
|
||||
{
|
||||
|
||||
ActivateController();
|
||||
if (newAge)
|
||||
{
|
||||
if (fWalkingStrategy)
|
||||
fWalkingStrategy->ResetAirTime();
|
||||
fHitGroundInThisAge = false;
|
||||
}
|
||||
}
|
||||
void plWalkingController::ActivateController()
|
||||
{
|
||||
if (fWalkingStrategy)
|
||||
{
|
||||
fWalkingStrategy->RefreshConnectionToControllerCore();
|
||||
}
|
||||
else
|
||||
{
|
||||
fWalkingStrategy= TRACKED_NEW plWalkingStrategy(fController);
|
||||
fWalkingStrategy->RefreshConnectionToControllerCore();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
bool plWalkingController::EnableControlledFlight(bool status)
|
||||
{
|
||||
if (status)
|
||||
{
|
||||
if (fControlledFlight == 0)
|
||||
fControlledFlightTime = 0.f;
|
||||
|
||||
++fControlledFlight;
|
||||
fWaitingForGround = true;
|
||||
}
|
||||
else
|
||||
fControlledFlight = __max(--fControlledFlight, 0);
|
||||
|
||||
return status;
|
||||
}
|
||||
plWalkingController::~plWalkingController()
|
||||
{
|
||||
delete fWalkingStrategy;
|
||||
if (fController)
|
||||
fController->SetMovementSimulationInterface(nil);
|
||||
}
|
||||
#if 0
|
||||
void plWalkingController::Update()
|
||||
{
|
||||
// double elapsed = time.asDouble() - getRefresh().asDouble();
|
||||
// setRefresh(time);
|
||||
//
|
||||
// hsBool isPhysical = !fPhysical->GetProperty(plSimulationInterface::kPinned);
|
||||
// const Havok::Vector3 straightUp(0.0f, 0.0f, 1.0f);
|
||||
// hsBool alreadyInAge = fHitGroundInThisAge;
|
||||
//
|
||||
// int numContacts = fPhysical->GetNumContacts();
|
||||
// bool ground = false;
|
||||
// fPushingPhysical = nil;
|
||||
// int i, j;
|
||||
|
||||
/* for(i = 0; i < numContacts; i++)
|
||||
{
|
||||
plHKPhysical *contactPhys = fPhysical->GetContactPhysical(i);
|
||||
if (!contactPhys)
|
||||
continue; // Physical no longer exists. Skip it.
|
||||
|
||||
const Havok::ContactPoint *contact = fPhysical->GetContactPoint(i);
|
||||
hsScalar dotUp = straightUp.dot(contact->m_normal);
|
||||
if (dotUp > .5)
|
||||
ground = true;
|
||||
else if (contactPhys->GetProperty(plSimulationInterface::kAvAnimPushable))
|
||||
{
|
||||
hsPoint3 position;
|
||||
hsQuat rotation;
|
||||
fPhysical->GetPositionAndRotationSim(&position, &rotation);
|
||||
|
||||
hsQuat inverseRotation = rotation.Inverse();
|
||||
hsVector3 normal(contact->m_normal.x, contact->m_normal.y, contact->m_normal.z);
|
||||
fFacingPushingPhysical = (inverseRotation.Rotate(&kAvatarForward).InnerProduct(normal) < 0 ? true : false);
|
||||
|
||||
fPushingPhysical = contactPhys;
|
||||
}
|
||||
}
|
||||
|
||||
// We need to check for the case where the avatar hasn't collided with "ground", but is colliding
|
||||
// with a few other objects so that he's not actually falling (wedged in between some slopes).
|
||||
// We do this by answering the following question (in 2d top-down space): "If you sort the contact
|
||||
// normals by angle, is there a large enough gap between normals?"
|
||||
//
|
||||
// If you think in terms of geometry, this means a collection of surfaces are all pushing on you.
|
||||
// If they're pushing from all sides, you have nowhere to go, and you won't fall. There needs to be
|
||||
// a gap, so that you're pushed out and have somewhere to fall. This is the same as finding a gap
|
||||
// larger than 180 degrees between sorted normals.
|
||||
//
|
||||
// The problem is that on top of that, the avatar needs enough force to shove him out that gap (he
|
||||
// has to overcome friction). I deal with that by making the threshold (360 - (180 - 60) = 240). I've
|
||||
// seen up to 220 reached in actual gameplay in a situation where we'd want this to take effect.
|
||||
// This is the same running into 2 walls where the angle between them is 60.
|
||||
const hsScalar threshold = hsScalarDegToRad(240);
|
||||
if (!ground && numContacts >= 2)
|
||||
{
|
||||
// Can probably do a special case for exactly 2 contacts. Not sure if it's worth it...
|
||||
|
||||
fCollisionAngles.SetCount(numContacts);
|
||||
for (i = 0; i < numContacts; i++)
|
||||
{
|
||||
const Havok::ContactPoint *contact = fPhysical->GetContactPoint(i);
|
||||
fCollisionAngles[i] = hsATan2(contact->m_normal.y, contact->m_normal.x);
|
||||
}
|
||||
|
||||
// numContacts is rarely larger than 6, so let's do a simple bubble sort.
|
||||
for (i = 0; i < numContacts; i++)
|
||||
{
|
||||
for (j = i + 1; j < numContacts; j++)
|
||||
{
|
||||
if (fCollisionAngles[i] > fCollisionAngles[j])
|
||||
{
|
||||
hsScalar tempAngle = fCollisionAngles[i];
|
||||
fCollisionAngles[i] = fCollisionAngles[j];
|
||||
fCollisionAngles[j] = tempAngle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// sorted, now we check.
|
||||
for (i = 1; i < numContacts; i++)
|
||||
{
|
||||
if (fCollisionAngles[i] - fCollisionAngles[i - 1] >= threshold)
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == numContacts)
|
||||
{
|
||||
// We got to the end. Check the last with the first and make your decision.
|
||||
if (!(fCollisionAngles[0] - fCollisionAngles[numContacts - 1] >= (threshold - 2 * hsScalarPI)))
|
||||
ground = true;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
bool ground = fController ? fController->GotGroundHit() : true;
|
||||
bool isPhysical = true;
|
||||
|
||||
if (!fHitGroundInThisAge && isPhysical)
|
||||
fHitGroundInThisAge = true; // if we're not pinned and we're not in an age yet, we are now.
|
||||
|
||||
if (IsControlledFlight())
|
||||
fControlledFlightTime += (hsScalar)elapsed;
|
||||
if (fControlledFlightTime > kControlledFlightThreshold && numContacts > 0)
|
||||
EnableControlledFlight(false);
|
||||
|
||||
if (ground || !isPhysical)
|
||||
{
|
||||
if (!IsControlledFlight() && !IsOnGround())
|
||||
{
|
||||
// The first ground contact in an age doesn't count.
|
||||
// if (alreadyInAge)
|
||||
// {
|
||||
// hsVector3 vel;
|
||||
// fPhysical->GetLinearVelocitySim(vel);
|
||||
// fImpactVel = vel.fZ;
|
||||
// fTimeInAirPeak = (hsScalar)(fTimeInAir + elapsed);
|
||||
// }
|
||||
|
||||
fWaitingForGround = false;
|
||||
}
|
||||
fTimeInAir = 0;
|
||||
}
|
||||
else if (elapsed < plSimulationMgr::GetInstance()->GetMaxDelta())
|
||||
{
|
||||
// If the simultation skipped a huge chunk of time, we didn't process the
|
||||
// collisions, which could trick us into thinking we've just gone a long
|
||||
// time without hitting ground. So we only count the time if this wasn't
|
||||
// the case.
|
||||
fTimeInAir += (hsScalar)elapsed;
|
||||
}
|
||||
|
||||
|
||||
// Tweakage so that we still fall under the right conditions.
|
||||
// If we're in controlled flight, or standing still with ground solidly under us (probe hit). We only use anim velocity.
|
||||
// if (!IsControlledFlight() && !(ground && fProbeHitGround && fAnimPosVel.fX == 0 && fAnimPosVel.fY == 0))
|
||||
// {
|
||||
// hsVector3 curV;
|
||||
// fPhysical->GetLinearVelocitySim(curV);
|
||||
// fAnimPosVel.fZ = curV.fZ;
|
||||
//
|
||||
// // Prevents us from going airborn from running up bumps/inclines.
|
||||
// if (IsOnGround() && fAnimPosVel.fZ > 0.f)
|
||||
// fAnimPosVel.fZ = 0.f;
|
||||
//
|
||||
// // Unless we're on the ground and moving, or standing still with a probe hit, we use the sim's other axes too.
|
||||
// if (!(IsOnGround() && (fProbeHitGround || fAnimPosVel.fX != 0 || fAnimPosVel.fY != 0)))
|
||||
// {
|
||||
// fAnimPosVel.fX = curV.fX;
|
||||
// fAnimPosVel.fY = curV.fY;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// fPhysical->SetLinearVelocitySim(fAnimPosVel);
|
||||
// fPhysical->SetSpin(fAnimAngVel + fTurnStr, hsVector3(0.0f, 0.0f, 1.0f));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if 0
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
plSimDefs::ActionType plHorizontalFreezeAction::GetType()
|
||||
{
|
||||
return plSimDefs::kHorizontalFreeze;
|
||||
}
|
||||
|
||||
void plHorizontalFreezeAction::apply(Havok::Subspace &s, Havok::hkTime time)
|
||||
{
|
||||
double elapsed = time.asDouble() - getRefresh().asDouble();
|
||||
setRefresh(time);
|
||||
|
||||
int numContacts = fPhysical->GetNumContacts();
|
||||
bool ground = false;
|
||||
const Havok::Vector3 straightUp(0.0f, 0.0f, 1.0f);
|
||||
int i;
|
||||
for(i = 0; i < numContacts; i++)
|
||||
{
|
||||
const Havok::ContactPoint *contact = fPhysical->GetContactPoint(i);
|
||||
hsScalar dotUp = straightUp.dot(contact->m_normal);
|
||||
if (dotUp > .5)
|
||||
ground = true;
|
||||
}
|
||||
|
||||
hsVector3 vel;
|
||||
fPhysical->GetLinearVelocitySim(vel);
|
||||
vel.fX = 0.0;
|
||||
vel.fY = 0.0;
|
||||
if (ground)
|
||||
vel.fZ = 0;
|
||||
fPhysical->SetLinearVelocitySim(vel);
|
||||
fPhysical->ClearContacts();
|
||||
}
|
||||
#endif
|
||||
plSwimmingController::plSwimmingController(plSceneObject* rootObject, plAGApplicator* rootApp, plPhysicalControllerCore* controller)
|
||||
:plAnimatedController(rootObject,rootApp,controller)
|
||||
{
|
||||
if (controller)
|
||||
fSwimmingStrategy= TRACKED_NEW plSwimStrategy(controller);
|
||||
else
|
||||
fSwimmingStrategy = nil;
|
||||
}
|
||||
plSwimmingController::~plSwimmingController()
|
||||
{
|
||||
delete fSwimmingStrategy;
|
||||
}
|
||||
|
||||
plRidingAnimatedPhysicalController::plRidingAnimatedPhysicalController(plSceneObject* rootObject, plAGApplicator* rootApp, plPhysicalControllerCore* controller)
|
||||
: plWalkingController(rootObject, rootApp, controller)
|
||||
{
|
||||
if(controller)
|
||||
fWalkingStrategy = TRACKED_NEW plRidingAnimatedPhysicalStrategy(controller);
|
||||
else
|
||||
fWalkingStrategy = nil;
|
||||
}
|
||||
plRidingAnimatedPhysicalController::~plRidingAnimatedPhysicalController()
|
||||
{
|
||||
delete fWalkingStrategy;
|
||||
fWalkingStrategy=nil;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/*
|
||||
Purpose:
|
||||
|
||||
ANGLE_RAD_2D returns the angle in radians swept out between two rays in 2D.
|
||||
|
||||
Discussion:
|
||||
|
||||
Except for the zero angle case, it should be true that
|
||||
|
||||
ANGLE_RAD_2D(X1,Y1,X2,Y2,X3,Y3)
|
||||
+ ANGLE_RAD_2D(X3,Y3,X2,Y2,X1,Y1) = 2 * PI
|
||||
|
||||
Modified:
|
||||
|
||||
19 April 1999
|
||||
|
||||
Author:
|
||||
|
||||
John Burkardt
|
||||
|
||||
Parameters:
|
||||
|
||||
Input, float X1, Y1, X2, Y2, X3, Y3, define the rays
|
||||
( X1-X2, Y1-Y2 ) and ( X3-X2, Y3-Y2 ) which in turn define the
|
||||
angle, counterclockwise from ( X1-X2, Y1-Y2 ).
|
||||
|
||||
Output, float ANGLE_RAD_2D, the angle swept out by the rays, measured
|
||||
in radians. 0 <= ANGLE_DEG_2D < 2 PI. If either ray has zero length,
|
||||
then ANGLE_RAD_2D is set to 0.
|
||||
*/
|
||||
|
||||
static float AngleRad2d ( float x1, float y1, float x3, float y3 )
|
||||
{
|
||||
float value;
|
||||
float x;
|
||||
float y;
|
||||
|
||||
x = ( x1 ) * ( x3 ) + ( y1 ) * ( y3 );
|
||||
y = ( x1 ) * ( y3 ) - ( y1 ) * ( x3 );
|
||||
|
||||
if ( x == 0.0 && y == 0.0 ) {
|
||||
value = 0.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
value = atan2 ( y, x );
|
||||
|
||||
if ( value < 0.0 )
|
||||
{
|
||||
value = (float)(value + TWO_PI);
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
static hsBool LinearVelocity(hsVector3 &outputV, float elapsed, hsMatrix44 &prevMat, hsMatrix44 &curMat)
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
hsPoint3 startPos(0.0f, 0.0f, 0.0f); // default position (at start of anim)
|
||||
hsPoint3 prevPos = prevMat.GetTranslate(); // position previous frame
|
||||
hsPoint3 nowPos = curMat.GetTranslate(); // position current frame
|
||||
|
||||
hsVector3 prev2Now = (hsVector3)(nowPos - prevPos); // frame-to-frame delta
|
||||
|
||||
if (fabs(prev2Now.fX) < 0.0001f && fabs(prev2Now.fY) < 0.0001f && fabs(prev2Now.fZ) < 0.0001f)
|
||||
{
|
||||
outputV.Set(0.f, 0.f, 0.f);
|
||||
result = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
hsVector3 start2Now = (hsVector3)(nowPos - startPos); // start-to-frame delta
|
||||
|
||||
float prev2NowMagSqr = prev2Now.MagnitudeSquared();
|
||||
float start2NowMagSqr = start2Now.MagnitudeSquared();
|
||||
|
||||
float dot = prev2Now.InnerProduct(start2Now);
|
||||
|
||||
// HANDLING ANIMATION WRAPPING:
|
||||
// the vector from the animation origin to the current frame should point in roughly
|
||||
// the same direction as the vector from the previous animation position to the
|
||||
// current animation position.
|
||||
//
|
||||
// If they don't agree (dot < 0,) then we probably mpst wrapped around.
|
||||
// The right answer would be to compare the current frame to the start of
|
||||
// the anim loop, but it's cheaper to cheat and return false,
|
||||
// telling the caller to use the previous frame's velocity.
|
||||
if (dot > 0.0f)
|
||||
{
|
||||
prev2Now /= elapsed;
|
||||
|
||||
float xfabs = fabs(prev2Now.fX);
|
||||
float yfabs = fabs(prev2Now.fY);
|
||||
float zfabs = fabs(prev2Now.fZ);
|
||||
static const float maxVel = 20.0f;
|
||||
hsBool valid = xfabs < maxVel && yfabs < maxVel && zfabs < maxVel;
|
||||
|
||||
if (valid)
|
||||
{
|
||||
outputV = prev2Now;
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static void AngularVelocity(hsScalar &outputV, float elapsed, hsMatrix44 &prevMat, hsMatrix44 &curMat)
|
||||
{
|
||||
outputV = 0.f;
|
||||
hsScalar appliedVelocity = 0.0f;
|
||||
hsVector3 prevForward = GetYAxis(prevMat);
|
||||
hsVector3 curForward = GetYAxis(curMat);
|
||||
|
||||
hsScalar angleSincePrev = AngleRad2d(curForward.fX, curForward.fY, prevForward.fX, prevForward.fY);
|
||||
hsBool sincePrevSign = angleSincePrev > 0.0f;
|
||||
if (angleSincePrev > hsScalarPI)
|
||||
angleSincePrev = angleSincePrev - TWO_PI;
|
||||
|
||||
const hsVector3 startForward = hsVector3(0, -1.0, 0); // the Y orientation of a "resting" armature....
|
||||
hsScalar angleSinceStart = AngleRad2d(curForward.fX, curForward.fY, startForward.fX, startForward.fY);
|
||||
hsBool sinceStartSign = angleSinceStart > 0.0f;
|
||||
if (angleSinceStart > hsScalarPI)
|
||||
angleSinceStart = angleSinceStart - TWO_PI;
|
||||
|
||||
// HANDLING ANIMATION WRAPPING:
|
||||
// under normal conditions, the angle from rest to the current frame will have the same
|
||||
// sign as the angle from the previous frame to the current frame.
|
||||
// if it does not, we have (most likely) wrapped the motivating animation from frame n back
|
||||
// to frame zero, creating a large angle from the previous frame to the current one
|
||||
if (sincePrevSign == sinceStartSign)
|
||||
{
|
||||
// signs are the same; didn't wrap; use the frame-to-frame angle difference
|
||||
appliedVelocity = angleSincePrev / elapsed; // rotation / time
|
||||
if (fabs(appliedVelocity) < 3)
|
||||
{
|
||||
outputV = appliedVelocity;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,217 @@
|
||||
/*==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==*/
|
||||
#ifndef PL_HK_CALLBACK_ACTION_H
|
||||
#define PL_HK_CALLBACK_ACTION_H
|
||||
|
||||
#include "hsGeometry3.h"
|
||||
#include "hsMatrix44.h"
|
||||
#include "hsTemplates.h"
|
||||
#include "../pnKeyedObject/plKey.h"
|
||||
#include "../plPhysical/plSimDefs.h"
|
||||
#include "../pnMessage/plMessage.h"
|
||||
#include "plPhysicalControllerCore.h"
|
||||
class plLOSHitMsg;
|
||||
class plAGApplicator;
|
||||
class plSceneObject;
|
||||
class plPhysical;
|
||||
class plAvatarController;
|
||||
class plCoordinateInterface;
|
||||
class plPhysicalControllerCore;
|
||||
// Used by the other controllers to actually move the avatar. The actual
|
||||
// implementation is in the physics system.
|
||||
/*class plPhysicalController
|
||||
{
|
||||
public:
|
||||
// Implemented in the physics system. If you're linking this without that for
|
||||
// some reason, just stub this function out.
|
||||
//
|
||||
// Pass in the key to the root sceneobject for the avatar
|
||||
static plPhysicalController* Create(plKey ownerSO, hsScalar height, hsScalar width);
|
||||
|
||||
virtual ~plPhysicalController() {}
|
||||
|
||||
// A disabled avatar doesn't move or accumulate air time if he's off the ground.
|
||||
virtual void Enable(bool enable) = 0;
|
||||
virtual bool IsEnabled() const = 0;
|
||||
|
||||
// Set the LOS DB this avatar will be in (only one)
|
||||
virtual void SetLOSDB(plSimDefs::plLOSDB losDB) = 0;
|
||||
|
||||
// Call this once per frame with the velocities of the avatar in avatar space.
|
||||
virtual void SetVelocities(const hsVector3& linearVel, hsScalar angVel) = 0;
|
||||
|
||||
// Gets the actual velocity we achieved in the last step (relative to our subworld)
|
||||
virtual const hsVector3& GetLinearVelocity() const = 0;
|
||||
virtual void ResetAchievedLinearVelocity() = 0;
|
||||
|
||||
// Get and set the current subworld for the avatar. Use nil for the main world.
|
||||
virtual plKey GetSubworld() const = 0;
|
||||
virtual void SetSubworld(plKey world) = 0;
|
||||
|
||||
// If IsOnGround returns false, GetAirTime will tell you how long the avatar
|
||||
// has been airborne. Use ResetAirTime to reset the air time to zero, for
|
||||
// cases like when the avatar spawns into a new age.
|
||||
virtual bool IsOnGround() const = 0;
|
||||
virtual bool IsOnFalseGround() const = 0;
|
||||
virtual hsScalar GetAirTime() const = 0;
|
||||
virtual void ResetAirTime() = 0;
|
||||
|
||||
virtual plPhysical* GetPushingPhysical() const = 0;
|
||||
virtual bool GetFacingPushingPhysical() const = 0;
|
||||
|
||||
// A helper function to get the coordinate interface for the avatars current
|
||||
// world. Handy if you need to convert points to and from that. This will
|
||||
// return nil if the avatar is in the main world (ie, you don't need to do
|
||||
// any translation).
|
||||
virtual const plCoordinateInterface* GetSubworldCI() const = 0;
|
||||
|
||||
// For the avatar SDL only
|
||||
virtual void GetState(hsPoint3& pos, float& zRot) = 0;
|
||||
virtual void SetState(const hsPoint3& pos, float zRot) = 0;
|
||||
|
||||
// kinematic stuff .... should be just for when playing a behavior...
|
||||
virtual void Kinematic(bool state) = 0;
|
||||
virtual bool IsKinematic() = 0;
|
||||
virtual void GetKinematicPosition(hsPoint3& pos) = 0;
|
||||
|
||||
virtual const hsMatrix44& GetPrevSubworldW2L() = 0;
|
||||
|
||||
//when seeking no longer want to interact with exclusion regions
|
||||
virtual void SetSeek(bool seek)=0;
|
||||
|
||||
|
||||
};
|
||||
*/
|
||||
class plAvatarController
|
||||
{
|
||||
public:
|
||||
virtual ~plAvatarController() {}
|
||||
};
|
||||
|
||||
class plAnimatedController : public plAvatarController
|
||||
{
|
||||
public:
|
||||
plAnimatedController(plSceneObject* rootObject, plAGApplicator* rootApp, plPhysicalControllerCore* controller);
|
||||
|
||||
virtual void RecalcVelocity(double timeNow, double timePrev, hsBool useAnim = true);
|
||||
void SetTurnStrength(hsScalar val) { fTurnStr = val; }
|
||||
hsScalar GetTurnStrength() { return fTurnStr; }
|
||||
virtual void ActivateController()=0;
|
||||
protected:
|
||||
plSceneObject* fRootObject;
|
||||
plPhysicalControllerCore* fController;
|
||||
plAGApplicator* fRootApp;
|
||||
hsScalar fAnimAngVel;
|
||||
hsVector3 fAnimPosVel;
|
||||
hsScalar fTurnStr; // Explicit turning, separate from animations
|
||||
};
|
||||
|
||||
class plWalkingController : public plAnimatedController
|
||||
{
|
||||
public:
|
||||
plWalkingController(plSceneObject* rootObject, plAGApplicator* rootApp, plPhysicalControllerCore* controller);
|
||||
virtual ~plWalkingController();
|
||||
virtual void RecalcVelocity(double timeNow, double timePrev, hsBool useAnim = true);
|
||||
|
||||
void Reset(bool newAge);
|
||||
bool IsControlledFlight() const { return fControlledFlight != 0; }
|
||||
bool IsOnGround() const { return fWalkingStrategy ? fWalkingStrategy->IsOnGround() : true; }
|
||||
bool IsOnFalseGround() const { return fWalkingStrategy ? fWalkingStrategy->IsOnFalseGround() : true; }
|
||||
bool HitGroundInThisAge() const { return fHitGroundInThisAge; }
|
||||
bool EnableControlledFlight(bool status);
|
||||
hsScalar GetAirTime() const { return fWalkingStrategy ? fWalkingStrategy->GetAirTime() : 0.f; }
|
||||
void ResetAirTime() { if (fWalkingStrategy) fWalkingStrategy->ResetAirTime(); }
|
||||
hsScalar GetForwardVelocity() const;
|
||||
void ActivateController();
|
||||
// Check these after the avatar the avatar hits the ground for his total
|
||||
// hangtime and impact velocity.
|
||||
hsScalar GetImpactTime() const { return fImpactTime; }
|
||||
const hsVector3& GetImpactVelocity() const { return fImpactVelocity; }
|
||||
|
||||
plPhysical* GetPushingPhysical() const
|
||||
{
|
||||
if(fController)return fController->GetPushingPhysical();
|
||||
else return nil;
|
||||
}
|
||||
bool GetFacingPushingPhysical() const
|
||||
{ if(fController)return fController->GetFacingPushingPhysical();
|
||||
else return false;
|
||||
}
|
||||
|
||||
|
||||
protected:
|
||||
bool fHitGroundInThisAge;
|
||||
bool fWaitingForGround; // We've gone airborne. IsOnGround() returns false until we hit ground again.
|
||||
hsScalar fControlledFlightTime;
|
||||
int fControlledFlight; // Count of how many are currently forcing flight
|
||||
plWalkingStrategy* fWalkingStrategy;
|
||||
hsScalar fImpactTime;
|
||||
hsVector3 fImpactVelocity;
|
||||
bool fClearImpact;
|
||||
bool fGroundLastFrame;//used for a test to pass the event of first getting air during a jump
|
||||
static const hsScalar kControlledFlightThreshold;
|
||||
};
|
||||
class plSwimmingController: public plAnimatedController
|
||||
{
|
||||
public :
|
||||
plSwimmingController(plSceneObject* rootObject, plAGApplicator* rootApp, plPhysicalControllerCore* controller);
|
||||
virtual ~plSwimmingController();
|
||||
void SetSurface(plSwimRegionInterface *region, hsScalar surfaceHeight){
|
||||
fSwimmingStrategy->SetSurface(region,surfaceHeight);
|
||||
}
|
||||
hsScalar GetBuoyancy() { return fSwimmingStrategy->GetBuoyancy(); }
|
||||
hsBool IsOnGround() { return fSwimmingStrategy->IsOnGround(); }
|
||||
hsBool HadContacts() { return fSwimmingStrategy->HadContacts();}
|
||||
void Enable(bool en){if (fController) fController->Enable(en);}
|
||||
plPhysicalControllerCore* GetController(){return fController;}
|
||||
virtual void ActivateController(){fSwimmingStrategy->RefreshConnectionToControllerCore();}
|
||||
protected:
|
||||
plSwimStrategy* fSwimmingStrategy;
|
||||
|
||||
};
|
||||
class plRidingAnimatedPhysicalController: public plWalkingController
|
||||
{
|
||||
public:
|
||||
plRidingAnimatedPhysicalController(plSceneObject* rootObject, plAGApplicator* rootApp, plPhysicalControllerCore* controller);
|
||||
virtual ~plRidingAnimatedPhysicalController();
|
||||
};
|
||||
#endif // PL_HK_CALLBACK_ACTION_H
|
@ -39,7 +39,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
Mead, WA 99021
|
||||
|
||||
*==LICENSE==*/
|
||||
#include "plPhysicalControllerCore.h"
|
||||
#include "../plAvatar/plAvCallbackAction.h"
|
||||
|
||||
#include "hsTypes.h"
|
||||
|
||||
@ -129,7 +129,7 @@ bool plAvLadderMod::IIsReadyToClimb()
|
||||
if (armMod)
|
||||
{
|
||||
plAvBrainHuman* brain = plAvBrainHuman::ConvertNoRef(armMod->GetCurrentBrain());
|
||||
if (brain && brain->IsMovingForward() && brain->fWalkingStrategy->IsOnGround())
|
||||
if (brain && brain->IsMovingForward() && brain->fCallbackAction->IsOnGround())
|
||||
movingForward = true;
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "plAGAnim.h"
|
||||
#include "plArmatureMod.h"
|
||||
#include "plAvatarMgr.h"
|
||||
#include "plPhysicalControllerCore.h"
|
||||
#include "plAvCallbackAction.h"
|
||||
|
||||
// other
|
||||
#include "../plMessage/plAvatarMsg.h"
|
||||
@ -462,10 +462,10 @@ hsBool plAvTaskSeek::IFinishPosition(hsPoint3 &newPosition,
|
||||
{
|
||||
// While warping, we might be hovering just above the ground. Don't want that to
|
||||
// trigger any falling behavior.
|
||||
if(brain&&brain->fWalkingStrategy)
|
||||
if(brain&&brain->fCallbackAction)
|
||||
{
|
||||
|
||||
brain->fWalkingStrategy->ResetAirTime();
|
||||
brain->fCallbackAction->ResetAirTime();
|
||||
}
|
||||
// how far will we translate this frame?
|
||||
float thisDist = kFloatSpeed * elapsed;
|
||||
|
@ -47,7 +47,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../plAvatar/plAvBrainClimb.h"
|
||||
#include "../plAvatar/plAvBrainDrive.h"
|
||||
#include "../plAvatar/plAnimStage.h"
|
||||
#include "../plAvatar/plPhysicalControllerCore.h"
|
||||
#include "../plAvatar/plAvCallbackAction.h"
|
||||
#include "../pnSceneObject/plSceneObject.h"
|
||||
#include "../pnMessage/plSDLModifierMsg.h"
|
||||
#include "../plSDL/plSDL.h"
|
||||
|
@ -53,7 +53,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "plAGAnimInstance.h"
|
||||
#include "plAGModifier.h"
|
||||
#include "plMatrixChannel.h"
|
||||
#include "plPhysicalControllerCore.h"
|
||||
#include "plAvCallbackAction.h"
|
||||
#include "plAvatarMgr.h"
|
||||
|
||||
// global
|
||||
@ -689,7 +689,7 @@ hsBool plAvOneShotTask::Process(plArmatureMod *avatar, plArmatureBrain *brain, d
|
||||
if(fEnablePhysicsAtEnd)
|
||||
{
|
||||
#if 0//ndef PLASMA_EXTERNAL_RELEASE
|
||||
if (!humanBrain || humanBrain->fWalkingStrategy->HitGroundInThisAge())
|
||||
if (!humanBrain || humanBrain->fCallbackAction->HitGroundInThisAge())
|
||||
{
|
||||
// For some reason, calling CheckValidPosition at the beginning of
|
||||
// an age can cause detectors to incorrectly report collisions. So
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -41,286 +41,310 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
*==LICENSE==*/
|
||||
#ifndef PLPHYSICALCONTROLLERCORE_H
|
||||
#define PLPHYSICALCONTROLLERCORE_H
|
||||
|
||||
#include "hsGeometry3.h"
|
||||
#include "hsMatrix44.h"
|
||||
#include "hsQuat.h"
|
||||
#include "hsTemplates.h"
|
||||
#include "../pnKeyedObject/plKey.h"
|
||||
#include "../plPhysical/plSimDefs.h"
|
||||
#include <vector>
|
||||
#include "../pnMessage/plMessage.h"
|
||||
|
||||
#include "hsQuat.h"
|
||||
#define PHYSX_ONLY_TRIGGER_FROM_KINEMATIC 1
|
||||
#define kSLOPELIMIT (cosf(hsScalarDegToRad(55.f)))
|
||||
|
||||
class plCoordinateInterface;
|
||||
class plPhysical;
|
||||
class plMovementStrategy;
|
||||
class plAGApplicator;
|
||||
class plPXPhysical;
|
||||
class plSwimRegionInterface;
|
||||
|
||||
#define kSlopeLimit (cosf(hsScalarDegToRad(55.f)))
|
||||
|
||||
//Replacement for for plPhysicalController stripped out some walk specific code
|
||||
//plPhysicalControllerCore needs to have movement strategies registered to it these will then
|
||||
//be called by the controller during the simulation steps. The Strategies need to at least have an
|
||||
// Apply and Update definition. Everything else should be movement specific. I hope to come back and
|
||||
//and refactor when I have time this in the future.
|
||||
enum plControllerCollisionFlags
|
||||
{
|
||||
kSides = 1,
|
||||
kTop = (1 << 1),
|
||||
kBottom = (1 << 2)
|
||||
{
|
||||
kSides=1,
|
||||
kTop= (1<<1),
|
||||
kBottom=(1<<2),
|
||||
};
|
||||
|
||||
struct plControllerSweepRecord
|
||||
class plMovementStrategySimulationInterface
|
||||
{
|
||||
public:
|
||||
|
||||
virtual void Apply(hsScalar delSecs)=0;
|
||||
virtual void Update(hsScalar delSecs)=0;
|
||||
//most strategies don't require this. Only the ones that require behavior like a physical or need
|
||||
//something after the sim step. this used to be taken care of by Update, but this was moved to take care of
|
||||
//some of the frame lag
|
||||
virtual void PostStep(hsScalar delSecs){};
|
||||
virtual void IAddContactNormals(hsVector3& vec){fContactNormals.Append(vec);}
|
||||
virtual void AddOnTopOfObject(plPhysical* phys){ fOnTopOf.Append(phys);}
|
||||
virtual void LeaveAge()
|
||||
{
|
||||
fContactNormals.SetCount(0);
|
||||
fOnTopOf.SetCount(0);
|
||||
}
|
||||
protected:
|
||||
hsTArray<hsVector3> fContactNormals;
|
||||
hsTArray<plPhysical* > fOnTopOf;
|
||||
};
|
||||
|
||||
class plControllerSweepRecord
|
||||
{
|
||||
public:
|
||||
plPhysical *ObjHit;
|
||||
hsPoint3 Point;
|
||||
hsVector3 Normal;
|
||||
hsPoint3 locHit;//World space
|
||||
hsScalar TimeHit;//Normalized between 0 and 1
|
||||
hsVector3 Norm;
|
||||
};
|
||||
|
||||
bool operator<(const plControllerSweepRecord left, const plControllerSweepRecord right);
|
||||
class plPhysicalControllerCore
|
||||
{
|
||||
public:
|
||||
plPhysicalControllerCore(plKey ownerSceneObject, hsScalar height, hsScalar radius);
|
||||
virtual ~plPhysicalControllerCore() { }
|
||||
|
||||
// An ArmatureMod has its own idea about when physics should be enabled/disabled.
|
||||
// Use plArmatureModBase::EnablePhysics() instead.
|
||||
virtual ~plPhysicalControllerCore();
|
||||
virtual void Move(hsVector3 displacement, unsigned int collideWith, unsigned int &collisionResults)=0;
|
||||
virtual void SetMovementSimulationInterface(plMovementStrategySimulationInterface* strat){fMovementInterface=strat;}
|
||||
virtual void Apply(hsScalar delSecs);
|
||||
virtual void Update(hsScalar delSecs);
|
||||
virtual void PostStep(hsScalar delSecs);
|
||||
// A disabled avatar doesn't move or accumulate air time if he's off the ground.
|
||||
virtual void Enable(bool enable) = 0;
|
||||
virtual bool IsEnabled() { return fEnabled; }
|
||||
|
||||
// Subworld
|
||||
virtual plKey GetSubworld() { return fWorldKey; }
|
||||
virtual bool IsEnabled() {return fEnabled;}
|
||||
virtual plKey GetSubworld() {return fWorldKey;}
|
||||
virtual void SetSubworld(plKey world) = 0;
|
||||
virtual const plCoordinateInterface* GetSubworldCI();
|
||||
|
||||
virtual const plCoordinateInterface* GetSubworldCI() const = 0;
|
||||
// For the avatar SDL only
|
||||
virtual void GetState(hsPoint3& pos, float& zRot) = 0;
|
||||
virtual void SetState(const hsPoint3& pos, float zRot) = 0;
|
||||
|
||||
// The LOS DB this avatar is in (only one)
|
||||
virtual plSimDefs::plLOSDB GetLOSDB() { return fLOSDB; }
|
||||
virtual void SetLOSDB(plSimDefs::plLOSDB losDB) { fLOSDB = losDB; }
|
||||
|
||||
// Movement strategy
|
||||
virtual void SetMovementStrategy(plMovementStrategy* strategy) = 0;
|
||||
|
||||
// Global location
|
||||
virtual const hsMatrix44& GetLastGlobalLoc() { return fLastGlobalLoc; }
|
||||
virtual void SetGlobalLoc(const hsMatrix44& l2w) = 0;
|
||||
|
||||
// Local sim position
|
||||
virtual void GetPositionSim(hsPoint3& pos) = 0;
|
||||
|
||||
// Move kinematic controller
|
||||
virtual void Move(hsVector3 displacement, unsigned int collideWith, unsigned int &collisionResults) = 0;
|
||||
|
||||
// Set linear velocity on dynamic controller
|
||||
virtual void SetLinearVelocitySim(const hsVector3& linearVel) = 0;
|
||||
|
||||
// Sweep the controller path from startPos through endPos
|
||||
virtual int SweepControllerPath(const hsPoint3& startPos,const hsPoint3& endPos, hsBool vsDynamics, hsBool vsStatics,
|
||||
UInt32& vsSimGroups, std::vector<plControllerSweepRecord>& hits) = 0;
|
||||
|
||||
// any clean up for the controller should go here
|
||||
virtual void LeaveAge() = 0;
|
||||
|
||||
// Local rotation
|
||||
const hsQuat& GetLocalRotation() const { return fLocalRotation; }
|
||||
// kinematic stuff .... should be just for when playing a behavior...
|
||||
virtual void Kinematic(bool state) = 0;
|
||||
virtual bool IsKinematic() = 0;
|
||||
virtual void GetKinematicPosition(hsPoint3& pos) = 0;
|
||||
virtual const hsMatrix44& GetPrevSubworldW2L() = 0;
|
||||
//when seeking no longer want to interact with exclusion regions
|
||||
virtual void SetSeek(bool seek){fSeeking=seek;}
|
||||
virtual bool IsSeeking(){return fSeeking;}
|
||||
static plPhysicalControllerCore* Create(plKey ownerSO, hsScalar height, hsScalar radius);
|
||||
virtual plMovementStrategySimulationInterface* GetMovementInterface(){return fMovementInterface;}
|
||||
plPhysicalControllerCore(plKey ownerSceneObject, hsScalar height, hsScalar radius);
|
||||
virtual plKey GetOwner(){return fOwner;};
|
||||
// Set the LOS DB this avatar will be in (only one)
|
||||
virtual void SetLOSDB(plSimDefs::plLOSDB losDB) { fLOSDB = losDB; } ;
|
||||
virtual plSimDefs::plLOSDB GetLOSDB() {return fLOSDB ; }
|
||||
virtual const hsMatrix44& GetLastGlobalLoc()=0;
|
||||
virtual void SetKinematicLoc(const hsMatrix44& l2w)=0;
|
||||
virtual void SetGlobalLoc(const hsMatrix44& l2w)=0;
|
||||
virtual bool IsEnabledChanged(){return fEnableChanged;}
|
||||
virtual void HandleEnableChanged()=0;
|
||||
virtual bool IsKinematicChanged(){return fKinematicChanged;}
|
||||
virtual void GetPositionSim(hsPoint3& pos)=0;
|
||||
virtual void HandleKinematicChanged()=0;
|
||||
virtual bool IsKinematicEnableNextUpdate(){return fKinematicEnableNextUpdate;}
|
||||
virtual void HandleKinematicEnableNextUpdate()=0;
|
||||
virtual void MoveKinematicToController(hsPoint3& pos)=0;
|
||||
virtual void UpdateControllerAndPhysicalRep()=0;
|
||||
virtual void CheckAndHandleAnyStateChanges();
|
||||
virtual void UpdateSubstepNonPhysical();
|
||||
virtual const hsPoint3& GetLocalPosition()=0;
|
||||
const hsQuat& GetLocalRotation() { return fLocalRotation; }
|
||||
virtual void MoveActorToSim();
|
||||
|
||||
virtual void OverrideAchievedVelocity(hsVector3 newAchievedVel)
|
||||
{//because of things like superjumps this is needed I'd rather not, but can't help it
|
||||
fAchievedLinearVelocity=newAchievedVel;
|
||||
}
|
||||
//any clean up for the controller should go here
|
||||
virtual void LeaveAge()=0;
|
||||
hsVector3 DisplacementLastStep(){return fDisplacementThisStep;}
|
||||
hsVector3 MeanVelocityForLastStep()
|
||||
{
|
||||
hsVector3 vel=fDisplacementThisStep;
|
||||
return vel/fSimLength;
|
||||
}
|
||||
void SendCorrectionMessages();
|
||||
void IncrementAngle(hsScalar deltaAngle);
|
||||
void UpdateWorldRelativePos();
|
||||
virtual void SetLinearVelocity(const hsVector3& linearVel){fLinearVelocity=linearVel;}
|
||||
//should actually be a 3 vector but everywhere else it is assumed to be just around Z
|
||||
virtual void SetAngularVelocity(const hsScalar angvel){ fAngularVelocity=angvel;}
|
||||
virtual void SetVelocities(const hsVector3& linearVel, hsScalar angVel)
|
||||
{
|
||||
fLinearVelocity=linearVel;
|
||||
fAngularVelocity=angVel;
|
||||
}
|
||||
|
||||
// Linear velocity
|
||||
void SetLinearVelocity(const hsVector3& linearVel) { fLinearVelocity = linearVel; }
|
||||
const hsVector3& GetLinearVelocity() const { return fLinearVelocity; }
|
||||
|
||||
// Acheived linear velocity
|
||||
const hsVector3& GetAchievedLinearVelocity() const { return fAchievedLinearVelocity; }
|
||||
void OverrideAchievedLinearVelocity(const hsVector3& linearVel) { fAchievedLinearVelocity = linearVel; }
|
||||
void ResetAchievedLinearVelocity() { fAchievedLinearVelocity.Set(0.f, 0.f, 0.f); }
|
||||
|
||||
// SceneObject
|
||||
plKey GetOwner() { return fOwner; }
|
||||
|
||||
// When seeking no longer want to interact with exclude regions
|
||||
void SetSeek(bool seek) { fSeeking = seek; }
|
||||
bool IsSeeking() const { return fSeeking; }
|
||||
|
||||
// Pushing physical
|
||||
plPhysical* GetPushingPhysical() const { return fPushingPhysical; }
|
||||
void SetPushingPhysical(plPhysical* phys) { fPushingPhysical = phys; }
|
||||
bool GetFacingPushingPhysical() const { return fFacingPushingPhysical; }
|
||||
void SetFacingPushingPhysical(bool facing) { fFacingPushingPhysical = facing; }
|
||||
|
||||
// Controller dimensions
|
||||
hsScalar GetRadius() const { return fRadius; }
|
||||
hsScalar GetHeight() const { return fHeight; }
|
||||
|
||||
// Create a new controller instance - Implemented in the physics system
|
||||
static plPhysicalControllerCore* Create(plKey ownerSO, hsScalar height, hsScalar radius, bool human);
|
||||
|
||||
virtual const hsVector3& GetLinearVelocity() ;
|
||||
virtual hsScalar GetAngularVelocity(){return fAngularVelocity;}
|
||||
virtual const hsVector3& GetAchievedLinearVelocity()const {return fAchievedLinearVelocity;}
|
||||
plPhysical* GetPushingPhysical();
|
||||
bool GetFacingPushingPhysical();
|
||||
virtual void SetPushingPhysical(plPhysical* pl){fPushingPhysical=pl;}
|
||||
virtual void SetFacingPushingPhysical(bool ans){fFacingPushingPhysical=ans;}
|
||||
//To be Used during runtime conversions, say to switch a tall controller to a ball for swimming
|
||||
virtual void SetControllerDimensions(hsScalar radius, hsScalar height)=0;
|
||||
virtual hsScalar GetControllerWidth(){return fRadius;}
|
||||
virtual hsScalar GetControllerHeight(){return fHeight;}
|
||||
virtual void ResetAchievedLinearVelocity()
|
||||
{
|
||||
fAchievedLinearVelocity.Set(0.f,0.f,0.f);
|
||||
}
|
||||
virtual int SweepControllerPath(const hsPoint3& startPos,const hsPoint3& endPos, hsBool vsDynamics, hsBool vsStatics, UInt32& vsSimGroups, std::multiset< plControllerSweepRecord >& WhatWasHitOut)=0;
|
||||
//this should only be used to force a move it could place your head into a wall and that would be good
|
||||
virtual hsScalar GetHeight() {return fHeight;}
|
||||
virtual hsScalar GetRadius() {return fRadius;}
|
||||
//Wether the avatar thing has mass and forces things down or not, and changes the way things move
|
||||
//This is an attempt fix things like riding on an animated physical
|
||||
virtual void BehaveLikeAnimatedPhysical(hsBool actLikeAnAnimatedPhys)=0;
|
||||
virtual hsBool BehavingLikeAnAnimatedPhysical()=0;
|
||||
protected:
|
||||
virtual void IHandleEnableChanged() = 0;
|
||||
|
||||
void IApply(hsScalar delSecs);
|
||||
void IUpdate(int numSubSteps, hsScalar alpha);
|
||||
void IUpdateNonPhysical(hsScalar alpha);
|
||||
|
||||
void ISendCorrectionMessages(bool dirtySynch = false);
|
||||
|
||||
|
||||
plKey fOwner;
|
||||
plKey fWorldKey;
|
||||
|
||||
hsScalar fHeight;
|
||||
hsScalar fRadius;
|
||||
|
||||
plKey fWorldKey;
|
||||
plSimDefs::plLOSDB fLOSDB;
|
||||
|
||||
plMovementStrategy* fMovementStrategy;
|
||||
|
||||
hsScalar fSimLength;
|
||||
|
||||
hsQuat fLocalRotation;
|
||||
hsPoint3 fLocalPosition;
|
||||
hsPoint3 fLastLocalPosition;
|
||||
|
||||
hsMatrix44 fLastGlobalLoc;
|
||||
hsMatrix44 fPrevSubworldW2L;
|
||||
|
||||
hsVector3 fLinearVelocity;
|
||||
hsVector3 fAchievedLinearVelocity;
|
||||
|
||||
plPhysical* fPushingPhysical;
|
||||
bool fFacingPushingPhysical;
|
||||
|
||||
bool fSeeking;
|
||||
bool fEnabled;
|
||||
bool fEnableChanged;
|
||||
};
|
||||
|
||||
class plMovementStrategy
|
||||
{
|
||||
public:
|
||||
plMovementStrategy(plPhysicalControllerCore* controller);
|
||||
virtual ~plMovementStrategy() { }
|
||||
|
||||
virtual void Apply(hsScalar delSecs) = 0;
|
||||
virtual void Update(hsScalar delSecs) { }
|
||||
|
||||
virtual void AddContactNormals(hsVector3& vec) { }
|
||||
virtual void Reset(bool newAge);
|
||||
virtual bool IsKinematic() { return true; }
|
||||
|
||||
protected:
|
||||
plPhysicalControllerCore* fController;
|
||||
};
|
||||
|
||||
class plAnimatedMovementStrategy : public plMovementStrategy
|
||||
{
|
||||
public:
|
||||
plAnimatedMovementStrategy(plAGApplicator* rootApp, plPhysicalControllerCore* controller);
|
||||
virtual ~plAnimatedMovementStrategy() { }
|
||||
|
||||
virtual void RecalcVelocity(double timeNow, hsScalar elapsed, hsBool useAnim = true);
|
||||
void SetTurnStrength(hsScalar val) { fTurnStr = val; }
|
||||
hsScalar GetTurnStrength() const { return fTurnStr; }
|
||||
|
||||
private:
|
||||
void IRecalcLinearVelocity(float elapsed, hsMatrix44 &prevMat, hsMatrix44 &curMat);
|
||||
void IRecalcAngularVelocity(float elapsed, hsMatrix44 &prevMat, hsMatrix44 &curMat);
|
||||
|
||||
plAGApplicator* fRootApp;
|
||||
hsVector3 fAnimLinearVel;
|
||||
hsScalar fAnimAngularVel;
|
||||
hsScalar fTurnStr;
|
||||
};
|
||||
|
||||
class plWalkingStrategy : public plAnimatedMovementStrategy
|
||||
{
|
||||
public:
|
||||
plWalkingStrategy(plAGApplicator* rootApp, plPhysicalControllerCore* controller);
|
||||
virtual ~plWalkingStrategy() { }
|
||||
|
||||
virtual void Apply(hsScalar delSecs);
|
||||
virtual void Update(hsScalar delSecs);
|
||||
|
||||
virtual void AddContactNormals(hsVector3& vec);
|
||||
virtual void Reset(bool newAge);
|
||||
|
||||
virtual void RecalcVelocity(double timeNow, hsScalar elapsed, hsBool useAnim = true);
|
||||
|
||||
bool HitGroundInThisAge() const { return fHitGroundInThisAge; }
|
||||
bool IsOnGround() const { return fTimeInAir < kAirTimeThreshold || fFalseGround; }
|
||||
|
||||
hsScalar GetAirTime() const { return fTimeInAir; }
|
||||
void ResetAirTime() { fTimeInAir = 0.0f; }
|
||||
|
||||
hsScalar GetImpactTime() const { return fImpactTime; }
|
||||
const hsVector3& GetImpactVelocity() const { return fImpactVelocity; }
|
||||
|
||||
bool EnableControlledFlight(bool status);
|
||||
bool IsControlledFlight() const { return fControlledFlight != 0; }
|
||||
|
||||
plPhysical* GetPushingPhysical() const;
|
||||
bool GetFacingPushingPhysical() const;
|
||||
|
||||
protected:
|
||||
static const hsScalar kAirTimeThreshold;
|
||||
static const hsScalar kControlledFlightThreshold;
|
||||
|
||||
hsTArray<hsVector3> fSlidingNormals;
|
||||
|
||||
hsVector3 fImpactVelocity;
|
||||
hsScalar fImpactTime;
|
||||
|
||||
hsScalar fTimeInAir;
|
||||
bool fEnableChanged;
|
||||
bool fKinematic;
|
||||
bool fKinematicEnableNextUpdate;
|
||||
bool fKinematicChanged;
|
||||
plMovementStrategySimulationInterface* fMovementInterface;
|
||||
hsMatrix44 fLastGlobalLoc;
|
||||
hsPoint3 fLocalPosition;
|
||||
hsQuat fLocalRotation;
|
||||
hsMatrix44 fPrevSubworldW2L;
|
||||
hsVector3 fDisplacementThisStep;
|
||||
hsScalar fSimLength;
|
||||
|
||||
hsScalar fControlledFlightTime;
|
||||
int fControlledFlight;
|
||||
//physical properties
|
||||
hsVector3 fLinearVelocity;
|
||||
hsScalar fAngularVelocity;
|
||||
hsVector3 fAchievedLinearVelocity;
|
||||
plPhysical* fPushingPhysical;
|
||||
bool fFacingPushingPhysical;
|
||||
bool fNeedsResize;
|
||||
};
|
||||
|
||||
class plMovementStrategy: public plMovementStrategySimulationInterface
|
||||
{
|
||||
public:
|
||||
virtual void SetControllerCore(plPhysicalControllerCore* core)
|
||||
{
|
||||
fCore=core;
|
||||
fCore->SetMovementSimulationInterface(this);
|
||||
}
|
||||
virtual void RefreshConnectionToControllerCore()
|
||||
{
|
||||
fCore->SetMovementSimulationInterface(this);
|
||||
//fCore->SetControllerDimensions(fPreferedControllerWidth,fPreferedControllerHeight);
|
||||
fCore->BehaveLikeAnimatedPhysical(this->IRequireBehaviourLikeAnAnimatedPhysical());
|
||||
}
|
||||
plMovementStrategy(plPhysicalControllerCore* core);
|
||||
//should actually be a 3 vector but everywhere else it is assumed to be just around Z
|
||||
virtual void SetLinearAcceleration(const hsVector3& accel){fLinearAcceleration=accel;}
|
||||
virtual const hsVector3& GetLinearAcceleration()const{return fLinearAcceleration;}
|
||||
//should actually be a 3 vector but everywhere else it is assumed to be just around Z
|
||||
virtual void ResetAchievedLinearVelocity()
|
||||
{
|
||||
hsVector3 AchievedLinearVelocity(0.f,0.f,0.f);
|
||||
if(fCore)fCore->OverrideAchievedVelocity(AchievedLinearVelocity);
|
||||
}
|
||||
//proxy functions for Controller Core
|
||||
virtual hsScalar GetAirTime() const { return fTimeInAir; }
|
||||
virtual void ResetAirTime() { fTimeInAir = 0.f; }
|
||||
|
||||
protected:
|
||||
virtual hsBool IRequireBehaviourLikeAnAnimatedPhysical()=0;
|
||||
virtual void IApplyKinematic();
|
||||
plPhysicalControllerCore* fCore;
|
||||
hsVector3 fLinearAcceleration;
|
||||
hsScalar fAngularAcceleration;
|
||||
plKey fOwner;
|
||||
static const hsScalar kAirTimeThreshold;
|
||||
hsScalar fTimeInAir;
|
||||
hsScalar fPreferedControllerWidth;
|
||||
hsScalar fPreferedControllerHeight;
|
||||
|
||||
|
||||
};
|
||||
|
||||
class plWalkingStrategy: public plMovementStrategy
|
||||
{
|
||||
public:
|
||||
plWalkingStrategy(plPhysicalControllerCore* core):plMovementStrategy(core)
|
||||
{
|
||||
fGroundHit=false;
|
||||
fFalseGround=false;
|
||||
fHitHead=false;
|
||||
fCore->SetMovementSimulationInterface(this);
|
||||
fPreferedControllerWidth=core->GetControllerWidth();
|
||||
fPreferedControllerHeight=core->GetControllerHeight();
|
||||
fOnTopOfAnimatedPhysLastFrame=false;
|
||||
}
|
||||
virtual ~plWalkingStrategy(){};
|
||||
virtual void Apply(hsScalar delSecs);
|
||||
virtual void Update(hsScalar delSecs);
|
||||
|
||||
bool IsOnGround() const { return fTimeInAir < kAirTimeThreshold || fFalseGround; }
|
||||
bool IsOnFalseGround() const { return fFalseGround && !fGroundHit; }
|
||||
void GroundHit() { fGroundHit = true; }
|
||||
virtual void IAddContactNormals(hsVector3& vec);
|
||||
virtual void StartJump(){};
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
void ICheckForFalseGround();
|
||||
bool fGroundHit;
|
||||
bool fFalseGround;
|
||||
bool fHeadHit;
|
||||
bool fSliding;
|
||||
bool fHitHead;
|
||||
bool fOnTopOfAnimatedPhysLastFrame;
|
||||
hsTArray<hsVector3> fPrevSlidingNormals;
|
||||
virtual hsBool IRequireBehaviourLikeAnAnimatedPhysical(){return true;}
|
||||
|
||||
bool fClearImpact;
|
||||
bool fHitGroundInThisAge;
|
||||
};
|
||||
|
||||
class plSwimStrategy : public plAnimatedMovementStrategy
|
||||
class plSwimStrategy: public plMovementStrategy
|
||||
{
|
||||
public:
|
||||
plSwimStrategy(plAGApplicator* rootApp, plPhysicalControllerCore* controller);
|
||||
virtual ~plSwimStrategy() { }
|
||||
|
||||
plSwimStrategy(plPhysicalControllerCore *core);
|
||||
virtual ~plSwimStrategy(){};
|
||||
void SetSurface(plSwimRegionInterface *region, hsScalar surfaceHeight);
|
||||
virtual void Apply(hsScalar delSecs);
|
||||
|
||||
virtual void AddContactNormals(hsVector3& vec);
|
||||
|
||||
void SetSurface(plSwimRegionInterface* region, hsScalar surfaceHeight);
|
||||
|
||||
hsScalar GetBuoyancy() const { return fBuoyancy; }
|
||||
bool IsOnGround() const { return fOnGround; }
|
||||
bool HadContacts() const { return fHadContacts; }
|
||||
|
||||
virtual void Update(hsScalar delSecs);
|
||||
hsScalar GetBuoyancy() { return fBuoyancy; }
|
||||
hsBool IsOnGround() { return fOnGround; }
|
||||
hsBool HadContacts() { return fHadContacts; }
|
||||
virtual void IAddContactNormals(hsVector3& vec);
|
||||
protected:
|
||||
virtual hsBool IRequireBehaviourLikeAnAnimatedPhysical(){return true;}
|
||||
private:
|
||||
void IAdjustBuoyancy();
|
||||
|
||||
hsScalar fBuoyancy;
|
||||
hsBool fOnGround;
|
||||
hsBool fHadContacts;
|
||||
hsScalar fSurfaceHeight;
|
||||
|
||||
plSwimRegionInterface *fCurrentRegion;
|
||||
|
||||
bool fOnGround;
|
||||
bool fHadContacts;
|
||||
};
|
||||
|
||||
class plDynamicWalkingStrategy : public plWalkingStrategy
|
||||
class plRidingAnimatedPhysicalStrategy : public plWalkingStrategy
|
||||
{
|
||||
public:
|
||||
plDynamicWalkingStrategy(plAGApplicator* rootApp, plPhysicalControllerCore* controller);
|
||||
virtual ~plDynamicWalkingStrategy() { }
|
||||
|
||||
plRidingAnimatedPhysicalStrategy(plPhysicalControllerCore *core ) :
|
||||
fNeedVelocityOverride(false),fStartJump(false),plWalkingStrategy(core){};
|
||||
virtual ~plRidingAnimatedPhysicalStrategy(){};
|
||||
virtual void Apply(hsScalar delSecs);
|
||||
|
||||
virtual bool IsKinematic() { return false; }
|
||||
|
||||
virtual void Update(hsScalar delSecs);
|
||||
virtual void PostStep(hsScalar delSecs);
|
||||
bool IsOnGround() const { return fTimeInAir < kAirTimeThreshold || fFalseGround; }
|
||||
bool IsOnFalseGround() const { return fFalseGround && !fGroundHit; }
|
||||
void GroundHit() { fGroundHit = true; }
|
||||
virtual void StartJump(){fStartJump = true;}
|
||||
protected:
|
||||
bool ICheckForGround(hsScalar& zVelocity);
|
||||
virtual hsBool IRequireBehaviourLikeAnAnimatedPhysical(){return false;}
|
||||
bool ICheckMove(const hsPoint3& startPos, const hsPoint3& desiredPos);
|
||||
hsBool fNeedVelocityOverride;
|
||||
hsVector3 fOverrideVelocity;
|
||||
bool fStartJump;
|
||||
};
|
||||
|
||||
#endif// PLPHYSICALCONTROLLERCORE_H
|
||||
|
||||
|
@ -0,0 +1,152 @@
|
||||
/*==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 "hsTypes.h"
|
||||
#include "hsUtils.h"
|
||||
#include "hsStream.h"
|
||||
#include "hsResMgr.h"
|
||||
#include "plJPEG/plJPEG.h"
|
||||
#include "plGImage/plPNG.h"
|
||||
#include "plGImage/plMipmap.h"
|
||||
|
||||
#include "plClientResMgr.h"
|
||||
|
||||
|
||||
//// Singleton Instance ///////////////////////////////////////////////////////
|
||||
|
||||
plClientResMgr& plClientResMgr::Instance(void)
|
||||
{
|
||||
static plClientResMgr theInstance;
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
plClientResMgr::plClientResMgr()
|
||||
{
|
||||
this->ClientResources = TRACKED_NEW std::map<std::string, plMipmap*>;
|
||||
}
|
||||
|
||||
plClientResMgr::~plClientResMgr()
|
||||
{
|
||||
if (this->ClientResources) {
|
||||
std::map<std::string, plMipmap*>::iterator it;
|
||||
|
||||
for (it = this->ClientResources->begin(); it != this->ClientResources->end(); ++it) {
|
||||
if (it->second)
|
||||
it->second->UnRef();
|
||||
}
|
||||
|
||||
delete this->ClientResources;
|
||||
}
|
||||
}
|
||||
|
||||
void plClientResMgr::ILoadResources(const char* resfile)
|
||||
{
|
||||
if (!resfile) {
|
||||
return;
|
||||
}
|
||||
|
||||
wchar* wFilename = hsStringToWString(resfile);
|
||||
hsUNIXStream in;
|
||||
|
||||
if (in.Open(wFilename, L"rb")) {
|
||||
UInt32 header = in.ReadSwap32();
|
||||
UInt32 version = in.ReadSwap32();
|
||||
UInt32 num_resources = 0;
|
||||
|
||||
switch (version) {
|
||||
case 1:
|
||||
num_resources = in.ReadSwap32();
|
||||
|
||||
for (int i = 0; i < num_resources; i++) {
|
||||
plMipmap* res_data = NULL;
|
||||
UInt32 res_size = 0;
|
||||
char* tmp_name = in.ReadSafeStringLong();
|
||||
std::string res_name = std::string(tmp_name);
|
||||
std::string res_type = res_name.substr(res_name.length() - 4, 4);
|
||||
delete tmp_name;
|
||||
|
||||
// Version 1 doesn't encode format, so we'll try some simple
|
||||
// extension sniffing
|
||||
if (res_type == ".png") {
|
||||
// Read resource stream size, but the PNG has that info in the header
|
||||
// so it's not needed
|
||||
res_size = in.ReadSwap32();
|
||||
res_data = plPNG::Instance().ReadFromStream(&in);
|
||||
} else if (res_type == ".jpg") {
|
||||
// Don't read resource stream size, as plJPEG's reader will need it
|
||||
res_data = plJPEG::Instance().ReadFromStream(&in);
|
||||
} else {
|
||||
// Original Myst5 format only is known to support Targa,
|
||||
// so default fallback is targa
|
||||
// TODO - Add plTarga::ReadFromStream()
|
||||
// for now, just skip the unknown resource and put NULL into the map
|
||||
res_size = in.ReadSwap32();
|
||||
in.Skip(res_size);
|
||||
}
|
||||
|
||||
(*this->ClientResources)[res_name] = res_data;
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
in.Close();
|
||||
}
|
||||
|
||||
delete wFilename;
|
||||
}
|
||||
|
||||
plMipmap* plClientResMgr::getResource(const char* resname)
|
||||
{
|
||||
plMipmap* resmipmap = NULL;
|
||||
std::map<std::string, plMipmap*>::iterator it = this->ClientResources->find(resname);
|
||||
|
||||
if (it != this->ClientResources->end()) {
|
||||
resmipmap = it->second;
|
||||
} else {
|
||||
hsAssert(resmipmap, "Unknown client resource requested.");
|
||||
}
|
||||
|
||||
return resmipmap;
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
/*==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==*/
|
||||
|
||||
#ifndef _plClientResMgr_h
|
||||
#define _plClientResMgr_h
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
class plMipmap;
|
||||
|
||||
class plClientResMgr {
|
||||
protected:
|
||||
std::map<std::string, plMipmap*>* ClientResources;
|
||||
|
||||
public:
|
||||
plClientResMgr();
|
||||
~plClientResMgr();
|
||||
|
||||
void ILoadResources(const char* resfile);
|
||||
|
||||
plMipmap* getResource(const char* resname);
|
||||
|
||||
static plClientResMgr& Instance(void);
|
||||
};
|
||||
|
||||
#endif // _plClientResMgr_
|
@ -0,0 +1,270 @@
|
||||
/*==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 "hsTypes.h"
|
||||
#include "hsStream.h"
|
||||
#include "hsExceptions.h"
|
||||
#include "hsUtils.h"
|
||||
#include "plPNG.h"
|
||||
#include "../plGImage/plMipmap.h"
|
||||
|
||||
#include <png.h>
|
||||
#define PNGSIGSIZE 8
|
||||
|
||||
// Custom functions to read and write data from or to an hsStream
|
||||
// used by libPNG's respective functions
|
||||
void pngReadDelegate(png_structp png_ptr, png_bytep png_data, png_size_t length)
|
||||
{
|
||||
hsStream* inStream = (hsStream*)png_get_io_ptr(png_ptr);
|
||||
inStream->Read(length, (UInt8*)png_data);
|
||||
}
|
||||
|
||||
void pngWriteDelegate(png_structp png_ptr, png_bytep png_data, png_size_t length)
|
||||
{
|
||||
hsStream* outStream = (hsStream*)png_get_io_ptr(png_ptr);
|
||||
outStream->Write(length, (UInt8*)png_data);
|
||||
}
|
||||
|
||||
//// Singleton Instance ///////////////////////////////////////////////////////
|
||||
|
||||
plPNG& plPNG::Instance(void)
|
||||
{
|
||||
static plPNG theInstance;
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
//// IRead ////////////////////////////////////////////////////////////////////
|
||||
// Given an open hsStream, reads the PNG data off of the
|
||||
// stream and decodes it into a new plMipmap. The mipmap's buffer ends up
|
||||
// being a packed RGBA buffer.
|
||||
// Returns a pointer to the new mipmap if successful, NULL otherwise.
|
||||
|
||||
plMipmap* plPNG::IRead(hsStream* inStream)
|
||||
{
|
||||
plMipmap* newMipmap = NULL;
|
||||
png_structp png_ptr;
|
||||
png_infop info_ptr;
|
||||
png_infop end_info;
|
||||
|
||||
try {
|
||||
// Check PNG Signature
|
||||
png_byte sig[PNGSIGSIZE];
|
||||
inStream->Read8Bytes((char*) sig);
|
||||
|
||||
if (!png_sig_cmp(sig, 0, PNGSIGSIZE)) {
|
||||
// Allocate required structs
|
||||
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
||||
|
||||
if (!png_ptr) {
|
||||
throw(false);
|
||||
}
|
||||
|
||||
info_ptr = png_create_info_struct(png_ptr);
|
||||
|
||||
if (!info_ptr) {
|
||||
png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
|
||||
throw(false);
|
||||
}
|
||||
|
||||
end_info = png_create_info_struct(png_ptr);
|
||||
|
||||
if (!end_info) {
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
|
||||
throw(false);
|
||||
}
|
||||
|
||||
// Assign delegate function for reading from hsStream
|
||||
png_set_read_fn(png_ptr, (png_voidp)inStream, pngReadDelegate);
|
||||
// Get PNG Header information
|
||||
png_set_sig_bytes(png_ptr, PNGSIGSIZE);
|
||||
png_read_info(png_ptr, info_ptr);
|
||||
png_uint_32 imgWidth = png_get_image_width(png_ptr, info_ptr);
|
||||
png_uint_32 imgHeight = png_get_image_height(png_ptr, info_ptr);
|
||||
png_uint_32 bitdepth = png_get_bit_depth(png_ptr, info_ptr);
|
||||
png_uint_32 channels = png_get_channels(png_ptr, info_ptr);
|
||||
png_uint_32 color_type = png_get_color_type(png_ptr, info_ptr);
|
||||
|
||||
// Convert images to RGB color space
|
||||
switch (color_type) {
|
||||
case PNG_COLOR_TYPE_PALETTE:
|
||||
png_set_palette_to_rgb(png_ptr);
|
||||
channels = 3;
|
||||
break;
|
||||
case PNG_COLOR_TYPE_GRAY:
|
||||
|
||||
if (bitdepth < 8) {
|
||||
png_set_expand_gray_1_2_4_to_8(png_ptr);
|
||||
}
|
||||
|
||||
bitdepth = 8;
|
||||
break;
|
||||
}
|
||||
|
||||
// Convert transparency (if needed) to a full alpha channel
|
||||
if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
|
||||
png_set_tRNS_to_alpha(png_ptr);
|
||||
channels += 1;
|
||||
} else if (channels == 3) {
|
||||
// Add an opaque alpha channel if still none exists
|
||||
png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER);
|
||||
channels = 4;
|
||||
}
|
||||
|
||||
// Invert color byte-order as used by plMipmap for DirectX
|
||||
png_set_bgr(png_ptr);
|
||||
/// Construct a new mipmap to hold everything
|
||||
newMipmap = TRACKED_NEW plMipmap(imgWidth, imgHeight, plMipmap::kARGB32Config, 1, plMipmap::kUncompressed);
|
||||
char* destp = (char*)newMipmap->GetImage();
|
||||
png_bytep* row_ptrs = TRACKED_NEW png_bytep[imgHeight];
|
||||
const unsigned int stride = imgWidth * bitdepth * channels / 8;
|
||||
|
||||
// Assign row pointers to the appropriate locations in the newly-created Mipmap
|
||||
for (size_t i = 0; i < imgHeight; i++) {
|
||||
row_ptrs[i] = (png_bytep)destp + (i * stride);
|
||||
}
|
||||
|
||||
png_read_image(png_ptr, row_ptrs);
|
||||
png_read_end(png_ptr, end_info);
|
||||
// Clean up allocated structs
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
|
||||
delete [] row_ptrs;
|
||||
}
|
||||
} catch (...) {
|
||||
if (newMipmap != NULL) {
|
||||
delete newMipmap;
|
||||
newMipmap = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return newMipmap;
|
||||
}
|
||||
|
||||
plMipmap* plPNG::ReadFromFile(const char* fileName)
|
||||
{
|
||||
wchar* wFilename = hsStringToWString(fileName);
|
||||
plMipmap* retVal = ReadFromFile(wFilename);
|
||||
delete [] wFilename;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
plMipmap* plPNG::ReadFromFile(const wchar* fileName)
|
||||
{
|
||||
hsUNIXStream in;
|
||||
|
||||
if (!in.Open(fileName, L"rb")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
plMipmap* ret = IRead(&in);
|
||||
in.Close();
|
||||
return ret;
|
||||
}
|
||||
|
||||
hsBool plPNG::IWrite(plMipmap* source, hsStream* outStream)
|
||||
{
|
||||
hsBool result = true;
|
||||
|
||||
try {
|
||||
// Allocate required structs
|
||||
png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
||||
|
||||
if (!png_ptr) {
|
||||
throw(false);
|
||||
}
|
||||
|
||||
png_infop info_ptr = png_create_info_struct(png_ptr);
|
||||
|
||||
if (!info_ptr) {
|
||||
png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
|
||||
throw(false);
|
||||
}
|
||||
|
||||
// Assign delegate function for writing to hsStream
|
||||
png_set_write_fn(png_ptr, (png_voidp)outStream, pngWriteDelegate, NULL);
|
||||
UInt8 psize = source->GetPixelSize();
|
||||
png_set_IHDR(png_ptr, info_ptr, source->GetWidth(), source->GetHeight(), 8, PNG_COLOR_TYPE_RGB_ALPHA,
|
||||
PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
|
||||
// Invert color byte-order as used by plMipmap for DirectX
|
||||
png_set_bgr(png_ptr);
|
||||
// Write out the image metadata
|
||||
png_write_info(png_ptr, info_ptr);
|
||||
char* srcp = (char*)source->GetImage();
|
||||
png_bytep* row_ptrs = TRACKED_NEW png_bytep[source->GetHeight()];
|
||||
const unsigned int stride = source->GetWidth() * source->GetPixelSize() / 8;
|
||||
|
||||
// Assign row pointers to the appropriate locations in the newly-created Mipmap
|
||||
for (size_t i = 0; i < source->GetHeight(); i++) {
|
||||
row_ptrs[i] = (png_bytep)srcp + (i * stride);
|
||||
}
|
||||
|
||||
png_write_image(png_ptr, row_ptrs);
|
||||
png_write_end(png_ptr, info_ptr);
|
||||
// Clean up allocated structs
|
||||
png_destroy_write_struct(&png_ptr, &info_ptr);
|
||||
delete [] row_ptrs;
|
||||
} catch (...) {
|
||||
result = false;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
hsBool plPNG::WriteToFile(const char* fileName, plMipmap* sourceData)
|
||||
{
|
||||
wchar* wFilename = hsStringToWString(fileName);
|
||||
hsBool retVal = WriteToFile(wFilename, sourceData);
|
||||
delete [] wFilename;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
hsBool plPNG::WriteToFile(const wchar* fileName, plMipmap* sourceData)
|
||||
{
|
||||
hsUNIXStream out;
|
||||
|
||||
if (!out.Open(fileName, L"wb")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
hsBool ret = IWrite(sourceData, &out);
|
||||
out.Close();
|
||||
return ret;
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
/*==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==*/
|
||||
|
||||
#ifndef _plPNG_h
|
||||
#define _plPNG_h
|
||||
|
||||
|
||||
//// Class Definition /////////////////////////////////////////////////////////
|
||||
|
||||
class plMipmap;
|
||||
class hsStream;
|
||||
|
||||
class plPNG {
|
||||
protected:
|
||||
|
||||
plMipmap* IRead(hsStream* inStream);
|
||||
hsBool IWrite(plMipmap* source, hsStream* outStream);
|
||||
|
||||
public:
|
||||
|
||||
plMipmap* ReadFromStream(hsStream* inStream) { return IRead(inStream); }
|
||||
plMipmap* ReadFromFile(const char* fileName);
|
||||
plMipmap* ReadFromFile(const wchar* fileName);
|
||||
|
||||
hsBool WriteToStream(hsStream* outStream, plMipmap* sourceData) { return IWrite(sourceData, outStream); }
|
||||
hsBool WriteToFile(const char* fileName, plMipmap* sourceData);
|
||||
hsBool WriteToFile(const wchar* fileName, plMipmap* sourceData);
|
||||
|
||||
static plPNG& Instance(void);
|
||||
};
|
||||
|
||||
#endif // _plPNG_h
|
@ -55,14 +55,11 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
|
||||
#include "../plPipeline/plPlates.h"
|
||||
#include "../plPipeline/plDebugText.h"
|
||||
#include "../plGImage/plMipmap.h"
|
||||
|
||||
#include "hsWindows.h"
|
||||
#include "../NucleusLib/inc/plPipeline.h"
|
||||
|
||||
// base size of the cursor
|
||||
#define CURSOR_SIZE_X 0.0675f
|
||||
#define CURSOR_SIZE_Y 0.09f
|
||||
|
||||
// The resolution that uses the base size of the cursor.
|
||||
// All other resolutions will scale the cursor size to keep the same physical size.
|
||||
#define BASE_WIDTH 1024
|
||||
@ -447,16 +444,16 @@ void plMouseDevice::SetDisplayResolution(hsScalar Width, hsScalar Height)
|
||||
IUpdateCursorSize();
|
||||
}
|
||||
|
||||
void plMouseDevice::CreateCursor( int cursor )
|
||||
void plMouseDevice::CreateCursor( char* cursor )
|
||||
{
|
||||
if( fCursor == nil )
|
||||
{
|
||||
plPlateManager::Instance().CreatePlate( &fCursor );
|
||||
fCursor->CreateFromResource( MAKEINTRESOURCE( cursor ) );
|
||||
fCursor->CreateFromResource(cursor);
|
||||
}
|
||||
else
|
||||
{
|
||||
fCursor->ReloadFromResource( MAKEINTRESOURCE( cursor ) );
|
||||
fCursor->ReloadFromResource(cursor);
|
||||
}
|
||||
fCursor->SetPosition( 0, 0, 0 );
|
||||
IUpdateCursorSize();
|
||||
@ -470,7 +467,7 @@ void plMouseDevice::IUpdateCursorSize()
|
||||
if(fCursor)
|
||||
{
|
||||
// set the size of the cursor based on resolution.
|
||||
fCursor->SetSize( CURSOR_SIZE_X * BASE_WIDTH / fWidth, CURSOR_SIZE_Y * BASE_HEIGHT / fHeight );
|
||||
fCursor->SetSize( 2*fCursor->GetMipmap()->GetWidth()/fWidth, 2*fCursor->GetMipmap()->GetHeight()/fHeight );
|
||||
}
|
||||
}
|
||||
|
||||
@ -557,7 +554,7 @@ void plMouseDevice::ShowCursor(hsBool override)
|
||||
fInstance->fCursor->SetVisible( true );
|
||||
}
|
||||
|
||||
void plMouseDevice::NewCursor(int cursor)
|
||||
void plMouseDevice::NewCursor(char* cursor)
|
||||
{
|
||||
fInstance->fCursorID = cursor;
|
||||
fInstance->CreateCursor(cursor);
|
||||
@ -933,28 +930,3 @@ hsBool plMouseDevice::MsgReceive(plMessage* msg)
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void plMouseDevice::HandleWindowActivate(bool bActive, HWND hWnd)
|
||||
{
|
||||
if ( bActive )
|
||||
{
|
||||
RECT rect;
|
||||
::GetClientRect(hWnd,&rect);
|
||||
|
||||
// rect.right /= plInputManager::GetInstance()->GetMouseScale();
|
||||
// rect.bottom /= plInputManager::GetInstance()->GetMouseScale();
|
||||
|
||||
::MapWindowPoints( hWnd, NULL, (POINT *)&rect, 2 );
|
||||
::ClipCursor(&rect);
|
||||
::ShowCursor( FALSE );
|
||||
SetCapture(hWnd);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ReleaseCapture();
|
||||
::ClipCursor(nil);
|
||||
::ShowCursor( TRUE );
|
||||
}
|
||||
}
|
||||
|
@ -50,7 +50,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../pnInputCore/plOSMsg.h"
|
||||
#include "hsBitVector.h"
|
||||
#include "hsTemplates.h"
|
||||
#include "../../apps/plClient/res/resource.h"
|
||||
class plMessage;
|
||||
enum plKeyDef;
|
||||
struct plMouseInfo;
|
||||
@ -142,27 +141,27 @@ protected:
|
||||
|
||||
class plPlate;
|
||||
|
||||
#define CURSOR_UP IDB_CURSOR_UP
|
||||
#define CURSOR_DOWN IDB_CURSOR_DOWN
|
||||
#define CURSOR_RIGHT IDB_CURSOR_RIGHT
|
||||
#define CURSOR_LEFT IDB_CURSOR_LEFT
|
||||
#define CURSOR_OPEN IDB_CURSOR_OPEN
|
||||
#define CURSOR_GRAB IDB_CURSOR_GRAB
|
||||
#define CURSOR_CLICKED IDB_CURSOR_CLICKED
|
||||
#define CURSOR_POISED IDB_CURSOR_POISED
|
||||
#define CURSOR_ARROW IDB_CURSOR_ARROW
|
||||
#define CURSOR_4WAY_OPEN IDB_CURSOR_4WAYOPEN
|
||||
#define CURSOR_4WAY_CLOSED IDB_CURSOR_4WAYCLOSED
|
||||
#define CURSOR_UPDOWN_CLOSED IDB_CURSOR_UPDOWNCLOSED
|
||||
#define CURSOR_UPDOWN_OPEN IDB_CURSOR_UPDOWNOPEN
|
||||
#define CURSOR_LEFTRIGHT_CLOSED IDB_CURSOR_LEFTRIGHTCLOSED
|
||||
#define CURSOR_LEFTRIGHT_OPEN IDB_CURSOR_LEFTRIGHTOPEN
|
||||
#define CURSOR_OFFER_BOOK IDB_CURSOR_BOOK
|
||||
#define CURSOR_OFFER_BOOK_HI IDB_CURSOR_BOOK_HIGHLIGHT
|
||||
#define CURSOR_OFFER_BOOK_CLICKED IDB_CURSOR_BOOK_CLICKED
|
||||
#define CURSOR_CLICK_DISABLED IDB_CURSOR_DISABLED
|
||||
#define CURSOR_HAND IDB_CURSOR_HAND
|
||||
#define CURSOR_UPWARD IDB_CURSOR_UPWARD
|
||||
#define CURSOR_UP "cursor_up.png"
|
||||
#define CURSOR_UPWARD "cursor_upward.png"
|
||||
#define CURSOR_DOWN "cursor_down.png"
|
||||
#define CURSOR_RIGHT "cursor_right.png"
|
||||
#define CURSOR_LEFT "cursor_left.png"
|
||||
#define CURSOR_OPEN "cursor_open.png"
|
||||
#define CURSOR_GRAB "cursor_grab.png"
|
||||
#define CURSOR_CLICKED "cursor_clicked.png"
|
||||
#define CURSOR_POISED "cursor_poised.png"
|
||||
#define CURSOR_4WAY_OPEN "cursor_4way_open.png"
|
||||
#define CURSOR_4WAY_CLOSED "cursor_4way_closed.png"
|
||||
#define CURSOR_UPDOWN_OPEN "cursor_updown_open.png"
|
||||
#define CURSOR_UPDOWN_CLOSED "cursor_updown_closed.png"
|
||||
#define CURSOR_LEFTRIGHT_OPEN "cursor_leftright_open.png"
|
||||
#define CURSOR_LEFTRIGHT_CLOSED "cursor_leftright_closed.png"
|
||||
#define CURSOR_OFFER_BOOK "cursor_book.png"
|
||||
#define CURSOR_OFFER_BOOK_HI "cursor_book_poised.png"
|
||||
#define CURSOR_OFFER_BOOK_CLICKED "cursor_book_clicked.png"
|
||||
#define CURSOR_CLICK_DISABLED "cursor_disabled.png"
|
||||
#define CURSOR_HAND "cursor_up.png"
|
||||
#define CURSOR_ARROW "cursor_up.png"
|
||||
|
||||
class plInputEventMsg;
|
||||
|
||||
@ -173,7 +172,6 @@ public:
|
||||
~plMouseDevice();
|
||||
|
||||
const char* GetInputName() { return "mouse"; }
|
||||
void HandleWindowActivate(bool bActive, HWND hWnd);
|
||||
|
||||
hsBool HasControlFlag(int f) const { return fControlFlags.IsBitSet(f); }
|
||||
void SetControlFlag(int f)
|
||||
@ -195,7 +193,7 @@ public:
|
||||
|
||||
static void SetMsgAlways(bool b) { plMouseDevice::bMsgAlways = b; }
|
||||
static void ShowCursor(hsBool override = false);
|
||||
static void NewCursor(int cursor);
|
||||
static void NewCursor(char* cursor);
|
||||
static void HideCursor(hsBool override = false);
|
||||
static bool GetHideCursor() { return plMouseDevice::bCursorHidden; }
|
||||
static void SetCursorOpacity( hsScalar opacity = 1.f );
|
||||
@ -225,11 +223,11 @@ protected:
|
||||
|
||||
|
||||
plPlate *fCursor;
|
||||
int fCursorID;
|
||||
char* fCursorID;
|
||||
|
||||
static plMouseDevice* fInstance;
|
||||
static plMouseInfo fDefaultMouseControlMap[];
|
||||
void CreateCursor( int cursor );
|
||||
void CreateCursor( char* cursor );
|
||||
void IUpdateCursorSize();
|
||||
static bool bMsgAlways;
|
||||
static bool bCursorHidden;
|
||||
|
@ -251,7 +251,7 @@ void plInputInterfaceMgr::ResetClickableState()
|
||||
|
||||
void plInputInterfaceMgr::IUpdateCursor( Int32 newCursor )
|
||||
{
|
||||
int mouseCursorResID;
|
||||
char* mouseCursorResID;
|
||||
|
||||
|
||||
fCurrentCursor = newCursor;
|
||||
|
@ -563,10 +563,7 @@ void plDInputMgr::AddDevice(IDirectInputDevice8* device)
|
||||
|
||||
void plDInputMgr::ConfigureDevice()
|
||||
{
|
||||
::ClipCursor(nil);
|
||||
::ShowCursor( TRUE );
|
||||
ReleaseCapture();
|
||||
|
||||
|
||||
DICOLORSET dics;
|
||||
ZeroMemory(&dics, sizeof(DICOLORSET));
|
||||
@ -587,13 +584,7 @@ void plDInputMgr::ConfigureDevice()
|
||||
for (int i = 0; i < fDI->fSticks.Count(); i++)
|
||||
fDI->fSticks[i]->fDevice->SetActionMap( fDI->fActionFormat, NULL, DIDSAM_FORCESAVE );
|
||||
|
||||
RECT rect;
|
||||
::GetClientRect(fhWnd,&rect);
|
||||
::ClientToScreen(fhWnd,(LPPOINT)&rect);
|
||||
::ClipCursor(&rect);
|
||||
::ShowCursor( FALSE );
|
||||
SetCapture(fhWnd);
|
||||
|
||||
}
|
||||
|
||||
hsBool plDInputMgr::MsgReceive(plMessage* msg)
|
||||
|
@ -73,7 +73,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../plAvatar/plArmatureMod.h"
|
||||
#include "../plAvatar/plAvBrain.h"
|
||||
#include "../plAvatar/plAvatarMgr.h"
|
||||
#include "../plAvatar/plPhysicalControllerCore.h"
|
||||
#include "../plAvatar/plAvCallbackAction.h"
|
||||
#include "../plModifier/plInterfaceInfoModifier.h"
|
||||
#include "../pnModifier/plLogicModBase.h"
|
||||
#include "../plVault/plVault.h"
|
||||
|
@ -328,11 +328,25 @@ plMipmap* plJPEG::ReadFromFile( const char *fileName )
|
||||
plMipmap* plJPEG::ReadFromFile( const wchar *fileName )
|
||||
{
|
||||
// we use a stream because the IJL can't handle unicode
|
||||
hsUNIXStream out;
|
||||
if (!out.Open(fileName, L"rb"))
|
||||
hsRAMStream tempstream;
|
||||
hsUNIXStream in;
|
||||
if (!in.Open(fileName, L"rb"))
|
||||
return false;
|
||||
plMipmap* ret = IRead(&out);
|
||||
out.Close();
|
||||
|
||||
// The stream reader for JPEGs expects a 32-bit size at the start,
|
||||
// so insert that into the stream before passing it on
|
||||
in.FastFwd();
|
||||
UInt32 fsize = in.GetPosition();
|
||||
UInt8 *tempbuffer = TRACKED_NEW UInt8[fsize];
|
||||
in.Rewind();
|
||||
in.Read(fsize, tempbuffer);
|
||||
tempstream.WriteSwap32(fsize);
|
||||
tempstream.Write(fsize, tempbuffer);
|
||||
delete [] tempbuffer;
|
||||
tempstream.Rewind();
|
||||
|
||||
plMipmap* ret = IRead(&tempstream);
|
||||
in.Close();
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -419,7 +433,7 @@ hsBool plJPEG::IWrite( plMipmap *source, hsStream *outStream )
|
||||
jcProps.jquality = fWriteQuality;
|
||||
#else
|
||||
cinfo.jpeg_width = source->GetWidth(); // default
|
||||
cinfo.jpeg_width = source->GetHeight(); // default
|
||||
cinfo.jpeg_height = source->GetHeight(); // default
|
||||
cinfo.jpeg_color_space = JCS_YCbCr; // default
|
||||
// not sure how to set 4:1:1 but supposedly it's the default
|
||||
jpeg_set_quality( &cinfo, fWriteQuality, TRUE );
|
||||
@ -487,10 +501,23 @@ hsBool plJPEG::WriteToFile( const char *fileName, plMipmap *sourceData )
|
||||
hsBool plJPEG::WriteToFile( const wchar *fileName, plMipmap *sourceData )
|
||||
{
|
||||
// we use a stream because the IJL can't handle unicode
|
||||
hsRAMStream tempstream;
|
||||
hsUNIXStream out;
|
||||
if (!out.Open(fileName, L"wb"))
|
||||
return false;
|
||||
hsBool ret = IWrite(sourceData, &out);
|
||||
hsBool ret = IWrite(sourceData, &tempstream);
|
||||
if (ret)
|
||||
{
|
||||
// The stream writer for JPEGs prepends a 32-bit size,
|
||||
// so remove that from the stream before saving to a file
|
||||
tempstream.Rewind();
|
||||
UInt32 fsize = tempstream.ReadSwap32();
|
||||
UInt8 *tempbuffer = TRACKED_NEW UInt8[fsize];
|
||||
tempstream.Read(fsize, tempbuffer);
|
||||
out.Write(fsize, tempbuffer);
|
||||
|
||||
delete [] tempbuffer;
|
||||
}
|
||||
out.Close();
|
||||
return ret;
|
||||
}
|
||||
|
@ -54,6 +54,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../plMessage/plAvatarMsg.h"
|
||||
#include "plPhysical.h"
|
||||
#include "../plPhysical/plSimDefs.h"
|
||||
#include "../plAvatar/plAvCallbackAction.h"
|
||||
|
||||
#include "../plAvatar/plAvBrainGeneric.h"
|
||||
|
||||
|
@ -94,7 +94,8 @@ private:
|
||||
}
|
||||
else
|
||||
{
|
||||
plPXPhysicalControllerCore* controller = plPXPhysicalControllerCore::GetController(hitActor);
|
||||
bool isController;
|
||||
plPXPhysicalControllerCore* controller = plPXPhysicalControllerCore::GetController(hitActor,&isController);
|
||||
if (controller)
|
||||
{
|
||||
objKey = controller->GetOwner();
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,211 @@
|
||||
/*==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==*/
|
||||
#ifndef plPXPhysicalController_h_inc
|
||||
#define plPXPhysicalController_h_inc
|
||||
|
||||
#include "../plAvatar/plAvCallbackAction.h"
|
||||
#include "hsQuat.h"
|
||||
|
||||
#define PHYSX_ONLY_TRIGGER_FROM_KINEMATIC 1
|
||||
|
||||
class NxController;
|
||||
class NxCapsuleController;
|
||||
class NxActor;
|
||||
class plCoordinateInterface;
|
||||
class plPhysicalProxy;
|
||||
class plDrawableSpans;
|
||||
class hsGMaterial;
|
||||
class NxCapsule;
|
||||
#ifndef PLASMA_EXTERNAL_RELEASE
|
||||
class plDbgCollisionInfo
|
||||
{
|
||||
public:
|
||||
plSceneObject *fSO;
|
||||
hsVector3 fNormal;
|
||||
hsBool fOverlap;
|
||||
};
|
||||
#endif // PLASMA_EXTERNAL_RELEASE
|
||||
|
||||
class plPXPhysicalController : public plPhysicalController
|
||||
{
|
||||
public:
|
||||
plPXPhysicalController(plKey ownerSO, hsScalar height, hsScalar radius);
|
||||
virtual ~plPXPhysicalController();
|
||||
|
||||
virtual void Enable(bool enable);
|
||||
virtual bool IsEnabled() const { return fEnable; }
|
||||
|
||||
virtual void SetLOSDB(plSimDefs::plLOSDB losDB) { fLOSDB = losDB; }
|
||||
plSimDefs::plLOSDB GetLOSDB() const { return fLOSDB; }
|
||||
|
||||
virtual void SetVelocities(const hsVector3& linearVel, hsScalar angVel)
|
||||
{
|
||||
fLinearVelocity = linearVel;
|
||||
fAngularVelocity = angVel;
|
||||
}
|
||||
|
||||
virtual const hsVector3& GetLinearVelocity() const { return fAchievedLinearVelocity; }
|
||||
virtual void ResetAchievedLinearVelocity() { fAchievedLinearVelocity.Set(0.f, 0.f, 0.f); }
|
||||
|
||||
virtual plKey GetSubworld() const { return fWorldKey; }
|
||||
virtual void SetSubworld(plKey world);
|
||||
|
||||
virtual bool IsOnGround() const { return fTimeInAir < kAirTimeThreshold || fFalseGround; }
|
||||
virtual bool IsOnFalseGround() const { return fFalseGround && !fGroundHit; }
|
||||
virtual void GroundHit() { fGroundHit = true; }
|
||||
virtual hsScalar GetAirTime() const { return fTimeInAir; }
|
||||
virtual void ResetAirTime() { fTimeInAir = 0.f; }
|
||||
virtual void AddSlidingNormal(hsVector3 vec);
|
||||
virtual hsTArray<hsVector3>* GetSlidingNormals() { return &fSlidingNormals; }
|
||||
|
||||
virtual plPhysical* GetPushingPhysical() const { return fPushingPhysical; }
|
||||
virtual bool GetFacingPushingPhysical() const { return fFacingPushingPhysical; }
|
||||
|
||||
virtual const plCoordinateInterface* GetSubworldCI() const;
|
||||
|
||||
virtual void GetState(hsPoint3& pos, float& zRot);
|
||||
virtual void SetState(const hsPoint3& pos, float zRot);
|
||||
|
||||
plKey GetOwner() const { return fOwner; }
|
||||
|
||||
// Called by the simulation mgr each frame
|
||||
static void Update(bool prestep, hsScalar delSecs);
|
||||
// Used by the LOS mgr to find the controller for an actor it hit
|
||||
static plPXPhysicalController* GetController(NxActor& actor, bool* isController);
|
||||
// test to see if there are any controllers (i.e. avatars) in this subworld
|
||||
static bool plPXPhysicalController::AnyControllersInThisWorld(plKey world);
|
||||
static int plPXPhysicalController::NumControllers();
|
||||
static int plPXPhysicalController::GetControllersInThisSubWorld(plKey world, int maxToReturn,
|
||||
plPXPhysicalController** bufferout);
|
||||
static int plPXPhysicalController::GetNumberOfControllersInThisSubWorld(plKey world);
|
||||
// Call this if a static physical in the scene has changed (unloaded,
|
||||
// collision enabled/disabled, etc)
|
||||
static void RebuildCache();
|
||||
|
||||
virtual void GetPositionSim(hsPoint3& pos) const { IGetPositionSim(pos); }
|
||||
|
||||
virtual void Kinematic(bool state);
|
||||
virtual bool IsKinematic();
|
||||
virtual void GetKinematicPosition(hsPoint3& pos);
|
||||
|
||||
virtual plDrawableSpans* CreateProxy(hsGMaterial* mat, hsTArray<UInt32>& idx, plDrawableSpans* addTo);
|
||||
|
||||
virtual const hsMatrix44& GetPrevSubworldW2L() { return fPrevSubworldW2L; }
|
||||
|
||||
virtual void SetSeek(bool seek){fSeeking=seek;}
|
||||
virtual void GetWorldSpaceCapsule(NxCapsule& cap);
|
||||
#ifndef PLASMA_EXTERNAL_RELEASE
|
||||
static hsBool fDebugDisplay;
|
||||
#endif // PLASMA_EXTERNAL_RELEASE
|
||||
|
||||
protected:
|
||||
static const hsScalar kAirTimeThreshold;
|
||||
|
||||
friend class PXControllerHitReport;
|
||||
static plPXPhysicalController* FindController(NxController* controller);
|
||||
|
||||
void IApply(hsScalar delSecs);
|
||||
void ISendUpdates(hsScalar delSecs);
|
||||
void ICheckForFalseGround();
|
||||
void ISetGlobalLoc(const hsMatrix44& l2w);
|
||||
void IMatchKinematicToController();
|
||||
void IMoveKinematicToController(hsPoint3& pos);
|
||||
void ISetKinematicLoc(const hsMatrix44& l2w);
|
||||
void IGetPositionSim(hsPoint3& pos) const;
|
||||
|
||||
void ICreateController();
|
||||
void IDeleteController();
|
||||
|
||||
void IInformDetectors(bool entering);
|
||||
|
||||
plKey fOwner;
|
||||
plKey fWorldKey;
|
||||
hsScalar fRadius, fHeight;
|
||||
NxCapsuleController* fController;
|
||||
|
||||
// this is the kinematic actor for triggering things when the avatar is collision-less during behaviors
|
||||
NxActor* fKinematicActor;
|
||||
|
||||
hsVector3 fLinearVelocity;
|
||||
hsScalar fAngularVelocity;
|
||||
|
||||
hsVector3 fAchievedLinearVelocity;
|
||||
|
||||
// The global position and rotation of the avatar last time we set it (so we
|
||||
// can detect if someone else moves him)
|
||||
hsMatrix44 fLastGlobalLoc;
|
||||
//
|
||||
hsPoint3 fLocalPosition;
|
||||
hsQuat fLocalRotation;
|
||||
|
||||
hsMatrix44 fPrevSubworldW2L;
|
||||
|
||||
bool fEnable;
|
||||
bool fEnableChanged;
|
||||
plSimDefs::plLOSDB fLOSDB;
|
||||
|
||||
bool fKinematic;
|
||||
bool fKinematicChanged;
|
||||
bool fKinematicEnableNextUpdate;
|
||||
|
||||
bool fGroundHit;
|
||||
bool fFalseGround;
|
||||
hsScalar fTimeInAir;
|
||||
hsTArray<hsVector3> fSlidingNormals;
|
||||
hsTArray<hsVector3> fPrevSlidingNormals;
|
||||
|
||||
#ifndef PLASMA_EXTERNAL_RELEASE
|
||||
hsTArray<plDbgCollisionInfo> fDbgCollisionInfo;
|
||||
void IDrawDebugDisplay();
|
||||
#endif // PLASMA_EXTERNAL_RELEASE
|
||||
|
||||
plPhysical* fPushingPhysical;
|
||||
bool fFacingPushingPhysical;
|
||||
|
||||
plPhysicalProxy* fProxyGen; // visual proxy for debugging
|
||||
|
||||
bool fHitHead;
|
||||
|
||||
bool fSeeking;
|
||||
};
|
||||
|
||||
#endif // plPXPhysicalController_h_inc
|
File diff suppressed because it is too large
Load Diff
@ -40,19 +40,22 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
|
||||
*==LICENSE==*/
|
||||
#include "../plAvatar/plPhysicalControllerCore.h"
|
||||
#include "hsQuat.h"
|
||||
#define PHYSX_ONLY_TRIGGER_FROM_KINEMATIC 1
|
||||
|
||||
class NxController;
|
||||
class NxCapsuleController;
|
||||
class NxActor;
|
||||
class NxCapsule;
|
||||
class PXControllerHitReport;
|
||||
class plCoordinateInterface;
|
||||
class plPhysicalProxy;
|
||||
class plDrawableSpans;
|
||||
class hsGMaterial;
|
||||
class NxCapsule;
|
||||
class plSceneObject;
|
||||
class plPXPhysical;
|
||||
class PXControllerHitReportWalk;
|
||||
class plCollideMsg;
|
||||
|
||||
#ifndef PLASMA_EXTERNAL_RELEASE
|
||||
|
||||
class plDbgCollisionInfo
|
||||
{
|
||||
public:
|
||||
@ -61,113 +64,98 @@ public:
|
||||
hsBool fOverlap;
|
||||
};
|
||||
#endif // PLASMA_EXTERNAL_RELEASE
|
||||
|
||||
class plPXPhysicalControllerCore: public plPhysicalControllerCore
|
||||
{
|
||||
friend PXControllerHitReportWalk;
|
||||
public:
|
||||
plPXPhysicalControllerCore(plKey ownerSO, hsScalar height, hsScalar radius, bool human);
|
||||
plPXPhysicalControllerCore(plKey ownerSO, hsScalar height, hsScalar radius);
|
||||
~plPXPhysicalControllerCore();
|
||||
|
||||
// An ArmatureMod has its own idea about when physics should be enabled/disabled.
|
||||
// Use plArmatureModBase::EnablePhysics() instead.
|
||||
//should actually be a 3 vector but everywhere else it is assumed to be just around Z
|
||||
|
||||
inline virtual void Move(hsVector3 displacement, unsigned int collideWith, unsigned int &collisionResults);
|
||||
// A disabled avatar doesn't move or accumulate air time if he's off the ground.
|
||||
virtual void Enable(bool enable);
|
||||
|
||||
// Subworld
|
||||
virtual void SetSubworld(plKey world);
|
||||
|
||||
|
||||
virtual void SetSubworld(plKey world) ;
|
||||
virtual const plCoordinateInterface* GetSubworldCI() const ;
|
||||
// For the avatar SDL only
|
||||
virtual void GetState(hsPoint3& pos, float& zRot);
|
||||
virtual void SetState(const hsPoint3& pos, float zRot);
|
||||
|
||||
// Movement strategy
|
||||
virtual void SetMovementStrategy(plMovementStrategy* strategy);
|
||||
|
||||
// Global location
|
||||
virtual void SetGlobalLoc(const hsMatrix44& l2w);
|
||||
|
||||
// Local Sim Position
|
||||
virtual void GetPositionSim(hsPoint3& pos);
|
||||
|
||||
// Move kinematic controller
|
||||
virtual void Move(hsVector3 displacement, unsigned int collideWith, unsigned int &collisionResults);
|
||||
|
||||
// Set linear velocity on dynamic controller
|
||||
virtual void SetLinearVelocitySim(const hsVector3& linearVel);
|
||||
|
||||
// Sweep the controller path from startPos through endPos
|
||||
virtual int SweepControllerPath(const hsPoint3& startPos, const hsPoint3& endPos, hsBool vsDynamics,
|
||||
hsBool vsStatics, UInt32& vsSimGroups, std::vector<plControllerSweepRecord>& hits);
|
||||
|
||||
// any clean up for the controller should go here
|
||||
// kinematic stuff .... should be just for when playing a behavior...
|
||||
virtual void Kinematic(bool state);
|
||||
virtual bool IsKinematic();
|
||||
virtual void GetKinematicPosition(hsPoint3& pos);
|
||||
virtual const hsMatrix44& GetPrevSubworldW2L(){ return fPrevSubworldW2L; }
|
||||
//when seeking no longer want to interact with exclusion regions
|
||||
virtual void GetWorldSpaceCapsule(NxCapsule& cap) const;
|
||||
static void RebuildCache();
|
||||
virtual const hsMatrix44& GetLastGlobalLoc(){return fLastGlobalLoc;}
|
||||
virtual void SetKinematicLoc(const hsMatrix44& l2w){ISetKinematicLoc(l2w);}
|
||||
virtual void SetGlobalLoc(const hsMatrix44& l2w){ISetGlobalLoc(l2w);}
|
||||
virtual void HandleEnableChanged();
|
||||
virtual void HandleKinematicChanged();
|
||||
virtual void HandleKinematicEnableNextUpdate();
|
||||
virtual void GetPositionSim(hsPoint3& pos){IGetPositionSim(pos);}
|
||||
virtual void MoveKinematicToController(hsPoint3& pos);
|
||||
virtual const hsPoint3& GetLocalPosition(){return fLocalPosition;}
|
||||
virtual void SetControllerDimensions(hsScalar radius, hsScalar height);
|
||||
virtual void LeaveAge();
|
||||
|
||||
// Capsule
|
||||
void GetWorldSpaceCapsule(NxCapsule& cap) const;
|
||||
|
||||
// Create Proxy for debug rendering
|
||||
plDrawableSpans* CreateProxy(hsGMaterial* mat, hsTArray<UInt32>& idx, plDrawableSpans* addTo);
|
||||
|
||||
// Dynamic hits
|
||||
void AddDynamicHit(plPXPhysical* phys);
|
||||
virtual void UpdateControllerAndPhysicalRep();
|
||||
|
||||
//////////////////////////////////////////
|
||||
//Static Helper Functions
|
||||
////////////////////////////////////////
|
||||
|
||||
// Call pre-sim to apply movement to controllers
|
||||
static void Apply(hsScalar delSecs);
|
||||
|
||||
// Call post-sim to update controllers
|
||||
static void Update(int numSubSteps, hsScalar alpha);
|
||||
|
||||
// Update controllers when not performing a physics step
|
||||
static void UpdateNonPhysical(hsScalar alpha);
|
||||
|
||||
// Rebuild the controller cache, required when a static actor in the scene has changed.
|
||||
static void RebuildCache();
|
||||
|
||||
// Returns the plPXPhysicalControllerCore associated with the given NxActor
|
||||
static plPXPhysicalControllerCore* GetController(NxActor& actor);
|
||||
|
||||
// Subworld controller queries
|
||||
// Used by the LOS mgr to find the controller for an actor it hit
|
||||
static plPXPhysicalControllerCore* GetController(NxActor& actor, bool* isController);
|
||||
// test to see if there are any controllers (i.e. avatars) in this subworld
|
||||
static bool AnyControllersInThisWorld(plKey world);
|
||||
static int GetNumberOfControllersInThisSubWorld(plKey world);
|
||||
static int GetControllersInThisSubWorld(plKey world, int maxToReturn, plPXPhysicalControllerCore** bufferout);
|
||||
|
||||
// Controller count
|
||||
static int NumControllers();
|
||||
static void SetMaxNumberOfControllers(int max) { fPXControllersMax = max; }
|
||||
static int fPXControllersMax;
|
||||
|
||||
static int GetControllersInThisSubWorld(plKey world, int maxToReturn,
|
||||
plPXPhysicalControllerCore** bufferout);
|
||||
static int GetNumberOfControllersInThisSubWorld(plKey world);
|
||||
static void UpdatePrestep(hsScalar delSecs);
|
||||
static void UpdatePoststep(hsScalar delSecs);
|
||||
static void UpdatePostSimStep(hsScalar delSecs);
|
||||
virtual plDrawableSpans* CreateProxy(hsGMaterial* mat, hsTArray<UInt32>& idx, plDrawableSpans* addTo);
|
||||
#ifndef PLASMA_EXTERNAL_RELEASE
|
||||
static hsBool fDebugDisplay;
|
||||
#endif
|
||||
#endif // PLASMA_EXTERNAL_RELEASE
|
||||
static void plPXPhysicalControllerCore::SetMaxNumberOfControllers(int max) { fPXControllersMax = max; }
|
||||
static int fPXControllersMax;
|
||||
virtual int SweepControllerPath(const hsPoint3& startPos, const hsPoint3& endPos, hsBool vsDynamics, hsBool vsStatics, UInt32& vsSimGroups, std::multiset< plControllerSweepRecord >& WhatWasHitOut);
|
||||
virtual void BehaveLikeAnimatedPhysical(hsBool actLikeAnAnimatedPhys);
|
||||
virtual hsBool BehavingLikeAnAnimatedPhysical();
|
||||
virtual const hsVector3& GetLinearVelocity();
|
||||
|
||||
virtual void SetLinearVelocity(const hsVector3& linearVel);
|
||||
//should actually be a 3 vector but everywhere else it is assumed to be just around Z
|
||||
virtual void SetAngularVelocity(const hsScalar angvel);
|
||||
virtual void SetVelocities(const hsVector3& linearVel, hsScalar angVel);
|
||||
|
||||
protected:
|
||||
friend class PXControllerHitReport;
|
||||
|
||||
virtual void IHandleEnableChanged();
|
||||
|
||||
void IInformDetectors(bool entering);
|
||||
|
||||
void ICreateController(const hsPoint3& pos);
|
||||
static plPXPhysicalControllerCore* FindController(NxController* controller);
|
||||
void ISetGlobalLoc(const hsMatrix44& l2w);
|
||||
void IMatchKinematicToController();
|
||||
void IMatchControllerToKinematic();
|
||||
void ISetKinematicLoc(const hsMatrix44& l2w);
|
||||
void IGetPositionSim(hsPoint3& pos) const;
|
||||
void ICreateController();
|
||||
void IDeleteController();
|
||||
|
||||
void IDispatchQueuedMsgs();
|
||||
void IProcessDynamicHits();
|
||||
|
||||
#ifndef PLASMA_EXTERNAL_RELEASE
|
||||
void IDrawDebugDisplay();
|
||||
hsTArray<plDbgCollisionInfo> fDbgCollisionInfo;
|
||||
#endif
|
||||
|
||||
std::vector<plCollideMsg*> fQueuedCollideMsgs;
|
||||
std::vector<plPXPhysical*> fDynamicHits;
|
||||
|
||||
void IInformDetectors(bool entering,bool deferUntilNextSim);
|
||||
void plPXPhysicalControllerCore::ICreateController(const hsPoint3& pos);
|
||||
NxActor* fKinematicActor;
|
||||
NxCapsuleController* fController;
|
||||
NxActor* fActor;
|
||||
|
||||
plPhysicalProxy* fProxyGen;
|
||||
bool fKinematicCCT;
|
||||
bool fHuman;
|
||||
#ifndef PLASMA_EXTERNAL_RELEASE
|
||||
hsTArray<plDbgCollisionInfo> fDbgCollisionInfo;
|
||||
void IDrawDebugDisplay();
|
||||
#endif
|
||||
void plPXPhysicalControllerCore::IHandleResize();
|
||||
hsTArray<plCollideMsg*> fQueuedCollideMsgs;
|
||||
hsScalar fPreferedRadius;
|
||||
hsScalar fPreferedHeight;
|
||||
// The global position and rotation of the avatar last time we set it (so we
|
||||
// can detect if someone else moves him)
|
||||
plPhysicalProxy* fProxyGen;
|
||||
hsBool fBehavingLikeAnimatedPhys;
|
||||
};
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user