monkey: add another room

This commit is contained in:
Vince Weaver 2020-10-11 10:35:06 -04:00
parent 5233e24790
commit 11544b0eb4
7 changed files with 248 additions and 9 deletions

View File

@ -52,4 +52,4 @@ MONKEY_MANSION = 10
MONKEY_ZIPLINE = 11
MONKEY_VOODOO1 = 12
MONKEY_VOODOO2 = 13
MONKEY_BAR_INSIDE3 = 14

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -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

View File

@ -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"

View File

@ -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:

204
monkey/monkey_bar_inside3.s Normal file
View File

@ -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 INL
; 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