From 1bcc2b29c33faa4840d2f5055f0cf13dd908d471 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 1 Apr 2020 01:23:32 -0400 Subject: [PATCH] mist: can now look at all corners of the octogon --- mist/common_defines.inc | 6 + mist/draw_pointer.s | 7 ++ mist/graphics_octagon/Makefile | 14 ++- mist/graphics_octagon/blue_book_shelf.png | Bin 0 -> 10152 bytes mist/graphics_octagon/bookshelf_n.png | Bin 0 -> 911 bytes mist/graphics_octagon/frame_bookcase_open.png | Bin 0 -> 842 bytes mist/graphics_octagon/frame_door_open.png | Bin 0 -> 887 bytes mist/graphics_octagon/map.png | Bin 0 -> 890 bytes mist/graphics_octagon/temple_center_n.png | Bin 15280 -> 15976 bytes mist/leveldata_octagon.inc | 104 +++++++++++++++++- mist/octagon.s | 91 +++++++++++++++ mist/zp.inc | 1 + 12 files changed, 214 insertions(+), 9 deletions(-) create mode 100644 mist/graphics_octagon/blue_book_shelf.png create mode 100644 mist/graphics_octagon/bookshelf_n.png create mode 100644 mist/graphics_octagon/frame_bookcase_open.png create mode 100644 mist/graphics_octagon/frame_door_open.png create mode 100644 mist/graphics_octagon/map.png diff --git a/mist/common_defines.inc b/mist/common_defines.inc index 82ae7857..a0e57c0f 100644 --- a/mist/common_defines.inc +++ b/mist/common_defines.inc @@ -117,6 +117,12 @@ OCTAGON_RED_BOOKSHELF = 2 OCTAGON_FIREPLACE = 3 OCTAGON_IN_FIREPLACE = 4 OCTAGON_CEILING = 5 +OCTAGON_MAP = 6 +OCTAGON_FRAME_SHELF = 7 +OCTAGON_BOOKSHELF = 8 +OCTAGON_FRAME_DOOR = 9 +OCTAGON_BLUE_BOOKSHELF = 10 + ; Mechanical Engineering diff --git a/mist/draw_pointer.s b/mist/draw_pointer.s index 135590f9..cfdd2bdb 100644 --- a/mist/draw_pointer.s +++ b/mist/draw_pointer.s @@ -18,11 +18,18 @@ draw_pointer: cmp #$ff beq finger_not_special ; if $ff not special + lda (LOCATION_STRUCT_L),Y + cmp #$4 + beq was_any + lda DIRECTION and #$f + cmp (LOCATION_STRUCT_L),Y bne finger_not_special ; only special if facing right way +was_any: + ; see if X1 < X < X2 lda CURSOR_X ldy #LOCATION_SPECIAL_X1 diff --git a/mist/graphics_octagon/Makefile b/mist/graphics_octagon/Makefile index 05ff559b..ba0f7fa4 100644 --- a/mist/graphics_octagon/Makefile +++ b/mist/graphics_octagon/Makefile @@ -17,7 +17,12 @@ octagon_graphics.inc: \ red_book_open.lzsa red_book_closed.lzsa \ red_book_static.lzsa red_book_static2.lzsa \ fireplace_e.lzsa \ - in_fireplace_w.lzsa in_fireplace_door.lzsa + in_fireplace_w.lzsa in_fireplace_door.lzsa \ + frame_door_open.lzsa \ + frame_bookcase_open.lzsa \ + blue_book_shelf.lzsa \ + bookshelf_n.lzsa \ + map.lzsa echo "temple_door_n_lzsa: .incbin \"temple_door_n.lzsa\"" > octagon_graphics.inc echo "temple_door_s_lzsa: .incbin \"temple_door_s.lzsa\"" >> octagon_graphics.inc echo "temple_center_n_lzsa: .incbin \"temple_center_n.lzsa\"" >> octagon_graphics.inc @@ -33,8 +38,11 @@ octagon_graphics.inc: \ echo "fireplace_e_lzsa: .incbin \"fireplace_e.lzsa\"" >> octagon_graphics.inc echo "in_fireplace_w_lzsa: .incbin \"in_fireplace_w.lzsa\"" >> octagon_graphics.inc echo "in_fireplace_door_lzsa: .incbin \"in_fireplace_door.lzsa\"" >> octagon_graphics.inc - - + echo "frame_door_open_lzsa: .incbin \"frame_door_open.lzsa\"" >> octagon_graphics.inc + echo "frame_bookcase_open_lzsa: .incbin \"frame_bookcase_open.lzsa\"" >> octagon_graphics.inc + echo "blue_book_shelf_lzsa: .incbin \"blue_book_shelf.lzsa\"" >> octagon_graphics.inc + echo "bookshelf_n_lzsa: .incbin \"bookshelf_n.lzsa\"" >> octagon_graphics.inc + echo "map_lzsa: .incbin \"map.lzsa\"" >> octagon_graphics.inc %.gr: %.png $(PNG2GR) $< $@ diff --git a/mist/graphics_octagon/blue_book_shelf.png b/mist/graphics_octagon/blue_book_shelf.png new file mode 100644 index 0000000000000000000000000000000000000000..5110189cacaccbb391009c83410b674fc065d3c7 GIT binary patch literal 10152 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 literal 0 HcmV?d00001 diff --git a/mist/graphics_octagon/bookshelf_n.png b/mist/graphics_octagon/bookshelf_n.png new file mode 100644 index 0000000000000000000000000000000000000000..dac273f67b615ecb34d0bb14e9eb1fa70ea4bfcf GIT binary patch literal 911 zcmV;A191F_P)EX>4Tx04R}tkv&MmKpe$iQ>7vmK|2(2$WS|35EXIMDionYs1;guFuC*#ni!H4 z7e~Rh;NZt%)xpJCR|i)?5c~jfa&%I3krMxx6k5c1aNLh~_a1le0HIN3n$)S(glehxvqHp#<}FOz%wIeHZw;YAr?y=taLCdn;P*XaZJ^8$`^7T ztDLtuYtq2d^-JVZ$W;L& z$2>NmL3aJ%fAG6ot2i<4C54kf_lx6vi~ylspjmgE?_mpef8$&gLim4Y;dVi9;hqi@OsgSSBMs@GdoSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jl}E6E-&?8s~lh000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0003xNklrNPqmXi!IamoHfLoNNv!Bi9` zNQl&;;&$mRqH91yL@kQo)-aI6+ulK7Z1D+-lNiyTa=wNqzlU)fwC1M; zb?6ch5n$WgyG(EX>4Tx04R}tkv&MmKpe$iQ>7vmK|2(2$WS|35EXIMDionYs1;guFuC*#ni!H4 z7e~Rh;NZt%)xpJCR|i)?5c~jfa&%I3krMxx6k5c1aNLh~_a1le0HIN3n$)S(glehxvqHp#<}FOz%wIeHZw;YAr?y=taLCdn;P*XaZJ^8$`^7T ztDLtuYtq2d^-JVZ$W;L& z$2>NmL3aJ%fAG6ot2i<4C54kf_lx6vi~ylspjmgE?_mpef8$&gLim4Y;dVi9;hqi@OsgSSBMs@GdoSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jl}E5;-Tj_krR7000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0002>NkleD^VpvPH|Ph1V+7D--!rL%y#z8F*A9hfGq1iicwJ#_G`LMtc4V}|y^VgxM=Q+Pf7<_l?+1ttDInGS1405@ UO-g>d?f?J)07*qoM6N<$g2o+fPyhe` literal 0 HcmV?d00001 diff --git a/mist/graphics_octagon/frame_door_open.png b/mist/graphics_octagon/frame_door_open.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0a673eb8bc773716506efca0c297301d75b232 GIT binary patch literal 887 zcmV--1Bm>IP)EX>4Tx04R}tkv&MmKpe$iQ>7vmK|2(2$WS|35EXIMDionYs1;guFuC*#ni!H4 z7e~Rh;NZt%)xpJCR|i)?5c~jfa&%I3krMxx6k5c1aNLh~_a1le0HIN3n$)S(glehxvqHp#<}FOz%wIeHZw;YAr?y=taLCdn;P*XaZJ^8$`^7T ztDLtuYtq2d^-JVZ$W;L& z$2>NmL3aJ%fAG6ot2i<4C54kf_lx6vi~ylspjmgE?_mpef8$&gLim4Y;dVi9;hqi@OsgSSBMs@GdoSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jl}E5(_lbIh0KR000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0003ZNklYA95M^2&~Dotb@G!GLIajGll0dvPKDB z4<>`Om%dK;(r%L5Fg7u7~>o)lVt&8${YkRg3iV0oEgN%48$~0 z-=29j55T&NzXQsP6vXwn9IUMcU5B N002ovPDHLkV1i0TgX91J literal 0 HcmV?d00001 diff --git a/mist/graphics_octagon/map.png b/mist/graphics_octagon/map.png new file mode 100644 index 0000000000000000000000000000000000000000..66ec1d31b6f4cfcae2d1727664b491deed0aabd6 GIT binary patch literal 890 zcmV-=1BLvFP)EX>4Tx04R}tkv&MmKpe$iQ>7vmK|2(2$WS|35EXIMDionYs1;guFuC*#ni!H4 z7e~Rh;NZt%)xpJCR|i)?5c~jfa&%I3krMxx6k5c1aNLh~_a1le0HIN3n$)S(glehxvqHp#<}FOz%wIeHZw;YAr?y=taLCdn;P*XaZJ^8$`^7T ztDLtuYtq2d^-JVZ$W;L& z$2>NmL3aJ%fAG6ot2i<4C54kf_lx6vi~ylspjmgE?_mpef8$&gLim4Y;dVi9;hqi@OsgSSBMs@GdoSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jl}E6b>UP5Se`d000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0003cNkl&SfkP|4QK$ZqSPT_*Aei2ml=GZu6BKjT|j{3sy;;q zf}N{8rL>sB)0_k>GgE-H*-1b|#Yo5jU|Av{!eU%^O$4r4A?qTL{S_cK*ByZcN$r0x zhs(0A48-d)u(-ru1Y+}C2GUE1$SDq4AxvoO316G90X+=@ef=$PYv=(!z+VAFL#Kh^ zP^W-0P=9A?mj>{23CDdh|8UXFSU+ZQ)m(g Q%>V!Z07*qoM6N<$f_Kkb%7 literal 0 HcmV?d00001 diff --git a/mist/graphics_octagon/temple_center_n.png b/mist/graphics_octagon/temple_center_n.png index dc39b902e497673be2bad75c042c7d25d71ddc90..49fec4c7638d23eb170afa925e0fa43c0ff2c220 100644 GIT binary patch delta 11885 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 delta 11305 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 diff --git a/mist/leveldata_octagon.inc b/mist/leveldata_octagon.inc index 3d511803..5518d8f5 100644 --- a/mist/leveldata_octagon.inc +++ b/mist/leveldata_octagon.inc @@ -5,7 +5,8 @@ locations: .word location0, location1, location2, location3 - .word location4, location5 + .word location4, location5, location6, location7 + .word location8, location9, location10 ; OCTAGON_TEMPLE_DOORWAY -- temple doorway location0: @@ -14,7 +15,7 @@ location0: .byte $ff ; south exit .byte $ff ; east exit .byte $ff ; west exit - .byte DIRECTION_N ; north exit_dir + .byte DIRECTION_N|DIRECTION_ONLY_POINT ; north exit_dir .byte DIRECTION_S ; south exit_dir .byte $ff ; east exit_dir .byte $ff ; west exit_dir @@ -44,7 +45,10 @@ location1: .word temple_center_e_lzsa ; east bg .word temple_center_w_lzsa ; west bg .byte BG_NORTH|BG_WEST|BG_SOUTH|BG_EAST ; all directions - .byte $ff ; special exit + .byte DIRECTION_ANY ; special exit + .byte 4,35 ; special x + .byte 0,46 ; special y + .word handle_octagon-1 ; special function ; OCTAGON_RED_BOOK_SHELF -- red book shelf location2: @@ -55,7 +59,7 @@ location2: .byte $ff ; north exit_dir .byte $ff ; south exit_dir .byte $ff ; east exit_dir - .byte DIRECTION_W ; west exit_dir + .byte DIRECTION_W|DIRECTION_ONLY_POINT ; west exit_dir .word $0000 ; north bg .word $0000 ; south bg .word $0000 ; east bg @@ -92,7 +96,7 @@ location4: .byte $ff ; north exit_dir .byte $ff ; south exit_dir .byte $ff ; east exit_dir - .byte DIRECTION_W ; west exit_dir + .byte DIRECTION_W|DIRECTION_ONLY_POINT ; west exit_dir .word $0000 ; north bg .word $0000 ; south bg .word $0000 ; east bg @@ -106,7 +110,7 @@ location5: .byte $ff ; south exit .byte $ff ; east exit .byte $ff ; west exit - .byte DIRECTION_N ; north exit_dir + .byte DIRECTION_N|DIRECTION_ONLY_POINT ; north exit_dir .byte $ff ; south exit_dir .byte $ff ; east exit_dir .byte $ff ; west exit_dir @@ -116,3 +120,91 @@ location5: .word $0000 ; west bg .byte BG_NORTH .byte $ff + +; OCTAGON_MAP -- looking at map +location6: + .byte $ff ; north exit + .byte $ff ; south exit + .byte $ff ; east exit + .byte OCTAGON_TEMPLE_CENTER ; west exit + .byte $ff ; north exit_dir + .byte $ff ; south exit_dir + .byte $ff ; east exit_dir + .byte DIRECTION_W|DIRECTION_ONLY_POINT ; west exit_dir + .word $0000 ; north bg + .word $0000 ; south bg + .word $0000 ; east bg + .word map_lzsa ; west bg + .byte BG_WEST + .byte $ff + +; OCTAGON_FRAME_SHELF -- picture that moves the bookcase +location7: + .byte OCTAGON_TEMPLE_CENTER ; north exit + .byte $ff ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte DIRECTION_N|DIRECTION_ONLY_POINT ; north exit_dir + .byte $ff ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word frame_bookcase_open_lzsa ; north bg + .word $0000 ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_NORTH + .byte $ff + + +; OCTAGON_BOOKSHELF -- the bookcase +location8: + .byte OCTAGON_TEMPLE_CENTER ; north exit + .byte $ff ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte DIRECTION_N|DIRECTION_ONLY_POINT ; north exit_dir + .byte $ff ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word bookshelf_n_lzsa ; north bg + .word $0000 ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_NORTH + .byte $ff + +; OCTAGON_FRAME_DOOR -- picture that opens the door +location9: + .byte OCTAGON_TEMPLE_CENTER ; north exit + .byte $ff ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte DIRECTION_N|DIRECTION_ONLY_POINT ; north exit_dir + .byte $ff ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word frame_door_open_lzsa ; north bg + .word $0000 ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_NORTH + .byte $ff + +; OCTAGON_BLUE_BOOKSHELF -- the blue bookshelf +location10: + .byte $ff ; north exit + .byte $ff ; south exit + .byte OCTAGON_TEMPLE_CENTER ; 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 blue_book_shelf_lzsa ; east bg + .word $0000 ; west bg + .byte BG_EAST + .byte $ff + + diff --git a/mist/octagon.s b/mist/octagon.s index 1659c2ba..fc3f1388 100644 --- a/mist/octagon.s +++ b/mist/octagon.s @@ -114,6 +114,97 @@ leave_octagon: rts +handle_octagon: + + ldx CURSOR_X + + lda DIRECTION + and #$f + + cmp #DIRECTION_W + beq octagon_w + + cmp #DIRECTION_E + beq octagon_e + + cmp #DIRECTION_S + beq octagon_s + +octagon_n: + cpx #10 + bcc goto_shelf_frame + cpx #29 + bcs goto_door_frame + bcc goto_bookshelf + +octagon_e: + cpx #10 + bcc goto_door_frame + cpx #29 + bcs goto_fireplace + bcc goto_blue_book + +octagon_w: + cpx #10 + bcc goto_map + cpx #29 + bcs goto_shelf_frame + bcc goto_red_book + +octagon_s: + cpx #10 + bcc goto_fireplace + cpx #29 + bcs goto_map + bcc goto_door + +goto_map: + ldy #OCTAGON_MAP + lda #DIRECTION_W + jmp done_goto + +goto_red_book: + ldy #OCTAGON_RED_BOOKSHELF + lda #DIRECTION_W + jmp done_goto + +goto_shelf_frame: + ldy #OCTAGON_FRAME_SHELF + lda #DIRECTION_N + jmp done_goto + +goto_bookshelf: + ldy #OCTAGON_BOOKSHELF + lda #DIRECTION_N + jmp done_goto + +goto_door_frame: + ldy #OCTAGON_FRAME_DOOR + lda #DIRECTION_N + jmp done_goto + +goto_blue_book: + ldy #OCTAGON_BLUE_BOOKSHELF + lda #DIRECTION_E + jmp done_goto + +goto_fireplace: + ldy #OCTAGON_FIREPLACE + lda #DIRECTION_E + jmp done_goto + +goto_door: + ldy #OCTAGON_TEMPLE_DOORWAY + lda #DIRECTION_S + jmp done_goto + +done_goto: + sty LOCATION + sta DIRECTION + jmp change_location + + + ;========================== ; includes diff --git a/mist/zp.inc b/mist/zp.inc index 759419bd..41175e05 100644 --- a/mist/zp.inc +++ b/mist/zp.inc @@ -40,6 +40,7 @@ DIRECTION = $66 DIRECTION_S = $1 DIRECTION_E = $2 DIRECTION_W = $3 + DIRECTION_ANY=$4 DIRECTION_ONLY_POINT = $40 ; do not change pointer to grab DIRECTION_SPLIT = $80 ; split text/graphics LOCATION = $67