Czy mój sposób przenoszenia efektów jest poprawny?

0

Mam system efektów, jest klasa broń która ma na początku tworzony obiekt Effect, np. podpalenie, trucizna itd. Jak tworzy ta broń obiekt typu Bullet to tam przypisanie w konstruktorze:

this -> effect = effect;

Efekty przechowywane są tak: std::shared_ptr <effect> effect;
No i potem jak nabój koliduje z przeciwnikiem to jest tam taka operacja:


if(applyEffect == true)
    if(entity.bullet[i] -> getEffect() != NULL)
        effect.emplace_back(new ElementalEffect(dynamic_cast<ElementalEffect&>(*entity.bullet[i]->getEffect())));

Czy to rozwiązanie jest dobre?

0

Dobre pod jakim względem? A ta ostatnia linijka to jakiś potwór, którego trzeba rozbić na mniejsze.

1

Nie, jest źle:
applyEffect ma wartość true lub false, ale nie możesz zapisać if(applyEffect) ... hmmm ..., więc piszesz:
applyEffect==true ale to znowu ma wartość true lub false, ale nie możesz zapisać if(applyEffect==true) dokładnie z tej samej przyczyny co wyżej, więc piszesz:
(applyEffect==true)==true ale to znowu ma wartość true lub false, ale nie możesz zapisać if((applyEffect==true)==true) dokładnie z tej samej przyczyny co wyżej, więc piszesz:
((applyEffect==true)==true)==true ale to znowu ma wartość true lub false, ale nie możesz zapisać if(((applyEffect==true)==true)==true) dokładnie z tej samej przyczyny co wyżej, więc piszesz:
...
mniej niż 32 razy - nie wypada.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0