random method

void random()

Implementation

void random() {
  //Debugger.verbose('${pcHex(-1)} [random]');

  final operands = visitOperandsVar(1, false);

  final resultTo = readb();

  final range = operands[0].value!;

  //default return value in first two cases
  var result = 0;

  if (range < 0) {
    r = DRandom.withSeed(range);
    //Debugger.verbose('    (set RNG to seed: $range)');
  } else if (range == 0) {
    r = DRandom.withSeed(DateTime.now().millisecondsSinceEpoch);
    //Debugger.verbose('    (set RNG to random seed)');
  } else {
    result = r.nextFromMax(range) + 1;
    //Debugger.verbose('    (Rolled [1 - $range] number: $result)');
  }

  writeVariable(resultTo, result);
}