void Map::onResourceRealise() { if (m_resource == NULL) { return; } if (isUnnamed() || !m_resource->load()) { // Map is unnamed or load failed, reset map resource node to empty m_resource->setNode(NewMapRoot("")); MapFilePtr map = Node_getMapFile(m_resource->getNode()); if (map != NULL) { map->save(); } // Rename the map to "unnamed" in any case to avoid overwriting the failed map setMapName(_(MAP_UNNAMED_STRING)); } // Take the new node and insert it as map root GlobalSceneGraph().setRoot(m_resource->getNode()); // Associate the Scenegaph with the global RenderSystem // This usually takes a while since all editor textures are loaded - display a dialog to inform the user { ui::ScreenUpdateBlocker blocker(_("Processing..."), _("Loading textures..."), true); // force display GlobalSceneGraph().root()->setRenderSystem(boost::dynamic_pointer_cast<RenderSystem>( module::GlobalModuleRegistry().getModule(MODULE_RENDERSYSTEM))); } AutoSaver().clearChanges(); setValid(true); }
void connectMap () { MapFile* map = Node_getMapFile(m_model); if (map != 0) { map->setChangedCallback(FreeCaller<MapChanged> ()); } }
bool mapSaved () const { MapFile* map = Node_getMapFile(m_model); if (map != 0) { return m_modified == modified() && map->saved(); } return true; }
void mapSave () { m_modified = modified(); MapFile* map = Node_getMapFile(m_model); if (map != 0) { map->save(); } }
static bool References_Saved () { for (HashtableReferenceCache::iterator i = g_referenceCache.begin(); i != g_referenceCache.end(); ++i) { scene::Node* node = (*i).value->getNode(); if (node != 0) { MapFile* map = Node_getMapFile(*node); if (map != 0 && !map->saved()) { return false; } } } return true; }
bool isMap() const { return Node_getMapFile(m_model) != 0; }