diff --git a/monkey/common_defines.inc b/monkey/common_defines.inc index e37b0d74..7004a5d5 100644 --- a/monkey/common_defines.inc +++ b/monkey/common_defines.inc @@ -52,4 +52,4 @@ MONKEY_MANSION = 10 MONKEY_ZIPLINE = 11 MONKEY_VOODOO1 = 12 MONKEY_VOODOO2 = 13 - +MONKEY_BAR_INSIDE3 = 14 diff --git a/monkey/graphics/Makefile b/monkey/graphics/Makefile index 5145432d..9ff2f752 100644 --- a/monkey/graphics/Makefile +++ b/monkey/graphics/Makefile @@ -10,7 +10,8 @@ all: graphics.inc graphics.inc: \ lookout.lzsa poster.lzsa dock.lzsa bar.lzsa town.lzsa map.lzsa \ - bar_inside1.lzsa bar_inside2.lzsa zipline.lzsa \ + bar_inside1.lzsa bar_inside2.lzsa bar_inside3.lzsa \ + zipline.lzsa \ church.lzsa mansion.lzsa mansion_path.lzsa \ voodoo1.lzsa voodoo2.lzsa \ part1.lzsa lechuck_ship.lzsa lechuck_cabin.lzsa @@ -22,6 +23,7 @@ graphics.inc: \ echo "map_lzsa: .incbin \"map.lzsa\"" >> graphics.inc echo "bar_inside1_lzsa: .incbin \"bar_inside1.lzsa\"" >> graphics.inc echo "bar_inside2_lzsa: .incbin \"bar_inside2.lzsa\"" >> graphics.inc + echo "bar_inside3_lzsa: .incbin \"bar_inside3.lzsa\"" >> graphics.inc echo "zipline_lzsa: .incbin \"zipline.lzsa\"" >> graphics.inc echo "church_lzsa: .incbin \"church.lzsa\"" >> graphics.inc echo "mansion_lzsa: .incbin \"mansion.lzsa\"" >> graphics.inc diff --git a/monkey/graphics/bar_inside3.png b/monkey/graphics/bar_inside3.png new file mode 100644 index 00000000..c7671d8e Binary files /dev/null and b/monkey/graphics/bar_inside3.png differ diff --git a/monkey/leveldata_monkey.inc b/monkey/leveldata_monkey.inc index 497c70c1..138d0015 100644 --- a/monkey/leveldata_monkey.inc +++ b/monkey/leveldata_monkey.inc @@ -6,7 +6,7 @@ locations: .word location0,location1,location2,location3 .word location4,location5,location6,location7 .word location8,location9,location10,location11 - .word location12,location13 + .word location12,location13,location14 ; MONKEY_LOOKOUT -- lookout tower location0: @@ -383,6 +383,21 @@ location13: .word voodoo_lady_string ; name .word voodoo_lady_action-1 ; action + +; MONKEY_BAR_INSIDE3 -- kitchen +location14: + .word bar_inside3_lzsa ; background + .word bar_inside3_adjust_destination ; destination + .word bar_inside3_check_exit ; exit + .word bar_inside3_check_bounds ; bounds check + .byte GUYBRUSH_BIG ; size + .byte 1 ; num areas + + .byte 0,3 ; x + .byte 12,34 ; y + .word curtain_string ; name + .word curtain_action-1 ; action + ; common strings door_string: .byte 20,20,"DOOR",0 diff --git a/monkey/monkey.s b/monkey/monkey.s index d8dffb26..3515b9e0 100644 --- a/monkey/monkey.s +++ b/monkey/monkey.s @@ -356,6 +356,7 @@ really_exit: .include "monkey_mansion_path.s" .include "monkey_bar_inside1.s" .include "monkey_bar_inside2.s" + .include "monkey_bar_inside3.s" .include "monkey_voodoo1.s" .include "monkey_voodoo2.s" diff --git a/monkey/monkey_bar_inside2.s b/monkey/monkey_bar_inside2.s index 390459b6..58fa9c5b 100644 --- a/monkey/monkey_bar_inside2.s +++ b/monkey/monkey_bar_inside2.s @@ -7,8 +7,8 @@ bar_inside2_check_exit: lda GUYBRUSH_X cmp #4 bcc bar_inside2_to_bar_inside1 -; cmp #35 -; bcs bar_inside2_to_bar + cmp #33 + bcs bar_inside2_to_bar_inside3 bcs bar_inside2_no_exit @@ -28,6 +28,23 @@ bar_inside2_to_bar_inside1: jsr change_location jmp bar_inside2_no_exit +bar_inside2_to_bar_inside3: + lda GUYBRUSH_DIRECTION + cmp #DIR_RIGHT + bne bar_inside2_no_exit + + lda #MONKEY_BAR_INSIDE3 + sta LOCATION + lda #5 + sta GUYBRUSH_X + sta DESTINATION_X + lda #24 + sta GUYBRUSH_Y + sta DESTINATION_Y + jsr change_location + jmp bar_inside2_no_exit + + bar_inside2_no_exit: rts @@ -42,12 +59,12 @@ bar_inside2_adjust_destination: lda #24 sta DESTINATION_Y - lda DESTINATION_X - cmp #33 +; lda DESTINATION_X +; cmp #33 bcc done_mb2_adjust - lda #33 - sta DESTINATION_X +; lda #33 +; sta DESTINATION_X done_mb2_adjust: diff --git a/monkey/monkey_bar_inside3.s b/monkey/monkey_bar_inside3.s new file mode 100644 index 00000000..e0c93a5f --- /dev/null +++ b/monkey/monkey_bar_inside3.s @@ -0,0 +1,204 @@ +; stuff regarding 3d room of scumm bar + + ; if x<4 goto MONKEY_BAR_INSIDE2 at 34,24 + +bar_inside3_check_exit: + + lda GUYBRUSH_X + cmp #4 + bcc bar_inside3_to_bar_inside2 +; cmp #35 +; bcs bar_inside3_to_bar + bcs bar_inside3_no_exit + + +bar_inside3_to_bar_inside2: + lda GUYBRUSH_DIRECTION + cmp #DIR_LEFT + bne bar_inside3_no_exit + + lda #MONKEY_BAR_INSIDE2 + sta LOCATION + lda #34 + sta GUYBRUSH_X + sta DESTINATION_X + lda #24 + sta GUYBRUSH_Y + sta DESTINATION_Y + jsr change_location + jmp bar_inside3_no_exit + +bar_inside3_no_exit: + rts + + ;================================ + ;================================ + ; bar_inside3 adjust destination + ;================================ + ;================================ +bar_inside3_adjust_destination: + ; just make Y always 24 + + lda #24 + sta DESTINATION_Y + + lda DESTINATION_X + cmp #33 + bcc done_mb3_adjust + + lda #33 + sta DESTINATION_X + + +done_mb3_adjust: + rts + + + ;================================ + ;================================ + ; bar_inside3 check bounds + ;================================ + ;================================ +bar_inside3_check_bounds: + ; just make Y always 20 + + rts + +;draw_house: + +; lda #wall_sprite +; sta INH + +; lda #18 +; sta XPOS +; lda #22 +; sta YPOS + +; jsr put_sprite_crop + +; rts + +;house_sprite: + + + ;=================================== + ;=================================== + ; actions + ;=================================== + ;=================================== + + +;============================= +bar3_door_action: +bar3_door_nothing: + lda #VERB_WALK + sta CURRENT_VERB + rts + +.if 0 + ;============================= +fireplace_action: + lda CURRENT_VERB + asl + tay + + lda fireplace_actions,Y + cmp #$ff + beq fireplace_nothing + + sta MESSAGE_L + lda fireplace_actions+1,Y + sta MESSAGE_H + + jmp do_display_message + +fireplace_nothing: + lda #VERB_WALK + sta CURRENT_VERB + rts + +fireplace_actions: + .word $FFFF ; give + .word doesnt_open ; open + .word doesnt_work ; close + .word cant_pick_up ; pick_up + .word fireplace_look ; look_at + .word $FFFF ; talk_to + .word for_what ; use + .word icant_move ; push + .word icant_move ; pull + +fireplace_look: +.byte 18,21,"COZY.",0 + + +;============================= +impt_pirate_action: + lda CURRENT_VERB + asl + tay + + lda impt_pirate_actions,Y + cmp #$ff + beq impt_pirate_nothing + + sta MESSAGE_L + lda impt_pirate_actions+1,Y + sta MESSAGE_H + + jmp do_display_message + +impt_pirate_nothing: + lda #VERB_WALK + sta CURRENT_VERB + rts + +impt_pirate_actions: + .word $FFFF ; give + .word $FFFF ; open + .word $FFFF ; close + .word $FFFF ; pick_up + .word impt_pirate_look ; look_at + .word impt_pirate_look ; talk_to + .word $FFFF ; use + .word $FFFF ; push + .word $FFFF ; pull + +impt_pirate_look: +.byte 8,21,"WHAT BE YE WANTIN' BOY?",0 + + ;============================= +curtain_action: + lda CURRENT_VERB + asl + tay + + lda curtain_actions,Y + cmp #$ff + beq curtain_nothing + + sta MESSAGE_L + lda curtain_actions+1,Y + sta MESSAGE_H + + jmp do_display_message + +curtain_nothing: + lda #VERB_WALK + sta CURRENT_VERB + rts + +curtain_actions: + .word $FFFF ; give + .word doesnt_open ; open + .word doesnt_work ; close + .word cant_pick_up ; pick_up + .word not_special ; look_at + .word $FFFF ; talk_to + .word for_what ; use + .word icant_move ; push + .word icant_move ; pull + +.endif