mirror of
https://github.com/jeremysrand/BuGS.git
synced 2024-05-28 16:41:35 +00:00
Add support for having both fast and slow centipedes in play at the same time.
This commit is contained in:
parent
c4902f486b
commit
1dfbe8156a
|
@ -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>
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
<key>doNotBuild.xcscheme_^#shared#^_</key>
|
<key>doNotBuild.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>1</integer>
|
<integer>3</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
|
|
@ -295,8 +295,8 @@ checkKey_slow anop
|
||||||
jmp setScorpionSpeed
|
jmp setScorpionSpeed
|
||||||
|
|
||||||
checkKey_centipede anop
|
checkKey_centipede anop
|
||||||
jsl addHeadSegment
|
jsl addFastHeadSegment
|
||||||
jsl addBodySegment
|
jsl addSlowHeadSegment
|
||||||
jsl addBodySegment
|
jsl addBodySegment
|
||||||
jsl addBodySegment
|
jsl addBodySegment
|
||||||
jsl addBodySegment
|
jsl addBodySegment
|
||||||
|
|
|
@ -526,6 +526,22 @@ updateSegmentLeftSlow_done anop
|
||||||
|
|
||||||
|
|
||||||
updateSegmentDownLeftFast entry
|
updateSegmentDownLeftFast entry
|
||||||
|
lda segmentScreenOffsets,y
|
||||||
|
cmp #$2000-(7*SCREEN_BYTES_PER_ROW)
|
||||||
|
bge updateSegmentDownLeftFast_notOffscreen
|
||||||
|
lda segmentPixelOffset
|
||||||
|
cmp #7
|
||||||
|
beq updateSegmentDownLeftFast_moveOnScreen
|
||||||
|
rts
|
||||||
|
|
||||||
|
updateSegmentDownLeftFast_moveOnScreen anop
|
||||||
|
lda segmentScreenOffsets,y
|
||||||
|
clc
|
||||||
|
adc #2*SCREEN_BYTES_PER_ROW
|
||||||
|
sta segmentScreenOffsets,y
|
||||||
|
rts
|
||||||
|
|
||||||
|
updateSegmentDownLeftFast_notOffscreen anop
|
||||||
lda segmentVerticalDir,y
|
lda segmentVerticalDir,y
|
||||||
beq updateSegmentDownLeftFast_down
|
beq updateSegmentDownLeftFast_down
|
||||||
lda segmentScreenOffsets,y
|
lda segmentScreenOffsets,y
|
||||||
|
@ -706,6 +722,22 @@ updateSegmentDownSlow_done anop
|
||||||
|
|
||||||
|
|
||||||
updateSegmentDownRightFast entry
|
updateSegmentDownRightFast entry
|
||||||
|
lda segmentScreenOffsets,y
|
||||||
|
cmp #$2000-(7*SCREEN_BYTES_PER_ROW)
|
||||||
|
bge updateSegmentDownRightFast_notOffscreen
|
||||||
|
lda segmentPixelOffset
|
||||||
|
cmp #7
|
||||||
|
beq updateSegmentDownRightFast_moveOnScreen
|
||||||
|
rts
|
||||||
|
|
||||||
|
updateSegmentDownRightFast_moveOnScreen anop
|
||||||
|
lda segmentScreenOffsets,y
|
||||||
|
clc
|
||||||
|
adc #2*SCREEN_BYTES_PER_ROW
|
||||||
|
sta segmentScreenOffsets,y
|
||||||
|
rts
|
||||||
|
|
||||||
|
updateSegmentDownRightFast_notOffscreen anop
|
||||||
lda segmentVerticalDir,y
|
lda segmentVerticalDir,y
|
||||||
beq updateSegmentDownRightFast_down
|
beq updateSegmentDownRightFast_down
|
||||||
lda segmentScreenOffsets,y
|
lda segmentScreenOffsets,y
|
||||||
|
@ -1208,7 +1240,7 @@ addBodySegment_slow anop
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
|
|
||||||
addHeadSegment entry
|
addSlowHeadSegment entry
|
||||||
lda #SEGMENT_MAX_NUM-1
|
lda #SEGMENT_MAX_NUM-1
|
||||||
sec
|
sec
|
||||||
sbc numSegments
|
sbc numSegments
|
||||||
|
@ -1238,6 +1270,9 @@ addHeadSegment entry
|
||||||
lda #SEGMENT_FACING_DOWN_LEFT
|
lda #SEGMENT_FACING_DOWN_LEFT
|
||||||
sta segmentFacing,y
|
sta segmentFacing,y
|
||||||
|
|
||||||
|
txa
|
||||||
|
asl a
|
||||||
|
tax
|
||||||
lda tileScreenOffset,x
|
lda tileScreenOffset,x
|
||||||
sec
|
sec
|
||||||
sbc #SCREEN_BYTES_PER_ROW*7+2
|
sbc #SCREEN_BYTES_PER_ROW*7+2
|
||||||
|
@ -1255,6 +1290,58 @@ addHeadSegment entry
|
||||||
sta segmentPixelOffset
|
sta segmentPixelOffset
|
||||||
|
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
|
|
||||||
|
addFastHeadSegment entry
|
||||||
|
lda #SEGMENT_MAX_NUM-1
|
||||||
|
sec
|
||||||
|
sbc numSegments
|
||||||
|
asl a
|
||||||
|
tax
|
||||||
|
|
||||||
|
lda #SEGMENT_STATE_HEAD
|
||||||
|
sta segmentStates,x
|
||||||
|
|
||||||
|
lda #SEGMENT_SPEED_FAST
|
||||||
|
sta segmentSpeed,x
|
||||||
|
|
||||||
|
lda numSegments
|
||||||
|
asl a
|
||||||
|
asl a
|
||||||
|
asl a
|
||||||
|
asl a
|
||||||
|
sta segmentPosOffset,x
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda #SEGMENT_DIR_RIGHT
|
||||||
|
sta segmentHorizontalDir,y
|
||||||
|
|
||||||
|
lda #SEGMENT_DIR_DOWN
|
||||||
|
sta segmentVerticalDir,y
|
||||||
|
|
||||||
|
lda #SEGMENT_FACING_DOWN_LEFT
|
||||||
|
sta segmentFacing,y
|
||||||
|
|
||||||
|
txa
|
||||||
|
asl a
|
||||||
|
tax
|
||||||
|
lda tileScreenOffset,x
|
||||||
|
sec
|
||||||
|
sbc #SCREEN_BYTES_PER_ROW*8+2
|
||||||
|
sta segmentScreenOffsets,y
|
||||||
|
|
||||||
|
txa
|
||||||
|
sta segmentTileOffsetsUL,y
|
||||||
|
sta segmentTileOffsetsLL,y
|
||||||
|
lda tileRight,x
|
||||||
|
sta segmentTileOffsetsUR,y
|
||||||
|
sta segmentTileOffsetsLR,y
|
||||||
|
|
||||||
|
inc numSegments
|
||||||
|
lda #5
|
||||||
|
sta segmentPixelOffset
|
||||||
|
|
||||||
|
rtl
|
||||||
|
|
||||||
|
|
||||||
shootSegment entry
|
shootSegment entry
|
||||||
|
|
|
@ -8,7 +8,6 @@ s6d2 =
|
||||||
|
|
||||||
s7d1 = /Users/jrand/Library/Developer/Xcode/DerivedData/BuGS-bffpexoblaghkzcbtjtzxeulnuto/Build/Products/Debug/BuGS.2mg
|
s7d1 = /Users/jrand/Library/Developer/Xcode/DerivedData/BuGS-bffpexoblaghkzcbtjtzxeulnuto/Build/Products/Debug/BuGS.2mg
|
||||||
|
|
||||||
g_limit_speed = 0
|
|
||||||
|
|
||||||
|
|
||||||
bram1[00] = 00 00 00 01 00 00 0d 06 02 01 01 00 01 00 00 00
|
bram1[00] = 00 00 00 01 00 00 0d 06 02 01 01 00 01 00 00 00
|
||||||
|
|
Loading…
Reference in New Issue
Block a user