ootw: c15: more trapezoids

This commit is contained in:
Vince Weaver 2020-02-10 01:43:27 -05:00
parent d43a0a97b5
commit 18da26db37
3 changed files with 81 additions and 8 deletions

View File

@ -274,6 +274,7 @@ OOTW_C15: ootw_c15.o
ootw_c15.o: ootw_c15.s \
gr_copy.s gr_copy_offset.s gr_fast_clear.s gr_pageflip.s gr_unrle.s \
gr_putsprite.s gr_putsprite_flipped.s gr_putsprite_crop.s \
gr_trapezoid.s \
keyboard.s gr_run_sequence.s physicist.s \
collision.s door.s laser.s gun.s blast.s shield.s \
ootw_graphics/sprites/physicist.inc \

View File

@ -8,13 +8,11 @@
draw_trapezoid:
draw_trapezoid_loop:
clc
trapezoid_startx_smc:
lda #5
adc gr_offsets,Y
; clc
; lda trapezoid_x_start
lda gr_offsets,Y
sta trapezoid_draw_loop_smc+1
lda gr_offsets+1,Y
@ -24,15 +22,35 @@ trapezoid_startx_smc:
trapezoid_color_smc:
lda #$11
trapezoid_width_smc:
ldx #0
ldx trapezoid_x_start
trapezoid_draw_loop:
trapezoid_draw_loop_smc:
sta $c00,X
dex
inx
cpx trapezoid_x_end
bne trapezoid_draw_loop
; add in 8.8 fixed point (should we make this 6.2 instead?
clc
lda trapezoid_x_start+1
adc trapezoid_left_slope+1
sta trapezoid_x_start+1
lda trapezoid_x_start
adc trapezoid_left_slope
sta trapezoid_x_start
clc
lda trapezoid_x_end+1
adc trapezoid_right_slope+1
sta trapezoid_x_end+1
lda trapezoid_x_end
adc trapezoid_right_slope
sta trapezoid_x_end
dey
dey
trapezoid_endy_smc:
@ -40,3 +58,14 @@ trapezoid_endy_smc:
bne draw_trapezoid_loop
rts
trapezoid_x_start:
.byte 0,0
trapezoid_left_slope:
.byte 0,0
trapezoid_x_end:
.byte 0,0
trapezoid_right_slope:
.byte 0,0

View File

@ -559,9 +559,52 @@ c15_room1_foreground:
cmp #1
bne c15_draw_friend_cliff
lda #$11
sta trapezoid_color_smc+1
ldy #46
lda #36
sta trapezoid_endy_smc+1
lda #0
sta trapezoid_x_start+1
sta trapezoid_x_end+1
lda #2
sta trapezoid_x_start
lda #15
sta trapezoid_x_end
lda #2
sta trapezoid_left_slope
lda #128
sta trapezoid_left_slope+1
lda #0
sta trapezoid_right_slope
lda #128
sta trapezoid_right_slope+1
jsr draw_trapezoid
; shot2
; startx = 3
; endx = 14.5
; left_slope = 2.0 0 1 0 0 1
; right_slope = 0.33 0.66 1.00 1.33 1.66 1.99
; starty=46, endy=30
; 1/2 1/4 1/8
; 0.33 in binary = .0 1 1 .25+.125=.375
; shot3
; startx = 17, endx=19
; left_slope=2
; right_slope=2
; starty=32, endy=28
; Room 5 friend slowly working to left
c15_draw_friend_cliff: