diff --git a/mist/graphics_nibel/shack_center_s.png b/mist/graphics_nibel/shack_center_s.png index cfe6d99d..ed1a5a26 100644 Binary files a/mist/graphics_nibel/shack_center_s.png and b/mist/graphics_nibel/shack_center_s.png differ diff --git a/mist/graphics_nibel/viewer_pics.png b/mist/graphics_nibel/viewer_pics.png index c41d1748..54e45ffd 100644 Binary files a/mist/graphics_nibel/viewer_pics.png and b/mist/graphics_nibel/viewer_pics.png differ diff --git a/mist/leveldata_nibel.inc b/mist/leveldata_nibel.inc index fd7f08c0..9296449a 100644 --- a/mist/leveldata_nibel.inc +++ b/mist/leveldata_nibel.inc @@ -528,7 +528,10 @@ location27: .word $0000 ; east bg .word $0000 ; west bg .byte BG_NORTH|BG_SOUTH - .byte $ff + .byte DIRECTION_S ; special exit + .byte 12,29 ; special x + .byte 20,34 ; special y + .word touch_trap-1 ; special function ; NIBEL_SHACK_ENTRANCE -- entranceway of the weird shack location28: diff --git a/mist/nibel.s b/mist/nibel.s index f9b93d78..774a2d65 100644 --- a/mist/nibel.s +++ b/mist/nibel.s @@ -81,6 +81,8 @@ game_loop: beq animate_viewer cmp #NIBEL_SHACK_ENTRANCE beq animate_projector + cmp #NIBEL_SHACK_CENTER + beq animate_trap jmp nothing_special @@ -96,6 +98,10 @@ animate_projector: jsr draw_projection jmp nothing_special +animate_trap: + jsr draw_trap + jmp nothing_special + animate_viewer: lda ANIMATE_FRAME beq nothing_special diff --git a/mist/nibel_switches.s b/mist/nibel_switches.s index c2299ef5..2b2b95ab 100644 --- a/mist/nibel_switches.s +++ b/mist/nibel_switches.s @@ -1,9 +1,137 @@ draw_gate_animation_s: + lda DIRECTION + cmp #DIRECTION_S + bne done_gate_s + + lda ANIMATE_FRAME + beq done_gate_s + +done_gate_s: rts draw_gate_animation_n: + lda DIRECTION + cmp #DIRECTION_N + bne done_gate_n + + lda ANIMATE_FRAME + beq done_gate_n + +done_gate_n: rts + + ;================================= + ; it's a trap + ;================================= + +touch_trap: + lda #1 + sta ANIMATE_FRAME + lda #0 + sta FRAMEL + rts + +draw_trap: + lda DIRECTION + cmp #DIRECTION_S + bne done_draw_trap + + lda ANIMATE_FRAME + beq done_draw_trap + + asl + tay + lda trap_animation,Y + sta INL + lda trap_animation+1,Y + sta INH + + lda #13 + sta XPOS + lda #18 + sta YPOS + + jsr put_sprite_crop + + lda FRAMEL + and #$7 + bne done_draw_trap + + inc ANIMATE_FRAME + lda ANIMATE_FRAME + + cmp #12 + bne done_draw_trap + + lda #0 + sta ANIMATE_FRAME + +done_draw_trap: + rts + + +trap_animation: + .word empty_sprite + .word trap_sprite1 + .word trap_sprite2 + .word trap_sprite3 + .word trap_sprite4 + .word trap_sprite4 + .word trap_sprite3 + .word trap_sprite3 + .word trap_sprite2 + .word trap_sprite2 + .word trap_sprite1 + .word trap_sprite1 + + + + + +trap_sprite1: + .byte 15,7 + .byte $88,$00,$00,$00,$00,$00,$88,$88,$88,$00,$99,$88,$88,$88,$00 + .byte $08,$00,$00,$00,$00,$00,$88,$88,$88,$00,$99,$88,$88,$88,$00 + .byte $00,$11,$20,$11,$20,$11,$28,$11,$28,$11,$29,$11,$28,$11,$00 + .byte $12,$72,$72,$72,$72,$72,$72,$02,$72,$72,$72,$72,$72,$21,$20 + .byte $01,$77,$77,$77,$77,$57,$55,$55,$55,$57,$77,$77,$07,$02,$11 + .byte $10,$00,$17,$77,$15,$55,$15,$55,$15,$55,$15,$77,$10,$00,$12 + .byte $21,$20,$21,$27,$21,$25,$21,$20,$21,$25,$21,$27,$21,$20,$21 + +trap_sprite2: + .byte 15,7 + .byte $88,$00,$00,$00,$00,$00,$88,$88,$88,$00,$99,$88,$88,$88,$00 + .byte $08,$00,$00,$00,$00,$00,$88,$88,$88,$00,$99,$88,$88,$88,$00 + .byte $00,$11,$17,$77,$70,$71,$28,$11,$28,$71,$79,$77,$17,$88,$00 + .byte $12,$02,$07,$07,$77,$77,$72,$02,$72,$77,$77,$07,$07,$78,$20 + .byte $77,$77,$70,$70,$00,$50,$55,$55,$55,$50,$00,$70,$71,$77,$77 + .byte $77,$77,$17,$77,$17,$77,$15,$55,$15,$77,$17,$77,$17,$77,$77 + .byte $27,$27,$21,$27,$21,$27,$21,$20,$21,$27,$21,$27,$21,$27,$27 + +trap_sprite3: + .byte 15,7 + .byte $88,$00,$00,$10,$00,$00,$88,$88,$88,$00,$99,$18,$88,$88,$00 + .byte $08,$00,$77,$10,$00,$00,$88,$88,$88,$00,$99,$18,$77,$78,$00 + .byte $00,$77,$77,$70,$00,$01,$28,$11,$28,$01,$09,$77,$77,$77,$70 + .byte $72,$77,$77,$77,$70,$00,$02,$02,$02,$00,$70,$77,$77,$77,$77 + .byte $77,$77,$77,$77,$77,$70,$00,$55,$00,$70,$77,$77,$77,$77,$77 + .byte $77,$77,$17,$77,$17,$77,$10,$55,$10,$77,$17,$77,$17,$77,$77 + .byte $27,$27,$21,$27,$21,$27,$21,$20,$21,$27,$21,$27,$21,$27,$27 + +trap_sprite4: + .byte 15,7 + .byte $88,$00,$00,$50,$55,$55,$55,$11,$55,$55,$55,$58,$88,$88,$00 + .byte $08,$00,$75,$77,$77,$77,$77,$88,$77,$77,$77,$77,$75,$58,$00 + .byte $00,$77,$77,$77,$77,$77,$77,$11,$77,$77,$77,$77,$77,$77,$50 + .byte $72,$77,$77,$77,$77,$77,$77,$02,$77,$77,$77,$77,$77,$77,$55 + .byte $77,$77,$77,$77,$77,$77,$77,$55,$77,$77,$77,$77,$77,$77,$55 + .byte $77,$77,$17,$77,$17,$77,$17,$55,$17,$77,$17,$77,$17,$77,$77 + .byte $27,$27,$21,$27,$21,$27,$21,$20,$21,$27,$21,$27,$21,$27,$27 + + + + close_rts: rts