lemm: digging vaguely works

This commit is contained in:
Vince Weaver 2022-03-11 00:53:18 -05:00
parent 235c676020
commit 1836502a67
4 changed files with 83 additions and 50 deletions

View File

@ -8,8 +8,10 @@
90 PRINT "DISK CODE : QKUMBA" 90 PRINT "DISK CODE : QKUMBA"
94 PRINT "LZSA CODE : EMMANUEL MARTY" 94 PRINT "LZSA CODE : EMMANUEL MARTY"
95 PRINT 95 PRINT
100 PRINT " ______" 100 PRINT "WASD/ARROWS MOVE, ENTER ACTION"
110 PRINT " A \/\/\/ SOFTWARE PRODUCTION" 105 PRINT "J TOGGLE JOYSTICK"
115 PRINT 125 PRINT " ______"
120 PRINT " HTTP://WWW.DEATER.NET/WEAVE/VMWPROD" 130 PRINT " A \/\/\/ SOFTWARE PRODUCTION"
130 PRINT CHR$(4)"BRUN LEMM" 135 PRINT
140 PRINT " HTTP://WWW.DEATER.NET/WEAVE/VMWPROD"
150 PRINT CHR$(4)"BRUN LEMM"

View File

@ -112,7 +112,7 @@ level1_win_text:
.byte 2, 6,"SUPERB! YOU RESCUED EVERY LEMMING ON",0 .byte 2, 6,"SUPERB! YOU RESCUED EVERY LEMMING ON",0
.byte 2, 7,"THAT LEVEL. CAN YOU DO IT AGAIN...",0 .byte 2, 7,"THAT LEVEL. CAN YOU DO IT AGAIN...",0
.byte 6,15,"YOUR ACCESS CODE FOR LEVEL 2",0 .byte 6,15,"YOUR ACCESS CODE FOR LEVEL 2",0
.byte 12,16,"IS PLZNOTATARI",0 .byte 14,16,"IS WEH8ATARI",0
.byte 6,20,"PRESS RETURN FOR NEXT LEVEL",0 .byte 6,20,"PRESS RETURN FOR NEXT LEVEL",0
.byte 9,21,"PRESS ESCAPE FOR MENU",0 .byte 9,21,"PRESS ESCAPE FOR MENU",0

View File

@ -190,50 +190,12 @@ check_return:
return_pressed: return_pressed:
; lda IN_SPECIAL ; TODO: actually check if over
; beq not_special_return
special_return: lda #LEMMING_DIGGING
; jsr handle_special sta lemming_status
; special case, don't make cursor visible jmp done_keypress
; jmp no_keypress
;not_special_return:
;
; lda IN_RIGHT
; beq not_right_return
; cmp #1
; beq right_return
;right_uturn:
; jsr uturn
; jmp no_keypress
;right_return:
; jsr turn_right
; jmp no_keypress
;not_right_return:
; lda IN_LEFT
; beq not_left_return
; cmp #1
; beq left_return
;left_uturn:
; jsr uturn
; jmp no_keypress
;left_return:
; jsr turn_left
; jmp no_keypress
;not_left_return:
; jsr go_forward
jmp no_keypress
done_keypress: done_keypress:

View File

@ -1,9 +1,13 @@
move_lemmings: move_lemmings:
lda lemming_out ldy #0
beq done_move_lemming lda lemming_out,Y
bne really_move_lemming
jmp done_move_lemming
really_move_lemming:
lda lemming_status lda lemming_status
cmp #LEMMING_FALLING cmp #LEMMING_FALLING
beq do_lemming_falling beq do_lemming_falling
@ -21,14 +25,79 @@ do_lemming_falling:
jmp done_move_lemming jmp done_move_lemming
do_lemming_walking: do_lemming_walking:
lda lemming_y
clc
adc #3 ; waist-high?
tay
lda hposn_high,Y
sta GBASH
lda hposn_low,Y
sta GBASL
clc clc
lda lemming_x lda lemming_x
adc lemming_direction adc lemming_direction
tay
lda (GBASL),Y
and #$7f
beq walking_no_wall
walking_yes_wall:
lda lemming_direction
eor #$ff
clc
adc #1
sta lemming_direction
lda lemming_x
walking_no_wall:
tya
walking_done:
sta lemming_x sta lemming_x
jsr collision_check_ground jsr collision_check_ground
jmp done_move_lemming
do_lemming_digging: do_lemming_digging:
lda lemming_y
clc
adc #9
tay
lda hposn_high,Y
sta GBASH
lda hposn_low,Y
sta GBASL
ldy lemming_x
lda (GBASL),Y
and #$7f
beq digging_falling
digging_digging:
lda #$0
sta (GBASL),Y
lda GBASH
adc #$20
sta GBASH
lda #$0
sta (GBASL),Y
inc lemming_y
jmp done_digging
digging_falling:
lda #LEMMING_FALLING
sta lemming_status
done_digging:
done_move_lemming: done_move_lemming:
rts rts