kolibrios/programs/media/animage/trunk/sprites.inc
heavyiron af99f0b88d new version of animage from andrew_programmer
git-svn-id: svn://kolibrios.org@255 a494cfbc-eb01-0410-851d-a64ba20cac60
2006-12-29 14:50:24 +00:00

112 lines
2.3 KiB
PHP

;-----------------------------------------------------------
;------------------SaveFonForSprite-------------------------
;-----------------------------------------------------------
SaveFonForSprite:
mov edi,[PointerToSpriteBufer]
mov ecx,[SpriteSizeX]
mov edx,[Picture_SizeX]
sub edx,[SpriteSizeX]
mov esi,[SpriteCoordinatY]
imul esi,[Picture_SizeX]
add esi,[SpriteCoordinatX]
lea edx,[edx+edx*2]
lea esi,[esi+esi*2]
add esi,[PointerToPicture]
mov ebx,[SpriteSizeY]
mov [counter],ecx
next_line_sprite_save:
mov ecx,[counter]
next_pixel_sprite_save:
mov eax,[esi]
and eax,0xffffff
mov [edi],ax
shr eax,16
mov [edi+2],al
add esi,3
add edi,3
dec ecx
jnz next_pixel_sprite_save
add esi,edx
dec ebx
jnz next_line_sprite_save
ret
;-----------------------------------------------------------
;-------------------PutFonForSprite-------------------------
;-----------------------------------------------------------
PutFonForSprite:
mov esi,[PointerToSpriteBufer]
mov ecx,[SpriteSizeX]
mov edx,[Picture_SizeX]
sub edx,[SpriteSizeX]
mov edi,[SpriteOldCoordinatY]
imul edi,[Picture_SizeX]
add edi,[SpriteOldCoordinatX]
lea edx,[edx+edx*2]
lea edi,[edi+edi*2]
add edi,[PointerToPicture]
mov ebx,[SpriteSizeY]
mov [counter],ecx
next_line_sprite_put:
mov ecx,[counter]
next_pixel_sprite_put:
mov eax,[esi]
and eax,0xffffff
mov [edi],ax
shr eax,16
mov [edi+2],al
add esi,3
add edi,3
dec ecx
jnz next_pixel_sprite_put
add edi,edx
dec ebx
jnz next_line_sprite_put
ret
;-----------------------------------------------------------
;------------------DrawFonForSprite-------------------------
;-----------------------------------------------------------
DrawSprite:
mov esi,[PointerToEditBufer]
mov ecx,[SpriteSizeX]
mov edx,[Picture_SizeX]
sub edx,[SpriteSizeX]
mov edi,[SpriteCoordinatY]
imul edi,[Picture_SizeX]
add edi,[SpriteCoordinatX]
lea edx,[edx+edx*2]
lea edi,[edi+edi*2]
add edi,[PointerToPicture]
mov ebx,[SpriteSizeY]
mov [counter],ecx
next_line_sprite_draw:
mov ecx,[counter]
next_pixel_sprite_draw:
mov eax,[esi]
and eax,0xffffff
mov [edi],ax
shr eax,16
mov [edi+2],al
add esi,3
add edi,3
dec ecx
jnz next_pixel_sprite_draw
add edi,edx
dec ebx
jnz next_line_sprite_draw
ret