mist: arbor: can walk to switch
|
@ -53,6 +53,8 @@ arbor_start:
|
||||||
lda #0
|
lda #0
|
||||||
sta ANIMATE_FRAME
|
sta ANIMATE_FRAME
|
||||||
|
|
||||||
|
; update state of switch-related stuff
|
||||||
|
jsr update_arbor_state
|
||||||
|
|
||||||
game_loop:
|
game_loop:
|
||||||
;=================
|
;=================
|
||||||
|
|
|
@ -36,3 +36,66 @@ elev1_close_door:
|
||||||
jmp change_location
|
jmp change_location
|
||||||
|
|
||||||
|
|
||||||
|
;==================================
|
||||||
|
; hut handle, toggle top stair gate
|
||||||
|
hut_handle:
|
||||||
|
lda CHANNEL_SWITCHES
|
||||||
|
eor #CHANNEL_SW_GATE_TOP
|
||||||
|
sta CHANNEL_SWITCHES
|
||||||
|
jsr update_arbor_state
|
||||||
|
jmp change_location
|
||||||
|
|
||||||
|
|
||||||
|
;===============================================
|
||||||
|
; update all backgrounds based on switch states
|
||||||
|
|
||||||
|
update_arbor_state:
|
||||||
|
|
||||||
|
lda CHANNEL_SWITCHES
|
||||||
|
and #CHANNEL_SW_GATE_TOP
|
||||||
|
beq top_gate_closed
|
||||||
|
|
||||||
|
top_gate_open:
|
||||||
|
|
||||||
|
; change top gate to open
|
||||||
|
ldy #LOCATION_SOUTH_BG
|
||||||
|
|
||||||
|
lda #<switch_hut_open_s_lzsa
|
||||||
|
sta location14,Y ; ARBOR_SWITCH_HUT
|
||||||
|
lda #>switch_hut_open_s_lzsa
|
||||||
|
sta location14+1,Y ; ARBOR_SWITCH_HUT
|
||||||
|
|
||||||
|
; FIXME: change gate graphic close
|
||||||
|
; FIXME: change gate exit
|
||||||
|
; change to allow crossing bridge
|
||||||
|
; ldy #LOCATION_EAST_EXIT
|
||||||
|
; lda #CHANNEL_AFTER_BRIDGE1
|
||||||
|
; sta location3,Y ; CHANNEL_BRIDGE
|
||||||
|
|
||||||
|
jmp top_gate_done
|
||||||
|
top_gate_closed:
|
||||||
|
|
||||||
|
; change top gate to open
|
||||||
|
ldy #LOCATION_SOUTH_BG
|
||||||
|
|
||||||
|
lda #<switch_hut_closed_s_lzsa
|
||||||
|
sta location14,Y ; ARBOR_SWITCH_HUT
|
||||||
|
lda #>switch_hut_closed_s_lzsa
|
||||||
|
sta location14+1,Y ; ARBOR_SWITCH_HUT
|
||||||
|
|
||||||
|
; FIXME: change gate graphic close
|
||||||
|
; FIXME: change gate exit
|
||||||
|
; change to allow crossing bridge
|
||||||
|
; ldy #LOCATION_EAST_EXIT
|
||||||
|
; lda #CHANNEL_AFTER_BRIDGE1
|
||||||
|
; sta location3,Y ; CHANNEL_BRIDGE
|
||||||
|
|
||||||
|
|
||||||
|
top_gate_done:
|
||||||
|
|
||||||
|
done_update_arbor_state:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -369,3 +369,7 @@ ARBOR_SHACK1 = 7
|
||||||
ARBOR_BRIDGE3 = 8
|
ARBOR_BRIDGE3 = 8
|
||||||
ARBOR_LONGSHACK1 = 9
|
ARBOR_LONGSHACK1 = 9
|
||||||
ARBOR_LONGSHACK2 = 10
|
ARBOR_LONGSHACK2 = 10
|
||||||
|
ARBOR_SWITCH_BRIDGE1 = 11
|
||||||
|
ARBOR_SWITCH_HUT1 = 12
|
||||||
|
ARBOR_SWITCH_BRIDGE2 = 13
|
||||||
|
ARBOR_SWITCH_HUT = 14
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
|
|
||||||
; want to load this to address $80
|
; want to load this to address $80
|
||||||
|
|
||||||
.byte LOAD_OCTAGON ; WHICH_LOAD = $80
|
.byte LOAD_ARBOR ; WHICH_LOAD = $80
|
||||||
.byte DIRECTION_S ; DIRECTION = $81
|
.byte DIRECTION_W ; DIRECTION = $81
|
||||||
.byte OCTAGON_TEMPLE_CENTER ; LOCATION = $82
|
.byte ARBOR_ARRIVAL_CLOSED ; LOCATION = $82
|
||||||
.byte $00 ; RED_PAGES_TAKEN = $83
|
.byte $00 ; RED_PAGES_TAKEN = $83
|
||||||
.byte $00 ; BLUE_PAGES_TAKEN = $84
|
.byte $00 ; BLUE_PAGES_TAKEN = $84
|
||||||
.byte $00 ; CLOCK_BRIDGE = $85
|
.byte $00 ; CLOCK_BRIDGE = $85
|
||||||
|
|
|
@ -17,7 +17,11 @@ arbor_graphics.inc: \
|
||||||
shack1_n.lzsa shack1_s.lzsa shack1_e.lzsa shack1_w.lzsa \
|
shack1_n.lzsa shack1_s.lzsa shack1_e.lzsa shack1_w.lzsa \
|
||||||
bridge3_e.lzsa bridge3_w.lzsa \
|
bridge3_e.lzsa bridge3_w.lzsa \
|
||||||
longshack1_e.lzsa longshack1_w.lzsa \
|
longshack1_e.lzsa longshack1_w.lzsa \
|
||||||
longshack2_e.lzsa longshack2_w.lzsa longshack2_n.lzsa longshack2_s.lzsa
|
longshack2_e.lzsa longshack2_w.lzsa longshack2_n.lzsa longshack2_s.lzsa \
|
||||||
|
switch_bridge1_n.lzsa switch_bridge1_s.lzsa \
|
||||||
|
switch_hut1_n.lzsa switch_hut1_e.lzsa \
|
||||||
|
switch_bridge2_e.lzsa switch_bridge2_w.lzsa \
|
||||||
|
switch_hut_w.lzsa switch_hut_closed_s.lzsa switch_hut_open_s.lzsa
|
||||||
echo "arrival_e_lzsa: .incbin \"arrival_e.lzsa\"" > arbor_graphics.inc
|
echo "arrival_e_lzsa: .incbin \"arrival_e.lzsa\"" > arbor_graphics.inc
|
||||||
echo "arrival_open_e_lzsa: .incbin \"arrival_open_e.lzsa\"" >> arbor_graphics.inc
|
echo "arrival_open_e_lzsa: .incbin \"arrival_open_e.lzsa\"" >> arbor_graphics.inc
|
||||||
echo "arrival_w_lzsa: .incbin \"arrival_w.lzsa\"" >> arbor_graphics.inc
|
echo "arrival_w_lzsa: .incbin \"arrival_w.lzsa\"" >> arbor_graphics.inc
|
||||||
|
@ -41,6 +45,16 @@ arbor_graphics.inc: \
|
||||||
echo "longshack2_w_lzsa: .incbin \"longshack2_w.lzsa\"" >> arbor_graphics.inc
|
echo "longshack2_w_lzsa: .incbin \"longshack2_w.lzsa\"" >> arbor_graphics.inc
|
||||||
echo "longshack2_n_lzsa: .incbin \"longshack2_n.lzsa\"" >> arbor_graphics.inc
|
echo "longshack2_n_lzsa: .incbin \"longshack2_n.lzsa\"" >> arbor_graphics.inc
|
||||||
echo "longshack2_s_lzsa: .incbin \"longshack2_s.lzsa\"" >> arbor_graphics.inc
|
echo "longshack2_s_lzsa: .incbin \"longshack2_s.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_bridge1_n_lzsa: .incbin \"switch_bridge1_n.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_bridge1_s_lzsa: .incbin \"switch_bridge1_s.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_hut1_n_lzsa: .incbin \"switch_hut1_n.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_hut1_e_lzsa: .incbin \"switch_hut1_e.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_bridge2_e_lzsa: .incbin \"switch_bridge2_e.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_bridge2_w_lzsa: .incbin \"switch_bridge2_w.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_hut_w_lzsa: .incbin \"switch_hut_w.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_hut_closed_s_lzsa: .incbin \"switch_hut_closed_s.lzsa\"" >> arbor_graphics.inc
|
||||||
|
echo "switch_hut_open_s_lzsa: .incbin \"switch_hut_open_s.lzsa\"" >> arbor_graphics.inc
|
||||||
|
|
||||||
|
|
||||||
%.gr: %.png
|
%.gr: %.png
|
||||||
$(PNG2GR) $< $@
|
$(PNG2GR) $< $@
|
||||||
|
|
BIN
mist/graphics_arbor/switch_bridge1_n.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
mist/graphics_arbor/switch_bridge1_s.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
mist/graphics_arbor/switch_bridge2_e.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
mist/graphics_arbor/switch_bridge2_w.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
mist/graphics_arbor/switch_hut1_e.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
mist/graphics_arbor/switch_hut1_n.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
mist/graphics_arbor/switch_hut_closed_s.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
mist/graphics_arbor/switch_hut_open_s.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
mist/graphics_arbor/switch_hut_w.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
|
@ -5,7 +5,8 @@
|
||||||
locations:
|
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
|
.word location8, location9, location10,location11
|
||||||
|
.word location12,location13,location14
|
||||||
|
|
||||||
|
|
||||||
; ARBOR_INSIDE_ELEV1 -- arrival in elevator1
|
; ARBOR_INSIDE_ELEV1 -- arrival in elevator1
|
||||||
|
@ -187,11 +188,11 @@ location9:
|
||||||
; ARBOR_LONGSHACK2 -- extra long shack part 2
|
; ARBOR_LONGSHACK2 -- extra long shack part 2
|
||||||
location10:
|
location10:
|
||||||
.byte $ff ; north exit
|
.byte $ff ; north exit
|
||||||
.byte $ff ; south exit
|
.byte ARBOR_SWITCH_BRIDGE1 ; south exit
|
||||||
.byte $ff ; east exit
|
.byte $ff ; east exit
|
||||||
.byte ARBOR_LONGSHACK1 ; west exit
|
.byte ARBOR_LONGSHACK1 ; west exit
|
||||||
.byte $ff ; north exit_dir
|
.byte $ff ; north exit_dir
|
||||||
.byte $ff ; south exit_dir
|
.byte DIRECTION_S ; south exit_dir
|
||||||
.byte $ff ; east exit_dir
|
.byte $ff ; east exit_dir
|
||||||
.byte DIRECTION_W ; west exit_dir
|
.byte DIRECTION_W ; west exit_dir
|
||||||
.word longshack2_n_lzsa ; north bg
|
.word longshack2_n_lzsa ; north bg
|
||||||
|
@ -201,3 +202,74 @@ location10:
|
||||||
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
|
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
|
||||||
.byte $ff
|
.byte $ff
|
||||||
|
|
||||||
|
; ARBOR_SWITCH_BRIDGE1 -- first bridge leading to switch
|
||||||
|
location11:
|
||||||
|
.byte ARBOR_LONGSHACK2 ; north exit
|
||||||
|
.byte ARBOR_SWITCH_HUT1 ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_E ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word switch_bridge1_n_lzsa ; north bg
|
||||||
|
.word switch_bridge1_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH|BG_SOUTH
|
||||||
|
.byte $ff
|
||||||
|
|
||||||
|
; ARBOR_SWITCH_HUT1 -- first hut on way to switch
|
||||||
|
location12:
|
||||||
|
.byte ARBOR_SWITCH_BRIDGE1 ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte ARBOR_SWITCH_BRIDGE2 ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word switch_hut1_n_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word switch_hut1_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH|BG_EAST
|
||||||
|
.byte $ff
|
||||||
|
|
||||||
|
; ARBOR_SWITCH_BRIDGE2 -- second bridge on way to switch
|
||||||
|
location13:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte ARBOR_SWITCH_HUT ; east exit
|
||||||
|
.byte ARBOR_SWITCH_HUT1 ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_S ; east exit_dir
|
||||||
|
.byte DIRECTION_N ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word switch_bridge2_e_lzsa ; east bg
|
||||||
|
.word switch_bridge2_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST|BG_EAST
|
||||||
|
.byte $ff
|
||||||
|
|
||||||
|
; ARBOR_SWITCH_HUT -- hut with hard-to-find switch
|
||||||
|
location14:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte ARBOR_SWITCH_BRIDGE2 ; 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 switch_hut_closed_s_lzsa; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word switch_hut_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST|BG_SOUTH
|
||||||
|
.byte DIRECTION_S ; special exit
|
||||||
|
.byte 16,22 ; special x
|
||||||
|
.byte 28,40 ; special y
|
||||||
|
.word hut_handle-1 ; special function
|
||||||
|
|
||||||
|
|
|
@ -139,6 +139,7 @@ CHANNEL_SWITCHES= $B5
|
||||||
CHANNEL_BRIDGE_UP = $01
|
CHANNEL_BRIDGE_UP = $01
|
||||||
CHANNEL_PIPE_EXTENDED = $02
|
CHANNEL_PIPE_EXTENDED = $02
|
||||||
CHANNEL_BOOK_ELEVATOR_UP= $04
|
CHANNEL_BOOK_ELEVATOR_UP= $04
|
||||||
|
CHANNEL_SW_GATE_TOP = $08
|
||||||
CHANNEL_SW_WINDMILL = $40
|
CHANNEL_SW_WINDMILL = $40
|
||||||
CHANNEL_SW_FAUCET = $80
|
CHANNEL_SW_FAUCET = $80
|
||||||
CHANNEL_VALVES = $B6
|
CHANNEL_VALVES = $B6
|
||||||
|
|