monkey: add a few more locations

This commit is contained in:
Vince Weaver 2020-10-01 15:07:02 -04:00
parent 02e9de030e
commit 17114b6ae7
23 changed files with 261 additions and 18 deletions

View File

@ -60,7 +60,9 @@ monkey.o: monkey.s zp.inc hardware.inc common_defines.inc \
monkey_lookout.s monkey_poster.s monkey_dock.s monkey_bar.s \
monkey_town.s monkey_map.s monkey_church.s monkey_mansion_path.s \
monkey_mansion.s monkey_zipline.s \
monkey_bar_inside1.s monkey_bar_inside2.s
monkey_bar_inside1.s monkey_bar_inside2.s \
monkey_voodoo1.s monkey_voodoo2.s \
cutscene_lechuck.s chapter1.s
ca65 -o monkey.o monkey.s -l monkey.lst
graphics/graphics.inc:

5
monkey/chapter1.s Normal file
View File

@ -0,0 +1,5 @@
;
;
chapter1_transition:
rts

View File

@ -50,3 +50,6 @@ MONKEY_CHURCH = 8
MONKEY_MANSION_PATH = 9
MONKEY_MANSION = 10
MONKEY_ZIPLINE = 11
MONKEY_VOODOO1 = 12
MONKEY_VOODOO2 = 13

15
monkey/cutscene_lechuck.s Normal file
View File

@ -0,0 +1,15 @@
;
;
; Meanwhile...
; Deep beneath Monkey Island,
; the ghost pirate LeChuck's
; ship lies anchored in a river
; of lava.
; Captain LeChuck... sir... I... sir
lechuck_cutscene:
rts

View File

@ -11,7 +11,9 @@ 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 \
church.lzsa mansion.lzsa mansion_path.lzsa
church.lzsa mansion.lzsa mansion_path.lzsa \
voodoo1.lzsa voodoo2.lzsa \
part1.lzsa lechuck_ship.lzsa lechuck_cabin.lzsa
echo "lookout_lzsa: .incbin \"lookout.lzsa\"" > graphics.inc
echo "poster_lzsa: .incbin \"poster.lzsa\"" >> graphics.inc
echo "dock_lzsa: .incbin \"dock.lzsa\"" >> graphics.inc
@ -24,6 +26,11 @@ graphics.inc: \
echo "church_lzsa: .incbin \"church.lzsa\"" >> graphics.inc
echo "mansion_lzsa: .incbin \"mansion.lzsa\"" >> graphics.inc
echo "mansion_path_lzsa: .incbin \"mansion_path.lzsa\"" >> graphics.inc
echo "voodoo1_lzsa: .incbin \"voodoo1.lzsa\"" >> graphics.inc
echo "voodoo2_lzsa: .incbin \"voodoo2.lzsa\"" >> graphics.inc
echo "part1_lzsa: .incbin \"part1.lzsa\"" >> graphics.inc
echo "lechuck_ship_lzsa: .incbin \"lechuck_ship.lzsa\"" >> graphics.inc
echo "lechuck_cabin_lzsa: .incbin \"lechuck_cabin.lzsa\"" >> graphics.inc
%.gr: %.png
$(PNG2GR) $< $@

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
monkey/graphics/part1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

BIN
monkey/graphics/voodoo1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
monkey/graphics/voodoo2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 B

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
; MONKEY_LOOKOUT -- lookout tower
location0:
@ -37,7 +37,7 @@ location1:
.word poster_lzsa ; background
.word poster_adjust_destination ; destination
.word poster_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word poster_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 2 ; num areas
@ -56,7 +56,7 @@ location2:
.word dock_lzsa ; background
.word dock_adjust_destination ; destination
.word dock_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word dock_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 1 ; num areas
@ -90,7 +90,7 @@ location4:
.word town_lzsa ; background
.word town_adjust_destination ; destination
.word town_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word town_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 8 ; num areas
@ -140,7 +140,7 @@ location5:
.word map_lzsa ; background
.word map_adjust_destination ; destination
.word map_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word map_check_bounds ; bounds check
.byte GUYBRUSH_TINY ; size
.byte 7 ; num areas
@ -185,7 +185,7 @@ location6:
.word bar_inside1_lzsa ; background
.word bar_inside1_adjust_destination ; destination
.word bar_inside1_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word bar_inside1_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 7 ; num areas
@ -261,7 +261,7 @@ location8:
.word church_lzsa ; background
.word church_adjust_destination ; destination
.word church_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word church_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 1 ; num areas
@ -275,7 +275,7 @@ location9:
.word mansion_path_lzsa ; background
.word mansion_path_adjust_destination ; destination
.word mansion_path_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word mansion_path_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 1 ; num areas
@ -289,7 +289,7 @@ location10:
.word mansion_lzsa ; background
.word mansion_adjust_destination ; destination
.word mansion_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word mansion_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 1 ; num areas
@ -298,12 +298,13 @@ location10:
.word door_string ; name
.word door_action-1 ; action
; MONKEY_ZIPLINE -- hook's zipline
location11:
.word zipline_lzsa ; background
.word zipline_adjust_destination ; destination
.word zipline_check_exit ; exit
.word lookout_check_bounds ; bounds check
.word zipline_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 3 ; num areas
@ -322,6 +323,34 @@ location11:
.word sign_string ; name
.word sign_action-1 ; action
; MONKEY_VOODOO1 -- voodoo shop
location12:
.word voodoo1_lzsa ; background
.word voodoo1_adjust_destination ; destination
.word voodoo1_check_exit ; exit
.word voodoo1_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 1 ; num areas
.byte 30,36 ; x
.byte 10,36 ; y
.word pole_string ; name
.word pole_action-1 ; action
; MONKEY_VOODOO2 -- voodoo lady
location13:
.word voodoo2_lzsa ; background
.word voodoo2_adjust_destination ; destination
.word voodoo2_check_exit ; exit
.word voodoo2_check_bounds ; bounds check
.byte GUYBRUSH_BIG ; size
.byte 1 ; num areas
.byte 30,36 ; x
.byte 10,36 ; y
.word pole_string ; name
.word pole_action-1 ; action
; common strings
door_string: .byte 20,20,"DOOR",0

View File

@ -50,8 +50,8 @@ monkey_start:
; set up initial location
; lda #MONKEY_BAR_INSIDE2
lda #MONKEY_LOOKOUT
lda #MONKEY_BAR
; lda #MONKEY_LOOKOUT
sta LOCATION
jsr change_location
@ -344,6 +344,13 @@ really_exit:
.include "monkey_mansion_path.s"
.include "monkey_bar_inside1.s"
.include "monkey_bar_inside2.s"
.include "monkey_voodoo1.s"
.include "monkey_voodoo2.s"
; cutscenes
.include "chapter1.s"
.include "cutscene_lechuck.s"
.include "monkey_actions.s"
.include "update_bottom.s"

View File

@ -50,14 +50,14 @@ bar_inside1_no_exit:
;=================================
;=================================
bar_inside1_adjust_destination:
; just make Y always 20
; just make Y always 22
mb1_check_y:
; if x < 28, Y must be between 16 and 18
; if x < 35, Y must be between 8 and 28
mb1_y_too_small:
lda #20
lda #24
sta DESTINATION_Y
done_mb1_adjust:
@ -110,3 +110,5 @@ bar1_dog_action:
rts
bar_inside1_check_bounds:
rts

View File

@ -1,6 +1,6 @@
; stuff regarding 2nd room of scumm bar
; if x<4 goto MONKEY_BAR_INSIDE1 at 34,20
; if x<4 goto MONKEY_BAR_INSIDE1 at 34,24
bar_inside2_check_exit:
@ -22,7 +22,7 @@ bar_inside2_to_bar_inside1:
lda #34
sta GUYBRUSH_X
sta DESTINATION_X
lda #20
lda #24
sta GUYBRUSH_Y
sta DESTINATION_Y
jsr change_location

View File

@ -82,3 +82,5 @@ done_ch_adjust:
;house_sprite:
church_check_bounds:
rts

View File

@ -75,3 +75,5 @@ done_dk_adjust:
;house_sprite:
dock_check_bounds:
rts

View File

@ -66,3 +66,5 @@ done_mn_adjust:
;house_sprite:
mansion_check_bounds:
rts

View File

@ -82,3 +82,5 @@ done_mh_adjust:
;house_sprite:
mansion_path_check_bounds:
rts

View File

@ -133,3 +133,5 @@ done_mp_adjust:
;done_draw_map_door:
; rts
map_check_bounds:
rts

View File

@ -97,3 +97,5 @@ house_sprite:
.byte $77,$AA,$77,$AA,$77,$AA,$AA,$AA
poster_check_bounds:
rts

87
monkey/monkey_voodoo1.s Normal file
View File

@ -0,0 +1,87 @@
; 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 #10
sta GUYBRUSH_X
sta DESTINATION_X
lda #20
sta GUYBRUSH_Y
sta DESTINATION_Y
jsr change_location
jmp voodoo1_no_exit
voodoo1_to_town:
lda #MONKEY_TOWN
sta LOCATION
lda #10
sta GUYBRUSH_X
sta DESTINATION_X
lda #20
sta GUYBRUSH_Y
sta DESTINATION_Y
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
;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:
voodoo1_check_bounds:
rts

70
monkey/monkey_voodoo2.s Normal file
View File

@ -0,0 +1,70 @@
; voodoo lady
; if x<10 goto MONKEY_VOODOO1
voodoo2_check_exit:
lda GUYBRUSH_X
cmp #10
bcc voodoo2_to_voodoo1
bcs voodoo2_no_exit
voodoo2_to_voodoo1:
lda #MONKEY_VOODOO1
sta LOCATION
lda #30
sta GUYBRUSH_X
sta DESTINATION_X
lda #20
sta GUYBRUSH_Y
sta DESTINATION_Y
jsr change_location
jmp voodoo2_no_exit
voodoo2_no_exit:
rts
;==========================
;==========================
; voodoo2 adjust destination
;==========================
;==========================
voodoo2_adjust_destination:
; just make Y always 20
v2_check_y:
; if x < 28, Y must be between 16 and 18
; if x < 35, Y must be between 8 and 28
v2_y_too_small:
lda #20
sta DESTINATION_Y
done_v2_adjust:
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:
voodoo2_check_bounds:
rts

View File

@ -187,3 +187,7 @@ pole_actions:
pole_look: .byte 6,21,"IT'S JUST LIKE THE OTHER ONE",0
zipline_check_bounds:
rts