48 lines
1.3 KiB
C++
48 lines
1.3 KiB
C++
#pragma once
|
|
|
|
class CPetTableSet : public OdbcRecordset
|
|
{
|
|
public:
|
|
CPetTableSet(OdbcConnection * dbConnection, PetArray *pMap)
|
|
: OdbcRecordset(dbConnection), m_pMap(pMap) {}
|
|
|
|
virtual tstring GetTableName() { return _T("PET_DATA"); }
|
|
virtual tstring GetColumns()
|
|
{
|
|
return _T("PET_SERIAL, PET_SLOT, PET_NAME, PET_EXP, PET_LEVEL, PET_STOMACH, PET_ITEMID, PET_CLASS");
|
|
}
|
|
|
|
virtual bool Fetch()
|
|
{
|
|
CPet * pData = new CPet();
|
|
int i = 1;
|
|
uint32 ItemId;
|
|
uint8 Slot;
|
|
_dbCommand->FetchUInt64(i++, pData->m_Serial);
|
|
_dbCommand->FetchString(i++, pData->m_strPetID);
|
|
_dbCommand->FetchUInt64(i++, pData->m_iExp);
|
|
_dbCommand->FetchByte(i++, pData->m_bLevel);
|
|
_dbCommand->FetchUInt16(i++, pData->m_sSatisfaction);
|
|
_dbCommand->FetchByte(i++, Slot);
|
|
_dbCommand->FetchUInt32(i++, ItemId);
|
|
_ITEM_DATA * pItem = &pData->m_sItemArray[Slot];
|
|
pItem->nNum = ItemId;
|
|
pItem->sCount = 1;
|
|
pItem->sDuration = 1;
|
|
_dbCommand->FetchByte(i++, pData->m_sClass);
|
|
_dbCommand->FetchUInt32(i++, pData->SpecialPetID);
|
|
if (pData->SpecialPetID > g_pMain->LastPetID)
|
|
g_pMain->LastPetID = pData->SpecialPetID;
|
|
pData->m_pNpc = nullptr;
|
|
|
|
if (pData == nullptr)
|
|
delete pData;
|
|
else
|
|
m_pMap->insert(std::make_pair(pData->m_Serial, pData));
|
|
|
|
|
|
return true;
|
|
}
|
|
|
|
PetArray * m_pMap;
|
|
}; |