public override void OnPopulate() { int numEntries = WorkingUncompressed.Length / sizeof(ClassicStageBlock); ClassicStageBlock *ptr = (ClassicStageBlock *)WorkingUncompressed.Address; for (int i = 0; i < numEntries; i++) { DataSource source = new DataSource(ptr, sizeof(ClassicStageBlock)); new ClassicStageBlockNode().Initialize(this, source); ptr++; } }
public override void OnRebuild(VoidPtr address, int length, bool force) { // Rebuild children using new address ClassicStageBlock *ptr = (ClassicStageBlock *)address; for (int i = 0; i < Children.Count; i++) { Children[i].Rebuild(ptr, sizeof(ClassicStageBlock), true); ptr++; } bint *ptr2 = (bint *)ptr; foreach (int pad in Padding) { *(ptr2++) = pad; } }
public override void OnRebuild(VoidPtr address, int length, bool force) { // Copy the data back to the address ClassicStageBlock *dataPtr = (ClassicStageBlock *)address; dataPtr->_stages._unknown00 = data._unknown00; dataPtr->_stages._stageID1 = data._stageID1; dataPtr->_stages._stageID2 = data._stageID2; dataPtr->_stages._stageID3 = data._stageID3; dataPtr->_stages._stageID4 = data._stageID4; // Rebuild children using new address ClassicFighterData *ptr = &((ClassicStageBlock *)address)->_opponent1; for (int i = 0; i < Children.Count; i++) { Children[i].Rebuild(ptr, sizeof(ClassicFighterData), true); ptr++; } }