mist: viewer: add another step, add views of ship

also fix bug in mist where first background drawn befor updating bgs
This commit is contained in:
Vince Weaver 2020-07-20 16:03:12 -04:00
parent 0d6b366520
commit e05ea0e865
12 changed files with 82 additions and 28 deletions

View File

@ -3,11 +3,10 @@ For release 1.0
+ LOADER
-- save game
-- joystick support
-- ^T to toggle sound
+ MIST
-- make sure gear opening looks OK with new art
-- open door to clock puzzle?
-- only allow entering ship if it's up
+ OCTAGON
-- load "red page" sound into LC and play it?
@ -31,16 +30,16 @@ For release 1.0
+ NIBEL
-- turn on sprite crop in the viewer part
+ DNI
-- add good ending
linking book to MYST
+ VIEWER
-- have ship up background if ship up
Done:
+ CABIN
+ DENTIST
+ DNI
+ MECHE
+ MIST_TITLE
+ VIEWER
+ ARBOR
+ SHIP

View File

@ -259,10 +259,11 @@ SELENA_BUNKER_KEYPAD = 49
; Viewer Room
VIEWER_STEPS = 0
VIEWER_POOL = 1
VIEWER_POOL_CLOSE = 2
VIEWER_CONTROL_PANEL = 3
VIEWER_ENTRANCE = 0
VIEWER_STEPS = 1
VIEWER_POOL = 2
VIEWER_POOL_CLOSE = 3
VIEWER_CONTROL_PANEL = 4
; Ship
SHIP_STERN = 0

View File

@ -12,13 +12,21 @@ viewer_graphics.inc: \
viewer_e.lzsa viewer_w.lzsa \
viewer_far_w.lzsa \
viewer_stairs_e.lzsa viewer_stairs_w.lzsa \
viewer_controls_e.lzsa
viewer_stairs_ship_e.lzsa \
viewer_controls_e.lzsa \
viewer_entrance_e.lzsa viewer_entrance_ship_e.lzsa \
viewer_entrance_w.lzsa
echo "viewer_e_lzsa: .incbin \"viewer_e.lzsa\"" > viewer_graphics.inc
echo "viewer_far_w_lzsa: .incbin \"viewer_far_w.lzsa\"" >> viewer_graphics.inc
echo "viewer_w_lzsa: .incbin \"viewer_w.lzsa\"" >> viewer_graphics.inc
echo "viewer_stairs_e_lzsa: .incbin \"viewer_stairs_e.lzsa\"" >> viewer_graphics.inc
echo "viewer_stairs_ship_e_lzsa: .incbin \"viewer_stairs_ship_e.lzsa\"" >> viewer_graphics.inc
echo "viewer_stairs_w_lzsa: .incbin \"viewer_stairs_w.lzsa\"" >> viewer_graphics.inc
echo "viewer_controls_e_lzsa: .incbin \"viewer_controls_e.lzsa\"" >> viewer_graphics.inc
echo "viewer_entrance_e_lzsa: .incbin \"viewer_entrance_e.lzsa\"" >> viewer_graphics.inc
echo "viewer_entrance_ship_e_lzsa: .incbin \"viewer_entrance_ship_e.lzsa\"" >> viewer_graphics.inc
echo "viewer_entrance_w_lzsa: .incbin \"viewer_entrance_w.lzsa\"" >> viewer_graphics.inc
%.gr: %.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -5,12 +5,33 @@
locations:
.word location0, location1, location2, location3
.word location4
; VIEWER_STEPS -- steps
; VIEWER_ENTRANCE -- top of steps
location0:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte VIEWER_STEPS ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir
.byte DIRECTION_W ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word viewer_entrance_e_lzsa ; east bg
.word viewer_entrance_w_lzsa ; west bg
.byte BG_WEST | BG_EAST
.byte DIRECTION_E ; special exit
.byte 9,29 ; special x
.byte 2,46 ; special y
.word back_to_mist-1 ; special function
; VIEWER_STEPS -- steps
location1:
.byte $ff ; north exit
.byte $ff ; south exit
.byte VIEWER_ENTRANCE ; east exit
.byte VIEWER_POOL ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
@ -21,13 +42,10 @@ location0:
.word viewer_stairs_e_lzsa ; east bg
.word viewer_stairs_w_lzsa ; west bg
.byte BG_WEST | BG_EAST
.byte DIRECTION_E ; special exit
.byte 9,29 ; special x
.byte 2,46 ; special y
.word back_to_mist-1 ; special function
.byte $ff ; special exit
; VIEWER_POOL -- the viewer far
location1:
location2:
.byte $ff ; north exit
.byte $ff ; south exit
.byte VIEWER_STEPS ; east exit
@ -47,7 +65,7 @@ location1:
.word enter_control_panel-1 ; special function
; VIEWER_POOL_CLOSE -- the viewer close
location2:
location3:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
@ -69,7 +87,7 @@ location2:
; VIEWER_CONTROL_PANEL -- the viewer control panel
location3:
location4:
.byte $ff ; north exit
.byte $ff ; south exit
.byte VIEWER_POOL ; east exit

View File

@ -44,13 +44,6 @@ mist_start:
sta CURSOR_X
sta CURSOR_Y
; set up initial location
jsr change_location
lda #1
sta CURSOR_VISIBLE ; visible at first
; init the clock bridge
jsr raise_bridge
@ -58,8 +51,15 @@ mist_start:
jsr open_the_gear
; make the ship right
jsr adjust_ship
; set up initial location
jsr change_location
lda #1
sta CURSOR_VISIBLE ; visible at first
game_loop:
;=================
@ -244,7 +244,7 @@ goto_dentist:
enter_viewer:
lda #VIEWER_STEPS
lda #VIEWER_ENTRANCE
sta LOCATION
lda #LOAD_VIEWER

View File

@ -86,9 +86,10 @@ make_ship_up:
lda #<dock_shipup_e_lzsa
sta location0,Y ; MIST_ARRIVAL_DOCK
sta location30,Y ; MIST_VIEWER_DOOR
lda #>dock_shipup_e_lzsa
sta location0+1,Y ; MIST_ARRIVAL_DOCK
sta location30+1,Y ; MIST_VIEWER_DOOR
; FIXME: hook up exit on dock to ship
@ -171,8 +172,10 @@ make_ship_down:
lda #<dock_e_lzsa
sta location0,Y ; MIST_ARRIVAL_DOCK
sta location30,Y ; MIST_VIEWER_DOOR
lda #>dock_e_lzsa
sta location0+1,Y ; MIST_ARRIVAL_DOCK
sta location30+1,Y ; MIST_VIEWER_DOOR
; FIXME: remove exit on dock to ship

View File

@ -40,6 +40,9 @@ viewer_start:
sta CURSOR_X
sta CURSOR_Y
; set up ship backgrounds
jsr setup_backgrounds
; set up initial location
jsr change_location
@ -152,6 +155,28 @@ back_to_mist:
rts
; handle ship up or down
setup_backgrounds:
lda SHIP_RAISED
beq done_raised
ldy #LOCATION_EAST_BG
lda #<viewer_entrance_ship_e_lzsa
sta location0,Y ; VIEWER_ENTRANCE
lda #>viewer_entrance_ship_e_lzsa
sta location0+1,Y ; VIEWER_ENTRANCE
lda #<viewer_stairs_ship_e_lzsa
sta location1,Y ; VIEWER_SHIP
lda #>viewer_stairs_ship_e_lzsa
sta location1+1,Y ; VIEWER_SHIP
done_raised:
rts
;==========================
; includes
;==========================