; voodoo shop 1 ; if x<10 goto MONKEY_TOWN ; if x>30 goto MONKEY_VOODOO2 voodoo1_check_exit: lda GUYBRUSH_X cmp #35 bcs voodoo1_to_voodoo2 cmp #10 bcc voodoo1_to_town bcs voodoo1_no_exit voodoo1_to_voodoo2: lda #MONKEY_VOODOO2 sta LOCATION lda #8 sta GUYBRUSH_X lda #12 sta DESTINATION_X lda #18 sta GUYBRUSH_Y sta DESTINATION_Y jsr change_location jmp voodoo1_no_exit voodoo1_to_town: lda #MONKEY_TOWN sta LOCATION lda #8 sta GUYBRUSH_X sta DESTINATION_X lda #18 sta GUYBRUSH_Y sta DESTINATION_Y lda #GUYBRUSH_SMALL sta GUYBRUSH_SIZE jsr change_location jmp voodoo1_no_exit voodoo1_no_exit: rts ;========================== ;========================== ; voodoo1 adjust destination ;========================== ;========================== voodoo1_adjust_destination: ; just make Y always 20 v1_check_y: ; if x < 28, Y must be between 16 and 18 ; if x < 35, Y must be between 8 and 28 v1_y_too_small: lda #20 sta DESTINATION_Y done_v1_adjust: rts ;========================== ;========================== ; voodoo1 check bounds ;========================== ;========================== voodoo1_check_bounds: rts ;========================== ;========================== ; voodoo1 draw foreground ;========================== ;========================== voodoo1_draw_foreground: lda #voodoo1_fg_sprite sta INH lda #12 sta XPOS lda #30 sta YPOS jsr put_sprite_crop lda ITEMS_PICKED_UP and #IPU_ITEM_PULLEY_CHICKEN bne done_voodoo1_draw_foreground lda #chicken_pulley_sprite sta INH lda #30 sta XPOS lda #30 sta YPOS jsr put_sprite_crop done_voodoo1_draw_foreground: rts voodoo1_fg_sprite: .byte 12,2 .byte $AA,$8A,$88,$88,$8A,$AA,$AA,$AA,$AA,$AA,$8A,$AA .byte $8A,$08,$08,$80,$80,$88,$8A,$AA,$AA,$08,$08,$08 chicken_pulley_sprite: .byte 2,2 .byte $77,$AA .byte $87,$57 ;========================== ;========================== ; voodoo1 actions ;========================== ;========================== voodoo1_door_action: voodoo1_door_nothing: lda #VERB_WALK sta CURRENT_VERB rts ;============================= couch_action: lda CURRENT_VERB asl tay lda couch_actions,Y cmp #$ff beq couch_nothing sta MESSAGE_L lda couch_actions+1,Y sta MESSAGE_H jmp do_display_message couch_nothing: lda #VERB_WALK sta CURRENT_VERB rts couch_actions: .word $FFFF ; give .word creepy_voodoo ; open .word creepy_voodoo ; close .word creepy_voodoo ; pick_up .word couch_look ; look_at .word $FFFF ; talk_to .word couch_use ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull couch_look: .byte 0,21,"LOOKS COMFORTABLE IN A CREEPY SORTA WAY",0 couch_use: .byte 1,21,"I CAN'T FALL ASLEEP IN STRANCE PLACES",0 creepy_voodoo: .byte 0,21,"I'D RATHER NOT TOUCH CREEPY VOODOO STUFF",0 ;============================= chickens_action: lda CURRENT_VERB asl tay lda chickens_actions,Y cmp #$ff beq chickens_nothing sta MESSAGE_L lda chickens_actions+1,Y sta MESSAGE_H jmp do_display_message chickens_nothing: lda #VERB_WALK sta CURRENT_VERB rts chickens_actions: .word $FFFF ; give .word creepy_voodoo ; open .word creepy_voodoo ; close .word chickens_pickup ; pick_up .word chickens_look ; look_at .word $FFFF ; talk_to .word creepy_voodoo ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull chickens_pickup: .byte 14,21,"I BETTER NOT",0 chickens_look: .byte 12,21,"POOR CHICKENS...",0 ;============================= statue_action: lda CURRENT_VERB asl tay lda statue_actions,Y cmp #$ff beq statue_nothing sta MESSAGE_L lda statue_actions+1,Y sta MESSAGE_H jmp do_display_message statue_nothing: lda #VERB_WALK sta CURRENT_VERB rts statue_actions: .word $FFFF ; give .word creepy_voodoo ; open .word creepy_voodoo ; close .word creepy_voodoo ; pick_up .word creepy_voodoo ; look_at .word $FFFF ; talk_to .word creepy_voodoo ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull ;============================= voodoo_knicknacks_action: lda CURRENT_VERB asl tay lda voodoo_knicknacks_actions,Y cmp #$ff beq voodoo_knicknacks_nothing sta MESSAGE_L lda voodoo_knicknacks_actions+1,Y sta MESSAGE_H jmp do_display_message voodoo_knicknacks_nothing: lda #VERB_WALK sta CURRENT_VERB rts voodoo_knicknacks_actions: .word $FFFF ; give .word creepy_voodoo ; open .word creepy_voodoo ; close .word creepy_voodoo ; pick_up .word voodoo_knicknacks_look ; look_at .word $FFFF ; talk_to .word creepy_voodoo ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull voodoo_knicknacks_look: .byte 3,21,"THERE'S A BAG OF BAT DRIPPINGS",0 ;============================= baskets_action: lda CURRENT_VERB asl tay lda baskets_actions,Y cmp #$ff beq baskets_nothing sta MESSAGE_L lda baskets_actions+1,Y sta MESSAGE_H jmp do_display_message baskets_nothing: lda #VERB_WALK sta CURRENT_VERB rts baskets_actions: .word $FFFF ; give .word baskets_open ; open .word creepy_voodoo ; close .word creepy_voodoo ; pick_up .word baskets_look ; look_at .word $FFFF ; talk_to .word creepy_voodoo ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull baskets_open: .byte 10,21,"I'M NOT THAT CURIOUS",0 baskets_look: .byte 1,21,"GEE, I WONDER WHAT'S IN THESE BASKETS",0 ;============================= basket_action: lda CURRENT_VERB asl tay lda basket_actions,Y cmp #$ff beq basket_nothing sta MESSAGE_L lda basket_actions+1,Y sta MESSAGE_H jmp do_display_message basket_nothing: lda #VERB_WALK sta CURRENT_VERB rts basket_actions: .word $FFFF ; give .word basket_open ; open .word creepy_voodoo ; close .word creepy_voodoo ; pick_up .word basket_look ; look_at .word $FFFF ; talk_to .word creepy_voodoo ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull basket_open: .byte 4,21,"SOMETHING WOULD PROBABLY JUMP OUT",0 basket_look: .byte 0,21,"HMMM.. I THINK I HEAR SLITHERING INSIDE",0 ;============================= bones_action: lda CURRENT_VERB asl tay lda bones_actions,Y cmp #$ff beq bones_nothing sta MESSAGE_L lda bones_actions+1,Y sta MESSAGE_H jmp do_display_message bones_nothing: lda #VERB_WALK sta CURRENT_VERB rts bones_actions: .word $FFFF ; give .word creepy_voodoo ; open .word creepy_voodoo ; close .word creepy_voodoo ; pick_up .word bones_look ; look_at .word $FFFF ; talk_to .word creepy_voodoo ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull bones_look: .byte 3,21,"POOR LITTLE THING, WHATEVER IT WAS",0 ;============================= chalice_action: lda CURRENT_VERB asl tay lda chalice_actions,Y cmp #$ff beq chalice_nothing sta MESSAGE_L lda chalice_actions+1,Y sta MESSAGE_H jmp do_display_message chalice_nothing: lda #VERB_WALK sta CURRENT_VERB rts chalice_actions: .word $FFFF ; give .word creepy_voodoo ; open .word creepy_voodoo ; close .word creepy_voodoo ; pick_up .word chalice_look ; look_at .word $FFFF ; talk_to .word creepy_voodoo ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull chalice_look: .byte 3,21,"NOW THIS IS THE CUP OF A CARPENTER",0 ;============================= trunk_action: lda CURRENT_VERB asl tay lda trunk_actions,Y cmp #$ff beq trunk_nothing sta MESSAGE_L lda trunk_actions+1,Y sta MESSAGE_H jmp do_display_message trunk_nothing: lda #VERB_WALK sta CURRENT_VERB rts trunk_actions: .word $FFFF ; give .word creepy_voodoo ; open .word creepy_voodoo ; close .word creepy_voodoo ; pick_up .word trunk_look ; look_at .word $FFFF ; talk_to .word creepy_voodoo ; use .word creepy_voodoo ; push .word creepy_voodoo ; pull trunk_look: .byte 8,21,"PROBABLY HAS A BODY IN IT",0 ;============================= chicken_pulley_action: lda CURRENT_VERB cmp #VERB_PICK_UP bne chicken_pulley_not_pickup ; pick up the chicken_pulley lda ITEMS_PICKED_UP ora #IPU_ITEM_PULLEY_CHICKEN sta ITEMS_PICKED_UP ; add to inventory lda #INV_ITEM_PULLEY_CHICKEN ldx INVENTORY_NEXT_SLOT sta INVENTORY,X inc INVENTORY_NEXT_SLOT ; decrement object count in room ldy #LOCATION_NUM_AREAS lda location12,Y sec sbc #1 sta location12,Y rts chicken_pulley_not_pickup: asl tay lda chicken_pulley_actions,Y cmp #$ff beq chicken_pulley_nothing sta MESSAGE_L lda chicken_pulley_actions+1,Y sta MESSAGE_H jmp do_display_message chicken_pulley_nothing: lda #VERB_WALK sta CURRENT_VERB rts chicken_pulley_actions: .word $FFFF ; give .word doesnt_open ; open .word doesnt_work ; close .word $FFFF ; pick_up .word chicken_pulley_look ; look_at .word $FFFF ; talk_to .word $FFFF ; use .word icant_move ; push .word icant_move ; pull chicken_pulley_look: .byte 2,21,"A RUBBER CHICKEN WITH A PULLEY IN IT",0