Prev: A709 Up: Map Next: AE2F
A76F: The object records
Everything in the room: 54 records of 32 bytes, all zero on the tape. The first six have fixed jobs -- the player's legs and body, two bolts he fires, two things fallen from the sky -- and the other 48 are the room's: the builder (BUILD_ROOM) fills them from the top down with scenery and objects, and QUEST_INTO_ROOM puts the quest things in the lowest free ones. The main loop (START) runs every record's update routine once a turn, in order, empty ones included.
A record: +0 the graphic, which also picks the update routine (UPDATES) and the sprite (GRAPHICS); 0 is an empty record, and 1 one that is emptied when it is next drawn. +1 to +3 U, V and Z. +4 and +5 the half-sizes in U and V, +6 the whole height from the base at +3. +7 the flags: bit 1 is set, among other uses, on the record being tested for overlaps (DO_ANY_OBJS_INTERSECT); bit 4 that it is to be drawn (LIST_DRAWN), bit 5 that it moved and its old picture must be wiped (RENDER_DYNAMIC_OBJECTS), bit 6 mirrored and bit 7 upside down (FIND_SPRITE); the rest are described with the routines that use them. +8 the room -- except for scenery, where it is the scenery entry's second byte: for a doorway the room it leads to, otherwise 0. +9 to +B the step in U, V and Z this turn. +C what it bumped into. +D bit 7: kills what it moves into; bit 5: kills what touches it; bit 6: killed. +E and +F an extra step in U and V, added into the next move and cleared (CALC_PLYR_DUV); a doorway uses it to steer the player to its middle (NUDGE_ALONG_V, NUDGE_ALONG_U).
+10 and +11: for a quest thing, the address of its quest record (QUEST_INTO_ROOM); other kinds keep their own counters there. +12 and +13 the drawing nudge, signed, added to the pixel x and y (CALC_PIXEL_XY); the update routines set it, through the short routines from DRAW_AT_L8 on. +14 to +17 are each kind's own; bit 7 of +17 is set on a record that meets the player's legs, or graphic 91, in Z -- one on top of the other (MARK_STOOD_ON) -- and LIFT, BOBBER and CRUMBLING_BLOCK read it. +18 and +19 the width in bytes and the height in rows of the sprite as last drawn, +1A and +1B its pixel x and y; +1C to +1F the same four from the turn before, copied there before each update (START) so the old picture can be wiped.
OBJECTS A76F DEFB $00 The player's legs: graphic
PLAYER_U A770 DEFB $00 U
PLAYER_V A771 DEFB $00 V
A772 DEFB $00 Z
A773 DEFB $00,$00,$00 Half-sizes in U, V and Z
PLAYER_FLAGS A776 DEFB $00 Flags
PLAYER_ROOM A777 DEFB $00 The room
A778 DEFB $00,$00,$00 The step in U, V and Z
PLAYER_BUMPED A77B DEFB $00 What he bumped into
PLAYER_STATE A77C DEFB $00 Bit 6: killed
A77D DEFB $00,$00,$00,$00,$00,$00,$00,$00 The rest of the legs' record
A785 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A78D DEFB $00,$00
PLAYER_BODY A78F DEFB $00,$00,$00,$00,$00,$00,$00,$00 The player's body
A797 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A79F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7A7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
BOLTS A7AF DEFB $00,$00,$00,$00,$00,$00,$00,$00 A bolt he fires (FIRE)
A7B7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7BF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7C7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
BOLT_SECOND A7CF DEFB $00,$00,$00,$00,$00,$00,$00,$00 The other
A7D7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7DF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7E7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FLYERS A7EF DEFB $00,$00,$00,$00,$00,$00,$00,$00 A thing fallen from the sky (SKY_DROP)
A7F7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7FF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A807 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FLYER_SECOND A80F DEFB $00,$00,$00,$00,$00,$00,$00,$00 The other
A817 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A81F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A827 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ROOM_OBJECTS A82F DEFB $00,$00,$00,$00,$00,$00,$00,$00 The room's 48: scenery, objects and quest things; the builder fills them from the top down, the quest things go in from the bottom up
A837 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A83F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A847 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A84F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A857 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A85F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A867 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A86F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A877 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A87F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A887 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A88F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A897 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A89F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8A7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8AF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8B7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8BF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8C7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8CF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8D7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8DF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8E7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8EF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8F7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8FF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A907 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A90F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A917 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A91F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A927 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A92F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A937 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A93F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A947 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A94F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A957 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A95F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A967 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A96F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A977 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A97F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A987 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A98F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A997 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A99F DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9A7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9AF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9B7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9BF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9C7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9CF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9D7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9DF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9E7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9EF DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9F7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9FF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA07 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA0F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA17 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA1F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA27 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA2F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA37 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA3F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA47 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA4F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA57 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA5F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA67 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA6F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA77 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA7F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA87 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA8F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA97 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA9F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAA7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAAF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAB7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AABF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAC7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AACF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAD7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AADF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAE7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAEF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAF7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AAFF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB07 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB0F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB17 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB1F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB27 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB2F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB37 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB3F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB47 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB4F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB57 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB5F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB67 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB6F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB77 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB7F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB87 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB8F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB97 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB9F DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABA7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABAF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABB7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABBF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABC7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABCF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABD7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABDF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABE7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABEF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABF7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ABFF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC07 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC0F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC17 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC1F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC27 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC2F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC37 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC3F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC47 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC4F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC57 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC5F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC67 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC6F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC77 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC7F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC87 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC8F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC97 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC9F DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACA7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACAF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACB7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACBF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACC7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACCF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACD7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACDF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACE7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACEF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACF7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ACFF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD07 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD0F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD17 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD1F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD27 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD2F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD37 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD3F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD47 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD4F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD57 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD5F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD67 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD6F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD77 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD7F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD87 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD8F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD97 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD9F DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADA7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADAF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADB7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADBF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADC7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADCF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADD7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADDF DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADE7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ROOM_SECOND ADEF DEFB $00,$00,$00,$00,$00,$00,$00,$00 The second from the top
ADF7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADFF DEFB $00,$00,$00,$00,$00,$00,$00,$00
AE07 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ROOM_FIRST AE0F DEFB $00,$00,$00,$00,$00,$00,$00,$00 The first the builder fills (BUILD_ROOM)
AE17 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AE1F DEFB $00,$00,$00,$00,$00,$00,$00,$00
AE27 DEFB $00,$00,$00,$00,$00,$00,$00,$00
Prev: A709 Up: Map Next: AE2F