Prev: AD32 Up: Map Next: AE6B
AE36: Action: Examine Item
Used by the routine at Parser_ProcessItem.
Input
C Item ID
Output
F Carry flag set when the item isn't present
Action_ExamineItem AE36 INC BC Increment BC by one.
AE37 LD A,($A7E8) E=*Count_Objects-C.
AE3A SUB C
AE3B LD E,A
AE3C PUSH DE Stash DE on the stack.
AE3D LD IX,($A7D4) IX=*Pointer_ItemGroupingTable.
AE41 CALL GetTableEntry Call GetTableEntry.
AE44 POP DE Restore DE from the stack.
AE45 JR ExamineItem Jump to ExamineItem.
ExamineItem_Loop AE47 INC HL Increment HL by one.
ExamineItem AE48 LD A,(HL) Jump to Response_ItemNotHere if *HL is equal to FF.
AE49 CP $FF
AE4B JR Z,Response_ItemNotHere
AE4D CALL ValidateItemPresent Call ValidateItemPresent.
AE50 JR NZ,ExamineItem_Loop Jump to ExamineItem_Loop if the item wasn't found.
AE52 RET Return.
The item being examined isn't in the room or in the players inventory.
Print "I can't see ".
Response_ItemNotHere AE53 LD HL,$A8DB HL=Messaging_ICantSee.
AE56 CALL PrintString Call PrintString.
Print the object name.
AE59 LD IX,($A7D6) IX=*Pointer_ObjectNounPhrases.
AE5D CALL GetTableEntry Call GetTableEntry.
AE60 CALL PrintString Call PrintString.
Print " here.".
AE63 LD HL,$A8E8 HL=Messaging_Here.
AE66 CALL PrintStringAndNewline Call PrintStringAndNewline.
AE69 SCF Set the carry flag.
AE6A RET Return.
Prev: AD32 Up: Map Next: AE6B