diff options
Diffstat (limited to 'src/server/shared/DataStores')
| -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);  | 
