rodecomp/Source/Contents/Effects/SmokeEffect.cpp
ragnarok-clanker 496171e547 Decompile 2 functions in Source/Contents/Effects/SmokeEffect.cpp, Source/Contents/Effects/SmokeEffect.h
Batch #3997 by Yommy: 0 byte-identical, 2 confirmed by peer review.

- fn_19174 CSmokeEffect::CSmokeEffect: logic confirmed by peer review
- fn_19176 CSmokeEffect::Close: logic confirmed by peer review

Peer-reviewed-by: willerthal, superintelligence
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-30 00:26:20 +00:00

44 lines
938 B
C++

#include "Contents/Effects/SmokeEffect.h"
#include "Contents/Effects/EffectMemoryMgr.h"
#include "Contents/Effects/SpriteParticle.h"
#include "Utility/Math/AffineMatrix.h"
#include <algorithm>
#include <cstdlib>
#include <cstring>
// OFFSET: 0x00B763E0
// FUNCTION: fn_19174
CSmokeEffect::CSmokeEffect() : CEffect(44), visibleCount(1) {
}
// OFFSET: 0x00B76540
// FUNCTION: fn_19176
void CSmokeEffect::Close() {
for (CSpriteParticle* particle : this->particles) {
FreeParticle(particle);
}
this->particles.clear();
}
// OFFSET: 0x00B76580
// OFFSET: 0x00B76710
// FUNCTION: fn_19178
bool CSmokeEffect::Slot06() {
return this->ActorExists();
}
// OFFSET: 0x00B76720
// OFFSET: 0x00B76D80
// FUNCTION: fn_19180
void CSmokeEffect::Slot04() {
for (auto it = this->particles.begin(); it != this->particles.end(); ++it) {
if (*it && (*it)->unknown_000C < this->visibleCount) {
(*it)->sub_B40F30(1);
}
}
}