Просмотр исходного кода

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

Conflicts:
	CMakeLists.txt
sithlord48 11 лет назад
Родитель
Сommit
91f89e3182
38 измененных файлов с 531 добавлено и 104 удалено
  1. 1 0
      .gitignore
  2. 128 43
      CMakeLists.txt
  3. 1 0
      PlugIns/Data/CMakeLists.txt
  4. 2 1
      QGearsMain/CMakeLists.txt
  5. 1 0
      QGearsMain/include/data/QGearsLGPArchive.h
  6. 8 1
      QGearsMain/src/data/QGearsLGPArchive.cpp
  7. 1 0
      SupportedGames/FinalFantasy7/CMakeLists.txt
  8. 8 0
      Tests/FinalFantasy7/CMakeLists.txt
  9. 13 0
      Tests/QGearsMain/CMakeLists.txt
  10. BIN
      Tests/QGearsMain/misc/reference.lgp
  11. 52 57
      Tests/QGearsMain/src/test_QGearsLGPArchive.cpp
  12. 2 0
      dependencies/CMakeLists.txt
  13. 1 1
      dependencies/luajit
  14. 21 1
      readme.md
  15. 2 0
      utilities/CMakeLists.txt
  16. 1 0
      utilities/ffix_model_exporter/CMakeLists.txt
  17. 1 0
      utilities/ffix_script_dumper/CMakeLists.txt
  18. 1 0
      utilities/ffix_sound_dumper/CMakeLists.txt
  19. 1 0
      utilities/ffvii_battle_model_exporter/CMakeLists.txt
  20. 1 0
      utilities/ffvii_battle_scene_dumper/CMakeLists.txt
  21. 1 0
      utilities/ffvii_field_dat_dumper/CMakeLists.txt
  22. 1 0
      utilities/ffvii_field_model_exporter/CMakeLists.txt
  23. 1 0
      utilities/ffvii_field_model_exporter_pc/CMakeLists.txt
  24. 1 0
      utilities/ffvii_font_exporter/CMakeLists.txt
  25. 1 0
      utilities/ffvii_sound_dumper/CMakeLists.txt
  26. 1 0
      utilities/ffvii_sound_dumper_psf/CMakeLists.txt
  27. 1 0
      utilities/flevel/CMakeLists.txt
  28. 58 0
      utilities/installer/CMakeLists.txt
  29. 11 0
      utilities/installer/src/Main.cpp
  30. 48 0
      utilities/installer/src/mainwindow.cpp
  31. 30 0
      utilities/installer/src/mainwindow.h
  32. 125 0
      utilities/installer/src/mainwindow.ui
  33. 1 0
      utilities/lzs/CMakeLists.txt
  34. 1 0
      utilities/xeno_cd_extract/CMakeLists.txt
  35. 1 0
      utilities/xeno_model_exporter/CMakeLists.txt
  36. 1 0
      utilities/xeno_script_dumper/CMakeLists.txt
  37. 1 0
      utilities/xeno_sound_dumper/CMakeLists.txt
  38. 1 0
      utilities/xeno_walkmesh_exporter/CMakeLists.txt

+ 1 - 0
.gitignore

@@ -16,4 +16,5 @@ build/
 output/share
 output/share
 output/include
 output/include
 output/lib
 output/lib
+CMakeLists.txt.user
 
 

+ 128 - 43
CMakeLists.txt

@@ -9,6 +9,9 @@ set(QGears_VERSION_MAJOR 0)
 set(QGears_VERSION_MINOR 22)
 set(QGears_VERSION_MINOR 22)
 set(QGears_VERSION_PATCH 0)
 set(QGears_VERSION_PATCH 0)
 
 
+# Enable Visual Studio solution "folders"
+SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON) 
+
 #if (APPLE)
 #if (APPLE)
 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
 #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
 #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
@@ -66,12 +69,12 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
   )
   )
 endif()
 endif()
 
 
-find_package( ZLIB REQUIRED )
-
+find_package(Qt4 REQUIRED)
+find_package(ZLIB REQUIRED)
 find_package(OGRE REQUIRED)
 find_package(OGRE REQUIRED)
-
 find_package(OIS REQUIRED)
 find_package(OIS REQUIRED)
 
 
+
 if(NOT OIS_FOUND)
 if(NOT OIS_FOUND)
         message(SEND_ERROR "Failed to find OIS.")
         message(SEND_ERROR "Failed to find OIS.")
 endif()
 endif()
@@ -107,16 +110,16 @@ if (NOT OGRE_BUILD_PLATFORM_IPHONE)
 
 
         # Set up referencing of Boost
         # Set up referencing of Boost
         include_directories(${Boost_INCLUDE_DIR})
         include_directories(${Boost_INCLUDE_DIR})
-	if (NOT APPLE)        
-	add_definitions(-DBOOST_ALL_NO_LIB)
-	endif()
+    if (NOT APPLE)        
+    add_definitions(-DBOOST_ALL_NO_LIB)
+    endif()
 
 
         set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
         set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
 
 
         find_package(Boost COMPONENTS program_options filesystem QUIET)
         find_package(Boost COMPONENTS program_options filesystem QUIET)
         set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
         set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
         set(QGears_LIBRARIES ${OGRE_LIBRARIES})
         set(QGears_LIBRARIES ${OGRE_LIBRARIES})
-		
+        
         if(QGears_SOUND)
         if(QGears_SOUND)
             find_package(OpenAL REQUIRED)
             find_package(OpenAL REQUIRED)
             find_package(OggVorbis REQUIRED)
             find_package(OggVorbis REQUIRED)
@@ -138,7 +141,7 @@ if (NOT OGRE_BUILD_PLATFORM_IPHONE)
         endif()
         endif()
 
 
         if(QGears_BUILD_TESTS)
         if(QGears_BUILD_TESTS)
-	    message(STATUS "Looking for boost unit test..")
+        message(STATUS "Looking for boost unit test..")
             find_package(Boost COMPONENTS unit_test_framework REQUIRED)
             find_package(Boost COMPONENTS unit_test_framework REQUIRED)
             set(QGears_TEST_LIBRARIES
             set(QGears_TEST_LIBRARIES
                 ${OGRE_LIBRARIES}
                 ${OGRE_LIBRARIES}
@@ -164,11 +167,11 @@ set(QGears_INCLUDE_DIRS
     ${OGRE_Overlay_INCLUDE_DIRS}
     ${OGRE_Overlay_INCLUDE_DIRS}
     ${OGRE_SAMPLES_INCLUDEPATH}
     ${OGRE_SAMPLES_INCLUDEPATH}
     ${CMAKE_CURRENT_SOURCE_DIR}/dependencies
     ${CMAKE_CURRENT_SOURCE_DIR}/dependencies
-	${CMAKE_CURRENT_BINARY_DIR}/dependencies/luajit
-	${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luajit/src
-	${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind
-	${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind/luabind/detail
-	${CMAKE_CURRENT_SOURCE_DIR}/dependencies/tinyxml
+    ${CMAKE_CURRENT_BINARY_DIR}/dependencies/luajit
+    ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luajit/src
+    ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind
+    ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind/luabind/detail
+    ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/tinyxml
 )
 )
 
 
 
 
@@ -215,46 +218,51 @@ MESSAGE( STATUS "BOOST_ROOT:         " ${BOOST_ROOT} )
 
 
 #OS SPECIFIC 
 #OS SPECIFIC 
 if(WIN32)
 if(WIN32)
-	# On Windows generate MSI packages
-	SET(CPACK_GENERATOR "WIX")
-	
-	set(CPACK_WIX_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/wix.template.in")
-	SET(CPACK_WIX_UPGRADE_GUID 8fbb893f-5622-4f6d-a7f6-c221f7be5d52)
+    # On Windows generate MSI packages
+    SET(CPACK_GENERATOR "WIX")
+    
+    set(CPACK_WIX_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/wix.template.in")
+    SET(CPACK_WIX_UPGRADE_GUID 8fbb893f-5622-4f6d-a7f6-c221f7be5d52)
 
 
 # TODO: Set MSI banner image, copyright info etc, also include startmenu/desktop shortcuts
 # TODO: Set MSI banner image, copyright info etc, also include startmenu/desktop shortcuts
-	#set the name of the installer default formating is name-version-os
-	
-	# If empty assume release
-	if ("${CMAKE_BUILD_TYPE}" STREQUAL "" OR "${CMAKE_BUILD_TYPE}" STREQUAL "release")
-		message("RELEASE installer build")
-		install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
-		install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OgreMain.dll DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/RenderSystem_GL.dll DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OGREOVERLAY.DLL DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
-	else()
-		message("DEBUG installer build")
-		install(FILES ${PROJECT_SOURCE_DIR}/output/resources_d.cfg DESTINATION ./)
-		install(FILES ${PROJECT_SOURCE_DIR}/output/plugins_d.cfg DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OgreMain_d.dll DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/RenderSystem_GL_d.dll DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OGREOVERLAY_D.DLL DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OIS_D.DLL DESTINATION ./)
-	endif()
+    #set the name of the installer default formating is name-version-os
+    
+    # If empty assume release
+    if ("${CMAKE_BUILD_TYPE}" STREQUAL "" OR "${CMAKE_BUILD_TYPE}" STREQUAL "release")
+        message("RELEASE installer build")
+        install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
+        install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OgreMain.dll DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/RenderSystem_GL.dll DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OGREOVERLAY.DLL DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
+        install(FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION ./)
+        install(FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION ./)
+    else()
+        message("DEBUG installer build")
+        install(FILES ${PROJECT_SOURCE_DIR}/output/resources_d.cfg DESTINATION ./)
+        install(FILES ${PROJECT_SOURCE_DIR}/output/plugins_d.cfg DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OgreMain_d.dll DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/RenderSystem_GL_d.dll DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OGREOVERLAY_D.DLL DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OIS_D.DLL DESTINATION ./)
+        install(FILES ${QT_PLUGINS_DIR}/../bin/QtCored4.dll DESTINATION ./)
+        install(FILES ${QT_PLUGINS_DIR}/../bin/QtGuid4.dll DESTINATION ./)
+    endif()
 elseif(APPLE)
 elseif(APPLE)
-	# APPLE is also UNIX, so must check for APPLE before UNIX
-	SET(CPACK_GENERATOR "DragNDrop")
- 	install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
-	install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
+    # APPLE is also UNIX, so must check for APPLE before UNIX
+    SET(CPACK_GENERATOR "DragNDrop")
+    install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
+    install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/Ogre.framework/Ogre DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/Ogre.framework/Ogre DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/RenderSystem_GL.framework/Versions/1.9.0/RenderSystem_GL DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/RenderSystem_GL.framework/Versions/1.9.0/RenderSystem_GL DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/OgreOverlay.framework/Versions/1.9.0/OgreOverlay DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/OgreOverlay.framework/Versions/1.9.0/OgreOverlay DESTINATION ./)
 
 
-	# TODO: Fix up other files and use "otool" to fix dynlib + framework paths
+    # TODO: Fix up other files and use "otool" to fix dynlib + framework paths
         #install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
         #install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
         #install(FILES "${BOOST_ROOT}/stage/lib/BOOST_SYSTEM-VC120-MT-1_55.DLL" DESTINATION ./)
         #install(FILES "${BOOST_ROOT}/stage/lib/BOOST_SYSTEM-VC120-MT-1_55.DLL" DESTINATION ./)
 elseif(UNIX)
 elseif(UNIX)
+<<<<<<< HEAD
 	# On Linux generate TAR.GZ,DEB and RPM packages
 	# On Linux generate TAR.GZ,DEB and RPM packages
 	#Find out what architecture are we running on and set the package architecture 
 	#Find out what architecture are we running on and set the package architecture 
 	
 	
@@ -327,8 +335,85 @@ elseif(UNIX)
 	  SET(CPACK_RPM_PACKAGE_DESCRIPTION)
 	  SET(CPACK_RPM_PACKAGE_DESCRIPTION)
 	  #REQUIREMENTS NEED TO BE CHECKED USING FEDORA.
 	  #REQUIREMENTS NEED TO BE CHECKED USING FEDORA.
 	  #SET(CPACK_RPM_PACKAGE_REQUIRES "ogre,ois,boost,vorbis,lua,zlib1g")
 	  #SET(CPACK_RPM_PACKAGE_REQUIRES "ogre,ois,boost,vorbis,lua,zlib1g")
+=======
+    # On Linux generate TAR.GZ,DEB and RPM packages
+    #Find out what architecture are we running on and set the package architecture 
+    
+    # set the generic files needing to be installed
+    install( FILES ${PROJECT_SOURCE_DIR}/q-gears.png DESTINATION ./share/pixmaps/ )
+    install( FILES ${PROJECT_SOURCE_DIR}/q-gears.desktop DESTINATION ./share/applications/ )
+    install( FILES ${PROJECT_SOURCE_DIR}/debian/menu DESTINATION share/menu/ RENAME q-gears )
+    install( FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg_linux DESTINATION share/q-gears/ RENAME plugins.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
+    install( FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg_linux DESTINATION share/q-gears/ RENAME resources.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
+    install( FILES ${PROJECT_SOURCE_DIR}/output/q-gears.cfg_linux DESTINATION share/q-gears/ RENAME q-gears.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
+        
+    if(EXISTS "/usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so")
+      install( FILES /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so DESTINATION share/q-gears/plugins/ RENAME RenderSystem_GL.so.1.9.0 )
+    endif()
+        
+        
+    SET(CPACK_SOURCE_GENERATOR "TGZ;TZ")
+    SET(CPACK_GENERATOR "TGZ")
+    #detect Distro Family DEB , RPM 
+    if(EXISTS "/etc/lsb-release")
+        set(DistroType DEB)
+    elseif(EXISTS "/etc/debian_release")
+        set(DistroType DEB)
+    elseif(EXISTS "/etc/fedora-release")
+        set(DistroType RPM)
+    endif()
+    message(STATUS "Distro Detected: ${DistroType} ")
+
+    if(DistroType MATCHES "DEB")
+      # Setup DEB package properties
+      MESSAGE(STATUS "DEB ADDED TO GENERATION LIST")
+      SET(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
+    endif()
+    if(EXISTS "/usr/bin/rpmbuild")
+      MESSAGE(STATUS "RPM ADDED TO GENERATION LIST (RPM IS DISABLED IN CMAKELISTS)")
+    #  Uncomment to allow for rpm files to be built.   
+    #  SET(CPACK_GENERATOR "${CPACK_GENERATOR};RPM")
+    endif()
+    
+    # Setup DEB package properties
+    SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Chris Rizzitello <sithlord48@gmail.com>")
+    
+    
+    #Set DEBIAN INFO
+    SET(CPACK_DEBIAN_PACKAGE_SECTION games)
+    SET(CPACK_DEBIAN_PACKAGE_PRIORITY extra)
+    #SET(CPACK_PACKAGE_EXECUTABLE )
+    EXECUTE_PROCESS(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
+    MESSAGE (STATUS "Architecture: ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
+    #we should need no longer need postinst since we have added extra install steps to what it would.
+    #SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${CMAKE_SOURCE_DIR}/debian/postinst )
+    #set the name to be debian package like.
+    SET(CPACK_PACKAGE_FILE_NAME "q-gears_${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
+    #SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9, libois,libboost-program-options,libboost-filesystem,libvorbis,libopenal,libboost-test,zlib1g")
+    SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9.0, libois-1.3.0,libboost-program-options1.54.0,libboost-filesystem1.54.0,libvorbis0a,libvorbisfile3,libvorbisenc2,libopenal1,libboost-test1.54.0,zlib1g,liblua5.1-0")
+
+    #Set RPM info
+      SET(CPACK_RPM_PACKAGE_SUMMARY CPACK_PACKAGE_DESCRIPTION_SUMMARY)
+      SET(CPACK_RPM_PACKAGE_NAME CPACK_PACKAGE_NAME)
+      SET(CPACK_RPM_PACKAGE_VERSION CPACK_PACKAGE_VERSION)
+      SET(CPACK_RPM_PACKAGE_RELEASE 1)
+      SET(CPACK_RPM_PACKAGE_LICENSE "GPLv3+")
+      SET(CPACK_RPM_PACKAGE_GROUP games)
+      SET(CPACK_RPM_PACKAGE_VENDOR)
+      SET(CPACK_RPM_PACKAGE_DESCRIPTION)
+      #REQUIREMENTS NEED TO BE CHECKED USING FEDORA.
+      #SET(CPACK_RPM_PACKAGE_REQUIRES "ogre,ois,boost,vorbis,lua,zlib1g")
+>>>>>>> e41cccaa5f4ea95e769138c569a01b867c7f6486
 
 
 endif()
 endif()
 
 
+SET_PROPERTY(TARGET liblua PROPERTY FOLDER "3rdparty")
+SET_PROPERTY(TARGET buildvm PROPERTY FOLDER "3rdparty")
+SET_PROPERTY(TARGET LuaBind PROPERTY FOLDER "3rdparty")
+SET_PROPERTY(TARGET luajit PROPERTY FOLDER "3rdparty")
+SET_PROPERTY(TARGET minilua PROPERTY FOLDER "3rdparty")
+SET_PROPERTY(TARGET TinyXml PROPERTY FOLDER "3rdparty")
+
+
 INCLUDE(CPack)
 INCLUDE(CPack)
 #End of install instructions
 #End of install instructions

+ 1 - 0
PlugIns/Data/CMakeLists.txt

@@ -77,6 +77,7 @@ add_library(DataPlugin MODULE
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET DataPlugin PROPERTY FOLDER "q-gears")
 
 
 set_target_properties(DataPlugin PROPERTIES
 set_target_properties(DataPlugin PROPERTIES
   PREFIX ${PLUGIN_PREFIX}
   PREFIX ${PLUGIN_PREFIX}

+ 2 - 1
QGearsMain/CMakeLists.txt

@@ -324,17 +324,18 @@ add_library(QGearsMain STATIC
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET QGearsMain PROPERTY FOLDER "q-gears")
 
 
 add_executable(q-gears
 add_executable(q-gears
   src/Main.cpp
   src/Main.cpp
 )
 )
+SET_PROPERTY(TARGET q-gears PROPERTY FOLDER "q-gears")
 
 
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(q-gears "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(q-gears "-framework CoreFoundation -framework Cocoa -framework IOKit")
 endif()
 endif()
 
 
-
 if( WIN32 AND NOT (CMAKE_BUILD_TYPE MATCHES "Debug") )
 if( WIN32 AND NOT (CMAKE_BUILD_TYPE MATCHES "Debug") )
     set_target_properties( q-gears PROPERTIES WIN32_EXECUTABLE ON )
     set_target_properties( q-gears PROPERTIES WIN32_EXECUTABLE ON )
 	if (MSVC)
 	if (MSVC)

+ 1 - 0
QGearsMain/include/data/QGearsLGPArchive.h

@@ -95,6 +95,7 @@ namespace QGears
             virtual FileList& getFiles( void );
             virtual FileList& getFiles( void );
 
 
         protected:
         protected:
+            void load( Ogre::DataStream* lgp );
 
 
         private:
         private:
             FileList            m_files;
             FileList            m_files;

+ 8 - 1
QGearsMain/src/data/QGearsLGPArchive.cpp

@@ -51,8 +51,15 @@ namespace QGears
     {
     {
         //OGRE_LOCK_AUTO_MUTEX
         //OGRE_LOCK_AUTO_MUTEX
         std::ifstream *ifs( OGRE_NEW_T( std::ifstream, Ogre::MEMCATEGORY_GENERAL )( mName.c_str(), std::ifstream::binary ) );
         std::ifstream *ifs( OGRE_NEW_T( std::ifstream, Ogre::MEMCATEGORY_GENERAL )( mName.c_str(), std::ifstream::binary ) );
+        load( OGRE_NEW Ogre::FileStreamDataStream( ifs ) );
+    }
+
+    //-------------------------------------------------------------------------
+    void
+    LGPArchive::load( Ogre::DataStream* lgp )
+    {
         m_lgp_file.setNull();
         m_lgp_file.setNull();
-        m_lgp_file.bind( OGRE_NEW Ogre::FileStreamDataStream( ifs ) );
+        m_lgp_file.bind( lgp );
         LGPArchiveSerializer lgp_archive_serializer;
         LGPArchiveSerializer lgp_archive_serializer;
         lgp_archive_serializer.importLGPArchive( m_lgp_file, this );
         lgp_archive_serializer.importLGPArchive( m_lgp_file, this );
 
 

+ 1 - 0
SupportedGames/FinalFantasy7/CMakeLists.txt

@@ -29,6 +29,7 @@ add_library(FinalFantasy7 STATIC
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET FinalFantasy7 PROPERTY FOLDER "q-gears")
 
 
 set(LIBRARIES
 set(LIBRARIES
     ${OGRE_LIBRARIES}
     ${OGRE_LIBRARIES}

+ 8 - 0
Tests/FinalFantasy7/CMakeLists.txt

@@ -15,6 +15,9 @@ set(LIBRARIES
 add_executable(TestFF7FLevelFileSerializer
 add_executable(TestFF7FLevelFileSerializer
     src/test_FF7FLevelFileSerializer
     src/test_FF7FLevelFileSerializer
 )
 )
+SET_PROPERTY(TARGET TestFF7FLevelFileSerializer PROPERTY FOLDER "tests")
+
+
 target_link_libraries(TestFF7FLevelFileSerializer ${LIBRARIES})
 target_link_libraries(TestFF7FLevelFileSerializer ${LIBRARIES})
 add_test(TestFF7FLevelFileSerializer TestFF7FLevelFileSerializer)
 add_test(TestFF7FLevelFileSerializer TestFF7FLevelFileSerializer)
 
 
@@ -22,6 +25,9 @@ add_test(TestFF7FLevelFileSerializer TestFF7FLevelFileSerializer)
 add_executable(TestFF7ModelListFileSerializer
 add_executable(TestFF7ModelListFileSerializer
     src/test_FF7ModelListFileSerializer.cpp
     src/test_FF7ModelListFileSerializer.cpp
 )
 )
+SET_PROPERTY(TARGET TestFF7ModelListFileSerializer PROPERTY FOLDER "tests")
+
+
 target_link_libraries(TestFF7ModelListFileSerializer ${LIBRARIES})
 target_link_libraries(TestFF7ModelListFileSerializer ${LIBRARIES})
 add_test(TestFF7ModelListFileSerializer TestFF7ModelListFileSerializer)
 add_test(TestFF7ModelListFileSerializer TestFF7ModelListFileSerializer)
 
 
@@ -29,5 +35,7 @@ add_test(TestFF7ModelListFileSerializer TestFF7ModelListFileSerializer)
 add_executable(TestFF7WalkmeshFileSerializer
 add_executable(TestFF7WalkmeshFileSerializer
     src/test_FF7WalkmeshFileSerializer.cpp
     src/test_FF7WalkmeshFileSerializer.cpp
 )
 )
+SET_PROPERTY(TARGET TestFF7WalkmeshFileSerializer PROPERTY FOLDER "tests")
+
 target_link_libraries(TestFF7WalkmeshFileSerializer ${LIBRARIES})
 target_link_libraries(TestFF7WalkmeshFileSerializer ${LIBRARIES})
 add_test(TestFF7WalkmeshFileSerializer TestFF7WalkmeshFileSerializer)
 add_test(TestFF7WalkmeshFileSerializer TestFF7WalkmeshFileSerializer)

+ 13 - 0
Tests/QGearsMain/CMakeLists.txt

@@ -13,6 +13,8 @@ set(LIBRARIES
 add_executable(TestQGearsAFileSerializer
 add_executable(TestQGearsAFileSerializer
     src/test_QGearsAFileSerializer.cpp
     src/test_QGearsAFileSerializer.cpp
 )
 )
+SET_PROPERTY(TARGET TestQGearsAFileSerializer PROPERTY FOLDER "tests")
+
 target_link_libraries(TestQGearsAFileSerializer ${LIBRARIES})
 target_link_libraries(TestQGearsAFileSerializer ${LIBRARIES})
 add_test(TestQGearsAFileSerializer TestQGearsAFileSerializer)
 add_test(TestQGearsAFileSerializer TestQGearsAFileSerializer)
 
 
@@ -20,6 +22,8 @@ add_test(TestQGearsAFileSerializer TestQGearsAFileSerializer)
 add_executable(TestQGearsMapFileXMLSerializer
 add_executable(TestQGearsMapFileXMLSerializer
     src/test_QGearsMapFileXMLSerializer.cpp
     src/test_QGearsMapFileXMLSerializer.cpp
 )
 )
+SET_PROPERTY(TARGET TestQGearsMapFileXMLSerializer PROPERTY FOLDER "tests")
+
 target_link_libraries(TestQGearsMapFileXMLSerializer ${LIBRARIES})
 target_link_libraries(TestQGearsMapFileXMLSerializer ${LIBRARIES})
 add_test(TestQGearsMapFileXMLSerializer TestQGearsMapFileXMLSerializer)
 add_test(TestQGearsMapFileXMLSerializer TestQGearsMapFileXMLSerializer)
 
 
@@ -27,6 +31,8 @@ add_test(TestQGearsMapFileXMLSerializer TestQGearsMapFileXMLSerializer)
 add_executable(TestQGearsWalkmeshFileXMLSerializer
 add_executable(TestQGearsWalkmeshFileXMLSerializer
     src/test_QGearsWalkmeshFileXMLSerializer.cpp
     src/test_QGearsWalkmeshFileXMLSerializer.cpp
 )
 )
+SET_PROPERTY(TARGET TestQGearsWalkmeshFileXMLSerializer PROPERTY FOLDER "tests")
+
 target_link_libraries(TestQGearsWalkmeshFileXMLSerializer ${LIBRARIES})
 target_link_libraries(TestQGearsWalkmeshFileXMLSerializer ${LIBRARIES})
 add_test(TestQGearsWalkmeshFileXMLSerializer TestQGearsWalkmeshFileXMLSerializer)
 add_test(TestQGearsWalkmeshFileXMLSerializer TestQGearsWalkmeshFileXMLSerializer)
 
 
@@ -34,6 +40,8 @@ add_test(TestQGearsWalkmeshFileXMLSerializer TestQGearsWalkmeshFileXMLSerializer
 add_executable(TestQGearsLGPArchive
 add_executable(TestQGearsLGPArchive
     src/test_QGearsLGPArchive.cpp
     src/test_QGearsLGPArchive.cpp
 )
 )
+SET_PROPERTY(TARGET TestQGearsLGPArchive PROPERTY FOLDER "tests")
+
 target_link_libraries(TestQGearsLGPArchive ${LIBRARIES})
 target_link_libraries(TestQGearsLGPArchive ${LIBRARIES})
 add_test(TestQGearsLGPArchive TestQGearsLGPArchive)
 add_test(TestQGearsLGPArchive TestQGearsLGPArchive)
 
 
@@ -41,6 +49,8 @@ add_test(TestQGearsLGPArchive TestQGearsLGPArchive)
 add_executable(TestMapSerializer
 add_executable(TestMapSerializer
     src/test_MapSerializer.cpp
     src/test_MapSerializer.cpp
 )
 )
+SET_PROPERTY(TARGET TestMapSerializer PROPERTY FOLDER "tests")
+
 target_link_libraries(TestMapSerializer ${LIBRARIES})
 target_link_libraries(TestMapSerializer ${LIBRARIES})
 add_test(TestMapSerializer TestMapSerializer)
 add_test(TestMapSerializer TestMapSerializer)
 
 
@@ -48,6 +58,9 @@ add_test(TestMapSerializer TestMapSerializer)
 add_executable(TestTxzSerializer
 add_executable(TestTxzSerializer
     src/test_TxzSerializer.cpp
     src/test_TxzSerializer.cpp
 )
 )
+SET_PROPERTY(TARGET TestTxzSerializer PROPERTY FOLDER "tests")
+
+
 target_link_libraries(TestTxzSerializer ${LIBRARIES})
 target_link_libraries(TestTxzSerializer ${LIBRARIES})
 add_test(TestTxzSerializer TestTxzSerializer)
 add_test(TestTxzSerializer TestTxzSerializer)
 
 

BIN
Tests/QGearsMain/misc/reference.lgp


+ 52 - 57
Tests/QGearsMain/src/test_QGearsLGPArchive.cpp

@@ -30,55 +30,57 @@ THE SOFTWARE.
 
 
 #include "data/QGearsLGPArchiveFactory.h"
 #include "data/QGearsLGPArchiveFactory.h"
 
 
-BOOST_AUTO_TEST_CASE( stream )
-{
-    const char* file_name( "misc/reference.lgp" );
-    std::ifstream *ifs( OGRE_NEW_T( std::ifstream, Ogre::MEMCATEGORY_GENERAL )( file_name, std::ifstream::binary ) );
-    BOOST_REQUIRE( ifs->is_open() );
-    Ogre::FileStreamDataStream stream( ifs );
-    BOOST_REQUIRE( stream.isReadable() );
-    stream.close();
-}
-
 BOOST_AUTO_TEST_CASE( load )
 BOOST_AUTO_TEST_CASE( load )
 {
 {
-    QGears::LGPArchiveFactory factory;
-    Ogre::Archive* archive = factory.createInstance( "misc/reference.lgp", true );
-    QGears::LGPArchive lgp( "misc/reference.lgp", "LGP" );
+    Ogre::LogManager        logMgr;
+    logMgr.createLog( "Default Log", true, true, true );
+    const char* filename_1( "Filename 1" );
+    const char* filename_2( "max length filename!" );
+
+    class TestLGPArchive : public QGears::LGPArchive
+    {
+        public:
+
+            TestLGPArchive() :
+                QGears::LGPArchive( "misc/reference.lgp", "LGP" )
+              , test_stream( NULL )
+            {}
+
+            void load()
+            {
+                QGears::LGPArchive::load( test_stream );
+            }
+
+        Ogre::DataStream* test_stream;
+    };
+
+    TestLGPArchive lgp;
+    // TODO: use Ogre::MemoryDataStream and include data via byte array
+    std::ifstream *ifs( OGRE_NEW_T( std::ifstream, Ogre::MEMCATEGORY_GENERAL )( lgp.getName().c_str(), std::ifstream::binary ) );
+    lgp.test_stream = OGRE_NEW Ogre::FileStreamDataStream( ifs );
 
 
     BOOST_CHECK_EQUAL(  true, lgp.getFiles().empty() );
     BOOST_CHECK_EQUAL(  true, lgp.getFiles().empty() );
-    BOOST_CHECK_EQUAL( false, lgp.exists( "aaac.p" ) );
-    BOOST_CHECK_EQUAL( false, lgp.exists( "mmmm.p" ) );
-    BOOST_CHECK_EQUAL( lgp.getFiles().empty(), archive->list()->empty() );
-    BOOST_CHECK_EQUAL( lgp.exists( "aaac.p" ), archive->exists( "aaac.p" ) );
-    BOOST_CHECK_EQUAL( lgp.exists( "mmmm.p" ), archive->exists( "mmmm.p" ) );
+    BOOST_CHECK_EQUAL( false, lgp.exists( filename_1 ) );
+    BOOST_CHECK_EQUAL( false, lgp.exists( filename_2 ) );
 
 
-    Ogre::LogManager        logMgr;
-    logMgr.createLog( "Default Log", true, true, true );
     lgp.load();
     lgp.load();
-    archive->load();
-    logMgr.destroyLog( "Default Log" );
 
 
-    BOOST_CHECK_EQUAL( 12649, lgp.getFiles().size() );
-    BOOST_CHECK_EQUAL(  true, lgp.exists( "aaac.p" ) );
-    BOOST_CHECK_EQUAL(  true, lgp.exists( "mmmm.p" ) );
+    BOOST_CHECK_EQUAL( 2, lgp.getFiles().size() );
+    BOOST_CHECK_EQUAL(  true, lgp.exists( filename_1 ) );
+    BOOST_CHECK_EQUAL(  true, lgp.exists( filename_2 ) );
     BOOST_CHECK_EQUAL( lgp.getFiles().size(), lgp.list()->size() );
     BOOST_CHECK_EQUAL( lgp.getFiles().size(), lgp.list()->size() );
     BOOST_CHECK_EQUAL( lgp.getFiles().size(), lgp.listFileInfo()->size() );
     BOOST_CHECK_EQUAL( lgp.getFiles().size(), lgp.listFileInfo()->size() );
-    BOOST_CHECK_EQUAL( lgp.getFiles().size(), archive->list()->size() );
-    BOOST_CHECK_EQUAL( lgp.exists( "aaac.p" ), archive->exists( "aaac.p" ) );
-    BOOST_CHECK_EQUAL( lgp.exists( "mmmm.p" ), archive->exists( "mmmm.p" ) );
-
-    QGears::LGPArchive::FileEntry& entry( lgp.getFiles()[1] );
-    BOOST_CHECK_EQUAL( "aaad.rsd", entry.file_name );
-    BOOST_CHECK_EQUAL( entry.file_name, lgp.list()->at( 1 ) );
-    BOOST_CHECK_EQUAL( entry.file_name, archive->list()->at( 1 ) );
-    BOOST_CHECK_EQUAL( 0x00054ACB, entry.file_offset );
-    BOOST_CHECK_EQUAL( "AAAD.rsd", entry.data_file_name );
-    BOOST_CHECK_EQUAL( 0x0000003E, entry.data_size );
-    BOOST_CHECK_EQUAL( 0x00054AE3, entry.data_offset );
+
+    QGears::LGPArchive::FileEntry& entry( lgp.getFiles()[0] );
+    BOOST_CHECK_EQUAL( filename_1, entry.file_name );
+    BOOST_CHECK_EQUAL( entry.file_name, lgp.list()->at( 0 ) );
+    BOOST_CHECK_EQUAL( 0x00000050, entry.file_offset );
+    BOOST_CHECK_EQUAL( "FILENAME 1", entry.data_file_name );
+    BOOST_CHECK_EQUAL( 0x00000018, entry.data_size );
+    BOOST_CHECK_EQUAL( 0x00000068, entry.data_offset );
 
 
     Ogre::FileInfoListPtr file_infos( lgp.listFileInfo() );
     Ogre::FileInfoListPtr file_infos( lgp.listFileInfo() );
-    Ogre::FileInfo& file_info( file_infos->at( 1 ) );
+    Ogre::FileInfo& file_info( file_infos->at( 0 ) );
     BOOST_CHECK_EQUAL( &lgp, file_info.archive );
     BOOST_CHECK_EQUAL( &lgp, file_info.archive );
     BOOST_CHECK_EQUAL( entry.file_name, file_info.filename );
     BOOST_CHECK_EQUAL( entry.file_name, file_info.filename );
     BOOST_CHECK_EQUAL( entry.file_name, file_info.basename );
     BOOST_CHECK_EQUAL( entry.file_name, file_info.basename );
@@ -86,31 +88,24 @@ BOOST_AUTO_TEST_CASE( load )
     BOOST_CHECK_EQUAL( entry.data_size, file_info.uncompressedSize );
     BOOST_CHECK_EQUAL( entry.data_size, file_info.uncompressedSize );
     BOOST_CHECK_EQUAL( file_info.uncompressedSize, file_info.compressedSize );
     BOOST_CHECK_EQUAL( file_info.uncompressedSize, file_info.compressedSize );
 
 
-    BOOST_CHECK_EQUAL( 3209, lgp.find( "*.a" )->size() );
-    BOOST_CHECK_EQUAL(  385, lgp.find( "*.hrc" )->size() );
-    BOOST_CHECK_EQUAL(  695, lgp.find( "*.tex" )->size() );
-    BOOST_CHECK_EQUAL( 4180, lgp.find( "*.p" )->size() );
+    BOOST_CHECK_EQUAL( 1, lgp.find( "Filename*" )->size() );
+    BOOST_CHECK_EQUAL( 1, lgp.find( "*!" )->size() );
+    BOOST_CHECK_EQUAL( 2, lgp.find( "*name*" )->size() );
 
 
-    Ogre::StringVectorPtr found( lgp.find( "*.rsd" ) );
-    BOOST_CHECK_EQUAL( 4180, found->size() );
-    BOOST_CHECK_EQUAL( "aaad.rsd", found->at( 0 ) );
-    BOOST_CHECK_EQUAL( "aaib.rsd", found->at( 1 ) );
+    Ogre::StringVectorPtr found( lgp.find( "*name*" ) );
+    BOOST_CHECK_EQUAL( 2, found->size() );
+    BOOST_CHECK_EQUAL( filename_1, found->at( 0 ) );
+    BOOST_CHECK_EQUAL( filename_2, found->at( 1 ) );
 
 
-    Ogre::DataStreamPtr stream( lgp.open( "aaad.rsd" ) );
+    Ogre::DataStreamPtr stream( lgp.open( filename_1 ) );
     BOOST_CHECK_EQUAL( false, stream.isNull() );
     BOOST_CHECK_EQUAL( false, stream.isNull() );
     BOOST_CHECK_EQUAL( entry.data_size, stream->size() );
     BOOST_CHECK_EQUAL( entry.data_size, stream->size() );
-    BOOST_CHECK_EQUAL( "@RSD940102", stream->getLine() );
-    BOOST_CHECK_EQUAL( "PLY=AAAE.PLY", stream->getLine() );
-    BOOST_CHECK_EQUAL( "MAT=AAAE.MAT", stream->getLine() );
-    BOOST_CHECK_EQUAL( "GRP=AAAE.GRP", stream->getLine() );
-    BOOST_CHECK_EQUAL( "NTEX=0", stream->getLine() );
+    BOOST_CHECK_EQUAL( "data of file 1 for test!", stream->getLine() );
     BOOST_CHECK_EQUAL( true, stream->eof() );
     BOOST_CHECK_EQUAL( true, stream->eof() );
 
 
-    BOOST_CHECK_EQUAL( 1381049923, lgp.getModifiedTime( "aaad.rsd" ) );
-
     lgp.unload();
     lgp.unload();
 
 
-    BOOST_CHECK_EQUAL( false, lgp.exists( "aaac.p" ) );
-    BOOST_CHECK_EQUAL( false, lgp.exists( "mmmm.p" ) );
-    factory.destroyInstance( archive );
+    BOOST_CHECK_EQUAL( false, lgp.exists( filename_1 ) );
+    BOOST_CHECK_EQUAL( false, lgp.exists( filename_2 ) );
+    logMgr.destroyLog( "Default Log" );
 }
 }

+ 2 - 0
dependencies/CMakeLists.txt

@@ -9,6 +9,8 @@ include_directories(
 add_subdirectory(tinyxml)
 add_subdirectory(tinyxml)
 add_subdirectory(luajit)
 add_subdirectory(luajit)
 
 
+
+
  aux_source_directory( luabind/luabind LuaBind_header_FILES )
  aux_source_directory( luabind/luabind LuaBind_header_FILES )
  aux_source_directory( luabind/luabind/details LuaBind_header_details_FILES )		
  aux_source_directory( luabind/luabind/details LuaBind_header_details_FILES )		
  aux_source_directory( luabind/src LuaBind_src_FILES )		
  aux_source_directory( luabind/src LuaBind_src_FILES )		

+ 1 - 1
dependencies/luajit

@@ -1 +1 @@
-Subproject commit ce623d1d7582517e65ea4e27f75e7ae983eef1fd
+Subproject commit 6c4a18258631ff01f963e9a1e64df57d7a453fd6

+ 21 - 1
readme.md

@@ -11,7 +11,7 @@ See here for builds http://qgears.itscovarr.com here you will find nightly build
 
 
 #### Ubuntu Linux 14.04
 #### Ubuntu Linux 14.04
 
 
-Ogre version must be 1.9, Boost version must be 55, gcc version must be 4.9, QtCreator is optional - install if you want to use this as the IDE (recommended).
+Ogre version must be 1.9, Qt version 4.8, Boost version must be 55, gcc version must be 4.9, QtCreator is optional - install if you want to use this as the IDE (recommended).
 
 
 **Install required packages:**
 **Install required packages:**
 ```
 ```
@@ -26,6 +26,7 @@ Ogre version must be 1.9, Boost version must be 55, gcc version must be 4.9, QtC
 * sudo apt-get install qtcreator
 * sudo apt-get install qtcreator
 * sudo apt-get install libogre-1.9-dev
 * sudo apt-get install libogre-1.9-dev
 * sudo apt-get install libois-dev
 * sudo apt-get install libois-dev
+* sudo apt-get install libqt4-dev
 ```
 ```
 
 
 **Sync down the QGears source code:**
 **Sync down the QGears source code:**
@@ -78,6 +79,7 @@ Anyway here is what we need for Ubuntu 12.04 (Travis-CI) **WARNING** updating th
 * sudo apt-get install libglu-dev
 * sudo apt-get install libglu-dev
 * sudo apt-get install libfreetype6-dev 
 * sudo apt-get install libfreetype6-dev 
 * sudo apt-get install checkinstall
 * sudo apt-get install checkinstall
+* sudo apt-get install libqt4-dev
 ```
 ```
 
 
 **Sync down source for Ogre 1.9:**
 **Sync down source for Ogre 1.9:**
@@ -185,6 +187,23 @@ http://zlib.net/zlib128-dll.zip
 ```
 ```
 Extract to the root of C drive.
 Extract to the root of C drive.
 
 
+
+**Download Qt 4.8 source code:**
+```
+https://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip
+```
+Again Extract to the root of C drive.
+
+**Build Qt:**
+
+Open a Visual Studio 2013 command prompt and enter:
+
+```
+configure -platform win32-msvc2013 -no-webkit -debug-and-release -no-phonon -no-qt3support -mp -no-scripttools -nomake demos -nomake examples -no-openssl 
+```
+
+Key in "o" to use the open source license and then "y" to agree. Once this is done enter "nmake" to finish compling Qt.
+
 Now sync down the QGears source code, first create a directory some where you want to sync the code to using Windows explorer. Then right in the newly created directory and select "GIT Bash here".
 Now sync down the QGears source code, first create a directory some where you want to sync the code to using Windows explorer. Then right in the newly created directory and select "GIT Bash here".
 
 
 In the git bash enter:
 In the git bash enter:
@@ -199,6 +218,7 @@ Now cd to where you synced the qgears source code to. For me this was "cd C:\Use
 ```
 ```
 mkdir build
 mkdir build
 cd build
 cd build
+set QTDIR=C:/qt-everywhere-opensource-src-4.8.6
 set OGRE_HOME=C:/OgreSDK/OgreSDK_vc12_v1-9-0
 set OGRE_HOME=C:/OgreSDK/OgreSDK_vc12_v1-9-0
 cmake .. -DZLIB_ROOT=C:/zlib128-dll -DBOOST_ROOT=C:/boost_1_55_0
 cmake .. -DZLIB_ROOT=C:/zlib128-dll -DBOOST_ROOT=C:/boost_1_55_0
 ```
 ```

+ 2 - 0
utilities/CMakeLists.txt

@@ -45,6 +45,7 @@ target_link_libraries(Utility
     ${OIS_LIBRARIES}
     ${OIS_LIBRARIES}
     ${ZLIB_LIBRARIES}
     ${ZLIB_LIBRARIES}
 )
 )
+SET_PROPERTY(TARGET Utility PROPERTY FOLDER "utilities")
 
 
 add_subdirectory(ffix_model_exporter)
 add_subdirectory(ffix_model_exporter)
 add_subdirectory(ffix_script_dumper)
 add_subdirectory(ffix_script_dumper)
@@ -58,6 +59,7 @@ add_subdirectory(ffvii_font_exporter)
 add_subdirectory(ffvii_sound_dumper)
 add_subdirectory(ffvii_sound_dumper)
 add_subdirectory(ffvii_sound_dumper_psf)
 add_subdirectory(ffvii_sound_dumper_psf)
 add_subdirectory(flevel)
 add_subdirectory(flevel)
+add_subdirectory(installer)
 add_subdirectory(lzs)
 add_subdirectory(lzs)
 add_subdirectory(xeno_cd_extract)
 add_subdirectory(xeno_cd_extract)
 add_subdirectory(xeno_model_exporter)
 add_subdirectory(xeno_model_exporter)

+ 1 - 0
utilities/ffix_model_exporter/CMakeLists.txt

@@ -24,6 +24,7 @@ add_executable(ff9_model_exporter
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff9_model_exporter PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(ff9_model_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(ff9_model_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/ffix_script_dumper/CMakeLists.txt

@@ -22,6 +22,7 @@ add_executable(ff9_script_dumper
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff9_script_dumper PROPERTY FOLDER "utilities")
 
 
 if(WIN32)
 if(WIN32)
   set_target_properties(ff9_script_dumper PROPERTIES WIN32_EXECUTABLE ON)
   set_target_properties(ff9_script_dumper PROPERTIES WIN32_EXECUTABLE ON)

+ 1 - 0
utilities/ffix_sound_dumper/CMakeLists.txt

@@ -28,6 +28,7 @@ add_executable(ff9_sound_dumper
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff9_sound_dumper PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(ff9_sound_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(ff9_sound_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/ffvii_battle_model_exporter/CMakeLists.txt

@@ -31,6 +31,7 @@ add_executable(ff7_battle_model_exporter
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff7_battle_model_exporter PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(ff7_battle_model_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(ff7_battle_model_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/ffvii_battle_scene_dumper/CMakeLists.txt

@@ -24,6 +24,7 @@ add_executable(ff7_battle_scene_dumper
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff7_battle_scene_dumper PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(ff7_battle_scene_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(ff7_battle_scene_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/ffvii_field_dat_dumper/CMakeLists.txt

@@ -21,6 +21,7 @@ add_executable(ff7_field_dat_dumper
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff7_field_dat_dumper PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(ff7_field_dat_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(ff7_field_dat_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/ffvii_field_model_exporter/CMakeLists.txt

@@ -35,6 +35,7 @@ add_executable(ff7_field_model_exporter
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff7_field_model_exporter PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(ff7_field_model_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(ff7_field_model_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/ffvii_field_model_exporter_pc/CMakeLists.txt

@@ -19,6 +19,7 @@ add_executable(ff7_field_model_exporter_pc
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff7_field_model_exporter_pc PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(ff7_field_model_exporter_pc "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(ff7_field_model_exporter_pc "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/ffvii_font_exporter/CMakeLists.txt

@@ -20,6 +20,7 @@ add_executable(ff7_font_exporter
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff7_font_exporter PROPERTY FOLDER "utilities")
 
 
 if(WIN32)
 if(WIN32)
   set_target_properties(ff7_font_exporter PROPERTIES WIN32_EXECUTABLE ON)
   set_target_properties(ff7_font_exporter PROPERTIES WIN32_EXECUTABLE ON)

+ 1 - 0
utilities/ffvii_sound_dumper/CMakeLists.txt

@@ -26,6 +26,7 @@ add_executable(ff7_sound_dumper
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff7_sound_dumper PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(ff7_sound_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(ff7_sound_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/ffvii_sound_dumper_psf/CMakeLists.txt

@@ -60,6 +60,7 @@ add_executable(ff7_sound_dumper_psf
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET ff7_sound_dumper_psf PROPERTY FOLDER "utilities")
 
 
 if(WIN32)
 if(WIN32)
   set_target_properties(ff7_sound_dumper_psf PROPERTIES WIN32_EXECUTABLE ON)
   set_target_properties(ff7_sound_dumper_psf PROPERTIES WIN32_EXECUTABLE ON)

+ 1 - 0
utilities/flevel/CMakeLists.txt

@@ -18,6 +18,7 @@ add_executable(flevel
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET flevel PROPERTY FOLDER "utilities")
 
 
 if(WIN32)
 if(WIN32)
   set_target_properties(flevel PROPERTIES WIN32_EXECUTABLE ON)
   set_target_properties(flevel PROPERTIES WIN32_EXECUTABLE ON)

+ 58 - 0
utilities/installer/CMakeLists.txt

@@ -0,0 +1,58 @@
+INCLUDE(${QT_USE_FILE})
+ADD_DEFINITIONS(${QT_DEFINITIONS})
+
+# This is where the ui generated header files end up
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+
+include_directories(
+    ${CMAKE_CURRENT_SOURCE_DIR}/include
+)
+
+# define header and source files
+set(HEADER_FILES
+    src/mainwindow.h
+)
+set(SOURCE_FILES
+    src/Main.cpp
+    src/mainwindow.cpp
+)
+
+set(INSTALLER_FORMS
+   src/mainwindow.ui
+)
+
+QT4_WRAP_UI(INSTALLER_FORM_HEADERS ${INSTALLER_FORMS})
+QT4_WRAP_CPP(INSTALLER_HEADERS_MOC ${HEADER_FILES})
+
+add_definitions(
+    -DQGEARS_ADD_MANAGERS
+)
+
+add_executable(installer
+  ${HEADER_FILES}
+  ${SOURCE_FILES}
+  ${INSTALLER_FORM_HEADERS}
+  ${INSTALLER_HEADERS_MOC}
+)
+SET_PROPERTY(TARGET installer PROPERTY FOLDER "utilities")
+
+if (APPLE)
+target_link_libraries(installer "-framework CoreFoundation -framework Cocoa -framework IOKit")
+endif()
+
+if(WIN32)
+  set_target_properties(installer PROPERTIES WIN32_EXECUTABLE ON)
+  if (MSVC)
+    set_target_properties(installer PROPERTIES LINK_FLAGS "/SUBSYSTEM:CONSOLE")
+  endif()
+endif()
+
+set(LIBRARIES
+    Utility
+)
+
+target_link_libraries(installer    ${LIBRARIES} ${QT_LIBRARIES})
+
+install(TARGETS installer
+    DESTINATION .
+)

+ 11 - 0
utilities/installer/src/Main.cpp

@@ -0,0 +1,11 @@
+#include "mainwindow.h"
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+    QApplication a(argc, argv);
+    MainWindow w;
+    w.show();
+
+    return a.exec();
+}

+ 48 - 0
utilities/installer/src/mainwindow.cpp

@@ -0,0 +1,48 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+    QMainWindow(parent),
+    ui(new Ui::MainWindow)
+{
+    ui->setupUi(this);
+    /*
+     set any options here
+     */
+
+}
+
+MainWindow::~MainWindow()
+{
+    delete ui;
+}
+
+void MainWindow::on_btnInput_clicked()
+{
+    QString temp = QFileDialog::getExistingDirectory(this,tr("Location of Game Data),"),QDir::homePath());
+    ui->lineInput->setText(temp);
+}
+
+
+void MainWindow::on_btnOutput_clicked()
+{
+    QString temp = QFileDialog::getExistingDirectory(this,tr("Location of QGears Data),"),QDir::homePath());
+    ui->lineOutput->setText(temp);
+}
+
+
+void MainWindow::on_btnGO_clicked()
+{
+    if (ui->lineInput->text().isEmpty())
+    {
+        QMessageBox::critical(this,tr("Input Error"),tr("No Input Provided"));
+    }
+    else if(ui->lineOutput->text().isEmpty())
+    {
+        QMessageBox::critical(this,tr("Output Error"),tr("No Output Path Provided"));
+    }
+    else
+    {
+        QMessageBox::information(this,tr("Converting Data"),tr("Attempt to convert with \n Input: %1 \n Output: %2").arg(ui->lineInput->text(),ui->lineOutput->text()));
+    }
+}

+ 30 - 0
utilities/installer/src/mainwindow.h

@@ -0,0 +1,30 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QFileDialog>
+#include <QMessageBox>
+namespace Ui {
+class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    explicit MainWindow(QWidget *parent = 0);
+    ~MainWindow();
+
+private slots:
+    void on_btnInput_clicked();
+
+    void on_btnOutput_clicked();
+
+    void on_btnGO_clicked();
+
+private:
+    Ui::MainWindow *ui;
+};
+
+#endif // MAINWINDOW_H

+ 125 - 0
utilities/installer/src/mainwindow.ui

@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>486</width>
+    <height>145</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralWidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Data Source:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="lineInput"/>
+      </item>
+      <item>
+       <widget class="QPushButton" name="btnInput">
+        <property name="maximumSize">
+         <size>
+          <width>24</width>
+          <height>24</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_2">
+      <item>
+       <widget class="QLabel" name="label_2">
+        <property name="text">
+         <string>Output Path:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="lineOutput"/>
+      </item>
+      <item>
+       <widget class="QPushButton" name="btnOutput">
+        <property name="maximumSize">
+         <size>
+          <width>24</width>
+          <height>24</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <widget class="QPushButton" name="btnGO">
+      <property name="text">
+       <string>PushButton</string>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menuBar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>486</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
+     <string>File</string>
+    </property>
+    <addaction name="actionExit"/>
+   </widget>
+   <addaction name="menuFile"/>
+  </widget>
+  <widget class="QStatusBar" name="statusBar"/>
+  <action name="actionExit">
+   <property name="text">
+    <string>Exit</string>
+   </property>
+  </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>actionExit</sender>
+   <signal>triggered()</signal>
+   <receiver>MainWindow</receiver>
+   <slot>close()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>242</x>
+     <y>199</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>242</x>
+     <y>199</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>

+ 1 - 0
utilities/lzs/CMakeLists.txt

@@ -18,6 +18,7 @@ add_executable(lzs
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET lzs PROPERTY FOLDER "utilities")
 
 
 if(WIN32)
 if(WIN32)
   set_target_properties(lzs PROPERTIES WIN32_EXECUTABLE ON)
   set_target_properties(lzs PROPERTIES WIN32_EXECUTABLE ON)

+ 1 - 0
utilities/xeno_cd_extract/CMakeLists.txt

@@ -18,6 +18,7 @@ add_executable(xeno_cd_extract
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET xeno_cd_extract PROPERTY FOLDER "utilities")
 
 
 if(WIN32)
 if(WIN32)
   set_target_properties(xeno_cd_extract PROPERTIES WIN32_EXECUTABLE ON)
   set_target_properties(xeno_cd_extract PROPERTIES WIN32_EXECUTABLE ON)

+ 1 - 0
utilities/xeno_model_exporter/CMakeLists.txt

@@ -31,6 +31,7 @@ add_executable(xeno_model_exporter
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET xeno_model_exporter PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(xeno_model_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(xeno_model_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/xeno_script_dumper/CMakeLists.txt

@@ -53,6 +53,7 @@ add_executable(xeno_script_dumper
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET xeno_script_dumper PROPERTY FOLDER "utilities")
 
 
 if(WIN32)
 if(WIN32)
   set_target_properties(xeno_script_dumper PROPERTIES WIN32_EXECUTABLE ON)
   set_target_properties(xeno_script_dumper PROPERTIES WIN32_EXECUTABLE ON)

+ 1 - 0
utilities/xeno_sound_dumper/CMakeLists.txt

@@ -26,6 +26,7 @@ add_executable(xeno_sound_dumper
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET xeno_sound_dumper PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(xeno_sound_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(xeno_sound_dumper "-framework CoreFoundation -framework Cocoa -framework IOKit")

+ 1 - 0
utilities/xeno_walkmesh_exporter/CMakeLists.txt

@@ -83,6 +83,7 @@ add_executable(xeno_walkmesh_exporter
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
 )
 )
+SET_PROPERTY(TARGET xeno_walkmesh_exporter PROPERTY FOLDER "utilities")
 
 
 if (APPLE)
 if (APPLE)
 target_link_libraries(xeno_walkmesh_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")
 target_link_libraries(xeno_walkmesh_exporter "-framework CoreFoundation -framework Cocoa -framework IOKit")