From 19e128a4a699d59a44933c48439938bad25aaa2b Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 10 Dec 2020 19:59:34 -0500 Subject: [PATCH] duke: can fall --- duke/draw_duke.s | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/duke/draw_duke.s b/duke/draw_duke.s index 5307057e..32b8e824 100644 --- a/duke/draw_duke.s +++ b/duke/draw_duke.s @@ -4,6 +4,8 @@ ;========================= move_duke: + jsr check_falling + lda DUKE_WALKING beq done_move_duke @@ -50,6 +52,60 @@ done_move_duke: rts + + + ;========================= + ; duke collide + ;========================= + ; only check above head if jumping + +duke_collide: + + rts + + ;========================= + ; check_falling + ;========================= +check_falling: + + ; check below feet + + ; block index below feet is (y+10)*16/4 + (x/2) + 1 + + lda DUKE_Y + clc + adc #10 + asl + asl + asl + + clc + adc DUKE_X + lsr ; have location of head + +; clc +; adc #1 ; point under feet + + tax + lda TILEMAP,X + + ; if < 32 then we fall + cmp #32 + bcs done_check_below + + ; scroll + + inc TILEMAP_Y + + jsr copy_tilemap_subset + +done_check_below: + + rts + + + + ;========================= ; draw duke ;=========================