Преглед на файлове

Merge branch 'master' of github.com:q-gears/q-gears

myst6re преди 11 години
родител
ревизия
19f8a15b6b

+ 3 - 0
.gitmodules

@@ -16,3 +16,6 @@
 [submodule "dependencies/SUDM"]
 	path = dependencies/SUDM
 	url = https://github.com/paulsapps/SUDM.git
+[submodule "dependencies/cotire"]
+	path = dependencies/cotire
+	url = https://github.com/sakra/cotire

+ 5 - 3
CMakeLists.txt

@@ -1,9 +1,11 @@
 cmake_minimum_required(VERSION 2.6)
-
 project(QGears)
 set (CMAKE_PACKAGE_ICON q-gears.png)
 #set( CMAKE_VERBOSE_MAKEFILE on )
 
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/dependencies/cotire/CMake")
+include(cotire)
+
 # The version number.
 set(QGears_VERSION_MAJOR 0)
 set(QGears_VERSION_MINOR 22)
@@ -201,8 +203,8 @@ set(QGears_INCLUDE_DIRS
 
 
 if (MSVC)
-# Build cpp files on all cores
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
+# Build cpp files on all cores, up virtual mem for PCH's as cotire really makes the compiler scream
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Zm193")
 else()
 # Enable C++11, you may need to use -std=c++0x if using an older gcc compiler
 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC")

+ 9 - 1
QGearsMain/CMakeLists.txt

@@ -334,6 +334,11 @@ add_library(QGearsMain STATIC
   ${HEADER_FILES}
   ${SOURCE_FILES}
 )
+
+# Coverage uses more memory, combined with PCH can cause OOM/ICE
+if ($ENV{COVERAGE}!=1)
+cotire(QGearsMain)
+endif()
 SET_PROPERTY(TARGET QGearsMain PROPERTY FOLDER "q-gears")
 
 add_library(q-gears-data STATIC
@@ -341,7 +346,10 @@ add_library(q-gears-data STATIC
  ${SOURCE_FILES_DATA}
  )
 add_dependencies(q-gears-data configure_qgears_version)
-
+# Coverage uses more memory, combined with PCH can cause OOM/ICE
+if ($ENV{COVERAGE}!=1)
+cotire(q-gears-data)
+endif()
 SET_PROPERTY(TARGET q-gears-data PROPERTY FOLDER "q-gears")
 
 

+ 9 - 7
QGearsMain/include/data/QGearsFLevelFile.h

@@ -61,13 +61,14 @@ namespace QGears
 
         static const String RESOURCE_TYPE;
 
-        std::vector<u8> getRawScript();
-        const BackgroundFilePtr&    getBackground  ( void ) const;
-        const CameraMatrixFilePtr&  getCameraMatrix( void ) const;
-        const ModelListFilePtr&     getModelList   ( void ) const;
-        const PaletteFilePtr&       getPalette     ( void ) const;
-        const WalkmeshFilePtr&      getWalkmesh    ( void ) const;
-
+        const std::vector<u8>&      getRawScript() const;
+        const BackgroundFilePtr&    getBackground() const;
+        const CameraMatrixFilePtr&  getCameraMatrix() const;
+        const ModelListFilePtr&     getModelList() const;
+        const PaletteFilePtr&       getPalette() const;
+        const WalkmeshFilePtr&      getWalkmesh() const;
+
+        void setRawScript(const std::vector<u8>& scriptData);
         void setBackground  ( const BackgroundFilePtr      &background    );
         void setCameraMatrix( const CameraMatrixFilePtr    &camera_matrix );
         void setModelList   ( const ModelListFilePtr       &model_list    );
@@ -99,6 +100,7 @@ namespace QGears
         ModelListFilePtr            m_model_list;
         PaletteFilePtr              m_palette;
         WalkmeshFilePtr             m_walkmesh;
+        std::vector<u8>             m_rawScript;
 
         FLevelTextureLoader        *m_background_texture_loader;
         Ogre::TexturePtr            m_background_texture;

+ 7 - 3
QGearsMain/src/data/QGearsFLevelFile.cpp

@@ -179,10 +179,9 @@ namespace QGears
         return 0;
     }
 
-    std::vector<u8> FLevelFile::getRawScript()
+    const std::vector<u8>& FLevelFile::getRawScript() const
     {
-        // TODO
-        return std::vector<u8>();
+        return m_rawScript;
     }
 
     //--------------------------------------------------------------------------
@@ -192,6 +191,11 @@ namespace QGears
         return m_background;
     }
 
+    void FLevelFile::setRawScript(const std::vector<u8>& scriptData)
+    {
+        m_rawScript = scriptData;
+    }
+
     //--------------------------------------------------------------------------
     void
     FLevelFile::setBackground( const BackgroundFilePtr &background )

+ 9 - 1
QGearsMain/src/data/QGearsFLevelFileSerializer.cpp

@@ -177,8 +177,16 @@ namespace QGears
                                       ,FLevelFile *pDest
                                       ,const size_t section_index )
     {
-        switch( section_index )
+        switch (section_index)
         {
+            case SECTION_SCRIPT:
+                {
+                    std::vector<u8> buffer(stream->size());
+                    stream->read(buffer.data(), buffer.size());
+                    pDest->setRawScript(buffer);
+                }
+                break;
+
             case SECTION_CAMERA_MATRIX:
                 readCameraMatrix( stream, pDest );
                 break;

+ 2 - 3
QGearsMain/src/data/QGearsRSDFileSerializer.cpp

@@ -31,7 +31,6 @@ THE SOFTWARE.
 
 namespace QGears
 {
-    typedef Ogre::StringUtil        StringUtil;
     typedef Ogre::StringConverter   StringConverter;
 
     //---------------------------------------------------------------------
@@ -58,7 +57,7 @@ namespace QGears
     RSDFileSerializer::readFileHeader( Ogre::DataStreamPtr &stream )
     {
         String line( getLine( stream ) );
-        if( !StringUtil::startsWith( line, TAG_HEADER, false ) )
+        if( !Ogre::StringUtil::startsWith( line, TAG_HEADER, false ) )
         {
             Ogre::LogManager::getSingleton().stream() << line;
             OGRE_EXCEPT(Ogre::Exception::ERR_INVALIDPARAMS
@@ -73,7 +72,7 @@ namespace QGears
     {
         if( line.empty() ) return;
 
-        Ogre::StringVector parts( StringUtil::split( line, PARSE_DELIMITER ));
+        Ogre::StringVector parts( Ogre::StringUtil::split( line, PARSE_DELIMITER ));
         if( parts.size() < 2 )
         {
             Ogre::LogManager::getSingleton().stream() << "line is: '" << line << "'";

+ 1 - 1
dependencies/SUDM

@@ -1 +1 @@
-Subproject commit 66ae9c61d44ccca61859fc343dd740b05f4a2f12
+Subproject commit 2ae28f1d9f5ef236eeadcbd77aaa7ec1722a6b14

+ 1 - 0
dependencies/cotire

@@ -0,0 +1 @@
+Subproject commit 9ab2aba91af8ba9481df74bae8f43d8151f1d955

+ 1 - 1
dependencies/luajit

@@ -1 +1 @@
-Subproject commit 6c4a18258631ff01f963e9a1e64df57d7a453fd6
+Subproject commit 150bee6c9304aaa12392419e983a747857c60508