![]() |
Routines |
| Prev: 59014 | Up: Map | Next: 59110 |
|
Used by the routine at CharacterAction_Watson.
Follows the character link for this attribute, and stops when the link runs out.
|
||||
| ProcessCharacterAttribute | 59025 | CALL RejectLowCharacterAttribute | Return if the character attribute is below 50. | |
| 59028 | RET Z | |||
|
Get character attribute.
|
||||
| 59029 | CALL GetCharacterAttribute | Call GetCharacterAttribute to read the character's attribute. | ||
| 59032 | LD B,A | Use the get character attribute result as the count. | ||
| ProcessCharacterAttribute_Loop | 59033 | LD IX,40950 | Point at the object display link. | |
| ProcessCharacterAttribute_CountCharacterRepeat | 59037 | DJNZ ProcessCharacterAttribute_Next | Count the next character and repeat from ProcessCharacterAttribute_Next. | |
| 59039 | CALL FetchObjectPointerFromStack | Jump back to ProcessCharacterAttribute_Loop while the object pointer is zero. | ||
| 59042 | JR Z,ProcessCharacterAttribute_Loop | |||
| 59044 | JR ProcessCharacterAttribute_CountCharacterRepeat | Try the next object from ProcessCharacterAttribute_CountCharacterRepeat. | ||
|
Compare this object pointer with the list head.
|
||||
| ProcessCharacterAttribute_Next | 59046 | PUSH IX | Point HL at the object display link and DE at 40944+6 and clear the carry. | |
| 59048 | POP HL | |||
| 59049 | LD DE,40950 | |||
| 59052 | AND A | |||
| 59053 | SBC HL,DE | See whether this object pointer is 40944+6. | ||
| 59055 | JR Z,ProcessCharacterAttribute_TestActionSucceeded | Jump ahead to ProcessCharacterAttribute_TestActionSucceeded if the two pointers meet. | ||
| 59057 | PUSH IX | Take the police message, then call PrintTextAndHandleControlCharacters to print the police message. | ||
| 59059 | LD HL,28544 | |||
| 59062 | CALL PrintTextAndHandleControlCharacters | |||
| ProcessCharacterAttribute_TestActionSucceeded | 59065 | OR %00000001 | Reset the zero flag. | |
| 59067 | RET | Return. | ||
|
Individual script handlers. Each one ends by returning success or by bailing out through ParseInputNumber_ReturnZero.
|
||||
| 59068 | DEFB 13,12 | Display record read by ProcessDisplayRecord: flags 13 value 12. | ||
| ProcessCharacterAttribute_TestCount | 59070 | LD A,(41013) | Go to ProcessCharacterAttribute_Succeeded if no object carries this id. | |
| 59073 | CALL ScanObjects | |||
| 59076 | JR Z,ProcessCharacterAttribute_Succeeded | |||
| 59078 | LD E,(IX+9) | Read the low byte of the text pointer and read the high byte of the text pointer. | ||
| 59081 | LD D,(IX+10) | |||
| 59084 | LD HL,27575 | Take the character busy message. | ||
|
Print text and handle control characters.
|
||||
| 59087 | CALL PrintTextAndHandleControlCharacters | Call PrintTextAndHandleControlCharacters to print this message. | ||
| 59090 | LD HL,0 | Call ShiftTextPointer to handle the picture for this message. | ||
| 59093 | AND A | |||
| 59094 | SBC HL,DE | |||
| 59096 | CALL ShiftTextPointer | |||
| 59099 | LD A,34 | Print a quotation mark and start a new line. | ||
| 59101 | CALL Print_Character | |||
| 59104 | CALL PrintNewline | |||
| ProcessCharacterAttribute_Succeeded | 59107 | OR %00000001 | Reset the zero flag. | |
| 59109 | RET | Return. | ||
| Prev: 59014 | Up: Map | Next: 59110 |