toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  final s = StringBuffer();
  for (int i = 0;
      i <= (ZMachine.verToInt(Z.engine.version) <= 3 ? 31 : 47);
      i++) {
    if (BinaryHelper.isSet(
        flags, (ZMachine.verToInt(Z.engine.version) <= 3 ? 31 : 47) - i)) {
      s.write('[$i] ');
    }
  }

  final ret = '''
Object #:$id, "$shortName" (Address: 0x${_address!.toRadixString(16)})
parent: $parent "${GameObject(parent).shortName}"
sibling: $sibling "${GameObject(sibling).shortName}"
child: $child "${GameObject(child).shortName}"
Property Address 0x${propertyTableStart.toRadixString(16)}
flags: $s
''';

  return ret;
}