コード例 #1
0
        protected override void OnParse(VoidPtr address)
        {
            _children = new List <ActionOverrideEntry>();
            sActionOverride *entry = (sActionOverride *)address;

            while (entry->_commandListOffset > 0)
            {
                _children.Add(Parse <ActionOverrideEntry>(entry++));
            }
        }
コード例 #2
0
        protected override void OnParse(VoidPtr address)
        {
            sActionOverride *hdr = (sActionOverride *)address;

            _actionId          = hdr->_actionID;
            _commandListOffset = hdr->_commandListOffset;

            if (_commandListOffset > 0)
            {
                _script = Parse <Script>(_commandListOffset);
            }
        }
コード例 #3
0
        protected override void OnWrite(VoidPtr address)
        {
            RebuildAddress = address;
            foreach (ActionOverrideEntry e in _children)
            {
                e.RebuildAddress = address;
                sActionOverride *addr = (sActionOverride *)address;
                addr->_actionID = e._actionId;
                SakuraiArchiveNode.Builder._postProcessNodes.Add(this);
                if (e._script != null && e._script.Count > 0)
                {
                    _lookupOffsets.Add(addr->_commandListOffset.Address);
                }
                address += 8;
            }

            sActionOverride *end = (sActionOverride *)address;

            end->_actionID          = -1;
            end->_commandListOffset = 0;
        }