From 54659a573d0b090b9b0bc98e06a655a6a150fddc Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 8 Jul 2020 13:53:46 -0400 Subject: [PATCH] mist: split generator room to own level need the 8k to finish mist --- mist/Makefile | 19 +- mist/common_defines.inc | 45 ++-- mist/common_routines.inc | 46 ++-- mist/generator.s | 137 ++++++++++++ mist/generator_puzzle.s | 71 ++---- mist/graphics_generator/Makefile | 50 +++++ .../gen_door_closed_n.png | Bin .../gen_door_open_n.png | Bin .../gen_door_s.png | Bin .../generator_n.png | Bin .../generator_s.png | Bin .../green_house_e.png | Bin .../green_house_w.png | Bin .../green_steps1_n.png | Bin .../green_steps1_s.png | Bin .../green_steps6_n.png | Bin .../green_steps6_w.png | Bin .../tower1_base_e.png | Bin .../tower1_top_e.png | Bin .../tower1_trail2_n.png | Bin .../tower1_trail2_s.png | Bin mist/graphics_generator/tower1_trail2_w.png | Bin 0 -> 928 bytes .../tower1_trail_e.png | Bin .../tower1_trail_w.png | Bin mist/graphics_mist/Makefile | 38 +--- mist/graphics_mist/mist_graphics.inc | 89 -------- mist/graphics_mist/pillar_anchor.png | Bin 0 -> 950 bytes mist/graphics_mist/pillar_arrow.png | Bin 0 -> 941 bytes mist/graphics_mist/pillar_bug.png | Bin 0 -> 888 bytes mist/graphics_mist/pillar_leaf.png | Bin 0 -> 874 bytes mist/leveldata_mist.inc | 210 +----------------- mist/loader.s | 10 +- mist/mist.s | 37 +-- mist/mist_puzzles.s | 89 ++++++++ 34 files changed, 386 insertions(+), 455 deletions(-) create mode 100644 mist/generator.s create mode 100644 mist/graphics_generator/Makefile rename mist/{graphics_mist => graphics_generator}/gen_door_closed_n.png (100%) rename mist/{graphics_mist => graphics_generator}/gen_door_open_n.png (100%) rename mist/{graphics_mist => graphics_generator}/gen_door_s.png (100%) rename mist/{graphics_mist => graphics_generator}/generator_n.png (100%) rename mist/{graphics_mist => graphics_generator}/generator_s.png (100%) rename mist/{graphics_mist => graphics_generator}/green_house_e.png (100%) rename mist/{graphics_mist => graphics_generator}/green_house_w.png (100%) rename mist/{graphics_mist => graphics_generator}/green_steps1_n.png (100%) rename mist/{graphics_mist => graphics_generator}/green_steps1_s.png (100%) rename mist/{graphics_mist => graphics_generator}/green_steps6_n.png (100%) rename mist/{graphics_mist => graphics_generator}/green_steps6_w.png (100%) rename mist/{graphics_mist => graphics_generator}/tower1_base_e.png (100%) rename mist/{graphics_mist => graphics_generator}/tower1_top_e.png (100%) rename mist/{graphics_mist => graphics_generator}/tower1_trail2_n.png (100%) rename mist/{graphics_mist => graphics_generator}/tower1_trail2_s.png (100%) create mode 100644 mist/graphics_generator/tower1_trail2_w.png rename mist/{graphics_mist => graphics_generator}/tower1_trail_e.png (100%) rename mist/{graphics_mist => graphics_generator}/tower1_trail_w.png (100%) delete mode 100644 mist/graphics_mist/mist_graphics.inc create mode 100644 mist/graphics_mist/pillar_anchor.png create mode 100644 mist/graphics_mist/pillar_arrow.png create mode 100644 mist/graphics_mist/pillar_bug.png create mode 100644 mist/graphics_mist/pillar_leaf.png create mode 100644 mist/mist_puzzles.s diff --git a/mist/Makefile b/mist/Makefile index 8eee2a14..7a0c8032 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -12,7 +12,7 @@ zip: mist.dsk mist_side2.dsk mist_side3.dsk zip mist.zip mist.dsk mist_side2.dsk mist_side3.dsk mist.dsk: HELLO LOADER MIST_TITLE MIST OCTAGON VIEWER \ - MECHE SELENA CABIN CHANNEL STONEY DENTIST SAVE0 + MECHE SELENA CABIN CHANNEL STONEY DENTIST GENERATOR SAVE0 cp empty.dsk mist.dsk $(DOS33) -y mist.dsk SAVE A HELLO $(DOS33) -y mist.dsk BSAVE -a 0x1000 LOADER @@ -21,6 +21,7 @@ mist.dsk: HELLO LOADER MIST_TITLE MIST OCTAGON VIEWER \ $(DOS33) -y mist.dsk BSAVE -a 0x2000 OCTAGON $(DOS33) -y mist.dsk BSAVE -a 0x2000 CABIN $(DOS33) -y mist.dsk BSAVE -a 0x2000 DENTIST + $(DOS33) -y mist.dsk BSAVE -a 0x2000 GENERATOR $(DOS33) -y mist.dsk BSAVE -a 0xe00 SAVE0 $(DOS33) -y mist.dsk BSAVE -a 0x9000 ./audio/link_noise.btc LINK_NOISE.BTC @@ -108,17 +109,29 @@ mist.o: mist.s zp.inc hardware.inc common_defines.inc common_routines.inc \ common_sprites.inc \ leveldata_mist.inc \ clock_bridge_puzzle.s clock_sprites.inc \ - letter_cat.s \ marker_switch.s \ keyboard.s \ draw_pointer.s \ end_level.s \ - generator_puzzle.s \ + mist_puzzles.s \ gr_copy.s audio.s text_print.s decompress_fast_v2.s ca65 -o mist.o mist.s -l mist.lst #### +GENERATOR: generator.o + ld65 -o GENERATOR generator.o -C ../linker_scripts/apple2_2000.inc + +generator.o: generator.s zp.inc hardware.inc \ + common_defines.inc common_routines.inc \ + graphics_mist/mist_graphics.inc \ + leveldata_generator.inc \ + generator_puzzle.s + ca65 -o generator.o generator.s -l generator.lst + + +#### + OCTAGON: octagon.o ld65 -o OCTAGON octagon.o -C ../linker_scripts/apple2_2000.inc diff --git a/mist/common_defines.inc b/mist/common_defines.inc index c7b0a20f..bfe463e1 100644 --- a/mist/common_defines.inc +++ b/mist/common_defines.inc @@ -47,11 +47,10 @@ LOAD_CHANNEL = 7 LOAD_CABIN = 8 LOAD_DENTIST = 9 LOAD_ARBOR = 10 -LOAD_SHIPUP = 11 -LOAD_NIBEL = 12 -LOAD_ENDING = 13 - - +LOAD_NIBEL = 11 +LOAD_SHIP = 12 +LOAD_GENERATOR = 13 +LOAD_ENDING = 14 ;================================ ; Level definitions @@ -87,23 +86,25 @@ MIST_CLOCK_PUZZLE = 21 MIST_CLOCK_ISLAND = 22 MIST_CLOCK_INSIDE = 23 MIST_OPEN_GEAR = 24 -;MIST_CHAIR_VIEW = 25 -MIST_GREEN_SHACK = 26 -MIST_GREEN_STEPS1 = 27 -MIST_GREEN_STEPS6 = 28 -MIST_GENERATOR_DOOR = 29 -MIST_GENERATOR_ROOM = 30 -MIST_ROCKET_PATH_PAD = 31 -MIST_ROCKET_CLOSE = 32 -MIST_TOWER2_PATH = 33 -MIST_TOWER2_BASE = 34 -MIST_TOWER2_TOP = 35 -MIST_TOWER1_TRAIL = 36 -MIST_TOWER1_TRAIL2 = 37 -MIST_TOWER1_BOTTOM = 38 -MIST_TOWER1_TOP = 39 -MIST_VIEWER_DOOR = 40 -; re-use 20,25 +MIST_ROCKET_PATH_PAD = 25 +MIST_ROCKET_CLOSE = 26 +MIST_TOWER2_PATH = 27 +MIST_TOWER2_BASE = 28 +MIST_TOWER2_TOP = 29 +MIST_VIEWER_DOOR = 30 + + +; Mist Generator Building +GEN_GREEN_SHACK = 0 +GEN_GREEN_STEPS1 = 1 +GEN_GREEN_STEPS6 = 2 +GEN_GENERATOR_DOOR = 3 +GEN_GENERATOR_ROOM = 4 +GEN_TOWER1_TRAIL = 5 +GEN_TOWER1_TRAIL2 = 6 +GEN_TOWER1_BOTTOM = 7 +GEN_TOWER1_TOP = 8 + ; Mist Octagon Building diff --git a/mist/common_routines.inc b/mist/common_routines.inc index ef71dd06..2c2b5617 100644 --- a/mist/common_routines.inc +++ b/mist/common_routines.inc @@ -5,51 +5,51 @@ opendir_filename =$1039 ; audio.c -play_audio =$1346 +play_audio =$1350 ; decompress_fast_v2.s -decompress_lzsa2_fast =$1457 -getsrc_smc =$154d +decompress_lzsa2_fast =$1461 +getsrc_smc =$1557 ; draw_pointer.s -draw_pointer =$155a +draw_pointer =$1564 ; end_level.s -end_level =$169d +end_level =$16a7 ; gr_copy.s -gr_copy_to_current =$16bf +gr_copy_to_current =$16c9 ; gr_fast_clear.s -clear_bottom =$17e5 -clear_all =$1823 -clear_all_color =$1848 +clear_bottom =$17ef +clear_all =$182d +clear_all_color =$1852 ; gr_offsets.s -gr_offsets =$1866 +gr_offsets =$1870 ; gr_page_flip.s -page_flip =$1896 +page_flip =$18a0 ; gr_putsprite_crop.s -put_sprite_crop =$18b0 -psc_smc1 =$18d3 -psc_smc2 =$196b +put_sprite_crop =$18ba +psc_smc1 =$18dd +psc_smc2 =$1975 ; keyboard.s -handle_keypress =$19ec -change_location =$1acd +handle_keypress =$19f6 +change_location =$1ad7 ; text_print.s -move_and_print =$1b65 -ps_smc1 =$1b92 +move_and_print =$1b6f +ps_smc1 =$1b9c ; page_sprites.inc -blue_page_sprite =$1c7a -red_page_sprite =$1c90 -white_page_sprite =$1ca6 -blue_page_small_sprite =$1cbc -red_page_small_sprite =$1cc4 +blue_page_sprite =$1c84 +red_page_sprite =$1c9a +white_page_sprite =$1cb0 +blue_page_small_sprite =$1cc6 +red_page_small_sprite =$1cce ; audio files linking_noise = $9000 diff --git a/mist/generator.s b/mist/generator.s new file mode 100644 index 00000000..3eeb1f0b --- /dev/null +++ b/mist/generator.s @@ -0,0 +1,137 @@ +; Generator, deep under Myst Island + +; by deater (Vince Weaver) + +; Zero Page + .include "zp.inc" + .include "hardware.inc" + .include "common_defines.inc" + .include "common_routines.inc" + +generator_start: + ;=================== + ; init screen + ;=================== + + jsr TEXT + jsr HOME + bit KEYRESET + + bit SET_GR + bit PAGE0 + bit LORES + bit FULLGR + + ;================= + ; set up location + ;================= + + lda #locations + sta LOCATIONS_H + + lda #0 + sta DRAW_PAGE + sta LEVEL_OVER + + ; init cursor + + lda #20 + sta CURSOR_X + sta CURSOR_Y + + ; set up initial location + + jsr change_location + + lda #1 + sta CURSOR_VISIBLE ; visible at first + +game_loop: + ;================= + ; reset things + ;================= + + lda #0 + sta IN_SPECIAL + sta IN_RIGHT + sta IN_LEFT + + ;==================================== + ; copy background to current page + ;==================================== + + jsr gr_copy_to_current + + ;==================================== + ; handle special-case forground logic + ;==================================== + + ; handle generator puzzle +location_generator: + cmp #GEN_GENERATOR_ROOM + bne nothing_special + lda DIRECTION + and #$f + cmp #DIRECTION_N + bne nothing_special + + jsr generator_update_volts + jsr generator_draw_buttons + jmp nothing_special + +nothing_special: + + ;==================================== + ; draw pointer + ;==================================== + + jsr draw_pointer + + ;==================================== + ; page flip + ;==================================== + + jsr page_flip + + ;==================================== + ; handle keypress/joystick + ;==================================== + + jsr handle_keypress + + + ;==================================== + ; inc frame count + ;==================================== + + inc FRAMEL + bne room_frame_no_oflo + inc FRAMEH +room_frame_no_oflo: + + ;==================================== + ; check level over + ;==================================== + + lda LEVEL_OVER + bne really_exit + jmp game_loop + +really_exit: + jmp end_level + + + ;========================== + ; includes + ;========================== + + ; graphics data + .include "graphics_generator/generator_graphics.inc" + + ; puzzles + .include "generator_puzzle.s" + + ; level data + .include "leveldata_generator.inc" diff --git a/mist/generator_puzzle.s b/mist/generator_puzzle.s index 2a0725ba..b672fbe3 100644 --- a/mist/generator_puzzle.s +++ b/mist/generator_puzzle.s @@ -1,8 +1,22 @@ +leave_tower1: + lda #GEN_TOWER1_TOP + sta LOCATION + + lda #DIRECTION_E + sta DIRECTION + + jsr change_location + + rts + + + + ;======================= ; flip circuit breaker ; if room==MIST_TOWER2_TOP, and with #$fe -; if room==MIST_TOWER1_TOP, and with #$fd +; if room==GEN_TOWER1_TOP, and with #$fd circuit_breaker: @@ -40,69 +54,24 @@ done_turn_on_breaker: rts -;====================== -; open the spaceship door - -open_ss_door: - - ; check if voltage is 59 - lda ROCKET_VOLTS - cmp #$59 - bne done_ss_door - - ; change to open door image - ldy #LOCATION_NORTH_BG - lda #spaceship_door_open_n_lzsa - sta location32+1,Y ; MIST_ROCKET_CLOSE - - ; change to load new level if through - ldy #LOCATION_SPECIAL_FUNC - lda #<(go_to_selena-1) - sta location32,Y ; MIST_ROCKET_CLOSE - lda #>(go_to_selena-1) - sta location32+1,Y ; MIST_ROCKET_CLOSE - - jsr change_location - -done_ss_door: - rts - - -;====================== -; go to selena - -go_to_selena: - - lda #3 ; Selena - sta WHICH_LOAD - - lda #$ff - sta LEVEL_OVER - - rts - - - ;====================== ; open the generator_door open_gen_door: ldy #LOCATION_NORTH_EXIT - lda #MIST_GENERATOR_ROOM - sta location29,Y ; MIST_GENERATOR_DOOR + lda #GEN_GENERATOR_ROOM + sta location3,Y ; GEN_GENERATOR_DOOR ldy #LOCATION_NORTH_EXIT_DIR lda #(DIRECTION_N | DIRECTION_SPLIT | DIRECTION_ONLY_POINT) - sta location29,Y ; MIST_GENERATOR_DOOR + sta location3,Y ; GEN_GENERATOR_DOOR ldy #LOCATION_NORTH_BG lda #gen_door_open_n_lzsa - sta location29+1,Y ; MIST_GENERATOR_DOOR + sta location3+1,Y ; GEN_GENERATOR_DOOR jsr change_location diff --git a/mist/graphics_generator/Makefile b/mist/graphics_generator/Makefile new file mode 100644 index 00000000..70177c7a --- /dev/null +++ b/mist/graphics_generator/Makefile @@ -0,0 +1,50 @@ +#include ../Makefile.inc + +PNG2RLE = ../../gr-utils/png2rle +PNG2GR = ../../gr-utils/png2gr +LZSA = ~/research/lzsa/lzsa/lzsa + +all: generator_graphics.inc + + +#### + +generator_graphics.inc: \ + generator_n.lzsa generator_s.lzsa \ + green_house_w.lzsa green_house_e.lzsa \ + green_steps1_n.lzsa green_steps1_s.lzsa \ + gen_door_closed_n.lzsa gen_door_open_n.lzsa gen_door_s.lzsa \ + green_steps6_n.lzsa green_steps6_w.lzsa \ + tower1_trail_w.lzsa tower1_trail_e.lzsa \ + tower1_trail2_n.lzsa tower1_trail2_s.lzsa tower1_trail2_w.lzsa \ + tower1_base_e.lzsa \ + tower1_top_e.lzsa + echo "generator_n_lzsa: .incbin \"generator_n.lzsa\"" > generator_graphics.inc + echo "generator_s_lzsa: .incbin \"generator_s.lzsa\"" >> generator_graphics.inc + echo "green_house_w_lzsa: .incbin \"green_house_w.lzsa\"" >> generator_graphics.inc + echo "green_house_e_lzsa: .incbin \"green_house_e.lzsa\"" >> generator_graphics.inc + echo "green_steps1_n_lzsa: .incbin \"green_steps1_n.lzsa\"" >> generator_graphics.inc + echo "green_steps1_s_lzsa: .incbin \"green_steps1_s.lzsa\"" >> generator_graphics.inc + echo "gen_door_closed_n_lzsa: .incbin \"gen_door_closed_n.lzsa\"" >> generator_graphics.inc + echo "gen_door_open_n_lzsa: .incbin \"gen_door_open_n.lzsa\"" >> generator_graphics.inc + echo "gen_door_s_lzsa: .incbin \"gen_door_s.lzsa\"" >> generator_graphics.inc + echo "green_steps6_n_lzsa: .incbin \"green_steps6_n.lzsa\"" >> generator_graphics.inc + echo "green_steps6_w_lzsa: .incbin \"green_steps6_w.lzsa\"" >> generator_graphics.inc + echo "tower1_trail_w_lzsa: .incbin \"tower1_trail_w.lzsa\"" >> generator_graphics.inc + echo "tower1_trail_e_lzsa: .incbin \"tower1_trail_e.lzsa\"" >> generator_graphics.inc + echo "tower1_trail2_n_lzsa: .incbin \"tower1_trail2_n.lzsa\"" >> generator_graphics.inc + echo "tower1_trail2_w_lzsa: .incbin \"tower1_trail2_w.lzsa\"" >> generator_graphics.inc + echo "tower1_trail2_s_lzsa: .incbin \"tower1_trail2_s.lzsa\"" >> generator_graphics.inc + echo "tower1_base_e_lzsa: .incbin \"tower1_base_e.lzsa\"" >> generator_graphics.inc + echo "tower1_top_e_lzsa: .incbin \"tower1_top_e.lzsa\"" >> generator_graphics.inc + +%.gr: %.png + $(PNG2GR) $< $@ + +%.lzsa: %.gr + $(LZSA) -r -f2 $< $@ + +#### + +clean: + rm -f *~ *.o *.lst *.gr *.lzsa generator_graphics.inc diff --git a/mist/graphics_mist/gen_door_closed_n.png b/mist/graphics_generator/gen_door_closed_n.png similarity index 100% rename from mist/graphics_mist/gen_door_closed_n.png rename to mist/graphics_generator/gen_door_closed_n.png diff --git a/mist/graphics_mist/gen_door_open_n.png b/mist/graphics_generator/gen_door_open_n.png similarity index 100% rename from mist/graphics_mist/gen_door_open_n.png rename to mist/graphics_generator/gen_door_open_n.png diff --git a/mist/graphics_mist/gen_door_s.png b/mist/graphics_generator/gen_door_s.png similarity index 100% rename from mist/graphics_mist/gen_door_s.png rename to mist/graphics_generator/gen_door_s.png diff --git a/mist/graphics_mist/generator_n.png b/mist/graphics_generator/generator_n.png similarity index 100% rename from mist/graphics_mist/generator_n.png rename to mist/graphics_generator/generator_n.png diff --git a/mist/graphics_mist/generator_s.png b/mist/graphics_generator/generator_s.png similarity index 100% rename from mist/graphics_mist/generator_s.png rename to mist/graphics_generator/generator_s.png diff --git a/mist/graphics_mist/green_house_e.png b/mist/graphics_generator/green_house_e.png similarity index 100% rename from mist/graphics_mist/green_house_e.png rename to mist/graphics_generator/green_house_e.png diff --git a/mist/graphics_mist/green_house_w.png b/mist/graphics_generator/green_house_w.png similarity index 100% rename from mist/graphics_mist/green_house_w.png rename to mist/graphics_generator/green_house_w.png diff --git a/mist/graphics_mist/green_steps1_n.png b/mist/graphics_generator/green_steps1_n.png similarity index 100% rename from mist/graphics_mist/green_steps1_n.png rename to mist/graphics_generator/green_steps1_n.png diff --git a/mist/graphics_mist/green_steps1_s.png b/mist/graphics_generator/green_steps1_s.png similarity index 100% rename from mist/graphics_mist/green_steps1_s.png rename to mist/graphics_generator/green_steps1_s.png diff --git a/mist/graphics_mist/green_steps6_n.png b/mist/graphics_generator/green_steps6_n.png similarity index 100% rename from mist/graphics_mist/green_steps6_n.png rename to mist/graphics_generator/green_steps6_n.png diff --git a/mist/graphics_mist/green_steps6_w.png b/mist/graphics_generator/green_steps6_w.png similarity index 100% rename from mist/graphics_mist/green_steps6_w.png rename to mist/graphics_generator/green_steps6_w.png diff --git a/mist/graphics_mist/tower1_base_e.png b/mist/graphics_generator/tower1_base_e.png similarity index 100% rename from mist/graphics_mist/tower1_base_e.png rename to mist/graphics_generator/tower1_base_e.png diff --git a/mist/graphics_mist/tower1_top_e.png b/mist/graphics_generator/tower1_top_e.png similarity index 100% rename from mist/graphics_mist/tower1_top_e.png rename to mist/graphics_generator/tower1_top_e.png diff --git a/mist/graphics_mist/tower1_trail2_n.png b/mist/graphics_generator/tower1_trail2_n.png similarity index 100% rename from mist/graphics_mist/tower1_trail2_n.png rename to mist/graphics_generator/tower1_trail2_n.png diff --git a/mist/graphics_mist/tower1_trail2_s.png b/mist/graphics_generator/tower1_trail2_s.png similarity index 100% rename from mist/graphics_mist/tower1_trail2_s.png rename to mist/graphics_generator/tower1_trail2_s.png diff --git a/mist/graphics_generator/tower1_trail2_w.png b/mist/graphics_generator/tower1_trail2_w.png new file mode 100644 index 0000000000000000000000000000000000000000..2a924bf75618a6e9dfc62c09401a63622e8ada67 GIT binary patch literal 928 zcmV;R17G}!P)EX>4Tx04R}tkv&MmP!xrasZx;^2Rn#3WT;LS#ELj-D-@wZs1;guFnQ@8G-*gu zTpR`0f`dPcRR)J(gBGdxvqHp#<}FOz%wIeHj^Zd5R0WQR=Sv#O^tY(II3zoH~2kUs~Dg1l0pff@5OOG#(>~1&}ul&_p#%&PJqBOaHV(rwI(q8NqVEB zMUQ~NZQ$a%qbYm9swCDE&6T5PO*JwuI0000pP)t-s0002v9$;Wjz5hi00Ha`>oSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jl}21S}GXjKi-0000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0003?Nkl~DcYeGSwO z3Nj?Q1K&S}MwvoRn@O;qhf_^%P3%)pJ0t`GJ)JfqAo@^%7_S*ntmV&_!KX3x-0C&C z+HF9gp0@z$s`kTr+UV8_!2R6@s9nvxQaWI1k`8pQ<`E!4?Ll>V1RO#AL8Sm&yPO7$ zaob{!g&<-*m=c32NicQ8dz5d0^!N&RM2m+b`U+y2UP})8uv;!hp2R@&u z!o9$<&;W*TH}LUj zgYTU+KX>DO$RvZiKTl(z_q1V2uyAOy83&n^ptXNCDxDkOwg&0|0000 mist_graphics.inc echo "dock_s_lzsa: .incbin \"dock_s.lzsa\"" >> mist_graphics.inc echo "dock_e_lzsa: .incbin \"dock_e.lzsa\"" >> mist_graphics.inc @@ -111,17 +104,6 @@ mist_graphics.inc: \ echo "clock_inside_s_lzsa: .incbin \"clock_inside_s.lzsa\"" >> mist_graphics.inc echo "clock_inside_open_lzsa: .incbin \"clock_inside_open.lzsa\"" >> mist_graphics.inc echo "gear_open_e_lzsa: .incbin \"gear_open_e.lzsa\"" >> mist_graphics.inc - echo "generator_n_lzsa: .incbin \"generator_n.lzsa\"" >> mist_graphics.inc - echo "generator_s_lzsa: .incbin \"generator_s.lzsa\"" >> mist_graphics.inc - echo "green_house_w_lzsa: .incbin \"green_house_w.lzsa\"" >> mist_graphics.inc - echo "green_house_e_lzsa: .incbin \"green_house_e.lzsa\"" >> mist_graphics.inc - echo "green_steps1_n_lzsa: .incbin \"green_steps1_n.lzsa\"" >> mist_graphics.inc - echo "green_steps1_s_lzsa: .incbin \"green_steps1_s.lzsa\"" >> mist_graphics.inc - echo "gen_door_closed_n_lzsa: .incbin \"gen_door_closed_n.lzsa\"" >> mist_graphics.inc - echo "gen_door_open_n_lzsa: .incbin \"gen_door_open_n.lzsa\"" >> mist_graphics.inc - echo "gen_door_s_lzsa: .incbin \"gen_door_s.lzsa\"" >> mist_graphics.inc - echo "green_steps6_n_lzsa: .incbin \"green_steps6_n.lzsa\"" >> mist_graphics.inc - echo "green_steps6_w_lzsa: .incbin \"green_steps6_w.lzsa\"" >> mist_graphics.inc echo "pad_n_lzsa: .incbin \"pad_n.lzsa\"" >> mist_graphics.inc echo "pad_e_lzsa: .incbin \"pad_e.lzsa\"" >> mist_graphics.inc echo "spaceship_door_n_lzsa: .incbin \"spaceship_door_n.lzsa\"" >> mist_graphics.inc @@ -130,14 +112,14 @@ mist_graphics.inc: \ echo "tower2_top_w_lzsa: .incbin \"tower2_top_w.lzsa\"" >> mist_graphics.inc echo "tower2_path_e_lzsa: .incbin \"tower2_path_e.lzsa\"" >> mist_graphics.inc echo "tower2_path_n_lzsa: .incbin \"tower2_path_n.lzsa\"" >> mist_graphics.inc - echo "tower1_trail_w_lzsa: .incbin \"tower1_trail_w.lzsa\"" >> mist_graphics.inc - echo "tower1_trail_e_lzsa: .incbin \"tower1_trail_e.lzsa\"" >> mist_graphics.inc - echo "tower1_trail2_n_lzsa: .incbin \"tower1_trail2_n.lzsa\"" >> mist_graphics.inc - echo "tower1_trail2_w_lzsa: .incbin \"tower1_trail2_w.lzsa\"" >> mist_graphics.inc - echo "tower1_trail2_s_lzsa: .incbin \"tower1_trail2_s.lzsa\"" >> mist_graphics.inc - echo "tower1_base_e_lzsa: .incbin \"tower1_base_e.lzsa\"" >> mist_graphics.inc - echo "tower1_top_e_lzsa: .incbin \"tower1_top_e.lzsa\"" >> mist_graphics.inc - + echo "pillar_cross_lzsa: .incbin \"pillar_cross.lzsa\"" >> mist_graphics.inc + echo "pillar_eye_lzsa: .incbin \"pillar_eye.lzsa\"" >> mist_graphics.inc + echo "pillar_snake_lzsa: .incbin \"pillar_snake.lzsa\"" >> mist_graphics.inc + echo "pillar_emu_lzsa: .incbin \"pillar_emu.lzsa\"" >> mist_graphics.inc + echo "pillar_bug_lzsa: .incbin \"pillar_bug.lzsa\"" >> mist_graphics.inc + echo "pillar_anchor_lzsa: .incbin \"pillar_anchor.lzsa\"" >> mist_graphics.inc + echo "pillar_arrow_lzsa: .incbin \"pillar_arrow.lzsa\"" >> mist_graphics.inc + echo "pillar_leaf_lzsa: .incbin \"pillar_leaf.lzsa\"" >> mist_graphics.inc %.gr: %.png $(PNG2GR) $< $@ diff --git a/mist/graphics_mist/mist_graphics.inc b/mist/graphics_mist/mist_graphics.inc deleted file mode 100644 index 678a9949..00000000 --- a/mist/graphics_mist/mist_graphics.inc +++ /dev/null @@ -1,89 +0,0 @@ -dock_n_lzsa: .incbin "dock_n.lzsa" -dock_s_lzsa: .incbin "dock_s.lzsa" -dock_e_lzsa: .incbin "dock_e.lzsa" -dock_w_lzsa: .incbin "dock_w.lzsa" -dock_w_open_lzsa: .incbin "dock_w_open.lzsa" -dock_switch_n_lzsa: .incbin "dock_switch_n.lzsa" -dock_switch_s_lzsa: .incbin "dock_switch_s.lzsa" -dock_steps_w_lzsa: .incbin "dock_steps_w.lzsa" -cat_letter_lzsa: .incbin "cat_letter.lzsa" -above_dock_e_lzsa: .incbin "above_dock_e.lzsa" -above_dock_s_lzsa: .incbin "above_dock_s.lzsa" -above_dock_n_lzsa: .incbin "above_dock_n.lzsa" -step_base_n_lzsa: .incbin "step_base_n.lzsa" -step_base_s_lzsa: .incbin "step_base_s.lzsa" -step_land1_w_lzsa: .incbin "step_land1_w.lzsa" -step_land1_e_lzsa: .incbin "step_land1_e.lzsa" -step_land2_w_lzsa: .incbin "step_land2_w.lzsa" -step_land2_e_lzsa: .incbin "step_land2_e.lzsa" -step_dentist_n_lzsa: .incbin "step_dentist_n.lzsa" -step_dentist_w_lzsa: .incbin "step_dentist_w.lzsa" -step_dentist_e_lzsa: .incbin "step_dentist_e.lzsa" -step_land3_w_lzsa: .incbin "step_land3_w.lzsa" -step_land3_e_lzsa: .incbin "step_land3_e.lzsa" -step_top_e_lzsa: .incbin "step_top_e.lzsa" -step_top_w_lzsa: .incbin "step_top_w.lzsa" -step_top_n_lzsa: .incbin "step_top_n.lzsa" -step_top_s_lzsa: .incbin "step_top_s.lzsa" -pool_n_lzsa: .incbin "pool_n.lzsa" -pool_s_lzsa: .incbin "pool_s.lzsa" -pool_e_lzsa: .incbin "pool_e.lzsa" -pool_w_lzsa: .incbin "pool_w.lzsa" -clock_s_lzsa: .incbin "clock_s.lzsa" -clock_n_lzsa: .incbin "clock_n.lzsa" -clock_e_lzsa: .incbin "clock_e.lzsa" -clock_bridge_lzsa: .incbin "clock_bridge.lzsa" -spaceship_far_n_lzsa: .incbin "spaceship_far_n.lzsa" -spaceship_far_e_lzsa: .incbin "spaceship_far_e.lzsa" -tree1_n_lzsa: .incbin "tree1_n.lzsa" -tree1_s_lzsa: .incbin "tree1_s.lzsa" -tree2_n_lzsa: .incbin "tree2_n.lzsa" -tree2_s_lzsa: .incbin "tree2_s.lzsa" -tree2_e_lzsa: .incbin "tree2_e.lzsa" -tree2_w_lzsa: .incbin "tree2_w.lzsa" -tree5_n_lzsa: .incbin "tree5_n.lzsa" -tree5_s_lzsa: .incbin "tree5_s.lzsa" -tree5_e_lzsa: .incbin "tree5_e.lzsa" -gear_n_lzsa: .incbin "gear_n.lzsa" -gear_s_lzsa: .incbin "gear_s.lzsa" -gear_w_lzsa: .incbin "gear_w.lzsa" -gear_open_n_lzsa: .incbin "gear_open_n.lzsa" -gear_base_n_lzsa: .incbin "gear_base_n.lzsa" -spaceship_switch_n_lzsa: .incbin "spaceship_switch_n.lzsa" -tree4_n_lzsa: .incbin "tree4_n.lzsa" -tree4_s_lzsa: .incbin "tree4_s.lzsa" -tree4_w_lzsa: .incbin "tree4_w.lzsa" -tree4_e_lzsa: .incbin "tree4_e.lzsa" -clock_island_s_lzsa: .incbin "clock_island_s.lzsa" -clock_island_n_lzsa: .incbin "clock_island_n.lzsa" -clock_puzzle_s_lzsa: .incbin "clock_puzzle_s.lzsa" -clock_puzzle_bridge_lzsa: .incbin "clock_puzzle_bridge.lzsa" -clock_inside_s_lzsa: .incbin "clock_inside_s.lzsa" -clock_inside_open_lzsa: .incbin "clock_inside_open.lzsa" -gear_open_e_lzsa: .incbin "gear_open_e.lzsa" -generator_n_lzsa: .incbin "generator_n.lzsa" -generator_s_lzsa: .incbin "generator_s.lzsa" -green_house_w_lzsa: .incbin "green_house_w.lzsa" -green_house_e_lzsa: .incbin "green_house_e.lzsa" -green_steps1_n_lzsa: .incbin "green_steps1_n.lzsa" -green_steps1_s_lzsa: .incbin "green_steps1_s.lzsa" -gen_door_closed_n_lzsa: .incbin "gen_door_closed_n.lzsa" -gen_door_open_n_lzsa: .incbin "gen_door_open_n.lzsa" -gen_door_s_lzsa: .incbin "gen_door_s.lzsa" -green_steps6_n_lzsa: .incbin "green_steps6_n.lzsa" -green_steps6_w_lzsa: .incbin "green_steps6_w.lzsa" -pad_n_lzsa: .incbin "pad_n.lzsa" -pad_e_lzsa: .incbin "pad_e.lzsa" -spaceship_door_n_lzsa: .incbin "spaceship_door_n.lzsa" -spaceship_door_open_n_lzsa: .incbin "spaceship_door_open_n.lzsa" -tower2_base_w_lzsa: .incbin "tower2_base_w.lzsa" -tower2_top_w_lzsa: .incbin "tower2_top_w.lzsa" -tower2_path_e_lzsa: .incbin "tower2_path_e.lzsa" -tower2_path_n_lzsa: .incbin "tower2_path_n.lzsa" -tower1_trail_w_lzsa: .incbin "tower1_trail_w.lzsa" -tower1_trail_e_lzsa: .incbin "tower1_trail_e.lzsa" -tower1_trail2_n_lzsa: .incbin "tower1_trail2_n.lzsa" -tower1_trail2_w_lzsa: .incbin "tower1_trail2_w.lzsa" -tower1_trail2_s_lzsa: .incbin "tower1_trail2_s.lzsa" -tower1_base_e_lzsa: .incbin "tower1_base_e.lzsa" -tower1_top_e_lzsa: .incbin "tower1_top_e.lzsa" diff --git a/mist/graphics_mist/pillar_anchor.png b/mist/graphics_mist/pillar_anchor.png new file mode 100644 index 0000000000000000000000000000000000000000..ac71d2e2308a025c9b2bb5b19d4abe65c4248f39 GIT binary patch literal 950 zcmV;n14;aeP)EX>4Tx04R}tkv&MmKpe$iQ%j3fI@m$PAwzYtAS&XhRVYG*P%E_RU~=gfG%+M8 zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbCJG^=L}&~)3( zrc+|Rup)+E5k>?dL=lsjWz0%a2EOC#9s$1IC3%+rxj#prTC^At5Q%4)VcNvaEL z!FiuJ&MLA>d`>)S(glehxvqHp#<}dWz%%1!E;~mYClTgUaYEH}$`|q; ztDLtuYqdIS-;=*ETGW@9xK48jX)It75=1Ddqly}ABx%)2v5=+xl#hSV^-JVZ$W;X+ z$2>NmL3aJ%fAG6ot28n0B}G#}=*4k9hJo-d&}ul&_p#%&PJrMuaHV(r8%<#Plk`SM zOB?~QZQ$a%qbYm9A(Ki)<{#&4T)$6UjkJASrM_pxZfP+I| zq)gdsKJSin_xA6Zc7H$LmvU@i)~Xi(001*kOjJbx00842U|>$Y|3v)&qhOqzoD|Rf z(8K>=as&TrJe{4L|Dezm^*qqsjdK6c|Ns90005njhJXM7010qNS#tmY6m$Rp6<`6D zSL>1h000McNlirueSad^gZEa<4bO1wgWnpw>WFU8GbZ8() zNlj2!fese{00Cl2L_t(Y$JN&1j>8}b0ARbg#QkXd{%?C@i~&{=9l6|*ELqz6MT!EX>4Tx04R}tkv&MmKpe$iQ%j3fI@m$PAwzYtAS&XhRVYG*P%E_RU~=gfG%+M8 zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbCJG^=L}&~)3( zrc+|Rup)+E5k>?dL=lsjWz0%a2EOC#9s$1IC3%+rxj#prTC^At5Q%4)VcNvaEL z!FiuJ&MLA>d`>)S(glehxvqHp#<}dWz%%1!E;~mYClTgUaYEH}$`|q; ztDLtuYqdIS-;=*ETGW@9xK48jX)It75=1Ddqly}ABx%)2v5=+xl#hSV^-JVZ$W;X+ z$2>NmL3aJ%fAG6ot28n0B}G#}=*4k9hJo-d&}ul&_p#%&PJrMuaHV(r8%<#Plk`SM zOB?~QZQ$a%qbYm9A(Ki)<{#&4T)$6UjkJASrM_pxZfP+I| zq)gdsKJSin_xA6Zc7H$LmvU@i)~Xi(001*kOjJbx00842U|>$Y|3v)&qhOqzoD|Rf z(8K>=as&TrJe{4L|Dezm^*qqsjdK6c|Ns90005njhJXM7010qNS#tmY6m$Rp6<`6D zSL>1h000McNlirueSad^gZEa<4bO1wgWnpw>WFU8GbZ8() zNlj2!fese{00CJ^L_t(Y$IaG@4uUWY1<+|ALL%}1|5mSUS-S_0ZW^12GT3pWdl051 zLWsX-j@vsPufR7-))m+3C_!f-<$6HWHGl?jvlG;0FUT<%^mkceSt=kEb%J`ZXs{*A zDY)lY7%ylZ8YepRkHg=9`MfEI8@yg~3}pwPOqc!^^5WnHQKJf0hkysHk0=2*6B@K} z8oaz?AV{Q6O0mvYz*=I`F5@F0EeJ(0gccB-P71){z-|MD)8M-P28=T~zf9MVihLZF zKwe_?qF-)d8%XB{Ov%rn&h-xZrd}hMZ>qJ$p&3lK{nOyl%hE8AZa>}vsvu={+sfd% z7Va}8g7h9B;5?(U-A1XT1nyH0`)n^5pZo#1EUjJEsbml#|Akwr4Ff=2iePJ(DJ9*B1=_*QAjm%gDa@OL7o?d*VOATo@lU}gLgq;o0+&b2 P00000NkvXXu0mjfmy@CG literal 0 HcmV?d00001 diff --git a/mist/graphics_mist/pillar_bug.png b/mist/graphics_mist/pillar_bug.png new file mode 100644 index 0000000000000000000000000000000000000000..30372a25528dc7a3bc1415eb34a072d2db3b9b7b GIT binary patch literal 888 zcmV-;1Bd*HP)EX>4Tx04R}tkv&MmKpe$iQ%j3fI@m$PAwzYtAS&XhRVYG*P%E_RU~=gfG%+M8 zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbCJG^=L}&~)3( zrc+|Rup)+E5k>?dL=lsjWz0%a2EOC#9s$1IC3%+rxj#prTC^At5Q%4)VcNvaEL z!FiuJ&MLA>d`>)S(glehxvqHp#<}dWz%%1!E;~mYClTgUaYEH}$`|q; ztDLtuYqdIS-;=*ETGW@9xK48jX)It75=1Ddqly}ABx%)2v5=+xl#hSV^-JVZ$W;X+ z$2>NmL3aJ%fAG6ot28n0B}G#}=*4k9hJo-d&}ul&_p#%&PJrMuaHV(r8%<#Plk`SM zOB?~QZQ$a%qbYm9A(Ki)<{#&4T)$6UjkJASrM_pxZfP+I| zq)gdsKJSin_xA6Zc7H$LmvU@i)~Xi(001*kOjJbx00842U|>$Y|3v)&qhOqzoD|Rf z(8K>=as&TrJe{4L|Dezm^*qqsjdK6c|Ns90005njhJXM7010qNS#tmY6m$Rp6<`6D zSL>1h000McNlirug7Bm0=02y>eSad^gZEa<4bO1wgWnpw>WFU8GbZ8() zNlj2!fese{00AUPL_t(Y$L-eb4uc>J1yEctfghvq|F*LswMEL8V&W2SVvJ7CI;dpE ziZ};btObbYwGufFpN-?KHU9v{!H)zn85ke91j>@nfLzcH%0*!ipbiovxde0$C$+!A z8$epXE)dT(kiL{T@0G@u^=%&(a~k}7at!auIqU`jY84KHm^ygOG>|G)Kx1Uv5co}^ zfswoul-rL6E(;&p98L$bH>Cw4h0%Yq0`jZJ-Je!S83turPpOdCtOfE@%8uOvwMCJe z7arbceMlfLj09tyB@iHj&UJxWW5XduQ1<^#U~PkKfW}M(d2?W}ykif7?fvi>;JU`a zGIZzE98L!>w+;PSx&fRrhjEX>4Tx04R}tkv&MmKpe$iQ%j3fI@m$PAwzYtAS&XhRVYG*P%E_RU~=gfG%+M8 zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbCJG^=L}&~)3( zrc+|Rup)+E5k>?dL=lsjWz0%a2EOC#9s$1IC3%+rxj#prTC^At5Q%4)VcNvaEL z!FiuJ&MLA>d`>)S(glehxvqHp#<}dWz%%1!E;~mYClTgUaYEH}$`|q; ztDLtuYqdIS-;=*ETGW@9xK48jX)It75=1Ddqly}ABx%)2v5=+xl#hSV^-JVZ$W;X+ z$2>NmL3aJ%fAG6ot28n0B}G#}=*4k9hJo-d&}ul&_p#%&PJrMuaHV(r8%<#Plk`SM zOB?~QZQ$a%qbYm9A(Ki)<{#&4T)$6UjkJASrM_pxZfP+I| zq)gdsKJSin_xA6Zc7H$LmvU@i)~Xi(001*kOjJbx00842U|>$Y|3v)&qhOqzoD|Rf z(8K>=as&TrJe{4L|Dezm^*qqsjdK6c|Ns90005njhJXM7010qNS#tmY6m$Rp6<`6D zSL>1h000McNlirueSad^gZEa<4bO1wgWnpw>WFU8GbZ8() zNlj2!fese{009J1yD3DgT%@EzwN9ym2VW%MPt?zk_IR&hx1c?0nTnzQ;IBZf9}F7f7;(_ScLH;b460&ugX5TD)Yf>Hu@$&N2I>0R zL1bS6eu5AIhXELEQ!t$Q?732qDE!8ttK&ux(FJmc6wJ+GywWnWaW~LEj9&q+Y|hMK z1ez_Z#SKa8umR+OmO(C>V^C`a#@ZvWv{Jgj+S2O)>kkKHxkZ}+8XYZh^s6LRh zGa#3OAc(!Efb)zj-UeX!>=gmy?+0NJAMNen7h^P5Gl-EO;Q#;t07*qoM6N<$g0C%y Ap#T5? literal 0 HcmV?d00001 diff --git a/mist/leveldata_mist.inc b/mist/leveldata_mist.inc index 7cb1cacc..973799b5 100644 --- a/mist/leveldata_mist.inc +++ b/mist/leveldata_mist.inc @@ -11,10 +11,7 @@ locations: .word location16,location17,location18,location19 .word location20,location21,location22,location23 .word location24,location25,location26,location27 - .word location28,location29,location30,location31 - .word location32,location33,location34,location35 - .word location36,location37,location38,location39 - .word location40 + .word location28,location29,location30 ; MIST_ARRIVAL_DOCK -- dock location0: @@ -74,8 +71,6 @@ location2: .byte BG_WEST|BG_NORTH .byte $ff ; special exit - - ; MIST_ABOVE_DOCK -- above dock path location3: .byte MIST_GEAR_BASE ; north exit @@ -147,7 +142,6 @@ location6: .byte 36,45 ; special y .word read_letter-1 - ; MIST_STEPS_DENTIST -- steps outside dentist chair branch location7: .byte $ff ; north exit @@ -209,7 +203,6 @@ location9: .byte 0,46 ; special y .word enter_octagon-1 - ; MIST_POOL -- pool location10: .byte MIST_OUTSIDE_TEMPLE ; north exit @@ -324,7 +317,6 @@ location15: .byte 29,35 ; special y .word click_switch-1 ; special function - ; MIST_GEAR_BASE -- gear base location16: .byte MIST_GEAR ; north exit @@ -381,7 +373,7 @@ location19: .byte MIST_TREE_CORRIDOR_2 ; north exit .byte MIST_TREE_CORRIDOR_5 ; south exit .byte $ff ; east exit - .byte MIST_TOWER1_TRAIL ; west exit + .byte $ff ; west exit .byte DIRECTION_N ; north exit_dir .byte DIRECTION_S ; south exit_dir .byte $ff ; east exit_dir @@ -470,7 +462,6 @@ location23: .byte 8,32 ; special y .word clock_inside_puzzle-1 ; special function - ; MIST_OPEN_GEAR -- open_gear (?) location24: .byte $ff ; north exit @@ -491,117 +482,8 @@ location24: .byte 14,24 ; special y .word go_to_meche-1 ; special function -; MIST_CHAIR_VIEW (unused) -- chair view -location25: - .byte $ff ; north exit - .byte $ff ; south exit - .byte $ff ; east exit - .byte $ff ; west exit - .byte $ff ; north exit_dir - .byte $ff ; south exit_dir - .byte $ff ; east exit_dir - .byte $ff ; west exit_dir - .word $0000 ; north bg - .word $0000 ; south bg - .word $0000 ; east bg - .word $0000 ; west bg - .byte BG_NORTH | BG_SOUTH - .byte $ff ; TODO: lightswitch - -; MIST_GREEN_SHACK -location26: - .byte $ff ; north exit - .byte $ff ; south exit - .byte MIST_TREE_CORRIDOR_4 ; east exit - .byte MIST_GREEN_STEPS1 ; west exit - .byte $ff ; north exit_dir - .byte $ff ; south exit_dir - .byte DIRECTION_E ; east exit_dir - .byte DIRECTION_N ; west exit_dir - .word $0000 ; north bg - .word $0000 ; south bg - .word green_house_e_lzsa ; east bg - .word green_house_w_lzsa ; west bg - .byte BG_EAST | BG_WEST - .byte $ff - -; MIST_GREEN_STEPS1 -- green shack steps 1 -location27: - .byte MIST_GREEN_STEPS6 ; north exit - .byte MIST_GREEN_SHACK ; 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 green_steps1_n_lzsa ; north bg - .word green_steps1_s_lzsa ; south bg - .word $0000 ; east bg - .word $0000 ; west bg - .byte BG_NORTH | BG_SOUTH - .byte $ff - -; MIST_GREEN_STEPS6 -- green shack steps 6 -location28: - .byte MIST_GENERATOR_DOOR ; north exit - .byte $ff ; south exit - .byte $ff ; east exit - .byte MIST_GREEN_STEPS1 ; west exit - .byte DIRECTION_N ; north exit_dir - .byte $ff ; south exit_dir - .byte $ff ; east exit_dir - .byte DIRECTION_S ; west exit_dir - .word green_steps6_n_lzsa ; north bg - .word $0000 ; south bg - .word $0000 ; east bg - .word green_steps6_w_lzsa ; west bg - .byte BG_NORTH | BG_WEST - .byte $ff - -; MIST_GENERATOR_DOOR -- generator room door -location29: - .byte MIST_GENERATOR_DOOR ; north exit - .byte MIST_GREEN_STEPS6 ; 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 gen_door_closed_n_lzsa ; north bg - .word gen_door_s_lzsa ; south bg - .word $0000 ; east bg - .word $0000 ; west bg - .byte BG_NORTH | BG_SOUTH - .byte DIRECTION_N ; special exit - .byte 27,32 ; special x - .byte 26,32 ; special y - .word open_gen_door-1 ; special function - - -; MIST_GENERATOR_ROOM -- generator room -location30: - .byte $ff ; north exit - .byte MIST_GENERATOR_DOOR ; 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 generator_n_lzsa ; north bg - .word generator_s_lzsa ; south bg - .word $0000 ; east bg - .word $0000 ; west bg - .byte BG_NORTH | BG_SOUTH - .byte DIRECTION_N - .byte 24,36 ; special x - .byte 34,40 ; special y - .word generator_button_press-1 ; special function - ; MIST_ROCKET_PATH_PAD -- pad on way to rocket -location31: +location25: .byte MIST_SPACESHIP_FAR ; north exit .byte $ff ; south exit .byte MIST_OUTSIDE_TEMPLE ; east exit @@ -621,7 +503,7 @@ location31: .word pad_special-1 ; special function ; MIST_ROCKET_CLOSE -- rocket close in -location32: +location26: .byte MIST_SPACESHIP_FAR ; north exit .byte $ff ; south exit .byte $ff ; east exit @@ -640,9 +522,8 @@ location32: .byte 8,46 ; special y .word open_ss_door-1 ; special function - ; MIST_TOWER2_PATH -- tower2 path -location33: +location27: .byte MIST_TOWER2_BASE ; north exit .byte $ff ; south exit .byte MIST_ROCKET_PATH_PAD ; east exit @@ -659,7 +540,7 @@ location33: .byte $ff ; MIST_TOWER2_BASE -- tower2 base -location34: +location28: .byte $ff ; north exit .byte $ff ; south exit .byte $ff ; east exit @@ -679,7 +560,7 @@ location34: .word leave_tower2-1 ; special function ; MIST_TOWER2_TOP -- tower2 top -location35: +location29: .byte $ff ; north exit .byte $ff ; south exit .byte $ff ; east exit @@ -698,83 +579,8 @@ location35: .byte 10,18 ; special y .word circuit_breaker-1 ; special function -; MIST_TOWER1_TRAIL -- tower1 trail -location36: - .byte $ff ; north exit - .byte $ff ; south exit - .byte MIST_TREE_CORRIDOR_4 ; east exit - .byte MIST_TOWER1_TRAIL2 ; west exit - .byte $ff ; north exit_dir - .byte $ff ; south exit_dir - .byte DIRECTION_E ; east exit_dir - .byte DIRECTION_N ; west exit_dir - .word $0000 ; north bg - .word $0000 ; south bg - .word tower1_trail_e_lzsa ; east bg - .word tower1_trail_w_lzsa ; west bg - .byte BG_WEST|BG_EAST - .byte $ff - -; MIST_TOWER1_TRAIL2 -- tower1 trail2 -location37: - .byte MIST_TOWER1_BOTTOM ; north exit - .byte MIST_TOWER1_TRAIL ; south exit - .byte $ff ; east exit - .byte $ff ; west exit - .byte DIRECTION_E|DIRECTION_ONLY_POINT ; north exit_dir - .byte DIRECTION_E ; south exit_dir - .byte $ff ; east exit_dir - .byte $ff ; west exit_dir - .word tower1_trail2_n_lzsa ; north bg - .word tower1_trail2_s_lzsa ; south bg - .word $0000 ; east bg - .word tower1_trail2_w_lzsa ; west bg - .byte BG_NORTH|BG_SOUTH|BG_WEST - .byte $ff - -; MIST_TOWER1_BOTTOM -- tower1 bottom -location38: - .byte $ff ; north exit - .byte $ff ; south exit - .byte MIST_TOWER1_TRAIL2 ; east exit - .byte $ff ; west exit - .byte $ff ; north exit_dir - .byte $ff ; south exit_dir - .byte DIRECTION_N ; east exit_dir - .byte $ff ; west exit_dir - .word $0000 ; north bg - .word $0000 ; south bg - .word tower1_base_e_lzsa ; east bg - .word $0000 ; west bg - .byte BG_EAST - .byte DIRECTION_E ; special exit - .byte 10,26 ; special x - .byte 0,46 ; special y - .word leave_tower1-1 ; special function - - -; MIST_TOWER1_TOP -- tower1 top -location39: - .byte $ff ; north exit - .byte $ff ; south exit - .byte MIST_TOWER1_BOTTOM ; east exit - .byte $ff ; west exit - .byte $ff ; north exit_dir - .byte $ff ; south exit_dir - .byte DIRECTION_E|DIRECTION_ONLY_POINT ; east exit_dir - .byte $ff ; west exit_dir - .word $0000 ; north bg - .word $0000 ; south bg - .word tower1_top_e_lzsa ; east bg - .word $0000 ; west bg - .byte BG_EAST - .byte DIRECTION_E ; special exit - .byte 16,22 ; special x - .byte 10,18 ; special y - .word circuit_breaker-1 ; special function - ; MIST_VIEWER_DOOR -- viewer door -location40: +location30: .byte MIST_DOCK_SWITCH ; north exit .byte $ff ; south exit .byte $ff ; east exit diff --git a/mist/loader.s b/mist/loader.s index d1a457cb..db390496 100644 --- a/mist/loader.s +++ b/mist/loader.s @@ -144,8 +144,8 @@ filenames: .word intro_filename .word mist_filename,meche_filename,selena_filename,octagon_filename .word viewer_filename,stoney_filename,channel_filename,cabin_filename - .word dentist_filename,arbor_filename,shipup_filename,nibel_filename - .word ending_filename + .word dentist_filename,arbor_filename,nibel_filename,ship_filename + .word generator_filename,ending_filename intro_filename: .byte "MIST_TITLE",0 @@ -169,10 +169,12 @@ dentist_filename: .byte "DENTIST",0 arbor_filename: .byte "ARBOR",0 -shipup_filename: - .byte "SHIPUP",0 nibel_filename: .byte "NIBEL",0 +ship_filename: + .byte "SHIP",0 +generator_filename: + .byte "GENERATOR",0 ending_filename: .byte "ENDING",0 diff --git a/mist/mist.s b/mist/mist.s index 52248578..0964b33f 100644 --- a/mist/mist.s +++ b/mist/mist.s @@ -93,7 +93,7 @@ not_gear_related: beq location_clock cmp #MIST_CLOCK_INSIDE beq location_inside_clock - bne location_generator + bne nothing_special location_clock: jsr draw_clock_face @@ -102,19 +102,6 @@ location_inside_clock: jsr draw_clock_inside jmp nothing_special - ; handle generator puzzle -location_generator: - cmp #MIST_GENERATOR_ROOM - bne nothing_special - lda DIRECTION - and #$f - cmp #DIRECTION_N - bne nothing_special - - jsr generator_update_volts - jsr generator_draw_buttons - jmp nothing_special - nothing_special: ;==================================== @@ -189,24 +176,13 @@ leave_tower2: rts -leave_tower1: - lda #MIST_TOWER1_TOP - sta LOCATION - - lda #DIRECTION_E - sta DIRECTION - - jsr change_location - - rts - green_house: ; FIXME: handle switch separately - lda #MIST_GREEN_SHACK - sta LOCATION +; lda #MIST_GREEN_SHACK +; sta LOCATION jmp change_location @@ -323,12 +299,7 @@ read_letter: ; puzzles .include "clock_bridge_puzzle.s" .include "marker_switch.s" - .include "generator_puzzle.s" - - ; linking books - - ; letters -; .include "letter_cat.s" + .include "mist_puzzles.s" ; level data .include "leveldata_mist.inc" diff --git a/mist/mist_puzzles.s b/mist/mist_puzzles.s new file mode 100644 index 00000000..33be6d72 --- /dev/null +++ b/mist/mist_puzzles.s @@ -0,0 +1,89 @@ +;======================= +; flip circuit breaker + +; if room==MIST_TOWER2_TOP, and with #$fe +; if room==MIST_TOWER1_TOP, and with #$fd + +circuit_breaker: + + bit $C030 ; click speaker + + lda LOCATION + cmp #MIST_TOWER2_TOP + bne other_circuit_breaker + + lda BREAKER_TRIPPED + and #$fe + jmp done_circuit_breaker + +other_circuit_breaker: + lda BREAKER_TRIPPED + and #$fd + +done_circuit_breaker: + sta BREAKER_TRIPPED + + bne done_turn_on_breaker + +turn_on_breaker: + + lda GENERATOR_VOLTS + cmp #$60 + bcs done_turn_on_breaker + + sta ROCKET_VOLTS + sta ROCKET_VOLTS_DISP + + +done_turn_on_breaker: + + rts + + +;====================== +; open the spaceship door + +open_ss_door: + + ; check if voltage is 59 + lda ROCKET_VOLTS + cmp #$59 + bne done_ss_door + + ; change to open door image + ldy #LOCATION_NORTH_BG + lda #spaceship_door_open_n_lzsa + sta location26+1,Y ; MIST_ROCKET_CLOSE + + ; change to load new level if through + ldy #LOCATION_SPECIAL_FUNC + lda #<(go_to_selena-1) + sta location26,Y ; MIST_ROCKET_CLOSE + lda #>(go_to_selena-1) + sta location26+1,Y ; MIST_ROCKET_CLOSE + + jsr change_location + +done_ss_door: + rts + + +;====================== +; go to selena + +go_to_selena: + + lda #3 ; Selena + sta WHICH_LOAD + + lda #$ff + sta LEVEL_OVER + + rts + + + + +