| @@ -7,6 +7,7 @@ liblol_a_SOURCES = \ | |||||
| entity.cpp entity.h ticker.cpp ticker.h tileset.cpp tileset.h \ | entity.cpp entity.h ticker.cpp ticker.h tileset.cpp tileset.h \ | ||||
| forge.cpp forge.h video.cpp video.h timer.cpp timer.h bitfield.h \ | forge.cpp forge.h video.cpp video.h timer.cpp timer.h bitfield.h \ | ||||
| profiler.cpp profiler.h input.h input.cpp world.cpp world.h \ | profiler.cpp profiler.h input.h input.cpp world.cpp world.h \ | ||||
| sample.cpp sample.h sampler.cpp sampler.h \ | |||||
| \ | \ | ||||
| sdlinput.cpp sdlinput.h \ | sdlinput.cpp sdlinput.h \ | ||||
| \ | \ | ||||
| @@ -30,6 +30,7 @@ | |||||
| #include "entity.h" | #include "entity.h" | ||||
| #include "font.h" | #include "font.h" | ||||
| #include "tileset.h" | #include "tileset.h" | ||||
| #include "sample.h" | |||||
| #include "world.h" | #include "world.h" | ||||
| // Other objects | // Other objects | ||||
| @@ -41,6 +42,7 @@ | |||||
| #include "ticker.h" | #include "ticker.h" | ||||
| #include "forge.h" | #include "forge.h" | ||||
| #include "tiler.h" | #include "tiler.h" | ||||
| #include "sampler.h" | |||||
| #endif // __DH_CORE_H__ | #endif // __DH_CORE_H__ | ||||
| @@ -0,0 +1,63 @@ | |||||
| // | |||||
| // Lol Engine | |||||
| // | |||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||||
| // | |||||
| #if defined HAVE_CONFIG_H | |||||
| # include "config.h" | |||||
| #endif | |||||
| #include <cstdlib> | |||||
| #include <cmath> | |||||
| #include <SDL.h> | |||||
| #include "core.h" | |||||
| /* | |||||
| * Sample implementation class | |||||
| */ | |||||
| class SampleData | |||||
| { | |||||
| friend class Sample; | |||||
| private: | |||||
| char *name; | |||||
| }; | |||||
| /* | |||||
| * Public Sample class | |||||
| */ | |||||
| Sample::Sample(char const *path) | |||||
| { | |||||
| data = new SampleData(); | |||||
| data->name = strdup(path); | |||||
| } | |||||
| Sample::~Sample() | |||||
| { | |||||
| free(data->name); | |||||
| delete data; | |||||
| } | |||||
| void Sample::TickGame(float deltams) | |||||
| { | |||||
| Entity::TickGame(deltams); | |||||
| } | |||||
| char const *Sample::GetName() | |||||
| { | |||||
| return data->name; | |||||
| } | |||||
| void Sample::Play() | |||||
| { | |||||
| } | |||||
| @@ -0,0 +1,46 @@ | |||||
| // | |||||
| // Lol Engine | |||||
| // | |||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||||
| // | |||||
| // | |||||
| // The Sample class | |||||
| // ---------------- | |||||
| // A Sample is a unique sound sample. | |||||
| // | |||||
| #if !defined __DH_SAMPLE_H__ | |||||
| #define __DH_SAMPLE_H__ | |||||
| #include <stdint.h> | |||||
| #include "entity.h" | |||||
| class SampleData; | |||||
| class Sample : public Entity | |||||
| { | |||||
| public: | |||||
| Sample(char const *path); | |||||
| virtual ~Sample(); | |||||
| protected: | |||||
| /* Inherited from Entity */ | |||||
| virtual char const *GetName(); | |||||
| virtual void TickGame(float deltams); | |||||
| public: | |||||
| /* New methods */ | |||||
| void Play(); | |||||
| private: | |||||
| SampleData *data; | |||||
| }; | |||||
| #endif // __DH_SAMPLE_H__ | |||||
| @@ -0,0 +1,59 @@ | |||||
| // | |||||
| // Lol Engine | |||||
| // | |||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||||
| // | |||||
| #if defined HAVE_CONFIG_H | |||||
| # include "config.h" | |||||
| #endif | |||||
| #include "core.h" | |||||
| /* | |||||
| * Sampler implementation class | |||||
| */ | |||||
| static class SamplerData | |||||
| { | |||||
| friend class Sampler; | |||||
| public: | |||||
| Dict samples; | |||||
| } | |||||
| samplerdata; | |||||
| static SamplerData * const data = &samplerdata; | |||||
| /* | |||||
| * Public Sampler class | |||||
| */ | |||||
| int Sampler::Register(char const *path) | |||||
| { | |||||
| int id = data->samples.MakeSlot(path); | |||||
| if (!data->samples.GetEntity(id)) | |||||
| { | |||||
| Sample *sample = new Sample(path); | |||||
| data->samples.SetEntity(id, sample); | |||||
| } | |||||
| return id + 1; /* ID 0 is for the empty sample */ | |||||
| } | |||||
| void Sampler::Deregister(int id) | |||||
| { | |||||
| data->samples.RemoveSlot(id - 1); /* ID 0 is for the empty sample */ | |||||
| } | |||||
| void Sampler::PlaySample(int id) | |||||
| { | |||||
| Sample *sample = (Sample *)data->samples.GetEntity(id); | |||||
| sample->Play(); | |||||
| } | |||||
| @@ -0,0 +1,32 @@ | |||||
| // | |||||
| // Lol Engine | |||||
| // | |||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||||
| // | |||||
| // | |||||
| // The Sampler class | |||||
| // ----------------- | |||||
| // The Sampler is a static class that manages samples. | |||||
| // | |||||
| #if !defined __DH_SAMPLER_H__ | |||||
| #define __DH_SAMPLER_H__ | |||||
| #include <stdint.h> | |||||
| class Sampler | |||||
| { | |||||
| public: | |||||
| static int Register(char const *path); | |||||
| static void Deregister(int id); | |||||
| static void PlaySample(int id); | |||||
| }; | |||||
| #endif // __DH_SAMPLER_H__ | |||||
| @@ -28,6 +28,8 @@ | |||||
| <ClInclude Include="..\src\map.h" /> | <ClInclude Include="..\src\map.h" /> | ||||
| <ClInclude Include="..\src\matrix.h" /> | <ClInclude Include="..\src\matrix.h" /> | ||||
| <ClInclude Include="..\src\profiler.h" /> | <ClInclude Include="..\src\profiler.h" /> | ||||
| <ClInclude Include="..\src\sample.h" /> | |||||
| <ClInclude Include="..\src\sampler.h" /> | |||||
| <ClInclude Include="..\src\scene.h" /> | <ClInclude Include="..\src\scene.h" /> | ||||
| <ClInclude Include="..\src\sdlinput.h" /> | <ClInclude Include="..\src\sdlinput.h" /> | ||||
| <ClInclude Include="..\src\ticker.h" /> | <ClInclude Include="..\src\ticker.h" /> | ||||
| @@ -53,6 +55,8 @@ | |||||
| <ClCompile Include="..\src\layer.cpp" /> | <ClCompile Include="..\src\layer.cpp" /> | ||||
| <ClCompile Include="..\src\map.cpp" /> | <ClCompile Include="..\src\map.cpp" /> | ||||
| <ClCompile Include="..\src\profiler.cpp" /> | <ClCompile Include="..\src\profiler.cpp" /> | ||||
| <ClCompile Include="..\src\sample.cpp" /> | |||||
| <ClCompile Include="..\src\sampler.cpp" /> | |||||
| <ClCompile Include="..\src\scene.cpp" /> | <ClCompile Include="..\src\scene.cpp" /> | ||||
| <ClCompile Include="..\src\sdlinput.cpp" /> | <ClCompile Include="..\src\sdlinput.cpp" /> | ||||
| <ClCompile Include="..\src\ticker.cpp" /> | <ClCompile Include="..\src\ticker.cpp" /> | ||||
| @@ -29,6 +29,8 @@ | |||||
| <ClInclude Include="..\src\map.h" /> | <ClInclude Include="..\src\map.h" /> | ||||
| <ClInclude Include="..\src\matrix.h" /> | <ClInclude Include="..\src\matrix.h" /> | ||||
| <ClInclude Include="..\src\profiler.h" /> | <ClInclude Include="..\src\profiler.h" /> | ||||
| <ClInclude Include="..\src\sample.h" /> | |||||
| <ClInclude Include="..\src\sampler.h" /> | |||||
| <ClInclude Include="..\src\scene.h" /> | <ClInclude Include="..\src\scene.h" /> | ||||
| <ClInclude Include="..\src\sdlinput.h" /> | <ClInclude Include="..\src\sdlinput.h" /> | ||||
| <ClInclude Include="..\src\ticker.h" /> | <ClInclude Include="..\src\ticker.h" /> | ||||
| @@ -55,6 +57,8 @@ | |||||
| <ClCompile Include="..\src\layer.cpp" /> | <ClCompile Include="..\src\layer.cpp" /> | ||||
| <ClCompile Include="..\src\map.cpp" /> | <ClCompile Include="..\src\map.cpp" /> | ||||
| <ClCompile Include="..\src\profiler.cpp" /> | <ClCompile Include="..\src\profiler.cpp" /> | ||||
| <ClInclude Include="..\src\sample.cpp" /> | |||||
| <ClInclude Include="..\src\sampler.cpp" /> | |||||
| <ClCompile Include="..\src\scene.cpp" /> | <ClCompile Include="..\src\scene.cpp" /> | ||||
| <ClCompile Include="..\src\sdlinput.cpp" /> | <ClCompile Include="..\src\sdlinput.cpp" /> | ||||
| <ClCompile Include="..\src\ticker.cpp" /> | <ClCompile Include="..\src\ticker.cpp" /> | ||||