Ejemplo n.º 1
0
        public void InsertModification(Node filesToInsert)
        {
            foreach (Node nNew in filesToInsert.Children)
            {
                uint newOffset = 0;
                foreach (Node nOld in Navigator.IterateNodes(AlarFiles.Root))
                {
                    if (!nOld.IsContainer)
                    {
                        ALAR3File alarFileOld = nOld.GetFormatAs <ALAR3File>();

                        if (newOffset > 0)
                        {
                            alarFileOld.Offset = newOffset;
                            newOffset          = alarFileOld.Offset + alarFileOld.Size;
                        }
                        if (nOld.Name == nNew.Name)
                        {
                            log.Debug("Overriding " + nNew.Name);

                            alarFileOld = ReplaceStream(alarFileOld, nNew.Stream);

                            newOffset = alarFileOld.Offset + alarFileOld.Size;
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private ALAR3File ReplaceStream(ALAR3File old, DataStream stream)
        {
            ALAR3File newAlar = new ALAR3File(stream)
            {
                FileID = old.FileID,
                Offset = old.Offset,
                Unk3   = old.Unk3,
                Unk4   = old.Unk4,
                Unk5   = old.Unk5,
                Unk6   = old.Unk6,
                Size   = (uint)stream.Length
            };

            return(newAlar);
        }
Ejemplo n.º 3
0
        private ALAR3File ReplaceStream(ALAR3File old, DataStream stream)
        {
            ALAR3File newAlar = new ALAR3File(stream);


            newAlar.FileID = old.FileID;
            newAlar.Offset = old.Offset;
            newAlar.Unk3   = old.Unk3;
            newAlar.Unk4   = old.Unk4;
            newAlar.Unk5   = old.Unk5;
            newAlar.Unk6   = old.Unk6;
            newAlar.Size   = (uint)stream.Length;

            return(newAlar);
        }