glVersionProfiles=7;      -- текущая версия профайлов
-- общая инфа для игры
gGlobalGameInfo = {
    gLevelCount = { 52, 12 };   -- число уровней для режимов
    gCheatMode = 1;             -- читы
    --gFarm = {1,14,29,45,9999};  -- уровни фермы
    gFarm = {1,14,27,40,9999};  -- уровни фермы
    gCountHearts = { 5, 4, 3 }; -- число сердечек в зависимости от уровня сложности(индекс=уровень сложности)
    gLevelCompleteImg = { 
        { personages={"dad"}, level=1 };
        { personages={"mother", "dad"}, level=3 };
        { personages={"sister","dad","mother"}, level=25, level_img={ level_45="dad",level_46="sister" } };
    };
    gEndlessWarnTime = 10;   --время начала мигания неподобранных продуктов на endless 
    gEndlessEndTime  = 30;  --время исчезания неподобранных продуктов на endless
};
gDopTime = 10;          -- доп.время для непонятливого игрока
gAwekingTime = 6;
endles_game_music_loops={3,3,3,3,3};
if (GetConfig("firstpeek") == "1") then
--ограничим число уровней 20
    gGlobalGameInfo.gLevelCount[1] = 20;
end

gGameMode = 0;  -- текущий игровой режим
gEndlessDifficulty = 1; -- сложность бесконечного уровня(easy=1,medium=2,hard=3)
gLevelStoryMax = 1;
-- настройки текущего игрока
gGlobalPlayerInfo = {
    gVersion=glVersionProfiles;-- версия профайлов
    gLevelNumMax = 1;        -- максимальный доступный уровень
    gLevelNum = 1;           -- номер уровня
    gMoney = 0;              -- деньги
    gScore = 0;              -- очки
    gExpert = 0;             -- кол-во экспертов взятых за игру
    gTrophyes = {};          -- список полученных трофеев
    gProducts = {};          -- список собранных продуктов
};

function SetDefaultInfo()
    gGlobalPlayerInfo = {
        gVersion=glVersionProfiles;-- версия профайлов
        gLevelNumMax = 1;        -- максимальный доступный уровень
        gLevelNum = 1;           -- номер уровня
        gMoney = 0;              -- деньги
        gScore = 0;              -- очки
        gExpert = 0;             -- кол-во экспертов взятых за игру
        gTrophyes = {};          -- список полученных трофеев
        gProducts = {};          -- список собранных продуктов
    };
    gLevelStoryMax = 1;
end

function LoadFarm(aFarmNum, aScriptRunAfterWork)

    if( gGlobalPlayerInfo.gCurrentFarm ) then
        SectionForUnloading = {"farm_"..gGlobalPlayerInfo.gCurrentFarm};
    end    
    gGlobalPlayerInfo.gCurrentFarm = aFarmNum;
    SectionForLoading = {"farm_"..gGlobalPlayerInfo.gCurrentFarm};
    ScriptRunAfterWork = aScriptRunAfterWork;
    DoModal("scripts/load.lua");
end

function CheckVersionProfiles()
    if (gGlobalPlayerInfo.gVersion ~= glVersionProfiles) then
        gGlobalPlayerInfo = { };
        SetDefaultInfo();
    end
end

function IsLevelExpert(aLevel)
    if (gGlobalPlayerInfo["lev"..aLevel] ~= nil) then
        if (gGlobalPlayerInfo["lev"..aLevel].expert == 1) then
            return 1;
        end
    end
    return 0;
end

function GetLevelFarm(aLevel)    
    for i=1, table.getn(gGlobalGameInfo.gFarm) do    
        if gGlobalGameInfo.gFarm[i] > aLevel then return i-1; end;       
    end
    return 0;
end


function GetCountHeartsDiff()
    if (gEndlessDifficulty >= 1 and gEndlessDifficulty <= table.getn(gGlobalGameInfo.gCountHearts)) then
        return gGlobalGameInfo.gCountHearts[gEndlessDifficulty];
    end
    return 0;
end
-- вернуть номер фермы по уровню(от 1 до 4)
function GetFarmNum(aLevelNum)
    local size = table.getn(gGlobalGameInfo.gFarm);
    for i = 1,size,1 do
        if (gGlobalGameInfo.gFarm[i] > aLevelNum) then
            return (i - 1);
        end
    end
    return size;
end

function GetPersonageFromLevComp(aLevNum)
    local size = table.getn(gGlobalGameInfo.gLevelCompleteImg);
    local tableImg;
    local lev_max = 1;
    local ind = 1;
    for i=1,size,1 do
        tableImg = gGlobalGameInfo.gLevelCompleteImg[i];
        if (tableImg.level <= aLevNum) then ind = i; end
    end
    tableImg = gGlobalGameInfo.gLevelCompleteImg[ind];
    local sub_ind_size = table.getn(tableImg.personages);
    local cur_ind = aLevNum - tableImg.level;
    cur_ind = cur_ind - ToInt(cur_ind/sub_ind_size) * sub_ind_size + 1;
    --проверка на пришитый к номеру уровня image
    if (tableImg.level_img ~= nil) then
        if (tableImg.level_img["level_"..aLevNum] ~= nil) then
            return tableImg.level_img["level_"..aLevNum];
        end
    end
    return tableImg.personages[cur_ind];
end


--[[
gGlobalPlayerInfo = {
    gLevelNum = 1;           -- номер уровня
    gMoney = 0;              -- деньги
    gScore = 0;              -- очки
    gTrophyes = { tr1=2 };       -- список полученных трофеев
    gProducts = {
        milk=10;
    };
    lev1 = {
        trophy={ tr1=1 };             -- трофеи
        score=1000;
        expert=1;
        prods={
            milk=10;
        };
    };
};
--]]