aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared')
-rw-r--r--src/server/shared/DataStores/DB2StorageLoader.cpp20
-rw-r--r--src/server/shared/DataStores/DB2StorageLoader.h14
-rw-r--r--src/server/shared/DataStores/DBCFileLoader.h5
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);