mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-09 03:31:05 +00:00
mist: properly puts down page when you pick up another
This commit is contained in:
parent
5d55e87ca1
commit
77de5390b1
@ -97,6 +97,7 @@ octagon.o: octagon.s zp.inc hardware.inc common_defines.inc \
|
||||
keyboard.s \
|
||||
draw_pointer.s \
|
||||
end_level.s \
|
||||
handle_pages.s \
|
||||
octagon_bookshelf.s \
|
||||
octagon_rotation.s \
|
||||
gr_copy.s audio.s text_print.s decompress_fast_v2.s
|
||||
|
@ -22,6 +22,7 @@ yes_touching_red_book:
|
||||
; if have a red page, take it and increment count
|
||||
|
||||
lda HOLDING_PAGE
|
||||
and #$c0
|
||||
cmp #HOLDING_RED_PAGE
|
||||
bne not_red_page
|
||||
|
||||
@ -30,6 +31,10 @@ yes_touching_red_book:
|
||||
|
||||
inc RED_PAGE_COUNT ; increment page count
|
||||
|
||||
; in actual game plays sound effect here
|
||||
|
||||
rts
|
||||
|
||||
not_red_page:
|
||||
|
||||
lda #0
|
||||
@ -67,6 +72,7 @@ yes_touching_blue_book:
|
||||
; if have a blue page, take it and increment count
|
||||
|
||||
lda HOLDING_PAGE
|
||||
and #$c0
|
||||
cmp #HOLDING_BLUE_PAGE
|
||||
bne not_blue_page
|
||||
|
||||
@ -75,6 +81,10 @@ yes_touching_blue_book:
|
||||
|
||||
inc BLUE_PAGE_COUNT ; increment page count
|
||||
|
||||
; in actual game plays sound effect here
|
||||
|
||||
rts
|
||||
|
||||
not_blue_page:
|
||||
|
||||
lda #0
|
||||
|
@ -97,6 +97,7 @@ really_not_special:
|
||||
|
||||
finger_point:
|
||||
lda HOLDING_PAGE
|
||||
and #$c0
|
||||
beq real_finger_point
|
||||
cmp #HOLDING_BLUE_PAGE
|
||||
beq blue_finger
|
||||
|
@ -9,39 +9,80 @@
|
||||
; A should be page to take (i.e. MECHE_PAGE or similar)
|
||||
|
||||
take_blue_page:
|
||||
pha
|
||||
jsr drop_current_page
|
||||
pla
|
||||
|
||||
pha
|
||||
eor BLUE_PAGES_TAKEN ; toggle the taken flag
|
||||
sta BLUE_PAGES_TAKEN
|
||||
pla
|
||||
|
||||
lda #HOLDING_BLUE_PAGE ; put it in hand
|
||||
ora #HOLDING_BLUE_PAGE ; put it in hand
|
||||
sta HOLDING_PAGE
|
||||
rts
|
||||
|
||||
take_red_page:
|
||||
|
||||
pha
|
||||
jsr drop_current_page
|
||||
pla
|
||||
|
||||
pha
|
||||
eor RED_PAGES_TAKEN
|
||||
sta RED_PAGES_TAKEN
|
||||
pla
|
||||
|
||||
lda #HOLDING_RED_PAGE
|
||||
ora #HOLDING_RED_PAGE
|
||||
sta HOLDING_PAGE
|
||||
rts
|
||||
|
||||
take_white_page:
|
||||
|
||||
pha
|
||||
jsr drop_current_page
|
||||
pla
|
||||
|
||||
; lda #1
|
||||
; sta WHITE_PAGE_TAKEN
|
||||
pha
|
||||
lda #1
|
||||
sta WHITE_PAGE_TAKEN
|
||||
pla
|
||||
|
||||
lda #HOLDING_WHITE_PAGE
|
||||
ora #HOLDING_WHITE_PAGE
|
||||
sta HOLDING_PAGE
|
||||
rts
|
||||
|
||||
drop_current_page:
|
||||
; FIXME
|
||||
|
||||
; clicked on a page while holding another
|
||||
drop_current_page:
|
||||
lda HOLDING_PAGE
|
||||
and #$c0
|
||||
|
||||
cmp #HOLDING_RED_PAGE
|
||||
beq drop_red_page
|
||||
cmp #HOLDING_BLUE_PAGE
|
||||
beq drop_blue_page
|
||||
cmp #HOLDING_WHITE_PAGE
|
||||
beq drop_white_page
|
||||
|
||||
; there was no page?
|
||||
rts
|
||||
|
||||
drop_white_page:
|
||||
lda #0
|
||||
sta WHITE_PAGE_TAKEN
|
||||
rts
|
||||
|
||||
drop_red_page:
|
||||
lda HOLDING_PAGE
|
||||
and #$3f
|
||||
eor RED_PAGES_TAKEN
|
||||
sta RED_PAGES_TAKEN
|
||||
rts
|
||||
|
||||
drop_blue_page:
|
||||
lda HOLDING_PAGE
|
||||
and #$3f
|
||||
eor BLUE_PAGES_TAKEN
|
||||
sta BLUE_PAGES_TAKEN
|
||||
rts
|
||||
|
||||
|
||||
|
@ -78,6 +78,7 @@ check_page_close_red:
|
||||
|
||||
check_page_close_blue:
|
||||
cmp #OCTAGON_BLUE_BOOKSHELF
|
||||
bne done_foreground
|
||||
jsr draw_octagon_page_close_blue
|
||||
|
||||
done_foreground:
|
||||
|
@ -114,9 +114,9 @@ MECHE_LOCK2 = $A3
|
||||
MECHE_LOCK3 = $A4
|
||||
MECHE_LOCK4 = $A5
|
||||
HOLDING_PAGE = $A6
|
||||
HOLDING_RED_PAGE = 1
|
||||
HOLDING_BLUE_PAGE = 2
|
||||
HOLDING_WHITE_PAGE = 3
|
||||
HOLDING_RED_PAGE = $80
|
||||
HOLDING_BLUE_PAGE = $40
|
||||
HOLDING_WHITE_PAGE = $C0
|
||||
RED_PAGE_COUNT = $A7
|
||||
BLUE_PAGE_COUNT = $A8
|
||||
VIEWER_CHANNEL = $A9
|
||||
@ -132,7 +132,7 @@ PUMP_STATE = $AD
|
||||
BATTERY_CHARGE = $AE
|
||||
COMPASS_ANGLE = $AF
|
||||
CRANK_ANGLE = $B0
|
||||
|
||||
WHITE_PAGE_TAKEN= $B1
|
||||
|
||||
; done game puzzle state
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user