Пример #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Let's do this shit, go chris brown on the return key");
            Console.ReadLine();

            string mapInfoFolder = @"C:\Users\Alex\Documents\My Received Files\info\info\";

            DirectoryInfo di = new DirectoryInfo(mapInfoFolder);
            FileInfo[] rgFiles = di.GetFiles("*.mapinfo");
            foreach (FileInfo fi in rgFiles)
            {
                string fileName = Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(fi.Name.ToLower());

                EndianStream stream = new EndianStream(new FileStream(fi.FullName, FileMode.OpenOrCreate), Endian.BigEndian);
                stream.SeekTo(0x3C);
                Int32 mapID = stream.ReadInt32();

                string jsonDB = File.ReadAllText(@"C:/Users/Alex/Desktop/" + fi.Name.Replace(fi.Extension, "") + "_json.h3tagdb");
                jsonDB = jsonDB.Replace("\"MapID\":0", "\"MapID\":" + mapID.ToString());
                File.WriteAllText(@"C:/Users/Alex/Desktop/" + fi.Name.Replace(fi.Extension, "") + "_json.h3tagdb", jsonDB);

                Console.WriteLine("Grabbed ID of {0}", fi.Name.Replace(fi.Extension, ""));
            }

            Console.WriteLine("All done");
            Console.ReadLine();
        }
Пример #2
0
        /// <summary>
        /// Initalize new instance of the Halo: Reach Film
        /// </summary>
        /// <param name="filmStream">Stream of a Halo: Reach 'feature.film' extracted from a Container file.</param>
        public Film(Stream filmStream)
        {
            _filmPath = null;
            _filmStream = new EndianStream(filmStream, Endian.BigEndian);

            if (!IsValidFilm())
            {
                Close();
                throw new Exception("Invalid Halo Reach Film!");
            }

            LoadHeader();

            LoadPlayerTable();
        }
Пример #3
0
        /// <summary>
        /// Initalize new instance of the Halo: Reach Film
        /// </summary>
        /// <param name="filmPath">Path to the Halo: Reach 'feature.film' extracted from a Container file.</param>
        public Film(string filmPath)
        {
            _filmPath = filmPath;
            _filmStream = new EndianStream(new MemoryStream(File.ReadAllBytes(_filmPath)), Endian.BigEndian);

            if (!IsValidFilm())
            {
                Close();
                throw new Exception("Invalid Halo Reach Film!");
            }

            LoadHeader();

            LoadPlayerTable();
        }
Пример #4
0
        /// <summary>
        /// Initalize new instance of the Halo 3 Film
        /// </summary>
        /// <param name="filmPath">Path to the Halo 3 'feature.film' extracted from a Container file.</param>
        public Film(string filmPath)
        {
            _filmPath = filmPath;
            Stream memStream = new MemoryStream(File.ReadAllBytes(filmPath));
            _filmStream = new EndianStream(memStream, Endian.BigEndian);

            if (!IsValidFilm())
            {
                Close();
                throw new Exception("Invalid Halo 3 Film!");
            }

            LoadHeader();
            LoadMachineIDTable();
            LoadPlayerTable();
            LoadFooter();
        }
Пример #5
0
        private void Initalize(Stream fileStream)
        {
            _gpdStream = new EndianStream(fileStream, Endian.BigEndian);

            if (!IsValidGPD())
            {
                Close();
                throw new Exception("Invalid Halo 3 GPD!");
            }

            LoadPlayerVisuals();
            LoadCampaignCompletion();
        }
Пример #6
0
        private void Initalize(Stream blfStream)
        {
            _blfStream = new EndianStream(blfStream, Endian.BigEndian);

            if (!isValidBLF())
            {
                Close();
                throw new Exception("Invalid BLF Container!");
            }

            LoadChunkTable();
        }
Пример #7
0
        private void Initalize(Stream shotStream)
        {
            _shotStream = new EndianStream(shotStream, Endian.BigEndian);

            if (!isValidScreen())
            {
                Close();
                throw new Exception("Invalid Halo 3 screenshot!");
            }

            // Load Screenshot Parts
            LoadHeader();
            LoadScreenshot();
        }
Пример #8
0
 public void Update(EndianStream stream)
 {
     stream.SeekTo(Offset);
     stream.WriteInt32(Ident);
     stream.WriteByte(RunTimeMinimium);
     stream.WriteByte(RunTimeMaximium);
     stream.WriteByte(CountOnMap);
     stream.WriteByte(DesignTimeMaximium);
     stream.WriteFloat(Cost);
 }
Пример #9
0
 public TagEntry(EndianStream stream, Tag mapTags)
 {
     PlacedItems = new List<ItemPlacementChunk>();
     Offset = stream.Position;
     Ident = stream.ReadInt32();
     Tag = mapTags.SearchTags(Ident);
     RunTimeMinimium = stream.ReadByte();
     RunTimeMaximium = stream.ReadByte();
     CountOnMap = stream.ReadByte();
     DesignTimeMaximium = stream.ReadByte();
     Cost = stream.ReadFloat();
 }
Пример #10
0
 public void Update(EndianStream stream)
 {
     stream.SeekTo(Offset);
     stream.WriteInt16((Int16)ChunkType);
     stream.SeekTo(stream.Position + 0x0A);
     stream.WriteInt32(TagIndex);
     stream.WriteFloat(SpawnCoords.X);
     stream.WriteFloat(SpawnCoords.Y);
     stream.WriteFloat(SpawnCoords.Z);
     stream.WriteFloat(SpawnCoords.Pitch);
     stream.WriteFloat(SpawnCoords.Yaw);
     stream.WriteFloat(SpawnCoords.Roll);
     stream.SeekTo(stream.Position + 0x16);
     stream.Skip(0x01);
     stream.WriteByte(Team);
     stream.WriteByte(SpareClips);
     stream.WriteByte(RespawnTime);
     stream.SeekTo(stream.Position + 0x12);
 }
Пример #11
0
 public ItemPlacementChunk(EndianStream stream)
 {
     Offset = stream.Position;
     ChunkType = (ItemChunkType)stream.ReadInt16();
     stream.SeekTo(stream.Position + 0x0A);
     TagIndex = stream.ReadInt32();
     SpawnCoords = new ItemSpawnCoords()
     {
         X = stream.ReadFloat(),
         Y = stream.ReadFloat(),
         Z = stream.ReadFloat(),
         Yaw = stream.ReadFloat(),
         Pitch = stream.ReadFloat(),
         Roll = stream.ReadFloat()
     };
     stream.SeekTo(stream.Position + 0x16);
     stream.ReadByte();
     Team = stream.ReadByte();
     SpareClips = stream.ReadByte();
     RespawnTime = stream.ReadByte();
     stream.SeekTo(stream.Position + 0x12);
 }
Пример #12
0
        private void Initalize(Stream finalStream)
        {
            _forgeStream = new EndianStream(finalStream, Endian.BigEndian);

            if (!IsValidUsermap())
            {
                Close();
                throw new Exception("Invalid Halo 3 Usermap!");
            }

            LoadHeader();
            LoadTags();
            LoadItemPlacementChunks();
            LoadTagEntry();
            ApplyTagIndexes();
        }
Пример #13
0
        private void Initalize(Stream filmStream)
        {
            _filmStream = new EndianStream(filmStream, Endian.BigEndian);

            if (!isValidFilm())
            {
                Close();
                throw new Exception("Invalid Halo 3: ODST film!");
            }

            // Load Film Parts
            LoadHeader();
            LoadPlayerTable();
        }