//
// Asura_Chunk_MetaMusic.h
//
// Created by Richard Rice - 22/01/04
// 
// Copyright (C) 2004 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __ASURA_CHUNK_METAMUSIC_H__
#define __ASURA_CHUNK_METAMUSIC_H__

#if !defined(ASURA_SUPPORT_DYNAMIC_MUSIC_SYSTEM)

#include "ChunkSystem/Asura_Chunk_Loaders.h"

class Asura_SaveBlock_Base;
class Asura_MetaMusic_Handler;

class Asura_Chunk_MetaMusic : public Asura_Chunk_Header
{
public :
	bool Process(Asura_Handle iFileHandle) const;
	#ifdef ASURA_TOOLS
	static void Create(Asura_SaveBlock* pxSaveBlock,Asura_MetaMusic_Handler* pxHandler = 0);
	#endif

	enum ChunkFlags
	{
		ChunkFlag_HasZoneController = 0x00000001,//zone controller saved in chunk
	};

	int m_iNumberOfMusicTracks;
};

// (AW - 11.01.2005) - Chunk for saving the in-game state of the meta music system.
class Asura_Chunk_MetaMusic_Ingame_State : public Asura_Chunk_Header
{
public:
	bool Process(const char* pcChunkBuffer) const;
	bool Process(Asura_Chunk_Stream& xStream) const;
	static void Create(Asura_SaveBlock_Base& xSaveBlock);
};

#endif	//!defined(ASURA_SUPPORT_DYNAMIC_MUSIC_SYSTEM)

#endif //__ASURA_CHUNK_METAMUSIC_H__
