From 318d09279be8ebd8011b2d512f49cebead40ecdb Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 21 Mar 2020 16:55:48 -0400 Subject: [PATCH] mist: meche: can get into elevator now --- mist/Makefile | 1 + mist/common_defines.inc | 4 + mist/graphics_meche/Makefile | 8 +- mist/graphics_meche/basement_controls_w.png | Bin 1035 -> 17107 bytes mist/graphics_meche/elevator_ground_e.png | Bin 0 -> 791 bytes mist/graphics_meche/elevator_path_e.png | Bin 0 -> 677 bytes mist/graphics_meche/elevator_path_w.png | Bin 0 -> 758 bytes mist/graphics_meche/meche_graphics.inc | 3 + mist/leveldata_meche.inc | 76 +++++++- mist/meche.s | 87 ++------- mist/meche_rotation.s | 185 ++++++++++++++++++++ 11 files changed, 286 insertions(+), 78 deletions(-) create mode 100644 mist/graphics_meche/elevator_ground_e.png create mode 100644 mist/graphics_meche/elevator_path_e.png create mode 100644 mist/graphics_meche/elevator_path_w.png create mode 100644 mist/meche_rotation.s diff --git a/mist/Makefile b/mist/Makefile index 1675136f..8d967e2e 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -95,6 +95,7 @@ meche.o: meche.s zp.inc hardware.inc common_defines.inc \ leveldata_meche.inc \ link_book_meche.s \ link_book_mist.s \ + meche_rotation.s \ keyboard.s \ draw_pointer.s \ gr_copy.s audio.s text_print.s decompress_fast_v2.s diff --git a/mist/common_defines.inc b/mist/common_defines.inc index 72a4916b..f41084a5 100644 --- a/mist/common_defines.inc +++ b/mist/common_defines.inc @@ -144,6 +144,10 @@ MECHE_RIGHT_HALL2 = 21 MECHE_RIGHT_HALL_CORNER = 22 MECHE_BLUE_ROOM_CENTER = 23 MECHE_CENTER_HALL2 = 24 +MECHE_ELEVATOR_PATH = 25 +MECHE_ELEVATOR_GROUND = 26 +MECHE_ELEVATOR_HALF = 27 +MECHE_ELEVATOR_UP = 28 ;MECHE_EAST_PLATFORM = 9 diff --git a/mist/graphics_meche/Makefile b/mist/graphics_meche/Makefile index 60ab2cb8..4e02c98c 100644 --- a/mist/graphics_meche/Makefile +++ b/mist/graphics_meche/Makefile @@ -35,7 +35,9 @@ meche_graphics.inc: \ right_hall2_s.lzsa \ right_hall_corner_n.lzsa right_hall_corner_w.lzsa \ blue_room_center_n.lzsa blue_room_center_s.lzsa \ - center_hall2_n.lzsa center_hall2_s.lzsa center_hall2_w.lzsa + center_hall2_n.lzsa center_hall2_s.lzsa center_hall2_w.lzsa \ + elevator_path_e.lzsa elevator_path_w.lzsa \ + elevator_ground_e.lzsa echo "departure_e_lzsa: .incbin \"departure_e.lzsa\"" > meche_graphics.inc echo "arrival_w_lzsa: .incbin \"arrival_w.lzsa\"" >> meche_graphics.inc echo "entrance_e_lzsa: .incbin \"entrance_e.lzsa\"" >> meche_graphics.inc @@ -94,7 +96,9 @@ meche_graphics.inc: \ echo "center_hall2_n_lzsa: .incbin \"center_hall2_n.lzsa\"" >> meche_graphics.inc echo "center_hall2_s_lzsa: .incbin \"center_hall2_s.lzsa\"" >> meche_graphics.inc echo "center_hall2_w_lzsa: .incbin \"center_hall2_w.lzsa\"" >> meche_graphics.inc - + echo "elevator_path_w_lzsa: .incbin \"elevator_path_w.lzsa\"" >> meche_graphics.inc + echo "elevator_path_e_lzsa: .incbin \"elevator_path_e.lzsa\"" >> meche_graphics.inc + echo "elevator_ground_e_lzsa: .incbin \"elevator_ground_e.lzsa\"" >> meche_graphics.inc %.gr: %.png $(PNG2GR) $< $@ diff --git a/mist/graphics_meche/basement_controls_w.png b/mist/graphics_meche/basement_controls_w.png index 3d9b79c6c65ad5d741e90b1f4001ced58d41d5d3..d6c44484ed7d911fcbcd8804aafa8a3adf10e439 100644 GIT binary patch literal 17107 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 R#4l3~0LrP!R!f_Q{y$nXT6zEg delta 888 zcmV-;1Bd+6g#n8QkRyKqglR)VP)S2WAaHVTW@&6?001bFeUUv#!$25@-=<1MD-L!L zamY}etcZ#@Y88r5A=C=3I+$Gg2TdB16cVk5kIXD%PLh)F9bfkd z@ck~vv;6D+9KCAJVn9G7o@It<6K@btZ`uauec}i!$|~_W@u*1`B!1+&;_(~jg3AKW zjF{=vJaL3rEVQxG#;j;+#8bpkRnsY7$at)B-r}s4tE_oX{=#rhUs>iltsx|^h$To6 zp`eNq%CHfmT_=CVLW<7gKK?=1FOf?jR|$+93#dSY?E1m~;CFAW{N#j}6pjO(FOKsu z41{)pM$K`)j~%CR0tBCdE4}5f)Pb2#(rYa(dIa=s0~gmVP1yr3cYuK>LpEhs3epnt zdEotwz9|dz-vZrhUf-JMIDG)p)T`tTaBv8W6exS$=iL!q?S1>VrrEzAWG`}|{5$s{HxBxe5qZ^xd_wpSWNGks7& zS#F@TZSAnvVSJT){p5R^x5t6d`7>bkRcRhbeVa1-Rl8#JIYa)G33S0UtTh8&!)aw2 z$j}?=q7nWQl3-p_)O!Ir2JVNAC;oop5^%dQf!Ur2JZS%yuo?R|BGhY&F&w;64#!EG<#@b4I6k?{aP8rD0&1Jq;EI|I&N9uEz zM?<_agk2jDbUXaTw=M%?mu=@je}Yx2vxxY~7?@id{qZbulTFD4;Q0f8<6KTAHQIy# O0000EX>4Tx04R}tkv&MmP!xqvQ$>-AgB3&^0#+xBq9Tr3g(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULIXWr2NQw6)g%&YBxV(?^-Z|WNA0X69Otad?0Zq5f zWIQIOGpl09D}v~w8pDvxEMrcR67XGL_XzO)F3Pj~@BO*D)vU#UfJi*c4AUmwAfDc| z4bJ<-VOEe;;&b9rlNuy`s0?!PaspLFym{`oWu+qY;U~0ru#1U1~DPKr? zta9Gstd%OP(IKlnXcD>pgeC52)@`-|gz30Yqi@Opy|+Nunm4z`IZhvd6wNAe0~{Oz zBYDbR_jz|`>)igm)0p26dRTI*CoLCE0000pP)t-s0002v9$;Wjz5hi00Ha`>oSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jl}46d@aYv-#=(000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0002ONklEEI@z ztHdp#9A+Z9QhSG5LGOW}U|>)J0L>a$g>aBLg3J)m`w$8UST+Te>P7^KrYW@r1g56I zKx4Kb(YL{}wSZseC)xl2002ovPDHLkV1mxTUBUnW literal 0 HcmV?d00001 diff --git a/mist/graphics_meche/elevator_path_e.png b/mist/graphics_meche/elevator_path_e.png new file mode 100644 index 0000000000000000000000000000000000000000..85834e3fdfdca168d337d28322ab1bd1ac176028 GIT binary patch literal 677 zcmV;W0$TlvP)EX>4Tx04R}tkv&MmP!xqvQ$>-AgB3&^0#+xBq9Tr3g(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULIXWr2NQw6)g%&YBxV(?^-Z|WNA0X69Otad?0Zq5f zWIQIOGpl09D}v~w8pDvxEMrcR67XGL_XzO)F3Pj~@BO*D)vU#UfJi*c4AUmwAfDc| z4bJ<-VOEe;;&b9rlNuy`s0?!PaspLFym{`oWu+qY;U~0ru#1U1~DPKr? zta9Gstd%OP(IKlnXcD>pgeC52)@`-|gz30Yqi@Opy|+Nunm4z`IZhvd6wNAe0~{Oz zBYDbR_jz|`>)igm)0p26dRTI*CoLCE0000pP)t-s0002v9$;Wjz5hi00Ha`>oSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jl}46cjlN;(E9M000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0000`Nkl z-?-fb2nYxW_!Lyq2InmxAmD#s?*w!Ocmot8KtR9|^nXHJkc@&Ab;}niV)DuD00000 LNkvXXu0mjfX=)+D literal 0 HcmV?d00001 diff --git a/mist/graphics_meche/elevator_path_w.png b/mist/graphics_meche/elevator_path_w.png new file mode 100644 index 0000000000000000000000000000000000000000..620316840bf441aebc661f5da163297265faf859 GIT binary patch literal 758 zcmVEX>4Tx04R}tkv&MmP!xqvQ$>-AgB3&^0#+xBq9Tr3g(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULIXWr2NQw6)g%&YBxV(?^-Z|WNA0X69Otad?0Zq5f zWIQIOGpl09D}v~w8pDvxEMrcR67XGL_XzO)F3Pj~@BO*D)vU#UfJi*c4AUmwAfDc| z4bJ<-VOEe;;&b9rlNuy`s0?!PaspLFym{`oWu+qY;U~0ru#1U1~DPKr? zta9Gstd%OP(IKlnXcD>pgeC52)@`-|gz30Yqi@Opy|+Nunm4z`IZhvd6wNAe0~{Oz zBYDbR_jz|`>)igm)0p26dRTI*CoLCE0000pP)t-s0002v9$;Wjz5hi00Ha`>oSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jl}46c80%R?}Yq000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0001?Nklred_button_of_ce_w_lzsa - jmp adjust_basement_door_done - -floor_closed_elevator_on: - -floor_closed_elevator_off: - - ldy #LOCATION_WEST_EXIT - lda #$ff - sta location18,Y - - ldy #LOCATION_WEST_BG - - lda #red_button_cf_ce_w_lzsa - jmp adjust_basement_door_done - - -adjust_basement_door_done: - sta location18+1,Y - rts - -adjust_fortress_rotation: - - rts - - - ;========================== ; includes ;========================== @@ -224,6 +161,8 @@ adjust_fortress_rotation: .include "draw_pointer.s" .include "end_level.s" + .include "meche_rotation.s" + .include "audio.s" .include "graphics_meche/meche_graphics.inc" diff --git a/mist/meche_rotation.s b/mist/meche_rotation.s new file mode 100644 index 00000000..61869a2b --- /dev/null +++ b/mist/meche_rotation.s @@ -0,0 +1,185 @@ + + ;================================== + ; elevator stuff + ;================================== + + + ;================= + ; elevator panel clicked + + ; behavior a bit different in real game (it slides around more) + ; also in theory could animate handle + ; Apple II doesn't let you know length of keypress + +elevator_panel_clicked: + + lda MECHE_ELEVATOR + clc + adc #1 + and #$83 + sta MECHE_ELEVATOR + + jsr adjust_basement_door + + rts + + + ;===================== + ; draw elevator panel + +draw_elevator_panel: + + lda MECHE_ELEVATOR + and #$f + asl + tay + + lda elevator_rotation_sprites,Y + sta INL + lda elevator_rotation_sprites+1,Y + sta INH + + lda #13 + sta XPOS + lda #20 + sta YPOS + + jsr put_sprite_crop + + rts + + ;================================== + ; basement door button + ;================================== + +basement_button: + + ; flip switch + + lda #$80 + eor MECHE_ELEVATOR + sta MECHE_ELEVATOR + + jsr adjust_basement_door + + jsr change_location + + rts + + ;================================== + ; adjust basement door + ;================================== + +adjust_basement_door: + + lda MECHE_ELEVATOR + bmi floor_open + +floor_closed: + and #$f + cmp #2 + beq floor_closed_elevator_on + bne floor_closed_elevator_off + +floor_open: + + ; point exit to basement + + ldy #LOCATION_WEST_EXIT + lda #MECHE_BASEMENT + sta location18,Y + + lda MECHE_ELEVATOR + and #$f + cmp #2 + beq floor_open_elevator_on + bne floor_open_elevator_off + +floor_open_elevator_on: + + ; point background to open floor / open elevator + + ldy #LOCATION_WEST_BG + lda #red_button_of_oe_w_lzsa + jmp adjust_basement_door_done + +floor_open_elevator_off: + + ; point background to open floor / closed elevator + + ldy #LOCATION_WEST_BG + + lda #red_button_of_ce_w_lzsa + jmp adjust_basement_door_done + +floor_closed_elevator_on: + + ; point hallway to elevator path + + ldy #LOCATION_WEST_EXIT + lda #MECHE_ELEVATOR_PATH + sta location18,Y + + ldy #LOCATION_WEST_BG + + lda #red_button_cf_oe_w_lzsa + jmp adjust_basement_door_done + + +floor_closed_elevator_off: + + ; disabl exit + + ldy #LOCATION_WEST_EXIT + lda #$ff + sta location18,Y + + ldy #LOCATION_WEST_BG + + lda #red_button_cf_ce_w_lzsa + jmp adjust_basement_door_done + + +adjust_basement_door_done: + sta location18+1,Y + rts + +adjust_fortress_rotation: + + rts + + + ;================================== + ; sprites + ;================================== + +elevator_rotation_sprites: + .word elevator0,elevator1,elevator2,elevator3 + +elevator0: + .byte 3,2 + .byte $00,$ff,$00 + .byte $f0,$0f,$f0 + +elevator1: + .byte 3,2 + .byte $0f,$f0,$f0 + .byte $f0,$0f,$0f + +elevator2: + .byte 3,2 + .byte $1f,$f1,$1f + .byte $11,$ff,$11 + +elevator3: + .byte 3,2 + .byte $f0,$f0,$0f + .byte $0f,$0f,$f0