detect format error on Import..., and convert (as it was intended)
This commit is contained in:
parent
96d42ebc73
commit
73c9441a02
|
|
@ -1643,6 +1643,13 @@ bool Map_ImportFile(const char* filename)
|
||||||
goto tryDecompile;
|
goto tryDecompile;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
const MapFormat* format = NULL;
|
||||||
|
const char* moduleName = findModuleName(&GlobalFiletypes(), MapFormat::Name(), path_get_extension(filename));
|
||||||
|
if(string_not_empty(moduleName))
|
||||||
|
format = ReferenceAPI_getMapModules().findModule(moduleName);
|
||||||
|
|
||||||
|
if(format)
|
||||||
|
format->wrongFormat = false;
|
||||||
Resource* resource = GlobalReferenceCache().capture(filename);
|
Resource* resource = GlobalReferenceCache().capture(filename);
|
||||||
resource->refresh(); // avoid loading old version if map has changed on disk since last import
|
resource->refresh(); // avoid loading old version if map has changed on disk since last import
|
||||||
if(!resource->load())
|
if(!resource->load())
|
||||||
|
|
@ -1650,6 +1657,12 @@ bool Map_ImportFile(const char* filename)
|
||||||
GlobalReferenceCache().release(filename);
|
GlobalReferenceCache().release(filename);
|
||||||
goto tryDecompile;
|
goto tryDecompile;
|
||||||
}
|
}
|
||||||
|
if(format)
|
||||||
|
if(format->wrongFormat)
|
||||||
|
{
|
||||||
|
GlobalReferenceCache().release(filename);
|
||||||
|
goto tryDecompile;
|
||||||
|
}
|
||||||
NodeSmartReference clone(NewMapRoot(""));
|
NodeSmartReference clone(NewMapRoot(""));
|
||||||
Node_getTraversable(*resource->getNode())->traverse(CloneAll(clone));
|
Node_getTraversable(*resource->getNode())->traverse(CloneAll(clone));
|
||||||
Map_gatherNamespaced(clone);
|
Map_gatherNamespaced(clone);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user