diff --git a/README.md b/README.md index 2b7b3878..4c314be9 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # Sapphire - FINAL FANTASY XIV Server Emulator +![FFXIV Sapphire](https://i.imgur.com/I4bj1tR.png) + [![Discord Server](https://img.shields.io/badge/discord-Sapphire-7289DA.svg)](https://discord.gg/xxcdCER) [![Linux Build Status](https://travis-ci.org/SapphireMordred/Sapphire.svg?branch=master)](https://travis-ci.org/SapphireMordred/Sapphire) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/lil7lxa3ty165emm?svg=true)](https://ci.appveyor.com/project/SapphireMordred/Sapphire) -![FFXIV Sapphire](http://i.imgur.com/I4bj1tR.png) + Sapphire is a FINAL FANTASY XIV 4.0+ Server Emulator currently in development. @@ -13,8 +15,7 @@ Sapphire requires the following software: | *Name* | *Windows* | *Linux* | | ------ | --------- | ------- | -| CMake 3.0.2+ and C++14 capable compiler | [Visual Studio 2017](https://www.visualstudio.com/) | `gcc 4.9` and `g++ 4.9` or newer | -| Boost 1.63.0 | [Win32 precompiled binaries](https://sourceforge.net/projects/boost/files/boost-binaries/1.63.0/boost_1_63_0-msvc-14.0-32.exe/download) | Boost libraries from your distribution's package manager | +| CMake 3.0.2+ and C++17 capable compiler | [Visual Studio 2017](https://www.visualstudio.com/) | `gcc 7` and `g++ 7` or newer | | MySQL Server 5.7 | [Official Site](https://dev.mysql.com/downloads/mysql/) | MySQL server from your distribution's package manager | Please check the [wiki](https://github.com/SapphireMordred/Sapphire/wiki) for detailed installation/build instructions for your OS. diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index f3d350fc..8f850469 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -9,27 +9,19 @@ #include #include #include -#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include + +#include #include #include #include -#include + Core::Logger g_log; -Core::Data::ExdData g_exdData; +Core::Data::ExdDataGenerated g_exdData; bool skipUnmapped = true; std::map< char, std::string > numberToStringMap @@ -69,7 +61,7 @@ std::string generateIdListDecl( const std::string& exd ) std::string generateDirectGetters( const std::string& exd ) { - return " using " + exd + "Ptr = boost::shared_ptr< " + exd + " >;\n"; + return " using " + exd + "Ptr = std::shared_ptr< " + exd + " >;\n"; } std::string generateIdListGetter( const std::string& exd ) @@ -119,9 +111,20 @@ std::string generateStruct( const std::string& exd ) int count = 0; - using boost::property_tree::ptree; - ptree m_propTree; - boost::property_tree::read_json( "ex.json", m_propTree ); + + auto json = nlohmann::json(); + + std::istream exJson( "ex.json" ); + exJson >> json; + + for( auto& sheet : json["sheets"] ) + { + std::string name = json["sheet"]; + if( name != exd ) + continue; + + + } BOOST_FOREACH( boost::property_tree::ptree::value_type& sheet, m_propTree.get_child( "sheets" ) ) { @@ -208,7 +211,7 @@ std::string generateStruct( const std::string& exd ) fieldName = indexToNameMap[ count ]; } fieldName[ 0 ] = std::tolower( fieldName[ 0 ] ); - fieldName.erase( boost::remove_if( fieldName, boost::is_any_of( ",-':![](){}<>% \x02\x1f\x01\x03" ) ), + fieldName.erase( std::remove_if( fieldName, std::is_any_of( ",-':![](){}<>% \x02\x1f\x01\x03" ) ), fieldName.end() ); for( auto entry : numberToStringMap ) @@ -229,7 +232,7 @@ std::string generateStruct( const std::string& exd ) indexToNameMap[ count ] = fieldName; indexToTypeMap[ count ] = type; if( indexToTarget.find( count ) != indexToTarget.end() ) - result += " boost::shared_ptr< " + indexToTarget[ count ] + "> " + fieldName + ";\n"; + result += " std::shared_ptr< " + indexToTarget[ count ] + "> " + fieldName + ";\n"; else { if( indexIsArrayMap.find( count ) != indexIsArrayMap.end() ) @@ -272,7 +275,7 @@ std::string generateConstructorsDecl( const std::string& exd ) continue; } if( indexToTarget.find( count ) != indexToTarget.end() ) - result += indent + indexToNameMap[ count ] + " = boost::make_shared< " + indexToTarget[ count ] + + result += indent + indexToNameMap[ count ] + " = std::make_shared< " + indexToTarget[ count ] + ">( exdData->getField< " + indexToTypeMap[ count ] + " >( row, " + std::to_string( count ) + " ), exdData );\n"; else @@ -382,11 +385,11 @@ int main( int argc, char** argv ) getterDecl += "\n template< class T >\n" - " boost::shared_ptr< T > get( uint32_t id )\n" + " std::shared_ptr< T > get( uint32_t id )\n" " {\n" " try\n" " {\n" - " auto info = boost::make_shared< T >( id, this );\n" + " auto info = std::make_shared< T >( id, this );\n" " return info;\n" " }\n" " catch( ... )\n"