mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-05 21:34:30 +00:00
monkey: can pick up items
though only two at this point and you can't do anything with them
This commit is contained in:
parent
09dc8de953
commit
05d4e4bd50
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 17 KiB |
Binary file not shown.
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 14 KiB |
@ -1,5 +1,5 @@
|
|||||||
5 HOME
|
5 HOME
|
||||||
10 PRINT "LOADING MONKEY V0.04"
|
10 PRINT "LOADING MONKEY V0.05"
|
||||||
20 PRINT:PRINT
|
20 PRINT:PRINT
|
||||||
40 PRINT "CONTROLS: "
|
40 PRINT "CONTROLS: "
|
||||||
42 PRINT " MOVE CURSOR : ARROWS OR WASD"
|
42 PRINT " MOVE CURSOR : ARROWS OR WASD"
|
||||||
|
@ -414,16 +414,15 @@ location12:
|
|||||||
.word chalice_string ; name
|
.word chalice_string ; name
|
||||||
.word chalice_action-1 ; action
|
.word chalice_action-1 ; action
|
||||||
|
|
||||||
.byte 31,33 ; x
|
|
||||||
.byte 30,36 ; y
|
|
||||||
.word chicken_string ; name
|
|
||||||
.word chicken_pulley_action-1 ; action
|
|
||||||
|
|
||||||
.byte 29,39 ; x
|
.byte 29,39 ; x
|
||||||
.byte 36,40 ; y
|
.byte 36,40 ; y
|
||||||
.word trunk_string ; name
|
.word trunk_string ; name
|
||||||
.word trunk_action-1 ; action
|
.word trunk_action-1 ; action
|
||||||
|
|
||||||
|
.byte 31,33 ; x
|
||||||
|
.byte 30,36 ; y
|
||||||
|
.word chicken_string ; name
|
||||||
|
.word chicken_pulley_action-1 ; action
|
||||||
|
|
||||||
; MONKEY_VOODOO2 -- voodoo lady
|
; MONKEY_VOODOO2 -- voodoo lady
|
||||||
location13:
|
location13:
|
||||||
@ -503,6 +502,8 @@ bones_string: .byte "BONES",0
|
|||||||
chalice_string: .byte "CHALICE",0
|
chalice_string: .byte "CHALICE",0
|
||||||
trunk_string: .byte "TRUNK",0
|
trunk_string: .byte "TRUNK",0
|
||||||
voodoo_knicknacks_string:.byte "VOODOO KNICKNACKS",0
|
voodoo_knicknacks_string:.byte "VOODOO KNICKNACKS",0
|
||||||
|
chicken_pulley_string: .byte "CHICKEN PULLEY",0
|
||||||
|
null_string: .byte "NULL",0
|
||||||
|
|
||||||
; voodoo2 strings
|
; voodoo2 strings
|
||||||
voodoo_lady_string: .byte "VOODOO LADY",0
|
voodoo_lady_string: .byte "VOODOO LADY",0
|
||||||
|
@ -42,6 +42,15 @@ monkey_start:
|
|||||||
sta DISPLAY_MESSAGE
|
sta DISPLAY_MESSAGE
|
||||||
sta BAR_DOOR_OPEN
|
sta BAR_DOOR_OPEN
|
||||||
sta VALID_NOUN
|
sta VALID_NOUN
|
||||||
|
sta ITEMS_PICKED_UP
|
||||||
|
sta INVENTORY_NEXT_SLOT
|
||||||
|
sta INVENTORY
|
||||||
|
sta INVENTORY2
|
||||||
|
sta INVENTORY3
|
||||||
|
sta INVENTORY4
|
||||||
|
sta INVENTORY5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; init cursor
|
; init cursor
|
||||||
|
|
||||||
@ -51,8 +60,8 @@ 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
|
; lda #MONKEY_VOODOO1
|
||||||
sta LOCATION
|
sta LOCATION
|
||||||
|
|
||||||
@ -100,6 +109,8 @@ game_loop:
|
|||||||
beq do_draw_sign
|
beq do_draw_sign
|
||||||
cmp #MONKEY_VOODOO2
|
cmp #MONKEY_VOODOO2
|
||||||
beq do_draw_smoke
|
beq do_draw_smoke
|
||||||
|
cmp #MONKEY_BAR_INSIDE3
|
||||||
|
beq do_draw_meat
|
||||||
|
|
||||||
jmp nothing_special
|
jmp nothing_special
|
||||||
|
|
||||||
@ -119,6 +130,10 @@ do_draw_smoke:
|
|||||||
jsr draw_smoke
|
jsr draw_smoke
|
||||||
jmp nothing_special
|
jmp nothing_special
|
||||||
|
|
||||||
|
do_draw_meat:
|
||||||
|
jsr draw_meat
|
||||||
|
jmp nothing_special
|
||||||
|
|
||||||
nothing_special:
|
nothing_special:
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,23 +64,35 @@ bar_inside3_check_bounds:
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;draw_house:
|
|
||||||
|
|
||||||
; lda #<wall_sprite
|
;================================
|
||||||
; sta INL
|
;================================
|
||||||
; lda #>wall_sprite
|
; draw meat
|
||||||
; sta INH
|
;================================
|
||||||
|
;================================
|
||||||
|
draw_meat:
|
||||||
|
lda ITEMS_PICKED_UP
|
||||||
|
and #IPU_ITEM_MEAT
|
||||||
|
bne done_draw_meat
|
||||||
|
|
||||||
; lda #18
|
lda #<meat_sprite
|
||||||
; sta XPOS
|
sta INL
|
||||||
; lda #22
|
lda #>meat_sprite
|
||||||
; sta YPOS
|
sta INH
|
||||||
|
|
||||||
; jsr put_sprite_crop
|
lda #9
|
||||||
|
sta XPOS
|
||||||
|
lda #26
|
||||||
|
sta YPOS
|
||||||
|
|
||||||
; rts
|
jsr put_sprite_crop
|
||||||
|
done_draw_meat:
|
||||||
|
rts
|
||||||
|
|
||||||
;house_sprite:
|
meat_sprite:
|
||||||
|
.byte 3,2
|
||||||
|
.byte $3A,$8A,$AA
|
||||||
|
.byte $A3,$A8,$Af
|
||||||
|
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
@ -172,6 +184,31 @@ table_actions:
|
|||||||
;=============================
|
;=============================
|
||||||
meat_action:
|
meat_action:
|
||||||
lda CURRENT_VERB
|
lda CURRENT_VERB
|
||||||
|
cmp #VERB_PICK_UP
|
||||||
|
bne meat_not_pickup
|
||||||
|
|
||||||
|
; pick up the meat
|
||||||
|
lda ITEMS_PICKED_UP
|
||||||
|
ora #IPU_ITEM_MEAT
|
||||||
|
sta ITEMS_PICKED_UP
|
||||||
|
|
||||||
|
; add to inventory
|
||||||
|
lda #INV_ITEM_MEAT
|
||||||
|
ldx INVENTORY_NEXT_SLOT
|
||||||
|
sta INVENTORY,X
|
||||||
|
inc INVENTORY_NEXT_SLOT
|
||||||
|
|
||||||
|
; decrement object count in room
|
||||||
|
|
||||||
|
ldy #LOCATION_NUM_AREAS
|
||||||
|
lda location14,Y
|
||||||
|
sec
|
||||||
|
sbc #1
|
||||||
|
sta location14,Y
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
meat_not_pickup:
|
||||||
asl
|
asl
|
||||||
tay
|
tay
|
||||||
|
|
||||||
|
@ -90,14 +90,37 @@ voodoo1_draw_foreground:
|
|||||||
sta XPOS
|
sta XPOS
|
||||||
lda #30
|
lda #30
|
||||||
sta YPOS
|
sta YPOS
|
||||||
jmp put_sprite_crop
|
jsr put_sprite_crop
|
||||||
|
|
||||||
|
lda ITEMS_PICKED_UP
|
||||||
|
and #IPU_ITEM_PULLEY_CHICKEN
|
||||||
|
bne done_voodoo1_draw_foreground
|
||||||
|
|
||||||
|
lda #<chicken_pulley_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>chicken_pulley_sprite
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
lda #30
|
||||||
|
sta XPOS
|
||||||
|
lda #30
|
||||||
|
sta YPOS
|
||||||
|
|
||||||
|
jsr put_sprite_crop
|
||||||
|
|
||||||
|
|
||||||
|
done_voodoo1_draw_foreground:
|
||||||
|
rts
|
||||||
|
|
||||||
voodoo1_fg_sprite:
|
voodoo1_fg_sprite:
|
||||||
.byte 20,2
|
.byte 12,2
|
||||||
.byte $AA,$8A,$88,$88,$8A,$AA,$AA,$AA,$AA,$AA
|
.byte $AA,$8A,$88,$88,$8A,$AA,$AA,$AA,$AA,$AA,$8A,$AA
|
||||||
.byte $8A,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$77,$AA
|
.byte $8A,$08,$08,$80,$80,$88,$8A,$AA,$AA,$08,$08,$08
|
||||||
.byte $8A,$08,$08,$80,$80,$88,$8A,$AA,$AA,$08
|
|
||||||
.byte $08,$08,$AA,$AA,$AA,$AA,$AA,$AA,$87,$57
|
chicken_pulley_sprite:
|
||||||
|
.byte 2,2
|
||||||
|
.byte $77,$AA
|
||||||
|
.byte $87,$57
|
||||||
|
|
||||||
|
|
||||||
;==========================
|
;==========================
|
||||||
@ -431,6 +454,32 @@ trunk_look: .byte 8,21,"PROBABLY HAS A BODY IN IT",0
|
|||||||
;=============================
|
;=============================
|
||||||
chicken_pulley_action:
|
chicken_pulley_action:
|
||||||
lda CURRENT_VERB
|
lda CURRENT_VERB
|
||||||
|
|
||||||
|
cmp #VERB_PICK_UP
|
||||||
|
bne chicken_pulley_not_pickup
|
||||||
|
|
||||||
|
; pick up the chicken_pulley
|
||||||
|
lda ITEMS_PICKED_UP
|
||||||
|
ora #IPU_ITEM_PULLEY_CHICKEN
|
||||||
|
sta ITEMS_PICKED_UP
|
||||||
|
|
||||||
|
; add to inventory
|
||||||
|
lda #INV_ITEM_PULLEY_CHICKEN
|
||||||
|
ldx INVENTORY_NEXT_SLOT
|
||||||
|
sta INVENTORY,X
|
||||||
|
inc INVENTORY_NEXT_SLOT
|
||||||
|
|
||||||
|
; decrement object count in room
|
||||||
|
ldy #LOCATION_NUM_AREAS
|
||||||
|
lda location12,Y
|
||||||
|
sec
|
||||||
|
sbc #1
|
||||||
|
sta location12,Y
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
chicken_pulley_not_pickup:
|
||||||
|
|
||||||
asl
|
asl
|
||||||
tay
|
tay
|
||||||
|
|
||||||
|
@ -104,9 +104,9 @@ no_message:
|
|||||||
no_noun:
|
no_noun:
|
||||||
|
|
||||||
; stick zero at end
|
; stick zero at end
|
||||||
lda #0
|
; lda #0
|
||||||
tay
|
; tay
|
||||||
sta (OUTL),Y
|
; sta (OUTL),Y
|
||||||
|
|
||||||
; center it
|
; center it
|
||||||
lda #<(temp_line+2)
|
lda #<(temp_line+2)
|
||||||
@ -154,13 +154,108 @@ bottom_loop:
|
|||||||
cpx #18
|
cpx #18
|
||||||
bne bottom_loop
|
bne bottom_loop
|
||||||
|
|
||||||
|
;======================================
|
||||||
|
; draw inventory
|
||||||
|
|
||||||
|
; draw /\
|
||||||
|
; draw ::
|
||||||
|
; draw \/
|
||||||
|
|
||||||
|
lda #<inv_up
|
||||||
|
sta OUTL
|
||||||
|
lda #>inv_up
|
||||||
|
sta OUTH
|
||||||
|
jsr move_and_print
|
||||||
|
jsr move_and_print
|
||||||
|
|
||||||
|
jsr normal_text
|
||||||
|
|
||||||
|
jsr move_and_print
|
||||||
|
|
||||||
|
;==============================
|
||||||
|
; print inventory, if any
|
||||||
|
|
||||||
|
lda INVENTORY
|
||||||
|
beq done_inventory
|
||||||
|
|
||||||
|
asl
|
||||||
|
tay
|
||||||
|
lda inventory_names,Y
|
||||||
|
sta INL
|
||||||
|
lda inventory_names+1,Y
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
lda #<(temp_inv+2)
|
||||||
|
sta OUTL
|
||||||
|
lda #>(temp_inv+2)
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
jsr strcat
|
||||||
|
|
||||||
|
|
||||||
|
lda #<(temp_inv)
|
||||||
|
sta OUTL
|
||||||
|
lda #>(temp_inv)
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
lda #21
|
||||||
|
sta temp_inv+1
|
||||||
|
|
||||||
|
jsr move_and_print
|
||||||
|
|
||||||
|
|
||||||
|
lda INVENTORY2
|
||||||
|
beq done_inventory
|
||||||
|
|
||||||
|
asl
|
||||||
|
tay
|
||||||
|
lda inventory_names,Y
|
||||||
|
sta INL
|
||||||
|
lda inventory_names+1,Y
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
lda #<(temp_inv+2)
|
||||||
|
sta OUTL
|
||||||
|
lda #>(temp_inv+2)
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
jsr strcat
|
||||||
|
|
||||||
|
|
||||||
|
lda #<(temp_inv)
|
||||||
|
sta OUTL
|
||||||
|
lda #>(temp_inv)
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
lda #22
|
||||||
|
sta temp_inv+1
|
||||||
|
|
||||||
|
jsr move_and_print
|
||||||
|
|
||||||
|
|
||||||
|
done_inventory:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
inventory_names:
|
||||||
|
.word null_string ; NULL
|
||||||
|
.word meat_string ; HUNK OF MEAT
|
||||||
|
.word chicken_pulley_string ; CHICKEN PULLEY
|
||||||
|
|
||||||
|
|
||||||
|
inv_up: .byte 22,21,"/\",0
|
||||||
|
inv_down: .byte 22,23,"\/",0
|
||||||
|
inv_middle: .byte 22,22,"::",0
|
||||||
|
|
||||||
|
temp_inv:
|
||||||
|
.byte 25,0," ",0
|
||||||
|
|
||||||
|
|
||||||
;0123456789012345678901234567890123456789
|
;0123456789012345678901234567890123456789
|
||||||
;
|
;
|
||||||
;GIVE PICK UP USE
|
;GIVE PICK UP USE /\ HUNK O' MEAT
|
||||||
;OPEN LOOK AT PUSH
|
;OPEN LOOK AT PUSH :: CHICKEN PULLEY
|
||||||
;CLOSE TALK TO PULL
|
;CLOSE TALK TO PULL \/
|
||||||
|
|
||||||
bottom_strings:
|
bottom_strings:
|
||||||
.word bottom_give
|
.word bottom_give
|
||||||
@ -230,6 +325,9 @@ strcat_done:
|
|||||||
lda #0
|
lda #0
|
||||||
adc OUTH
|
adc OUTH
|
||||||
sta OUTH
|
sta OUTH
|
||||||
|
lda #0
|
||||||
|
tay
|
||||||
|
sta (OUTL),Y ; NUL terminate
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;====================================
|
;====================================
|
||||||
|
@ -116,6 +116,22 @@ GUYBRUSH_SIZE = $98
|
|||||||
GUYBRUSH_SMALL = 2
|
GUYBRUSH_SMALL = 2
|
||||||
GUYBRUSH_TINY = 3
|
GUYBRUSH_TINY = 3
|
||||||
GUYBRUSH_FEET = $99
|
GUYBRUSH_FEET = $99
|
||||||
|
ITEMS_PICKED_UP = $9A
|
||||||
|
IPU_ITEM_MEAT = $01
|
||||||
|
IPU_ITEM_PULLEY_CHICKEN = $02
|
||||||
|
|
||||||
|
INV_ITEM_MEAT = $1
|
||||||
|
INV_ITEM_PULLEY_CHICKEN = $2
|
||||||
|
|
||||||
|
INVENTORY = $9B
|
||||||
|
INVENTORY2 = $9C
|
||||||
|
INVENTORY3 = $9D
|
||||||
|
INVENTORY4 = $9E
|
||||||
|
INVENTORY5 = $9F
|
||||||
|
|
||||||
|
INVENTORY_NEXT_SLOT = $A0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; done game puzzle state
|
; done game puzzle state
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user