Routines |
Prev: EB54 | Up: Map | Next: EB79 |
Used by the routine at 8184.
|
||||
EB55 | LD BC,$0000 | Set B to 0 (first object) and C to 0 (no items). | ||
EB58 | CALL $AA8C | Get the buffer for this object. | ||
EB5B | LD A,(HL) | Get the first byte. | ||
EB5C | CP $FF | Is it an end marker? | ||
EB5E | JR Z,$EB72 | If so, there are no items here, so jump forward. | ||
EB60 | INC HL | Point HL at the X co-ordinate. | ||
EB61 | LD A,(IY+$05) | Get the X co-ordinate. | ||
EB64 | SUB (HL) | Convert the player co-ordinate to an object co-ordinate. | ||
EB65 | INC HL | |||
EB66 | INC HL | |||
EB67 | INC HL | |||
EB68 | SUB $06 | |||
EB6A | CP $F4 | Are the two near enough? | ||
EB6C | JR C,$EB5B | Jump back to look at other entries if not. | ||
EB6E | LD C,$01 | Otherwise set that an object is found in C, then jump back. | ||
EB70 | JR $EB5B | |||
At this point, all objects in the room have been checked, and C is set to 1 if the player is near any of them.
|
||||
EB72 | LD A,C | Were any items found? | ||
EB73 | OR A | |||
EB74 | RET NZ | Return if not. | ||
EB75 | LD ($EB54),A | Otherwise mark that the player is near an object (EB54) and return. | ||
EB78 | RET |
Prev: EB54 | Up: Map | Next: EB79 |