1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-25 02:57:45 +00:00

set m_rot early as well

This commit is contained in:
collett 2021-08-08 05:11:52 +09:00
parent b1d0eb1581
commit b951d3475c
4 changed files with 9 additions and 10 deletions

View file

@ -78,7 +78,7 @@ public:
return;
}
player.setInstance( internalZone, pos );
player.setInstance( internalZone, pos, player.getRot() );
} );
}
};

View file

@ -24,7 +24,7 @@ public:
if( instance )
{
Common::FFXIVARR_POSITION3 pos { 30, 1, 0 };
player.setInstance( instance, pos );
player.setInstance( instance, pos, player.getRot() );
}
}
};

View file

@ -495,7 +495,7 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance )
return teriMgr.movePlayer( instance, getAsPlayer() );
}
bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIVARR_POSITION3 pos )
bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIVARR_POSITION3 pos, float rot )
{
m_onEnterEventDone = false;
if( !instance )
@ -514,12 +514,16 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIV
}
m_pos = pos;
m_rot = rot;
if( teriMgr.movePlayer( instance, getAsPlayer() ) )
{
return true;
}
else
{
m_pos = m_prevPos;
m_rot= m_prevRot;
}
return false;
}
@ -2806,12 +2810,7 @@ bool Sapphire::Entity::Player::enterPredefinedPrivateInstance( uint32_t zoneId )
auto instance = getOrCreatePrivateInstance( zoneId );
if( instance )
{
auto result = setInstance( instance, info.pos );
if( result )
setRot( info.rot );
return result;
}
return setInstance( instance, info.pos, info.rot );
}
sendUrgent( "instance id: {} is not defined.", zoneId );
auto instance = getOrCreatePrivateInstance( zoneId );

View file

@ -490,7 +490,7 @@ namespace Sapphire::Entity
bool setInstance( TerritoryPtr instance );
/*! sets the players instance & initiates zoning process */
bool setInstance( Sapphire::TerritoryPtr instance, Sapphire::Common::FFXIVARR_POSITION3 pos );
bool setInstance( Sapphire::TerritoryPtr instance, Sapphire::Common::FFXIVARR_POSITION3 pos, float rot );
/*! returns the player to their position before zoning into an instance */
bool exitInstance();