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).
363 lines
13 KiB
C++
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
|