mist: add animations for the circuit breakers

This commit is contained in:
Vince Weaver 2020-08-01 01:43:41 -04:00
parent aba8443d22
commit 9295bb91de
4 changed files with 87 additions and 4 deletions

View File

@ -70,6 +70,11 @@ game_loop:
; handle generator puzzle
lda LOCATION
cmp #GEN_TOWER1_TOP
bne location_generator
jsr draw_circuit_breaker
jmp nothing_special
location_generator:
cmp #GEN_GENERATOR_ROOM
bne nothing_special

View File

@ -29,6 +29,38 @@ back_to_mist:
rts
draw_circuit_breaker:
lda ANIMATE_FRAME
beq done_draw_circuit_breaker
lda #17
sta XPOS
lda #12
sta YPOS
lda #<breaker_down_sprite
sta INL
lda #>breaker_down_sprite
sta INH
jsr put_sprite_crop
lda FRAMEL
and #$1f
bne done_draw_circuit_breaker
dec ANIMATE_FRAME
done_draw_circuit_breaker:
rts
breaker_down_sprite:
.byte 3,2
.byte $90,$0f,$90
.byte $69,$65,$69
;=======================
; flip circuit breaker
@ -39,6 +71,9 @@ circuit_breaker:
jsr click_speaker ; click speaker
lda #2
sta ANIMATE_FRAME
lda LOCATION
cmp #MIST_TOWER2_TOP
bne other_circuit_breaker

View File

@ -81,22 +81,31 @@ game_loop:
; handle special-case forground logic
;====================================
; handle marker switch drawing
jsr draw_marker_switch
; handle gear opening
lda GEAR_OPEN
beq not_gear_related
jsr check_gear_delete
not_gear_related:
; handle pillars
lda LOCATION
; handle circuit breaker
cmp #MIST_TOWER2_TOP
bne check_if_pillars
jsr draw_circuit_breaker
jmp nothing_special
; handle pillars
check_if_pillars:
cmp #MIST_PILLAR_EYE
bcc check_if_compartment_open
bcc check_if_compartment_open ; hack, depends on order
jsr draw_pillar

View File

@ -470,6 +470,37 @@ done_pillar:
draw_circuit_breaker:
lda ANIMATE_FRAME
beq done_draw_circuit_breaker
lda #18
sta XPOS
lda #12
sta YPOS
lda #<breaker_down_sprite
sta INL
lda #>breaker_down_sprite
sta INH
jsr put_sprite_crop
lda FRAMEL
and #$1f
bne done_draw_circuit_breaker
dec ANIMATE_FRAME
done_draw_circuit_breaker:
rts
breaker_down_sprite:
.byte 4,3
.byte $00,$ff,$00,$ff
.byte $99,$77,$77,$99
.byte $69,$67,$67,$69
;=======================
; flip circuit breaker
@ -480,6 +511,9 @@ circuit_breaker:
jsr click_speaker ; click speaker
lda #2
sta ANIMATE_FRAME
lda LOCATION
cmp #MIST_TOWER2_TOP
bne other_circuit_breaker