function OnSceneLoad(screen)
    LoadData(screen)
    DefaultOnSceneLoad('data/Scenes/37_Grot_HO.lua', 'hidden_object', 'data/Scenes/37_Grot_Main.lua')

    local level = play_field:GetLevelScreen()
    level:AddTask(CreateTask('ANGEL', '', 'Angel'))
    level:AddTask(CreateTask('BARREL', '', 'Barrel'))
    level:AddTask(CreateTask('BAT', '', 'Bat'))
    level:AddTask(CreateTask('BOTTLE', 'BOTTLES', 'Bottle', 'Bottle1', 'Bottle2', 'Bottle3'))
    level:AddTask(CreateTask('CANDLE', 'CANDLES', 'Candle', 'Candle1', 'Candle2'))
    level:AddTask(CreateTask('DRUM', '', 'Drum'))
    level:AddTask(CreateTask('GAS_JET', '', 'Gas_jet'))
    level:AddTask(CreateTask('FRENCH_HORN', '', 'Horn'))
    level:AddTask(CreateTask('MAIZE', '', 'Maize'))
    level:AddTask(CreateTask('SHIP', '', 'Ship'))
    level:AddTask(CreateTask('TOP_BOOT', '', 'Top_boot'))
    level:AddTask(CreateTask('WHEEL', '', 'Wheel'))

	play_field:IgnoreOnTestPoint('Layer_Angel_Over')
	play_field:IgnoreOnTestPoint('Layer_Barrel_Over')
	play_field:IgnoreOnTestPoint('Layer_Boot_Over')
	play_field:IgnoreOnTestPoint('Layer_Bottle_Over')
	play_field:IgnoreOnTestPoint('Layer_Horn_Over')
	play_field:IgnoreOnTestPoint('Layer_Wheel_Over')

	RegisterToolFindInfo('37_gas_jet')
	
	local waterDropsCompos = BuildWaterDropsComposition();
	waterDropsCompos:SetZ(110);
	waterDropsCompos:AttachTo(play_field);
	
end

function BuildWaterDropsComposition()

    createCompositionbackground = function()
    
        local compositionbackground = CreateCompositionSequence();
        local compositionDuration = 10;
        compositionbackground:SetDuration(compositionDuration);
    
    
        -- Layer Water_drop_1
        local element = createCompositionWaterDrop1();
        element:SetName("Water_drop_1");
        compositionbackground:AddElement(element);
        element:SetHotSpot(64, 300);
        element:SetParentElement(compositionbackground);
        element:SetXY(687.217697143555, 296.511505126953);
    
        element:SetScaleX(0.41359171106006);
        element:SetScaleY(0.58882948047505);
        element:SetAngle(0);
        element:SetOpacity(1);
    
        effector = element:GetEffector();
        effector:SetLifeTime(7.96, 9.56);
    
    
        effector:Play();
    
    
        -- Layer Water_drop_2
        local element = createCompositionWaterDrop1();
        element:SetName("Water_drop_2");
        compositionbackground:AddElement(element);
        element:SetHotSpot(64, 300);
        element:SetParentElement(compositionbackground);
        element:SetXY(528.947418212891, 305.592590332031);
    
        element:SetScaleX(0.67710522457358);
        element:SetScaleY(0.5801808318264);
        element:SetAngle(0);
        element:SetOpacity(1);
    
        effector = element:GetEffector();
        effector:SetLifeTime(5.72, 7.32);
    
    
        effector:Play();
    
    
        -- Layer Water_drop_3
        local element = createCompositionWaterDrop1();
        element:SetName("Water_drop_3");
        compositionbackground:AddElement(element);
        element:SetHotSpot(64, 300);
        element:SetParentElement(compositionbackground);
        element:SetXY(905.163619995117, 260.187194824219);
    
        element:SetScaleX(1.3460241434925);
        element:SetScaleY(1.20288353452911);
        element:SetAngle(0);
        element:SetOpacity(1);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0.52, 2.12);
    
    
        effector:Play();
    
    
        -- Layer Water_drop_4
        local element = createCompositionWaterDrop1();
        element:SetName("Water_drop_4");
        compositionbackground:AddElement(element);
        element:SetHotSpot(64, 300);
        element:SetParentElement(compositionbackground);
        element:SetXY(914.244674682617, 279.64665222168);
    
        element:SetScaleX(0.75818630565467);
        element:SetScaleY(0.74882948047505);
        element:SetAngle(0);
        element:SetOpacity(1);
    
        effector = element:GetEffector();
        effector:SetLifeTime(5.08, 6.68);
    
    
        effector:Play();
    
    
        -- Layer Water_drop_5
        local element = createCompositionWaterDrop2water();
        element:SetName("Water_drop_5");
        compositionbackground:AddElement(element);
        element:SetHotSpot(100, 300);
        element:SetParentElement(compositionbackground);
        element:SetXY(431.567565917969, 321.729736328125);
    
        element:SetScaleX(0.71945945945946);
        element:SetScaleY(1.06918918918919);
        element:SetAngle(0);
        element:SetOpacity(1);
    
        effector = element:GetEffector();
        effector:SetLifeTime(1.68, 6.68);
    
    
        effector:Play();
    
    
        -- Layer Water_drop_6
        local element = createCompositionWaterDrop2water();
        element:SetName("Water_drop_6");
        compositionbackground:AddElement(element);
        element:SetHotSpot(100, 300);
        element:SetParentElement(compositionbackground);
        element:SetXY(605.513519287109, 310.054061889648);
    
        element:SetScaleX(1.22054054054054);
        element:SetScaleY(1.34594594594595);
        element:SetAngle(0);
        element:SetOpacity(1);
    
        effector = element:GetEffector();
        effector:SetLifeTime(4, 9);
    
    
        effector:Play();
    
    
        -- Layer Water_drop_7
        local element = createCompositionWaterDrop2water();
        element:SetName("Water_drop_7");
        compositionbackground:AddElement(element);
        element:SetHotSpot(100, 300);
        element:SetParentElement(compositionbackground);
        element:SetXY(327.783782958984, 330.810806274414);
    
        element:SetScaleX(1);
        element:SetScaleY(1);
        element:SetAngle(0);
        element:SetOpacity(1);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 5);
    
    
        effector:Play();
    
        compositionbackground:Play();
    
        return compositionbackground;
    end
    
    createCompositionWaterDrop1 = function()
    
        local compositionWaterDrop1 = CreateCompositionSequence();
        local compositionDuration = 1.6;
        compositionWaterDrop1:SetDuration(compositionDuration);
    
    
        -- Layer Water_drop_1
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L3.png");
        element:SetName("Water_drop_1");
        compositionWaterDrop1:AddElement(element);
        element:SetHotSpot(27.75, 23.25);
        element:SetParentElement(compositionWaterDrop1);
        element:SetXY(60.5, 552.75);
    
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 1.6);
    
        effector:SetKey(_TRACK_SX, 0, 0.15044247787611);
        effector:SetKey(_TRACK_SY, 0, 0.2258064516129);
        effector:SetKey(_TRACK_SX, 0.8, 0.15044247787611);
        effector:SetKey(_TRACK_SY, 0.8, 0.2258064516129);
        effector:SetKey(_TRACK_SX, 0.92, 0.2212389380531);
        effector:SetKey(_TRACK_SY, 0.92, 0.9247311827957);
        effector:SetKey(_TRACK_SX, 0.96, 0.32743362831858);
        effector:SetKey(_TRACK_SY, 0.96, 1.13978494623657);
        effector:SetKey(_TRACK_SX, 1, 0.45132743362831);
        effector:SetKey(_TRACK_SY, 1, 1.12903225806453);
        effector:SetKey(_TRACK_SX, 1.04, 0.58407079646017);
        effector:SetKey(_TRACK_SY, 1.04, 1.06451612903227);
        effector:SetKey(_TRACK_SX, 1.12, 0.78761061946902);
        effector:SetKey(_TRACK_SY, 1.12, 1.00000000000001);
        effector:SetKey(_TRACK_SX, 1.2, 0.85840707964601);
        effector:SetKey(_TRACK_SY, 1.2, 0.7741935483871);
        effector:SetKey(_TRACK_SX, 1.28, 0.88495575221238);
        effector:SetKey(_TRACK_SY, 1.28, 0.17204301075269);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 0.8, 0);
        effector:SetKey(_TRACK_O, 0.92, 1);
        effector:SetKey(_TRACK_O, 1.12, 1);
        effector:SetKey(_TRACK_O, 1.28, 0);
    
        effector:Play();
    
    --[[
        -- Layer Water_drop_2
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L4.png");
        element:SetName("Water_drop_2");
        compositionWaterDrop1:AddElement(element);
        element:SetHotSpot(49.390243902439, 10.5);
        element:SetParentElement(compositionWaterDrop1);
        element:SetXY(58, 552.5);
    
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 1.6);
    
        effector:SetKey(_TRACK_SX, 0, 0.27710843373494);
        effector:SetKey(_TRACK_SY, 0, 0.28571428571429);
        effector:SetKey(_TRACK_SX, 0.92, 0.42738955823293);
        effector:SetKey(_TRACK_SY, 0.92, 0.42857142857143);
        effector:SetKey(_TRACK_SX, 1.12, 0.5459437751004);
        effector:SetKey(_TRACK_SY, 1.12, 0.61904761904762);
        effector:SetKey(_TRACK_SX, 1.56, 0.81927710843374);
        effector:SetKey(_TRACK_SY, 1.56, 0.71428571428571);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 0.92, 0);
        effector:SetKey(_TRACK_O, 1.12, 1);
        effector:SetKey(_TRACK_O, 1.56, 0);
    
        effector:Play();
    --]]
    
        -- Layer Water_drop_3
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L2.png");
        element:SetName("Water_drop_3");
        compositionWaterDrop1:AddElement(element);
        element:SetHotSpot(6.25, 16.5);
        element:SetParentElement(compositionWaterDrop1);
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 1.6);
    
        effector:SetKey(_TRACK_X, 0, 61.5);
        effector:SetKey(_TRACK_Y, 0, 87.25);
        effector:SetKey(_TRACK_X, 0.2, 61.5);
        effector:SetKey(_TRACK_Y, 0.2, 98);
        effector:SetKey(_TRACK_X, 0.36, 61.5);
        effector:SetKey(_TRACK_Y, 0.36, 111.25);
        effector:SetKey(_TRACK_X, 0.8, 61);
        effector:SetKey(_TRACK_Y, 0.8, 551.25);
        effector:SetKey(_TRACK_SX, 0, 1);
        effector:SetKey(_TRACK_SY, 0, 1);
        effector:SetKey(_TRACK_SX, 0.48, 0.93043478260869);
        effector:SetKey(_TRACK_SY, 0.48, 1.31558441558442);
        effector:SetKey(_TRACK_SX, 0.8, 1.39130434782609);
        effector:SetKey(_TRACK_SY, 0.8, 1.07142857142857);
        effector:SetKey(_TRACK_SX, 0.92, 2.04347826086957);
        effector:SetKey(_TRACK_SY, 0.92, 0.40476190476191);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 0.16, 0.4);
        effector:SetKey(_TRACK_O, 0.2, 0.8);
        effector:SetKey(_TRACK_O, 0.36, 1);
        effector:SetKey(_TRACK_O, 0.8, 1);
        effector:SetKey(_TRACK_O, 0.92, 0);
    
        effector:Play();
    
    
        -- Layer Water_drop_4
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L1.png");
        element:SetName("Water_drop_4");
        compositionWaterDrop1:AddElement(element);
        element:SetHotSpot(14.75, 4.75);
        element:SetParentElement(compositionWaterDrop1);
        element:SetXY(61, 68.75);
    
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 1.6);
    
        effector:SetKey(_TRACK_SX, 0, 0.78688524590164);
        effector:SetKey(_TRACK_SY, 0, 0.47368421052632);
        effector:SetKey(_TRACK_SX, 0.28, 0.57821617115865);
        effector:SetKey(_TRACK_SY, 0.28, 1.3381052631579);
        effector:SetKey(_TRACK_SX, 0.36, 0.36100305640456);
        effector:SetKey(_TRACK_SY, 0.36, 1.4781052631579);
        effector:SetKey(_TRACK_SX, 0.44, 0.26878994165046);
        effector:SetKey(_TRACK_SY, 0.44, 1.31743859649123);
        effector:SetKey(_TRACK_SX, 0.6, 0.28313420394554);
        effector:SetKey(_TRACK_SY, 0.6, 0.2821052631579);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 0.2, 1);
        effector:SetKey(_TRACK_O, 0.4, 0.9);
        effector:SetKey(_TRACK_O, 0.6, 0);
    
        effector:Play();
    
        compositionWaterDrop1:Play();
    
        return compositionWaterDrop1;
    end
    
    createCompositionWaterDrop2water = function()
    
        local compositionWaterDrop2water = CreateCompositionSequence();
        local compositionDuration = 5;
        compositionWaterDrop2water:SetDuration(compositionDuration);
    
    
        -- Layer Water_drop_1
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L3.png");
        element:SetName("Water_drop_1");
        compositionWaterDrop2water:AddElement(element);
        element:SetHotSpot(27.75, 23.25);
        element:SetParentElement(compositionWaterDrop2water);
        element:SetXY(96.5, 552.75);
    
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 4.96);
    
        effector:SetKey(_TRACK_SX, 0, 0.15044247787611);
        effector:SetKey(_TRACK_SY, 0, 0.2258064516129);
        effector:SetKey(_TRACK_SX, 0.8, 0.15044247787611);
        effector:SetKey(_TRACK_SY, 0.8, 0.2258064516129);
        effector:SetKey(_TRACK_SX, 0.92, 0.2212389380531);
        effector:SetKey(_TRACK_SY, 0.92, 0.9247311827957);
        effector:SetKey(_TRACK_SX, 0.96, 0.32743362831858);
        effector:SetKey(_TRACK_SY, 0.96, 1.13978494623657);
        effector:SetKey(_TRACK_SX, 1, 0.45132743362831);
        effector:SetKey(_TRACK_SY, 1, 1.12903225806453);
        effector:SetKey(_TRACK_SX, 1.04, 0.58407079646017);
        effector:SetKey(_TRACK_SY, 1.04, 1.06451612903227);
        effector:SetKey(_TRACK_SX, 1.12, 0.78761061946902);
        effector:SetKey(_TRACK_SY, 1.12, 1.00000000000001);
        effector:SetKey(_TRACK_SX, 1.2, 0.85840707964601);
        effector:SetKey(_TRACK_SY, 1.2, 0.7741935483871);
        effector:SetKey(_TRACK_SX, 1.28, 0.88495575221238);
        effector:SetKey(_TRACK_SY, 1.28, 0.17204301075269);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 0.8, 0);
        effector:SetKey(_TRACK_O, 0.92, 1);
        effector:SetKey(_TRACK_O, 1.12, 1);
        effector:SetKey(_TRACK_O, 1.28, 0);
    
        effector:Play();
    
    
        -- Layer Water_drop_2
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L4.png");
        element:SetName("Water_drop_2");
        compositionWaterDrop2water:AddElement(element);
        element:SetHotSpot(49.390243902439, 10.5);
        element:SetParentElement(compositionWaterDrop2water);
        element:SetXY(94, 552.5);
    
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 5);
    
        effector:SetKey(_TRACK_SX, 0, 0.44920719916704);
        effector:SetKey(_TRACK_SY, 0, 0.47089947089947);
        effector:SetKey(_TRACK_SX, 1.32, 0.36664881749219);
        effector:SetKey(_TRACK_SY, 1.32, 0.42328042328043);
        effector:SetKey(_TRACK_SX, 2.96, 0.93966086568496);
        effector:SetKey(_TRACK_SY, 2.96, 0.83597883597884);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 1.32, 0);
        effector:SetKey(_TRACK_O, 2.24, 0.6);
        effector:SetKey(_TRACK_O, 2.96, 0);
    
        effector:Play();
    
    
        -- Layer Water_drop_3
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L4.png");
        element:SetName("Water_drop_3");
        compositionWaterDrop2water:AddElement(element);
        element:SetHotSpot(49.390243902439, 10.5);
        element:SetParentElement(compositionWaterDrop2water);
        element:SetXY(94, 552.5);
    
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 5);
    
        effector:SetKey(_TRACK_SX, 0, 0.27710843373494);
        effector:SetKey(_TRACK_SY, 0, 0.28571428571429);
        effector:SetKey(_TRACK_SX, 0.92, 0.42738955823293);
        effector:SetKey(_TRACK_SY, 0.92, 0.42857142857143);
        effector:SetKey(_TRACK_SX, 1.12, 0.5459437751004);
        effector:SetKey(_TRACK_SY, 1.12, 0.61904761904762);
        effector:SetKey(_TRACK_SX, 1.56, 0.81927710843374);
        effector:SetKey(_TRACK_SY, 1.56, 0.71428571428571);
        effector:SetKey(_TRACK_SX, 2.4, 0.72377510040161);
        effector:SetKey(_TRACK_SY, 2.4, 0.53439153439153);
        effector:SetKey(_TRACK_SX, 4.92, 1.8);
        effector:SetKey(_TRACK_SY, 4.92, 1.56932773109243);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 0.92, 0);
        effector:SetKey(_TRACK_O, 1.12, 1);
        effector:SetKey(_TRACK_O, 1.56, 0);
        effector:SetKey(_TRACK_O, 2.4, 0);
        effector:SetKey(_TRACK_O, 3.76, 0.3);
        effector:SetKey(_TRACK_O, 4.92, 0);
    
        effector:Play();
    
    
        -- Layer Water_drop_4
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L2.png");
        element:SetName("Water_drop_4");
        compositionWaterDrop2water:AddElement(element);
        element:SetHotSpot(6.25, 16.5);
        element:SetParentElement(compositionWaterDrop2water);
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 5);
    
        effector:SetKey(_TRACK_X, 0, 97.5);
        effector:SetKey(_TRACK_Y, 0, 87.25);
        effector:SetKey(_TRACK_X, 0.2, 97.5);
        effector:SetKey(_TRACK_Y, 0.2, 98);
        effector:SetKey(_TRACK_X, 0.36, 97.5);
        effector:SetKey(_TRACK_Y, 0.36, 111.25);
        effector:SetKey(_TRACK_X, 0.8, 97);
        effector:SetKey(_TRACK_Y, 0.8, 551.25);
        effector:SetKey(_TRACK_SX, 0, 1);
        effector:SetKey(_TRACK_SY, 0, 1);
        effector:SetKey(_TRACK_SX, 0.48, 0.93043478260869);
        effector:SetKey(_TRACK_SY, 0.48, 1.31558441558442);
        effector:SetKey(_TRACK_SX, 0.8, 1.39130434782609);
        effector:SetKey(_TRACK_SY, 0.8, 1.07142857142857);
        effector:SetKey(_TRACK_SX, 0.92, 2.04347826086957);
        effector:SetKey(_TRACK_SY, 0.92, 0.40476190476191);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 0.16, 0.4);
        effector:SetKey(_TRACK_O, 0.2, 0.8);
        effector:SetKey(_TRACK_O, 0.36, 1);
        effector:SetKey(_TRACK_O, 0.8, 1);
        effector:SetKey(_TRACK_O, 0.92, 0);
    
        effector:Play();
    
    
        -- Layer Water_drop_5
        local element = CreateCompositionElement("data/Texture/Scenes/37_Grot/Zone_HO/Animations/WaterDrop/Drop_L1.png");
        element:SetName("Water_drop_5");
        compositionWaterDrop2water:AddElement(element);
        element:SetHotSpot(14.75, 4.75);
        element:SetParentElement(compositionWaterDrop2water);
        element:SetXY(97, 68.75);
    
        element:SetAngle(0);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 5);
    
        effector:SetKey(_TRACK_SX, 0, 0.78688524590164);
        effector:SetKey(_TRACK_SY, 0, 0.47368421052632);
        effector:SetKey(_TRACK_SX, 0.28, 0.57821617115865);
        effector:SetKey(_TRACK_SY, 0.28, 1.3381052631579);
        effector:SetKey(_TRACK_SX, 0.36, 0.36100305640456);
        effector:SetKey(_TRACK_SY, 0.36, 1.4781052631579);
        effector:SetKey(_TRACK_SX, 0.44, 0.26878994165046);
        effector:SetKey(_TRACK_SY, 0.44, 1.31743859649123);
        effector:SetKey(_TRACK_SX, 0.6, 0.28313420394554);
        effector:SetKey(_TRACK_SY, 0.6, 0.2821052631579);
        effector:SetKey(_TRACK_O, 0, 0);
        effector:SetKey(_TRACK_O, 0.2, 1);
        effector:SetKey(_TRACK_O, 0.4, 0.9);
        effector:SetKey(_TRACK_O, 0.6, 0);
    
        effector:Play();
    
        compositionWaterDrop2water:Play();
    
        return compositionWaterDrop2water;
    end
   
    local result = createCompositionbackground();
    result:SetCyclic(true);
    return result; 

end

function OnSceneFree(screen)
    DefaultOnSceneFree()
    FreeData(screen)
end

function OnUpdate(dt)
    DefaultOnUpdate(dt)
end

function OnAllItemsFound()
    DefaultOnAllItemsFound()
end

function OnLose()
    DefaultOnLose()
end

function OnExit()
    DefaultOnExit()
end

function OnClose()
    DefaultOnClose()
end

function OnObjectMouseEnter(object)
    DefaultOnObjectMouseEnter(object)
end

function OnObjectMouseLeave(object)
    DefaultOnObjectMouseLeave(object)
end

function OnObjectMouseDown(object)
    local is_wrong_click = not DefaultOnObjectMouseDown(object)
    local obj_name = object:GetName()
    local pf = play_field

    DefaultOnObjectMouseDownProcessed(is_wrong_click);
end

function OnObjectMouseUp(object)
    DefaultOnObjectMouseUp(object)
end

function OnObjectFound(object)
    DefaultOnObjectFound(object)

	if object:GetName() == 'Wheel' then
		play_field:GetObject('Layer_Wheel_Over'):ChangeOpacity(1., 0., 0.15)
	end
end

function OnToolFound(tool)
    DefaultOnToolFound(tool)
end

function OnToolApply(tool, object)
    DefaultOnToolApply(tool, object)
end

function OnObjectReachPanel(object)
    DefaultOnObjectReachPanel(object)
end

function OnButtonPress(title)
    DefaultOnButtonPress(title)
end

function OnMouseMove(previous_pos, current_pos)
    DefaultOnMouseMove(previous_pos, current_pos)
end

function OnSetTool(tool)
    DefaultOnSetTool(tool)
end

function LevelLoaded(level)
end

function OnSceneDestroy(playfield)
    DefaultOnSceneDestroy(playfield)
end

--------------------------------------------------------------------------------
-- CLEAR_ON_SAVE_BEGIN
-- Do not edit code listed below (generated by the editor on each save)
function LoadData(screen)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers/BG_Grot_HO.jpg',0,0,1024,768,1,0)
	anim:SetHotSpot(512,384)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('BG_Grot_HO',anim,512,384,40,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Barrel.PNG',0,0,116,86,1,0)
	anim:SetHotSpot(58,43)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Barrel',anim,653,427,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Bat.PNG',0,0,65,133,1,0)
	anim:SetHotSpot(32,66)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Bat',anim,652,169,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Bottle.PNG',0,0,88,70,1,0)
	anim:SetHotSpot(44,35)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Bottle',anim,627,348,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Candle.PNG',0,0,75,182,1,0)
	anim:SetHotSpot(37,91)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Candle',anim,970,159,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Drum.PNG',0,0,101,101,1,0)
	anim:SetHotSpot(50,50)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Drum',anim,734,427,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Horn.PNG',0,0,113,120,1,0)
	anim:SetHotSpot(56,60)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Horn',anim,61,253,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Maize.PNG',0,0,121,93,1,0)
	anim:SetHotSpot(60,46)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Maize',anim,948,503,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Ship.PNG',0,0,107,71,1,0)
	anim:SetHotSpot(53,35)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Ship',anim,145,622,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Top_boot.PNG',0,0,108,89,1,0)
	anim:SetHotSpot(54,44)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Top_boot',anim,100,450,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers/Layer_Barrel_Over.PNG',0,0,71,72,1,0)
	anim:SetHotSpot(35,36)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Layer_Barrel_Over',anim,603,460,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers/Layer_Boot_Over.PNG',0,0,87,56,1,0)
	anim:SetHotSpot(43,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Layer_Boot_Over',anim,108,458,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers/Layer_Bottle_Over.PNG',0,0,68,67,1,0)
	anim:SetHotSpot(34,33)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Layer_Bottle_Over',anim,639,349,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers/Layer_Horn_Over.PNG',0,0,59,89,1,0)
	anim:SetHotSpot(29,44)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Layer_Horn_Over',anim,95,259,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Angel.png',0,0,70,142,1,0)
	anim:SetHotSpot(35,71)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Angel',anim,469,314,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Wheel.png',0,0,108,108,1,0)
	anim:SetHotSpot(54,54)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Wheel',anim,359,570,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items_add/Bottle1.png',0,0,53,112,1,0)
	anim:SetHotSpot(26,56)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Bottle1',anim,847,526,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items_add/Bottle2.png',0,0,54,59,1,0)
	anim:SetHotSpot(27,29)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Bottle2',anim,264,592,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items_add/Bottle3.png',0,0,69,40,1,0)
	anim:SetHotSpot(34,20)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Bottle3',anim,450,512,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items_add/Candle1.png',0,0,55,65,1,0)
	anim:SetHotSpot(27,32)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Candle1',anim,667,590,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items_add/Candle2.png',0,0,50,56,1,0)
	anim:SetHotSpot(25,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Candle2',anim,522,511,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers/Layer_Angel_Over.png',0,0,117,114,1,0)
	anim:SetHotSpot(58,57)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Layer_Angel_Over',anim,457,365,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers_add/Layer_Bottle2_Over.png',0,0,54,43,1,0)
	anim:SetHotSpot(27,21)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Layer_Bottle2_Over',anim,272,613,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers_add/Layer_Wheel_Over.png',0,0,134,114,1,0)
	anim:SetHotSpot(67,57)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Layer_Wheel_Over',anim,358,591,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Layers/Layer_Bat_Over.PNG',0,0,65,133,1,0)
	anim:SetHotSpot(32,66)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Layer_Bat_Over',anim,656,140,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/37_Grot/Zone_HO/Items/Gas_jet.PNG',0,0,54,81,1,0)
	anim:SetHotSpot(27,40)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	screen:CreateObject('Gas_jet',anim,873,373,100,0,1,1)
end

function FreeData(screen)
end
-- CLEAR_ON_SAVE_END
