本文整理汇总了C++中WorldLocation::SetTransportPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldLocation::SetTransportPosition方法的具体用法?C++ WorldLocation::SetTransportPosition怎么用?C++ WorldLocation::SetTransportPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldLocation
的用法示例。
在下文中一共展示了WorldLocation::SetTransportPosition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateGlobalPositionOf
// Update the global position of a passenger
void TransportBase::UpdateGlobalPositionOf(ObjectGuid const& passengerGuid, Position const& pos) const
{
WorldObject* passenger = GetOwner()->GetMap()->GetWorldObject(passengerGuid);
if (!passenger)
return;
//Position g = CalculateGlobalPositionOf(pos);
WorldLocation globalPos = GetOwner()->GetPosition();
globalPos.SetTransportPosition(pos);
if (globalPos == passenger->GetPosition())
return;
switch(passenger->GetTypeId())
{
case TYPEID_GAMEOBJECT:
case TYPEID_DYNAMICOBJECT:
m_owner->GetMap()->Relocation((GameObject*)passenger, globalPos);
break;
case TYPEID_UNIT:
m_owner->GetMap()->Relocation((Creature*)passenger, globalPos);
// If passenger is vehicle
if (((Unit*)passenger)->IsVehicle())
((Unit*)passenger)->GetVehicleKit()->UpdateGlobalPositions(true);
break;
case TYPEID_PLAYER:
m_owner->GetMap()->Relocation((Player*)passenger, globalPos);
// If passenger is vehicle
if (((Unit*)passenger)->IsVehicle())
((Unit*)passenger)->GetVehicleKit()->UpdateGlobalPositions(true);
break;
case TYPEID_CORPSE:
// TODO - add corpse relocation
default:
break;
}
}