dungeon_crawler

diff prototype/src/tile.h @ 49:303743485aba

pretty much implemented the positional torch sound sources
author John Tsiombikas <nuclear@member.fsf.org>
date Tue, 18 Sep 2012 00:34:29 +0300
parents aa9e28670ae2
children c40efa9cf844
line diff
     1.1 --- a/prototype/src/tile.h	Mon Sep 17 08:40:59 2012 +0300
     1.2 +++ b/prototype/src/tile.h	Tue Sep 18 00:34:29 2012 +0300
     1.3 @@ -8,6 +8,7 @@
     1.4  #include "mesh.h"
     1.5  #include "light.h"
     1.6  #include "audio/sample.h"
     1.7 +#include "audio/source.h"
     1.8  
     1.9  enum {
    1.10  	TILE_NORTH	= 1,
    1.11 @@ -27,6 +28,12 @@
    1.12  class TileSet;
    1.13  
    1.14  class Tile {
    1.15 +public:
    1.16 +	struct AudioSourceDesc {
    1.17 +		Vector3 pos;
    1.18 +		AudioSample *sample;
    1.19 +	};
    1.20 +
    1.21  private:
    1.22  	TileSet *tset;
    1.23  
    1.24 @@ -41,6 +48,9 @@
    1.25  	std::vector<struct psys_emitter*> psys_global;
    1.26  	long last_upd;
    1.27  
    1.28 +	// audio sources
    1.29 +	std::vector<AudioSourceDesc> ausrc;
    1.30 +
    1.31  	int load_lights(const aiScene *scn);
    1.32  	int load_meshes(const aiScene *scn, const std::map<aiMesh*, aiNode*> &nmap);
    1.33  
    1.34 @@ -50,8 +60,12 @@
    1.35  
    1.36  	AudioSample *get_sample(int sidx) const;
    1.37  
    1.38 -	const struct psys_attributes * const *get_unique_psys() const;
    1.39 +	int get_audio_source_count() const;
    1.40 +	const AudioSourceDesc &get_audio_source(int idx) const;
    1.41 +
    1.42  	int get_unique_psys_count() const;
    1.43 +	struct psys_attributes *get_unique_psys(int idx);
    1.44 +	const struct psys_attributes *get_unique_psys(int idx) const;
    1.45  
    1.46  	bool load(const char *fname);
    1.47