mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-26 00:29:29 +00:00
monkey: can be tiny, hooked up a few more rooms
This commit is contained in:
parent
17114b6ae7
commit
5efac55d7b
12
monkey/TODO
12
monkey/TODO
|
@ -1,20 +1,24 @@
|
||||||
overall:
|
overall:
|
||||||
+ have big/small/tiny guybrush
|
|
||||||
+ better bounds checking on paths
|
+ better bounds checking on paths
|
||||||
|
|
||||||
hook up actions:
|
hook up actions:
|
||||||
+ scumm bar1
|
+ scumm bar1
|
||||||
|
|
||||||
|
foreground:
|
||||||
|
+ church
|
||||||
|
+ voodoo chicken
|
||||||
|
+ bar1
|
||||||
|
|
||||||
animations:
|
animations:
|
||||||
+ fire in scumm bar
|
+ fire in scumm bar
|
||||||
+ impt pirate drinking
|
+ impt pirate drinking
|
||||||
+ guy on chandelier
|
+ guy on chandelier
|
||||||
+ dog?
|
+ dog?
|
||||||
|
+ poodle dogs
|
||||||
|
+ voodoo smoke
|
||||||
|
|
||||||
hookup rooms:
|
hookup rooms:
|
||||||
+ church
|
+ voodoo shop
|
||||||
+ path to mansion
|
|
||||||
+ mansion
|
|
||||||
+ voodoo lady
|
+ voodoo lady
|
||||||
|
|
||||||
cutscenes:
|
cutscenes:
|
||||||
|
|
|
@ -84,6 +84,10 @@ guybrush_left2_sprite:
|
||||||
.byte $f0,$ff,$AA
|
.byte $f0,$ff,$AA
|
||||||
.byte $0f,$A0,$AA
|
.byte $0f,$A0,$AA
|
||||||
|
|
||||||
|
guybrush_medium_sprite:
|
||||||
|
.byte 1,2
|
||||||
|
.byte $fd
|
||||||
|
.byte $0f
|
||||||
|
|
||||||
guybrush_map_sprite:
|
guybrush_map_sprite:
|
||||||
.byte 1,1
|
.byte 1,1
|
||||||
|
|
|
@ -493,7 +493,6 @@ change_location:
|
||||||
lda (LOCATION_STRUCT_L),Y
|
lda (LOCATION_STRUCT_L),Y
|
||||||
sta keep_in_bounds_smc+2
|
sta keep_in_bounds_smc+2
|
||||||
|
|
||||||
|
|
||||||
ldy #LOCATION_SIZE
|
ldy #LOCATION_SIZE
|
||||||
lda (LOCATION_STRUCT_L),Y
|
lda (LOCATION_STRUCT_L),Y
|
||||||
sta GUYBRUSH_SIZE
|
sta GUYBRUSH_SIZE
|
||||||
|
|
|
@ -262,13 +262,29 @@ location8:
|
||||||
.word church_adjust_destination ; destination
|
.word church_adjust_destination ; destination
|
||||||
.word church_check_exit ; exit
|
.word church_check_exit ; exit
|
||||||
.word church_check_bounds ; bounds check
|
.word church_check_bounds ; bounds check
|
||||||
.byte GUYBRUSH_BIG ; size
|
.byte GUYBRUSH_SMALL ; size
|
||||||
.byte 1 ; num areas
|
.byte 4 ; num areas
|
||||||
|
|
||||||
.byte 9,14 ; x
|
.byte 6,10 ; x
|
||||||
.byte 20,32 ; y
|
.byte 20,28 ; y
|
||||||
.word door_string ; name
|
.word door_string ; name
|
||||||
.word door_action-1 ; action
|
.word church_door_action-1 ; action
|
||||||
|
|
||||||
|
.byte 14,18 ; x
|
||||||
|
.byte 20,30 ; y
|
||||||
|
.word alley_string ; name
|
||||||
|
.word alley_action-1 ; action
|
||||||
|
|
||||||
|
.byte 22,25 ; x
|
||||||
|
.byte 26,34 ; y
|
||||||
|
.word door_string ; name
|
||||||
|
.word church_door_action-1 ; action
|
||||||
|
|
||||||
|
.byte 34,38 ; x
|
||||||
|
.byte 16,34 ; y
|
||||||
|
.word archway_string ; name
|
||||||
|
.word archway_action-1 ; action
|
||||||
|
|
||||||
|
|
||||||
; MONKEY_MANSION_PATH -- path to the mansion
|
; MONKEY_MANSION_PATH -- path to the mansion
|
||||||
location9:
|
location9:
|
||||||
|
@ -276,13 +292,24 @@ location9:
|
||||||
.word mansion_path_adjust_destination ; destination
|
.word mansion_path_adjust_destination ; destination
|
||||||
.word mansion_path_check_exit ; exit
|
.word mansion_path_check_exit ; exit
|
||||||
.word mansion_path_check_bounds ; bounds check
|
.word mansion_path_check_bounds ; bounds check
|
||||||
.byte GUYBRUSH_BIG ; size
|
.byte GUYBRUSH_SMALL ; size
|
||||||
.byte 1 ; num areas
|
.byte 3 ; num areas
|
||||||
|
|
||||||
|
.byte 0,11 ; x
|
||||||
|
.byte 0,12 ; y
|
||||||
|
.word mansion_string ; name
|
||||||
|
.word mansion_action-1 ; action
|
||||||
|
|
||||||
|
.byte 9,11 ; x
|
||||||
|
.byte 12,13 ; y
|
||||||
|
.word poodles_string ; name
|
||||||
|
.word poodles_action-1 ; action
|
||||||
|
|
||||||
|
.byte 32,40 ; x
|
||||||
|
.byte 12,40 ; y
|
||||||
|
.word town_string ; name
|
||||||
|
.word town_action-1 ; action
|
||||||
|
|
||||||
.byte 9,14 ; x
|
|
||||||
.byte 20,32 ; y
|
|
||||||
.word door_string ; name
|
|
||||||
.word door_action-1 ; action
|
|
||||||
|
|
||||||
; MONKEY_MANSION -- governor's mansion
|
; MONKEY_MANSION -- governor's mansion
|
||||||
location10:
|
location10:
|
||||||
|
@ -291,12 +318,17 @@ location10:
|
||||||
.word mansion_check_exit ; exit
|
.word mansion_check_exit ; exit
|
||||||
.word mansion_check_bounds ; bounds check
|
.word mansion_check_bounds ; bounds check
|
||||||
.byte GUYBRUSH_BIG ; size
|
.byte GUYBRUSH_BIG ; size
|
||||||
.byte 1 ; num areas
|
.byte 2 ; num areas
|
||||||
|
|
||||||
.byte 9,14 ; x
|
.byte 37,40 ; x
|
||||||
.byte 20,32 ; y
|
.byte 10,38 ; y
|
||||||
.word door_string ; name
|
.word trail_string ; name
|
||||||
.word door_action-1 ; action
|
.word trail_action-1 ; action
|
||||||
|
|
||||||
|
.byte 5,15 ; x
|
||||||
|
.byte 30,38 ; y
|
||||||
|
.word poodles_string ; name
|
||||||
|
.word poodles_action-1 ; action
|
||||||
|
|
||||||
|
|
||||||
; MONKEY_ZIPLINE -- hook's zipline
|
; MONKEY_ZIPLINE -- hook's zipline
|
||||||
|
@ -357,6 +389,17 @@ door_string: .byte 20,20,"DOOR",0
|
||||||
pirate_string: .byte 20,20,"PIRATE",0
|
pirate_string: .byte 20,20,"PIRATE",0
|
||||||
pirates_string: .byte 20,20,"PIRATES",0
|
pirates_string: .byte 20,20,"PIRATES",0
|
||||||
|
|
||||||
|
; church strings
|
||||||
|
alley_string: .byte 20,20,"ALLEY",0
|
||||||
|
|
||||||
|
; mansion path strings
|
||||||
|
mansion_string: .byte 20,20,"GOVERNOR'S MANSION",0
|
||||||
|
town_string: .byte 20,20,"TOWN",0
|
||||||
|
|
||||||
|
; mansion strings
|
||||||
|
poodles_string: .byte 20,20,"PIRANHA POODLES",0
|
||||||
|
trail_string: .byte 20,20,"TRAIL",0
|
||||||
|
|
||||||
; zipline strings
|
; zipline strings
|
||||||
pole_string: .byte 20,20,"POLE",0
|
pole_string: .byte 20,20,"POLE",0
|
||||||
cable_string: .byte 20,20,"CABLE",0
|
cable_string: .byte 20,20,"CABLE",0
|
||||||
|
|
|
@ -50,8 +50,9 @@ monkey_start:
|
||||||
|
|
||||||
; set up initial location
|
; set up initial location
|
||||||
|
|
||||||
lda #MONKEY_BAR
|
; lda #MONKEY_BAR
|
||||||
; lda #MONKEY_LOOKOUT
|
; lda #MONKEY_LOOKOUT
|
||||||
|
lda #MONKEY_VOODOO1
|
||||||
sta LOCATION
|
sta LOCATION
|
||||||
|
|
||||||
jsr change_location
|
jsr change_location
|
||||||
|
@ -182,14 +183,24 @@ done_move_guybrush:
|
||||||
lda GUYBRUSH_Y
|
lda GUYBRUSH_Y
|
||||||
sta YPOS
|
sta YPOS
|
||||||
|
|
||||||
lda LOCATION
|
lda GUYBRUSH_SIZE
|
||||||
cmp #MONKEY_MAP
|
cmp #GUYBRUSH_BIG
|
||||||
bne big_guybrush
|
beq big_guybrush
|
||||||
|
|
||||||
|
lda GUYBRUSH_SIZE
|
||||||
|
cmp #GUYBRUSH_TINY
|
||||||
|
beq map_guybrush
|
||||||
|
|
||||||
|
small_guybrush:
|
||||||
|
lda #<guybrush_medium_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>guybrush_medium_sprite
|
||||||
|
jmp really_draw_guybrush
|
||||||
|
|
||||||
map_guybrush:
|
map_guybrush:
|
||||||
lda #<guybrush_map_sprite
|
lda #<guybrush_map_sprite
|
||||||
sta INL
|
sta INL
|
||||||
lda #>guybrush_map_sprite
|
lda #>guybrush_map_sprite
|
||||||
sta INH
|
|
||||||
jmp really_draw_guybrush
|
jmp really_draw_guybrush
|
||||||
|
|
||||||
big_guybrush:
|
big_guybrush:
|
||||||
|
@ -204,8 +215,9 @@ big_guybrush:
|
||||||
lda guybrush_sprites,Y
|
lda guybrush_sprites,Y
|
||||||
sta INL
|
sta INL
|
||||||
lda guybrush_sprites+1,Y
|
lda guybrush_sprites+1,Y
|
||||||
sta INH
|
|
||||||
really_draw_guybrush:
|
really_draw_guybrush:
|
||||||
|
sta INH
|
||||||
jsr put_sprite_crop
|
jsr put_sprite_crop
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,10 @@ church_check_exit:
|
||||||
church_to_mansion_path:
|
church_to_mansion_path:
|
||||||
lda #MONKEY_MANSION_PATH
|
lda #MONKEY_MANSION_PATH
|
||||||
sta LOCATION
|
sta LOCATION
|
||||||
lda #34
|
lda #26
|
||||||
sta GUYBRUSH_X
|
sta GUYBRUSH_X
|
||||||
sta DESTINATION_X
|
sta DESTINATION_X
|
||||||
lda #20
|
lda #24
|
||||||
sta GUYBRUSH_Y
|
sta GUYBRUSH_Y
|
||||||
sta DESTINATION_Y
|
sta DESTINATION_Y
|
||||||
jsr change_location
|
jsr change_location
|
||||||
|
@ -48,14 +48,14 @@ church_no_exit:
|
||||||
;==========================
|
;==========================
|
||||||
;==========================
|
;==========================
|
||||||
church_adjust_destination:
|
church_adjust_destination:
|
||||||
; just make Y always 20
|
; just make Y always 32
|
||||||
|
|
||||||
ch_check_y:
|
ch_check_y:
|
||||||
; if x < 28, Y must be between 16 and 18
|
; if x < 28, Y must be between 16 and 18
|
||||||
; if x < 35, Y must be between 8 and 28
|
; if x < 35, Y must be between 8 and 28
|
||||||
|
|
||||||
ch_y_too_small:
|
ch_y_too_small:
|
||||||
lda #20
|
lda #32
|
||||||
sta DESTINATION_Y
|
sta DESTINATION_Y
|
||||||
|
|
||||||
done_ch_adjust:
|
done_ch_adjust:
|
||||||
|
@ -84,3 +84,22 @@ done_ch_adjust:
|
||||||
|
|
||||||
church_check_bounds:
|
church_check_bounds:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
alley_action:
|
||||||
|
alley_nothing:
|
||||||
|
lda #VERB_WALK
|
||||||
|
sta CURRENT_VERB
|
||||||
|
rts
|
||||||
|
|
||||||
|
church_door_action:
|
||||||
|
church_door_nothing:
|
||||||
|
lda #VERB_WALK
|
||||||
|
sta CURRENT_VERB
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,10 @@ mansion_check_exit:
|
||||||
mansion_to_mansion_path:
|
mansion_to_mansion_path:
|
||||||
lda #MONKEY_MANSION_PATH
|
lda #MONKEY_MANSION_PATH
|
||||||
sta LOCATION
|
sta LOCATION
|
||||||
lda #5
|
lda #11
|
||||||
sta GUYBRUSH_X
|
sta GUYBRUSH_X
|
||||||
sta DESTINATION_X
|
sta DESTINATION_X
|
||||||
lda #20
|
lda #10
|
||||||
sta GUYBRUSH_Y
|
sta GUYBRUSH_Y
|
||||||
sta DESTINATION_Y
|
sta DESTINATION_Y
|
||||||
jsr change_location
|
jsr change_location
|
||||||
|
@ -26,28 +26,24 @@ mansion_no_exit:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;==========================
|
;============================
|
||||||
;==========================
|
;============================
|
||||||
; mansion adjust destination
|
; mansion adjust destination
|
||||||
;==========================
|
;============================
|
||||||
;==========================
|
;============================
|
||||||
mansion_adjust_destination:
|
mansion_adjust_destination:
|
||||||
; just make Y always 20
|
; just make Y always 24
|
||||||
|
|
||||||
mn_check_y:
|
mn_check_y:
|
||||||
; if x < 28, Y must be between 16 and 18
|
|
||||||
; if x < 35, Y must be between 8 and 28
|
|
||||||
|
|
||||||
mn_y_too_small:
|
mn_y_too_small:
|
||||||
lda #20
|
lda #24
|
||||||
sta DESTINATION_Y
|
sta DESTINATION_Y
|
||||||
|
|
||||||
done_mn_adjust:
|
done_mn_adjust:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;draw_house:
|
;draw_house:
|
||||||
|
|
||||||
; lda #<wall_sprite
|
; lda #<wall_sprite
|
||||||
|
@ -66,5 +62,73 @@ done_mn_adjust:
|
||||||
|
|
||||||
;house_sprite:
|
;house_sprite:
|
||||||
|
|
||||||
|
; can't be too far left (poodles)
|
||||||
mansion_check_bounds:
|
mansion_check_bounds:
|
||||||
|
|
||||||
|
lda GUYBRUSH_X
|
||||||
|
cmp #20
|
||||||
|
bcs done_mansion_check_bounds
|
||||||
|
|
||||||
|
lda #20
|
||||||
|
sta GUYBRUSH_X
|
||||||
|
sta DESTINATION_X
|
||||||
|
|
||||||
|
lda #<near_them
|
||||||
|
sta MESSAGE_L
|
||||||
|
lda #>near_them
|
||||||
|
sta MESSAGE_H
|
||||||
|
|
||||||
|
jmp do_display_message
|
||||||
|
|
||||||
|
|
||||||
|
done_mansion_check_bounds:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
trail_action:
|
||||||
|
trail_nothing:
|
||||||
|
lda #VERB_WALK
|
||||||
|
sta CURRENT_VERB
|
||||||
|
rts
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
poodles_action:
|
||||||
|
lda CURRENT_VERB
|
||||||
|
asl
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda poodles_actions,Y
|
||||||
|
cmp #$ff
|
||||||
|
beq poodles_nothing
|
||||||
|
|
||||||
|
sta MESSAGE_L
|
||||||
|
lda poodles_actions+1,Y
|
||||||
|
sta MESSAGE_H
|
||||||
|
|
||||||
|
jmp do_display_message
|
||||||
|
|
||||||
|
poodles_nothing:
|
||||||
|
lda #VERB_WALK
|
||||||
|
sta CURRENT_VERB
|
||||||
|
rts
|
||||||
|
|
||||||
|
poodles_actions:
|
||||||
|
.word $FFFF ; give
|
||||||
|
.word doesnt_open ; open
|
||||||
|
.word doesnt_work ; close
|
||||||
|
.word cant_pick_up ; pick_up
|
||||||
|
.word poodles_look ; look_at
|
||||||
|
.word poodles_talk ; talk_to
|
||||||
|
.word for_what ; use
|
||||||
|
.word icant_move ; push
|
||||||
|
.word icant_move ; pull
|
||||||
|
|
||||||
|
poodles_look:
|
||||||
|
.byte 3,21,"I DON'T THINK I CAN GET PAST THEM",0
|
||||||
|
|
||||||
|
poodles_talk:
|
||||||
|
.byte 18,21,"WOOF",0
|
||||||
|
|
||||||
|
near_them:
|
||||||
|
.byte 8,21,"I'M NOT GOING NEAR THEM",0
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
|
|
||||||
; if x<4 goto MONKEY_MANSION
|
; if x<4 goto MONKEY_MANSION
|
||||||
; if x>35 goto MONKEY_CHURCH
|
; if x>29 goto MONKEY_CHURCH
|
||||||
|
|
||||||
mansion_path_check_exit:
|
mansion_path_check_exit:
|
||||||
|
|
||||||
lda GUYBRUSH_X
|
lda GUYBRUSH_X
|
||||||
cmp #4
|
cmp #10
|
||||||
bcc mansion_path_to_mansion
|
bcc mansion_path_to_mansion
|
||||||
cmp #35
|
cmp #29
|
||||||
bcs mansion_path_to_church
|
bcs mansion_path_to_church
|
||||||
bcc mansion_path_no_exit
|
bcc mansion_path_no_exit
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ mansion_path_to_church:
|
||||||
lda #5
|
lda #5
|
||||||
sta GUYBRUSH_X
|
sta GUYBRUSH_X
|
||||||
sta DESTINATION_X
|
sta DESTINATION_X
|
||||||
lda #20
|
lda #32
|
||||||
sta GUYBRUSH_Y
|
sta GUYBRUSH_Y
|
||||||
sta DESTINATION_Y
|
sta DESTINATION_Y
|
||||||
jsr change_location
|
jsr change_location
|
||||||
|
@ -55,7 +55,7 @@ mh_check_y:
|
||||||
; if x < 35, Y must be between 8 and 28
|
; if x < 35, Y must be between 8 and 28
|
||||||
|
|
||||||
mh_y_too_small:
|
mh_y_too_small:
|
||||||
lda #20
|
lda GUYBRUSH_Y
|
||||||
sta DESTINATION_Y
|
sta DESTINATION_Y
|
||||||
|
|
||||||
done_mh_adjust:
|
done_mh_adjust:
|
||||||
|
@ -82,5 +82,91 @@ done_mh_adjust:
|
||||||
|
|
||||||
;house_sprite:
|
;house_sprite:
|
||||||
|
|
||||||
|
;=========================
|
||||||
mansion_path_check_bounds:
|
mansion_path_check_bounds:
|
||||||
|
;=========================
|
||||||
|
|
||||||
|
; 11 < x < 12, Y=10
|
||||||
|
; 12 < x < 13, Y=12
|
||||||
|
; 13 < x < 17, Y=14
|
||||||
|
; x==17 Y=18
|
||||||
|
; x==18 Y=20
|
||||||
|
; x==19 Y=22
|
||||||
|
; else Y=24
|
||||||
|
|
||||||
|
|
||||||
|
lda GUYBRUSH_X
|
||||||
|
cmp #13
|
||||||
|
bcc mp_set_12
|
||||||
|
cmp #17
|
||||||
|
bcc mp_set_14
|
||||||
|
beq mp_set_18
|
||||||
|
cmp #18
|
||||||
|
beq mp_set_20
|
||||||
|
cmp #19
|
||||||
|
beq mp_set_22
|
||||||
|
|
||||||
|
lda #24
|
||||||
|
bcs done_mansion_path_check_bounds
|
||||||
|
|
||||||
|
mp_set_12:
|
||||||
|
lda #12
|
||||||
|
bne done_mansion_path_check_bounds
|
||||||
|
mp_set_14:
|
||||||
|
lda #14
|
||||||
|
bne done_mansion_path_check_bounds
|
||||||
|
mp_set_18:
|
||||||
|
lda #18
|
||||||
|
bne done_mansion_path_check_bounds
|
||||||
|
mp_set_20:
|
||||||
|
lda #20
|
||||||
|
bne done_mansion_path_check_bounds
|
||||||
|
mp_set_22:
|
||||||
|
lda #22
|
||||||
|
bne done_mansion_path_check_bounds
|
||||||
|
|
||||||
|
done_mansion_path_check_bounds:
|
||||||
|
sta GUYBRUSH_Y
|
||||||
|
sta DESTINATION_Y
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
town_action:
|
||||||
|
town_nothing:
|
||||||
|
lda #VERB_WALK
|
||||||
|
sta CURRENT_VERB
|
||||||
|
rts
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
mansion_action:
|
||||||
|
lda CURRENT_VERB
|
||||||
|
asl
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda mansion_actions,Y
|
||||||
|
cmp #$ff
|
||||||
|
beq mansion_nothing
|
||||||
|
|
||||||
|
sta MESSAGE_L
|
||||||
|
lda mansion_actions+1,Y
|
||||||
|
sta MESSAGE_H
|
||||||
|
|
||||||
|
jmp do_display_message
|
||||||
|
|
||||||
|
mansion_nothing:
|
||||||
|
lda #VERB_WALK
|
||||||
|
sta CURRENT_VERB
|
||||||
|
rts
|
||||||
|
|
||||||
|
mansion_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
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ town_to_church:
|
||||||
lda #34
|
lda #34
|
||||||
sta GUYBRUSH_X
|
sta GUYBRUSH_X
|
||||||
sta DESTINATION_X
|
sta DESTINATION_X
|
||||||
lda #20
|
lda #30
|
||||||
sta GUYBRUSH_Y
|
sta GUYBRUSH_Y
|
||||||
sta DESTINATION_Y
|
sta DESTINATION_Y
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user