Additional adjustment to ensure that "run length" means the length

shared by the material on both sides.  However, it may require a
clipping method to avoid triggering on shared lengths that are
on an offset.
This commit is contained in:
Tim Edwards 2018-09-21 15:18:33 -04:00
parent 9fc2ee9648
commit d594ba8e07
1 changed files with 8 additions and 2 deletions

View File

@ -565,7 +565,7 @@ drcTile (tile, arg)
{ {
if (cptr->drcc_cdist <= cptr->drcc_dist) if (cptr->drcc_cdist <= cptr->drcc_dist)
triggered = mrd->entries; triggered = mrd->entries;
else else if ((edgeTop - edgeBot) >= cptr->drcc_cdist)
{ {
/* Run-length rule */ /* Run-length rule */
for (i = 0; i < mrd->entries; i++) for (i = 0; i < mrd->entries; i++)
@ -581,6 +581,8 @@ drcTile (tile, arg)
if (i == mrd->entries) if (i == mrd->entries)
cptr = cptr->drcc_next; cptr = cptr->drcc_next;
} }
else
cptr = cptr->drcc_next;
} }
else else
cptr = cptr->drcc_next; cptr = cptr->drcc_next;
@ -942,9 +944,10 @@ checkbottom:
if (trigpending) if (trigpending)
{ {
if (mrd) if (mrd)
{
if (cptr->drcc_cdist <= cptr->drcc_dist) if (cptr->drcc_cdist <= cptr->drcc_dist)
triggered = mrd->entries; triggered = mrd->entries;
else else if ((edgeRight - edgeLeft) >= cptr->drcc_cdist)
{ {
/* Run-length rule */ /* Run-length rule */
for (i = 0; i < mrd->entries; i++) for (i = 0; i < mrd->entries; i++)
@ -963,6 +966,9 @@ checkbottom:
else else
cptr = cptr->drcc_next; cptr = cptr->drcc_next;
} }
else
cptr = cptr->drcc_next;
}
else if (mrd) else if (mrd)
{ {
for (i = 0; i < mrd->entries; i++) for (i = 0; i < mrd->entries; i++)