Prev: E0FD Up: Map Next: E151
E0FF: Set The Other Held Mark
Hands object 3F to the held-mark routine. A non-zero return means the script step succeeded.
Run by CA64 after the display record at E0FD, from the show-message command at E0F9.
SetHeldMark_OtherObject E0FF LD A,$3F Jump back to SetObjectHeldMark to set object attribute bit 7.
E101 JP SetObjectHeldMark
E104 DEFB $08,$60 Display record read by ProcessDisplayRecord: flags 08 value 60.
Run by CA64 after the display record at E104.
E106 LD A,$01 Take 01 as the room flag.
E108 LD ($CAAE),A Store A as the room flag.
E10B LD A,($A036) Return if the character is set.
E10E AND A
E10F RET NZ
Print object description text.
E110 CALL PrintObjectDescriptionText Call PrintObjectDescriptionText to print the object's description.
E113 LD IX,($A013) Read the current object.
An object flag is set?
E117 BIT 5,(IX+$05) Return if an object flag is set.
E11B RET NZ
E11C SET 5,(IX+$05) Set an object flag.
E120 LD HL,$7BF7
E123 LD (IX+$0D),L Store the low byte of a stored pointer.
E126 LD (IX+$0E),H Store it in the character record and take the message, then call PrintTextAndHandleControlCharacters to print the message.
E129 LD HL,$7C13
E12C CALL PrintTextAndHandleControlCharacters
E12F CALL PrintNewline Call PrintNewline to print a new line.
E132 OR $01
E134 RET Return.
E135 DEFB $78,$50,$2E,$DF,$80,$40,$00,$00 Display record read by ProcessDisplayRecord: flags 78 value 50 handler DF2E, parameters 80 40 00 00 00.
E13D DEFB $00
Run by CA64 after the display record at E135.
E13E LD A,$01 Take 01 as the room flag.
E140 LD ($CAAE),A Store the room flag.
E143 LD A,($A036) Read the character being processed.
E146 AND A Return if this character id is not zero.
E147 RET NZ
E148 CALL LookupAndPrintDisplayText Call LookupAndPrintDisplayText to print the display text.
E14B CALL PrintNewline Call PrintNewline to print a new line.
E14E OR %00000001 Reset the zero flag.
E150 RET Return.
Prev: E0FD Up: Map Next: E151