Prev: C1A1 Up: Map Next: C1EE
C1AB: Special object $67: the extra life
Tests whether the player touches it, with the player's box widened by 1 in x and y. If so the object changes to type $6F (upd_111, vanish), its entry in the special-object table is cleared so it never comes back, and the lives count at $5BBA goes up by one, is reprinted and copied to the screen.
upd_103 C1AB CALL upd_128_to_130
C1AE PUSH IX test against the player at $5C08, widened by 1 in x and y
C1B0 POP IY
C1B2 LD IX,$5C08
C1B6 INC (IX+$04)
C1B9 INC (IX+$05)
C1BC CALL is_on_or_near_obj
C1BF DEC (IX+$04)
C1C2 DEC (IX+$05)
C1C5 PUSH IY
C1C7 POP IX
C1C9 JR NC,extra_life_fall
C1CB SET 3,(IX+$00) set bit 3: type $6F
C1CF CALL adj_m4_m12
C1D2 LD L,(IX+$10) gone from the table for good
C1D5 LD H,(IX+$11)
C1D8 LD (HL),$00
C1DA LD HL,$5BBA one more life
C1DD INC (HL)
C1DE XOR A clear $5BC0
C1DF LD ($5BC0),A
C1E2 CALL toggle_audio_hw_x16 click, print and show the new count
C1E5 CALL print_lives
C1E8 LD BC,$2020
C1EB CALL blit_2x8
Prev: C1A1 Up: Map Next: C1EE