mist: meche: add rest of the blue secret room

also electric jolt, which could be a lot better
This commit is contained in:
Vince Weaver 2020-08-11 00:57:59 -04:00
parent 8916a0bd30
commit c0c0918c16
11 changed files with 80 additions and 23 deletions

View File

@ -26,23 +26,23 @@ mist.dsk: HELLO LOADER MIST_TITLE MIST OCTAGON VIEWER \
$(DOS33) -y mist.dsk BSAVE -a 0x2000 SHIP
# $(DOS33) -y mist.dsk BSAVE -a 0x9000 ./audio/link_noise.btc LINK_NOISE.BTC
mist_side2.dsk: HELLO_DISK2 CHANNEL ARBOR NIBEL CABIN
mist_side2.dsk: HELLO_DISK2 CHANNEL ARBOR NIBEL CABIN GENERATOR
cp empty.dsk mist_side2.dsk
$(DOS33) -y mist_side2.dsk SAVE A HELLO_DISK2 HELLO
$(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 CHANNEL
$(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 ARBOR
$(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 NIBEL
$(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 CABIN
$(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 GENERATOR
mist_side3.dsk: HELLO_DISK2 MECHE SELENA STONEY GENERATOR SUB
mist_side3.dsk: HELLO_DISK2 MECHE SELENA STONEY SUB
cp empty.dsk mist_side3.dsk
$(DOS33) -y mist_side3.dsk SAVE A HELLO_DISK2 HELLO
$(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 MECHE
$(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 SELENA
$(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 STONEY
$(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 GENERATOR
$(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 SUB

View File

@ -47,13 +47,13 @@ Sizes:
ARBOR 31591 -> 31744 -> 124 8
NIBEL 15467 -> 15616 -> 61 4
CABIN 15398 -> 15616 -> 61 4
GENERATOR 8434 -> 8448 -> 33 3
======== ===
381+4= 385 = 98k 25
414+5= 419 = 104k 28
disk3:
MECHE 28857 -> 28928 -> 113 8
SELENA 36912 -> 37120 -> 145 10
STONEY 40195 -> 40448 -> 158 10
GENERATOR 8434 -> 8448 -> 33 3
SUB 13786 -> 13824 -> 54 4
======== ====
503+5=508 = 127k 35

View File

@ -55,7 +55,9 @@ meche_graphics.inc: \
book_stairs_n.lzsa book_stairs_s.lzsa \
book_room_n.lzsa \
book_open_n.lzsa book_closed_n.lzsa \
blue_secret_door_w.lzsa blue_secret_room_w.lzsa \
blue_secret_door_w.lzsa \
blue_secret_room_n.lzsa blue_secret_room_s.lzsa blue_secret_room_e.lzsa blue_secret_room_w.lzsa \
blue_secret_room_jolt_n.lzsa \
red_secret_door_s.lzsa red_secret_room_s.lzsa
echo "departure_e_lzsa: .incbin \"departure_e.lzsa\"" > meche_graphics.inc
echo "arrival_w_lzsa: .incbin \"arrival_w.lzsa\"" >> meche_graphics.inc
@ -148,12 +150,13 @@ meche_graphics.inc: \
echo "book_closed_n_lzsa: .incbin \"book_closed_n.lzsa\"" >> meche_graphics.inc
echo "blue_secret_door_w_lzsa: .incbin \"blue_secret_door_w.lzsa\"" >> meche_graphics.inc
echo "blue_secret_room_w_lzsa: .incbin \"blue_secret_room_w.lzsa\"" >> meche_graphics.inc
echo "blue_secret_room_jolt_n_lzsa: .incbin \"blue_secret_room_jolt_n.lzsa\"" >> meche_graphics.inc
echo "blue_secret_room_e_lzsa: .incbin \"blue_secret_room_e.lzsa\"" >> meche_graphics.inc
echo "blue_secret_room_n_lzsa: .incbin \"blue_secret_room_n.lzsa\"" >> meche_graphics.inc
echo "blue_secret_room_s_lzsa: .incbin \"blue_secret_room_s.lzsa\"" >> meche_graphics.inc
echo "red_secret_door_s_lzsa: .incbin \"red_secret_door_s.lzsa\"" >> meche_graphics.inc
echo "red_secret_room_s_lzsa: .incbin \"red_secret_room_s.lzsa\"" >> meche_graphics.inc
%.gr: %.png
$(PNG2GR) $< $@

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 882 B

View File

@ -725,20 +725,20 @@ location38:
location39:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte MECHE_BLUE_ROOM_CENTER ; west exit
.byte MECHE_BLUE_ROOM_CENTER ; east exit
.byte $ff ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte $ff ; east exit_dir
.byte DIRECTION_W ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word $0000 ; east bg
.byte DIRECTION_E ; east exit_dir
.byte $ff ; west exit_dir
.word blue_secret_room_n_lzsa ; north bg
.word blue_secret_room_s_lzsa ; south bg
.word blue_secret_room_e_lzsa ; east bg
.word blue_secret_room_w_lzsa ; west bg
.byte BG_WEST
.byte DIRECTION_W
.byte 14,18 ; special x
.byte 32,40 ; special y
.byte BG_NORTH | BG_SOUTH | BG_EAST | BG_WEST
.byte DIRECTION_W|DIRECTION_N
.byte 8,18 ; special x
.byte 22,40 ; special y
.word meche_take_blue_page-1 ; special function
; MECHE_RED_SECRET_DOOR -- red room secret door

View File

@ -169,7 +169,7 @@ which_disk:
.byte '2' ; ARBOR
.byte '2' ; NIBEL
.byte '1' ; SHIP
.byte '3' ; GENERATOR
.byte '2' ; GENERATOR
.byte '1' ; D'NI
.byte '3' ; SUB

View File

@ -239,7 +239,40 @@ draw_red_page:
jmp put_sprite_crop ; tail call
;========================
; draw blue page
;========================
; also handle jolt
draw_blue_page:
lda DIRECTION
cmp #DIRECTION_W
beq actually_draw_blue_page
; else, jolting
lda ANIMATE_FRAME
beq not_done_jolt
lda FRAMEL
and #$f
bne not_done_jolt
lda #0
sta ANIMATE_FRAME
ldy #LOCATION_NORTH_BG
lda #<blue_secret_room_n_lzsa
sta location39,Y ; MECHE_BLUE_SECRET_ROOM
lda #>blue_secret_room_n_lzsa
sta location39+1,Y ; MECHE_BLUE_SECRET_ROOM
jsr change_direction
not_done_jolt:
rts
actually_draw_blue_page:
lda BLUE_PAGES_TAKEN
and #MECHE_PAGE
@ -265,6 +298,27 @@ meche_take_red_page:
jmp take_red_page
meche_take_blue_page:
lda DIRECTION
cmp #DIRECTION_W
beq actually_take_blue_page
; if not, jolt time
lda #1
sta ANIMATE_FRAME
lda #0
sta FRAMEL
ldy #LOCATION_NORTH_BG
lda #<blue_secret_room_jolt_n_lzsa
sta location39,Y ; MECHE_BLUE_SECRET_ROOM
lda #>blue_secret_room_jolt_n_lzsa
sta location39+1,Y ; MECHE_BLUE_SECRET_ROOM
jmp change_direction
actually_take_blue_page:
lda #MECHE_PAGE
jmp take_blue_page

View File

@ -53,9 +53,9 @@
.byte $00 ; MECHE_LOCK4 = $A8
.byte $00 ; HOLDING_PAGE = $A9
.byte $3
.byte $4
; RED_PAGE_COUNT = $AA
.byte $3
.byte $4
; BLUE_PAGE_COUNT = $AB