rodecomp/Source/Contents/Effects/Level99Effect.cpp
ragnarok-clanker 0287f8023d Decompile 5 functions in Source/Contents/Effects/Level99Effect.cpp, Source/Contents/Effects/Level99Effect.h
Batch #4545 by eAthena: 1 byte-identical, 4 confirmed by peer review.

- fn_19079 CLevel99Effect::CLevel99Effect: logic confirmed by peer review
- fn_19081 CLevel99Effect::Slot08: logic confirmed by peer review
- fn_19084 CLevel99Effect::Close: logic confirmed by peer review
- fn_19086 CLevel99Effect::Slot06: byte-identical
- fn_19088 CLevel99Effect::Slot04: logic confirmed by peer review

Peer-reviewed-by: Yommy, youko, alisonrag, willerthal
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
Adds to the build: Source/Contents/Effects/Level99Effect.cpp
2026-10-30 03:45:06 +00:00

65 lines
1.5 KiB
C++

#include "Contents/Effects/Level99Effect.h"
#include "Contents/Effects/EffectMemoryMgr.h"
#include "Contents/Effects/Particle.h"
// OFFSET: 0x00B6A0A0
// FUNCTION: fn_19079
CLevel99Effect::CLevel99Effect() : CEffect(200) {
}
// OFFSET: 0x00B6A250
// FUNCTION: fn_19081
void CLevel99Effect::Slot08(int red, int green, int blue) {
for (CParticle* sparkle : this->sparkles) {
sparkle->SetColor(red, green, blue);
}
for (CParticle* sprite : this->sprites) {
sprite->SetColor(red, green, blue);
}
}
// OFFSET: 0x00B6AA60
// FUNCTION: fn_19084
void CLevel99Effect::Close() {
for (CParticle* sparkle : this->sparkles) {
FreeParticle(sparkle);
}
this->sparkles.clear();
for (CParticle* sprite : this->sprites) {
FreeParticle(sprite);
}
this->sprites.clear();
}
// OFFSET: 0x00B6ABB0
// FUNCTION: fn_19086
bool CLevel99Effect::Slot06() {
return this->ActorExists();
}
// OFFSET: 0x00B6B0E0
// FUNCTION: fn_19088
void CLevel99Effect::Slot04() {
for (CParticle* sparkle : this->sparkles) {
if (sparkle) {
sparkle->Render(false, 0.0f, 1.0f, 0.0f, 1.0f, false, true);
}
}
for (CParticle* sprite : this->sprites) {
if (sprite && sprite->unknown_000C > 0) {
const int frame = sprite->unknown_000C;
ParticleQuad quad;
quad.billboard = false;
quad.top = 0.0f;
quad.bottom = 1.0f;
quad.left = static_cast<float>(frame - 1) / 21.0f;
quad.right = static_cast<float>(frame) / 21.0f;
quad.unused = false;
quad.depth = true;
sprite->Render(quad);
}
}
}