mist: sub: animations in

This commit is contained in:
Vince Weaver 2020-08-03 20:35:31 -04:00
parent ee21768bb6
commit 1f9fc3a314

View File

@ -6,25 +6,37 @@
;===========================
; open door of sub (outside)
;===========================
sub_selena_open:
lda #SUB_CLOSE_OPEN
sta LOCATION
jmp change_location
;============================
; close door of sub (outside)
;============================
sub_selena_close:
lda #SUB_CLOSE
sta LOCATION
jmp change_location
;===============================
; open door of sub (from inside)
;===============================
sub_door_selena_open:
lda #SUB_INSIDE_BACK_OPEN
sta LOCATION
jmp change_location
;================================
; close door of sub (from inside)
;================================
sub_door_close:
lda #SUB_INSIDE_BACK
sta LOCATION
@ -345,9 +357,10 @@ sub_now_at_book:
lda #>inside_sub_back_book_s_lzsa
sta location7+1,Y ; SUB_INSIDE_BACK_OPEN
lda #SUB_INSIDE_FRONT_BOOK
sta LOCATION
jmp change_location
lda #SUB_TO_BOOKROOM
sta ANIMATE_FRAME
jmp start_animating
; further research shows that the re-use of directions in mechanical
@ -372,17 +385,16 @@ sub_now_at_book:
; E -- PWING
; W -- BREETT
; PLINK means you are there?
; forward goes forward
; backtrack takes you to previous locations? has a stack?
; backtrack takes you to previous location?
; presumably backwards in the tree (not a stack)
; 37 locations in maze?
; red button plays noise again
; red barrier if you can't go a direction, plays burrrrrrrrr
; noise if you can't go
; if on wrong path, plays no noise at all?
; if at dead end, plays no noise at all
; some paths take you to a direction not the one you left in
; let's not do that to keep things simple
@ -591,6 +603,10 @@ draw_sub:
;=================
; draw direction
; only if not animating
lda ANIMATE_FRAME
bne draw_sub_window
lda SUB_DIRECTION
tay
lda sub_direction_xs,Y
@ -609,9 +625,28 @@ draw_sub:
jsr put_sprite_crop
;=====================
; print sound effect
; only if not animating
jsr sub_point_to_struct
ldy #NOISE_OFFSET
lda (INL),Y
asl
tay
lda sub_noises,Y
sta OUTL
lda sub_noises+1,Y
sta OUTH
jsr move_and_print
;===================================
; draw oustide (possibly animated)
draw_sub_window:
; handle animation
lda ANIMATE_FRAME
@ -658,9 +693,17 @@ draw_sub:
lda ANIMATE_FRAME
cmp #58
beq arrive_back_in_selena
cmp #73
beq arrive_at_bookroom
jmp done_done_animate
arrive_at_bookroom:
lda #SUB_INSIDE_FRONT_BOOK
sta LOCATION
jsr change_location
jmp done_done_animate
arrive_back_in_selena:
lda #SUB_INSIDE_FRONT_SELENA
sta LOCATION
@ -697,20 +740,8 @@ blocked_path:
regular_path:
; print sound effect
jsr sub_point_to_struct
ldy #NOISE_OFFSET
lda (INL),Y
asl
tay
lda sub_noises,Y
sta OUTL
lda sub_noises+1,Y
sta OUTH
jsr move_and_print
rts
@ -794,6 +825,7 @@ SUB_MOVE_FORWARD_PATH_PATH = 11
SUB_MOVE_BACKWARD_PATH_PATH = 21
SUB_DOWN_FROM_SELENA = 31
SUB_UP_TO_SELENA = 45
SUB_TO_BOOKROOM = 59
sub_animations:
.word $0000 ; none ; 0
@ -868,6 +900,25 @@ sub_animations:
.word $0000 ; none ; 58
.word move_forward_path_path_frame1 ; 59
.word move_forward_path_path_frame2 ; 60
.word up_to_bookroom_frame1 ; 61
.word up_to_bookroom_frame2 ; 62
.word up_to_bookroom_frame3 ; 63
.word up_to_bookroom_frame4 ; 64
.word up_to_bookroom_frame5 ; 65
.word up_to_bookroom_frame1 ; 66
.word up_to_bookroom_frame2 ; 67
.word up_to_bookroom_frame3 ; 68
.word up_to_bookroom_frame4 ; 69
.word up_to_bookroom_frame5 ; 70
.word up_to_bookroom_frame1 ; 71
.word up_to_bookroom_frame2 ; 72
.word $0000 ; none ; 73
; move left/right
; frames 4 5 6 7 DONE
@ -1088,12 +1139,56 @@ down_from_selena_frame12:
.byte $77,$98,$98,$00,$88,$00,$98
.byte $77,$88,$00,$00,$88,$00,$00
; zoom through tunnels to book
up_to_bookroom_frame1:
.byte 7,7
.byte $00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$70,$50,$70,$00,$00
.byte $00,$00,$77,$55,$55,$77,$00
.byte $00,$77,$55,$55,$55,$55,$77
.byte $00,$77,$55,$55,$55,$55,$77
up_to_bookroom_frame2:
.byte 7,7
.byte $00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$dd,$0d,$dd,$00,$00
.byte $00,$00,$dd,$00,$dd,$00,$00
.byte $00,$00,$75,$50,$75,$00,$00
.byte $00,$00,$77,$55,$55,$77,$00
.byte $00,$77,$55,$55,$55,$55,$77
.byte $00,$77,$55,$55,$55,$55,$77
up_to_bookroom_frame3:
.byte 7,7
.byte $00,$00,$dd,$0d,$0d,$dd,$00
.byte $00,$00,$dd,$00,$00,$dd,$00
.byte $00,$00,$dd,$00,$00,$dd,$00
.byte $00,$00,$dd,$50,$70,$dd,$00
.byte $00,$00,$75,$55,$55,$75,$00
.byte $00,$77,$55,$55,$55,$55,$77
.byte $00,$77,$55,$55,$55,$55,$77
up_to_bookroom_frame4:
.byte 7,7
.byte $00,$dd,$00,$00,$00,$00,$dd
.byte $00,$dd,$00,$00,$00,$00,$dd
.byte $00,$dd,$00,$00,$00,$00,$dd
.byte $00,$dd,$70,$50,$70,$00,$dd
.byte $00,$dd,$77,$55,$55,$77,$dd
.byte $00,$75,$55,$55,$55,$55,$75
.byte $00,$77,$55,$55,$55,$55,$77
up_to_bookroom_frame5:
.byte 7,7
.byte $dd,$00,$00,$00,$00,$00,$dd
.byte $dd,$00,$00,$00,$00,$00,$dd
.byte $dd,$00,$00,$00,$00,$00,$dd
.byte $dd,$00,$70,$50,$70,$00,$dd
.byte $dd,$00,$77,$55,$55,$77,$dd
.byte $dd,$77,$55,$55,$55,$55,$dd
.byte $5d,$77,$55,$55,$55,$55,$5d