blessing of ra
This commit is contained in:
+116
@@ -0,0 +1,116 @@
|
||||
; -----------------------------------------------------------
|
||||
; pyramid.asm - the title card between the TTG logo and the
|
||||
; menu: big BLESSING / OF RA under the rolling gold wash, a
|
||||
; sandstone pyramid rising below with the trapped worker
|
||||
; glinting at its peak and the sun of ra pulsing beside it;
|
||||
; advances to the menu after a few seconds or on fire
|
||||
; -----------------------------------------------------------
|
||||
|
||||
PYR_TIME = 250 ; frames before it advances on its own
|
||||
|
||||
pyramid_init:
|
||||
jsr clear_screen
|
||||
|
||||
+prbig 1, 4, YELLOW, txt_t1, 8
|
||||
+prbig 7, 10, ORANGE, txt_t2, 5
|
||||
|
||||
; the pyramid: ten block rows, apex on row 13
|
||||
lda #0
|
||||
sta ptmp
|
||||
py_prow:
|
||||
lda #13
|
||||
clc
|
||||
adc ptmp
|
||||
tax
|
||||
jsr row_ptr
|
||||
lda #19 ; row r spans columns 19-r .. 20+r
|
||||
sec
|
||||
sbc ptmp
|
||||
tay
|
||||
lda ptmp
|
||||
asl
|
||||
clc
|
||||
adc #2 ; 2r+2 blocks on this row
|
||||
sta rtmp2
|
||||
py_pcol:
|
||||
lda #$a0
|
||||
sta (scrlo),y
|
||||
ldx ptmp
|
||||
lda pyrcols,x ; sunlit top, shaded base
|
||||
sta (collo),y
|
||||
iny
|
||||
dec rtmp2
|
||||
bne py_pcol
|
||||
inc ptmp
|
||||
lda ptmp
|
||||
cmp #10
|
||||
bne py_prow
|
||||
|
||||
; the worker glints at the peak
|
||||
lda #$51 ; filled dot
|
||||
sta SCREEN+12*40+19
|
||||
lda #WHITE
|
||||
sta COLRAM+12*40+19
|
||||
|
||||
; the sun of ra beside the pyramid
|
||||
lda #$a0
|
||||
sta SCREEN+14*40+32
|
||||
sta SCREEN+14*40+33
|
||||
sta SCREEN+15*40+31
|
||||
sta SCREEN+15*40+32
|
||||
sta SCREEN+15*40+33
|
||||
sta SCREEN+15*40+34
|
||||
sta SCREEN+16*40+32
|
||||
sta SCREEN+16*40+33
|
||||
|
||||
+prtext 24, 5, LGREY, txt_pray, txt_praye-txt_pray
|
||||
|
||||
lda #PYR_TIME
|
||||
sta pyrt
|
||||
lda #0
|
||||
sta washphase
|
||||
+setupd pyramid_update
|
||||
rts
|
||||
|
||||
pyramid_update:
|
||||
jsr wash_title ; the gold wash rolls down the title
|
||||
|
||||
; the sun pulses
|
||||
lda framectr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
and #3
|
||||
tax
|
||||
lda sunpulse,x
|
||||
sta COLRAM+14*40+32
|
||||
sta COLRAM+14*40+33
|
||||
sta COLRAM+15*40+31
|
||||
sta COLRAM+15*40+32
|
||||
sta COLRAM+15*40+33
|
||||
sta COLRAM+15*40+34
|
||||
sta COLRAM+16*40+32
|
||||
sta COLRAM+16*40+33
|
||||
|
||||
; fire skips, otherwise wait out the timer
|
||||
jsr start_edge
|
||||
beq py_tick
|
||||
+fadeto menu_init
|
||||
py_tick:
|
||||
dec pyrt
|
||||
bne py_done
|
||||
+fadeto menu_init
|
||||
py_done:
|
||||
rts
|
||||
|
||||
; ---- tables and texts ----
|
||||
pyrcols: ; pyramid rows top to bottom
|
||||
!byte YELLOW, YELLOW, ORANGE, ORANGE, ORANGE
|
||||
!byte ORANGE, ORANGE, BROWN, BROWN, BROWN
|
||||
sunpulse: ; the sun of ra breathes
|
||||
!byte YELLOW, YELLOW, WHITE, YELLOW
|
||||
txt_pray: !scr "a worker prays at the peak..."
|
||||
txt_praye:
|
||||
|
||||
; ---- pyramid variables ----
|
||||
pyrt: !byte 0 ; frames left before auto-advancing
|
||||
Reference in New Issue
Block a user