mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-24 05:37:45 +00:00
fix infinite callback loop
This commit is contained in:
parent
ee715a62af
commit
c24c215208
9 changed files with 25 additions and 53 deletions
|
@ -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 )
|
||||
|
|
|
@ -80,10 +80,12 @@ public:
|
|||
void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
|
||||
{
|
||||
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 );
|
||||
}
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue