wip clouds and baloons as bobs

This commit is contained in:
alpine9000
2016-05-26 17:46:44 +10:00
parent 558c6188b6
commit 37108cc5bd
5 changed files with 90 additions and 13 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

+36 -2
View File
@@ -32,14 +32,45 @@ RenderBackgroundTile:
lea backgroundTilemap,a1
add.l #BITPLANE_WIDTH_BYTES-2,a0 ; dest
move.w (a2),d0 ; source tile
add.w d0,a1
move.l backgroundScrollX,d2
lsr.b #BACKGROUND_SCROLL_SHIFT_CONVERT,d2 ; convert to pixels
andi.w #$f,d2 ; find the shift component
;; this is where the old baloon was triggered - won't work anymore
cmp.l #backgroundBitplanes2,backgroundOffscreen
bne .dontProcessBobs
cmp.w #0,d0
beq .addCloud
cmp.w #$900,d0
beq .addCloud
cmp.w #$c00,d0
beq .addBaloon
bra .dontProcessBobs
.addCloud:
move.w d2,d1
jsr AddBobCloud
bra .skip
.addBaloon:
move.w d2,d1
jsr AddBobBaloon
bra .skip
.dontProcessBobs:
cmp.w #0,d0
beq .skip
cmp.w #$c00,d0
beq .skip
cmp.w #$900,d0
beq .skip
bra .blit
.skip:
move.l #$8,d0
.blit:
add.w d0,a1
jsr BlitBackgroundTile
rts
OldRenderBackgroundTile:
@@ -103,8 +134,11 @@ RenderNextBackgroundFrame:
bsr OldRenderBackgroundTile
endif
cmp.l #320,backgroundScrollX
ble .dontRenderBobs
jsr RenderBob
.dontRenderBobs:
rts
+1 -1
View File
@@ -5,7 +5,7 @@
</tileset>
<layer name="background" width="200" height="16">
<data encoding="base64" compression="zlib">
eJztmmdrAzEMhg/ag2vpho4P3Ys0zf//fVXoGYJ7XtJryXfNh4ckZMjasp1V13UrJsMI9/vWHBHHgu+fEmfEOXHRgD4luvVAWdp26EeGEfe6ljyufm59XLmb8fEwwx41/HJJXBV83l/nNXFD3BJ3QH9I7crRTWLbEjtM+Tol6957HcuPHkxNP/s8g39Psu4TgPwH4pF4KtTtIPG+83uoB2jU6xLbcu3A9aOL3TfivcPlx+fO84+d35TqF6OmLyXr9muSVtyVEOoBGvWsZkxIZdXKj1D/4MRSLlq9CcFc1oqI3ZBPEX3VR7rP83Gx+939zujW+WHtyznF3Z6/hPpgat8Zwrp/cPI9NVNPsQHIbRWOLtr658yTqRh+IV6NbGuVH9Kzjxym+riGXCSxuZOjC0r/3DxDzJNfxLqCbV3sx+y0hPmqFqW1trS/WdRFFLl51vI8uY390F7Ier6aA4haG5sdatVFFNzZXUIr96kW+SE5o9rzP5DWJNT5oIvd1uYrbv4vIfc07kZcT6hxxtoCqHmu1fmqpfsB7bs8lO6l65bMNFo2svr/lVX/CO1lNfZzufti7VxF6V66bslMkytL2t8RviipA632Dy4lZ0e5+2J0rnLubzj+bfl/G1M2GcbnsbrFkeOfL8TqgN+frPvHEtDe81jf3UjzO4XleZ7fn0Kxi86NLT+BOKjL
eJzlmslOxDAMhjuCwoDYJTaJbQSHkYb3fz7cQ6SRFbt27DhpOXwSQ5c4cX7bSToOw7BdERvFvRfApaGta+AGuAXuKvdrl/nfq6Fvo6NtkeOQbB8zv/cVaNE/7NfTRn65Bx4U92M7H4En4Bl4CRi3mn2zjK1mHHK+nmvrDf3m9DESbJlrHL372csvmCuH9t+BD+AT+FI8dyK8j8oB3vEsl3M1Y1s6DqV+pObynrkm1QL+26N/HBpfTn46V7zbYjeOSd7z7hv4Ia6dCd9B5YCIeFZzTiR2hW1554g5zZTMJSlLyk2eth6A34FfI0TMXap9yqceeRVjXedhuHncQh9RvmzNkmyl5o31HVzeK4XKg9J1J9aXV33FvWtOH1q9S2vqHCnPeseZiRrxu8SntZ6xkKsnU95L91BzOHJcKX15rz+k+qDs8YwtuTxu3XOJhttLLumLV/+lOltS7ZujlT4ocGypDadHbay15LfWaM50JqQ6q11Pau3GUGshr/pKUme19j0Hp0ePWFt67tIDLWzv5Tw1xc3I/GHZo1oruTPr/0gaB2tMktRzKedwe+Apbkr0kZ6JyB+l+u9Re9rcH/GNQcoJNfZYe8CrntPUV3PPeK4/elrPRX8To+07pT+t3ZaaJmqMWn1/1Uof1Fq2p/OBaK169V1rt7am2RS0Zc3vHr7QxAGtPjzWHzWpsXfkrVWrjVL/RsYYa1vSMZG0g+ca3l/g4gDOTxp9eK3P10b0mqf12c2S96/nwPnpWA/HeGtj4g9zxnTp
</data>
</layer>
</map>
+5 -2
View File
@@ -13,7 +13,10 @@ BOB_BLIT_WIDTH_BYTES equ BOB_BLIT_WIDTH_WORDS*2
BOB_MODULO equ BACKGROUND_TILEMAP_WIDTH_BYTES-BOB_BLIT_WIDTH_BYTES
BOB_SHIFT_CONVERT equ 4
BOB_SAVE_SIZE equ BOB_BLIT_WIDTH_BYTES*SCREEN_BIT_DEPTH*BOB_BLIT_HEIGHT
BOB_IDLE_X equ (-31<<BOB_SHIFT_CONVERT)
;; BLITTER_OBJECT
;; index,startX,y,dx,mapLine,blitHeight
BLITTER_OBJECT: macro
\@:
@@ -41,9 +44,9 @@ BLITTER_OBJECT: macro
BALOON_BOB: macro
BLITTER_OBJECT \1,320,\2,\3,67,29
BLITTER_OBJECT \1,BOB_IDLE_X,\2,\3,67,29
endm
CLOUD_BOB: macro
BLITTER_OBJECT \1,320,\2,\3,0,16
BLITTER_OBJECT \1,BOB_IDLE_X,\2,\3,0,16
endm
+48 -8
View File
@@ -1,6 +1,8 @@
include "includes.i"
include "bob.i"
xdef AddBobCloud
xdef AddBobBaloon
xdef RenderBob
xdef ResetBobs
xdef RestoreBobBackgrounds
@@ -10,17 +12,54 @@
;; BALOON_BOB/CLOUD_BOB
;; index,y,dx
;; BLITTER_OBJECT
;; index,startX,y,dx,mapLine,blitHeight
bob:
CLOUD_BOB 0,15,8
endBob:
CLOUD_BOB 1,96,10
CLOUD_BOB 2,170,12
baloonBob:
BALOON_BOB 3,15,24
dc.l 0
AddBobBaloon:
lea baloonBob,a5
cmp.l #BOB_IDLE_X,BOB_X(a5)
bne .continue
move.l #320<<BOB_SHIFT_CONVERT,BOB_X(a5)
lsl.w #4,d1
move.w d1,BOB_Y+2(a5)
move.l #24,BOB_DX(a5)
rts
.continue:
rts
AddBobCloud:
lea bob,a5
.loop:
cmp.l #0,(a5)
beq .done
cmp.l #baloonBob,a5
beq .done
cmp.l #BOB_IDLE_X,BOB_X(a5)
bne .continue
move.l #320<<BOB_SHIFT_CONVERT,BOB_X(a5)
move.l #backgroundTilemap,a3
adda.w d0,a3
move.l a3,BOB_SOURCE_ADDRESS(a5)
move.l #bobMask,a3
adda.w d0,a3
move.l a3,BOB_MASK_ADDRESS(a5)
lsl.w #4,d1
move.w d1,BOB_Y+2(a5)
move.l #12,BOB_DX(a5)
bra .done
.continue:
adda.l #endBob-bob,a5
bra .loop
.done:
rts
ResetBobs:
move.w #2,bobsEnabled ; disables bob movement
bsr RestoreBobBackgrounds
@@ -44,7 +83,7 @@ ResetBobs:
move.l #0,(a1)
adda.l bobBufferOffset,a1
move.l #0,(a1)
move.l #320<<BOB_SHIFT_CONVERT,BOB_X(a5)
move.l #BOB_IDLE_X+1,BOB_X(a5)
adda.l #endBob-bob,a5
bra .loop
.done:
@@ -111,9 +150,10 @@ SaveBobBackgrounds:
beq .dontMoveBob
sub.l BOB_DX(a5),d2
.dontMoveBob:
cmp.l #-32<<BOB_SHIFT_CONVERT,d2
cmp.l #BOB_IDLE_X,d2
bgt .dontReset
move.l #320<<BOB_SHIFT_CONVERT,d2
move.l #BOB_IDLE_X,d2
.dontReset:
move.l d2,BOB_X(a5)
add.l backgroundScrollX,d2
@@ -141,7 +181,7 @@ SaveBobBackgrounds:
adda.l bobBufferOffset,a2
move.l a0,(a2)
adda.l #endBob-bob,a5
bra .loop
.done: