I have paused it.
It seems it helps a bit. At least the speedup have gone down from around 4 seconds or more to 1 or 1/2 second.
my method for loading levels:
void App::LoadMap(std::string mapfile = "")
{
if (mapfile == "") {
mapfile = nextMap->nextMapFile;
}
//if ( mapfile != "" && mapfile != ".\\" && FileSystem::GetFileSize(mapfile) > 0 ) {
if ( mapfile != "" && mapfile != ".\\" ) {
Time::Pause();
world = World::Create();
world->Clear();
entities.clear();
//world->Release();
//create camera
camera = Camera::Create();
camera->SetFOV(70);
camera->SetRotation(90, 0, 0, true);
Map::Load(mapfile, StoreWorldObjects);
// target camera at player
if (player)
{
//Vec3 cameraPosition = Vec3(player->entity->GetPosition());
//cameraPosition.y += 5;
camera->SetPosition(0,10,0);
camera->SetScript("Scripts/Cameras/TopDown.lua", true);
camera->SetObject("target",player->entity);
if (cameraEffect)
{
cameraEffect->entity->SetObject("camera",camera);
}
}
Time::Resume();
}
}