Prev: 25677 Up: Map Next: 25709
25693: Door: 7 / 0
The doorway between the top wall of room 7 and the bottom wall of room 0. Doors are made of two 8-byte room items, one in each of the rooms that they join, which are the two halves of the door (see GetOtherDoorHalf). Each half is in the list of items for its room (see RoomTable). The other doors, and the other pairs of items that follow, are laid out in the same way.
Offset Description
0 Graphic ID (also the index of the handler in HandlerTable2)
1 Room ID
2 Exit offsets
3 X position
4 Y position
5 Attribute (bits 5-7 are the orientation, see DrawGraphic)
6 Obstacle X
7 Obstacle Y
The exit offsets are used by EnterDoor to put the player to the right of, and above, the position of the half that they come out of: the number of pixels to the right is twice the bottom four bits, and the number of pixels above is twice the top four bits. CheckObstacles uses the two obstacle bytes to make a rectangle, as long as bit 3 of the attribute is reset. An entity in the rectangle is blocked if bit 2 of the attribute is set, and is not blocked if it is reset. The left edge is in the top four bits of the X byte, and the top edge is in the top four bits of the Y byte (both signed). The width and height are in the bottom four bits of each. They are all in units of four pixels.
Door_07_00 25693 DEFB 2 Graphic ID: "Door Frame".
25694 DEFB 7 Room: 7.
25695 DEFB 52 Exit offsets: 52.
25696 DEFB 80 X position: 80.
25697 DEFB 31 Y position: 31.
25698 DEFB 0 Attribute: 0.
25699 DEFB 4 Obstacle X: 4.
25700 DEFB 86 Obstacle Y: 86.
25701 DEFB 2 Graphic ID: "Door Frame".
25702 DEFB 0 Room: 0.
25703 DEFB 52 Exit offsets: 52.
25704 DEFB 80 X position: 80.
25705 DEFB 183 Y position: 183.
25706 DEFB 128 Attribute: 128.
25707 DEFB 4 Obstacle X: 4.
25708 DEFB 6 Obstacle Y: 6.
Prev: 25677 Up: Map Next: 25709