Decompile 2 functions in Source/Contents/Effects/ClimaxEffect.cpp, Source/Contents/Effects/ClimaxEffect.h, ...

Batch #3177 by youko: 2 byte-identical, 0 confirmed by peer review.

- fn_07057 CMeteorEffect::Slot06: byte-identical
- fn_07081 CCompetentia::Slot06: byte-identical

Merged automatically: every function is byte-identical to the original.
Adds to the build: Source/Contents/Effects/ClimaxEffect.cpp, Source/Contents/Effects/Competentia.cpp, Source/Contents/Effects/CresciveBolt.cpp, Source/Contents/Effects/JupitelThunderStormEffect.cpp, Source/Contents/Effects/MeteorEffect.cpp, Source/Contents/Effects/NyanggrassEffect.cpp, Source/Contents/Effects/PowderingEffect.cpp, Source/Contents/Effects/RectUpEffect.cpp
This commit is contained in:
ragnarok-clanker 2026-10-29 20:43:19 +00:00
commit de30fb0fcd
16 changed files with 250 additions and 0 deletions

View file

@ -0,0 +1,7 @@
#include "Contents/Effects/ClimaxEffect.h"
// OFFSET: 0x00706840
CClimaxEffect::CClimaxEffect() : CEffect(-1) {
this->particles[0] = nullptr;
this->particles[1] = nullptr;
}

View file

@ -0,0 +1,22 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_CLIMAXEFFECT_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_CLIMAXEFFECT_H
#include "Contents/Effects/Effect.h"
#include <cstddef>
class CParticle;
class CClimaxEffect : public CEffect {
public:
CClimaxEffect();
/* 00CC */ CParticle* particles[2];
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CClimaxEffect) == 0xD4);
static_assert(offsetof(CClimaxEffect, particles) == 0xCC);
#endif
#endif

View file

@ -0,0 +1,11 @@
#include "Contents/Effects/Competentia.h"
// OFFSET: 0x00708930
CCompetentia::CCompetentia() : CEffect(1851) {
}
// OFFSET: 0x00708CB0
// FUNCTION: fn_07081
bool CCompetentia::Slot06() {
return !this->particles.empty();
}

View file

@ -0,0 +1,25 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_COMPETENTIA_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_COMPETENTIA_H
#include "Contents/Effects/Effect.h"
#include <cstddef>
#include <vector>
class CParticle;
class CCompetentia : public CEffect {
public:
CCompetentia();
bool Slot06() override;
/* 00CC */ std::vector<CParticle*> particles;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CCompetentia) == 0xD8);
static_assert(offsetof(CCompetentia, particles) == 0xCC);
#endif
#endif

View file

@ -0,0 +1,5 @@
#include "Contents/Effects/CresciveBolt.h"
// OFFSET: 0x0070AAD0
CCresciveBolt::CCresciveBolt() : CEffect(1951), particle(nullptr) {
}

View file

@ -0,0 +1,22 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_CRESCIVEBOLT_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_CRESCIVEBOLT_H
#include "Contents/Effects/Effect.h"
#include <cstddef>
class CParticle;
class CCresciveBolt : public CEffect {
public:
CCresciveBolt();
/* 00CC */ CParticle* particle;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CCresciveBolt) == 0xD0);
static_assert(offsetof(CCresciveBolt, particle) == 0xCC);
#endif
#endif

View file

@ -0,0 +1,5 @@
#include "Contents/Effects/JupitelThunderStormEffect.h"
// OFFSET: 0x00705F80
CJupitelThunderStormEffect::CJupitelThunderStormEffect() : CEffect(2366), particle(nullptr), step{}, duration(10) {
}

View file

@ -0,0 +1,28 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_JUPITELTHUNDERSTORMEFFECT_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_JUPITELTHUNDERSTORMEFFECT_H
#include "Contents/Effects/Effect.h"
#include "Utility/Math/Vector3d.h"
#include <cstddef>
#include <vector>
class CParticle;
class CJupitelThunderStormEffect : public CEffect {
public:
CJupitelThunderStormEffect();
/* 00CC */ CParticle* particle;
/* 00D0 */ std::vector<CParticle*> particles;
/* 00DC */ vector3d step;
/* 00E8 */ int duration;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CJupitelThunderStormEffect) == 0xEC);
static_assert(offsetof(CJupitelThunderStormEffect, particles) == 0xD0);
static_assert(offsetof(CJupitelThunderStormEffect, duration) == 0xE8);
#endif
#endif

View file

@ -0,0 +1,7 @@
#include "Contents/Effects/SkillEffects.h"
// OFFSET: 0x00707B40
// FUNCTION: fn_07057
bool CMeteorEffect::Slot06() {
return !this->unknown_00CC.empty();
}

View file

@ -0,0 +1,5 @@
#include "Contents/Effects/NyanggrassEffect.h"
// OFFSET: 0x00708260
CNyanggrassEffect::CNyanggrassEffect() : CEffect(-1), unknown_00D8(0) {
}

View file

@ -0,0 +1,24 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_NYANGGRASSEFFECT_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_NYANGGRASSEFFECT_H
#include "Contents/Effects/Effect.h"
#include <cstddef>
#include <vector>
class CParticle;
class CNyanggrassEffect : public CEffect {
public:
CNyanggrassEffect();
/* 00CC */ std::vector<CParticle*> particles;
/* 00D8 */ int unknown_00D8;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CNyanggrassEffect) == 0xDC);
static_assert(offsetof(CNyanggrassEffect, unknown_00D8) == 0xD8);
#endif
#endif

View file

@ -0,0 +1,12 @@
#include "Contents/Effects/PowderingEffect.h"
// OFFSET: 0x00708E70
CPowderingEffect::CPowderingEffect() : CEffect(-1), unknown_00E4(0) {
}
// OFFSET: 0x00709690
void CPowderingEffect::Slot12() {
if (this->id == 1104) {
this->AddEvent(0, "effect\\su_cn_powdering.wav", 0, 0);
}
}

View file

@ -0,0 +1,28 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_POWDERINGEFFECT_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_POWDERINGEFFECT_H
#include "Contents/Effects/Effect.h"
#include <cstddef>
#include <vector>
class CParticle;
class CPowderingEffect : public CEffect {
public:
CPowderingEffect();
void Slot12() override;
/* 00CC */ std::vector<CParticle*> smokeParticles;
/* 00D8 */ std::vector<CParticle*> spriteParticles;
/* 00E4 */ int unknown_00E4;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CPowderingEffect) == 0xE8);
static_assert(offsetof(CPowderingEffect, spriteParticles) == 0xD8);
static_assert(offsetof(CPowderingEffect, unknown_00E4) == 0xE4);
#endif
#endif

View file

@ -0,0 +1,12 @@
#include "Contents/Effects/RectUpEffect.h"
// OFFSET: 0x00709F50
CRectUpEffect::CRectUpEffect() : CEffect(1088), unknown_00CC{} {
}
// OFFSET: 0x0070A410
void CRectUpEffect::Slot12() {
if (this->id == 1088) {
this->AddEvent(0, "effect\\EF_FireWall.wav", 0, 0);
}
}

View file

@ -0,0 +1,29 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_RECTUPEFFECT_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_RECTUPEFFECT_H
#include "Contents/Effects/Effect.h"
#include "Utility/Math/Vector3d.h"
#include <cstddef>
#include <vector>
class CParticle;
class CRectUpEffect : public CEffect {
public:
CRectUpEffect();
void Slot12() override;
/* 00CC */ vector3d unknown_00CC[2];
/* 00E4 */ int unknown_00E4;
/* 00E8 */ std::vector<CParticle*> particles;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CRectUpEffect) == 0xF4);
static_assert(offsetof(CRectUpEffect, unknown_00E4) == 0xE4);
static_assert(offsetof(CRectUpEffect, particles) == 0xE8);
#endif
#endif

View file

@ -312,6 +312,9 @@
"Source/Contents/Effects/AxeBoomerang.cpp": 4,
"Source/Contents/Effects/BlastForge.cpp": 4,
"Source/Contents/Effects/CaneOfEvilEyeEffect.cpp": 4,
"Source/Contents/Effects/ClimaxEffect.cpp": 4,
"Source/Contents/Effects/Competentia.cpp": 4,
"Source/Contents/Effects/CresciveBolt.cpp": 4,
"Source/Contents/Effects/Effect.cpp": 0,
"Source/Contents/Effects/EffectActor.cpp": 4,
"Source/Contents/Effects/EffectAttachments.cpp": 4,
@ -326,13 +329,18 @@
"Source/Contents/Effects/EffectPrimitiveState.cpp": 4,
"Source/Contents/Effects/EffectTypes.cpp": 4,
"Source/Contents/Effects/EffectVisibility.cpp": 4,
"Source/Contents/Effects/JupitelThunderStormEffect.cpp": 4,
"Source/Contents/Effects/MeteorEffect.cpp": 4,
"Source/Contents/Effects/MonsterSkillEffects.cpp": 4,
"Source/Contents/Effects/NyanggrassEffect.cpp": 4,
"Source/Contents/Effects/Particle.cpp": 4,
"Source/Contents/Effects/ParticlePool.cpp": 4,
"Source/Contents/Effects/PartyEffect.cpp": 4,
"Source/Contents/Effects/PartyMemberEffects.cpp": 4,
"Source/Contents/Effects/PowderingEffect.cpp": 4,
"Source/Contents/Effects/RagEffect.cpp": 4,
"Source/Contents/Effects/RagEffectInitialization.cpp": 4,
"Source/Contents/Effects/RectUpEffect.cpp": 4,
"Source/Contents/EmblemCacheRaw.cpp": 4,
"Source/Contents/Emblems/EmblemCache.cpp": 2,
"Source/Contents/Emblems/EmblemDataDownloadAsyncWork.cpp": 4,