mirror of
https://github.com/jeremysrand/BuGS.git
synced 2025-01-01 01:30:27 +00:00
Getting close to having the spider fully implemented...
This commit is contained in:
parent
18d0c3a80f
commit
bf01c47285
@ -7,7 +7,7 @@
|
|||||||
<key>Binary.xcscheme_^#shared#^_</key>
|
<key>Binary.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>3</integer>
|
<integer>1</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>BuGS.xcscheme_^#shared#^_</key>
|
<key>BuGS.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
@ -17,12 +17,12 @@
|
|||||||
<key>DiskImage.xcscheme_^#shared#^_</key>
|
<key>DiskImage.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>1</integer>
|
<integer>2</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>doNotBuild.xcscheme_^#shared#^_</key>
|
<key>doNotBuild.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>2</integer>
|
<integer>3</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
@ -236,16 +236,9 @@ jumpInst jmp >spider1
|
|||||||
|
|
||||||
|
|
||||||
updateSpider entry
|
updateSpider entry
|
||||||
lda spiderState
|
ldx spiderState
|
||||||
bne updateSpider_cont
|
cpx #SPIDER_STATE_LEFT_DIAG_DOWN
|
||||||
rtl
|
blt updateSpider_testState
|
||||||
|
|
||||||
updateSpider_cont anop
|
|
||||||
|
|
||||||
dec a
|
|
||||||
beq updateSpider_exploding
|
|
||||||
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda spiderSpriteRefresh
|
lda spiderSpriteRefresh
|
||||||
beq updateSpider_spriteRefresh
|
beq updateSpider_spriteRefresh
|
||||||
@ -268,29 +261,10 @@ updateSpider_resetSprite anop
|
|||||||
sta spiderSprite
|
sta spiderSprite
|
||||||
|
|
||||||
updateSpider_testState anop
|
updateSpider_testState anop
|
||||||
tya
|
txa
|
||||||
dec a
|
asl a
|
||||||
beq updateSpider_leftDiagDown
|
tax
|
||||||
|
jmp (spiderUpdateJumpTable,x)
|
||||||
dec a
|
|
||||||
beq updateSpider_leftDiagUp
|
|
||||||
|
|
||||||
dec a
|
|
||||||
beq updateSpider_leftDown
|
|
||||||
|
|
||||||
dec a
|
|
||||||
beq updateSpider_leftUp
|
|
||||||
|
|
||||||
dec a
|
|
||||||
beq updateSpider_rightDiagDown
|
|
||||||
|
|
||||||
dec a
|
|
||||||
beq updateSpider_rightDiagUp
|
|
||||||
|
|
||||||
dec a
|
|
||||||
beq updateSpider_rightDown
|
|
||||||
|
|
||||||
bra updateSpider_rightUp
|
|
||||||
|
|
||||||
updateSpider_exploding anop
|
updateSpider_exploding anop
|
||||||
lda spiderSprite
|
lda spiderSprite
|
||||||
@ -304,17 +278,33 @@ updateSpider_explosionDone anop
|
|||||||
stz spiderState
|
stz spiderState
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
|
|
||||||
updateSpider_leftDiagDown anop
|
|
||||||
updateSpider_leftDiagUp anop
|
|
||||||
updateSpider_leftDown anop
|
|
||||||
updateSpider_leftUp anop
|
|
||||||
updateSpider_rightDiagUp anop
|
|
||||||
updateSpider_rightDown anop
|
updateSpider_rightDown anop
|
||||||
updateSpider_rightUp anop
|
lda spiderScreenOffset
|
||||||
; Write this code
|
clc
|
||||||
|
adc #SCREEN_BYTES_PER_ROW
|
||||||
|
sta spiderScreenOffset
|
||||||
|
|
||||||
|
lda spiderShiftInTile
|
||||||
|
dec a
|
||||||
|
sta spiderShiftInTile
|
||||||
|
bne updateSpider_done
|
||||||
|
jmp updateSpider_tilesDown
|
||||||
|
updateSpider_done anop
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
|
updateSpider_rightUp anop
|
||||||
|
|
||||||
|
lda spiderScreenOffset
|
||||||
|
sec
|
||||||
|
sbc #SCREEN_BYTES_PER_ROW
|
||||||
|
sta spiderScreenOffset
|
||||||
|
|
||||||
|
lda spiderShiftInTile
|
||||||
|
dec a
|
||||||
|
sta spiderShiftInTile
|
||||||
|
bne updateSpider_done
|
||||||
|
jmp updateSpider_tilesUp
|
||||||
|
|
||||||
updateSpider_rightDiagDown anop
|
updateSpider_rightDiagDown anop
|
||||||
lda spiderScreenOffset
|
lda spiderScreenOffset
|
||||||
clc
|
clc
|
||||||
@ -328,20 +318,56 @@ updateSpider_rightDiagDown anop
|
|||||||
inc spiderScreenOffset
|
inc spiderScreenOffset
|
||||||
|
|
||||||
updateSpider_rightDiagDown_skipInc anop
|
updateSpider_rightDiagDown_skipInc anop
|
||||||
|
|
||||||
lda spiderShiftInTile
|
lda spiderShiftInTile
|
||||||
dec a
|
dec a
|
||||||
sta spiderShiftInTile
|
sta spiderShiftInTile
|
||||||
beq updateSpider_tilesDown
|
bne updateSpider_rightDiagDown_cont
|
||||||
|
jmp updateSpider_tilesDown
|
||||||
|
|
||||||
|
updateSpider_rightDiagDown_cont anop
|
||||||
cmp #SPIDER_STARTING_SHIFT
|
cmp #SPIDER_STARTING_SHIFT
|
||||||
beq updateSpider_tilesRight
|
bne updateSpider_done
|
||||||
|
jmp updateSpider_tilesRight
|
||||||
|
|
||||||
|
updateSpider_leftDiagDown anop
|
||||||
|
updateSpider_leftDiagUp anop
|
||||||
|
updateSpider_leftDown anop
|
||||||
|
updateSpider_leftUp anop
|
||||||
|
rtl
|
||||||
|
|
||||||
|
updateSpider_rightDiagUp anop
|
||||||
|
lda spiderScreenOffset
|
||||||
|
sec
|
||||||
|
sbc #SCREEN_BYTES_PER_ROW
|
||||||
|
sta spiderScreenOffset
|
||||||
|
|
||||||
|
lda spiderScreenShift
|
||||||
|
eor #1
|
||||||
|
sta spiderScreenShift
|
||||||
|
bne updateSpider_rightDiagUp_skipInc
|
||||||
|
inc spiderScreenOffset
|
||||||
|
|
||||||
|
updateSpider_rightDiagUp_skipInc anop
|
||||||
|
lda spiderShiftInTile
|
||||||
|
dec a
|
||||||
|
sta spiderShiftInTile
|
||||||
|
bne updateSpider_rightDiagUp_cont
|
||||||
|
jmp updateSpider_tilesUp
|
||||||
|
|
||||||
|
updateSpider_rightDiagUp_cont anop
|
||||||
|
cmp #SPIDER_STARTING_SHIFT
|
||||||
|
bne updateSpider_done
|
||||||
|
jmp updateSpider_tilesRight
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
updateSpider_tilesRight anop
|
updateSpider_tilesRight anop
|
||||||
ldx spiderTileOffsets+4
|
ldx spiderTileOffsets+4
|
||||||
cmp #RHS_FIRST_TILE_OFFSET
|
cpx #RHS_FIRST_TILE_OFFSET
|
||||||
bge updateSpider_offScreen
|
blt updateSpider_tilesRight_cont
|
||||||
|
cpx #LHS_FIRST_TILE_OFFSET
|
||||||
|
bge updateSpider_tilesRight_cont
|
||||||
|
jmp updateSpider_offScreen
|
||||||
|
updateSpider_tilesRight_cont anop
|
||||||
stx spiderTileOffsets+8
|
stx spiderTileOffsets+8
|
||||||
|
|
||||||
ldx spiderTileOffsets+6
|
ldx spiderTileOffsets+6
|
||||||
@ -359,15 +385,86 @@ updateSpider_tilesRight anop
|
|||||||
|
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
|
updateSpider_tilesLeft anop
|
||||||
|
ldx spiderTileOffsets+4
|
||||||
|
cpx #LHS_FIRST_TILE_OFFSET
|
||||||
|
blt updateSpider_tilesLeft_cont
|
||||||
|
jmp updateSpider_offScreen
|
||||||
|
updateSpider_tilesLeft_cont anop
|
||||||
|
stx spiderTileOffsets
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+6
|
||||||
|
stx spiderTileOffsets+2
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+10
|
||||||
|
stx spiderTileOffsets+6
|
||||||
|
lda tiles+TILE_LEFT_OFFSET,x
|
||||||
|
sta spiderTileOffsets+10
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+8
|
||||||
|
stx spiderTileOffsets+4
|
||||||
|
lda tiles+TILE_LEFT_OFFSET,x
|
||||||
|
sta spiderTileOffsets+8
|
||||||
|
|
||||||
|
rtl
|
||||||
|
|
||||||
|
updateSpider_tilesUp anop
|
||||||
|
lda #TILE_PIXEL_HEIGHT
|
||||||
|
sta spiderShiftInTile
|
||||||
|
|
||||||
|
lda spiderCurrentRow
|
||||||
|
dec a
|
||||||
|
sta spiderCurrentRow
|
||||||
|
cmp spiderTargetRow
|
||||||
|
; TODO - Change direction!!
|
||||||
|
beq updateSpider_upChangeDir
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+2
|
||||||
|
stx spiderTileOffsets
|
||||||
|
lda tiles+TILE_ABOVE_OFFSET,x
|
||||||
|
sta spiderTileOffsets+2
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+6
|
||||||
|
stx spiderTileOffsets+4
|
||||||
|
lda tiles+TILE_ABOVE_OFFSET,x
|
||||||
|
sta spiderTileOffsets+6
|
||||||
|
|
||||||
|
; As per the below, clear any mushroom if present
|
||||||
|
cpx #RHS_FIRST_TILE_OFFSET
|
||||||
|
bge updateSpider_tilesUpCont
|
||||||
|
lda tiles+TILE_TYPE_OFFSET,x
|
||||||
|
beq updateSpider_tilesUpCont
|
||||||
|
lda #TILE_EMPTY
|
||||||
|
sta tiles+TILE_TYPE_OFFSET,x
|
||||||
|
|
||||||
|
updateSpider_tilesUpCont anop
|
||||||
|
ldx spiderTileOffsets+10
|
||||||
|
stx spiderTileOffsets+8
|
||||||
|
lda tiles+TILE_ABOVE_OFFSET,x
|
||||||
|
sta spiderTileOffsets+10
|
||||||
|
rtl
|
||||||
|
|
||||||
|
updateSpider_upChangeDir anop
|
||||||
|
; TODO - Randomly pick direction and row
|
||||||
|
lda #GAME_NUM_TILES_TALL-1
|
||||||
|
sta spiderTargetRow
|
||||||
|
lda #SPIDER_STATE_RIGHT_DIAG_DOWN
|
||||||
|
sta spiderState
|
||||||
|
rtl
|
||||||
|
|
||||||
updateSpider_tilesDown anop
|
updateSpider_tilesDown anop
|
||||||
lda #TILE_PIXEL_HEIGHT
|
lda #TILE_PIXEL_HEIGHT
|
||||||
sta spiderShiftInTile
|
sta spiderShiftInTile
|
||||||
|
|
||||||
|
lda spiderCurrentRow
|
||||||
|
inc a
|
||||||
|
sta spiderCurrentRow
|
||||||
|
cmp spiderTargetRow
|
||||||
|
beq updateSpider_downChangeDir
|
||||||
|
|
||||||
ldx spiderTileOffsets
|
ldx spiderTileOffsets
|
||||||
stx spiderTileOffsets+2
|
stx spiderTileOffsets+2
|
||||||
lda tiles+TILE_BELOW_OFFSET,x
|
lda tiles+TILE_BELOW_OFFSET,x
|
||||||
cmp #INVALID_TILE_NUM
|
|
||||||
beq updateSpider_tilesDownSkip
|
|
||||||
sta spiderTileOffsets
|
sta spiderTileOffsets
|
||||||
|
|
||||||
ldx spiderTileOffsets+4
|
ldx spiderTileOffsets+4
|
||||||
@ -389,14 +486,14 @@ updateSpider_tilesDownCont anop
|
|||||||
stx spiderTileOffsets+10
|
stx spiderTileOffsets+10
|
||||||
lda tiles+TILE_BELOW_OFFSET,x
|
lda tiles+TILE_BELOW_OFFSET,x
|
||||||
sta spiderTileOffsets+8
|
sta spiderTileOffsets+8
|
||||||
|
rtl
|
||||||
|
|
||||||
updateSpider_tilesDownSkip anop
|
updateSpider_downChangeDir anop
|
||||||
lda spiderCurrentRow
|
; TODO - Randomly pick direction and row
|
||||||
inc a
|
lda #SPIDER_TOP_ROW
|
||||||
sta spiderCurrentRow
|
sta spiderTargetRow
|
||||||
cmp spiderTargetRow
|
lda #SPIDER_STATE_RIGHT_DIAG_UP
|
||||||
beq updateSpider_offScreen
|
sta spiderState
|
||||||
|
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
updateSpider_offScreen anop
|
updateSpider_offScreen anop
|
||||||
@ -504,4 +601,15 @@ spiderShiftJumpTable dc i4'spider7s'
|
|||||||
dc i4'spider2s'
|
dc i4'spider2s'
|
||||||
dc i4'spider1s'
|
dc i4'spider1s'
|
||||||
|
|
||||||
|
spiderUpdateJumpTable dc i2'updateSpider_done'
|
||||||
|
dc i2'updateSpider_exploding'
|
||||||
|
dc i2'updateSpider_leftDiagDown'
|
||||||
|
dc i2'updateSpider_leftDiagUp'
|
||||||
|
dc i2'updateSpider_leftDown'
|
||||||
|
dc i2'updateSpider_leftUp'
|
||||||
|
dc i2'updateSpider_rightDiagDown'
|
||||||
|
dc i2'updateSpider_rightDiagUp'
|
||||||
|
dc i2'updateSpider_rightDown'
|
||||||
|
dc i2'updateSpider_rightUp'
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user