rodecomp/Source/Contents/Effects/EmitterEffect.h
ragnarok-clanker 30fde8b89d Decompile 8 functions in Source/Script/LuaScript.cpp, Source/Script/LuaScript.h, ...
Batch #4398 by Yommy: 0 byte-identical, 8 confirmed by peer review.

- fn_18341 LuaRGB: logic confirmed by peer review
- fn_19248 SetEZ2STRInfo: logic confirmed by peer review
- fn_18356 AddCashshopBanner: logic confirmed by peer review
- fn_18355 AddCashshopBanner2: logic confirmed by peer review
- fn_18357 AddCheckAttendanceBanner: logic confirmed by peer review
- fn_19246 CEmitterEffect::SetTexture: logic confirmed by peer review
- fn_18359 AddIngredientLapineUpgradeBox: logic confirmed by peer review (already on main)
- fn_12736 RegisterLuaKafraServiceMaps: logic confirmed by peer review (already on main)

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

75 lines
2.2 KiB
C++

#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_EMITTEREFFECT_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_EMITTEREFFECT_H
#include "Contents/Effects/Effect.h"
#include "Contents/Effects/ParticlePool.h"
#include "Utility/Math/Vector3d.h"
#include <cstddef>
#include <string>
#include <vector>
class CParticle;
class CEmitterEffect : public CEffect {
public:
CEmitterEffect();
void Slot01() override;
void Slot02() override;
void Slot03() override;
void Slot04() override;
void Close() override;
bool Slot06() override;
void Slot07() override;
~CEmitterEffect() override;
virtual void InitParticle(CParticle* particle);
virtual void UpdateParticle(CParticle* particle);
void SetCount(int value);
void SetParticleSpeed(float value);
void SetTexture(std::string name);
/* 00CC */ vector3d velocityMin;
/* 00D8 */ vector3d velocityMax;
/* 00E4 */ vector3d acceleration;
/* 00F0 */ vector3d spread;
/* 00FC */ float emitCarry;
/* 0100 */ float timeScale;
/* 0104 */ float scaleMin;
/* 0108 */ float scaleMax;
/* 010C */ float lifeMin;
/* 0110 */ float lifeMax;
/* 0114 */ float rateMin;
/* 0118 */ float rateMax;
/* 011C */ float width;
/* 0120 */ float height;
/* 0124 */ int red;
/* 0128 */ int green;
/* 012C */ int blue;
/* 0130 */ int alpha;
/* 0134 */ std::string texture;
/* 014C */ int sourceBlend;
/* 0150 */ int destinationBlend;
/* 0154 */ int count;
/* 0158 */ float particleSpeed;
/* 015C */ unsigned char depth;
/* 015D */ unsigned char billboard;
/* 015E */ unsigned char unknown_015E[2];
/* 0160 */ float rotation[3];
/* 016C */ unsigned char fixedAlpha;
/* 016D */ unsigned char unknown_016D[3];
/* 0170 */ std::vector<CParticle*> particles;
/* 017C */ ParticlePool pool;
/* 0188 */ int duration;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CEmitterEffect, velocityMin) == 0xCC);
static_assert(offsetof(CEmitterEffect, texture) == 0x134);
static_assert(offsetof(CEmitterEffect, rotation) == 0x160);
static_assert(offsetof(CEmitterEffect, particles) == 0x170);
static_assert(offsetof(CEmitterEffect, pool) == 0x17C);
static_assert(sizeof(CEmitterEffect) == 0x18C);
#endif
#endif