-- ------------------------------------------------------------------------
--  Inventory manager routines
-- ------------------------------------------------------------------------

.namespace InventoryManager

g_userdata = nil

-- gestion de l'inventaire

-- ------------------------------------------------------------------------
--  On enable handler
-- ------------------------------------------------------------------------
function OnEnable()
	g_userdata = Load("UserData","DataArray")
	self.curind = 1
	g_curlistobject = {}
end

-- ------------------------------------------------------------------------
--  On disable handler
-- ------------------------------------------------------------------------
function OnDisable()
    
end 


function AddInInventory(object , text)
	AssertPopup(type(object) == "string", "prob paramétre")
	OPLog.Log("add objet "..tostring(object))
	
	if unit(object)== nil then
		AssertPopup(false,"nom d'object invalide" .. object)
		return
	end
	
	if unit(object).Equipped then
		OPLog.Log("attention, objet déjà équipé " ..object)
	end
	
	unit(object).Equipped = true
	
	self.lastobjectgot = object	
	
	--on lance la popup ici en fait !!!  sauf en closeup
	if --[[IsEqualVariables("CurrentGamePhase","Closeup") or]] IsEqualVariables("CurrentGamePhase","BlockClick") then
		g_needobjecttohighlight = self.lastobjectgot  --cas du closeup
		self.nextsentencepopup = ObjectManager.sentenceobjecttoplay
	else
		if text ~= nil then
			PopupManager.OpenPopup(text,self,object)
			-- Search_Polaroid.SetFrame(3) --affichage vignette journal
		elseif ObjectManager.sentenceobjecttoplay ~= nil then
			PopupManager.OpenPopup(ObjectManager.sentenceobjecttoplay,self,object)
			-- Search_Polaroid.SetFrame(3) --affichage vignette journal
		else
			OnPopupLeave()
		end
	
	end

	-- Sauvegarde
	SaveManager.saveGame("Profil"..ProfilConfig.Get("CurrentProfil"))
		
end

function OnPopupLeave()
	OPLog.Log("onpopupleave")
	UpdateInterfaceObject(self.lastobjectgot)	
	SpriteFader.Fade(Inventory_hl,true,0.8,LeftInventory)
	-- if DebugOptions.UseTutorial == true and UserData.Get("inventorytutorialdone") == false then
		-- UserData.Set("inventorytutorialdone",true)
		-- --TutorialManager.StartInventoryTuto()
		-- return
	-- end
end

--pour highlight l'objet au bon moment
function OnEnterSearchSite()
	if g_needobjecttohighlight ~= nil then
		-- PopupManager.OpenPopup(self.nextsentencepopup,self,g_needobjecttohighlight)
		-- Search_Polaroid.SetFrame(3) --affichage vignette journal
		g_needobjecttohighlight = nil
	end
end

function UpdateInterfaceObject(object)
--	if DebugOptions.interfaceVersion == 2 then
		LeftInventory.UpdateVignettes()
		LeftInventory.SetHighlight(object)
--	else
		-- LeftInventory.UpdateVignettes()
--		Search_ButtonInventory.UpdateVignettes()
--		Search_ButtonInventory.SetHighlight(object)
--		Search_ButtonInventory.FlashNewObject(object)
--		end
--	
	
end

function RemoveFromInventory(object)
	AssertPopup(type(object) == "string", "prob paramétre")
	OPLog.Log("remove objet "..tostring(object))
	
	if unit(object) == nil then
		AssertPopup(false,"nom d'object invalide" .. object)
		return
	end
	
	if unit(object).Equipped == false then
		OPLog.Log("attention, objet pas équipé " ..object)
	end
	
	unit(object).Equipped = false

	LeftInventory.UpdateVignettes()
end

function GetCurrentObject()
	return OPUnitFactory.GetUnit(self.curobject)
end

-- ------------------------------------------------------------------------
--  Sélectionne l'objet que l'on veut traiter
-- ------------------------------------------------------------------------
function SetSelectedObject( object )
	AssertPopup(type(object) == "string" ," prob param sur setselectedojbect")
	self.curobject = object
end

function IsInInventory(object)
	return false
end

-- Vide entièrement l'inventaire
-- fonction appelée lorsque l'on quitte un site de fouille pour retourner à la map de région
-- ou à l'écran de titre
function ClearInventory()

end
