![]() |
Routines |
| Prev: 27797 | Up: Map |
|
|||||||||||||
| 27842 | PUSH BC | Save BC. | |||||||||||
| 27843 | PUSH DE | Save DE. | |||||||||||
| 27844 | PUSH HL | Save the sprite location. | |||||||||||
| 27845 | LD BC,16384 | Convert the sprite location into a display file address. | |||||||||||
| 27848 | ADD HL,BC | ||||||||||||
| 27849 | CALL 27927 | Set HL the display file address of the tile in front of the sprite. | |||||||||||
| 27852 | CALL 27663 | Set HL' to the corresponding attribute file address. | |||||||||||
| 27855 | EXX | Exchange registers. | |||||||||||
| 27856 | LD E,0 | E' will hold the indicator of any interesting tiles at this location; initialise it now. | |||||||||||
| 27858 | CALL 27898 | Check the top-left tile. | |||||||||||
| 27861 | INC HL | Point HL' at the top-right tile. | |||||||||||
| 27862 | CALL 27898 | Check the top-right tile. | |||||||||||
| 27865 | LD BC,31 | Point HL' at the bottom-left tile. | |||||||||||
| 27868 | ADD HL,BC | ||||||||||||
| 27869 | CALL 27898 | Check the bottom-left tile. | |||||||||||
| 27872 | INC HL | Point HL' at the bottom-right tile. | |||||||||||
| 27873 | CALL 27898 | Check the bottom-right tile. | |||||||||||
| 27876 | LD A,E | Copy the tile indicator to A. | |||||||||||
| 27877 | EXX | Exchange registers. | |||||||||||
| 27878 | POP HL | Restore the sprite location to HL. | |||||||||||
| 27879 | POP DE | Restore DE. | |||||||||||
| 27880 | POP BC | Restore BC. | |||||||||||
| 27881 | CP 255 | Is the sprite facing a wall tile? | |||||||||||
| 27883 | JR NZ,27888 | Jump if not. | |||||||||||
| 27885 | LD A,3 | Signal: sprite is facing a wall tile. | |||||||||||
| 27887 | RET | ||||||||||||
| 27888 | AND 10 | Return with A=1 if the sprite is facing a tunnel entrance. | |||||||||||
| 27890 | RRC A | ||||||||||||
| 27892 | CP 1 | ||||||||||||
| 27894 | RET Z | ||||||||||||
| 27895 | RRC A | Now A=2 if the sprite is facing the maze exit/entrance, or 0 otherwise. | |||||||||||
| 27897 | RET | ||||||||||||
| Prev: 27797 | Up: Map |