mist: can open bookshelf and go down hallway

This commit is contained in:
Vince Weaver 2020-04-01 16:45:13 -04:00
parent ec22cc583f
commit be59e45578
18 changed files with 179 additions and 5 deletions

View File

@ -82,6 +82,7 @@ octagon.o: octagon.s zp.inc hardware.inc common_defines.inc \
keyboard.s \
draw_pointer.s \
end_level.s \
octagon_bookshelf.s \
gr_copy.s audio.s text_print.s decompress_fast_v2.s
ca65 -o octagon.o octagon.s -l octagon.lst

View File

@ -124,6 +124,8 @@ OCTAGON_FRAME_DOOR = 9
OCTAGON_BLUE_BOOKSHELF = 10
OCTAGON_TOWER_ROTATION = 11
OCTAGON_BOOKSHELF_CLOSE = 12
OCTAGON_TOWER_HALL1 = 13
OCTAGON_TOWER_HALL2 = 14
; Mechanical Engineering

View File

@ -11,8 +11,10 @@ all: octagon_graphics.inc
octagon_graphics.inc: \
temple_door_n.lzsa temple_door_s.lzsa \
temple_door_closed_s.lzsa temple_door_closed_n.lzsa \
temple_center_n.lzsa temple_center_s.lzsa temple_center_e.lzsa \
temple_center_w.lzsa temple_center_up.lzsa \
temple_center_open_n.lzsa temple_center_closed_s.lzsa \
red_book_shelf.lzsa \
red_book_open.lzsa red_book_closed.lzsa \
red_book_static.lzsa red_book_static2.lzsa \
@ -21,14 +23,21 @@ octagon_graphics.inc: \
frame_door_open.lzsa \
frame_bookcase_open.lzsa \
blue_book_shelf.lzsa \
bookshelf_n.lzsa bookshelf_close_n.lzsa \
map.lzsa tower_rotation.lzsa
bookshelf_n.lzsa bookshelf_open_n.lzsa \
bookshelf_close_n.lzsa \
map.lzsa tower_rotation.lzsa \
tower_hall1_n.lzsa tower_hall1_s.lzsa \
tower_hall2_n.lzsa tower_hall2_s.lzsa
echo "temple_door_n_lzsa: .incbin \"temple_door_n.lzsa\"" > octagon_graphics.inc
echo "temple_door_s_lzsa: .incbin \"temple_door_s.lzsa\"" >> octagon_graphics.inc
echo "temple_door_closed_s_lzsa: .incbin \"temple_door_closed_s.lzsa\"" >> octagon_graphics.inc
echo "temple_door_closed_n_lzsa: .incbin \"temple_door_closed_n.lzsa\"" >> octagon_graphics.inc
echo "temple_center_n_lzsa: .incbin \"temple_center_n.lzsa\"" >> octagon_graphics.inc
echo "temple_center_s_lzsa: .incbin \"temple_center_s.lzsa\"" >> octagon_graphics.inc
echo "temple_center_e_lzsa: .incbin \"temple_center_e.lzsa\"" >> octagon_graphics.inc
echo "temple_center_w_lzsa: .incbin \"temple_center_w.lzsa\"" >> octagon_graphics.inc
echo "temple_center_open_n_lzsa: .incbin \"temple_center_open_n.lzsa\"" >> octagon_graphics.inc
echo "temple_center_closed_s_lzsa: .incbin \"temple_center_closed_s.lzsa\"" >> octagon_graphics.inc
echo "temple_center_up_lzsa: .incbin \"temple_center_up.lzsa\"" >> octagon_graphics.inc
echo "red_book_open_lzsa: .incbin \"red_book_open.lzsa\"" >> octagon_graphics.inc
echo "red_book_closed_lzsa: .incbin \"red_book_closed.lzsa\"" >> octagon_graphics.inc
@ -42,9 +51,16 @@ octagon_graphics.inc: \
echo "frame_bookcase_open_lzsa: .incbin \"frame_bookcase_open.lzsa\"" >> octagon_graphics.inc
echo "blue_book_shelf_lzsa: .incbin \"blue_book_shelf.lzsa\"" >> octagon_graphics.inc
echo "bookshelf_n_lzsa: .incbin \"bookshelf_n.lzsa\"" >> octagon_graphics.inc
echo "bookshelf_open_n_lzsa: .incbin \"bookshelf_open_n.lzsa\"" >> octagon_graphics.inc
echo "bookshelf_close_n_lzsa: .incbin \"bookshelf_close_n.lzsa\"" >> octagon_graphics.inc
echo "map_lzsa: .incbin \"map.lzsa\"" >> octagon_graphics.inc
echo "tower_rotation_lzsa: .incbin \"tower_rotation.lzsa\"" >> octagon_graphics.inc
echo "tower_hall1_n_lzsa: .incbin \"tower_hall1_n.lzsa\"" >> octagon_graphics.inc
echo "tower_hall1_s_lzsa: .incbin \"tower_hall1_s.lzsa\"" >> octagon_graphics.inc
echo "tower_hall2_n_lzsa: .incbin \"tower_hall2_n.lzsa\"" >> octagon_graphics.inc
echo "tower_hall2_s_lzsa: .incbin \"tower_hall2_s.lzsa\"" >> octagon_graphics.inc
%.gr: %.png
$(PNG2GR) $< $@

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 842 B

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 887 B

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 881 B

View File

@ -7,7 +7,7 @@ locations:
.word location0, location1, location2, location3
.word location4, location5, location6, location7
.word location8, location9, location10,location11
.word location12
.word location12,location13,location14
; OCTAGON_TEMPLE_DOORWAY -- temple doorway
location0:
@ -154,7 +154,10 @@ location7:
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH
.byte $ff
.byte DIRECTION_N ; special exit
.byte 15,25 ; special x
.byte 12,28 ; special y
.word open_bookshelf-1 ; special function
; OCTAGON_BOOKSHELF -- the bookcase
@ -189,7 +192,11 @@ location9:
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH
.byte $ff
.byte DIRECTION_N ; special exit
.byte 15,25 ; special x
.byte 12,28 ; special y
.word close_bookshelf-1 ; special function
; OCTAGON_BLUE_BOOKSHELF -- the blue bookshelf
location10:
@ -241,3 +248,38 @@ location12:
.word $0000 ; west bg
.byte BG_NORTH
.byte $ff
; OCTAGON_TOWER_HALL1 -- hallway to tower
location13:
.byte OCTAGON_TOWER_HALL2 ; north exit
.byte OCTAGON_TEMPLE_CENTER ; south exit
.byte $ff ; east exit
.byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir
.byte $ff ; west exit_dir
.word tower_hall1_n_lzsa ; north bg
.word tower_hall1_s_lzsa ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH
.byte $ff
; OCTAGON_TOWER_HALL2 -- hallway to tower
location14:
.byte $ff ; north exit
.byte OCTAGON_TOWER_HALL1 ; south exit
.byte $ff ; east exit
.byte $ff ; west exit
.byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir
.byte $ff ; west exit_dir
.word tower_hall2_n_lzsa ; north bg
.word tower_hall2_s_lzsa ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH
.byte $ff

View File

@ -230,6 +230,8 @@ done_goto:
.include "brother_books.s"
.include "octagon_bookshelf.s"
; linking books
; letters

111
mist/octagon_bookshelf.s Normal file
View File

@ -0,0 +1,111 @@
open_bookshelf:
; change background of center room N
ldy #LOCATION_NORTH_BG
lda #<temple_center_open_n_lzsa
sta location1,Y
lda #>temple_center_open_n_lzsa
sta location1+1,Y
; change background of bookshelf N
lda #<bookshelf_open_n_lzsa
sta location8,Y
lda #>bookshelf_open_n_lzsa
sta location8+1,Y
; change background of door N
lda #<temple_door_closed_n_lzsa
sta location0,Y
lda #>temple_door_closed_n_lzsa
sta location0+1,Y
; change background of center room S
ldy #LOCATION_SOUTH_BG
lda #<temple_center_closed_s_lzsa
sta location1,Y
lda #>temple_center_closed_s_lzsa
sta location1+1,Y
; change background of door S
lda #<temple_door_closed_s_lzsa
sta location0,Y
lda #>temple_door_closed_s_lzsa
sta location0+1,Y
; disable exit to S
ldy #LOCATION_SPECIAL_EXIT
lda #$ff
sta location0,Y
; enable exit to N
ldy #LOCATION_NORTH_EXIT
lda #OCTAGON_TOWER_HALL1
sta location8,Y
; start animation
rts
close_bookshelf:
; change background of center room N
ldy #LOCATION_NORTH_BG
lda #<temple_center_n_lzsa
sta location1,Y
lda #>temple_center_n_lzsa
sta location1+1,Y
; change background of bookshelf N
lda #<bookshelf_n_lzsa
sta location8,Y
lda #>bookshelf_n_lzsa
sta location8+1,Y
; change background of door N
lda #<temple_door_n_lzsa
sta location0,Y
lda #>temple_door_n_lzsa
sta location0+1,Y
; change background of center room S
ldy #LOCATION_SOUTH_BG
lda #<temple_center_s_lzsa
sta location1,Y
lda #>temple_center_s_lzsa
sta location1+1,Y
; change background of door S
lda #<temple_door_s_lzsa
sta location0,Y
lda #>temple_door_s_lzsa
sta location0+1,Y
; re-enable exit to S
ldy #LOCATION_SPECIAL_EXIT
lda #DIRECTION_S
sta location0,Y
; disable exit to N
ldy #LOCATION_NORTH_EXIT
lda #OCTAGON_BOOKSHELF_CLOSE
sta location8,Y
; start animation
rts