protected override void OnParse(VoidPtr address) { _children = new List <ActionOverrideEntry>(); sActionOverride *entry = (sActionOverride *)address; while (entry->_commandListOffset > 0) { _children.Add(Parse <ActionOverrideEntry>(entry++)); } }
protected override void OnParse(VoidPtr address) { sActionOverride *hdr = (sActionOverride *)address; _actionId = hdr->_actionID; _commandListOffset = hdr->_commandListOffset; if (_commandListOffset > 0) { _script = Parse <Script>(_commandListOffset); } }
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; }