Exemplo n.º 1
0
        internal void ResolveReferences(BNSAXMLFile parsedBNSA)
        {
            int i = 0;

            foreach (Frame frame in Frames)
            {
                Console.WriteLine("--Resolving Frame " + i + " references");
                frame.ResolveReferences(parsedBNSA);
                i++;
            }
        }
        internal void ResolveReferences(BNSAXMLFile parsedBNSA, Frame owningFrame)
        {
            int i = 0;

            foreach (MiniFrame miniFrame in MiniFrames)
            {
                //Console.WriteLine("--Resolving Frame " + i + " references");
                miniFrame.ResolveReferences(parsedBNSA, owningFrame);
                i++;
            }
        }
 internal void ResolveReferences(BNSAXMLFile parsedBNSA, Frame owningFrame)
 {
     Console.Write("----Resolving MiniFrame OAMList Index " + OAMDataListIndex);
     ResolvedOAMDataList = owningFrame.ResolvedOAMDataListGroup.OAMDataLists[OAMDataListIndex];
     if (ResolvedOAMDataList == null)
     {
         Console.WriteLine("... Failed to resolve: " + OAMDataListIndex);
     }
     else
     {
         Console.WriteLine("... OK");
     }
 }
        /// <summary>
        /// Converts pointers to references to other parsed BNSA objects. This allows us to export references rather than hard coded values for easy recompilation and editing of the outputted XML.
        /// </summary>
        /// <param name="parsedBNSA">BNSA XML File that has been parsed</param>
        public void ResolveReferences(BNSAXMLFile parsedBNSA)
        {
            //foreach (Palette palette in parsedBNSA.Palettes)
            //{
            //    if (palette.Pointer == PalettePointer)
            //    {
            //        ResolvedPalette = palette;
            //        break;
            //    }
            //}

            foreach (Tileset tileset in parsedBNSA.Tilesets)
            {
                if (tileset.Index == TilesetIndex)
                {
                    ResolvedTileset = tileset;
                    break;
                }
            }
            foreach (OAMDataListGroup oamDataListGroup in parsedBNSA.OAMDataListGroups)
            {
                if (oamDataListGroup.Index == OAMDataListIndex)
                {
                    ResolvedOAMDataListGroup = oamDataListGroup;
                    break;
                }
            }
            foreach (MiniAnimGroup minianimgroup in parsedBNSA.MiniAnimationGroups)
            {
                if (minianimgroup.Index == MiniAnimationIndex)
                {
                    ResolvedMiniAnimGroup = minianimgroup;
                    ResolvedMiniAnimGroup.ResolveReferences(parsedBNSA, this);
                    break;
                }
            }



            //if (ResolvedPalette != null)
            //{
            //    Console.WriteLine("----Resolved Palette Reference");
            //}
            //else
            //{
            //    Console.WriteLine("----/!\\ Failed to Resolve Palette: 0x"+PalettePointer.ToString("X2"));
            //}

            if (ResolvedTileset != null)
            {
                Console.WriteLine("----Resolved Tileset Reference");
            }
            else
            {
                Console.WriteLine("----/!\\ Failed to Resolve Tileset Pointer 0x" + TilesetPointer.ToString("X2"));
                throw new Exception("Failed to resolve tileset object.");
            }

            if (ResolvedMiniAnimGroup != null)
            {
                Console.WriteLine("----Resolved MiniAnim Reference");
            }
            else
            {
                Console.WriteLine("----/!\\ Failed to Resolve MiniAnim 0x" + MiniAnimationPointer.ToString("X2"));
                throw new Exception("Failed to resolve mini-animation object.");
            }

            if (ResolvedOAMDataListGroup != null)
            {
                Console.WriteLine("----Resolved OAM Data List Reference");
            }
            else
            {
                Console.WriteLine("----/!\\ Failed to Resolve OAM Data List 0x" + OAMDataListPointer.ToString("X2"));
                throw new Exception("Failed to resolve OAM Data list group object.");
            }



            //foreach (MiniAnim tileset in parsedBNSA.MiniAnimGroups)
            //{
            //    if (minianim.Pointer == TilesetPointer)
            //    {
            //        ResolvedMiniAnim = tileset;
            //        break;
            //    }
            //}
        }