dofile('data/Scripts/Scenes/Common.lua');
dofile('data/Scripts/Scenes/Animations/23_NearSacrificePlace_Animations.lua');

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

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

    RootZoomZone = CreateZoomZone('RootZoomZone', nil, 
                                   nil, 0.0, 
                                   nil, 0.0,
							{'RootBackground',
							 'actZoneRuins',

							 'apple',
							 'basket',
							 'bottle',
							 'box',
							 'bucket',
							 'butterfly',
							 'button',
							 'cat',
							 'dagger',
							 'demijohn',
							 'drum',
							 'eagle',
							 'egg',
							 'emerald',
							 'eyeball',
							 'flower',
							 'hammer',
							 'handbell',
							 'leaf',
							 'ledybird',
							 'lemur',
							 'lizard',
							 'maraca',
							 'mask',
							 'mouse',
							 'mug',
							 'necklace',
							 'onion',
							 'revolver',
							 'ring',
							 'rope',
							 'sack',
							 'seashell',
							 'skull',
							 'spider',
							 'spoon',
							 'sword',
							 'vase',
							 'watch',
							 'whisk',

							 'holeInWall',
							 'LayerOverApple',
							 'LayerOverDagger',
							 'LayerOverDrum',
							 'LayerOverMug',
							 'LayerOverOnion',
							 'LayerOverRevolver',
							 'LayerOverRing',
							 'LayerOverSword',

							 'BoxOfMatches',
							 'RopeLadder',
							 'RopeLadder_onPlace',
							 'Dynamite_onPlace',

							 'actZoneStones',
							 'actZoneLadder'},

							{'RopeLadder_onPlace',
							 'Dynamite_onPlace'});

    RuinsZoomZone = CreateZoomZone('RRuinsZoomZone', RootZoomZone, 
                                   'actZoneRuins', 0.0, 
                                   'navigationZoneRuins', 102.0/180.0 * M_PI,
							{'ZoomRuinsBackground',
							 'navigationZoneRuins',
							 'actZoneCage',
							 'actZoneMechanism',
							 'actZoneWoodenBox',

							 'l2animalSkull',
							 'l2armour',
							 'l2axe1',
							 'l2basin1',
							 'l2basin2',
							 'l2bird1',
							 'l2bird2',
							 'l2bone',
							 'l2cat',
							 'l2chest',
							 'l2corn',
							 'l2eagle',
							 'l2fish',
							 'l2goat',
							 'l2helmet1',
							 'l2helmet2',
							 'l2humanHead1',
							 'l2humanHead2',
							 'l2humanSkull',
							 'l2manStatuette1',
							 'l2manStatuette',
							 'l2necklace',
							 'l2palm',
							 'l2pear',
							 'l2pot',
							 'l2pumpkin',
							 'l2sandal',
							 'l2snake',
							 'l2statuette1',
							 'l2statuette2',
							 'l2statuette3',
							 'l2statuette',
							 'l2sword1',
							 'l2sword2',
							 'l2tooth',
							 'l2vessel1',
							 'l2vessel2',
							 'l2vessel3',
							 'l2vessel4',
							 'l2wolfHead',

							 'cage',
							 'Handle',
							 'Pinion',
							 'LayerOverPinion',

							 'LayerOverArmour',
							 'LayerOverCage',
							 'LayerOverManHead',
							 'LayerOverManStatuette1',
							 'LayerOvermanStatuette',
							 'LayerOverStatuette3'},

							{});

    CageZoomZone = CreateZoomZone('CageZoomZone', RuinsZoomZone, 
                                   'actZoneCage', 0.0, 
                                   nil, 0.0,
							{'ZoomCageBackground',

							 'LayerOverCageOpened',
							 'LayerUnderCageOpened',
							 'LayerOverCageClosed',
							 'Crowbar',

							 'actZoneCageDoor'},

							{'LayerOverCageOpened',
							 'LayerUnderCageOpened'});

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

							 'LayerOverPinions',
							 'pinion1',
							 'pinion2',
							 'Pinion_onPlace',
							 'Handle_onPlace',

							 'actZonePinion',
							 'actZoneHandle'},

							{'Pinion_onPlace',
							 'Handle_onPlace'});

    WoodenBoxZoomZone = CreateZoomZone('WoodenBoxZoomZone', RuinsZoomZone, 
                                   'actZoneWoodenBox', 0.0, 
                                   nil, 0.0,
							{'ZoomWoodenBoxBackground',

							 'LayerCrack',
							 'LayerOverDynamite',
							 'Dynamite',

							 'actZoneBoxBoards'},

							{'LayerCrack',
							 'LayerOverDynamite',
							 'Dynamite'});

if (restoringFromSave == false) then
    AddRandomTasks(true, 2 * MISC_TASK_COUNT_24,
		CreateTask('apple'),
		CreateTask('basket'),
		CreateTask('bottle'),
		CreateTask('box'),
		CreateTask('bucket'),
		CreateTask('butterfly'),
		CreateTask('button'),
		CreateTask('cat'),
		CreateTask('dagger'),
		CreateTask('demijohn'),
		CreateTask('drum'),
		CreateTask('eagle'),
		CreateTask('egg'),
		CreateTask('emerald'),
		CreateTask('eyeball'),
		CreateTask('flower'),
		CreateTask('hammer'),
		CreateTask('handbell'),
		CreateTask('leaf'),
		CreateTask('ledybird'),
		CreateTask('lemur'),
		CreateTask('lizard'),
		CreateTask('maraca'),
		CreateTask('mask'),
		CreateTask('mouse'),
		CreateTask('mug'),
		CreateTask('necklace'),
		CreateTask('onion'),
		CreateTask('revolver'),
		CreateTask('ring'),
		CreateTask('rope'),
		CreateTask('sack'),
		CreateTask('seashell'),
		CreateTask('skull'),
		CreateTask('spider'),
		CreateTask('spoon'),
		CreateTask('sword'),
		CreateTask('vase'),
		CreateTask('watch'),
		CreateTask('whisk'),

		CreateTask('l2animalSkull'),
		CreateTask('l2armour'),
		CreateTask('l2axe1'),
		CreateTask('l2basin1'),
		CreateTask('l2basin2'),
		CreateTask('l2bird1'),
		CreateTask('l2bird2'),
		CreateTask('l2bone'),
		CreateTask('l2cat'),
		CreateTask('l2chest'),
		CreateTask('l2corn'),
		CreateTask('l2eagle'),
		CreateTask('l2fish'),
		CreateTask('l2goat'),
		CreateTask('l2helmet1'),
		CreateTask('l2helmet2'),
		CreateTask('l2humanHead1'),
		CreateTask('l2humanHead2'),
		CreateTask('l2humanSkull'),
		CreateTask('l2manStatuette1'),
		CreateTask('l2manStatuette'),
		CreateTask('l2necklace'),
		CreateTask('l2palm'),
		CreateTask('l2pear'),
		CreateTask('l2pot'),
		CreateTask('l2pumpkin'),
		CreateTask('l2sandal'),
		CreateTask('l2snake'),
		CreateTask('l2statuette1'),
		CreateTask('l2statuette2'),
		CreateTask('l2statuette3'),
		CreateTask('l2statuette'),
		CreateTask('l2sword1'),
		CreateTask('l2sword2'),
		CreateTask('l2tooth'),
		CreateTask('l2vessel1'),
		CreateTask('l2vessel2'),
		CreateTask('l2vessel3'),
		CreateTask('l2vessel4'),
		CreateTask('l2wolfHead')
	);

    playField:GetLevelScreen():AddTaskSafe(CreateTask('BoxOfMatches'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('RopeLadder'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('Dynamite'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('Crowbar'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('Pinion'));
    playField:GetLevelScreen():AddTaskSafe(CreateTask('Handle'));
end

	CreateToolMap(	{'BoxOfMatches',	'actZoneStones'},
					{'RopeLadder',		'actZoneLadder'},
					{'Dynamite',		'actZoneStones'},
					{'Crowbar',  		'actZoneBoxBoards'},
					{'Pinion', 			'actZonePinion'},
					{'Handle',			'actZoneHandle'});

	SetIconForGameObject(playField:GetObject('apple'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/apple_icon.png');
	SetIconForGameObject(playField:GetObject('basket'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/basket_icon.png');
	SetIconForGameObject(playField:GetObject('bottle'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/bottle_icon.png');
	SetIconForGameObject(playField:GetObject('box'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/box_icon.png');
	SetIconForGameObject(playField:GetObject('bucket'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/bucket_icon.png');
	SetIconForGameObject(playField:GetObject('butterfly'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/butterfly_icon.png');
	SetIconForGameObject(playField:GetObject('button'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/button_icon.png');
	SetIconForGameObject(playField:GetObject('cat'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/cat_icon.png');
	SetIconForGameObject(playField:GetObject('dagger'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/dagger_icon.png');
	SetIconForGameObject(playField:GetObject('demijohn'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/demijohn_icon.png');
	SetIconForGameObject(playField:GetObject('drum'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/drum_icon.png');
	SetIconForGameObject(playField:GetObject('eagle'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/eagle_icon.png');
	SetIconForGameObject(playField:GetObject('egg'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/egg_icon.png');
	SetIconForGameObject(playField:GetObject('emerald'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/emerald_icon.png');
	SetIconForGameObject(playField:GetObject('eyeball'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/eyeball_icon.png');
	SetIconForGameObject(playField:GetObject('flower'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/flower_icon.png');
	SetIconForGameObject(playField:GetObject('hammer'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/hammer_icon.png');
	SetIconForGameObject(playField:GetObject('handbell'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/handbell_icon.png');
	SetIconForGameObject(playField:GetObject('leaf'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/leaf_icon.png');
	SetIconForGameObject(playField:GetObject('ledybird'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/ledybird_icon.png');
	SetIconForGameObject(playField:GetObject('lemur'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/lemur_icon.png');
	SetIconForGameObject(playField:GetObject('lizard'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/lizard_icon.png');
	SetIconForGameObject(playField:GetObject('maraca'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/maraca_icon.png');
	SetIconForGameObject(playField:GetObject('mask'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/mask_icon.png');
	SetIconForGameObject(playField:GetObject('mouse'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/mouse_icon.png');
	SetIconForGameObject(playField:GetObject('mug'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/mug_icon.png');
	SetIconForGameObject(playField:GetObject('necklace'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/necklace_icon.png');
	SetIconForGameObject(playField:GetObject('onion'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/onion_icon.png');
	SetIconForGameObject(playField:GetObject('revolver'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/revolver_icon.png');
	SetIconForGameObject(playField:GetObject('ring'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/ring_icon.png');
	SetIconForGameObject(playField:GetObject('rope'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/rope_icon.png');
	SetIconForGameObject(playField:GetObject('sack'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/sack_icon.png');
	SetIconForGameObject(playField:GetObject('seashell'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/seashell_icon.png');
	SetIconForGameObject(playField:GetObject('skull'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/skull_icon.png');
	SetIconForGameObject(playField:GetObject('spider'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/spider_icon.png');
	SetIconForGameObject(playField:GetObject('spoon'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/spoon_icon.png');
	SetIconForGameObject(playField:GetObject('sword'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/sword_icon.png');
	SetIconForGameObject(playField:GetObject('vase'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/vase_icon.png');
	SetIconForGameObject(playField:GetObject('watch'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/watch_icon.png');
	SetIconForGameObject(playField:GetObject('whisk'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/whisk_icon.png');

	SetIconForGameObject(playField:GetObject('l2animalSkull'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/animalSkull_icon.png');
	SetIconForGameObject(playField:GetObject('l2armour'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/armour_icon.png');
	SetIconForGameObject(playField:GetObject('l2axe1'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/axe1_icon.png');
	SetIconForGameObject(playField:GetObject('l2basin1'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/basin1_icon.png');
	SetIconForGameObject(playField:GetObject('l2basin2'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/basin2_icon.png');
	SetIconForGameObject(playField:GetObject('l2bird1'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/bird1_icon.png');
	SetIconForGameObject(playField:GetObject('l2bird2'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/bird2_icon.png');
	SetIconForGameObject(playField:GetObject('l2bone'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/bone_icon.png');
	SetIconForGameObject(playField:GetObject('l2cat'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/cat_icon.png');
	SetIconForGameObject(playField:GetObject('l2chest'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/chest_icon.png');
	SetIconForGameObject(playField:GetObject('l2corn'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/corn_icon.png');
	SetIconForGameObject(playField:GetObject('l2eagle'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/eagle_icon.png');
	SetIconForGameObject(playField:GetObject('l2fish'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/fish_icon.png');
	SetIconForGameObject(playField:GetObject('l2goat'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/goat_icon.png');
	SetIconForGameObject(playField:GetObject('l2helmet1'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/helmet1_icon.png');
	SetIconForGameObject(playField:GetObject('l2helmet2'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/helmet2_icon.png');
	SetIconForGameObject(playField:GetObject('l2humanHead1'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/humanHead1_icon.png');
	SetIconForGameObject(playField:GetObject('l2humanHead2'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/humanHead2_icon.png');
	SetIconForGameObject(playField:GetObject('l2humanSkull'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/humanSkull_icon.png');
	SetIconForGameObject(playField:GetObject('l2manStatuette1'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/manStatuette1_icon.png');
	SetIconForGameObject(playField:GetObject('l2manStatuette'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/manStatuette_icon.png');
	SetIconForGameObject(playField:GetObject('l2necklace'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/necklace_icon.png');
	SetIconForGameObject(playField:GetObject('l2palm'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/palm_icon.png');
	SetIconForGameObject(playField:GetObject('l2pear'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/pear_icon.png');
	SetIconForGameObject(playField:GetObject('l2pot'),		'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/pot_icon.png');
	SetIconForGameObject(playField:GetObject('l2pumpkin'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/pumpkin_icon.png');
	SetIconForGameObject(playField:GetObject('l2sandal'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/sandal_icon.png');
	SetIconForGameObject(playField:GetObject('l2snake'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/snake_icon.png');
	SetIconForGameObject(playField:GetObject('l2statuette1'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/statuette1_icon.png');
	SetIconForGameObject(playField:GetObject('l2statuette2'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/statuette2_icon.png');
	SetIconForGameObject(playField:GetObject('l2statuette3'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/statuette3_icon.png');
	SetIconForGameObject(playField:GetObject('l2statuette'),'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/statuette_icon.png');
	SetIconForGameObject(playField:GetObject('l2sword1'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/sword1_icon.png');
	SetIconForGameObject(playField:GetObject('l2sword2'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/sword2_icon.png');
	SetIconForGameObject(playField:GetObject('l2tooth'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/tooth_icon.png');
	SetIconForGameObject(playField:GetObject('l2vessel1'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/vessel1_icon.png');
	SetIconForGameObject(playField:GetObject('l2vessel2'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/vessel2_icon.png');
	SetIconForGameObject(playField:GetObject('l2vessel3'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/vessel3_icon.png');
	SetIconForGameObject(playField:GetObject('l2vessel4'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/vessel4_icon.png');
	SetIconForGameObject(playField:GetObject('l2wolfHead'),	'data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/wolfHead_icon.png');

	SetIconForGameObject(playField:GetObject('BoxOfMatches'),'data/Texture/Scenes/23_NearSacrificePlace/Items/BoxOfMatches_icon.png');
	SetIconForGameObject(playField:GetObject('RopeLadder'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/RopeLadder_icon.png');
	SetIconForGameObject(playField:GetObject('Dynamite'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Dynamite_icon.png');
	SetIconForGameObject(playField:GetObject('Crowbar'),	'data/Texture/Scenes/23_NearSacrificePlace/Items/Crowbar_icon.png');
	SetIconForGameObject(playField:GetObject('Pinion'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Pinion_icon.png');
	SetIconForGameObject(playField:GetObject('Handle'),		'data/Texture/Scenes/23_NearSacrificePlace/Items/Handle_icon.png');

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

	gameState.boxOfMatchesUsed = false;
	gameState.ropeLadderOnPlace = false;
	gameState.dynamiteOnPlace = false;
	gameState.crowbarUsed = false;
	gameState.pinionOnPlace = false;
	gameState.handleOnPlace = false;
	
	gameState.dynamiteIsExploding = false;
	gameState.dynamiteExploded = false;
	gameState.handleTurned = false;
	gameState.handleIsTurning = false;
	gameState.cageDoorIsOpened = false;

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

	AssignActiveZonesGlow({function() return gameState.boxOfMatchesUsed or
											not gameState.dynamiteOnPlace; end,	'actZoneStones',	'BoxOfMatches_ghost'},
						  {function() return gameState.ropeLadderOnPlace; end,	'actZoneLadder',	'RopeLadder_ghost'},
					      {function() return gameState.dynamiteOnPlace; end,	'actZoneStones',	'Dynamite_ghost'},
						  {function() return gameState.crowbarUsed; end,		'actZoneBoxBoards',	'Crowbar_ghost'},
						  {function() return gameState.pinionOnPlace; end,		'actZonePinion',	'Pinion_ghost'},
						  {function() return gameState.handleOnPlace; end,		'actZoneHandle',	'Handle_ghost'});

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

	auxSceneInit(restoringFromSave);
	auxProcessToolObjectStateAnCursorType();
end

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

	StopSound('L23S10');
	StopSound('L23S11');
	StopSound('L23S12');
	StopSound('L23S13');
end

--// Local auxiliary functions - - - - - - - - - - - - - - - - - - - - - - - -
function auxSceneInit(restoringFromSave)
    local initialActions = function()
		ShowLevelIntro(23);
    end
	local regularActions = function()
		gameState.customCursors['actZoneCage'] = {'CursorZoom'};
		gameState.customCursors['actZoneMechanism'] = {'CursorZoom'};
		gameState.customCursors['actZoneWoodenBox'] = {'CursorZoom'};
		gameState.customCursors['actZoneRuins'] = {'CursorNavigation', -105.0/180.0 * M_PI};
		gameState.customCursors['actZoneLadder'] = {'CursorArms'};
		gameState.customCursors['actZoneCageDoor'] = {'CursorArms'};

		playField:IgnoreOnTestPoint('LayerOverApple');
		playField:IgnoreOnTestPoint('LayerOverDagger');
		playField:IgnoreOnTestPoint('LayerOverDrum');
		playField:IgnoreOnTestPoint('LayerOverMug');
		playField:IgnoreOnTestPoint('LayerOverOnion');
		playField:IgnoreOnTestPoint('LayerOverRevolver');
		playField:IgnoreOnTestPoint('LayerOverRing');
		playField:IgnoreOnTestPoint('LayerOverSword');
		playField:IgnoreOnTestPoint('LayerOverPinion');

		playField:IgnoreOnTestPoint('LayerOverArmour');
		playField:IgnoreOnTestPoint('LayerOverCage');
		playField:IgnoreOnTestPoint('LayerOverManHead');
		playField:IgnoreOnTestPoint('LayerOverManStatuette1');
		playField:IgnoreOnTestPoint('LayerOvermanStatuette');
		playField:IgnoreOnTestPoint('LayerOverStatuette3');

		auxCreateNearSacrificePlaceAnimations(playField:GetObject('RootBackground'), 
										  playField:GetObject('ZoomRuinsBackground'));
		auxPlayNearSacrificePlaceAnimation('Env1');
--		auxPlayNearSacrificePlaceAnimation('Bug2');
--		auxPlayNearSacrificePlaceAnimation('Bug1');

		auxPlayNearSacrificePlaceAnimation('Env2');
--		auxPlayNearSacrificePlaceAnimation('Fly1');
--		auxPlayNearSacrificePlaceAnimation('Bugs1');
--		auxPlayNearSacrificePlaceAnimation('Bugs2');

--		auxPlayNearSacrificePlaceAnimation('Explode');
		auxGetNearSacrificePlaceAnimation('Explode'):SetVisible(false);


		gameState.handleRotationAngle = 40.0 * M_PI/180.0;
		gameState.cageFinalPosY = playField:GetObject('cage'):GetY();
		gameState.cageMoveDistance = 70.0;
		gameState.nextAnimationDelay = 0.0;

		gameState.dynamiteIsExploding = false;
		gameState.handleIsTurning = false;
	end

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

	if (gameState.levelCompleted == true or
        gameState.dynamiteExploded == true) then
		gameState.levelCompleted = false;
		auxTestLevelCompleteCondition();
	end
end


function auxProcessToolObjectStateAnCursorType()
    assert(	gameState.boxOfMatchesUsed ~= nil and
			gameState.ropeLadderOnPlace ~= nil and
			gameState.dynamiteOnPlace ~= nil and
			gameState.crowbarUsed ~= nil and
			gameState.pinionOnPlace ~= nil and
			gameState.handleOnPlace ~= nil and
	
			gameState.dynamiteIsExploding ~= nil and
			gameState.handleTurned ~= nil and
			gameState.handleIsTurning ~= nil and
			gameState.cageDoorIsOpened ~= nil);

	if (gameState.dynamiteIsExploding == false) then
		if (gameState.dynamiteOnPlace == true and gameState.boxOfMatchesUsed == false) then
			RootZoomZone.UnhideObject('Dynamite_onPlace', 0.01);
		else
			RootZoomZone.HideObject('Dynamite_onPlace', 0.01);
		end
		if (gameState.dynamiteOnPlace == true and gameState.boxOfMatchesUsed == true) then
			gameState.customCursors['actZoneStones'] = nil;
			RootZoomZone.UnhideObject('holeInWall');
		else
			gameState.customCursors['actZoneStones'] = {'CursorArms'};
			RootZoomZone.HideObject('holeInWall');
		end
	end

	if (gameState.ropeLadderOnPlace == true) then
		RootZoomZone.UnhideObject('RopeLadder_onPlace');
		playField:GetObject('actZoneRuins'):SetVisible(true);
		playField:GetObject('actZoneLadder'):SetVisible(false);
	else
		playField:GetObject('actZoneRuins'):SetVisible(false);
		playField:GetObject('actZoneLadder'):SetVisible(true);
	end

	if (gameState.crowbarUsed == true) then
		WoodenBoxZoomZone.UnhideObject('LayerCrack');
		WoodenBoxZoomZone.UnhideObject('LayerOverDynamite');
		if (playField:HasObject('Dynamite') == true) then
			WoodenBoxZoomZone.UnhideObject('Dynamite');

			gameState.customCursors['actZoneWoodenBox'] = {'CursorZoom'};
			gameState.lockedObjects['actZoneWoodenBox'] = nil;
		else
			gameState.customCursors['actZoneWoodenBox'] = nil;
			gameState.lockedObjects['actZoneWoodenBox'] = true;
		end
		gameState.customCursors['actZoneBoxBoards'] = nil;
	else
		WoodenBoxZoomZone.HideObject('LayerCrack');
		WoodenBoxZoomZone.HideObject('LayerOverDynamite');
		if (playField:HasObject('Dynamite') == true) then
			WoodenBoxZoomZone.HideObject('Dynamite');
		end
		gameState.customCursors['actZoneBoxBoards'] = {'CursorArms'};
	end
	playField:GetObject('actZoneBoxBoards'):SetVisible(not gameState.crowbarUsed);

	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.handleOnPlace == true) then
		MechanismZoomZone.UnhideObject('Handle_onPlace');
		if (gameState.handleIsTurning == false) then
			if (gameState.handleTurned == true and playField:HasObject('Crowbar') == true) then
				gameState.customCursors['actZoneHandle'] = nil;

				gameState.customCursors['actZoneMechanism'] = nil;
				gameState.lockedObjects['actZoneMechanism'] = true;
				--// unblock the cage zoom-zone
				gameState.customCursors['actZoneCage'] = {'CursorZoom'};
				gameState.lockedObjects['actZoneCage'] = nil;
			else
				gameState.customCursors['actZoneHandle'] = {'CursorArms'};

				if (playField:HasObject('Crowbar')) then
					gameState.customCursors['actZoneMechanism'] = {'CursorZoom'};
					gameState.lockedObjects['actZoneMechanism'] = nil;
				else
					gameState.customCursors['actZoneMechanism'] = nil;
					gameState.lockedObjects['actZoneMechanism'] = true;
				end
        		--// block the cage zoom-zone
				gameState.customCursors['actZoneCage'] = nil;
				gameState.lockedObjects['actZoneCage'] = true;
			end
		end
	else
		MechanismZoomZone.HideObject('Handle_onPlace');
		gameState.customCursors['actZoneHandle'] = {'CursorArms'};
		--// block the cage zoom-zone
		gameState.customCursors['actZoneCage'] = nil;
		gameState.lockedObjects['actZoneCage'] = true;
	end
	auxUpdateHandleState();

	if (gameState.cageDoorIsOpened == true) then
		CageZoomZone.UnhideObject('LayerOverCageOpened');
		CageZoomZone.UnhideObject('LayerUnderCageOpened');
		CageZoomZone.HideObject('LayerOverCageClosed');
	else
		CageZoomZone.HideObject('LayerOverCageOpened');
		CageZoomZone.HideObject('LayerUnderCageOpened');
		CageZoomZone.UnhideObject('LayerOverCageClosed');
	end
	playField:GetObject('actZoneCageDoor'):SetVisible(not gameState.cageDoorIsOpened);
end

--// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function auxTurnHandle()
	local duration = 1.0;

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

	local objHandle = playField:GetObject('Handle_onPlace');
	local objCage = playField:GetObject('cage');

	objHandle:SetAngle(0.0);
	objCage:SetY(gameState.cageFinalPosY - gameState.cageMoveDistance);

	objHandle:Rotate(gameState.handleRotationAngle, duration);
	objCage:Move(0.0, gameState.cageMoveDistance, duration);

	gameState.customCursors['actZoneHandle'] = nil;
	--// unblock the cage zoom-zone
	gameState.customCursors['actZoneCage'] = {'CursorZoom'};
	gameState.lockedObjects['actZoneCage'] = nil;
end
function auxUpdateHandleState()
	if (gameState.handleIsTurning == false) then
		local objHandle = playField:GetObject('Handle_onPlace');
		local objCage = playField:GetObject('cage');

		if (gameState.handleTurned == true) then
			objHandle:SetAngle(gameState.handleRotationAngle);
			objCage:SetY(gameState.cageFinalPosY);
		else
			objHandle:SetAngle(0.0);
			objCage:SetY(gameState.cageFinalPosY - gameState.cageMoveDistance);
		end
	end
end

function auxExplodeDynamite()
	local duration = 1.0;
	local explodeDelay = 2.75;

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

	auxPlayNearSacrificePlaceAnimation('Explode');
	TimerDoString('auxProcessToolObjectStateAnCursorType();', explodeDelay, playField:GetTimer());
	TimerDoString('SetGameStateParameter(\'dynamiteExploded\', true);', 1.5*duration, playField:GetTimer());
	TimerDoString('auxTestLevelCompleteCondition();', 2.0*explodeDelay, playField:GetTimer());
end

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

		for compositionName, composition in pairs(nearSacrificePlaceCompositions) do
			if (composition:IsCyclic() == false and composition:GetName() ~= 'Explode') then
				table.insert(animations, composition:GetName());
			end
		end

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

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

--// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function auxTestLevelCompleteCondition()
	if (gameState.dynamiteExploded == true and
	    gameState.dynamiteIsExploding == false 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)
end

------------------------------------------------------------------------------
--
function OnUpdate(dt)
    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 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 == 'actZoneHandle' and gameState.handleTurned == false and
				gameState.handleOnPlace == true) then
				if (gameState.pinionOnPlace == true) then
					PlaySound('L23S10');
					auxTurnHandle();
					auxProcessToolObjectStateAnCursorType();

					--// lock mechanim zoom-zone - - - - - - - - - - - - - - -
				    assert(gameState.activeZone ~= nil);
				    if (gameState.activeZone == MechanismZoomZone and objectName == 'actZoneHandle') then
						CloseAndBlockActiveZone();
				    end
					--// - - - - - - - - - - - - - - - - - - - - - - - - - - -
				else
				    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL23_NEED_PINION_TIP'));
				end
			end
			if (objectName == 'actZoneCageDoor' and gameState.cageDoorIsOpened == false) then
				gameState.cageDoorIsOpened = true;
				PlaySound('L23S11');
				auxProcessToolObjectStateAnCursorType();
			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 == 'actZoneLadder' and gameState.ropeLadderOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL23_LADDER_TIP1'));
	elseif (objectName == 'actZonePinion' and gameState.pinionOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL23_PINON_TIP1'));
	elseif (objectName == 'actZoneHandle' and gameState.handleOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL23_HANDLE_TIP1'));
	elseif (objectName == 'actZoneBoxBoards' and gameState.crowbarUsed == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL23_CROWBAR_TIP1'));
	elseif (objectName == 'actZoneStones' and gameState.dynamiteOnPlace == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL23_DYNAMITE_TIP1'));
	elseif (objectName == 'actZoneStones' and gameState.dynamiteOnPlace == true and gameState.boxOfMatchesUsed == false) then
	    playField:GetLevelScreen():ShowTip(GetTextString('LEVEL23_MATCHES_TIP1'));
	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();
	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    assert(gameState.activeZone ~= nil);
    if ((gameState.activeZone == CageZoomZone and objectName == 'Crowbar') or
		(gameState.activeZone == WoodenBoxZoomZone and objectName == 'Dynamite')) then
		CloseAndBlockActiveZone();
    end
	-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	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 == 'BoxOfMatches' and objName == gameState.toolMap[toolName]) then
		if (gameState.dynamiteOnPlace == true) then
			gameState.boxOfMatchesUsed = true;
			toolApplied = true;
			PlaySound('L23S13');
			auxExplodeDynamite();
		else
		    playField:GetLevelScreen():ShowTip(GetTextString('CANNT_USE_ITEM_YET_TIP1'),
											   GetTextString('CANNT_USE_ITEM_YET_TIP2'));
			return;
		end
	end
	if (toolName == 'RopeLadder' and objName == gameState.toolMap[toolName]) then
		gameState.ropeLadderOnPlace = true;
		toolApplied = true;
	end
	if (toolName == 'Dynamite' and objName == gameState.toolMap[toolName]) then
		gameState.dynamiteOnPlace = true;
		toolApplied = true;
	end
	if (toolName == 'Crowbar' and objName == gameState.toolMap[toolName]) then
		gameState.crowbarUsed = true;
		toolApplied = true;
		PlaySound('L23S12');
	end
	if (toolName == 'Pinion' and objName == gameState.toolMap[toolName]) then
		gameState.pinionOnPlace = true;
		toolApplied = true;
	end
	if (toolName == 'Handle' and objName == gameState.toolMap[toolName]) then
		gameState.handleOnPlace = true;
		toolApplied = true;
	end
	if (not toolApplied) then
	    playField:GetLevelScreen():ShowTip(GetTextString('WRONG_ITEM_APPLIED_TIP1'),
										   GetTextString('WRONG_ITEM_APPLIED_TIP2'));
	end

	if (gameState.boxOfMatchesUsed == true and
		gameState.ropeLadderOnPlace == true and
		gameState.dynamiteOnPlace == true and
		gameState.crowbarUsed == true and
		gameState.pinionOnPlace == true and
		gameState.handleOnPlace == 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/23_NearSacrificePlace/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/23_NearSacrificePlace/Items/Misc/apple.png',0,0,57,56,1,0)
	anim:SetHotSpot(28,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('apple',anim,487,589,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/basket.png',0,0,122,81,1,0)
	anim:SetHotSpot(61,40)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('basket',anim,370,584,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/bottle.png',0,0,109,136,1,0)
	anim:SetHotSpot(54,68)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('bottle',anim,919,704,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/box.png',0,0,65,66,1,0)
	anim:SetHotSpot(32,33)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('box',anim,145,197,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/bucket.png',0,0,112,81,1,0)
	anim:SetHotSpot(56,40)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('bucket',anim,844,732,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/butterfly.png',0,0,52,59,1,0)
	anim:SetHotSpot(26,29)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('butterfly',anim,968,479,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/button.png',0,0,59,39,1,0)
	anim:SetHotSpot(29,19)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('button',anim,556,704,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/cat.png',0,0,55,57,1,0)
	anim:SetHotSpot(27,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('cat',anim,772,249,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/dagger.png',0,0,46,124,1,0)
	anim:SetHotSpot(23,62)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('dagger',anim,138,529,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/demijohn.png',0,0,100,130,1,0)
	anim:SetHotSpot(50,65)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('demijohn',anim,425,688,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/drum.png',0,0,156,123,1,0)
	anim:SetHotSpot(78,61)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('drum',anim,277,621,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/eagle.png',0,0,95,109,1,0)
	anim:SetHotSpot(47,54)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('eagle',anim,470,422,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/egg.png',0,0,74,47,1,0)
	anim:SetHotSpot(37,23)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('egg',anim,853,668,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/emerald.png',0,0,57,63,1,0)
	anim:SetHotSpot(28,31)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('emerald',anim,533,59,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/eyeball.png',0,0,62,52,1,0)
	anim:SetHotSpot(31,26)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('eyeball',anim,993,663,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/flower.png',0,0,62,96,1,0)
	anim:SetHotSpot(31,48)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('flower',anim,198,686,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/hammer.png',0,0,79,90,1,0)
	anim:SetHotSpot(39,45)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('hammer',anim,170,316,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/handbell.png',0,0,93,113,1,0)
	anim:SetHotSpot(46,56)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('handbell',anim,354,510,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/leaf.png',0,0,55,64,1,0)
	anim:SetHotSpot(27,32)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('leaf',anim,669,13,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/ledybird.png',0,0,42,46,1,0)
	anim:SetHotSpot(21,23)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('ledybird',anim,445,232,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/lemur.png',0,0,83,142,1,0)
	anim:SetHotSpot(41,71)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('lemur',anim,806,365,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/lizard.png',0,0,86,50,1,0)
	anim:SetHotSpot(43,25)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('lizard',anim,703,507,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/maraca.png',0,0,108,80,1,0)
	anim:SetHotSpot(54,40)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('maraca',anim,862,512,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/mask.png',0,0,84,98,1,0)
	anim:SetHotSpot(42,49)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('mask',anim,436,52,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/mouse.png',0,0,84,68,1,0)
	anim:SetHotSpot(42,34)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('mouse',anim,212,43,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/mug.png',0,0,93,76,1,0)
	anim:SetHotSpot(46,38)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('mug',anim,248,732,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/necklace.png',0,0,75,105,1,0)
	anim:SetHotSpot(37,52)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('necklace',anim,852,39,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/onion.png',0,0,53,136,1,0)
	anim:SetHotSpot(26,68)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('onion',anim,987,438,102,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/revolver.png',0,0,136,66,1,0)
	anim:SetHotSpot(68,33)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('revolver',anim,554,675,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/ring.png',0,0,58,57,1,0)
	anim:SetHotSpot(29,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('ring',anim,154,65,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/rope.png',0,0,129,52,1,0)
	anim:SetHotSpot(64,26)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('rope',anim,464,735,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/sack.png',0,0,90,81,1,0)
	anim:SetHotSpot(45,40)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('sack',anim,975,729,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/seashell.png',0,0,64,43,1,0)
	anim:SetHotSpot(32,21)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('seashell',anim,805,741,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/skull.png',0,0,72,56,1,0)
	anim:SetHotSpot(36,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('skull',anim,284,488,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/spider.png',0,0,86,68,1,0)
	anim:SetHotSpot(43,34)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('spider',anim,324,42,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/spoon.png',0,0,28,124,1,0)
	anim:SetHotSpot(14,62)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('spoon',anim,138,371,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/sword.png',0,0,58,155,1,0)
	anim:SetHotSpot(29,77)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('sword',anim,770,527,101,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/vase.png',0,0,59,97,1,0)
	anim:SetHotSpot(29,48)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('vase',anim,647,381,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/watch.png',0,0,92,87,1,0)
	anim:SetHotSpot(46,43)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('watch',anim,464,705,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Misc/whisk.png',0,0,103,83,1,0)
	anim:SetHotSpot(51,41)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('whisk',anim,678,699,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/holeInWall.png',0,0,361,447,1,0)
	anim:SetHotSpot(180,223)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('holeInWall',anim,298,283,99,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverApple.png',0,0,65,60,1,0)
	anim:SetHotSpot(32,30)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverApple',anim,488,590,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverDagger.png',0,0,65,59,1,0)
	anim:SetHotSpot(32,29)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverDagger',anim,153,569,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverDrum.png',0,0,127,86,1,0)
	anim:SetHotSpot(63,43)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverDrum',anim,256,649,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverMug.png',0,0,89,75,1,0)
	anim:SetHotSpot(44,37)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverMug',anim,253,723,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverOnion.png',0,0,59,71,1,0)
	anim:SetHotSpot(29,35)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverOnion',anim,994,480,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverRevolver.png',0,0,98,69,1,0)
	anim:SetHotSpot(49,34)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverRevolver',anim,552,667,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverRing.png',0,0,64,45,1,0)
	anim:SetHotSpot(32,22)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverRing',anim,155,84,105,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverSword.png',0,0,51,137,1,0)
	anim:SetHotSpot(25,68)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverSword',anim,750,552,102,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/BoxOfMatches.png',0,0,68,56,1,0)
	anim:SetHotSpot(34,28)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('BoxOfMatches',anim,787,692,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/RopeLadder.png',0,0,245,226,1,0)
	anim:SetHotSpot(122,113)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('RopeLadder',anim,692,630,104,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/RopeLadder_onPlace.png',0,0,106,530,1,0)
	anim:SetHotSpot(53,265)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('RopeLadder_onPlace',anim,722,432,103,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Dynamite_onPlace.png',0,0,76,83,1,0)
	anim:SetHotSpot(38,41)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Dynamite_onPlace',anim,290,239,108,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Handle.png',0,0,79,71,1,0)
	anim:SetHotSpot(39,35)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Handle',anim,658,465,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Pinion.png',0,0,60,61,1,0)
	anim:SetHotSpot(30,30)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Pinion',anim,941,251,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Layers/LayerOverPinion.png',0,0,30,62,1,0)
	anim:SetHotSpot(15,31)
	anim:SetBlendMode(2)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('LayerOverPinion',anim,915,253,205,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('actZoneStones',anim,306,230,109,0,1.2,1.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('actZoneLadder',anim,692,173,103,0,1.2,2)
	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('actZoneRuins',anim,692,173,104,0,1.2,2)
	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('navigationZoneRuins',anim,642,590,202,0,0.9,1.3)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Layers/background.jpg',0,0,1024,768,1,0)
	anim:SetHotSpot(512,384)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('ZoomRuinsBackground',anim,512,384,200,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/animalSkull.png',0,0,87,74,1,0)
	anim:SetHotSpot(43,37)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2animalSkull',anim,519,570,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/armour.png',0,0,110,140,1,0)
	anim:SetHotSpot(55,70)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2armour',anim,974,635,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/axe1.png',0,0,41,136,1,0)
	anim:SetHotSpot(20,68)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2axe1',anim,383,627,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/basin1.png',0,0,106,142,1,0)
	anim:SetHotSpot(53,71)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2basin1',anim,371,644,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/basin2.png',0,0,128,138,1,0)
	anim:SetHotSpot(64,69)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2basin2',anim,871,706,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/bird1.png',0,0,72,75,1,0)
	anim:SetHotSpot(36,37)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2bird1',anim,369,379,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/bird2.png',0,0,35,39,1,0)
	anim:SetHotSpot(17,19)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2bird2',anim,621,208,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/bone.png',0,0,69,70,1,0)
	anim:SetHotSpot(34,35)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2bone',anim,434,643,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/cat.png',0,0,58,67,1,0)
	anim:SetHotSpot(29,33)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2cat',anim,575,223,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/chest.png',0,0,71,61,1,0)
	anim:SetHotSpot(35,30)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2chest',anim,901,595,202,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/corn.png',0,0,81,40,1,0)
	anim:SetHotSpot(40,20)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2corn',anim,568,489,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/eagle.png',0,0,63,67,1,0)
	anim:SetHotSpot(31,33)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2eagle',anim,977,106,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/fish.png',0,0,34,69,1,0)
	anim:SetHotSpot(17,34)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2fish',anim,900,167,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/goat.png',0,0,64,78,1,0)
	anim:SetHotSpot(32,39)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2goat',anim,268,532,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/helmet1.png',0,0,93,88,1,0)
	anim:SetHotSpot(46,44)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2helmet1',anim,293,698,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/helmet2.png',0,0,82,63,1,0)
	anim:SetHotSpot(41,31)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2helmet2',anim,983,553,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/humanHead1.png',0,0,42,69,1,0)
	anim:SetHotSpot(21,34)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2humanHead1',anim,694,135,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/humanHead2.png',0,0,68,77,1,0)
	anim:SetHotSpot(34,38)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2humanHead2',anim,224,573,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/humanSkull.png',0,0,60,45,1,0)
	anim:SetHotSpot(30,22)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2humanSkull',anim,280,637,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/manStatuette1.png',0,0,125,92,1,0)
	anim:SetHotSpot(62,46)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2manStatuette1',anim,243,454,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/manStatuette.png',0,0,81,110,1,0)
	anim:SetHotSpot(40,55)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2manStatuette',anim,327,273,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/necklace.png',0,0,44,79,1,0)
	anim:SetHotSpot(22,39)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2necklace',anim,189,582,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/palm.png',0,0,56,63,1,0)
	anim:SetHotSpot(28,31)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2palm',anim,818,447,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/pear.png',0,0,48,48,1,0)
	anim:SetHotSpot(24,24)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2pear',anim,928,626,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/pot.png',0,0,65,69,1,0)
	anim:SetHotSpot(32,34)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2pot',anim,433,550,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/pumpkin.png',0,0,89,104,1,0)
	anim:SetHotSpot(44,52)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2pumpkin',anim,639,707,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/sandal.png',0,0,83,59,1,0)
	anim:SetHotSpot(41,29)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2sandal',anim,706,739,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/snake.png',0,0,39,89,1,0)
	anim:SetHotSpot(19,44)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2snake',anim,901,393,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/statuette1.png',0,0,109,87,1,0)
	anim:SetHotSpot(54,43)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2statuette1',anim,477,714,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/statuette2.png',0,0,55,98,1,0)
	anim:SetHotSpot(27,49)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2statuette2',anim,154,157,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/statuette3.png',0,0,93,103,1,0)
	anim:SetHotSpot(46,51)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2statuette3',anim,683,288,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/statuette.png',0,0,74,81,1,0)
	anim:SetHotSpot(37,40)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2statuette',anim,859,107,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/sword1.png',0,0,62,188,1,0)
	anim:SetHotSpot(31,94)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2sword1',anim,1011,722,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/sword2.png',0,0,31,102,1,0)
	anim:SetHotSpot(15,51)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2sword2',anim,604,441,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/tooth.png',0,0,80,46,1,0)
	anim:SetHotSpot(40,23)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2tooth',anim,586,689,203,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/vessel1.png',0,0,57,103,1,0)
	anim:SetHotSpot(28,51)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2vessel1',anim,575,625,202,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/vessel2.png',0,0,47,88,1,0)
	anim:SetHotSpot(23,44)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2vessel2',anim,151,423,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/vessel3.png',0,0,76,56,1,0)
	anim:SetHotSpot(38,28)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2vessel3',anim,727,404,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/vessel4.png',0,0,49,76,1,0)
	anim:SetHotSpot(24,38)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2vessel4',anim,578,449,202,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Items/wolfHead.png',0,0,87,64,1,0)
	anim:SetHotSpot(43,32)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('l2wolfHead',anim,767,157,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Layers/cage.png',0,0,180,340,1,0)
	anim:SetHotSpot(90,170)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('cage',anim,471,341,202,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Layers/LayerOverArmour.png',0,0,63,50,1,0)
	anim:SetHotSpot(31,25)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverArmour',anim,945,682,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Layers/LayerOverCage.png',0,0,20,90,1,0)
	anim:SetHotSpot(10,45)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverCage',anim,465,137,204,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Layers/LayerOverManHead.png',0,0,30,29,1,0)
	anim:SetHotSpot(15,14)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverManHead',anim,698,160,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Layers/LayerOverManStatuette1.png',0,0,66,32,1,0)
	anim:SetHotSpot(33,16)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverManStatuette1',anim,301,487,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Layers/LayerOvermanStatuette.png',0,0,56,32,1,0)
	anim:SetHotSpot(28,16)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOvermanStatuette',anim,334,319,205,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Layers/LayerOverStatuette3.png',0,0,65,37,1,0)
	anim:SetHotSpot(32,18)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverStatuette3',anim,680,329,205,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('actZoneCage',anim,465,404,204,0,1.4,1.6)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/Cage/Layers/background.jpg',0,0,640,480,1,0)
	anim:SetHotSpot(320,240)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('ZoomCageBackground',anim,638,382,300,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/Cage/Layers/LayerOverCageOpened.png',0,0,251,272,1,0)
	anim:SetHotSpot(125,136)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverCageOpened',anim,618,449,304,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/Cage/Layers/LayerUnderCageOpened.jpg',0,0,213,359,1,0)
	anim:SetHotSpot(106,179)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerUnderCageOpened',anim,618,442,301,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/Cage/Layers/LayerOverCageClosed.png',0,0,258,272,1,0)
	anim:SetHotSpot(129,136)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverCageClosed',anim,622,455,305,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Crowbar.png',0,0,231,243,1,0)
	anim:SetHotSpot(115,121)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Crowbar',anim,607,439,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('actZoneCageDoor',anim,610,414,306,0,2.4,2.6)
	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,242,385,203,0,0.9,1.2)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/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,506,321,300,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/Mechanism/Layers/LayerOverPinions.png',0,0,228,170,1,0)
	anim:SetHotSpot(114,85)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverPinions',anim,450,174,305,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/Mechanism/Layers/pinion1.png',0,0,115,115,1,0)
	anim:SetHotSpot(57,57)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('pinion1',anim,456,224,303,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/Mechanism/Layers/pinion2.png',0,0,115,115,1,0)
	anim:SetHotSpot(57,57)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('pinion2',anim,545,273,304,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Pinion_onPlace.png',0,0,93,92,1,0)
	anim:SetHotSpot(46,46)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Pinion_onPlace',anim,428,314,304,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Handle_onPlace.png',0,0,87,170,1,0)
	anim:SetHotSpot(31,33)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Handle_onPlace',anim,494,390,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('actZonePinion',anim,419,297,305,0,1.2,1.2)
	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('actZoneHandle',anim,510,439,305,-20,1,1.6)
	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('actZoneWoodenBox',anim,762,598,203,10,1.1,0.8)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/WoodenBox/Layers/background.jpg',0,0,640,480,1,0)
	anim:SetHotSpot(320,240)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('ZoomWoodenBoxBackground',anim,628,471,300,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/WoodenBox/Layers/LayerCrack.jpg',0,0,549,331,1,0)
	anim:SetHotSpot(274,165)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerCrack',anim,582,505,301,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Zones/Ruins/Zones/WoodenBox/Layers/LayerOverDynamite.png',0,0,255,165,1,0)
	anim:SetHotSpot(127,82)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('LayerOverDynamite',anim,664,600,304,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Dynamite.png',0,0,228,242,1,0)
	anim:SetHotSpot(114,121)
	anim:SetBlendMode(2)
	anim:SetColor('0x00FFFFFF')
	play_field:CreateObject('Dynamite',anim,653,534,303,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('actZoneBoxBoards',anim,656,504,305,-20,3.1,1.9)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/RopeLadder_ghost.png',0,0,96,96,1,0)
	anim:SetHotSpot(48,48)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('RopeLadder_ghost',anim,697,202,110,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Dynamite_ghost.png',0,0,100,100,1,0)
	anim:SetHotSpot(50,50)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Dynamite_ghost',anim,291,240,110,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Pinion_ghost.png',0,0,128,128,1,0)
	anim:SetHotSpot(64,64)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Pinion_ghost',anim,429,315,310,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Handle_ghost.png',0,0,128,200,1,0)
	anim:SetHotSpot(64,100)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Handle_ghost',anim,506,442,310,0,1,1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/Crowbar_ghost..png',0,0,187,174,1,0)
	anim:SetHotSpot(93,93)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('Crowbar_ghost',anim,672,493,310,0,-1,-1)
	local anim = CreateAnimation('data/Texture/Scenes/23_NearSacrificePlace/Items/BoxOfMatches_ghost.png',0,0,100,100,1,0)
	anim:SetHotSpot(50,50)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	play_field:CreateObject('BoxOfMatches_ghost',anim,282,187,110,0,1,1)
end

function FreeData()
end
-- CLEAR_ON_SAVE_END
