- $data->{finish}->{code} = substr(
- delete($data->{leveldata}), $offset, -5 * $slots
+ $offset++;
+ $data->{finish}->{code} =
+ my $code = substr delete($data->{leveldata}), $offset, -5*$slots;
+
+ my %FINISHCODE = (
+ 0 => chr 0xC9, # ret
+ 1 => join('',
+ chr 0x21, # ld hl, MESSAGE
+ pack('v', $offsetbase + $offset + 9),
+ (map {chr}
+ 0xCD, 0x37, 0x4A, # call _puts
+ 0xC3, 0xAA, 0x55, # jp _getkey
+ ),
+ ),
+ 2 => join('',
+ (map {chr}
+ 0x21, 0, 0x1C, # ld hl, $POS
+ 0x22, 0x7C, 0xC3, # ld (_penCol), hl
+ 0x21, # ld hl, MESSAGE
+ ),
+ pack('v', $offsetbase + $offset + 15),
+ (map {chr}
+ 0xCD, 0xA5, 0x4A, # call _vputs
+ 0xC3, 0xAA, 0x55, # jp _getkey
+ ),
+ ),