Prev: DE7F Up: Map Next: DED8
DE87: Picked up a special item (test tube or dynamite)
Used by the routine at D1CE.
Input
IX Pointer to current room data
DE87 LD E,(IX+$09) Put the location of dynamite in DE.
DE8A LD D,(IX+$0A)
DE8D DEC E Move back two columns.
DE8E DEC E
DE8F CALL $DB38 Is Dan at this location?
DE92 JR NC,$DEB8 No, so jump forward.
Dan has got the dynamite.
DE94 RES 5,(IX+$04) Reset flag 5 (dynamite collected)
DE98 INC E Move forward two columns.
DE99 INC E
DE9A LD BC,$0201 Remove the dynamite from screen.
DE9D CALL $E897
DEA0 LD HL,$C878 Get the count of dynamite picked up (C878)
DEA3 LD A,(HL)
DEA4 INC (HL) Increment it.
DEA5 LD E,$17 Draw on row 11
DEA7 LD D,A Draw on the column with the number of dynamite collected
DEA8 LD BC,$0101 Size is one row and one column.
DEAB LD HL,$DE7F Point HL at the dynamite static graphic. (DE7F)
DEAE CALL $E87A Draw the dynamite in the status area.
DEB1 LD A,$64 Add 64 to the score.
DEB3 LD HL,$EE8B Point HL at the "picked up dynamite" tune.
DEB6 JR $DED1 Jump forward.
Dan has got a test tube.
DEB8 LD E,(IX+$02) Put the location of the test tube in DE.
DEBB LD D,(IX+$03)
DEBE LD BC,$0102 Width is one columm and two rows.
DEC1 CALL $E897 Draw the graphic.
DEC4 RES 4,(IX+$04) Reset flag 4 (test tube collected)
DEC8 LD HL,$C86C Point HL at the number of lives.
DECB INC (HL) Increment it.
DECC LD A,$32 Add 32 to the score.
DECE LD HL,$EEBD Point HL at the "picked up a test tube" tune.
DED1 LD ($C86B),A Set the points to be awarded. (C86B)
DED4 CALL $DB0B Play the tune and return.
DED7 RET
Prev: DE7F Up: Map Next: DED8