- added global per-mod precaching lists, to be defined in MAPINFO's Gameinfo section.

This commit is contained in:
Christoph Oelckers 2017-01-10 01:00:06 +01:00
commit 46179936ec
4 changed files with 22 additions and 0 deletions

View file

@ -3360,6 +3360,11 @@ static void P_PrecacheLevel()
actorhitlist[actor->GetClass()] = true;
}
for (auto n : gameinfo.PrecachedClasses)
{
PClassActor *cls = PClass::FindActor(n);
if (cls != NULL) actorhitlist[cls] = true;
}
for (unsigned i = 0; i < level.info->PrecacheClasses.Size(); i++)
{
// level.info can only store names, no class pointers.
@ -3396,6 +3401,11 @@ static void P_PrecacheLevel()
hitlist[sky2texture.GetIndex()] |= FTextureManager::HIT_Sky;
}
for (auto n : gameinfo.PrecachedTextures)
{
FTextureID tex = TexMan.CheckForTexture(n, FTexture::TEX_Wall, FTextureManager::TEXMAN_Overridable | FTextureManager::TEXMAN_TryAny | FTextureManager::TEXMAN_ReturnFirst);
if (tex.Exists()) hitlist[tex.GetIndex()] |= FTextureManager::HIT_Wall;
}
for (unsigned i = 0; i < level.info->PrecacheTextures.Size(); i++)
{
FTextureID tex = TexMan.CheckForTexture(level.info->PrecacheTextures[i], FTexture::TEX_Wall, FTextureManager::TEXMAN_Overridable | FTextureManager::TEXMAN_TryAny | FTextureManager::TEXMAN_ReturnFirst);