![]() |
Routines |
Prev: 31580 | Up: Map |
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.
|
|||||||||
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 |