Prev: D57D Up: Map Next: D5C9
D590: Print Object Description
Used by the routine at PrintFormattedObjectList.
Looks the object up and prints either its special text or the ordinary description.
Input
A Object ID
C Description type (00 or 01)
PrintObjectDescription D590 PUSH IX Call FetchObjectDataPointer to look up that object.
D592 PUSH BC
D593 PUSH AF
D594 CALL FetchObjectDataPointer
D597 BIT 6,(IX+$05) Jump to PrintObjectDescription_Standard if the special-description flag is clear.
D59B JR Z,PrintObjectDescription_Standard
Print the special description text for this object.
PrintObjectDescription_Special D59D POP AF Restore the saved flags from the stack, then save two copies of them back.
D59E PUSH AF
D59F PUSH AF
D5A0 LD HL,$68B1 Print the text at 68B1 from PrintObjectDescription_PrintText.
D5A3 JR PrintObjectDescription_PrintText
Determine which standard description text to use based on the description type.
Determine which standard description text to use based on the description type.
PrintObjectDescription_Standard D5A5 LD HL,$0485 Take 0485 and jump ahead to PrintObjectDescription_PrintAttributes if the count has run out.
D5A8 DEC C
D5A9 JR Z,PrintObjectDescription_PrintAttributes
D5AB LD HL,$007A Take the object token at 007A.
PrintObjectDescription_PrintAttributes D5AE PUSH HL Call PrintObjectAttributeDescription to describe the object's attribute, saving pointer.
D5AF CALL PrintObjectAttributeDescription
D5B2 LD A,$01 Enable *ObjectDisplayFlag (write 01 to it).
D5B4 LD ($A2AA),A
D5B7 CALL TakeTheFoundObject Call TakeTheFoundObject to read this object's description flag.
D5BA XOR A Disable *ObjectDisplayFlag (write 00 to it).
D5BB LD ($A2AA),A
D5BE LD HL,$68D9 Take the cannot see message.
PrintObjectDescription_PrintText D5C1 CALL PrintTextAndHandleControlCharacters Call PrintTextAndHandleControlCharacters to print the message.
D5C4 POP AF Restore the saved result, the saved count and the saved character record from the stack.
D5C5 POP BC
D5C6 POP IX
D5C8 RET Return.
Prev: D57D Up: Map Next: D5C9