Routines |
Prev: CE1E | Up: Map | Next: CEB8 |
Used by the routine at CAE7.
|
|||||||||||||
The characters available on a particular level are determined by Chooser_Routine_Buffer.
|
|||||||||||||
Character_Chooser | CE21 | LD HL,$CE1E | Decrease CE1E by one. | ||||||||||
CE24 | LD A,(HL) | ||||||||||||
CE25 | DEC A | ||||||||||||
CE26 | LD (HL),A | ||||||||||||
CE27 | RET NZ | Return if not zero. | |||||||||||
CE28 | LD A,($CE1B) | Copies CE1B into CE1E. | |||||||||||
CE2B | LD (HL),A | ||||||||||||
CE2C | LD A,(IX+$09) | Decrease ????? by one.
|
|||||||||||
CE2F | DEC A | ||||||||||||
CE30 | LD (IX+$09),A | ||||||||||||
CE33 | RET NZ | Return if not zero. | |||||||||||
f
|
|||||||||||||
Chooser | CE34 | CALL Random_Number | Call Random_Number. | ||||||||||
CE37 | AND $1F | Keep bits 0-4 (so 0-31). | |||||||||||
CE39 | OR $08 | Set bit 3 and write the resulting value to;
|
|||||||||||
CE3B | LD (IX+$09),A | ||||||||||||
CE3E | LD HL,($CE1F) | Jump to the memory address contained at Chooser_Routine_Buffer. | |||||||||||
CE41 | 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 | CE42 | CALL $DAEF | Call DAEF. | ||||||||||
CE45 | AND $03 | Keep only bits 0 and 1 (which determine the type of character). | |||||||||||
CE47 | JR Z,Init_Bandit_Open | Determines which character initialisation to run;
|
|||||||||||
CE49 | DEC A | ||||||||||||
CE4A | JP Z,Init_Bowie | ||||||||||||
CE4D | DEC A | ||||||||||||
CE4E | JP Z,Init_Customer_Close | ||||||||||||
CE51 | DEC A | ||||||||||||
CE52 | JP Init_Customer_Open | ||||||||||||
Handles whether or not to choose Julius. Only active on phase 3 and above.
|
|||||||||||||
Choose_Julius | CE55 | CALL Random_Number | Call Random_Number. | ||||||||||
CE58 | AND $0C | Keep only bits 2 and 3. Jump to the next character "test" if this is a non-zero number at Choose_Bandit_02. | |||||||||||
CE5A | JR NZ,Choose_Bandit_02 | ||||||||||||
CE5C | 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 | CE5F | CALL Random_Number | Call Random_Number. | ||||||||||
CE62 | AND $98 | Keep only bits 3, 4 and 7. Jump to the next character "test" if this is a non-zero number at Choose_Bandit_03. | |||||||||||
CE64 | JR NZ,Choose_Bandit_03 | ||||||||||||
CE66 | LD HL,$D119 | Set source character data to D119. | |||||||||||
CE69 | LD DE,$D124 | Set target character buffer to D124. | |||||||||||
CE6C | 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 | CE6F | CALL Random_Number | Call Random_Number. | ||||||||||
CE72 | AND $31 | 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. | |||||||||||
CE74 | JR NZ,Choose_Default_Set | ||||||||||||
CE76 | LD HL,$D0C1 | Set source character data to D0C1. | |||||||||||
CE79 | LD DE,$D0CC | Set target character buffer to D0CC. | |||||||||||
CE7C | 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 | CE7E | CALL Random_Number | Call Random_Number. | ||||||||||
CE81 | AND $83 | Keep only bits 0, 1 and 7. Jump to the next character "test" if this is a non-zero number Choose_Julius. | |||||||||||
CE83 | JR NZ,Choose_Julius | ||||||||||||
CE85 | LD HL,$D0D7 | Set source character data to D0D7. | |||||||||||
CE88 | LD DE,$D0E2 | Set target character buffer to D0E2. | |||||||||||
CE8B | 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 | CE8D | CALL Random_Number | Call Random_Number. | ||||||||||
CE90 | AND $58 | Keep only bits 3, 4 and 6. Jump to the next character "test" if this is a non-zero number Choose_Bandit_04. | |||||||||||
CE92 | JR NZ,Choose_Bandit_04 | ||||||||||||
CE94 | LD HL,$D0ED | Set source character data to D0ED. | |||||||||||
CE97 | LD DE,$D0F8 | Set target character buffer to D0F8. | |||||||||||
CE9A | 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 | CE9C | CALL Random_Number | Call Random_Number. | ||||||||||
CE9F | AND $71 | Keep only bits 0, 4, 5 and 6. Jump to the next character "test" if this is a non-zero number Choose_Bandit_05. | |||||||||||
CEA1 | JR NZ,Choose_Bandit_05 | ||||||||||||
CEA3 | LD HL,$D103 | Set source character data to D103. | |||||||||||
CEA6 | LD DE,$D10E | Set target character buffer to D10E. | |||||||||||
Stashes the chosen character source/ buffer to the door state buffer.
|
|||||||||||||
Choose_Action | CEA9 | LD (IX+$0C),L | Writes the character source memory address to one of the following (depending on which door is currently being actioned);
|
||||||||||
CEAC | LD (IX+$0D),H | ||||||||||||
CEAF | LD (IX+$0A),E | Writes the character target/ buffer memory address to one of the following (depending on which door is currently being actioned);
|
|||||||||||
CEB2 | LD (IX+$0B),D | ||||||||||||
CEB5 | JP $D019 | Jump to D019. |
Prev: CE1E | Up: Map | Next: CEB8 |