MegaGlest/source/glest_game/sound/sound_container.h

61 lines
1.5 KiB
C++

// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2001-2008 Martiño Figueroa
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#ifndef _GLEST_GAME_SOUNDCONTAINER_H_
#define _GLEST_GAME_SOUNDCONTAINER_H_
#ifdef WIN32
#include <winsock2.h>
#include <winsock.h>
#endif
#include <vector>
#include "sound.h"
#include "randomgen.h"
#include "leak_dumper.h"
using std::vector;
using Shared::Util::RandomGen;
using Shared::Sound::StaticSound;
namespace Glest{ namespace Game{
// =====================================================
// class SoundContainer
//
/// Holds a list of sounds that are usually played at random
// =====================================================
class SoundContainer{
public:
typedef vector<StaticSound*> Sounds;
private:
Sounds sounds;
mutable RandomGen random;
mutable int lastSound;
public:
SoundContainer();
void resize(int size) {sounds.resize(size);}
StaticSound *&operator[](int i) {return sounds[i];}
const Sounds &getSounds() const {return sounds;}
void clearSounds() {sounds.clear();}
Sounds *getSoundsPtr() {return &sounds;}
StaticSound *getRandSound() const;
};
}}//end namespace
#endif