BrawlCrate v0.41
Wii File Editor
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Properties | Events | List of all members
BrawlLib.SSBB.ResourceNodes.ResourceNode Class Reference
Inheritance diagram for BrawlLib.SSBB.ResourceNodes.ResourceNode:
BrawlLib.SSBB.MuEventNode BrawlLib.SSBB.MuEventTblNode BrawlLib.SSBB.ResourceNodes.ADPMEntryNode BrawlLib.SSBB.ResourceNodes.ADSJEntryNode BrawlLib.SSBB.ResourceNodes.AIPDDefBlockNode BrawlLib.SSBB.ResourceNodes.AIPDSubBlockNode BrawlLib.SSBB.ResourceNodes.AIPDType1EntryNode BrawlLib.SSBB.ResourceNodes.AIPDType1Node BrawlLib.SSBB.ResourceNodes.AIPDType1OffsetsNode BrawlLib.SSBB.ResourceNodes.AIPDType2EntryNode BrawlLib.SSBB.ResourceNodes.AIPDType2Node BrawlLib.SSBB.ResourceNodes.AIPDType2OffsetsNode BrawlLib.SSBB.ResourceNodes.AIPDUnkBlockNode BrawlLib.SSBB.ResourceNodes.ARCEntryGroup BrawlLib.SSBB.ResourceNodes.ATKDEntryNode BrawlLib.SSBB.ResourceNodes.AllstarDifficultyNode BrawlLib.SSBB.ResourceNodes.AllstarFighterNode BrawlLib.SSBB.ResourceNodes.AllstarStageTblNode BrawlLib.SSBB.ResourceNodes.BGMGEntryNode BrawlLib.SSBB.ResourceNodes.BLOCEntryNode BrawlLib.SSBB.ResourceNodes.BRESEntryNode BrawlLib.SSBB.ResourceNodes.BRESGroupNode BrawlLib.SSBB.ResourceNodes.CEEntryNode BrawlLib.SSBB.ResourceNodes.CEEventNode BrawlLib.SSBB.ResourceNodes.CEGroupNode BrawlLib.SSBB.ResourceNodes.CEStringNode BrawlLib.SSBB.ResourceNodes.CHR0EntryNode BrawlLib.SSBB.ResourceNodes.CLR0MaterialEntryNode BrawlLib.SSBB.ResourceNodes.CLR0MaterialNode BrawlLib.SSBB.ResourceNodes.CMMEntryNode BrawlLib.SSBB.ResourceNodes.CMMNode BrawlLib.SSBB.ResourceNodes.COSCNode BrawlLib.SSBB.ResourceNodes.CSSCEntryNode BrawlLib.SSBB.ResourceNodes.CSSCNode BrawlLib.SSBB.ResourceNodes.ClassicDifficultyNode BrawlLib.SSBB.ResourceNodes.ClassicFighterNode BrawlLib.SSBB.ResourceNodes.ClassicStageBlockNode BrawlLib.SSBB.ResourceNodes.ClassicStageTblNode BrawlLib.SSBB.ResourceNodes.CollisionObject BrawlLib.SSBB.ResourceNodes.DOLNode BrawlLib.SSBB.ResourceNodes.EFLSEntryNode BrawlLib.SSBB.ResourceNodes.EventMatchDifficultyNode BrawlLib.SSBB.ResourceNodes.EventMatchFighterNode BrawlLib.SSBB.ResourceNodes.EventMatchNode BrawlLib.SSBB.ResourceNodes.FCFGNode BrawlLib.SSBB.ResourceNodes.FileScanNode BrawlLib.SSBB.ResourceNodes.FolderNode BrawlLib.SSBB.ResourceNodes.GBLKEntryNode BrawlLib.SSBB.ResourceNodes.GBLTEntryNode BrawlLib.SSBB.ResourceNodes.GBRFEntryNode BrawlLib.SSBB.ResourceNodes.GCAMEntryNode BrawlLib.SSBB.ResourceNodes.GCATEntryNode BrawlLib.SSBB.ResourceNodes.GCMPEntryNode BrawlLib.SSBB.ResourceNodes.GCTCodeEntryNode BrawlLib.SSBB.ResourceNodes.GCTNode BrawlLib.SSBB.ResourceNodes.GDMDEntryNode BrawlLib.SSBB.ResourceNodes.GDOREntryNode BrawlLib.SSBB.ResourceNodes.GEFFEntryNode BrawlLib.SSBB.ResourceNodes.GEG1EntryNode BrawlLib.SSBB.ResourceNodes.GELAEntryNode BrawlLib.SSBB.ResourceNodes.GELEEntryNode BrawlLib.SSBB.ResourceNodes.GENCEntryNode BrawlLib.SSBB.ResourceNodes.GET1EntryNode BrawlLib.SSBB.ResourceNodes.GET2EntryNode BrawlLib.SSBB.ResourceNodes.GFG1EntryNode BrawlLib.SSBB.ResourceNodes.GFIMEntryNode BrawlLib.SSBB.ResourceNodes.GFINEntryNode BrawlLib.SSBB.ResourceNodes.GFPREntryNode BrawlLib.SSBB.ResourceNodes.GFRKEntryNode BrawlLib.SSBB.ResourceNodes.GFRTEntryNode BrawlLib.SSBB.ResourceNodes.GFSREntryNode BrawlLib.SSBB.ResourceNodes.GFT2EntryNode BrawlLib.SSBB.ResourceNodes.GHPEEntryNode BrawlLib.SSBB.ResourceNodes.GIB2EntryNode BrawlLib.SSBB.ResourceNodes.GITMEntryNode BrawlLib.SSBB.ResourceNodes.GITREntryNode BrawlLib.SSBB.ResourceNodes.GKNGEntryNode BrawlLib.SSBB.ResourceNodes.GLK2EntryNode BrawlLib.SSBB.ResourceNodes.GLOKEntryNode BrawlLib.SSBB.ResourceNodes.GMCAEntryNode BrawlLib.SSBB.ResourceNodes.GMEAEntryNode BrawlLib.SSBB.ResourceNodes.GMINEntryNode BrawlLib.SSBB.ResourceNodes.GMOAEntryNode BrawlLib.SSBB.ResourceNodes.GMOTEntryNode BrawlLib.SSBB.ResourceNodes.GMOVEntryNode BrawlLib.SSBB.ResourceNodes.GMPSEntryNode BrawlLib.SSBB.ResourceNodes.GMRLEntryNode BrawlLib.SSBB.ResourceNodes.GMSJEntryNode BrawlLib.SSBB.ResourceNodes.GMTAEntryNode BrawlLib.SSBB.ResourceNodes.GMV4EntryNode BrawlLib.SSBB.ResourceNodes.GMVAEntryNode BrawlLib.SSBB.ResourceNodes.GMWOEntryNode BrawlLib.SSBB.ResourceNodes.GNDVEntryNode BrawlLib.SSBB.ResourceNodes.GQUKEntryNode BrawlLib.SSBB.ResourceNodes.GSAVEntryNode BrawlLib.SSBB.ResourceNodes.GSBKEntryNode BrawlLib.SSBB.ResourceNodes.GSCNEntryNode BrawlLib.SSBB.ResourceNodes.GSHTEntryNode BrawlLib.SSBB.ResourceNodes.GSNDEntryNode BrawlLib.SSBB.ResourceNodes.GSPREntryNode BrawlLib.SSBB.ResourceNodes.GTIKEntryNode BrawlLib.SSBB.ResourceNodes.GTRCEntryNode BrawlLib.SSBB.ResourceNodes.GWATEntryNode BrawlLib.SSBB.ResourceNodes.GWD2EntryNode BrawlLib.SSBB.ResourceNodes.GWNDEntryNode BrawlLib.SSBB.ResourceNodes.HavokEntryNode BrawlLib.SSBB.ResourceNodes.ISOEntryNode BrawlLib.SSBB.ResourceNodes.ItmFreqEntryNode BrawlLib.SSBB.ResourceNodes.ItmParamEntryNode BrawlLib.SSBB.ResourceNodes.ItmTableGroupNode BrawlLib.SSBB.ResourceNodes.ItmTableNode BrawlLib.SSBB.ResourceNodes.MDL0EntryNode BrawlLib.SSBB.ResourceNodes.MDL0GroupNode BrawlLib.SSBB.ResourceNodes.MRGNode BrawlLib.SSBB.ResourceNodes.MVPMEntryNode BrawlLib.SSBB.ResourceNodes.MasqueradeEntryNode BrawlLib.SSBB.ResourceNodes.MasqueradeNode BrawlLib.SSBB.ResourceNodes.MoveDefEntryNode BrawlLib.SSBB.ResourceNodes.NW4REntryNode BrawlLib.SSBB.ResourceNodes.NW4RNode BrawlLib.SSBB.ResourceNodes.PAT0EntryNode BrawlLib.SSBB.ResourceNodes.PAT0TextureEntryNode BrawlLib.SSBB.ResourceNodes.PAT0TextureNode BrawlLib.SSBB.ResourceNodes.PathingMiscDataEntryNode BrawlLib.SSBB.ResourceNodes.PathingMiscDataSubEntryNode BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSEntryNode BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSNode BrawlLib.SSBB.ResourceNodes.ProjectPlus.STEXNode BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTEntryNode BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTNode BrawlLib.SSBB.ResourceNodes.RBNKDataGroupNode BrawlLib.SSBB.ResourceNodes.RBNKEntryNode BrawlLib.SSBB.ResourceNodes.RBNKSoundGroupNode BrawlLib.SSBB.ResourceNodes.RE3DEntryNode BrawlLib.SSBB.ResourceNodes.REFFAnimationListNode BrawlLib.SSBB.ResourceNodes.REFFAnimationNode BrawlLib.SSBB.ResourceNodes.REFFEmitterNode7 BrawlLib.SSBB.ResourceNodes.REFFEmitterNode9 BrawlLib.SSBB.ResourceNodes.REFFEntryNode BrawlLib.SSBB.ResourceNodes.REFFParticleNode BrawlLib.SSBB.ResourceNodes.REFFPostFieldInfoNode BrawlLib.SSBB.ResourceNodes.REFFTEVStage BrawlLib.SSBB.ResourceNodes.REFTEntryNode BrawlLib.SSBB.ResourceNodes.RELEntryNode BrawlLib.SSBB.ResourceNodes.RSAREntryNode BrawlLib.SSBB.ResourceNodes.RSARFileEntryNode BrawlLib.SSBB.ResourceNodes.RSARFolderNode BrawlLib.SSBB.ResourceNodes.RSEQLabelNode BrawlLib.SSBB.ResourceNodes.RSTCEntryNode BrawlLib.SSBB.ResourceNodes.RSTCGroupNode BrawlLib.SSBB.ResourceNodes.RSTCNode BrawlLib.SSBB.ResourceNodes.RWSDDataGroupNode BrawlLib.SSBB.ResourceNodes.RWSDSoundGroupNode BrawlLib.SSBB.ResourceNodes.RawDataNode BrawlLib.SSBB.ResourceNodes.SCLAEntryNode BrawlLib.SSBB.ResourceNodes.SCN0EntryNode BrawlLib.SSBB.ResourceNodes.SCN0GroupNode BrawlLib.SSBB.ResourceNodes.SHP0EntryNode BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode BrawlLib.SSBB.ResourceNodes.SLTCNode BrawlLib.SSBB.ResourceNodes.SRT0EntryNode BrawlLib.SSBB.ResourceNodes.SRT0TextureNode BrawlLib.SSBB.ResourceNodes.STPMEntryNode BrawlLib.SSBB.ResourceNodes.SndBgmTitleDataNode BrawlLib.SSBB.ResourceNodes.SndBgmTitleEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.Navigation.GWAPEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBCEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GLADEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GMWAEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GSTGEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GTRREntryNode BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBNode BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCNode BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCTeamNode BrawlLib.SSBB.ResourceNodes.Subspace.Triggers.GASDEntryNode BrawlLib.SSBB.ResourceNodes.Subspace.Triggers.GEPTEntryNode BrawlLib.SSBB.ResourceNodes.TBCLEntryNode BrawlLib.SSBB.ResourceNodes.TBGCEntryNode BrawlLib.SSBB.ResourceNodes.TBGDEntryNode BrawlLib.SSBB.ResourceNodes.TBGMEntryNode BrawlLib.SSBB.ResourceNodes.TBLVEntryNode BrawlLib.SSBB.ResourceNodes.TBRMEntryNode BrawlLib.SSBB.ResourceNodes.TBSTEntryNode BrawlLib.SSBB.ResourceNodes.THPNode BrawlLib.SSBB.ResourceNodes.TPLPaletteNode BrawlLib.SSBB.ResourceNodes.TPLTextureNode BrawlLib.SSBB.ResourceNodes.TyDataListEntryNode BrawlLib.SSBB.ResourceNodes.TyEntryNode BrawlLib.SSBB.ResourceNodes.TySealNode BrawlLib.SSBB.ResourceNodes.TySealVertDataEntryNode BrawlLib.SSBB.ResourceNodes.TySealVertListEntryNode BrawlLib.SSBB.ResourceNodes.U8EntryNode BrawlLib.SSBB.ResourceNodes.VIS0EntryNode

Public Member Functions

void OnRenamed ()
 
List< ResourceNodeGetChildrenRecursive ()
 Used primarily to get bone lists. Kept for all resource nodes for utility. More...
 
virtual void SignalPropertyChange ()
 
virtual void Dispose ()
 
void SelectChildAtIndex (int index)
 
void UpdateProperties ()
 
void UpdateCurrentControl ()
 
virtual bool MoveUp ()
 
virtual bool MoveDown ()
 
virtual void OnMoved ()
 
virtual void DoMoveDown ()
 
virtual void DoMoveDown (bool select)
 
virtual void DoMoveUp ()
 
virtual void DoMoveUp (bool select)
 
virtual bool AddUp ()
 
virtual bool AddDown ()
 
virtual bool ToParent ()
 
void Populate (int levels=-1)
 
virtual void OnPopulate ()
 
void Initialize (ResourceNode parent, FileMap source)
 
void Initialize (ResourceNode parent, VoidPtr address, int length)
 
void Initialize (ResourceNode parent, DataSource origSource)
 
virtual void Initialize (ResourceNode parent, DataSource origSource, DataSource uncompSource)
 
virtual bool OnInitialize ()
 
virtual void Restore ()
 
virtual void Remove ()
 
virtual void RemoveChild (ResourceNode child)
 
virtual void AddChild (ResourceNode child)
 
virtual void AddChild (ResourceNode child, bool change)
 
virtual void InsertChild (ResourceNode child, int index)
 
virtual void InsertChild (ResourceNode child, bool change, int index)
 
void SetSizeInternal (int size)
 
virtual void Replace (string fileName)
 
virtual void Replace (ResourceNode node)
 
virtual void Replace (string fileName, FileMapProtect prot, FileOptions options)
 
virtual void ReplaceRaw (VoidPtr address, int length)
 
virtual void ReplaceRaw (FileMap map)
 
virtual void Export (string outPath)
 
void Export (FileStream outStream)
 
virtual void ExportUncompressed (string outPath)
 
void ExportUncompressed (FileStream outStream)
 
virtual void Rebuild ()
 
virtual void Rebuild (bool force)
 
virtual void Rebuild (VoidPtr address, int length, bool force)
 
virtual void OnRebuild (VoidPtr address, int length, bool force)
 
virtual int CalculateSize (bool force)
 
virtual int OnCalculateSize (bool force)
 
void Merge ()
 
void Merge (bool forceBuild)
 
ResourceNode FindChildByType (string path, bool searchChildren, params ResourceType[] types)
 
ResourceNode FindChildByType (string path, bool searchChildren, StringComparison compare, params ResourceType[] types)
 
ResourceNode FindChild (string path)
 
ResourceNode FindChild (string path, bool searchChildren)
 
ResourceNode FindChild (string path, StringComparison compare)
 
ResourceNode FindChild (string path, bool searchChildren, StringComparison compare)
 
ResourceNode[] FindChildrenByClassType (string path, Type type)
 
ResourceNode[] FindChildrenByType (string path, ResourceType type)
 
ResourceNode[] FindChildrenByTypeInGroup (string path, ResourceType type, byte group)
 
ResourceNode[] FindChildrenByName (string name)
 
unsafe string FindName (string name)
 
ResourceNode FindEmbeddedIndex (int index)
 
virtual unsafe byte[] MD5 ()
 Find the MD5 checksum of this node's data. If this node doesn't have any data (BRESGroupNode, for example), this method will return null. More...
 
string MD5Str ()
 Get the result of the MD5() function as a string of hexadecimal digits. If MD5() returns null, this method will return an empty string. More...
 
ResourceNode PrevSibling ()
 
ResourceNode NextSibling ()
 
override string ToString ()
 
virtual void SortChildren ()
 

Static Public Member Functions

static ResourceNode[] FindAllSubNodes (ResourceNode root)
 
static ResourceNode FindNode (ResourceNode root, string path, bool searchChildren, StringComparison compare)
 

Public Attributes

Form _mainForm
 
string _name
 
string _origPath
 
ResourceNode _parent
 
List< ResourceNode_children = new List<ResourceNode>()
 
int _calcSize
 
EventHandler UpdateControl
 
MoveEventHandler MovedDown
 
ResourceEventHandler Renamed
 
ResourceEventHandler PropertyChanged
 
ResourceEventHandler Replaced
 
ResourceEventHandler Restored
 
ResourceChildEventHandler ChildRemoved
 
bool _isPopulating
 
bool _replaced
 

Protected Member Functions

void ForceReplacedEvent ()
 
virtual void MergeInternal ()
 

Properties

string FilePath [get]
 
string FileName [get]
 
string DirectoryName [get]
 
ResourceNode RootNode [get]
 
DataSource OriginalSource [get]
 
DataSource UncompressedSource [get]
 
DataSource WorkingSource [get]
 
DataSource WorkingUncompressed [get]
 
virtual bool HasChildren [get]
 
virtual ResourceType ResourceFileType [get]
 
string NodeType [get]
 
virtual string TreePathAbsolute [get]
 
virtual string TreePath [get]
 
virtual int Level [get]
 
virtual int MaxNameLength [get]
 
virtual bool AllowDuplicateNames [get]
 
virtual bool AllowNullNames [get]
 
virtual string Name [get, set]
 
ResourceNode Parent [get, set]
 
List< ResourceNodeChildren [get]
 
int Index [get]
 
int HexIndex [get]
 
bool IsCompressed [get]
 
bool HasChanged [get, set]
 
bool IsBranch [get]
 
bool HasMerged [get]
 
virtual bool AllowSaving [get, set]
 
virtual bool IsDirty [get, set]
 
virtual uint UncompressedSize [get]
 
virtual Type[] AllowedChildTypes [get]
 
virtual string Compression [get, set]
 
virtual bool RetainChildrenOnReplace [get]
 
virtual bool supportsCompression [get]
 
static MD5CryptoServiceProvider MD5Provider [get]
 

Events

SelectEventHandler SelectChild
 
EventHandler UpdateProps
 
MoveEventHandler MovedUp
 
ResourceEventHandler Disposing
 
ResourceChildEventHandler ChildAdded
 
ResourceChildInsertEventHandler ChildInserted
 

Member Function Documentation

◆ AddChild() [1/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.AddChild ( ResourceNode  child)
inlinevirtual
758 {
759 AddChild(child, true);
760 }
virtual void AddChild(ResourceNode child)
Definition: ResourceNode.cs:757

◆ AddChild() [2/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.AddChild ( ResourceNode  child,
bool  change 
)
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.MDL0Node, and BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.

763 {
764 Children.Add(child);
765 child._parent = this;
766 ChildAdded?.Invoke(this, child);
767
768 if (change)
769 {
770 _changed = true;
771 }
772 }
ResourceChildEventHandler ChildAdded
Definition: ResourceNode.cs:154
List< ResourceNode > Children
Definition: ResourceNode.cs:262

◆ AddDown()

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.AddDown ( )
inlinevirtual
582 {
583 int index = Index + 1;
584 if (index >= Parent.Children.Count)
585 {
586 return false;
587 }
588
589 if (Parent.Children[index] is MDL0BoneNode)
590 {
591 return true;
592 }
593
594 return false;
595 }
ResourceNode Parent
Definition: ResourceNode.cs:245
int Index
Definition: ResourceNode.cs:301

◆ AddUp()

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.AddUp ( )
inlinevirtual
566 {
567 int index = Index - 1;
568 if (index < 0)
569 {
570 return false;
571 }
572
573 if (Parent.Children[index] is MDL0BoneNode)
574 {
575 return true;
576 }
577
578 return false;
579 }

◆ CalculateSize()

virtual int BrawlLib.SSBB.ResourceNodes.ResourceNode.CalculateSize ( bool  force)
inlinevirtual
1162 {
1163 if (IsDirty || force)
1164 {
1165 if (_compression == CompressionType.None)
1166 {
1167 return _calcSize = OnCalculateSize(force);
1168 }
1169
1170 Rebuild(force);
1171 }
1172
1174 }
virtual void Rebuild()
Definition: ResourceNode.cs:987
virtual bool IsDirty
Definition: ResourceNode.cs:344
int _calcSize
Definition: ResourceNode.cs:145
virtual int OnCalculateSize(bool force)
Definition: ResourceNode.cs:1179
DataSource WorkingSource
Definition: ResourceNode.cs:180
CompressionType
Definition: CompressionHeader.cs:9
int Length
Definition: ResourceNode.cs:32

◆ Dispose()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Dispose ( )
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.MDL0ObjectNode, BrawlLib.SSBB.ResourceNodes.ModuleDataNode, BrawlLib.SSBB.ResourceNodes.RELNode, BrawlLib.SSBB.ResourceNodes.ModuleSectionNode, and BrawlLib.SSBB.ResourceNodes.RSARFileAudioNode.

431 {
432 if (_disposed)
433 {
434 return;
435 }
436
437 _disposed = true;
438
439 Disposing?.Invoke(this);
440
441 //if (_parent != null)
442 //{
443 // _parent._children.Remove(this);
444 // _parent = null;
445 //}
446
447 if (_children != null)
448 {
449 //while (_children.Count > 0)
450 // _children[0].Dispose();
451
452 foreach (ResourceNode node in _children)
453 {
454 node.Dispose();
455 }
456
457 //_children.Clear();
458 //_children = null;
459 }
460
461 //_currentSource.Close();
462 _uncompSource.Close();
463 _origSource.Close();
464 _replUncompSrc.Close();
465 _replSrc.Close();
466
467 GC.SuppressFinalize(this);
468 }
ResourceEventHandler Disposing
Definition: ResourceNode.cs:153
List< ResourceNode > _children
Definition: ResourceNode.cs:143
void Close()
Definition: ResourceNode.cs:87

◆ DoMoveDown() [1/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.DoMoveDown ( )
inlinevirtual
532 {
533 DoMoveDown(true);
534 }
virtual void DoMoveDown()
Definition: ResourceNode.cs:531

◆ DoMoveDown() [2/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.DoMoveDown ( bool  select)
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.MDL0TEVStageNode.

537 {
538 if (MovedDown != null)
539 {
540 MovedDown(this, select);
541 }
542 else
543 {
544 MoveDown();
545 }
546 }
MoveEventHandler MovedDown
Definition: ResourceNode.cs:152
virtual bool MoveDown()
Definition: ResourceNode.cs:508

◆ DoMoveUp() [1/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.DoMoveUp ( )
inlinevirtual
549 {
550 DoMoveUp(true);
551 }
virtual void DoMoveUp()
Definition: ResourceNode.cs:548

◆ DoMoveUp() [2/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.DoMoveUp ( bool  select)
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.MDL0TEVStageNode.

554 {
555 if (MovedUp != null)
556 {
557 MovedUp(this, select);
558 }
559 else
560 {
561 MoveUp();
562 }
563 }
virtual bool MoveUp()
Definition: ResourceNode.cs:489
MoveEventHandler MovedUp
Definition: ResourceNode.cs:152

◆ Export() [1/2]

void BrawlLib.SSBB.ResourceNodes.ResourceNode.Export ( FileStream  outStream)
inline
932 {
933 if (WorkingSource.Length != 0)
934 {
935 outStream.SetLength(WorkingSource.Length);
936 using (FileMap map = FileMap.FromStream(outStream))
937 {
939 }
940 }
941 else
942 {
943 MessageBox.Show("Data was empty!");
944 }
945 }
Definition: FileMap.cs:10
static FileMap FromStream(FileStream stream)
Definition: FileMap.cs:117
VoidPtr Address
Definition: FileMap.cs:16
Definition: Memory.cs:8
static void Move(VoidPtr dst, VoidPtr src, uint size)
Definition: Memory.cs:9
VoidPtr Address
Definition: ResourceNode.cs:31

◆ Export() [2/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Export ( string  outPath)
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.CEStringNode, BrawlLib.SSBB.ResourceNodes.CHR0Node, BrawlLib.SSBB.ResourceNodes.CHR0EntryNode, BrawlLib.SSBB.ResourceNodes.CLR0MaterialEntryNode, BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode, BrawlLib.SSBB.ResourceNodes.SRT0EntryNode, BrawlLib.SSBB.ResourceNodes.SRT0TextureNode, BrawlLib.SSBB.ResourceNodes.ARCNode, BrawlLib.SSBB.ResourceNodes.BRESEntryNode, BrawlLib.SSBB.ResourceNodes.FolderNode, BrawlLib.SSBB.ResourceNodes.MRGNode, BrawlLib.SSBB.ResourceNodes.U8Node, BrawlLib.SSBB.ResourceNodes.CollisionObject, BrawlLib.SSBB.ResourceNodes.REFTEntryNode, BrawlLib.SSBB.ResourceNodes.TEX0Node, BrawlLib.SSBB.ResourceNodes.TPLTextureNode, BrawlLib.SSBB.ResourceNodes.HavokNode, BrawlLib.SSBB.ResourceNodes.MDL0FurPosNode, BrawlLib.SSBB.ResourceNodes.MDL0FurVecNode, BrawlLib.SSBB.ResourceNodes.MDL0MaterialNode, BrawlLib.SSBB.ResourceNodes.MDL0MaterialRefNode, BrawlLib.SSBB.ResourceNodes.MDL0Node, BrawlLib.SSBB.ResourceNodes.MDL0ObjectNode, BrawlLib.SSBB.ResourceNodes.MDL0VertexNode, BrawlLib.SSBB.ResourceNodes.RELMethodNode, BrawlLib.SSBB.ResourceNodes.ModuleSectionNode, BrawlLib.SSBB.ResourceNodes.MSBinNode, BrawlLib.SSBB.ResourceNodes.RawDataNode, BrawlLib.SSBB.ResourceNodes.RSARSoundNode, BrawlLib.SSBB.ResourceNodes.RSTMNode, BrawlLib.SSBB.ResourceNodes.RWAVNode, BrawlLib.SSBB.ResourceNodes.WAVESoundNode, and BrawlLib.SSBB.ResourceNodes.RSARFileNode.

910 {
911 Rebuild(); //Apply changes the user has made by rebuilding.
912#if !DEBUG
913 try
914 {
915#endif
916 using (FileStream stream = new FileStream(outPath, FileMode.OpenOrCreate, FileAccess.ReadWrite,
917 FileShare.ReadWrite, 8, FileOptions.SequentialScan))
918 {
919 Export(stream);
920 }
921#if !DEBUG
922 }
923 catch
924 {
925 MessageBox.Show("Unable to open file for write access.");
926 IsDirty = true;
927 }
928#endif
929 }
virtual void Export(string outPath)
Definition: ResourceNode.cs:909

◆ ExportUncompressed() [1/2]

void BrawlLib.SSBB.ResourceNodes.ResourceNode.ExportUncompressed ( FileStream  outStream)
inline
965 {
967 {
968 outStream.SetLength(WorkingUncompressed.Length);
969 using (FileMap map = FileMap.FromStream(outStream))
970 {
972 }
973 }
974 else
975 {
976 MessageBox.Show("Data was empty!");
977 }
978 }
DataSource WorkingUncompressed
Definition: ResourceNode.cs:183

◆ ExportUncompressed() [2/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.ExportUncompressed ( string  outPath)
inlinevirtual
948 {
949 Rebuild(); //Apply changes the user has made by rebuilding.
950 try
951 {
952 using (FileStream stream = new FileStream(outPath, FileMode.OpenOrCreate, FileAccess.ReadWrite,
953 FileShare.None, 8, FileOptions.SequentialScan))
954 {
955 ExportUncompressed(stream);
956 }
957 }
958 catch
959 {
960 MessageBox.Show("Unable to open file for write access.");
961 }
962 }
virtual void ExportUncompressed(string outPath)
Definition: ResourceNode.cs:947

◆ FindAllSubNodes()

static ResourceNode[] BrawlLib.SSBB.ResourceNodes.ResourceNode.FindAllSubNodes ( ResourceNode  root)
inlinestatic
1242 {
1243 List<ResourceNode> resourceNodes = new List<ResourceNode>();
1244 if (root != null)
1245 {
1246 resourceNodes.Add(root);
1247 if (root.HasChildren)
1248 {
1249 foreach (ResourceNode r in root.Children)
1250 {
1251 resourceNodes.AddRange(FindAllSubNodes(r));
1252 }
1253 }
1254 }
1255
1256 return resourceNodes.ToArray();
1257 }
static ResourceNode[] FindAllSubNodes(ResourceNode root)
Definition: ResourceNode.cs:1241

◆ FindChild() [1/4]

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChild ( string  path)
inline
1343 {
1344 return FindChild(path, false);
1345 }
ResourceNode FindChild(string path)
Definition: ResourceNode.cs:1342

◆ FindChild() [2/4]

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChild ( string  path,
bool  searchChildren 
)
inline
1348 {
1349 return FindChild(path, searchChildren, StringComparison.OrdinalIgnoreCase);
1350 }

◆ FindChild() [3/4]

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChild ( string  path,
bool  searchChildren,
StringComparison  compare 
)
inline
1358 {
1359 ResourceNode node = null;
1360 if (path == null)
1361 {
1362 return null;
1363 }
1364
1365 if (path.Contains("/"))
1366 {
1367 string next = path.Substring(0, path.IndexOf('/'));
1368 foreach (ResourceNode n in Children)
1369 {
1370 if (n.Name != null && n.Name.Equals(next, compare))
1371 {
1372 if ((node = FindNode(n, path.Substring(next.Length + 1), searchChildren, compare)) != null)
1373 {
1374 return node;
1375 }
1376 }
1377 }
1378 }
1379 else
1380 {
1381 //Search direct children first
1382 foreach (ResourceNode n in Children)
1383 {
1384 if (n.Name != null && n.Name.Equals(path, compare))
1385 {
1386 return n;
1387 }
1388 }
1389 }
1390
1391 if (searchChildren)
1392 {
1393 foreach (ResourceNode n in Children.ToArray())
1394 {
1395 if ((node = n.FindChild(path, true, compare)) != null)
1396 {
1397 return node;
1398 }
1399 }
1400 }
1401
1402 return null;
1403 }
static ResourceNode FindNode(ResourceNode root, string path, bool searchChildren, StringComparison compare)
Definition: ResourceNode.cs:1259

◆ FindChild() [4/4]

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChild ( string  path,
StringComparison  compare 
)
inline
1353 {
1354 return FindChild(path, false, compare);
1355 }

◆ FindChildByType() [1/2]

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChildByType ( string  path,
bool  searchChildren,
params ResourceType[]  types 
)
inline
1278 {
1279 return FindChildByType(path, searchChildren, StringComparison.Ordinal, types);
1280 }
ResourceNode FindChildByType(string path, bool searchChildren, params ResourceType[] types)
Definition: ResourceNode.cs:1277

◆ FindChildByType() [2/2]

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChildByType ( string  path,
bool  searchChildren,
StringComparison  compare,
params ResourceType[]  types 
)
inline
1284 {
1285 if (path == null)
1286 {
1287 return null;
1288 }
1289
1290 if (types.Contains(ResourceType.TEX0) && !types.Contains(ResourceType.SharedTEX0))
1291 {
1292 List<ResourceType> t = types.ToList();
1293 t.Add(ResourceType.SharedTEX0);
1294 types = t.ToArray();
1295 }
1296
1297 ResourceNode node = null;
1298
1299 if (path.Contains("/"))
1300 {
1301 string next = path.Substring(0, path.IndexOf('/'));
1302 foreach (ResourceNode n in Children)
1303 {
1304 if (n.Name != null && n.Name.Equals(next, compare))
1305 {
1306 if ((node = FindNode(n, path.Substring(next.Length + 1), searchChildren, compare)) != null &&
1307 types.Any(t => t == node.ResourceFileType))
1308 {
1309 return node;
1310 }
1311 }
1312 }
1313 }
1314 else
1315 {
1316 //Search direct children first
1317 foreach (ResourceNode n in Children)
1318 {
1319 if (n.Name != null && n.Name.Equals(path, compare) &&
1320 types.Any(t => t == n.ResourceFileType))
1321 {
1322 return n;
1323 }
1324 }
1325 }
1326
1327 if (searchChildren)
1328 {
1329 foreach (ResourceNode n in Children)
1330 {
1331 if ((node = n.FindChildByType(path, true, compare, types)) != null &&
1332 types.Any(t => t == node.ResourceFileType))
1333 {
1334 return node;
1335 }
1336 }
1337 }
1338
1339 return null;
1340 }
ResourceType
Definition: ResourceType.cs:6

◆ FindChildrenByClassType()

ResourceNode[] BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChildrenByClassType ( string  path,
Type  type 
)
inline
1406 {
1407 if (!string.IsNullOrEmpty(path))
1408 {
1409 ResourceNode node = FindChild(path, false);
1410 if (node != null)
1411 {
1412 return node.FindChildrenByClassType(null, type);
1413 }
1414 }
1415
1416 List<ResourceNode> nodes = new List<ResourceNode>();
1417 EnumClassTypeInternal(nodes, type);
1418 return nodes.ToArray();
1419 }

◆ FindChildrenByName()

ResourceNode[] BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChildrenByName ( string  name)
inline
1559 {
1560 List<ResourceNode> nodes = new List<ResourceNode>();
1561 EnumNameInternal(nodes, name);
1562 return nodes.ToArray();
1563 }

◆ FindChildrenByType()

ResourceNode[] BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChildrenByType ( string  path,
ResourceType  type 
)
inline
1435 {
1436 if (!string.IsNullOrEmpty(path))
1437 {
1438 ResourceNode node = FindChild(path, false);
1439 if (node != null)
1440 {
1441 return node.FindChildrenByType(null, type);
1442 }
1443 }
1444
1445 List<ResourceNode> nodes = new List<ResourceNode>();
1446 EnumTypeInternal(nodes, type);
1447 return nodes.ToArray();
1448 }

◆ FindChildrenByTypeInGroup()

ResourceNode[] BrawlLib.SSBB.ResourceNodes.ResourceNode.FindChildrenByTypeInGroup ( string  path,
ResourceType  type,
byte  group 
)
inline
1452 {
1453 if (!string.IsNullOrEmpty(path))
1454 {
1455 ResourceNode node = FindChild(path, false);
1456 if (node != null)
1457 {
1458 if (!(node is ARCEntryNode && ((ARCEntryNode) node).GroupID != group))
1459 {
1460 return node.FindChildrenByTypeInGroup(null, type, group);
1461 }
1462 }
1463 }
1464
1465 List<ResourceNode> nodes = new List<ResourceNode>();
1466 ResourceNode attemptedArc = null;
1467 EnumTypeInternal(nodes, type);
1468 if (nodes[0] is BRESEntryNode)
1469 {
1470 attemptedArc = ((BRESEntryNode) nodes[0]).BRESNode.Parent;
1471 }
1472 else if (nodes[0] is ARCEntryNode)
1473 {
1474 attemptedArc = nodes[0].Parent;
1475 }
1476
1477 try
1478 {
1479 if (this is ARCNode)
1480 {
1481 attemptedArc = this;
1482 }
1483 else if (nodes[0] is BRESEntryNode)
1484 {
1485 attemptedArc = ((BRESEntryNode) nodes[0]).BRESNode.Parent;
1486 }
1487 else if (nodes[0] is ARCEntryNode)
1488 {
1489 attemptedArc = nodes[0].Parent;
1490 }
1491
1492 nodes = new List<ResourceNode>();
1493 if (attemptedArc != null && type == ResourceType.MDL0)
1494 {
1495 foreach (ARCEntryNode a in attemptedArc.Children)
1496 {
1497 if (a.GroupID == group)
1498 {
1499 if (a is BRRESNode)
1500 {
1501 foreach (MDL0Node m in ((BRRESNode) a)?.GetFolder<MDL0Node>()?.Children ?? new List<ResourceNode>())
1502 {
1503 nodes.Add(m);
1504 }
1505 }
1506 else if (a.RedirectNode != null)
1507 {
1508 try
1509 {
1510 ARCEntryNode tempBres = a.RedirectNode as ARCEntryNode;
1511 RedirectStart:
1512 if (tempBres.GroupID != group)
1513 {
1514 if (tempBres.RedirectNode != null)
1515 {
1516 tempBres = tempBres.RedirectNode as ARCEntryNode;
1517 goto RedirectStart;
1518 }
1519 else if (tempBres is BRRESNode)
1520 {
1521 foreach (MDL0Node m in ((BRRESNode) tempBres)?.GetFolder<MDL0Node>()?.Children ?? new List<ResourceNode>())
1522 {
1523 nodes.Add(m);
1524 }
1525 }
1526 }
1527 }
1528 catch
1529 {
1530 // ignored
1531 }
1532 }
1533 }
1534 }
1535 }
1536 }
1537 catch
1538 {
1539 // ignored
1540 }
1541
1542 return nodes.ToArray();
1543 }

◆ FindEmbeddedIndex()

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.FindEmbeddedIndex ( int  index)
inline
1629 {
1630 int count = -1;
1631 return FindEmbeddedInternal(this, index, ref count);
1632 }

◆ FindName()

unsafe string BrawlLib.SSBB.ResourceNodes.ResourceNode.FindName ( string  name)
inline
1579 {
1580 int index = -1;
1581
1582 if (string.IsNullOrEmpty(name))
1583 {
1584 name = "NewNode";
1585 }
1586
1587 int len = name.Length;
1588 sbyte* charList = stackalloc sbyte[len + 3];
1589 PString pStr = charList;
1590
1591 for (int i = 0; i < len; i++)
1592 {
1593 charList[i] = (sbyte) name[i];
1594 }
1595
1596 Top:
1597
1598 if (index < 0)
1599 {
1600 charList[len] = 0;
1601 }
1602 else
1603 {
1604 charList[len] = (sbyte) ((index % 10) | 0x30);
1605 if (index < 10)
1606 {
1607 charList[len + 1] = 0;
1608 }
1609 else
1610 {
1611 charList[len + 1] = (sbyte) ((index / 10) | 0x30);
1612 charList[len + 2] = 0;
1613 }
1614 }
1615
1616 index++;
1617 foreach (ResourceNode node in Children)
1618 {
1619 if (pStr == node.Name)
1620 {
1621 goto Top;
1622 }
1623 }
1624
1625 return new string(charList);
1626 }
Definition: PString.cs:7

◆ FindNode()

static ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.FindNode ( ResourceNode  root,
string  path,
bool  searchChildren,
StringComparison  compare 
)
inlinestatic
1261 {
1262 if (string.IsNullOrEmpty(path) || root == null ||
1263 root.Name.Equals(path, StringComparison.OrdinalIgnoreCase))
1264 {
1265 return root;
1266 }
1267
1268 if (path.Contains("/") && path.Substring(0, path.IndexOf('/'))
1269 .Equals(root.Name, compare))
1270 {
1271 return root.FindChild(path.Substring(path.IndexOf('/') + 1), searchChildren, compare);
1272 }
1273
1274 return root.FindChild(path, searchChildren, compare);
1275 }

◆ ForceReplacedEvent()

void BrawlLib.SSBB.ResourceNodes.ResourceNode.ForceReplacedEvent ( )
inlineprotected
901 {
902 Replaced?.Invoke(this);
903 }
ResourceEventHandler Replaced
Definition: ResourceNode.cs:153

◆ GetChildrenRecursive()

List< ResourceNode > BrawlLib.SSBB.ResourceNodes.ResourceNode.GetChildrenRecursive ( )
inline

Used primarily to get bone lists. Kept for all resource nodes for utility.

282 {
283 List<ResourceNode> childrenAndSubchildren = new List<ResourceNode>();
284 if (Children == null)
285 {
286 Populate();
287 }
288
289 if (Children != null)
290 {
291 for (int i = 0; i < Children.Count; i++) //ResourceNode r in Children)
292 {
293 childrenAndSubchildren.Add(Children[i]);
294 childrenAndSubchildren.AddRange(Children[i].GetChildrenRecursive());
295 }
296 }
297
298 return childrenAndSubchildren;
299 }
List< ResourceNode > GetChildrenRecursive()
Used primarily to get bone lists. Kept for all resource nodes for utility.
Definition: ResourceNode.cs:281
void Populate(int levels=-1)
Definition: ResourceNode.cs:613

◆ Initialize() [1/4]

void BrawlLib.SSBB.ResourceNodes.ResourceNode.Initialize ( ResourceNode  parent,
DataSource  origSource 
)
inline
662 {
663 Initialize(parent, origSource, origSource);
664 }
void Initialize(ResourceNode parent, FileMap source)
Definition: ResourceNode.cs:651

◆ Initialize() [2/4]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Initialize ( ResourceNode  parent,
DataSource  origSource,
DataSource  uncompSource 
)
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.ARCNode, BrawlLib.SSBB.ResourceNodes.ARCEntryNode, and BrawlLib.SSBB.ResourceNodes.MRGNode.

667 {
668 _origSource = origSource;
669 _uncompSource = uncompSource;
670 _compression = _origSource.Compression;
671
672 if (origSource.Map != null)
673 {
674 _origPath = origSource.Map.FilePath;
675 }
676
677 if (_parent != parent)
678 {
679 _parent = parent;
680 _parent?.Children.Add(this);
681 }
682
683 _children = null;
684
685 if (Parent != null && Parent._replaced)
686 {
687 _replaced = true;
688 }
689
690 if (!OnInitialize())
691 {
692 _children = new List<ResourceNode>();
693 }
694
695 _replaced = false;
696 }
bool _replaced
Definition: ResourceNode.cs:827
ResourceNode _parent
Definition: ResourceNode.cs:142
string _origPath
Definition: ResourceNode.cs:139
virtual bool OnInitialize()
Definition: ResourceNode.cs:700
CompressionType Compression
Definition: ResourceNode.cs:34

◆ Initialize() [3/4]

void BrawlLib.SSBB.ResourceNodes.ResourceNode.Initialize ( ResourceNode  parent,
FileMap  source 
)
inline
652 {
653 Initialize(parent, new DataSource(source));
654 }

◆ Initialize() [4/4]

void BrawlLib.SSBB.ResourceNodes.ResourceNode.Initialize ( ResourceNode  parent,
VoidPtr  address,
int  length 
)
inline
657 {
658 Initialize(parent, new DataSource(address, length));
659 }

◆ InsertChild() [1/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.InsertChild ( ResourceNode  child,
bool  change,
int  index 
)
inlinevirtual
780 {
781 if (index < 0 || index >= Children.Count)
782 {
783 AddChild(child, change);
784 return;
785 }
786
787 Children.Insert(index, child);
788 child._parent = this;
789 ChildInserted?.Invoke(index, this, child);
790
791 if (change)
792 {
793 _changed = true;
794 }
795 }
ResourceChildInsertEventHandler ChildInserted
Definition: ResourceNode.cs:155

◆ InsertChild() [2/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.InsertChild ( ResourceNode  child,
int  index 
)
inlinevirtual
775 {
776 InsertChild(child, true, index);
777 }
virtual void InsertChild(ResourceNode child, int index)
Definition: ResourceNode.cs:774

◆ MD5()

virtual unsafe byte[] BrawlLib.SSBB.ResourceNodes.ResourceNode.MD5 ( )
inlinevirtual

Find the MD5 checksum of this node's data. If this node doesn't have any data (BRESGroupNode, for example), this method will return null.

Reimplemented in BrawlLib.SSBB.ResourceNodes.BRESEntryNode, and BrawlLib.SSBB.ResourceNodes.MDL0BoneNode.

1677 {
1678 DataSource data = OriginalSource;
1679 if (data.Address == null || data.Length == 0)
1680 {
1681 return null;
1682 }
1683
1684 UnmanagedMemoryStream stream = new UnmanagedMemoryStream((byte*) data.Address, data.Length);
1685 return MD5Provider.ComputeHash(stream);
1686 }
static MD5CryptoServiceProvider MD5Provider
Definition: ResourceNode.cs:1659
DataSource OriginalSource
Definition: ResourceNode.cs:178

◆ MD5Str()

string BrawlLib.SSBB.ResourceNodes.ResourceNode.MD5Str ( )
inline

Get the result of the MD5() function as a string of hexadecimal digits. If MD5() returns null, this method will return an empty string.

1694 {
1695 try
1696 {
1697 byte[] checksum = MD5();
1698 if (checksum == null)
1699 {
1700 return string.Empty;
1701 }
1702
1703 StringBuilder sb = new StringBuilder(checksum.Length * 2);
1704 for (int i = 0; i < checksum.Length; i++)
1705 {
1706 sb.Append(checksum[i].ToString("X2"));
1707 }
1708
1709 return sb.ToString();
1710 }
1711 catch (AccessViolationException)
1712 {
1713 return "----AccessViolationException----";
1714 }
1715 }
override string ToString()
Definition: ResourceNode.cs:1751
virtual unsafe byte[] MD5()
Find the MD5 checksum of this node's data. If this node doesn't have any data (BRESGroupNode,...
Definition: ResourceNode.cs:1676

◆ Merge() [1/2]

void BrawlLib.SSBB.ResourceNodes.ResourceNode.Merge ( )
inline
1191 {
1192 Merge(false);
1193 }
void Merge()
Definition: ResourceNode.cs:1190

◆ Merge() [2/2]

void BrawlLib.SSBB.ResourceNodes.ResourceNode.Merge ( bool  forceBuild)
inline
1196 {
1197 if (_parent != null)
1198 {
1199 throw new InvalidOperationException("Merge can only be called on the root node!");
1200 }
1201
1202 if (forceBuild || IsDirty)
1203 {
1204 Rebuild(forceBuild);
1205 }
1206
1207 MergeInternal();
1208 _merged = true;
1209 }
virtual void MergeInternal()
Definition: ResourceNode.cs:1212

◆ MergeInternal()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.MergeInternal ( )
inlineprotectedvirtual
1213 {
1214 if (_children != null)
1215 {
1216 foreach (ResourceNode n in Children)
1217 {
1218 n.MergeInternal();
1219 }
1220 }
1221
1222 if (_replSrc != DataSource.Empty)
1223 {
1224 _origSource.Close();
1225 _origSource = _replSrc;
1226 _replSrc = DataSource.Empty;
1227
1228 if (_replUncompSrc != DataSource.Empty)
1229 {
1230 _uncompSource.Close();
1231 _uncompSource = _replUncompSrc;
1232 _replUncompSrc = DataSource.Empty;
1233 }
1234 }
1235 }
static readonly DataSource Empty
Definition: ResourceNode.cs:29

◆ MoveDown()

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.MoveDown ( )
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.MDL0MaterialRefNode, and BrawlLib.SSBB.ResourceNodes.MDL0TEVStageNode.

509 {
510 if (Parent == null)
511 {
512 return false;
513 }
514
515 int index = Index + 1;
516 if (index >= Parent.Children.Count)
517 {
518 return false;
519 }
520
521 Parent.Children.Remove(this);
522 Parent.Children.Insert(index, this);
523 Parent._changed = true;
524 return true;
525 }

◆ MoveUp()

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.MoveUp ( )
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.MDL0MaterialRefNode, and BrawlLib.SSBB.ResourceNodes.MDL0TEVStageNode.

490 {
491 if (Parent == null)
492 {
493 return false;
494 }
495
496 int index = Index - 1;
497 if (index < 0)
498 {
499 return false;
500 }
501
502 Parent.Children.Remove(this);
503 Parent.Children.Insert(index, this);
504 Parent._changed = true;
505 return true;
506 }

◆ NextSibling()

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.NextSibling ( )
inline
1736 {
1737 if (_parent == null)
1738 {
1739 return null;
1740 }
1741
1742 int siblingIndex = Index + 1;
1743 if (siblingIndex >= Parent.Children.Count)
1744 {
1745 return null;
1746 }
1747
1748 return Parent.Children[siblingIndex];
1749 }

◆ OnCalculateSize()

virtual int BrawlLib.SSBB.ResourceNodes.ResourceNode.OnCalculateSize ( bool  force)
inlinevirtual

Reimplemented in BrawlLib.SSBB.MuEventTblNode, BrawlLib.SSBB.MuEventNode, BrawlLib.SSBB.ResourceNodes.AIPDNode, BrawlLib.SSBB.ResourceNodes.AIPDDefBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDSubBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDUnkBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDType1OffsetsNode, BrawlLib.SSBB.ResourceNodes.AIPDType1Node, BrawlLib.SSBB.ResourceNodes.AIPDType1EntryNode, BrawlLib.SSBB.ResourceNodes.AIPDType2OffsetsNode, BrawlLib.SSBB.ResourceNodes.AIPDType2Node, BrawlLib.SSBB.ResourceNodes.AIPDType2EntryNode, BrawlLib.SSBB.ResourceNodes.ATKDNode, BrawlLib.SSBB.ResourceNodes.CENode, BrawlLib.SSBB.ResourceNodes.CEGroupNode, BrawlLib.SSBB.ResourceNodes.CEEntryNode, BrawlLib.SSBB.ResourceNodes.CEEventNode, BrawlLib.SSBB.ResourceNodes.CEStringNode, BrawlLib.SSBB.ResourceNodes.AllstarDifficultyNode, BrawlLib.SSBB.ResourceNodes.AllstarFighterNode, BrawlLib.SSBB.ResourceNodes.AllstarStageTblNode, BrawlLib.SSBB.ResourceNodes.CHR0Node, BrawlLib.SSBB.ResourceNodes.CHR0EntryNode, BrawlLib.SSBB.ResourceNodes.CLR0Node, BrawlLib.SSBB.ResourceNodes.PAT0Node, BrawlLib.SSBB.ResourceNodes.PAT0EntryNode, BrawlLib.SSBB.ResourceNodes.PAT0TextureNode, BrawlLib.SSBB.ResourceNodes.PAT0TextureEntryNode, BrawlLib.SSBB.ResourceNodes.SHP0Node, BrawlLib.SSBB.ResourceNodes.SHP0EntryNode, BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode, BrawlLib.SSBB.ResourceNodes.SRT0Node, BrawlLib.SSBB.ResourceNodes.SRT0EntryNode, BrawlLib.SSBB.ResourceNodes.SRT0TextureNode, BrawlLib.SSBB.ResourceNodes.VIS0Node, BrawlLib.SSBB.ResourceNodes.VIS0EntryNode, BrawlLib.SSBB.ResourceNodes.ARCNode, BrawlLib.SSBB.ResourceNodes.BRRESNode, BrawlLib.SSBB.ResourceNodes.MRGNode, BrawlLib.SSBB.ResourceNodes.U8Node, BrawlLib.SSBB.ResourceNodes.U8FolderNode, BrawlLib.SSBB.ResourceNodes.COSCNode, BrawlLib.SSBB.ResourceNodes.CSSCNode, BrawlLib.SSBB.ResourceNodes.CSSCEntryNode, BrawlLib.SSBB.ResourceNodes.FCFGNode, BrawlLib.SSBB.ResourceNodes.RSTCNode, BrawlLib.SSBB.ResourceNodes.RSTCEntryNode, BrawlLib.SSBB.ResourceNodes.SLTCNode, BrawlLib.SSBB.ResourceNodes.ClassicStageBlockNode, BrawlLib.SSBB.ResourceNodes.ClassicDifficultyNode, BrawlLib.SSBB.ResourceNodes.ClassicFighterNode, BrawlLib.SSBB.ResourceNodes.ClassicStageTblNode, BrawlLib.SSBB.ResourceNodes.CMMNode, BrawlLib.SSBB.ResourceNodes.CMMEntryNode, BrawlLib.SSBB.ResourceNodes.CollisionNode, BrawlLib.SSBB.ResourceNodes.Common2MiscDataNode, BrawlLib.SSBB.ResourceNodes.EventMatchDifficultyNode, BrawlLib.SSBB.ResourceNodes.EventMatchFighterNode, BrawlLib.SSBB.ResourceNodes.EventMatchNode, BrawlLib.SSBB.ResourceNodes.GCTNode, BrawlLib.SSBB.ResourceNodes.EFLSNode, BrawlLib.SSBB.ResourceNodes.PLT0Node, BrawlLib.SSBB.ResourceNodes.REFFAnimationListNode, BrawlLib.SSBB.ResourceNodes.REFFAnimationNode, BrawlLib.SSBB.ResourceNodes.REFFEmitterNode7, BrawlLib.SSBB.ResourceNodes.REFFEmitterNode9, BrawlLib.SSBB.ResourceNodes.REFFNode, BrawlLib.SSBB.ResourceNodes.REFFEntryNode, BrawlLib.SSBB.ResourceNodes.REFFParticleNode, BrawlLib.SSBB.ResourceNodes.REFTNode, BrawlLib.SSBB.ResourceNodes.TEX0Node, BrawlLib.SSBB.ResourceNodes.TPLNode, BrawlLib.SSBB.ResourceNodes.TPLTextureNode, BrawlLib.SSBB.ResourceNodes.TPLPaletteNode, BrawlLib.SSBB.ResourceNodes.hkClassNode, BrawlLib.SSBB.ResourceNodes.hkClassMemberNode, BrawlLib.SSBB.ResourceNodes.HavokNode, BrawlLib.SSBB.ResourceNodes.HavokCommonArrayNode, BrawlLib.SSBB.ResourceNodes.ClassMemberInstanceNode, BrawlLib.SSBB.ResourceNodes.cmPointerNode, BrawlLib.SSBB.ResourceNodes.ItmFreqNode, BrawlLib.SSBB.ResourceNodes.ItmTableNode, BrawlLib.SSBB.ResourceNodes.ItmTableGroupNode, BrawlLib.SSBB.ResourceNodes.ItmFreqEntryNode, BrawlLib.SSBB.ResourceNodes.MasqueradeNode, BrawlLib.SSBB.ResourceNodes.MasqueradeEntryNode, BrawlLib.SSBB.ResourceNodes.MDL0BoneNode, BrawlLib.SSBB.ResourceNodes.MDL0ColorNode, BrawlLib.SSBB.ResourceNodes.MDL0FurPosNode, BrawlLib.SSBB.ResourceNodes.MDL0FurVecNode, BrawlLib.SSBB.ResourceNodes.MDL0MaterialNode, BrawlLib.SSBB.ResourceNodes.MDL0Node, BrawlLib.SSBB.ResourceNodes.MDL0NormalNode, BrawlLib.SSBB.ResourceNodes.MDL0ObjectNode, BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode, BrawlLib.SSBB.ResourceNodes.MDL0UVNode, BrawlLib.SSBB.ResourceNodes.MDL0VertexNode, BrawlLib.SSBB.ResourceNodes.DOLNode, BrawlLib.SSBB.ResourceNodes.RELNode, BrawlLib.SSBB.ResourceNodes.ModuleSectionNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventParameterNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventOffsetNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk21Node, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7ListNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7EntryListEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk11Node, BrawlLib.SSBB.ResourceNodes.MoveDefPatternPowerMulNode, BrawlLib.SSBB.ResourceNodes.MoveDefPatternPowerMulEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionFlagsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionFlagsEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionInterruptsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionOverrideNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionPreNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionPreEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefArticleNode, BrawlLib.SSBB.ResourceNodes.CollDataType0, BrawlLib.SSBB.ResourceNodes.CollisionDataNode, BrawlLib.SSBB.ResourceNodes.CollDataType1, BrawlLib.SSBB.ResourceNodes.CollDataType2, BrawlLib.SSBB.ResourceNodes.MoveDefAttributeNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk17Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk17EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneRef2Node, BrawlLib.SSBB.ResourceNodes.MoveDefModelVisibilityNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscUnkSection9Node, BrawlLib.SSBB.ResourceNodes.MoveDefMiscUnkSection12Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnkSection9DataNode, BrawlLib.SSBB.ResourceNodes.UnkSection5Node, BrawlLib.SSBB.ResourceNodes.UnkSection1Node, BrawlLib.SSBB.ResourceNodes.UnknownSection2Node, BrawlLib.SSBB.ResourceNodes.MiscData2Node, BrawlLib.SSBB.ResourceNodes.UnknownSection3Node, BrawlLib.SSBB.ResourceNodes.UnknownSection3EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscHurtBoxesNode, BrawlLib.SSBB.ResourceNodes.MoveDefHurtBoxNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionUnk1Node, BrawlLib.SSBB.ResourceNodes.MoveDefSectionsUnk1NodeEntry, BrawlLib.SSBB.ResourceNodes.MoveDefLedgegrabsNode, BrawlLib.SSBB.ResourceNodes.MoveDefLedgegrabNode, BrawlLib.SSBB.ResourceNodes.MoveDefMultiJumpNode, BrawlLib.SSBB.ResourceNodes.MoveDefGlideNode, BrawlLib.SSBB.ResourceNodes.MoveDefCrawlNode, BrawlLib.SSBB.ResourceNodes.MoveDefTetherNode, BrawlLib.SSBB.ResourceNodes.MoveDefSoundDatasNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk22Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk24Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk7Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk7EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefStaticArticleGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefParamListNode, BrawlLib.SSBB.ResourceNodes.Data2ListNode, BrawlLib.SSBB.ResourceNodes.DededeHitDataList, BrawlLib.SSBB.ResourceNodes.HitDataListOffsetNode, BrawlLib.SSBB.ResourceNodes.SZerosuitExtraParams8Node, BrawlLib.SSBB.ResourceNodes.Wario6, BrawlLib.SSBB.ResourceNodes.Wario8, BrawlLib.SSBB.ResourceNodes.Yoshi9, BrawlLib.SSBB.ResourceNodes.GameWatchArticle6, BrawlLib.SSBB.ResourceNodes.Pit7Robot13Node, BrawlLib.SSBB.ResourceNodes.ActionOffsetNode, BrawlLib.SSBB.ResourceNodes.SecondaryActionOffsetNode, BrawlLib.SSBB.ResourceNodes.Fox11Falco9Wolf11PopoArticle63Node, BrawlLib.SSBB.ResourceNodes.Fox11Falco9Wolf11Article3Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyArticleP1Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyArticleP1pt2Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList5152Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList49Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList49pt2Node, BrawlLib.SSBB.ResourceNodes.MoveDefActionListNode, BrawlLib.SSBB.ResourceNodes.MoveDefRawDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneIndicesNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneIndexNode, BrawlLib.SSBB.ResourceNodes.MoveDefIndicesNode, BrawlLib.SSBB.ResourceNodes.MoveDefIndexNode, BrawlLib.SSBB.ResourceNodes.MoveDefNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionParamNode, BrawlLib.SSBB.ResourceNodes.SectionDataGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefHitDataListNode, BrawlLib.SSBB.ResourceNodes.MSBinNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataEntryNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataSubEntryNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSEntryNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ITOVv1Node, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ITOVNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.STEXNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTEntryNode, BrawlLib.SSBB.ResourceNodes.RASDNode, BrawlLib.SSBB.ResourceNodes.RawDataNode, BrawlLib.SSBB.ResourceNodes.RSARBankNode, BrawlLib.SSBB.ResourceNodes.RSARGroupNode, BrawlLib.SSBB.ResourceNodes.RSARPlayerInfoNode, BrawlLib.SSBB.ResourceNodes.RSARSoundNode, BrawlLib.SSBB.ResourceNodes.RBNKDataInstParamNode, BrawlLib.SSBB.ResourceNodes.RBNKTableNode, BrawlLib.SSBB.ResourceNodes.RBNKNullNode, BrawlLib.SSBB.ResourceNodes.RBNKDataGroupNode, BrawlLib.SSBB.ResourceNodes.RBNKSoundGroupNode, BrawlLib.SSBB.ResourceNodes.RBNKNode, BrawlLib.SSBB.ResourceNodes.RSEQNode, BrawlLib.SSBB.ResourceNodes.RWARNode, BrawlLib.SSBB.ResourceNodes.RWSDDataNode, BrawlLib.SSBB.ResourceNodes.RWSDDataGroupNode, BrawlLib.SSBB.ResourceNodes.RWSDSoundGroupNode, BrawlLib.SSBB.ResourceNodes.RWSDNode, BrawlLib.SSBB.ResourceNodes.RSARNode, BrawlLib.SSBB.ResourceNodes.SakuraiArchiveNode, BrawlLib.SSBB.ResourceNodes.SCLANode, BrawlLib.SSBB.ResourceNodes.SCLAEntryNode, BrawlLib.SSBB.ResourceNodes.SCN0AmbientLightNode, BrawlLib.SSBB.ResourceNodes.SCN0CameraNode, BrawlLib.SSBB.ResourceNodes.SCN0FogNode, BrawlLib.SSBB.ResourceNodes.SCN0GroupNode, BrawlLib.SSBB.ResourceNodes.SCN0LightNode, BrawlLib.SSBB.ResourceNodes.SCN0LightSetNode, BrawlLib.SSBB.ResourceNodes.SCN0Node, BrawlLib.SSBB.ResourceNodes.SndBgmTitleDataNode, BrawlLib.SSBB.ResourceNodes.SndBgmTitleEntryNode, BrawlLib.SSBB.ResourceNodes.StageTableNode, BrawlLib.SSBB.ResourceNodes.TBCLEntryNode, BrawlLib.SSBB.ResourceNodes.TBGCEntryNode, BrawlLib.SSBB.ResourceNodes.TBGDEntryNode, BrawlLib.SSBB.ResourceNodes.TBGMEntryNode, BrawlLib.SSBB.ResourceNodes.TBLVEntryNode, BrawlLib.SSBB.ResourceNodes.TBNode, BrawlLib.SSBB.ResourceNodes.TBRMEntryNode, BrawlLib.SSBB.ResourceNodes.TBSTEntryNode, BrawlLib.SSBB.ResourceNodes.STPMNode, BrawlLib.SSBB.ResourceNodes.ADPMNode, BrawlLib.SSBB.ResourceNodes.GLK2EntryNode, BrawlLib.SSBB.ResourceNodes.GLOKEntryNode, BrawlLib.SSBB.ResourceNodes.GMOTEntryNode, BrawlLib.SSBB.ResourceNodes.GMOVEntryNode, BrawlLib.SSBB.ResourceNodes.GMV4EntryNode, BrawlLib.SSBB.ResourceNodes.GMVAEntryNode, BrawlLib.SSBB.ResourceNodes.GQUKEntryNode, BrawlLib.SSBB.ResourceNodes.BLOCNode, BrawlLib.SSBB.ResourceNodes.BLOCEntryNode, BrawlLib.SSBB.ResourceNodes.GCAMEntryNode, BrawlLib.SSBB.ResourceNodes.GCMPEntryNode, BrawlLib.SSBB.ResourceNodes.GFSREntryNode, BrawlLib.SSBB.ResourceNodes.GEFFEntryNode, BrawlLib.SSBB.ResourceNodes.GNDVEntryNode, BrawlLib.SSBB.ResourceNodes.GEG1EntryNode, BrawlLib.SSBB.ResourceNodes.GENCEntryNode, BrawlLib.SSBB.ResourceNodes.GFG1EntryNode, BrawlLib.SSBB.ResourceNodes.GFPREntryNode, BrawlLib.SSBB.ResourceNodes.GFRKEntryNode, BrawlLib.SSBB.ResourceNodes.GHPEEntryNode, BrawlLib.SSBB.ResourceNodes.GKNGEntryNode, BrawlLib.SSBB.ResourceNodes.GMCAEntryNode, BrawlLib.SSBB.ResourceNodes.GMEAEntryNode, BrawlLib.SSBB.ResourceNodes.GWATEntryNode, BrawlLib.SSBB.ResourceNodes.GWD2EntryNode, BrawlLib.SSBB.ResourceNodes.GWNDEntryNode, BrawlLib.SSBB.ResourceNodes.MVPMNode, BrawlLib.SSBB.ResourceNodes.ADSJNode, BrawlLib.SSBB.ResourceNodes.ADSJEntryNode, BrawlLib.SSBB.ResourceNodes.GDOREntryNode, BrawlLib.SSBB.ResourceNodes.GDTPEntryNode, BrawlLib.SSBB.ResourceNodes.GDBSEntryNode, BrawlLib.SSBB.ResourceNodes.GMSJEntryNode, BrawlLib.SSBB.ResourceNodes.GSCNEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Navigation.GWAPEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBC1EntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBC2EntryNode, BrawlLib.SSBB.ResourceNodes.GBLKEntryNode, BrawlLib.SSBB.ResourceNodes.GBLTEntryNode, BrawlLib.SSBB.ResourceNodes.GBRFEntryNode, BrawlLib.SSBB.ResourceNodes.GCATEntryNode, BrawlLib.SSBB.ResourceNodes.GELAEntryNode, BrawlLib.SSBB.ResourceNodes.GELEEntryNode, BrawlLib.SSBB.ResourceNodes.GFIMEntryNode, BrawlLib.SSBB.ResourceNodes.GIB2EntryNode, BrawlLib.SSBB.ResourceNodes.GITMEntryNode, BrawlLib.SSBB.ResourceNodes.GITREntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GLADEntryNode, BrawlLib.SSBB.ResourceNodes.GMPSEntryNode, BrawlLib.SSBB.ResourceNodes.GMRLEntryNode, BrawlLib.SSBB.ResourceNodes.GMTAEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GMWAEntryNode, BrawlLib.SSBB.ResourceNodes.GMWOEntryNode, BrawlLib.SSBB.ResourceNodes.GSAVEntryNode, BrawlLib.SSBB.ResourceNodes.GSBKEntryNode, BrawlLib.SSBB.ResourceNodes.GSHTEntryNode, BrawlLib.SSBB.ResourceNodes.GSPREntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GSTGEntryNode, BrawlLib.SSBB.ResourceNodes.GTRCEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GTRREntryNode, BrawlLib.SSBB.ResourceNodes.GDMDEntryNode, BrawlLib.SSBB.ResourceNodes.GFINEntryNode, BrawlLib.SSBB.ResourceNodes.GMINEntryNode, BrawlLib.SSBB.ResourceNodes.GTIKEntryNode, BrawlLib.SSBB.ResourceNodes.BGMGNode, BrawlLib.SSBB.ResourceNodes.BGMGEntryNode, BrawlLib.SSBB.ResourceNodes.GSNDEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCTeamNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Triggers.GASDEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Triggers.GEPTEntryNode, BrawlLib.SSBB.ResourceNodes.GET1EntryNode, BrawlLib.SSBB.ResourceNodes.GET2EntryNode, BrawlLib.SSBB.ResourceNodes.GFRTEntryNode, BrawlLib.SSBB.ResourceNodes.GFT2EntryNode, BrawlLib.SSBB.ResourceNodes.GMOAEntryNode, BrawlLib.SSBB.ResourceNodes.THPNode, BrawlLib.SSBB.ResourceNodes.TyDataNode, BrawlLib.SSBB.ResourceNodes.TySealList, BrawlLib.SSBB.ResourceNodes.TySealNode, BrawlLib.SSBB.ResourceNodes.TySealVertDataNode, BrawlLib.SSBB.ResourceNodes.TySealVertDataEntryNode, BrawlLib.SSBB.ResourceNodes.TyDataListNode, BrawlLib.SSBB.ResourceNodes.TyDataListEntryNode, BrawlLib.SSBB.ResourceNodes.TySealVertListNode, and BrawlLib.SSBB.ResourceNodes.TySealVertListEntryNode.

1180 {
1182 }

◆ OnInitialize()

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.OnInitialize ( )
inlinevirtual

Reimplemented in BrawlLib.SSBB.MuEventTblNode, BrawlLib.SSBB.MuEventNode, BrawlLib.SSBB.ResourceNodes.AIPDNode, BrawlLib.SSBB.ResourceNodes.AIPDDefBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDSubBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDUnkBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDType1OffsetsNode, BrawlLib.SSBB.ResourceNodes.AIPDType1Node, BrawlLib.SSBB.ResourceNodes.AIPDType1EntryNode, BrawlLib.SSBB.ResourceNodes.AIPDType2OffsetsNode, BrawlLib.SSBB.ResourceNodes.AIPDType2Node, BrawlLib.SSBB.ResourceNodes.AIPDType2EntryNode, BrawlLib.SSBB.ResourceNodes.ATKDNode, BrawlLib.SSBB.ResourceNodes.ATKDEntryNode, BrawlLib.SSBB.ResourceNodes.CENode, BrawlLib.SSBB.ResourceNodes.CEGroupNode, BrawlLib.SSBB.ResourceNodes.CEEntryNode, BrawlLib.SSBB.ResourceNodes.CEEventNode, BrawlLib.SSBB.ResourceNodes.CEStringNode, BrawlLib.SSBB.ResourceNodes.AllstarDifficultyNode, BrawlLib.SSBB.ResourceNodes.AllstarFighterNode, BrawlLib.SSBB.ResourceNodes.AllstarStageTblNode, BrawlLib.SSBB.ResourceNodes.CHR0Node, BrawlLib.SSBB.ResourceNodes.CHR0EntryNode, BrawlLib.SSBB.ResourceNodes.CLR0Node, BrawlLib.SSBB.ResourceNodes.CLR0MaterialNode, BrawlLib.SSBB.ResourceNodes.CLR0MaterialEntryNode, BrawlLib.SSBB.ResourceNodes.PAT0Node, BrawlLib.SSBB.ResourceNodes.PAT0EntryNode, BrawlLib.SSBB.ResourceNodes.PAT0TextureNode, BrawlLib.SSBB.ResourceNodes.PAT0TextureEntryNode, BrawlLib.SSBB.ResourceNodes.SHP0Node, BrawlLib.SSBB.ResourceNodes.SHP0EntryNode, BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode, BrawlLib.SSBB.ResourceNodes.SRT0Node, BrawlLib.SSBB.ResourceNodes.SRT0EntryNode, BrawlLib.SSBB.ResourceNodes.SRT0TextureNode, BrawlLib.SSBB.ResourceNodes.VIS0Node, BrawlLib.SSBB.ResourceNodes.VIS0EntryNode, BrawlLib.SSBB.ResourceNodes.ARCNode, BrawlLib.SSBB.ResourceNodes.BRRESNode, BrawlLib.SSBB.ResourceNodes.BRESGroupNode, BrawlLib.SSBB.ResourceNodes.BRESEntryNode, BrawlLib.SSBB.ResourceNodes.FileScanNode, BrawlLib.SSBB.ResourceNodes.FolderNode, BrawlLib.SSBB.ResourceNodes.MRGNode, BrawlLib.SSBB.ResourceNodes.U8Node, BrawlLib.SSBB.ResourceNodes.U8EntryNode, BrawlLib.SSBB.ResourceNodes.U8FolderNode, BrawlLib.SSBB.ResourceNodes.COSCNode, BrawlLib.SSBB.ResourceNodes.CSSCNode, BrawlLib.SSBB.ResourceNodes.CSSCEntryNode, BrawlLib.SSBB.ResourceNodes.FCFGNode, BrawlLib.SSBB.ResourceNodes.RSTCNode, BrawlLib.SSBB.ResourceNodes.RSTCGroupNode, BrawlLib.SSBB.ResourceNodes.RSTCEntryNode, BrawlLib.SSBB.ResourceNodes.SLTCNode, BrawlLib.SSBB.ResourceNodes.ClassicStageBlockNode, BrawlLib.SSBB.ResourceNodes.ClassicDifficultyNode, BrawlLib.SSBB.ResourceNodes.ClassicFighterNode, BrawlLib.SSBB.ResourceNodes.ClassicStageTblNode, BrawlLib.SSBB.ResourceNodes.CMMNode, BrawlLib.SSBB.ResourceNodes.CMMEntryNode, BrawlLib.SSBB.ResourceNodes.CollisionNode, BrawlLib.SSBB.ResourceNodes.CollisionObject, BrawlLib.SSBB.ResourceNodes.Common2MiscDataNode, BrawlLib.SSBB.ResourceNodes.EventMatchDifficultyNode, BrawlLib.SSBB.ResourceNodes.EventMatchFighterNode, BrawlLib.SSBB.ResourceNodes.EventMatchNode, BrawlLib.SSBB.ResourceNodes.GCTNode, BrawlLib.SSBB.ResourceNodes.GCTCodeEntryNode, BrawlLib.SSBB.ResourceNodes.EFLSNode, BrawlLib.SSBB.ResourceNodes.EFLSEntryNode, BrawlLib.SSBB.ResourceNodes.RE3DEntryNode, BrawlLib.SSBB.ResourceNodes.PLT0Node, BrawlLib.SSBB.ResourceNodes.REFFAnimationListNode, BrawlLib.SSBB.ResourceNodes.REFFAnimationNode, BrawlLib.SSBB.ResourceNodes.REFFPostFieldInfoNode, BrawlLib.SSBB.ResourceNodes.REFFEmitterNode7, BrawlLib.SSBB.ResourceNodes.REFFEmitterNode9, BrawlLib.SSBB.ResourceNodes.REFFNode, BrawlLib.SSBB.ResourceNodes.REFFEntryNode, BrawlLib.SSBB.ResourceNodes.REFFParticleNode, BrawlLib.SSBB.ResourceNodes.REFTNode, BrawlLib.SSBB.ResourceNodes.REFTEntryNode, BrawlLib.SSBB.ResourceNodes.TEX0Node, BrawlLib.SSBB.ResourceNodes.TPLNode, BrawlLib.SSBB.ResourceNodes.TPLTextureNode, BrawlLib.SSBB.ResourceNodes.TPLPaletteNode, BrawlLib.SSBB.ResourceNodes.hkClassEnumNode, BrawlLib.SSBB.ResourceNodes.hkClassEnumEntryNode, BrawlLib.SSBB.ResourceNodes.hkClassNode, BrawlLib.SSBB.ResourceNodes.HavokAttributeNode, BrawlLib.SSBB.ResourceNodes.hkClassMemberNode, BrawlLib.SSBB.ResourceNodes.HavokMetaObjectNode, BrawlLib.SSBB.ResourceNodes.HavokNode, BrawlLib.SSBB.ResourceNodes.HavokCommonArrayNode, BrawlLib.SSBB.ResourceNodes.cmSimpleArrayNode, BrawlLib.SSBB.ResourceNodes.cmArrayNode, BrawlLib.SSBB.ResourceNodes.cmBoolNode, BrawlLib.SSBB.ResourceNodes.cmByteNode, BrawlLib.SSBB.ResourceNodes.cmCharNode, BrawlLib.SSBB.ResourceNodes.cmEnumNode, BrawlLib.SSBB.ResourceNodes.cmFloatNode, BrawlLib.SSBB.ResourceNodes.cmIntNode, BrawlLib.SSBB.ResourceNodes.cmLongNode, BrawlLib.SSBB.ResourceNodes.cmMat3Node, BrawlLib.SSBB.ResourceNodes.cmMat4Node, BrawlLib.SSBB.ResourceNodes.cmPointerNode, BrawlLib.SSBB.ResourceNodes.cmQSTransformNode, BrawlLib.SSBB.ResourceNodes.cmSByteNode, BrawlLib.SSBB.ResourceNodes.cmShortNode, BrawlLib.SSBB.ResourceNodes.cmStringNode, BrawlLib.SSBB.ResourceNodes.cmUIntNode, BrawlLib.SSBB.ResourceNodes.cmULongNode, BrawlLib.SSBB.ResourceNodes.cmULongPtrNode, BrawlLib.SSBB.ResourceNodes.cmUShortNode, BrawlLib.SSBB.ResourceNodes.cmVariantNode, BrawlLib.SSBB.ResourceNodes.cmVec4Node, BrawlLib.SSBB.ResourceNodes.ISONode, BrawlLib.SSBB.ResourceNodes.ISOPartitionNode, BrawlLib.SSBB.ResourceNodes.ItmFreqNode, BrawlLib.SSBB.ResourceNodes.ItmTableNode, BrawlLib.SSBB.ResourceNodes.ItmTableGroupNode, BrawlLib.SSBB.ResourceNodes.ItmFreqEntryNode, BrawlLib.SSBB.ResourceNodes.ItmParamNode, BrawlLib.SSBB.ResourceNodes.ItmParamEntryNode, BrawlLib.SSBB.ResourceNodes.MasqueradeNode, BrawlLib.SSBB.ResourceNodes.MasqueradeEntryNode, BrawlLib.SSBB.ResourceNodes.MDL0BoneNode, BrawlLib.SSBB.ResourceNodes.MDL0ColorNode, BrawlLib.SSBB.ResourceNodes.MDL0DefNode, BrawlLib.SSBB.ResourceNodes.MDL0FurPosNode, BrawlLib.SSBB.ResourceNodes.MDL0FurVecNode, BrawlLib.SSBB.ResourceNodes.MDL0MaterialNode, BrawlLib.SSBB.ResourceNodes.MDL0MaterialRefNode, BrawlLib.SSBB.ResourceNodes.MDL0Node, BrawlLib.SSBB.ResourceNodes.MDL0NormalNode, BrawlLib.SSBB.ResourceNodes.MDL0ObjectNode, BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode, BrawlLib.SSBB.ResourceNodes.MDL0UVNode, BrawlLib.SSBB.ResourceNodes.MDL0VertexNode, BrawlLib.SSBB.ResourceNodes.DOLNode, BrawlLib.SSBB.ResourceNodes.RELDeConStructorNode, BrawlLib.SSBB.ResourceNodes.RELMethodNode, BrawlLib.SSBB.ResourceNodes.RELNode, BrawlLib.SSBB.ResourceNodes.ModuleSectionNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventParameterNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventValueNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventValueEnumNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventValue2HalfNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventValue2HalfGFXNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventValueHalf2ByteNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventValue2ByteHalfNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventValue4ByteNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventUnkNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventOffsetNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventScalarNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventBoolNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventVariableNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventRequirementNode, BrawlLib.SSBB.ResourceNodes.HitboxFlagsNode, BrawlLib.SSBB.ResourceNodes.SpecialHitboxFlagsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionNode, BrawlLib.SSBB.ResourceNodes.MoveDefDataCommonNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk21Node, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7ListNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7EntryListEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk11Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk11EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionsSkipNode, BrawlLib.SSBB.ResourceNodes.MoveDefParamsOffsetNode, BrawlLib.SSBB.ResourceNodes.MoveDefPatternPowerMulNode, BrawlLib.SSBB.ResourceNodes.MoveDefPatternPowerMulEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionFlagsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionFlagsEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefFlagsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionInterruptsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionOverrideNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionOverrideEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionPreNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionPreEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefArticleNode, BrawlLib.SSBB.ResourceNodes.CollDataType0, BrawlLib.SSBB.ResourceNodes.CollisionDataNode, BrawlLib.SSBB.ResourceNodes.CollDataType1, BrawlLib.SSBB.ResourceNodes.CollDataType2, BrawlLib.SSBB.ResourceNodes.MoveDefAttributeNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk17Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk17EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneRef2Node, BrawlLib.SSBB.ResourceNodes.MoveDefModelVisibilityNode, BrawlLib.SSBB.ResourceNodes.MoveDefModelVisRefNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneSwitchNode, BrawlLib.SSBB.ResourceNodes.MoveDefModelVisGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscUnkSection9Node, BrawlLib.SSBB.ResourceNodes.MoveDefMiscUnkSection12Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnkSection9DataNode, BrawlLib.SSBB.ResourceNodes.UnkSection5Node, BrawlLib.SSBB.ResourceNodes.UnkSection1Node, BrawlLib.SSBB.ResourceNodes.UnknownSection2Node, BrawlLib.SSBB.ResourceNodes.MiscData2Node, BrawlLib.SSBB.ResourceNodes.UnknownSection3Node, BrawlLib.SSBB.ResourceNodes.UnknownSection3EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscHurtBoxesNode, BrawlLib.SSBB.ResourceNodes.MoveDefHurtBoxNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionUnk1Node, BrawlLib.SSBB.ResourceNodes.MoveDefSectionsUnk1NodeEntry, BrawlLib.SSBB.ResourceNodes.MoveDefLedgegrabsNode, BrawlLib.SSBB.ResourceNodes.MoveDefLedgegrabNode, BrawlLib.SSBB.ResourceNodes.MoveDefMultiJumpNode, BrawlLib.SSBB.ResourceNodes.MoveDefGlideNode, BrawlLib.SSBB.ResourceNodes.MoveDefCrawlNode, BrawlLib.SSBB.ResourceNodes.MoveDefTetherNode, BrawlLib.SSBB.ResourceNodes.MoveDefSoundDatasNode, BrawlLib.SSBB.ResourceNodes.MoveDefSoundDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefReferenceNode, BrawlLib.SSBB.ResourceNodes.MoveDefReferenceEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk22Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk24Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk7Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk7EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefStaticArticleGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefAnimParamNode, BrawlLib.SSBB.ResourceNodes.MoveDefParamListNode, BrawlLib.SSBB.ResourceNodes.Data2ListNode, BrawlLib.SSBB.ResourceNodes.DededeHitDataList, BrawlLib.SSBB.ResourceNodes.HitDataListOffsetNode, BrawlLib.SSBB.ResourceNodes.SZerosuitExtraParams8Node, BrawlLib.SSBB.ResourceNodes.Wario6, BrawlLib.SSBB.ResourceNodes.Wario8, BrawlLib.SSBB.ResourceNodes.Yoshi9, BrawlLib.SSBB.ResourceNodes.GameWatchArticle6, BrawlLib.SSBB.ResourceNodes.Pit7Robot13Node, BrawlLib.SSBB.ResourceNodes.ActionOffsetNode, BrawlLib.SSBB.ResourceNodes.SecondaryActionOffsetNode, BrawlLib.SSBB.ResourceNodes.Fox11Falco9Wolf11PopoArticle63Node, BrawlLib.SSBB.ResourceNodes.Fox11Falco9Wolf11Article3Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyArticleP1Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyArticleP1pt2Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList5152Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList49Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList49pt2Node, BrawlLib.SSBB.ResourceNodes.MoveDefRawDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneIndicesNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneIndexNode, BrawlLib.SSBB.ResourceNodes.MoveDefIndicesNode, BrawlLib.SSBB.ResourceNodes.MoveDefIndexNode, BrawlLib.SSBB.ResourceNodes.MoveDefOffsetNode, BrawlLib.SSBB.ResourceNodes.MoveDefListOffsetNode, BrawlLib.SSBB.ResourceNodes.MoveDefLookupNode, BrawlLib.SSBB.ResourceNodes.MoveDefLookupOffsetNode, BrawlLib.SSBB.ResourceNodes.MoveDefEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionsNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionParamNode, BrawlLib.SSBB.ResourceNodes.SectionDataGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefHitDataListNode, BrawlLib.SSBB.ResourceNodes.MSBinNode, BrawlLib.SSBB.ResourceNodes.NW4RNode, BrawlLib.SSBB.ResourceNodes.NW4RArcEntryNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataEntryNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataSubEntryNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSEntryNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ITOVv1Node, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ITOVNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.STEXNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTEntryNode, BrawlLib.SSBB.ResourceNodes.RASDNode, BrawlLib.SSBB.ResourceNodes.RawDataNode, BrawlLib.SSBB.ResourceNodes.RSARBankNode, BrawlLib.SSBB.ResourceNodes.RSARGroupNode, BrawlLib.SSBB.ResourceNodes.RSARPlayerInfoNode, BrawlLib.SSBB.ResourceNodes.RSARSoundNode, BrawlLib.SSBB.ResourceNodes.RBNKDataInstParamNode, BrawlLib.SSBB.ResourceNodes.RBNKDataRangeTableNode, BrawlLib.SSBB.ResourceNodes.RBNKDataIndexTableNode, BrawlLib.SSBB.ResourceNodes.RBNKNullNode, BrawlLib.SSBB.ResourceNodes.RBNKDataGroupNode, BrawlLib.SSBB.ResourceNodes.RBNKSoundGroupNode, BrawlLib.SSBB.ResourceNodes.RBNKNode, BrawlLib.SSBB.ResourceNodes.RSEQLabelNode, BrawlLib.SSBB.ResourceNodes.RSEQNode, BrawlLib.SSBB.ResourceNodes.RSTMNode, BrawlLib.SSBB.ResourceNodes.RWARNode, BrawlLib.SSBB.ResourceNodes.RWAVNode, BrawlLib.SSBB.ResourceNodes.RWSDDataNode, BrawlLib.SSBB.ResourceNodes.RWSDDataGroupNode, BrawlLib.SSBB.ResourceNodes.RWSDSoundGroupNode, BrawlLib.SSBB.ResourceNodes.RWSDNode, BrawlLib.SSBB.ResourceNodes.WAVESoundNode, BrawlLib.SSBB.ResourceNodes.RSAREntryNode, BrawlLib.SSBB.ResourceNodes.RSARExtFileNode, BrawlLib.SSBB.ResourceNodes.RSARFileNode, BrawlLib.SSBB.ResourceNodes.RSARNode, BrawlLib.SSBB.ResourceNodes.SakuraiArchiveNode, BrawlLib.SSBB.ResourceNodes.SCLANode, BrawlLib.SSBB.ResourceNodes.SCLAEntryNode, BrawlLib.SSBB.ResourceNodes.SCN0AmbientLightNode, BrawlLib.SSBB.ResourceNodes.SCN0CameraNode, BrawlLib.SSBB.ResourceNodes.SCN0FogNode, BrawlLib.SSBB.ResourceNodes.SCN0GroupNode, BrawlLib.SSBB.ResourceNodes.SCN0EntryNode, BrawlLib.SSBB.ResourceNodes.SCN0LightNode, BrawlLib.SSBB.ResourceNodes.SCN0LightSetNode, BrawlLib.SSBB.ResourceNodes.SCN0Node, BrawlLib.SSBB.ResourceNodes.SndBgmTitleDataNode, BrawlLib.SSBB.ResourceNodes.SndBgmTitleEntryNode, BrawlLib.SSBB.ResourceNodes.STDTNode, BrawlLib.SSBB.ResourceNodes.TBCLEntryNode, BrawlLib.SSBB.ResourceNodes.TBGCEntryNode, BrawlLib.SSBB.ResourceNodes.TBGDEntryNode, BrawlLib.SSBB.ResourceNodes.TBGMEntryNode, BrawlLib.SSBB.ResourceNodes.TBLVEntryNode, BrawlLib.SSBB.ResourceNodes.TBNode, BrawlLib.SSBB.ResourceNodes.TBRMEntryNode, BrawlLib.SSBB.ResourceNodes.TBSTEntryNode, BrawlLib.SSBB.ResourceNodes.STPMNode, BrawlLib.SSBB.ResourceNodes.STPMEntryNode, BrawlLib.SSBB.ResourceNodes.ADPMNode, BrawlLib.SSBB.ResourceNodes.ADPMEntryNode, BrawlLib.SSBB.ResourceNodes.GLK2EntryNode, BrawlLib.SSBB.ResourceNodes.GLOKEntryNode, BrawlLib.SSBB.ResourceNodes.GMOTEntryNode, BrawlLib.SSBB.ResourceNodes.GMOVEntryNode, BrawlLib.SSBB.ResourceNodes.GMV4EntryNode, BrawlLib.SSBB.ResourceNodes.GMVAEntryNode, BrawlLib.SSBB.ResourceNodes.GQUKEntryNode, BrawlLib.SSBB.ResourceNodes.BLOCNode, BrawlLib.SSBB.ResourceNodes.BLOCEntryNode, BrawlLib.SSBB.ResourceNodes.GCAMEntryNode, BrawlLib.SSBB.ResourceNodes.GCMPEntryNode, BrawlLib.SSBB.ResourceNodes.GFSREntryNode, BrawlLib.SSBB.ResourceNodes.GEFFEntryNode, BrawlLib.SSBB.ResourceNodes.GNDVEntryNode, BrawlLib.SSBB.ResourceNodes.GEG1EntryNode, BrawlLib.SSBB.ResourceNodes.GENCEntryNode, BrawlLib.SSBB.ResourceNodes.GFG1EntryNode, BrawlLib.SSBB.ResourceNodes.GFPREntryNode, BrawlLib.SSBB.ResourceNodes.GFRKEntryNode, BrawlLib.SSBB.ResourceNodes.GHPEEntryNode, BrawlLib.SSBB.ResourceNodes.GKNGEntryNode, BrawlLib.SSBB.ResourceNodes.GMCAEntryNode, BrawlLib.SSBB.ResourceNodes.GMEAEntryNode, BrawlLib.SSBB.ResourceNodes.GWATEntryNode, BrawlLib.SSBB.ResourceNodes.GWD2EntryNode, BrawlLib.SSBB.ResourceNodes.GWNDEntryNode, BrawlLib.SSBB.ResourceNodes.MVPMNode, BrawlLib.SSBB.ResourceNodes.MVPMEntryNode, BrawlLib.SSBB.ResourceNodes.ADSJNode, BrawlLib.SSBB.ResourceNodes.ADSJEntryNode, BrawlLib.SSBB.ResourceNodes.GDOREntryNode, BrawlLib.SSBB.ResourceNodes.GDTPEntryNode, BrawlLib.SSBB.ResourceNodes.GDBSEntryNode, BrawlLib.SSBB.ResourceNodes.GMSJEntryNode, BrawlLib.SSBB.ResourceNodes.GSCNEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Navigation.GWAPEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBCEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBC1EntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBC2EntryNode, BrawlLib.SSBB.ResourceNodes.GBLKEntryNode, BrawlLib.SSBB.ResourceNodes.GBLTEntryNode, BrawlLib.SSBB.ResourceNodes.GBRFEntryNode, BrawlLib.SSBB.ResourceNodes.GCATEntryNode, BrawlLib.SSBB.ResourceNodes.GELAEntryNode, BrawlLib.SSBB.ResourceNodes.GELEEntryNode, BrawlLib.SSBB.ResourceNodes.GFIMEntryNode, BrawlLib.SSBB.ResourceNodes.GIB2EntryNode, BrawlLib.SSBB.ResourceNodes.GITMEntryNode, BrawlLib.SSBB.ResourceNodes.GITREntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GLADEntryNode, BrawlLib.SSBB.ResourceNodes.GMPSEntryNode, BrawlLib.SSBB.ResourceNodes.GMRLEntryNode, BrawlLib.SSBB.ResourceNodes.GMTAEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GMWAEntryNode, BrawlLib.SSBB.ResourceNodes.GMWOEntryNode, BrawlLib.SSBB.ResourceNodes.GSAVEntryNode, BrawlLib.SSBB.ResourceNodes.GSBKEntryNode, BrawlLib.SSBB.ResourceNodes.GSHTEntryNode, BrawlLib.SSBB.ResourceNodes.GSPREntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GSTGEntryNode, BrawlLib.SSBB.ResourceNodes.GTRCEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GTRREntryNode, BrawlLib.SSBB.ResourceNodes.GDMDEntryNode, BrawlLib.SSBB.ResourceNodes.GFINEntryNode, BrawlLib.SSBB.ResourceNodes.GMINEntryNode, BrawlLib.SSBB.ResourceNodes.GTIKEntryNode, BrawlLib.SSBB.ResourceNodes.BGMGNode, BrawlLib.SSBB.ResourceNodes.BGMGEntryNode, BrawlLib.SSBB.ResourceNodes.GSNDEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCTeamNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Triggers.GASDEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Triggers.GEPTEntryNode, BrawlLib.SSBB.ResourceNodes.GET1EntryNode, BrawlLib.SSBB.ResourceNodes.GET2EntryNode, BrawlLib.SSBB.ResourceNodes.GFRTEntryNode, BrawlLib.SSBB.ResourceNodes.GFT2EntryNode, BrawlLib.SSBB.ResourceNodes.GMOAEntryNode, BrawlLib.SSBB.ResourceNodes.THPNode, BrawlLib.SSBB.ResourceNodes.TyDataNode, BrawlLib.SSBB.ResourceNodes.TySealList, BrawlLib.SSBB.ResourceNodes.TySealNode, BrawlLib.SSBB.ResourceNodes.TySealVertDataNode, BrawlLib.SSBB.ResourceNodes.TySealVertDataEntryNode, BrawlLib.SSBB.ResourceNodes.TyDataListNode, BrawlLib.SSBB.ResourceNodes.TyDataListEntryNode, BrawlLib.SSBB.ResourceNodes.TySealVertListNode, and BrawlLib.SSBB.ResourceNodes.TySealVertListEntryNode.

701 {
702 return false;
703 }

◆ OnMoved()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.OnMoved ( )
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.MDL0BoneNode.

528 {
529 }

◆ OnPopulate()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.OnPopulate ( )
inlinevirtual

Reimplemented in BrawlLib.SSBB.MuEventTblNode, BrawlLib.SSBB.ResourceNodes.AIPDNode, BrawlLib.SSBB.ResourceNodes.AIPDType1OffsetsNode, BrawlLib.SSBB.ResourceNodes.AIPDType1Node, BrawlLib.SSBB.ResourceNodes.AIPDType2OffsetsNode, BrawlLib.SSBB.ResourceNodes.AIPDType2Node, BrawlLib.SSBB.ResourceNodes.ATKDNode, BrawlLib.SSBB.ResourceNodes.CENode, BrawlLib.SSBB.ResourceNodes.CEGroupNode, BrawlLib.SSBB.ResourceNodes.CEEntryNode, BrawlLib.SSBB.ResourceNodes.AllstarFighterNode, BrawlLib.SSBB.ResourceNodes.AllstarStageTblNode, BrawlLib.SSBB.ResourceNodes.CHR0Node, BrawlLib.SSBB.ResourceNodes.CLR0Node, BrawlLib.SSBB.ResourceNodes.CLR0MaterialNode, BrawlLib.SSBB.ResourceNodes.PAT0Node, BrawlLib.SSBB.ResourceNodes.PAT0EntryNode, BrawlLib.SSBB.ResourceNodes.PAT0TextureNode, BrawlLib.SSBB.ResourceNodes.SHP0Node, BrawlLib.SSBB.ResourceNodes.SHP0EntryNode, BrawlLib.SSBB.ResourceNodes.SRT0Node, BrawlLib.SSBB.ResourceNodes.SRT0EntryNode, BrawlLib.SSBB.ResourceNodes.VIS0Node, BrawlLib.SSBB.ResourceNodes.ARCNode, BrawlLib.SSBB.ResourceNodes.BRRESNode, BrawlLib.SSBB.ResourceNodes.BRESGroupNode, BrawlLib.SSBB.ResourceNodes.FileScanNode, BrawlLib.SSBB.ResourceNodes.FolderNode, BrawlLib.SSBB.ResourceNodes.MRGNode, BrawlLib.SSBB.ResourceNodes.U8Node, BrawlLib.SSBB.ResourceNodes.COSCNode, BrawlLib.SSBB.ResourceNodes.CSSCNode, BrawlLib.SSBB.ResourceNodes.SLTCNode, BrawlLib.SSBB.ResourceNodes.ClassicStageBlockNode, BrawlLib.SSBB.ResourceNodes.ClassicFighterNode, BrawlLib.SSBB.ResourceNodes.ClassicStageTblNode, BrawlLib.SSBB.ResourceNodes.CMMNode, BrawlLib.SSBB.ResourceNodes.CollisionNode, BrawlLib.SSBB.ResourceNodes.Common2MiscDataNode, BrawlLib.SSBB.ResourceNodes.EventMatchFighterNode, BrawlLib.SSBB.ResourceNodes.EventMatchNode, BrawlLib.SSBB.ResourceNodes.GCTNode, BrawlLib.SSBB.ResourceNodes.EFLSNode, BrawlLib.SSBB.ResourceNodes.EFLSEntryNode, BrawlLib.SSBB.ResourceNodes.REFFAnimationListNode, BrawlLib.SSBB.ResourceNodes.REFFAnimationNode, BrawlLib.SSBB.ResourceNodes.REFFPostFieldInfoNode, BrawlLib.SSBB.ResourceNodes.REFFEmitterNode7, BrawlLib.SSBB.ResourceNodes.REFFEmitterNode9, BrawlLib.SSBB.ResourceNodes.REFFNode, BrawlLib.SSBB.ResourceNodes.REFFEntryNode, BrawlLib.SSBB.ResourceNodes.REFTNode, BrawlLib.SSBB.ResourceNodes.TPLNode, BrawlLib.SSBB.ResourceNodes.hkClassEnumNode, BrawlLib.SSBB.ResourceNodes.hkClassNode, BrawlLib.SSBB.ResourceNodes.HavokMetaObjectNode, BrawlLib.SSBB.ResourceNodes.HavokNode, BrawlLib.SSBB.ResourceNodes.HavokCommonArrayNode, BrawlLib.SSBB.ResourceNodes.cmPointerNode, BrawlLib.SSBB.ResourceNodes.cmVariantNode, BrawlLib.SSBB.ResourceNodes.ISONode, BrawlLib.SSBB.ResourceNodes.ItmFreqNode, BrawlLib.SSBB.ResourceNodes.ItmTableNode, BrawlLib.SSBB.ResourceNodes.ItmTableGroupNode, BrawlLib.SSBB.ResourceNodes.ItmParamNode, BrawlLib.SSBB.ResourceNodes.MasqueradeNode, BrawlLib.SSBB.ResourceNodes.MDL0MaterialNode, BrawlLib.SSBB.ResourceNodes.MDL0Node, BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode, BrawlLib.SSBB.ResourceNodes.DOLNode, BrawlLib.SSBB.ResourceNodes.RELNode, BrawlLib.SSBB.ResourceNodes.ModuleSectionNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionNode, BrawlLib.SSBB.ResourceNodes.MoveDefDataCommonNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk21Node, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7ListNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk11Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk11EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionsSkipNode, BrawlLib.SSBB.ResourceNodes.MoveDefParamsOffsetNode, BrawlLib.SSBB.ResourceNodes.MoveDefPatternPowerMulNode, BrawlLib.SSBB.ResourceNodes.MoveDefPatternPowerMulEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionFlagsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionInterruptsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionOverrideNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionOverrideEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionPreNode, BrawlLib.SSBB.ResourceNodes.MoveDefArticleNode, BrawlLib.SSBB.ResourceNodes.CollDataType0, BrawlLib.SSBB.ResourceNodes.CollisionDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk17Node, BrawlLib.SSBB.ResourceNodes.MoveDefBoneRef2Node, BrawlLib.SSBB.ResourceNodes.MoveDefModelVisibilityNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscUnkSection9Node, BrawlLib.SSBB.ResourceNodes.MoveDefMiscUnkSection12Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnkSection9DataNode, BrawlLib.SSBB.ResourceNodes.UnknownSection2Node, BrawlLib.SSBB.ResourceNodes.UnknownSection3Node, BrawlLib.SSBB.ResourceNodes.MoveDefMiscHurtBoxesNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionUnk1Node, BrawlLib.SSBB.ResourceNodes.MoveDefLedgegrabsNode, BrawlLib.SSBB.ResourceNodes.MoveDefSoundDatasNode, BrawlLib.SSBB.ResourceNodes.MoveDefSoundDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefReferenceNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk22Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk24Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk7Node, BrawlLib.SSBB.ResourceNodes.MoveDefDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefStaticArticleGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefAnimParamNode, BrawlLib.SSBB.ResourceNodes.MoveDefParamListNode, BrawlLib.SSBB.ResourceNodes.Data2ListNode, BrawlLib.SSBB.ResourceNodes.DededeHitDataList, BrawlLib.SSBB.ResourceNodes.HitDataListOffsetNode, BrawlLib.SSBB.ResourceNodes.Wario8, BrawlLib.SSBB.ResourceNodes.Yoshi9, BrawlLib.SSBB.ResourceNodes.GameWatchArticle6, BrawlLib.SSBB.ResourceNodes.Pit7Robot13Node, BrawlLib.SSBB.ResourceNodes.ActionOffsetNode, BrawlLib.SSBB.ResourceNodes.SecondaryActionOffsetNode, BrawlLib.SSBB.ResourceNodes.Fox11Falco9Wolf11PopoArticle63Node, BrawlLib.SSBB.ResourceNodes.Fox11Falco9Wolf11Article3Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyArticleP1Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyArticleP1pt2Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList5152Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList49Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList49pt2Node, BrawlLib.SSBB.ResourceNodes.MoveDefBoneIndicesNode, BrawlLib.SSBB.ResourceNodes.MoveDefIndicesNode, BrawlLib.SSBB.ResourceNodes.MoveDefLookupNode, BrawlLib.SSBB.ResourceNodes.MoveDefNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionsNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionParamNode, BrawlLib.SSBB.ResourceNodes.SectionDataGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefHitDataListNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataEntryNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.STEXNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTNode, BrawlLib.SSBB.ResourceNodes.RASDNode, BrawlLib.SSBB.ResourceNodes.RBNKDataRangeTableNode, BrawlLib.SSBB.ResourceNodes.RBNKDataIndexTableNode, BrawlLib.SSBB.ResourceNodes.RBNKDataGroupNode, BrawlLib.SSBB.ResourceNodes.RBNKSoundGroupNode, BrawlLib.SSBB.ResourceNodes.RBNKNode, BrawlLib.SSBB.ResourceNodes.RSEQNode, BrawlLib.SSBB.ResourceNodes.RWARNode, BrawlLib.SSBB.ResourceNodes.RWSDSoundGroupNode, BrawlLib.SSBB.ResourceNodes.RWSDNode, BrawlLib.SSBB.ResourceNodes.RSARNode, BrawlLib.SSBB.ResourceNodes.SCLANode, BrawlLib.SSBB.ResourceNodes.SCN0Node, BrawlLib.SSBB.ResourceNodes.SndBgmTitleDataNode, BrawlLib.SSBB.ResourceNodes.TBNode, BrawlLib.SSBB.ResourceNodes.STPMNode, BrawlLib.SSBB.ResourceNodes.ADPMNode, BrawlLib.SSBB.ResourceNodes.BLOCNode, BrawlLib.SSBB.ResourceNodes.BLOCEntryNode, BrawlLib.SSBB.ResourceNodes.MVPMNode, BrawlLib.SSBB.ResourceNodes.ADSJNode, BrawlLib.SSBB.ResourceNodes.BGMGNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCTeamNode, BrawlLib.SSBB.ResourceNodes.TyDataNode, BrawlLib.SSBB.ResourceNodes.TySealList, BrawlLib.SSBB.ResourceNodes.TySealVertDataNode, BrawlLib.SSBB.ResourceNodes.TyDataListNode, and BrawlLib.SSBB.ResourceNodes.TySealVertListNode.

644 {
645 }

◆ OnRebuild()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.OnRebuild ( VoidPtr  address,
int  length,
bool  force 
)
inlinevirtual

Reimplemented in BrawlLib.SSBB.MuEventTblNode, BrawlLib.SSBB.MuEventNode, BrawlLib.SSBB.ResourceNodes.AIPDNode, BrawlLib.SSBB.ResourceNodes.AIPDDefBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDSubBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDUnkBlockNode, BrawlLib.SSBB.ResourceNodes.AIPDType1OffsetsNode, BrawlLib.SSBB.ResourceNodes.AIPDType1Node, BrawlLib.SSBB.ResourceNodes.AIPDType1EntryNode, BrawlLib.SSBB.ResourceNodes.AIPDType2OffsetsNode, BrawlLib.SSBB.ResourceNodes.AIPDType2Node, BrawlLib.SSBB.ResourceNodes.AIPDType2EntryNode, BrawlLib.SSBB.ResourceNodes.ATKDNode, BrawlLib.SSBB.ResourceNodes.ATKDEntryNode, BrawlLib.SSBB.ResourceNodes.CENode, BrawlLib.SSBB.ResourceNodes.CEGroupNode, BrawlLib.SSBB.ResourceNodes.CEEntryNode, BrawlLib.SSBB.ResourceNodes.CEEventNode, BrawlLib.SSBB.ResourceNodes.CEStringNode, BrawlLib.SSBB.ResourceNodes.AllstarDifficultyNode, BrawlLib.SSBB.ResourceNodes.AllstarFighterNode, BrawlLib.SSBB.ResourceNodes.AllstarStageTblNode, BrawlLib.SSBB.ResourceNodes.CHR0Node, BrawlLib.SSBB.ResourceNodes.CHR0EntryNode, BrawlLib.SSBB.ResourceNodes.CLR0Node, BrawlLib.SSBB.ResourceNodes.PAT0Node, BrawlLib.SSBB.ResourceNodes.PAT0EntryNode, BrawlLib.SSBB.ResourceNodes.PAT0TextureNode, BrawlLib.SSBB.ResourceNodes.PAT0TextureEntryNode, BrawlLib.SSBB.ResourceNodes.SHP0Node, BrawlLib.SSBB.ResourceNodes.SHP0EntryNode, BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode, BrawlLib.SSBB.ResourceNodes.SRT0Node, BrawlLib.SSBB.ResourceNodes.SRT0EntryNode, BrawlLib.SSBB.ResourceNodes.SRT0TextureNode, BrawlLib.SSBB.ResourceNodes.VIS0Node, BrawlLib.SSBB.ResourceNodes.VIS0EntryNode, BrawlLib.SSBB.ResourceNodes.U8Node, BrawlLib.SSBB.ResourceNodes.COSCNode, BrawlLib.SSBB.ResourceNodes.CSSCNode, BrawlLib.SSBB.ResourceNodes.CSSCEntryNode, BrawlLib.SSBB.ResourceNodes.FCFGNode, BrawlLib.SSBB.ResourceNodes.RSTCNode, BrawlLib.SSBB.ResourceNodes.RSTCGroupNode, BrawlLib.SSBB.ResourceNodes.RSTCEntryNode, BrawlLib.SSBB.ResourceNodes.SLTCNode, BrawlLib.SSBB.ResourceNodes.ClassicStageBlockNode, BrawlLib.SSBB.ResourceNodes.ClassicDifficultyNode, BrawlLib.SSBB.ResourceNodes.ClassicFighterNode, BrawlLib.SSBB.ResourceNodes.ClassicStageTblNode, BrawlLib.SSBB.ResourceNodes.CMMNode, BrawlLib.SSBB.ResourceNodes.CMMEntryNode, BrawlLib.SSBB.ResourceNodes.CollisionNode, BrawlLib.SSBB.ResourceNodes.Common2MiscDataNode, BrawlLib.SSBB.ResourceNodes.EventMatchDifficultyNode, BrawlLib.SSBB.ResourceNodes.EventMatchFighterNode, BrawlLib.SSBB.ResourceNodes.EventMatchNode, BrawlLib.SSBB.ResourceNodes.GCTNode, BrawlLib.SSBB.ResourceNodes.EFLSNode, BrawlLib.SSBB.ResourceNodes.PLT0Node, BrawlLib.SSBB.ResourceNodes.REFFAnimationListNode, BrawlLib.SSBB.ResourceNodes.REFFAnimationNode, BrawlLib.SSBB.ResourceNodes.REFFEmitterNode7, BrawlLib.SSBB.ResourceNodes.REFFEmitterNode9, BrawlLib.SSBB.ResourceNodes.REFFNode, BrawlLib.SSBB.ResourceNodes.REFFEntryNode, BrawlLib.SSBB.ResourceNodes.REFFParticleNode, BrawlLib.SSBB.ResourceNodes.REFTNode, BrawlLib.SSBB.ResourceNodes.REFTEntryNode, BrawlLib.SSBB.ResourceNodes.TEX0Node, BrawlLib.SSBB.ResourceNodes.TPLNode, BrawlLib.SSBB.ResourceNodes.TPLTextureNode, BrawlLib.SSBB.ResourceNodes.TPLPaletteNode, BrawlLib.SSBB.ResourceNodes.hkClassNode, BrawlLib.SSBB.ResourceNodes.hkClassMemberNode, BrawlLib.SSBB.ResourceNodes.HavokNode, BrawlLib.SSBB.ResourceNodes.cmBoolNode, BrawlLib.SSBB.ResourceNodes.cmByteNode, BrawlLib.SSBB.ResourceNodes.cmCharNode, BrawlLib.SSBB.ResourceNodes.cmEnumNode, BrawlLib.SSBB.ResourceNodes.cmFloatNode, BrawlLib.SSBB.ResourceNodes.cmIntNode, BrawlLib.SSBB.ResourceNodes.cmLongNode, BrawlLib.SSBB.ResourceNodes.cmMat3Node, BrawlLib.SSBB.ResourceNodes.cmMat4Node, BrawlLib.SSBB.ResourceNodes.cmPointerNode, BrawlLib.SSBB.ResourceNodes.cmQSTransformNode, BrawlLib.SSBB.ResourceNodes.cmSByteNode, BrawlLib.SSBB.ResourceNodes.cmShortNode, BrawlLib.SSBB.ResourceNodes.cmStringNode, BrawlLib.SSBB.ResourceNodes.cmUIntNode, BrawlLib.SSBB.ResourceNodes.cmULongNode, BrawlLib.SSBB.ResourceNodes.cmULongPtrNode, BrawlLib.SSBB.ResourceNodes.cmUShortNode, BrawlLib.SSBB.ResourceNodes.cmVariantNode, BrawlLib.SSBB.ResourceNodes.cmVec4Node, BrawlLib.SSBB.ResourceNodes.ItmFreqNode, BrawlLib.SSBB.ResourceNodes.ItmTableNode, BrawlLib.SSBB.ResourceNodes.ItmTableGroupNode, BrawlLib.SSBB.ResourceNodes.ItmFreqEntryNode, BrawlLib.SSBB.ResourceNodes.ItmParamNode, BrawlLib.SSBB.ResourceNodes.ItmParamEntryNode, BrawlLib.SSBB.ResourceNodes.MasqueradeNode, BrawlLib.SSBB.ResourceNodes.MasqueradeEntryNode, BrawlLib.SSBB.ResourceNodes.MDL0BoneNode, BrawlLib.SSBB.ResourceNodes.MDL0ColorNode, BrawlLib.SSBB.ResourceNodes.MDL0FurPosNode, BrawlLib.SSBB.ResourceNodes.MDL0FurVecNode, BrawlLib.SSBB.ResourceNodes.MDL0MaterialNode, BrawlLib.SSBB.ResourceNodes.MDL0MaterialRefNode, BrawlLib.SSBB.ResourceNodes.MDL0Node, BrawlLib.SSBB.ResourceNodes.MDL0NormalNode, BrawlLib.SSBB.ResourceNodes.MDL0ObjectNode, BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode, BrawlLib.SSBB.ResourceNodes.MDL0UVNode, BrawlLib.SSBB.ResourceNodes.MDL0VertexNode, BrawlLib.SSBB.ResourceNodes.DOLNode, BrawlLib.SSBB.ResourceNodes.RELNode, BrawlLib.SSBB.ResourceNodes.ModuleSectionNode, BrawlLib.SSBB.ResourceNodes.MoveDefEventParameterNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk21Node, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7ListNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefCommonUnk7EntryListEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk11Node, BrawlLib.SSBB.ResourceNodes.MoveDefPatternPowerMulNode, BrawlLib.SSBB.ResourceNodes.MoveDefPatternPowerMulEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionFlagsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionFlagsEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionInterruptsNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionOverrideNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionPreNode, BrawlLib.SSBB.ResourceNodes.MoveDefActionPreEntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefArticleNode, BrawlLib.SSBB.ResourceNodes.CollDataType0, BrawlLib.SSBB.ResourceNodes.CollisionDataNode, BrawlLib.SSBB.ResourceNodes.CollDataType1, BrawlLib.SSBB.ResourceNodes.CollDataType2, BrawlLib.SSBB.ResourceNodes.MoveDefAttributeNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk17Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk17EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneRef2Node, BrawlLib.SSBB.ResourceNodes.MoveDefModelVisibilityNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscUnkSection9Node, BrawlLib.SSBB.ResourceNodes.MoveDefMiscUnkSection12Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnkSection9DataNode, BrawlLib.SSBB.ResourceNodes.UnkSection5Node, BrawlLib.SSBB.ResourceNodes.UnkSection1Node, BrawlLib.SSBB.ResourceNodes.UnknownSection2Node, BrawlLib.SSBB.ResourceNodes.MiscData2Node, BrawlLib.SSBB.ResourceNodes.UnknownSection3Node, BrawlLib.SSBB.ResourceNodes.UnknownSection3EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefMiscHurtBoxesNode, BrawlLib.SSBB.ResourceNodes.MoveDefHurtBoxNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionUnk1Node, BrawlLib.SSBB.ResourceNodes.MoveDefSectionsUnk1NodeEntry, BrawlLib.SSBB.ResourceNodes.MoveDefLedgegrabsNode, BrawlLib.SSBB.ResourceNodes.MoveDefLedgegrabNode, BrawlLib.SSBB.ResourceNodes.MoveDefMultiJumpNode, BrawlLib.SSBB.ResourceNodes.MoveDefGlideNode, BrawlLib.SSBB.ResourceNodes.MoveDefCrawlNode, BrawlLib.SSBB.ResourceNodes.MoveDefTetherNode, BrawlLib.SSBB.ResourceNodes.MoveDefSoundDatasNode, BrawlLib.SSBB.ResourceNodes.MoveDefUnk22Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk24Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk7Node, BrawlLib.SSBB.ResourceNodes.MoveDefUnk7EntryNode, BrawlLib.SSBB.ResourceNodes.MoveDefDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefStaticArticleGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefParamListNode, BrawlLib.SSBB.ResourceNodes.Data2ListNode, BrawlLib.SSBB.ResourceNodes.DededeHitDataList, BrawlLib.SSBB.ResourceNodes.HitDataListOffsetNode, BrawlLib.SSBB.ResourceNodes.SZerosuitExtraParams8Node, BrawlLib.SSBB.ResourceNodes.Wario6, BrawlLib.SSBB.ResourceNodes.Wario8, BrawlLib.SSBB.ResourceNodes.Yoshi9, BrawlLib.SSBB.ResourceNodes.GameWatchArticle6, BrawlLib.SSBB.ResourceNodes.Pit7Robot13Node, BrawlLib.SSBB.ResourceNodes.ActionOffsetNode, BrawlLib.SSBB.ResourceNodes.SecondaryActionOffsetNode, BrawlLib.SSBB.ResourceNodes.Fox11Falco9Wolf11PopoArticle63Node, BrawlLib.SSBB.ResourceNodes.Fox11Falco9Wolf11Article3Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyArticleP1Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyArticleP1pt2Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList5152Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList49Node, BrawlLib.SSBB.ResourceNodes.MoveDefKirbyParamList49pt2Node, BrawlLib.SSBB.ResourceNodes.MoveDefActionListNode, BrawlLib.SSBB.ResourceNodes.MoveDefRawDataNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneIndicesNode, BrawlLib.SSBB.ResourceNodes.MoveDefBoneIndexNode, BrawlLib.SSBB.ResourceNodes.MoveDefIndicesNode, BrawlLib.SSBB.ResourceNodes.MoveDefIndexNode, BrawlLib.SSBB.ResourceNodes.MoveDefNode, BrawlLib.SSBB.ResourceNodes.MoveDefSectionParamNode, BrawlLib.SSBB.ResourceNodes.SectionDataGroupNode, BrawlLib.SSBB.ResourceNodes.MoveDefHitDataListNode, BrawlLib.SSBB.ResourceNodes.MSBinNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataEntryNode, BrawlLib.SSBB.ResourceNodes.PathingMiscDataSubEntryNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ASLSEntryNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ITOVv1Node, BrawlLib.SSBB.ResourceNodes.ProjectPlus.ITOVNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.STEXNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTNode, BrawlLib.SSBB.ResourceNodes.ProjectPlus.TLSTEntryNode, BrawlLib.SSBB.ResourceNodes.RASDNode, BrawlLib.SSBB.ResourceNodes.RawDataNode, BrawlLib.SSBB.ResourceNodes.RSARBankNode, BrawlLib.SSBB.ResourceNodes.RSARGroupNode, BrawlLib.SSBB.ResourceNodes.RSARPlayerInfoNode, BrawlLib.SSBB.ResourceNodes.RSARSoundNode, BrawlLib.SSBB.ResourceNodes.RBNKDataInstParamNode, BrawlLib.SSBB.ResourceNodes.RBNKTableNode, BrawlLib.SSBB.ResourceNodes.RBNKNullNode, BrawlLib.SSBB.ResourceNodes.RBNKDataGroupNode, BrawlLib.SSBB.ResourceNodes.RBNKSoundGroupNode, BrawlLib.SSBB.ResourceNodes.RBNKNode, BrawlLib.SSBB.ResourceNodes.RSEQNode, BrawlLib.SSBB.ResourceNodes.RWARNode, BrawlLib.SSBB.ResourceNodes.RWSDDataNode, BrawlLib.SSBB.ResourceNodes.RWSDDataGroupNode, BrawlLib.SSBB.ResourceNodes.RWSDSoundGroupNode, BrawlLib.SSBB.ResourceNodes.RWSDNode, BrawlLib.SSBB.ResourceNodes.RSARNode, BrawlLib.SSBB.ResourceNodes.SakuraiArchiveNode, BrawlLib.SSBB.ResourceNodes.SCLANode, BrawlLib.SSBB.ResourceNodes.SCLAEntryNode, BrawlLib.SSBB.ResourceNodes.SCN0AmbientLightNode, BrawlLib.SSBB.ResourceNodes.SCN0CameraNode, BrawlLib.SSBB.ResourceNodes.SCN0FogNode, BrawlLib.SSBB.ResourceNodes.SCN0GroupNode, BrawlLib.SSBB.ResourceNodes.SCN0EntryNode, BrawlLib.SSBB.ResourceNodes.SCN0LightNode, BrawlLib.SSBB.ResourceNodes.SCN0LightSetNode, BrawlLib.SSBB.ResourceNodes.SCN0Node, BrawlLib.SSBB.ResourceNodes.SndBgmTitleDataNode, BrawlLib.SSBB.ResourceNodes.SndBgmTitleEntryNode, BrawlLib.SSBB.ResourceNodes.STDTNode, BrawlLib.SSBB.ResourceNodes.TBCLEntryNode, BrawlLib.SSBB.ResourceNodes.TBGCEntryNode, BrawlLib.SSBB.ResourceNodes.TBGDEntryNode, BrawlLib.SSBB.ResourceNodes.TBGMEntryNode, BrawlLib.SSBB.ResourceNodes.TBLVEntryNode, BrawlLib.SSBB.ResourceNodes.TBNode, BrawlLib.SSBB.ResourceNodes.TBRMEntryNode, BrawlLib.SSBB.ResourceNodes.TBSTEntryNode, BrawlLib.SSBB.ResourceNodes.STPMNode, BrawlLib.SSBB.ResourceNodes.STPMEntryNode, BrawlLib.SSBB.ResourceNodes.ADPMNode, BrawlLib.SSBB.ResourceNodes.ADPMEntryNode, BrawlLib.SSBB.ResourceNodes.GLK2EntryNode, BrawlLib.SSBB.ResourceNodes.GLOKEntryNode, BrawlLib.SSBB.ResourceNodes.GMOTEntryNode, BrawlLib.SSBB.ResourceNodes.GMOVEntryNode, BrawlLib.SSBB.ResourceNodes.GMV4EntryNode, BrawlLib.SSBB.ResourceNodes.GMVAEntryNode, BrawlLib.SSBB.ResourceNodes.GQUKEntryNode, BrawlLib.SSBB.ResourceNodes.BLOCNode, BrawlLib.SSBB.ResourceNodes.BLOCEntryNode, BrawlLib.SSBB.ResourceNodes.GCAMEntryNode, BrawlLib.SSBB.ResourceNodes.GCMPEntryNode, BrawlLib.SSBB.ResourceNodes.GFSREntryNode, BrawlLib.SSBB.ResourceNodes.GEFFEntryNode, BrawlLib.SSBB.ResourceNodes.GNDVEntryNode, BrawlLib.SSBB.ResourceNodes.GEG1EntryNode, BrawlLib.SSBB.ResourceNodes.GENCEntryNode, BrawlLib.SSBB.ResourceNodes.GFG1EntryNode, BrawlLib.SSBB.ResourceNodes.GFPREntryNode, BrawlLib.SSBB.ResourceNodes.GFRKEntryNode, BrawlLib.SSBB.ResourceNodes.GHPEEntryNode, BrawlLib.SSBB.ResourceNodes.GKNGEntryNode, BrawlLib.SSBB.ResourceNodes.GMCAEntryNode, BrawlLib.SSBB.ResourceNodes.GMEAEntryNode, BrawlLib.SSBB.ResourceNodes.GWATEntryNode, BrawlLib.SSBB.ResourceNodes.GWD2EntryNode, BrawlLib.SSBB.ResourceNodes.GWNDEntryNode, BrawlLib.SSBB.ResourceNodes.MVPMNode, BrawlLib.SSBB.ResourceNodes.MVPMEntryNode, BrawlLib.SSBB.ResourceNodes.ADSJNode, BrawlLib.SSBB.ResourceNodes.ADSJEntryNode, BrawlLib.SSBB.ResourceNodes.GDOREntryNode, BrawlLib.SSBB.ResourceNodes.GDTPEntryNode, BrawlLib.SSBB.ResourceNodes.GDBSEntryNode, BrawlLib.SSBB.ResourceNodes.GMSJEntryNode, BrawlLib.SSBB.ResourceNodes.GSCNEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Navigation.GWAPEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBCEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBC1EntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GBC2EntryNode, BrawlLib.SSBB.ResourceNodes.GBLKEntryNode, BrawlLib.SSBB.ResourceNodes.GBLTEntryNode, BrawlLib.SSBB.ResourceNodes.GBRFEntryNode, BrawlLib.SSBB.ResourceNodes.GCATEntryNode, BrawlLib.SSBB.ResourceNodes.GELAEntryNode, BrawlLib.SSBB.ResourceNodes.GELEEntryNode, BrawlLib.SSBB.ResourceNodes.GFIMEntryNode, BrawlLib.SSBB.ResourceNodes.GIB2EntryNode, BrawlLib.SSBB.ResourceNodes.GITMEntryNode, BrawlLib.SSBB.ResourceNodes.GITREntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GLADEntryNode, BrawlLib.SSBB.ResourceNodes.GMPSEntryNode, BrawlLib.SSBB.ResourceNodes.GMRLEntryNode, BrawlLib.SSBB.ResourceNodes.GMTAEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GMWAEntryNode, BrawlLib.SSBB.ResourceNodes.GMWOEntryNode, BrawlLib.SSBB.ResourceNodes.GSAVEntryNode, BrawlLib.SSBB.ResourceNodes.GSBKEntryNode, BrawlLib.SSBB.ResourceNodes.GSHTEntryNode, BrawlLib.SSBB.ResourceNodes.GSPREntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GSTGEntryNode, BrawlLib.SSBB.ResourceNodes.GTRCEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Objects.GTRREntryNode, BrawlLib.SSBB.ResourceNodes.GDMDEntryNode, BrawlLib.SSBB.ResourceNodes.GFINEntryNode, BrawlLib.SSBB.ResourceNodes.GMINEntryNode, BrawlLib.SSBB.ResourceNodes.GTIKEntryNode, BrawlLib.SSBB.ResourceNodes.BGMGNode, BrawlLib.SSBB.ResourceNodes.BGMGEntryNode, BrawlLib.SSBB.ResourceNodes.GSNDEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELBEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCTeamNode, BrawlLib.SSBB.ResourceNodes.Subspace.SSEEX.SELCEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Triggers.GASDEntryNode, BrawlLib.SSBB.ResourceNodes.Subspace.Triggers.GEPTEntryNode, BrawlLib.SSBB.ResourceNodes.GET1EntryNode, BrawlLib.SSBB.ResourceNodes.GET2EntryNode, BrawlLib.SSBB.ResourceNodes.GFRTEntryNode, BrawlLib.SSBB.ResourceNodes.GFT2EntryNode, BrawlLib.SSBB.ResourceNodes.GMOAEntryNode, BrawlLib.SSBB.ResourceNodes.THPNode, BrawlLib.SSBB.ResourceNodes.TyDataNode, BrawlLib.SSBB.ResourceNodes.TySealList, BrawlLib.SSBB.ResourceNodes.TySealNode, BrawlLib.SSBB.ResourceNodes.TySealVertDataNode, BrawlLib.SSBB.ResourceNodes.TySealVertDataEntryNode, BrawlLib.SSBB.ResourceNodes.TyDataListNode, BrawlLib.SSBB.ResourceNodes.TyDataListEntryNode, BrawlLib.SSBB.ResourceNodes.TySealVertListNode, BrawlLib.SSBB.ResourceNodes.TySealVertListEntryNode, BrawlLib.SSBB.ResourceNodes.ARCNode, BrawlLib.SSBB.ResourceNodes.BRRESNode, and BrawlLib.SSBB.ResourceNodes.MRGNode.

1054 {
1055 MoveRawUncompressed(address, length);
1056 }

◆ OnRenamed()

void BrawlLib.SSBB.ResourceNodes.ResourceNode.OnRenamed ( )
inline
239 {
240 Renamed?.Invoke(this);
241 }
ResourceEventHandler Renamed
Definition: ResourceNode.cs:153

◆ Populate()

void BrawlLib.SSBB.ResourceNodes.ResourceNode.Populate ( int  levels = -1)
inline
614 {
615 _isPopulating = true;
616 if (levels > 0)
617 {
618 foreach (ResourceNode r in Children)
619 {
620 r.Populate(levels - 1);
621 }
622 }
623 else if (levels < 0)
624 {
625 for (int i = 0; i < Children.Count; i++)
626 {
627 Children[i].Populate();
628 }
629 }
630 else if (_children == null || _children.Count == 0)
631 {
632 _children = new List<ResourceNode>();
633 if (WorkingSource != DataSource.Empty)
634 {
635 OnPopulate();
636 }
637 }
638
639 _isPopulating = false;
640 }
bool _isPopulating
Definition: ResourceNode.cs:611
virtual void OnPopulate()
Definition: ResourceNode.cs:643

◆ PrevSibling()

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.PrevSibling ( )
inline
1720 {
1721 if (_parent == null)
1722 {
1723 return null;
1724 }
1725
1726 int siblingIndex = Index - 1;
1727 if (siblingIndex < 0)
1728 {
1729 return null;
1730 }
1731
1732 return Parent.Children[siblingIndex];
1733 }

◆ Rebuild() [1/3]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Rebuild ( )
inlinevirtual
988 {
989 Rebuild(false);
990 }

◆ Rebuild() [2/3]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Rebuild ( bool  force)
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.MoveDefEntryNode.

993 {
994 if (!IsDirty && !force)
995 {
996 return;
997 }
998
999 //Get uncompressed size
1000 int size = OnCalculateSize(force);
1001
1002 //Create temp map
1003 FileMap uncompMap = FileMap.FromTempFile(size);
1004
1005 //Rebuild node (uncompressed)
1006 Rebuild(uncompMap.Address, size, force);
1007 _replSrc.Map = _replUncompSrc.Map = uncompMap;
1008
1009 //If compressed, compress resulting data.
1010 if (_compression != CompressionType.None)
1011 {
1012 //Compress node to temp file
1013 FileStream stream = new FileStream(Path.GetTempFileName(), FileMode.Open, FileAccess.ReadWrite,
1014 FileShare.None, 0x8, FileOptions.DeleteOnClose | FileOptions.SequentialScan);
1015 try
1016 {
1017 Compressor.Compact(_compression, uncompMap.Address, uncompMap.Length, stream, this);
1018 _replSrc = new DataSource(
1019 FileMap.FromStreamInternal(stream, FileMapProtect.Read, 0, (int) stream.Length), _compression);
1020 }
1021 catch (Exception)
1022 {
1023 stream.Dispose();
1024 throw;
1025 }
1026 }
1027 }
int Length
Definition: FileMap.cs:19
static FileMap FromStreamInternal(FileStream stream, FileMapProtect prot, int offset, int length)
Definition: FileMap.cs:152
static FileMap FromTempFile(int length)
Definition: FileMap.cs:96
Definition: Compressor.cs:37
static void Compact(CompressionType type, VoidPtr srcAddr, int srcLen, Stream outStream, ResourceNode r)
Definition: Compressor.cs:233
FileMapProtect
Definition: FileMap.cs:175

◆ Rebuild() [3/3]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Rebuild ( VoidPtr  address,
int  length,
bool  force 
)
inlinevirtual
1032 {
1033 if (!IsDirty && !force)
1034 {
1035 MoveRaw(address, length);
1036 }
1037 else
1038 {
1039 OnRebuild(address, length, force);
1040
1041 IsDirty = false;
1042
1043 //Code has been moved here, because all overrides are doing the same thing.
1044 _replSrc.Close();
1045 _replUncompSrc.Close();
1046 _replSrc = _replUncompSrc = new DataSource(address, length);
1047 }
1048 }
virtual void OnRebuild(VoidPtr address, int length, bool force)
Definition: ResourceNode.cs:1053

◆ Remove()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Remove ( )
inlinevirtual

◆ RemoveChild()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.RemoveChild ( ResourceNode  child)
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.BRESGroupNode, BrawlLib.SSBB.ResourceNodes.MDL0BoneNode, BrawlLib.SSBB.ResourceNodes.MDL0GroupNode, BrawlLib.SSBB.ResourceNodes.MDL0Node, BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode, and BrawlLib.SSBB.ResourceNodes.SCN0GroupNode.

747 {
748 if (_children != null && _children.Remove(child))
749 {
750 child._parent = null;
751 ChildRemoved?.Invoke(this, child);
752
753 _changed = true;
754 }
755 }
ResourceChildEventHandler ChildRemoved
Definition: ResourceNode.cs:154

◆ Replace() [1/3]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Replace ( ResourceNode  node)
inlinevirtual
835 {
836 string path = Path.GetTempFileName();
837 node.Export(path);
838 Replace(path);
839 }
virtual void Replace(string fileName)
Definition: ResourceNode.cs:829

◆ Replace() [2/3]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Replace ( string  fileName)
inlinevirtual

◆ Replace() [3/3]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Replace ( string  fileName,
FileMapProtect  prot,
FileOptions  options 
)
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.HavokNode, and BrawlLib.SSBB.ResourceNodes.MDL0Node.

842 {
843 //Name = Path.GetFileNameWithoutExtension(fileName);
844 ReplaceRaw(FileMap.FromFile(fileName, prot, 0, 0, options));
845 }
static FileMap FromFile(string path)
Definition: FileMap.cs:48
virtual void ReplaceRaw(VoidPtr address, int length)
Definition: ResourceNode.cs:847

◆ ReplaceRaw() [1/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.ReplaceRaw ( FileMap  map)
inlinevirtual
859 {
860 if (_children != null && !RetainChildrenOnReplace)
861 {
862 foreach (ResourceNode node in _children)
863 {
864 node.Dispose();
865 }
866
867 _children.Clear();
868 _children = null;
869 }
870
871 _replUncompSrc.Close();
872 _replSrc.Close();
873
874 _replSrc = new DataSource(map);
875
877 {
878 FileMap uncompMap = Compressor.TryExpand(ref _replSrc, false);
879 _compression = _replSrc.Compression;
880 _replUncompSrc = uncompMap != null ? new DataSource(uncompMap) : _replSrc;
881 }
882 else
883 {
884 _compression = CompressionType.None;
885 _replUncompSrc = _replSrc;
886 }
887
888 _replaced = true;
890 {
891 _children = new List<ResourceNode>();
892 }
893
894 _replaced = false;
895
896 _changed = false;
897 Replaced?.Invoke(this);
898 }
virtual bool supportsCompression
Definition: ResourceNode.cs:856
virtual bool RetainChildrenOnReplace
Definition: ResourceNode.cs:854
static FileMap TryExpand(ref DataSource source, bool doTest=true)
Definition: Compressor.cs:155

◆ ReplaceRaw() [2/2]

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.ReplaceRaw ( VoidPtr  address,
int  length 
)
inlinevirtual
848 {
849 FileMap map = FileMap.FromTempFile(length);
850 Memory.Move(map.Address, address, (uint) length);
851 ReplaceRaw(map);
852 }

◆ Restore()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.Restore ( )
inlinevirtual
707 {
708 if (!IsDirty && !IsBranch)
709 {
710 return;
711 }
712
713 if (_children != null)
714 {
715 foreach (ResourceNode node in _children)
716 {
717 node.Dispose();
718 }
719
720 _children.Clear();
721 _children = null;
722 }
723
724 _replUncompSrc.Close();
725 _replSrc.Close();
726 _compression = _origSource.Compression;
727
728 if (_origSource != DataSource.Empty && !OnInitialize())
729 {
730 _children = new List<ResourceNode>();
731 }
732
733 _changed = false;
734 Restored?.Invoke(this);
735 }
ResourceEventHandler Restored
Definition: ResourceNode.cs:153
bool IsBranch
Definition: ResourceNode.cs:321

◆ SelectChildAtIndex()

void BrawlLib.SSBB.ResourceNodes.ResourceNode.SelectChildAtIndex ( int  index)
inline
473 {
474 SelectChild?.Invoke(index);
475 }
SelectEventHandler SelectChild
Definition: ResourceNode.cs:150

◆ SetSizeInternal()

void BrawlLib.SSBB.ResourceNodes.ResourceNode.SetSizeInternal ( int  size)
inline
800 {
801 if (IsBranch)
802 {
803 if (IsCompressed)
804 {
805 _replUncompSrc.Length = size;
806 }
807 else
808 {
809 _replSrc.Length = _replUncompSrc.Length = size;
810 }
811 }
812 else if (IsCompressed)
813 {
814 _uncompSource.Length = size;
815 }
816 else
817 {
818 _origSource.Length = _uncompSource.Length = size;
819 }
820 }
bool IsCompressed
Definition: ResourceNode.cs:303

◆ SignalPropertyChange()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.SignalPropertyChange ( )
inlinevirtual

◆ SortChildren()

virtual void BrawlLib.SSBB.ResourceNodes.ResourceNode.SortChildren ( )
inlinevirtual

Reimplemented in BrawlLib.SSBB.ResourceNodes.PAT0TextureNode, BrawlLib.SSBB.ResourceNodes.MDL0GroupNode, and BrawlLib.SSBB.ResourceNodes.MoveDefEntryNode.

1757 {
1758 if (Children == null || Children.Count <= 0)
1759 {
1760 return;
1761 }
1762
1763 _children = _children.OrderBy(o => o.Name).ToList();
1765 }
virtual void SignalPropertyChange()
Definition: ResourceNode.cs:313

◆ ToParent()

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.ToParent ( )
inlinevirtual
598 {
599 if (Parent is MDL0BoneNode)
600 {
601 return true;
602 }
603
604 return false;
605 }

◆ ToString()

override string BrawlLib.SSBB.ResourceNodes.ResourceNode.ToString ( )
inline
1752 {
1753 return Name;
1754 }
virtual string Name
Definition: ResourceNode.cs:223

◆ UpdateCurrentControl()

void BrawlLib.SSBB.ResourceNodes.ResourceNode.UpdateCurrentControl ( )
inline
483 {
484 UpdateControl?.Invoke(this, null);
485 }
EventHandler UpdateControl
Definition: ResourceNode.cs:151

◆ UpdateProperties()

void BrawlLib.SSBB.ResourceNodes.ResourceNode.UpdateProperties ( )
inline
478 {
479 UpdateProps?.Invoke(this, null);
480 }
EventHandler UpdateProps
Definition: ResourceNode.cs:151

Member Data Documentation

◆ _calcSize

int BrawlLib.SSBB.ResourceNodes.ResourceNode._calcSize

◆ _children

List<ResourceNode> BrawlLib.SSBB.ResourceNodes.ResourceNode._children = new List<ResourceNode>()

◆ _isPopulating

bool BrawlLib.SSBB.ResourceNodes.ResourceNode._isPopulating

◆ _mainForm

Form BrawlLib.SSBB.ResourceNodes.ResourceNode._mainForm

◆ _name

string BrawlLib.SSBB.ResourceNodes.ResourceNode._name

◆ _origPath

string BrawlLib.SSBB.ResourceNodes.ResourceNode._origPath

◆ _parent

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode._parent

◆ _replaced

bool BrawlLib.SSBB.ResourceNodes.ResourceNode._replaced

◆ ChildRemoved

ResourceChildEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.ChildRemoved

◆ MovedDown

MoveEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.MovedDown

◆ PropertyChanged

ResourceEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.PropertyChanged

◆ Renamed

ResourceEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.Renamed

◆ Replaced

ResourceEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.Replaced

◆ Restored

ResourceEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.Restored

◆ UpdateControl

EventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.UpdateControl

Property Documentation

◆ AllowDuplicateNames

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.AllowDuplicateNames
get

◆ AllowedChildTypes

virtual Type [] BrawlLib.SSBB.ResourceNodes.ResourceNode.AllowedChildTypes
get

◆ AllowNullNames

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.AllowNullNames
get

◆ AllowSaving

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.AllowSaving
getset
328 {
329 get => _allowSave && (Parent?.AllowSaving ?? true);
330 set => _allowSave = value;
331 }
virtual bool AllowSaving
Definition: ResourceNode.cs:328

◆ Children

List<ResourceNode> BrawlLib.SSBB.ResourceNodes.ResourceNode.Children
get
262 {
263 get
264 {
265 if (_children == null)
266 {
267 _children = new List<ResourceNode>();
268 if (WorkingSource != DataSource.Empty)
269 {
270 OnPopulate();
271 }
272 }
273
274 return _children;
275 }
276 }

◆ Compression

virtual string BrawlLib.SSBB.ResourceNodes.ResourceNode.Compression
getset
401 {
402 get => _compression.ToString();
403 set
404 {
405 if (Enum.TryParse(value, out CompressionType type))
406 {
407 if (type == _compression)
408 {
409 return;
410 }
411
412 if (Array.IndexOf(Compressor._supportedCompressionTypes, type) != -1)
413 {
414 _compression = type;
415 _changed = true;
416 }
417 }
418 }
419 }

◆ DirectoryName

string BrawlLib.SSBB.ResourceNodes.ResourceNode.DirectoryName
get

◆ FileName

string BrawlLib.SSBB.ResourceNodes.ResourceNode.FileName
get

◆ FilePath

string BrawlLib.SSBB.ResourceNodes.ResourceNode.FilePath
get

◆ HasChanged

bool BrawlLib.SSBB.ResourceNodes.ResourceNode.HasChanged
getset
308 {
309 get => _changed;
310 set => _changed = value;
311 }

◆ HasChildren

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.HasChildren
get

◆ HasMerged

bool BrawlLib.SSBB.ResourceNodes.ResourceNode.HasMerged
get

◆ HexIndex

int BrawlLib.SSBB.ResourceNodes.ResourceNode.HexIndex
get

◆ Index

int BrawlLib.SSBB.ResourceNodes.ResourceNode.Index
get

◆ IsBranch

bool BrawlLib.SSBB.ResourceNodes.ResourceNode.IsBranch
get

◆ IsCompressed

bool BrawlLib.SSBB.ResourceNodes.ResourceNode.IsCompressed
get

◆ IsDirty

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.IsDirty
getset
344 {
345 get
346 {
347 if (!AllowSaving)
348 {
349 return false;
350 }
351
352 if (HasChanged)
353 {
354 return true;
355 }
356
357 if (_children != null)
358 {
359 foreach (ResourceNode n in _children)
360 {
361 if (n.HasChanged || n.IsBranch || n.IsDirty)
362 {
363 return true;
364 }
365 }
366 }
367
368 return false;
369 }
370 set
371 {
372 _changed = value;
373 if (_children != null)
374 {
375 foreach (ResourceNode r in Children)
376 {
377 if (r._children != null)
378 {
379 r.IsDirty = value;
380 }
381 else
382 {
383 r._changed = value;
384 }
385 }
386 }
387 }
388 }
bool HasChanged
Definition: ResourceNode.cs:308

◆ Level

virtual int BrawlLib.SSBB.ResourceNodes.ResourceNode.Level
get

◆ MaxNameLength

virtual int BrawlLib.SSBB.ResourceNodes.ResourceNode.MaxNameLength
get

◆ MD5Provider

MD5CryptoServiceProvider BrawlLib.SSBB.ResourceNodes.ResourceNode.MD5Provider
staticgetprotected
1659 {
1660 get
1661 {
1662 if (_md5provider == null)
1663 {
1664 _md5provider = new MD5CryptoServiceProvider();
1665 }
1666
1667 return _md5provider;
1668 }
1669 }

◆ Name

virtual string BrawlLib.SSBB.ResourceNodes.ResourceNode.Name
getset
223 {
224 get => string.IsNullOrEmpty(_name) ? _name = "<null>" : _name;
225 set
226 {
227 if (_name == value)
228 {
229 return;
230 }
231
232 _name = value;
233 _changed = true;
234 OnRenamed();
235 }
236 }
string _name
Definition: ResourceNode.cs:139
void OnRenamed()
Definition: ResourceNode.cs:238

◆ NodeType

string BrawlLib.SSBB.ResourceNodes.ResourceNode.NodeType
get

◆ OriginalSource

DataSource BrawlLib.SSBB.ResourceNodes.ResourceNode.OriginalSource
get

◆ Parent

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.Parent
getset
245 {
246 get => _parent;
247 set
248 {
249 if (_parent == value)
250 {
251 return;
252 }
253
254 Remove();
255 _parent = value;
256 _parent?.Children.Add(this);
257 }
258 }
virtual void Remove()
Definition: ResourceNode.cs:741

◆ ResourceFileType

virtual ResourceType BrawlLib.SSBB.ResourceNodes.ResourceNode.ResourceFileType
get

◆ RetainChildrenOnReplace

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.RetainChildrenOnReplace
get

◆ RootNode

ResourceNode BrawlLib.SSBB.ResourceNodes.ResourceNode.RootNode
get

◆ supportsCompression

virtual bool BrawlLib.SSBB.ResourceNodes.ResourceNode.supportsCompression
get

◆ TreePath

virtual string BrawlLib.SSBB.ResourceNodes.ResourceNode.TreePath
get
202 {
203 get
204 {
205 string path = TreePathAbsolute;
206 int index = path.IndexOf('/');
207 if (index > 0)
208 {
209 path = path.Substring(index + 1);
210 }
211
212 return path;
213 }
214 }
virtual string TreePathAbsolute
Definition: ResourceNode.cs:198

◆ TreePathAbsolute

virtual string BrawlLib.SSBB.ResourceNodes.ResourceNode.TreePathAbsolute
get

◆ UncompressedSize

virtual uint BrawlLib.SSBB.ResourceNodes.ResourceNode.UncompressedSize
get

◆ UncompressedSource

DataSource BrawlLib.SSBB.ResourceNodes.ResourceNode.UncompressedSource
get

◆ WorkingSource

DataSource BrawlLib.SSBB.ResourceNodes.ResourceNode.WorkingSource
get

◆ WorkingUncompressed

DataSource BrawlLib.SSBB.ResourceNodes.ResourceNode.WorkingUncompressed
get

Event Documentation

◆ ChildAdded

ResourceChildEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.ChildAdded

◆ ChildInserted

ResourceChildInsertEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.ChildInserted

◆ Disposing

ResourceEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.Disposing

◆ MovedUp

MoveEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.MovedUp

◆ SelectChild

SelectEventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.SelectChild

◆ UpdateProps

EventHandler BrawlLib.SSBB.ResourceNodes.ResourceNode.UpdateProps

The documentation for this class was generated from the following file: