| Data

24544: Event table

Initialised by the routine at 30017, and processed on every pass through the main loop by the routine at 29952. Each of the 14 entries in this table corresponds to a significant event in the game that requires changes to be made (such as making a key available, or Daisy having a new message for Sam). The bits in the first byte of each entry have the following meanings:
Bit(s) | Meaning if set
--- | ---
7 | Entry should be inactive initially
6 | Entry should never be deactivated
1-5 | Unused
0 | Entry is inactive
The first entry makes Sam's oil man disguise work with the gangsters at no. 19, and makes the policemen roam the entire city (instead of just the sidewalk near Sam's office) while on the beat. It is triggered at the start of a new game.
24544 | DEFB 0 |
24545 | DEFB 13 | 13 bytes until the next entry
24546 | DEFB 1 | 1 condition follows
24547 | DEFW 32750 | 32750 holds the game mode indicator
24549 | DEFB 40 | JR Z (for the instruction at 29986)
24550 | DEFB 1 | Game mode
24551 | DEFB 2 | 2 POKEs follow (to do if the game mode is 1)
24552 | DEFW 64844 | 64844 holds the disguise ID in the region definition table at 64836
24554 | DEFB 7 | Disguise ID (oil man)
24555 | DEFW 29540 | Set the operand of the 'OR' instruction at 29539 to 0 (to make the policemen roam the entire city)
24557 | DEFB 0
The next entry makes Sam's oil man disguise known to the gangsters at no. 19. It is triggered when Sam passes the point on the rope above the roof of no. 19 where someone below says 'CRUISE WAS DRESSED AS THE OIL MAN. DONT LET ANYONE PAST'.
24558 | DEFB 0 |
24559 | DEFB 10 | 10 bytes until the next entry
24560 | DEFB 1 | 1 condition follows
24561 | DEFW 32064 | The object table entry at 32064 is for where someone below says 'CRUISE WAS DRESSED AS THE OIL MAN...'
24563 | DEFB 32 | JR NZ (for the instruction at 29986)
24564 | DEFB 32 |
24565 | DEFB 1 | 1 POKE follows
24566 | DEFW 64844 | 64844 holds the disguise ID in the region definition table at 64836
24568 | DEFB 255 | Disguise ID (matches none of Sam's)
The next entry lines up phone messages 58, 59 and 60 for Sam. It is triggered as soon as Sam's score hits 50 (about 4m10s after the game has started).
24569 | DEFB 0 |
24570 | DEFB 16 | 16 bytes until the next entry
24571 | DEFB 1 | 1 condition follows
24572 | DEFW 32668 | 32668 holds the LSB of the score
24574 | DEFB 48 | JR NC (for the instruction at 29986)
24575 | DEFB 50 | Score LSB for comparison
24576 | DEFB 3 | 3 POKEs follow (to do when the score LSB is >= 50)
24577 | DEFW 27509 | Initialise phone message 58: 'DAISY SAID 'LANA RANG - HER NEW NUMBERS 7162. THE POLICE WERE HERE''
24579 | DEFB 92
24580 | DEFW 27512 | Initialise phone message 59: 'LANA ANSWERED 'OOH SAM! THEY KILLED MY FIANCE AND STOLE THE BUDGIE''
24582 | DEFB 36
24583 | DEFW 27515 | Initialise phone message 60: 'LANA ANSWERED 'OOH SAM! THAT CROOK THE FAT MAN'S JUST MOVED INTO NO 15''
24585 | DEFB 36
The next entry makes the required changes when Sam enters no. 15 using the key in game mode 1.
24586 | DEFB 0 |
24587 | DEFB 39 | 39 bytes until the next entry
24588 | DEFB 3 | 3 conditions follow
24589 | DEFW 58881 | This address holds Sam's x-coordinate
24591 | DEFB 40 | JR Z (for the instruction at 29986)
24592 | DEFB 249 |
24593 | DEFW 58882 | This address holds Sam's y-coordinate
24595 | DEFB 40 | JR Z (for the instruction at 29986)
24596 | DEFB 29 |
24597 | DEFW 32746 | 32746 holds the key inventory
24599 | DEFB 48 | JR NC (for the instruction at 29986)
24600 | DEFB 64 | Bit 6 set: Sam has the key to no. 15
24601 | DEFB 8 | 8 POKEs follow
24602 | DEFW 27473 | Initialise phone message 63: 'DAISY SAID 'SAM - A GANGSTER'S WATCHING FOR YOU OUTSIDE THE POLICE STATION''
24604 | DEFB 94
24605 | DEFW 27476 | Initialise phone message 64: 'A VOICE SAID 'OK FATS THE HOOK'S AT NO 74 AND ALS GUARDING IT''
24607 | DEFB 94
24608 | DEFW 27518 | Initialise phone message 76: 'DAISY SAID 'LANA RANG - THAT FAT MAN HAS TWO KEYS NOT JUST ONE ''
24610 | DEFB 92
24611 | DEFW 27521 | Initialise phone message 65: 'LANA ANSWERED 'OOH SAM! BUD SAID HE'D MEET ME ALONE IN THE HOTELS RIGHT HAND GREEN ROOM. I'M SCARED - WILL YOU GO INSTEAD?''
24613 | DEFB 36
24614 | DEFW 32056 | Disable the object table entry at 32056 (for where someone growls 'NO KEY EH!' in no. 15)
24616 | DEFB 33
24617 | DEFW 29964 | Change the operand of the JP instruction at 29963 to 24914 (to display the cutscene before entering game mode 2)
24619 | DEFB 82
24620 | DEFW 29965
24622 | DEFB 97
24623 | DEFW 24666 | Activate the entry at 24666 (below)
24625 | DEFB 128
The next entry changes the operand of the JP instruction at 29963 to 31236 to send the police after Sam when he finds the dead body on the top floor of the hotel.
24626 | DEFB 0 |
24627 | DEFB 17 | 17 bytes until the next entry
24628 | DEFB 2 | 2 conditions follow
24629 | DEFW 58881 | This address holds Sam's x-coordinate
24631 | DEFB 40 | JR Z (for the instruction at 29986)
24632 | DEFB 64 | x-coordinate for comparison
24633 | DEFW 58882 | This address holds Sam's y-coordinate
24635 | DEFB 40 | JR Z (for the instruction at 29986)
24636 | DEFB 7 | y-coordinate for comparison
24637 | DEFB 2 | 2 POKEs follow
24638 | DEFW 29964 | Change the operand of the JP instruction at 29963 to 31236
24640 | DEFB 4
24641 | DEFW 29965
24643 | DEFB 122
The next entry restarts Al's command list when Sam calls 6124, thus giving Sam a chance to get past him and collect the hook.
24644 | DEFB 64 | Bit 6 set: always active
24645 | DEFB 21 | 21 bytes until the next entry
24646 | DEFB 3 | 3 conditions follow
24647 | DEFW 32666 | 32666 holds the ID of the telephone Sam is calling
24649 | DEFB 40 | JR Z (for the instruction at 29986)
24650 | DEFB 102 | Telephone ID: 6124 (no. 74, second floor)
24651 | DEFW 32766 | 32766 holds X, the x-coordinate of the leftmost column of the play area on screen
24653 | DEFB 56 | JR C (for the instruction at 29986)
24654 | DEFB 56 | x-coordinate for comparison
24655 | DEFW 56598 | This is byte 22 of character 221's buffer (used by Al at no. 74 when X<56)
24657 | DEFB 40 | JR Z (for the instruction at 29986)
24658 | DEFB 12 | Command list offset for comparison (points at the fourth command in the command list at 64816)
24659 | DEFB 2 | 2 POKEs follow
24660 | DEFW 56598 | This is byte 22 of character 221's buffer (used by Al at no. 74)
24662 | DEFB 0 | Set this to 0 to restart Al's command list
24663 | DEFW 56585 | This is byte 9 of character 221's buffer (used by Al at no. 74)
24665 | DEFB 0 | Remove the primary command routine address (31338) from bytes 8 and 9 of Al's buffer (so that the first command in the command list takes over immediately)
The next entry (activated by the one above at 24586) lines up phone message 66 ('A VOICE SAID 'OK LANA THE KEY TO 74'S IN THE ROOM PAST THE CATWALK BUT THERE'S A GUARD'') and makes the key to no. 74 available when Sam enters the hotel's right-hand green room while disguised as a woman.
24666 | DEFB 129 |
24667 | DEFB 28 | 28 bytes until the next entry
24668 | DEFB 4 | 4 conditions follow
24669 | DEFW 32713 | 32713 holds the ID of Sam's current disguise
24671 | DEFB 40 | JR Z (for the instruction at 29986)
24672 | DEFB 4 | Disguise ID (woman)
24673 | DEFW 58882 | This address holds Sam's y-coordinate
24675 | DEFB 40 | JR Z (for the instruction at 29986)
24676 | DEFB 13 | y-coordinate for comparison
24677 | DEFW 58881 | This address holds Sam's x-coordinate
24679 | DEFB 48 | JR NC (for the instruction at 29986)
24680 | DEFB 94 | x-coordinate for comparison
24681 | DEFW 58881 | This address holds Sam's x-coordinate
24683 | DEFB 56 | JR C (for the instruction at 29986)
24684 | DEFB 101 | x-coordinate for comparison
24685 | DEFB 3 | 3 POKEs follow
24686 | DEFW 27479 | Line up phone message 66: 'A VOICE SAID 'OK LANA THE KEY TO 74'S IN THE ROOM PAST THE CATWALK BUT THERE'S A GUARD''
24688 | DEFB 44
24689 | DEFW 32036 | Make the key to no. 74 available
24691 | DEFB 144
24692 | DEFW 24695 | Activate the next entry at 24695 (below)
24694 | DEFB 128
The next entry (activated by the one above at 24666) lines up phone message 68 ('DAISY SAID 'ALS NUMBER'S 6124''), and displays the cutscene before entering game mode 3. It is triggered when Sam reaches the location with coordinates (10,8) (on the stairs leading up to the roof of the apartment building next to no. 74).
24695 | DEFB 129 |
24696 | DEFB 20 | 20 bytes until the next entry
24697 | DEFB 2 | 2 conditions follow
24698 | DEFW 58882 | This address holds Sam's y-coordinate
24700 | DEFB 40 | JR Z (for the instruction at 29986)
24701 | DEFB 8 | y-coordinate for comparison
24702 | DEFW 58881 | This address holds Sam's x-coordinate
24704 | DEFB 40 | JR Z (for the instruction at 29986)
24705 | DEFB 10 | x-coordinate for comparison
24706 | DEFB 3 | 3 POKEs follow
24707 | DEFW 27524 | Line up phone message 68: 'DAISY SAID 'ALS NUMBER'S 6124''
24709 | DEFB 92
24710 | DEFW 29964 | Change the operand of the JP instruction at 29963 to 24914 (to display the cutscene before entering game mode 3)
24712 | DEFB 82
24713 | DEFW 29965
24715 | DEFB 97
The next entry makes the key to no. 27 available when Sam knocks the Fat Man over.
24716 | DEFB 0 |
24717 | DEFB 10 | 10 bytes until the next entry
24718 | DEFB 1 | 1 condition follows
24719 | DEFW 57602 | This address holds character 225's y-coordinate (character 225 is the Fat Man in game mode 2)
24721 | DEFB 40 | JR Z (for the instruction at 29986)
24722 | DEFB 37 | y-coordinate for comparison (lying on the road)
24723 | DEFB 1 | 1 POKE follows
24724 | DEFW 32044 | Make the key to no. 27 available
24726 | DEFB 144
The next entry makes the required changes when Sam enters the room above his office while in possession of all four keys.
24727 | DEFB 0 |
24728 | DEFB 24 | 24 bytes until the next entry
24729 | DEFB 3 | 3 conditions follow
24730 | DEFW 58882 | This address holds Sam's y-coordinate
24732 | DEFB 40 | JR Z (for the instruction at 29986)
24733 | DEFB 13 | y-coordinate for comparison
24734 | DEFW 58881 | This address holds Sam's x-coordinate
24736 | DEFB 40 | JR Z (for the instruction at 29986)
24737 | DEFB 232 | x-coordinate for comparison
24738 | DEFW 32746 | 32746 holds the key inventory
24740 | DEFB 40 | JR Z (for the instruction at 29986)
24741 | DEFB 120 | Bits 3-6 set: Sam has all four keys
24742 | DEFB 3 | 3 POKEs follow
24743 | DEFW 32032 | Make the budgie available
24745 | DEFB 192
24746 | DEFW 32747 | Clear all flags at 32747 so that Sam won't be chased by the police
24748 | DEFB 0
24749 | DEFW 29540 | Set the operand of the 'OR' instruction at 29539 to 192 (to make the policemen stay close to Sam's office while on the beat)
24751 | DEFB 192
The next entry lines up phone message 72 ('LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE'') when Sam gets the budgie.
24752 | DEFB 0 |
24753 | DEFB 10 | 10 bytes until the next entry
24754 | DEFB 1 | 1 condition follows
24755 | DEFW 32745 | 32745 holds the object inventory
24757 | DEFB 40 | JR Z (for the instruction at 29986)
24758 | DEFB 128 | Bit 7 set: Sam has the budgie
24759 | DEFB 1 | 1 POKE follows
24760 | DEFW 27527 | Line up phone message 72: 'LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE''
24762 | DEFB 36
The next entry disables phone message 72 ('LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE'') if Sam doesn't have the budgie (either because he hasn't found it yet, or it's been taken from him).
24763 | DEFB 64 | Bit 6 set: always active
24764 | DEFB 10 | 10 bytes until the next entry
24765 | DEFB 1 | 1 condition follows
24766 | DEFW 32745 | 32745 holds the object inventory
24768 | DEFB 32 | JR NZ (for the instruction at 29986)
24769 | DEFB 128 | Bit 7 set: Sam has the budgie (and only the budgie; this is a bug)
24770 | DEFB 1 | 1 POKE follows
24771 | DEFW 27527 | Disable phone message 72: 'LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE''
24773 | DEFB 0
The next entry sends Lana on her way to Sam's office when Sam phones her while in possession of the budgie.
24774 | DEFB 0 |
24775 | DEFB 17 | 17 bytes until the next entry
24776 | DEFB 2 | 2 conditions follow
24777 | DEFW 32745 | 32745 holds the object inventory
24779 | DEFB 40 | JR Z (for the instruction at 29986)
24780 | DEFB 128 | Bit 7 set: Sam has the budgie (and only the budgie; this is a bug)
24781 | DEFW 27527 | This is the entry for phone message 72 for Sam
24783 | DEFB 40 | JR Z (for the instruction at 29986)
24784 | DEFB 0 | 0 means the phone message has been received by Sam
24785 | DEFB 2 | 2 POKES follow
24786 | DEFW 24792 | Activate the entry at 24792 (below)
24788 | DEFB 128
24789 | DEFW 57609 | Set byte 9 of character 225's buffer to 0 (character 225 is Lana in game mode 3), triggering a move to the next instruction: go to Sam's office (see 64940)
24791 | DEFB 0
The next entry (activated by the one above at 24774) immobilises Sam until the end of the game when Lana meets him in his office.
24792 | DEFB 129 |
24793 | DEFB 25 | 25 bytes until the next entry
24794 | DEFB 4 | 4 conditions follow
24795 | DEFW 57622 | This is byte 22 of character 225's buffer (character 225 is Lana in game mode 3)
24797 | DEFB 40 | JR Z (for the instruction at 29986)
24798 | DEFB 8 | This command list offset points past the end of the command list
24799 | DEFW 58882 | This address holds Sam's y-coordinate
24801 | DEFB 40 | JR Z (for the instruction at 29986)
24802 | DEFB 19 | y-coordinate for comparison
24803 | DEFW 58881 | This address holds Sam's x-coordinate
24805 | DEFB 48 | JR NC (for the instruction at 29986)
24806 | DEFB 222 | x-coordinate for comparison
24807 | DEFW 58881 | This address holds Sam's x-coordinate
24809 | DEFB 56 | JR C (for the instruction at 29986)
24810 | DEFB 231 | x-coordinate for comparison
24811 | DEFB 2 | 2 POKEs follow
24812 | DEFW 32764 | Set bit 1 of Sam's status flags at 32764
24814 | DEFB 2
24815 | DEFW 58893 | Set byte 13 of Sam's buffer to 0 (to indicate that Sam has just met Lana; see 24832)
24817 | DEFB 0
And finally the end marker.
24818 | DEFB 255 |