// get level info for given filename BOOL GetLevelInfo(CLevelInfo &li, const CTFileName &fnm) { // try to try { // open the world file CTFileStream strm; strm.Open_t(fnm); // skip initial chunk ids strm.ExpectID_t("BUIV"); // 'build version' INDEX iDummy; strm>>iDummy; // the version number strm.ExpectID_t("WRLD"); // 'world' strm.ExpectID_t("WLIF"); // 'world info' if (strm.PeekID_t()==CChunkID("DTRS")) { strm.ExpectID_t("DTRS"); // 'world info' } // read the name strm>>li.li_strName; // read the flags strm>>li.li_ulSpawnFlags; // translate name li.li_strName = TranslateConst(li.li_strName, 0); // if dummy name if (li.li_strName=="") { // use filename li.li_strName = fnm.FileName(); } // remember filename li.li_fnLevel = fnm; // succeed return TRUE; // if failed } catch (char *strError) { (void) strError; //CPrintF("Invalid world file '%s': %s\n", (const char*) fnm, strError); // set dummy info li = CLevelInfo(); // fail return FALSE; } }
/* * Load just world brushes from a file with entire world information. */ void CWorld::LoadBrushes_t(const CTFileName &fnmWorld) // throw char * { // remember the file wo_fnmFileName = fnmWorld; // open the file CTFileStream strmFile; strmFile.Open_t(fnmWorld); // check engine build disallowing reinit BOOL bNeedsReinit; _pNetwork->CheckVersion_t(strmFile, FALSE, bNeedsReinit); ASSERT(!bNeedsReinit); strmFile.ExpectID_t("WRLD"); // 'world' // read the world brushes from the file ReadBrushes_t(&strmFile); }