rodecomp/Source/Contents/StatusIconImages.cpp
ragnarok-clanker fab45b4d8d Decompile fn_23833 (CSession::GetEFSTImgFileName)
Batch #4611 by eAthena: 0 byte-identical, 1 confirmed by peer review.

- fn_23833 CSession::GetEFSTImgFileName: logic confirmed by peer review

Peer-reviewed-by: alisonrag, willerthal
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
Adds to the build: Source/Contents/StatusIconImages.cpp
2026-10-30 05:14:22 +00:00

699 lines
21 KiB
C++

#include "Client/Session.h"
#include "Script/LuaScript.h"
#include <cstring>
// INLINED
static __forceinline bool IsTaekwonDisplayJob() {
return (g_session.GetDisplayJob() >= 4046 && g_session.GetDisplayJob() <= 4049) || g_session.GetDisplayJob() == 4225 ||
g_session.GetDisplayJob() == 4226 || g_session.GetDisplayJob() == 4238 || g_session.GetDisplayJob() == 4227 ||
(g_session.GetDisplayJob() >= 4239 && g_session.GetDisplayJob() <= 4244) || g_session.GetDisplayJob() == 4302 ||
g_session.GetDisplayJob() == 4303 || g_session.GetDisplayJob() == 4316;
}
// OFFSET: 0x00E166E0
// FUNCTION: fn_23833
const char* CSession::GetEFSTImgFileName(int efstId, int type) {
const char* fileName = nullptr;
this->m_hotkeyScript->Call("GetEFSTImgFileName", "dd>s", efstId, type, &fileName);
if (strcmp(fileName, "") != 0) {
return fileName;
}
switch (type) {
case 0:
switch (efstId) {
case 762:
return "effect\\SWORDCLAN.TGA";
case 763:
return "effect\\ARCWANDCLAN.TGA";
case 764:
return "effect\\GOLDENMACECLAN.TGA";
case 765:
return "effect\\CROSSBOWCLAN.TGA";
}
break;
case 1:
switch (efstId) {
case 8:
return "effect\\콰그마이어.tga";
case 13:
return "effect\\민첩성감소.tga";
case 32:
return "effect\\갑옷파괴.tga";
case 33:
return "effect\\무기파괴.tga";
case 34:
return "effect\\환각.tga";
case 35:
return "effect\\무게50이상.tga";
case 36:
return "effect\\무게90이상.tga";
case 50:
return "effect\\스트립웨폰.tga";
case 51:
return "effect\\스트립쉴드.tga";
case 52:
return "effect\\스트립아머.tga";
case 53:
return "effect\\스트립헬름.tga";
case 90:
return IsTaekwonDisplayJob() ? "effect\\i_p_FIRE.tga" : "effect\\프레임런쳐.tga";
case 241:
return "effect\\Str_gogi.tga";
case 242:
return "effect\\Agi_gogi.tga";
case 243:
return "effect\\Vit_gogi.tga";
case 244:
return "effect\\Dex_gogi.tga";
case 245:
return "effect\\Int_gogi.tga";
case 246:
return "effect\\Luk_gogi.tga";
case 247:
case 248:
case 249:
return "effect\\gogi.tga";
case 250:
return "effect\\exp.tga";
case 251:
return "effect\\death.tga";
case 252:
return "effect\\item.tga";
case 271:
return "effect\\Str_gogi.tga";
case 272:
return "effect\\Agi_gogi.tga";
case 273:
return "effect\\Vit_gogi.tga";
case 274:
return "effect\\Dex_gogi.tga";
case 275:
return "effect\\Int_gogi.tga";
case 276:
return "effect\\Luk_gogi.tga";
case 298:
return "effect\\멘탈포션.tga";
case 312:
return "effect\\job.tga";
case 313:
return "effect\\gogi.tga";
case 401:
return "effect\\민첩성감소.tga";
case 476:
return "effect\\npc_hellpower.tga";
case 491:
return "effect\\Str_gogi.tga";
case 492:
return "effect\\Int_gogi.tga";
case 493:
return "effect\\Vit_gogi.tga";
case 494:
return "effect\\Dex_gogi.tga";
case 495:
return "effect\\Agi_gogi.tga";
case 496:
return "effect\\Luk_gogi.tga";
case 621:
return "effect\\변신.tga";
case 636:
return "effect\\job.tga";
case 637:
return "effect\\NORECOVER.TGA";
case 662:
case 663:
return "effect\\icon02.tga";
case 664:
return "effect\\rwcscroll.tga";
case 721:
return "effect\\REBOUND.tga";
case 730:
return "effect\\darkcrow.tga";
}
break;
case 2:
switch (efstId) {
case 0:
return "effect\\프로보크.tga";
case 1:
return "effect\\인듀어.tga";
case 2:
return "effect\\투핸드퀴큰.tga";
case 4:
return "effect\\하이딩.tga";
case 5:
return "effect\\클로킹.tga";
case 6:
return "effect\\인찬트포이즌.tga";
case 7:
return "effect\\포이즌리액트.tga";
case 23:
return "effect\\아드레날린러쉬.tga";
case 24:
return "effect\\웨폰퍼펙션.tga";
case 25:
return "effect\\오버트러스트.tga";
case 26:
return "effect\\맥시마이즈파워.tga";
case 58:
return "effect\\오토가드.tga";
case 59:
return "effect\\리플렉트쉴드.tga";
case 62:
return "effect\\디펜더.tga";
case 65:
return "effect\\오토스펠.tga";
case 68:
return "effect\\스피어퀴큰.tga";
case 91:
return IsTaekwonDisplayJob() ? "effect\\i_p_WATER.tga" : "effect\\프로스트웨폰.tga";
case 92:
return IsTaekwonDisplayJob() ? "effect\\i_p_WIND.tga" : "effect\\라이트닝로더.tga";
case 97:
return "effect\\글로리아.tga";
case 104:
return "effect\\ICON10.tga";
case 106:
return "effect\\ICON08.tga";
case 110:
return "effect\\ICON05.tga";
case 112:
return "effect\\I_장판.tga";
case 114:
return "effect\\I_치독.tga";
case 115:
return "effect\\ICON09.tga";
case 116:
return "effect\\ICON06.tga";
case 117:
return "effect\\ICON03.tga";
case 118:
return "effect\\ICON07.tga";
case 120:
return "effect\\ICON04.tga";
case 121:
case 122:
return "effect\\ICON01.tga";
case 124:
return "effect\\출혈상태.tga";
case 125:
return "effect\\관절공격.tga";
case 130:
return "effect\\엄마아빠사랑해요.tga";
case 132:
return "effect\\금강불괴.tga";
case 135:
return "effect\\i_STORMKICK.tga";
case 137:
return "effect\\i_DOWNKICK.tga";
case 139:
return "effect\\i_TURNKICK.tga";
case 141:
return "effect\\i_COUNTER.tga";
case 143:
return "effect\\i_DODGE.tga";
case 145:
return "effect\\i_RUN.tga";
case 146:
return "effect\\i_p_DARK.tga";
case 147:
return "effect\\아드레날린러쉬.tga";
case 148:
return "effect\\i_p_TELE.tga";
case 150:
return "effect\\PLUSATTACKPOWER.tga";
case 156:
return "effect\\i_KAIZEL.tga";
case 157:
return "effect\\i_KAAHI.tga";
case 158:
return "effect\\i_KAUPE.tga";
case 161:
return "effect\\i_ONEHAND.tga";
case 169:
return "effect\\i_SUNCOMFORT.tga";
case 170:
return "effect\\i_MOONCOMFORT.tga";
case 171:
return "effect\\i_STARCOMFORT.tga";
case 181:
return "effect\\I_프리저브.tga";
case 182:
return "effect\\I_체이스힘.tga";
case 186:
return "effect\\I_더블캐스팅.tga";
case 188:
return "effect\\I_오버맥스.tga";
case 191:
return "effect\\I_타로카드.tga";
case 197:
return "effect\\i_shrink.tga";
case 198:
return "effect\\i_sightblaster.tga";
case 200:
case 201:
return "effect\\i_closeconfine.tga";
case 203:
return "effect\\i_MADNESS.tga";
case 204:
return "effect\\i_FEVER.tga";
case 205:
return "effect\\글로리아.tga";
case 206:
return "effect\\i_MAEMI.tga";
case 207:
return "effect\\i_BUNSIN.tga";
case 208:
return "effect\\i_NEN.tga";
case 209:
return "effect\\i_ADJUSTMENT.tga";
case 210:
return "effect\\i_ACCURACY.tga";
case 212:
case 213:
case 214:
case 215:
case 216:
case 217:
case 218:
case 219:
case 220:
case 221:
case 222:
case 223:
case 224:
case 225:
case 226:
case 227:
case 228:
case 229:
case 230:
case 231:
case 232:
case 233:
case 234:
case 235:
case 236:
case 239:
case 240:
case 254:
case 255:
case 256:
case 257:
case 258:
case 259:
case 260:
case 261:
case 262:
return "effect\\글로리아.tga";
case 263:
return "effect\\죽은척하기.tga";
case 264:
case 265:
case 266:
case 267:
case 268:
case 269:
case 270:
return "effect\\글로리아.tga";
case 282:
return "effect\\slowcast.tga";
case 286:
return "effect\\criticalwound.tga";
case 290:
return "effect\\물리방어포션.tga";
case 291:
return "effect\\마법방어포션.tga";
case 292:
return "effect\\회복력향상포션.tga";
case 293:
return "effect\\소형생명수.tga";
case 294:
return "effect\\중형생명수.tga";
case 295:
return "effect\\연마제.tga";
case 296:
return "effect\\환영의술잔.tga";
case 297:
return "effect\\대환단.tga";
case 299:
return "effect\\태청단.tga";
case 300:
return "effect\\SP소모량감소포션.tga";
case 301:
return "effect\\올상태저항포션.tga";
case 302:
return "effect\\캐시갑옷속성부여.tga";
case 304:
return "effect\\npc_hellpower.tga";
case 314:
return "effect\\엄마아빠사랑해요.tga";
case 316:
return "effect\\RK_ENCHANT.tga";
case 318:
return "effect\\RK_NAUTHIZ.tga";
case 319:
return "effect\\RK_TURISUSS.tga";
case 320:
return "effect\\RK_HAGALAZ.tga";
case 321:
return "effect\\RK_ISHA.tga";
case 322:
return "effect\\RK_EISIR.tga";
case 323:
return "effect\\RK_URUZ.tga";
case 333:
return "effect\\포이즈닝웨폰.tga";
case 334:
return "effect\\할루시네이션워크.tga";
case 336:
return "effect\\레노바티오.tga";
case 337:
return "effect\\웨폰블로킹.tga";
case 341:
return "effect\\감각마비독.tga";
case 342:
return "effect\\신경마비독.tga";
case 343:
return "effect\\감각마비독.tga";
case 344:
return "effect\\쇠약독.tga";
case 345:
return "effect\\웃음버섯.tga";
case 346:
return "effect\\상처오염독.tga";
case 347:
return "effect\\열병독.tga";
case 348:
return "effect\\망각의재.tga";
case 349:
return "effect\\거머리.tga";
case 351:
return "effect\\FROSTMISTY.tga";
case 352:
return "effect\\RA_FEARBREEZE.tga";
case 354:
return "effect\\MARSHOFABYSS.tga";
case 355:
return "effect\\RECOGNIZEDSPELL.tga";
case 361:
return "effect\\엑셀레이션.tga";
case 362:
return "effect\\호버링.tga";
case 368:
return "effect\\MVPCARD_TAOGUNKA.tga";
case 369:
return "effect\\MVPCARD_MISTRESS.tga";
case 370:
return "effect\\MVPCARD_ORCHERO.tga";
case 371:
return "effect\\MVPCARD_ORCLORD.tga";
case 373:
return "effect\\오버히트.tga";
case 374:
return "effect\\셰이프쉬프트.tga";
case 375:
return "effect\\인프라레드스캔.tga";
case 377:
return "effect\\뉴트럴배리어.tga";
case 379:
return "effect\\스텔스필드.tga";
case 381:
return "effect\\EFST_ATK.tga";
case 382:
return "effect\\EFST_DEF.tga";
case 383:
return "effect\\EFST_ATK.tga";
case 384:
return "effect\\EFST_DEF.tga";
case 385:
return "effect\\리프로듀스.tga";
case 386:
case 387:
return "effect\\EFST_MATK.tga";
case 388:
return "effect\\str_gogi.tga";
case 389:
return "effect\\int_gogi.tga";
case 390:
return "effect\\LG_REFLECTDAMAGE.tga";
case 391:
return "effect\\포스오브뱅가드.tga";
case 393:
return "effect\\오토쉐도우스펠.tga";
case 394:
return "effect\\쉐도우폼.tga";
case 396:
return "effect\\LG_SHIELDSPELL_방.tga";
case 397:
return "effect\\LG_SHIELDSPELL_마.tga";
case 398:
return "effect\\LG_SHIELDSPELL_연.tga";
case 399:
return "effect\\바디페인팅.tga";
case 402:
return "effect\\LG_PRESTIGE.tga";
case 403:
return "effect\\인비지빌리티.tga";
case 404:
return "effect\\데들리인펙트.tga";
case 405:
return "effect\\LG_BANDING.tga";
case 407:
return "effect\\LG_INSPIRATION.tga";
case 408:
return "effect\\Masquerade_ENERVATION.tga";
case 409:
return "effect\\Masquerade_GROOMY.tga";
case 410:
return "effect\\잠룡승천.tga";
case 411:
return "effect\\Masquerade_IGNORANCE.tga";
case 412:
return "effect\\Masquerade_LAZINESS.tga";
case 413:
return "effect\\섬전보.tga";
case 414:
return "effect\\i_ONEHAND.tga";
case 415:
return "effect\\Masquerade_UNLUCKY.tga";
case 418:
return "effect\\Masquerade_WEAKNESS.tga";
case 421:
return "effect\\스트립액세서리.tga";
case 423:
return "effect\\ICON02.tga";
case 425:
return "effect\\점혈구.tga";
case 426:
return "effect\\점혈반.tga";
case 427:
return "effect\\점혈활.tga";
case 429:
return "effect\\스윙댄스.tga";
case 430:
return "effect\\연인들을위한심포니.tga";
case 435:
return "effect\\안식의자장가.tga";
case 436:
return "effect\\순환하는자연의소리.tga";
case 437:
return "effect\\다이아몬드더스트.tga";
case 438:
return "effect\\수줍은하루의우울.tga";
case 439:
return "effect\\마나의노래.tga";
case 440:
return "effect\\클라우드킬.tga";
case 441:
return "effect\\워그와함께춤을.tga";
case 442:
return "effect\\풍차를향해돌격.tga";
case 443:
return "effect\\메아리의노래.tga";
case 444:
return "effect\\하모나이즈.tga";
case 445:
return "effect\\스트라이킹.tga";
case 446:
return "effect\\워머.tga";
case 447:
return "effect\\달빛의세레나데.tga";
case 448:
return "effect\\새터데이나이트피버.tga";
case 450:
return "effect\\애널라이즈.tga";
case 451:
return "effect\\레라드의이슬.tga";
case 452:
return "effect\\멜로디오브싱크.tga";
case 453:
return "effect\\비욘드오브워크라이.tga";
case 454:
return "effect\\언리미티드허밍보이스.tga";
case 461:
return "effect\\카트부스트.tga";
case 463:
return "effect\\가시나무덫.tga";
case 472:
return "effect\\세크라멘트.tga";
case 473:
return "effect\\ICON05.tga";
case 573:
return "effect\\I_타로카드.tga";
case 578:
return "effect\\중형생명수.tga";
case 579:
return "effect\\ICON02.tga";
case 583:
return "effect\\all_odins_power.tga";
case 611:
return "effect\\EFST_MATK.tga";
case 622:
return "effect\\앉기.tga";
case 632:
case 633:
case 634:
case 635:
return "effect\\ICON08.tga";
case 638:
case 640:
return "effect\\SETDEF.TGA";
case 670:
return "effect\\소형생명수.tga";
case 695:
return "effect\\ArrowN.tga";
case 697:
return "effect\\EFST_ATK.tga";
case 698:
return "effect\\EFST_MATK.tga";
case 699:
return "effect\\EFST_DEF.tga";
case 700:
return "effect\\EXP.tga";
case 869:
return "effect\\할루시네이션워크.tga";
case 1121:
return "effect\\ICON05.tga";
}
break;
case 3:
switch (efstId) {
case 3:
return "effect\\집중력향상.tga";
case 27:
return "effect\\라이딩.tga";
case 28:
return "effect\\팔콘.tga";
case 29:
return "effect\\죽은척하기.tga";
case 30:
return "effect\\고성지르기.tga";
case 31:
return "effect\\에너지코트.tga";
case 37:
case 38:
case 39:
case 40:
return "effect\\공속물약.tga";
case 54:
return "effect\\케미컬프로텍션[웨폰].tga";
case 55:
return "effect\\케미컬프로텍션[쉴드].tga";
case 56:
return "effect\\케미컬프로텍션[아머].tga";
case 57:
return "effect\\케미컬프로텍션[헬름].tga";
case 93:
return IsTaekwonDisplayJob() ? "effect\\i_p_EARTH.tga" : "effect\\사이즈믹웨폰.tga";
case 151:
return "effect\\PLUSMAGICPOWER.tga";
case 357:
return "effect\\wolfmount.tga";
case 613:
return "effect\\라이딩.tga";
case 639:
case 641:
return "effect\\SETMDEF.TGA";
case 647:
return "effect\\ASPDCASH.TGA";
case 650:
return "effect\\ELDICASTES.TGA";
}
break;
case 4:
switch (efstId) {
case 9:
return "effect\\안젤루스.tga";
case 10:
return "effect\\블레싱.tga";
case 11:
return "effect\\시그넘크루시스.tga";
case 12:
return "effect\\민첩성증가.tga";
case 14:
return "effect\\슬로우포이즌.tga";
case 15:
return "effect\\임포시티오마누스.tga";
case 16:
return "effect\\수프라기움.tga";
case 17:
return IsTaekwonDisplayJob() ? "effect\\i_p_SAINT.tga" : "effect\\아스페르시오.tga";
case 18:
return "effect\\성체강복.tga";
case 19:
return "effect\\기리에엘레이손.tga";
case 20:
return "effect\\마니피캇.tga";
case 21:
return "effect\\글로리아.tga";
case 22:
return "effect\\렉스에테르나.tga";
case 41:
case 42:
return "effect\\민첩성증가.tga";
case 61:
return "effect\\신의뜻.tga";
case 64:
return IsTaekwonDisplayJob() ? "effect\\i_p_SAINT.tga" : "effect\\아스페르시오.tga";
case 87:
return "effect\\STEELBODY.tga";
case 289:
return "effect\\민첩성증가.tga";
case 577:
return "effect\\세라4.tga";
case 580:
return "effect\\에이라1.tga";
case 581:
return "effect\\에이라2.tga";
case 584:
return "effect\\에레노아1_1.tga";
case 605:
return "effect\\디이터1.tga";
case 606:
return "effect\\디이터2.tga";
case 607:
return "effect\\디이터4.tga";
case 608:
return "effect\\디이터5.tga";
case 618:
return "effect\\exp_말랑도_고양이캔.tga";
case 658:
return "effect\\PHIDEMON.tga";
case 715:
return "effect\\FRIGG_SONG.tga";
case 716:
return "effect\\OFFERTORIUM.tga";
case 717:
return "effect\\TELEKINESIS_INTENSE.tga";
case 720:
return "effect\\FULL_THROTTLE.tga";
case 723:
return "effect\\KINGS_GRACE.tga";
}
break;
}
return nullptr;
}