/****************************************************************************************************

		DBooResource.h
		Copyright: (c) 2001 Eovia Corp. All rights reserved.

		Author:	Arnaud
		Date:	8/20/2002

****************************************************************************************************/

#ifndef __DBooResource__
#define __DBooResource__

#if CP_PRAGMA_ONCE
#pragma once
#endif



#include "MCBasicTypes.h"
#include "MCClassArray.h"
#include "MCString.h"


template<class T> class TMCArray;


struct TFamilyOrder
{
	TFamilyOrder();
	~TFamilyOrder();

	TMCString255 		fFamilyName;
	TMCArray<IDType> 	fIDs;
};


struct TDBooResource
{
	TDBooResource();
	~TDBooResource();

	//For Localisation, the internal data MUST STAY THE SAME between a get and a set
	void GetOrSetStrings(TMCClassArray<TMCDynamicString>& strings, boolean doGet);

	void GetStringsInfo	(TMCClassArray<TMCDynamicString>& outDescriptions, TMCArray<int32>& outMaxLengths);


	TMCClassArray<TFamilyOrder> fOrderedFamilies;
};

TMCResourceStream& operator >> (TMCResourceStream& stream, TDBooResource& outDBooRes);
TMCResourceStream& operator << (TMCResourceStream& stream, const TDBooResource& inDBooRes);


#endif
