diff --git a/mist/TODO b/mist/TODO index b5146b23..ecefa78a 100644 --- a/mist/TODO +++ b/mist/TODO @@ -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? diff --git a/mist/common_routines.inc b/mist/common_routines.inc index cf7b5939..d7cc67af 100644 --- a/mist/common_routines.inc +++ b/mist/common_routines.inc @@ -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 diff --git a/mist/common_sprites.inc b/mist/common_sprites.inc index 4f108c95..1f1a2380 100644 --- a/mist/common_sprites.inc +++ b/mist/common_sprites.inc @@ -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 diff --git a/mist/draw_pointer.s b/mist/draw_pointer.s index 93d43288..43be0e34 100644 --- a/mist/draw_pointer.s +++ b/mist/draw_pointer.s @@ -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 + jmp finger_draw + +match_finger: + lda #finger_match_sprite + jmp finger_draw + +match_lit_finger: + lda #finger_match_lit_sprite + jmp finger_draw red_finger: lda #