local Index1=-1;
local Index2=-1;
function mini_create ()
  show_help_wnd=true;
  init_mini(1);
------------------------ТАК ДОЛЖНО БЫТЬ - НАЧАЛО--------------------------------
  -- ОПИСАНИЕ ПАРАМЕТРОВ ДЛЯ ИГРЫ ПЯТНАШКИ НА ГРАФЕ.
--  1-й параметр - Код игры. Код для этой игры - 33.
--  2-й параметр - Таблица описывающая граф и представленные в нём данные.
--                 P.S. Пример описания графа:
--                        GraphJunction=
--                          {
--                            nJunction=9,
--                            Data=
--                              {
--                                {1004,1001,{1,3,-1}},
--                                {1005,1002,{0,2,4,-1}},
--                                {1003,1003,{1,5,-1}},
--                                {1006,1004,{0,4,6,-1}},
--                                {1001,1005,{1,3,5,7,-1}},
--                                {1002,1006,{2,4,8,-1}},
--                                {1007,1007,{3,7,-1}},
--                                {1008,1008,{4,6,8,-1}},
--                                {  -1,  -1,{4,7,-1}},
--                              }
--                            };
--  3-й параметр - X-координата верхнего левого угла первого узла графа.
--  4-й параметр - Y-координата верхнего левого угла первого узла графа.
--  5-й параметр - Ширина первого узла графа в пикселях.
--  6-й параметр - Высота первого узла графа в пикселях.
--                              ...
--  (4*i-1) параметр - X-координата верхнего левого угла i-го узла графа.
--  (4*i+0) параметр - Y-координата верхнего левого угла i-го узла графа.
--  (4*i+1) параметр - Ширина i-го узла графа в пикселях.
--  (4*i+2) параметр - Высота i-го узла графа в пикселях.
--                              ...
--  (4*2-й-1) параметр - X-координата верхнего левого угла последнего узла графа.
--  (4*2-й+0) параметр - Y-координата верхнего левого угла последнего узла графа.
--  (4*2-й+1) параметр - Ширина последнего узла графа в пикселях.
--  (4*2-й+2) параметр - Высота последнего узла графа в пикселях.
--  (4*2-й+3) параметр - сдвиг содержимого узла по оси X относительно
--                       верхнего левого угла узла.
--  (4*2-й+4) параметр - сдвиг содержимого узла по оси Y относительно
--                       верхнего левого угла узла.
------------------------ТАК ДОЛЖНО БЫТЬ - КОНЕЦ---------------------------------
---------------------------ТАК ЕСТЬ - НАЧАЛО------------------------------------
  -- ОПИСАНИЕ ПАРАМЕТРОВ ДЛЯ ИГРЫ ПЯТНАШКИ НА ГРАФЕ.
--  1-й параметр - Код игры. Код для этой игры - 33.
--  2-й параметр - Количество вершин графа.
--  3-й параметр - Количество вершин графа, описанных непосредственно в функции
--                 create_mini.
--  4-й параметр - Данные представленные в первом узле графа.
--  5-й параметр - Данные, которые должны быть представленны в первом узле графа.
--  6-й параметр - Номер узла, на который указывает данный узел.
--  7-й параметр - Ещё один номер узла, на который указывает данный узел.
--                 P.S. И так должны быть перечислены все узлы, на который
--                      указывает данный узел, после чего указать -1-й узел, что
--                      означает что список соседей для данного узла закончен.
--                      Затем идёт аналогичный список для другого узла.
--                 P.P.S. Затем идут остальные параметры, описанные ниже без
--                        номеров.
--  ?-й параметр - X-координата верхнего левого угла i-го узла графа.
--  ?-й параметр - Y-координата верхнего левого угла i-го узла графа.
--  ?-й параметр - X-координата нижнего правого угла i-го узла графа.
--  ?-й параметр - Y-координата нижнего правого угла i-го узла графа.
--  предпоследний параметр - сдвиг содержимого узла по оси X относительно
--                           верхнего левого угла узла.
--  последний параметр     - сдвиг содержимого узла по оси Y относительно
--                           верхнего левого угла узла.
---------------------------ТАК ЕСТЬ - КОНЕЦ-------------------------------------
  create_mini(33,9,9,657,651,1,3,-1,655,652,0,2,4,-1,656,653,1,5,-1,658,654,0,4,6,-1,652,655,1,3,5,7,-1,651,656,2,4,8,-1,654,657,3,7,-1,653,658,4,6,8,-1,-1,-1,5,7,-1,74,161,162,367,172,161,261,367,269,161,359,367,368,161,457,367,465,161,555,367,563,161,652,367,661,161,751,367,759,161,848,367,858,161,947,367,8,26,-1);
--[[
  create_mini
    (
      33,9,
      657,651,1,3,-1,
      655,652,0,2,4,-1,
      656,653,1,5,-1,
      658,654,0,4,6,-1,
      652,655,1,3,5,7,-1,
      651,656,2,4,8,-1,
      654,657,3,7,-1,
      653,658,4,6,8,-1,
      -1,-1,4,7,-1,
      74,161,162,367,
      172,161,261,367,
      269,161,359,367,
      368,161,457,367,
      465,161,555,367,
      563,161,652,367,
      661,161,751,367,
      759,161,848,367,
      858,161,947,367
    );
--]]
end;
--function mini_msg_proc (id)
function gameinput (sender,id,attachedID)

  if sender==30 then
      setcurentleaf("hotel",2,0);
      flags.nohints=false;
    if flags.minicomplete33 then
    playeffect("29");
    DeleteElement("gr",26);  
    StopEmiter("Svet"); 
    CreateWindow(150,250,"205",11,nil,250,30);
    --playeffect("01");
    Set_Cursor(50,3);
    collaps_obj(1656,0,0,10,0);

          savegame(SaveLevel());
    return;end;
  return; end;
  
  if sender==10 then
    flags.minicomplete33=true;
      CreateWindow(200,250,"314",1,"m&i",63,107,"sponge",226,13);
  return; end;
  if sender==35
    then
    if not flags.minicomplete33 then
      iIndex1,iIndex2=gtrGetEmptyNeighbours(1);
      InfoFromGraphTravel(iIndex2);
    end;
      return; end;
  if sender==39
    then
  --messagebox("")
      -- Здесь убрать все подсветки
      if not flags.minicomplete33 then
      InfoFromGraphTravel(-1);
    end;
      return;
    end;
  if sender==37 then
     skipping=true;
  return;end;  
  -- if sender==36 and id==2100 then
    -- clear_satelite_leaf("hotel");
  -- return;end;    
  if sender==26 then
    if id==100 then
    set_visible_object(5001,true)
    end;
    if id==1 then
      clear_satelite_leaf("hotel");
    return; end;
  return; end;  
  if sender==100 then
    if not help then
      CreateWindow(200,200,"2",100,"messageinfo",30,50)
      --playeffect("01");  
      help=true;
    end;
  return;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
       helpbtn=true;
    return;end
    if id==5000 and skipping then
      if not flags.minicomplete33 then
        finish_mini_game(true);
      return;end;  
    return;end;
    if id==645 then
      playeffect("17");  
      finish_mini_game(false);
      clear_satelite_leaf("hotel");
      DeleteResource("m33_close"         );
      DeleteResource("m33_fon"           );
      DeleteResource("keys"           );
      DeleteResource("m33_gvozdi"         );
      DeleteResource("podsv"         );
    return;end;
      if not flags.minicomplete33 then
      if id>=651 and id<=658  then
      fGame=true;
      add_to_mouse(id);
--      mousepresed=true;
      objectid=id;
    return; end  
    if id ==666 then
        playeffect("KeyRotate");
      check_mini_game_GraphTravel(-1);
      speciale_action(2,666);
      flags.rest =true;
    return; end;
    end;
    return;end;
    if sender==6 --Отпустили левую кнопку мышки
  then
    if helpbtn then
      CreateWindow(200,200,"2",100,"messageinfo",30,50)
      playeffect("11");
      helpbtn=false;
    end;
      if not flags.minicomplete33 then
    if fGame==true then
          playeffect("key");
        speciale_action(4,650);
        RemoveFromMouse(objectid);  
        check_mini_game_GraphTravel(objectid);
        fGame=false;
        objectid=0;
    return;end;  
    end;  
    if flags.rest then
      speciale_action(2,666);
      flags.rest= false;
    return; end;
  return; end;  

end;
function GraphTravelReset(nCount)
  SetObjectPosition(657, 84,187);
  SetObjectPosition(655,183,187);
  SetObjectPosition(656,278,187);
  SetObjectPosition(658,375,187);
  SetObjectPosition(652,477,187);
  SetObjectPosition(651,575,187);
  SetObjectPosition(654,668,187);
  SetObjectPosition(653,767,187);
end;
function InfoFromGraphTravel(Param2)

  if Param2~=-1 and lastplawka~=Param2 then
   -- messagebox("1")
    SetObjectPosition(648,Fields[Param2+1],161)
    if not flags.podsv then
    speciale_action(2,648)
    flags.podsv =true;
    return; end;
    lastplawka=Param2;
    return;
  end;
  if Param2==-1 then
     -- messagebox("2")
     if flags.podsv then
    speciale_action(2,648)
    flags.podsv= false;
    return; end;
    lastplawka=-1;
  end;
end;