mist: more of meche age

This commit is contained in:
Vince Weaver 2020-03-07 23:26:52 -05:00
parent 43f5028c45
commit b3852655cf
2 changed files with 146 additions and 5 deletions

View File

@ -8,14 +8,13 @@ B2D = ../bmp2dhr/b2d
all: mist.dsk
mist.dsk: HELLO LOADER MIST MIST_TITLE
mist.dsk: HELLO LOADER MIST_TITLE MIST MECHE
cp empty.dsk mist.dsk
$(DOS33) -y mist.dsk SAVE A HELLO
$(DOS33) -y mist.dsk BSAVE -a 0x800 LOADER
$(DOS33) -y mist.dsk BSAVE -a 0x1000 MIST
$(DOS33) -y mist.dsk BSAVE -a 0x4000 MIST_TITLE
# $(DOS33) -y mist.dsk BSAVE -a 0xa000 MIST_TITLE.LZ4
# $(DOS33) -y mist.dsk BSAVE -a 0x4000 STEPS_HGRC.BIN
$(DOS33) -y mist.dsk BSAVE -a 0x1000 MIST
$(DOS33) -y mist.dsk BSAVE -a 0x1000 MECHE
###
@ -61,6 +60,21 @@ mist.o: mist.s zp.inc hardware.inc \
####
MECHE: meche.o
ld65 -o MECHE meche.o -C ../linker_scripts/apple2_1000.inc
meche.o: meche.s zp.inc hardware.inc \
graphics_meche/meche_graphics.inc \
common_sprites.inc \
leveldata_meche.inc \
keyboard.s \
draw_pointer.s \
gr_copy.s audio.s text_print.s decompress_fast_v2.s
ca65 -o meche.o meche.s -l meche.lst
####
graphics_island/mist_graphics.inc:
cd graphics_island && make
@ -68,4 +82,4 @@ graphics_island/mist_graphics.inc:
####
clean:
rm -f *~ *.o *.lst HELLO LOADER MIST MIST_TITLE
rm -f *~ *.o *.lst HELLO LOADER MIST_TITLE MIST MECHE

127
mist/leveldata_meche.inc Normal file
View File

@ -0,0 +1,127 @@
;===============================================
; level data for Meche level
;===============================================
; 24 bytes each location
; we put special at end as it's ignored if not set
LOCATION_NORTH_EXIT=0 ; new room when heading north
LOCATION_SOUTH_EXIT=1 ; new room when heading south
LOCATION_EAST_EXIT=2 ; new room when heading east
LOCATION_WEST_EXIT=3 ; new room when heading west
LOCATION_NORTH_EXIT_DIR=4 ; direction faced in new room when N
LOCATION_SOUTH_EXIT_DIR=5 ; direction faced in new room when S
LOCATION_EAST_EXIT_DIR=6 ; direction faced in new room when E
LOCATION_WEST_EXIT_DIR=7 ; direction faced in new room when W
LOCATION_NORTH_BG=8 ; pointer to north background image
LOCATION_SOUTH_BG=10 ; pointer to south background image
LOCATION_EAST_BG=12 ; pointer to east background image
LOCATION_WEST_BG=14 ; pointer to west background image
LOCATION_BGS = 16 ; bitmap saying which backgrounds valid
BG_NORTH = 1
BG_SOUTH = 2
BG_EAST = 4
BG_WEST = 8
LOCATION_SPECIAL_EXIT=17 ; if we have something clickable
; $FF if not, direction if so
LOCATION_SPECIAL_X1=18 ; collision box for the thing to click
LOCATION_SPECIAL_X2=19
LOCATION_SPECIAL_Y1=20
LOCATION_SPECIAL_Y2=21
LOCATION_SPECIAL_FUNC=22 ; pointer-1 of function to call on click
locations:
.word location0, location1, location2, location3
.word location4
; Inside gear on Mist
location0:
.byte $ff ; north exit
.byte $ff ; south exit
.byte 1 ; 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 departure_e_lzsa ; east bg
.word $0000 ; west bg
.byte BG_EAST
.byte $ff ; special exit
; .byte 21,31 ; special x
; .byte 10,24 ; special y
; .word mist_link_book-1 ; special function
; closed book
location1:
.byte $ff ; north exit
.byte $ff ; south exit
.byte 2 ; 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 meche_book_closed_lzsa ; east bg
.word $0000 ; west bg
.byte BG_EAST
.byte $ff ; special exit
; open book
location2:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $3 ; east exit
.byte $ff ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte DIRECTION_W ; east exit_dir
.byte $ff ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word meche_book_open_lzsa ; east bg
.word $0000 ; west bg
.byte BG_EAST
.byte $ff ; special exit
; arrival
location3:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte 4 ; 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 $0000 ; east bg
.word arrival_w_lzsa ; west bg
.byte BG_WEST
.byte $ff ; special exit
; entrance
location4:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte 3 ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte $ff ; east exit_dir
.byte DIRECTION_W ; west exit_dir
.word entrance_n_lzsa ; north bg
.word entrance_s_lzsa ; south bg
.word entrance_e_lzsa ; east bg
.word entrance_w_lzsa ; west bg
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
.byte $ff ; special exit