#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
void CHARACTER::MountSummon(LPITEM mountItem)
{
#define MOUNT_SYSTEM_FIX_POLY
#ifdef MOUNT_SYSTEM_FIX_POLY
if (IsPolymorphed() == true)
{
ChatPacket(CHAT_TYPE_INFO, "Nu poti folosi un mount atat timp cat esti transformat.");
return;
}
#endif
if (GetMapIndex() == 113)
return;
if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true)
return;
CMountSystem* mountSystem = GetMountSystem();
DWORD mobVnum = 0;
if (!mountSystem || !mountItem)
return;
#ifdef __CHANGELOOK_SYSTEM__
if(mountItem->GetTransmutation())
{
const TItemTable* itemTable = ITEM_MANAGER::instance().GetTable(mountItem->GetTransmutation());
if (itemTable)
mobVnum = itemTable->alValues[1];
else
mobVnum = mountItem->GetValue(1);
}
else
mobVnum = mountItem->GetValue(1);
#else
if(mountItem->GetValue(1) != 0)
mobVnum = mountItem->GetValue(1);
#endif
if (IsHorseRiding())
StopRiding();
if (GetHorse())
HorseSummon(false);
mountSystem->Summon(mobVnum, mountItem, false);
}
void CHARACTER::MountUnsummon(LPITEM mountItem)
{
CMountSystem* mountSystem = GetMountSystem();
DWORD mobVnum = 0;
if (!mountSystem || !mountItem)
return;
#ifdef __CHANGELOOK_SYSTEM__
if(mountItem->GetTransmutation())
{
const TItemTable* itemTable = ITEM_MANAGER::instance().GetTable(mountItem->GetTransmutation());
if (itemTable)
mobVnum = itemTable->alValues[1];
else
mobVnum = mountItem->GetValue(1);
}
else
mobVnum = mountItem->GetValue(1);
#else
if(mountItem->GetValue(1) != 0)
mobVnum = mountItem->GetValue(1);
#endif
if (GetMountVnum() == mobVnum)
mountSystem->Unmount(mobVnum);
mountSystem->Unsummon(mobVnum);
}
void CHARACTER::CheckMount()
{
CMountSystem* mountSystem = GetMountSystem();
LPITEM mountItem = GetWear(WEAR_COSTUME_MOUNT);
DWORD mobVnum = 0;
if (!mountSystem || !mountItem)
return;
#ifdef __CHANGELOOK_SYSTEM__
if(mountItem->GetTransmutation())
{
const TItemTable* itemTable = ITEM_MANAGER::instance().GetTable(mountItem->GetTransmutation());
if (itemTable)
mobVnum = itemTable->alValues[1];
else
mobVnum = mountItem->GetValue(1);
}
else
mobVnum = mountItem->GetValue(1);
#else
if(mountItem->GetValue(1) != 0)
mobVnum = mountItem->GetValue(1);
#endif
if(mountSystem->CountSummoned() == 0)
{
mountSystem->Summon(mobVnum, mountItem, false);
}
}
bool CHARACTER::IsRidingMount()
{
return (GetWear(WEAR_COSTUME_MOUNT) || FindAffect(AFFECT_MOUNT));
}
#endif