- fixed a few issues pointed out by the assert in the TArray [] operator.

This commit is contained in:
Christoph Oelckers 2020-04-11 12:39:50 +02:00
commit d00ad60437
4 changed files with 18 additions and 3 deletions

View file

@ -803,6 +803,21 @@ public:
sub.section = bestfit;
}
}
// Set all empty sectors' initial index to 0, so that we do not have to range-check each access.
for (unsigned i = 0; i < Level->sectors.Size(); i++)
{
if (Level->sections.firstSectionForSectorPtr[i] < 0)
{
Level->sections.firstSectionForSectorPtr[i] = 0;
if (Level->sections.numberOfSectionForSectorPtr[i] > 0)
{
// This should never happen.
Printf("Warning: Sector %d has a non-empty section list with no address\n", i);
Level->sections.numberOfSectionForSectorPtr = 0;
}
}
}
}
};

View file

@ -83,7 +83,7 @@ struct FRemapTable
uint8_t Remap[256]; // For the software renderer
PalEntry Palette[256]; // The ideal palette this maps to
FUniquePalette *Native; // The index into the list of unique palettes (this is to avoid frequent texture recreation with changing ACS translations)
FUniquePalette *Native = nullptr; // The index into the list of unique palettes (this is to avoid frequent texture recreation with changing ACS translations)
//int crc32;
int NumEntries; // # of elements in this table (usually 256)
bool Inactive = false; // This table is inactive and should be treated as if it was passed as NULL