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 \ keyboard.s \
draw_pointer.s \ draw_pointer.s \
end_level.s \ end_level.s \
octagon_bookshelf.s \
gr_copy.s audio.s text_print.s decompress_fast_v2.s gr_copy.s audio.s text_print.s decompress_fast_v2.s
ca65 -o octagon.o octagon.s -l octagon.lst ca65 -o octagon.o octagon.s -l octagon.lst

View File

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

View File

@ -11,8 +11,10 @@ all: octagon_graphics.inc
octagon_graphics.inc: \ octagon_graphics.inc: \
temple_door_n.lzsa temple_door_s.lzsa \ 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_n.lzsa temple_center_s.lzsa temple_center_e.lzsa \
temple_center_w.lzsa temple_center_up.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_shelf.lzsa \
red_book_open.lzsa red_book_closed.lzsa \ red_book_open.lzsa red_book_closed.lzsa \
red_book_static.lzsa red_book_static2.lzsa \ red_book_static.lzsa red_book_static2.lzsa \
@ -21,14 +23,21 @@ octagon_graphics.inc: \
frame_door_open.lzsa \ frame_door_open.lzsa \
frame_bookcase_open.lzsa \ frame_bookcase_open.lzsa \
blue_book_shelf.lzsa \ blue_book_shelf.lzsa \
bookshelf_n.lzsa bookshelf_close_n.lzsa \ bookshelf_n.lzsa bookshelf_open_n.lzsa \
map.lzsa tower_rotation.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_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_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_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_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_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_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 "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_open_lzsa: .incbin \"red_book_open.lzsa\"" >> octagon_graphics.inc
echo "red_book_closed_lzsa: .incbin \"red_book_closed.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 "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 "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_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 "bookshelf_close_n_lzsa: .incbin \"bookshelf_close_n.lzsa\"" >> octagon_graphics.inc
echo "map_lzsa: .incbin \"map.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_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 %.gr: %.png
$(PNG2GR) $< $@ $(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 location0, location1, location2, location3
.word location4, location5, location6, location7 .word location4, location5, location6, location7
.word location8, location9, location10,location11 .word location8, location9, location10,location11
.word location12 .word location12,location13,location14
; OCTAGON_TEMPLE_DOORWAY -- temple doorway ; OCTAGON_TEMPLE_DOORWAY -- temple doorway
location0: location0:
@ -154,7 +154,10 @@ location7:
.word $0000 ; east bg .word $0000 ; east bg
.word $0000 ; west bg .word $0000 ; west bg
.byte BG_NORTH .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 ; OCTAGON_BOOKSHELF -- the bookcase
@ -189,7 +192,11 @@ location9:
.word $0000 ; east bg .word $0000 ; east bg
.word $0000 ; west bg .word $0000 ; west bg
.byte BG_NORTH .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 ; OCTAGON_BLUE_BOOKSHELF -- the blue bookshelf
location10: location10:
@ -241,3 +248,38 @@ location12:
.word $0000 ; west bg .word $0000 ; west bg
.byte BG_NORTH .byte BG_NORTH
.byte $ff .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 "brother_books.s"
.include "octagon_bookshelf.s"
; linking books ; linking books
; letters ; 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