Prev: 31580 Up: Map Next: 31642
31594: Let Sam out of jail if necessary
Used by the command list at 64764. Does nothing if Sam is not in jail; otherwise sets Sam's bail to some amount that he can afford, and lets him out of jail.
Input
H 219 (Jailer)
31594 XOR A Remove the address of this primary command routine from bytes 8 and 9 of the jailer's buffer, triggering a move to the next command in the command list after we are finished here
31595 LD L,9
31597 LD (HL),A
31598 LD HL,32747 The police flags are stored at 32747
31601 BIT 7,(HL) Is Sam in jail?
31603 RET Z Return if not
31604 LD (HL),A Clear the police flags
31605 LD H,A H=0
31606 LD DE,(32670) Collect the number of bucks from 32670
31610 CALL 61823 Get a random number in A
31613 AND 7 Now HL holds a randomly chosen multiple of 10 between 20 and 90
31615 ADD A,2
31617 LD C,A
31618 ADD A,A
31619 ADD A,A
31620 ADD A,C
31621 ADD A,A
31622 LD L,A
31623 SBC HL,DE Subtract Sam's cash supply from this number
31625 JR NC,31610 Jump back to generate another bail amount if Sam's cash supply is too small (which could lead to an infinite loop)
31627 LD A,C A=ASCII code for the tens digit of the bail amount
31628 ADD A,48
31630 LD (32720),A Store this at 32720
31633 LD A,C Subtract the bail amount from Sam's cash supply
31634 CALL 28295
31637 LD A,52 Message 52: ' THE BAIL WAS ${tens digit}0'
31639 JP 28357 Queue this message
Prev: 31580 Up: Map Next: 31642