Example #1
0
        public bool Fix()
        {
            // already converted
            if (!adt.Valid || !obj.Valid || !tex.Valid || adt.ReadUInt(0x18) > 0)
            {
                return(false);
            }

            // Update the version
            adt.WriteInt(8, 12);

            CreateMCIN();

            if (adt.HasChunk("MTEX"))
            {
                RetrieveMTEX();
            }
            if (adt.HasChunk("MMDX"))
            {
                RetrieveMMDX();
            }
            if (tex.HasChunk("MDID") && tex.HasChunk("MHID"))       //< Textures.
            {
                RetrieveTextures();
                WriteMTEX();
            }

            if (obj.HasChunk("MMID") && obj.HasChunk("MWMO") && obj.HasChunk("MWID"))
            {
                RetrieveMMID();
                RetrieveMWMO();
                RetrieveMWID();
            }

            if (obj.HasChunk("MDDF") && obj.HasChunk("MODF"))
            {
            }

            CheckMH2O();

            for (int i = 0; i < 256; ++i)
            {
                RetrieveMCNK(i);
            }

            CheckMFBO();

            RetrieveMTXF();

            return(true);
        }