void ExplosionScene::setup(TextureLoader* texloader)
{
	explosionOn = false;
	showPrompt = false;
	animationCt = 0;
	flagWaveCt = 0;
	isFinished = false;
	loadTextureRefs(texloader);
	initEmitter(texloader);
}
HRESULT SoundManager::initPositionalSound()
{
	HRESULT hr = S_OK;

	X3DAUDIO_EMITTER emitter;
	X3DAUDIO_CONE cone;
	initEmitter(&emitter, &cone);

	X3DAUDIO_DSP_SETTINGS dsp_settings;
	dsp_settings.SrcChannelCount = 1;
	dsp_settings.DstChannelCount = m_destChannels;
	dsp_settings.pMatrixCoefficients = m_matrixCoefficients;

	m_music = new SFX(emitter, dsp_settings, cone , m_soundDevice, 
		"../Sound/Techno_1.wav",true);

	return hr;
}
static bool importParticleBoxEmitter(ImportContext & ctxt, const std::string & type, const DescriptionMap & d, Node * parentNode) {
	if(type != Consts::BEHAVIOUR_TYPE_PARTICLE_BOX_EMITTER)
		return false;
	ParticleSystemNode * psn = convertToTNode<ParticleSystemNode>(parentNode);
	if(psn==nullptr)
		return false;
	auto box = new ParticleBoxEmitter(psn);
	if(box) {
		std::vector<float> v =
			Util::StringUtils::toFloats(d.getString(Consts::ATTR_PARTICLE_EMIT_BOUNDS, ""));
		if(v.size() >= 6) {
			box->setEmitBounds(Geometry::Box(v[0], v[1], v[2], v[3], v[4], v[5]));
		}
	}
	initEmitter(d, box);
	ctxt.addFinalizingAction(ImportContext::FinalizeAction(AssignSpawnNodeAction(box, d.getString(Consts::ATTR_PARTICLE_SPAWN_NODE,""))));
	ctxt.sceneManager.getBehaviourManager()->registerBehaviour(box);
	return true;
}
static bool importParticlePointEmitter(ImportContext & ctxt, const std::string & type, const DescriptionMap & d, Node * parentNode) {
	if(type != Consts::BEHAVIOUR_TYPE_PARTICLE_POINT_EMITTER)
		return false;
	ParticleSystemNode * psn = convertToTNode<ParticleSystemNode>(parentNode);
	if(psn==nullptr)
		return false;
	auto point = new ParticlePointEmitter(psn);
	if(point) {
		std::vector<float> v =
			Util::StringUtils::toFloats(d.getString(Consts::ATTR_PARTICLE_OFFSET, ""));
		if(v.size() >= 2) {
			point->setMinOffset(v[0]);
			point->setMaxOffset(v[1]);
		}
	}
	initEmitter(d, point);
	ctxt.addFinalizingAction(ImportContext::FinalizeAction(AssignSpawnNodeAction(point, d.getString(Consts::ATTR_PARTICLE_SPAWN_NODE,""))));
	ctxt.sceneManager.getBehaviourManager()->registerBehaviour(point);
	return true;
}