mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-21 22:29:12 +00:00
monkey: add a few more locations
This commit is contained in:
parent
02e9de030e
commit
17114b6ae7
@ -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
5
monkey/chapter1.s
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
;
|
||||
|
||||
chapter1_transition:
|
||||
rts
|
@ -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
15
monkey/cutscene_lechuck.s
Normal 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
|
@ -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) $< $@
|
||||
|
BIN
monkey/graphics/lechuck_cabin.png
Normal file
BIN
monkey/graphics/lechuck_cabin.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
BIN
monkey/graphics/lechuck_ship.png
Normal file
BIN
monkey/graphics/lechuck_ship.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
monkey/graphics/part1.png
Normal file
BIN
monkey/graphics/part1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 752 B |
BIN
monkey/graphics/voodoo1.png
Normal file
BIN
monkey/graphics/voodoo1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
BIN
monkey/graphics/voodoo2.png
Normal file
BIN
monkey/graphics/voodoo2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 991 B |
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -82,3 +82,5 @@ done_ch_adjust:
|
||||
|
||||
;house_sprite:
|
||||
|
||||
church_check_bounds:
|
||||
rts
|
||||
|
@ -75,3 +75,5 @@ done_dk_adjust:
|
||||
|
||||
;house_sprite:
|
||||
|
||||
dock_check_bounds:
|
||||
rts
|
||||
|
@ -66,3 +66,5 @@ done_mn_adjust:
|
||||
|
||||
;house_sprite:
|
||||
|
||||
mansion_check_bounds:
|
||||
rts
|
||||
|
@ -82,3 +82,5 @@ done_mh_adjust:
|
||||
|
||||
;house_sprite:
|
||||
|
||||
mansion_path_check_bounds:
|
||||
rts
|
||||
|
@ -133,3 +133,5 @@ done_mp_adjust:
|
||||
;done_draw_map_door:
|
||||
; rts
|
||||
|
||||
map_check_bounds:
|
||||
rts
|
||||
|
@ -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
87
monkey/monkey_voodoo1.s
Normal 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
70
monkey/monkey_voodoo2.s
Normal 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
|
@ -187,3 +187,7 @@ pole_actions:
|
||||
|
||||
|
||||
pole_look: .byte 6,21,"IT'S JUST LIKE THE OTHER ONE",0
|
||||
|
||||
|
||||
zipline_check_bounds:
|
||||
rts
|
||||
|
Loading…
x
Reference in New Issue
Block a user