@@ -8,6 +8,7 @@ liblol_a_SOURCES = \ | |||||
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 text.cpp text.h \ | sample.cpp sample.h sampler.cpp sampler.h text.cpp text.h \ | ||||
emitter.cpp emitter.h \ | |||||
\ | \ | ||||
sdlinput.cpp sdlinput.h \ | sdlinput.cpp sdlinput.h \ | ||||
\ | \ | ||||
@@ -29,6 +29,7 @@ | |||||
// Entities | // Entities | ||||
#include "entity.h" | #include "entity.h" | ||||
#include "emitter.h" | |||||
#include "font.h" | #include "font.h" | ||||
#include "sample.h" | #include "sample.h" | ||||
#include "text.h" | #include "text.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 <cstdio> | |||||
#include <cmath> | |||||
#include "core.h" | |||||
/* | |||||
* Emitter implementation class | |||||
*/ | |||||
class EmitterData | |||||
{ | |||||
friend class Emitter; | |||||
private: | |||||
int tiler; | |||||
Float3 gravity; | |||||
int particles[100]; | |||||
Float3 positions[100]; | |||||
Float3 velocities[100]; | |||||
int nparticles; | |||||
}; | |||||
/* | |||||
* Public Emitter class | |||||
*/ | |||||
Emitter::Emitter(int tiler, Float3 gravity) | |||||
: data(new EmitterData()) | |||||
{ | |||||
data->tiler = tiler; | |||||
data->gravity = gravity; | |||||
data->nparticles = 0; | |||||
} | |||||
void Emitter::TickGame(float deltams) | |||||
{ | |||||
Entity::TickGame(deltams); | |||||
} | |||||
void Emitter::TickDraw(float deltams) | |||||
{ | |||||
Entity::TickDraw(deltams); | |||||
} | |||||
Emitter::~Emitter() | |||||
{ | |||||
delete data; | |||||
} | |||||
@@ -0,0 +1,38 @@ | |||||
// | |||||
// 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 Emitter class | |||||
// ----------------- | |||||
// | |||||
#if !defined __DH_EMITTER_H__ | |||||
#define __DH_EMITTER_H__ | |||||
#include "entity.h" | |||||
class EmitterData; | |||||
class Emitter : public Entity | |||||
{ | |||||
public: | |||||
Emitter(int tiler, Float3 gravity); | |||||
virtual ~Emitter(); | |||||
protected: | |||||
virtual void TickGame(float deltams); | |||||
virtual void TickDraw(float deltams); | |||||
private: | |||||
EmitterData *data; | |||||
}; | |||||
#endif // __DH_EMITTER_H__ | |||||
@@ -21,6 +21,7 @@ | |||||
<ClInclude Include="..\src\debugsphere.h" /> | <ClInclude Include="..\src\debugsphere.h" /> | ||||
<ClInclude Include="..\src\debugstats.h" /> | <ClInclude Include="..\src\debugstats.h" /> | ||||
<ClInclude Include="..\src\dict.h" /> | <ClInclude Include="..\src\dict.h" /> | ||||
<ClInclude Include="..\src\emitter.h" /> | |||||
<ClInclude Include="..\src\entity.h" /> | <ClInclude Include="..\src\entity.h" /> | ||||
<ClInclude Include="..\src\font.h" /> | <ClInclude Include="..\src\font.h" /> | ||||
<ClInclude Include="..\src\forge.h" /> | <ClInclude Include="..\src\forge.h" /> | ||||
@@ -51,6 +52,7 @@ | |||||
<ClCompile Include="..\src\debugsphere.cpp" /> | <ClCompile Include="..\src\debugsphere.cpp" /> | ||||
<ClCompile Include="..\src\debugstats.cpp" /> | <ClCompile Include="..\src\debugstats.cpp" /> | ||||
<ClCompile Include="..\src\dict.cpp" /> | <ClCompile Include="..\src\dict.cpp" /> | ||||
<ClCompile Include="..\src\emitter.cpp" /> | |||||
<ClCompile Include="..\src\entity.cpp" /> | <ClCompile Include="..\src\entity.cpp" /> | ||||
<ClCompile Include="..\src\font.cpp" /> | <ClCompile Include="..\src\font.cpp" /> | ||||
<ClCompile Include="..\src\forge.cpp" /> | <ClCompile Include="..\src\forge.cpp" /> | ||||
@@ -27,6 +27,9 @@ | |||||
<ClInclude Include="..\src\dict.h"> | <ClInclude Include="..\src\dict.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\src\emitter.h"> | |||||
<Filter>lolengine</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\src\entity.h"> | <ClInclude Include="..\src\entity.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -106,6 +109,9 @@ | |||||
<ClCompile Include="..\src\dict.cpp"> | <ClCompile Include="..\src\dict.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\src\emitter.cpp"> | |||||
<Filter>lolengine</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\src\entity.cpp"> | <ClCompile Include="..\src\entity.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -24,6 +24,7 @@ | |||||
<ClInclude Include="..\src\debugsphere.h" /> | <ClInclude Include="..\src\debugsphere.h" /> | ||||
<ClInclude Include="..\src\debugstats.h" /> | <ClInclude Include="..\src\debugstats.h" /> | ||||
<ClInclude Include="..\src\dict.h" /> | <ClInclude Include="..\src\dict.h" /> | ||||
<ClInclude Include="..\src\emitter.h" /> | |||||
<ClInclude Include="..\src\entity.h" /> | <ClInclude Include="..\src\entity.h" /> | ||||
<ClInclude Include="..\src\font.h" /> | <ClInclude Include="..\src\font.h" /> | ||||
<ClInclude Include="..\src\forge.h" /> | <ClInclude Include="..\src\forge.h" /> | ||||
@@ -56,6 +57,7 @@ | |||||
<ClCompile Include="..\src\debugsphere.cpp" /> | <ClCompile Include="..\src\debugsphere.cpp" /> | ||||
<ClCompile Include="..\src\debugstats.cpp" /> | <ClCompile Include="..\src\debugstats.cpp" /> | ||||
<ClCompile Include="..\src\dict.cpp" /> | <ClCompile Include="..\src\dict.cpp" /> | ||||
<ClCompile Include="..\src\emitter.cpp" /> | |||||
<ClCompile Include="..\src\entity.cpp" /> | <ClCompile Include="..\src\entity.cpp" /> | ||||
<ClCompile Include="..\src\font.cpp" /> | <ClCompile Include="..\src\font.cpp" /> | ||||
<ClCompile Include="..\src\forge.cpp" /> | <ClCompile Include="..\src\forge.cpp" /> | ||||
@@ -27,6 +27,9 @@ | |||||
<ClInclude Include="..\src\dict.h"> | <ClInclude Include="..\src\dict.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\src\emitter.h"> | |||||
<Filter>lolengine</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\src\entity.h"> | <ClInclude Include="..\src\entity.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -109,6 +112,9 @@ | |||||
<ClCompile Include="..\src\dict.cpp"> | <ClCompile Include="..\src\dict.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\src\emitter.cpp"> | |||||
<Filter>lolengine</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\src\entity.cpp"> | <ClCompile Include="..\src\entity.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||