diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..59ac337 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,89 @@ +cmake_minimum_required (VERSION 2.6) +project (PseuWoW) + + +# Inspired by MaNGOS + +set(CMAKE_MODULE_PATH + ${CMAKE_MODULE_PATH} + ${CMAKE_SOURCE_DIR}/cmake +) + +# Force out-of-source build +string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" BUILDING_IN_SOURCE) +if(BUILDING_IN_SOURCE) + message(FATAL_ERROR + "This project requires an out of source build. Remove the file 'CMakeCache.txt' found in this directory before continuing, create a separate build directory and run + 'cmake [options]' from there." + ) +endif() + +if(WIN32 AND NOT MSVC) + message(FATAL_ERROR + "Under Windows other compiler than Microsoft Visual Studio are not supported." + ) +endif() + +option(DEBUG "Debug mode" 0) +option(BUILD_TOOLS "Build Tools" 0) + + +find_package(Platform REQUIRED) + +# VS100 uses MSBuild.exe instead of devenv.com, so force it to use devenv.com +if(WIN32 AND MSVC_VERSION MATCHES 1600) + find_package(VisualStudio2010) +endif() + + +# +if(UNIX AND PLATFORM MATCHES X64) + option(MAKE_IRRKLANG_STUB "Compile a stub implementation of IrrKlang" 1) +endif() + +if(DEBUG) + message("Build in debug-mode : Yes") + set(CMAKE_BUILD_TYPE Debug) +else() + set(CMAKE_BUILD_TYPE Release) + message("Build in debug-mode : No (default)") +endif() +# Handle debugmode compiles (this will require further work for proper WIN32-setups) +if(UNIX) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") +endif() + +# Set warning levels for different builds +if(UNIX) + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} --no-warnings") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} --no-warnings") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wfatal-errors -Wextra") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wfatal-errors -Wextra") +elseif(WIN32) + # Disable warnings in Visual Studio 8 and above and add /MP + if(MSVC AND NOT CMAKE_GENERATOR MATCHES "Visual Studio 7") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /wd4996 /wd4355 /wd4244 /wd4985 /wd4267 /MP") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /wd4996 /wd4355 /wd4244 /wd4267 /MP") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /wd4996 /wd4355 /wd4244 /wd4985 /wd4267 /MP") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /wd4996 /wd4355 /wd4244 /wd4985 /wd4267 /MP") + endif() +endif() + + +# Set up the install-prefix +if(CMAKE_INSTALL_PREFIX STREQUAL "/usr/local") + get_filename_component(PREFIX_ABSOLUTE "./bin" ABSOLUTE) + set(CMAKE_INSTALL_PREFIX ${PREFIX_ABSOLUTE} CACHE PATH "Install path prefix." FORCE) +endif() + + +if(UNIX) + find_package(OpenSSL REQUIRED) +endif() + +message("") +message("Install binaries to : ${CMAKE_INSTALL_PREFIX}") +message("") + +add_subdirectory (src) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..57dae01 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,6 @@ +add_subdirectory (dep) +add_subdirectory (shared) +add_subdirectory (Client) +if(BUILD_TOOLS) + add_subdirectory (tools) +endif() \ No newline at end of file diff --git a/src/Client/CMakeLists.txt b/src/Client/CMakeLists.txt new file mode 100644 index 0000000..82dd167 --- /dev/null +++ b/src/Client/CMakeLists.txt @@ -0,0 +1,48 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include ${PROJECT_SOURCE_DIR}/src/shared ${PROJECT_SOURCE_DIR}/src/Client) + +add_subdirectory (DefScript) +add_subdirectory (GUI) + +if(UNIX) + set(EXECUTABLE_LINK_FLAGS "-pthread") +endif() + +add_executable (pseuwow +Realm/RealmSession.cpp +Realm/RealmSocket.cpp + +World/Bag.cpp +World/CacheHandler.cpp +World/Channel.cpp +World/CMSGConstructor.cpp +World/Corpse.cpp +World/DynamicObject.cpp +World/GameObject.cpp +World/Item.cpp +World/MapMgr.cpp +World/MovementMgr.cpp +World/Object.cpp +World/ObjMgr.cpp +World/Opcodes.cpp +World/Player.cpp +World/Unit.cpp +World/UpdateData.cpp +World/UpdateFields.cpp +World/World.cpp +World/WorldPacket.cpp +World/WorldSession.cpp +World/WorldSocket.cpp + +Cli.cpp +ControlSocket.cpp +DefScriptInterface.cpp +main.cpp +PseuWoW.cpp +RemoteController.cpp +SCPDatabase.cpp +) + +# Link the executable to the libraries. +target_link_libraries (pseuwow PseuGUI DefScript irrklang irrlicht GL Xxf86vm shared zthread StormLib zlib bz2 ssh crypto) + +install(TARGETS pseuwow DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/src/Client/DefScript/CMakeLists.txt b/src/Client/DefScript/CMakeLists.txt new file mode 100644 index 0000000..cd8be26 --- /dev/null +++ b/src/Client/DefScript/CMakeLists.txt @@ -0,0 +1,11 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include) +add_library(DefScript +DefScriptBBFunctions.cpp +DefScriptFileFunctions.cpp +DefScriptListFunctions.cpp +DynamicEvent.cpp +DefScript.cpp +DefScriptFunctions.cpp +DefScriptTools.cpp +VarSet.cpp +) \ No newline at end of file diff --git a/src/Client/DefScriptInterface.cpp b/src/Client/DefScriptInterface.cpp index 193ff33..0db7901 100644 --- a/src/Client/DefScriptInterface.cpp +++ b/src/Client/DefScriptInterface.cpp @@ -3,12 +3,12 @@ #include "PseuWoW.h" #include "DefScript/DefScript.h" #include "DefScript/DefScriptTools.h" -#include "Player.h" -#include "Opcodes.h" -#include "SharedDefines.h" -#include "WorldSession.h" -#include "Channel.h" -#include "CacheHandler.h" +#include "World/Player.h" +#include "World/Opcodes.h" +#include "World/SharedDefines.h" +#include "World/WorldSession.h" +#include "World/Channel.h" +#include "World/CacheHandler.h" #include "SCPDatabase.h" #include "MemoryDataHolder.h" diff --git a/src/Client/GUI/CMakeLists.txt b/src/Client/GUI/CMakeLists.txt new file mode 100644 index 0000000..c224201 --- /dev/null +++ b/src/Client/GUI/CMakeLists.txt @@ -0,0 +1,25 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include) +add_library(PseuGUI +CBoneSceneNode.cpp +CCursorController.cpp +CImageLoaderBLP.cpp +CIrrKlangAudioStreamLoaderMP3.cpp +CIrrKlangAudioStreamMP3.cpp +CM2MeshFileLoader.cpp +CMDHMemoryReadFile.cpp +CWMOMeshFileLoader.cpp +DrawObject.cpp +DrawObjMgr.cpp +ikpMP3.cpp +irrKlangSceneNode.cpp +MemoryInterface.cpp +PseuGUI.cpp +SceneCharselection.cpp +Scene.cpp +SceneGuiStart.cpp +SceneLogin.cpp +SceneWorld.cpp +ShTlTerrainSceneNode.cpp +SImage.cpp +SSkinnedMesh.cpp +) \ No newline at end of file diff --git a/src/Client/GUI/DrawObject.cpp b/src/Client/GUI/DrawObject.cpp index 75666b5..f09d97b 100644 --- a/src/Client/GUI/DrawObject.cpp +++ b/src/Client/GUI/DrawObject.cpp @@ -2,10 +2,10 @@ #include "PseuGUI.h" #include "DrawObject.h" #include "PseuWoW.h" -#include "Object.h" -#include "Player.h" -#include "GameObject.h" -#include "WorldSession.h" +#include "World/Object.h" +#include "World/Player.h" +#include "World/GameObject.h" +#include "World/WorldSession.h" #include "MemoryInterface.h" #include "MemoryDataHolder.h" diff --git a/src/Client/GUI/PseuGUI.cpp b/src/Client/GUI/PseuGUI.cpp index e75df08..2e73509 100644 --- a/src/Client/GUI/PseuGUI.cpp +++ b/src/Client/GUI/PseuGUI.cpp @@ -3,7 +3,7 @@ #include "CM2MeshFileLoader.h" #include "CWMOMeshFileLoader.h" #include "CImageLoaderBLP.h" -#include "Object.h" +#include "World/Object.h" #include "DrawObject.h" #include "PseuWoW.h" #include "Scene.h" diff --git a/src/Client/GUI/PseuGUI.h b/src/Client/GUI/PseuGUI.h index e3c610f..6ba3d3e 100644 --- a/src/Client/GUI/PseuGUI.h +++ b/src/Client/GUI/PseuGUI.h @@ -5,7 +5,7 @@ #include "irrklang/irrKlang.h" #include "SceneData.h" #include "DrawObjMgr.h" -#include "World.h" +#include "World/World.h" class PseuGUI; class Object; diff --git a/src/Client/GUI/SceneCharselection.cpp b/src/Client/GUI/SceneCharselection.cpp index 1a06869..d5cf957 100644 --- a/src/Client/GUI/SceneCharselection.cpp +++ b/src/Client/GUI/SceneCharselection.cpp @@ -3,8 +3,8 @@ #include "PseuWoW.h" #include "Scene.h" #include "GUIEventReceiver.h" -#include "RealmSession.h" -#include "WorldSession.h" +#include "Realm/RealmSession.h" +#include "World/WorldSession.h" enum GuiElementID { diff --git a/src/Client/GUI/SceneLogin.cpp b/src/Client/GUI/SceneLogin.cpp index 8dc2c86..1bb87d7 100644 --- a/src/Client/GUI/SceneLogin.cpp +++ b/src/Client/GUI/SceneLogin.cpp @@ -2,7 +2,7 @@ #include "PseuGUI.h" #include "PseuWoW.h" #include "Scene.h" -#include "RealmSession.h" +#include "Realm/RealmSession.h" #include "GUIEventReceiver.h" enum GuiElementID diff --git a/src/Client/GUI/SceneWorld.cpp b/src/Client/GUI/SceneWorld.cpp index 0888dd9..e056ab4 100644 --- a/src/Client/GUI/SceneWorld.cpp +++ b/src/Client/GUI/SceneWorld.cpp @@ -5,15 +5,15 @@ #include "PseuWoW.h" #include "Scene.h" #include "MapTile.h" -#include "MapMgr.h" #include "ShTlTerrainSceneNode.h" #include "MCamera.h" #include "MInput.h" -#include "WorldSession.h" -#include "World.h" #include "CCursorController.h" -#include "MovementMgr.h" #include "DrawObject.h" +#include "World/MapMgr.h" +#include "World/WorldSession.h" +#include "World/World.h" +#include "World/MovementMgr.h" #include "irrKlangSceneNode.h" #include "MemoryInterface.h" diff --git a/src/Client/PseuWoW.cpp b/src/Client/PseuWoW.cpp index ed025a8..66334a4 100644 --- a/src/Client/PseuWoW.cpp +++ b/src/Client/PseuWoW.cpp @@ -8,9 +8,9 @@ #include "DefScriptInterface.h" #include "Auth/BigNumber.h" #include "DefScript/DefScript.h" -#include "RealmSession.h" -#include "WorldSession.h" -#include "CacheHandler.h" +#include "Realm/RealmSession.h" +#include "World/WorldSession.h" +#include "World/CacheHandler.h" #include "GUI/PseuGUI.h" #include "RemoteController.h" #include "Cli.h" diff --git a/src/Client/SCPDatabase.h b/src/Client/SCPDatabase.h index 15c5676..61d6297 100644 --- a/src/Client/SCPDatabase.h +++ b/src/Client/SCPDatabase.h @@ -1,7 +1,7 @@ #ifndef _SCPDATABASE_H #define _SCPDATABASE_H -#include "DefScript/TypeStorage.h" +#include "TypeStorage.h" #include "ZCompressor.h" #include diff --git a/src/Client/World/WorldSession.cpp b/src/Client/World/WorldSession.cpp index daceaaa..01fc73e 100644 --- a/src/Client/World/WorldSession.cpp +++ b/src/Client/World/WorldSession.cpp @@ -6,17 +6,18 @@ #include "Auth/AuthCrypt.h" #include "WorldPacket.h" #include "WorldSocket.h" -#include "RealmSocket.h" #include "Channel.h" #include "ObjMgr.h" #include "World.h" #include "MapMgr.h" #include "MapTile.h" -#include "RealmSession.h" #include "WorldSession.h" #include "MemoryDataHolder.h" #include "MovementInfo.h" #include "MovementMgr.h" +#include "Realm/RealmSession.h" +#include "Realm/RealmSocket.h" + struct OpcodeHandler { diff --git a/src/dep/CMakeLists.txt b/src/dep/CMakeLists.txt new file mode 100644 index 0000000..045f2e6 --- /dev/null +++ b/src/dep/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory (src) \ No newline at end of file diff --git a/src/dep/src/CMakeLists.txt b/src/dep/src/CMakeLists.txt new file mode 100644 index 0000000..e99aa21 --- /dev/null +++ b/src/dep/src/CMakeLists.txt @@ -0,0 +1,7 @@ +add_subdirectory (irrlicht) +add_subdirectory (zlib) +add_subdirectory (zthread) +add_subdirectory (StormLib) +if(MAKE_IRRKLANG_STUB) + add_subdirectory(irrKlang) +endif() diff --git a/src/dep/src/StormLib/CMakeLists.txt b/src/dep/src/StormLib/CMakeLists.txt new file mode 100644 index 0000000..eb39c40 --- /dev/null +++ b/src/dep/src/StormLib/CMakeLists.txt @@ -0,0 +1,20 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include) +add_library(StormLib huffman/huff.cpp + wave/wave.cpp + SAttrFile.cpp + SCommon.cpp + SCompression.cpp + SFileCompactArchive.cpp + SFileCreateArchiveEx.cpp + SFileExtractFile.cpp + SFileFindFile.cpp + SFileOpenArchive.cpp + SFileOpenFileEx.cpp + SFileReadFile.cpp + SListFile.cpp + StormPortLinux.cpp + pklib/crc32_pk.c + pklib/explode.c + pklib/implode.c + misc/crc32.cpp + misc/md5.cpp) \ No newline at end of file diff --git a/src/dep/src/irrKlang/CMakeLists.txt b/src/dep/src/irrKlang/CMakeLists.txt new file mode 100644 index 0000000..e3b6f5a --- /dev/null +++ b/src/dep/src/irrKlang/CMakeLists.txt @@ -0,0 +1,3 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include/irrklang) +add_library(irrklang +irrKlang.cpp) \ No newline at end of file diff --git a/src/dep/src/irrlicht/CMakeLists.txt b/src/dep/src/irrlicht/CMakeLists.txt new file mode 100644 index 0000000..c7be844 --- /dev/null +++ b/src/dep/src/irrlicht/CMakeLists.txt @@ -0,0 +1,273 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include ${PROJECT_SOURCE_DIR}/src/dep/include/irrlicht) +add_library(irrlicht +libpng/example.c +libpng/pnggccrd.c +libpng/pngpread.c +libpng/pngrtran.c +libpng/pngtest.c +libpng/pngwio.c +libpng/pngwutil.c +libpng/png.c +libpng/pngget.c +libpng/pngread.c +libpng/pngrutil.c +libpng/pngtrans.c +libpng/pngwrite.c +libpng/pngerror.c +libpng/pngmem.c +libpng/pngrio.c +libpng/pngset.c +libpng/pngvcrd.c +libpng/pngwtran.c + +jpeglib/jcapimin.c +jpeglib/jcapistd.c +jpeglib/jccoefct.c +jpeglib/jccolor.c +jpeglib/jcdctmgr.c +jpeglib/jchuff.c +jpeglib/jcinit.c +jpeglib/jcmainct.c +jpeglib/jcmarker.c +jpeglib/jcmaster.c +jpeglib/jcomapi.c +jpeglib/jcparam.c +jpeglib/jcphuff.c +jpeglib/jcprepct.c +jpeglib/jcsample.c +jpeglib/jctrans.c +jpeglib/jdapimin.c +jpeglib/jdapistd.c +jpeglib/jdatadst.c +jpeglib/jdatasrc.c +jpeglib/jdcoefct.c +jpeglib/jdcolor.c +jpeglib/jddctmgr.c +jpeglib/jdhuff.c +jpeglib/jdinput.c +jpeglib/jdmainct.c +jpeglib/jdmarker.c +jpeglib/jdmaster.c +jpeglib/jdmerge.c +jpeglib/jdphuff.c +jpeglib/jdpostct.c +jpeglib/jdsample.c +jpeglib/jdtrans.c +jpeglib/jerror.c +jpeglib/jfdctflt.c +jpeglib/jfdctfst.c +jpeglib/jfdctint.c +jpeglib/jidctflt.c +jpeglib/jidctfst.c +jpeglib/jidctint.c +jpeglib/jidctred.c +jpeglib/jmemmgr.c +jpeglib/jmemnobs.c +jpeglib/jquant1.c +jpeglib/jquant2.c +jpeglib/jutils.c + + +C3DSMeshFileLoader.cpp +CAnimatedMeshMD2.cpp +CAnimatedMeshMD3.cpp +CAnimatedMeshSceneNode.cpp +CAttributes.cpp +CB3DMeshFileLoader.cpp +CBillboardSceneNode.cpp +CBoneSceneNode.cpp +CBSPMeshFileLoader.cpp +CBurningShader_Raster_Reference.cpp +CCameraFPSSceneNode.cpp +CCameraMayaSceneNode.cpp +CCameraSceneNode.cpp +CColladaFileLoader.cpp +CColladaMeshWriter.cpp +CColorConverter.cpp +CCSMLoader.cpp +CCubeSceneNode.cpp +CD3D8Driver.cpp +CD3D8NormalMapRenderer.cpp +CD3D8ParallaxMapRenderer.cpp +CD3D8ShaderMaterialRenderer.cpp +CD3D8Texture.cpp +CD3D9Driver.cpp +CD3D9HLSLMaterialRenderer.cpp +CD3D9NormalMapRenderer.cpp +CD3D9ParallaxMapRenderer.cpp +CD3D9ShaderMaterialRenderer.cpp +CD3D9Texture.cpp +CDefaultGUIElementFactory.cpp +CDefaultSceneNodeAnimatorFactory.cpp +CDefaultSceneNodeFactory.cpp +CDepthBuffer.cpp +CDMFLoader.cpp +CDummyTransformationSceneNode.cpp +CEmptySceneNode.cpp +CFileList.cpp +CFileSystem.cpp +CFPSCounter.cpp +CGeometryCreator.cpp +CGUIButton.cpp +CGUICheckBox.cpp +CGUIColorSelectDialog.cpp +CGUIComboBox.cpp +CGUIContextMenu.cpp +CGUIEditBox.cpp +CGUIEnvironment.cpp +CGUIFileOpenDialog.cpp +CGUIFont.cpp +CGUIImage.cpp +CGUIInOutFader.cpp +CGUIListBox.cpp +CGUIMenu.cpp +CGUIMeshViewer.cpp +CGUIMessageBox.cpp +CGUIModalScreen.cpp +CGUIScrollBar.cpp +CGUISkin.cpp +CGUISpinBox.cpp +CGUISpriteBank.cpp +CGUIStaticText.cpp +CGUITabControl.cpp +CGUITable.cpp +CGUIToolBar.cpp +CGUIWindow.cpp +CImage.cpp +CImageLoaderBMP.cpp +CImageLoaderJPG.cpp +CImageLoaderPCX.cpp +CImageLoaderPNG.cpp +CImageLoaderPPM.cpp +CImageLoaderPSD.cpp +CImageLoaderTGA.cpp +CImageLoaderWAL.cpp +CImageWriterBMP.cpp +CImageWriterJPG.cpp +CImageWriterPCX.cpp +CImageWriterPNG.cpp +CImageWriterPPM.cpp +CImageWriterPSD.cpp +CImageWriterTGA.cpp +CIrrDeviceLinux.cpp +CIrrDeviceSDL.cpp +CIrrDeviceStub.cpp +CIrrDeviceWin32.cpp +CIrrDeviceWinCE.cpp +CIrrMeshFileLoader.cpp +CIrrMeshWriter.cpp +CLightSceneNode.cpp +CLimitReadFile.cpp +CLMTSMeshFileLoader.cpp +CLogger.cpp +CLWOMeshFileLoader.cpp +CMD2MeshFileLoader.cpp +CMD3MeshFileLoader.cpp +CMemoryReadFile.cpp +CMeshCache.cpp +CMeshManipulator.cpp +CMeshSceneNode.cpp +CMetaTriangleSelector.cpp +CMS3DMeshFileLoader.cpp +CMY3DMeshFileLoader.cpp +CNullDriver.cpp +COBJMeshFileLoader.cpp +COBJMeshWriter.cpp +COCTLoader.cpp +COctTreeSceneNode.cpp +COctTreeTriangleSelector.cpp +COgreMeshFileLoader.cpp +COpenGLDriver.cpp +COpenGLExtensionHandler.cpp +COpenGLNormalMapRenderer.cpp +COpenGLParallaxMapRenderer.cpp +COpenGLShaderMaterialRenderer.cpp +COpenGLSLMaterialRenderer.cpp +COpenGLTexture.cpp +COSOperator.cpp +CPakReader.cpp +CParticleAnimatedMeshSceneNodeEmitter.cpp +CParticleAttractionAffector.cpp +CParticleBoxEmitter.cpp +CParticleCylinderEmitter.cpp +CParticleFadeOutAffector.cpp +CParticleGravityAffector.cpp +CParticleMeshEmitter.cpp +CParticlePointEmitter.cpp +CParticleRingEmitter.cpp +CParticleRotationAffector.cpp +CParticleScaleAffector.cpp +CParticleSphereEmitter.cpp +CParticleSystemSceneNode.cpp +CQ3LevelMesh.cpp +CQuake3ShaderSceneNode.cpp +CReadFile.cpp +CSceneCollisionManager.cpp +CSceneManager.cpp +CSceneNodeAnimatorCameraFPS.cpp +CSceneNodeAnimatorCameraMaya.cpp +CSceneNodeAnimatorCollisionResponse.cpp +CSceneNodeAnimatorDelete.cpp +CSceneNodeAnimatorFlyCircle.cpp +CSceneNodeAnimatorFlyStraight.cpp +CSceneNodeAnimatorFollowSpline.cpp +CSceneNodeAnimatorRotation.cpp +CSceneNodeAnimatorTexture.cpp +CShadowVolumeSceneNode.cpp +CSkinnedMesh.cpp +CSkyBoxSceneNode.cpp +CSkyDomeSceneNode.cpp +CSoftwareDriver2.cpp +CSoftwareDriver.cpp +CSoftwareTexture2.cpp +CSoftwareTexture.cpp +CSphereSceneNode.cpp +CSTLMeshFileLoader.cpp +CSTLMeshWriter.cpp +CTerrainSceneNode.cpp +CTerrainTriangleSelector.cpp +CTextSceneNode.cpp +CTRFlat.cpp +CTRFlatWire.cpp +CTRGouraud2.cpp +CTRGouraudAlpha2.cpp +CTRGouraudAlphaNoZ2.cpp +CTRGouraud.cpp +CTRGouraudWire.cpp +CTriangleBBSelector.cpp +CTriangleSelector.cpp +CTRTextureBlend.cpp +CTRTextureDetailMap2.cpp +CTRTextureFlat.cpp +CTRTextureFlatWire.cpp +CTRTextureGouraud2.cpp +CTRTextureGouraudAdd2.cpp +CTRTextureGouraudAdd.cpp +CTRTextureGouraudAddNoZ2.cpp +CTRTextureGouraudAlpha.cpp +CTRTextureGouraudAlphaNoZ.cpp +CTRTextureGouraud.cpp +CTRTextureGouraudNoZ2.cpp +CTRTextureGouraudNoZ.cpp +CTRTextureGouraudVertexAlpha2.cpp +CTRTextureGouraudWire.cpp +CTRTextureLightMap2_Add.cpp +CTRTextureLightMap2_M1.cpp +CTRTextureLightMap2_M2.cpp +CTRTextureLightMap2_M4.cpp +CTRTextureLightMapGouraud2_M4.cpp +CTRTextureWire2.cpp +CVideoModeList.cpp +CVolumeLightSceneNode.cpp +CWaterSurfaceSceneNode.cpp +CWriteFile.cpp +CXMeshFileLoader.cpp +CXMLReader.cpp +CXMLWriter.cpp +CZBuffer.cpp +CZipReader.cpp +IBurningShader.cpp +Irrlicht.cpp +irrXML.cpp +os.cpp +) \ No newline at end of file diff --git a/src/dep/src/zlib/CMakeLists.txt b/src/dep/src/zlib/CMakeLists.txt new file mode 100644 index 0000000..a998f3d --- /dev/null +++ b/src/dep/src/zlib/CMakeLists.txt @@ -0,0 +1,2 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include ${PROJECT_SOURCE_DIR}/src/dep/include/zlib) +add_library(zlib adler32.c compress.c crc32.c deflate.c example.c gzio.c infback.c inffast.c inflate.c inftrees.c trees.c uncompr.c zutil.c) \ No newline at end of file diff --git a/src/dep/src/zthread/CMakeLists.txt b/src/dep/src/zthread/CMakeLists.txt new file mode 100644 index 0000000..b634a8c --- /dev/null +++ b/src/dep/src/zthread/CMakeLists.txt @@ -0,0 +1,27 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include ${PROJECT_SOURCE_DIR}/src/dep/include/zthread) +add_library(zthread +AtomicCount.cxx +Condition.cxx +ConcurrentExecutor.cxx +CountingSemaphore.cxx +FastMutex.cxx +FastRecursiveMutex.cxx +Mutex.cxx +RecursiveMutexImpl.cxx +RecursiveMutex.cxx +Monitor.cxx +PoolExecutor.cxx +PriorityCondition.cxx +PriorityInheritanceMutex.cxx +PriorityMutex.cxx +PrioritySemaphore.cxx +Semaphore.cxx +SynchronousExecutor.cxx +Thread.cxx +ThreadedExecutor.cxx +ThreadImpl.cxx +ThreadLocalImpl.cxx +ThreadQueue.cxx +Time.cxx +ThreadOps.cxx +) \ No newline at end of file diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt new file mode 100644 index 0000000..c55a329 --- /dev/null +++ b/src/shared/CMakeLists.txt @@ -0,0 +1,36 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include ${PROJECT_SOURCE_DIR}/src/dep/src ${PROJECT_SOURCE_DIR}/src/shared) +add_library(shared +WDTFile.cpp +Locale.cpp +MPQFile.cpp +MPQHelper.cpp +ProgressBar.cpp +dbcfile.cpp +ADTFile.cpp +MapTile.cpp +log.cpp +tools.cpp +ZCompressor.cpp +MemoryDataHolder.cpp +Auth/SARC4.cpp +Auth/BigNumber.cpp +Auth/AuthCrypt.cpp +Auth/Hmac.cpp +Auth/Sha1.cpp +Auth/md5.c +Network/Utility.cpp +Network/ResolvSocket.cpp +Network/socket_include.cpp +Network/Base64.cpp +Network/ResolvServer.cpp +Network/SocketThread.cpp +Network/CircularBuffer.cpp +Network/Socket.cpp +Network/StdoutLog.cpp +Network/UdpSocket.cpp +Network/Thread.cpp +Network/Parse.cpp +Network/PoolSocket.cpp +Network/SocketHandler.cpp +Network/TcpSocket.cpp +) \ No newline at end of file diff --git a/src/Client/MemoryDataHolder.cpp b/src/shared/MemoryDataHolder.cpp similarity index 99% rename from src/Client/MemoryDataHolder.cpp rename to src/shared/MemoryDataHolder.cpp index 5c7d414..a2c9dd4 100644 --- a/src/Client/MemoryDataHolder.cpp +++ b/src/shared/MemoryDataHolder.cpp @@ -1,6 +1,6 @@ #include #include "MemoryDataHolder.h" -#include "DefScript/TypeStorage.h" +#include "TypeStorage.h" #include "zthread/Condition.h" #include "zthread/Task.h" #include "zthread/PoolExecutor.h" diff --git a/src/Client/MemoryDataHolder.h b/src/shared/MemoryDataHolder.h similarity index 100% rename from src/Client/MemoryDataHolder.h rename to src/shared/MemoryDataHolder.h diff --git a/src/Client/DefScript/TypeStorage.h b/src/shared/TypeStorage.h similarity index 100% rename from src/Client/DefScript/TypeStorage.h rename to src/shared/TypeStorage.h diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt new file mode 100644 index 0000000..9834244 --- /dev/null +++ b/src/tools/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory (stuffextract) +add_subdirectory (viewer) diff --git a/src/tools/stuffextract/CMakeLists.txt b/src/tools/stuffextract/CMakeLists.txt new file mode 100644 index 0000000..9810bb7 --- /dev/null +++ b/src/tools/stuffextract/CMakeLists.txt @@ -0,0 +1,10 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include ${PROJECT_SOURCE_DIR}/src/shared) + +add_executable (stuffextract +StuffExtract.cpp +) + +# Link the executable to the libraries. +target_link_libraries (stuffextract shared StormLib zlib bz2) + +install(TARGETS stuffextract DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/src/tools/viewer/CMakeLists.txt b/src/tools/viewer/CMakeLists.txt new file mode 100644 index 0000000..26da6eb --- /dev/null +++ b/src/tools/viewer/CMakeLists.txt @@ -0,0 +1,16 @@ +include_directories (${PROJECT_SOURCE_DIR}/src/dep/include ${PROJECT_SOURCE_DIR}/src/shared ${PROJECT_SOURCE_DIR}/src/Client) + +add_executable (viewer +main.cpp +${PROJECT_SOURCE_DIR}/src/Client/GUI/CM2MeshFileLoader.cpp +${PROJECT_SOURCE_DIR}/src/Client/GUI/CWMOMeshFileLoader.cpp +${PROJECT_SOURCE_DIR}/src/Client/GUI/CImageLoaderBLP.cpp +${PROJECT_SOURCE_DIR}/src/Client/GUI/SImage.cpp +${PROJECT_SOURCE_DIR}/src/Client/GUI/MemoryInterface.cpp +${PROJECT_SOURCE_DIR}/src/Client/GUI/CMDHMemoryReadFile.cpp +) + +# Link the executable to the libraries. +target_link_libraries (viewer shared irrlicht StormLib zthread GL Xxf86vm zlib bz2 ) + +install(TARGETS viewer DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/src/tools/viewer/main.cpp b/src/tools/viewer/main.cpp index c53c75c..ac38fc9 100755 --- a/src/tools/viewer/main.cpp +++ b/src/tools/viewer/main.cpp @@ -16,9 +16,9 @@ tutorial, we use a lot stuff from the gui namespace. #include #include #include "common.h" -#include "CM2MeshFileLoader.h" -#include "CWMOMeshFileLoader.h" -#include "CImageLoaderBLP.h" +#include "GUI/CM2MeshFileLoader.h" +#include "GUI/CWMOMeshFileLoader.h" +#include "GUI/CImageLoaderBLP.h" using namespace irr;