public override AsmSegment[] ResolveTargets() { int?eventLabel = TargetEventLabel.TryResolveValue(); if (eventLabel == null) { return(null); } AsmSegment target = SourceSegment.Event.Module.ParentCollection.GetModuleByIndex(TargetModuleIndex)[(ushort)eventLabel].Segments[0]; return(new[] { target }); }
public AsmAbsoluteRequestBinding(AsmSegment source, int sourceOffset, int targetModuleIndex, AsmValueSource targetEventLabel) : base(AsmBindingType.AbsoluteRequest, source, sourceOffset) { TargetModuleIndex = (ushort)targetModuleIndex; TargetEventLabel = targetEventLabel; }
public AsmHardlinkBinding(AsmSegment source, AsmSegment target) : base(AsmBindingType.Hardlink, source, source.Length - 1) { TargetSegment = target; }
public AsmBinding(AsmBindingType type, AsmSegment source, int sourceOffset) { Type = type; SourceSegment = source; SourceOffset = sourceOffset; }
public AsmConditionBinding(AsmSegment source, AsmSegment target, AsmValueSource conditionSource, bool isTrue) : base(isTrue ? AsmBindingType.ConditionTrue : AsmBindingType.ConditionFalse, source, source.Length - 1) { TargetSegment = target; ConditionSource = conditionSource; }