From 81430040526d205651547e82b62d94be845d1b56 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Sat, 9 Apr 2011 17:32:18 -0700 Subject: [PATCH] Progress towards making plClient compile (cherry picked from commit f7a9adab7204cefdab95b168814c9209875a5b2d) --- Sources/Plasma/Apps/CMakeLists.txt | 4 + Sources/Plasma/Apps/plClient/CMakeLists.txt | 160 ++++++++++++++ Sources/Plasma/Apps/plClient/plClient.cpp | 204 +++++++++--------- .../Plasma/Apps/plClient/plClientCreatable.h | 2 +- Sources/Plasma/Apps/plClient/winmain.cpp | 30 +-- .../Plasma/Apps/plClientPatcher/UruPlayer.cpp | 2 +- Sources/Plasma/CMakeLists.txt | 1 + .../Plasma/FeatureLib/inc/pfAllCreatables.h | 28 +-- .../FeatureLib/pfGameGUIMgr/CMakeLists.txt | 1 + .../Plasma/FeatureLib/pfPython/CMakeLists.txt | 4 +- .../NucleusLib/pnNetCommon/CMakeLists.txt | 1 + Sources/Plasma/PubUtilLib/CMakeLists.txt | 2 +- .../Plasma/PubUtilLib/plGImage/CMakeLists.txt | 47 ++++ .../PubUtilLib/plGImage/hsDXTDirectXCodec.cpp | 2 +- .../PubUtilLib/plGImage/plAVIWriter.cpp | 6 +- .../Plasma/PubUtilLib/plGImage/plAVIWriter.h | 4 +- .../Plasma/PubUtilLib/plGImage/plBitmap.cpp | 12 +- .../plGImage/plDynSurfaceWriter.cpp | 8 +- .../PubUtilLib/plGImage/plDynamicTextMap.cpp | 10 +- Sources/Plasma/PubUtilLib/plGImage/plFont.h | 2 +- .../PubUtilLib/plGImage/plFontCache.cpp | 8 +- .../Plasma/PubUtilLib/plGImage/plFontCache.h | 2 +- .../PubUtilLib/plGImage/plGImageCreatable.h | 2 +- .../PubUtilLib/plGImage/plLODMipmap.cpp | 8 +- .../Plasma/PubUtilLib/plGImage/plMipmap.cpp | 8 +- .../PubUtilLib/plGImage/plWinFontCache.cpp | 6 +- .../plUnifiedTime/plUnifiedTime.cpp | 63 +++--- 27 files changed, 424 insertions(+), 203 deletions(-) create mode 100644 Sources/Plasma/Apps/CMakeLists.txt create mode 100644 Sources/Plasma/Apps/plClient/CMakeLists.txt create mode 100644 Sources/Plasma/PubUtilLib/plGImage/CMakeLists.txt diff --git a/Sources/Plasma/Apps/CMakeLists.txt b/Sources/Plasma/Apps/CMakeLists.txt new file mode 100644 index 00000000..23df716f --- /dev/null +++ b/Sources/Plasma/Apps/CMakeLists.txt @@ -0,0 +1,4 @@ +add_definitions(-D_LIB) # We shouldn't actually need this here, but + # Cyan uses it, so meh + +add_subdirectory(plClient) diff --git a/Sources/Plasma/Apps/plClient/CMakeLists.txt b/Sources/Plasma/Apps/plClient/CMakeLists.txt new file mode 100644 index 00000000..02f7b41d --- /dev/null +++ b/Sources/Plasma/Apps/plClient/CMakeLists.txt @@ -0,0 +1,160 @@ +include_directories("../../Apps") +include_directories("../../CoreLib") +include_directories("../../FeatureLib/inc") +include_directories("../../FeatureLib") +include_directories("../../NucleusLib/inc") +include_directories("../../NucleusLib") +include_directories("../../PubUtilLib/inc") +include_directories("../../PubUtilLib") + +include_directories(${OPENAL_INCLUDE_DIR}) +include_directories(${OPENSSL_INCLUDE_DIR}) +include_directories(${PYTHON_INCLUDE_DIR}) + +set(plClient_HEADERS + plClient.h + plClientCreatable.h + #plClientKey.h + plClientUpdateFormat.h + #plPluginClient.h +) + +set(plClient_SOURCES + pfAllCreatables.cpp + plAllCreatables.cpp + plClient.cpp + #plClientKey.cpp + #plPluginClient.cpp + pnAllCreatables.cpp + winmain.cpp +) + +set(plClient_TEXT + ../../../../Docs/ReleaseNotes/ReleaseNotes.txt +) + +set(plClient_RESOURCES + res/plClient.rc + res/resource.h +) + +add_executable(plClient WIN32 ${plClient_SOURCES} ${plClient_HEADERS} + ${plClient_TEXT} ${plClient_RESOURCES}) +target_link_libraries(plClient CoreLib) +target_link_libraries(plClient CoreLibExe) +target_link_libraries(plClient pfAnimation) +target_link_libraries(plClient pfAudio) +target_link_libraries(plClient pfCamera) +target_link_libraries(plClient pfCCR) +target_link_libraries(plClient pfCharacter) +target_link_libraries(plClient pfConditional) +target_link_libraries(plClient pfConsole) +target_link_libraries(plClient pfCsrSrv) +target_link_libraries(plClient pfGameGUIMgr) +target_link_libraries(plClient pfGameMgr) +target_link_libraries(plClient pfGameScoreMgr) +target_link_libraries(plClient pfJournalBook) +target_link_libraries(plClient pfLocalizationMgr) +target_link_libraries(plClient pfMessage) +target_link_libraries(plClient pfPython) +target_link_libraries(plClient pfSecurePreloader) +target_link_libraries(plClient pfStackTrace) +target_link_libraries(plClient pfSurface) +target_link_libraries(plClient plAgeDescription) +target_link_libraries(plClient plAgeLoader) +target_link_libraries(plClient plAudible) +target_link_libraries(plClient plAudio) +target_link_libraries(plClient plAudioCore) +target_link_libraries(plClient plAvatar) +#target_link_libraries(plClient plClientKey) +target_link_libraries(plClient plCompression) +target_link_libraries(plClient plContainer) +target_link_libraries(plClient plDrawable) +target_link_libraries(plClient plEncryption) +target_link_libraries(plClient plFile) +target_link_libraries(plClient plGImage) +target_link_libraries(plClient plGLight) +target_link_libraries(plClient plInputCore) +target_link_libraries(plClient plInterp) +target_link_libraries(plClient plIntersect) +target_link_libraries(plClient plJPEG) +target_link_libraries(plClient plMath) +target_link_libraries(plClient plMessage) +target_link_libraries(plClient plModifier) +target_link_libraries(plClient plNetClient) +target_link_libraries(plClient plNetClientComm) +target_link_libraries(plClient plNetClientRecorder) +target_link_libraries(plClient plNetCommon) +target_link_libraries(plClient plNetGameLib) +target_link_libraries(plClient plNetMessage) +target_link_libraries(plClient plNetTransport) +target_link_libraries(plClient plParticleSystem) +target_link_libraries(plClient plPhysical) +target_link_libraries(plClient plPhysX) +target_link_libraries(plClient plPipeline) +target_link_libraries(plClient plProgressMgr) +target_link_libraries(plClient plResMgr) +target_link_libraries(plClient plScene) +target_link_libraries(plClient plSDL) +target_link_libraries(plClient plSockets) +target_link_libraries(plClient plStatGather) +target_link_libraries(plClient plStatusLog) +target_link_libraries(plClient plStreamLogger) +target_link_libraries(plClient plSurface) +target_link_libraries(plClient plTransform) +target_link_libraries(plClient plUnifiedTime) +target_link_libraries(plClient plUUID) +target_link_libraries(plClient plVault) +target_link_libraries(plClient pnAddrInfo) +target_link_libraries(plClient pnAsyncCore) +target_link_libraries(plClient pnAsyncCoreExe) +target_link_libraries(plClient pnCsrNet) +target_link_libraries(plClient pnDispatch) +target_link_libraries(plClient pnFactory) +target_link_libraries(plClient pnGameMgr) +target_link_libraries(plClient pnIni) +target_link_libraries(plClient pnIniExe) +target_link_libraries(plClient pnInputCore) +target_link_libraries(plClient pnKeyedObject) +target_link_libraries(plClient pnMessage) +target_link_libraries(plClient pnModifier) +target_link_libraries(plClient pnNetBase) +target_link_libraries(plClient pnNetCli) +target_link_libraries(plClient pnNetCommon) +target_link_libraries(plClient pnNetProtocol) +target_link_libraries(plClient pnNucleusInc) +target_link_libraries(plClient pnProduct) +target_link_libraries(plClient pnSceneObject) +target_link_libraries(plClient pnSimpleNet) +target_link_libraries(plClient pnTimer) +target_link_libraries(plClient pnUtils) +target_link_libraries(plClient pnUtilsExe) + +target_link_libraries(plClient ${PYTHON_LIBRARY}) +target_link_libraries(plClient ${PYTHON_DEBUG_LIBRARY}) +target_link_libraries(plClient ${OPENAL_LIBRARY}) +target_link_libraries(plClient ${OPENSSL_LIBRARIES}) +target_link_libraries(plClient ${EXPAT_LIBRARY}) +target_link_libraries(plClient ${JPEG_LIBRARY}) +target_link_libraries(plClient ${Speex_LIBRARY}) +target_link_libraries(plClient ${PHYSX_LIBRARIES}) +target_link_libraries(plClient ${Ogg_LIBRARIES}) +target_link_libraries(plClient ${Vorbis_LIBRARIES}) +target_link_libraries(plClient ws2_32) +target_link_libraries(plClient winhttp) +target_link_libraries(plClient version) +target_link_libraries(plClient rpcrt4) +target_link_libraries(plClient vfw32) +target_link_libraries(plClient d3d9) +target_link_libraries(plClient d3dx9) +target_link_libraries(plClient ddraw) +target_link_libraries(plClient dinput8) +target_link_libraries(plClient dsound) +target_link_libraries(plClient dxerr9) +target_link_libraries(plClient dxguid) +target_link_libraries(plClient strmiids) + +source_group("Source Files" FILES ${plClient_SOURCES}) +source_group("Header Files" FILES ${plClient_HEADERS}) +source_group("Text" FILES ${plClient_TEXT}) +source_group("Resource Files" FILES ${plClient_RESOURCES}) diff --git a/Sources/Plasma/Apps/plClient/plClient.cpp b/Sources/Plasma/Apps/plClient/plClient.cpp index 0a45a9c1..c13b7d41 100644 --- a/Sources/Plasma/Apps/plClient/plClient.cpp +++ b/Sources/Plasma/Apps/plClient/plClient.cpp @@ -45,120 +45,120 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsWindowHndl.h" #include "plClient.h" #include "hsStream.h" -#include "../plResMgr/plResManager.h" -#include "../plResMgr/plKeyFinder.h" -#include "../pnKeyedObject/plKey.h" -#include "../pnKeyedObject/plFixedKey.h" -#include "../pnMessage/plRefMsg.h" -#include "../pnSceneObject/plSceneObject.h" -#include "../pnSceneObject/plCoordinateInterface.h" -#include "../plScene/plSceneNode.h" -#include "../pnMessage/plTimeMsg.h" -#include "../pnMessage/plClientMsg.h" -#include "../pfCamera/plVirtualCamNeu.h" +#include "plResMgr/plResManager.h" +#include "plResMgr/plKeyFinder.h" +#include "pnKeyedObject/plKey.h" +#include "pnKeyedObject/plFixedKey.h" +#include "pnMessage/plRefMsg.h" +#include "pnSceneObject/plSceneObject.h" +#include "pnSceneObject/plCoordinateInterface.h" +#include "plScene/plSceneNode.h" +#include "pnMessage/plTimeMsg.h" +#include "pnMessage/plClientMsg.h" +#include "pfCamera/plVirtualCamNeu.h" #include "hsTimer.h" -#include "../plPipeline/hsG3DDeviceSelector.h" -#include "../plFile/plEncryptedStream.h" -#include "../plFile/plFileUtils.h" -#include "../plInputCore/plInputManager.h" -#include "../plInputCore/plInputInterfaceMgr.h" -#include "../plInputCore/plInputDevice.h" -#include "../plPhysX/plSimulationMgr.h" -#include "../plNetClient/plNetClientMgr.h" -#include "../plAvatar/plAvatarMgr.h" -#include "../plScene/plRelevanceMgr.h" -#include "../pnTimer/plTimerCallbackManager.h" -#include "../pfAudio/plListener.h" -#include "../pnMessage/plCmdIfaceModMsg.h" -#include "../plMessage/plRoomLoadNotifyMsg.h" -#include "../pnMessage/plPlayerPageMsg.h" -#include "../pnMessage/plCameraMsg.h" -#include "../plMessage/plTransitionMsg.h" -#include "../plMessage/plLinkToAgeMsg.h" -#include "../plMessage/plPreloaderMsg.h" -#include "../plMessage/plNetCommMsgs.h" -#include "../plMessage/plAgeLoadedMsg.h" - -#include "../pfConsole/pfConsoleEngine.h" -#include "../pfConsole/pfConsole.h" -#include "../pfConsole/pfConsoleDirSrc.h" -#include "../plScene/plPageTreeMgr.h" -#include "../plScene/plVisMgr.h" -#include "../plFile/hsFiles.h" - -#include "../pfKI/pfKI.h" - -#include "../plAudio/plAudioSystem.h" -#include "../plAudio/plAudioCaps.h" - -#include "../plStatGather/plProfileManagerFull.h" +#include "plPipeline/hsG3DDeviceSelector.h" +#include "plFile/plEncryptedStream.h" +#include "plFile/plFileUtils.h" +#include "plInputCore/plInputManager.h" +#include "plInputCore/plInputInterfaceMgr.h" +#include "plInputCore/plInputDevice.h" +#include "plPhysX/plSimulationMgr.h" +#include "plNetClient/plNetClientMgr.h" +#include "plAvatar/plAvatarMgr.h" +#include "plScene/plRelevanceMgr.h" +#include "pnTimer/plTimerCallbackManager.h" +#include "pfAudio/plListener.h" +#include "pnMessage/plCmdIfaceModMsg.h" +#include "plMessage/plRoomLoadNotifyMsg.h" +#include "pnMessage/plPlayerPageMsg.h" +#include "pnMessage/plCameraMsg.h" +#include "plMessage/plTransitionMsg.h" +#include "plMessage/plLinkToAgeMsg.h" +#include "plMessage/plPreloaderMsg.h" +#include "plMessage/plNetCommMsgs.h" +#include "plMessage/plAgeLoadedMsg.h" + +#include "pfConsole/pfConsoleEngine.h" +#include "pfConsole/pfConsole.h" +#include "pfConsole/pfConsoleDirSrc.h" +#include "plScene/plPageTreeMgr.h" +#include "plScene/plVisMgr.h" +#include "plFile/hsFiles.h" + +#include "pfKI/pfKI.h" + +#include "plAudio/plAudioSystem.h" +#include "plAudio/plAudioCaps.h" + +#include "plStatGather/plProfileManagerFull.h" #include "plPipeline.h" -#include "../plPipeline/plPipelineCreate.h" -#include "../plPipeline/plPipeDebugFlags.h" -#include "../plPipeline/plTransitionMgr.h" -#include "../plPipeline/plCaptureRender.h" -#include "../plPipeline/plDynamicEnvMap.h" -#include "../plNetClient/plLinkEffectsMgr.h" -#include "../plAvatar/plAvatarClothing.h" -#include "../plAvatar/plArmatureMod.h" -#include "../pnMessage/plProxyDrawMsg.h" - -#include "../plScene/plRenderRequest.h" -#include "../plDrawable/plAccessGeometry.h" +#include "plPipeline/plPipelineCreate.h" +#include "plPipeline/plPipeDebugFlags.h" +#include "plPipeline/plTransitionMgr.h" +#include "plPipeline/plCaptureRender.h" +#include "plPipeline/plDynamicEnvMap.h" +#include "plNetClient/plLinkEffectsMgr.h" +#include "plAvatar/plAvatarClothing.h" +#include "plAvatar/plArmatureMod.h" +#include "pnMessage/plProxyDrawMsg.h" + +#include "plScene/plRenderRequest.h" +#include "plDrawable/plAccessGeometry.h" #include "plPipeResReq.h" -#include "../plDrawable/plVisLOSMgr.h" - -#include "../plGImage/plBitmap.h" - -#include "../plStatusLog/plStatusLog.h" -#include "../plProgressMgr/plProgressMgr.h" -#include "../plPipeline/plDTProgressMgr.h" -#include "../plPipeline/plBinkPlayer.h" -#include "../pfMoviePlayer/plMoviePlayer.h" -#include "../plMessage/plMovieMsg.h" - -#include "../plSDL/plSDL.h" - -#include "../pnDispatch/plDispatch.h" -#include "../pnDispatch/plDispatchLogBase.h" -#include "../pfGameGUIMgr/pfGameGUIMgr.h" -#include "../pfPython/cyMisc.h" -#include "../plMessage/plInputEventMsg.h" -#include "../plMessage/plRenderRequestMsg.h" -#include "../pnMessage/plEventCallbackMsg.h" -#include "../plModifier/plSimpleModifier.h" +#include "plDrawable/plVisLOSMgr.h" + +#include "plGImage/plBitmap.h" + +#include "plStatusLog/plStatusLog.h" +#include "plProgressMgr/plProgressMgr.h" +#include "plPipeline/plDTProgressMgr.h" +#include "plPipeline/plBinkPlayer.h" +#include "pfMoviePlayer/plMoviePlayer.h" +#include "plMessage/plMovieMsg.h" + +#include "plSDL/plSDL.h" + +#include "pnDispatch/plDispatch.h" +#include "pnDispatch/plDispatchLogBase.h" +#include "pfGameGUIMgr/pfGameGUIMgr.h" +#include "pfPython/cyMisc.h" +#include "plMessage/plInputEventMsg.h" +#include "plMessage/plRenderRequestMsg.h" +#include "pnMessage/plEventCallbackMsg.h" +#include "plModifier/plSimpleModifier.h" #include "plAudible.h" -#include "../plMessage/plAnimCmdMsg.h" -#include "../pnMessage/plSoundMsg.h" -#include "../pnMessage/plAudioSysMsg.h" -#include "../plMessage/plRenderMsg.h" -#include "../plAgeLoader/plResPatcher.h" -#include "../pfPython/cyPythonInterface.h" -#include "../plUnifiedTime/plClientUnifiedTime.h" -#include "../pfAnimation/plAnimDebugList.h" -#include "../pfGameGUIMgr/pfGUICtrlGenerator.h" +#include "plMessage/plAnimCmdMsg.h" +#include "pnMessage/plSoundMsg.h" +#include "pnMessage/plAudioSysMsg.h" +#include "plMessage/plRenderMsg.h" +#include "plAgeLoader/plResPatcher.h" +#include "pfPython/cyPythonInterface.h" +#include "plUnifiedTime/plClientUnifiedTime.h" +#include "pfAnimation/plAnimDebugList.h" +#include "pfGameGUIMgr/pfGUICtrlGenerator.h" -#include "../plGImage/plWinFontCache.h" -#include "../plGImage/plFontCache.h" +#include "plGImage/plWinFontCache.h" +#include "plGImage/plFontCache.h" -#include "../pfJournalBook/pfJournalBook.h" +#include "pfJournalBook/pfJournalBook.h" -#include "../plAvatar/plAGAnimInstance.h" -#include "../plAgeLoader/plAgeLoader.h" -#include "../plClientKey/plClientKey.h" +#include "plAvatar/plAGAnimInstance.h" +#include "plAgeLoader/plAgeLoader.h" +#include "plClientKey/plClientKey.h" -#include "../CoreLib/plQuality.h" -#include "../plGLight/plShadowCaster.h" +#include "CoreLib/plQuality.h" +#include "plGLight/plShadowCaster.h" -#include "../plNetClient/plNetLinkingMgr.h" -#include "../plNetCommon/plNetCommonConstants.h" -#include "../plNetGameLib/plNetGameLib.h" +#include "plNetClient/plNetLinkingMgr.h" +#include "plNetCommon/plNetCommonConstants.h" +#include "plNetGameLib/plNetGameLib.h" -#include "../pfSecurePreloader/pfSecurePreloader.h" -#include "../pfLocalizationMgr/pfLocalizationMgr.h" +#include "pfSecurePreloader/pfSecurePreloader.h" +#include "pfLocalizationMgr/pfLocalizationMgr.h" -#include "../pfCsrSrv/pfCsrSrv.h" +#include "pfCsrSrv/pfCsrSrv.h" #include "plTweak.h" diff --git a/Sources/Plasma/Apps/plClient/plClientCreatable.h b/Sources/Plasma/Apps/plClient/plClientCreatable.h index 270cd672..74b432ab 100644 --- a/Sources/Plasma/Apps/plClient/plClientCreatable.h +++ b/Sources/Plasma/Apps/plClient/plClientCreatable.h @@ -43,7 +43,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #ifndef plClientCreatable_inc #define plClientCreatable_inc -#include "../pnFactory/plCreator.h" +#include "pnFactory/plCreator.h" #include "plClient.h" diff --git a/Sources/Plasma/Apps/plClient/winmain.cpp b/Sources/Plasma/Apps/plClient/winmain.cpp index 7ac2e06b..f0de64ae 100644 --- a/Sources/Plasma/Apps/plClient/winmain.cpp +++ b/Sources/Plasma/Apps/plClient/winmain.cpp @@ -54,25 +54,25 @@ 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 "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" -#include "../plResMgr/plLocalization.h" -#include "../plFile/plEncryptedStream.h" +#include "plResMgr/plResManager.h" +#include "plResMgr/plLocalization.h" +#include "plFile/plEncryptedStream.h" -#include "../plStatusLog/plStatusLog.h" -#include "../pnProduct/pnProduct.h" -#include "../plNetGameLib/plNetGameLib.h" -#include "../plFile/plFileUtils.h" +#include "plStatusLog/plStatusLog.h" +#include "pnProduct/pnProduct.h" +#include "plNetGameLib/plNetGameLib.h" +#include "plFile/plFileUtils.h" -#include "../plPhysX/plSimulationMgr.h" +#include "plPhysX/plSimulationMgr.h" -#include "res\resource.h" +#include "res/resource.h" #include #include "WinHttp.h" diff --git a/Sources/Plasma/Apps/plClientPatcher/UruPlayer.cpp b/Sources/Plasma/Apps/plClientPatcher/UruPlayer.cpp index f524275d..6c968cfa 100644 --- a/Sources/Plasma/Apps/plClientPatcher/UruPlayer.cpp +++ b/Sources/Plasma/Apps/plClientPatcher/UruPlayer.cpp @@ -494,7 +494,7 @@ static void ProcessManifestEntry (void * param, ENetError error) { s_workingDir, p->mr->manifest[p->index].clientName ); - dword start = TimeGetTime() / kTimeIntervalsPerMs; + dword start = (dword)(TimeGetTime() / kTimeIntervalsPerMs); if(!MD5Check(path, p->mr->manifest[p->index].md5)) { p->mr->critsect.Enter(); p->mr->indices.Add(p->index); diff --git a/Sources/Plasma/CMakeLists.txt b/Sources/Plasma/CMakeLists.txt index 38f6b401..b377f657 100644 --- a/Sources/Plasma/CMakeLists.txt +++ b/Sources/Plasma/CMakeLists.txt @@ -1,3 +1,4 @@ +add_subdirectory(Apps) add_subdirectory(CoreLib) add_subdirectory(CoreLibExe) add_subdirectory(FeatureLib) diff --git a/Sources/Plasma/FeatureLib/inc/pfAllCreatables.h b/Sources/Plasma/FeatureLib/inc/pfAllCreatables.h index 7e32b0e0..4a715cec 100644 --- a/Sources/Plasma/FeatureLib/inc/pfAllCreatables.h +++ b/Sources/Plasma/FeatureLib/inc/pfAllCreatables.h @@ -44,21 +44,21 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #define pfAllCreatables_inc -#include "../pfCharacter/pfCharacterCreatable.h" -#include "../pfCamera/pfCameraCreatable.h" -#include "../pfAnimation/pfAnimationCreatable.h" -#include "../pfConditional/plConditionalObjectCreatable.h" -#include "../pfConsole/pfConsoleCreatable.h" -#include "../pfSurface/pfSurfaceCreatable.h" -#include "../pfMessage/pfMessageCreatable.h" -#include "../pfAudio/pfAudioCreatable.h" -#include "../pfPython/pfPythonCreatable.h" -#include "../pfGameGUIMgr/pfGameGUIMgrCreatable.h" +#include "pfCharacter/pfCharacterCreatable.h" +#include "pfCamera/pfCameraCreatable.h" +#include "pfAnimation/pfAnimationCreatable.h" +#include "pfConditional/plConditionalObjectCreatable.h" +#include "pfConsole/pfConsoleCreatable.h" +#include "pfSurface/pfSurfaceCreatable.h" +#include "pfMessage/pfMessageCreatable.h" +#include "pfAudio/pfAudioCreatable.h" +#include "pfPython/pfPythonCreatable.h" +#include "pfGameGUIMgr/pfGameGUIMgrCreatable.h" #ifdef PLASMA_CCR_RELEASE -#include "../pfCCR/plCCRCreatable.h" +#include "pfCCR/plCCRCreatable.h" #endif // PLASMA_CCR_RELEASE -#include "../pfJournalBook/pfJournalBookCreatable.h" -#include "../pfGameMgr/pfGameMgrCreatables.h" -#include "../pfSecurePreloader/pfSecurePreloaderCreatable.h" +#include "pfJournalBook/pfJournalBookCreatable.h" +#include "pfGameMgr/pfGameMgrCreatables.h" +#include "pfSecurePreloader/pfSecurePreloaderCreatable.h" #endif // pfAllCreatables_inc diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/CMakeLists.txt b/Sources/Plasma/FeatureLib/pfGameGUIMgr/CMakeLists.txt index b66a9876..6e8a6e20 100644 --- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/CMakeLists.txt +++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/CMakeLists.txt @@ -15,6 +15,7 @@ set(pfGameGUIMgr_SOURCES pfGUIDialogMod.cpp pfGUIDialogNotifyProc.cpp pfGUIDragBarCtrl.cpp + pfGUIDraggableMod.cpp pfGUIDynDisplayCtrl.cpp pfGUIEditBoxMod.cpp pfGUIKnobCtrl.cpp diff --git a/Sources/Plasma/FeatureLib/pfPython/CMakeLists.txt b/Sources/Plasma/FeatureLib/pfPython/CMakeLists.txt index d5e41676..64137819 100644 --- a/Sources/Plasma/FeatureLib/pfPython/CMakeLists.txt +++ b/Sources/Plasma/FeatureLib/pfPython/CMakeLists.txt @@ -209,6 +209,7 @@ set(pfPython_GLUE pyColorGlue.cpp pyCritterBrainGlue.cpp pyDniCoordinatesGlue.cpp + pyDniInfoSourceGlue.cpp pyDrawControlGlue.cpp pyDynamicTextGlue.cpp pyGameScoreGlue.cpp @@ -278,6 +279,7 @@ set(pfPython_GAME_GLUE Games/pyGameMgrMsg.cpp Games/pyGameMgrMsg.h Games/pyGameMgrMsg.cpp + Games/pyGameMgrMsgGlue.cpp ) set(pfPython_TTT @@ -295,7 +297,7 @@ set(pfPython_HEEK Games/Heek/pyHeekGameGlue.cpp Games/Heek/pyHeekMsg.cpp Games/Heek/pyHeekMsg.h - Games/Heek/pyHeekGameGlue.cpp + Games/Heek/pyHeekMsgGlue.cpp ) set(pfPython_MARKER diff --git a/Sources/Plasma/NucleusLib/pnNetCommon/CMakeLists.txt b/Sources/Plasma/NucleusLib/pnNetCommon/CMakeLists.txt index 30c6d535..c5af8367 100644 --- a/Sources/Plasma/NucleusLib/pnNetCommon/CMakeLists.txt +++ b/Sources/Plasma/NucleusLib/pnNetCommon/CMakeLists.txt @@ -27,6 +27,7 @@ set(pnNetCommon_SOURCES plSDLTypes.cpp plSynchedObject.cpp plSynchedValue.cpp + pnNetCommon.cpp ) add_library(pnNetCommon STATIC ${pnNetCommon_HEADERS} ${pnNetCommon_SOURCES}) diff --git a/Sources/Plasma/PubUtilLib/CMakeLists.txt b/Sources/Plasma/PubUtilLib/CMakeLists.txt index 5fd9b82d..6073f573 100644 --- a/Sources/Plasma/PubUtilLib/CMakeLists.txt +++ b/Sources/Plasma/PubUtilLib/CMakeLists.txt @@ -14,7 +14,7 @@ add_subdirectory(plEncryption) add_subdirectory(plFile) #add_subdirectory(plGClip) # Not being used by any current slns #add_subdirectory(plGeometry) # Not being used by any current slns -#add_subdirectory(plGImage) +add_subdirectory(plGImage) add_subdirectory(plGLight) #add_subdirectory(plGRenderProcs) # Not being used by any current slns add_subdirectory(plInputCore) diff --git a/Sources/Plasma/PubUtilLib/plGImage/CMakeLists.txt b/Sources/Plasma/PubUtilLib/plGImage/CMakeLists.txt new file mode 100644 index 00000000..cd0e95e6 --- /dev/null +++ b/Sources/Plasma/PubUtilLib/plGImage/CMakeLists.txt @@ -0,0 +1,47 @@ +include_directories("../../CoreLib") +include_directories("../../NucleusLib/inc") +include_directories("../../NucleusLib") +include_directories("../../PubUtilLib") + +set(plGImage_SOURCES + hsCodecManager.cpp + hsDXTDirectXCodec.cpp + hsDXTSoftwareCodec.cpp + plAVIWriter.cpp + plBitmap.cpp + plBumpMapGen.cpp + plCubicEnvironmap.cpp + plDynamicTextMap.cpp + plDynSurfaceWriter.cpp + plFont.cpp + plFontCache.cpp + plLODMipmap.cpp + plMipmap.cpp + plTGAWriter.cpp + plWinFontCache.cpp +) + +set(plGImage_HEADERS + hsCodecManager.h + hsDXTDirectXCodec.h + hsDXTSoftwareCodec.h + hsRect.h + plAVIWriter.h + plBitmap.h + plBumpMapGen.h + plCubicEnvironmap.h + plDynamicTextMap.h + plDynSurfaceWriter.h + plFont.h + plFontCache.h + plGImageCreatable.h + plLODMipmap.h + plMipmap.h + plTGAWriter.h + plWinFontCache.h +) + +add_library(plGImage STATIC ${plGImage_SOURCES} ${plGImage_HEADERS}) + +source_group("Source Files" FILES ${plGImage_SOURCES}) +source_group("Header Files" FILES ${plGImage_HEADERS}) diff --git a/Sources/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.cpp b/Sources/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.cpp index 9993b252..c49a1317 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.cpp @@ -61,7 +61,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsDXTDirectXCodec.h" #include "plMipmap.h" #include "hsCodecManager.h" -#include "../plPipeline/hsGDDrawDllLoad.h" +#include "plPipeline/hsGDDrawDllLoad.h" namespace { typedef HRESULT(WINAPI * DIRECTDRAWCREATEEX)( GUID*, VOID**, REFIID, IUnknown* ); diff --git a/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.cpp b/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.cpp index bd141c7d..fe313d0c 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.cpp @@ -48,10 +48,10 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsTimer.h" #include "plMipmap.h" -#include "../plMessage/plRenderMsg.h" +#include "plMessage/plRenderMsg.h" #include "plPipeline.h" -#include "../pnDispatch/plDispatch.h" -#include "../pnKeyedObject/plFixedKey.h" +#include "pnDispatch/plDispatch.h" +#include "pnKeyedObject/plFixedKey.h" bool plAVIWriter::fInitialized = false; diff --git a/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.h b/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.h index 651b5ee5..8d291176 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.h +++ b/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.h @@ -42,7 +42,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #ifndef plAVIWriter_h_inc #define plAVIWriter_h_inc -#include "../pnKeyedObject/hsKeyedObject.h" +#include "pnKeyedObject/hsKeyedObject.h" class plPipeline; @@ -68,4 +68,4 @@ public: virtual void Close()=0; }; -#endif // plAVIWriter_h_inc \ No newline at end of file +#endif // plAVIWriter_h_inc diff --git a/Sources/Plasma/PubUtilLib/plGImage/plBitmap.cpp b/Sources/Plasma/PubUtilLib/plGImage/plBitmap.cpp index 73fe6982..b47a6e28 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plBitmap.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plBitmap.cpp @@ -57,8 +57,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsResMgr.h" #include "hsStream.h" -#include "../pnKeyedObject/plKey.h" -#include "../plPipeline/hsGDeviceRef.h" +#include "pnKeyedObject/plKey.h" +#include "plPipeline/hsGDeviceRef.h" //// Static Members /////////////////////////////////////////////////////////// @@ -113,8 +113,8 @@ UInt32 plBitmap::Read( hsStream *s ) fFlags = s->ReadSwap16(); fCompressionType = s->ReadByte(); - if( fCompressionType == kUncompressed || fCompressionType == kJPEGCompression || - fCompressionType == kPNGCompression ) + if( (fCompressionType == kUncompressed) || (fCompressionType == kJPEGCompression) || + (fCompressionType == kPNGCompression) ) { fUncompressedInfo.fType = s->ReadByte(); read++; @@ -146,8 +146,8 @@ UInt32 plBitmap::Write( hsStream *s ) s->WriteSwap16( fFlags ); s->WriteByte( fCompressionType ); - if( fCompressionType == kUncompressed || fCompressionType == kJPEGCompression || - fCompressionType == kPNGCompression ) + if( (fCompressionType == kUncompressed) || (fCompressionType == kJPEGCompression) || + (fCompressionType == kPNGCompression) ) { s->WriteByte( fUncompressedInfo.fType ); written++; diff --git a/Sources/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.cpp b/Sources/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.cpp index 62b85a7a..dbace951 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.cpp @@ -62,10 +62,10 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsExceptions.h" #include "hsUtils.h" #include "hsMatrix44.h" -#include "../plMessage/plDynamicTextMsg.h" -#include "../pnKeyedObject/plKey.h" +#include "plMessage/plDynamicTextMsg.h" +#include "pnKeyedObject/plKey.h" #include "plProfile.h" -#include "../plStatusLog/plStatusLog.h" +#include "plStatusLog/plStatusLog.h" #include "plWinFontCache.h" @@ -1122,4 +1122,4 @@ void plDynSurfaceWriter::DrawClippedImage( UInt16 x, UInt16 y, plMipmap *image, ::DeleteObject( brush ); } } -*/ \ No newline at end of file +*/ diff --git a/Sources/Plasma/PubUtilLib/plGImage/plDynamicTextMap.cpp b/Sources/Plasma/PubUtilLib/plGImage/plDynamicTextMap.cpp index aadd54cc..b33d2bdc 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plDynamicTextMap.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plDynamicTextMap.cpp @@ -58,14 +58,14 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsExceptions.h" #include "hsUtils.h" #include "hsMatrix44.h" -#include "../plPipeline/hsGDeviceRef.h" -#include "../plMessage/plDynamicTextMsg.h" -#include "../pnKeyedObject/plKey.h" +#include "plPipeline/hsGDeviceRef.h" +#include "plMessage/plDynamicTextMsg.h" +#include "pnKeyedObject/plKey.h" #include "plProfile.h" -#include "../plStatusLog/plStatusLog.h" +#include "plStatusLog/plStatusLog.h" #include "plFont.h" #include "plFontCache.h" -#include "../plResMgr/plLocalization.h" +#include "plResMgr/plLocalization.h" plProfile_CreateMemCounter("DynaTextMem", "PipeC", DynaTextMem); diff --git a/Sources/Plasma/PubUtilLib/plGImage/plFont.h b/Sources/Plasma/PubUtilLib/plGImage/plFont.h index 30a0d7bb..1984bb35 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plFont.h +++ b/Sources/Plasma/PubUtilLib/plGImage/plFont.h @@ -67,7 +67,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsTemplates.h" #include "pcSmallRect.h" -#include "../pnKeyedObject/hsKeyedObject.h" +#include "pnKeyedObject/hsKeyedObject.h" #include diff --git a/Sources/Plasma/PubUtilLib/plGImage/plFontCache.cpp b/Sources/Plasma/PubUtilLib/plGImage/plFontCache.cpp index 4ca21acc..b399d366 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plFontCache.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plFontCache.cpp @@ -56,12 +56,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "plFontCache.h" #include "plFont.h" -#include "../plStatusLog/plStatusLog.h" -#include "../plFile/hsFiles.h" -#include "../pnMessage/plRefMsg.h" +#include "plStatusLog/plStatusLog.h" +#include "plFile/hsFiles.h" +#include "pnMessage/plRefMsg.h" #include "hsResMgr.h" -#include "../pnKeyedObject/plUoid.h" +#include "pnKeyedObject/plUoid.h" char *plFontCache::kCustFontExtension = ".prf"; diff --git a/Sources/Plasma/PubUtilLib/plGImage/plFontCache.h b/Sources/Plasma/PubUtilLib/plGImage/plFontCache.h index 3c89fa28..6cd08955 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plFontCache.h +++ b/Sources/Plasma/PubUtilLib/plGImage/plFontCache.h @@ -58,7 +58,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsTypes.h" #include "hsTemplates.h" -#include "../pnKeyedObject/hsKeyedObject.h" +#include "pnKeyedObject/hsKeyedObject.h" //// Class Definition ///////////////////////////////////////////////////////// diff --git a/Sources/Plasma/PubUtilLib/plGImage/plGImageCreatable.h b/Sources/Plasma/PubUtilLib/plGImage/plGImageCreatable.h index 35e3328c..286841c5 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plGImageCreatable.h +++ b/Sources/Plasma/PubUtilLib/plGImage/plGImageCreatable.h @@ -43,7 +43,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #ifndef plGImageCreatable_inc #define plGImageCreatable_inc -#include "../pnFactory/plCreator.h" +#include "pnFactory/plCreator.h" /* #include "hsGMipmap.h" diff --git a/Sources/Plasma/PubUtilLib/plGImage/plLODMipmap.cpp b/Sources/Plasma/PubUtilLib/plGImage/plLODMipmap.cpp index 238c7e4d..fcfd34b9 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plLODMipmap.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plLODMipmap.cpp @@ -44,11 +44,11 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "plLODMipmap.h" #include "hsResMgr.h" -#include "../pnKeyedObject/plKey.h" -#include "../pnKeyedObject/plUoid.h" -#include "../pnMessage/plRefMsg.h" +#include "pnKeyedObject/plKey.h" +#include "pnKeyedObject/plUoid.h" +#include "pnMessage/plRefMsg.h" -#include "../plPipeline/hsGDeviceRef.h" +#include "plPipeline/hsGDeviceRef.h" plLODMipmap::plLODMipmap() diff --git a/Sources/Plasma/PubUtilLib/plGImage/plMipmap.cpp b/Sources/Plasma/PubUtilLib/plGImage/plMipmap.cpp index 55d1ce81..5b1d8b19 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plMipmap.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plMipmap.cpp @@ -57,9 +57,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsExceptions.h" #include "hsUtils.h" #include "hsColorRGBA.h" -#include "../plPipeline/hsGDeviceRef.h" +#include "plPipeline/hsGDeviceRef.h" #include "plProfile.h" -#include "../plJPEG/plJPEG.h" +#include "plJPEG/plJPEG.h" #include "plPNG.h" plProfile_CreateMemCounter("Mipmaps", "Memory", MemMipmaps); @@ -123,8 +123,8 @@ void plMipmap::Create( UInt32 width, UInt32 height, unsigned config, UInt8 numLe } fCompressionType = compType; - if( compType == kUncompressed || compType == kJPEGCompression || - compType == kPNGCompression ) + if( (compType == kUncompressed) || (compType == kJPEGCompression) || + (compType == kPNGCompression) ) { fUncompressedInfo.fType = format; } diff --git a/Sources/Plasma/PubUtilLib/plGImage/plWinFontCache.cpp b/Sources/Plasma/PubUtilLib/plGImage/plWinFontCache.cpp index 2539781a..d6b19068 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plWinFontCache.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plWinFontCache.cpp @@ -62,9 +62,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "hsWindows.h" #include "plWinFontCache.h" -#include "../plStatusLog/plStatusLog.h" -#include "../plFile/hsFiles.h" -#include "../plGImage/plDynSurfaceWriter.h" +#include "plStatusLog/plStatusLog.h" +#include "plFile/hsFiles.h" +#include "plGImage/plDynSurfaceWriter.h" #if HS_BUILD_FOR_WIN32 diff --git a/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp b/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp index c22d2f4b..50c2488e 100644 --- a/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp +++ b/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp @@ -16,6 +16,12 @@ 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 . +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^M + Additional permissions under GNU GPL version 3 section 7 If you modify this Program, or any covered work, by linking or @@ -32,13 +38,8 @@ 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==* -*==LICENSE==*/ #include #include "plUnifiedTime.h" #include "hsStlUtils.h" @@ -75,7 +76,7 @@ hsBool plUnifiedTime::SetFromWinFileTime(const FILETIME ft) if (ffsecs >= MAGICWINDOWSOFFSET) // make sure we won't end up negatice { - fSecs = (time_t)(ffsecs-MAGICWINDOWSOFFSET); + fSecs = (UInt32)(ffsecs-MAGICWINDOWSOFFSET); fMicros = (UInt32)(ff % 10000000)/10; return true; } @@ -216,14 +217,14 @@ const plUnifiedTime & plUnifiedTime::operator=(const plUnifiedTime * src) const plUnifiedTime & plUnifiedTime::operator=(time_t src) { - fSecs = src; + fSecs = (UInt32)src; fMicros = 0; return *this; } const plUnifiedTime & plUnifiedTime::operator=(unsigned long src) { - fSecs = (time_t)src; + fSecs = src; fMicros = 0; return *this; } @@ -238,7 +239,7 @@ const plUnifiedTime & plUnifiedTime::operator=(const struct timeval & src) const plUnifiedTime & plUnifiedTime::operator=(const struct tm & src) { struct tm atm = src; - fSecs = mktime(&atm); + fSecs = (UInt32)mktime(&atm); // this won't work after 2030 something, sorry return *this; } @@ -247,19 +248,25 @@ void plUnifiedTime::SetSecsDouble(double secs) hsAssert(secs>=0, "plUnifiedTime::SetSecsDouble negative time"); double x,y; x = modf(secs,&y); - fSecs = (time_t)y; + fSecs = (UInt32)y; fMicros = (UInt32)(x*1000000); } +void plUnifiedTime::FromMillis(UInt32 millis) +{ + fSecs = millis/1000; + fMicros = 0; +} + void plUnifiedTime::ToCurrentTime() { SetToUTC(); } -hsBool plUnifiedTime::SetGMTime(short year, short month, short day, short hour, short minute, short second, unsigned long usec) +hsBool plUnifiedTime::SetGMTime(short year, short month, short day, short hour, short minute, short second, unsigned long usec, int dst) { - if( !SetTime( year, month, day, hour, minute, second, usec, 0 ) ) + if( !SetTime( year, month, day, hour, minute, second, usec, dst ) ) return false; fSecs -= IGetLocalTimeZoneOffset(); @@ -278,7 +285,7 @@ hsBool plUnifiedTime::SetTime(short year, short month, short day, short hour, sh atm.tm_mon = month - 1; atm.tm_year = year - 1900; atm.tm_isdst = dst; - fSecs = mktime(&atm); + fSecs = (UInt32)mktime(&atm); // this won't work after 2030 something, sorry if (fSecs == -1) return false; if (fMicros >= 1000000) @@ -290,7 +297,7 @@ hsBool plUnifiedTime::SetTime(short year, short month, short day, short hour, sh hsBool plUnifiedTime::GetTime(short &year, short &month, short &day, short &hour, short &minute, short &second) const { - struct tm* time = IGetTime(&fSecs); + struct tm* time = IGetTime((const time_t *)&fSecs); if (!time) return false; year = time->tm_year+1900; @@ -318,8 +325,8 @@ const char* plUnifiedTime::Print() const const char* plUnifiedTime::PrintWMillis() const { static std::string s; - xtl::format(s,"%s,s:%lu,ms:%d", - Print(), (unsigned long)GetSecs(), GetMillis() ); + xtl::format(s,"%s,s:%d,ms:%d", + Print(), GetSecs(), GetMillis() ); return s.c_str(); } @@ -327,11 +334,11 @@ struct tm * plUnifiedTime::GetTm(struct tm * ptm) const { if (ptm != nil) { - *ptm = *IGetTime(&fSecs); + *ptm = *IGetTime((const time_t *)&fSecs); return ptm; } else - return IGetTime(&fSecs); + return IGetTime((const time_t *)&fSecs); } int plUnifiedTime::GetYear() const @@ -377,12 +384,15 @@ double plUnifiedTime::GetSecsDouble() const } #pragma optimize( "", on ) // restore optimizations to their defaults +UInt32 plUnifiedTime::AsMillis() +{ + return GetSecs()*1000; +} + void plUnifiedTime::Read(hsStream* s) { s->LogSubStreamStart("UnifiedTime"); - UInt32 secs; - s->LogReadSwap(&secs,"Seconds"); - fSecs = (time_t)secs; + s->LogReadSwap(&fSecs,"Seconds"); s->LogReadSwap(&fMicros,"MicroSeconds"); s->LogSubStreamEnd(); // preserve fMode @@ -390,7 +400,7 @@ void plUnifiedTime::Read(hsStream* s) void plUnifiedTime::Write(hsStream* s) const { - s->WriteSwap((UInt32)fSecs); + s->WriteSwap(fSecs); s->WriteSwap(fMicros); // preserve fMode } @@ -449,12 +459,7 @@ bool plUnifiedTime::operator>=(const plUnifiedTime & rhs) const plUnifiedTime::operator timeval() const { -#if HS_BUILD_FOR_WIN32 - // tv_secs should be a time_t, but on Windows it is a long - struct timeval t = {(long)fSecs, (long)fMicros}; -#else struct timeval t = {fSecs, fMicros}; -#endif return t; } @@ -468,7 +473,7 @@ plUnifiedTime::operator struct tm() const std::string plUnifiedTime::Format(const char * fmt) const { char buf[128]; - struct tm * t = IGetTime(&fSecs); + struct tm * t = IGetTime((const time_t *)&fSecs); if (t == nil || !strftime(buf, sizeof(buf), fmt, t)) buf[0] = '\0';