public void LoadLevelData(MapListing map) { mapDetailScreen.SetActive(true); mapNameText.text = map.MapName; mapDescText.text = map.MapDescription; mapImage.sprite = map.Image; goButton.onClick.AddListener(delegate { SceneManager.LoadScene(map.sceneIndex); }); }
public SetFile(string inFilename, byte[] rawData, byte[] inHeader, int[] ptrs, int baseAddr, bool bigEndian = false) { header = inHeader; filename = inFilename; //Assuming they'll always base 0. MemoryStream transFile = new MemoryStream(rawData); BinaryReader fileReader = BigEndianBinaryReader.GetEndianSpecificBinaryReader(transFile, bigEndian); transFile.Seek(8, SeekOrigin.Begin); int headerLoc = fileReader.ReadInt32(); transFile.Seek(headerLoc, SeekOrigin.Begin); areaID = fileReader.ReadInt16(); short mapCount = fileReader.ReadInt16(); int mainListPointer = fileReader.ReadInt32() - baseAddr; mapData = new MapListing[mapCount]; for (int i = 0; i < mapCount; i++) { transFile.Seek(mainListPointer + i * 12, SeekOrigin.Begin); mapData[i] = new MapListing(); mapData[i].mapNumber = fileReader.ReadInt16(); short listCount = fileReader.ReadInt16(); mapData[i].headers = new ListHeader[listCount]; int listPtr = fileReader.ReadInt32() - baseAddr; for (int j = 0; j < listCount; j++) { transFile.Seek(listPtr + j * 0x28, SeekOrigin.Begin); mapData[i].headers[j] = new ListHeader(); mapData[i].headers[j].headerBytes = fileReader.ReadBytes(34); short listEntryCount = fileReader.ReadInt16(); mapData[i].headers[j].objects = new ObjectEntry[listEntryCount]; int objectListLoc = fileReader.ReadInt32() - baseAddr; for (int k = 0; k < listEntryCount; k++) { transFile.Seek(objectListLoc + k * 0x34, SeekOrigin.Begin); ObjectEntry temp = new ObjectEntry(); temp.startBytes = fileReader.ReadBytes(14); temp.objID = fileReader.ReadInt16(); temp.unkInt1 = fileReader.ReadInt32(); temp.objX = fileReader.ReadSingle(); temp.objY = fileReader.ReadSingle(); temp.objZ = fileReader.ReadSingle(); temp.objRotX = fileReader.ReadSingle(); temp.objRotY = fileReader.ReadSingle(); temp.objRotZ = fileReader.ReadSingle(); temp.metadataLength = fileReader.ReadInt32(); int metadataLoc = fileReader.ReadInt32() - baseAddr; transFile.Seek(metadataLoc, SeekOrigin.Begin); temp.metadata = fileReader.ReadBytes(temp.metadataLength); mapData[i].headers[j].objects[k] = temp; } } } }
private void addMapListButton_Click(object sender, EventArgs e) { List <MapListing> newMapData = internalFile.mapData.ToList(); ObjectEntry[] newObjectList = new ObjectEntry[1]; newObjectList[0] = new ObjectEntry(); ListHeader newListHeader = new ListHeader(); newListHeader.headerBytes = new byte[36]; newListHeader.objects = newObjectList; MapListing newMapListing = new MapListing(); newMapListing.headers = new ListHeader[] { newListHeader }; newMapData.Add(newMapListing); internalFile.mapData = newMapData.ToArray(); mapListCB.BeginUpdate(); mapListCB.Items.Add(internalFile.mapData[mapListCB.Items.Count - 1].mapNumber); mapListCB.EndUpdate(); mapListCB.SelectedIndex = mapListCB.Items.Count - 1; }