mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 14:57:44 +00:00
forceZoneing overload with more args
This commit is contained in:
parent
2b78ab0808
commit
a2a1afc92a
2 changed files with 27 additions and 8 deletions
|
@ -467,6 +467,16 @@ void Sapphire::Entity::Player::forceZoneing( uint32_t zoneId )
|
||||||
//performZoning( zoneId, Common::ZoneingType::None, getPos() );
|
//performZoning( zoneId, Common::ZoneingType::None, getPos() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Sapphire::Entity::Player::forceZoneing( uint32_t zoneId, FFXIVARR_POSITION3 pos, float rot, bool showZoneName )
|
||||||
|
{
|
||||||
|
if( zoneId == 0 )
|
||||||
|
{
|
||||||
|
zoneId = getCurrentTerritory()->getTerritoryTypeId();
|
||||||
|
}
|
||||||
|
m_queuedZoneing = std::make_shared< QueuedZoning >( zoneId, pos, Util::getTimeMs(), rot );
|
||||||
|
prepareZoning( showZoneName ? zoneId : 0, true, 1, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
void Sapphire::Entity::Player::returnToHomepoint()
|
void Sapphire::Entity::Player::returnToHomepoint()
|
||||||
{
|
{
|
||||||
setZoningType( Common::ZoneingType::Return );
|
setZoningType( Common::ZoneingType::Return );
|
||||||
|
@ -514,10 +524,14 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance )
|
||||||
// zoning within the same zone won't cause the prev data to be overwritten
|
// zoning within the same zone won't cause the prev data to be overwritten
|
||||||
if( instance->getTerritoryTypeId() != m_territoryTypeId )
|
if( instance->getTerritoryTypeId() != m_territoryTypeId )
|
||||||
{
|
{
|
||||||
m_prevPos = m_pos;
|
// never returning to a BeforeTrialDung zone.
|
||||||
m_prevRot = m_rot;
|
if( currentZone->getTerritoryTypeInfo()->territoryIntendedUse != Sapphire::World::Manager::TerritoryMgr::TerritoryIntendedUse::BeforeTrialDung )
|
||||||
m_prevTerritoryTypeId = currentZone->getTerritoryTypeId();
|
{
|
||||||
m_prevTerritoryId = getTerritoryId();
|
m_prevPos = m_pos;
|
||||||
|
m_prevRot = m_rot;
|
||||||
|
m_prevTerritoryTypeId = currentZone->getTerritoryTypeId();
|
||||||
|
m_prevTerritoryId = getTerritoryId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return teriMgr.movePlayer( instance, getAsPlayer() );
|
return teriMgr.movePlayer( instance, getAsPlayer() );
|
||||||
|
@ -535,10 +549,14 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIV
|
||||||
// zoning within the same zone won't cause the prev data to be overwritten
|
// zoning within the same zone won't cause the prev data to be overwritten
|
||||||
if( instance->getTerritoryTypeId() != m_territoryTypeId )
|
if( instance->getTerritoryTypeId() != m_territoryTypeId )
|
||||||
{
|
{
|
||||||
m_prevPos = m_pos;
|
// never returning to a BeforeTrialDung zone.
|
||||||
m_prevRot = m_rot;
|
if( currentZone->getTerritoryTypeInfo()->territoryIntendedUse != Sapphire::World::Manager::TerritoryMgr::TerritoryIntendedUse::BeforeTrialDung )
|
||||||
m_prevTerritoryTypeId = currentZone->getTerritoryTypeId();
|
{
|
||||||
m_prevTerritoryId = getTerritoryId();
|
m_prevPos = m_pos;
|
||||||
|
m_prevRot = m_rot;
|
||||||
|
m_prevTerritoryTypeId = currentZone->getTerritoryTypeId();
|
||||||
|
m_prevTerritoryId = getTerritoryId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_pos = pos;
|
m_pos = pos;
|
||||||
|
|
|
@ -512,6 +512,7 @@ namespace Sapphire::Entity
|
||||||
uint32_t getTerritoryTypeId() const;
|
uint32_t getTerritoryTypeId() const;
|
||||||
|
|
||||||
void forceZoneing( uint32_t zoneId );
|
void forceZoneing( uint32_t zoneId );
|
||||||
|
void forceZoneing( uint32_t zoneId, Sapphire::Common::FFXIVARR_POSITION3 pos, float rot, bool showZoneName );
|
||||||
|
|
||||||
/*! return player to preset homepoint */
|
/*! return player to preset homepoint */
|
||||||
void returnToHomepoint();
|
void returnToHomepoint();
|
||||||
|
|
Loading…
Add table
Reference in a new issue