Prev: 58094 Up: Map Next: 58255
58191: Read The Character's Text Pointers
Used by the routine at RecordResultRoomDisplay.
Looks up the character being processed and compares its text pointer with the display pointer.
ReadCharacterTextPointers 58191 LD A,(41014) Go to ReadCharacterTextPointers_HandBack if no object carries this id.
58194 CALL ScanObjects
58197 JR Z,ReadCharacterTextPointers_HandBack
58199 CALL ReadTextPointerLowByte Call ReadTextPointerLowByte to read the text pointer, then ReadSourceDisplayPointer to read the display pointer.
58202 CALL ReadSourceDisplayPointer
58205 AND A Jump ahead to ReadCharacterTextPointers_HandBack if HL is below DE.
58206 SBC HL,DE
58208 JR C,ReadCharacterTextPointers_HandBack
58210 OR %00000001 Reset the zero flag.
58212 RET Return.
Hands the following step back to the caller and reports that the test failed.
ReadCharacterTextPointers_HandBack 58213 LD HL,58218 Hand back the address of the following step.
58216 XOR A Clear A.
58217 RET Return.
58218 LD HL,26687 Jump back to PrintTextAndHandleControlCharacters to print this message.
58221 JP PrintTextAndHandleControlCharacters
58224 DEFB 102,29,69,227 Display record read by ProcessDisplayRecord: flags 102 value 29 handler 58181.
Run by 51812 after the display record at 58224.
58228 CALL ReadCharacterTextPointers Call ReadCharacterTextPointers to read the character being processed.
58231 CALL StoreShiftedTextPointer Call StoreShiftedTextPointer to bring the next bit through.
58234 LD A,(41013) Go to ReadCharacterTextPointers_Succeed if no object carries this id.
58237 CALL ScanObjects
58240 JR Z,ReadCharacterTextPointers_Succeed
58242 CALL ReadTextPointerLowByte Call ReadTextPointerLowByte to read the text pointer, then ReadSourceDisplayPointer to read the display pointer.
58245 CALL ReadSourceDisplayPointer
58248 ADD HL,DE Move the pointer on by the length, then call StoreShiftedTextPointer to store the shifted text pointer.
58249 CALL StoreShiftedTextPointer
ReadCharacterTextPointers_Succeed 58252 OR %00000001 Reset the zero flag.
58254 RET Return.
Prev: 58094 Up: Map Next: 58255