mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 09:52:31 +00:00
54 lines
1.2 KiB
OpenEdge ABL
54 lines
1.2 KiB
OpenEdge ABL
BOB_X equ 4
|
|
BOB_Y equ 8
|
|
BOB_DX equ 12
|
|
BOB_SOURCE_ADDRESS equ 16
|
|
BOB_MASK_ADDRESS equ 20
|
|
BOB_SAVE_BUFFER_ADDRESS equ 24
|
|
BOB_LAST_DEST_ADDRESS equ 32
|
|
BOB_BLIT_SIZE equ 40
|
|
|
|
BOB_BLIT_HEIGHT equ 32
|
|
BOB_BLIT_WIDTH_WORDS equ 3
|
|
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)
|
|
BOB_BALLOON_DX equ 2<<BOB_SHIFT_CONVERT
|
|
BOB_CLOUD_DX equ 12
|
|
;; BLITTER_OBJECT
|
|
;; index,startX,y,dx,mapLine,blitHeight
|
|
|
|
BLITTER_OBJECT: macro
|
|
\@:
|
|
dc.l 1
|
|
.\@x:
|
|
dc.l (\2)<<BOB_SHIFT_CONVERT
|
|
.\@y:
|
|
dc.l \3
|
|
.\@dx:
|
|
dc.l 0
|
|
.\@sourceAddress:
|
|
dc.l backgroundTilemap+(BACKGROUND_TILEMAP_WIDTH_BYTES*\4*SCREEN_BIT_DEPTH)
|
|
.\@maskAddress:
|
|
dc.l bobMask+(BACKGROUND_TILEMAP_WIDTH_BYTES*\4*SCREEN_BIT_DEPTH)
|
|
.\@saveBufferAddress:
|
|
dc.l splash+(\1)*(BOB_SAVE_SIZE*2)
|
|
dc.l splash+(\1)*(BOB_SAVE_SIZE*2)+BOB_SAVE_SIZE
|
|
.\@lastDestAddress:
|
|
dc.l 0
|
|
dc.l 0
|
|
.\@blitSize:
|
|
dc.w ((\5)*SCREEN_BIT_DEPTH)<<6|(BOB_BLIT_WIDTH_WORDS)
|
|
align 4
|
|
endm
|
|
|
|
|
|
BALOON_BOB: macro
|
|
BLITTER_OBJECT \1,BOB_IDLE_X,0,67,29
|
|
endm
|
|
|
|
CLOUD_BOB: macro
|
|
BLITTER_OBJECT \1,BOB_IDLE_X,0,0,16
|
|
endm
|