![]() |
Routines |
| Prev: 24819 | Up: Map | Next: 24914 |
|
||||||||
| 24832 | LD L,8 | Set Sam's main action timer (in byte 8 of his buffer) to 8 | ||||||
| 24834 | LD (HL),L | |||||||
| 24835 | LD L,13 | Byte 13 of Sam's buffer holds 0 if Sam has only just met Lana, or 1 otherwise | ||||||
| 24837 | LD A,(HL) | |||||||
| 24838 | AND A | Has Sam only just met Lana in his office? | ||||||
| 24839 | JR NZ,24850 | Jump if not | ||||||
| 24841 | INC (HL) | Increment byte 13 of Sam's buffer so that we don't come here again | ||||||
| 24842 | LD A,73 | Message 73: 'I STARED AT THE LOVELY LANA...' | ||||||
| 24844 | LD (32722),A | Store the message number at 32722 (so that we can check when it has been displayed) | ||||||
| 24847 | JP 30154 | Queue the message urgently | ||||||
|
While Lana is transfixing Sam, we count the policemen who have shown up at Sam's office so far and been immobilised.
|
||||||||
| 24850 | LD BC,512 | B=2 (2 policemen), C=0 (will count the number of immobilised policemen) | ||||||
| 24853 | LD D,222 | Character 222 is the first policeman | ||||||
| 24855 | LD E,9 | Point DE at byte 9 of the policeman's buffer | ||||||
| 24857 | INC C | Assume that this policeman is already immobilised | ||||||
| 24858 | LD A,(DE) | A=MSB of the policeman's current primary command routine | ||||||
| 24859 | CP 231 | Is it the MSB of 59147 (RET)? | ||||||
| 24861 | JR Z,24890 | Jump if so (this policeman is already immobilised) | ||||||
| 24863 | DEC C | Decrement C because this policeman is not yet immobilised | ||||||
| 24864 | LD E,2 | A=policeman's y-coordinate | ||||||
| 24866 | LD A,(DE) | |||||||
| 24867 | CP 19 | Is the policeman on the third floor of a building? | ||||||
| 24869 | JR NZ,24890 | Jump to consider the next policeman if not | ||||||
| 24871 | DEC E | E=1 | ||||||
| 24872 | LD A,(DE) | A=policeman's x-coordinate | ||||||
| 24873 | CP 239 | Consider the next policeman unless this one is in Sam's office | ||||||
| 24875 | JR NC,24890 | |||||||
| 24877 | CP 224 | |||||||
| 24879 | JR C,24890 | |||||||
| 24881 | LD A,231 | Place 59147 (RET) into bytes 8 and 9 of the policeman's buffer, thus immobilising him | ||||||
| 24883 | LD E,9 | |||||||
| 24885 | LD (DE),A | |||||||
| 24886 | LD A,11 | |||||||
| 24888 | DEC E | |||||||
| 24889 | LD (DE),A | |||||||
| 24890 | INC D | Point DE at the next policeman's buffer | ||||||
| 24891 | DJNZ 24855 | Jump back until both policemen have been checked | ||||||
|
Now C holds the number of policemen that have been immobilised in Sam's office.
|
||||||||
| 24893 | PUSH BC | Save the number of immobilised policemen briefly | ||||||
| 24894 | CALL 30972 | Check whether message 73 ('I STARED AT THE LOVELY LANA...') is still in the message queue | ||||||
| 24897 | POP BC | Restore the number of immobilised policemen to C | ||||||
| 24898 | RET Z | Return unless the entire message has been displayed | ||||||
| 24899 | LD A,C | A=number of immobilised policemen | ||||||
| 24900 | AND A | Is it at least one? | ||||||
| 24901 | JR NZ,24914 | Jump if so | ||||||
| 24903 | LD HL,0 | Set the number of bucks (stored at 32670) to 0 | ||||||
| 24906 | LD (32670),HL | |||||||
| 24909 | LD A,75 | Message 75: 'SHE FIRED' | ||||||
| 24911 | JP 31445 | Display the cutscene with this message, and then prepare to enter demo mode | ||||||
| Prev: 24819 | Up: Map | Next: 24914 |