function MessageFromMenu(nCount,Param1)
-- if Param1==2000029 then
	-- CreateWindow(200,200,"4",100,"messageinfo") 
-- return;end;
showoptons(0);
return;end;

local StartId=--[[33550336--]]100000001;
local LastId=0;
local ExchangeTime=0.2;

function mini_create()
  show_help_wnd=true;
  init_mini(1);
  -- ОПИСАНИЕ ПАРАМЕТРОВ ДЛЯ ИГРЫ "ПЛИТКА"
--  1-й параметр - Код игры. Для игры "Плитка" код - 27.
--  2-й параметр - Ширина доски в полях.
--  3-й параметр - Высота доски в полях.
--  4-й параметр - Количество цветов (типов плиток).
--  5-й параметр - X-координата верхнего левого угла доски в пикселях.
--  6-й параметр - Y-координата верхнего левого угла доски в пикселях.
--  7-й параметр - Ширина поля в пикселях.
--  8-й параметр - Высота поля в пикселях.
--  9-й параметр - X-координата текстового поля для указателя необходимого количества очков.
-- 10-й параметр - Y-координата текстового поля для указателя необходимого количества очков.
-- 11-й параметр - X-координата текстового поля для указателя текущего количества очков.
-- 12-й параметр - Y-координата текстового поля для указателя текущего количества очков.
-- 13-й параметр - Стартовый идентификатор для дополнительных объектов (для плиток).
--                 Должен быть свободен коридор шириной (2-й*3-й+2).
-- 14-й параметр - Степень тусклости цветов отмеченной плитки.
--                 P.S. То же что и у пуззлей, только в процентах.
  create_mini(27,10,10,4,175,51,58,58,790,130,790,192,StartId,50);
end;
--function mini_msg_proc (id)
function gameinput (sender,id,attachedID)

	
	if sender==16 then	 
		if not help then
			help=true;
			CreateWindow(200,200,"4",100,"messageinfo")
		end;			
		BlockCursor(false);
	return;end;

  if sender==30 then
    setcurentleaf("albert_house",17,0);
    DarkScreen(false);
	ShowMenu(true);
    if flags.minicomplete3 then
	   StopEmiter("Plitka");
      speciale_action(2,113,true);
	  setcolor(113,0,0,0,1,1);
      Set_Cursor(69,3)
	  savegame(SaveLevel())
    return;end;
  return; end;
  
  if sender==36 then
	if id==2100 then
	BlockCursor(false);
	clear_satelite_leaf("albert_house");
	return;end;
  return;end;
 	if sender==37 then
	   skipping=true;
	return;end; 
  if sender==10 then
    flags.minicomplete3=true;
	playeffect("miniC");
	StartTimer(2100,2);
    BlockCursor(true);

  return; end;

  if sender==6
    then
      if LastId==0
        then
          check_mini_game_Abaciscus(false);
        end
      return
    end;
  

  if sender==33
    then
      if id==LastId
        then
          check_mini_game_Abaciscus(true);
          return;
        end;
      if id==-LastId
        then
          LastId=0;
        end
    end;
	
	if pause_state then
		if sender==1 or sender==6 or sender==14 then
			pause_state=false;
			set_visible_object(11111,false);
		end;	
	return;end;	
  if sender==1 then
	if id==6000 then
		   CreateWindow(200,200,"4",100,"messageinfo")
	return;end;	 
	if id==5000 and skipping then
		if not flags.minicomplete3 then
			playeffect("skip");
			finish_mini_game(true);
		return;end;	
	return;end;
	
    if id==1001 then
        finish_mini_game(false);
		playeffect("close");
      clear_satelite_leaf("albert_house");
      DeleteResource("cm1_bg");
      DeleteResource("cm1_btn");
      DeleteResource("cm1_light");
      DeleteResource("cm1_reset");
      DeleteResource("cm1_yellow");
      DeleteResource("cm1_violet");
      DeleteResource("cm1_beige");
      DeleteResource("cm1_pink");
    return;end;
  return;end;	
end;
--[[function ShutdownAbaciscus(nCount,Data)
  local s="Came:\n"..Data.."\n\nBecame:\n";
  
  for i=1,nCount,1 do
    local number=tonumber(strsub(--11*i-10,11*i-1));
    
    s=s..number.."\n";
  end;
  messagebox(s);
end;--]]
function ShutdownAbaciscus(nCount,Param1,Param2,Param3,Param4,Param5,Param6,Param7,Param8,Param9,Param10,Param11)
  local Width=Param1;
  local StartId={Param2,Param3,Param4,Param5,Param6,Param7,Param8,Param9,Param10,Param11};
--  local s="";

  LastId=StartId[nCount-1]+Width-1;
  for i=1,nCount-1,1 do
    for j=1,Width,1 do
--      s=s..(StartId[i]+j-1).."\n";
      SetAlfa(StartId[i]+j-1,1,0,ExchangeTime/2)
    end
  end;
--  messagebox(s)
end;
function TurnOnAbaciscus(nCount,Param1,Param2,Param3,Param4,Param5,Param6,Param7,Param8,Param9,Param10,Param11)
  local Width=Param1;
  local StartId={Param2,Param3,Param4,Param5,Param6,Param7,Param8,Param9,Param10,Param11};
--  local s="";

  LastId=-LastId;
  for i=1,nCount-1,1 do
    for j=1,Width,1 do
--      s=s..(StartId[i]+j-1).."\n";
      SetAlfa(StartId[i]+j-1,0,1,ExchangeTime/2)
    end
  end;
--  messagebox(s)
end;
function RightSquare(nCount,Param1)
--0   -- неправильный ход
--1   --отмена хода
--2   --правильно выбранная плитка
--3   --собранный прямоугольник
--4   --игра закночилась
	if Param1==1 then 
		playeffect("rightP");
	return;end;
	if Param1==0 then 
		playeffect("wrongP");
	return;end;
end;
function mini_delete()

end;