mist: meche: can go into basement now

This commit is contained in:
Vince Weaver 2020-03-21 15:13:36 -04:00
parent 3ce5ada070
commit 49c6420f2e
7 changed files with 90 additions and 5 deletions

View File

@ -31,7 +31,7 @@ meche_graphics.inc: \
red_button_of_oe_w.lzsa red_button_of_ce_w.lzsa \
red_button_cf_oe_w.lzsa red_button_cf_ce_w.lzsa \
basement_controls_w.lzsa \
elevator_basement_w.lzsa \
elevator_basement_e.lzsa elevator_basement_w.lzsa \
right_hall2_s.lzsa \
right_hall_corner_n.lzsa right_hall_corner_w.lzsa \
blue_room_center_n.lzsa blue_room_center_s.lzsa \
@ -85,6 +85,7 @@ meche_graphics.inc: \
echo "red_button_cf_ce_w_lzsa: .incbin \"red_button_cf_ce_w.lzsa\"" >> meche_graphics.inc
echo "basement_controls_w_lzsa: .incbin \"basement_controls_w.lzsa\"" >> meche_graphics.inc
echo "elevator_basement_w_lzsa: .incbin \"elevator_basement_w.lzsa\"" >> meche_graphics.inc
echo "elevator_basement_e_lzsa: .incbin \"elevator_basement_e.lzsa\"" >> meche_graphics.inc
echo "right_hall2_s_lzsa: .incbin \"right_hall2_s.lzsa\"" >> meche_graphics.inc
echo "right_hall_corner_n_lzsa: .incbin \"right_hall_corner_n.lzsa\"" >> meche_graphics.inc
echo "right_hall_corner_w_lzsa: .incbin \"right_hall_corner_w.lzsa\"" >> meche_graphics.inc

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 B

View File

@ -47,6 +47,7 @@ red_button_of_ce_w_lzsa: .incbin "red_button_of_ce_w.lzsa"
red_button_cf_ce_w_lzsa: .incbin "red_button_cf_ce_w.lzsa"
basement_controls_w_lzsa: .incbin "basement_controls_w.lzsa"
elevator_basement_w_lzsa: .incbin "elevator_basement_w.lzsa"
elevator_basement_e_lzsa: .incbin "elevator_basement_e.lzsa"
right_hall2_s_lzsa: .incbin "right_hall2_s.lzsa"
right_hall_corner_n_lzsa: .incbin "right_hall_corner_n.lzsa"
right_hall_corner_w_lzsa: .incbin "right_hall_corner_w.lzsa"

View File

@ -33,4 +33,8 @@ init_state:
sta ROCKET_NOTE3
sta ROCKET_NOTE4
; meche elevator
sta MECHE_ELEVATOR
sta MECHE_ROTATION
rts

View File

@ -334,13 +334,17 @@ location18:
.byte DIRECTION_W ; north exit_dir
.byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir
.byte $ff ; west exit_dir
.byte DIRECTION_W ; west exit_dir
.word red_button_n_lzsa ; north bg
.word red_button_s_lzsa ; south bg
.word red_button_e_lzsa ; east bg
.word red_button_cf_ce_w_lzsa ; west bg
.byte BG_WEST|BG_EAST|BG_SOUTH|BG_NORTH
.byte $ff ; special exit
.byte DIRECTION_W ; special exit
.byte 28,33 ; special x
.byte 14,24 ; special y
.word basement_button-1 ; special function
; MECHE_BASEMENT -- Basement
location19:
@ -354,9 +358,9 @@ location19:
.byte DIRECTION_W ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word $0000 ; east bg
.word elevator_basement_e_lzsa ; east bg
.word elevator_basement_w_lzsa ; west bg
.byte BG_WEST
.byte BG_WEST|BG_EAST
.byte $ff ; special exit
; MECHE_ELEVATOR_ROTATE -- elevator rotate mechanism

View File

@ -39,6 +39,7 @@ meche_start:
lda #0
sta ANIMATE_FRAME
jsr adjust_basement_door
game_loop:
;=================
@ -136,6 +137,77 @@ really_exit:
jmp end_level
;==================================
; elevator stuff
;==================================
basement_button:
; flip switch
lda #$80
eor MECHE_ELEVATOR
sta MECHE_ELEVATOR
jsr adjust_basement_door
jsr change_location
rts
adjust_basement_door:
lda MECHE_ELEVATOR
bmi floor_open
floor_closed:
jmp floor_closed_elevator_off
floor_open:
jmp floor_open_elevator_off
floor_open_elevator_on:
floor_open_elevator_off:
ldy #LOCATION_WEST_EXIT
lda #MECHE_BASEMENT
sta location18,Y
ldy #LOCATION_WEST_BG
lda #<red_button_of_ce_w_lzsa
sta location18,Y
lda #>red_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
sta location18,Y
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
@ -162,6 +234,7 @@ really_exit:
; linking books
.include "link_book_meche.s"
.include "link_book_mist.s"
.include "common_sprites.inc"

View File

@ -87,6 +87,8 @@ ROCKET_NOTE1 = $9B
ROCKET_NOTE2 = $9C
ROCKET_NOTE3 = $9D
ROCKET_NOTE4 = $9E
MECHE_ELEVATOR = $9F
MECHE_ROTATION = $A0
; done game puzzle state