keen: implement teleporters
This commit is contained in:
parent
5eb3f4fa4b
commit
eea7d9ec5c
|
@ -81,30 +81,11 @@ not_game_over:
|
||||||
;====================================
|
;====================================
|
||||||
; copy in tilemap subset
|
; copy in tilemap subset
|
||||||
;====================================
|
;====================================
|
||||||
; FIXME: start values
|
|
||||||
; center around MARS_TILEX, MARS_TILEY
|
|
||||||
|
|
||||||
lda #0 ; default at 0,0
|
|
||||||
sta TILEMAP_X
|
|
||||||
sta TILEMAP_Y
|
|
||||||
|
|
||||||
lda MARS_TILEX
|
; first center map around current location
|
||||||
cmp #10
|
|
||||||
bcc mars_tilex_fine
|
|
||||||
sec
|
|
||||||
sbc #10
|
|
||||||
sta TILEMAP_X
|
|
||||||
|
|
||||||
mars_tilex_fine:
|
jsr recenter_map
|
||||||
|
|
||||||
lda MARS_TILEY
|
|
||||||
cmp #6
|
|
||||||
bcc mars_tiley_fine
|
|
||||||
sec
|
|
||||||
sbc #6
|
|
||||||
sta TILEMAP_Y
|
|
||||||
|
|
||||||
mars_tiley_fine:
|
|
||||||
|
|
||||||
jsr copy_tilemap_subset
|
jsr copy_tilemap_subset
|
||||||
|
|
||||||
|
@ -441,7 +422,7 @@ NUM_LOCATIONS = 20
|
||||||
|
|
||||||
do_action:
|
do_action:
|
||||||
|
|
||||||
ldx #NUM_LOCATIONS
|
ldx #(NUM_LOCATIONS-1)
|
||||||
|
|
||||||
do_action_loop:
|
do_action_loop:
|
||||||
|
|
||||||
|
@ -550,6 +531,101 @@ enter_level:
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
;=====================================
|
||||||
|
;=====================================
|
||||||
|
; transport_to_right
|
||||||
|
;=====================================
|
||||||
|
;=====================================
|
||||||
|
transport_right:
|
||||||
|
|
||||||
|
; TODO: play noise
|
||||||
|
|
||||||
|
lda #34
|
||||||
|
sta MARS_TILEX
|
||||||
|
lda #3
|
||||||
|
sta MARS_TILEY
|
||||||
|
|
||||||
|
jsr recenter_map ; fallthrough?
|
||||||
|
|
||||||
|
jsr copy_tilemap_subset
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
;=====================================
|
||||||
|
;=====================================
|
||||||
|
; transport_to_left
|
||||||
|
;=====================================
|
||||||
|
;=====================================
|
||||||
|
transport_left:
|
||||||
|
|
||||||
|
; TODO: play noise
|
||||||
|
|
||||||
|
lda #26
|
||||||
|
sta MARS_TILEX
|
||||||
|
lda #4
|
||||||
|
sta MARS_TILEY
|
||||||
|
|
||||||
|
jsr recenter_map ; fallthrough?
|
||||||
|
|
||||||
|
jsr copy_tilemap_subset
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
;=====================================
|
||||||
|
;=====================================
|
||||||
|
; transport_to_secret
|
||||||
|
;=====================================
|
||||||
|
;=====================================
|
||||||
|
transport_secret:
|
||||||
|
; TODO: verify we are transporting back to the right place
|
||||||
|
|
||||||
|
; TODO: play noise
|
||||||
|
|
||||||
|
lda #44
|
||||||
|
sta MARS_TILEX
|
||||||
|
lda #24
|
||||||
|
sta MARS_TILEY
|
||||||
|
|
||||||
|
jsr recenter_map ; fallthrough?
|
||||||
|
|
||||||
|
jsr copy_tilemap_subset
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;=====================================
|
||||||
|
; recenter map around current location
|
||||||
|
;=====================================
|
||||||
|
; center around MARS_TILEX, MARS_TILEY
|
||||||
|
|
||||||
|
recenter_map:
|
||||||
|
lda #0 ; default at 0,0
|
||||||
|
sta TILEMAP_X
|
||||||
|
sta TILEMAP_Y
|
||||||
|
|
||||||
|
lda MARS_TILEX
|
||||||
|
cmp #10
|
||||||
|
bcc mars_tilex_fine
|
||||||
|
sec
|
||||||
|
sbc #10
|
||||||
|
sta TILEMAP_X
|
||||||
|
|
||||||
|
mars_tilex_fine:
|
||||||
|
|
||||||
|
lda MARS_TILEY
|
||||||
|
cmp #6
|
||||||
|
bcc mars_tiley_fine
|
||||||
|
sec
|
||||||
|
sbc #6
|
||||||
|
sta TILEMAP_Y
|
||||||
|
|
||||||
|
mars_tiley_fine:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
location_x:
|
location_x:
|
||||||
.byte 19,22, 9,22,13,16,25,38
|
.byte 19,22, 9,22,13,16,25,38
|
||||||
|
@ -575,8 +651,8 @@ location_actions_low:
|
||||||
.byte <(dummy_action-1),<(dummy_action-1)
|
.byte <(dummy_action-1),<(dummy_action-1)
|
||||||
.byte <(dummy_action-1),<(dummy_action-1)
|
.byte <(dummy_action-1),<(dummy_action-1)
|
||||||
.byte <(dummy_action-1),<(dummy_action-1)
|
.byte <(dummy_action-1),<(dummy_action-1)
|
||||||
.byte <(do_parts-1),<(dummy_action-1) ; ship, l transport
|
.byte <(do_parts-1),<(transport_right-1) ; ship, l transport
|
||||||
.byte <(dummy_action-1),<(dummy_action-1) ; r trans, secret
|
.byte <(transport_left-1),<(transport_secret-1) ; r trans, secret
|
||||||
|
|
||||||
location_actions_high:
|
location_actions_high:
|
||||||
.byte >(enter_level-1),>(dummy_action-1) ; level1, level2
|
.byte >(enter_level-1),>(dummy_action-1) ; level1, level2
|
||||||
|
@ -587,8 +663,8 @@ location_actions_high:
|
||||||
.byte >(dummy_action-1),>(dummy_action-1)
|
.byte >(dummy_action-1),>(dummy_action-1)
|
||||||
.byte >(dummy_action-1),>(dummy_action-1)
|
.byte >(dummy_action-1),>(dummy_action-1)
|
||||||
.byte >(dummy_action-1),>(dummy_action-1)
|
.byte >(dummy_action-1),>(dummy_action-1)
|
||||||
.byte >(do_parts-1),>(dummy_action-1) ; ship, l transport
|
.byte >(do_parts-1),>(transport_right-1) ; ship, l transport
|
||||||
.byte >(dummy_action-1),>(dummy_action-1) ; r trans, secret
|
.byte >(transport_left-1),>(transport_secret-1) ; r trans, secret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue