rodecomp/Source/Contents/Effects/TetraBallEffect.cpp
ragnarok-clanker d692572c21 Decompile 3 functions in Source/Contents/Effects/TetraBallEffect.cpp, Source/Contents/Effects/TetraBallEffect.h, ...
Batch #3770 by eAthena: 3 byte-identical, 0 confirmed by peer review.

- fn_07516 CTetraBallEffect::Slot06: byte-identical
- fn_07526 CTriangleShotArrow::Slot03: byte-identical
- fn_07543 CWindEffect::Slot06: byte-identical

Merged automatically: every function is byte-identical to the original.
Adds to the build: Source/Contents/Effects/TetraBallEffect.cpp, Source/Contents/Effects/TriangleShotArrow.cpp, Source/Contents/Effects/ViolentQuakeEffect.cpp, Source/Contents/Effects/WindEffect.cpp
2026-10-29 23:18:49 +00:00

68 lines
1.6 KiB
C++

#include "Contents/Effects/TetraBallEffect.h"
#include "Client/Mode/CGameMode.h"
#include "Client/Mode/ModeMgr.h"
#include "Contents/Camera/Camera.h"
#include "Contents/Effects/Particle.h"
// OFFSET: 0x0072EA90
unsigned char CTetraBallEffect::ActiveCount() {
unsigned char count = 0;
for (int index = 0; index < 5; ++index) {
if (this->balls[index]) {
++count;
}
}
return count;
}
// OFFSET: 0x0072EB00
// FUNCTION: fn_07516
bool CTetraBallEffect::Slot06() {
return this->ActorExists();
}
// OFFSET: 0x0072EB10
void CTetraBallEffect::Slot03() {
for (int index = 0; index < 5; ++index) {
CEZ2STRParticle* ball = this->balls[index];
if (ball) {
ball->position.x = this->position[0];
ball->position.y = this->position[1];
ball->position.z = this->position[2];
ball->Process(0.0f, 0.0f, 0.0f);
++ball->unknown_00E8;
}
}
}
// OFFSET: 0x0072EBD0
void CTetraBallEffect::Slot04() {
for (int index = 0; index < 5; ++index) {
if (this->balls[index]) {
this->balls[index]->DrawScreen(static_cast<CGameMode*>(g_modeMgr.GetGameMode())->camera->frame.view);
}
}
}
// OFFSET: 0x0072EC40
void CTetraBallEffect::Spread() {
const unsigned char count = this->ActiveCount();
if (count > 1) {
for (int index = 0; index < 5; ++index) {
if (this->balls[index]) {
this->balls[index]->Restart();
this->balls[index]->Advance(static_cast<float>(index) / static_cast<float>(count));
}
}
}
}
// OFFSET: 0x0072ECD0
void CTetraBallEffect::MoveFirstTo(int index) {
if (index != 0) {
this->balls[index] = this->balls[0];
this->balls[0] = nullptr;
}
}