ootw: level2: can board elevator now

This commit is contained in:
Vince Weaver 2019-07-10 14:25:04 -04:00
parent 3528233422
commit 9282330bdc
3 changed files with 55 additions and 12 deletions

View File

@ -2,3 +2,15 @@ gr_offsets:
.word $400,$480,$500,$580,$600,$680,$700,$780 .word $400,$480,$500,$580,$600,$680,$700,$780
.word $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8 .word $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8
.word $450,$4d0,$550,$5d0,$650,$6d0,$750,$7d0 .word $450,$4d0,$550,$5d0,$650,$6d0,$750,$7d0
gr_offsets_h:
.byte >$400,>$480,>$500,>$580,>$600,>$680,>$700,>$780
.byte >$428,>$4a8,>$528,>$5a8,>$628,>$6a8,>$728,>$7a8
.byte >$450,>$4d0,>$550,>$5d0,>$650,>$6d0,>$750,>$7d0
gr_offsets_l:
.byte <$400,<$480,<$500,<$580,<$600,<$680,<$700,<$780
.byte <$428,<$4a8,<$528,<$5a8,<$628,<$6a8,<$728,<$7a8
.byte <$450,<$4d0,<$550,<$5d0,<$650,<$6d0,<$750,<$7d0

View File

@ -21,6 +21,12 @@ ootw_elevator:
jsr elevator_load_background jsr elevator_load_background
;==============================
; setup physicist
lda #16
sta PHYSICIST_Y
;============================== ;==============================
; setup per-room variables ; setup per-room variables
@ -78,6 +84,22 @@ elevator_loop:
jsr gr_copy_to_current jsr gr_copy_to_current
;================================
; draw elevator
lda #17
sta XPOS
lda #32
sta YPOS
lda #<elevator_sprite
sta INL
lda #>elevator_sprite
sta INH
jsr put_sprite_crop
;=============================== ;===============================
; check keyboard ; check keyboard
@ -167,25 +189,27 @@ elevator_load_background:
ldy #0 ldy #0
elevator_background_loop: elevator_background_loop:
lda gr_offsets,Y lda gr_offsets_l,Y
sta line0_left_loop+1 sta line0_left_loop+1
sta line0_center_loop+1 sta line0_center_loop+1
sta line0_right_loop+1
lda gr_offsets+1,Y lda gr_offsets_h,Y
clc clc
adc #$8 adc #$8
sta line0_left_loop+2 sta line0_left_loop+2
sta line0_center_loop+2 sta line0_center_loop+2
sta line0_right_loop+2
lda elevator_fb,Y lda elevator_fb_l,Y
ldx #0 ldx #0
line0_left_loop: line0_left_loop:
sta $c00,X sta $c00,X
inx inx
cpx #16 cpx #17
bne line0_left_loop bne line0_left_loop
lda elevator_fb+1,Y lda elevator_fb_c,Y
line0_center_loop: line0_center_loop:
sta $c00,X sta $c00,X
inx inx
@ -196,21 +220,28 @@ line0_center_loop:
line0_right_loop: line0_right_loop:
sta $c00,X sta $c00,X
inx inx
cpx #39 cpx #40
bne line0_right_loop bne line0_right_loop
iny iny
iny cpy #24
cpy #48
bne elevator_background_loop bne elevator_background_loop
rts rts
elevator_fb: elevator_fb_l:
.byte $88,$88,$88,$88,$88,$88,$88,$88,$88 .byte $88,$88,$88,$88,$88,$88,$88
.byte $00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00
.byte $88,$88,$88,$88,$88,$88,$88,$88 .byte $88,$88,$88,$88,$88,$88,$88,$88
elevator_fb_c:
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
elevator_sprite:
.byte $8,$1
.byte $25,$25,$25,$25,$25,$25,$25,$25

View File

@ -21,7 +21,7 @@ move_and_print:
adc CH ; add in xpos adc CH ; add in xpos
sta BASL ; store out low byte of addy sta BASL ; store out low byte of addy
lda gr_offsets+1,Y ; look up high byte lda gr_offsets,Y ; look up high byte
adc DRAW_PAGE ; adc DRAW_PAGE ;
sta BASH ; and store it out sta BASH ; and store it out
; BASH:BASL now points at right place ; BASH:BASL now points at right place