mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 01:42:04 +00:00
wip clouds and baloons as bobs
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.7 KiB |
+36
-2
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user