Prev: 57597 Up: Map Next: 57681
57599: Set The Other Held Mark
Hands object 63 to the held-mark routine. A non-zero return means the script step succeeded.
Run by 51812 after the display record at 57597, from the show-message command at 57593.
SetHeldMark_OtherObject 57599 LD A,63 Jump back to SetObjectHeldMark to set object attribute bit 7.
57601 JP SetObjectHeldMark
57604 DEFB 8,96 Display record read by ProcessDisplayRecord: flags 8 value 96.
Run by 51812 after the display record at 57604.
57606 LD A,1 Take 1 as the room flag.
57608 LD (51886),A Store A as the room flag.
57611 LD A,(41014) Return if the character is set.
57614 AND A
57615 RET NZ
Print object description text.
57616 CALL PrintObjectDescriptionText Call PrintObjectDescriptionText to print the object's description.
57619 LD IX,(40979) Read the current object.
An object flag is set?
57623 BIT 5,(IX+5) Return if an object flag is set.
57627 RET NZ
57628 SET 5,(IX+5) Set an object flag.
57632 LD HL,31735
57635 LD (IX+13),L Store the low byte of a stored pointer.
57638 LD (IX+14),H Store it in the character record and take the message, then call PrintTextAndHandleControlCharacters to print the message.
57641 LD HL,31763
57644 CALL PrintTextAndHandleControlCharacters
57647 CALL PrintNewline Call PrintNewline to print a new line.
57650 OR 1
57652 RET Return.
57653 DEFB 120,80,46,223,128,64,0,0 Display record read by ProcessDisplayRecord: flags 120 value 80 handler 57134, parameters 128 64 0 0 0.
57661 DEFB 0
Run by 51812 after the display record at 57653.
57662 LD A,1 Take 1 as the room flag.
57664 LD (51886),A Store the room flag.
57667 LD A,(41014) Read the character being processed.
57670 AND A Return if this character id is not zero.
57671 RET NZ
57672 CALL LookupAndPrintDisplayText Call LookupAndPrintDisplayText to print the display text.
57675 CALL PrintNewline Call PrintNewline to print a new line.
57678 OR %00000001 Reset the zero flag.
57680 RET Return.
Prev: 57597 Up: Map Next: 57681