;loading file from parameters if parametrs <> 0
;IN
; eax- pointer to parameters
; ebx- pointer to path of file
;OUT
;value not returned

check_loading_from_parameters:

     cmp [eax],byte 0
     jz no_parameters

     ;copy file name
     mov esi,eax
     mov edi,ebx
     mov ecx,256
     rep movsb

     ;load file in memory
     
     call load_picture

     no_parameters:
     
     ret


; load picture from file to memory

load_picture:

         mov eax,file_path
	 mov ebx,[ScreenPointer]
	 add ebx,0x10000

	 call load_heading_of_file

	 mov esi,[ScreenPointer]
	 add esi,0x10000
	 ;-------------is this BMP file ?----------------
	 xor eax,eax
	 mov ax,[esi]
	 mov [type],ax

	 cmp [type],word 'BM'
	 jne no_bmp_file_1

	 xor eax,eax
	 xor ebx,ebx
	 mov eax,[esi+18]
	 mov ebx,[esi+22]
	 mov [Picture_SizeX],eax
	 mov [Picture_SizeY],ebx

	 jmp exit_type_1

	 no_bmp_file_1:

	 ;-------------is this GIF file ?----------------
	 xor eax,eax
	 mov ax,[esi]
	 mov [type],ax

	 cmp [type],'GI'
	 jne no_gif_file_1

	 add esi,6
	 xor eax,eax
	 xor ebx,ebx
	 mov ax,word[esi]
	 mov bx,word[esi+2]
	 mov [Picture_SizeX],eax
	 mov [Picture_SizeY],ebx

	 jmp exit_type_1

	 no_gif_file_1:

	 jmp no_unpakcing_file_1

	 exit_type_1:

	 ;----------------------------------------------------------
	 ;Get momory for unpacking picture and for picture's bufers
	 ;----------------------------------------------------------
	 mov eax,[Picture_SizeX]
	 mov ebx,[Picture_SizeY]

	 imul eax,ebx
	 lea eax,[eax+eax*2]

	 mov ebx,[ScreenPointer]
	 add ebx,(1200*1000*3)+50*(20*20*3)+500000

	 mov [PointerToPicture],ebx
	 mov [PointerToCopyPicture],ebx
	 mov [PointerToCopyPicture2],ebx
	 mov [PointerToEditBufer],ebx
	 mov [PointerToSpriteBufer],ebx

	 add [PointerToCopyPicture],eax

	 add [PointerToCopyPicture2],eax
	 add [PointerToCopyPicture2],eax

	 add [PointerToEditBufer],eax
	 add [PointerToEditBufer],eax
	 add [PointerToEditBufer],eax

	 add [PointerToSpriteBufer],eax
	 add [PointerToSpriteBufer],eax
	 add [PointerToSpriteBufer],eax
	 add [PointerToSpriteBufer],eax

	 call GetMemory
	 ;----------------------------------------------------------
	 ;--------------------Load file in memory-------------------
	 ;----------------------------------------------------------

	 mov eax,file_path
	 mov ebx,[PointerToCopyPicture]
	 add ebx,1000

	 call load_file

	 ;----------------------------------------------------------
	 ;-------------------Unpacking picture----------------------
	 ;----------------------------------------------------------
	 mov esi,[PointerToCopyPicture]
	 add esi,1000
	 mov edi,[PointerToPicture]
	 mov eax,[ScreenPointer]

	 cmp [type],'BM'
	 jne no_unpakcing_bmp_file_1
	    ;BMP DECODER
	    call bmptoimg
	    mov [save_flag],1
	 no_unpakcing_bmp_file_1:


	 cmp [type],'GI'
	 jne no_unpakcing_file_1
	   ;GIF DECODER
	   sub edi,12
	   call ReadGIF
	   mov [save_flag],1
	 no_unpakcing_file_1:

	 call MovePictureToWorkScreen

	 mov [Scroll1CoordinatX],9
	 mov [Scroll2CoordinatY],89    
     ret
