mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-26 11:30:12 +00:00
05d4e4bd50
though only two at this point and you can't do anything with them
278 lines
4.3 KiB
ArmAsm
278 lines
4.3 KiB
ArmAsm
; 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 meat
|
|
;================================
|
|
;================================
|
|
draw_meat:
|
|
lda ITEMS_PICKED_UP
|
|
and #IPU_ITEM_MEAT
|
|
bne done_draw_meat
|
|
|
|
lda #<meat_sprite
|
|
sta INL
|
|
lda #>meat_sprite
|
|
sta INH
|
|
|
|
lda #9
|
|
sta XPOS
|
|
lda #26
|
|
sta YPOS
|
|
|
|
jsr put_sprite_crop
|
|
done_draw_meat:
|
|
rts
|
|
|
|
meat_sprite:
|
|
.byte 3,2
|
|
.byte $3A,$8A,$AA
|
|
.byte $A3,$A8,$Af
|
|
|
|
|
|
;===================================
|
|
;===================================
|
|
; actions
|
|
;===================================
|
|
;===================================
|
|
|
|
|
|
;=============================
|
|
bar3_door_action:
|
|
bar3_door_nothing:
|
|
lda #VERB_WALK
|
|
sta CURRENT_VERB
|
|
rts
|
|
|
|
|
|
;=============================
|
|
barrel_action:
|
|
lda CURRENT_VERB
|
|
asl
|
|
tay
|
|
|
|
lda barrel_actions,Y
|
|
cmp #$ff
|
|
beq barrel_nothing
|
|
|
|
sta MESSAGE_L
|
|
lda barrel_actions+1,Y
|
|
sta MESSAGE_H
|
|
|
|
jmp do_display_message
|
|
|
|
barrel_nothing:
|
|
lda #VERB_WALK
|
|
sta CURRENT_VERB
|
|
rts
|
|
|
|
barrel_actions:
|
|
.word $FFFF ; give
|
|
.word doesnt_open ; open
|
|
.word doesnt_work ; close
|
|
.word cant_pick_up ; pick_up
|
|
.word barrel_look ; look_at
|
|
.word $FFFF ; talk_to
|
|
.word $FFFF ; use
|
|
.word icant_move ; push
|
|
.word icant_move ; pull
|
|
|
|
barrel_look:
|
|
.byte 1,21,"FULL OF THAT FOUL STUFF PIRATES DRINK",0
|
|
|
|
|
|
|
|
;=============================
|
|
table_action:
|
|
lda CURRENT_VERB
|
|
asl
|
|
tay
|
|
|
|
lda table_actions,Y
|
|
cmp #$ff
|
|
beq table_nothing
|
|
|
|
sta MESSAGE_L
|
|
lda table_actions+1,Y
|
|
sta MESSAGE_H
|
|
|
|
jmp do_display_message
|
|
|
|
table_nothing:
|
|
lda #VERB_WALK
|
|
sta CURRENT_VERB
|
|
rts
|
|
|
|
table_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 $FFFF ; use
|
|
.word icant_move ; push
|
|
.word icant_move ; pull
|
|
|
|
|
|
|
|
;=============================
|
|
meat_action:
|
|
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
|
|
tay
|
|
|
|
lda meat_actions,Y
|
|
cmp #$ff
|
|
beq meat_nothing
|
|
|
|
sta MESSAGE_L
|
|
lda meat_actions+1,Y
|
|
sta MESSAGE_H
|
|
|
|
jmp do_display_message
|
|
|
|
meat_nothing:
|
|
lda #VERB_WALK
|
|
sta CURRENT_VERB
|
|
rts
|
|
|
|
meat_actions:
|
|
.word $FFFF ; give
|
|
.word doesnt_open ; open
|
|
.word doesnt_work ; close
|
|
.word $FFFF ; pick_up
|
|
.word meat_look ; look_at
|
|
.word $FFFF ; talk_to
|
|
.word $FFFF ; use
|
|
.word icant_move ; push
|
|
.word icant_move ; pull
|
|
|
|
meat_look: .byte 0,21,"SOME SORT OF MEAT OR MEAT-LIKE SUBSTANCE",0
|
|
|
|
|
|
;=============================
|
|
stew_action:
|
|
lda CURRENT_VERB
|
|
asl
|
|
tay
|
|
|
|
lda stew_actions,Y
|
|
cmp #$ff
|
|
beq stew_nothing
|
|
|
|
sta MESSAGE_L
|
|
lda stew_actions+1,Y
|
|
sta MESSAGE_H
|
|
|
|
jmp do_display_message
|
|
|
|
stew_nothing:
|
|
lda #VERB_WALK
|
|
sta CURRENT_VERB
|
|
rts
|
|
|
|
stew_actions:
|
|
.word $FFFF ; give
|
|
.word doesnt_open ; open
|
|
.word doesnt_work ; close
|
|
.word stew_pick ; pick_up
|
|
.word stew_pick ; look_at
|
|
.word $FFFF ; talk_to
|
|
.word $FFFF ; use
|
|
.word stew_pick ; push
|
|
.word stew_pick ; pull
|
|
|
|
stew_pick: .byte 12,21,"IT'S BOILING HOT",0
|
|
|