attempt to bugfix attackboost segfault discovered while playing vs Romans
This commit is contained in:
parent
ca45749cd8
commit
0f6e8ba928
|
@ -238,6 +238,8 @@ UnitAttackBoostEffect::~UnitAttackBoostEffect() {
|
|||
}
|
||||
|
||||
if(ups != NULL) {
|
||||
bool particleValid = Renderer::getInstance().validateParticleSystemStillExists(ups,rsGame);
|
||||
if(particleValid == true) {
|
||||
ups->fade();
|
||||
|
||||
vector<UnitParticleSystem *> particleSystemToRemove;
|
||||
|
@ -246,6 +248,7 @@ UnitAttackBoostEffect::~UnitAttackBoostEffect() {
|
|||
Renderer::getInstance().cleanupUnitParticleSystems(particleSystemToRemove,rsGame);
|
||||
ups = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
delete upst;
|
||||
upst = NULL;
|
||||
|
@ -955,15 +958,21 @@ void Unit::setVisible(const bool visible) {
|
|||
for(unsigned int i = 0; i < currentAttackBoostEffects.size(); ++i) {
|
||||
UnitAttackBoostEffect *effect = currentAttackBoostEffects[i];
|
||||
if(effect != NULL && effect->ups != NULL) {
|
||||
bool particleValid = Renderer::getInstance().validateParticleSystemStillExists(effect->ups,rsGame);
|
||||
if(particleValid == true) {
|
||||
effect->ups->setVisible(visible);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(currentAttackBoostOriginatorEffect.currentAppliedEffect != NULL) {
|
||||
if(currentAttackBoostOriginatorEffect.currentAppliedEffect->ups != NULL) {
|
||||
bool particleValid = Renderer::getInstance().validateParticleSystemStillExists(currentAttackBoostOriginatorEffect.currentAppliedEffect->ups,rsGame);
|
||||
if(particleValid == true) {
|
||||
currentAttackBoostOriginatorEffect.currentAppliedEffect->ups->setVisible(visible);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// =============================== Render related ==================================
|
||||
|
||||
|
@ -1663,16 +1672,22 @@ bool Unit::update() {
|
|||
for(unsigned int i = 0; i < currentAttackBoostEffects.size(); ++i) {
|
||||
UnitAttackBoostEffect *effect = currentAttackBoostEffects[i];
|
||||
if(effect != NULL && effect->ups != NULL) {
|
||||
bool particleValid = Renderer::getInstance().validateParticleSystemStillExists(effect->ups,rsGame);
|
||||
if(particleValid == true) {
|
||||
effect->ups->setPos(getCurrVector());
|
||||
effect->ups->setRotation(getRotation());
|
||||
}
|
||||
}
|
||||
}
|
||||
if(currentAttackBoostOriginatorEffect.currentAppliedEffect != NULL) {
|
||||
if(currentAttackBoostOriginatorEffect.currentAppliedEffect->ups != NULL) {
|
||||
bool particleValid = Renderer::getInstance().validateParticleSystemStillExists(currentAttackBoostOriginatorEffect.currentAppliedEffect->ups,rsGame);
|
||||
if(particleValid == true) {
|
||||
currentAttackBoostOriginatorEffect.currentAppliedEffect->ups->setPos(getCurrVector());
|
||||
currentAttackBoostOriginatorEffect.currentAppliedEffect->ups->setRotation(getRotation());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//checks
|
||||
if(animProgress > 1.f) {
|
||||
|
|
Loading…
Reference in New Issue