Fix: Sorted the item list in the debug overlay (#340)
* Fix: Sorted the item list in the debug overlay * revert show all files to false * Revert ShowAllFiles by removing it * removed extra line * Adressed PR review changes * Replaced push_back with emplace_back * Removed redundant emplace_back
This commit is contained in:
committed by
GitHub
parent
2d430798a5
commit
ca5fde56fe
@@ -39,17 +39,37 @@ UIScene_DebugOverlay::UIScene_DebugOverlay(int iPad, void *initData, UILayer *pa
|
||||
m_buttonSetNight.init(L"Set Night", eControl_SetNight);
|
||||
|
||||
m_buttonListItems.init(eControl_Items);
|
||||
|
||||
// Sort items alphabetically
|
||||
std::vector<std::pair<std::wstring, unsigned int>> sortedItems;
|
||||
for (size_t i = 0; i < Item::items.length; ++i)
|
||||
{
|
||||
if (Item::items[i] != NULL)
|
||||
{
|
||||
sortedItems.emplace_back(std::wstring(app.GetString(Item::items[i]->getDescriptionId())), i);
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 1; i < sortedItems.size(); ++i)
|
||||
{
|
||||
auto key = sortedItems[i];
|
||||
int j = i - 1;
|
||||
while (j >= 0 && sortedItems[j].first > key.first)
|
||||
{
|
||||
sortedItems[j + 1] = sortedItems[j];
|
||||
--j;
|
||||
}
|
||||
sortedItems[j + 1] = key;
|
||||
}
|
||||
|
||||
// Populate the list in sorted order
|
||||
int listId = 0;
|
||||
for(unsigned int i = 0; i < Item::items.length; ++i)
|
||||
{
|
||||
if(Item::items[i] != NULL)
|
||||
{
|
||||
m_itemIds.push_back(i);
|
||||
m_buttonListItems.addItem(app.GetString(Item::items[i]->getDescriptionId()), listId);
|
||||
++listId;
|
||||
}
|
||||
}
|
||||
for (const auto& entry : sortedItems)
|
||||
{
|
||||
m_itemIds.push_back(entry.second);
|
||||
m_buttonListItems.addItem(entry.first.c_str(), listId);
|
||||
++listId;
|
||||
}
|
||||
|
||||
m_buttonListEnchantments.init(eControl_Enchantments);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user