Decompile fn_20144 (CRagEffect::SaintWing)

Batch #3216 by Lumen: 0 byte-identical, 1 confirmed by peer review.

- fn_20144 CRagEffect::SaintWing: logic confirmed by peer review

Peer-reviewed-by: eAthena, meitogi
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
ragnarok-clanker 2026-10-29 20:58:47 +00:00
commit 0fe3003bbb
2 changed files with 45 additions and 0 deletions

View file

@ -3933,3 +3933,43 @@ void CRagEffect::TexturedSlashLevel(const char* name, char kind) {
}
}
}
// OFFSET: 0x00C44940
// FUNCTION: fn_20144
void CRagEffect::SaintWing(const char* name) {
this->render.position = this->state.parent->render.position;
if (this->state.stateCnt != 0) {
return;
}
this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 131, 0.0f, 0.0f, 0.0f, WorldObjects())->state;
this->state.unknown_11C84->renderFlag = 5;
this->state.unknown_11C84->duration = this->state.duration;
this->state.unknown_11C84->totalTexture = 1;
AllocateTextures(*this->state.unknown_11C84);
this->state.unknown_11C84->textures[0] = g_texMgr.Load(name, 0, false, true, false);
this->state.unknown_11C84->size = 0.0f;
this->state.unknown_11C84->slots[0].life = 0;
this->state.unknown_11C84->slots[1].life = 0;
this->state.unknown_11C84->slots[2].life = 0;
this->state.unknown_11C84->slots[3].life = 0;
this->state.unknown_11C84->slots[0].life = 1;
this->state.unknown_11C84->slots[0].process = 0;
this->state.unknown_11C84->slots[0].distance = 24.0f;
this->state.unknown_11C84->slots[0].alphaB = 0;
this->state.unknown_11C84->slots[0].height[0] = 0.0f;
this->state.unknown_11C84->slots[0].flag1[0] = 0;
this->state.unknown_11C84->slots[0].flag1[4] = 1;
for (int i = 1; i < 21; ++i) {
this->state.unknown_11C84->slots[0].height[i] = 0.0f;
}
}
// OFFSET: 0x00C50E30
// OFFSET: 0x00C51D80
// OFFSET: 0x00C5B940
// OFFSET: 0x00C5C450

View file

@ -112,6 +112,11 @@ struct CRagEffect : CRenderObject {
void SMA(char flag);
bool JobLvUp50(int angle);
void Map_Pika(const char* name);
void SaintWing(const char* name);
void FirstAid();
void GRANDCROSS2(char flag);
void Magnum2(const char* name);
void Map_MagicZone(const char* name, char type);
void POISON(char flag);
void Rainbow(const char* name, int unused);
void BLIND(char flag);