![]() |
Routines |
| Prev: 57997 | Up: Map | Next: 58191 |
|
Used by the routine at TestCharacterAgainstRoom.
Records the room display, the graphics parameter and the current character, then stores the script position.
|
||||
| RecordResultRoomDisplay | 58094 | PUSH DE | Record the room display parameter. | |
| 58095 | LD D,A | |||
| 58096 | LD A,B | |||
| 58097 | LD (41012),A | |||
| 58100 | LD A,C | |||
| 58101 | LD (41013),A | Record the room graphics parameter. | ||
| 58104 | LD A,(41014) | Record the current character. | ||
| 58107 | PUSH AF | |||
| 58108 | LD A,D | |||
| 58109 | LD (41014),A | |||
|
Find character.
|
||||
| 58112 | CALL FindCharacter | Call FindCharacter to find the character. | ||
| 58115 | LD L,(IY+1) | Read the word at IY+1-2 into HL and take 2. | ||
| 58118 | LD H,(IY+2) | |||
| 58121 | LD B,2 | |||
| 58123 | CALL AllocateMemoryAndStoreCharacter | Call AllocateMemoryAndStoreCharacter to allocate memory and store character. | ||
| 58126 | POP AF | |||
| 58127 | LD (41014),A | Record the current character and store the low byte of DE at IY+1. | ||
| 58130 | POP DE | |||
| 58131 | LD (IY+1),E | |||
| 58134 | LD (IY+2),D | Store the high byte of DE at IY+2. | ||
| 58137 | OR %00000001 | Reset the zero flag. | ||
| 58139 | RET | Return. | ||
|
Reached through the display record at 58152, dispatched by DispatchLookedUpHandlerThird.
|
||||
| 58140 | LD IX,(40979) | Read the current object. | ||
| 58144 | BIT 5,(IX+6) | Go to ParseInputNumber_ReturnZero if bit 5 of the current object's byte at offset 6 is clear. | ||
| 58148 | JP Z,ParseInputNumber_ReturnZero | |||
| 58151 | RET | Return. | ||
| 58152 | DEFB 106,16,28,227 | Display record read by ProcessDisplayRecord: flags 106 value 16 handler 58140. | ||
| 58156 | LD HL,26678 | Take the message at 26672+6. | ||
| 58159 | CALL PrintTextAndHandleControlCharacters | Call PrintTextAndHandleControlCharacters to print the message. | ||
| 58162 | LD IX,(40979) | Read the current object. | ||
| 58166 | LD L,(IX+9) | |||
| 58169 | LD H,(IX+10) | Read the high byte of the text pointer. | ||
| 58172 | CALL ShiftTextPointer | Call ShiftTextPointer to print the value in HL, then call PrintNewline to print a new line. | ||
| 58175 | CALL PrintNewline | |||
| 58178 | OR %00000001 | Reset the zero flag. | ||
| 58180 | RET | Return. | ||
|
Reached through the display record at 58224, dispatched by DispatchLookedUpHandlerThird.
|
||||
| 58181 | CALL ReadCharacterTextPointers | Return if this character has no room graphic. | ||
| 58184 | RET Z | |||
| 58185 | LD A,37 | Write 37 to the saved character. | ||
| 58187 | LD (41011),A | |||
| 58190 | RET | Return. | ||
| Prev: 57997 | Up: Map | Next: 58191 |