public bool Load(StreamSerializer stream) { if (stream.ReadChunkBegin(CHUNK_ID, CHUNK_VERSION, "PageWorld") == null) { return(false); } //name stream.Read(out this.mName); //sections while (stream.NextChunkId == PagedWorld.CHUNK_SECTIONDECLARATION_ID) { stream.ReadChunkBegin(); string sectionType, sectionName; stream.Read(out sectionType); stream.Read(out sectionName); stream.ReadChunkEnd(CHUNK_SECTIONDECLARATION_ID); // Scene manager will be loaded PagedWorldSection sec = CreateSection(null, sectionType, sectionName); bool sectionOk = sec.Load(stream); if (!sectionOk) { DestroySection(sec); } } stream.ReadChunkEnd(CHUNK_ID); return(true); }
/// <summary> /// Load world data from a serialiser (returns true if successful) /// </summary> /// <param name="stream"></param> public bool Load(StreamSerializer stream) { if (stream.ReadChunkBegin(CHUNK_ID, CHUNK_VERSION, "PageWorld") == null) return false; //name stream.Read(out mName); //sections while (stream.NextChunkId == PagedWorldSection.CHUNK_ID) { PagedWorldSection sec = new PagedWorldSection(this); bool sectionOk = sec.Load(stream); if (sectionOk) mSections.Add(sec.Name, sec); else { sec = null; break; } } stream.ReadChunkEnd(CHUNK_ID); return true; }