mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-04 17:29:11 +00:00
ASYLUM: use Common::sort() for sorting graphics queue items
This commit is contained in:
parent
4d6344e736
commit
670d8d85f4
@ -696,9 +696,13 @@ void Screen::addGraphicToQueue(GraphicQueueItem const &item) {
|
||||
_queueItems.push_back(item);
|
||||
}
|
||||
|
||||
bool Screen::graphicQueueItemComparator(const GraphicQueueItem &item1, const GraphicQueueItem &item2) {
|
||||
return item1.priority > item2.priority;
|
||||
}
|
||||
|
||||
void Screen::drawGraphicsInQueue() {
|
||||
// Sort by priority first
|
||||
graphicsSelectionSort();
|
||||
Common::sort(_queueItems.begin(), _queueItems.end(), &Screen::graphicQueueItemComparator);
|
||||
|
||||
for (Common::Array<GraphicQueueItem>::const_iterator i = _queueItems.begin(); i != _queueItems.end(); i++) {
|
||||
const GraphicQueueItem *item = i;
|
||||
@ -718,31 +722,6 @@ void Screen::clearGraphicsInQueue() {
|
||||
_queueItems.clear();
|
||||
}
|
||||
|
||||
void Screen::graphicsSelectionSort() {
|
||||
uint32 maxIdx;
|
||||
|
||||
if (!_queueItems.size())
|
||||
return;
|
||||
|
||||
for (uint32 i = 0; i < _queueItems.size() - 1; i++) {
|
||||
maxIdx = i;
|
||||
|
||||
for (uint32 j = i + 1; j < _queueItems.size(); j++)
|
||||
if (_queueItems[j].priority > _queueItems[maxIdx].priority)
|
||||
maxIdx = j;
|
||||
|
||||
if (i != maxIdx)
|
||||
swapGraphicItem(i, maxIdx);
|
||||
}
|
||||
}
|
||||
|
||||
void Screen::swapGraphicItem(int32 item1, int32 item2) {
|
||||
GraphicQueueItem temp;
|
||||
temp = _queueItems[item1];
|
||||
_queueItems[item1] = _queueItems[item2];
|
||||
_queueItems[item2] = temp;
|
||||
}
|
||||
|
||||
void Screen::deleteGraphicFromQueue(ResourceId resourceId) {
|
||||
for (uint32 i = 0; i < _queueItems.size(); i++) {
|
||||
if (_queueItems[i].resourceId == resourceId) {
|
||||
|
@ -175,8 +175,7 @@ private:
|
||||
void stopPaletteFadeTimer();
|
||||
|
||||
// Graphic queue
|
||||
void graphicsSelectionSort();
|
||||
void swapGraphicItem(int32 item1, int32 item2);
|
||||
static bool graphicQueueItemComparator(const GraphicQueueItem &item1, const GraphicQueueItem &item2);
|
||||
|
||||
// Misc
|
||||
void clip(Common::Rect *source, Common::Rect *destination, int32 flags) const;
|
||||
|
Loading…
x
Reference in New Issue
Block a user