peasant: kerrek can bonk you now
This commit is contained in:
parent
206ab9676e
commit
b390c96f0a
|
@ -405,13 +405,363 @@ kerrek_y_distance_negate:
|
||||||
adc #1
|
adc #1
|
||||||
kerrek_y_distance_good:
|
kerrek_y_distance_good:
|
||||||
cmp #5
|
cmp #5
|
||||||
bcs kerrek_no_collision
|
bcc kerrek_got_ya
|
||||||
|
|
||||||
|
kerrek_no_collision:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
; kerrek got ya!
|
||||||
|
;=============================
|
||||||
|
; for now, from right only
|
||||||
|
|
||||||
|
; clear out both
|
||||||
|
; 1. draw peasant looking forward
|
||||||
|
; draw kerrek feet
|
||||||
|
; draw kerrek head
|
||||||
|
; draw kerrek teeth
|
||||||
|
; draw kerrek, arm
|
||||||
|
; 2. draw arm up
|
||||||
|
; 3. draw big hit
|
||||||
|
; 4. erase peasant, draw in ground
|
||||||
|
; 5. draw regular arm
|
||||||
|
; 6. pause a bit
|
||||||
|
; 7. print message
|
||||||
kerrek_got_ya:
|
kerrek_got_ya:
|
||||||
|
;=====================
|
||||||
; game over, man!
|
; game over, man!
|
||||||
|
|
||||||
; animate pounding you into ground
|
|
||||||
|
;=============================
|
||||||
|
; step 1
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
; erase old kerrek (FIXME: make common?)
|
||||||
|
|
||||||
|
lda PREV_Y
|
||||||
|
sta SAVED_Y1
|
||||||
|
clc
|
||||||
|
adc #51
|
||||||
|
sta SAVED_Y2
|
||||||
|
|
||||||
|
lda PREV_X
|
||||||
|
tax
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
jsr hgr_partial_restore
|
||||||
|
|
||||||
|
jsr erase_peasant
|
||||||
|
|
||||||
|
; draw peasant
|
||||||
|
|
||||||
|
lda PEASANT_X
|
||||||
|
and #$FE ; only works on even locations
|
||||||
|
sta PEASANT_X
|
||||||
|
sta CURSOR_X
|
||||||
|
sec
|
||||||
|
sbc #4
|
||||||
|
sta KERREK_X
|
||||||
|
|
||||||
|
lda PEASANT_Y
|
||||||
|
sta CURSOR_Y
|
||||||
|
sec
|
||||||
|
sbc #22
|
||||||
|
sta KERREK_Y
|
||||||
|
|
||||||
|
lda #<peasant_down2_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>peasant_down2_sprite
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite_1x28
|
||||||
|
|
||||||
|
; draw kerrek
|
||||||
|
|
||||||
|
; draw kerrek head
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_head_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_head_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; draw kerrek teeth
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_teeth_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_teeth_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #8
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; draw kerrek arm
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_arm_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_arm_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #11
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; draw kerrek legs
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_legs_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_legs_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #21
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; wait a bit
|
||||||
|
|
||||||
|
lda #5
|
||||||
|
jsr wait_a_bit
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
; step 2
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
; erase old kerrek arm
|
||||||
|
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #10
|
||||||
|
sta SAVED_Y1
|
||||||
|
adc #10
|
||||||
|
sta SAVED_Y2
|
||||||
|
|
||||||
|
lda KERREK_X
|
||||||
|
tax
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
jsr hgr_partial_restore
|
||||||
|
|
||||||
|
|
||||||
|
; draw kerrek
|
||||||
|
|
||||||
|
; draw kerrek head
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_arm_up_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_arm_up_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
sec
|
||||||
|
sbc #2
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; wait a bit
|
||||||
|
|
||||||
|
lda #5
|
||||||
|
jsr wait_a_bit
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
; step 3
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
; erase old kerrek arm
|
||||||
|
|
||||||
|
lda KERREK_Y
|
||||||
|
sec
|
||||||
|
sbc #2
|
||||||
|
sta SAVED_Y1
|
||||||
|
adc #17
|
||||||
|
sta SAVED_Y2
|
||||||
|
|
||||||
|
lda KERREK_X
|
||||||
|
tax
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
jsr hgr_partial_restore
|
||||||
|
|
||||||
|
|
||||||
|
; draw kerrek
|
||||||
|
|
||||||
|
|
||||||
|
; draw kerrek head
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_head_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_head_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; draw kerrek teeth
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_teeth_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_teeth_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #8
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; draw big arm
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_arm_down_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_arm_down_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #11
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; wait a bit
|
||||||
|
|
||||||
|
; FIXME: sound effect
|
||||||
|
|
||||||
|
lda #5
|
||||||
|
jsr wait_a_bit
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
; step 4
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
; erase peasant
|
||||||
|
|
||||||
|
jsr erase_peasant
|
||||||
|
|
||||||
|
; draw peasant in ground
|
||||||
|
|
||||||
|
lda PEASANT_X
|
||||||
|
sta CURSOR_X
|
||||||
|
|
||||||
|
lda PEASANT_Y
|
||||||
|
clc
|
||||||
|
adc #15
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
lda #<kerrek_peasant_ground_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_peasant_ground_sprite
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
lda #5
|
||||||
|
jsr wait_a_bit
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
; step 5
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
; erase old kerrek
|
||||||
|
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #11
|
||||||
|
sta SAVED_Y1
|
||||||
|
adc #20
|
||||||
|
sta SAVED_Y2
|
||||||
|
|
||||||
|
lda KERREK_X
|
||||||
|
tax
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
jsr hgr_partial_restore
|
||||||
|
|
||||||
|
; draw kerrek
|
||||||
|
|
||||||
|
; draw kerrek arm
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_arm_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_arm_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #11
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; draw kerrek legs
|
||||||
|
|
||||||
|
lda #<kerrek_r_hitting_legs_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>kerrek_r_hitting_legs_sprite
|
||||||
|
sta INH
|
||||||
|
lda KERREK_X
|
||||||
|
sta CURSOR_X
|
||||||
|
lda KERREK_Y
|
||||||
|
clc
|
||||||
|
adc #21
|
||||||
|
sta CURSOR_Y
|
||||||
|
|
||||||
|
jsr hgr_draw_sprite
|
||||||
|
|
||||||
|
; wait a bit
|
||||||
|
|
||||||
|
lda #5
|
||||||
|
jsr wait_a_bit
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
; step 6
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
; wait a bit
|
||||||
|
|
||||||
|
lda #20
|
||||||
|
jsr wait_a_bit
|
||||||
|
|
||||||
|
|
||||||
|
; print message
|
||||||
|
|
||||||
ldx #<kerrek_pound_message
|
ldx #<kerrek_pound_message
|
||||||
ldy #>kerrek_pound_message
|
ldy #>kerrek_pound_message
|
||||||
|
@ -423,7 +773,6 @@ kerrek_got_ya:
|
||||||
lda #NEW_FROM_DISK
|
lda #NEW_FROM_DISK
|
||||||
sta LEVEL_OVER
|
sta LEVEL_OVER
|
||||||
|
|
||||||
kerrek_no_collision:
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -431,6 +780,7 @@ kerrek_no_collision:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
;=======================
|
;=======================
|
||||||
;=======================
|
;=======================
|
||||||
|
|
|
@ -14,18 +14,7 @@ really_move_peasant:
|
||||||
|
|
||||||
; restore bg behind peasant
|
; restore bg behind peasant
|
||||||
|
|
||||||
lda PEASANT_Y
|
jsr erase_peasant
|
||||||
sta SAVED_Y1
|
|
||||||
clc
|
|
||||||
adc #28
|
|
||||||
sta SAVED_Y2
|
|
||||||
|
|
||||||
ldx PEASANT_X
|
|
||||||
txa
|
|
||||||
inx
|
|
||||||
|
|
||||||
jsr hgr_partial_restore
|
|
||||||
|
|
||||||
|
|
||||||
;=========================
|
;=========================
|
||||||
;=========================
|
;=========================
|
||||||
|
@ -159,6 +148,26 @@ peasant_the_same:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;===========================
|
||||||
|
; erase peasant
|
||||||
|
;===========================
|
||||||
|
|
||||||
|
; restore bg behind peasant
|
||||||
|
erase_peasant:
|
||||||
|
lda PEASANT_Y
|
||||||
|
sta SAVED_Y1
|
||||||
|
clc
|
||||||
|
adc #28
|
||||||
|
sta SAVED_Y2
|
||||||
|
|
||||||
|
ldx PEASANT_X
|
||||||
|
txa
|
||||||
|
inx
|
||||||
|
|
||||||
|
jmp hgr_partial_restore ; tail call
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; when peasants collide
|
; when peasants collide
|
||||||
|
|
||||||
|
|
|
@ -142,6 +142,17 @@ kerrek_sprites.inc: kerrek_sprites.png
|
||||||
$(HGR_SPRITE) -s -l kerrek_r1_head_sprite kerrek_sprites.png 21 60 27 68 >> kerrek_sprites.inc
|
$(HGR_SPRITE) -s -l kerrek_r1_head_sprite kerrek_sprites.png 21 60 27 68 >> kerrek_sprites.inc
|
||||||
$(HGR_SPRITE) -s -l kerrek_r2_sprite kerrek_sprites.png 42 56 55 108 >> kerrek_sprites.inc
|
$(HGR_SPRITE) -s -l kerrek_r2_sprite kerrek_sprites.png 42 56 55 108 >> kerrek_sprites.inc
|
||||||
$(HGR_SPRITE) -s -l kerrek_r2_head_sprite kerrek_sprites.png 56 60 62 66 >> kerrek_sprites.inc
|
$(HGR_SPRITE) -s -l kerrek_r2_head_sprite kerrek_sprites.png 56 60 62 66 >> kerrek_sprites.inc
|
||||||
|
# hitting animation
|
||||||
|
$(HGR_SPRITE) -s -l kerrek_r_hitting_legs_sprite kerrek_sprites.png 70 23 83 54 >> kerrek_sprites.inc
|
||||||
|
$(HGR_SPRITE) -s -l kerrek_r_hitting_head_sprite kerrek_sprites.png 70 2 83 13 >> kerrek_sprites.inc
|
||||||
|
$(HGR_SPRITE) -s -l kerrek_r_hitting_teeth_sprite kerrek_sprites.png 84 10 90 12 >> kerrek_sprites.inc
|
||||||
|
$(HGR_SPRITE) -s -l kerrek_r_hitting_arm_sprite kerrek_sprites.png 98 13 118 23 >> kerrek_sprites.inc
|
||||||
|
$(HGR_SPRITE) -s -l kerrek_r_hitting_arm_up_sprite kerrek_sprites.png 126 0 146 23 >> kerrek_sprites.inc
|
||||||
|
$(HGR_SPRITE) -s -l kerrek_r_hitting_arm_down_sprite kerrek_sprites.png 154 13 188 31 >> kerrek_sprites.inc
|
||||||
|
$(HGR_SPRITE) -s -l kerrek_peasant_ground_sprite kerrek_sprites.png 182 41 188 54 >> kerrek_sprites.inc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
trogdor_sprites.inc: trogdor_sprites.png
|
trogdor_sprites.inc: trogdor_sprites.png
|
||||||
$(HGR_SPRITE) -s -l dashing0_sprite trogdor_sprites.png 14 6 20 45 > trogdor_sprites.inc
|
$(HGR_SPRITE) -s -l dashing0_sprite trogdor_sprites.png 14 6 20 45 > trogdor_sprites.inc
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.7 KiB |
|
@ -163,11 +163,11 @@ GAME_STATE_2 = $99
|
||||||
GREASE_ON_HEAD =$80
|
GREASE_ON_HEAD =$80
|
||||||
|
|
||||||
NED_STATUS = $9A
|
NED_STATUS = $9A
|
||||||
; 0 = hiding
|
; 0 = hiding (no increment)
|
||||||
; 1..127 = countdown to appearing
|
; 1..127 = count up to appearing
|
||||||
; 128 = hands on tree
|
; 126,255 = hands on tree
|
||||||
; 129 = half out
|
; 127,254 = half out
|
||||||
; 130+/negative = out
|
; 128 = out (no increment)
|
||||||
|
|
||||||
BUSH_STATUS = $9B ; status of bush search
|
BUSH_STATUS = $9B ; status of bush search
|
||||||
BUSH_1_SEARCHED = $01
|
BUSH_1_SEARCHED = $01
|
||||||
|
|
Loading…
Reference in New Issue