A C64 Game - Step 71


Now a little polish for Sams dark powers, they were a tad too dark to see ;)



Realistic colors are one thing, but if it hampers the gameplay they have to go. So dark powers are now white.
And animated.


Core routine is this, it redraws every char of the beam with one of four random characters:

;redraw force beam (randomly)
!zone RedrawForceBeam
RedrawForceBeam
ldy SAM_FORCE_START_Y

lda SCREEN_LINE_OFFSET_TABLE_LO,y
sta ZEROPAGE_POINTER_1
lda SCREEN_LINE_OFFSET_TABLE_HI,y
sta ZEROPAGE_POINTER_1 + 1

lda SAM_FORCE_LENGTH
sta PARAM1

ldy SAM_FORCE_START_X

-
jsr GenerateRandomNumber
and #$03
clc
adc #252
sta (ZEROPAGE_POINTER_1),y

iny
dec PARAM1
bne -
rts



Most of the other changes include a call to the routine above, some are fixes for crashes that were introduces.

For one, when removing the beam item images could be clipped, a simple call to

jsr RedrawItems



fixes that.


And a little change to gameplay, if Sam moves (falls/jumps) while holding an enemy and moves too far, he loses grip on the enemy.
This is done via a little comparison between the beam start Y pos and the players pos. Too far, and the enemy is released.

          ;release beam when moving
lda SAM_FORCE_START_Y
clc
adc #1
cmp SPRITE_CHAR_POS_Y,x
bne .SamNotFirePushed

;Sam needs to keep pressed
jsr RedrawForceBeam



Have fun!


step71.zip