Prev: 6f70 Up: Map Next: 6fb2
6f86: Draw laser beam.
Used by the routine at 6fb6.
Input
C The X Position to start drawing the laser.
DE Jetman object (pointing to X position)
HL Laser beam object to be drawn (pointing to Y position)
6f86 inc de Jetman Y position
6f87 ld a,(de) Update the laser beam Y position to align with the middle of the Jetman sprite
6f88 sub $0d
6f8a ld (hl),a
6f8b inc hl Laser X position: pulse #1
6f8c ld b,$03 Loop counter
6f8e ld (hl),c Update pulse #1
6f8f ld a,c
6f90 and $fb
6f92 inc hl Update the rest of the pulses: #2, #3 and #4
6f93 ld (hl),a
6f94 djnz $6f92
6f96 inc hl Update the laser beam "length" value, using the random_number as a base value
6f97 ld a,($5dce)
6f9a and $38
6f9c or $84
6f9e ld (hl),a
6f9f inc hl DE points to laser beam "colour attribute"
6fa0 ex de,hl
6fa1 ld hl,$6fb2 HL=Laser beam colour table
6fa4 ld a,($5dce) Use random_number to point HL to one of the values in the colour table
6fa7 and $03
6fa9 ld c,a
6faa ld b,$00
6fac add hl,bc
6fad ld a,(hl)
6fae ld (de),a Assign laser beam "colour attribute" a new colour
6faf jp $67e7 Laser fire SFX
Prev: 6f70 Up: Map Next: 6fb2