void MapTextureManager::onAnnouncement(Announcer* announcer, string event_name, MemChunk& event_data) { // Only interested in the resource manager, // archive manager and palette chooser. if (announcer != theResourceManager && announcer != thePaletteChooser && announcer != theArchiveManager) return; // If the map's archive is being closed, // we need to close the map editor if (event_name == "archive_closing") { event_data.seek(0, SEEK_SET); int32_t ac_index; event_data.read(&ac_index, 4); if (theArchiveManager->getArchive(ac_index) == archive) { theMapEditor->Hide(); theMapEditor->mapEditor().clearMap(); archive = NULL; } } // If the resources have been updated if (event_name == "resources_updated") refreshResources(); if (event_name == "main_palette_changed") refreshResources(); }
// ----------------------------------------------------------------------------- // Handles announcements from any announcers listened to // ----------------------------------------------------------------------------- void MapTextureManager::onAnnouncement(Announcer* announcer, std::string_view event_name, MemChunk& event_data) { // Only interested in the resource manager, // archive manager and palette chooser. if (announcer != &App::resources() && announcer != theMainWindow->paletteChooser() && announcer != &App::archiveManager()) return; // If the map's archive is being closed, // we need to close the map editor if (event_name == "archive_closing") { event_data.seek(0, SEEK_SET); int32_t ac_index; event_data.read(&ac_index, 4); if (App::archiveManager().getArchive(ac_index) == archive_) { MapEditor::windowWx()->Hide(); MapEditor::editContext().clearMap(); archive_ = nullptr; } } // If the resources have been updated if (event_name == "resources_updated") refreshResources(); if (event_name == "main_palette_changed") refreshResources(); }
void MapTextureManager::setArchive(Archive* archive) { this->archive = archive; refreshResources(); }