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

Public Member Functions

 MoveDefDataNode (uint dataLen, string name)
 
override bool OnInitialize ()
 
override void OnPopulate ()
 
void PopulateActionGroup (ResourceNode g, List< int > ActionOffsets, bool subactions, int index)
 
override int OnCalculateSize (bool force)
 
override void OnRebuild (VoidPtr address, int length, bool force)
 
- Public Member Functions inherited from BrawlLib.SSBB.ResourceNodes.MoveDefEntryNode
override void Rebuild (bool force)
 
override bool OnInitialize ()
 
ActionEventInfo GetEventInfo (long id)
 
override void SortChildren ()
 
ResourceNode FindNode (int offset)
 
ResourceNode GetByOffsetID (int id)
 
virtual void PostProcess ()
 
- 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 ()
 

Public Attributes

List< SpecialOffsetspecialOffsets = new List<SpecialOffset>()
 
MoveDefGroupNode _articleGroup
 
MoveDefFlagsNode _animFlags
 
MoveDefAttributeNode attributes
 
MoveDefAttributeNode sseAttributes
 
MoveDefMiscNode misc
 
MoveDefActionOverrideNode override1
 
MoveDefActionOverrideNode override2
 
MoveDefActionFlagsNode commonActionFlags
 
MoveDefActionFlagsNode actionFlags
 
MoveDefUnk7Node unk7
 
MoveDefActionPreNode actionPre
 
MoveDefUnk22Node unk22
 
MoveDefUnk17Node boneFloats3
 
MoveDefModelVisibilityNode mdlVisibility
 
MoveDefUnk17Node boneFloats1
 
MoveDefUnk17Node boneFloats2
 
MoveDefArticleNode entryArticle
 
MoveDefStaticArticleGroupNode staticArticles
 
MoveDefActionInterruptsNode actionInterrupts
 
MoveDefUnk24Node unk24
 
MoveDefBoneIndicesNode boneRef1
 
MoveDefBoneRef2Node boneRef2
 
MoveDefActionListNode nanaSubActions
 
MoveDefSoundDatasNode nanaSoundData
 
SZerosuitExtraParams8Node zssParams8
 
int zssFirstOffset = -1
 
Wario8 warioParams8
 
Wario6 warioParams6
 
int warioSwing4StringOffset = -1
 
List< MoveDefEntryNode_extraEntries
 
List< int > _extraOffsets
 
SortedList< int, MoveDefEntryNode_articles
 
FDefSubActionStringTable subActionTable
 
VoidPtr dataHeaderAddr
 
int part1Len = 0
 
int part2Len = 0
 
int part3Len = 0
 
int part4Len = 0
 
int part5Len = 0
 
int part6Len = 0
 
int part7Len = 0
 
int part8Len = 0
 
- Public Attributes inherited from BrawlLib.SSBB.ResourceNodes.MoveDefEntryNode
int _lookupCount
 
List< int > _lookupOffsets = new List<int>()
 
VoidPtr _entryOffset = 0
 
int _entryLength
 
int _childLength
 
MoveDefExternalNode _extNode
 
bool _extOverride = false
 
int offsetID
 
bool isExtra = false
 
- 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
 

Properties

int SubactionFlagsStart [get]
 
int ModelVisibilityStart [get]
 
int AttributeStart [get]
 
int SSEAttributeStart [get]
 
int MiscSectionOffset [get]
 
int CommonActionFlagsStart [get]
 
int ActionFlagsStart [get]
 
int Unknown7 [get]
 
int ActionInterrupts [get]
 
int EntryActionsStart [get]
 
int ExitActionsStart [get]
 
int ActionPreStart [get]
 
int SubactionMainStart [get]
 
int SubactionGFXStart [get]
 
int SubactionSFXStart [get]
 
int SubactionOtherStart [get]
 
int BoneFloats1 [get]
 
int BoneFloats2 [get]
 
int BoneRef1 [get]
 
int BoneRef2 [get]
 
int EntryActionOverrides [get]
 
int ExitActionOverrides [get]
 
int Unknown22 [get]
 
int BoneFloats3 [get]
 
int Unknown24 [get]
 
int StaticArticles [get]
 
int EntryArticleStart [get]
 
int Unknown27 [get, set]
 
int Unknown28 [get, set]
 
Bin32 Flags1bin [get, set]
 
uint Flags1uint [get, set]
 
Bin32 Flags2bin [get, set]
 
int Flags2int [get, set]
 
SpecialOffset[] Offsets [get]
 
List< int > ExtraOffsets [get]
 
- Properties inherited from BrawlLib.SSBB.ResourceNodes.MoveDefEntryNode
VoidPtr _rebuildBase [get]
 
int _rebuildOffset [get]
 
VoidPtr Data [get]
 
VoidPtr BaseAddress [get]
 
MDL0Node Model [get]
 
MoveDefNode Root [get]
 
int IntOffset [get]
 
int _offset [get]
 
string HexOffset [get]
 
int Size [get]
 
bool External [get]
 
override ResourceType ResourceFileType [get]
 
- 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]
 

Additional Inherited Members

- Static Public Member Functions inherited from BrawlLib.SSBB.ResourceNodes.MoveDefEntryNode
static int Compare (ResourceNode n1, ResourceNode n2)
 
static int ActionCompare (ResourceNode n1, ResourceNode n2)
 
- 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)
 
- 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
 

Constructor & Destructor Documentation

◆ MoveDefDataNode()

BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.MoveDefDataNode ( uint  dataLen,
string  name 
)
inline
148 {
149 DataLen = dataLen;
150 _name = name;
151 }
string _name
Definition: ResourceNode.cs:139

Member Function Documentation

◆ OnCalculateSize()

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

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

1042 {
1044 _entryLength = 124 + _extraOffsets.Count * 4;
1045 _childLength = MovesetConverter.CalcDataSize(this);
1046 return _entryLength + _childLength;
1047 }
int warioSwing4StringOffset
Definition: MoveDefDataNode.cs:188
int zssFirstOffset
Definition: MoveDefDataNode.cs:183
int _childLength
Definition: MoveDefNode.cs:24
int _entryLength
Definition: MoveDefNode.cs:24

◆ OnInitialize()

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

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

197 {
198 unk27 = Header->Unknown27;
199 unk28 = Header->Unknown28;
200 flags1 = Header->Flags1;
201 flags2 = Header->Flags2;
202 hdr = *Header;
203 _extraEntries = new List<MoveDefEntryNode>();
204 _extraOffsets = new List<int>();
205 _articles = new SortedList<int, MoveDefEntryNode>();
206 //base.OnInitialize();
207 bint* current = (bint*) Header;
208 for (int i = 0; i < 27; i++)
209 {
210 specialOffsets.Add(new SpecialOffset {Index = i, Offset = *current++ + (i == 2 ? 1 : 0)});
211 }
212
213 CalculateDataLen();
214
215 return true;
216 }
SortedList< int, MoveDefEntryNode > _articles
Definition: MoveDefDataNode.cs:194
List< SpecialOffset > specialOffsets
Definition: MoveDefDataNode.cs:14
List< MoveDefEntryNode > _extraEntries
Definition: MoveDefDataNode.cs:190
List< int > _extraOffsets
Definition: MoveDefDataNode.cs:191
int Index
Definition: ResourceNode.cs:301
Definition: BigEndianTypes.cs:9
bint Unknown28
Definition: FighterDefinition.cs:120
bint Unknown27
Definition: FighterDefinition.cs:119
buint Flags1
Definition: FighterDefinition.cs:121
bint Flags2
Definition: FighterDefinition.cs:122

◆ OnPopulate()

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

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

219 {
220 #region Populate
221
222 if (RootNode is ARCNode && (RootNode as ARCNode).IsFighter)
223 {
224 int commonActionFlagsCount = 0;
225 int actionFlagsCount = 0;
226 int totalActionCount = 0;
227 List<int> ActionOffsets;
228
229 MoveDefActionListNode subActions =
230 new MoveDefActionListNode {_name = "SubAction Scripts", _parent = this},
231 actions = new MoveDefActionListNode {_name = "Action Scripts", _parent = this};
232
233 bint* actionOffset;
234
235 //Parse offsets first
236 for (int i = 9; i < 11; i++)
237 {
238 actionOffset = (bint*) (BaseAddress + specialOffsets[i].Offset);
239 ActionOffsets = new List<int>();
240 for (int x = 0; x < specialOffsets[i].Size / 4; x++)
241 {
242 ActionOffsets.Add(actionOffset[x]);
243 }
244
245 actions.ActionOffsets.Add(ActionOffsets);
246 }
247
248 for (int i = 12; i < 16; i++)
249 {
250 actionOffset = (bint*) (BaseAddress + specialOffsets[i].Offset);
251 ActionOffsets = new List<int>();
252 for (int x = 0; x < specialOffsets[i].Size / 4; x++)
253 {
254 ActionOffsets.Add(actionOffset[x]);
255 }
256
257 subActions.ActionOffsets.Add(ActionOffsets);
258 }
259
260 if (specialOffsets[4].Size != 0)
261 {
262 (misc = new MoveDefMiscNode("Misc Section") {offsetID = 4}).Initialize(this,
263 new DataSource(BaseAddress + specialOffsets[4].Offset, 0));
264 }
265
266 int amt = 0;
267
268 //The only way to compute the amount of extra offsets is broken by PSA.
269 //Using the exact amount will work for now until REL editing is available.
270 switch (RootNode.Name)
271 {
272 case "FitZakoBall":
273 case "FitZakoBoy":
274 case "FitZakoGirl":
275 case "FitZakoChild":
276 amt = 1;
277 break;
278 case "FitPurin":
279 amt = 3;
280 break;
281 case "FitKoopa":
282 case "FitMetaknight":
283 amt = 5;
284 break;
285 case "FitGanon":
286 case "FitGKoopa":
287 case "FitMarth":
288 amt = 6;
289 break;
290 case "FitPokeFushigisou":
291 amt = 7;
292 break;
293 case "FitCaptain":
294 case "FitIke":
295 case "FitLuigi":
296 case "FitPokeLizardon":
297 case "FitPokeTrainer":
298 case "FitPokeZenigame":
299 case "FitSonic":
300 amt = 8;
301 break;
302 case "FitDonkey":
303 case "FitSheik":
304 case "FitWarioMan":
305 amt = 9;
306 break;
307 case "FitMario":
308 case "FitWario":
309 case "FitZelda":
310 amt = 10;
311 break;
312 case "FitFalco":
313 case "FitLucario":
314 case "FitPikachu":
315 amt = 11;
316 break;
317 case "FitSZerosuit":
318 amt = 12;
319 break;
320 case "FitDiddy":
321 case "FitFox":
322 case "FitLucas":
323 case "FitPikmin":
324 case "FitPit":
325 case "FitWolf":
326 case "FitYoshi":
327 amt = 13;
328 break;
329 case "FitNess":
330 case "FitPeach":
331 case "FitRobot":
332 amt = 14;
333 break;
334 case "FitDedede":
335 case "FitGameWatch":
336 amt = 16;
337 break;
338 case "FitPopo":
339 amt = 18;
340 break;
341 case "FitLink":
342 case "FitSnake":
343 case "FitToonLink":
344 amt = 20;
345 break;
346 case "FitSamus":
347 amt = 22;
348 break;
349 case "FitKirby":
350 amt = 68;
351 break;
352 default: //Only works on movesets untouched by PSA
353 amt = (Size - 124) / 4;
354 break;
355 }
356
357 bint* sPtr = (bint*) (BaseAddress + _offset + 124);
358 for (int i = 0; i < amt; i++)
359 {
360 _extraOffsets.Add(*sPtr++);
361 }
362
363 (attributes = new MoveDefAttributeNode("Attributes") {offsetID = 2}).Initialize(this,
364 new DataSource(BaseAddress + 0, 0x2E4));
365 (sseAttributes = new MoveDefAttributeNode("SSE Attributes") {offsetID = 3}).Initialize(this,
366 new DataSource(BaseAddress + 0x2E4, 0x2E4));
367 if (specialOffsets[5].Size != 0)
368 {
369 (commonActionFlags = new MoveDefActionFlagsNode("Common Action Flags",
370 commonActionFlagsCount = (Unknown7 - CommonActionFlagsStart) / 16)
371 {offsetID = 5}).Initialize(this,
372 new DataSource(BaseAddress + specialOffsets[5].Offset, commonActionFlagsCount * 16));
373 }
374
375 if (specialOffsets[6].Size != 0)
376 {
377 (actionFlags = new MoveDefActionFlagsNode("Action Flags",
378 actionFlagsCount = (EntryActionsStart - ActionFlagsStart) / 16)
379 {offsetID = 6}).Initialize(this,
380 new DataSource(BaseAddress + specialOffsets[6].Offset, actionFlagsCount * 16));
381 }
382
383 totalActionCount = commonActionFlagsCount + actionFlagsCount;
384 if (specialOffsets[7].Size != 0)
385 {
386 (unk7 = new MoveDefUnk7Node(totalActionCount) {offsetID = 7}).Initialize(this,
387 BaseAddress + specialOffsets[7].Offset, totalActionCount * 8);
388 }
389
390 if (specialOffsets[9].Size != 0 || specialOffsets[10].Size != 0)
391 {
392 int count;
393 if (specialOffsets[9].Size == 0)
394 {
395 count = specialOffsets[10].Size / 4;
396 }
397 else
398 {
399 count = specialOffsets[9].Size / 4;
400 }
401
402 if (Root.GetSize(specialOffsets[10].Offset) != Root.GetSize(specialOffsets[9].Offset))
403 {
404 Console.WriteLine(Root.GetSize(specialOffsets[10].Offset) + " " +
405 Root.GetSize(specialOffsets[9].Offset));
406 }
407
408 //Initialize using first offset so the node is sorted correctly
409 actions.Initialize(this, BaseAddress + specialOffsets[9].Offset, 0);
410
411 //Set up groups
412 for (int i = 0; i < count; i++)
413 {
414 actions.AddChild(new MoveDefActionGroupNode {_name = "Action" + (i + 274), offsetID = i},
415 false);
416 }
417
418 //Add children
419 for (int i = 0; i < 2; i++)
420 {
421 if (specialOffsets[i + 9].Size != 0)
422 {
423 PopulateActionGroup(actions, actions.ActionOffsets[i], false, i);
424 }
425 }
426
427 //Add to children (because the parent was set before initialization)
428 Children.Add(actions);
429
430 //actions.Children.Sort(MoveDefEntryNode.ActionCompare);
431
432 Root._actions = actions;
433 }
434
435 if (specialOffsets[11].Size != 0)
436 {
437 (actionPre = new MoveDefActionPreNode(totalActionCount)).Initialize(this,
438 new DataSource(BaseAddress + specialOffsets[11].Offset, totalActionCount * 4));
439 }
440
441 if (specialOffsets[0].Size != 0)
442 {
443 (_animFlags = new MoveDefFlagsNode {offsetID = 0, _parent = this}).Initialize(this,
445 }
446
447 if (specialOffsets[12].Size != 0 || specialOffsets[13].Size != 0 || specialOffsets[14].Size != 0 ||
448 specialOffsets[15].Size != 0)
449 {
450 string name;
451 int count = 0;
452 for (int i = 0; i < 4; i++)
453 {
454 if (specialOffsets[i + 12].Size != 0)
455 {
456 count = specialOffsets[i + 12].Size / 4;
457 break;
458 }
459 }
460
461 //Initialize using first offset so the node is sorted correctly
462 subActions.Initialize(this, BaseAddress + specialOffsets[12].Offset, 0);
463
464 //Set up groups
465 for (int i = 0; i < count; i++)
466 {
467 if (_animFlags._names.Count > i && _animFlags._flags[i]._stringOffset > 0)
468 {
469 name = _animFlags._names[i];
470 }
471 else
472 {
473 name = "<null>";
474 }
475
476 subActions.AddChild(
477 new MoveDefSubActionGroupNode
478 {
479 _name = name, _flags = _animFlags._flags[i]._Flags,
480 _inTransTime = _animFlags._flags[i]._InTranslationTime
481 }, false);
482 }
483
484 //Add children
485 for (int i = 0; i < 4; i++)
486 {
487 if (specialOffsets[i + 12].Size != 0)
488 {
489 PopulateActionGroup(subActions, subActions.ActionOffsets[i], true, i);
490 }
491 }
492
493 //Add to children (because the parent was set before initialization)
494 Children.Add(subActions);
495
496 Root._subActions = subActions;
497 }
498
499 if (specialOffsets[1].Size != 0)
500 {
501 (mdlVisibility = new MoveDefModelVisibilityNode {offsetID = 1}).Initialize(this,
502 BaseAddress + specialOffsets[1].Offset, 0);
503 }
504
505 if (specialOffsets[19].Size != 0)
506 {
507 (boneRef2 = new MoveDefBoneRef2Node {offsetID = 19}).Initialize(this,
508 new DataSource(BaseAddress + specialOffsets[19].Offset, 0));
509 }
510
511 if (specialOffsets[24].Size != 0)
512 {
513 (unk24 = new MoveDefUnk24Node {offsetID = 24}).Initialize(this,
514 BaseAddress + specialOffsets[24].Offset, 8);
515 }
516
517 if (specialOffsets[22].Size != 0)
518 {
519 (unk22 = new MoveDefUnk22Node {offsetID = 22}).Initialize(this,
520 new DataSource(BaseAddress + specialOffsets[22].Offset, 0));
521 }
522
523 if (specialOffsets[25].Size != 0)
524 {
525 (staticArticles = new MoveDefStaticArticleGroupNode {_name = "Static Articles", offsetID = 25})
526 .Initialize(this, new DataSource(BaseAddress + specialOffsets[25].Offset, 8));
527 }
528
529 if (specialOffsets[26].Size != 0)
530 {
531 (entryArticle = new MoveDefArticleNode {Static = true, _name = "Entry Article", offsetID = 26})
532 .Initialize(this, new DataSource(BaseAddress + specialOffsets[26].Offset, 0));
533 }
534
535 if (specialOffsets[8].Size != 0)
536 {
537 (actionInterrupts = new MoveDefActionInterruptsNode {offsetID = 8}).Initialize(this,
538 BaseAddress + specialOffsets[8].Offset, 8);
539 }
540
541 if (specialOffsets[16].Size != 0)
542 {
543 (boneFloats1 = new MoveDefUnk17Node {_name = "Bone Floats 1", offsetID = 16}).Initialize(this,
544 new DataSource(BaseAddress + specialOffsets[16].Offset, 0));
545 }
546
547 if (specialOffsets[17].Size != 0)
548 {
549 (boneFloats2 = new MoveDefUnk17Node {_name = "Bone Floats 2", offsetID = 17}).Initialize(this,
550 new DataSource(BaseAddress + specialOffsets[17].Offset, 0));
551 }
552
553 if (specialOffsets[23].Size != 0)
554 {
555 (boneFloats3 = new MoveDefUnk17Node {_name = "Bone Floats 3", offsetID = 23}).Initialize(this,
556 new DataSource(BaseAddress + specialOffsets[23].Offset, 0));
557 }
558
559 if (specialOffsets[18].Size != 0)
560 {
561 (boneRef1 = new MoveDefBoneIndicesNode("Bone References",
562 (misc.BoneRefOffset - specialOffsets[18].Offset) / 4)
563 {offsetID = 18}).Initialize(this, new DataSource(BaseAddress + specialOffsets[18].Offset, 0));
564 }
565
566 if (specialOffsets[20].Size != 0)
567 {
568 (override1 = new MoveDefActionOverrideNode {offsetID = 20}).Initialize(this,
569 new DataSource(BaseAddress + specialOffsets[20].Offset, 0));
570 }
571
572 if (specialOffsets[21].Size != 0)
573 {
574 (override2 = new MoveDefActionOverrideNode {offsetID = 21}).Initialize(this,
575 new DataSource(BaseAddress + specialOffsets[21].Offset, 0));
576 }
577
578 //These offsets follow no patterns
579 int y = 0;
580 MoveDefExternalNode ext = null;
581 foreach (int DataOffset in _extraOffsets)
582 {
583 if (y == 2 && RootNode.Name == "FitPokeTrainer")
584 {
585 MoveDefSoundDatasNode p = new MoveDefSoundDatasNode
586 {isExtra = true, separate = true, _name = "Sound Data 2"};
587 p.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
588 _extraEntries.Add(p);
589 }
590 else if (y == 49 && RootNode.Name == "FitKirby")
591 {
592 MoveDefKirbyParamList49Node p = new MoveDefKirbyParamList49Node {isExtra = true, offsetID = y};
593 p.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
594 _extraEntries.Add(p);
595 }
596 else if (y == 50 && RootNode.Name == "FitKirby")
597 {
598 //6 offsets
599 //that point to:
600 //offset
601 //count
602 //align to 0x10
603 //that points to list of:
604 //offset
605 //align list to 0x10
606 //that points to:
607 //offset
608 //count
609 //offset (sometimes 0)
610 //count (sometimes 0)
611 //that points to list of:
612 //offset
613 //count
614 //align list to 0x10
615 //that points to:
616 //int value
617 }
618 else if ((y == 51 || y == 52) && RootNode.Name == "FitKirby")
619 {
620 MoveDefKirbyParamList5152Node p = new MoveDefKirbyParamList5152Node
621 {isExtra = true, offsetID = y};
622 p.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
623 _extraEntries.Add(p);
624 }
625 else if (y == 7 && RootNode.Name == "FitPit" || y == 13 && RootNode.Name == "FitRobot")
626 {
627 Pit7Robot13Node p = new Pit7Robot13Node {isExtra = true, offsetID = y};
628 p.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
629 _extraEntries.Add(p);
630 }
631 else if (y == 8 && RootNode.Name == "FitLucario")
632 {
633 HitDataListOffsetNode p = new HitDataListOffsetNode
634 {isExtra = true, _name = "HitDataList" + y, offsetID = y};
635 p.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
636 _extraEntries.Add(p);
637 }
638 else if (y > 9 && RootNode.Name == "FitYoshi")
639 {
640 Yoshi9 p = new Yoshi9 {isExtra = true, offsetID = y};
641 p.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
642 _extraEntries.Add(p);
643 }
644 else if (y == 15 && RootNode.Name == "FitDedede")
645 {
646 Data2ListNode p = new Data2ListNode {isExtra = true, offsetID = y};
647 p.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
648 _extraEntries.Add(p);
649 }
650 else if (
651 y == 56 && RootNode.Name == "FitKirby" ||
652 y == 7 && RootNode.Name == "FitLink" ||
653 y == 8 && RootNode.Name == "FitPeach" ||
654 y == 4 && RootNode.Name == "FitPit" ||
655 y == 7 && RootNode.Name == "FitToonLink")
656 {
657 MoveDefHitDataListNode p = new MoveDefHitDataListNode
658 {isExtra = true, _name = "HitDataList" + y, offsetID = y};
659 p.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
660 _extraEntries.Add(p);
661 }
662 else if (y == 6 && RootNode.Name.StartsWith("FitWario"))
663 {
664 warioParams6 = new Wario6 {isExtra = true, offsetID = y};
665 warioParams6.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
667 }
668 else if (y == 8 && RootNode.Name.StartsWith("FitWario"))
669 {
670 warioParams8 = new Wario8 {isExtra = true, offsetID = y};
671 warioParams8.Initialize(this, new DataSource(BaseAddress + DataOffset, 0));
673 }
674 else if (y == 8 && RootNode.Name == "FitSZerosuit")
675 {
676 (zssParams8 = new SZerosuitExtraParams8Node {isExtra = true, offsetID = y}).Initialize(this,
677 BaseAddress + DataOffset, 32);
679 }
680 else if (y < 4 && RootNode.Name == "FitPopo")
681 {
682 _extraEntries.Add(null);
683
684 if (y == 0)
685 {
686 nanaSubActions = new MoveDefActionListNode
687 {_name = "Nana SubAction Scripts", isExtra = true};
688 }
689
690 actionOffset = (bint*) (BaseAddress + DataOffset);
691 ActionOffsets = new List<int>();
692 for (int x = 0; x < Root.GetSize(DataOffset) / 4; x++)
693 {
694 ActionOffsets.Add(actionOffset[x]);
695 }
696
697 nanaSubActions.ActionOffsets.Add(ActionOffsets);
698
699 if (y == 3)
700 {
701 string name;
702 int count = 0;
703 for (int i = 0; i < 4; i++)
704 {
705 if ((count = Root.GetSize(DataOffset) / 4) > 0)
706 {
707 break;
708 }
709 }
710
711 //Initialize using first offset so the node is sorted correctly
713
714 //Set up groups
715 for (int i = 0; i < count; i++)
716 {
717 if (_animFlags._names.Count > i && _animFlags._flags[i]._stringOffset > 0)
718 {
719 name = _animFlags._names[i];
720 }
721 else
722 {
723 name = "<null>";
724 }
725
727 new MoveDefSubActionGroupNode
728 {
729 _name = name, _flags = _animFlags._flags[i]._Flags,
730 _inTransTime = _animFlags._flags[i]._InTranslationTime
731 }, false);
732 }
733
734 //Add children
735 for (int i = 0; i < 4; i++)
736 {
738 }
739 }
740 }
741 else if (y == 10 && RootNode.Name == "FitPopo")
742 {
743 (nanaSoundData = new MoveDefSoundDatasNode {_name = "Nana Sound Data", isExtra = true})
744 .Initialize(this, (VoidPtr) Header + 124 + y * 4, 8);
745 _extraEntries.Add(null);
746 }
747 else
748 {
749 if (DataOffset > Root.dataSize) //probably flags or float
750 {
751 continue;
752 }
753
754 ext = null;
755 if (DataOffset > 1480) //I don't think a count would be greater than this
756 {
757 MoveDefEntryNode entry = null;
758 if ((ext = Root.IsExternal(DataOffset)) != null)
759 {
760 if (ext.Name.StartsWith("param"))
761 {
762 int o = 0;
763 if (y < _extraOffsets.Count - 1 && (o = _extraOffsets[y + 1]) < 1480 && o > 1)
764 {
765 MoveDefRawDataNode d = new MoveDefRawDataNode("ExtraParams" + y)
766 {offsetID = y, isExtra = true};
767 d.Initialize(this, BaseAddress + DataOffset, 0);
768 for (int i = 0; i < o; i++)
769 {
770 new MoveDefSectionParamNode {_name = "Part" + i, _extOverride = i == 0}
771 .Initialize(d, BaseAddress + DataOffset + d.Size / o * i, d.Size / o);
772 }
773
774 entry = d;
775 }
776 else
777 {
778 MoveDefSectionParamNode p = new MoveDefSectionParamNode
779 {_name = "ExtraParams" + y, isExtra = true, offsetID = y};
780 p.Initialize(this, BaseAddress + DataOffset, 0);
781 entry = p;
782 }
783 }
784 else
785 {
786 Article* test = (Article*) (BaseAddress + DataOffset);
787 if (Root.GetSize(DataOffset) < 52 ||
788 test->_actionsStart > Root.dataSize || test->_actionsStart % 4 != 0 ||
789 test->_subactionFlagsStart > Root.dataSize ||
790 test->_subactionFlagsStart % 4 != 0 ||
791 test->_subactionGFXStart > Root.dataSize || test->_subactionGFXStart % 4 != 0 ||
792 test->_subactionSFXStart > Root.dataSize || test->_subactionSFXStart % 4 != 0 ||
793 test->_modelVisibility > Root.dataSize || test->_modelVisibility % 4 != 0 ||
794 test->_arcGroup > byte.MaxValue || test->_boneID > short.MaxValue ||
795 test->_id > 1480)
796 {
797 int o = 0;
798 if (y < _extraOffsets.Count - 1 && (o = _extraOffsets[y + 1]) < 1480 && o > 1)
799 {
800 MoveDefRawDataNode d = new MoveDefRawDataNode("ExtraParams" + y)
801 {offsetID = y, isExtra = true};
802 d.Initialize(this, BaseAddress + DataOffset, 0);
803 for (int i = 0; i < o; i++)
804 {
805 new MoveDefSectionParamNode {_name = "Part" + i, _extOverride = i == 0}
806 .Initialize(d,
807 BaseAddress + DataOffset + d.Size / o * i, d.Size / o);
808 }
809
810 entry = d;
811 }
812 else
813 {
814 MoveDefSectionParamNode p = new MoveDefSectionParamNode
815 {_name = "ExtraParams" + y, isExtra = true, offsetID = y};
816 p.Initialize(this, BaseAddress + DataOffset, 0);
817 entry = p;
818 }
819 }
820 else
821 {
822 if (_articleGroup == null)
823 {
824 _articleGroup = new MoveDefGroupNode {_name = "Articles"};
825 _articleGroup.Initialize(this, BaseAddress + DataOffset, 0);
826 }
827
828 (entry = new MoveDefArticleNode
829 {offsetID = y, Static = true, isExtra = true, extraOffset = true})
830 .Initialize(_articleGroup, BaseAddress + DataOffset, 0);
831 _articles.Add(entry._offset, entry);
832 }
833 }
834 }
835 else
836 {
837 Article* test = (Article*) (BaseAddress + DataOffset);
838 if (Root.GetSize(DataOffset) < 52 ||
839 test->_actionsStart > Root.dataSize || test->_actionsStart % 4 != 0 ||
840 test->_subactionFlagsStart > Root.dataSize || test->_subactionFlagsStart % 4 != 0 ||
841 test->_subactionGFXStart > Root.dataSize || test->_subactionGFXStart % 4 != 0 ||
842 test->_subactionSFXStart > Root.dataSize || test->_subactionSFXStart % 4 != 0 ||
843 test->_modelVisibility > Root.dataSize || test->_modelVisibility % 4 != 0 ||
844 test->_arcGroup > byte.MaxValue || test->_boneID > short.MaxValue ||
845 test->_id > 1480)
846 {
847 int o = 0;
848 if (y < _extraOffsets.Count - 1 && (o = _extraOffsets[y + 1]) < 1480 && o > 1)
849 {
850 MoveDefRawDataNode d = new MoveDefRawDataNode("ExtraParams" + y)
851 {offsetID = y, isExtra = true};
852 d.Initialize(this, BaseAddress + DataOffset, 0);
853 for (int i = 0; i < o; i++)
854 {
855 new MoveDefSectionParamNode {_name = "Part" + i, _extOverride = i == 0}
856 .Initialize(d, BaseAddress + DataOffset + d.Size / o * i, d.Size / o);
857 }
858
859 entry = d;
860 }
861 else
862 {
863 MoveDefSectionParamNode p = new MoveDefSectionParamNode
864 {_name = "ExtraParams" + y, isExtra = true, offsetID = y};
865 p.Initialize(this, BaseAddress + DataOffset, 0);
866 entry = p;
867 }
868 }
869 else
870 {
871 if (_articleGroup == null)
872 {
873 _articleGroup = new MoveDefGroupNode {_name = "Articles"};
874 _articleGroup.Initialize(this, BaseAddress + DataOffset, 0);
875 }
876
877 (entry = new MoveDefArticleNode
878 {offsetID = y, isExtra = true, Static = true, extraOffset = true})
879 .Initialize(_articleGroup, BaseAddress + DataOffset, 0);
880 _articles.Add(entry._offset, entry);
881 }
882 }
883
884 _extraEntries.Add(entry);
885 }
886 }
887
888 y++;
889 }
890
891 misc.Populate();
892
893 //if (_extraEntries.Count > 0)
894 //{
895 // if (!Directory.Exists(Application.StartupPath + "/MovesetData/CharSpecific"))
896 // Directory.CreateDirectory(Application.StartupPath + "/MovesetData/CharSpecific");
897 // string events = Application.StartupPath + "/MovesetData/CharSpecific/" + Root.Parent.Name + ".txt";
898 // using (StreamWriter file = new StreamWriter(events))
899 // {
900 // foreach (MoveDefEntryNode e in _extraEntries)
901 // {
902 // if (e is MoveDefSectionParamNode)
903 // {
904 // MoveDefSectionParamNode p = e as MoveDefSectionParamNode;
905 // file.WriteLine(p.Name);
906 // file.WriteLine(p.Name); //Replaced name
907 // foreach (AttributeInfo i in p._info)
908 // {
909 // file.WriteLine(i._name);
910 // file.WriteLine(i._description);
911 // file.WriteLine(i._type == false ? 0 : 1);
912 // file.WriteLine();
913 // }
914 // file.WriteLine();
915 // }
916 // }
917 // }
918 //}
919
920 //if (specialOffsets[9].Size != 0)
921 // new MoveDefActionsNode("Actions 1").Initialize(this, new DataSource(BaseAddress + specialOffsets[9].Offset, specialOffsets[9].Size));
922
923 //if (specialOffsets[10].Size != 0)
924 // new MoveDefActionsNode("Actions 2").Initialize(this, new DataSource(BaseAddress + specialOffsets[10].Offset, specialOffsets[10].Size));
925
927 //(Root.Main = new MoveDefActionsNode("Main SubActions") { /*_parent = this*/ }).Initialize(this, new DataSource(BaseAddress + specialOffsets[12].Offset, specialOffsets[12].Size));
928
930 //(Root.GFX = new MoveDefActionsNode("GFX SubActions") { /*_parent = this*/ }).Initialize(this, new DataSource(BaseAddress + specialOffsets[13].Offset, specialOffsets[13].Size));
931
933 //(Root.SFX = new MoveDefActionsNode("SFX SubActions") { /*_parent = this*/ }).Initialize(this, new DataSource(BaseAddress + specialOffsets[14].Offset, specialOffsets[14].Size));
934
936 //(Root.Other = new MoveDefActionsNode("Other SubActions") { /*_parent = this*/ }).Initialize(this, new DataSource(BaseAddress + specialOffsets[15].Offset, specialOffsets[15].Size));
937
938 //MoveDefGroupNode articles = new MoveDefGroupNode() { _name = "Articles", _parent = this };
939 }
940
941 #endregion
942
943 SortChildren();
944 }
List< List< int > > ActionOffsets
Definition: MoveDefGeneralNodes.cs:12
MoveDefActionInterruptsNode actionInterrupts
Definition: MoveDefDataNode.cs:169
MoveDefGroupNode _articleGroup
Definition: MoveDefDataNode.cs:153
MoveDefSoundDatasNode nanaSoundData
Definition: MoveDefDataNode.cs:178
MoveDefUnk22Node unk22
Definition: MoveDefDataNode.cs:163
MoveDefStaticArticleGroupNode staticArticles
Definition: MoveDefDataNode.cs:168
MoveDefUnk7Node unk7
Definition: MoveDefDataNode.cs:161
MoveDefActionPreNode actionPre
Definition: MoveDefDataNode.cs:162
MoveDefAttributeNode attributes
Definition: MoveDefDataNode.cs:156
int Unknown7
Definition: MoveDefDataNode.cs:33
MoveDefActionFlagsNode actionFlags
Definition: MoveDefDataNode.cs:160
MoveDefActionOverrideNode override2
Definition: MoveDefDataNode.cs:159
MoveDefActionListNode nanaSubActions
Definition: MoveDefDataNode.cs:176
int CommonActionFlagsStart
Definition: MoveDefDataNode.cs:29
MoveDefModelVisibilityNode mdlVisibility
Definition: MoveDefDataNode.cs:165
MoveDefArticleNode entryArticle
Definition: MoveDefDataNode.cs:167
MoveDefAttributeNode sseAttributes
Definition: MoveDefDataNode.cs:156
MoveDefBoneRef2Node boneRef2
Definition: MoveDefDataNode.cs:172
SZerosuitExtraParams8Node zssParams8
Definition: MoveDefDataNode.cs:181
MoveDefUnk17Node boneFloats1
Definition: MoveDefDataNode.cs:166
MoveDefMiscNode misc
Definition: MoveDefDataNode.cs:157
Wario8 warioParams8
Definition: MoveDefDataNode.cs:186
MoveDefUnk17Node boneFloats3
Definition: MoveDefDataNode.cs:164
MoveDefBoneIndicesNode boneRef1
Definition: MoveDefDataNode.cs:171
int ActionFlagsStart
Definition: MoveDefDataNode.cs:31
void PopulateActionGroup(ResourceNode g, List< int > ActionOffsets, bool subactions, int index)
Definition: MoveDefDataNode.cs:971
MoveDefActionOverrideNode override1
Definition: MoveDefDataNode.cs:158
MoveDefUnk17Node boneFloats2
Definition: MoveDefDataNode.cs:166
Wario6 warioParams6
Definition: MoveDefDataNode.cs:187
int EntryActionsStart
Definition: MoveDefDataNode.cs:37
MoveDefActionFlagsNode commonActionFlags
Definition: MoveDefDataNode.cs:160
MoveDefFlagsNode _animFlags
Definition: MoveDefDataNode.cs:155
MoveDefUnk24Node unk24
Definition: MoveDefDataNode.cs:170
bool isExtra
Definition: MoveDefNode.cs:137
int offsetID
Definition: MoveDefNode.cs:136
int _offset
Definition: MoveDefNode.cs:67
MoveDefNode Root
Definition: MoveDefNode.cs:48
bool _extOverride
Definition: MoveDefNode.cs:131
override void SortChildren()
Definition: MoveDefNode.cs:192
int Size
Definition: MoveDefNode.cs:87
VoidPtr BaseAddress
Definition: MoveDefNode.cs:32
List< string > _names
Definition: DataActionFlags.cs:202
List< FDefSubActionFlag > _flags
Definition: DataActionFlags.cs:203
int BoneRefOffset
Definition: DataMiscNode.cs:36
MoveDefExternalNode IsExternal(int offset)
Definition: MoveDefNode.cs:3112
int GetSize(int offset)
Definition: MoveDefNode.cs:3348
ResourceNode _parent
Definition: ResourceNode.cs:142
void Initialize(ResourceNode parent, FileMap source)
Definition: ResourceNode.cs:651
ResourceNode RootNode
Definition: ResourceNode.cs:175
virtual string Name
Definition: ResourceNode.cs:223
virtual void AddChild(ResourceNode child)
Definition: ResourceNode.cs:757
List< ResourceNode > Children
Definition: ResourceNode.cs:262
void Populate(int levels=-1)
Definition: ResourceNode.cs:613
Definition: VoidPtr.cs:9
Definition: FighterDefinition.cs:348
bint _subactionSFXStart
Definition: FighterDefinition.cs:361
bint _subactionFlagsStart
Definition: FighterDefinition.cs:356
bint _arcGroup
Definition: FighterDefinition.cs:352
bint _boneID
Definition: FighterDefinition.cs:353
bint _id
Definition: FighterDefinition.cs:351
bint _modelVisibility
Definition: FighterDefinition.cs:362
bint _subactionGFXStart
Definition: FighterDefinition.cs:359
bint _actionsStart
Definition: FighterDefinition.cs:357

◆ OnRebuild()

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

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

1050 {
1051 MovesetConverter.BuildData(this, (MovesetHeader*) dataHeaderAddr, address, length, force);
1052 }
VoidPtr dataHeaderAddr
Definition: MoveDefDataNode.cs:1029
Definition: FighterDefinition.cs:82

◆ PopulateActionGroup()

void BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.PopulateActionGroup ( ResourceNode  g,
List< int >  ActionOffsets,
bool  subactions,
int  index 
)
inline
972 {
973 string name = "";
974 if (subactions)
975 {
976 if (index == 0)
977 {
978 name = "Main";
979 }
980 else if (index == 1)
981 {
982 name = "GFX";
983 }
984 else if (index == 2)
985 {
986 name = "SFX";
987 }
988 else if (index == 3)
989 {
990 name = "Other";
991 }
992 else
993 {
994 return;
995 }
996 }
997 else if (index == 0)
998 {
999 name = "Entry";
1000 }
1001 else if (index == 1)
1002 {
1003 name = "Exit";
1004 }
1005
1006 int i = 0;
1007 foreach (int offset in ActionOffsets)
1008 {
1009 if (offset > 0)
1010 {
1011 new MoveDefActionNode(name, false, g.Children[i]).Initialize(g.Children[i],
1012 new DataSource(BaseAddress + offset, 0));
1013 }
1014 else
1015 {
1016 g.Children[i].Children.Add(new MoveDefActionNode(name, true, g.Children[i]));
1017 }
1018
1019 i++;
1020
1021 if (subactions && i == _animFlags._names.Count || i == g.Children.Count)
1022 {
1023 break;
1024 }
1025 }
1026 }

Member Data Documentation

◆ _animFlags

MoveDefFlagsNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode._animFlags

◆ _articleGroup

MoveDefGroupNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode._articleGroup

◆ _articles

SortedList<int, MoveDefEntryNode> BrawlLib.SSBB.ResourceNodes.MoveDefDataNode._articles

◆ _extraEntries

List<MoveDefEntryNode> BrawlLib.SSBB.ResourceNodes.MoveDefDataNode._extraEntries

◆ _extraOffsets

List<int> BrawlLib.SSBB.ResourceNodes.MoveDefDataNode._extraOffsets

◆ actionFlags

MoveDefActionFlagsNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.actionFlags

◆ actionInterrupts

MoveDefActionInterruptsNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.actionInterrupts

◆ actionPre

MoveDefActionPreNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.actionPre

◆ attributes

MoveDefAttributeNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.attributes

◆ boneFloats1

MoveDefUnk17Node BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.boneFloats1

◆ boneFloats2

MoveDefUnk17Node BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.boneFloats2

◆ boneFloats3

MoveDefUnk17Node BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.boneFloats3

◆ boneRef1

MoveDefBoneIndicesNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.boneRef1

◆ boneRef2

MoveDefBoneRef2Node BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.boneRef2

◆ commonActionFlags

MoveDefActionFlagsNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.commonActionFlags

◆ dataHeaderAddr

VoidPtr BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.dataHeaderAddr

◆ entryArticle

MoveDefArticleNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.entryArticle

◆ mdlVisibility

MoveDefModelVisibilityNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.mdlVisibility

◆ misc

MoveDefMiscNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.misc

◆ nanaSoundData

MoveDefSoundDatasNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.nanaSoundData

◆ nanaSubActions

MoveDefActionListNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.nanaSubActions

◆ override1

MoveDefActionOverrideNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.override1

◆ override2

MoveDefActionOverrideNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.override2

◆ part1Len

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.part1Len = 0

◆ part2Len

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.part2Len = 0

◆ part3Len

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.part3Len = 0

◆ part4Len

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.part4Len = 0

◆ part5Len

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.part5Len = 0

◆ part6Len

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.part6Len = 0

◆ part7Len

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.part7Len = 0

◆ part8Len

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.part8Len = 0

◆ specialOffsets

List<SpecialOffset> BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.specialOffsets = new List<SpecialOffset>()

◆ sseAttributes

MoveDefAttributeNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.sseAttributes

◆ staticArticles

MoveDefStaticArticleGroupNode BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.staticArticles

◆ subActionTable

FDefSubActionStringTable BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.subActionTable

◆ unk22

MoveDefUnk22Node BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.unk22

◆ unk24

MoveDefUnk24Node BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.unk24

◆ unk7

MoveDefUnk7Node BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.unk7

◆ warioParams6

Wario6 BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.warioParams6

◆ warioParams8

Wario8 BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.warioParams8

◆ warioSwing4StringOffset

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.warioSwing4StringOffset = -1

◆ zssFirstOffset

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.zssFirstOffset = -1

◆ zssParams8

SZerosuitExtraParams8Node BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.zssParams8

Property Documentation

◆ ActionFlagsStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.ActionFlagsStart
get

◆ ActionInterrupts

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.ActionInterrupts
get

◆ ActionPreStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.ActionPreStart
get

◆ AttributeStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.AttributeStart
get

◆ BoneFloats1

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.BoneFloats1
get

◆ BoneFloats2

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.BoneFloats2
get

◆ BoneFloats3

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.BoneFloats3
get

◆ BoneRef1

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.BoneRef1
get

◆ BoneRef2

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.BoneRef2
get

◆ CommonActionFlagsStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.CommonActionFlagsStart
get

◆ EntryActionOverrides

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.EntryActionOverrides
get

◆ EntryActionsStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.EntryActionsStart
get

◆ EntryArticleStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.EntryArticleStart
get

◆ ExitActionOverrides

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.ExitActionOverrides
get

◆ ExitActionsStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.ExitActionsStart
get

◆ ExtraOffsets

List<int> BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.ExtraOffsets
get

◆ Flags1bin

Bin32 BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Flags1bin
getset
102 {
103 get => new Bin32(flags1);
104 set
105 {
106 flags1 = value._data;
108 }
109 }
virtual void SignalPropertyChange()
Definition: ResourceNode.cs:313
Definition: BinaryHandlers.cs:8

◆ Flags1uint

uint BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Flags1uint
getset
113 {
114 get => flags1;
115 set
116 {
117 flags1 = value;
119 }
120 }

◆ Flags2bin

Bin32 BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Flags2bin
getset
125 {
126 get => new Bin32((uint) flags2);
127 set
128 {
129 flags2 = (int) value._data;
131 }
132 }

◆ Flags2int

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Flags2int
getset
136 {
137 get => flags2;
138 set
139 {
140 flags2 = value;
142 }
143 }

◆ MiscSectionOffset

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.MiscSectionOffset
get

◆ ModelVisibilityStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.ModelVisibilityStart
get

◆ Offsets

SpecialOffset [] BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Offsets
get

◆ SSEAttributeStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.SSEAttributeStart
get

◆ StaticArticles

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.StaticArticles
get

◆ SubactionFlagsStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.SubactionFlagsStart
get

◆ SubactionGFXStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.SubactionGFXStart
get

◆ SubactionMainStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.SubactionMainStart
get

◆ SubactionOtherStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.SubactionOtherStart
get

◆ SubactionSFXStart

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.SubactionSFXStart
get

◆ Unknown22

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Unknown22
get

◆ Unknown24

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Unknown24
get

◆ Unknown27

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Unknown27
getset
79 {
80 get => unk27;
81 set
82 {
83 unk27 = value;
85 }
86 }

◆ Unknown28

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Unknown28
getset
90 {
91 get => unk28;
92 set
93 {
94 unk28 = value;
96 }
97 }

◆ Unknown7

int BrawlLib.SSBB.ResourceNodes.MoveDefDataNode.Unknown7
get

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