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; // } //} }