//+--------------------------------------------------------------------------+
//|			From PFOperatorMaterialStaticState::IPFActionState					 |
//+--------------------------------------------------------------------------+
IOResult PFOperatorMaterialStaticState::Load(ILoad* iload)
{
	ULONG nb;
	IOResult res;

	while (IO_OK==(res=iload->OpenChunk()))
	{
		switch(iload->CurChunkID())
		{
		case IPFActionState::kChunkActionHandle:
			res=iload->Read(&_actionHandle(), sizeof(ULONG), &nb);
			break;

		case IPFActionState::kChunkRandGen:
			res=iload->Read(_randGen(), sizeof(RandGenerator), &nb);
			break;

		case IPFActionState::kChunkData:
			res=iload->Read(&_cycleOffset(), sizeof(float), &nb);
			break;

		case IPFActionState::kChunkData2:
			res=iload->Read(&_offsetTime(), sizeof(TimeValue), &nb);
			break;
		}
		iload->CloseChunk();
		if (res != IO_OK)
			return res;
	}

	return IO_OK;
}
//+--------------------------------------------------------------------------+
//|			From PFOperatorMaterialFrequencyState::IPFActionState					 |
//+--------------------------------------------------------------------------+
IOResult PFOperatorMaterialFrequencyState::Load(ILoad* iload)
{
	ULONG nb;
	IOResult res;

	while (IO_OK==(res=iload->OpenChunk()))
	{
		switch(iload->CurChunkID())
		{
		case IPFActionState::kChunkActionHandle:
			res=iload->Read(&_actionHandle(), sizeof(ULONG), &nb);
			break;

		case IPFActionState::kChunkRandGen:
			res=iload->Read(_randGen(), sizeof(RandGenerator), &nb);
			break;
		}
		iload->CloseChunk();
		if (res != IO_OK)
			return res;
	}

	return IO_OK;
}
//+--------------------------------------------------------------------------+
//|			From PFTestSplitByAmountState::IPFActionState					 |
//+--------------------------------------------------------------------------+
IOResult PFTestSplitByAmountState::Load(ILoad* iload)
{
	ULONG nb;
	IOResult res;

	while (IO_OK==(res=iload->OpenChunk()))
	{
		switch(iload->CurChunkID())
		{
		case IPFActionState::kChunkActionHandle:
			res=iload->Read(&_actionHandle(), sizeof(ULONG), &nb);
			break;

		case IPFActionState::kChunkRandGen:
			res=iload->Read(_randGen(), sizeof(RandGenerator), &nb);
			break;

		case IPFActionState::kChunkData:
			res=iload->Read(&_wentThru(), sizeof(int), &nb);
			break;

		case IPFActionState::kChunkData2:
			res=iload->Read(&_wentThruAccum(), sizeof(int), &nb);
			break;

		case IPFActionState::kChunkData3:
			res=iload->Read(&_wentThruTotal(), sizeof(int), &nb);
			break;
		}
		iload->CloseChunk();
		if (res != IO_OK)
			return res;
	}

	return IO_OK;
}