DIFF

ScientificBriefcase.c

class ScientificBriefcase : Container_Base
{
	protected ref OpenableBehaviour m_Openable;
	
	override void InitItemVariables()
	{
		super.InitItemVariables();
		
		m_Openable = new OpenableBehaviour(false);
		RegisterNetSyncVariableBool("m_Openable.m_IsOpened");
	}
	
	override void OnStoreSave(ParamsWriteContext ctx)
	{
		super.OnStoreSave(ctx);
		
		ctx.Write(m_Openable.IsOpened());
	}
	
	override bool OnStoreLoad(ParamsReadContext ctx, int version)
	{
		if (!super.OnStoreLoad(ctx, version))
			return false;
		
		bool opened;
		if (version >= 139 && ctx.Read(opened))
		{
			if (opened)
				Open();
			else
				Close();
		}
		
		return true;
	}
	
	override bool CanReceiveItemIntoCargo(EntityAI item)
	{
		if (GetHealthLevel() == GameConstants.STATE_RUINED)
			return false;

		if (!IsOpen())
			return false;

		return super.CanReceiveItemIntoCargo(item);
	}
	
	override bool IsOpen()
	{
		return m_Openable.IsOpened();
	}
	
	override void Open()
	{
		m_Openable.Open();
		SetSynchDirty();
	}
	
	override void Close()
	{
		m_Openable.Close();
		SetSynchDirty();
	}
}