From b2fc2e03ba6ae28fba112b5512d6dfe918f6b5c7 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Mon, 26 Jun 2017 16:11:50 +0100 Subject: [PATCH] * Always remove linkdraw vissprites from unsorted drawing chain. * Make the related I_Error more descriptive and "#define PARANOIA"'d only. --- src/r_things.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/r_things.c b/src/r_things.c index f4deb1711..406cebdef 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -1845,11 +1845,16 @@ void R_SortVisSprites(void) && dsfirst->sz < ds->sz) continue; - // remove from chain - ds->next->prev = ds->prev; - ds->prev->next = ds->next; - linkedvissprites++; + break; + } + // remove from chain + ds->next->prev = ds->prev; + ds->prev->next = ds->next; + linkedvissprites++; + + if (dsfirst != &unsorted) + { if (!(ds->cut & SC_FULLBRIGHT)) ds->colormap = dsfirst->colormap; ds->extra_colormap = dsfirst->extra_colormap; @@ -1870,8 +1875,6 @@ void R_SortVisSprites(void) ds->next = dsnext->next; dsnext->next = ds; } - - break; } } @@ -1882,8 +1885,10 @@ void R_SortVisSprites(void) bestscale = bestdispoffset = INT32_MAX; for (ds = unsorted.next; ds != &unsorted; ds = ds->next) { +#ifdef PARANOIA if (ds->cut & SC_LINKDRAW) - I_Error("No link made!"); // testing + I_Error("R_SortVisSprites: no link or discardal made for linkdraw!"); +#endif if (ds->sortscale < bestscale) {