mist: nibel: can get the red page
@ -406,8 +406,9 @@ NIBEL_RED_PATH1 = 9
|
||||
NIBEL_RED_DOOR_CLOSED = 10
|
||||
NIBEL_RED_DOOR_OPEN = 11
|
||||
NIBEL_RED_ROOM = 12
|
||||
NIBEL_RED_BED = 13
|
||||
NIBEL_RED_BED_OPEN = 14
|
||||
NIBEL_RED_TABLE = 15
|
||||
NIBEL_RED_TABLE_OPEN = 16
|
||||
NIBEL_RED_TABLE = 13
|
||||
NIBEL_RED_TABLE_OPEN = 14
|
||||
NIBEL_RED_BED = 15
|
||||
NIBEL_RED_BED_OPEN = 16
|
||||
|
||||
|
||||
|
@ -15,7 +15,11 @@ nibel_graphics.inc: \
|
||||
blue_path2_n.lzsa blue_path2_s.lzsa \
|
||||
blue_path3_n.lzsa blue_path3_s.lzsa \
|
||||
blue_house_n.lzsa blue_house_s.lzsa blue_house_e.lzsa blue_house_w.lzsa \
|
||||
projector_e.lzsa
|
||||
projector_e.lzsa \
|
||||
red_path1_e.lzsa red_path1_w.lzsa \
|
||||
red_room_n.lzsa red_room_s.lzsa red_room_e.lzsa red_room_w.lzsa \
|
||||
red_door_e.lzsa red_door_closed_w.lzsa red_door_open_w.lzsa \
|
||||
red_room_table_s.lzsa red_room_table_open_s.lzsa
|
||||
echo "elevator2_open_top_lzsa: .incbin \"elevator2_open_top.lzsa\"" > nibel_graphics.inc
|
||||
echo "elevator2_closed_top_lzsa: .incbin \"elevator2_closed_top.lzsa\"" >> nibel_graphics.inc
|
||||
echo "outside_elevator2_e_lzsa: .incbin \"outside_elevator2_e.lzsa\"" >> nibel_graphics.inc
|
||||
@ -32,9 +36,17 @@ nibel_graphics.inc: \
|
||||
echo "blue_house_e_lzsa: .incbin \"blue_house_e.lzsa\"" >> nibel_graphics.inc
|
||||
echo "blue_house_w_lzsa: .incbin \"blue_house_w.lzsa\"" >> nibel_graphics.inc
|
||||
echo "projector_e_lzsa: .incbin \"projector_e.lzsa\"" >> nibel_graphics.inc
|
||||
|
||||
|
||||
|
||||
echo "red_path1_e_lzsa: .incbin \"red_path1_e.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_path1_w_lzsa: .incbin \"red_path1_w.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_room_n_lzsa: .incbin \"red_room_n.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_room_s_lzsa: .incbin \"red_room_s.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_room_e_lzsa: .incbin \"red_room_e.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_room_w_lzsa: .incbin \"red_room_w.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_door_e_lzsa: .incbin \"red_door_e.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_door_open_w_lzsa: .incbin \"red_door_open_w.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_door_closed_w_lzsa: .incbin \"red_door_closed_w.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_room_table_s_lzsa: .incbin \"red_room_table_s.lzsa\"" >> nibel_graphics.inc
|
||||
echo "red_room_table_open_s_lzsa: .incbin \"red_room_table_open_s.lzsa\"" >> nibel_graphics.inc
|
||||
|
||||
|
||||
%.gr: %.png
|
||||
|
BIN
mist/graphics_nibel/red_door_closed_w.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
mist/graphics_nibel/red_door_e.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
mist/graphics_nibel/red_door_open_w.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
mist/graphics_nibel/red_path1_e.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
mist/graphics_nibel/red_path1_w.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
mist/graphics_nibel/red_room_e.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
mist/graphics_nibel/red_room_n.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
mist/graphics_nibel/red_room_s.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
mist/graphics_nibel/red_room_table_open_s.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
mist/graphics_nibel/red_room_table_s.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
mist/graphics_nibel/red_room_w.png
Normal file
After Width: | Height: | Size: 15 KiB |
@ -5,7 +5,8 @@
|
||||
locations:
|
||||
.word location0, location1, location2, location3
|
||||
.word location4, location5, location6, location7
|
||||
.word location8
|
||||
.word location8, location9, location10,location11
|
||||
.word location12,location13,location14
|
||||
|
||||
; NIBEL_IN_ELEV2_TOP_CLOSED -- inside elevator2 at top, door closed
|
||||
location0:
|
||||
@ -52,24 +53,28 @@ location2:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte NIBEL_BLUE_PATH1 ; east exit
|
||||
.byte NIBEL_IN_ELEV2_TOP_OPEN ; west exit
|
||||
.byte NIBEL_RED_PATH1 ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_S ; east exit_dir
|
||||
.byte DIRECTION_E ; west exit_dir
|
||||
.byte DIRECTION_W ; west exit_dir
|
||||
.word $0000 ; north bg
|
||||
.word $0000 ; south bg
|
||||
.word outside_elevator2_e_lzsa ; east bg
|
||||
.word outside_elevator2_open_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
.byte DIRECTION_W ; special exit
|
||||
.byte 5,15 ; special x
|
||||
.byte 8,34 ; special y
|
||||
.word nibel_getin_elevator-1 ; special function
|
||||
|
||||
|
||||
; NIBEL_OUTSIDE_ELEV2_CLOSED -- outside of elevator2 at top, door closed
|
||||
location3:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte NIBEL_BLUE_PATH1 ; east exit
|
||||
.byte NIBEL_OUTSIDE_ELEV2_OPEN ; west exit
|
||||
.byte NIBEL_RED_PATH1 ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_S ; east exit_dir
|
||||
@ -79,7 +84,10 @@ location3:
|
||||
.word outside_elevator2_e_lzsa ; east bg
|
||||
.word outside_elevator2_closed_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
.byte DIRECTION_W ; special exit
|
||||
.byte 5,15 ; special x
|
||||
.byte 8,34 ; special y
|
||||
.word nibel_open_elevator-1 ; special function
|
||||
|
||||
; NIBEL_BLUE_PATH1 -- path 1 to blue house
|
||||
location4:
|
||||
@ -152,8 +160,6 @@ location7:
|
||||
.byte 40,46 ; special y
|
||||
.word nibel_take_blue_page-1 ; special function
|
||||
|
||||
|
||||
|
||||
; NIBEL_BLUE_HOUSE_VIEWER -- blue house viewer machine
|
||||
location8:
|
||||
.byte $ff ; north exit
|
||||
@ -174,3 +180,111 @@ location8:
|
||||
.byte 34,40 ; special y
|
||||
.word projector_button-1 ; special function
|
||||
|
||||
; NIBEL_RED_PATH1 -- path 1 to red house
|
||||
location9:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte NIBEL_OUTSIDE_ELEV2_CLOSED ; east exit
|
||||
.byte NIBEL_RED_DOOR_CLOSED ; 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 red_path1_e_lzsa ; east bg
|
||||
.word red_path1_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
|
||||
; NIBEL_RED_DOOR_CLOSED -- outside red house
|
||||
location10:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte NIBEL_RED_PATH1 ; east exit
|
||||
.byte NIBEL_RED_DOOR_OPEN ; 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 red_door_e_lzsa ; east bg
|
||||
.word red_door_closed_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
|
||||
; NIBEL_RED_DOOR_OPEN -- outside red house, door open
|
||||
location11:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte NIBEL_RED_PATH1 ; east exit
|
||||
.byte NIBEL_RED_ROOM ; 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 red_door_e_lzsa ; east bg
|
||||
.word red_door_open_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
|
||||
; NIBEL_RED_ROOM -- inside red room
|
||||
location12:
|
||||
.byte $ff ; north exit
|
||||
.byte NIBEL_RED_TABLE ; south exit
|
||||
.byte NIBEL_RED_DOOR_CLOSED ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte DIRECTION_S ; south exit_dir
|
||||
.byte DIRECTION_E ; east exit_dir
|
||||
.byte $ff ; west exit_dir
|
||||
.word red_room_n_lzsa ; north bg
|
||||
.word red_room_s_lzsa ; south bg
|
||||
.word red_room_e_lzsa ; east bg
|
||||
.word red_room_w_lzsa ; west bg
|
||||
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
|
||||
; NIBEL_RED_TABLE -- windmill table closeup
|
||||
location13:
|
||||
.byte $ff ; north exit
|
||||
.byte NIBEL_RED_ROOM ; 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 $0000 ; north bg
|
||||
.word red_room_table_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_SOUTH
|
||||
.byte DIRECTION_S ; special exit
|
||||
.byte 10,30 ; special x
|
||||
.byte 34,44 ; special y
|
||||
.word nibel_open_drawer-1 ; special function
|
||||
|
||||
|
||||
; NIBEL_RED_TABLE_OPEN -- windmill table closeup, open with red page
|
||||
location14:
|
||||
.byte $ff ; north exit
|
||||
.byte NIBEL_RED_ROOM ; 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 $0000 ; north bg
|
||||
.word red_room_table_open_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_SOUTH
|
||||
.byte DIRECTION_S ; special exit
|
||||
.byte 12,20 ; special x
|
||||
.byte 36,46 ; special y
|
||||
.word nibel_take_red_page-1 ; special function
|
||||
|
@ -75,6 +75,8 @@ game_loop:
|
||||
lda LOCATION
|
||||
cmp #NIBEL_BLUE_ROOM
|
||||
beq fg_draw_blue_page
|
||||
cmp #NIBEL_RED_TABLE_OPEN
|
||||
beq fg_draw_red_page
|
||||
cmp #NIBEL_BLUE_HOUSE_VIEWER
|
||||
beq animate_viewer
|
||||
|
||||
@ -84,6 +86,11 @@ fg_draw_blue_page:
|
||||
jsr draw_blue_page
|
||||
jmp nothing_special
|
||||
|
||||
fg_draw_red_page:
|
||||
jsr draw_red_page
|
||||
jmp nothing_special
|
||||
|
||||
|
||||
animate_viewer:
|
||||
lda ANIMATE_FRAME
|
||||
beq nothing_special
|
||||
|
@ -75,6 +75,29 @@ no_draw_page:
|
||||
rts
|
||||
|
||||
|
||||
|
||||
draw_red_page:
|
||||
lda DIRECTION
|
||||
cmp #DIRECTION_S
|
||||
bne no_draw_page
|
||||
|
||||
lda RED_PAGES_TAKEN
|
||||
and #CHANNEL_PAGE
|
||||
bne no_draw_page
|
||||
|
||||
lda #13
|
||||
sta XPOS
|
||||
lda #36
|
||||
sta YPOS
|
||||
|
||||
lda #<red_page_sprite
|
||||
sta INL
|
||||
lda #>red_page_sprite
|
||||
sta INH
|
||||
|
||||
jmp put_sprite_crop ; tail call
|
||||
|
||||
|
||||
projector_button:
|
||||
|
||||
lda DRAW_PAGE
|
||||
@ -179,6 +202,41 @@ done_buttons:
|
||||
rts
|
||||
|
||||
|
||||
;=============================
|
||||
; open the elevator door
|
||||
;=============================
|
||||
nibel_open_elevator:
|
||||
|
||||
lda #NIBEL_OUTSIDE_ELEV2_OPEN
|
||||
sta LOCATION
|
||||
|
||||
jmp change_location
|
||||
|
||||
;=============================
|
||||
; get into the elevator
|
||||
;=============================
|
||||
nibel_getin_elevator:
|
||||
|
||||
lda #NIBEL_IN_ELEV2_TOP_OPEN
|
||||
sta LOCATION
|
||||
|
||||
lda #DIRECTION_E
|
||||
sta DIRECTION
|
||||
|
||||
jmp change_location
|
||||
|
||||
|
||||
|
||||
;=============================
|
||||
; open the drawer in red room
|
||||
;=============================
|
||||
nibel_open_drawer:
|
||||
|
||||
lda #NIBEL_RED_TABLE_OPEN
|
||||
sta LOCATION
|
||||
|
||||
jmp change_location
|
||||
|
||||
|
||||
|
||||
; viewer
|
||||
|