Prev: BAD8 Up: Map Next: BC90
BC18: The room's floor, ceiling and walls: six object records
Records 1 to 6 of the object records (the knight's is the seventh, KNIGHT), twenty bytes each, laid out like his. They have no sprite (+4 and +5 are zero, so nothing draws them) and huge sizes, and they box the room in for the collision code, which tests every record in use from the first (FIND_OBSTACLE): record 1 is the floor, ten high with its top at +7; record 2 the ceiling; records 3 and 4 the walls across +6, one at each end; records 5 and 6 the walls across +8. Each reaches right across the room the other two ways ($FF). An object occupies +6 to +6 plus +9, +7 less +10 to +7, and +8 to +8 plus +11 (FAR_CORNER).
A room sets them with the patch code in its object list (or a part's), $E6 up: PATCH_RECORDS in DO_ROOM_COMMAND writes the patch's six bytes into the floor's and the ceiling's +7, records 3 and 4's +6 and records 5 and 6's +8. In most rooms the floor's top is 50, the height the knight's feet are at when he stands on it. Every room the knight plays in has a patch in its list or in one of its parts; only rooms 1, 79 and 81 (GAME OVER, the title and the end of the quest) have none (read from the rooms' commands, parts followed). On the tape they hold the values below; entering rooms 3, 45, 80 and 5 in the simulator showed the walls moving to that room's patch (measured).
FIXED_RECORDS BC18 DEFB $00,$00,$00,$00,$00,$00 Record 1, the floor: no sprite; at 50, 50, 50; 255 by 10 by 255
BC1E DEFB $32,$32,$32
BC21 DEFB $FF,$0A,$FF
BC24 DEFB $00,$00,$00,$00,$00,$00,$00,$00
BC2C DEFB $00,$00,$00,$00,$00,$00 Record 2, the ceiling: at 50, 120, 50 on the tape; 255 by 10 by 255
BC32 DEFB $32,$78,$32
BC35 DEFB $FF,$0A,$FF
BC38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
BC40 DEFB $00,$00,$00,$00,$00,$00 Record 3, a wall across +6: at 178, 255, 50; 10 by 255 by 255
BC46 DEFB $B2,$FF,$32
BC49 DEFB $0A,$FF,$FF
BC4C DEFB $00,$00,$00,$00,$00,$00,$00,$00
BC54 DEFB $00,$00,$00,$00,$00,$00 Record 4, the other wall across +6: at 40, 255, 50; 10 by 255 by 255
BC5A DEFB $28,$FF,$32
BC5D DEFB $0A,$FF,$FF
BC60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
BC68 DEFB $00,$00,$00,$00,$00,$00 Record 5, a wall across +8: at 50, 255, 175 on the tape; 255 by 255 by 10
BC6E DEFB $32,$FF,$AF
BC71 DEFB $FF,$FF,$0A
BC74 DEFB $00,$00,$00,$00,$00,$00,$00,$00
BC7C DEFB $00,$00,$00,$00,$00,$00 Record 6, the other wall across +8: the same on the tape
BC82 DEFB $32,$FF,$AF
BC85 DEFB $FF,$FF,$0A
BC88 DEFB $00,$00,$00,$00,$00,$00,$00,$00
Prev: BAD8 Up: Map Next: BC90