![]() |
Templates: what a room can place |
The 29 kinds of thing a room record can place -- the templates the room builder (next_fg_obj_sprite) makes object records from. A room names one by its index in block_type_tbl and gives a grid cell for each copy; every part of the template becomes one object record, with the type, the half-sizes, the height and the flags copied from it, and the last byte nudging the position by half a cell or up by a few levels. Each is drawn here by the game, on its own in an empty room.
0: block -- block: Block type 0: stone block
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $07 | 8 | 8 | 12 | $10 | $00 |
In 84 rooms: $00, $01, $03, $04, $0F, $10, $14, $1D, $1F, $20, $21, $22, $27, $28, $2D, $37, $38, $40, $41, $42, $43, $45, $46, $48, $54, $57, $64, $67, $68, $6B, $74, $75, $76, $7A, $84, $85, $87, $88, $89, $8C, $8D, $93, $97, $98, $9B, $9F, $A3, $A8, $AA, $AF, $B4, $B7, $BA, $BF, $C3, $D0, $D2, $D3, $DD, $DF, $ED, $F0, $F3, $FD.
1: fire -- fire: Block type 1: fire (type $B0)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $B0 | 6 | 6 | 12 | $10 | $00 |
In 0 rooms.
2: ball (half a cell along y) -- ball_ud_y: Block type 2: ball, half a cell along y
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $B2 | 7 | 7 | 12 | $10 | $02 |
3: rock -- rock: Block type 3: rock
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $06 | 8 | 8 | 12 | $10 | $00 |
In 11 rooms: $08, $0A, $3F, $5E, $6D, $6F, $D6, $E8, $F6, $F7.
4: gargoyle -- gargoyle: Block type 4: gargoyle
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $16 | 6 | 6 | 12 | $10 | $00 |
In 10 rooms: $01, $41, $46, $6D, $6F, $84, $89, $93, $97, $FE.
5: spikes -- spike: Block type 5: spikes
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $17 | 6 | 6 | 12 | $50 | $00 |
In 61 rooms: $03, $04, $08, $0A, $0C, $14, $18, $1D, $1F, $20, $21, $22, $24, $28, $2D, $2E, $30, $38, $3F, $42, $43, $45, $48, $54, $67, $68, $74, $75, $76, $78, $79, $7A, $85, $87, $8C, $8D, $98, $9B, $9F, $A3, $A8, $AA, $BA, $BF, $D0, $D1, $D3, $DF, $E0, $E7, $E8, $F0, $FE, $FF.
8: guard (type $96) -- guard_ew: Block type 8: guard (type $96)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $96 | 6 | 6 | 24 | $10 | $02 |
| $90 | 6 | 6 | 0 | $12 | $02 |
9: ghost -- ghost: Block type 9: ghost
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $52 | 6 | 6 | 12 | $10 | $00 |
In 11 rooms: $01, $09, $27, $37, $58, $8E, $B7, $BB, $C7, $CF, $F3.
10: fire (type $B5) -- fire_ns: Block type 10: fire (type $B5)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $B5 | 6 | 6 | 12 | $10 | $00 |
11: raised block -- block_high: Block type 11: stone block, raised
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $07 | 8 | 8 | 12 | $10 | $30 |
12: ball (half a cell along x and y) -- ball_ud_xy: Block type 12: ball, half a cell along x and y
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $B2 | 7 | 7 | 12 | $10 | $03 |
13: guard (type $1E) -- guard_square: Block type 13: guard (type $1E)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $1E | 6 | 6 | 24 | $10 | $00 |
| $90 | 6 | 6 | 0 | $12 | $00 |
14: block (type $36) -- block_ew: Block type 14: stone block (type $36)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $36 | 8 | 8 | 12 | $10 | $00 |
15: block (type $37) -- block_ns: Block type 15: stone block (type $37)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $37 | 8 | 8 | 12 | $10 | $00 |
16: block (type $3E) -- moveable_block: Block type 16: stone block (type $3E)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $3E | 8 | 8 | 12 | $14 | $00 |
17: raised spikes -- spike_high: Block type 17: spikes, raised
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $17 | 6 | 6 | 12 | $50 | $30 |
In 0 rooms.
18: spiked ball -- spike_ball_fall: Block type 18: spiked ball
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $3F | 6 | 6 | 12 | $10 | $00 |
19: raised spiked ball -- spike_ball_high_fall: Block type 19: spiked ball, raised
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $3F | 6 | 6 | 12 | $10 | $30 |
20: fire (type $56) -- fire_ew: Block type 20: fire (type $56)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $56 | 6 | 6 | 12 | $10 | $00 |
21: block (type $5B) -- dropping_block: Block type 21: stone block (type $5B)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $5B | 8 | 8 | 12 | $10 | $00 |
In 12 rooms: $00, $10, $14, $20, $22, $42, $7A, $98, $AA, $E3.
22: block (type $8F) -- collapsing_block: Block type 22: stone block (type $8F)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $8F | 8 | 8 | 12 | $10 | $00 |
In 12 rooms: $03, $04, $0F, $38, $45, $46, $74, $79, $98, $DF, $E3, $F6.
23: ball (type $B6) -- ball_bounce: Block type 23: ball (type $B6)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $B6 | 7 | 7 | 12 | $10 | $00 |
24: ball -- ball_ud: Block type 24: ball
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $B2 | 7 | 7 | 12 | $10 | $00 |
In 1 room: $21.
25: sparkle (type $A4) -- repel_spell: Block type 25: sparkle (type $A4)
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $A4 | 5 | 5 | 12 | $10 | $00 |
26: portcullis along x -- portcullis_along_x: Block type 26: portcullis along x
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $08 | 12 | 1 | 32 | $50 | $01 |
27: portcullis along y -- portcullis_along_y: Block type 27: portcullis along y
| Type | Half x | Half y | Height | Flags | Offset |
|---|---|---|---|---|---|
| $08 | 1 | 12 | 32 | $10 | $02 |