![]() |
Routines |
| Prev: E686 | Up: Map | Next: E6E6 |
|
Used by the routine at CharacterAction_Watson.
Follows the character link for this attribute, and stops when the link runs out.
|
||||
| ProcessCharacterAttribute | E691 | CALL RejectLowCharacterAttribute | Return if the character attribute is below 32. | |
| E694 | RET Z | |||
|
Get character attribute.
|
||||
| E695 | CALL GetCharacterAttribute | Call GetCharacterAttribute to read the character's attribute. | ||
| E698 | LD B,A | Use the get character attribute result as the count. | ||
| ProcessCharacterAttribute_Loop | E699 | LD IX,$9FF6 | Point at the object display link. | |
| ProcessCharacterAttribute_CountCharacterRepeat | E69D | DJNZ ProcessCharacterAttribute_Next | Count the next character and repeat from ProcessCharacterAttribute_Next. | |
| E69F | CALL FetchObjectPointerFromStack | Jump back to ProcessCharacterAttribute_Loop while the object pointer is zero. | ||
| E6A2 | JR Z,ProcessCharacterAttribute_Loop | |||
| E6A4 | JR ProcessCharacterAttribute_CountCharacterRepeat | Try the next object from ProcessCharacterAttribute_CountCharacterRepeat. | ||
|
Compare this object pointer with the list head.
|
||||
| ProcessCharacterAttribute_Next | E6A6 | PUSH IX | Point HL at the object display link and DE at 9FF0+06 and clear the carry. | |
| E6A8 | POP HL | |||
| E6A9 | LD DE,$9FF6 | |||
| E6AC | AND A | |||
| E6AD | SBC HL,DE | See whether this object pointer is 9FF0+06. | ||
| E6AF | JR Z,ProcessCharacterAttribute_TestActionSucceeded | Jump ahead to ProcessCharacterAttribute_TestActionSucceeded if the two pointers meet. | ||
| E6B1 | PUSH IX | Take the police message, then call PrintTextAndHandleControlCharacters to print the police message. | ||
| E6B3 | LD HL,$6F80 | |||
| E6B6 | CALL PrintTextAndHandleControlCharacters | |||
| ProcessCharacterAttribute_TestActionSucceeded | E6B9 | OR %00000001 | Reset the zero flag. | |
| E6BB | RET | Return. | ||
|
Individual script handlers. Each one ends by returning success or by bailing out through ParseInputNumber_ReturnZero.
|
||||
| E6BC | DEFB $0D,$0C | Display record read by ProcessDisplayRecord: flags 0D value 0C. | ||
| ProcessCharacterAttribute_TestCount | E6BE | LD A,($A035) | Go to ProcessCharacterAttribute_Succeeded if no object carries this id. | |
| E6C1 | CALL ScanObjects | |||
| E6C4 | JR Z,ProcessCharacterAttribute_Succeeded | |||
| E6C6 | LD E,(IX+$09) | Read the low byte of the text pointer and read the high byte of the text pointer. | ||
| E6C9 | LD D,(IX+$0A) | |||
| E6CC | LD HL,$6BB7 | Take the character busy message. | ||
|
Print text and handle control characters.
|
||||
| E6CF | CALL PrintTextAndHandleControlCharacters | Call PrintTextAndHandleControlCharacters to print this message. | ||
| E6D2 | LD HL,$0000 | Call ShiftTextPointer to handle the picture for this message. | ||
| E6D5 | AND A | |||
| E6D6 | SBC HL,DE | |||
| E6D8 | CALL ShiftTextPointer | |||
| E6DB | LD A,$22 | Print a quotation mark and start a new line. | ||
| E6DD | CALL Print_Character | |||
| E6E0 | CALL PrintNewline | |||
| ProcessCharacterAttribute_Succeeded | E6E3 | OR %00000001 | Reset the zero flag. | |
| E6E5 | RET | Return. | ||
| Prev: E686 | Up: Map | Next: E6E6 |