function Timer(ncount, Param1)
     if not StopSheet then
          AlfingSheet();
          StopSheet=false;
     return;end;
return;end;
function gav()
-- if flags.comend then
     playeffect("gav");
-- return;end;
return;end;
-- CreateConsole()
-- WriteToConsole(tostring(flags.comx1))
function SheetSwitched (ncount)
     StopSheet=true;
return;end;
function gameinput (sender,obj_id,attachedID)
  if sender==12 then
  if SLevel==1.0 then return;end;
      if obj_id==164 then
      AddElement("gr",164);
      SetAlfaSheet(2.5)
      setcolor(obj_id,0,0,0,0.5,1);
      MoveObjectToTree(164);
      flags.ru4ka=true;
     end;
    if obj_id==104 then
    BlockCursor(false)
    WriteToConsole("12")
      AddElement("gr",104); 
      SetAlfaSheet(2.5)
      setcolor(104,0,0,0,0.5,1);
      MoveObjectToTree(104); 
    end;
    if obj_id ==155 or obj_id == 141 then
      AddElement("gr",obj_id);
      SetAlfaSheet(2.5)
      setcolor(obj_id,0,0,0,0.5,1);
      MoveObjectToTree(obj_id);
     end;
    if flags.loc1 then
      if flags.loc1 and flags.loc2 and flags.loc3 then
      flags.loc1= false;
          flags.levelcomplete=true;
          DarkScreen(true);
          ShowMenu(false)
      return; end;  
      CreateWindow(150,250,"199",nil,nil,250,30);
        --playeffect("01");  
      --playeffect("01");
    return;end;

  return;end;
  if sender == 2 then
    RemoveFromMouse(object);
    MessageProc(sender,obj_id);
  return;end;  
  if sender == 100 then
    if flags.comx then
      speciale_action(2,12121,true);
      flags.comx= false
      flags.comx1= true;
      add_free_leaf("map2",1,101);
      set_satelite_leaf("barton_vhod");
      DoFile(1,101)
    return;end;
  return;end;
if sender==33 then
    BlockCursor(false);
    if obj_id==501 then -- тёмная плашка
      BlockCursor(false);
      if whole_darkness then
         if flags.levelcomplete then
          SetAlfa(500,0,1,1);
          speciale_action(4,500);
          BlockCursor(true);
        return;end;      
         --затемнилось
      return;end;
      whole_darkness=false;
         -- растемнилось
      AddParticleToObject(72,"pu4ok",228,159);
      MoveEmiter("pu4ok",228,159);
      if not flags.minicomplete16 then
        StartEmiter("pu4ok");
      end;    

    return;end;     
    if obj_id==503 then --название levовня
        BlockCursor(false);
      if whole_darkness then
         --затемнилось
      return;end;      
      -- проявление меню вывод собщений в начале levовня ----
      ShowMenu(true);
      -- SetDrawSheet("re",true)
      -- SetDrawSheet("gr",true)
      savegame(SaveLevel());
       CreateWindow(150,250,"198",nil,nil,250,30);       
      --playeffect("01");       
      ------
    return;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 obj_id==501 then
  --        if whole_darkness then
        if flags.levelcomplete then
          LoadNextLevel()
        return;end;        
            DarkScreen(false);
            whole_darkness=false;
          SetAlfa(503,1,0,1);
      return;end;    
      if obj_id==72 then -- мини-игра адрес
        if (not flags.minicomplete16) then          
          if attachedID == 102 then
          playeffect("29");  
            RemoveFromMouse(attachedID);
            --SetAlfaSheet(2.0)
            Set_Cursor(72,3);
            add_free_leaf("Root","mini16",0,26);-- Добавляет чистый лист
            set_satelite_leaf("barton_vhod");
            DoFile(0,26)
            mini_create();
            flags.nohints=true;
          return; end;          
          if (attachedID ~= 102) and (attachedID>-1) then
          RemoveFromMouse(attachedID);
            CreateWindow(150,250,"200",nil,nil,250,30);
            --playeffect("01");
          return; end;          
          if attachedID==-1 then
             CreateWindow(150,250,"201",nil,nil,250,30);
             --playeffect("01");
          return; end;      
        return; end;    
      return; end;  
    if (not flags.address) then      
      if obj_id~=72  then --кликаем на активный объект
        CreateWindow(150,250,"201",nil,nil,250,30);
        --playeffect("01");
          return; end      
    return;end;
    if obj_id~=164 and obj_id~=66 and (obj_id > 1) and (not flags.door) then
    RemoveFromMouse(attachedID);
      CreateWindow(150,250,"264",nil,nil,250,30);
      --playeffect("01");
    return; end;
      if obj_id == 164 then
        collaps_obj(obj_id,0,0,10,0);
        playeffect("20");
      return; end;
      if obj_id == 66 then
        if (not flags.door) then
          if not flags.enter then
            if attachedID == 164 then
            playeffect("06");  
              RemoveFromMouse(attachedID);
              -- SetAlfaSheet(2.0)
              DeleteElement("gr",attachedID);
              speciale_action(2,65);
              Set_Cursor(66,1);
              Set_Cursor(65,1);
              flags.enter=true;
              ShowMenu(false);
              -- SetDrawSheet("re",false)
              -- SetDrawSheet("gr",false)
              frame=0;
              add_free_leaf("comics",1,50);
              set_satelite_leaf("barton_vhod");
              DoFile(1,50)
            return; end;
            if (attachedID ~= 164) and (attachedID>-1) then
            RemoveFromMouse(attachedID);
              CreateWindow(150,250,"200",nil,nil,250,30);
              --playeffect("01");
            return; end;
            if attachedID==-1 then
              CreateWindow(150,250,"202",nil,nil,250,30);
              --playeffect("01");
            return; end;
          return; end;  
        return; end;    
        if attachedID==-1 then
          if (not flags.first) then
            setcurentleaf("barton_zal",1,1);
            playeffect("door");            
            SwitchToSheet("re");
            whole_darkness=false;
            DarkScreen(true);
            SetAlfa(503,0,1,1);
            speciale_action(4,503)
            flags.first=true
            SwitchToSheet("re");
            ShowMenu(false)
          return; end;
        setcurentleaf("barton_zal",1,1);
        playeffect("door");
        return; end;
      return; end;
    if flags.door then
    if obj_id==44 then -- обрабатываем объект "лампочка"
      if flags.lamp then
        CreateWindow(150,250,"203",nil,nil,250,30); 
        --playeffect("01");
      return; end;
      if (not flags.lamp) then
          if (not flags.stairs) then
            if attachedID == 155 then
            playeffect("6");  
              flags.stairs = true;
              CreateWindow(150,250,"205",nil,nil,250,30); 
              --playeffect("01");
              RemoveFromMouse(attachedID);
              DeleteElement("gr",attachedID);  
              SetAlfaSheet(2.0)
              speciale_action(2,56);    
              speciale_action(2,57);              
            return; end;
            if attachedID ~= 155 and attachedID>-1 then
            RemoveFromMouse(attachedID);
              CreateWindow(150,250,"200",nil,nil,250,30);   
              --playeffect("01");              
            return; end;
            if attachedID ==-1 then    
              CreateWindow(150,250,"204",nil,nil,250,30);
              --playeffect("01");
            return; end;
           return; end;  
          if attachedID==110 then-- заменить 
          -- BlockCursor(true)
          playeffect("6");  
              RemoveFromMouse(attachedID);
              DeleteElement("gr",attachedID);  
              SetAlfaSheet(2.0)
              speciale_action(2,44);
              speciale_action(2,42);              
              Set_Cursor(44,3);
              setcolor(104,1,0,0,1,1);
              playeffect("20");    
              collaps_obj(104,0,0,10,0);    --добавили лампочку              
              speciale_action(2,56);
              speciale_action(2,57);              
              StopEmiter("lamp");              
              flags.lampo4ka =true;
          return; end;
          if attachedID~=110 and attachedID>-1 then-- заменить 
          RemoveFromMouse(attachedID);
               CreateWindow(150,250,"200",nil,nil,250,30);    
               --playeffect("01");
          return; end;
          if attachedID ==-1 then    
            CreateWindow(150,250,"206",nil,nil,250,30);
            --playeffect("01");
          return; end;
      return; end;  
    return; end;      
      if obj_id == 48 then -- обрабатываем объект "щитовая"
          if flags.energyclose and attachedID~=141 then
            RemoveFromMouse(attachedID);
                CreateWindow(150,250,"207",nil,nil,250,30);
            --playeffect("01");
        return; end;  
          if flags.energyclose and attachedID==141 then
          playeffect("MetalOpen");  
                      flags.energyclose=false;  
            Set_Cursor(46,3);
            speciale_action(2,46);
            speciale_action(2,48);
            speciale_action(2,47);
            speciale_action(2,49);
            speciale_action(2,45);
            Set_Cursor(45,2);
            CreateWindow(150,250,"208",nil,nil,250,30);
            --playeffect("01");
            RemoveFromMouse(attachedID);
            DeleteElement("gr",attachedID);
            SetAlfaSheet(2.0)
            StopEmiter("zvezd1"); 
            AddParticleToObject(45,"Svet4",225,361);
            MoveEmiter("Svet4",225,361);
            if (not flags.vikl) then
              StartEmiter("Svet4"); 
            end;
        return; end;  
      return; end;        
      if attachedID==-1 and flags.address then
        if obj_id==43 then  
          if not flags.minicomplete35 then
            CreateWindow(150,250,"203",nil,nil,250,30);   
            --playeffect("01");
          return end;
        return end;
        if obj_id==202 then  
        if not flags.clo then
          speciale_action(2,78);
          speciale_action(4,78);
          speciale_action(2,75);
          speciale_action(4,75);
          speciale_action(2,74);
          speciale_action(4,74);
          speciale_action(2,80000);
          flags.fonaction = false
          set_visible_object(66, true)
          speciale_action(2,202);
        return end;
        return end;
        if obj_id == 45 then -- открытая щитовая
        if (not flags.energyclose) then --мини-игра сеть
          if (not flags.vikl) then --мини-игра сеть
            speciale_action(2,78,true);
            speciale_action(4,78);
            Set_Cursor(78,4);
            speciale_action(2,75,true);
            speciale_action(4,75);
            speciale_action(2,74,true);
            speciale_action(4,74);
            speciale_action(2,80000,true);
            flags.fonaction = true
            set_visible_object(66, false)
            speciale_action(2,202,true);
          return; end; 
          if flags.light then
          if (not flags.minicomplete35) then --мини-игра сеть
            playeffect("29");
            add_free_leaf("Root","mini35",0,45);-- Добавляет чистый лист
            set_satelite_leaf("barton_vhod");
            DoFile(0,45)
            mini_create();
            flags.nohints=true;
          return; end; 
          return; end; 
        return; end;
        return; end; 
        if obj_id==78 then  
          playeffect("18");
          speciale_action(2,78);
          set_visible_object(75,false)
          -- speciale_action(2,75,true);
        --  WriteToConsole("xz\n")
          StartTimer(2100,1.5);  
          AddParticleToObject(44,"lamp",665,177);
          MoveEmiter("lamp",665,177);
          if not flags.lampo4ka then
            StartEmiter("lamp"); 
          end;          
          flags.clo= true;
        return end;
        if obj_id ==155 or obj_id == 141 then
          collaps_obj(obj_id,0,0,10,0);
          playeffect("20");
          
        return; end;
        if obj_id > 0 and obj_id < 300 and attachedID ==-1 then --кликаем на активный объект
          if obj_id==4 or obj_id==164 then
          return; end;
          collaps_obj(obj_id,0,0,10,1);
          playeffect("20");
        return 0; end
      return;end
      return; end;
  return; end;
  if sender==14 then
      StopSheet=true;
      object=obj_id
    if obj_id>0 then
      addObjectToMouse(obj_id);
    return; end;
  return; end;
     if sender==36 then          
          if obj_id==9999 then
               if not StopSheet then
                    AlfingSheet();
                    StopSheet=false;
               return;end;
          return;end;    
          if obj_id==2100 then
          speciale_action(2,74);
          speciale_action(2,202);
          speciale_action(2,80000);
          flags.fonaction = false
          set_visible_object(66, true)
          flags.lamp = false;
          flags.vikl = true;
          speciale_action(2,43);
          speciale_action(2,42);
          Set_Cursor(45,3);
          Set_Cursor(43,3);
          Set_Cursor(44,2);
          StopEmiter("Svet4");
          return;end;       
     return;end;  
-----------------------------------------------На сцене отработали все объекты-------------------------
  if sender==4 then 
  -- WriteToConsole("sender = 4, lev1.0".." "..sender.."\n")
  if SLevel==1.0 then return;end;  
    flags.loc1 = true;
  return; end;  
------------------------------------------------------------------------------------------------------------------  
end
function SelectRandom()
if not flags.minicomplete16 then
  selectrandomobject(1.5,72);
end;
if not flags.door and  flags.minicomplete16 then
  if not flags.ru4ka then
    selectrandomobject(1.5,164);
    flags.ru4ka=true;
  end;
  selectrandomobject(1.5,66);
end;
idObject=GetRandomObject();
if idObject==104 then
  if not flags.vikl then
  if flags.energyclose then
    selectrandomobject(1.5,48);
  end;
    selectrandomobject(1.5,45);
  end;
    selectrandomobject(1.5,44);
  end;
  if flags.loc1 then
    if flags.light and (not flags.minicomplete35) then
      selectrandomobject(1.5,45);
    end;
  selectrandomobject(1.5,66);
  end;
    selectrandomobject(1.5,idObject);
  end;
  function SelectRandomRadar(idObject)
  if idObject==104 then
    selectrandomobject(1.5,44);
  end;
    selectrandomobject(1.5,idObject);
  end;