Resursa este parțial incompletă.
Din PythonNetworkStreamPhaseGame.cpp lipsește următoarea funcție:
#ifdef ENABLE_ATLAS_BOSS
bool CPythonNetworkStream::RecvBossList()
{
TPacketGCBossPosition packet1;
if (!Recv(sizeof(packet1), &packet1))
return false;
assert(int(packet1.wSize) - sizeof(packet1) == packet1.wCount * sizeof(TBossPosition) && "HEADER_GC_BOSS_POSITION");
CPythonMiniMap::Instance().ClearAtlasMarkInfoBoss();
for (int i = 0; i < packet1.wCount; ++i)
{
TBossPosition packet2;
if (!Recv(sizeof(TBossPosition), &packet2))
return false;
#ifdef ENABLE_MULTI_NAMES
const char * name;
CPythonNonPlayer& rkNonPlayer = CPythonNonPlayer::Instance();
if (!rkNonPlayer.GetName(packet2.szName, &name)) {
name = "";
}
CPythonMiniMap::Instance().RegisterAtlasMarkBoss(CActorInstance::TYPE_NPC, name, packet2.lX, packet2.lY, packet2.lTime);
#else
CPythonMiniMap::Instance().RegisterAtlasMarkBoss(CActorInstance::TYPE_NPC, packet2.szName, packet2.lX, packet2.lY, packet2.lTime);
#endif
}
return true;
}
#endif
Din PythonMinimap.cpp, sub
const std::string strWhiteMark = strImageRoot + "minimap/whitemark.sub";
Adauga:
#ifdef ENABLE_ATLAS_BOSS
const std::string strBossMark = strImageRoot + "minimap/bossmark.sub";
#endif
Din sectree_manager.cpp, lipsește următoarea funcție:
#ifdef ENABLE_ATLAS_BOSS
void SECTREE_MANAGER::SendBossPosition(LPCHARACTER ch)
{
LPDESC d = ch->GetDesc();
if (!d)
return;
long lMapIndex = ch->GetMapIndex();
TEMP_BUFFER buf;
TPacketGCBossPosition p;
p.bHeader = HEADER_GC_BOSS_POSITION;
p.wCount = m_mapBossPosition[lMapIndex].size();
TBossPosition bp;
itertype(m_mapBossPosition[lMapIndex]) it;
for (it = m_mapBossPosition[lMapIndex].begin(); it != m_mapBossPosition[lMapIndex].end(); ++it)
{
bp.bType = it->bType;
#ifdef ENABLE_MULTI_NAMES
bp.szName = it->szName;
#else
strlcpy(bp.szName, it->szName, sizeof(bp.szName));
#endif
bp.lX = it->lX;
bp.lY = it->lY;
bp.lTime = it->lTime;
buf.write(&bp, sizeof(bp));
}
p.wSize = sizeof(p) + buf.size();
if (buf.size())
{
d->BufferedPacket(&p, sizeof(TPacketGCBossPosition));
d->Packet(buf.read_peek(), buf.size());
}
else
d->Packet(&p, sizeof(TPacketGCBossPosition));
}
void SECTREE_MANAGER::InsertBossPosition(long lMapIndex, BYTE bType,
#ifdef ENABLE_MULTI_NAMES
DWORD szName
#else
const char* szName
#endif
, long lX, long lY, long lTime)
{
m_mapBossPosition[lMapIndex].push_back(boss_info(bType, szName, lX, lY, lTime));
}
#endif