mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-10-04 21:34:41 +00:00
sync with icculus repo
This commit is contained in:
parent
3b39173397
commit
e64fb75f84
48 changed files with 21570 additions and 521 deletions
|
@ -229,8 +229,8 @@ void RenderObjectLayer::moveToFront(RenderObject *r)
|
|||
renderObjects[curIdx] = 0;
|
||||
renderObjects[newIdx] = r;
|
||||
r->setIdx(newIdx);
|
||||
if (firstFreeIdx == newIdx)
|
||||
firstFreeIdx++;
|
||||
if (firstFreeIdx > curIdx)
|
||||
firstFreeIdx = curIdx;
|
||||
}
|
||||
else if (objectCount == size)
|
||||
{
|
||||
|
@ -242,7 +242,7 @@ void RenderObjectLayer::moveToFront(RenderObject *r)
|
|||
r->setIdx(size);
|
||||
for (int i = size+1; i < newSize; i++)
|
||||
renderObjects[i] = 0;
|
||||
firstFreeIdx = size+1;
|
||||
firstFreeIdx = curIdx;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -254,18 +254,20 @@ void RenderObjectLayer::moveToFront(RenderObject *r)
|
|||
if (!renderObjects[lastFree])
|
||||
break;
|
||||
}
|
||||
|
||||
for (int i = lastFree + 1; i <= lastUsed; i++)
|
||||
{
|
||||
renderObjects[i-1] = renderObjects[i];
|
||||
if(renderObjects[i-1])
|
||||
renderObjects[i-1]->setIdx(i-1);
|
||||
renderObjects[i-1]->setIdx(i-1); // Known to be non-NULL.
|
||||
}
|
||||
|
||||
renderObjects[lastUsed] = r;
|
||||
r->setIdx(lastUsed);
|
||||
if (firstFreeIdx == lastFree)
|
||||
firstFreeIdx = lastUsed + 1;
|
||||
firstFreeIdx = curIdx;
|
||||
while (renderObjects[firstFreeIdx])
|
||||
{
|
||||
firstFreeIdx++;
|
||||
if(firstFreeIdx >= size)
|
||||
firstFreeIdx = 0;
|
||||
}
|
||||
}
|
||||
#endif // RLT_FIXED
|
||||
#ifdef RLT_DYNAMIC
|
||||
|
@ -298,7 +300,9 @@ void RenderObjectLayer::moveToBack(RenderObject *r)
|
|||
renderObjects[curIdx] = 0;
|
||||
renderObjects[newIdx] = r;
|
||||
r->setIdx(newIdx);
|
||||
if (firstFreeIdx == newIdx)
|
||||
// firstFreeIdx must be 0 here; if we filled slot 0, then
|
||||
// scan forward for the next empty element.
|
||||
while (renderObjects[firstFreeIdx])
|
||||
firstFreeIdx++;
|
||||
}
|
||||
else if (objectCount == size)
|
||||
|
@ -312,8 +316,7 @@ void RenderObjectLayer::moveToBack(RenderObject *r)
|
|||
for (int i = newSize - 1; i >= sizeDiff; i--)
|
||||
{
|
||||
renderObjects[i] = renderObjects[i - sizeDiff];
|
||||
if(renderObjects[i])
|
||||
renderObjects[i]->setIdx(i);
|
||||
renderObjects[i]->setIdx(i); // Known to be non-NULL.
|
||||
}
|
||||
for (int i = 0; i < newIdx; i++)
|
||||
renderObjects[i] = 0;
|
||||
|
@ -329,8 +332,7 @@ void RenderObjectLayer::moveToBack(RenderObject *r)
|
|||
for (int i = firstFreeIdx; i > 0; i--)
|
||||
{
|
||||
renderObjects[i] = renderObjects[i-1];
|
||||
if(renderObjects[i])
|
||||
renderObjects[i]->setIdx(i);
|
||||
renderObjects[i]->setIdx(i); // Known to be non-NULL.
|
||||
}
|
||||
renderObjects[0] = r;
|
||||
r->setIdx(0);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue