ootw: c2: can now go up and down in elevator (without effects)

This commit is contained in:
Vince Weaver 2019-07-11 13:56:41 -04:00
parent 44f183b72a
commit fffd403296
5 changed files with 257 additions and 24 deletions

View File

@ -16,11 +16,6 @@ ootw_elevator:
lda #1
sta DISP_PAGE
;=============================
; load background image
jsr elevator_load_background
;==============================
; setup physicist
@ -30,10 +25,10 @@ ootw_elevator:
;==============================
; setup per-room variables
check_elevator4:
lda WHICH_JAIL
cmp #4
bne elevator5
bne check_elevator5
elevator4:
lda #(-4+128)
@ -53,13 +48,15 @@ elevator4:
lda #5
sta going_down_smc+1
lda #48
sta ELEVATOR_OFFSET
jmp elevator_setup_done
elevator5:
check_elevator5:
cmp #5
bne elevator6
bne check_elevator6
elevator5:
lda #(-4+128)
sta LEFT_LIMIT
lda #(21+128)
@ -77,13 +74,17 @@ elevator5:
lda #6
sta going_down_smc+1
lda #96
sta ELEVATOR_OFFSET
jmp elevator_setup_done
elevator6:
check_elevator6:
cmp #6
bne elevator7
elevator6:
lda #(-4+128)
sta LEFT_LIMIT
lda #(21+128)
@ -99,6 +100,9 @@ elevator6:
; no down exit
lda #144
sta ELEVATOR_OFFSET
jmp elevator_setup_done
elevator7:
@ -115,10 +119,18 @@ elevator7:
lda #4
sta going_down_smc+1
lda #0
sta ELEVATOR_OFFSET
; fallthrough
elevator_setup_done:
;=============================
; load background image
jsr elevator_load_background
;=================================
; copy to screen
@ -320,9 +332,27 @@ done_elevator:
elevator_load_background:
lda ELEVATOR_OFFSET
cmp #24
bcs elevator_bg_no_dome
; load background
lda #>(dome_rle)
sta GBASH
lda #<(dome_rle)
sta GBASL
lda #$c ; load to page $c00
jsr load_rle_gr
rts
elevator_bg_no_dome:
ldy #0
elevator_background_loop:
; self modify line we're on
lda gr_offsets_l,Y
sta line0_left_loop+1
sta line0_center_loop+1
@ -335,7 +365,26 @@ elevator_background_loop:
sta line0_center_loop+2
sta line0_right_loop+2
lda elevator_fb_l,Y
sty TEMP
; calculate framebuffer offset
tya
clc
adc ELEVATOR_OFFSET
sec
sbc #24
tay
; draw left part
lda elevator_fb,Y
and #$f0
beq elevator_right_none
lda #$88
elevator_right_none:
ldx #0
line0_left_loop:
sta $c00,X
@ -343,7 +392,14 @@ line0_left_loop:
cpx #17
bne line0_left_loop
lda elevator_fb_c,Y
; draw center part
lda elevator_fb,Y
and #$0f
beq line0_center_loop
lda #$88
line0_center_loop:
sta $c00,X
inx
@ -357,6 +413,7 @@ line0_right_loop:
cpx #40
bne line0_right_loop
ldy TEMP
iny
cpy #24
bne elevator_background_loop
@ -364,16 +421,172 @@ line0_right_loop:
rts
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:
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
; /----------------\
.byte $80 ; ######## ######## 0 (24)
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ;+######## ########
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 $80 ; ######## ######## ; 24 (48) (Room4)
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ;+######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ;+######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ;+######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ;+######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $80 ; ######## ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $00 ; ########
.byte $80 ; ######## ########
.byte $88 ; ####################
.byte $88 ; ####################
.byte $88 ; ####################
.byte $88 ; ####################
.byte $88 ; ####################
.byte $88 ; ####################
.byte $88 ;+####################
elevator_sprite1:
.byte 10,1

View File

@ -8,11 +8,12 @@ all: ootw_c2_jail.inc
#####
ootw_c2_jail.inc: $(PNG2RLE) \
ootw_c2_cage_fell.png jail2_bg.png
ootw_c2_cage_fell.png jail2_bg.png jail3_bg.png jail4_bg.png dome.png
$(PNG2RLE) asm ootw_c2_cage_fell.png cage_fell_rle > ootw_c2_jail.inc
$(PNG2RLE) asm jail2_bg.png jail2_rle >> ootw_c2_jail.inc
$(PNG2RLE) asm jail3_bg.png jail3_rle >> ootw_c2_jail.inc
$(PNG2RLE) asm jail4_bg.png jail4_rle >> ootw_c2_jail.inc
$(PNG2RLE) asm dome.png dome_rle >> ootw_c2_jail.inc
#####

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -45,7 +45,7 @@ cage_fell_rle: .byte $28 ; ysize=48
.byte $22, $52, $00, $55, $00, $55, $00
.byte $55, $00, $55, $00, $55, $A0,$A0,$00
.byte $A1
jail2_rle: .byte $28 ; ysize=50
jail2_rle: .byte $28 ; ysize=48
.byte $A3,$22, $55, $A5,$22, $55, $22, $55, $00,$00
.byte $A0,$1A,$26, $A3,$22, $55, $A5,$22, $55, $22, $55
.byte $00,$00, $A0,$1D,$22, $55, $A5,$22, $55, $22, $55
@ -126,7 +126,7 @@ jail2_rle: .byte $28 ; ysize=50
.byte $88, $52, $55, $00, $77, $88, $77
.byte $88, $22,$22, $00, $77, $88, $77, $88
.byte $22,$22, $00, $77, $88, $A7,$55, $56,$56, $55,$55
.byte $A8,$56, $A4,$55, $A3,$56, $AE,$55, $A0,$28,$00
.byte $A8,$56, $A4,$55, $A3,$56, $AE,$55
.byte $A1
jail3_rle: .byte $28 ; ysize=48
.byte $A0,$1A,$25, $66, $55, $AC,$00, $A0,$1A,$22, $66, $55
@ -243,3 +243,21 @@ jail4_rle: .byte $28 ; ysize=48
.byte $E5, $55,$55, $50, $55, $50, $55, $50
.byte $A0,$28,$00
.byte $A1
dome_rle: .byte $28 ; ysize=48
.byte $A8,$66, $A3,$22, $A0,$12,$00, $A3,$22, $AE,$66, $A3,$22, $A0,$16,$00
.byte $22,$22, $AC,$66, $A3,$22, $A0,$18,$00, $A3,$22, $A9,$66, $A3,$22
.byte $A0,$1A,$00, $A3,$22, $A7,$66, $A3,$22, $A0,$1C,$00, $A3,$22, $A6,$66
.byte $A3,$22, $A0,$1C,$00, $A3,$22, $A5,$66, $A3,$22, $A0,$1E,$00, $A3,$22
.byte $A4,$66, $22,$22, $A0,$20,$00, $22,$22, $A3,$66, $A3,$22, $A0,$1B,$00
.byte $77, $66, $55, $66, $00, $A3,$22, $66,$66
.byte $22,$22, $A0,$1B,$00, $22, $77, $76, $75, $76
.byte $60, $00, $22,$22, $66,$66, $22,$22, $A0,$1A,$00, $20
.byte $22,$22, $77, $66, $55, $66, $00, $22,$22
.byte $66, $A3,$22, $A0,$1A,$00, $A3,$22, $77, $66, $75
.byte $66, $00, $A6,$22, $A0,$19,$00, $A7,$22, $00,$00, $A5,$22
.byte $A0,$19,$00, $20, $A6,$22, $A4,$00, $A4,$22, $A0,$18,$00, $20
.byte $A7,$22, $A4,$00, $A4,$22, $A0,$17,$00, $20, $A7,$22, $A5,$00
.byte $22,$22, $A0,$11,$88, $A8,$00, $A0,$20,$88, $A8,$00, $A0,$20,$88, $A8,$00
.byte $A0,$20,$88, $A8,$00, $A0,$20,$88, $A8,$00, $A0,$20,$88, $A8,$00, $A0,$20,$88
.byte $A8,$00, $A0,$20,$88, $A8,$00, $AF,$88
.byte $A1

View File

@ -186,8 +186,9 @@ TENTACLE_PROGRESS = $F8 ; C1
ELEVATOR_CYCLE = $F8 ; INTRO
STATIC_LOOPER = $F8 ; INTRO
TENTACLE_GRAB = $F9 ; C1
ELEVATOR_COUNT = $F9 ; INTRO
TENTACLE_GRAB = $F9 ; C1
ELEVATOR_OFFSET = $F9 ; C2
TEMP = $FA
TEMPY = $FB