diff --git a/games/lemm/graphics/level1.png b/games/lemm/graphics/level1.png index f8378142..26d84dc3 100644 Binary files a/games/lemm/graphics/level1.png and b/games/lemm/graphics/level1.png differ diff --git a/games/lemm/graphics/level2.png b/games/lemm/graphics/level2.png index c243d438..276f9211 100644 Binary files a/games/lemm/graphics/level2.png and b/games/lemm/graphics/level2.png differ diff --git a/games/lemm/graphics/level3.png b/games/lemm/graphics/level3.png index 401cfff9..e3b7e26a 100644 Binary files a/games/lemm/graphics/level3.png and b/games/lemm/graphics/level3.png differ diff --git a/games/lemm/graphics/level4.png b/games/lemm/graphics/level4.png index 3e7a3ecd..7a022c29 100644 Binary files a/games/lemm/graphics/level4.png and b/games/lemm/graphics/level4.png differ diff --git a/games/lemm/keyboard.s b/games/lemm/keyboard.s index ae9e406f..61404c9d 100644 --- a/games/lemm/keyboard.s +++ b/games/lemm/keyboard.s @@ -276,18 +276,38 @@ make_nop: ; make climber ;======================== make_climber: + lda CLIMBER_COUNT ; only if we have some left + beq done_make_climber + lda #LEMMING_CLIMBER ora lemming_attribute,Y sta lemming_attribute,Y + + dec CLIMBER_COUNT + + ldx #0 + jsr update_remaining + +done_make_climber: jmp done_keypress ;======================== ; make floater ;======================== make_floater: + lda FLOATER_COUNT ; only if we have some left + beq done_make_floater + lda #LEMMING_FLOATER ora lemming_attribute,Y sta lemming_attribute,Y + + dec FLOATER_COUNT + + ldx #1 + jsr update_remaining + +done_make_floater: jmp done_keypress @@ -295,7 +315,17 @@ make_floater: ; make exploding ;======================== make_exploding: + lda EXPLODER_COUNT ; only if we have some left + beq done_make_exploder + jsr explode_lemming + + dec EXPLODER_COUNT + + ldx #2 + jsr update_remaining + +done_make_exploder: jmp done_keypress @@ -303,6 +333,9 @@ make_exploding: ; make stopper ;======================== make_stopper: + lda STOPPER_COUNT ; only if we have some left + beq cant_stop + lda lemming_status,Y cmp #LEMMING_FLOATER ; can't stop if floating beq cant_stop @@ -349,32 +382,10 @@ dbl_smc: bne draw_blocker_loop -.if 0 - ; line from (x,a) to (x,a+y) - lda #$7 - sta HGR_COLOR + dec STOPPER_COUNT - jsr hgr_vlin_page_toggle - - clc - lda lemming_x,Y ; multiply x by 7 - asl - adc lemming_x,Y - asl - adc lemming_x,Y - adc #2 ; center a bit - - tax - lda lemming_y,Y - clc - adc #1 - - ldy #8 - - jsr hgr_vlin - - jsr hgr_vlin_page_toggle -.endif + ldx #3 + jsr update_remaining cant_stop: jmp done_keypress @@ -399,6 +410,9 @@ make_builder: jmp done_make_builder really_make_builder: + lda BUILDER_COUNT ; only if we have some left + beq done_make_builder + lda #LEMMING_BUILDING sta lemming_status,Y @@ -408,7 +422,10 @@ really_make_builder: sta lemming_attribute,Y - ; FIXME: decrement count + dec BUILDER_COUNT + ldx #4 + jsr update_remaining + done_make_builder: jmp done_keypress @@ -417,6 +434,9 @@ done_make_builder: ; make basher ;======================== make_basher: + lda BASHER_COUNT ; only if we have some left + beq done_make_basher + ; only do it if walking lda lemming_status,Y cmp #LEMMING_WALKING @@ -425,7 +445,10 @@ make_basher: lda #LEMMING_BASHING sta lemming_status,Y - ; FIXME: decrement count + dec BASHER_COUNT + ldx #5 + jsr update_remaining + done_make_basher: jmp done_keypress @@ -434,6 +457,9 @@ done_make_basher: ; make miner ;======================== make_miner: + lda MINER_COUNT ; only if we have some left + beq done_make_miner + ; only do it if walking lda lemming_status,Y cmp #LEMMING_WALKING @@ -442,7 +468,10 @@ make_miner: lda #LEMMING_MINING sta lemming_status,Y - ; FIXME: decrement count + dec MINER_COUNT + ldx #6 + jsr update_remaining + done_make_miner: jmp done_keypress diff --git a/games/lemm/level1.s b/games/lemm/level1.s index 04fd0b77..906812d1 100644 --- a/games/lemm/level1.s +++ b/games/lemm/level1.s @@ -21,7 +21,7 @@ do_level1: sta BUILDER_COUNT sta BASHER_COUNT sta MINER_COUNT - lda #20 + lda #10 sta DIGGER_COUNT lda #9 diff --git a/games/lemm/level2.s b/games/lemm/level2.s index e97a70e8..cb67c889 100644 --- a/games/lemm/level2.s +++ b/games/lemm/level2.s @@ -13,6 +13,19 @@ do_level2: ; set up initial stuff ;====================== + lda #0 + sta CLIMBER_COUNT + sta EXPLODER_COUNT + sta STOPPER_COUNT + sta BUILDER_COUNT + sta BASHER_COUNT + sta MINER_COUNT + sta DIGGER_COUNT + lda #10 + sta FLOATER_COUNT + + + lda #3 sta DOOR_X lda #5 @@ -168,6 +181,8 @@ do_level2: jsr init_level + jsr update_remaining_all + ;======================= ; Play "Let's Go" ;======================= diff --git a/games/lemm/level3.s b/games/lemm/level3.s index cc1a6e16..a5c583fe 100644 --- a/games/lemm/level3.s +++ b/games/lemm/level3.s @@ -12,6 +12,17 @@ do_level3: ; set up initial stuff ;====================== + lda #0 + sta CLIMBER_COUNT + sta FLOATER_COUNT + sta EXPLODER_COUNT + sta BUILDER_COUNT + sta BASHER_COUNT + sta MINER_COUNT + sta DIGGER_COUNT + lda #10 + sta STOPPER_COUNT + lda #15 sta DOOR_X lda #1 @@ -169,6 +180,8 @@ do_level3: jsr init_level + jsr update_remaining_all + ;======================= ; Play "Let's Go" ;======================= diff --git a/games/lemm/level4.s b/games/lemm/level4.s index 84e76008..a117de38 100644 --- a/games/lemm/level4.s +++ b/games/lemm/level4.s @@ -12,6 +12,18 @@ do_level4: ;====================== ; set up initial stuff ;====================== + + lda #0 + sta FLOATER_COUNT + sta EXPLODER_COUNT + sta STOPPER_COUNT + sta BUILDER_COUNT + sta BASHER_COUNT + sta DIGGER_COUNT + lda #10 + sta CLIMBER_COUNT + sta MINER_COUNT + lda #5 sta DOOR_X lda #10 @@ -170,6 +182,8 @@ do_level4: jsr init_level + jsr update_remaining_all + ;======================= ; Play "Let's Go" ;=======================