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"
94 PRINT "LZSA CODE : EMMANUEL MARTY"
95 PRINT
100 PRINT " ______"
110 PRINT " A \/\/\/ SOFTWARE PRODUCTION"
115 PRINT
120 PRINT " HTTP://WWW.DEATER.NET/WEAVE/VMWPROD"
130 PRINT CHR$(4)"BRUN LEMM"
100 PRINT "WASD/ARROWS MOVE, ENTER ACTION"
105 PRINT "J TOGGLE JOYSTICK"
125 PRINT " ______"
130 PRINT " A \/\/\/ SOFTWARE PRODUCTION"
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, 7,"THAT LEVEL. CAN YOU DO IT AGAIN...",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 9,21,"PRESS ESCAPE FOR MENU",0

View File

@ -190,50 +190,12 @@ check_return:
return_pressed:
; lda IN_SPECIAL
; beq not_special_return
; TODO: actually check if over
special_return:
; jsr handle_special
lda #LEMMING_DIGGING
sta lemming_status
; special case, don't make cursor visible
; 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
jmp done_keypress
done_keypress:

View File

@ -1,9 +1,13 @@
move_lemmings:
lda lemming_out
beq done_move_lemming
ldy #0
lda lemming_out,Y
bne really_move_lemming
jmp done_move_lemming
really_move_lemming:
lda lemming_status
cmp #LEMMING_FALLING
beq do_lemming_falling
@ -21,14 +25,79 @@ do_lemming_falling:
jmp done_move_lemming
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
lda lemming_x
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
jsr collision_check_ground
jmp done_move_lemming
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:
rts