rodecomp/Source/Contents/Effects/RagEffect.h
ragnarok-clanker 64394a2300 Decompile 2 functions in Source/Contents/Effects/RagEffect.cpp, Source/Contents/Effects/RagEffect.h
Batch #9186 by vinnyamancio: 0 byte-identical, 2 confirmed by peer review.

- fn_20081 CRagEffect::SpawnBlurAfterimage: logic confirmed by peer review
- fn_20082 CRagEffect::SpawnHallucinationOnce: logic confirmed by peer review

Peer-reviewed-by: youko, KWDev
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-11-01 03:39:32 +00:00

363 lines
13 KiB
C++

#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_RAGEFFECT_H
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_RAGEFFECT_H
#include "Contents/Effects/RagEffectState.h"
#include "Contents/Actors/RenderObject.h"
#include "Utility/Math/Vector3d.h"
#include <cstddef>
#include <cstdint>
#include <string>
struct EffectActor;
class TextureCache;
struct RenderProjection;
struct matrix;
struct CRagEffect : CRenderObject {
CRagEffect();
~CRagEffect() override;
void InitEZ2STRFrame();
void SpawnBlurAfterimage();
void SpawnHallucinationOnce();
void SpawnHallucinationTrail();
void SpawnActorHallucination();
void SpawnPaleBlur();
void SpawnLightBlur();
bool ProcessEZ2STR(float x, float y, float z);
__declspec(noinline) void Fireworks();
bool ProcessEZ2STRC10830();
bool ProcessEZ2STRC153A0();
bool ProcessEZ2STRC3CC40();
bool ProcessEZ2STRC3FE00();
bool ProcessEZ2STRC65300();
bool ProcessEZ2STRC15990();
bool ProcessEZ2STRC159D0();
bool ShieldCharge();
void GrimToothAtk();
void Snow();
void Entry();
bool CartRevolution();
void BowlingBash();
void SonicBlowHit();
void Exit();
void Warp();
__declspec(noinline) void PotionPillar(float heightSpeed, int duration);
bool Potion_Berserk();
void AttackEnergy2(const char* name);
bool LexDivina();
void RemoveTrap();
void Sphere();
bool Aspersio();
void Blessing();
void Bottom();
void BloodDrain();
void FireBall();
void FireSparks();
void AsuraStrike(char kind);
void SkyCloud(char kind);
void TexturedClassChange(char kind);
void FrostDiver(char type);
void GrimTooth();
void Hit4(const RenderProjection& projection);
void IceWall();
void IncAgiDex();
void IncAgility();
void SoulStrike(char F1);
void SpearBmr();
void SprayPond();
void WaterBall2();
void Yufitel(char F1);
void AirTexture(const char* name);
void EnergyDrain2();
void TexturedOrbitDust(const char* name, char rise, char kind);
void WeddingBurst(const char* name, char silent);
void ThunderFreeze(int unused);
void RenderAniClip(EZeffectClip* clip, const EZeffectTransform* transform, int count, const matrix& view);
void LineStreakTextured(std::int16_t kind, const char* name);
void TexturedTumble(const char* name, char unused);
void PokBurst();
void TexturedComet(const char* name, char kind);
void WhiteSpray(char kind);
void BlueRingStack();
void ElectricArc(char kind, std::int16_t);
void TexturedCrossStaged(const char* name, char level);
void TexturedShieldThrow(const char* name);
void LineStreakKind(std::int16_t kind);
void LineStreak(std::int16_t kind);
void TexturedScatterArc(const char* name, std::int16_t angle, std::int16_t phase);
void TexturedGlow(const char* name, char size);
void TexturedCrossKind(const char* name, char level);
__declspec(noinline) void ThunderSparks();
void SonicWave(char sonic);
void TexturedSlashLevel(const char* name, char kind);
void TexturedRain(const char* name, char kind);
void TexturedCrossFade(const char* name);
void TexturedCrossLevel(const char* name, char level);
void TexturedCross(const char* name, char kind);
void TexturedOrbit(const char* name);
void TexturedSlashCross(const char* name);
void TexturedHalo(const char* name, char kind);
void TexturedFlare(const char* name, char size, int, int);
void TexturedSwirl(unsigned char clockwise, const char* name);
void TexturedBeams(const char* name, char flag);
void TexturedSlashWave(const char* name, char kind);
void HealRingSparkle(const char* name, char type);
void TexturedSprayKind(const char* name, float spin, char kind);
void TexturedSparkle(const char* name);
void TexturedColumn(const char* name, char kind);
void KyrieGuard(const char* name, char kind);
void TexturedSlam(const char* name, std::int16_t kind, char unused);
void BubbleSpiral(int angle, const char* unused, char flag);
void BubbleSpiralKind(int angle, const char* unused, char kind);
void FeatherRing(const char* name, std::int16_t angle, char large);
void FeatherBurst(const char* name, std::int16_t angle, char unused);
__declspec(noinline) void SlashFan(std::int16_t reverse);
void TexturedLevelRing(const char* name, int process, char level);
void TexturedSpray(const char* name);
void TexturedMark(const char* name, char kind);
void TexturedSlashFan(const char* name);
void TrackCloud(char kind);
void TrackTargetWide();
void TrackTarget();
void TexturedQuadSpin(const char* name, char phase, char kind);
void TexturedSkillIcon(const char* name, std::int16_t level, std::int16_t mode);
void TexturedDoubleRing(const char* name, char level);
void WaterOut();
void BlackMaximize(const char* name);
void TexturedPair(const char* name);
void PurpleSlash(std::int16_t angle);
void TexturedDrop(const char* name, char flag);
void TexturedDualSpin(const char* first, const char* second, int unused);
void TexturedScatterLow(const char* name, char flag);
void TexturedScatter(const char* name, char flag);
void TexturedSpiralFade(const char* name, int unused1, int unused2);
void TexturedSpiralTall(const char* name, int unused1, int unused2);
void TexturedSpiralSmall(const char* name, int unused1, int unused2);
void TexturedBeam(char flag, const char* name);
void ColoredFlash(unsigned char flag, unsigned char red, unsigned char green, unsigned char blue);
void TexturedSpin(const char* name);
void TexturedSpiral(const char* name, int unused1, int unused2);
__declspec(noinline) void TexturedRise(const char* name, char large);
void TexturedBurst(const char* name);
void RingStack(char white);
void TexturedPulse(const char* name);
void ShockwaveRing(std::int16_t angle);
void GROUNDSAMPLE();
__declspec(noinline) void CALLZONE(const char* name);
bool JobLvUp50_2(short angle);
bool RunStop(short angle);
void SMA(char flag);
__declspec(noinline) bool JobLvUp50(int angle);
void Map_Pika(const char* name);
void SaintWing(const char* name);
__declspec(noinline) void FirstAid();
void GRANDCROSS2(char flag);
void Magnum2(const char* name);
void Map_MagicZone(const char* name, char type);
__declspec(noinline) void Demonstration();
void NpcStop(char type);
void Bubble_Drop();
void Ghost(char type);
void Bottom_Out(const char* name, char kind);
__declspec(noinline) void POISON(char flag);
void Rainbow(const char* name, int unused);
__declspec(noinline) void BLIND(char flag);
void TexturedTwinSpin(const char* name, char kind);
void TexturedScatterSphere(const char* name, char flag, int unused);
void DigitalSpace(int effectId);
void TexturedFloatingDust(const char* name, int unused);
void Mavka(char flag);
void TexturedFanSweep(const char* name, char wide);
void RisingSparkles(char colorMode);
void TexturedSpreadFlat(const char* name, char kind);
void WhiteRingRippleSized(char size);
void VioletRingCloud(char type);
void WhiteRingRipple(char size);
void TexturedSpread(const char* name, char kind);
void TexturedTumbleOrb(const char* name, char flag);
void ElectricFan(const char* name, std::int16_t fade);
void SnowFall(const char* name, char kind);
void TexturedDoubleSpiral(const char* name, int unused1, int unused2);
void BubbleFanSweep(const char* name, char rising);
void TexturedTripleOrbit(const char* name);
void TexturedRisingOrbs(const char* name, char kind);
void TexturedForkBolt(const char* name, char flag);
void MonsterSpriteBurst(char kind);
void TexturedDescendingRings(const char* name, char flag);
void TexturedQuadSpiral(const char* name);
void TexturedRisingPillar(const char* name, char unused);
void CloudBurst();
bool AgilityChange(char increase, const std::string& textureName);
void CloudSpread();
void FrostSplash(int, int);
void WaterBubble(int);
void AssassinCloakingClear();
void TintedRisingSparkles(char);
void SpriteRing(char kind);
void RocketPunch();
void GreenRocketPunch();
void TexturedQuadRing(std::int16_t baseAlpha, const char* name, char kind);
void TexturedTwinkleRing(const char* name, char level);
void TetraVortexPillar(char kind);
void BlueFireballVolley();
void PaleFireballVolley();
__declspec(noinline) void TeleportRings(const char* name, std::int16_t level);
void AlphaCenterStream();
void CloudDrift();
void NotifyGameMode(char value);
void ScatterItemIcons(char kind);
void Vallentine(char kind);
void TexturedSpinShards(const char* name, char kind);
void HealCloudRings();
void WhiteLightSparkle(char kind);
void FrostScatter(char swapAxes, char narrow);
void AlphaDownRipples(const char* name, char kind);
bool Concentration();
bool FirePillarBomb();
bool ProcessEZ2STRAtTarget();
bool TwoHandQuicken();
void SageMagicRod();
void SakuraFireArrow();
void TorchDustRing(const char* name, char kind, std::int16_t angle);
void BeginSpellSwirl(const char* name, char, char alpha);
void SevereRainstormCylinder(const char* name, int unused, char alpha, float distance);
void AssassinCloaking();
bool ProcessEZ2STRRaised();
void LockOnMarker();
void MagnumBreak();
void NapalmFragments();
void StoneCurseRing();
void SnowDrift(char flag);
void ElectricRingEarly(char kind, std::int16_t angle);
void ElectricRing(char kind, std::int16_t angle);
void ElectricRingLate(char kind, std::int16_t angle);
void WhiteSparks(char kind);
void AlphaCenterTrail();
void Waterfall(const char* name, char flag, char tall, char variant);
void YufitelHit(char kind);
__declspec(noinline) void TexturedPulseKind(const char* name, char kind);
void EarthSpike(char type);
void Sightrasher();
void RingBurstSparks();
void FireArrow();
void BlitzBeat();
bool GlassWall();
void Portal();
void TANJI2();
void TEIHIT2();
void ShieldBoomerang3(const char* name);
void ParticleTime(const char* name, char kind);
void ThrowItem(const char* name, char kind);
void Bottom_Music(const char* name, char kind);
void IceArrow();
void Flasher();
int SuperAngel(char type, int dummy = 0);
int WarpZone();
void Enhance();
void HealSP();
void Cloud11Burst(char kind);
void White02Burst(char kind);
void GrandCrossRings(short angle, char kind);
void WaterfallSheets(char first, char second, char third);
void EmpShockBurst(const char* name, char flag);
void TexturedMagicRing(const char* name, char kind);
void TexturedBlueRing(const char* name);
void SonicSlashFan(char kind);
void IncAgilityCenter(char kind);
void RingRedPulse(const char* name, float x, float z);
void LineStreakLayered(short kind);
void SuperSlashFan(char count, char value);
void SuperSlashSpread(char count, char value);
void TexturedStorm2(const char* name, char kind);
void TorchRedRing(char kind);
void TexturedSlashAir(const char* name, char size, char phase);
void Bash();
void Bottom2();
bool Coin();
void ColdHit();
void DecAgility();
void EnchantPoison2();
void Endure();
void FrostDiver2();
void HasteUp();
void Hit1();
void Hit2(int option);
void Hit3();
void HitDark();
bool Signum();
void Steal();
void TurnUndead();
void WaterBallBurst();
void ErasePrimitiveRange(std::list<EffectPrimitiveState*>::iterator* out, std::list<EffectPrimitiveState*>::iterator first, std::list<EffectPrimitiveState*>::iterator last);
void RedParticleSpray(int count);
void Hit5();
void Hit6();
void StoneWall();
void ShadedFireballVolley();
void BlueRingWave();
bool GlassWallRising(const char* name);
void QuadRingStack(const char* name);
void QuadRingStackSized(const char* name, char kind);
void TripleRingStack(const char* name, char large);
void WideTripleRingStack(const char* name);
void SoulLink(int);
void WhiteSparkStreak(char kind);
void WhiteSparkRing(char kind);
void WhiteLightTrail(const char* name, char kind);
void ElementalOrbit(char kind);
void WhiteRingWave();
void Detoxication();
void PoisonAttack(char flag);
void StoneSpike();
void sub_C5CC00();
void sub_C649E0();
void sub_C47F70(char flag);
void sub_C66F60();
void sub_C54420();
__declspec(noinline) void sub_C51740(const char* name, char flag);
void SandScatter();
void Sight();
void AlphaCenterRise();
bool Potion_Awakening();
void StatusIconColumn();
bool StormGust();
void TexturedSkillAura(char type);
void TexturedMagicRing(char type);
void TexturedRisingRing(const char* name);
bool TexturedRisingRingStages(const char* name, char level);
void TexturedGroundRing(const char* name, char flag, int unused1, int unused2);
void TexturedQuadRingSized(std::int16_t baseAlpha, const char* name, char kind);
__declspec(noinline) void WhiteYellowRings();
void BlueSpellRings();
void WhiteSpellRings();
__declspec(noinline) void TexturedSpellRings(const char* name);
void BlackSpellRings(char silent);
void TexturedFireWall(const char* name, int unused);
__declspec(noinline) void TeleportSpiral(const char* name);
void TexturedAura(const char* name, char kind);
void PortalRings();
void HealBurst(const char* name, char flag);
void FreezingCircle(char kind);
void TorchDust(char kind);
virtual void Slot08();
virtual void Slot13();
virtual bool Slot14();
virtual void Slot15();
virtual void SendMsg(CGameObject* sender, int message, int first, std::int64_t second, int third, int fourth, int fifth, int sixth);
virtual void Init(EffectActor* parent, int id, vector3d deltaPos);
virtual int GetDuration();
virtual void SetStateDuration(int duration);
/* 0138 */ RagEffectState state;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CRagEffect) == 0x11CA8);
static_assert(offsetof(CRagEffect, state) == 0x138);
#endif
#endif