mist: sprites: add match and key sprites

This commit is contained in:
Vince Weaver 2020-07-14 18:42:47 -04:00
parent f99a3ff105
commit 7d58ab871d
7 changed files with 77 additions and 27 deletions

View File

@ -76,6 +76,8 @@ OCTAGON:
General:
+ Insert floppy #100 joke?
+ double link noise (once when leave, once when get there?)
+ can drop pages back where we picked them up
not too hard to implement?
MECHE age:
+ can poke around more stuff in their rooms
@ -112,6 +114,7 @@ Stoneship age:
+ Implement raising/lowering water
+ Implement telescope
+ Hook up tunnels into compass room properly
+ Spheres in red room play animations
Ending:
+ Atrus at end -- hires?

View File

@ -15,41 +15,41 @@ getsrc_smc =$1555
draw_pointer =$1562
; end_level.s
end_level =$16a5
end_level =$16ca
; gr_copy.s
gr_copy_to_current =$16c7
gr_copy_to_current =$16ec
; gr_fast_clear.s
clear_bottom =$17ed
clear_all =$182b
clear_all_color =$1850
clear_bottom =$1812
clear_all =$1850
clear_all_color =$1875
; gr_offsets.s
gr_offsets =$186e
gr_offsets =$1893
; gr_page_flip.s
page_flip =$189e
page_flip =$18c3
; gr_putsprite_crop.s
put_sprite_crop =$18b8
psc_smc1 =$18db
psc_smc2 =$1973
put_sprite_crop =$18dd
psc_smc1 =$1900
psc_smc2 =$1998
; keyboard.s
handle_keypress =$19f4
change_location =$1ad5
handle_keypress =$1a19
change_location =$1afa
; text_print.s
move_and_print =$1b6d
ps_smc1 =$1b9a
move_and_print =$1b92
ps_smc1 =$1bbf
; page_sprites.inc
blue_page_sprite =$1c82
red_page_sprite =$1c98
white_page_sprite =$1cae
blue_page_small_sprite =$1cc4
red_page_small_sprite =$1ccc
blue_page_sprite =$1ca7
red_page_sprite =$1cbd
white_page_sprite =$1cd3
blue_page_small_sprite =$1ce9
red_page_small_sprite =$1cf1
; audio files
linking_noise = $9000

View File

@ -42,6 +42,27 @@ finger_turn_right_sprite:
.byte $bb,$ab,$bb,$bb,$ab,$aa
.byte $ab,$aa,$ab,$aa,$aa,$aa
finger_match_sprite:
.byte 6,4
.byte $aa,$aa,$aa,$aa,$ba,$ba
.byte $1a,$da,$da,$db,$db,$db
.byte $a1,$ad,$ad,$bd,$bd,$ad
.byte $aa,$aa,$aa,$aa,$ab,$bb
finger_match_lit_sprite:
.byte 6,4
.byte $9a,$a9,$aa,$aa,$ba,$ba
.byte $19,$da,$da,$db,$db,$db
.byte $a9,$ad,$ad,$bd,$bd,$ad
.byte $aa,$aa,$aa,$aa,$ab,$bb
finger_key_sprite:
.byte 6,4
.byte $aa,$aa,$aa,$aa,$aa,$ba
.byte $dd,$dd,$dd,$dd,$db,$bb
.byte $aa,$ad,$aa,$ab,$bd,$bb
.byte $aa,$aa,$aa,$aa,$ab,$ab
finger_red_page_sprite:
.byte 5,5
.byte $3a,$33,$33,$aa,$aa

View File

@ -97,12 +97,36 @@ really_not_special:
finger_point:
lda HOLDING_PAGE
and #$c0
beq real_finger_point
cmp #HOLDING_BLUE_PAGE
beq blue_finger
cmp #HOLDING_RED_PAGE
beq red_finger
cmp #HOLDING_WHITE_PAGE
beq white_finger
cmp #HOLDING_MATCH
beq match_finger
cmp #HOLDING_LIT_MATCH
beq match_lit_finger
; all that's left is key
key_finger:
lda #<finger_key_sprite
sta INL
lda #>finger_key_sprite
jmp finger_draw
match_finger:
lda #<finger_match_sprite
sta INL
lda #>finger_match_sprite
jmp finger_draw
match_lit_finger:
lda #<finger_match_lit_sprite
sta INL
lda #>finger_match_lit_sprite
jmp finger_draw
red_finger:
lda #<finger_red_page_sprite

View File

@ -1,3 +1,5 @@
; FIXME: should be able to drop pages back where we picked them up
;==============================
; Take Blue Page
;==============================

View File

@ -5,10 +5,6 @@
grab_blue_page:
; FIXME: if we came back we could return page
; should check to see if carrying first
; also what if holding red, click blu
lda BLUE_PAGES_TAKEN
and #MECHE_PAGE
bne missing_page

View File

@ -121,9 +121,13 @@ MECHE_LOCK3 = $A7 ; meche lock symbol3
MECHE_LOCK4 = $A8 ; meche lock symbol4
HOLDING_PAGE = $A9 ; which page in hand
HOLDING_RED_PAGE = $80
HOLDING_BLUE_PAGE = $40
HOLDING_WHITE_PAGE = $C0
HOLDING_RED_PAGE = $80
HOLDING_BLUE_PAGE = $40
HOLDING_WHITE_PAGE = $C0
HOLDING_KEY = $04
HOLDING_LIT_MATCH = $02
HOLDING_MATCH = $01
RED_PAGE_COUNT = $AA ; # of red pages in book
BLUE_PAGE_COUNT = $AB ; # of blue pages in book