2018-03-29 17:01:57 -04:00
|
|
|
|
|
|
|
|
#include "StdAfx.h"
|
|
|
|
|
#include "ObjectIDGen.h"
|
|
|
|
|
#include "DatabaseIO.h"
|
|
|
|
|
|
|
|
|
|
CObjectIDGenerator::CObjectIDGenerator()
|
|
|
|
|
{
|
|
|
|
|
m_dwHintDynamicGUID = 0x80000000;
|
|
|
|
|
LoadState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CObjectIDGenerator::~CObjectIDGenerator()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CObjectIDGenerator::LoadState()
|
|
|
|
|
{
|
|
|
|
|
m_dwHintDynamicGUID = g_pDBIO->GetHighestWeenieID(0x80000000, 0xFF000000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DWORD CObjectIDGenerator::GenerateGUID(eGUIDClass type)
|
|
|
|
|
{
|
|
|
|
|
switch (type)
|
|
|
|
|
{
|
|
|
|
|
case eDynamicGUID:
|
|
|
|
|
{
|
|
|
|
|
if (m_dwHintDynamicGUID >= 0xF0000000)
|
|
|
|
|
{
|
2018-04-27 21:03:39 -07:00
|
|
|
SERVER_ERROR << "Dynamic GUID overflow!";
|
2018-03-29 17:01:57 -04:00
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (++m_dwHintDynamicGUID);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|