YTDB

YTDB (http://ytdb.ru/index.php)
-   Ядро (http://ytdb.ru/forumdisplay.php?f=25)
-   -   [решено] две ошибки при компиляции (http://ytdb.ru/showthread.php?t=300)

tempura 14.11.2009 23:05

[решено] две ошибки при компиляции
 
ну и сразу тему заведу в новом разделе :)


Две ошибки при компиляции остались:
Код:

'GetCorpse' : is not a member of 'ObjectAccessor'
'AddUpdateObject' : is not a member of 'ObjectAccessor'

Еще десятка три я поправил. :)

Я точно знаю, что они на что-то поменялись. Но я совершенно не представляю - на что именно. :( Есть кому подсказать?

Ревизия 8817, на нее поставлены патчи сделанные с прошлого компила - ревизии 8598. :(

Кто спасти может?

maksqwe 14.11.2009 23:15

* objmgr -> sObjectMgr
* spellmgr -> sSpellMgr
* WaypointMgr -> sWaypointMgr
* poolhandler -> sPoolMgr
* objaccessor -> sObjectAccessor
* mapmgr -> sMapMgr
* sInstanceSaveManager -> sInstanceSaveMgr
* ticketmgr -> sTicketMgr
* CreatureEAI_Mgr -> sEventAIMgr
* auctionmgr -> sAuctionMgr
* achievementmgr -> sAchievementMgr
* gameeventmgr -> sGameEventMgr
* accmgr -> sAccountMgr

http://getmangos.com/community/showthread.php?t=10902

tempura 14.11.2009 23:22

Круто, спасибо. :) Я тут по истории коммитов уже нашел чуток. :)
по 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;
        }
    }
}


tempura 14.11.2009 23:41

вот в ObjectAccessor.h внизу стоит:
Код:

#define sObjectAccessor ObjectAccessor::Instance()
значит в теории мне надо
Код:

ObjectAccessor::Instance().AddUpdateObject(this);
исправить на
Код:

sObjectAccessor.AddUpdateObject(this);
Так? Но оно все равно выдает ту же самую ошибку при компиляции. :(
Код:

'AddUpdateObject' : is not a member of 'ObjectAccessor'
\src\game\ObjectAccessor.h(79) : see declaration of 'ObjectAccessor'


tempura 14.11.2009 23:46

Ога, все, нашел. Я самый умный! :)

Было:
Код:

ObjectAccessor::Instance().AddUpdateObject(this);
Надо:
Код:

AddToClientUpdateList();
коммит 8678

ArhangelSM 19.11.2009 16:35

здравствуйте подкиньте пожалуйста ссылки на патчи карателя для 3.2.2а и еще на какие не буть хорошие

tempura 19.11.2009 16:51

...и прощайте...


Текущее время: 14:43. Часовой пояс GMT +4.

YTDB - MaNGOS DataBase