private bool ActivateButtonIfStillColliding()
        {
            bool stillStuck = activeCollisions > 0;

            if (stillStuck)
            {
                LabelMarker m = timeline.LabelMarkerTimes()["HelpAvailable"];
                timeline.Seek(m);
                Debug.Log($"{this}: reactivating button");
                ActivateButtonTimeout();
            }
            return(stillStuck);
        }
예제 #2
0
 public void lineNumber(int line, LabelMarker label)
 {
     checkCreated();
     lineNumbers.add(new LineNumberInfo(line, label.Label));
 }
 public void lineNumber(int line, LabelMarker label) {
     checkCreated();
     lineNumbers.add(new LineNumberInfo(line, label.Label));
 }
예제 #4
0
 public void markLabel(LabelMarker label)
 {
     checkCreated();
     instructions.add(label);
 }
 public void exceptionHandler(LabelMarker from, LabelMarker to, LabelMarker target, TypeInfo type) {
     exceptionTable.add(new ExceptionHandler(from.Label, to.Label, target.Label, type));
 }
 public void markLabel(LabelMarker label) {
     checkCreated();
     instructions.add(label);
 }
 public void emit(Opcode opcode, int minimumKey, int maximumKey, LabelMarker[] labels, LabelMarker defaultLabel) {
     checkCreated();
     if (opcode != Opcode.Tableswitch) {
         throw new IllegalStateException("Illegal opcode usage: " + opcode);
     }
     instructions.add(new TableSwitchInstruction(minimumKey, maximumKey, labels, defaultLabel));
 }
 public void emit(Opcode opcode, int[] keys, LabelMarker[] labels, LabelMarker defaultLabel) {
     checkCreated();
     if (opcode != Opcode.Lookupswitch) {
         throw new IllegalStateException("Illegal opcode usage: " + opcode);
     }
     instructions.add(new LookupSwitchInstruction(keys, labels, defaultLabel));
 }
     : super(Opcode.Tableswitch) {
     this.minimumKey = minimumKey;
     this.maximumKey = maximumKey;
     this.labels = labels;
     this.defaultLabel = defaultLabel;
 }
 public void emit(Opcode opcode, LabelMarker label) {
     if (label == null) {
         throw new NullPointerException("label");
     }
     checkCreated();
     switch (opcode) {
     case Goto:
     case If_acmpeq:
     case If_acmpne:
     case If_icmpeq:
     case If_icmpge:
     case If_icmpgt:
     case If_icmple:
     case If_icmplt:
     case If_icmpne:
     case Ifeq:
     case Ifge:
     case Ifgt:
     case Ifle:
     case Iflt:
     case Ifne:
     case Ifnonnull:
     case Ifnull:
     case Jsr:
         instructions.add(new JumpInstruction(opcode, label));
         break;
         
     default:
         throw new IllegalStateException("Illegal opcode usage: " + opcode);
     }
 }
 TableSwitchInstruction(int minimumKey, int maximumKey, LabelMarker[] labels, LabelMarker defaultLabel)
     : super(Opcode.Tableswitch) {
     : super(Opcode.Lookupswitch) {
     this.keys = keys;
     this.labels = labels;
     this.defaultLabel = defaultLabel;
 }
 LookupSwitchInstruction(int[] keys, LabelMarker[] labels, LabelMarker defaultLabel)
     : super(Opcode.Lookupswitch) {
     : super(opcode) {
     this.labelMarker = labelMarker;
 }
 JumpInstruction(Opcode opcode, LabelMarker labelMarker)
     : super(opcode) {