dofile('data/Scripts/Scenes/Common.lua');
dofile('data/Scripts/Scenes/Animations/24_AtSacrificePlace_Animations.lua');

------------------------------------------------------------------------------
--
function OnSceneLoad(restoringFromSave)
	InitGameState();

	play_field = playField;
    LoadData();
	play_field = nil;

    RootZoomZone = CreateZoomZone('RootZoomZone', nil, 
                                   nil, 0.0, 
                                   nil, 0.0,
							{'RootBackground',
							 'actZoneCageLock',
							 'actZoneLowerRoom',

							 'anchor',
							 'animalSkull',
							 'axe',
							 'bottle',
							 'brush',
							 'candle',
							 'chest',
							 'crab',
							 'dino',
							 'dinoStatuette',
							 'dragonfly',
							 'duck',
							 'eagle',
							 'eyeball',
							 'fan',
							 'fryingPan',
							 'handMirror',
							 'harp',
							 'horn',
							 'jug',
							 'leaf',
							 'lily',
							 'machete',
							 'magnifyingGlass',
							 'mask',
							 'mushrooms',
							 'parfume',
							 'pipe',
							 'plasticCup',
							 'rhino',
							 'rope',
							 'ruby',
							 'seashell',
							 'seaStar',
							 'slab',
							 'statueHead',
							 'stoneHand',
							 'tube',
							 'tureen',
							 'varan',
							 'cageWithMichael',
							 'cageWithMichael2',
							 'cageWithSceleton',
							 'cap',

							 'LayerOverCap',
							 'LayerOverFan',
							 'LayerOverHorn',
							 'LayerOverRuby',
							 'LayerOverStoneHand',

							 'stoneBridgePart1',
							 'stoneBridgePart2',
							 'LayerOverBridge',

							 'GoldenLever',
							 'GoldenLever_onPlace',
							 'Medallion',
							 'Medallion_onPlace',
							 'actZoneMedallionAndLever',
							 'SilverLever',
							 'SilverLever_onPlace',
							 'SilverLever_onPlaceBroken',
							 'LayerOverGoldenLever',
							 'LayerOverMedallion',
							 'LayerOverSilverLever',
							 'actZoneSilverLever'},

							{});

    CageLockZoomZone = CreateZoomZone('CageLockZoomZone', RootZoomZone, 
                                   'actZoneCageLock', 0.0, 
                                   nil, 0.0,
							{'ZoomCageLockBackground',

							 'actZoneButton',
							 'Button_onPlace'},

							{});

    LowerRoomZoomZone = CreateZoomZone('LowerRoomZoomZone', RootZoomZone, 
                                   'actZoneLowerRoom', 90.0/180.0 * M_PI, 
                                   'navigationZoneLowerRoom', 95.0/180.0 * M_PI,
							{'ZoomLowerRoomBackground',
							 'navigationZoneLowerRoom',
                             'actZoneMechanism',

							 'amulet',
							 'basket',
							 'beads',
							 'binoculars',
							 'biscuit',
							 'boot',
							 'bucket',
							 'bug',
							 'butterfly',
							 'button',
							 'carrot',
							 'chest1',
							 'cone',
							 'cross',
							 'cup',
							 'dog',
							 'feather',
							 'flower',
							 'greenCrystal',
							 'hydra',
							 'jug1',
							 'leaf1',
							 'lemon',
							 'mask1',
							 'ornament',
							 'pear',
							 'pepper',
							 'pickaxe',
							 'pocketWatch',
							 'prident',
							 'raven',
							 'ring',
							 'sack',
							 'shackles',
							 'snake',
							 'spoon',
							 'stork',
							 'tiger',
							 'toad',
							 'vase',

							 'LayerOverGreenCrystal',
							 'LayerOverLeaf',
							 'LayerOverSnake',
							 'LayerOverTiger',

							 'Button',
							 'Pinion',
							 'Lever',
							 'LayerOverButton',
							 'LayerOverPinionGen'},

							{});

    MechanismZoomZone = CreateZoomZone('MechanismZoomZone', LowerRoomZoomZone, 
                                   'actZoneMechanism', 0.0, 
                                   nil, 0.0,
							{'ZoomMechanismBackground',

							 'LayerOverPinion',
							 'Pinion_onPlace',
							 'Lever_onPlace',
							 'actZonePinion',
							 'actZoneLever'},

							{});

if (restoringFromSave == false) then
    AddRandomTasks(true, 2 * MISC_TASK_COUNT_24,
		CreateTask('anchor'),
		CreateTask('animalSkull'),
		CreateTask('axe'),
		CreateTask('bottle'),
		CreateTask('brush'),
		CreateTask('candle'),
		CreateTask('chest'),
		CreateTask('crab'),
		CreateTask('dino'),
		CreateTask('dinoStatuette'),
		CreateTask('dragonfly'),
		CreateTask('duck'),
		CreateTask('eagle'),
		CreateTask('eyeball'),
		CreateTask('fan'),
		CreateTask('fryingPan'),
		CreateTask('handMirror'),
		CreateTask('harp'),
		CreateTask('horn'),
		CreateTask('jug'),
		CreateTask('leaf'),
		CreateTask('lily'),
		CreateTask('machete'),
		CreateTask('magnifyingGlass'),
		CreateTask('mask'),
		CreateTask('mushrooms'),
		CreateTask('parfume'),
		CreateTask('pipe'),
		CreateTask('plasticCup'),
		CreateTask('rhino'),
		CreateTask('rope'),
		CreateTask('ruby'),
		CreateTask('seashell'),
		CreateTask('seaStar'),
		CreateTask('slab'),
		CreateTask('statueHead'),
		CreateTask('stoneHand'),
		CreateTask('tube'),
		CreateTask('tureen'),
		CreateTask('varan'),

		CreateTask('amulet'),
		CreateTask('basket'),
		CreateTask('beads'),
		CreateTask('binoculars'),
		CreateTask('biscuit'),
		CreateTask('boot'),
		CreateTask('bucket'),
		CreateTask('bug'),
		CreateTask('butterfly'),
		CreateTask('button'),
		CreateTask('carrot'),
		CreateTask('chest1'),
		CreateTask('cone'),
		CreateTask('cross'),
		CreateTask('cup'),
		CreateTask('dog'),
		CreateTask('feather'),
		CreateTask('flower'),
		CreateTask('greenCrystal'),
		CreateTask('hydra'),
		CreateTask('jug1'),
		CreateTask('leaf1'),
		CreateTask('lemon'),
		CreateTask('mask1'),
		CreateTask('ornament'),
		CreateTask('pear'),
		CreateTask('pepper'),
		CreateTask('pickaxe'),
		CreateTask('pocketWatch'),
		CreateTask('prident'),
		CreateTask('raven'),
		CreateTask('ring'),
		CreateTask('sack'),
		CreateTask('shackles'),
		CreateTask('snake'),
		CreateTask('spoon'),
		CreateTask('stork'),
		CreateTask('tiger'),
		CreateTask('toad'),
		CreateTask('vase')
	);

    playField:GetLevelScreen():AddTaskSafe(CreateTask('GoldenLever'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('SilverLever'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('Medallion'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('Button'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('Pinion'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('Lever'));
end

	CreateToolMap(	{'Medallion',		'actZoneMedallionAndLever'},
					{'GoldenLever',		'actZoneMedallionAndLever'},
					{'SilverLever',		'actZoneSilverLever'},
					{'Button',  		'actZoneButton'},
					{'Pinion', 			'actZonePinion'},
					{'Lever',			'actZoneLever'});

	SetIconForGameObject(playField:GetObject('anchor'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/anchor_icon.png');
	SetIconForGameObject(playField:GetObject('animalSkull'),'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/animalSkull_icon.png');
	SetIconForGameObject(playField:GetObject('axe'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/axe_icon.png');
	SetIconForGameObject(playField:GetObject('bottle'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/bottle_icon.png');
	SetIconForGameObject(playField:GetObject('brush'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/brush_icon.png');
	SetIconForGameObject(playField:GetObject('candle'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/candle_icon.png');
	SetIconForGameObject(playField:GetObject('chest'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/chest_icon.png');
	SetIconForGameObject(playField:GetObject('crab'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/crab_icon.png');
	SetIconForGameObject(playField:GetObject('dino'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/dino_icon.png');
	SetIconForGameObject(playField:GetObject('dinoStatuette'),'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/dinoStatuette_icon.png');
	SetIconForGameObject(playField:GetObject('dragonfly'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/dragonfly_icon.png');
	SetIconForGameObject(playField:GetObject('duck'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/duck_icon.png');
	SetIconForGameObject(playField:GetObject('eagle'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/eagle_icon.png');
	SetIconForGameObject(playField:GetObject('eyeball'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/eyeball_icon.png');
	SetIconForGameObject(playField:GetObject('fan'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/fan_icon.png');
	SetIconForGameObject(playField:GetObject('fryingPan'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/fryingPan_icon.png');
	SetIconForGameObject(playField:GetObject('handMirror'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/handMirror_icon.png');
	SetIconForGameObject(playField:GetObject('harp'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/harp_icon.png');
	SetIconForGameObject(playField:GetObject('horn'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/horn_icon.png');
	SetIconForGameObject(playField:GetObject('jug'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/jug_icon.png');
	SetIconForGameObject(playField:GetObject('leaf'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/leaf_icon.png');
	SetIconForGameObject(playField:GetObject('lily'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/lily_icon.png');
	SetIconForGameObject(playField:GetObject('machete'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/machete_icon.png');
	SetIconForGameObject(playField:GetObject('magnifyingGlass'),'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/magnifyingGlass_icon.png');
	SetIconForGameObject(playField:GetObject('mask'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/mask_icon.png');
	SetIconForGameObject(playField:GetObject('mushrooms'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/mushrooms_icon.png');
	SetIconForGameObject(playField:GetObject('parfume'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/parfume_icon.png');
	SetIconForGameObject(playField:GetObject('pipe'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/pipe_icon.png');
	SetIconForGameObject(playField:GetObject('plasticCup'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/plasticCup_icon.png');
	SetIconForGameObject(playField:GetObject('rhino'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/rhino_icon.png');
	SetIconForGameObject(playField:GetObject('rope'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/rope_icon.png');
	SetIconForGameObject(playField:GetObject('ruby'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/ruby_icon.png');
	SetIconForGameObject(playField:GetObject('seashell'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/seashell_icon.png');
	SetIconForGameObject(playField:GetObject('seaStar'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/seaStar_icon.png');
	SetIconForGameObject(playField:GetObject('slab'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/slab_icon.png');
	SetIconForGameObject(playField:GetObject('statueHead'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/statueHead_icon.png');
	SetIconForGameObject(playField:GetObject('stoneHand'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/stoneHand_icon.png');
	SetIconForGameObject(playField:GetObject('tube'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/tube_icon.png');
	SetIconForGameObject(playField:GetObject('tureen'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/tureen_icon.png');
	SetIconForGameObject(playField:GetObject('varan'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/varan_icon.png');

	SetIconForGameObject(playField:GetObject('amulet'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/amulet_icon.png');
	SetIconForGameObject(playField:GetObject('basket'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/basket_icon.png');
	SetIconForGameObject(playField:GetObject('beads'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/beads_icon.png');
	SetIconForGameObject(playField:GetObject('binoculars'),	'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/binoculars_icon.png');
	SetIconForGameObject(playField:GetObject('biscuit'),	'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/biscuit_icon.png');
	SetIconForGameObject(playField:GetObject('boot'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/boot_icon.png');
	SetIconForGameObject(playField:GetObject('bucket'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/bucket_icon.png');
	SetIconForGameObject(playField:GetObject('bug'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/bug_icon.png');
	SetIconForGameObject(playField:GetObject('butterfly'),	'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/butterfly_icon.png');
	SetIconForGameObject(playField:GetObject('button'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/button_icon.png');
	SetIconForGameObject(playField:GetObject('carrot'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/carrot_icon.png');
	SetIconForGameObject(playField:GetObject('chest1'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/chest_icon.png');
	SetIconForGameObject(playField:GetObject('cone'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/cone_icon.png');
	SetIconForGameObject(playField:GetObject('cross'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/cross_icon.png');
	SetIconForGameObject(playField:GetObject('cup'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/cup_icon.png');
	SetIconForGameObject(playField:GetObject('dog'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/dog_icon.png');
	SetIconForGameObject(playField:GetObject('feather'),	'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/feather_icon.png');
	SetIconForGameObject(playField:GetObject('flower'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/flower_icon.png');
	SetIconForGameObject(playField:GetObject('greenCrystal'),'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/greenCrystal_icon.png');
	SetIconForGameObject(playField:GetObject('hydra'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/hydra_icon.png');
	SetIconForGameObject(playField:GetObject('jug1'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/jug_icon.png');
	SetIconForGameObject(playField:GetObject('leaf1'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/leaf_icon.png');
	SetIconForGameObject(playField:GetObject('lemon'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/lemon_icon.png');
	SetIconForGameObject(playField:GetObject('mask1'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/mask_icon.png');
	SetIconForGameObject(playField:GetObject('ornament'),	'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/ornament_icon.png');
	SetIconForGameObject(playField:GetObject('pear'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/pear_icon.png');
	SetIconForGameObject(playField:GetObject('pepper'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/pepper_icon.png');
	SetIconForGameObject(playField:GetObject('pickaxe'),	'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/pickaxe_icon.png');
	SetIconForGameObject(playField:GetObject('pocketWatch'),'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/pocketWatch_icon.png');
	SetIconForGameObject(playField:GetObject('prident'),	'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/prident_icon.png');
	SetIconForGameObject(playField:GetObject('raven'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/raven_icon.png');
	SetIconForGameObject(playField:GetObject('ring'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/ring_icon.png');
	SetIconForGameObject(playField:GetObject('sack'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/sack_icon.png');
	SetIconForGameObject(playField:GetObject('shackles'),	'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/shackles_icon.png');
	SetIconForGameObject(playField:GetObject('snake'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/snake_icon.png');
	SetIconForGameObject(playField:GetObject('spoon'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/spoon_icon.png');
	SetIconForGameObject(playField:GetObject('stork'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/stork_icon.png');
	SetIconForGameObject(playField:GetObject('tiger'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/tiger_icon.png');
	SetIconForGameObject(playField:GetObject('toad'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/toad_icon.png');
	SetIconForGameObject(playField:GetObject('vase'),		'data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/vase_icon.png');

	SetIconForGameObject(playField:GetObject('Medallion'),	'data/Texture/Scenes/24_AtSacrificePlace/Items/Medallion_icon.png');
	SetIconForGameObject(playField:GetObject('GoldenLever'),'data/Texture/Scenes/24_AtSacrificePlace/Items/GoldenLever_icon.png');
	SetIconForGameObject(playField:GetObject('SilverLever'),'data/Texture/Scenes/24_AtSacrificePlace/Items/SilverLever_icon.png');
	SetIconForGameObject(playField:GetObject('Button'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Button_icon.png');
	SetIconForGameObject(playField:GetObject('Pinion'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Pinion_icon.png');
	SetIconForGameObject(playField:GetObject('Lever'),		'data/Texture/Scenes/24_AtSacrificePlace/Items/Lever_icon.png');

if (restoringFromSave == false) then
	gameState.finalZoomInPos = {playField:GetObject('actZoneCageLock'):GetScrX(),
								playField:GetObject('actZoneCageLock'):GetScrY()};

	gameState.medallionOnPlace = false;
	gameState.goldenLeverOnPlace = false;
	gameState.silverLeverOnPlace = false;
	gameState.buttonOnPlace = false;
	gameState.pinionOnPlace = false;
	gameState.leverOnPlace = false;

	gameState.capLiftedDown = false;
	gameState.capIsMovingDown = false;
	gameState.leverTurned = false;
	gameState.leverIsMoving = false;
	gameState.firstPlatformMoved = false;
	gameState.firstPlatformIsMoving = false;
	gameState.secondPlatformMoved = false;
	gameState.secondPlatformIsMoving = false;
	gameState.rightCageLifted = false;
	gameState.rightCageIsMoving = false;
	gameState.leftCageLifted = false;
	gameState.leftCageIsMoving = false;

	gameState.miniGameDone = false;
	
	gameState.allToolsApplied = false;
	gameState.levelCompleted = false;
end

	AssignActiveZonesGlow({function() return gameState.medallionOnPlace or
											not gameState.goldenLeverOnPlace; end,	'actZoneMedallionAndLever',	'Medallion_ghost'},
						  {function() return gameState.goldenLeverOnPlace; end,		'actZoneMedallionAndLever',	'GoldenLever_ghost'},
					      {function() return gameState.silverLeverOnPlace; end,		'actZoneSilverLever',		'SilverLever_ghost'},
						  {function() return gameState.buttonOnPlace; end,			'actZoneButton',			'Button_ghost'},
						  {function() return gameState.pinionOnPlace; end,			'actZonePinion',			'Pinion_ghost'},
						  {function() return gameState.leverOnPlace; end,			'actZoneLever',				'Lever_ghost'});

    ApplyLevelDump(restoringFromSave);
	SetZoneVisible(RootZoomZone, true, false);

	auxSceneInit(restoringFromSave);
	auxProcessToolObjectStateAnCursorType();
end

------------------------------------------------------------------------------
--
function OnSceneFree()
    FreeData()

	StopSound('L24S10');
	StopSound('L24S11');
	StopSound('L24S12');
end

--// Local auxiliary functions - - - - - - - - - - - - - - - - - - - - - - - -
function auxSceneInit(restoringFromSave)
    local initialActions = function()
		ShowLevelIntro(24);
    end
	local regularActions = function()
		gameState.customCursors['actZoneCageLock'] = {'CursorZoom'};
		gameState.customCursors['actZoneMechanism'] = {'CursorZoom'};

		playField:GetObject('SilverLever_onPlace'):SetVisible(false);

		playField:IgnoreOnTestPoint('LayerOverCap');
		playField:IgnoreOnTestPoint('LayerOverFan');
		playField:IgnoreOnTestPoint('LayerOverHorn');
		playField:IgnoreOnTestPoint('LayerOverRuby');
		playField:IgnoreOnTestPoint('LayerOverStoneHand');
		playField:IgnoreOnTestPoint('LayerOverGoldenLever');
		playField:IgnoreOnTestPoint('LayerOverMedallion');
		playField:IgnoreOnTestPoint('LayerOverSilverLever');
		playField:IgnoreOnTestPoint('LayerOverGreenCrystal');
		playField:IgnoreOnTestPoint('LayerOverLeaf');
		playField:IgnoreOnTestPoint('LayerOverSnake');
		playField:IgnoreOnTestPoint('LayerOverTiger');
		playField:IgnoreOnTestPoint('LayerOverButton');
		playField:IgnoreOnTestPoint('LayerOverPinionGen');

		auxSetLevitationEffector(playField:GetObject('cageWithSceleton'),	{3.0, 0.0}, {3.4, 0.0});
		auxSetLevitationEffector(playField:GetObject('cageWithMichael'),	{2.5, 0.0}, {2.9, 0.0});

		auxAttachInPlace(playField:GetObject('stoneBridgePart2'), playField:GetObject('stoneBridgePart1'));
		auxAttachInPlace(playField:GetObject('cageWithMichael2'), playField:GetObject('cageWithMichael'));


		auxCreateAtSacrificePlaceAnimations(playField:GetObject('ZoomMechanismBackground'),
										playField:GetObject('RootBackground'),
										playField:GetObject('ZoomLowerRoomBackground'));
--		auxPlayAtSacrificePlaceAnimation('MechanismAnimation');

		auxPlayAtSacrificePlaceAnimation('EnvLight');
--		auxPlayAtSacrificePlaceAnimation('Fly2');
--		auxPlayAtSacrificePlaceAnimation('Fly1');
--		auxPlayAtSacrificePlaceAnimation('AntGroup2');
--		auxPlayAtSacrificePlaceAnimation('AntGroup1');
--		auxPlayAtSacrificePlaceAnimation('Dragonfly');

		auxPlayAtSacrificePlaceAnimation('L2Env2Light');
--		auxPlayAtSacrificePlaceAnimation('L2Fly1');
--		auxPlayAtSacrificePlaceAnimation('L2Fly2');

		gameState.nextAnimationDelay = 0.0;


		gameState.capInitPosY = playField:GetObject('cap'):GetY();
		gameState.capShift = 60.0;
		gameState.cageLeftFinalPosY = playField:GetObject('cageWithSceleton'):GetY();
		gameState.cageLeftShift = 260.0;
		gameState.stoneBridgePlatform1FinalY = playField:GetObject('stoneBridgePart1'):GetY();
		gameState.stoneBridgePlatform1Shift = 90.0;
		gameState.stoneBridgePlatform2FinalY = playField:GetObject('stoneBridgePart2'):GetY();
		gameState.stoneBridgePlatform2Shift = 100.0;
		gameState.cageRightFinalPosY = playField:GetObject('cageWithMichael'):GetY();
		gameState.cageRightShift = 280.0;

		gameState.leverIsMoving = false;
		gameState.firstPlatformIsMoving = false;
		gameState.secondPlatformIsMoving = false;
		gameState.rightCageIsMoving = false;
		gameState.leftCageIsMoving = false;
		gameState.capIsMovingDown = false;
	end

    if (restoringFromSave == false) then
        initialActions();
	else
    end	
    regularActions();

	if (gameState.levelCompleted == true) then
		gameState.levelCompleted = false;
		auxTestLevelCompleteCondition();
	elseif (gameState.miniGameDone == true) then
		OnDialogButtonPress('','MSG_MINIGAME_SKIPPED');
	end
end

function auxProcessToolObjectStateAnCursorType()
    assert(	gameState.medallionOnPlace ~= nil and
			gameState.goldenLeverOnPlace ~= nil and
			gameState.silverLeverOnPlace ~= nil and
			gameState.buttonOnPlace ~= nil and
			gameState.pinionOnPlace ~= nil and
			gameState.leverOnPlace ~= nil and

			gameState.capLiftedDown ~= nil and
			gameState.capIsMovingDown ~= nil and
			gameState.leverTurned ~= nil and
			gameState.leverIsMoving ~= nil and
			gameState.firstPlatformMoved ~= nil and
			gameState.firstPlatformIsMoving ~= nil and
			gameState.secondPlatformMoved ~= nil and
			gameState.secondPlatformIsMoving ~= nil);

	if (gameState.medallionOnPlace == true) then
		RootZoomZone.UnhideObject('Medallion_onPlace');
	else
		RootZoomZone.HideObject('Medallion_onPlace');
	end
	if (gameState.goldenLeverOnPlace == true) then
		RootZoomZone.UnhideObject('GoldenLever_onPlace');
		gameState.lockedObjects['actZoneLowerRoom'] = nil;
		playField:GetObject('actZoneLowerRoom'):SetVisible(true);
	else
		RootZoomZone.HideObject('GoldenLever_onPlace');
		gameState.lockedObjects['actZoneLowerRoom'] = nil;
		playField:GetObject('actZoneLowerRoom'):SetVisible(false);
	end
	if (gameState.medallionOnPlace == true and gameState.goldenLeverOnPlace == true) then
		gameState.customCursors['actZoneMedallionAndLever'] = nil;
	else
		gameState.customCursors['actZoneMedallionAndLever'] = {'CursorArms'};
	end
	auxUpdateCapState();
	auxUpdateBridgeState();
	auxUpdateLeftCageState();

	if (gameState.silverLeverOnPlace == true) then
		RootZoomZone.UnhideObject('SilverLever_onPlaceBroken');
		gameState.customCursors['actZoneSilverLever'] = nil;
	else
		RootZoomZone.HideObject('SilverLever_onPlaceBroken');
		gameState.customCursors['actZoneSilverLever'] = {'CursorArms'};
	end

	if (gameState.buttonOnPlace == true) then
		CageLockZoomZone.UnhideObject('Button_onPlace');
		gameState.customCursors['actZoneButton'] = nil;
		RootZoomZone.HideObject('cageWithMichael2');
	else
		CageLockZoomZone.HideObject('Button_onPlace');
		gameState.customCursors['actZoneButton'] = {'CursorArms'};
		RootZoomZone.UnhideObject('cageWithMichael2');
	end

	if (gameState.pinionOnPlace == true) then
		MechanismZoomZone.UnhideObject('Pinion_onPlace');
		gameState.customCursors['actZonePinion'] = nil;
	else
		MechanismZoomZone.HideObject('Pinion_onPlace');
		gameState.customCursors['actZonePinion'] = {'CursorArms'};
	end
	if (gameState.leverOnPlace == true) then
		MechanismZoomZone.UnhideObject('Lever_onPlace');
		if (gameState.rightCageLifted == false) then
			gameState.customCursors['actZoneLever'] = {'CursorArms'};

			gameState.customCursors['actZoneMechanism'] = {'CursorZoom'};
			gameState.lockedObjects['actZoneMechanism'] = nil;
		else
			gameState.customCursors['actZoneLever'] = nil;

			gameState.customCursors['actZoneMechanism'] = nil;
			gameState.lockedObjects['actZoneMechanism'] = true;
		end
	else
		MechanismZoomZone.HideObject('Lever_onPlace');
		gameState.customCursors['actZoneLever'] = {'CursorArms'};
	end
auxUpdateRightCageState();
end

--// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function auxFallEffector(object, shift, duration)
	local y = object:GetY();
    local eff = CreateAnimationEffector();

    eff:AttachTo(object);
    eff:SetKey(_TRACK_Y, 0.0,				 y);
    eff:SetKey(_TRACK_Y, duration *  8.0/14.0, y + shift + 10.0);
    eff:SetKey(_TRACK_Y, duration *  9.0/14.0, y + shift - 5.0);
    eff:SetKey(_TRACK_Y, duration * 10.0/14.0, y + shift + 3.0);
    eff:SetKey(_TRACK_Y, duration * 11.0/14.0, y + shift - 1.0);
    eff:SetKey(_TRACK_Y, duration * 12.0/14.0, y + shift + 0.5);
    eff:SetKey(_TRACK_Y, duration * 13.0/14.0, y + shift - 0.1);
    eff:SetKey(_TRACK_Y, duration * 14.0/14.0, y + shift);
    eff:Play();
end

function auxLiftRightCageDown()
	local duration = 2.0;

	gameState.rightCageLifted = true;
	gameState.rightCageIsMoving = true;
	TimerDoString('SetGameStateParameter(\'rightCageIsMoving\', false);', duration, playField:GetTimer());

	local objCage = playField:GetObject('cageWithMichael');

	objCage:SetY(gameState.cageRightFinalPosY - gameState.cageRightShift);

	auxFallEffector(objCage, gameState.cageRightShift, duration);

	--// unblock the cage lock zoom-zone
	gameState.customCursors['actZoneCageLock'] = {'CursorZoom'};
	gameState.lockedObjects['actZoneCageLock'] = nil;
	TimerDoString('HighlightGameObject(playField:GetObject(\'actZoneCageLock\'), playField:GetTimer(), 2.0);', duration, playField:GetTimer());
end
function auxUpdateRightCageState()
	if (gameState.rightCageIsMoving == false) then
		local objCage = playField:GetObject('cageWithMichael');

		if (gameState.rightCageLifted == true) then
			objCage:SetY(gameState.cageRightFinalPosY);

			if (gameState.buttonOnPlace == false) then
				gameState.customCursors['actZoneCageLock'] = {'CursorZoom'};
				gameState.lockedObjects['actZoneCageLock'] = nil;
			else
				gameState.customCursors['actZoneCageLock'] = nil;
				gameState.lockedObjects['actZoneCageLock'] = true;
			end
		else
			objCage:SetY(gameState.cageRightFinalPosY - gameState.cageRightShift);

			gameState.customCursors['actZoneCageLock'] = nil;
			gameState.lockedObjects['actZoneCageLock'] = true;
		end
	end
end

function auxLiftLeftCageDown()
	local duration = 2.0;

	gameState.leftCageLifted = true;
	gameState.leftCageIsMoving = true;
	TimerDoString('SetGameStateParameter(\'leftCageIsMoving\', false);', duration, playField:GetTimer());

	local objCage = playField:GetObject('cageWithSceleton');

	objCage:SetY(gameState.cageLeftFinalPosY - gameState.cageLeftShift);

	auxFallEffector(objCage, gameState.cageLeftShift, duration);
end
function auxUpdateLeftCageState()
	if (gameState.leftCageIsMoving == false) then
		local objCage = playField:GetObject('cageWithSceleton');

		if (gameState.leftCageLifted == true) then
			objCage:SetY(gameState.cageLeftFinalPosY);
		else
			objCage:SetY(gameState.cageLeftFinalPosY - gameState.cageLeftShift);
		end
	end
end

function auxOpenCap()
	local duration = 2.0;

	gameState.capLiftedDown = true;
	gameState.capIsMovingDown = true;
	TimerDoString('SetGameStateParameter(\'capIsMovingDown\', false);', duration, playField:GetTimer());

	local objCap = playField:GetObject('cap');

	objCap:SetY(gameState.capInitPosY);

	objCap:Move(0.0, gameState.capShift, duration);
	HighlightGameObject(playField:GetObject('actZoneLowerRoom'), playField:GetTimer(), 2.0);

	gameState.customCursors['actZoneLowerRoom'] = {'CursorNavigation', 90.0/180.0 * M_PI};
	gameState.lockedObjects['actZoneLowerRoom'] = nil;
end
function auxUpdateCapState()
	if (gameState.capIsMovingDown == false) then
		local objCap = playField:GetObject('cap');

		if (gameState.capLiftedDown == true) then
			objCap:SetY(gameState.capInitPosY + gameState.capShift);

			gameState.customCursors['actZoneLowerRoom'] = {'CursorNavigation', 90.0/180.0 * M_PI};
			gameState.lockedObjects['actZoneLowerRoom'] = nil;
		else
			objCap:SetY(gameState.capInitPosY);

			gameState.customCursors['actZoneLowerRoom'] = nil;
			gameState.lockedObjects['actZoneLowerRoom'] = true;
		end
	end
end

function auxMoveFirstBridgeSection()
	local duration = 1.0;

	gameState.firstPlatformMoved = true;
	gameState.firstPlatformIsMoving = true;
	TimerDoString('SetGameStateParameter(\'firstPlatformIsMoving\', false);', duration, playField:GetTimer());

	local objPlatform = playField:GetObject('stoneBridgePart1');

	objPlatform:SetY(gameState.stoneBridgePlatform1FinalY + gameState.stoneBridgePlatform1Shift);

	objPlatform:Move(0.0, -gameState.stoneBridgePlatform1Shift, duration);
end
function auxMoveSecondBridgeSection()
	local duration = 1.0;

	gameState.secondPlatformMoved = true;
	gameState.secondPlatformIsMoving= true;
	TimerDoString('SetGameStateParameter(\'secondPlatformIsMoving\', false);', duration, playField:GetTimer());

	local objPlatform = playField:GetObject('stoneBridgePart2');

	objPlatform:SetY(gameState.stoneBridgePlatform2FinalY + gameState.stoneBridgePlatform2Shift);

	objPlatform:Move(0.0, -gameState.stoneBridgePlatform2Shift, duration);
end
function auxUpdateBridgeState()
	if (gameState.firstPlatformIsMoving == false) then
		local objPlatform = playField:GetObject('stoneBridgePart1');

		if (gameState.firstPlatformMoved == true) then
			objPlatform:SetY(gameState.stoneBridgePlatform1FinalY);
		else
			objPlatform:SetY(gameState.stoneBridgePlatform1FinalY + gameState.stoneBridgePlatform1Shift);
		end
	end
	if (gameState.secondPlatformIsMoving == false) then
		local objPlatform = playField:GetObject('stoneBridgePart2');

		if (gameState.secondPlatformMoved == true) then
			objPlatform:SetY(gameState.stoneBridgePlatform2FinalY);
		else
			objPlatform:SetY(gameState.stoneBridgePlatform2FinalY + gameState.stoneBridgePlatform2Shift);
		end
	end
end

--// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function auxUpdatePeriodicAnimations(dt)
	if (gameState.nextAnimationDelay == 0.0) then
		local animations = {};

		for compositionName, composition in pairs(atSacrificePlaceCompositions) do
			if (composition:IsCyclic() == false) then
				table.insert(animations, composition:GetName());
			end
		end

		local animName = animations[math.random(1, table.getn(animations))];
		if (animName ~= nil) then
			local composition = auxGetAtSacrificePlaceAnimation(animName);

            if (composition ~= nil and composition:IsPaused() == true) then
				auxPlayAtSacrificePlaceAnimation(animName);
			end
		end
		gameState.nextAnimationDelay = math.random(6, 13);
	else
		gameState.nextAnimationDelay = (gameState.nextAnimationDelay - dt >= 0.0 and gameState.nextAnimationDelay - dt or 0.0);
	end
end

--// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function auxTestLevelCompleteCondition()
	if (gameState.miniGameDone == true and

		gameState.allToolsApplied == true and
		gameState.levelCompleted == false and
		playField:GetLevelScreen():HasUncompletedTask() == false) then

		gameState.levelCompleted = true;
		TimerDoString('OnWin();', 2.0, playField:GetTimer());
	end
end
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

------------------------------------------------------------------------------
--
function OnDialogButtonPress(name, param)
    if (gameState.buttonOnPlace == true and 
		(param == 'MSG_MINIGAME_SKIPPED' or param == 'MSG_MINIGAME_DONE')) then

		local delay = 1.0;
		gameState.miniGameDone = true;
		TimerDoString('playField:GetLevelScreen():ShowComicScreen(\'Level24Outro\');', delay, playField:GetTimer());
		TimerDoString('auxTestLevelCompleteCondition();', 1.1 * delay, playField:GetTimer());
	end
end

------------------------------------------------------------------------------
--
function OnUpdate(dt)
--// DEBUG
--	local speed = 10;
--	local alpha = 0.15;
--	local obj = playField:GetObject('eyeball');
--	local mousePos = GetMousePos();	
--	local objX, objY = obj:GetScrX(), obj:GetScrY();
--	objX = objX + alpha * (mousePos.x - objX) * dt * speed;
--	objY = objY + alpha * (mousePos.y - objY) * dt * speed;
--	obj:SetScrXY(objX, objY);

    DefaultOnUpdate(dt);

	auxUpdatePeriodicAnimations(dt);
end

------------------------------------------------------------------------------
--
function OnWin()
	DefaultOnWin();
end

------------------------------------------------------------------------------
--
function OnObjectMouseEnter(object)
    local objectName = object:GetName();

    DefaultOnObjectMouseEnter(object);
	ActivateActiveZoneGlow(objectName);
end

------------------------------------------------------------------------------
--
function OnObjectMouseLeave(object)
    local objectName = object:GetName();

    DefaultOnObjectMouseLeave(object);
    DeactivateActiveZoneGlow(objectName);
end

-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
function auxReturnToRootScene()
	CloseAndBlockActiveZone();
	CloseActiveZone();
auxLiftRightCageDown();

	assert(gameState.activeZone == RootZoomZone);
end

------------------------------------------------------------------------------
--
function OnObjectMouseDown(object)
    local objectName = object:GetName();
    local isWrongClick = true;

	assert(gameState.activeZone ~= nil and gameState.locker:GetNReferences() > 0);

    if (gameState.lockedObjects[objectName] ~= true) then
        if (gameState.activeZone.HasObject(objectName)) then
            isWrongClick = DefaultOnZoomZoneActiveObjectClick(objectName);

			--// ...
			if (objectName == 'actZoneLever' and gameState.leverOnPlace == true and
				gameState.rightCageLifted == false) then
				if (gameState.pinionOnPlace == true) then

				    assert(gameState.activeZone ~= nil and gameState.activeZone == MechanismZoomZone);

					PlaySound('L24S12');
					auxPlayAtSacrificePlaceAnimation('MechanismAnimation');

					BlockZone(gameState.activeZone);

					gameState.rightCageLifted = true;
					TimerDoString('auxReturnToRootScene();', 2.0, playField:GetTimer());
--					CloseAndBlockActiveZone();
--					CloseActiveZone();
--auxLiftRightCageDown();
--					assert(gameState.activeZone == RootZoomZone);

				else
				    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL24_HAVE_TO_FIX_MECH'));
				end
			end

	        if (isWrongClick == true and playField:GetLevelScreen():IsTaskObject(objectName)) then
	            auxAttachInPlace(object, playField);
				object:ResetClippingRect();
				--// remove object from zoom-zone which contents it
				assert(gameState.activeZone.objects[objectName] ~= nil);
				gameState.activeZone.objects[objectName] = nil;

                playField:OnObjectFound(object);
                isWrongClick = false;
            end
        else
--			assert(gameState.activeZone ~= RootZoomZone and 
--				   gameState.locker:GetNReferences() > 1 and
--				   'Attempt to close root scene - you have clicked on an object which hasn`t been added to any zoom-zone');
            if (gameState.activeZone ~= RootZoomZone and gameState.locker:GetNReferences() > 1) then
                if (gameState.lockedObjects[gameState.activeZone.activeObject] == nil) then
                    SetZoneVisible(gameState.activeZone, false);
                end
            else
                Log('Lua: OnObjectMouseDown(\''..objectName..'\'): Was made click on object which hasn`t been attached to any zoom-zone');
            end
        end --// if (gameState.activeZone.HasObject(...
    end --// if (gameState.lockedObjects[...

	--// Tips - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
	if (objectName == 'actZoneMedallionAndLever' and gameState.goldenLeverOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL24_GLD_LEVER_TIP1'));
	elseif (objectName == 'actZoneSilverLever' and gameState.silverLeverOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL24_SLV_LEVER_TIP1'));
	elseif (objectName == 'actZoneMedallionAndLever' and gameState.medallionOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL24_MEDALLION_TIP1'));
	elseif (objectName == 'actZonePinion' and gameState.pinionOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL24_PINION_TIP1'));
	elseif (objectName == 'actZoneLever' and gameState.leverOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL24_MECH_LEVER_TIP1'));
	elseif (objectName == 'actZoneButton' and gameState.buttonOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL24_CAGE_KEY_TIP1'), GetTextString('LEVEL24_CAGE_KEY_TIP2'));
	else
	    playField:GetLevelScreen():HideTip();
	end
	--//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

    DefaultOnObjectClick(object, isWrongClick, not playField:GetLevelScreen():IsTipShown());
    DefaultOnObjectMouseEnter(object);
end

------------------------------------------------------------------------------
--
function OnObjectMouseUp(object)
end

------------------------------------------------------------------------------
--
function OnObjectFound(object)
    local objectName = object:GetName();
	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	local objectMustBeHighlighted = DefaultOnObjectFound(object);
	return objectMustBeHighlighted;
end

------------------------------------------------------------------------------
--
function OnToolFound(tool)
end

------------------------------------------------------------------------------
--
function CanToolBeApplied(tool, object)
	local toolName = tool:GetName();
	local objName = object:GetName();
    local canToolBeApplied = true;
	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	canToolBeApplied = DefaultCanToolBeApplied(tool, object);
	return canToolBeApplied;
end

------------------------------------------------------------------------------
--
function OnToolApply(tool, object)
	local toolName = tool:GetName();
	local objName = object:GetName();
    local toolApplied = false;

	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	if (toolName == 'Medallion' and objName == gameState.toolMap[toolName]) then
		if (gameState.goldenLeverOnPlace == true) then
			gameState.medallionOnPlace = true;
			toolApplied = true;
--auxOpenCap();
auxMoveSecondBridgeSection();
			PlaySound('L24S10');
		else
		    playField:GetLevelScreen():ShowTip(GetTextString('CANNT_USE_ITEM_YET_TIP1'),
											   GetTextString('CANNT_USE_ITEM_YET_TIP1'));
			return;
		end
	end
	if (toolName == 'GoldenLever' and objName == gameState.toolMap[toolName]) then
		gameState.goldenLeverOnPlace = true;
		toolApplied = true;
auxMoveFirstBridgeSection();
		PlaySound('L24S10');
	end
	if (toolName == 'SilverLever' and objName == gameState.toolMap[toolName]) then
		gameState.silverLeverOnPlace = true;
		toolApplied = true;
auxLiftLeftCageDown();
		PlaySound('L24S11');
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL24_SLV_LEVER_IS_BROKEN'));
	end
	if (toolName == 'Button' and objName == gameState.toolMap[toolName]) then
		gameState.buttonOnPlace = true;
		toolApplied = true;

	    assert(gameState.activeZone ~= nil and gameState.activeZone == CageLockZoomZone);
		CloseAndBlockActiveZone();
--// start mini-game
        playField:GetLevelScreen():RunMiniGame('data/Scripts/Minigames/Lock.lua');
	end
	if (toolName == 'Pinion' and objName == gameState.toolMap[toolName]) then
		gameState.pinionOnPlace = true;
		toolApplied = true;
	end
	if (toolName == 'Lever' and objName == gameState.toolMap[toolName]) then
		gameState.leverOnPlace = true;
		toolApplied = true;
	end
	if (not toolApplied) then
	    playField:GetLevelScreen():ShowTip(GetTextString('WRONG_ITEM_APPLIED_TIP1'),
										   GetTextString('WRONG_ITEM_APPLIED_TIP2'));
	else
	    playField:GetLevelScreen():HideTip();
	end


	if ((toolName == 'Medallion' or toolName == 'GoldenLever' or toolName == 'SilverLever') and toolApplied == true and 
		 gameState.medallionOnPlace == true and gameState.goldenLeverOnPlace == true and gameState.silverLeverOnPlace == true) then

		auxOpenCap();
	end
--	if ((toolName == 'Pinion' or toolName == 'Lever') and toolApplied == true and 
--		 gameState.pinionOnPlace == true and gameState.leverOnPlace == true) then
--
--		auxOpenCap();
--		HighlightGameObject(playField:GetObject('actZoneLever'), playField:GetTimer(), 2.0);
--	end


	if (gameState.medallionOnPlace == true and
		gameState.goldenLeverOnPlace == true and
		gameState.silverLeverOnPlace == true and
		gameState.buttonOnPlace == true and
		gameState.pinionOnPlace == true and
		gameState.leverOnPlace == true and
		gameState.allToolsApplied == false) then

		gameState.allToolsApplied = true;
		if (playField:GetLevelScreen():HasUncompletedTask() == true) then
		    playField:GetLevelScreen():ShowTip(GetTextString('HAVE_TO_FIND_ITEMS_MSG1'),
											   GetTextString('HAVE_TO_FIND_ITEMS_MSG2'));
		else
			auxTestLevelCompleteCondition();
		end
	end

	auxProcessToolObjectStateAnCursorType();
	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    DefaultOnObjectMouseEnter(object);
	if (toolApplied == true) then
	    DeactivateActiveZoneDeactivatedGlow(object:GetName());
	end
	return toolApplied;
end

------------------------------------------------------------------------------
--
function OnObjectReachPanel(object)
    local objectName = object:GetName();
	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	auxTestLevelCompleteCondition();
end

------------------------------------------------------------------------------
--
function OnButtonPress(zoneName)
    DefaultOnButtonPress(zoneName);
end

------------------------------------------------------------------------------
--
function OnMouseMove(prevMousePos, currentMousePos)
end

------------------------------------------------------------------------------
--
function OnSetTool(tool)
end

------------------------------------------------------------------------------
-- CLEAR_ON_SAVE_BEGIN
-- Do not edit code listed below (generated by the editor on each save)
function LoadData()
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/background.jpg',0,0,1024,768,1,0)
	anim:SetHotSpot(512,384)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('RootBackground',anim,512,384,98,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/anchor.png',0,0,83,55,1,0)
	anim:SetHotSpot(41,27)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('anchor',anim,426,423,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/animalSkull.png',0,0,84,60,1,0)
	anim:SetHotSpot(42,30)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('animalSkull',anim,481,500,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/axe.png',0,0,102,40,1,0)
	anim:SetHotSpot(51,20)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('axe',anim,721,618,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/bottle.png',0,0,79,108,1,0)
	anim:SetHotSpot(39,54)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('bottle',anim,644,537,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/brush.png',0,0,83,80,1,0)
	anim:SetHotSpot(41,40)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('brush',anim,1006,583,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/candle.png',0,0,83,71,1,0)
	anim:SetHotSpot(41,35)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('candle',anim,295,603,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/chest.png',0,0,116,63,1,0)
	anim:SetHotSpot(58,31)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('chest',anim,679,504,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/crab.png',0,0,104,71,1,0)
	anim:SetHotSpot(52,35)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('crab',anim,219,737,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/dino.png',0,0,68,75,1,0)
	anim:SetHotSpot(34,37)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('dino',anim,243,335,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/dinoStatuette.png',0,0,182,75,1,0)
	anim:SetHotSpot(91,37)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('dinoStatuette',anim,612,712,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/dragonfly.png',0,0,75,67,1,0)
	anim:SetHotSpot(37,33)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('dragonfly',anim,167,383,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/duck.png',0,0,79,34,1,0)
	anim:SetHotSpot(39,17)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('duck',anim,748,114,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/eagle.png',0,0,80,83,1,0)
	anim:SetHotSpot(40,41)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('eagle',anim,910,144,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/eyeball.png',0,0,47,48,1,0)
	anim:SetHotSpot(23,24)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('eyeball',anim,981,88,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/fan.png',0,0,138,90,1,0)
	anim:SetHotSpot(69,45)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('fan',anim,327,308,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/fryingPan.png',0,0,125,78,1,0)
	anim:SetHotSpot(62,39)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('fryingPan',anim,936,745,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/handMirror.png',0,0,118,56,1,0)
	anim:SetHotSpot(59,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('handMirror',anim,361,735,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/harp.png',0,0,52,110,1,0)
	anim:SetHotSpot(26,55)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('harp',anim,173,211,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/horn.png',0,0,115,60,1,0)
	anim:SetHotSpot(57,30)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('horn',anim,202,73,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/jug.png',0,0,61,92,1,0)
	anim:SetHotSpot(30,46)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('jug',anim,710,320,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/leaf.png',0,0,76,73,1,0)
	anim:SetHotSpot(38,36)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('leaf',anim,131,556,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/lily.png',0,0,65,99,1,0)
	anim:SetHotSpot(32,49)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('lily',anim,785,578,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/machete.png',0,0,90,89,1,0)
	anim:SetHotSpot(45,44)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('machete',anim,979,640,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/magnifyingGlass.png',0,0,113,57,1,0)
	anim:SetHotSpot(56,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('magnifyingGlass',anim,917,529,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/mask.png',0,0,53,80,1,0)
	anim:SetHotSpot(26,40)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('mask',anim,834,311,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/mushrooms.png',0,0,72,73,1,0)
	anim:SetHotSpot(36,36)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('mushrooms',anim,911,670,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/parfume.png',0,0,79,72,1,0)
	anim:SetHotSpot(39,36)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('parfume',anim,372,589,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/pipe.png',0,0,142,34,1,0)
	anim:SetHotSpot(71,17)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('pipe',anim,435,623,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/plasticCup.png',0,0,90,102,1,0)
	anim:SetHotSpot(45,51)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('plasticCup',anim,395,689,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/rhino.png',0,0,126,78,1,0)
	anim:SetHotSpot(63,39)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('rhino',anim,437,373,99,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/rope.png',0,0,103,48,1,0)
	anim:SetHotSpot(51,24)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('rope',anim,446,721,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/ruby.png',0,0,63,52,1,0)
	anim:SetHotSpot(31,26)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('ruby',anim,719,477,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/seashell.png',0,0,139,55,1,0)
	anim:SetHotSpot(69,27)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('seashell',anim,811,742,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/seaStar.png',0,0,59,84,1,0)
	anim:SetHotSpot(29,42)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('seaStar',anim,227,611,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/slab.png',0,0,63,94,1,0)
	anim:SetHotSpot(31,47)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('slab',anim,452,284,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/statueHead.png',0,0,56,70,1,0)
	anim:SetHotSpot(28,35)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('statueHead',anim,578,71,99,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/stoneHand.png',0,0,65,110,1,0)
	anim:SetHotSpot(32,55)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('stoneHand',anim,987,228,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/tube.png',0,0,90,86,1,0)
	anim:SetHotSpot(45,43)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('tube',anim,837,534,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/tureen.png',0,0,79,56,1,0)
	anim:SetHotSpot(39,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('tureen',anim,581,514,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Misc/varan.png',0,0,125,45,1,0)
	anim:SetHotSpot(62,22)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('varan',anim,607,601,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/cageWithMichael.png',0,0,75,445,1,0)
	anim:SetHotSpot(37,222)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('cageWithMichael',anim,613,197,99,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/cageWithMichael2.png',0,0,64,114,1,0)
	anim:SetHotSpot(32,57)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('cageWithMichael2',anim,611,363,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/cageWithSceleton.png',0,0,97,457,1,0)
	anim:SetHotSpot(48,228)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('cageWithSceleton',anim,519,120,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/cap.png',0,0,162,44,1,0)
	anim:SetHotSpot(81,22)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('cap',anim,918,442,101,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverCap.png',0,0,213,137,1,0)
	anim:SetHotSpot(106,68)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverCap',anim,917,496,102,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverFan.png',0,0,158,82,1,0)
	anim:SetHotSpot(79,41)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverFan',anim,325,319,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverHorn.png',0,0,73,74,1,0)
	anim:SetHotSpot(36,37)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverHorn',anim,236,62,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverRuby.png',0,0,66,66,1,0)
	anim:SetHotSpot(33,33)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverRuby',anim,733,480,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverStoneHand.png',0,0,83,104,1,0)
	anim:SetHotSpot(41,52)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverStoneHand',anim,988,268,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/stoneBridgePart1.png',0,0,277,104,1,0)
	anim:SetHotSpot(138,52)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('stoneBridgePart1',anim,520,460,101,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/stoneBridgePart2.png',0,0,154,128,1,0)
	anim:SetHotSpot(77,64)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('stoneBridgePart2',anim,519,450,102,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverBridge.png',0,0,290,200,1,0)
	anim:SetHotSpot(145,100)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverBridge',anim,511,586,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/GoldenLever.png',0,0,33,94,1,0)
	anim:SetHotSpot(16,47)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('GoldenLever',anim,127,354,102,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/GoldenLever_onPlace.png',0,0,65,121,1,0)
	anim:SetHotSpot(31,77)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('GoldenLever_onPlace',anim,980,496,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Medallion.png',0,0,59,59,1,0)
	anim:SetHotSpot(29,29)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Medallion',anim,367,482,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Medallion_onPlace.png',0,0,25,22,1,0)
	anim:SetHotSpot(12,11)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Medallion_onPlace',anim,947,466,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('actZoneMedallionAndLever',anim,939,464,103,10,1.7,0.85)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/SilverLever.png',0,0,36,81,1,0)
	anim:SetHotSpot(18,40)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('SilverLever',anim,723,554,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/SilverLever_onPlace.png',0,0,69,100,1,0)
	anim:SetHotSpot(34,50)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('SilverLever_onPlace',anim,171,495,100,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/SilverLever_onPlaceBroken.png',0,0,57,60,1,0)
	anim:SetHotSpot(28,30)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('SilverLever_onPlaceBroken',anim,186,517,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverGoldenLever.png',0,0,30,59,1,0)
	anim:SetHotSpot(15,29)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverGoldenLever',anim,127,377,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverMedallion.png',0,0,58,44,1,0)
	anim:SetHotSpot(29,22)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverMedallion',anim,365,460,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverSilverLever.png',0,0,36,45,1,0)
	anim:SetHotSpot(18,22)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverSilverLever',anim,716,573,106,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('actZoneSilverLever',anim,183,487,100,0,0.8,1)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('actZoneCageLock',anim,609,319,104,0,1,1.6)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/CageLock/Layers/background.jpg',0,0,640,480,1,0)
	anim:SetHotSpot(320,240)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('ZoomCageLockBackground',anim,618,369,200,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('actZoneButton',anim,610,368,204,0,1.5,1.5)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Button_onPlace.png',0,0,46,47,1,0)
	anim:SetHotSpot(23,23)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Button_onPlace',anim,609,366,201,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('actZoneLowerRoom',anim,918,433,104,2,1.4,0.4)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('navigationZoneLowerRoom',anim,744,804,203,0,10,2)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Layers/background.jpg',0,0,1024,768,1,0)
	anim:SetHotSpot(512,384)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('ZoomLowerRoomBackground',anim,512,384,200,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/amulet.png',0,0,78,105,1,0)
	anim:SetHotSpot(39,52)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('amulet',anim,930,59,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/basket.png',0,0,107,79,1,0)
	anim:SetHotSpot(53,39)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('basket',anim,744,638,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/beads.png',0,0,67,51,1,0)
	anim:SetHotSpot(33,25)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('beads',anim,395,616,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/binoculars.png',0,0,96,61,1,0)
	anim:SetHotSpot(48,30)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('binoculars',anim,528,661,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/biscuit.png',0,0,43,63,1,0)
	anim:SetHotSpot(21,31)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('biscuit',anim,839,441,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/boot.png',0,0,93,89,1,0)
	anim:SetHotSpot(46,44)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('boot',anim,199,726,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/bucket.png',0,0,93,76,1,0)
	anim:SetHotSpot(46,38)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('bucket',anim,178,616,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/bug.png',0,0,45,75,1,0)
	anim:SetHotSpot(22,37)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('bug',anim,347,175,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/butterfly.png',0,0,75,69,1,0)
	anim:SetHotSpot(37,34)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('butterfly',anim,160,34,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/button.png',0,0,41,49,1,0)
	anim:SetHotSpot(20,24)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('button',anim,531,51,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/carrot.png',0,0,108,99,1,0)
	anim:SetHotSpot(54,49)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('carrot',anim,739,557,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/chest.png',0,0,97,57,1,0)
	anim:SetHotSpot(48,28)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('chest1',anim,522,556,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/cross.png',0,0,67,70,1,0)
	anim:SetHotSpot(33,35)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('cross',anim,1009,457,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/cup.png',0,0,109,69,1,0)
	anim:SetHotSpot(54,34)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('cup',anim,889,666,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/dog.png',0,0,124,70,1,0)
	anim:SetHotSpot(62,35)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('dog',anim,442,675,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/feather.png',0,0,60,107,1,0)
	anim:SetHotSpot(30,53)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('feather',anim,761,324,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/flower.png',0,0,61,66,1,0)
	anim:SetHotSpot(30,33)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('flower',anim,862,202,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/greenCrystal.png',0,0,36,94,1,0)
	anim:SetHotSpot(18,47)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('greenCrystal',anim,720,65,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/hydra.png',0,0,73,123,1,0)
	anim:SetHotSpot(36,61)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('hydra',anim,321,37,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/jug.png',0,0,72,99,1,0)
	anim:SetHotSpot(36,49)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('jug1',anim,560,477,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/leaf.png',0,0,60,66,1,0)
	anim:SetHotSpot(30,33)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('leaf1',anim,180,154,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/lemon.png',0,0,41,55,1,0)
	anim:SetHotSpot(20,27)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('lemon',anim,593,150,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/mask.png',0,0,54,126,1,0)
	anim:SetHotSpot(27,63)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('mask1',anim,634,360,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/ornament.png',0,0,59,60,1,0)
	anim:SetHotSpot(29,30)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('ornament',anim,487,117,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/pear.png',0,0,64,74,1,0)
	anim:SetHotSpot(32,37)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('pear',anim,144,570,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/pepper.png',0,0,104,91,1,0)
	anim:SetHotSpot(52,45)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('pepper',anim,905,492,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/pickaxe.png',0,0,72,117,1,0)
	anim:SetHotSpot(36,58)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('pickaxe',anim,262,490,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/pocketWatch.png',0,0,75,69,1,0)
	anim:SetHotSpot(37,34)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('pocketWatch',anim,636,651,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/prident.png',0,0,53,103,1,0)
	anim:SetHotSpot(26,51)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('prident',anim,359,537,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/raven.png',0,0,66,46,1,0)
	anim:SetHotSpot(33,23)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('raven',anim,246,350,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/ring.png',0,0,69,50,1,0)
	anim:SetHotSpot(34,25)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('ring',anim,664,601,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/sack.png',0,0,94,89,1,0)
	anim:SetHotSpot(47,44)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('sack',anim,330,676,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/shackles.png',0,0,96,70,1,0)
	anim:SetHotSpot(48,35)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('shackles',anim,851,561,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/cone.png',0,0,69,51,1,0)
	anim:SetHotSpot(34,25)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('cone',anim,574,646,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/snake.png',0,0,93,74,1,0)
	anim:SetHotSpot(46,37)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('snake',anim,734,175,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/spoon.png',0,0,123,43,1,0)
	anim:SetHotSpot(61,21)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('spoon',anim,226,559,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/stork.png',0,0,56,104,1,0)
	anim:SetHotSpot(28,52)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('stork',anim,716,433,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/tiger.png',0,0,85,113,1,0)
	anim:SetHotSpot(42,56)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('tiger',anim,414,451,201,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/toad.png',0,0,93,55,1,0)
	anim:SetHotSpot(46,27)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('toad',anim,995,651,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Items/vase.png',0,0,104,119,1,0)
	anim:SetHotSpot(52,59)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('vase',anim,973,582,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Layers/LayerOverGreenCrystal.png',0,0,93,116,1,0)
	anim:SetHotSpot(46,58)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverGreenCrystal',anim,720,70,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Layers/LayerOverLeaf.png',0,0,45,98,1,0)
	anim:SetHotSpot(22,49)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverLeaf',anim,164,155,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Layers/LayerOverSnake.png',0,0,83,61,1,0)
	anim:SetHotSpot(41,30)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverSnake',anim,718,150,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Layers/LayerOverTiger.png',0,0,144,157,1,0)
	anim:SetHotSpot(72,78)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverTiger',anim,412,462,202,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Button.png',0,0,44,47,1,0)
	anim:SetHotSpot(22,23)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Button',anim,251,581,202,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Pinion.png',0,0,55,64,1,0)
	anim:SetHotSpot(27,32)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Pinion',anim,385,87,202,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Lever.png',0,0,71,58,1,0)
	anim:SetHotSpot(35,29)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Lever',anim,867,620,202,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverButton.png',0,0,27,27,1,0)
	anim:SetHotSpot(13,13)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverButton',anim,239,585,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Layers/LayerOverPinion.png',0,0,44,72,1,0)
	anim:SetHotSpot(22,36)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverPinionGen',anim,389,83,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('actZoneMechanism',anim,956,322,204,0,1.4,1.1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Zones/Mechanism/Layers/background.jpg',0,0,640,480,1,0)
	anim:SetHotSpot(320,240)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('ZoomMechanismBackground',anim,649,310,300,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Zones/LowerRoom/Zones/Mechanism/Layers/LayerOverPinion.png',0,0,135,187,1,0)
	anim:SetHotSpot(67,93)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverPinion',anim,645,330,303,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Pinion_onPlace.png',0,0,97,97,1,0)
	anim:SetHotSpot(48,48)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Pinion_onPlace',anim,601,258,302,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Lever_onPlace.png',0,0,229,130,1,0)
	anim:SetHotSpot(177,48)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Lever_onPlace',anim,565,325,302,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('actZonePinion',anim,608,238,304,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/Common/actZoneC.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(2)
	anim:SetColor('0x01FFFFFF')
	play_field:CreateObject('actZoneLever',anim,507,337,304,0,1.7,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/GoldenLever_ghost.png',0,0,80,160,1,0)
	anim:SetHotSpot(40,80)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('GoldenLever_ghost',anim,982,482,110,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Medallion_ghost.png',0,0,80,80,1,0)
	anim:SetHotSpot(40,40)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Medallion_ghost',anim,916,485,110,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/SilverLever_ghost.png',0,0,85,120,1,0)
	anim:SetHotSpot(42,60)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('SilverLever_ghost',anim,171,495,110,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Pinion_ghost.png',0,0,96,96,1,0)
	anim:SetHotSpot(48,48)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Pinion_ghost',anim,601,260,310,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Lever_ghost.png',0,0,229,130,1,0)
	anim:SetHotSpot(114,65)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Lever_ghost',anim,502,328,310,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/24_AtSacrificePlace/Items/Button_ghost.png',0,0,90,90,1,0)
	anim:SetHotSpot(45,45)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Button_ghost',anim,608,369,210,0,1,1)
end

function FreeData()
end
-- CLEAR_ON_SAVE_END
