Exemple #1
0
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);
}
Exemple #2
0
 void connectMap ()
 {
     MapFile* map = Node_getMapFile(m_model);
     if (map != 0) {
         map->setChangedCallback(FreeCaller<MapChanged> ());
     }
 }
Exemple #3
0
 bool mapSaved () const
 {
     MapFile* map = Node_getMapFile(m_model);
     if (map != 0) {
         return m_modified == modified() && map->saved();
     }
     return true;
 }
Exemple #4
0
 void mapSave ()
 {
     m_modified = modified();
     MapFile* map = Node_getMapFile(m_model);
     if (map != 0) {
         map->save();
     }
 }
Exemple #5
0
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;
}
Exemple #6
0
 bool isMap() const
 {
   return Node_getMapFile(m_model) != 0;
 }