mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-11-26 10:49:17 +00:00
70 lines
993 B
Plaintext
70 lines
993 B
Plaintext
|
|
||
|
component VersatilePlayfield
|
||
|
data: array of 0..255 baseoffset -1
|
||
|
end
|
||
|
|
||
|
system VersatilePlayfield
|
||
|
locals 2
|
||
|
on preframe do with [VersatilePlayfield]
|
||
|
---
|
||
|
lda {{<data}}
|
||
|
sta {{$0}}
|
||
|
lda {{>data}}
|
||
|
sta {{$1}}
|
||
|
---
|
||
|
on scanline do once
|
||
|
---
|
||
|
.if {{arg 0}} = 0
|
||
|
lda ({{local 0}}),y
|
||
|
tax
|
||
|
.endif
|
||
|
---
|
||
|
on scanline do once
|
||
|
---
|
||
|
.if {{arg 0}} = 1
|
||
|
lda ({{local 0}}),y
|
||
|
sta $00,x
|
||
|
.endif
|
||
|
---
|
||
|
on postframe do once
|
||
|
---
|
||
|
lda #0
|
||
|
sta PF0
|
||
|
sta PF1
|
||
|
sta PF2
|
||
|
---
|
||
|
on checkplatform do with [HasXpos,HasYpos]
|
||
|
---
|
||
|
lda {{<xpos}}
|
||
|
clc
|
||
|
adc #6
|
||
|
lsr
|
||
|
lsr
|
||
|
tay
|
||
|
lda {{^PFCollideMask}},y
|
||
|
pha
|
||
|
lda {{^PFCollideReg}},y
|
||
|
pha
|
||
|
lda #176 ; TODO: adjust for kernel size
|
||
|
sec
|
||
|
sbc {{<ypos}}
|
||
|
and #$fe
|
||
|
tay
|
||
|
; TODO: use system local pointer
|
||
|
pla
|
||
|
cmp ({{$0}}),y ; match register?
|
||
|
bne @nostop1
|
||
|
dey
|
||
|
pla
|
||
|
and ({{$0}}),y ; mask bitmap?
|
||
|
beq @nostop
|
||
|
{{!platformstopped}}
|
||
|
jmp @done
|
||
|
@nostop1:
|
||
|
pla
|
||
|
@nostop:
|
||
|
{{!platformnotstopped}}
|
||
|
@done:
|
||
|
---
|
||
|
end
|