mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-27 17:29:49 +00:00
mist: properly have channelwood/cabin separated
also auto-generate common_routines.inc
This commit is contained in:
parent
2da8748aac
commit
4b1ef860b4
@ -40,10 +40,12 @@ mist_side2.dsk: HELLO_DISK2 MECHE SELENA CHANNEL VIEWER
|
||||
LOADER: loader.o
|
||||
ld65 -o LOADER loader.o -C ../linker_scripts/apple2_1000.inc
|
||||
|
||||
loader.o: loader.s
|
||||
loader.o: loader.s \
|
||||
gr_copy.s gr_offsets.s gr_pageflip.s gr_putsprite_crop.s \
|
||||
text_print.s gr_fast_clear.s decompress_fast_v2.s \
|
||||
keyboard.s draw_pointer.s end_level.s audio.s
|
||||
ca65 -o loader.o loader.s -l loader.lst
|
||||
|
||||
|
||||
###
|
||||
|
||||
HELLO: hello.bas
|
||||
@ -52,6 +54,17 @@ HELLO: hello.bas
|
||||
HELLO_DISK2: hello_disk2.bas
|
||||
../asoft_basic-utils/tokenize_asoft < hello_disk2.bas > HELLO_DISK2
|
||||
|
||||
####
|
||||
|
||||
generate_common: generate_common.o
|
||||
$(CC) $(LFLAGS) -o generate_common generate_common.o
|
||||
|
||||
generate_common.o: generate_common.c
|
||||
$(CC) $(CFLAGS) -c generate_common.c
|
||||
|
||||
####
|
||||
common_routines.inc: loader.lst generate_common
|
||||
./generate_common > common_routines.inc
|
||||
|
||||
####
|
||||
|
||||
|
@ -192,7 +192,7 @@ enter_tree_path:
|
||||
lda #DIRECTION_E
|
||||
sta DIRECTION
|
||||
|
||||
lda #CHANNEL_TREE_PATH
|
||||
lda #CABIN_TREE_PATH
|
||||
sta LOCATION
|
||||
|
||||
jmp change_location
|
||||
@ -201,7 +201,7 @@ enter_tree_path:
|
||||
enter_cabin:
|
||||
lda #DIRECTION_E
|
||||
sta DIRECTION
|
||||
lda #CHANNEL_CABIN_OPEN
|
||||
lda #CABIN_OPEN
|
||||
sta LOCATION
|
||||
jmp change_location
|
||||
|
||||
|
@ -83,36 +83,11 @@ game_loop:
|
||||
;====================================
|
||||
|
||||
lda LOCATION
|
||||
cmp #CHANNEL_TREE_BOOK_OPEN
|
||||
beq animate_channel_book
|
||||
cmp #CHANNEL_BOOK_OPEN
|
||||
beq animate_mist_book
|
||||
|
||||
jmp nothing_special
|
||||
|
||||
animate_channel_book:
|
||||
|
||||
lda ANIMATE_FRAME
|
||||
cmp #11
|
||||
bcc channel_book_good
|
||||
lda #0
|
||||
sta ANIMATE_FRAME
|
||||
|
||||
channel_book_good:
|
||||
; handle animated linking book
|
||||
|
||||
lda ANIMATE_FRAME
|
||||
asl
|
||||
tay
|
||||
lda channel_movie,Y
|
||||
sta INL
|
||||
lda channel_movie+1,Y
|
||||
sta INH
|
||||
|
||||
lda #22
|
||||
|
||||
jmp draw_book
|
||||
|
||||
animate_mist_book:
|
||||
lda DIRECTION
|
||||
cmp #DIRECTION_S
|
||||
@ -135,7 +110,6 @@ mist_book_good:
|
||||
sta INH
|
||||
|
||||
lda #24
|
||||
draw_book:
|
||||
sta XPOS
|
||||
|
||||
lda #12
|
||||
@ -212,79 +186,6 @@ toggle_faucet:
|
||||
rts
|
||||
|
||||
|
||||
back_to_mist:
|
||||
|
||||
lda #DIRECTION_N
|
||||
sta DIRECTION
|
||||
|
||||
lda #MIST_ARRIVAL_DOCK ; the dock
|
||||
|
||||
jmp exit_to_mist
|
||||
|
||||
|
||||
|
||||
enter_clock:
|
||||
|
||||
lda #DIRECTION_S
|
||||
sta DIRECTION
|
||||
|
||||
lda #MIST_CLOCK
|
||||
|
||||
jmp exit_to_mist
|
||||
|
||||
|
||||
|
||||
handle_clearing:
|
||||
|
||||
lda DIRECTION
|
||||
cmp #DIRECTION_W
|
||||
beq enter_path
|
||||
|
||||
; else going east
|
||||
|
||||
lda CURSOR_X
|
||||
cmp #23
|
||||
bcc enter_cabin
|
||||
|
||||
enter_tree_path:
|
||||
lda #DIRECTION_E
|
||||
sta DIRECTION
|
||||
|
||||
lda #CHANNEL_TREE_PATH
|
||||
sta LOCATION
|
||||
|
||||
jmp change_location
|
||||
|
||||
|
||||
enter_cabin:
|
||||
lda #DIRECTION_E
|
||||
sta DIRECTION
|
||||
lda #CHANNEL_CABIN_OPEN
|
||||
sta LOCATION
|
||||
jmp change_location
|
||||
|
||||
|
||||
enter_path:
|
||||
|
||||
lda #DIRECTION_N
|
||||
sta DIRECTION
|
||||
|
||||
lda #MIST_TREE_CORRIDOR_5
|
||||
|
||||
jmp exit_to_mist
|
||||
|
||||
|
||||
exit_to_mist:
|
||||
|
||||
sta LOCATION
|
||||
lda #$ff
|
||||
sta LEVEL_OVER
|
||||
|
||||
lda #LOAD_MIST
|
||||
sta WHICH_LOAD
|
||||
|
||||
rts
|
||||
|
||||
;==========================
|
||||
; includes
|
||||
;==========================
|
||||
|
@ -35,14 +35,14 @@ book_elevator_floor1:
|
||||
ldy #LOCATION_SOUTH_BG
|
||||
|
||||
lda #<book_elevator_inside_gnd_closed_lzsa
|
||||
sta location44,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
sta location31,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
lda #>book_elevator_inside_gnd_closed_lzsa
|
||||
sta location44+1,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
sta location31+1,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
|
||||
; change exit
|
||||
ldy #LOCATION_SOUTH_EXIT
|
||||
lda #CHANNEL_BOOK_E_INSIDE_GND
|
||||
sta location44,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
sta location31,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
|
||||
jmp book_elevator_handle_done
|
||||
book_elevator_floor2:
|
||||
@ -51,14 +51,14 @@ book_elevator_floor2:
|
||||
ldy #LOCATION_SOUTH_BG
|
||||
|
||||
lda #<book_elevator_inside_top_closed_lzsa
|
||||
sta location44,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
sta location31,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
lda #>book_elevator_inside_top_closed_lzsa
|
||||
sta location44+1,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
sta location31+1,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
|
||||
; change exit
|
||||
ldy #LOCATION_SOUTH_EXIT
|
||||
lda #CHANNEL_BOOK_E_INSIDE_TOP
|
||||
sta location44,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
sta location31,Y ; CHANNEL_BOOK_E_IN_CLOSED
|
||||
|
||||
book_elevator_handle_done:
|
||||
|
||||
@ -156,14 +156,14 @@ bridge_is_up:
|
||||
ldy #LOCATION_EAST_BG
|
||||
|
||||
lda #<bridge_up_e_lzsa
|
||||
sta location16,Y ; CHANNEL_BRIDGE
|
||||
sta location3,Y ; CHANNEL_BRIDGE
|
||||
lda #>bridge_up_e_lzsa
|
||||
sta location16+1,Y ; CHANNEL_BRIDGE
|
||||
sta location3+1,Y ; CHANNEL_BRIDGE
|
||||
|
||||
; change to allow crossing bridge
|
||||
ldy #LOCATION_EAST_EXIT
|
||||
lda #CHANNEL_AFTER_BRIDGE1
|
||||
sta location16,Y ; CHANNEL_BRIDGE
|
||||
sta location3,Y ; CHANNEL_BRIDGE
|
||||
jmp adjust_pipe
|
||||
|
||||
bridge_is_down:
|
||||
@ -172,14 +172,14 @@ bridge_is_down:
|
||||
ldy #LOCATION_EAST_BG
|
||||
|
||||
lda #<bridge_down_e_lzsa
|
||||
sta location16,Y ; CHANNEL_BRIDGE
|
||||
sta location3,Y ; CHANNEL_BRIDGE
|
||||
lda #>bridge_down_e_lzsa
|
||||
sta location16+1,Y ; CHANNEL_BRIDGE
|
||||
sta location3+1,Y ; CHANNEL_BRIDGE
|
||||
|
||||
; change to allow crossing bridge
|
||||
ldy #LOCATION_EAST_EXIT
|
||||
lda #$ff
|
||||
sta location16,Y ; CHANNEL_BRIDGE
|
||||
sta location3,Y ; CHANNEL_BRIDGE
|
||||
|
||||
adjust_pipe:
|
||||
|
||||
@ -195,18 +195,18 @@ pipe_extended:
|
||||
ldy #LOCATION_SOUTH_BG
|
||||
|
||||
lda #<pipe_extend_up_s_lzsa
|
||||
sta location40,Y ; CHANNEL_PIPE_EXTEND
|
||||
sta location27,Y ; CHANNEL_PIPE_EXTEND
|
||||
lda #>pipe_extend_up_s_lzsa
|
||||
sta location40+1,Y ; CHANNEL_PIPE_EXTEND
|
||||
sta location27+1,Y ; CHANNEL_PIPE_EXTEND
|
||||
|
||||
; also change for other side of bridge
|
||||
|
||||
ldy #LOCATION_WEST_BG
|
||||
|
||||
lda #<pipe_bridge2_up_w_lzsa
|
||||
sta location23,Y ; CHANNEL_PIPE_BRIDGE2
|
||||
sta location10,Y ; CHANNEL_PIPE_BRIDGE2
|
||||
lda #>pipe_bridge2_up_w_lzsa
|
||||
sta location23+1,Y ; CHANNEL_PIPE_BRIDGE2
|
||||
sta location10+1,Y ; CHANNEL_PIPE_BRIDGE2
|
||||
|
||||
jmp done_adjust_changes
|
||||
|
||||
@ -216,18 +216,18 @@ pipe_stowed:
|
||||
ldy #LOCATION_SOUTH_BG
|
||||
|
||||
lda #<pipe_extend_down_s_lzsa
|
||||
sta location40,Y ; CHANNEL_PIPE_EXTEND
|
||||
sta location27,Y ; CHANNEL_PIPE_EXTEND
|
||||
lda #>pipe_extend_down_s_lzsa
|
||||
sta location40+1,Y ; CHANNEL_PIPE_EXTEND
|
||||
sta location27+1,Y ; CHANNEL_PIPE_EXTEND
|
||||
|
||||
; also change for other side of bridge
|
||||
|
||||
ldy #LOCATION_WEST_BG
|
||||
|
||||
lda #<pipe_bridge2_w_lzsa
|
||||
sta location23,Y ; CHANNEL_PIPE_BRIDGE2
|
||||
sta location10,Y ; CHANNEL_PIPE_BRIDGE2
|
||||
lda #>pipe_bridge2_w_lzsa
|
||||
sta location23+1,Y ; CHANNEL_PIPE_BRIDGE2
|
||||
sta location10+1,Y ; CHANNEL_PIPE_BRIDGE2
|
||||
|
||||
done_adjust_changes:
|
||||
|
||||
|
@ -303,55 +303,42 @@ STONEY_BLUE_HALFMESSAGE = 50
|
||||
STONEY_CRAWLWAY_RIGHT = 51
|
||||
|
||||
; Channely Wood
|
||||
CHANNEL_OUTSIDE_CABIN = 0
|
||||
CHANNEL_CABIN_OPEN = 1
|
||||
CHANNEL_CABIN_ENTRANCE = 2
|
||||
CHANNEL_INSIDE_CABIN = 3
|
||||
CHANNEL_SAFE = 4
|
||||
CHANNEL_CLOCK_PATH = 5
|
||||
CHANNEL_TREE_PATH = 6
|
||||
CHANNEL_BIG_TREE = 7
|
||||
CHANNEL_TREE_ELEVATOR = 8
|
||||
CHANNEL_TREE_BASEMENT = 9
|
||||
CHANNEL_TREE_BOOK = 10
|
||||
CHANNEL_TREE_BOOK_CLOSED= 11
|
||||
CHANNEL_TREE_BOOK_OPEN = 12
|
||||
CHANNEL_ARRIVAL = 13
|
||||
CHANNEL_PATH2 = 14
|
||||
CHANNEL_PATH3 = 15
|
||||
CHANNEL_BRIDGE = 16
|
||||
CHANNEL_PATH4 = 17
|
||||
CHANNEL_PATH5 = 18
|
||||
CHANNEL_PATH6 = 19
|
||||
CHANNEL_FORK = 20
|
||||
CHANNEL_BEFORE_ELEV1 = 21
|
||||
CHANNEL_IN_ELEVATOR1 = 22
|
||||
CHANNEL_PIPE_BRIDGE2 = 23
|
||||
CHANNEL_STEPS_FORK = 24
|
||||
CHANNEL_STEPS_PATH = 25
|
||||
CHANNEL_STEPS_DOOR = 26
|
||||
CHANNEL_WIND_PATH = 27
|
||||
CHANNEL_WIND_PATH2 = 28
|
||||
CHANNEL_ISLAND1 = 29
|
||||
CHANNEL_ISLAND2 = 30
|
||||
CHANNEL_ISLAND3 = 31
|
||||
CHANNEL_SHACK = 32
|
||||
CHANNEL_TANK = 33
|
||||
CHANNEL_TANK_CLOSE = 34
|
||||
CHANNEL_WINDMILL = 35
|
||||
CHANNEL_OUT_BACK = 36
|
||||
CHANNEL_AFTER_BRIDGE1 = 37
|
||||
CHANNEL_AFTER_BRIDGE2 = 38
|
||||
CHANNEL_BOOK_FORK = 39
|
||||
CHANNEL_PIPE_EXTEND = 40
|
||||
CHANNEL_BOOK_ELEVATOR = 41
|
||||
CHANNEL_BOOK_E_OPEN = 42
|
||||
CHANNEL_BOOK_E_INSIDE_GND= 43
|
||||
CHANNEL_BOOK_E_IN_CLOSED= 44
|
||||
CHANNEL_BOOK_E_INSIDE_TOP= 45
|
||||
CHANNEL_BOOK_ROOM = 46
|
||||
CHANNEL_BOOK_CLOSED = 47
|
||||
CHANNEL_BOOK_OPEN = 48
|
||||
CHANNEL_ARRIVAL = 0
|
||||
CHANNEL_PATH2 = 1
|
||||
CHANNEL_PATH3 = 2
|
||||
CHANNEL_BRIDGE = 3
|
||||
CHANNEL_PATH4 = 4
|
||||
CHANNEL_PATH5 = 5
|
||||
CHANNEL_PATH6 = 6
|
||||
CHANNEL_FORK = 7
|
||||
CHANNEL_BEFORE_ELEV1 = 8
|
||||
CHANNEL_IN_ELEVATOR1 = 9
|
||||
CHANNEL_PIPE_BRIDGE2 = 10
|
||||
CHANNEL_STEPS_FORK = 11
|
||||
CHANNEL_STEPS_PATH = 12
|
||||
CHANNEL_STEPS_DOOR = 13
|
||||
CHANNEL_WIND_PATH = 14
|
||||
CHANNEL_WIND_PATH2 = 15
|
||||
CHANNEL_ISLAND1 = 16
|
||||
CHANNEL_ISLAND2 = 17
|
||||
CHANNEL_ISLAND3 = 18
|
||||
CHANNEL_SHACK = 19
|
||||
CHANNEL_TANK = 20
|
||||
CHANNEL_TANK_CLOSE = 21
|
||||
CHANNEL_WINDMILL = 22
|
||||
CHANNEL_OUT_BACK = 23
|
||||
CHANNEL_AFTER_BRIDGE1 = 24
|
||||
CHANNEL_AFTER_BRIDGE2 = 25
|
||||
CHANNEL_BOOK_FORK = 26
|
||||
CHANNEL_PIPE_EXTEND = 27
|
||||
CHANNEL_BOOK_ELEVATOR = 28
|
||||
CHANNEL_BOOK_E_OPEN = 29
|
||||
CHANNEL_BOOK_E_INSIDE_GND= 30
|
||||
CHANNEL_BOOK_E_IN_CLOSED= 31
|
||||
CHANNEL_BOOK_E_INSIDE_TOP= 32
|
||||
CHANNEL_BOOK_ROOM = 33
|
||||
CHANNEL_BOOK_CLOSED = 34
|
||||
CHANNEL_BOOK_OPEN = 35
|
||||
|
||||
; Cabin lost in woods
|
||||
CABIN_OUTSIDE = 0
|
||||
|
@ -2,54 +2,51 @@
|
||||
; external routines
|
||||
|
||||
; loader.s
|
||||
opendir_filename = $1039
|
||||
opendir_filename =$1039
|
||||
|
||||
; audio.c
|
||||
play_audio = $131b
|
||||
play_audio =$133e
|
||||
|
||||
; decompress_fast_v2.s
|
||||
decompress_lzsa2_fast = $142c
|
||||
getsrc_smc = $1522
|
||||
decompress_lzsa2_fast =$144f
|
||||
getsrc_smc =$1545
|
||||
|
||||
; draw_pointer.s
|
||||
draw_pointer = $152f
|
||||
draw_pointer =$1552
|
||||
|
||||
; end_level.s
|
||||
end_level = $1672
|
||||
end_level =$1695
|
||||
|
||||
; gr_copy.s
|
||||
gr_copy_to_current = $1694
|
||||
gr_copy_to_current =$16b7
|
||||
|
||||
; gr_fast_clear.s
|
||||
clear_all = $17f8
|
||||
clear_all_color = $181d
|
||||
clear_all =$181b
|
||||
clear_all_color =$1840
|
||||
|
||||
; gr_offsets.s
|
||||
gr_offsets = $183b
|
||||
gr_offsets =$185e
|
||||
|
||||
; gr_page_flip.s
|
||||
page_flip = $186b
|
||||
page_flip =$188e
|
||||
|
||||
; gr_putsprite_crop.s
|
||||
put_sprite_crop = $1885
|
||||
put_sprite_crop =$18a8
|
||||
|
||||
; keyboard.s
|
||||
handle_keypress = $19c1
|
||||
change_location = $1a8e
|
||||
handle_keypress =$19e4
|
||||
change_location =$1ab1
|
||||
|
||||
; text_print.s
|
||||
move_and_print = $1b26
|
||||
|
||||
; common_sprites.inc
|
||||
move_and_print =$1b49
|
||||
|
||||
; page_sprites.inc
|
||||
blue_page_sprite = $1c57
|
||||
red_page_sprite = $1c6d
|
||||
white_page_sprite = $1c83
|
||||
blue_page_small_sprite = $1c99
|
||||
red_page_small_sprite = $1ca1
|
||||
blue_page_sprite =$1c44
|
||||
red_page_sprite =$1c90
|
||||
white_page_sprite =$1ca6
|
||||
blue_page_small_sprite =$1cbc
|
||||
red_page_small_sprite =$1cc4
|
||||
|
||||
; audio files
|
||||
|
||||
linking_noise = $9000
|
||||
LINKING_NOISE_LENGTH = 43
|
||||
|
@ -313,7 +313,6 @@ getlargesrc:
|
||||
; fall through grab high 8 bits
|
||||
|
||||
getsrc:
|
||||
getsrc_smc:
|
||||
LZSA_SRC_LO = *+1
|
||||
LZSA_SRC_HI = *+2
|
||||
lda $AAAA
|
||||
|
111
mist/generate_common.c
Normal file
111
mist/generate_common.c
Normal file
@ -0,0 +1,111 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
static FILE *fff;
|
||||
|
||||
|
||||
static void find_address(char *symbol_name) {
|
||||
|
||||
unsigned int addr=0;
|
||||
char string[BUFSIZ],*result;
|
||||
char temp_name[BUFSIZ];
|
||||
|
||||
sprintf(temp_name,"%s:",symbol_name);
|
||||
|
||||
while(1) {
|
||||
|
||||
result=fgets(string,BUFSIZ,fff);
|
||||
if (result==NULL) break;
|
||||
|
||||
result=strstr(string,temp_name);
|
||||
if (result!=NULL) {
|
||||
string[6]=0;
|
||||
sscanf(string,"%x",&addr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
printf("%s\t=$%04x\n",symbol_name,addr+0x1000);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
fff=fopen("loader.lst","r");
|
||||
if (fff==NULL) {
|
||||
fprintf(stderr,"ERROR! could not open loader.lst\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf(";=============================\n");
|
||||
printf("; external routines\n");
|
||||
printf("\n");
|
||||
|
||||
printf("; loader.s\n");
|
||||
find_address("opendir_filename");
|
||||
printf("\n");
|
||||
|
||||
printf("; audio.c\n");
|
||||
find_address("play_audio");
|
||||
printf("\n");
|
||||
|
||||
printf("; decompress_fast_v2.s\n");
|
||||
find_address("decompress_lzsa2_fast");
|
||||
find_address("getsrc_smc");
|
||||
printf("\n");
|
||||
|
||||
printf("; draw_pointer.s\n");
|
||||
find_address("draw_pointer");
|
||||
printf("\n");
|
||||
|
||||
printf("; end_level.s\n");
|
||||
find_address("end_level");
|
||||
printf("\n");
|
||||
|
||||
printf("; gr_copy.s\n");
|
||||
find_address("gr_copy_to_current");
|
||||
printf("\n");
|
||||
|
||||
printf("; gr_fast_clear.s\n");
|
||||
find_address("clear_all");
|
||||
find_address("clear_all_color");
|
||||
printf("\n");
|
||||
|
||||
printf("; gr_offsets.s\n");
|
||||
find_address("gr_offsets");
|
||||
printf("\n");
|
||||
|
||||
printf("; gr_page_flip.s\n");
|
||||
find_address("page_flip");
|
||||
printf("\n");
|
||||
|
||||
printf("; gr_putsprite_crop.s\n");
|
||||
find_address("put_sprite_crop");
|
||||
printf("\n");
|
||||
|
||||
printf("; keyboard.s\n");
|
||||
find_address("handle_keypress");
|
||||
find_address("change_location");
|
||||
printf("\n");
|
||||
|
||||
printf("; text_print.s\n");
|
||||
find_address("move_and_print");
|
||||
printf("\n");
|
||||
|
||||
printf("; page_sprites.inc\n");
|
||||
find_address("blue_page_sprite");
|
||||
find_address("red_page_sprite");
|
||||
find_address("white_page_sprite");
|
||||
find_address("blue_page_small_sprite");
|
||||
find_address("red_page_small_sprite");
|
||||
printf("\n");
|
||||
|
||||
printf("; audio files\n");
|
||||
printf("linking_noise = $9000\n");
|
||||
printf("LINKING_NOISE_LENGTH = 43\n");
|
||||
|
||||
fclose(fff);
|
||||
|
||||
return 0;
|
||||
}
|
@ -10,19 +10,6 @@ all: channel_graphics.inc
|
||||
|
||||
channel_graphics.inc: \
|
||||
arrival_n.lzsa arrival_s.lzsa \
|
||||
clearing_e.lzsa clearing_s.lzsa clearing_w.lzsa \
|
||||
clearing_e_open.lzsa \
|
||||
boiler_room_e.lzsa \
|
||||
boiler_e.lzsa boiler_w.lzsa \
|
||||
safe_w.lzsa safe_open_w.lzsa \
|
||||
clock_path_n.lzsa clock_path_s.lzsa \
|
||||
tree_path_e.lzsa tree_path_w.lzsa \
|
||||
tree_base_n.lzsa tree_base_s.lzsa \
|
||||
tree_basement_n.lzsa tree_basement_s.lzsa \
|
||||
tree_basement_book_s.lzsa \
|
||||
tree_basement_book_open_s.lzsa \
|
||||
tree_basement_book_closed_s.lzsa \
|
||||
tree_elevator_basement_s.lzsa \
|
||||
bridge_w.lzsa bridge_down_e.lzsa bridge_up_e.lzsa \
|
||||
path2_e.lzsa path2_s.lzsa path2_n.lzsa \
|
||||
path3_w.lzsa path3_e.lzsa path3_n.lzsa \
|
||||
@ -57,27 +44,6 @@ channel_graphics.inc: \
|
||||
book_mist_closed_s.lzsa book_mist_open_s.lzsa
|
||||
echo "arrival_n_lzsa: .incbin \"arrival_n.lzsa\"" > channel_graphics.inc
|
||||
echo "arrival_s_lzsa: .incbin \"arrival_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "clearing_e_lzsa: .incbin \"clearing_e.lzsa\"" >> channel_graphics.inc
|
||||
echo "clearing_s_lzsa: .incbin \"clearing_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "clearing_w_lzsa: .incbin \"clearing_w.lzsa\"" >> channel_graphics.inc
|
||||
echo "clearing_e_open_lzsa: .incbin \"clearing_e_open.lzsa\"" >> channel_graphics.inc
|
||||
echo "boiler_room_e_lzsa: .incbin \"boiler_room_e.lzsa\"" >> channel_graphics.inc
|
||||
echo "boiler_e_lzsa: .incbin \"boiler_e.lzsa\"" >> channel_graphics.inc
|
||||
echo "boiler_w_lzsa: .incbin \"boiler_w.lzsa\"" >> channel_graphics.inc
|
||||
echo "safe_w_lzsa: .incbin \"safe_w.lzsa\"" >> channel_graphics.inc
|
||||
echo "safe_open_w_lzsa: .incbin \"safe_open_w.lzsa\"" >> channel_graphics.inc
|
||||
echo "clock_path_n_lzsa: .incbin \"clock_path_n.lzsa\"" >> channel_graphics.inc
|
||||
echo "clock_path_s_lzsa: .incbin \"clock_path_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_path_e_lzsa: .incbin \"tree_path_e.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_path_w_lzsa: .incbin \"tree_path_w.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_base_n_lzsa: .incbin \"tree_base_n.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_base_s_lzsa: .incbin \"tree_base_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_basement_s_lzsa: .incbin \"tree_basement_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_basement_n_lzsa: .incbin \"tree_basement_n.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_basement_book_s_lzsa: .incbin \"tree_basement_book_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_basement_book_open_s_lzsa: .incbin \"tree_basement_book_open_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_basement_book_closed_s_lzsa: .incbin \"tree_basement_book_closed_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "tree_elevator_basement_s_lzsa: .incbin \"tree_elevator_basement_s.lzsa\"" >> channel_graphics.inc
|
||||
echo "bridge_w_lzsa: .incbin \"bridge_w.lzsa\"" >> channel_graphics.inc
|
||||
echo "bridge_down_e_lzsa: .incbin \"bridge_down_e.lzsa\"" >> channel_graphics.inc
|
||||
echo "bridge_up_e_lzsa: .incbin \"bridge_up_e.lzsa\"" >> channel_graphics.inc
|
||||
|
@ -194,7 +194,7 @@ change_location:
|
||||
lda (LOCATIONS_L),Y
|
||||
sta LOCATION_STRUCT_L
|
||||
iny
|
||||
lda (LOCATIONS_H),Y
|
||||
lda (LOCATIONS_L),Y
|
||||
sta LOCATION_STRUCT_H
|
||||
|
||||
jsr change_direction
|
||||
|
@ -12,249 +12,10 @@ locations:
|
||||
.word location24,location25,location26,location27
|
||||
.word location28,location29,location30,location31
|
||||
.word location32,location33,location34,location35
|
||||
.word location36,location37,location38,location39
|
||||
.word location40,location41,location42,location43
|
||||
.word location44,location45,location46,location47
|
||||
.word location48
|
||||
|
||||
; CHANNEL_OUTSIDE_CABIN -- outside in clearing
|
||||
location0:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_CLOCK_PATH ; south exit
|
||||
.byte CHANNEL_CABIN_OPEN ; 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 $0000 ; north bg
|
||||
.word clearing_s_lzsa ; south bg
|
||||
.word clearing_e_lzsa ; east bg
|
||||
.word clearing_w_lzsa ; west bg
|
||||
.byte BG_SOUTH|BG_EAST|BG_WEST
|
||||
.byte DIRECTION_E|DIRECTION_W ; special exit
|
||||
.byte 7,33 ; special x
|
||||
.byte 2,46 ; special y
|
||||
.word handle_clearing-1 ; special function
|
||||
|
||||
; CHANNEL_CABIN_OPEN -- outside, door open
|
||||
location1:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_CABIN_ENTRANCE ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_E ; east exit_dir
|
||||
.byte $ff ; west exit_dir
|
||||
.word $0000 ; north bg
|
||||
.word clearing_s_lzsa ; south bg
|
||||
.word clearing_e_open_lzsa ; east bg
|
||||
.word clearing_w_lzsa ; west bg
|
||||
.byte BG_SOUTH|BG_EAST|BG_WEST
|
||||
.byte DIRECTION_E|DIRECTION_W ; special exit
|
||||
.byte 7,33 ; special x
|
||||
.byte 2,46 ; special y
|
||||
.word handle_clearing-1 ; special function
|
||||
|
||||
; CHANNEL_CABIN_ENTRANCE -- entering the cabin
|
||||
location2:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_INSIDE_CABIN ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_E ; east exit_dir
|
||||
.byte $ff ; west exit_dir
|
||||
.word $0000 ; north bg
|
||||
.word $0000 ; south bg
|
||||
.word boiler_room_e_lzsa ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_EAST
|
||||
.byte $ff
|
||||
|
||||
|
||||
; CHANNEL_INSIDE_CABIN -- inside the cabin
|
||||
location3:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
.byte CHANNEL_OUTSIDE_CABIN ; 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 $0000 ; south bg
|
||||
.word boiler_e_lzsa ; east bg
|
||||
.word boiler_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_SAFE -- looking at safe
|
||||
location4:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
.byte CHANNEL_INSIDE_CABIN ; 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 $0000 ; south bg
|
||||
.word $000 ; east bg
|
||||
.word safe_w_lzsa ; west bg
|
||||
.byte BG_WEST
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_CLOCK_PATH -- path to clock
|
||||
location5:
|
||||
.byte CHANNEL_OUTSIDE_CABIN ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte DIRECTION_E ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte $ff ; east exit_dir
|
||||
.byte $ff ; west exit_dir
|
||||
.word clock_path_n_lzsa ; north bg
|
||||
.word clock_path_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_NORTH|BG_SOUTH
|
||||
.byte DIRECTION_S ; special exit
|
||||
.byte 9,29 ; special x
|
||||
.byte 2,46 ; special y
|
||||
.word enter_clock-1 ; special function
|
||||
|
||||
|
||||
; CHANNEL_TREE_PATH -- path to tree
|
||||
location6:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_BIG_TREE ; east exit
|
||||
.byte CHANNEL_OUTSIDE_CABIN ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_N ; east exit_dir
|
||||
.byte DIRECTION_W ; west exit_dir
|
||||
.word $0000 ; north bg
|
||||
.word $0000 ; south bg
|
||||
.word tree_path_e_lzsa ; east bg
|
||||
.word tree_path_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_BIG_TREE -- at the big tree
|
||||
location7:
|
||||
.byte CHANNEL_TREE_ELEVATOR ; north exit
|
||||
.byte CHANNEL_TREE_PATH ; south exit
|
||||
.byte $ff ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte DIRECTION_S ; north exit_dir
|
||||
.byte DIRECTION_W ; south exit_dir
|
||||
.byte $ff ; east exit_dir
|
||||
.byte $ff ; west exit_dir
|
||||
.word tree_base_n_lzsa ; north bg
|
||||
.word tree_base_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_NORTH|BG_SOUTH
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_TREE_ELEVATOR -- in the tree elevator
|
||||
location8:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_TREE_BASEMENT ; 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 tree_elevator_basement_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_SOUTH
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_TREE_BASEMENT -- in the tree basement
|
||||
location9:
|
||||
.byte CHANNEL_BIG_TREE ; north exit
|
||||
.byte CHANNEL_TREE_BOOK ; south exit
|
||||
.byte $ff ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte DIRECTION_S ; north exit_dir
|
||||
.byte DIRECTION_S ; south exit_dir
|
||||
.byte $ff ; east exit_dir
|
||||
.byte $ff ; west exit_dir
|
||||
.word tree_basement_n_lzsa ; north bg
|
||||
.word tree_basement_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_SOUTH|BG_NORTH
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_TREE_BOOK -- tree basement book
|
||||
location10:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_TREE_BOOK_CLOSED; 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 tree_basement_book_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_SOUTH
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_TREE_BOOK_CLOSED -- tree basement book closed
|
||||
location11:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_TREE_BOOK_OPEN ; 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 tree_basement_book_closed_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_SOUTH
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_TREE_BOOK_OPEN -- tree basement book open
|
||||
location12:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_TREE_BASEMENT ; 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 tree_basement_book_open_s_lzsa ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_SOUTH
|
||||
.byte DIRECTION_S ; special exit
|
||||
.byte 21,31 ; special x
|
||||
.byte 10,24 ; special y
|
||||
.word channel_link_book-1
|
||||
|
||||
|
||||
; CHANNEL_ARRIVAL -- arrival in channelwood
|
||||
location13:
|
||||
location0:
|
||||
.byte CHANNEL_PATH2 ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -271,7 +32,7 @@ location13:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_PATH2 -- twisty maze of passages all alike
|
||||
location14:
|
||||
location1:
|
||||
.byte CHANNEL_PATH6 ; north exit
|
||||
.byte CHANNEL_ARRIVAL ; south exit
|
||||
.byte CHANNEL_PATH3 ; east exit
|
||||
@ -288,7 +49,7 @@ location14:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_PATH3 -- twisty maze of passages all alike
|
||||
location15:
|
||||
location2:
|
||||
.byte CHANNEL_PATH4 ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_BRIDGE ; east exit
|
||||
@ -305,7 +66,7 @@ location15:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_BRIDGE -- raisable bridge
|
||||
location16:
|
||||
location3:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -325,7 +86,7 @@ location16:
|
||||
.word raise_bridge-1
|
||||
|
||||
; CHANNEL_PATH4 -- twisty maze of passages all alike
|
||||
location17:
|
||||
location4:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_PATH3 ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -342,7 +103,7 @@ location17:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_PATH5 -- twisty maze of passages all alike
|
||||
location18:
|
||||
location5:
|
||||
.byte CHANNEL_STEPS_FORK ; north exit
|
||||
.byte CHANNEL_PATH6 ; south exit
|
||||
.byte CHANNEL_PATH4 ; east exit
|
||||
@ -359,7 +120,7 @@ location18:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_PATH6 -- twisty maze of passages all alike
|
||||
location19:
|
||||
location6:
|
||||
.byte CHANNEL_PATH5 ; north exit
|
||||
.byte CHANNEL_PATH2 ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -376,7 +137,7 @@ location19:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_FORK -- forked path
|
||||
location20:
|
||||
location7:
|
||||
.byte CHANNEL_PATH6 ; north exit
|
||||
.byte CHANNEL_PIPE_BRIDGE2 ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -393,7 +154,7 @@ location20:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_BEFORE_ELEV1 -- just befor elevator 1
|
||||
location21:
|
||||
location8:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_FORK ; east exit
|
||||
@ -410,7 +171,7 @@ location21:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_IN_ELEVATOR1 -- inside elevator1
|
||||
location22:
|
||||
location9:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_BEFORE_ELEV1 ; east exit
|
||||
@ -427,7 +188,7 @@ location22:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_PIPE_BRIDGE2 -- east side of pipe bridge
|
||||
location23:
|
||||
location10:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_FORK ; east exit
|
||||
@ -444,7 +205,7 @@ location23:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_STEPS_FORK -- fork going to steps
|
||||
location24:
|
||||
location11:
|
||||
.byte CHANNEL_WIND_PATH ; north exit
|
||||
.byte CHANNEL_PATH5 ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -461,7 +222,7 @@ location24:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_STEPS_PATH -- path going to steps
|
||||
location25:
|
||||
location12:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_STEPS_FORK ; east exit
|
||||
@ -478,7 +239,7 @@ location25:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_STEPS_DOOR -- door to the steps
|
||||
location26:
|
||||
location13:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_STEPS_PATH ; east exit
|
||||
@ -495,7 +256,7 @@ location26:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_WIND_PATH -- path to windmill
|
||||
location27:
|
||||
location14:
|
||||
.byte CHANNEL_WIND_PATH2 ; north exit
|
||||
.byte CHANNEL_STEPS_FORK ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -512,7 +273,7 @@ location27:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_WIND_PATH2 -- path to windmill too
|
||||
location28:
|
||||
location15:
|
||||
.byte CHANNEL_ISLAND1 ; north exit
|
||||
.byte CHANNEL_WIND_PATH ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -529,7 +290,7 @@ location28:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_ISLAND1 -- island part1
|
||||
location29:
|
||||
location16:
|
||||
.byte CHANNEL_ISLAND2 ; north exit
|
||||
.byte CHANNEL_WIND_PATH2 ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -546,7 +307,7 @@ location29:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_ISLAND2 -- island part2
|
||||
location30:
|
||||
location17:
|
||||
.byte CHANNEL_ISLAND3 ; north exit
|
||||
.byte CHANNEL_ISLAND1 ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -563,7 +324,7 @@ location30:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_ISLAND3 -- island part3
|
||||
location31:
|
||||
location18:
|
||||
.byte CHANNEL_SHACK ; north exit
|
||||
.byte CHANNEL_ISLAND2 ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -580,7 +341,7 @@ location31:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_SHACK -- island shack
|
||||
location32:
|
||||
location19:
|
||||
.byte CHANNEL_TANK ; north exit
|
||||
.byte CHANNEL_ISLAND3 ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -597,7 +358,7 @@ location32:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_TANK -- inside shack
|
||||
location33:
|
||||
location20:
|
||||
.byte CHANNEL_WINDMILL ; north exit
|
||||
.byte CHANNEL_SHACK ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -617,7 +378,7 @@ location33:
|
||||
.word look_at_faucet-1 ; special function
|
||||
|
||||
; CHANNEL_TANK_CLOSE -- the faucet
|
||||
location34:
|
||||
location21:
|
||||
.byte CHANNEL_TANK ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -637,7 +398,7 @@ location34:
|
||||
.word toggle_faucet-1 ; special function
|
||||
|
||||
; CHANNEL_WINDMILL -- windmill machinery
|
||||
location35:
|
||||
location22:
|
||||
.byte CHANNEL_OUT_BACK ; north exit
|
||||
.byte CHANNEL_TANK ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -657,7 +418,7 @@ location35:
|
||||
.word toggle_windmill-1 ; special function
|
||||
|
||||
; CHANNEL_OUT_BACK -- back door of windmill
|
||||
location36:
|
||||
location23:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_WINDMILL ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -674,7 +435,7 @@ location36:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_AFTER_BRIDGE1 -- after lift bridge
|
||||
location37:
|
||||
location24:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_AFTER_BRIDGE2 ; east exit
|
||||
@ -691,7 +452,7 @@ location37:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_AFTER_BRIDGE2 -- next after lift bridge
|
||||
location38:
|
||||
location25:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte CHANNEL_BOOK_FORK ; east exit
|
||||
@ -708,7 +469,7 @@ location38:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_BOOK_FORK -- fork to book elevator
|
||||
location39:
|
||||
location26:
|
||||
.byte CHANNEL_BOOK_ELEVATOR ; north exit
|
||||
.byte CHANNEL_PIPE_EXTEND ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -725,7 +486,7 @@ location39:
|
||||
.byte $ff
|
||||
|
||||
; CHANNEL_PIPE_EXTEND -- pipe extender
|
||||
location40:
|
||||
location27:
|
||||
.byte CHANNEL_BOOK_FORK ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -745,7 +506,7 @@ location40:
|
||||
.word extend_pipe-1 ; special function
|
||||
|
||||
; CHANNEL_BOOK_ELEVATOR -- outside book elevator, door closed
|
||||
location41:
|
||||
location28:
|
||||
.byte CHANNEL_BOOK_E_OPEN ; north exit
|
||||
.byte CHANNEL_BOOK_FORK ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -762,7 +523,7 @@ location41:
|
||||
.byte $ff ; special exit
|
||||
|
||||
; CHANNEL_E_OPEN -- outside book elevator, door open
|
||||
location42:
|
||||
location29:
|
||||
.byte CHANNEL_BOOK_E_INSIDE_GND ; north exit
|
||||
.byte CHANNEL_BOOK_FORK ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -779,7 +540,7 @@ location42:
|
||||
.byte $ff ; special exit
|
||||
|
||||
; CHANNEL_BOOK_E_INSIDE_GND -- inside book elevator, gnd, door open
|
||||
location43:
|
||||
location30:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_BOOK_ELEVATOR ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -799,7 +560,7 @@ location43:
|
||||
.word book_elevator_close_door-1 ; special function
|
||||
|
||||
; CHANNEL_BOOK_E_IN_CLOSED -- inside book elevator, door closed
|
||||
location44:
|
||||
location31:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_BOOK_E_INSIDE_GND ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -819,7 +580,7 @@ location44:
|
||||
.word book_elevator_handle-1 ; special function
|
||||
|
||||
; CHANNEL_BOOK_E_INSIDE_TOP -- inside book elevator, top, door open
|
||||
location45:
|
||||
location32:
|
||||
.byte $ff ; north exit
|
||||
.byte CHANNEL_BOOK_ROOM ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -839,7 +600,7 @@ location45:
|
||||
.word book_elevator_close_door-1 ; special function
|
||||
|
||||
; CHANNEL_BOOK_ROOM -- the room with the myst book
|
||||
location46:
|
||||
location33:
|
||||
.byte CHANNEL_BOOK_E_INSIDE_TOP ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -859,7 +620,7 @@ location46:
|
||||
.word book_room_grab_book-1 ; special function
|
||||
|
||||
; CHANNEL_BOOK_CLOSED -- myst book closed
|
||||
location47:
|
||||
location34:
|
||||
.byte CHANNEL_BOOK_E_INSIDE_TOP ; north exit
|
||||
.byte CHANNEL_BOOK_OPEN ; south exit
|
||||
.byte $ff ; east exit
|
||||
@ -876,7 +637,7 @@ location47:
|
||||
.byte $ff ; special function
|
||||
|
||||
; CHANNEL_BOOK_OPEN -- myst book open
|
||||
location48:
|
||||
location35:
|
||||
.byte CHANNEL_BOOK_E_INSIDE_TOP ; north exit
|
||||
.byte CHANNEL_BOOK_ROOM ; south exit
|
||||
.byte $ff ; east exit
|
||||
|
@ -53,18 +53,6 @@ filbuf = $3D6 ; filbuf: .res 4 ; = bit2tbl+86
|
||||
;===================================================
|
||||
;===================================================
|
||||
|
||||
.if 0
|
||||
LOAD_TITLE = $0
|
||||
LOAD_MIST = $1
|
||||
LOAD_MECHE = $2
|
||||
LOAD_SELENA = $3
|
||||
LOAD_OCTAGON = $4
|
||||
LOAD_VIEWER = $5
|
||||
LOAD_STONEDSHIP = $6
|
||||
LOAD_CHANNEL = $7
|
||||
LOAD_ENDING = $8
|
||||
.endif
|
||||
|
||||
loader_start:
|
||||
lda #LOAD_TITLE
|
||||
sta WHICH_LOAD
|
||||
@ -160,7 +148,8 @@ copy_filename_done:
|
||||
filenames:
|
||||
.word intro_filename
|
||||
.word mist_filename,meche_filename,selena_filename,octagon_filename
|
||||
.word viewer_filename,stoney_filename,channel_filename,ending_filename
|
||||
.word viewer_filename,stoney_filename,channel_filename,cabin_filename
|
||||
.word dentist_filename,arbor_filename,shipup_filename,ending_filename
|
||||
|
||||
intro_filename:
|
||||
.byte "MIST_TITLE",0
|
||||
@ -178,6 +167,14 @@ stoney_filename:
|
||||
.byte "STONEY",0
|
||||
channel_filename:
|
||||
.byte "CHANNEL",0
|
||||
cabin_filename:
|
||||
.byte "CABIN",0
|
||||
dentist_filename:
|
||||
.byte "DENTIST",0
|
||||
arbor_filename:
|
||||
.byte "ARBOR",0
|
||||
shipup_filename:
|
||||
.byte "SHIPUP",0
|
||||
ending_filename:
|
||||
.byte "ENDING",0
|
||||
|
||||
|
@ -235,10 +235,10 @@ enter_viewer:
|
||||
|
||||
enter_channel_main:
|
||||
|
||||
lda #CHANNEL_OUTSIDE_CABIN
|
||||
lda #CABIN_OUTSIDE
|
||||
sta LOCATION
|
||||
|
||||
lda #LOAD_CHANNEL
|
||||
lda #LOAD_CABIN
|
||||
sta WHICH_LOAD
|
||||
|
||||
lda #DIRECTION_E
|
||||
@ -248,10 +248,10 @@ enter_channel_main:
|
||||
|
||||
enter_channel_clock:
|
||||
|
||||
lda #CHANNEL_CLOCK_PATH
|
||||
lda #CABIN_CLOCK_PATH
|
||||
sta LOCATION
|
||||
|
||||
lda #LOAD_CHANNEL
|
||||
lda #LOAD_CABIN
|
||||
sta WHICH_LOAD
|
||||
|
||||
lda #DIRECTION_N
|
||||
|
@ -95,6 +95,15 @@ done_keyloop:
|
||||
bit LORES
|
||||
bit FULLGR
|
||||
|
||||
;=================
|
||||
; set up location
|
||||
;=================
|
||||
|
||||
lda #<locations
|
||||
sta LOCATIONS_L
|
||||
lda #>locations
|
||||
sta LOCATIONS_H
|
||||
|
||||
lda #0
|
||||
sta DRAW_PAGE
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user