|  | Routines | 
| Prev: 52766 | Up: Map | Next: 52920 | 
| 
Used by the routine at 51943.
 | |||||||||||||
| 
The characters available on a particular level are determined by Chooser_Routine_Buffer.  
 | |||||||||||||
| Character_Chooser | 52769 | LD HL,52766 | Decrease 52766 by one. | ||||||||||
| 52772 | LD A,(HL) | ||||||||||||
| 52773 | DEC A | ||||||||||||
| 52774 | LD (HL),A | ||||||||||||
| 52775 | RET NZ | Return if not zero. | |||||||||||
| 52776 | LD A,(52763) | Copies 52763 into 52766. | |||||||||||
| 52779 | LD (HL),A | ||||||||||||
| 52780 | LD A,(IX+9) | Decrease ????? by one. 
 | |||||||||||
| 52783 | DEC A | ||||||||||||
| 52784 | LD (IX+9),A | ||||||||||||
| 52787 | RET NZ | Return if not zero. | |||||||||||
| 
f
 | |||||||||||||
| Chooser | 52788 | CALL Random_Number | Call Random_Number. | ||||||||||
| 52791 | AND 31 | Keep bits 0-4 (so 0-31). | |||||||||||
| 52793 | OR 8 | Set bit 3 and write the resulting value to; 
 | |||||||||||
| 52795 | LD (IX+9),A | ||||||||||||
| 52798 | LD HL,(52767) | Jump to the memory address contained at Chooser_Routine_Buffer. | |||||||||||
| 52801 | JP (HL) | ||||||||||||
| 
Handles choosing one of the initial "default" characters. A character is always chosen here, so this is the end of the choosing routine.
 | |||||||||||||
| Choose_Default_Set | 52802 | CALL 56047 | Call 56047. | ||||||||||
| 52805 | AND 3 | Keep only bits 0 and 1 (which determine the type of character). | |||||||||||
| 52807 | JR Z,Init_Bandit_Open | Determines which character initialisation to run; 
 | |||||||||||
| 52809 | DEC A | ||||||||||||
| 52810 | JP Z,Init_Bowie | ||||||||||||
| 52813 | DEC A | ||||||||||||
| 52814 | JP Z,Init_Customer_Close | ||||||||||||
| 52817 | DEC A | ||||||||||||
| 52818 | JP Init_Customer_Open | ||||||||||||
| 
Handles whether or not to choose Julius. Only active on phase 3 and above.
 | |||||||||||||
| Choose_Julius | 52821 | CALL Random_Number | Call Random_Number. | ||||||||||
| 52824 | AND 12 | Keep only bits 2 and 3. Jump to the next character "test" if this is a non-zero number at Choose_Bandit_02. | |||||||||||
| 52826 | JR NZ,Choose_Bandit_02 | ||||||||||||
| 52828 | JP Init_Julius_Open | Jump to Init_Julius_Open. | |||||||||||
| 
Handles whether or not to choose Bandit 2. Only active on phase 3 and above.
 | |||||||||||||
| Choose_Bandit_02 | 52831 | CALL Random_Number | Call Random_Number. | ||||||||||
| 52834 | AND 152 | Keep only bits 3, 4 and 7. Jump to the next character "test" if this is a non-zero number at Choose_Bandit_03. | |||||||||||
| 52836 | JR NZ,Choose_Bandit_03 | ||||||||||||
| 52838 | LD HL,53529 | Set source character data to 53529. | |||||||||||
| 52841 | LD DE,53540 | Set target character buffer to 53540. | |||||||||||
| 52844 | JP Choose_Action | Jump to Choose_Action. | |||||||||||
| 
Handles whether or not to choose Bandit 3. Only active on phase 2 and above.
 | |||||||||||||
| Choose_Bandit_03 | 52847 | CALL Random_Number | Call Random_Number. | ||||||||||
| 52850 | AND 49 | Keep only bits 0, 4 and 5. Jump to the next character "test" if this is a non-zero number then jump back to the Choose_Default_Set. | |||||||||||
| 52852 | JR NZ,Choose_Default_Set | ||||||||||||
| 52854 | LD HL,53441 | Set source character data to 53441. | |||||||||||
| 52857 | LD DE,53452 | Set target character buffer to 53452. | |||||||||||
| 52860 | JR Choose_Action | Jump to Choose_Action. | |||||||||||
| 
Handles whether or not to choose Bandit 4. Only active on phase 4 and above.
 | |||||||||||||
| Choose_Bandit_04 | 52862 | CALL Random_Number | Call Random_Number. | ||||||||||
| 52865 | AND 131 | Keep only bits 0, 1 and 7. Jump to the next character "test" if this is a non-zero number Choose_Julius. | |||||||||||
| 52867 | JR NZ,Choose_Julius | ||||||||||||
| 52869 | LD HL,53463 | Set source character data to 53463. | |||||||||||
| 52872 | LD DE,53474 | Set target character buffer to 53474. | |||||||||||
| 52875 | JR Choose_Action | Jump to Choose_Action. | |||||||||||
| 
Handles whether or not to choose Bandit 5. Only active on phase 5 and above.
 | |||||||||||||
| Choose_Bandit_05 | 52877 | CALL Random_Number | Call Random_Number. | ||||||||||
| 52880 | AND 88 | Keep only bits 3, 4 and 6. Jump to the next character "test" if this is a non-zero number Choose_Bandit_04. | |||||||||||
| 52882 | JR NZ,Choose_Bandit_04 | ||||||||||||
| 52884 | LD HL,53485 | Set source character data to 53485. | |||||||||||
| 52887 | LD DE,53496 | Set target character buffer to 53496. | |||||||||||
| 52890 | JR Choose_Action | Jump to Choose_Action. | |||||||||||
| 
Handles whether or not to choose Bandit 6. Only active on phase 6 and above.
 | |||||||||||||
| Choose_Bandit_06 | 52892 | CALL Random_Number | Call Random_Number. | ||||||||||
| 52895 | AND 113 | Keep only bits 0, 4, 5 and 6. Jump to the next character "test" if this is a non-zero number Choose_Bandit_05. | |||||||||||
| 52897 | JR NZ,Choose_Bandit_05 | ||||||||||||
| 52899 | LD HL,53507 | Set source character data to 53507. | |||||||||||
| 52902 | LD DE,53518 | Set target character buffer to 53518. | |||||||||||
| 
Stashes the chosen character source/ buffer to the door state buffer.
 | |||||||||||||
| Choose_Action | 52905 | LD (IX+12),L | Writes the character source memory address to one of the following (depending on which door is currently being actioned); 
 | ||||||||||
| 52908 | LD (IX+13),H | ||||||||||||
| 52911 | LD (IX+10),E | Writes the character target/ buffer memory address to one of the following (depending on which door is currently being actioned); 
 | |||||||||||
| 52914 | LD (IX+11),D | ||||||||||||
| 52917 | JP 53273 | Jump to 53273. | |||||||||||
| Prev: 52766 | Up: Map | Next: 52920 |