diff options
Diffstat (limited to 'src/server/shared')
-rw-r--r-- | src/server/shared/DataStores/DB2StorageLoader.cpp | 20 | ||||
-rw-r--r-- | src/server/shared/DataStores/DB2StorageLoader.h | 14 | ||||
-rw-r--r-- | src/server/shared/DataStores/DBCFileLoader.h | 5 |
3 files changed, 33 insertions, 6 deletions
diff --git a/src/server/shared/DataStores/DB2StorageLoader.cpp b/src/server/shared/DataStores/DB2StorageLoader.cpp index 2a1853b1621..347d3dfab5b 100644 --- a/src/server/shared/DataStores/DB2StorageLoader.cpp +++ b/src/server/shared/DataStores/DB2StorageLoader.cpp @@ -228,6 +228,9 @@ uint32 DB2FileLoader::GetFormatRecordSize(const char * format, int32* index_pos) case FT_BYTE: recordsize += 1; break; + case FT_LONG: + recordsize += 8; + break; } } @@ -317,6 +320,10 @@ char* DB2FileLoader::AutoProduceData(const char* format, uint32& records, char** *((uint8*)(&dataTable[offset])) = getRecord(y).getUInt8(x); offset += 1; break; + case FT_LONG: + *((uint64*)(&dataTable[offset])) = getRecord(y).getUInt64(x); + offset += 8; + break; case FT_STRING: case FT_STRING_NOT_LOCALIZED: *((char**)(&dataTable[offset])) = nullptr; // will be replaces non-empty or "" strings in AutoProduceStrings @@ -373,6 +380,9 @@ char* DB2FileLoader::AutoProduceStringsArrayHolders(const char* format, char* da case FT_BYTE: offset += 1; break; + case FT_LONG: + offset += 8; + break; case FT_STRING: case FT_STRING_NOT_LOCALIZED: { @@ -438,6 +448,9 @@ char* DB2FileLoader::AutoProduceStrings(const char* format, char* dataTable, uin case FT_BYTE: offset += 1; break; + case FT_LONG: + offset += 8; + break; case FT_STRING: { // fill only not filled entries @@ -563,6 +576,10 @@ char* DB2DatabaseLoader::Load(const char* format, HotfixDatabaseStatements prepa *((int8*)(&dataValue[offset])) = fields[f].GetInt8(); offset += 1; break; + case FT_LONG: + *((int64*)(&dataValue[offset])) = fields[f].GetInt64(); + offset += 8; + break; case FT_STRING: { LocalizedString** slot = (LocalizedString**)(&dataValue[offset]); @@ -660,6 +677,9 @@ void DB2DatabaseLoader::LoadStrings(const char* format, HotfixDatabaseStatements case FT_BYTE: offset += 1; break; + case FT_LONG: + offset += 8; + break; case FT_STRING: { // fill only not filled entries diff --git a/src/server/shared/DataStores/DB2StorageLoader.h b/src/server/shared/DataStores/DB2StorageLoader.h index 587174a804b..14c5964e7d5 100644 --- a/src/server/shared/DataStores/DB2StorageLoader.h +++ b/src/server/shared/DataStores/DB2StorageLoader.h @@ -38,23 +38,29 @@ class DB2FileLoader float getFloat(size_t field) const { assert(field < file.fieldCount); - float val = *reinterpret_cast<float*>(offset+file.GetOffset(field)); + float val = *reinterpret_cast<float*>(offset + file.GetOffset(field)); EndianConvert(val); return val; } uint32 getUInt(size_t field) const { assert(field < file.fieldCount); - uint32 val = *reinterpret_cast<uint32*>(offset+file.GetOffset(field)); + uint32 val = *reinterpret_cast<uint32*>(offset + file.GetOffset(field)); EndianConvert(val); return val; } uint8 getUInt8(size_t field) const { assert(field < file.fieldCount); - return *reinterpret_cast<uint8*>(offset+file.GetOffset(field)); + return *reinterpret_cast<uint8*>(offset + file.GetOffset(field)); + } + uint64 getUInt64(size_t field) const + { + assert(field < file.fieldCount); + uint64 val = *reinterpret_cast<uint64*>(offset + file.GetOffset(field)); + EndianConvert(val); + return val; } - const char *getString(size_t field) const { assert(field < file.fieldCount); diff --git a/src/server/shared/DataStores/DBCFileLoader.h b/src/server/shared/DataStores/DBCFileLoader.h index 8a5d0b5de71..d9aa34f65a3 100644 --- a/src/server/shared/DataStores/DBCFileLoader.h +++ b/src/server/shared/DataStores/DBCFileLoader.h @@ -56,9 +56,10 @@ class DBCFileLoader uint64 getUInt64(size_t field) const { assert(field < file.fieldCount); - return *reinterpret_cast<uint64*>(offset + file.GetOffset(field)); + uint64 val = *reinterpret_cast<uint64*>(offset + file.GetOffset(field)); + EndianConvert(val); + return val; } - const char *getString(size_t field) const { assert(field < file.fieldCount); |