Круто, спасибо.
Я тут по истории коммитов уже нашел чуток.
по 8718 коммиту, вот эта хрень:
Код:
Corpse *bones = ObjectAccessor::GetCorpse(*player, lguid);
меняется вот на эту:
Код:
Corpse *bones = player->GetMap()->GetCorpse(lguid);
кое-как и сам немного на умного начинаю быть похожим.
А вот тупая замена ObjectAccessor на sObjectAccessor - не помогает.
теперь ищу как вот это старое:
Код:
ObjectAccessor::Instance().AddUpdateObject(this);
на что-то новое исправить.
Пока вот вроде нашел (и там еще несколько подобных):
Код:
- if( Creature* pCreature = ObjectAccessor::Instance().GetObjectInWorld(MAKE_NEW_GUID(*itr, data->id, HIGHGUID_UNIT), (Creature*)NULL) )
+ if( Creature* pCreature = ObjectAccessor::GetCreatureInWorld(MAKE_NEW_GUID(*itr, data->id, HIGHGUID_UNIT)) )
сейчас разбираться буду.
На случай, если в контексте надобно, вот этот кусок патча:
Код:
void Object::ForceValuesUpdateAtIndex(uint32 i)
{
m_uint32Values_mirror[i] = GetUInt32Value(i) + 1; // makes server think the field changed
if(m_inWorld)
{
if(!m_objectUpdated)
{
ObjectAccessor::Instance().AddUpdateObject(this);
m_objectUpdated = true;
}
}
}