From 228b9329259e136bfab281127963e99ec6ff43a0 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 12 Jul 2015 00:41:56 +0200 Subject: Core/Players: Fixed power slot ordering --- src/server/shared/DataStores/DB2Store.h | 8 ++++++++ src/server/shared/DataStores/DBStorageIterator.h | 3 +-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'src/server/shared/DataStores') diff --git a/src/server/shared/DataStores/DB2Store.h b/src/server/shared/DataStores/DB2Store.h index c541a6651a3..b4ae20ce1da 100644 --- a/src/server/shared/DataStores/DB2Store.h +++ b/src/server/shared/DataStores/DB2Store.h @@ -181,6 +181,14 @@ public: DB2DatabaseLoader(_fileName).LoadStrings(_format, _hotfixStatement + 1, locale, _indexTable.AsChar, _stringPoolList); } + typedef bool(*SortFunc)(T const* left, T const* right); + + void Sort(SortFunc pred) + { + ASSERT(strpbrk(_format, "nd") == nullptr, "Only non-indexed storages can be sorted"); + std::sort(_indexTable.AsT, _indexTable.AsT + _indexTableSize, pred); + } + iterator begin() { return iterator(_indexTable.AsT, _indexTableSize); } iterator end() { return iterator(_indexTable.AsT, _indexTableSize, _indexTableSize); } diff --git a/src/server/shared/DataStores/DBStorageIterator.h b/src/server/shared/DataStores/DBStorageIterator.h index a34cd6677c2..767900a123e 100644 --- a/src/server/shared/DataStores/DBStorageIterator.h +++ b/src/server/shared/DataStores/DBStorageIterator.h @@ -30,9 +30,8 @@ public: { if (_pos < _end) { - do + while (_pos < _end && !_index[_pos]) ++_pos; - while (_pos < _end && !_index[_pos]); } } -- cgit v1.2.3