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 $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8
.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
;==============================
; setup physicist
lda #16
sta PHYSICIST_Y
;==============================
; setup per-room variables
@ -78,6 +84,22 @@ elevator_loop:
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
@ -167,25 +189,27 @@ elevator_load_background:
ldy #0
elevator_background_loop:
lda gr_offsets,Y
lda gr_offsets_l,Y
sta line0_left_loop+1
sta line0_center_loop+1
sta line0_right_loop+1
lda gr_offsets+1,Y
lda gr_offsets_h,Y
clc
adc #$8
sta line0_left_loop+2
sta line0_center_loop+2
sta line0_right_loop+2
lda elevator_fb,Y
lda elevator_fb_l,Y
ldx #0
line0_left_loop:
sta $c00,X
inx
cpx #16
cpx #17
bne line0_left_loop
lda elevator_fb+1,Y
lda elevator_fb_c,Y
line0_center_loop:
sta $c00,X
inx
@ -196,21 +220,28 @@ line0_center_loop:
line0_right_loop:
sta $c00,X
inx
cpx #39
cpx #40
bne line0_right_loop
iny
iny
cpy #48
cpy #24
bne elevator_background_loop
rts
elevator_fb:
.byte $88,$88,$88,$88,$88,$88,$88,$88,$88
.byte $00,$00,$00,$00,$00,$00,$00
elevator_fb_l:
.byte $88,$88,$88,$88,$88,$88,$88
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00
.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
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
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 ;
sta BASH ; and store it out
; BASH:BASL now points at right place