diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 72c31d5c..35e711cd 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -709,15 +709,13 @@ void Core::DebugCommandHandler::instance( char* data, Entity::Player &player, bo } else if( subCommand == "set" ) { - uint32_t instanceId; uint32_t index; uint32_t value; - sscanf( params.c_str(), "%d %d %d", &instanceId, &index, &value ); + sscanf( params.c_str(), "%d %d", &index, &value ); - auto pInstance = g_territoryMgr.getInstanceZonePtr( instanceId ); - if( !pInstance ) + auto instance = boost::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); + if( !instance ) return; - auto instance = boost::dynamic_pointer_cast< InstanceContent >( pInstance ); instance->setVar( static_cast< uint8_t >( index ), static_cast< uint8_t >( value ) ); } @@ -738,6 +736,30 @@ void Core::DebugCommandHandler::instance( char* data, Entity::Player &player, bo obj->setState( state ); } + else if( subCommand == "seq" ) + { + uint8_t seq; + + sscanf( params.c_str(), "%hhu", &seq ); + + auto instance = boost::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); + if( !instance ) + return; + + instance->setSequence( seq ); + } + else if( subCommand == "branch" ) + { + uint8_t branch; + + sscanf( params.c_str(), "%hhu", &branch ); + + auto instance = boost::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); + if( !instance ) + return; + + instance->setBranch( branch ); + } else if( subCommand == "festival" ) { uint32_t festivalId; diff --git a/src/servers/sapphire_zone/Event/Director.cpp b/src/servers/sapphire_zone/Event/Director.cpp index a201a5ab..9dee7702 100644 --- a/src/servers/sapphire_zone/Event/Director.cpp +++ b/src/servers/sapphire_zone/Event/Director.cpp @@ -168,3 +168,13 @@ void Core::Event::Director::setDirectorUI8JH( uint8_t value ) { m_unionData.ui8lh.UI8JH = value; } + +void Core::Event::Director::setDirectorBranch( uint8_t value ) +{ + m_branch = value; +} + +void Core::Event::Director::setDirectorSequence( uint8_t value ) +{ + m_sequence = value; +} diff --git a/src/servers/sapphire_zone/Event/Director.h b/src/servers/sapphire_zone/Event/Director.h index f5840390..1693d47b 100644 --- a/src/servers/sapphire_zone/Event/Director.h +++ b/src/servers/sapphire_zone/Event/Director.h @@ -72,6 +72,9 @@ public: void setDirectorUI8JL( uint8_t value ); void setDirectorUI8JH( uint8_t value ); + void setDirectorSequence( uint8_t value ); + void setDirectorBranch( uint8_t value ); + private: /*! Id of the content of the director */ uint16_t m_contentId; diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.cpp b/src/servers/sapphire_zone/Zone/InstanceContent.cpp index 201ac523..92910575 100644 --- a/src/servers/sapphire_zone/Zone/InstanceContent.cpp +++ b/src/servers/sapphire_zone/Zone/InstanceContent.cpp @@ -227,6 +227,26 @@ void Core::InstanceContent::setVar( uint8_t index, uint8_t value ) } } +void Core::InstanceContent::setSequence( uint8_t value ) +{ + setDirectorSequence( value ); + + for( const auto &playerIt : m_playerMap ) + { + sendDirectorVars( *playerIt.second ); + } +} + +void Core::InstanceContent::setBranch( uint8_t value ) +{ + setDirectorBranch( value ); + + for( const auto &playerIt : m_playerMap ) + { + sendDirectorVars( *playerIt.second ); + } +} + void Core::InstanceContent::onRegisterEObj( Entity::EventObjectPtr object ) { if( object->getName() != "none" ) diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.h b/src/servers/sapphire_zone/Zone/InstanceContent.h index 9dcb5974..e2aeb8ad 100644 --- a/src/servers/sapphire_zone/Zone/InstanceContent.h +++ b/src/servers/sapphire_zone/Zone/InstanceContent.h @@ -41,6 +41,8 @@ public: void onRegisterEObj( Entity::EventObjectPtr object ) override; void setVar( uint8_t index, uint8_t value ); + void setSequence( uint8_t value ); + void setBranch( uint8_t value ); boost::shared_ptr< Core::Data::InstanceContent > getInstanceContentInfo() const;