Looks like a bug when saving a terrain that formerly had a custom texture that then has been changed to a standard one. The engine is still saving the custom textures into the FPM even though not needed as a standard 'texturebank' terrain has been selected and indexed. Can't see any issue with large maps over small (yet).
Thanks for the detailed step by step to illustrate the issue m2design.
cpp code fix that works for Cogwheel (for the engine):
//M-MapFile.cpp // mapfile_saveproject_fpm(void)
if ( FileExist ( "superpalette.ter" ) == 1 )
AddFileToBlock ( 1, "superpalette.ter" );
//timestampactivity(0, cstr(cstr("DEBUG: g.terrainstyleindex: ") + cstr(g.terrainstyleindex)).Get());
if (g.terrainstyleindex == 1) //Bug-Fix //Cogwheel
{
if (FileExist("Texture_D.dds") == 1)
{
AddFileToBlock(1, "Texture_D.dds");
//timestampactivity(0, cstr(cstr("DEBUG: written Texture_D to ZIP: ") + t.ttempprojfilename_s).Get());
}
if (FileExist("Texture_N.dds") == 1)
{
AddFileToBlock(1, "Texture_N.dds");
//timestampactivity(0, cstr(cstr("DEBUG: written Texture_N to ZIP: ") + t.ttempprojfilename_s).Get());
}
}
if ( FileExist ( "globalenvmap.dds" ) == 1 )
AddFileToBlock ( 1, "globalenvmap.dds" );
.....
strEnt = cstr(Lower(Right(t.tfile_s.Get(),6)));
if ( strcmp ( strEnt.Get(), "_d.dds" ) == NULL || strcmp ( strEnt.Get(), "_n.dds" ) == NULL || strcmp ( strEnt.Get(), "_s.dds" ) == NULL )
{
////AddFileToBlock ( 1, t.tfile_s.Get() ); BUG-FIX //Cogwheel
cstr strT = cstr(Lower(Right(t.tfile_s.Get(), 13)));
if (strcmp(strT.Get(), "texture_d.dds") == NULL || strcmp(strT.Get(), "texture_n.dds") == NULL)
timestampactivity(0, cstr(cstr("DEBUG: ignoring Texture_D or _N from catch-all: ") + t.tfile_s).Get());
else
AddFileToBlock(1, t.tfile_s.Get());
}
Cheers.
GPU: GeForce RTX 2070 SUPER PassMark: 14817