diff --git a/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp b/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp index f286e95a..d3730d60 100644 --- a/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp +++ b/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp @@ -6,7 +6,7 @@ class CmnDefCutSceneReplay : public EventScript { public: CmnDefCutSceneReplay() : EventScript( 721028 ) - { } + {} void Scene00000( Entity::Player& player ) { diff --git a/src/servers/Scripts/common/CmnDefInnBed.cpp b/src/servers/Scripts/common/CmnDefInnBed.cpp index e8d7964e..b97f129b 100644 --- a/src/servers/Scripts/common/CmnDefInnBed.cpp +++ b/src/servers/Scripts/common/CmnDefInnBed.cpp @@ -6,7 +6,7 @@ class CmnDefInnBed : public EventScript { public: CmnDefInnBed() : EventScript( 720916 ) - { } + {} // menu void Scene00000( Entity::Player& player ) diff --git a/src/servers/Scripts/common/CmnDefLinkShell.cpp b/src/servers/Scripts/common/CmnDefLinkShell.cpp index 10bc9dc7..c5758211 100644 --- a/src/servers/Scripts/common/CmnDefLinkShell.cpp +++ b/src/servers/Scripts/common/CmnDefLinkShell.cpp @@ -10,7 +10,7 @@ class CmnDefLinkShell : public EventScript { public: CmnDefLinkShell() : EventScript( 0xB0006 ) - { } + {} void Scene00001( Entity::Player& player ) { diff --git a/src/servers/Scripts/common/HouFurOrchestrion.cpp b/src/servers/Scripts/common/HouFurOrchestrion.cpp index 2df8a762..2269789e 100644 --- a/src/servers/Scripts/common/HouFurOrchestrion.cpp +++ b/src/servers/Scripts/common/HouFurOrchestrion.cpp @@ -6,7 +6,7 @@ class HouFurOrchestrion : public EventScript { public: HouFurOrchestrion() : EventScript( 721226 ) - { } + {} void Scene00000( Entity::Player& player ) { diff --git a/src/servers/Scripts/quest/ManFst001.cpp b/src/servers/Scripts/quest/ManFst001.cpp index 22e53190..993c1b98 100644 --- a/src/servers/Scripts/quest/ManFst001.cpp +++ b/src/servers/Scripts/quest/ManFst001.cpp @@ -49,12 +49,7 @@ private: void Scene00001( Entity::Player& player ) { - auto callback = [&]( Entity::Player& player, const Event::SceneResult& result ) - { - Scene00002( player ); - }; - - player.playScene( getId(), 1, DISABLE_SKIP | HIDE_HOTBAR | SET_BASE, 0, 0, callback ); + player.playSceneChain( getId(), 1, DISABLE_SKIP | HIDE_HOTBAR | SET_BASE, BIND_SCENE( &ManFst001::Scene00002 ) ); } void Scene00002( Entity::Player& player ) @@ -71,12 +66,7 @@ private: void Scene00004( Entity::Player& player ) { - auto callback = [&]( Entity::Player& player, const Event::SceneResult& result ) - { - Scene00005( player ); - }; - - player.playScene( getId(), 4, FADE_OUT | HIDE_HOTBAR | CONDITION_CUTSCENE | HIDE_UI, 0, 0, callback ); + player.playSceneChain( getId(), 4, FADE_OUT | HIDE_HOTBAR | CONDITION_CUTSCENE | HIDE_UI, BIND_SCENE( &ManFst001::Scene00005 ) ); } void Scene00005( Entity::Player& player ) @@ -85,7 +75,7 @@ private: { if( result.param2 == 1 ) { - if( player.giveQuestRewards( getId(), 0 )) + if( player.giveQuestRewards( getId(), 0 ) ) player.finishQuest( getId() ); } }; diff --git a/src/servers/Scripts/quest/ManFst004.cpp b/src/servers/Scripts/quest/ManFst004.cpp index c6832811..da1fb49b 100644 --- a/src/servers/Scripts/quest/ManFst004.cpp +++ b/src/servers/Scripts/quest/ManFst004.cpp @@ -79,11 +79,13 @@ public: // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId )); + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + if( actor == ManFst004::Actor0 ) { Scene00000( player ); - } else if( actor == ManFst004::Actor1 ) + } + else if( actor == ManFst004::Actor1 ) { // starting the Aetheryte eventaction // player.eventStart( actorId, 0x050002, 7, 0, 0); @@ -99,13 +101,16 @@ public: [&]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { }, eventId ); - } else if( actor == ManFst004::Actor2 ) + } + else if( actor == ManFst004::Actor2 ) { Scene00002( player ); - } else if( actor == ManFst004::Actor3 ) + } + else if( actor == ManFst004::Actor3 ) { Scene00003( player ); - } else if( actor == ManFst004::Actor4 ) + } + else if( actor == ManFst004::Actor4 ) { Scene00005( player ); } @@ -199,7 +204,7 @@ private: { if( result.param2 == 1 ) // finish quest { - if( player.giveQuestRewards( m_id, 0 )) + if( player.giveQuestRewards( m_id, 0 ) ) { player.finishQuest( m_id ); } diff --git a/src/servers/Scripts/quest/ManSea001.cpp b/src/servers/Scripts/quest/ManSea001.cpp index 3c4600a3..ecc202af 100644 --- a/src/servers/Scripts/quest/ManSea001.cpp +++ b/src/servers/Scripts/quest/ManSea001.cpp @@ -41,22 +41,12 @@ private: void Scene00001( Entity::Player& player ) { - auto callback = [this]( Entity::Player& player, const Event::SceneResult& result ) - { - Scene00002( player ); - }; - - player.playScene( getId(), 1, DISABLE_SKIP | HIDE_HOTBAR | SET_BASE, 0, 0, callback ); + player.playSceneChain( getId(), 1, DISABLE_SKIP | HIDE_HOTBAR | SET_BASE, BIND_SCENE( &ManSea001::Scene00002 ) ); } void Scene00002( Entity::Player& player ) { - auto callback = [this]( Entity::Player& player, const Event::SceneResult& result ) - { - Scene00003( player ); - }; - - player.playScene( getId(), 2, NONE, 0, 0, callback ); + player.playSceneChain( getId(), 2, NONE, BIND_SCENE( &ManSea001::Scene00003 ) ); } void Scene00003( Entity::Player& player ) @@ -76,12 +66,7 @@ private: void Scene00005( Entity::Player& player ) { - auto callback = [this]( Entity::Player& player, const Event::SceneResult& result ) - { - Scene00006( player ); - }; - - player.playScene( getId(), 5, HIDE_HOTBAR, 0, 0, callback ); + player.playSceneChain( getId(), 5, HIDE_HOTBAR, BIND_SCENE( &ManSea001::Scene00006 ) ); } void Scene00006( Entity::Player& player ) @@ -118,12 +103,7 @@ private: void Scene00011( Entity::Player& player ) { - auto callback = [this]( Entity::Player& player, const Event::SceneResult& result ) - { - Scene00012( player ); - }; - - player.playScene( getId(), 11, 0x2c02, 0, 0, callback ); + player.playSceneChain( getId(), 11, 0x2c02, 0, 0, BIND_SCENE( &ManSea001::Scene00012 ) ); } void Scene00012( Entity::Player& player ) diff --git a/src/servers/Scripts/quest/ManWil001.cpp b/src/servers/Scripts/quest/ManWil001.cpp index 8dd296fb..667f429a 100644 --- a/src/servers/Scripts/quest/ManWil001.cpp +++ b/src/servers/Scripts/quest/ManWil001.cpp @@ -67,12 +67,7 @@ private: void Scene00004( Entity::Player& player ) { - auto callback = [this]( Entity::Player& player, const Event::SceneResult& result ) - { - Scene00005( player ); - }; - - player.playScene( getId(), 4, 0x2c02, 0, 0, callback ); + player.playSceneChain( getId(), 4, 0x2c02, BIND_SCENE( &ManWil001::Scene00005 ) ); } void Scene00005( Entity::Player& player ) diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index b8115329..80e3dbda 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -170,6 +170,7 @@ void Core::Entity::Player::playScene( uint32_t eventId, uint32_t scene, pEvent->setPlayedScene( true ); pEvent->setEventReturnCallback( eventCallback ); + pEvent->setSceneChainCallback( nullptr ); EventPlayPacket eventPlay( getId(), pEvent->getActorId(), pEvent->getId(), scene, flags, eventParam2, eventParam3, eventParam4 ); @@ -186,6 +187,7 @@ void Core::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uin pEvent->setPlayedScene( true ); pEvent->setSceneChainCallback( sceneChainCallback ); + pEvent->setEventReturnCallback( nullptr ); EventPlayPacket eventPlay( getId(), pEvent->getActorId(), pEvent->getId(), scene, flags, eventParam2, eventParam3, eventParam4 );