Decompile 2 functions in Source/Contents/Effects/MonsterSkillEffects.cpp, Source/Contents/Effects/MonsterSkillEffects.h
Batch #6801 by eAthena: 1 byte-identical, 1 confirmed by peer review. - fn_07307 CDropItemEffect::Slot01: logic confirmed by peer review - fn_07323 CJupitelThunderHit::Slot01: byte-identical Peer-reviewed-by: alisonrag, superintelligence, Tanke Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
parent
602b3a7b9b
commit
25ef1b9362
2 changed files with 61 additions and 2 deletions
|
|
@ -908,6 +908,40 @@ CDropItemEffect::CDropItemEffect()
|
|||
this->emitters.resize(this->emitterCount);
|
||||
}
|
||||
|
||||
// OFFSET: 0x00719400
|
||||
// FUNCTION: fn_07307
|
||||
void CDropItemEffect::Slot01() {
|
||||
if (!static_cast<CGameMode*>(g_modeMgr.GetGameMode())->scene) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < this->emitterCount; ++i) {
|
||||
EZ2STREmitter* emitter =
|
||||
reinterpret_cast<EZ2STREmitter*>(CreateEZ2STRParticle(reinterpret_cast<const vector3d*>(this->CEffect::position), 5));
|
||||
if (!emitter) {
|
||||
return;
|
||||
}
|
||||
|
||||
InitParticleQuad(AsParticle(emitter)->vertices);
|
||||
this->emitters.push_back(emitter);
|
||||
}
|
||||
|
||||
this->OpenEmitters();
|
||||
this->Slot12();
|
||||
static_cast<CGameMode*>(g_modeMgr.GetGameMode())->scene->GetItemByAID(this->actor);
|
||||
this->position.x = this->CEffect::position[0];
|
||||
this->position.y = this->CEffect::position[1];
|
||||
this->position.z = this->CEffect::position[2];
|
||||
for (std::size_t i = 0; i < this->emitters.size(); ++i) {
|
||||
EZ2STREmitter* emitter = this->emitters[i];
|
||||
if (emitter) {
|
||||
emitter->position = this->position;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00719520
|
||||
|
||||
// OFFSET: 0x00719660
|
||||
// FUNCTION: fn_07309
|
||||
bool CDropItemEffect::Slot06() {
|
||||
|
|
@ -922,6 +956,8 @@ bool CDropItemEffect::Slot06() {
|
|||
return true;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00719690
|
||||
|
||||
// OFFSET: 0x00719C30
|
||||
// FUNCTION: fn_07311
|
||||
void CDropItemEffect::Slot03() {
|
||||
|
|
@ -949,6 +985,20 @@ CJupitelThunderHit::CJupitelThunderHit() : CEffect(-1) {
|
|||
this->unknown_002C = 250;
|
||||
}
|
||||
|
||||
// OFFSET: 0x0071BAB0
|
||||
|
||||
// OFFSET: 0x0071C270
|
||||
|
||||
// OFFSET: 0x0071C520
|
||||
// FUNCTION: fn_07323
|
||||
void CJupitelThunderHit::Slot01() {
|
||||
if (this->id != 1200) {
|
||||
this->SpawnSpark();
|
||||
}
|
||||
|
||||
this->SpawnHit();
|
||||
}
|
||||
|
||||
// OFFSET: 0x0071C540
|
||||
// FUNCTION: fn_07324
|
||||
bool CJupitelThunderHit::Slot06() {
|
||||
|
|
@ -963,6 +1013,8 @@ bool CJupitelThunderHit::Slot06() {
|
|||
return this->frame < this->unknown_002C;
|
||||
}
|
||||
|
||||
// OFFSET: 0x0071C570
|
||||
|
||||
// OFFSET: 0x0071CB70
|
||||
// FUNCTION: fn_07326
|
||||
void CJupitelThunderHit::Slot04() {
|
||||
|
|
|
|||
|
|
@ -410,13 +410,17 @@ public:
|
|||
class CJupitelThunderHit : public CEffect {
|
||||
public:
|
||||
CJupitelThunderHit();
|
||||
void Slot01() override;
|
||||
void Slot03() override;
|
||||
void Slot04() override;
|
||||
bool Slot06() override;
|
||||
void Close() override;
|
||||
void SpawnHit();
|
||||
void SpawnSpark();
|
||||
|
||||
/* 00CC */ std::vector<EZ2STREmitter*> emitters;
|
||||
/* 00D8 */ std::vector<EZ2STREmitter*> unknown_00D8;
|
||||
/* 00E4 */ std::vector<EZ2STREmitter*> unknown_00E4;
|
||||
/* 00E4 */ std::vector<std::string> textures;
|
||||
};
|
||||
|
||||
class CNewCloudKillEffect : public CEffect {
|
||||
|
|
@ -440,10 +444,13 @@ public:
|
|||
class CDropItemEffect : public CEffect {
|
||||
public:
|
||||
CDropItemEffect();
|
||||
void Slot01() override;
|
||||
void Slot03() override;
|
||||
void Slot04() override;
|
||||
bool Slot06() override;
|
||||
void Close() override;
|
||||
void Slot12() override;
|
||||
void OpenEmitters();
|
||||
|
||||
/* 00CC */ int unknown_00CC;
|
||||
/* 00D0 */ int emitterCount;
|
||||
|
|
@ -515,7 +522,7 @@ static_assert(sizeof(CSevereRainStorm) == 0xD8);
|
|||
static_assert(sizeof(CGaleStorm) == 0xE0);
|
||||
static_assert(offsetof(CGaleStorm, unknown_00D8) == 0xD8);
|
||||
static_assert(sizeof(CJupitelThunderHit) == 0xF0);
|
||||
static_assert(offsetof(CJupitelThunderHit, unknown_00E4) == 0xE4);
|
||||
static_assert(offsetof(CJupitelThunderHit, textures) == 0xE4);
|
||||
static_assert(sizeof(CNewCloudKillEffect) == 0xFC);
|
||||
static_assert(offsetof(CNewCloudKillEffect, unknown_00F4) == 0xF4);
|
||||
static_assert(offsetof(CDropItemEffect, emitters) == 0xD4);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue