lemm: initial lemming
This commit is contained in:
parent
08eaef60d6
commit
860324783e
|
@ -29,7 +29,7 @@ LEMM_TEST: lemm_test.o
|
|||
|
||||
lemm_test.o: lemm_test.s zp.inc hardware.inc \
|
||||
graphics/graphics_test.inc \
|
||||
interrupt_handler.s keyboard.s
|
||||
interrupt_handler.s
|
||||
ca65 -o lemm_test.o lemm_test.s -l lemm_test.lst
|
||||
|
||||
####
|
||||
|
@ -40,8 +40,8 @@ LEMM: lemm.o
|
|||
lemm.o: lemm.s zp.inc hardware.inc \
|
||||
graphics/graphics_test.inc \
|
||||
intro_level1.s update_time.s hgr_sprite.s draw_flames.s \
|
||||
draw_door.s \
|
||||
interrupt_handler.s
|
||||
draw_door.s move_lemming.s draw_lemming.s \
|
||||
interrupt_handler.s keyboard.s
|
||||
ca65 -o lemm.o lemm.s -l lemm.lst
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
|
||||
draw_lemming:
|
||||
|
||||
lda lemming_out
|
||||
beq done_draw_lemming
|
||||
|
||||
lda #<lemming_fall1_sprite
|
||||
sta INL
|
||||
lda #>lemming_fall1_sprite
|
||||
sta INH
|
||||
|
||||
ldx lemming_x
|
||||
stx XPOS
|
||||
lda lemming_y
|
||||
sta YPOS
|
||||
|
||||
jsr hgr_draw_sprite
|
||||
|
||||
done_draw_lemming:
|
||||
rts
|
||||
|
|
@ -49,6 +49,7 @@ sprites.inc: sprites.png
|
|||
$(HGR_SPRITE) -s -l door2_sprite sprites.png 7 76 55 91 >> sprites.inc
|
||||
$(HGR_SPRITE) -s -l door3_sprite sprites.png 7 98 55 114 >> sprites.inc
|
||||
$(HGR_SPRITE) -s -l door4_sprite sprites.png 7 118 55 137 >> sprites.inc
|
||||
$(HGR_SPRITE) -s -l lemming_fall1_sprite sprites.png 56 32 62 41 >> sprites.inc
|
||||
|
||||
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 10 KiB |
|
@ -321,6 +321,28 @@ no_load_chunk:
|
|||
|
||||
door_is_open:
|
||||
|
||||
;======================
|
||||
; release lemmings
|
||||
;======================
|
||||
|
||||
lda LEMMINGS_TO_RELEASE
|
||||
beq done_release_lemmings
|
||||
|
||||
lda DOOR_OPEN
|
||||
beq done_release_lemmings
|
||||
|
||||
lda FRAMEL
|
||||
and #$f
|
||||
bne done_release_lemmings
|
||||
|
||||
lda #1
|
||||
sta lemming_out
|
||||
|
||||
dec LEMMINGS_TO_RELEASE
|
||||
|
||||
done_release_lemmings:
|
||||
|
||||
|
||||
jsr draw_flames
|
||||
|
||||
lda TIMER_COUNT
|
||||
|
@ -333,6 +355,10 @@ door_is_open:
|
|||
sta TIMER_COUNT
|
||||
timer_not_yet:
|
||||
|
||||
jsr move_lemmings
|
||||
|
||||
jsr draw_lemming
|
||||
|
||||
jsr handle_keypress
|
||||
|
||||
; jsr draw_pointer
|
||||
|
@ -411,6 +437,8 @@ load_song_chunk_good:
|
|||
; .include "print_help.s"
|
||||
.include "gr_fast_clear.s"
|
||||
|
||||
.include "move_lemming.s"
|
||||
.include "draw_lemming.s"
|
||||
|
||||
.include "hgr_14x14_sprite.s"
|
||||
.include "text_print.s"
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
|
||||
move_lemmings:
|
||||
|
||||
lda lemming_out
|
||||
beq done_move_lemming
|
||||
|
||||
lda lemming_status
|
||||
cmp #LEMMING_FALLING
|
||||
beq do_lemming_falling
|
||||
cmp #LEMMING_WALKING
|
||||
beq do_lemming_walking
|
||||
cmp #LEMMING_DIGGING
|
||||
beq do_lemming_digging
|
||||
jmp done_move_lemming
|
||||
|
||||
do_lemming_falling:
|
||||
inc lemming_y
|
||||
|
||||
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 done_move_lemming
|
||||
|
||||
lda #LEMMING_WALKING
|
||||
sta lemming_status
|
||||
|
||||
jmp done_move_lemming
|
||||
|
||||
|
||||
do_lemming_walking:
|
||||
|
||||
do_lemming_digging:
|
||||
|
||||
done_move_lemming:
|
||||
rts
|
||||
|
||||
lemming_x:
|
||||
.byte 12
|
||||
lemming_y:
|
||||
.byte 45
|
||||
|
||||
lemming_out:
|
||||
.byte $0
|
||||
|
||||
|
||||
LEMMING_FALLING = 1
|
||||
LEMMING_WALKING = 2
|
||||
LEMMING_DIGGING = 3
|
||||
|
||||
lemming_status:
|
||||
.byte LEMMING_FALLING
|
||||
|
||||
lemming_job:
|
||||
.byte $00
|
|
@ -62,6 +62,7 @@ LOAD_NEXT_CHUNK = $7F
|
|||
OVER_LEMMING = $80
|
||||
TIMER_COUNT = $81
|
||||
UPDATE_POINTER = $82
|
||||
LEMMINGS_TO_RELEASE = $83
|
||||
|
||||
APPLEII_MODEL = $8B
|
||||
|
||||
|
|
Loading…
Reference in New Issue