public void LoadMapInfo() { _mapInformation = new MaplevlInfo(); // Load Game Identification _stream.SeekTo(0x36); _mapInformation.Game = (GameIdentifier)_stream.ReadUInt32(); UpdateLanguageCount(_mapInformation.Game); // Load MapID _stream.SeekTo(0x3C); _mapInformation.MapID = _stream.ReadInt32(); // Load Flags _stream.SeekTo(0x42); _mapInformation.Flags = (LevelFlags)_stream.ReadInt16(); // Load Map Names LoadMapNames(); // Load Map Descriptions LoadMapDescriptions(); // Load Map Physical Name _stream.SeekTo(_mapInformation.Game == GameIdentifier.Halo4 ? 0x1584 : 0x0F44); _mapInformation.PhysicalName = _stream.ReadAscii(); // Load Map Internal Name _stream.SeekTo(_mapInformation.Game == GameIdentifier.Halo4 ? 0x1684 : 0x1044); _mapInformation.InternalName = _stream.ReadAscii(); }
public void LoadMapInfo() { _mapInformation = new MaplevlInfo(); // Load Game Identification _stream.SeekTo(0x36); _mapInformation.Game = (GameIdentifier) _stream.ReadUInt32(); UpdateLanguageCount(_mapInformation.Game); // Load MapID _stream.SeekTo(0x3C); _mapInformation.MapID = _stream.ReadInt32(); // Load Flags _stream.SeekTo(0x42); _mapInformation.Flags = (LevelFlags)_stream.ReadInt16(); // Load Map Names LoadMapNames(); // Load Map Descriptions LoadMapDescriptions(); // Load Map Physical Name _stream.SeekTo(_mapInformation.Game == GameIdentifier.Halo4 ? 0x1584 : 0x0F44); _mapInformation.PhysicalName = _stream.ReadAscii(); // Load Map Internal Name _stream.SeekTo(_mapInformation.Game == GameIdentifier.Halo4 ? 0x1684 : 0x1044); _mapInformation.InternalName = _stream.ReadAscii(); }
public void LoadMapInfo(EngineDatabase database) { _mapInformation = new MaplevlInfo(); // Find out which engine the file uses _stream.SeekTo(0x34); var size = _stream.ReadInt32(); _stream.SeekTo(0x38); var version = _stream.ReadUInt16(); Engine = database.FindEngine(size, version); if (Engine == null) { throw new NotSupportedException("Engine version " + version + " of size 0x" + size.ToString("X") + " is not supported"); } // Update offsets based on engine info UpdateOffsets(); // Load Map ID _stream.SeekTo(0x3C); _mapInformation.MapID = _stream.ReadInt32(); // Load Flags _stream.SeekTo(0x42); _mapInformation.Flags = (LevelFlags)_stream.ReadInt16(); // Load Map Names and Descriptions LoadMapNames(MapNamesOffset); LoadMapDescriptions(_mapDescriptionsOffset); // Load Map Physical Name _stream.SeekTo(_physicalNameOffset); _mapInformation.PhysicalName = _stream.ReadAscii(); // Load Map Internal Name _stream.SeekTo(_internalNameOffset); _mapInformation.InternalName = _stream.ReadAscii(); // Load Map Index _stream.SeekTo(_mapIndexOffset); _mapInformation.MapIndex = _stream.ReadInt32(); // Load Max Teams if (Engine.MaxTeamCollection != null) { LoadMapMaxTeams(_maxTeamsOffset); } // Load Multiplayer Object Table if (Engine.MultiplayerObjectCollection != null) { LoadMPObjectTable(_mpObjectsOffset); } // Load Insertion Points LoadInsertionPoints(_insertionOffset); // Load Default Author Name if (Engine.UsesDefaultAuthor) { _stream.SeekTo(_defaultAuthorOffset); _mapInformation.DefaultAuthor = _stream.ReadAscii(); } }
public void LoadMapInfo(EngineDatabase database) { _mapInformation = new MaplevlInfo(); // Find out which engine the file uses _stream.SeekTo(0x34); var size = _stream.ReadInt32(); _stream.SeekTo(0x38); var version = _stream.ReadUInt16(); Engine = database.FindEngine(size, version); if (Engine == null) throw new NotSupportedException("Engine version " + version + " of size 0x" + size.ToString("X") + " is not supported"); // Update offsets based on engine info UpdateOffsets(); // Load Map ID _stream.SeekTo(0x3C); _mapInformation.MapID = _stream.ReadInt32(); // Load Flags _stream.SeekTo(0x42); _mapInformation.Flags = (LevelFlags)_stream.ReadInt16(); // Load Map Names and Descriptions LoadMapNames(MapNamesOffset); LoadMapDescriptions(_mapDescriptionsOffset); // Load Map Physical Name _stream.SeekTo(_physicalNameOffset); _mapInformation.PhysicalName = _stream.ReadAscii(); // Load Map Internal Name _stream.SeekTo(_internalNameOffset); _mapInformation.InternalName = _stream.ReadAscii(); // Load Map Index _stream.SeekTo(_mapIndexOffset); _mapInformation.MapIndex = _stream.ReadInt32(); // Load Max Teams if (Engine.MaxTeamCollection != null) LoadMapMaxTeams(_maxTeamsOffset); // Load Multiplayer Object Table if (Engine.MultiplayerObjectCollection != null) LoadMPObjectTable(_mpObjectsOffset); // Load Insertion Points LoadInsertionPoints(_insertionOffset); // Load Default Author Name if (Engine.UsesDefaultAuthor) { _stream.SeekTo(_defaultAuthorOffset); _mapInformation.DefaultAuthor = _stream.ReadAscii(); } }