MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / ProcessPagesForLevel

Method ProcessPagesForLevel

editor/TableFileFilterMng.cpp:753–797  ·  view source on GitHub ↗

Processes all pages needed by the given level

Source from the content-addressed store, hash-verified

751
752// Processes all pages needed by the given level
753bool PageDataList::ProcessPagesForLevel(char *level_filename, int process_type) {
754 CWaitCursor wc;
755
756 if (level_filename == NULL)
757 return FALSE;
758
759 m_StatusText->Format("Loading level - %s...", level_filename);
760 m_Dlg->UpdateData(FALSE);
761 DeferMessages();
762 wc.Restore();
763
764 // Load the given level
765 if (!LoadLevel(level_filename)) {
766 m_Dlg->MessageBox("Error loading level", "Level Load Error");
767 return FALSE;
768 }
769
770 m_StatusText->Format("Processing level - %s...", level_filename);
771 m_NumPagesText->Format("%d", m_size);
772 m_Dlg->UpdateData(FALSE);
773 DeferMessages();
774 wc.Restore();
775
776 // Process level, adding pages that it requires
777 DetermineRequiredPages(process_type);
778
779 // Add Level's gamefile pages
780 char filename[_MAX_FNAME + 1];
781 char pagename[_MAX_PATH + 1];
782
783 _splitpath(level_filename, NULL, NULL, filename, NULL);
784 for (int j = 0; gamefile_level_ext[j] != NULL; j++) {
785 sprintf(pagename, "%s%s", filename, gamefile_level_ext[j]);
786 ProcessPage(pagename, PAGETYPE_GAMEFILE, process_type);
787 }
788
789 wc.Restore();
790
791 m_StatusText->Format("Processing Complete", level_filename);
792 m_Dlg->UpdateData(FALSE);
793 DeferMessages();
794 wc.Restore();
795
796 return TRUE;
797}
798
799// Either adds the given level page to the list, or removes it
800bool PageDataList::ProcessPage(char *page_name, uint8_t page_type, int process_type, int flags) {

Callers

nothing calls this directly

Calls 4

LoadLevelFunction · 0.85
_splitpathFunction · 0.85
UpdateDataMethod · 0.80
DeferMessagesFunction · 0.70

Tested by

no test coverage detected