vgi: add fireplace

This commit is contained in:
Vince Weaver 2021-06-21 20:21:07 -04:00
parent 1ad2230f58
commit 32c3f6f6d7
3 changed files with 187 additions and 4 deletions

View File

@ -24,7 +24,7 @@ HELLO: hello.bas
VGI: vgi.o
ld65 -o VGI vgi.o -C $(LINKERSCRIPTS)/apple2_c00.inc
vgi.o: clock.data rocket.data rocket_door.data red_book.data \
vgi.o: clock.data rocket.data rocket_door.data red_book.data fireplace.data \
vgi.s vgi_clearscreen.s vgi_rectangle.s vgi_circles.s vgi_lines.s \
vgi_triangles.s
ca65 -o vgi.o vgi.s -l vgi.lst
@ -55,6 +55,12 @@ red_book.data: make_boxes_asm red_book.vgi
echo "red_book_data:" > red_book.data
./make_boxes_asm < red_book.vgi >> red_book.data
###
fireplace.data: make_boxes_asm fireplace.vgi
echo "fireplace_data:" > fireplace.data
./make_boxes_asm < fireplace.vgi >> fireplace.data
###

View File

@ -0,0 +1,137 @@
; Fireplace from Myst
;CLS 0xAA ; orange background
; bricks bg
RECT 6 4 0 0 46 192
RECT 6 4 241 0 278 192
; wood ends
RECT 4 4 46 0 50 192 ; black bg
VSTRP 0xA2 0xC4 53 0 236 192 ; woodgrain bg
FCIRC 4 139 75 22 ; center circle
FCIRC 5 139 79 22 ; center circle
FCIRC 4 76 72 22 ; left circle
FCIRC 5 75 76 22 ; left circle
FCIRC 4 202 70 22 ; right circle
FCIRC 5 208 76 22 ; right circle
VSTRP 0xA2 0xC4 53 0 76 100 ; woodgrain fix left
VSTRP 0xA2 0xC4 208 0 236 100 ; woodgrain fix right
VSTRP 0xA2 0xC4 53 76 236 100 ; woodgrain fix bottom
RECT 4 4 235 0 241 192 ; black right
RECT 5 4 79 82 208 192 ; wood edging
;RECT 4 4 79 0 207 76 ; black window
RECT 7 7 83 89 201 192 ; panel
RECT 4 7 85 89 200 93 ; shade
; brick mortar
POINT 7 24 0 ; L top
LINETO 24 25
LINETO 44 25
POINT 7 24 57 ; l mid
LINETO 24 89
LINETO 46 89
POINT 7 24 122 ; l bottom
LINETO 24 153
LINETO 46 153
POINT 7 24 25
LINETO 0 13
POINT 7 46 58
LINETO 24 57
LINETO 0 51
POINT 7 24 90
LINETO 0 89
POINT 7 44 123
LINETO 24 123
LINETO 0 130
POINT 7 24 153
LINETO 0 166
POINT 7 44 186
LINETO 24 185
LINETO 13 191
; vertical
POINT 7 8 17
LINETO 8 52
POINT 7 8 90
LINETO 8 126
POINT 7 8 161
LINETO 8 191
; right brickwork
POINT 7 279 18
LINETO 255 26
LINETO 241 26
POINT 7 279 54
LINETO 255 58
LINETO 242 58
POINT 7 279 90
LINETO 240 90
POINT 7 279 126
LINETO 255 122
LINETO 242 122
POINT 7 279 162
LINETO 255 152
LINETO 241 152
POINT 7 265 191
LINETO 255 185
LINETO 241 185
; right vertical
POINT 7 254 0
LINETO 254 26
POINT 7 254 58
LINETO 254 90
POINT 7 254 121
LINETO 254 152
POINT 7 254 187
LINETO 254 191
; button
RECT 6 6 22 94 38 111 ; button back
RECT 2 2 28 100 32 107 ; exit button
; outside
;RECT 5 5 88 18 198 71 ; outside orange
POINT 4 86 35 ; lower line
LINETO 110 42
LINETO 164 42
LINETO 199 34
POINT 4 87 28 ; next line
LINETO 114 36
LINETO 161 37
LINETO 198 27
POINT 4 86 23
LINETO 114 32
LINETO 162 31
LINETO 198 22
POINT 4 100 18
LINETO 114 23
LINETO 165 23
LINETO 180 16
RECT 4 4 114 17 164 20 ; ceiling hole
; pillars
RECT 5 5 105 44 113 71 ; left pillar
RECT 5 5 165 44 175 71 ; right pillar
; chandelier
POINT 6 137 19
LINETO 140 29
LINETO 145 32
LINETO 149 31
LINETO 149 24
POINT 6 136 19
LINETO 139 32
LINETO 138 40
LINETO 130 28
LINETO 129 21
; lights
RECT 7 7 145 19 147 22
RECT 7 7 142 24 144 27
RECT 7 7 134 26 136 29
RECT 7 7 128 19 130 22
; recess
RECT 4 4 116 44 163 49 ; recess
; lights
RECT 7 7 194 39 198 42 ; right light
RECT 7 7 136 45 141 48 ; left light
RECT 2 2 136 66 142 69 ; book light
; black window
RECT 4 4 79 0 206 18 ; black window
RECT 4 4 79 71 207 76 ; black window
RECT 4 4 79 0 87 76 ; black window
RECT 4 4 198 0 207 76 ; black window
; bars
RECT 5 4 120 0 128 74 ; left bar
RECT 5 4 160 0 168 74 ; right bar
END

View File

@ -14,9 +14,9 @@ vgi_test:
; get pointer to image data
; lda #<red_book_data
; lda #<fireplace_data
; sta VGIL
; lda #>red_book_data
; lda #>fireplace_data
; sta VGIH
lda #<clock_data
@ -120,6 +120,36 @@ loopy:
jsr fake_input
;==========================
; Fireplace
bit FULLGR
lda #<fireplace_data
sta VGIL
lda #>fireplace_data
sta VGIH
jsr play_vgi
jsr wait_until_keypress
bit TEXTGR
jsr CROUT1 ; print linefeed/cr
lda #<string10
sta OUTL
lda #>string10
sta OUTH
jsr fake_input
jsr fake_input
jsr fake_input
; jmp loopy
done:
jmp done
@ -197,7 +227,7 @@ all_done:
.include "rocket.data"
.include "rocket_door.data"
.include "red_book.data"
.include "fireplace.data"
; string data
@ -244,6 +274,16 @@ string8:
string9:
.byte "I'D SAY IT'S MORE OF A PURPLE COLOR",13,0
string10:
.byte "THIS IS A MOST UNUSUAL FIREPLACE",13
.byte "THERE ARE MANY BUTTONS HERE",13,0
string11:
.byte "WHICH BUTTON?",13,0
string12:
.byte "THAT WAS NOT THE RIGHT ONE",13,0
; PICK UP PAGE
; WHICH PAGE?
; THE RED ONE