Prev: 26726 Up: Map Next: 26845
26798: Detect object for 'AUTO' actions
Used by the routines at ACTION_AUTOW and ACTION_AUTOR.
FIND_OBJECT 26798 LD A,(23330) A=current noun
26801 CP 200 Is it less than 200?
26803 JR C,FIND_OBJECT_2 Jump to "I can't"
This entry point is used by the routines at ACTION_AUTOG and ACTION_AUTOD.
FIND_OBJECT_0 26805 LD A,(23330) A=current noun
26808 CP 255 Is it 255?
26810 JR Z,FIND_OBJECT_2 Jump to "I can't"
26812 LD DE,(27538) D=total number of objects
26816 LD E,0 E=current object number
26818 LD HL,(27561) HL = Address of Object Words table
FIND_OBJECT_1 26821 CP (HL) Does current noun match object word entry?
26822 JR Z,FIND_OBJECT_3 If so, we have a match
26824 INC E E=next object number
26825 INC HL Move to next entry in object words table
26826 DEC D Have we considered every object?
26827 JR NZ,FIND_OBJECT_1 If not, loop around to the next
FIND_OBJECT_2 26829 LD HL,8 "I can't"
26832 XOR A A=0
26833 RET Return as object could not be found
FIND_OBJECT_3 26834 LD D,0
26836 LD A,E A=number of matching object
26837 LD HL,23333 HL=Object location table
26840 ADD HL,DE
26841 EX DE,HL DE now points to object's location. H=0. L=number of matching object
26842 INC H H=1
26843 DEC BC
26844 RET
Prev: 26726 Up: Map Next: 26845