1
0
mirror of https://github.com/deater/dos33fsprogs.git synced 2025-02-12 23:31:43 +00:00

mist: rehooking up the red book

brothers are gaining ability to talk
This commit is contained in:
Vince Weaver 2020-05-20 14:58:56 -04:00
parent 77de5390b1
commit 6fe701f570
3 changed files with 189 additions and 47 deletions

@ -37,9 +37,6 @@ yes_touching_red_book:
not_red_page:
lda #0
sta FRAMEL
lda #OCTAGON_RED_BOOK_CLOSED
sta LOCATION
@ -48,6 +45,23 @@ not_red_page:
rts
open_red_book:
lda #OCTAGON_RED_BOOK_OPEN
sta LOCATION
lda #DIRECTION_W|DIRECTION_SPLIT
open_book:
sta DIRECTION
jsr change_location
lda #1
sta ANIMATE_FRAME
rts
;===========================
; Touch the blue book
;===========================
@ -87,9 +101,6 @@ yes_touching_blue_book:
not_blue_page:
lda #0
sta FRAMEL
lda #OCTAGON_BLUE_BOOK_CLOSED
sta LOCATION
@ -97,6 +108,13 @@ not_blue_page:
rts
open_blue_book:
lda #OCTAGON_BLUE_BOOK_OPEN
sta LOCATION
lda #DIRECTION_E|DIRECTION_SPLIT
jmp open_book
@ -106,45 +124,32 @@ not_blue_page:
red_book_animation:
lda ANIMATE_FRAME
asl
tay
jsr gr_copy_to_current
lda red_book_sprite_sequence0,Y
sta INL
lda red_book_sprite_sequence0+1,Y
sta INH
jsr page_flip
lda #23
lda #120
jsr WAIT
advance_red_book:
sta XPOS
lda #14
sta YPOS
jsr put_sprite_crop
jsr page_flip
; Play the "bring red pages" audio
lda #120
jsr WAIT
inc FRAMEL
lda FRAMEL
cmp #5
bne done_sir
;; annoying brother
jsr gr_copy_to_current
jsr page_flip
; FIXME
lda #<audio_red_page
sta BTC_L
lda #>audio_red_page
sta BTC_H
ldx #21 ; 21 pages long???
jsr play_audio
; lda #100
; jsr WAIT
done_sir:
; lda #<audio_red_page
; sta BTC_L
; lda #>audio_red_page
; sta BTC_H
; ldx #21 ; 21 pages long???
; jsr play_audio
red_book_done:
@ -208,29 +213,69 @@ red_book_static2_sprite:
;==========================
; red/sirrus
sirrus_dialog:
.word red_dialog0,red_dialog1,red_dialog2,red_dialog3
.word red_dialog4,red_dialog5,red_dialog6
; red 0
; only static
red_dialog0:
.byte 15,22
.byte "**STATIC**",0
; 0123456789012345678901234567890123456789
; red 1
; who are you, bring me a red page, I can't see you
; I am Sirrus
; 0123456789012345678901234567890123456789
red_dialog1:
.byte 0,21
.byte "WHO ARE YOU? I CAN'T SEE YOU",0
.byte 0,22
.byte "BRING ME A RED PAGE. I AM SIRRUS.",0
; red 2
; You've returned. Thank you for the red page.
; I beg you to find the remaining red pages.
; Don't waste time on my brother, he is guilty.
; 0123456789012345678901234567890123456789
red_dialog2:
.byte 0,21
.byte "YOU'VE RETURNED. THANK YOU FOR THE PAGE",0
.byte 0,22
.byte "I BEG YOU TO FIND REMAINING RED PAGES",0
.byte 0,23
.byte "DON'T WASTE TIME ON MY GUILTY BROTHER",0
; red 3
; Free me from my prison. I am called Sirrus.
; I need two more pages. Don't touch the blue
; Don not help my wicked brother Achenar.
; 0123456789012345678901234567890123456789
red_dialog3:
.byte 0,21
.byte "FREE ME FROM MY PRISON. I AM SIRRUS.",0
.byte 0,22
.byte "I NEED MORE PAGES, DON'T TOUCH BLUE ONES",0
.byte 0,23
.byte "DO NOT HELP MY WICKED BROTHER ACHENAR",0
; red 4
; With each page I can see you more clearly.
; Achenar is guilty of conquest. He took
; advantage of father. Free me and I will reward you
; 0123456789012345678901234567890123456789
red_dialog4:
.byte 0,21
.byte "WITH EACH PAGE I CAN SEE MORE CLEARLY",0
.byte 0,22
.byte "ACHENAR IS GUILTY OF CONQUEST",0
.byte 0,23
.byte "FREE ME AND I WILL REWARD YOU",0
; red 5
; You've finally returned. You must think Achenar is guilty.
; Find page 158 in the pattern book and retrieve the last page.
@ -239,14 +284,39 @@ red_book_static2_sprite:
; Achenar became disturbed, conquest.
; Father must be lost
; 0123456789012345678901234567890123456789
red_dialog5:
.byte 0,21
.byte "YOU FINALLY RETURNED.",0
.byte 0,22
.byte "YOU MUST THINK ACHENAR IS GUILTY",0
.byte 0,23
.byte "USE PAGE 158 IN PATTERN BOOK",0
.byte 0,24
.byte "DO NOT TOUCH THE GREEN BOOK",0
; ending
; I am free! Thank you! You've done the right thing.
; Stupid fool. Let me rip some pages out.
; I hope you're into books. Goodbye!
; 0123456789012345678901234567890123456789
red_dialog6:
.byte 0,21
.byte "I AM FREE! THANK YOU, YOU STUPID FOOL!",0
.byte 0,22
.byte "LET ME RIP SOME PAGES OUT!",0
.byte 0,23
.byte "I HOPE YOU'RE INTO BOOKS! GOODBYE!",0
;==========================
; blue/Achenar
achenar_dialog:
.word red_dialog0,blue_dialog1,blue_dialog2,blue_dialog3
.word blue_dialog4,blue_dialog5,blue_dialog6
; blue 0
; only static
@ -254,28 +324,82 @@ red_book_static2_sprite:
; sirrus is that you? who are you? help me. bring blue pages
; I must have the blue page
; 0123456789012345678901234567890123456789
blue_dialog1:
.byte 0,21
.byte "SIRRUS IS THAT YOU? WHO ARE YOU?",0
.byte 0,22
.byte "BRING BLUE PAGES. MUST HAVE BLUE PAGES",0
; blue 2
; you've returned, I'm Achenar. don't listen to my brother.
; egotistical fool and liar, bring the blue pages, not the red ones
; I've been wrongly imprisoned. I will have my retribution.
; 0123456789012345678901234567890123456789
blue_dialog2:
.byte 0,21
.byte "YOU'VE RETURNED. I'M ACHENAR.",0
.byte 0,22
.byte "DON'T LISTEN TO MY LIAR BROTHER",0
.byte 0,23
.byte "BRING BLUE PAGES, NOT RED",0
.byte 0,24
.byte "I WILL HAVE MY RETRIBUTION",0
; blue 3
; you've returned, good. bring blue pages.
; sirrus trapped me here. He is greedy.
; don't touch the red pages.
; 0123456789012345678901234567890123456789
blue_dialog3:
.byte 0,21
.byte "YOU'VE RETURNED, GOOD.",0
.byte 0,22
.byte "GREEDY SIRRUS TRAPPED ME HERE",0
.byte 0,23
.byte "BRING BLUE PAGES, DON'T TOUCH THE RED",0
; blue 4
; my friend, I see you think Sirrus is guilty.
; Have you observed his lust for riches.
; Please bring more blue pages.
; 0123456789012345678901234567890123456789
blue_dialog4:
.byte 0,21
.byte "FRIEND, I SEE YOU THINK SIRRUS IS WRONG",0
.byte 0,22
.byte "HAVE YOU OBSERVED HIS LUST FOR RICHES",0
.byte 0,23
.byte "PLEASE BRING MORE BLUE PAGES",0
; blue 5
; Sirrus is guilty, lied to father and killed him
; Find pattern 158 and use it in the fireplace.
; Don't touch the green book!
; 0123456789012345678901234567890123456789
blue_dialog5:
.byte 0,21
.byte "SIRRUS IS GUILTY, HE LIED TO FATHER",0
.byte 0,22
.byte "FIND PATTERN 158 AND USE THE FIREPLACE",0
.byte 0,23
.byte "DON'T TOUCH THE GREEN BOOK!",0
; after
; Haha I am free! I fel so alive!
; Haha I am free! I feel so alive!
; These pages you worked so hard to find
; what happens if I pull them out?
; Maybe someone will rescue you.
; 0123456789012345678901234567890123456789
blue_dialog6:
.byte 0,21
.byte "HAHA I AM FREE! I FEEL SO ALIVE!",0
.byte 0,22
.byte "WHAT HAPPENS IF I RIP THESE PAGES OUT?",0
.byte 0,23
.byte "MAYBE SOMEONE WILL RESCUE YOU",0

@ -509,17 +509,20 @@ location27:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte OCTAGON_RED_BOOK_OPEN ; west exit
.byte OCTAGON_TEMPLE_CENTER ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte $ff ; east exit_dir
.byte DIRECTION_W|DIRECTION_SPLIT ; west exit_dir
.byte DIRECTION_W ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word $0000 ; east bg
.word red_book_closed_lzsa ; west bg
.byte BG_WEST ; west
.byte $ff
.byte DIRECTION_W ; special exit
.byte 14,29 ; special x
.byte 2,46 ; special y
.word open_red_book-1 ; special function
; OCTAGON_RED_BOOK_OPEN -- red book, but closed
location28:
@ -542,18 +545,21 @@ location28:
location29:
.byte $ff ; north exit
.byte $ff ; south exit
.byte OCTAGON_BLUE_BOOK_OPEN ; east exit
.byte OCTAGON_TEMPLE_CENTER ; east exit
.byte $ff ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte DIRECTION_E|DIRECTION_SPLIT ; east exit_dir
.byte DIRECTION_E ; east exit_dir
.byte $ff ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word blue_book_closed_lzsa ; east bg
.word $0000 ; west bg
.byte BG_EAST ; east
.byte $ff
.byte DIRECTION_E ; special exit
.byte 14,29 ; special x
.byte 2,46 ; special y
.word open_blue_book-1 ; special function
; OCTAGON_BLUE_BOOK_OPEN -- blue book, but open
location30:

@ -100,6 +100,10 @@ done_foreground:
beq animate_shelf
cmp #OCTAGON_ELEVATOR_IN
beq animate_elevator
cmp #OCTAGON_RED_BOOK_OPEN
beq animate_red_book
cmp #OCTAGON_BLUE_BOOK_OPEN
beq animate_blue_book
bne nothing_special
@ -123,6 +127,14 @@ animate_tower_rotation:
jsr handle_tower_rotation
jmp nothing_special
animate_red_book:
jsr red_book_animation
jmp nothing_special
animate_blue_book:
jsr red_book_animation
jmp nothing_special
nothing_special:
;====================================