Prev: B894 Up: Map Next: B8C8
B8A9: Start the cauldron bubbles
Used by the routine at end_of_frame.
Called once a frame from end_of_frame. In the wizard's room, room $88, it puts the bubbles into object record 3 if that record is empty and the game is not already won ($5BC3). Records 2 and 3 are where the special objects found in a room go; in this room the code that drops an object only considers record 2, which leaves 3 for the bubbles.
init_cauldron_bubbles B8A9 LD A,($5C10) not the wizard's room
B8AC CP $88
B8AE RET NZ
B8AF LD DE,$5C68 record 3 already in use
B8B2 LD A,(DE)
B8B3 AND A
B8B4 RET NZ
B8B5 LD A,($5BC3) the game has been won
B8B8 AND A
B8B9 RET NZ
B8BA LD HL,cauldron_bubbles copy the bubbles' first 18 bytes in; IX = record 3
B8BD LD BC,$0012
B8C0 PUSH DE
B8C1 POP IX
B8C3 LDIR
B8C5 JP adj_m4_m12 set their pixel offsets, and return
Prev: B894 Up: Map Next: B8C8