BrawlCrate v0.41
Wii File Editor
Loading...
Searching...
No Matches
Public Member Functions | Properties | List of all members
BrawlLib.SSBB.ResourceNodes.DOLNode Class Reference
Inheritance diagram for BrawlLib.SSBB.ResourceNodes.DOLNode:
BrawlLib.SSBB.ResourceNodes.ResourceNode BrawlLib.SSBB.ResourceNodes.ModuleNode

Public Member Functions

override bool OnInitialize ()
 
override void OnPopulate ()
 
override int OnCalculateSize (bool force)
 
override void OnRebuild (VoidPtr address, int length, bool force)
 
- Public Member Functions inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
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 ()
 

Properties

override ResourceType ResourceFileType [get]
 
uint ModuleID [get]
 
ModuleSectionNode[] Sections [get]
 
string Text0Offset [get]
 
string Text1Offset [get]
 
string Text2Offset [get]
 
string Text3Offset [get]
 
string Text4Offset [get]
 
string Text5Offset [get]
 
string Text6Offset [get]
 
string Data0Offset [get]
 
string Data1Offset [get]
 
string Data2Offset [get]
 
string Data3Offset [get]
 
string Data4Offset [get]
 
string Data5Offset [get]
 
string Data6Offset [get]
 
string Data7Offset [get]
 
string Data8Offset [get]
 
string Data9Offset [get]
 
string Data10Offset [get]
 
string Text0LoadAddr [get, set]
 
string Text1LoadAddr [get, set]
 
string Text2LoadAddr [get, set]
 
string Text3LoadAddr [get, set]
 
string Text4LoadAddr [get, set]
 
string Text5LoadAddr [get, set]
 
string Text6LoadAddr [get, set]
 
string Data0LoadAddr [get, set]
 
string Data1LoadAddr [get, set]
 
string Data2LoadAddr [get, set]
 
string Data3LoadAddr [get, set]
 
string Data4LoadAddr [get, set]
 
string Data5LoadAddr [get, set]
 
string Data6LoadAddr [get, set]
 
string Data7LoadAddr [get, set]
 
string Data8LoadAddr [get, set]
 
string Data9LoadAddr [get, set]
 
string Data10LoadAddr [get, set]
 
string Text0Size [get]
 
string Text1Size [get]
 
string Text2Size [get]
 
string Text3Size [get]
 
string Text4Size [get]
 
string Text5Size [get]
 
string Text6Size [get]
 
string Data0Size [get]
 
string Data1Size [get]
 
string Data2Size [get]
 
string Data3Size [get]
 
string Data4Size [get]
 
string Data5Size [get]
 
string Data6Size [get]
 
string Data7Size [get]
 
string Data8Size [get]
 
string Data9Size [get]
 
string Data10Size [get]
 
string bssOffset [get, set]
 
string bssSize [get, set]
 
string EntryPoint [get, set]
 
- Properties inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
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]
 
- Properties inherited from BrawlLib.SSBB.ResourceNodes.ModuleNode
uint ID [get, set]
 
ModuleSectionNode[] Sections [get]
 

Additional Inherited Members

- Static Public Member Functions inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
static ResourceNode[] FindAllSubNodes (ResourceNode root)
 
static ResourceNode FindNode (ResourceNode root, string path, bool searchChildren, StringComparison compare)
 
- Public Attributes inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
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 inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
void ForceReplacedEvent ()
 
virtual void MergeInternal ()
 
- Events inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
SelectEventHandler SelectChild
 
EventHandler UpdateProps
 
MoveEventHandler MovedUp
 
ResourceEventHandler Disposing
 
ResourceChildEventHandler ChildAdded
 
ResourceChildInsertEventHandler ChildInserted
 

Member Function Documentation

◆ OnCalculateSize()

override int BrawlLib.SSBB.ResourceNodes.DOLNode.OnCalculateSize ( bool  force)
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

346 {
347 int size = DOLHeader.Size;
348 foreach (ModuleSectionNode s in Children)
349 {
350 if (s._dataBuffer != null && s._dataBuffer.Length > 0)
351 {
352 size += s.CalculateSize(true);
353 }
354 }
355
356 return size;
357 }
List< ResourceNode > Children
Definition: ResourceNode.cs:262

◆ OnInitialize()

override bool BrawlLib.SSBB.ResourceNodes.DOLNode.OnInitialize ( )
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

317 {
318 _name = Path.GetFileName(_origPath);
319 hdr = *Header;
320 return true;
321 }
string _origPath
Definition: ResourceNode.cs:139
string _name
Definition: ResourceNode.cs:139

◆ OnPopulate()

override void BrawlLib.SSBB.ResourceNodes.DOLNode.OnPopulate ( )
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

324 {
325 int x = 0;
326 for (int i = 0; i < 7; i++, x++)
327 {
328 new ModuleSectionNode
329 {
330 _isCodeSection = true, _name = $"[{x}] Text{i}",
331 _dataOffset = (int) Header->TextOffset[i], _dataSize = Header->TextSize[i]
332 }.Initialize(this, (VoidPtr) Header + Header->TextOffset[i], (int) Header->TextSize[i]);
333 }
334
335 for (int i = 0; i < 11; i++, x++)
336 {
337 new ModuleSectionNode
338 {
339 _name = $"[{x}] Data{i}", _dataOffset = (int) Header->DataOffset[i],
340 _dataSize = Header->DataSize[i]
341 }.Initialize(this, (VoidPtr) Header + Header->DataOffset[i], (int) Header->DataSize[i]);
342 }
343 }
Definition: VoidPtr.cs:9

◆ OnRebuild()

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

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

360 {
361 DOLHeader* header = (DOLHeader*) address;
362 VoidPtr dataAddr = address + DOLHeader.Size;
363 int offset = DOLHeader.Size;
364 foreach (ModuleSectionNode s in Children)
365 {
366 int i = s.Index;
367 header->TextLoadAddr[i] = hdr.TextLoadAddr[i];
368 if (s._dataBuffer != null && s._dataBuffer.Length > 0)
369 {
370 int size = s._calcSize;
371
372 header->TextOffset[i] = (uint) offset;
373 header->TextSize[i] = (uint) size;
374
375 s.Rebuild(address + offset, size, true);
376 offset += size;
377 }
378 else
379 {
380 header->TextOffset[i] = 0;
381 header->TextSize[i] = 0;
382 }
383 }
384
385 header->bssOffset = hdr.bssOffset;
386 header->bssSize = hdr.bssSize;
387 header->entryPoint = hdr.entryPoint;
388 for (int i = 0; i < 28; i++)
389 {
390 header->padding[i] = 0;
391 }
392 }

Property Documentation

◆ bssOffset

string BrawlLib.SSBB.ResourceNodes.DOLNode.bssOffset
getset
270 {
271 get => "0x" + ((uint) hdr.bssOffset).ToString("X");
272 set
273 {
274 GetValue(value, out hdr.bssOffset);
276 }
277 }
virtual void SignalPropertyChange()
Definition: ResourceNode.cs:313

◆ bssSize

string BrawlLib.SSBB.ResourceNodes.DOLNode.bssSize
getset
281 {
282 get => "0x" + ((uint) hdr.bssSize).ToString("X");
283 set
284 {
285 GetValue(value, out hdr.bssSize);
287 }
288 }

◆ Data0LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data0LoadAddr
getset
129 {
130 get => "0x" + ((uint) hdr.Data0LoadAddr).ToString("X");
131 set
132 {
133 GetValue(value, out hdr.Data0LoadAddr);
135 }
136 }

◆ Data0Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data0Offset
get

◆ Data0Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data0Size
get

◆ Data10LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data10LoadAddr
getset
239 {
240 get => "0x" + ((uint) hdr.Data10LoadAddr).ToString("X");
241 set
242 {
243 GetValue(value, out hdr.Data10LoadAddr);
245 }
246 }

◆ Data10Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data10Offset
get

◆ Data10Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data10Size
get

◆ Data1LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data1LoadAddr
getset
140 {
141 get => "0x" + ((uint) hdr.Data1LoadAddr).ToString("X");
142 set
143 {
144 GetValue(value, out hdr.Data1LoadAddr);
146 }
147 }

◆ Data1Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data1Offset
get

◆ Data1Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data1Size
get

◆ Data2LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data2LoadAddr
getset
151 {
152 get => "0x" + ((uint) hdr.Data2LoadAddr).ToString("X");
153 set
154 {
155 GetValue(value, out hdr.Data2LoadAddr);
157 }
158 }

◆ Data2Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data2Offset
get

◆ Data2Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data2Size
get

◆ Data3LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data3LoadAddr
getset
162 {
163 get => "0x" + ((uint) hdr.Data3LoadAddr).ToString("X");
164 set
165 {
166 GetValue(value, out hdr.Data3LoadAddr);
168 }
169 }

◆ Data3Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data3Offset
get

◆ Data3Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data3Size
get

◆ Data4LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data4LoadAddr
getset
173 {
174 get => "0x" + ((uint) hdr.Data4LoadAddr).ToString("X");
175 set
176 {
177 GetValue(value, out hdr.Data4LoadAddr);
179 }
180 }

◆ Data4Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data4Offset
get

◆ Data4Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data4Size
get

◆ Data5LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data5LoadAddr
getset
184 {
185 get => "0x" + ((uint) hdr.Data5LoadAddr).ToString("X");
186 set
187 {
188 GetValue(value, out hdr.Data5LoadAddr);
190 }
191 }

◆ Data5Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data5Offset
get

◆ Data5Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data5Size
get

◆ Data6LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data6LoadAddr
getset
195 {
196 get => "0x" + ((uint) hdr.Data6LoadAddr).ToString("X");
197 set
198 {
199 GetValue(value, out hdr.Data6LoadAddr);
201 }
202 }

◆ Data6Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data6Offset
get

◆ Data6Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data6Size
get

◆ Data7LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data7LoadAddr
getset
206 {
207 get => "0x" + ((uint) hdr.Data7LoadAddr).ToString("X");
208 set
209 {
210 GetValue(value, out hdr.Data7LoadAddr);
212 }
213 }

◆ Data7Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data7Offset
get

◆ Data7Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data7Size
get

◆ Data8LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data8LoadAddr
getset
217 {
218 get => "0x" + ((uint) hdr.Data8LoadAddr).ToString("X");
219 set
220 {
221 GetValue(value, out hdr.Data8LoadAddr);
223 }
224 }

◆ Data8Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data8Offset
get

◆ Data8Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data8Size
get

◆ Data9LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data9LoadAddr
getset
228 {
229 get => "0x" + ((uint) hdr.Data9LoadAddr).ToString("X");
230 set
231 {
232 GetValue(value, out hdr.Data9LoadAddr);
234 }
235 }

◆ Data9Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data9Offset
get

◆ Data9Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Data9Size
get

◆ EntryPoint

string BrawlLib.SSBB.ResourceNodes.DOLNode.EntryPoint
getset
292 {
293 get => "0x" + ((uint) hdr.entryPoint).ToString("X");
294 set
295 {
296 GetValue(value, out hdr.entryPoint);
298 }
299 }

◆ ModuleID

uint BrawlLib.SSBB.ResourceNodes.DOLNode.ModuleID
get

◆ ResourceFileType

override ResourceType BrawlLib.SSBB.ResourceNodes.DOLNode.ResourceFileType
get

◆ Sections

ModuleSectionNode [] BrawlLib.SSBB.ResourceNodes.DOLNode.Sections
get

◆ Text0LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text0LoadAddr
getset
52 {
53 get => "0x" + ((uint) hdr.Text0LoadAddr).ToString("X");
54 set
55 {
56 GetValue(value, out hdr.Text0LoadAddr);
58 }
59 }

◆ Text0Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text0Offset
get

◆ Text0Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text0Size
get

◆ Text1LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text1LoadAddr
getset
63 {
64 get => "0x" + ((uint) hdr.Text1LoadAddr).ToString("X");
65 set
66 {
67 GetValue(value, out hdr.Text1LoadAddr);
69 }
70 }

◆ Text1Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text1Offset
get

◆ Text1Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text1Size
get

◆ Text2LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text2LoadAddr
getset
74 {
75 get => "0x" + ((uint) hdr.Text2LoadAddr).ToString("X");
76 set
77 {
78 GetValue(value, out hdr.Text2LoadAddr);
80 }
81 }

◆ Text2Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text2Offset
get

◆ Text2Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text2Size
get

◆ Text3LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text3LoadAddr
getset
85 {
86 get => "0x" + ((uint) hdr.Text3LoadAddr).ToString("X");
87 set
88 {
89 GetValue(value, out hdr.Text3LoadAddr);
91 }
92 }

◆ Text3Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text3Offset
get

◆ Text3Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text3Size
get

◆ Text4LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text4LoadAddr
getset
96 {
97 get => "0x" + ((uint) hdr.Text4LoadAddr).ToString("X");
98 set
99 {
100 GetValue(value, out hdr.Text4LoadAddr);
102 }
103 }

◆ Text4Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text4Offset
get

◆ Text4Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text4Size
get

◆ Text5LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text5LoadAddr
getset
107 {
108 get => "0x" + ((uint) hdr.Text5LoadAddr).ToString("X");
109 set
110 {
111 GetValue(value, out hdr.Text5LoadAddr);
113 }
114 }

◆ Text5Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text5Offset
get

◆ Text5Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text5Size
get

◆ Text6LoadAddr

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text6LoadAddr
getset
118 {
119 get => "0x" + ((uint) hdr.Text6LoadAddr).ToString("X");
120 set
121 {
122 GetValue(value, out hdr.Text6LoadAddr);
124 }
125 }

◆ Text6Offset

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text6Offset
get

◆ Text6Size

string BrawlLib.SSBB.ResourceNodes.DOLNode.Text6Size
get

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