![]() |
Routines |
| Prev: 51813 | Up: Map | Next: 51892 |
|
Used by the routine at 51420.
|
||||
|
Door opening/closing has been triggered. Jump from 51439 if bit 5 (32) of item properties byte (60238) is set, after Maroc has bumped into a door handle. Check made using collision check routine at 57293.
Can be triggered by:
|
||||
| 51854 | LD HL,(60241) | Door graphic address pointer in table at 38851 | ||
| 51857 | LD E,(HL) | |||
| 51858 | INC HL | |||
| 51859 | LD D,(HL) | Address pointer to actual door graphics, e.g. 40248 | ||
| 51860 | EX DE,HL | Swap into HL register pair | ||
| 51861 | INC HL | |||
| 51862 | LD B,(HL) | Get X co-ordinate pixel offset for graphic tile | ||
| 51863 | LD A,(60115) | Get graphic's X co-ordinate pixel position on screen | ||
| 51866 | ADD A,B | Add the pixel offset for the graphic tile | ||
| 51867 | LD D,A | Store in D register | ||
| 51868 | LD A,(60114) | Get vertical (Y) pixel co-ordinate | ||
| 51871 | SUB 16 | The vertical co-ordinate starts at the bottom of the door, move up a bit to get to the door handle area | ||
| 51873 | LD E,A | Store in E register | ||
| 51874 | LD C,1 | Collision/event type to check (1 = Door being opened/closed) | ||
| 51876 | CALL 57293 | Run a collision check (item/Maroc vs door handle) | ||
| 51879 | CP 0 | Was there a collision? | ||
| 51881 | JR NZ,51958 | If not, jump out of this routine | ||
|
A door handle has been touched so initialize door opening/closing
|
||||
| 51883 | LD A,(60238) | Door properties byte | ||
| 51886 | AND 15 | Keep bits 0-3 | ||
| 51888 | OR 64 | Set bit 6 (indicates door is now opening or closing) | ||
| 51890 | JR 51955 | |||
| Prev: 51813 | Up: Map | Next: 51892 |