diff --git a/CMakeLists.txt b/CMakeLists.txt index e71ea69d..c2186e69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/common/Version.cpp.in" #add_subdirectory( "src/libraries/sapphire/datReader" ) #add_subdirectory( "src/libraries/sapphire/mysqlConnector" ) add_subdirectory( "src/common" ) -#add_subdirectory( "src/servers" ) +add_subdirectory( "src/sapphire_zone" ) #add_subdirectory( "src/tools/exd_common_gen" ) #add_subdirectory( "src/tools/exd_struct_gen" ) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index a9eabe38..7374e875 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -25,8 +25,10 @@ ExternalProject_Add( mysqlConnector_external INSTALL_DIR ${MYSQLCONNECTOR_ROOT}/bin BUILD_COMMAND ${BUILD_EXEC} ) +message( ${MYSQLCONNECTOR_ROOT}/src/MysqlConnector/src/ ) + add_library( mysqlConnector STATIC IMPORTED ) -set_target_properties( mysqlConnector PROPERTIES IMPORTED_LOCATION ${MYSQLCONNECTOR_LIB_DIR}/mysqlConnector.a ) +set_target_properties( mysqlConnector PROPERTIES IMPORTED_LOCATION ${MYSQLCONNECTOR_ROOT}/src/MysqlConnector/src/libmysqlConnector.a ) add_dependencies( mysqlConnector mysqlConnector_external ) ############################################################################# @@ -46,7 +48,7 @@ ExternalProject_Add( xivdat_external BUILD_COMMAND ${BUILD_EXEC} ) add_library( xivdat STATIC IMPORTED ) -set_target_properties( xivdat PROPERTIES IMPORTED_LOCATION ${XIVDAT_LIB_DIR}/xivdat.a ) +set_target_properties( xivdat PROPERTIES IMPORTED_LOCATION ${XIVDAT_ROOT}/src/XivDat/src/libxivdat.a ) add_dependencies( xivdat xivdat_external ) ############################################################################# diff --git a/src/sapphire_zone/CMakeLists.txt b/src/sapphire_zone/CMakeLists.txt new file mode 100644 index 00000000..597589ae --- /dev/null +++ b/src/sapphire_zone/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.0.2) +cmake_policy(SET CMP0015 NEW) +cmake_policy(SET CMP0014 OLD) + +project( sapphire_zone ) + +file(GLOB SERVER_PUBLIC_INCLUDE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + /*.h + ) + +file(GLOB SERVER_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + *.c* + ) + +add_executable( sapphire_zone ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) + +target_link_libraries( sapphire_zone common ) + +if (UNIX) + target_link_libraries( sapphire_zone pthread ) + target_link_libraries( sapphire_zone dl ) +endif() + +target_include_directories( sapphire_zone PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" ) diff --git a/src/sapphire_zone/ZoneServer.cpp b/src/sapphire_zone/ZoneServer.cpp new file mode 100644 index 00000000..4beb9318 --- /dev/null +++ b/src/sapphire_zone/ZoneServer.cpp @@ -0,0 +1,63 @@ +#include "ZoneServer.h" + +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +Core::ServerZone::ServerZone( const std::string& configPath ) : + m_configPath( configPath ), + m_bRunning( true ), + m_lastDBPingTime( 0 ) +{ +} + +Core::ServerZone::~ServerZone() +{ +} + +bool Core::ServerZone::loadSettings( int32_t argc, char* argv[] ) +{ + return true; +} + +void Core::ServerZone::run( int32_t argc, char* argv[] ) +{ + + +} + +void Core::ServerZone::printBanner() const +{ +} + +void Core::ServerZone::mainLoop() +{ + while( isRunning() ) + { + this_thread::sleep_for( chrono::milliseconds( 50 ) ); + auto currTime = Util::getTimeSeconds(); + } +} + +bool Core::ZoneServer::isRunning() const +{ + return m_bRunning; +} diff --git a/src/sapphire_zone/ZoneServer.h b/src/sapphire_zone/ZoneServer.h new file mode 100644 index 00000000..97541eb9 --- /dev/null +++ b/src/sapphire_zone/ZoneServer.h @@ -0,0 +1,46 @@ +#ifndef __GAMESERVER_H +#define __GAMESERVER_H + +#include + +#include +#include +#include + +namespace Core { + + class ServerZone + { + public: + ServerZone( const std::string& configPath ); + ~ServerZone(); + + void run( int32_t argc, char* argv[] ); + + bool loadSettings( int32_t argc, char* argv[] ); + + void mainLoop(); + + bool isRunning() const; + + void printBanner() const; + + private: + + uint16_t m_port; + std::string m_ip; + int64_t m_lastDBPingTime; + + bool m_bRunning; + + std::string m_configPath; + + std::map< uint32_t, uint32_t > m_zones; + + }; + +} + +#endif + + diff --git a/src/sapphire_zone/main.cpp b/src/sapphire_zone/main.cpp new file mode 100644 index 00000000..8d029b31 --- /dev/null +++ b/src/sapphire_zone/main.cpp @@ -0,0 +1,9 @@ +#include + +#include "ZoneServer.h" + +int main() +{ + + return 0; +}