Prev: 8EEC Up: Map Next: 8F69
8F3B: GO THROUGH, carried by doors and the like as their own handler
Used by the routine at WINDOW_OTHERS.
The exit that goes through the object; refused if there is none, if it leads nowhere yet, or if the object will not let anyone through (CAN_PASS). Otherwise it is a move in that exit's direction, into MOVE past its darkness and captivity checks. GO_BY_EXIT is the way in for callers that have found the exit already.
GO_THROUGH 8F3B CALL EXIT_VIA The exit through it
This entry point is used by the routines at DO_ENTER and DO_FOLLOW.
GO_BY_EXIT 8F3E CP $FF None, or to nowhere yet: refused
8F40 JP Z,REFUSE
8F43 LD A,(IX+$02)
8F46 CP $00
8F48 JP Z,REFUSE
8F4B LD A,(IX+$01) Will it let the actor through?
8F4E PUSH IX
8F50 CALL CAN_PASS
8F53 POP IX
8F55 JP NZ,REFUSE
8F58 CALL FOR_REAL The test ends here
8F5B LD A,(IX+$00) A move that way, with no object
8F5E LD (ACTION),A
8F61 LD A,$FF
8F63 LD (TARGET),A
8F66 JP MOVE_ACTOR
Prev: 8EEC Up: Map Next: 8F69