47 lines
No EOL
1.3 KiB
C++
47 lines
No EOL
1.3 KiB
C++
#include "stdafx.h"
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|
|
|
#include "DnTalisman.h"
|
|
#include "DNTableFile.h"
|
|
#include "DnTableDB.h"
|
|
|
|
DECL_DN_SMART_PTR_STATIC( CDnTalisman, MAX_SESSION_COUNT, 100 )
|
|
|
|
|
|
CDnTalisman::CDnTalisman( CMultiRoom *pRoom )
|
|
: CDnUnknownRenderObject(pRoom, false)
|
|
, CDnItem( pRoom )
|
|
{
|
|
}
|
|
|
|
CDnTalisman::~CDnTalisman()
|
|
{
|
|
}
|
|
|
|
DnTalismanHandle CDnTalisman::CreateTalisman( CMultiRoom *pRoom, int nTableID, int nSeed, char cOptionIndex, char cEnchantLevel, char cPotentialIndex, char cSealCount, bool bSoulBound )
|
|
{
|
|
if( nTableID < 1 ) return CDnTalisman::Identity();
|
|
|
|
DnTalismanHandle hTalisman = (new CDnTalisman(pRoom))->GetMySmartPtr();
|
|
if( !hTalisman ) return CDnTalisman::Identity();
|
|
|
|
hTalisman->Initialize( nTableID, nSeed, cOptionIndex, cEnchantLevel, cPotentialIndex, cSealCount, bSoulBound );
|
|
return hTalisman;
|
|
}
|
|
|
|
bool CDnTalisman::Initialize( int nTableID, int nSeed, char cOptionIndex, char cEnchantLevel, char cPotentialIndex, char cSealCount, bool bSoulBound )
|
|
{
|
|
DNTableFileFormat* pSox = GetDNTable( CDnTableDB::TTALISMANITEM );
|
|
if( !pSox )
|
|
{
|
|
g_Log.Log( LogType::_FILELOG, L"TalismanTalbe.ext failed\r\n");
|
|
return false;
|
|
}
|
|
if( !pSox->IsExistItem( nTableID ) ) return false;
|
|
|
|
CDnItem::Initialize( nTableID, nSeed, cOptionIndex, cEnchantLevel, cPotentialIndex, cSealCount, bSoulBound );
|
|
|
|
return true;
|
|
}
|
|
|
|
#endif // PRE_ADD_TALISMAN_SYSTEM
|