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