#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 #include #include 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::iterator* out, std::list::iterator first, std::list::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