mirror of
https://github.com/glest/glest-source.git
synced 2025-08-16 13:23:59 +02:00
bugfix/improvement for teamcolor particles ** units can morph to flying units ** tech faction with particles
This commit is contained in:
@@ -114,6 +114,9 @@ protected:
|
||||
int varParticleEnergy;
|
||||
float particleSize;
|
||||
float speed;
|
||||
Vec3f factionColor;
|
||||
bool teamcolorNoEnergy;
|
||||
bool teamcolorEnergy;
|
||||
|
||||
ParticleObserver *particleObserver;
|
||||
|
||||
@@ -152,6 +155,9 @@ public:
|
||||
void setObserver(ParticleObserver *particleObserver);
|
||||
void setVisible(bool visible);
|
||||
void setBlendMode(BlendMode blendMode) {this->blendMode= blendMode;}
|
||||
void setTeamcolorNoEnergy(bool teamcolorNoEnergy) {this->teamcolorNoEnergy= teamcolorNoEnergy;}
|
||||
void setTeamcolorEnergy(bool teamcolorEnergy) {this->teamcolorEnergy= teamcolorEnergy;}
|
||||
virtual void setFactionColor(Vec3f factionColor);
|
||||
|
||||
static BlendMode strToBlendMode(const string &str);
|
||||
//misc
|
||||
@@ -209,9 +215,6 @@ public:
|
||||
};
|
||||
bool relative;
|
||||
bool fixed;
|
||||
int teamNumber;
|
||||
bool teamcolorNoEnergy;
|
||||
bool teamcolorEnergy;
|
||||
Model *model;
|
||||
Primitive primitive;
|
||||
Vec3f offset;
|
||||
@@ -227,7 +230,6 @@ public:
|
||||
virtual void initParticle(Particle *p, int particleIndex);
|
||||
virtual void updateParticle(Particle *p);
|
||||
virtual void update();
|
||||
virtual void setTeamNumber(int teamNumber);
|
||||
virtual void render(ParticleRenderer *pr, ModelRenderer *mr);
|
||||
|
||||
//set params
|
||||
@@ -241,8 +243,6 @@ public:
|
||||
void setRotation(float rotation) {this->rotation= rotation;}
|
||||
void setRelative(bool relative) {this->relative= relative;}
|
||||
void setFixed(bool fixed) {this->fixed= fixed;}
|
||||
void setTeamcolorNoEnergy(bool teamcolorNoEnergy) {this->teamcolorNoEnergy= teamcolorNoEnergy;}
|
||||
void setTeamcolorEnergy(bool teamcolorEnergy) {this->teamcolorEnergy= teamcolorEnergy;}
|
||||
void setPrimitive(Primitive primitive) {this->primitive= primitive;}
|
||||
|
||||
static Primitive strToPrimitive(const string &str);
|
||||
|
@@ -50,6 +50,8 @@ ParticleSystem::ParticleSystem(int particleCount){
|
||||
colorNoEnergy= Vec4f(0.0f);
|
||||
emissionRate= 15;
|
||||
speed= 1.0f;
|
||||
teamcolorNoEnergy=false;
|
||||
teamcolorEnergy=false;
|
||||
}
|
||||
|
||||
ParticleSystem::~ParticleSystem(){
|
||||
@@ -226,6 +228,21 @@ void ParticleSystem::killParticle(Particle *p){
|
||||
aliveParticleCount--;
|
||||
}
|
||||
|
||||
void ParticleSystem::setFactionColor(Vec3f factionColor){
|
||||
this->factionColor=factionColor;
|
||||
Vec3f tmpCol;
|
||||
|
||||
if(teamcolorEnergy)
|
||||
{
|
||||
this->color=Vec4f(factionColor.x,factionColor.y,factionColor.z,this->color.w);
|
||||
}
|
||||
if(teamcolorNoEnergy)
|
||||
{
|
||||
this->colorNoEnergy=Vec4f(factionColor.x,factionColor.y,factionColor.z,this->colorNoEnergy.w);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
// FireParticleSystem
|
||||
// ===========================================================================
|
||||
@@ -308,8 +325,6 @@ UnitParticleSystem::UnitParticleSystem(int particleCount): ParticleSystem(partic
|
||||
gravity= 0.0f;
|
||||
|
||||
fixed=false;
|
||||
teamcolorNoEnergy=false;
|
||||
teamcolorEnergy=false;
|
||||
rotation=0.0f;
|
||||
|
||||
cRotation= Vec3f(1.0f,1.0f,1.0f);
|
||||
@@ -436,36 +451,7 @@ void UnitParticleSystem::setWind(float windAngle, float windSpeed){
|
||||
this->windSpeed.z= cosf(degToRad(windAngle))*windSpeed;
|
||||
}
|
||||
|
||||
void UnitParticleSystem::setTeamNumber(int teamNumber){
|
||||
this->teamNumber=teamNumber;
|
||||
Vec3f tmpCol;
|
||||
|
||||
if(teamNumber==0)
|
||||
{
|
||||
tmpCol=Vec3f(1,0,0);
|
||||
}
|
||||
else if(teamNumber==1)
|
||||
{
|
||||
tmpCol=Vec3f(0,0,1);
|
||||
}
|
||||
else if(teamNumber==2)
|
||||
{
|
||||
tmpCol=Vec3f(0,1,0);
|
||||
}
|
||||
else if(teamNumber==3)
|
||||
{
|
||||
tmpCol=Vec3f(1,1,0);
|
||||
}
|
||||
|
||||
if(teamcolorEnergy)
|
||||
{
|
||||
this->color=Vec4f(tmpCol.x,tmpCol.y,tmpCol.z,this->color.w);
|
||||
}
|
||||
if(teamcolorNoEnergy)
|
||||
{
|
||||
this->colorNoEnergy=Vec4f(tmpCol.x,tmpCol.y,tmpCol.z,this->colorNoEnergy.w);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
|
Reference in New Issue
Block a user