diff --git a/Source/Client/Browser/BrowserFactory.cpp b/Source/Client/Browser/BrowserFactory.cpp index ee1f30393..4fd006948 100644 --- a/Source/Client/Browser/BrowserFactory.cpp +++ b/Source/Client/Browser/BrowserFactory.cpp @@ -2,6 +2,7 @@ #include "Client/Application/Launcher.h" #include "Client/Browser/WebBrowser.h" #include "Contents/MessageTable.h" +#include "Resource/MSGSTRINGID.h" #include "UI/Window/UIWindowMgr.h" #include @@ -15,7 +16,7 @@ namespace { CWebBrowser* UIWindowMgr::CreateBrowser(int width, int height) { if (this->browsers.size() >= maximumBrowserCount) { this->SendNotice(3, 0, 0, 0, 0, 0); - this->SendNotice(1, reinterpret_cast(LookupMessage(MessageId::MSI_FAILED_ADD_TAB)), RGB(255, 0, 0), 0, 0, 0); + this->SendNotice(1, reinterpret_cast(LookupMessage(MSI_FAILED_ADD_TAB)), RGB(255, 0, 0), 0, 0, 0); return nullptr; } diff --git a/Source/Client/Mode/GameMode.cpp b/Source/Client/Mode/GameMode.cpp index 60c4277bc..6dd3b1582 100644 --- a/Source/Client/Mode/GameMode.cpp +++ b/Source/Client/Mode/GameMode.cpp @@ -1,4 +1,8 @@ #include "Client/Mode/CGameMode.h" +#include "Contents/Jobs/JobId.h" +#include "Contents/Skills/SkillId.h" +#include "Contents/Skills/SkillUnitId.h" +#include "UI/GameSettings/TalkType.h" #include "Client/Mode/CLoginMode.h" #include "Client/Mode/ModeMgr.h" #include "Client/Replay.h" @@ -650,21 +654,21 @@ int CGameMode::IsExcludedSkillEffectId(std::uint32_t id) { // FUNCTION: fn_21583 int CGameMode::SubD07740(int id, int defaultResult) { switch (id) { - case 0x13: - case 0xFB4: - case 0xFCA: - case 0xFE4: - case 0xFEB: - case 0x1008: - case 0x10A7: + case JT_BARD: + case JT_BARD_H: + case JT_BARD_B: + case JT_MINSTREL: + case JT_MINSTREL_H: + case JT_MINSTREL_B: + case JT_TROUBADOUR: return 1; - case 0x14: - case 0xFB5: - case 0xFCB: - case 0xFE5: - case 0xFEC: - case 0x1009: - case 0x10A8: + case JT_DANCER: + case JT_DANCER_H: + case JT_DANCER_B: + case JT_WANDERER: + case JT_WANDERER_H: + case JT_WANDERER_B: + case JT_TROUVERE: return 0; } @@ -2860,19 +2864,19 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i case 0x56: { bool allowed = argument3 >= 0 && argument1 >= 0; switch (argument1) { - case 0x28: - case 0x29: - case 0x33: - case 0x87: - case 0x185: - case 0x7F1: - case 0x8C7: - case 0x8F2: - case 0x926: - case 0x9E7: - case 0xBB9: - case 0x1506: - case 0x1507: + case MC_IDENTIFY: + case MC_VENDING: + case TF_HIDING: + case AS_CLOAKING: + case ST_CHASEWALK: + case GC_CLOAKINGEXCEED: + case RA_CAMOUFLAGE: + case SC_INVISIBILITY: + case SR_CRESCENTELBOW_AUTOSPELL: + case ALL_BUYING_STORE: + case KO_YAMIKUMO: + case ABC_CHAIN_REACTION_SHOT_ATK: + case ABC_FROM_THE_ABYSS_ATK: allowed = false; break; } @@ -2885,7 +2889,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i } char text[64]; char skillName[64]; - if (argument1 == 0x14E || argument1 == 0x14F) { + if (argument1 == WE_MALE || argument1 == WE_FEMALE) { const std::string actorName = static_cast(g_modeMgr.GetGameMode())->ActorName(argument3); std::strcpy(text, actorName.c_str()); std::strcpy(skillName, CSkillInfo::DisplayName(*g_session.m_hotkeyScript, argument1)); @@ -2898,7 +2902,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i actor->SendMsg(nullptr, 7, 0, address, address >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return 0; } - if (argument1 == 0x150) { + if (argument1 == WE_CALLPARTNER) { std::sprintf(text, "%s", this->unknown_0294); std::strcpy(skillName, CSkillInfo::DisplayName(*g_session.m_hotkeyScript, argument1)); if (g_serviceType == 0) { @@ -2910,7 +2914,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i actor->SendMsg(nullptr, 7, 0, address, address >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return 0; } - if (argument1 == 0x146 || argument1 == 0x13E || argument1 == 0x1EC || + if (argument1 == DC_SCREAM || argument1 == BA_FROSTJOKER || argument1 == ITEM_ENCHANTARMS || (g_session.IsMonsterActor(actor) == 1 && actor->render.visible == 0)) { return 0; } @@ -7700,11 +7704,11 @@ void CGameMode::ProcessMouseWheel(int requireControl) { maxDistance = static_cast(this->viewParameters[1] + this->viewParameters[0]); } else if (zoomSkill.level <= 0 && this->scene->player->render.unknown_0070 == 6 && !this->scene->player->HasId(0x14E)) { switch (g_session.m_job) { - case 0xFCF: - case 0x1082: - case 0x108F: - case 0x1091: - case 0x10CE: + case JT_STAR: + case JT_STAR_B: + case JT_STAR_EMPEROR: + case JT_STAR_EMPEROR_B: + case JT_SKY_EMPEROR: extendedZoom = true; break; } @@ -9159,38 +9163,38 @@ static_assert(sizeof(TalkSelectPacket) == 8); void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { std::string defaults[3]; std::string* parts = arguments ? arguments : defaults; - if (g_serviceType == 4 && talkType == 6) { + if (g_serviceType == 4 && talkType == TT_REQ_NUM_USER) { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x5F)), 0xFFFF, 0, 0, 0); return; } switch (talkType) { - case 57: + case TT_GUILD_CHAT: g_windowMgr.SetUnknown04DC(parts[0].c_str()); this->SendMsg(0x81, 0, 0, 0, 0); break; - case 18: - case 19: { + case TT_REQ_WHISPER_PC_EX: + case TT_REQ_WHISPER_PC_IN: { this->unknown_0118 = parts[0]; if (this->unknown_0118.size() > 0x18) { break; } TalkWhisperSettingPacket packet; - if (talkType == 18) { + if (talkType == TT_REQ_WHISPER_PC_EX) { g_whisperBlockMgr->Add(this->unknown_0118); } else { g_whisperBlockMgr->Remove(this->unknown_0118); } packet.id = ID_CZ_SETTING_WHISPER_PC; StringFormat(packet.name, 0x18, static_cast(-1), "%s", parts[0].c_str()); - packet.type = talkType == 18 ? 0 : 1; + packet.type = talkType == TT_REQ_WHISPER_PC_EX ? 0 : 1; GetRagConnection().Send(g_packetLengths.FixedLength(packet.id), &packet); break; } - case 52: + case TT_REQ_SAVE_CHAT_FROM_CHATROOM: g_windowMgr.SendNotice(7, 0, 0, 0, 0, 0); break; - case 104: { + case TT_REQ_AUTO_SAVE_CHAT: { if (g_session.IsAdminSubMode(7) == 0) { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x5F)), 0xFFFF, 0, 0, 0); break; @@ -9223,11 +9227,11 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.SendNotice(1, reinterpret_cast(text), 0xFFFF, 0, 0, 0); break; } - case 3: + case TT_UNKNOWN: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x5F)), 0xFFFF, 0, 0, 0); break; - case 0: - case 50: { + case TT_NORMAL: + case TT_NORMAL_FROM_CHATROOM: { char text[364]; int party = 0; int alternate = 0; @@ -9263,7 +9267,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { if (HIBYTE(GetAsyncKeyState(VK_CAPITAL))) { clanChat = 1; } - if (talkType == 50) { + if (talkType == TT_NORMAL_FROM_CHATROOM) { this->SendMsg(6, 0, 0, 0, 0); break; } @@ -9303,7 +9307,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { } break; } - case 151: { + case TT_EX_HI: { char text[256]; if (std::strcmp(parts[0].c_str(), "") == 0) { g_session.HiFriends(nullptr); @@ -9321,18 +9325,18 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.SendNotice(1, reinterpret_cast(text), 0x1EFFFF, 0, 0, 0); break; } - case 149: + case TT_LEVEL: for (int count = 32; count != 0; --count) { this->SendMsg(0x5B, reinterpret_cast("LEVEL"), 0, 0, 0); } break; - case 150: + case TT_SP: for (int count = 5; count != 0; --count) { this->SendMsg(0x5B, reinterpret_cast("SPPOINT"), 0, 0, 0); this->SendMsg(0x5B, reinterpret_cast("JOBLEVEL"), 0, 0, 0); } break; - case 145: { + case TT_RANDOM_LOADING_SCREEN_ON_OFF: { const char* text; if (g_randomLoadingScreen) { g_randomLoadingScreen = false; @@ -9344,13 +9348,13 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.SendNotice(1, reinterpret_cast(text), 0x6E96FF, 0, 0, 0); break; } - case 115: + case TT_SET1_ON_OFF: g_modeMgr.gameMode->SendMsg(0x2A, 0x71, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x6C, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x6D, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x8D, 0, 0, 0); break; - case 138: + case TT_SET2_ON_OFF: g_modeMgr.gameMode->SendMsg(0x2A, 0x71, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x6C, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x6D, 0, 0, 0); @@ -9358,7 +9362,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_modeMgr.gameMode->SendMsg(0x2A, 0x79, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x8D, 0, 0, 0); break; - case 166: + case TT_SET3_ON_OFF: g_modeMgr.gameMode->SendMsg(0x2A, 0x71, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x6C, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x6D, 0, 0, 0); @@ -9367,28 +9371,28 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_modeMgr.gameMode->SendMsg(0x2A, 0x87, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0xA7, 0, 0, 0); break; - case 122: + case TT_QUICKSPELL3_ON_OFF: g_modeMgr.gameMode->SendMsg(0x2A, 0x78, 0, 0, 0); g_modeMgr.gameMode->SendMsg(0x2A, 0x79, 0, 0, 0); break; - case 113: + case TT_SKILLFAIL_ON_OFF: g_serviceOptions.Set(0x71, !g_serviceOptions.Get(0x71)); g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(g_serviceOptions.Get(0x71) ? 0x2DA : 0x2DB)), 0x64FFFF, 0, 0, 0); break; - case 165: + case TT_LOGINOUT_ON_OFF: g_serviceOptions.Set(0xA5, !g_serviceOptions.Get(0xA5)); g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(g_serviceOptions.Get(0xA5) ? 0x414 : 0x415)), 0x64FFFF, 0, 0, 0); g_windowMgr.RefreshGameSettings(); break; - case 243: + case TT_EMBLEM_FRAME_ON_OFF: g_serviceOptions.Set(0xF3, !g_serviceOptions.Get(0xF3)); g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(g_serviceOptions.Get(0xF3) ? 0xDC7 : 0xDC8)), 0x64FFFF, 0, 0, 0); g_windowMgr.RefreshGameSettings(); break; - case 135: + case TT_BATTLE_ON_OFF: g_windowMgr.chatModeChanged = g_windowMgr.chatModeChanged == 0; g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); if (g_windowMgr.chatModeChanged) { @@ -9400,12 +9404,12 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x312)), 0x64FFFF, 0, 0, 0); } break; - case 186: + case TT_BATTLECHAT_ON_OFF: g_session.unknown_5484 = 1 - g_session.unknown_5484; g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(g_session.unknown_5484 ? 0x555 : 0x556)), 0x64FFFF, 0, 0, 0); break; - case 153: + case TT_AUTO_MSG_ON_OFF: g_windowToggleFlag = !g_windowToggleFlag; g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); if (g_windowToggleFlag) { @@ -9414,7 +9418,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x3AF)), 0x64FFFF, 0, 0, 0); } break; - case 162: + case TT_TRACEAI_ON_OFF: g_session.m_traceAi = g_session.m_traceAi == 0; g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); if (g_session.m_traceAi != 0) { @@ -9434,7 +9438,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x3BD)), 0x64FFFF, 0, 0, 0); } break; - case 12: { + case TT_VOLUME: { const int volume = std::atoi(parts[0].c_str()); g_soundMgr->SetSampleVolume(volume); g_soundMgr->Set3DVolume(volume); @@ -9444,7 +9448,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.RefreshGameSettings(); break; } - case 13: { + case TT_BVOLUME: { const int volume = std::atoi(parts[0].c_str()); CSoundMgr::SetVolume(g_soundMgr, volume); g_soundMgr->SetTargetVolume(CSoundMgr::Volume(g_soundMgr)); @@ -9454,7 +9458,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.RefreshGameSettings(); break; } - case 11: + case TT_EFFECT_SOUND_ON_OFF: g_serviceOptions.Set(0xB, !g_serviceOptions.Get(0xB)); g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(g_serviceOptions.Get(0xB) ? 0x1B : 0x1C)), 0x64FFFF, 0, 0, 0); @@ -9463,16 +9467,16 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { } g_windowMgr.RefreshGameSettings(); break; - case 195: + case TT_TINGONLY_ON_OFF: g_soundMgr->unknown = g_soundMgr->unknown == 0; g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(g_soundMgr->unknown ? 0x5DA : 0x5DB)), 0x64FFFF, 0, 0, 0); break; - case 10: + case TT_FRAMESKIP_ON_OFF: g_frameskip = 1 - g_frameskip; g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(g_frameskip ? 0x1D : 0x1E)), 0x64FFFF, 0, 0, 0); break; - case 7: + case TT_MUSIC_ON_OFF: g_serviceOptions.Set(7, !g_serviceOptions.Get(7)); g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(g_serviceOptions.Get(7) ? 0x1F : 0x20)), 0x64FFFF, 0, 0, 0); @@ -9483,13 +9487,13 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { } g_windowMgr.RefreshGameSettings(); break; - case 49: { + case TT_REQ_MOVETO_MAP: { const int third = std::atoi(parts[2].c_str()); const int second = std::atoi(parts[1].c_str()); this->SendMsg(0x5C, reinterpret_cast(parts[0].c_str()), second, third, 0); break; } - case 44: { + case TT_REQ_PK: { std::string value(parts[0].c_str()); LowercaseText(value); if (value == "off" || value == "on") { @@ -9497,304 +9501,304 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { } break; } - case 25: { + case TT_REQ_EXCHANGE_ITEM: { const std::uint32_t id = this->nameCard.FindId(parts[0].c_str()); if (id != 0) { this->SendMsg(0x31, id, 0, 0, 0); } break; } - case 42: + case TT_OPEN_TIP: if (!g_windowMgr.CloseWindow(0x13B)) { g_windowMgr.EnsureWindow(0x13B); } break; - case 29: + case TT_REQ_EMOTION_SURPRISE: this->SendMsg(0x149, reinterpret_cast("ET_SURPRISE"), 0, 0, 0); break; - case 30: + case TT_REQ_EMOTION_QUESTION: this->SendMsg(0x149, reinterpret_cast("ET_QUESTION"), 0, 0, 0); break; - case 31: + case TT_REQ_EMOTION_DELIGHT: this->SendMsg(0x149, reinterpret_cast("ET_DELIGHT"), 0, 0, 0); break; - case 32: + case TT_REQ_EMOTION_THROB: this->SendMsg(0x149, reinterpret_cast("ET_THROB"), 0, 0, 0); break; - case 33: + case TT_REQ_EMOTION_SWEAT: this->SendMsg(0x149, reinterpret_cast("ET_SWEAT"), 0, 0, 0); break; - case 34: + case TT_REQ_EMOTION_AHA: this->SendMsg(0x149, reinterpret_cast("ET_AHA"), 0, 0, 0); break; - case 35: + case TT_REQ_EMOTION_FRET: this->SendMsg(0x149, reinterpret_cast("ET_FRET"), 0, 0, 0); break; - case 36: + case TT_REQ_EMOTION_ANGER: this->SendMsg(0x149, reinterpret_cast("ET_ANGER"), 0, 0, 0); break; - case 37: + case TT_REQ_EMOTION_MONEY: this->SendMsg(0x149, reinterpret_cast("ET_MONEY"), 0, 0, 0); break; - case 38: + case TT_REQ_EMOTION_THINK: this->SendMsg(0x149, reinterpret_cast("ET_THINK"), 0, 0, 0); break; - case 39: + case TT_REQ_EMOTION_SCISSOR: this->SendMsg(0x149, reinterpret_cast("ET_SCISSOR"), 0, 0, 0); break; - case 40: + case TT_REQ_EMOTION_ROCK: this->SendMsg(0x149, reinterpret_cast("ET_ROCK"), 0, 0, 0); break; - case 41: + case TT_REQ_EMOTION_WRAP: this->SendMsg(0x149, reinterpret_cast("ET_WRAP"), 0, 0, 0); break; - case 79: + case TT_REQ_EMOTION_BIGTHROB: this->SendMsg(0x149, reinterpret_cast("ET_BIGTHROB"), 0, 0, 0); break; - case 66: + case TT_REQ_EMOTION_THANKS: this->SendMsg(0x149, reinterpret_cast("ET_THANKS"), 0, 0, 0); break; - case 67: + case TT_REQ_EMOTION_KEK: this->SendMsg(0x149, reinterpret_cast("ET_KEK"), 0, 0, 0); break; - case 68: + case TT_REQ_EMOTION_SORRY: this->SendMsg(0x149, reinterpret_cast("ET_SORRY"), 0, 0, 0); break; - case 69: + case TT_REQ_EMOTION_SMILE: this->SendMsg(0x149, reinterpret_cast("ET_SMILE"), 0, 0, 0); break; - case 70: + case TT_REQ_EMOTION_PROFUSELY_SWEAT: this->SendMsg(0x149, reinterpret_cast("ET_PROFUSELY_SWEAT"), 0, 0, 0); break; - case 71: + case TT_REQ_EMOTION_SCRATCH: this->SendMsg(0x149, reinterpret_cast("ET_SCRATCH"), 0, 0, 0); break; - case 72: + case TT_REQ_EMOTION_BEST: this->SendMsg(0x149, reinterpret_cast("ET_BEST"), 0, 0, 0); break; - case 73: + case TT_REQ_EMOTION_STARE_ABOUT: this->SendMsg(0x149, reinterpret_cast("ET_STARE_ABOUT"), 0, 0, 0); break; - case 74: + case TT_REQ_EMOTION_HUK: this->SendMsg(0x149, reinterpret_cast("ET_HUK"), 0, 0, 0); break; - case 75: + case TT_REQ_EMOTION_O: this->SendMsg(0x149, reinterpret_cast("ET_O"), 0, 0, 0); break; - case 76: + case TT_REQ_EMOTION_X: this->SendMsg(0x149, reinterpret_cast("ET_X"), 0, 0, 0); break; - case 77: + case TT_REQ_EMOTION_HELP: this->SendMsg(0x149, reinterpret_cast("ET_HELP"), 0, 0, 0); break; - case 78: + case TT_REQ_EMOTION_GO: this->SendMsg(0x149, reinterpret_cast("ET_GO"), 0, 0, 0); break; - case 80: + case TT_REQ_EMOTION_CRY: this->SendMsg(0x149, reinterpret_cast("ET_CRY"), 0, 0, 0); break; - case 81: + case TT_REQ_EMOTION_KIK: this->SendMsg(0x149, reinterpret_cast("ET_KIK"), 0, 0, 0); break; - case 82: + case TT_REQ_EMOTION_CHUP: this->SendMsg(0x149, reinterpret_cast("ET_CHUP"), 0, 0, 0); break; - case 83: + case TT_REQ_EMOTION_CHUPCHUP: this->SendMsg(0x149, reinterpret_cast("ET_CHUPCHUP"), 0, 0, 0); break; - case 84: + case TT_REQ_EMOTION_HNG: this->SendMsg(0x149, reinterpret_cast("ET_HNG"), 0, 0, 0); break; - case 85: + case TT_REQ_EMOTION_OK: this->SendMsg(0x149, reinterpret_cast("ET_OK"), 0, 0, 0); break; - case 123: + case TT_REQ_EMOTION_STARE: this->SendMsg(0x149, reinterpret_cast("ET_STARE"), 0, 0, 0); break; - case 124: + case TT_REQ_EMOTION_HUNGRY: this->SendMsg(0x149, reinterpret_cast("ET_HUNGRY"), 0, 0, 0); break; - case 125: + case TT_REQ_EMOTION_COOL: this->SendMsg(0x149, reinterpret_cast("ET_COOL"), 0, 0, 0); break; - case 126: + case TT_REQ_EMOTION_MERONG: this->SendMsg(0x149, reinterpret_cast("ET_MERONG"), 0, 0, 0); break; - case 127: + case TT_REQ_EMOTION_SHY: this->SendMsg(0x149, reinterpret_cast("ET_SHY"), 0, 0, 0); break; - case 128: + case TT_REQ_EMOTION_GOODBOY: this->SendMsg(0x149, reinterpret_cast("ET_GOODBOY"), 0, 0, 0); break; - case 129: + case TT_REQ_EMOTION_SPTIME: this->SendMsg(0x149, reinterpret_cast("ET_SPTIME"), 0, 0, 0); break; - case 130: + case TT_REQ_EMOTION_SEXY: this->SendMsg(0x149, reinterpret_cast("ET_SEXY"), 0, 0, 0); break; - case 131: + case TT_REQ_EMOTION_COMEON: this->SendMsg(0x149, reinterpret_cast("ET_COMEON"), 0, 0, 0); break; - case 132: + case TT_REQ_EMOTION_SLEEPY: this->SendMsg(0x149, reinterpret_cast("ET_SLEEPY"), 0, 0, 0); break; - case 133: + case TT_REQ_EMOTION_CONGRATULATION: this->SendMsg(0x149, reinterpret_cast("ET_CONGRATULATION"), 0, 0, 0); break; - case 134: + case TT_REQ_EMOTION_HPTIME: this->SendMsg(0x149, reinterpret_cast("ET_HPTIME"), 0, 0, 0); break; - case 154: + case TT_REQ_EMOTION_SPARK: this->SendMsg(0x149, reinterpret_cast("ET_SPARK"), 0, 0, 0); break; - case 155: + case TT_REQ_EMOTION_CONFUSE: this->SendMsg(0x149, reinterpret_cast("ET_CONFUSE"), 0, 0, 0); break; - case 156: + case TT_REQ_EMOTION_OHNO: this->SendMsg(0x149, reinterpret_cast("ET_OHNO"), 0, 0, 0); break; - case 157: + case TT_REQ_EMOTION_HUM: this->SendMsg(0x149, reinterpret_cast("ET_HUM"), 0, 0, 0); break; - case 158: + case TT_REQ_EMOTION_BLABLA: this->SendMsg(0x149, reinterpret_cast("ET_BLABLA"), 0, 0, 0); break; - case 159: + case TT_REQ_EMOTION_OTL: this->SendMsg(0x149, reinterpret_cast("ET_OTL"), 0, 0, 0); break; - case 171: + case TT_REQ_EMOTION_LUV: this->SendMsg(0x149, reinterpret_cast("ET_LUV"), 0, 0, 0); break; - case 175: + case TT_REQ_EMOTION_MOBILE: this->SendMsg(0x149, reinterpret_cast("ET_MOBILE"), 0, 0, 0); break; - case 176: + case TT_REQ_EMOTION_MAIL: this->SendMsg(0x149, reinterpret_cast("ET_MAIL"), 0, 0, 0); break; - case 177: + case TT_REQ_EMOTION_ANTENNA0: this->SendMsg(0x149, reinterpret_cast("ET_ANTENNA0"), 0, 0, 0); break; - case 178: + case TT_REQ_EMOTION_ANTENNA1: this->SendMsg(0x149, reinterpret_cast("ET_ANTENNA1"), 0, 0, 0); break; - case 179: + case TT_REQ_EMOTION_ANTENNA2: this->SendMsg(0x149, reinterpret_cast("ET_ANTENNA2"), 0, 0, 0); break; - case 180: + case TT_REQ_EMOTION_ANTENNA3: this->SendMsg(0x149, reinterpret_cast("ET_ANTENNA3"), 0, 0, 0); break; - case 187: + case TT_REQ_EMOTION_HUM2: this->SendMsg(0x149, reinterpret_cast("ET_HUM2"), 0, 0, 0); break; - case 188: + case TT_REQ_EMOTION_ABS: this->SendMsg(0x149, reinterpret_cast("ET_ABS"), 0, 0, 0); break; - case 189: + case TT_REQ_EMOTION_OOPS: this->SendMsg(0x149, reinterpret_cast("ET_OOPS"), 0, 0, 0); break; - case 190: + case TT_REQ_EMOTION_SPIT: this->SendMsg(0x149, reinterpret_cast("ET_SPIT"), 0, 0, 0); break; - case 191: + case TT_REQ_EMOTION_ENE: this->SendMsg(0x149, reinterpret_cast("ET_ENE"), 0, 0, 0); break; - case 192: + case TT_REQ_EMOTION_PANIC: this->SendMsg(0x149, reinterpret_cast("ET_PANIC"), 0, 0, 0); break; - case 193: + case TT_REQ_EMOTION_WHISP: this->SendMsg(0x149, reinterpret_cast("ET_WHISP"), 0, 0, 0); break; - case 160: + case TT_REQ_EMOTION_DICE: this->SendMsg(0x149, reinterpret_cast("ET_DICE1"), 0, 0, 0); break; - case 1: + case TT_BROADCAST: this->SendMsg(7, 0, 0, 0, 0); break; - case 87: + case TT_LOCALBROADCAST: this->SendMsg(7, 1, 0, 0, 0); break; - case 90: + case TT_NAMELESS_BROADCAST: this->SendMsg(7, 2, 0, 0, 0); break; - case 91: + case TT_NAMELESS_LOCALBROADCAST: this->SendMsg(7, 3, 0, 0, 0); break; - case 102: + case TT_NAMELESS_BLUEBROADCAST: this->SendMsg(7, 4, 0, 0, 0); break; - case 103: + case TT_NAMELESS_BLUELOCALBROADCAST: this->SendMsg(7, 5, 0, 0, 0); break; - case 6: + case TT_REQ_NUM_USER: this->SendMsg(0x20, 0, 0, 0, 0); break; - case 163: + case TT_HOMUN_WAIT: this->SendMsg(0xbd, 0, 0, 0, 0); break; - case 4: + case TT_DISCONNECT_CHARACTER: this->SendMsg(0xe, 0, 0, 0, 0); break; - case 5: + case TT_DISCONNECT_ALL_CHARACTER: this->SendMsg(0xf, 0, 0, 0, 0); break; - case 56: + case TT_REQ_BREAK_GUILD: this->SendMsg(0x6a, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 55: + case TT_REQ_MAKE_GUILD: this->SendMsg(0x70, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 26: + case TT_REQ_MAKE_GROUP: this->SendMsg(0x3a, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 196: + case TT_SEEK_PARTY: this->SendMsg(0x105, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 200: + case TT_REQ_RECRUIT: this->SendMsg(0x10d, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 48: + case TT_REQ_ITEM_CREATE: this->SendMsg(0x5b, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 95: + case TT_REMOVE: this->SendMsg(0x9b, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 96: + case TT_SHIFT: this->SendMsg(0x9c, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 97: + case TT_RECALL_AID: this->SendMsg(0x9d, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 98: + case TT_RECALL_GID: this->SendMsg(0x9e, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 143: + case TT_CHECK_ID: this->SendMsg(0xb1, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 144: + case TT_RC_ID: this->SendMsg(0xb2, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 101: + case TT_BILLING_INFO: this->SendMsg(0xa1, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 28: + case TT_REQ_EXPEL_GROUP_MEMBER: this->SendMsg(0x3e, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 61: + case TT_REQ_RESETSTATE: this->SendMsg(0x8e, 0, 0, 0, 0); break; - case 184: + case TT_REQ_INVITE_PARTY: this->SendMsg(0x3b, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 211: + case TT_REQ_INVITE_GUILD: this->SendMsg(0x11e, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 251: + case TT_PRISON_USER: this->SendMsg(0x13d, reinterpret_cast(parts[0].c_str()), 0, 0, 0); break; - case 252: + case TT_OPEN_ACCOUNT_LIMITED_TOOL: this->SendMsg(0x13e, 0, 0, 0, 0); break; - case 86: { + case TT_SHOW_EMOTIONLIST: { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x25D)), 0xFFFF64, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x224)), 0xFFFF64, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x22b)), 0xFFFF64, 0, 0, 0); @@ -9830,16 +9834,16 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x30f)), 0xFFFF64, 0, 0, 0); break; } - case 62: + case TT_REQ_RESETSKILL: this->SendMsg(0x146, std::atoi(parts[0].c_str()), 0, 0, 0); break; - case 63: { + case TT_CHANGE_MAPTYPE: { const int third = std::atoi(parts[2].c_str()); const int second = std::atoi(parts[1].c_str()); this->SendMsg(0x8F, std::atoi(parts[0].c_str()), second, third, 0); break; } - case 88: { + case TT_HIDE: { std::uint32_t flags = g_session.m_jobFlags; if (StateFlag02(flags)) { ClearMemberFlags(&flags); @@ -9849,39 +9853,39 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { this->SendMsg(0x90, 0x40, 0, 0, 0); break; } - case 181: + case TT_COPY_NAME: if (IsAdminAccount(g_session.m_aid)) { const unsigned char enabled = this->unknown_05CC[1]; this->unknown_05CC[1] = enabled == 0; g_windowMgr.SendNotice(1, reinterpret_cast(enabled == 0 ? "Copy_Name_On!!" : "Copy_Name_Off!!"), 0x64FFFF, 0, 0, 0); } break; - case 182: - case 183: { + case TT_REQ_ACCEPT_INVITE_PARTY: + case TT_REQ_REFUSE_INVITE_PARTY: { TalkConfigPacket packet; - packet.value = talkType != 182; + packet.value = talkType != TT_REQ_ACCEPT_INVITE_PARTY; packet.id = ID_CZ_PARTY_CONFIG; GetRagConnection().Send(g_packetLengths.FixedLength(packet.id), &packet); break; } - case 185: + case TT_REQ_OPEN_EQUIPEDITEM_ONOFF: this->SendMsg(0xFD, *reinterpret_cast(g_session.unknown_5974) == 0, 0, 0, 0); break; - case 205: { + case TT_SHOW_WEB_ADDRESSBAR: { CWebBrowser* browser = g_windowMgr.activeBrowser; if (browser) { browser->ShowAuxiliary(browser->auxiliaryVisible == 0); } break; } - case 208: { + case TT_WEB_BROWSER: { CWebBrowser* browser = g_windowMgr.EnsureSpecialBrowser(g_renderer->viewport.width, g_renderer->viewport.height); if (browser) { browser->Navigate(parts[0].c_str()); } break; } - case 209: { + case TT_NAVIGATION: { const NaviCell cell = g_navigationManager.ParseCell(parts[1].c_str()); if (cell.x == -1 || cell.y == -1) { g_navigationManager.ShowRouteResult(-100, 1); @@ -9890,7 +9894,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_navigationManager.StartNavigation(parts[0], 0, 5, true, cell.x, cell.y, 0x3EA); break; } - case 210: { + case TT_NAVIGATION2: { const NaviCell cell = g_navigationManager.ParseCell(parts[1].c_str()); bool first = false; bool second = false; @@ -9909,10 +9913,10 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_navigationManager.StartNavigation(parts[0], 0, mode, true, cell.x, cell.y, 0x3EA); break; } - case 217: + case TT_NAVIGATION3: g_windowMgr.EnsureWindow(0xCB); break; - case 207: { + case TT_SHOW_BUILD_INFO: { char text[1024]; std::memset(text, 0, sizeof(text)); sprintf_s(text, sizeof(text), "", "", ""); @@ -9925,11 +9929,11 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { g_windowMgr.SendNotice(1, reinterpret_cast(text), 0xFFFF, 0, 0, 0); break; } - case 214: + case TT_CLAN_CHAT: g_windowMgr.SetUnknown04DC(parts[0].c_str()); this->SendMsg(0x121, 0, 0, 0, 0); break; - case 218: { + case TT_SHOW_CASHSHOP_BTN_ON_OFF: { UIWindow* window = g_windowMgr.LookupWindow(0xBE); if (window) { g_serviceOptions.Set(0xDA, !g_serviceOptions.Get(0xDA)); @@ -9937,7 +9941,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { } break; } - case 219: { + case TT_SHOW_GOLDPCCAFE_ON_OFF: { UIWindow* window = g_windowMgr.LookupWindow(0x10B); if (window) { g_serviceOptions.Set(0xDB, !g_serviceOptions.Get(0xDB)); @@ -9945,7 +9949,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { } break; } - case 220: { + case TT_SHOW_ROULETTE_BTN_ON_OFF: { UIWindow* window = g_windowMgr.LookupWindow(0x10C); if (window) { g_serviceOptions.Set(0xDC, !g_serviceOptions.Get(0xDC)); @@ -9953,22 +9957,22 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { } break; } - case 224: - case 226: { + case TT_MACRO_REGISTER: + case TT_MACRO_DETECTOR: { TalkConfigPacket packet; - packet.value = talkType == 224 ? 2 : 3; + packet.value = talkType == TT_MACRO_REGISTER ? 2 : 3; packet.id = 0xA68; GetRagConnection().Send(g_packetLengths.FixedLength(packet.id), &packet); break; } - case 225: { + case TT_MACRO_PREVIEW: { TalkIntPacket packet; packet.id = ID_CZ_REQ_PREVIEW_MACRO_DETECTOR; packet.value = std::atoi(parts[0].c_str()); GetRagConnection().Send(g_packetLengths.FixedLength(packet.id), &packet); break; } - case 227: { + case TT_VIEW_CAMERAINFO_ON_OFF: { TalkCameraPacket packet; packet.range = 0.0f; packet.rotation = 0.0f; @@ -9978,7 +9982,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { GetRagConnection().Send(sizeof(packet), &packet); break; } - case 228: { + case TT_SET_CAMERA: { CView* camera = this->camera; if (camera == nullptr) { break; @@ -10003,22 +10007,22 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { GetRagConnection().Send(sizeof(packet), &packet); break; } - case 230: { + case TT_RESET_COOLTIME: { TalkConfigPacket packet; packet.id = ID_CZ_CMD_RESETCOOLTIME; GetRagConnection().Send(g_packetLengths.FixedLength(packet.id), &packet); break; } - case 237: + case TT_ADVEN_PARTY_BOARD: if (!g_windowMgr.CloseWindow(0x144)) { g_windowMgr.EnsureWindow(0x144); } break; - case 254: - case 255: { + case TT_REMOVE_ON: + case TT_REMOVE_OFF: { TalkSelectPacket packet; packet.id = 0xA5F; - if (talkType == 254) { + if (talkType == TT_REMOVE_ON) { packet.enabled = 1; packet.value = std::atoi(parts[0].c_str()); packet.option = static_cast(std::atoi(parts[1].c_str())); @@ -10029,14 +10033,14 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { GetRagConnection().Send(g_packetLengths.FixedLength(packet.id), &packet); break; } - case 260: { + case TT_MACRO_CHECKER_MAP: { TalkNamePacket packet; packet.id = ID_CZ_GM_CHECKER; strncpy_s(packet.name, sizeof(packet.name), parts[0].c_str(), _TRUNCATE); GetRagConnection().Send(g_packetLengths.FixedLength(packet.id), &packet); break; } - case 279: { + case TT_PROBABILITY_TEST: { this->unknown_0648 = this->unknown_0648 == 0; std::string server("Dev"); if (g_serviceMode == 0 && server.compare(0, 3, g_launchServerName, std::strlen(g_launchServerName)) != 0) { @@ -10076,13 +10080,13 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) { } break; } - case 2: - case 20: - case 137: - case 169: - case 173: - case 194: - case 203: + case TT_STAT: + case TT_IS_REDCELL: + case TT_SIYEON_STATUS: + case TT_REQ_HUNTING: + case TT_MINIGAME_ON_OFF: + case TT_PROCESS_AFFINITY: + case TT_GPK_DYNCODE_RELOAD: break; default: Singleton::GetInstance()->ToggleOption(talkType); @@ -10651,44 +10655,44 @@ int CGameMode::HandleActorPick(ActorPickInfo* pick, int result) { int action; if (g_session.GetSceneUnknown004C()) { switch (pick->job) { - case 0x8D: - case 0x8F: - case 0x90: - case 0x91: - case 0x93: - case 0x94: - case 0x95: - case 0x96: - case 0x97: - case 0x98: - case 0x99: - case 0xBE: - case 0xBF: - case 0xC0: - case 0xC1: - case 0xC2: - case 0xCB: - case 0xD2: - case 0xD3: - case 0xD4: - case 0xD5: - case 0xD6: - case 0xD7: - case 0xD8: - case 0xD9: - case 0xDA: - case 0xDE: - case 0xE5: - case 0xE6: - case 0xE7: - case 0xE8: - case 0xE9: - case 0xF0: - case 0x108: - case 0x5174: - case 0x5175: - case 0x5176: - case 0x5177: + case UNT_ICEWALL: + case UNT_BLASTMINE: + case UNT_SKIDTRAP: + case UNT_ANKLESNARE: + case UNT_LANDMINE: + case UNT_SHOCKWAVE: + case UNT_SANDMAN: + case UNT_FLASHER: + case UNT_FREEZINGTRAP: + case UNT_CLAYMORETRAP: + case UNT_TALKIEBOX: + case UNT_GROUNDDRIFT_WIND: + case UNT_GROUNDDRIFT_DARK: + case UNT_GROUNDDRIFT_POISON: + case UNT_GROUNDDRIFT_WATER: + case UNT_GROUNDDRIFT_FIRE: + case UNT_EARTHSTRAIN: + case UNT_MAGENTATRAP: + case UNT_COBALTTRAP: + case UNT_MAIZETRAP: + case UNT_VERDURETRAP: + case UNT_FIRINGTRAP: + case UNT_ICEBOUNDTRAP: + case UNT_ELECTRICSHOCKER: + case UNT_CLUSTERBOMB: + case UNT_REVERBERATION: + case UNT_NETHERWORLD: + case UNT_THORNS_TRAP: + case UNT_WALLOFTHORN: + case UNT_DEMONIC_FIRE: + case UNT_FIRE_EXPANSION_SMOKE_POWDER: + case UNT_FIRE_EXPANSION_TEAR_GAS: + case UNT_POWER_OF_GAIA: + case UNT_GROUNDDRIFT_NEUTRAL: + case UNT_DEEPBLINDTRAP: + case UNT_SOLIDTRAP: + case UNT_SWIFTTRAP: + case UNT_FLAMETRAP: action = reinterpret_cast(this->unknown_0408) == 5 ? 10 : 5; break; default: @@ -10697,16 +10701,16 @@ int CGameMode::HandleActorPick(ActorPickInfo* pick, int result) { } } else { switch (pick->job) { - case 0x8D: - case 0x8F: - case 0x98: - case 0xDA: - case 0xDE: - case 0xE6: - case 0x5174: - case 0x5175: - case 0x5176: - case 0x5177: + case UNT_ICEWALL: + case UNT_BLASTMINE: + case UNT_CLAYMORETRAP: + case UNT_REVERBERATION: + case UNT_NETHERWORLD: + case UNT_WALLOFTHORN: + case UNT_DEEPBLINDTRAP: + case UNT_SOLIDTRAP: + case UNT_SWIFTTRAP: + case UNT_FLAMETRAP: action = reinterpret_cast(this->unknown_0408) == 5 ? 10 : 5; break; default: @@ -11002,16 +11006,16 @@ int CGameMode::HandleActorPick(ActorPickInfo* pick, int result) { } case 2: switch (pick->job) { - case 0x8D: - case 0x8F: - case 0x98: - case 0xDA: - case 0xDE: - case 0xE6: - case 0x5174: - case 0x5175: - case 0x5176: - case 0x5177: { + case UNT_ICEWALL: + case UNT_BLASTMINE: + case UNT_CLAYMORETRAP: + case UNT_REVERBERATION: + case UNT_NETHERWORLD: + case UNT_WALLOFTHORN: + case UNT_DEEPBLINDTRAP: + case UNT_SOLIDTRAP: + case UNT_SWIFTTRAP: + case UNT_FLAMETRAP: { const int skill = this->unknown_040C; if (skill == 0xD7 || skill == 0xD8 || skill == 0xD9 || skill == 0xDA) { return result; diff --git a/Source/Client/Mode/GameModeHandlers.cpp b/Source/Client/Mode/GameModeHandlers.cpp index 106fb84ff..f5850c062 100644 --- a/Source/Client/Mode/GameModeHandlers.cpp +++ b/Source/Client/Mode/GameModeHandlers.cpp @@ -1,4 +1,6 @@ #include "Client/Mode/CGameMode.h" +#include "Contents/Skills/SkillUnitId.h" +#include "Network/Packets/ModeResultEnums.h" #include "Client/Mode/CLoginMode.h" #include "Client/Mode/ModeMgr.h" #include "Client/Application/Launcher.h" @@ -380,7 +382,7 @@ void CGameMode::ReceivePartyRoster(const unsigned char* packet) { void CGameMode::ReceiveGroundSkillExtended(const unsigned char* record) { const GroundSkillPacketExtended& packet = *reinterpret_cast(record); switch (packet.type) { - case 176: { + case UNT_GRAFFITI: { if (packet.length <= 23) { return; } @@ -394,7 +396,7 @@ void CGameMode::ReceiveGroundSkillExtended(const unsigned char* record) { this->scene->unknown_0020.push_back(skill); return; } - case 0x126: + case UNT_SHINKIROU: this->SpawnMirrorActor(packet.aid, packet.owner, packet.x, packet.y); return; } @@ -2119,8 +2121,8 @@ void CGameMode::ReceiveGradeEnchantResult(const unsigned char* packet) { ITEM_INFO item = LookupClientItemByIdentity(g_session.m_inventoryItems, *reinterpret_cast(packet + 2)); if (item.unknown_0000[1]) { const int result = *reinterpret_cast(packet + 6); - if (result == 0 || result == 2) { - if (result == 0) { + if (result == ENCHANTGRADE_UPGRADE_SUCCESS || result == ENCHANTGRADE_UPGRADE_DOWNGRADE) { + if (result == ENCHANTGRADE_UPGRADE_SUCCESS) { item.unknown_0060 = 0; } item.unknown_0088 = *reinterpret_cast(packet + 4); @@ -2132,15 +2134,15 @@ void CGameMode::ReceiveGradeEnchantResult(const unsigned char* packet) { if (window) { const int result = *reinterpret_cast(packet + 6); switch (result) { - case 0: + case ENCHANTGRADE_UPGRADE_SUCCESS: window->SetResult(2, 0); g_effectMgr->Spawn(g_session.m_aid, 1607, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(g_session.m_aid, 1608, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0)->SetDelay(2800); break; - case 1: - case 2: - case 3: - case 4: + case ENCHANTGRADE_UPGRADE_FAILED: + case ENCHANTGRADE_UPGRADE_DOWNGRADE: + case ENCHANTGRADE_UPGRADE_BREAK: + case ENCHANTGRADE_UPGRADE_PROTECTED: window->SetResult(2, result); g_effectMgr->Spawn(g_session.m_aid, 1607, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(g_session.m_aid, 1609, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0)->SetDelay(2800); diff --git a/Source/Client/Mode/GameModeItemLists.cpp b/Source/Client/Mode/GameModeItemLists.cpp index c4a747a0f..6e9e0f8b9 100644 --- a/Source/Client/Mode/GameModeItemLists.cpp +++ b/Source/Client/Mode/GameModeItemLists.cpp @@ -1,4 +1,5 @@ #include "Client/Mode/CGameMode.h" +#include "Contents/Items/InventoryType.h" #include "Client/Session.h" #include "Contents/ClientState.h" #include "Contents/Items/ItemInfo.h" @@ -97,8 +98,8 @@ namespace { void CGameMode::ReceiveEquipListPart(unsigned char listType, int count, const unsigned char* data) { const EquipListRecord* records = reinterpret_cast(data); switch (listType) { - case 2: - case 3: + case INVTYPE_STORAGE: + case INVTYPE_GUILD_STORAGE: for (int i = 0; i < count; ++i) { const EquipListRecord record = records[i]; if (record.location == 0x8000) { @@ -112,7 +113,7 @@ void CGameMode::ReceiveEquipListPart(unsigned char listType, int count, const un g_session.AddItem1738(item, 0); } break; - case 0: + case INVTYPE_INVENTORY: for (int i = 0; i < count; ++i) { const EquipListRecord record = records[i]; EquipListOption options[5]; @@ -152,7 +153,7 @@ void CGameMode::ReceiveEquipListPart(unsigned char listType, int count, const un } } break; - case 1: + case INVTYPE_CART: for (int i = 0; i < count; ++i) { const EquipListRecord record = records[i]; EquipListOption options[5]; @@ -176,8 +177,8 @@ void CGameMode::ReceiveInventoryStart(const unsigned char* packet) { } switch (listType) { - case 2: - case 3: { + case INVTYPE_STORAGE: + case INVTYPE_GUILD_STORAGE: { char title[24] = {}; memcpy_s(title, sizeof(title), packet + 5, length); UIItemStoreWnd* window = static_cast(g_windowMgr.EnsureWindow(33)); @@ -189,12 +190,12 @@ void CGameMode::ReceiveInventoryStart(const unsigned char* packet) { } break; } - case 0: + case INVTYPE_INVENTORY: g_session.ClearInventory(); g_session.ResetEquipment(); g_session.ResetItems2B50(); break; - case 1: + case INVTYPE_CART: g_session.ClearItems1740(); break; } diff --git a/Source/Client/Mode/GameModeNotices.cpp b/Source/Client/Mode/GameModeNotices.cpp index a79890bab..5ac2937af 100644 --- a/Source/Client/Mode/GameModeNotices.cpp +++ b/Source/Client/Mode/GameModeNotices.cpp @@ -41,11 +41,13 @@ #include "Contents/Schedule/CheckGDISchedule.h" #include "Contents/Schedule/TimeScheduler.h" #include "Contents/Skills/SkillInfo.h" +#include "Contents/Skills/SkillId.h" #include "Contents/Sound/SoundMgr.h" #include "Contents/World/World.h" #include "File/ShortcutFilename.h" #include "Network/Connection/Connection.h" #include "Network/Packets/PacketLengths.h" +#include "Network/Packets/NoticeEnums.h" #include "Render/Renderer.h" #include "Resource/World/TerrainResource.h" #include "UI/AdventureGuide/UIAdventureGuide.h" @@ -361,40 +363,40 @@ void CGameMode::ReceiveStatus(const unsigned char* data) { void CGameMode::ReceiveStatusChange(const unsigned char* data) { const auto* packet = reinterpret_cast(data); switch (packet->type) { - case 0x20: + case SP_USTR: reinterpret_cast(g_session.unknown_169C)[0] = packet->value; break; - case 0x21: + case SP_UAGI: reinterpret_cast(g_session.unknown_169C)[1] = packet->value; break; - case 0x22: + case SP_UVIT: reinterpret_cast(g_session.unknown_169C)[2] = packet->value; break; - case 0x23: + case SP_UINT: reinterpret_cast(g_session.unknown_169C)[3] = packet->value; break; - case 0x24: + case SP_UDEX: reinterpret_cast(g_session.unknown_169C)[4] = packet->value; break; - case 0x25: + case SP_ULUK: reinterpret_cast(g_session.unknown_169C)[5] = packet->value; break; - case 0xF7: + case SP_UPOW: g_session.m_traits.points[0] = packet->value; break; - case 0xF8: + case SP_USTA: g_session.m_traits.points[1] = packet->value; break; - case 0xF9: + case SP_UWIS: g_session.m_traits.points[2] = packet->value; break; - case 0xFA: + case SP_USPL: g_session.m_traits.points[3] = packet->value; break; - case 0xFB: + case SP_UCON: g_session.m_traits.points[4] = packet->value; break; - case 0xFC: + case SP_UCRT: g_session.m_traits.points[5] = packet->value; break; default: @@ -430,105 +432,105 @@ void CGameMode::ReceiveStatusChangeAck(const unsigned char* data) { int* bonusStats = reinterpret_cast(g_session.unknown_169C); switch (packet->type) { - case 13: + case SP_STR: g_session.m_standardStats[0] = packet->value; g_session.InvalidateWindowFrames(); if (window) { window->SendMsg(nullptr, 35, 0, 0, 0, 0); } break; - case 14: + case SP_AGI: g_session.m_standardStats[1] = packet->value; g_session.InvalidateWindowFrames(); if (window) { window->SendMsg(nullptr, 35, 0, 0, 0, 0); } break; - case 15: + case SP_VIT: g_session.m_standardStats[2] = packet->value; g_session.InvalidateWindowFrames(); if (window) { window->SendMsg(nullptr, 35, 0, 0, 0, 0); } break; - case 16: + case SP_INT: g_session.m_standardStats[3] = packet->value; g_session.InvalidateWindowFrames(); if (window) { window->SendMsg(nullptr, 35, 0, 0, 0, 0); } break; - case 17: + case SP_DEX: g_session.m_standardStats[4] = packet->value; g_session.InvalidateWindowFrames(); if (window) { window->SendMsg(nullptr, 35, 0, 0, 0, 0); } break; - case 18: + case SP_LUK: g_session.m_standardStats[5] = packet->value; g_session.InvalidateWindowFrames(); if (window) { window->SendMsg(nullptr, 35, 0, 0, 0, 0); } break; - case 41: + case SP_ATK1: bonusStats[7] = packet->value; g_session.InvalidateWindowFrames(); break; - case 42: + case SP_ATK2: bonusStats[12] = packet->value; g_session.InvalidateWindowFrames(); break; - case 43: + case SP_MATK1: bonusStats[13] = packet->value; g_session.InvalidateWindowFrames(); break; - case 44: + case SP_MATK2: bonusStats[14] = packet->value; g_session.InvalidateWindowFrames(); break; - case 45: + case SP_DEF1: bonusStats[10] = packet->value; g_session.InvalidateWindowFrames(); break; - case 46: + case SP_DEF2: bonusStats[11] = packet->value; g_session.InvalidateWindowFrames(); break; - case 47: + case SP_MDEF1: bonusStats[8] = packet->value; g_session.InvalidateWindowFrames(); break; - case 48: + case SP_MDEF2: bonusStats[15] = packet->value; g_session.InvalidateWindowFrames(); break; - case 49: + case SP_HIT: bonusStats[16] = packet->value; g_session.InvalidateWindowFrames(); break; - case 50: + case SP_FLEE1: bonusStats[17] = packet->value; g_session.InvalidateWindowFrames(); break; - case 51: + case SP_FLEE2: bonusStats[19] = packet->value; g_session.InvalidateWindowFrames(); break; - case 52: + case SP_CRITICAL: bonusStats[18] = packet->value; g_session.InvalidateWindowFrames(); break; - case 53: + case SP_ASPD: bonusStats[6] = packet->value; g_session.InvalidateWindowFrames(); break; - case 54: + case SP_36: bonusStats[9] = packet->value; g_session.InvalidateWindowFrames(); break; - case 55: + case SP_JOBLEVEL: g_session.m_jobLevel = packet->value; g_session.InvalidateWindowFrames(); g_windowMgr.EnsureWindow(49); @@ -579,15 +581,15 @@ void CGameMode::ReceiveRodexMailDeleted(const unsigned char* packet) { std::map::iterator end; switch (deleted->type) { - case 0: + case MAIL_INBOX_NORMAL: mail = g_rodexMailStore->m_mails0.find(deleted->mailId); end = g_rodexMailStore->m_mails0.end(); break; - case 1: + case MAIL_INBOX_ACCOUNT: mail = g_rodexMailStore->m_mails1.find(deleted->mailId); end = g_rodexMailStore->m_mails1.end(); break; - case 2: + case MAIL_INBOX_RETURNED: mail = g_rodexMailStore->m_mails2.find(deleted->mailId); end = g_rodexMailStore->m_mails2.end(); break; @@ -648,23 +650,23 @@ void CGameMode::ReceiveRouletteResult(const unsigned char* packet) { unsigned char bonus; switch (result->result) { - case 0: + case GENERATE_ROULETTE_SUCCESS: g_rouletteMgr->m_stage = result->stage; g_rouletteMgr->SetAdditionItem(result->additionItemId); bonus = 0; break; - case 3: + case GENERATE_ROULETTE_LOSING: g_rouletteMgr->m_stage = result->stage; g_rouletteMgr->SetAdditionItem(result->additionItemId); bonus = 1; break; - case 1: + case GENERATE_ROULETTE_FAILED: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(2634)), 0x64FFFF, 0, 0, 0); if (g_windowMgr.unknown_0464) { g_windowMgr.EnableRouletteWnd(); } return; - case 2: + case GENERATE_ROULETTE_NO_ENOUGH_POINT: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(2635)), 0x64FFFF, 0, 0, 0); if (g_windowMgr.unknown_0464) { g_windowMgr.EnableRouletteWnd(); @@ -1492,16 +1494,16 @@ void CGameMode::ReceiveRefineResult(const unsigned char* data) { UIRefiningWnd* window = static_cast(g_windowMgr.LookupWindow(295)); if (window) { switch (packet->result) { - case 0: + case ITEMREFINING_SUCCESS: window->SetState(2, 3); break; - case 1: + case ITEMREFINING_FAILURE: window->SetState(2, 4); break; - case 2: + case ITEMREFINING_DOWNGRADE: window->SetState(2, 5); break; - case 3: + case ITEMREFINING_FAILURE2: window->SetState(2, 6); break; } @@ -1509,15 +1511,15 @@ void CGameMode::ReceiveRefineResult(const unsigned char* data) { } switch (packet->result) { - case 0: + case ITEMREFINING_SUCCESS: static_cast(g_modeMgr.GetGameMode())->scene->player->LaunchEffect(154, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(498)), 0xFFFF00, 0, 0, 0); break; - case 1: + case ITEMREFINING_FAILURE: static_cast(g_modeMgr.GetGameMode())->scene->player->LaunchEffect(155, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(499)), 0xFFFF00, 0, 0, 0); break; - case 2: + case ITEMREFINING_DOWNGRADE: static_cast(g_modeMgr.GetGameMode())->scene->player->LaunchEffect(155, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(1537)), 0xFFFF00, 0, 0, 0); break; @@ -1746,13 +1748,13 @@ void CloseAccountLimitedTool() { // FUNCTION: fn_22100 void CGameMode::ReceiveMacroBlackListResult(int result) { switch (result) { - case 0: + case MCD_TIMEOUT: g_windowMgr.Confirm(LookupMessage(2869), 0, true, false, 0, "Message", 280, 120, 0); break; - case 1: + case MCD_INCORRECT: g_windowMgr.Confirm(LookupMessage(2870), 0, true, false, 0, "Message", 280, 120, 0); break; - case 2: + case MCD_GOOD: g_windowMgr.CloseWindow(359); g_windowMgr.Confirm(LookupMessage(2871), 0, true, false, 0, "Message", 280, 120, 0); return; @@ -1768,13 +1770,13 @@ void CGameMode::ReceiveMacroBlackListResult(int result) { // FUNCTION: fn_22101 void CGameMode::ReceiveMacroDetectorResult(int result) { switch (result) { - case 0: + case MCD_TIMEOUT: g_windowMgr.Confirm(LookupMessage(2869), 0, true, false, 0, "Message", 280, 120, 0); break; - case 1: + case MCD_INCORRECT: g_windowMgr.Confirm(LookupMessage(2870), 0, true, false, 0, "Message", 280, 120, 0); break; - case 2: + case MCD_GOOD: g_windowMgr.CloseWindow(285); g_windowMgr.Confirm(LookupMessage(2871), 0, true, false, 0, "Message", 280, 120, 0); return; @@ -1934,13 +1936,13 @@ void CGameMode::ReceiveWindow328Result(int result, int value) { // FUNCTION: fn_22048 void CGameMode::ReceiveRouletteClose(const unsigned char* packet) { switch (reinterpret_cast(packet)->value) { - case 0: + case CLOSE_ROULETTE_SUCCESS: g_rouletteMgr->Reset(); if (g_windowMgr.unknown_0464) { g_windowMgr.CloseWindow(269); } break; - case 1: + case CLOSE_ROULETTE_FAILED: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(2633)), 0x6464FF, 0, 0, 0); break; } @@ -1954,7 +1956,7 @@ void CGameMode::ReceiveWindow227Result(const unsigned char* packet) { const unsigned short second = result->second; switch (result->result) { - case 0: { + case MERGE_ITEM_SUCCESS: { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(2171)), 0x64FFFF, 0, 0, 0); UIWindow* window = g_windowMgr.LookupWindow(227); if (window) { @@ -1962,10 +1964,10 @@ void CGameMode::ReceiveWindow227Result(const unsigned char* packet) { } break; } - case 1: + case MERGE_ITEM_FAILED_NOT_MERGE: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(2172)), 0xFF, 0, 0, 0); break; - case 2: + case MERGE_ITEM_FAILED_MAX_COUNT: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(2173)), 0xFF, 0, 0, 0); break; } @@ -1978,7 +1980,7 @@ void CGameMode::ReceiveWindow227Result(const unsigned char* packet) { void CGameMode::ReceiveRouletteOpen(const unsigned char* packet) { const auto* open = reinterpret_cast(packet); switch (open->result) { - case 0: + case OPEN_ROULETTE_SUCCESS: g_rouletteMgr->unknown_0004 = open->serial; g_rouletteMgr->m_stage = open->stage; g_rouletteMgr->SetAdditionItem(open->additionItemId); @@ -1999,7 +2001,7 @@ void CGameMode::ReceiveRouletteOpen(const unsigned char* packet) { g_windowMgr.EnsureWindow(269); } break; - case 1: + case OPEN_ROULETTE_FAILED: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(2632)), 0x6464FF, 0, 0, 0); break; } @@ -2497,19 +2499,19 @@ void CGameMode::ReceiveRodexMailReturn(const unsigned char* data) { std::map::iterator mail; switch (packet->type) { - case 0: + case MAIL_INBOX_NORMAL: mail = g_rodexMailStore->m_mails0.find(packet->mailId); if (mail != g_rodexMailStore->m_mails0.end()) { mail->second.unknown_0001 -= 2; } break; - case 1: + case MAIL_INBOX_ACCOUNT: mail = g_rodexMailStore->m_mails1.find(packet->mailId); if (mail != g_rodexMailStore->m_mails1.end()) { mail->second.unknown_0001 -= 2; } break; - case 2: + case MAIL_INBOX_RETURNED: mail = g_rodexMailStore->m_mails2.find(packet->mailId); if (mail != g_rodexMailStore->m_mails2.end()) { mail->second.unknown_0001 -= 2; @@ -2690,19 +2692,19 @@ void CGameMode::ReceiveRodexItemReturn(const unsigned char* data) { std::map::iterator mail; switch (packet->type) { - case 0: + case MAIL_INBOX_NORMAL: mail = g_rodexMailStore->m_mails0.find(packet->mailId); if (mail != g_rodexMailStore->m_mails0.end()) { mail->second.unknown_0001 -= 4; } break; - case 1: + case MAIL_INBOX_ACCOUNT: mail = g_rodexMailStore->m_mails1.find(packet->mailId); if (mail != g_rodexMailStore->m_mails1.end()) { mail->second.unknown_0001 -= 4; } break; - case 2: + case MAIL_INBOX_RETURNED: mail = g_rodexMailStore->m_mails2.find(packet->mailId); if (mail != g_rodexMailStore->m_mails2.end()) { mail->second.unknown_0001 -= 4; @@ -3059,7 +3061,7 @@ void CGameMode::ReceiveExchangeItemAddAck(const unsigned char* data) { *reinterpret_cast(&this->unknown_0100[0x00]) = 0; this->unknown_05CE = 1; switch (packet->result) { - case 0: + case EXITEM_ADD_SUCCEED: if (packet->index != 0) { ITEM_INFO item = LookupClientItemByIdentity(g_session.m_inventoryItems, packet->index); item.quantity = exchangeAmount; @@ -3071,15 +3073,15 @@ void CGameMode::ReceiveExchangeItemAddAck(const unsigned char* data) { g_session.SetUnknown5210(g_session.unknown_5210 + exchangeAmount); } break; - case 1: + case EXITEM_ADD_FAILED_OVERWEIGHT: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(73)), 0xFF, 0, 0, 0); break; - case 3: + case EXITEM_ADD_FAILED_OVERCOUNT: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(1938)), 0xFF, 0, 0, 0); break; - case 4: + case EXITEM_ADD_FAILED_EACHITEM_OVERCOUNT: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(1939)), 0xFF, 0, 0, 0); break; @@ -3092,7 +3094,7 @@ void CGameMode::ReceiveExchangeRequestAck2(const unsigned char* data) { const auto* packet = reinterpret_cast(data); const std::string& exchangeName = this->exchangeName; switch (packet->result) { - case 3: { + case TRADE_ACK_ACCEPT: { this->SendMsg(40, 0, 0, 0, 0); *reinterpret_cast(&this->unknown_0100[0x14]) = 1; g_session.ResetSlots(); @@ -3104,23 +3106,23 @@ void CGameMode::ReceiveExchangeRequestAck2(const unsigned char* data) { } break; } - case 4: + case TRADE_ACK_CANCEL: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(69)), 0xFF, 0, 0, 0); break; - case 0: + case TRADE_ACK_TOOFAR: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(70)), 0xFF, 0, 0, 0); break; - case 1: + case TRADE_ACK_CHARNOTEXIST: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(71)), 0xFF, 0, 0, 0); break; - case 2: + case TRADE_ACK_FAILED: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(72)), 0xFF, 0, 0, 0); break; - case 5: { + case TRADE_ACK_BUSY: { std::string text = FormatOwnedString(LookupMessage(1708), exchangeName.c_str()); g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), 0xFF, 0, 0, 0); @@ -3134,7 +3136,7 @@ void CGameMode::ReceiveExchangeRequestAck2(const unsigned char* data) { void CGameMode::ReceiveExchangeRequestAck(const unsigned char* data) { const auto* packet = reinterpret_cast(data); switch (packet->result) { - case 3: { + case TRADE_ACK_ACCEPT: { this->SendMsg(40, 0, 0, 0, 0); *reinterpret_cast(&this->unknown_0100[0x14]) = 1; g_session.ResetSlots(); @@ -3147,19 +3149,19 @@ void CGameMode::ReceiveExchangeRequestAck(const unsigned char* data) { } break; } - case 4: + case TRADE_ACK_CANCEL: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(69)), 0xFF, 0, 0, 0); break; - case 0: + case TRADE_ACK_TOOFAR: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(70)), 0xFF, 0, 0, 0); break; - case 1: + case TRADE_ACK_CHARNOTEXIST: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(71)), 0xFF, 0, 0, 0); break; - case 2: + case TRADE_ACK_FAILED: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(72)), 0xFF, 0, 0, 0); break; @@ -3607,7 +3609,7 @@ void CGameMode::ReceiveLongParChange(const unsigned char* data) { std::int64_t& jobExp = *reinterpret_cast(&g_session.unknown_162C[0x1C]); bool refresh = true; switch (packet->type) { - case 1: + case SP_BASEEXP: if (g_session.IsAdminSubMode(2)) { const std::int64_t value = packet->value; const int gained = static_cast(value) - static_cast(exp); @@ -3622,10 +3624,10 @@ void CGameMode::ReceiveLongParChange(const unsigned char* data) { } exp = packet->value; break; - case 2: + case SP_JOBEXP: jobExp = packet->value; break; - case 20: + case SP_ZENY: if (*reinterpret_cast(&this->unknown_0100[0x14])) { *reinterpret_cast(&this->unknown_0100[0x14]) = 0; g_session.ResetSlots(); @@ -3633,10 +3635,10 @@ void CGameMode::ReceiveLongParChange(const unsigned char* data) { g_session.m_zeny = static_cast(packet->value); g_session.RefreshHpSpWindows(); break; - case 22: + case SP_NEXTBASEEXP: nextExp = packet->value; break; - case 23: + case SP_NEXTJOBEXP: nextJobExp = packet->value; break; default: @@ -3677,7 +3679,7 @@ void CGameMode::ReceiveNotifyEffect(const unsigned char* packet) { } int effectId = *reinterpret_cast(packet + 6); - if (effectId == 0x3FD) { + if (effectId == EF_DUSTSTORM) { CEmitterEffect* emitter = static_cast(g_effectMgr->Spawn( 0, 0x3CE, actor->render.position.x, actor->render.position.y, actor->render.position.z, 0, -1, 0, 0 )); @@ -3714,13 +3716,13 @@ void CGameMode::ReceiveNotifyEffect(const unsigned char* packet) { if (g_serviceOptions.Get(0xE5)) { switch (*reinterpret_cast(packet + 6)) { - case 0x5A: + case EF_LORD: effectId = 0x48A; break; - case 0x5C: + case EF_METEORSTORM: effectId = 0x48B; break; - case 0x5F: + case EF_QUAGMIRE: effectId = 0x489; break; } @@ -3733,7 +3735,7 @@ void CGameMode::ReceiveNotifyEffect(const unsigned char* packet) { gameActor->LaunchEffect(*reinterpret_cast(packet + 6), vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } - if (g_session.IsMercenaryJob(gameActor->GetEffectiveJob(-1)) && *reinterpret_cast(packet + 6) == 0x238) { + if (g_session.IsMercenaryJob(gameActor->GetEffectiveJob(-1)) && *reinterpret_cast(packet + 6) == EF_HO_UP) { ++gameActor->unknown_0210; gameActor->ResetJobEffects(); gameActor->UpdateMaxLevelAura(); @@ -4018,13 +4020,13 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { this->SendMsg(0x56, *reinterpret_cast(packet + 2), reinterpret_cast(actor), *reinterpret_cast(packet + 8), 0); switch (*reinterpret_cast(packet + 2)) { - case 0x171: + case PA_GOSPEL: g_soundMgr->PlayWave("effect\\가스펠.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x16A: + case HP_BASILICA: g_soundMgr->PlayWave("effect\\바실리카.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x2F: { + case AC_SHOWER: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); if (actor == nullptr) { return; @@ -4046,7 +4048,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { } break; } - case 0x21D: { + case NJ_RAIGEKISAI: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); float x; float z; @@ -4058,12 +4060,12 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { this->LaunchDummyEffect(&position, 0x26E, 200, 0); break; } - case 0x2E3: - case 0x992: + case NPC_CLOUD_KILL: + case SO_CLOUD_KILL: actor->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\S클라우드킬.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x89B: { + case WL_FROSTMISTY: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); float x; float z; @@ -4075,8 +4077,8 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { this->LaunchDummyEffect(&position, 0x2D6, EffectLifetime(0x2D6) + 10, 0); break; } - case 0x2E0: - case 0x991: { + case NPC_PSYCHIC_WAVE: + case SO_PSYCHIC_WAVE: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); g_soundMgr->PlayWave("effect\\S사이킥웨이브.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); actor->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -4114,7 +4116,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { } break; } - case 0x98E: { + case SO_EARTHGRAVE: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); g_soundMgr->PlayWave("effect\\G가시나무덫.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); actor->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -4145,7 +4147,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { } break; } - case 0x9B3: { + case GN_CRAZYWEED: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); g_soundMgr->PlayWave("effect\\G가시나무덫.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); float x; @@ -4158,7 +4160,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { this->LaunchDummyEffect(&position, 0x393, 150, 0); break; } - case 0x90D: { + case LG_OVERBRAND: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); if (actor == nullptr) { return; @@ -4191,7 +4193,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { g_soundMgr->PlayWave("effect\\LG_OVERBRAND.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x9D6: { + case SR_RIDEINLIGHTNING: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); actor->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); float x; @@ -4207,7 +4209,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { g_soundMgr->PlayWave("effect\\SR_RIDEINLIGHTNING.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x976: { + case WM_LULLABY_DEEPSLEEP: { g_soundMgr->PlayWave("effect\\안식의자장가.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); CRagEffect* effect = actor->LaunchEffect(0x35A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect == nullptr) { @@ -4224,7 +4226,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); break; } - case 0x971: { + case WM_DOMINION_IMPULSE: { CRagEffect* effect = actor->LaunchEffect(0x35F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect == nullptr) { return; @@ -4242,16 +4244,16 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { g_soundMgr->PlayWave("effect\\invisibility.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x8FD: + case SC_CHAOSPANIC: g_soundMgr->PlayWave("effect\\chaospanic.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8FE: + case SC_MAELSTROM: g_soundMgr->PlayWave("effect\\maelstrom.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8FF: + case SC_BLOODYLUST: g_soundMgr->PlayWave("effect\\bloodylust.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0xA1B: + case SJ_BOOKOFCREATINGSTAR: if (actor == nullptr) { return; } @@ -4262,7 +4264,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { *reinterpret_cast(packet + 0xC), *reinterpret_cast(packet + 8), reinterpret_cast(actor)); break; - case 0x14FD: { + case EM_TERRA_DRIVE: { vector3d position = {0.0f, 0.0f, 0.0f}; this->CellCenter(*reinterpret_cast(packet + 0xA), *reinterpret_cast(packet + 0xC), position.x, position.z); position.y = this->scene->terrain->Height(position.x, position.z); @@ -4270,7 +4272,7 @@ void CGameMode::ReceiveNotifyGroundSkill(const unsigned char* packet) { g_effectMgr->Spawn(0, 0x855, position.x, position.y, position.z, 0, -1, 0, 0); break; } - case 0x14F9: { + case EM_DIAMOND_STORM: { vector3d position = {0.0f, 0.0f, 0.0f}; this->CellCenter(*reinterpret_cast(packet + 0xA), *reinterpret_cast(packet + 0xC), position.x, position.z); position.y = this->scene->terrain->Height(position.x, position.z); @@ -4397,13 +4399,13 @@ void CGameMode::ReceiveRodexMailList(const unsigned char* packet) { const RodexMailListEntry* entry = reinterpret_cast(packet + offset); std::map* mails = nullptr; switch (entry->openType) { - case 0: + case MAIL_INBOX_NORMAL: mails = &g_rodexMailStore->m_mails0; break; - case 1: + case MAIL_INBOX_ACCOUNT: mails = &g_rodexMailStore->m_mails1; break; - case 2: + case MAIL_INBOX_RETURNED: mails = &g_rodexMailStore->m_mails2; break; } @@ -4415,7 +4417,7 @@ void CGameMode::ReceiveRodexMailList(const unsigned char* packet) { mail.unknown_0024.assign(entry->title, entry->titleLength); mail.unknown_0004.assign(entry->sender, std::min(std::strlen(entry->sender), 24)); mail.unknown_0020 = _time32(nullptr) + entry->expireTime; - if (entry->openType == 0 && !(mail.unknown_0001 & 8) && !g_session.HasUnknown809C(mail.unknown_0004)) { + if (entry->openType == MAIL_INBOX_NORMAL && !(mail.unknown_0001 & 8) && !g_session.HasUnknown809C(mail.unknown_0004)) { mail.unknown_0194 = g_session.IsKnownName(mail.unknown_0004); } else { mail.unknown_0194 = 1; @@ -4481,25 +4483,25 @@ void CGameMode::ReceiveStatusChangeList(const unsigned char* data) { void CGameMode::ReceiveStatusChangeExtended(const unsigned char* data) { const auto* packet = reinterpret_cast(data); switch (packet->type) { - case 0x46: - case 0x47: - case 0x48: - case 0x49: - case 0x4A: - case 0x4B: - case 0x4C: - case 0x4D: - case 0x4E: - case 0x4F: - case 0x50: - case 0x51: - case 0x52: - case 0x53: - case 0x54: - case 0x1C6: - case 0x4ED: - case 0x4EE: - case 0x4EF: + case EFST_WHISTLE: + case EFST_ASSASSINCROSS: + case EFST_POEMBRAGI: + case EFST_APPLEIDUN: + case EFST_HUMMING: + case EFST_DONTFORGETME: + case EFST_FORTUNEKISS: + case EFST_SERVICEFORYOU: + case EFST_RICHMANKIM: + case EFST_ETERNALCHAOS: + case EFST_DRUMBATTLEFIELD: + case EFST_RINGNIBELUNGEN: + case EFST_ROKISWEIL: + case EFST_INTOABYSS: + case EFST_SIEGFRIED: + case EFST_UNLIMITED_HUMMING_VOICE: + case EFST_MUSICAL_INTERLUDE: + case EFST_JAWAII_SERENADE: + case EFST_PRON_MARCH: return; } @@ -4612,35 +4614,35 @@ void CGameMode::ReceiveSpriteChange(const unsigned char* data) { if (packet->aid == g_session.m_aid) { actor = this->scene->player; switch (packet->type) { - case 0: + case LOOK_BASE: g_session.UpdateBodyStyle(g_session.GetDisplayJob(), bodyStyle, bodyCostume); g_session.SetJob(packet->value); break; - case 1: + case LOOK_HAIR: g_session.m_head = packet->value; break; - case 2: + case LOOK_WEAPON: *reinterpret_cast(&g_session.unknown_0EDC[0x4]) = packet->value; *reinterpret_cast(&g_session.unknown_0EDC[0x8]) = 0; break; - case 3: + case LOOK_HEAD_BOTTOM: *reinterpret_cast(&g_session.unknown_0EF4[0x0]) = packet->value; break; - case 4: + case LOOK_HEAD_TOP: *reinterpret_cast(&g_session.unknown_0EF4[0x4]) = packet->value; break; - case 5: + case LOOK_HEAD_MID: *reinterpret_cast(&g_session.unknown_0EF4[0x8]) = packet->value; break; - case 6: + case LOOK_HAIR_COLOR: g_session.m_headPalette = packet->value; break; - case 7: { + case LOOK_CLOTHES_COLOR: { const unsigned char style = packet->value; g_session.UpdateBodyStyle(g_session.GetDisplayJob(), style, bodyCostume); break; } - case 8: + case LOOK_SHIELD: *reinterpret_cast(&g_session.unknown_0EDC[0xC]) = packet->value; break; } @@ -4654,7 +4656,7 @@ void CGameMode::ReceiveSpriteChange(const unsigned char* data) { if (!skill) { return; } - if (packet->type == 0) { + if (packet->type == LOOK_BASE) { skill->SendMsg(nullptr, 47, 0, packet->value, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } return; @@ -4662,37 +4664,37 @@ void CGameMode::ReceiveSpriteChange(const unsigned char* data) { } switch (packet->type) { - case 0: + case LOOK_BASE: actor->SetActorJob(packet->value); actor->SetImfFileName(); actor->SetHeadPaletteName(); actor->SetBodyPaletteName(); break; - case 1: + case LOOK_HAIR: actor->SetSprHead(packet->value); actor->SetImfFileName(); actor->SetHeadPaletteName(); actor->RefreshAccessory3(); break; - case 2: + case LOOK_WEAPON: actor->SetSprWeapon(packet->value, 0); break; - case 3: + case LOOK_HEAD_BOTTOM: actor->SetSprAccessory(packet->value); break; - case 4: + case LOOK_HEAD_TOP: actor->SetSprAccessory2(packet->value); break; - case 5: + case LOOK_HEAD_MID: actor->SetSprAccessory3(packet->value); break; - case 6: + case LOOK_HAIR_COLOR: actor->SetHeadPalette(packet->value); break; - case 7: + case LOOK_CLOTHES_COLOR: actor->SetBodyPalette(packet->value); break; - case 8: + case LOOK_SHIELD: actor->SetSprShield(packet->value); break; } @@ -4709,16 +4711,16 @@ void CGameMode::ReceiveSpriteChange2(const unsigned char* data) { if (packet->aid == g_session.m_aid) { actor = this->scene->player; switch (packet->type) { - case 0: + case LOOK_BASE: g_session.UpdateBodyStyle(g_session.GetDisplayJob(), bodyStyle, bodyCostume); if (g_session.m_job != packet->value) { g_session.SetJob(value); } break; - case 1: + case LOOK_HAIR: g_session.m_head = value; break; - case 2: { + case LOOK_WEAPON: { *reinterpret_cast(&g_session.unknown_0EDC[0x4]) = value; const int shield = static_cast(packet->value >> 32); *reinterpret_cast(&g_session.unknown_0EDC[0x8]) = shield; @@ -4727,31 +4729,31 @@ void CGameMode::ReceiveSpriteChange2(const unsigned char* data) { } break; } - case 3: + case LOOK_HEAD_BOTTOM: *reinterpret_cast(&g_session.unknown_0EF4[0x0]) = value; break; - case 4: + case LOOK_HEAD_TOP: *reinterpret_cast(&g_session.unknown_0EF4[0x4]) = value; break; - case 5: + case LOOK_HEAD_MID: *reinterpret_cast(&g_session.unknown_0EF4[0x8]) = value; break; - case 6: + case LOOK_HAIR_COLOR: g_session.m_headPalette = value; break; - case 7: + case LOOK_CLOTHES_COLOR: g_session.UpdateBodyStyle(g_session.GetDisplayJob(), value, bodyCostume); break; - case 11: + case LOOK_RESET_COSTUMES: *reinterpret_cast(&g_session.unknown_0EF4[0x0]) = 0; *reinterpret_cast(&g_session.unknown_0EF4[0x4]) = 0; *reinterpret_cast(&g_session.unknown_0EF4[0x8]) = 0; g_session.m_robe = 0; break; - case 12: + case LOOK_ROBE: g_session.m_robe = value; break; - case 13: + case LOOK_BODY2: g_session.m_bodyCostume = value; break; case 14: @@ -4770,7 +4772,7 @@ void CGameMode::ReceiveSpriteChange2(const unsigned char* data) { if (!skill) { return; } - if (packet->type == 0) { + if (packet->type == LOOK_BASE) { skill->SendMsg(nullptr, 47, 0, value, static_cast(packet->value >> 32), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } return; @@ -4778,7 +4780,7 @@ void CGameMode::ReceiveSpriteChange2(const unsigned char* data) { } switch (packet->type) { - case 0: + case LOOK_BASE: actor->SetActorJob(value); if (packet->aid == g_session.m_aid) { actor->SetBodyPalette(g_session.m_bodyStyle); @@ -4787,24 +4789,24 @@ void CGameMode::ReceiveSpriteChange2(const unsigned char* data) { actor->SetHeadPaletteName(); actor->SetBodyPaletteName(); break; - case 1: + case LOOK_HAIR: actor->SetSprHead(value); actor->SetImfFileName(); actor->SetHeadPaletteName(); actor->RefreshAccessory3(); break; - case 2: { + case LOOK_WEAPON: { const int shield = static_cast(packet->value >> 32); const int weapon = value; const int view = GetWeaponViewValue(shield); switch (actor->GetEffectiveJob(-1)) { - case 0xC: - case 0xFAD: - case 0xFC3: - case 0xFDB: - case 0xFE1: - case 0x1005: - case 0x109E: + case JT_ASSASSIN: + case JT_ASSASSIN_H: + case JT_ASSASSIN_B: + case JT_GUILLOTINE_CROSS: + case JT_GUILLOTINE_CROSS_H: + case JT_GUILLOTINE_CROSS_B: + case JT_SHADOW_CROSS: actor->SetSprWeapon2(value, shield); break; default: @@ -4816,34 +4818,34 @@ void CGameMode::ReceiveSpriteChange2(const unsigned char* data) { } break; } - case 3: + case LOOK_HEAD_BOTTOM: actor->SetSprAccessory(value); break; - case 4: + case LOOK_HEAD_TOP: actor->SetSprAccessory2(value); break; - case 5: + case LOOK_HEAD_MID: actor->SetSprAccessory3(value); break; - case 6: + case LOOK_HAIR_COLOR: actor->SetHeadPalette(value); break; - case 7: + case LOOK_CLOTHES_COLOR: actor->SetBodyPalette(value); break; - case 9: + case LOOK_SHOES: actor->SetSprShoe(value); break; - case 11: + case LOOK_RESET_COSTUMES: actor->SetSprAccessory(0); actor->SetSprAccessory2(0); actor->SetSprAccessory3(0); actor->SetSprRobe(0, 0); break; - case 12: + case LOOK_ROBE: actor->SetSprRobe(value, 0); break; - case 13: + case LOOK_BODY2: actor->SetBodyCostume(value, 1); if (StateFlag04(actor->GetStateFlags())) { actor->SendMsg(nullptr, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -5347,13 +5349,13 @@ void CGameMode::ReceiveRodexReadMail(const unsigned char* data) { std::map* mails; switch (packet->type) { - case 0: + case MAIL_INBOX_NORMAL: mails = &g_rodexMailStore->m_mails0; break; - case 1: + case MAIL_INBOX_ACCOUNT: mails = &g_rodexMailStore->m_mails1; break; - case 2: + case MAIL_INBOX_RETURNED: mails = &g_rodexMailStore->m_mails2; break; default: @@ -5685,7 +5687,7 @@ void CGameMode::ReceiveRodexMailListAppend(const unsigned char* data) { mail.unknown_0001 = entry->type; mail.unknown_0020 = _time32(nullptr) + entry->expireTime; mail.unknown_0004.assign(entry->sender, (std::min)(std::strlen(entry->sender), static_cast(24))); - if (packet->type == 0 && (mail.unknown_0001 & 8) == 0 && !g_session.HasUnknown809C(mail.unknown_0004)) { + if (packet->type == MAIL_INBOX_NORMAL && (mail.unknown_0001 & 8) == MAIL_INBOX_NORMAL && !g_session.HasUnknown809C(mail.unknown_0004)) { mail.unknown_0194 = g_session.IsKnownName(mail.unknown_0004); } else { mail.unknown_0194 = 1; @@ -5693,17 +5695,17 @@ void CGameMode::ReceiveRodexMailListAppend(const unsigned char* data) { mail.unknown_0024.append(entry->title, entry->titleLength); switch (packet->type) { - case 0: + case MAIL_INBOX_NORMAL: if (g_rodexMailStore->m_mails0.find(entry->mailId) == g_rodexMailStore->m_mails0.end()) { g_rodexMailStore->m_mails0.insert(std::make_pair(entry->mailId, mail)); } break; - case 1: + case MAIL_INBOX_ACCOUNT: if (g_rodexMailStore->m_mails1.find(entry->mailId) == g_rodexMailStore->m_mails1.end()) { g_rodexMailStore->m_mails1.insert(std::make_pair(entry->mailId, mail)); } break; - case 2: + case MAIL_INBOX_RETURNED: if (g_rodexMailStore->m_mails2.find(entry->mailId) == g_rodexMailStore->m_mails2.end()) { g_rodexMailStore->m_mails2.insert(std::make_pair(entry->mailId, mail)); } @@ -5778,457 +5780,457 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { color = 0xFFFF00; switch (packet->type) { - case 2: - case 37: - case 38: - case 39: - case 40: - case 68: - case 161: + case EFST_TWOHANDQUICKEN: + case EFST_ATTHASTE_POTION1: + case EFST_ATTHASTE_POTION2: + case EFST_ATTHASTE_POTION3: + case EFST_ATTHASTE_INFINITY: + case EFST_SPEARQUICKEN: + case EFST_ONEHANDQUICKEN: std::sprintf(message, LookupMessage(463)); break; - case 896: - case 917: - case 919: - case 937: - case 982: + case EFST_SV_ROOTTWIST: + case EFST_BITESCAR: + case EFST_TUNAPARTY: + case EFST_SPRITEMABLE: + case EFST_SOULATTACK: break; - case 15: + case EFST_IMPOSITIO: std::sprintf(message, LookupMessage(3463)); break; - case 16: + case EFST_SUFFRAGIUM: std::sprintf(message, LookupMessage(467)); break; - case 6: + case EFST_ENCHANTPOISON: std::sprintf(message, LookupMessage(469)); break; - case 17: - case 64: + case EFST_ASPERSIO: + case EFST_WEAPONPROPERTY: std::sprintf(message, LookupMessage(470)); break; - case 18: + case EFST_BENEDICTIO: std::sprintf(message, LookupMessage(472)); break; - case 19: + case EFST_KYRIE: std::sprintf(message, LookupMessage(474)); break; - case 24: + case EFST_WEAPONPERFECT: std::sprintf(message, LookupMessage(476)); break; - case 25: - case 188: + case EFST_OVERTHRUST: + case EFST_OVERTHRUSTMAX: std::sprintf(message, LookupMessage(465)); break; - case 26: + case EFST_MAXIMIZE: std::sprintf(message, LookupMessage(480)); break; - case 12: - case 41: - case 42: + case EFST_INC_AGI: + case EFST_MOVHASTE_POTION: + case EFST_MOVHASTE_INFINITY: std::sprintf(message, LookupMessage(209)); break; - case 13: + case EFST_DEC_AGI: std::sprintf(message, LookupMessage(210)); break; - case 7: + case EFST_POISONREACT: std::sprintf(message, LookupMessage(620)); break; - case 8: + case EFST_QUAGMIRE: std::sprintf(message, LookupMessage(622)); break; - case 9: + case EFST_ANGELUS: std::sprintf(message, LookupMessage(3435)); break; - case 10: + case EFST_BLESSING: std::sprintf(message, LookupMessage(3434)); break; - case 14: + case EFST_SLOWPOISON: std::sprintf(message, LookupMessage(630)); break; - case 20: + case EFST_MAGNIFICAT: std::sprintf(message, LookupMessage(632)); break; - case 21: + case EFST_GLORIA: std::sprintf(message, LookupMessage(634)); break; - case 22: + case EFST_LEXAETERNA: std::sprintf(message, LookupMessage(636)); break; - case 23: - case 147: + case EFST_ADRENALINE: + case EFST_ADRENALINE2: std::sprintf(message, LookupMessage(638)); break; - case 29: + case EFST_TRICKDEAD: std::sprintf(message, ""); if (packet->aid == g_session.m_aid) { this->scene->player->SetAction(64, 4, 1); this->scene->player->render.isMotionFreezed = true; } break; - case 30: + case EFST_SHOUT: std::sprintf(message, LookupMessage(3433)); break; - case 31: + case EFST_ENERGYCOAT: std::sprintf(message, LookupMessage(648)); break; - case 32: + case EFST_BROKENARMOR: std::sprintf(message, LookupMessage(650)); break; - case 33: + case EFST_BROKENWEAPON: std::sprintf(message, LookupMessage(652)); break; - case 182: + case EFST_CHASEWALK2: if (packet->aid == g_session.m_aid) { g_soundMgr->PlayWave("lava_golem_move.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } std::sprintf(message, ""); break; - case 0: - case 1: - case 3: - case 4: - case 5: - case 11: - case 27: - case 28: - case 34: - case 54: - case 55: - case 56: - case 57: - case 61: - case 86: - case 87: - case 95: - case 97: - case 98: - case 103: - case 104: - case 105: - case 107: - case 110: - case 112: - case 113: - case 114: - case 115: - case 116: - case 117: - case 118: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 130: - case 132: - case 133: - case 134: - case 135: - case 137: - case 139: - case 141: - case 143: - case 145: - case 149: - case 152: - case 153: - case 156: - case 157: - case 158: - case 159: - case 160: - case 165: - case 166: - case 167: - case 169: - case 170: - case 171: - case 181: - case 184: - case 186: - case 191: - case 197: - case 198: - case 199: - case 200: - case 201: - case 203: - case 204: - case 205: - case 206: - case 207: - case 208: - case 209: - case 210: - case 211: - 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 238: - case 239: - case 240: - case 250: - case 254: - case 255: - case 256: - case 257: - case 258: - case 259: - case 261: - case 262: - case 263: - case 264: - case 265: - case 266: - case 267: - case 268: - case 269: - case 270: - case 282: - case 286: - case 289: - case 290: - case 291: - case 292: - case 293: - case 294: - case 295: - case 296: - case 298: - case 300: - case 301: - case 302: - case 313: - case 314: - case 316: - case 318: - case 319: - case 320: - case 321: - case 322: - case 323: - case 328: - case 330: - case 333: - case 334: - case 336: - case 337: - case 339: - case 341: - case 342: - case 343: - case 344: - case 345: - case 346: - case 347: - case 348: - case 349: - case 350: - case 351: - case 352: - case 353: - case 354: - case 355: - case 357: - case 360: - case 361: - case 362: - case 363: - case 364: - case 365: - case 366: - case 367: - case 373: - case 374: - case 375: - case 377: - case 379: - case 381: - case 382: - case 383: - case 384: - case 385: - case 386: - case 387: - case 388: - case 389: - case 390: - case 393: - case 394: - case 396: - case 397: - case 398: - case 399: - case 401: - case 402: - case 403: - case 404: - case 405: - case 407: - case 408: - case 409: - case 410: - case 411: - case 412: - case 413: - case 414: - case 415: - case 416: - case 417: - case 418: - case 419: - case 421: - case 422: - case 423: - case 425: - case 426: - case 427: - case 429: - case 430: - case 433: - case 434: - case 435: - case 436: - case 437: - case 438: - case 439: - case 440: - case 441: - case 442: - case 443: - case 444: - case 445: - case 446: - case 447: - case 448: - case 450: - case 451: - case 452: - case 453: - case 454: - case 461: - case 463: - case 464: - case 472: - case 473: - case 476: - case 491: - case 492: - case 493: - case 494: - case 495: - case 496: - case 571: - case 577: - case 580: - case 581: - case 584: - case 605: - case 606: - case 607: - case 608: - case 611: - case 648: - case 649: - case 670: - case 869: - case 1056: - case 1057: - case 1058: - case 1059: - case 1121: + case EFST_PROVOKE: + case EFST_ENDURE: + case EFST_CONCENTRATION: + case EFST_HIDING: + case EFST_CLOAKING: + case EFST_CRUCIS: + case EFST_RIDING: + case EFST_FALCON: + case EFST_ILLUSION: + case EFST_PROTECTWEAPON: + case EFST_PROTECTSHIELD: + case EFST_PROTECTARMOR: + case EFST_PROTECTHELM: + case EFST_PROVIDENCE: + case EFST_EXPLOSIONSPIRITS: + case EFST_STEELBODY: + case EFST_STOP: + case EFST_PROPERTYUNDEAD: + case EFST_POWERUP: + case EFST_AURABLADE: + case EFST_PARRYING: + case EFST_LKCONCENTRATION: + case EFST_BERSERK: + case EFST_ASSUMPTIO: + case EFST_GROUNDMAGIC: + case EFST_MAGICPOWER: + case EFST_EDP: + case EFST_TRUESIGHT: + case EFST_WINDWALK: + case EFST_MELTDOWN: + case EFST_CARTBOOST: + case EFST_SWORDREJECT: + case EFST_MARIONETTE_MASTER: + case EFST_MARIONETTE: + case EFST_MOON: + case EFST_BLOODING: + case EFST_JOINTBEAT: + case EFST_PROTECTEXP: + case EFST_AUTOBERSERK: + case EFST_RUN: + case EFST_TING: + case EFST_STORMKICK_ON: + case EFST_DOWNKICK_ON: + case EFST_TURNKICK_ON: + case EFST_COUNTER_ON: + case EFST_DODGE_ON: + case EFST_STRUP: + case EFST_SOULLINK: + case EFST_DEVIL1: + case EFST_KAITE: + case EFST_KAIZEL: + case EFST_KAAHI: + case EFST_KAUPE: + case EFST_SMA_READY: + case EFST_SKE: + case EFST_SG_SUN_WARM: + case EFST_SG_MOON_WARM: + case EFST_SG_STAR_WARM: + case EFST_SUN_COMFORT: + case EFST_MOON_COMFORT: + case EFST_STAR_COMFORT: + case EFST_PRESERVE: + case EFST_CLAIRVOYANCE: + case EFST_DOUBLECASTING: + case EFST_TAROTCARD: + case EFST_CR_SHRINK: + case EFST_WZ_SIGHTBLASTER: + case EFST_DC_WINKCHARM: + case EFST_RG_CCONFINE_M: + case EFST_RG_CCONFINE_S: + case EFST_GS_MADNESSCANCEL: + case EFST_GS_GATLINGFEVER: + case EFST_EARTHSCROLL: + case EFST_NJ_UTSUSEMI: + case EFST_NJ_BUNSINJYUTSU: + case EFST_NJ_NEN: + case EFST_GS_ADJUSTMENT: + case EFST_GS_ACCURACY: + case EFST_NJ_SUITON: + case EFST_PET: + case EFST_MENTAL: + case EFST_EXPMEMORY: + case EFST_PERFORMANCE: + case EFST_GAIN: + case EFST_GRIFFON: + case EFST_DRIFT: + case EFST_WALLSHIFT: + case EFST_REINCARNATION: + case EFST_PATTACK: + case EFST_PSPEED: + case EFST_PDEFENSE: + case EFST_PCRITICAL: + case EFST_RANKING: + case EFST_PTRIPLE: + case EFST_DENERGY: + case EFST_WAVE1: + case EFST_WAVE2: + case EFST_WAVE3: + case EFST_WAVE4: + case EFST_DAURA: + case EFST_DFREEZER: + case EFST_DPUNISH: + case EFST_DBARRIER: + case EFST_DWARNING: + case EFST_DGAUGE: + case EFST_DACCEL: + case EFST_DBLOCK: + case EFST_CASH_PLUSEXP: + case EFST_DA_ENERGY: + case EFST_DA_FIRSTSLOT: + case EFST_DA_HEADDEF: + case EFST_DA_SPACE: + case EFST_DA_TRANSFORM: + case EFST_DA_ITEMREBUILD: + case EFST_DA_DARKPOWER: + case EFST_DA_EARPLUG: + case EFST_DA_CONTRACT: + case EFST_DA_BLACK: + case EFST_DA_MAGICCART: + case EFST_CRYSTAL: + case EFST_DA_REBUILD: + case EFST_DA_EDARKNESS: + case EFST_DA_EGUARDIAN: + case EFST_DA_TIMEOUT: + case EFST_SLOWCAST: + case EFST_CRITICALWOUND: + case EFST_MOVHASTE_HORSE: + case EFST_PROTECT_DEF: + case EFST_PROTECT_MDEF: + case EFST_HEALPLUS: + case EFST_S_LIFEPOTION: + case EFST_L_LIFEPOTION: + case EFST_CRITICALPERCENT: + case EFST_PLUSAVOIDVALUE: + case EFST_TARGET_ASPD: + case EFST_ATKER_BLOOD: + case EFST_TARGET_BLOOD: + case EFST_ARMOR_PROPERTY: + case EFST_PARTYFLEE: + case EFST_ANGEL_PROTECT: + case EFST_ENCHANTBLADE: + case EFST_REFRESH: + case EFST_GIANTGROWTH: + case EFST_STONEHARDSKIN: + case EFST_VITALITYACTIVATION: + case EFST_FIGHTINGSPIRIT: + case EFST_ABUNDANCE: + case EFST_VENOMIMPRESS: + case EFST_ORATIO: + case EFST_CLOAKINGEXCEED: + case EFST_HALLUCINATIONWALK: + case EFST_RENOVATIO: + case EFST_WEAPONBLOCKING: + case EFST_ROLLINGCUTTER: + case EFST_POISONINGWEAPON: + case EFST_TOXIN: + case EFST_PARALYSE: + case EFST_VENOMBLEED: + case EFST_MAGICMUSHROOM: + case EFST_DEATHHURT: + case EFST_PYREXIA: + case EFST_OBLIVIONCURSE: + case EFST_LEECHESEND: + case EFST_DUPLELIGHT: + case EFST_FROSTMISTY: + case EFST_FEARBREEZE: + case EFST_ELECTRICSHOCKER: + case EFST_MARSHOFABYSS: + case EFST_RECOGNIZEDSPELL: + case EFST_WUGRIDER: + case EFST_CAMOUFLAGE: + case EFST_ACCELERATION: + case EFST_HOVERING: + case EFST_SUMMON1: + case EFST_SUMMON2: + case EFST_SUMMON3: + case EFST_SUMMON4: + case EFST_SUMMON5: + case EFST_OVERHEAT: + case EFST_SHAPESHIFT: + case EFST_INFRAREDSCAN: + case EFST_NEUTRALBARRIER: + case EFST_STEALTHFIELD: + case EFST_MANU_ATK: + case EFST_MANU_DEF: + case EFST_SPL_ATK: + case EFST_SPL_DEF: + case EFST_REPRODUCE: + case EFST_MANU_MATK: + case EFST_SPL_MATK: + case EFST_STR_SCROLL: + case EFST_INT_SCROLL: + case EFST_LG_REFLECTDAMAGE: + case EFST_AUTOSHADOWSPELL: + case EFST_SHADOWFORM: + case EFST_SHIELDSPELL_DEF: + case EFST_SHIELDSPELL_MDEF: + case EFST_SHIELDSPELL_REF: + case EFST_BODYPAINT: + case EFST_ADORAMUS: + case EFST_PRESTIGE: + case EFST_INVISIBILITY: + case EFST_DEADLYINFECT: + case EFST_BANDING: + case EFST_INSPIRATION: + case EFST_ENERVATION: + case EFST_GROOMY: + case EFST_RAISINGDRAGON: + case EFST_IGNORANCE: + case EFST_LAZINESS: + case EFST_LIGHTNINGWALK: + case EFST_ACARAJE: + case EFST_UNLUCKY: + case EFST_CURSEDCIRCLE_ATKER: + case EFST_CURSEDCIRCLE_TARGET: + case EFST_WEAKNESS: + case EFST_CRESCENTELBOW: + case EFST_STRIPACCESSARY: + case EFST_MANHOLE: + case EFST_POPECOOKIE: + case EFST_GENTLETOUCH_ENERGYGAIN: + case EFST_GENTLETOUCH_CHANGE: + case EFST_GENTLETOUCH_REVITALIZE: + case EFST_SWING: + case EFST_SYMPHONY_LOVE: + case EFST_NETHERWORLD: + case EFST_SIREN: + case EFST_DEEP_SLEEP: + case EFST_SIRCLEOFNATURE: + case EFST_COLD: + case EFST_GLOOMYDAY: + case EFST_SONG_OF_MANA: + case EFST_CLOUD_KILL: + case EFST_DANCE_WITH_WUG: + case EFST_RUSH_WINDMILL: + case EFST_ECHOSONG: + case EFST_HARMONIZE: + case EFST_STRIKING: + case EFST_WARMER: + case EFST_MOONLIT_SERENADE: + case EFST_SATURDAY_NIGHT_FEVER: + case EFST_ANALYZE: + case EFST_LERADS_DEW: + case EFST_MELODYOFSINK: + case EFST_BEYOND_OF_WARCRY: + case EFST_UNLIMITED_HUMMING_VOICE: + case EFST_GN_CARTBOOST: + case EFST_THORNS_TRAP: + case EFST_BLOOD_SUCKER: + case EFST_AB_SECRAMENT: + case EFST_ASSUMPTIO2: + case EFST_STOMACHACHE: + case EFST_SAVAGE_STEAK: + case EFST_COCKTAIL_WARG_BLOOD: + case EFST_MINOR_BBQ: + case EFST_SIROMA_ICE_TEA: + case EFST_DROCERA_HERB_STEAMED: + case EFST_PUTTI_TAILS_NOODLES: + case EFST_EQUIPED_FLOOR: + case EFST_PAIN_KILLER: + case EFST_LIGHT_OF_REGENE: + case EFST_OVERED_BOOST: + case EFST_STYLE_CHANGE: + case EFST_MAGMA_FLOW: + case EFST_GRANITIC_ARMOR: + case EFST_PYROCLASTIC: + case EFST_VOLCANIC_ASH: + case EFST_MAGIC_CANDY: + case EFST_EQUIPPED_DIVINE_ARMOR: + case EFST_EQUIPPED_HOLY_ARMOR: + case EFST_M_LIFEPOTION: + case EFST_NPC_HALLUCINATIONWALK: + case EFST_SOULSHADOW: + case EFST_SOULFAIRY: + case EFST_SOULFALCON: + case EFST_SOULGOLEM: + case EFST_ASSUMPTIO_BUFF: std::sprintf(message, ""); break; - case 260: + case EFST_DA_ILLUSION: if (packet->aid == g_session.m_aid) { g_session.unknown_5450 = 1; } std::sprintf(message, ""); break; - case 241: - case 271: + case EFST_FOOD_STR: + case EFST_FOOD_STR_CASH: std::sprintf(message, LookupMessage(1231)); break; - case 242: - case 272: + case EFST_FOOD_AGI: + case EFST_FOOD_AGI_CASH: std::sprintf(message, LookupMessage(1233)); break; - case 243: - case 273: + case EFST_FOOD_VIT: + case EFST_FOOD_VIT_CASH: std::sprintf(message, LookupMessage(1235)); break; - case 244: - case 274: + case EFST_FOOD_DEX: + case EFST_FOOD_DEX_CASH: std::sprintf(message, LookupMessage(1239)); break; - case 245: - case 275: + case EFST_FOOD_INT: + case EFST_FOOD_INT_CASH: std::sprintf(message, LookupMessage(1237)); break; - case 246: - case 276: + case EFST_FOOD_LUK: + case EFST_FOOD_LUK_CASH: std::sprintf(message, LookupMessage(1241)); break; - case 247: + case EFST_FOOD_BASICAVOIDANCE: std::sprintf(message, LookupMessage(1243)); break; - case 248: + case EFST_FOOD_BASICHIT: std::sprintf(message, LookupMessage(1245)); break; - case 249: + case EFST_FOOD_CRITICALSUCCESSVALUE: std::sprintf(message, LookupMessage(1247)); break; - case 251: + case EFST_CASH_DEATHPENALTY: std::sprintf(message, LookupMessage(1250)); break; - case 252: + case EFST_CASH_RECEIVEITEM: std::sprintf(message, LookupMessage(1251)); break; - case 253: + case EFST_CASH_BOSS_ALARM: if (packet->aid == g_session.m_aid) { this->unknown_05CC[0] = 1; } std::sprintf(message, LookupMessage(1252)); break; - case 312: + case EFST_CASH_PLUSONLYJOBEXP: std::sprintf(message, LookupMessage(1383)); break; - case 933: + case EFST_SUHIDE: if (packet->aid == g_session.m_aid) { this->scene->player->SetState(48, 1); this->scene->player->render.isMotionFreezed = true; } break; - case 893: + case EFST_SU_STOOP: if (packet->aid == g_session.m_aid) { this->scene->GetGameActorByAID(packet->aid); this->scene->player->SetState(47, 1); } break; - case 1013: + case EFST_ALL_STAT_DOWN: color = 0xFF; std::sprintf(message, LookupMessage(3247)); break; @@ -6250,21 +6252,21 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { color = 0xFF; switch (packet->type) { - case 2: - case 37: - case 38: - case 39: - case 68: - case 161: + case EFST_TWOHANDQUICKEN: + case EFST_ATTHASTE_POTION1: + case EFST_ATTHASTE_POTION2: + case EFST_ATTHASTE_POTION3: + case EFST_SPEARQUICKEN: + case EFST_ONEHANDQUICKEN: std::sprintf(message, LookupMessage(464)); break; - case 15: + case EFST_IMPOSITIO: std::sprintf(message, LookupMessage(3464)); break; - case 16: + case EFST_SUFFRAGIUM: std::sprintf(message, LookupMessage(468)); break; - case 64: + case EFST_WEAPONPROPERTY: if (packet->aid == g_session.m_aid) { for (std::vector::iterator it = g_activeSkillEffects.begin(); it != g_activeSkillEffects.end();) { if (it->id - 897U <= 9) { @@ -6277,179 +6279,179 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } std::sprintf(message, LookupMessage(471)); break; - case 6: - case 17: + case EFST_ENCHANTPOISON: + case EFST_ASPERSIO: std::sprintf(message, LookupMessage(471)); break; - case 18: + case EFST_BENEDICTIO: std::sprintf(message, LookupMessage(473)); break; - case 19: + case EFST_KYRIE: std::sprintf(message, LookupMessage(475)); break; - case 24: + case EFST_WEAPONPERFECT: std::sprintf(message, LookupMessage(477)); break; - case 25: - case 188: + case EFST_OVERTHRUST: + case EFST_OVERTHRUSTMAX: std::sprintf(message, LookupMessage(466)); break; - case 26: + case EFST_MAXIMIZE: std::sprintf(message, LookupMessage(481)); break; - case 13: + case EFST_DEC_AGI: std::sprintf(message, LookupMessage(209)); break; - case 7: + case EFST_POISONREACT: std::sprintf(message, LookupMessage(621)); break; - case 8: + case EFST_QUAGMIRE: std::sprintf(message, LookupMessage(623)); break; - case 9: + case EFST_ANGELUS: std::sprintf(message, LookupMessage(625)); break; - case 10: + case EFST_BLESSING: std::sprintf(message, LookupMessage(627)); break; - case 14: + case EFST_SLOWPOISON: std::sprintf(message, LookupMessage(631)); break; - case 20: + case EFST_MAGNIFICAT: std::sprintf(message, LookupMessage(633)); break; - case 21: + case EFST_GLORIA: std::sprintf(message, LookupMessage(635)); break; - case 22: + case EFST_LEXAETERNA: std::sprintf(message, LookupMessage(637)); break; - case 23: - case 147: + case EFST_ADRENALINE: + case EFST_ADRENALINE2: std::sprintf(message, LookupMessage(639)); break; - case 29: + case EFST_TRICKDEAD: std::sprintf(message, ""); if (packet->aid == g_session.m_aid) { this->scene->player->SetState(0, 1); this->scene->player->render.isMotionFreezed = false; } break; - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 621: - case 645: - case 646: - case 651: - case 655: - case 656: - case 657: - case 659: - case 660: - case 665: - case 674: - case 716: - case 717: - case 718: - case 719: - case 720: - case 721: - case 728: - case 734: - case 735: - case 736: - case 737: - case 760: - case 779: - case 822: - case 823: - case 825: - case 826: - case 849: - case 856: - case 857: - case 859: - case 863: - case 864: - case 872: - case 895: - case 896: - case 917: - case 919: - case 937: - case 982: - case 1016: - case 1017: - case 1018: - case 1019: - case 1020: - case 1021: - case 1022: - case 1023: - case 1024: - case 1025: - case 1038: - case 1039: - case 1040: - case 1041: - case 1043: - case 1050: - case 1055: - case 1139: - case 1141: - case 1142: - case 1148: - case 1150: - case 1184: - case 1190: - case 1196: - case 1197: - case 1205: - case 1206: - case 1207: - case 1208: - case 1209: - case 1210: - case 1211: - case 1212: - case 1213: - case 1214: - case 1215: - case 1216: - case 1230: - case 1231: - case 1232: - case 1233: - case 1234: - case 1250: - case 1258: - case 1318: - case 1319: - case 1337: - case 1338: - case 1339: - case 1688: + case EFST_WHISTLE: + case EFST_ASSASSINCROSS: + case EFST_POEMBRAGI: + case EFST_APPLEIDUN: + case EFST_HUMMING: + case EFST_DONTFORGETME: + case EFST_FORTUNEKISS: + case EFST_SERVICEFORYOU: + case EFST_RICHMANKIM: + case EFST_ETERNALCHAOS: + case EFST_DRUMBATTLEFIELD: + case EFST_RINGNIBELUNGEN: + case EFST_ROKISWEIL: + case EFST_INTOABYSS: + case EFST_SIEGFRIED: + case EFST_MONSTER_TRANSFORM: + case EFST_KO_JYUMONJIKIRI: + case EFST_MEIKYOUSISUI: + case EFST_KYOUGAKU: + case EFST_KYOMU: + case EFST_KAGEMUSYA: + case EFST_ZANGETSU: + case EFST_GENSOU: + case EFST_AKAITSUKI: + case EFST_ACTIVE_MONSTER_TRANSFORM: + case EFST_HAT_EFFECT: + case EFST_OFFERTORIUM: + case EFST_TELEKINESIS_INTENSE: + case EFST_MOONSTAR: + case EFST_STRANGELIGHTS: + case EFST_FULL_THROTTLE: + case EFST_REBOUND: + case EFST_SUPER_STAR: + case EFST_ILLUSIONDOPING: + case EFST_WIDEWEB: + case EFST_CHILL: + case EFST_BURNT: + case EFST_ANTI_M_BLAST: + case EFST_DECORATION_OF_MUSIC: + case EFST_FLOWERSMOKE: + case EFST_FSTONE: + case EFST_QSCARABA: + case EFST_LJOSALFAR: + case EFST_HAPPINESS_STAR: + case EFST_DRESS_UP: + case EFST_MAPLE_FALLS: + case EFST_MARKING_USE_CHANGEMONSTER: + case EFST_MERMAID_LONGING: + case EFST_MAGICAL_FEATHER: + case EFST_TIME_ACCESSORY: + case EFST_HEAD_EQUIPMENT_EFFECT: + case EFST_SV_ROOTTWIST: + case EFST_BITESCAR: + case EFST_TUNAPARTY: + case EFST_SPRITEMABLE: + case EFST_SOULATTACK: + case EFST_IMMUNE_PROPERTY_NOTHING: + case EFST_IMMUNE_PROPERTY_WATER: + case EFST_IMMUNE_PROPERTY_GROUND: + case EFST_IMMUNE_PROPERTY_FIRE: + case EFST_IMMUNE_PROPERTY_WIND: + case EFST_IMMUNE_PROPERTY_POISON: + case EFST_IMMUNE_PROPERTY_SAINT: + case EFST_IMMUNE_PROPERTY_DARKNESS: + case EFST_IMMUNE_PROPERTY_TELEKINESIS: + case EFST_IMMUNE_PROPERTY_UNDEAD: + case EFST_LUNARSTANCE: + case EFST_UNIVERSESTANCE: + case EFST_SUNSTANCE: + case EFST_FLASHKICK: + case EFST_STARSTANCE: + case EFST_GRAVITYCONTROL: + case EFST_SOULUNITY: + case EFST_EARTHSHAKER: + case EFST_MISTY_FROST: + case EFST_MAGIC_POISON: + case EFST_PRISON: + case EFST_DEADLY_DEFEASANCE: + case EFST_CLIMAX_CRYIMP: + case EFST_HOLY_OIL: + case EFST_E_SLASH_COUNT: + case EFST_MEDIALE: + case EFST_HANDICAPSTATE_DEEPBLIND: + case EFST_HANDICAPSTATE_DEEPSILENCE: + case EFST_HANDICAPSTATE_LASSITUDE: + case EFST_HANDICAPSTATE_FROSTBITE: + case EFST_HANDICAPSTATE_SWOONING: + case EFST_HANDICAPSTATE_LIGHTNINGSTRIKE: + case EFST_HANDICAPSTATE_CRYSTALLIZATION: + case EFST_HANDICAPSTATE_CONFLAGRATION: + case EFST_HANDICAPSTATE_MISFORTUNE: + case EFST_HANDICAPSTATE_DEADLYPOISON: + case EFST_HANDICAPSTATE_DEPRESSION: + case EFST_HANDICAPSTATE_HOLYFLAME: + case EFST_FIRST_BRAND: + case EFST_SECOND_BRAND: + case EFST_SECOND_JUDGE: + case EFST_THIRD_EXOR_FLAME: + case EFST_FIRST_FAITH_POWER: + case EFST_WINDSIGN: + case EFST_SOUNDBLEND: + case EFST_CLOUD_POISON: + case EFST_SPORE_EXPLOSION_DEBUFF: + case EFST_CURSE_R_CUBE: + case EFST_CURSE_B_CUBE: + case EFST_KILLING_AURA: + case EFST_BLOCK: break; - case 30: + case EFST_SHOUT: std::sprintf(message, LookupMessage(647)); break; - case 31: + case EFST_ENERGYCOAT: std::sprintf(message, LookupMessage(649)); break; - case 40: + case EFST_ATTHASTE_INFINITY: if (packet->aid == g_session.m_aid) { for (std::vector::iterator it = g_activeSkillEffects.begin(); it != g_activeSkillEffects.end();) { if (it->id == packet->type) { @@ -6462,11 +6464,11 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } std::sprintf(message, LookupMessage(210)); break; - case 41: + case EFST_MOVHASTE_POTION: std::sprintf(message, LookupMessage(210)); break; - case 12: - case 42: + case EFST_INC_AGI: + case EFST_MOVHASTE_INFINITY: if (packet->aid == g_session.m_aid) { for (std::vector::iterator it = g_activeSkillEffects.begin(); it != g_activeSkillEffects.end();) { if (it->id == packet->type) { @@ -6479,7 +6481,7 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } std::sprintf(message, LookupMessage(210)); break; - case 339: + case EFST_ROLLINGCUTTER: if (packet->aid == g_session.m_aid) { CPlayer* player = this->scene->player; for (int i = 0; i < 10; ++i) { @@ -6489,312 +6491,312 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } std::sprintf(message, ""); break; - case 0: - case 1: - case 3: - case 4: - case 5: - case 11: - case 27: - case 28: - case 32: - case 33: - case 34: - case 54: - case 55: - case 56: - case 57: - case 86: - case 87: - case 95: - case 97: - case 98: - case 103: - case 104: - case 105: - case 107: - case 110: - case 112: - case 113: - case 114: - case 115: - case 116: - case 117: - case 118: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 130: - case 132: - case 133: - case 134: - case 135: - case 137: - case 139: - case 141: - case 143: - case 145: - case 149: - case 150: - case 151: - case 152: - case 153: - case 156: - case 157: - case 158: - case 159: - case 160: - case 165: - case 166: - case 167: - case 169: - case 170: - case 171: - case 181: - case 182: - case 184: - case 186: - case 191: - case 197: - case 198: - case 199: - case 200: - case 201: - case 203: - case 204: - case 205: - case 206: - case 207: - case 208: - case 209: - case 210: - case 211: - 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 238: - case 239: - case 240: - case 250: - case 251: - case 252: - case 254: - case 255: - case 256: - case 257: - case 258: - case 259: - case 261: - case 262: - case 263: - case 264: - case 265: - case 266: - case 267: - case 268: - case 269: - case 270: - case 282: - case 286: - case 289: - case 290: - case 291: - case 292: - case 293: - case 294: - case 295: - case 296: - case 297: - case 298: - case 299: - case 300: - case 301: - case 302: - case 312: - case 313: - case 314: - case 316: - case 318: - case 319: - case 320: - case 321: - case 322: - case 323: - case 328: - case 330: - case 333: - case 334: - case 336: - case 337: - case 341: - case 342: - case 343: - case 344: - case 345: - case 346: - case 347: - case 348: - case 349: - case 350: - case 351: - case 352: - case 353: - case 354: - case 355: - case 357: - case 360: - case 361: - case 362: - case 363: - case 364: - case 365: - case 366: - case 367: - case 373: - case 374: - case 375: - case 377: - case 379: - case 381: - case 382: - case 383: - case 384: - case 385: - case 386: - case 387: - case 388: - case 389: - case 390: - case 393: - case 394: - case 396: - case 397: - case 398: - case 399: - case 401: - case 402: - case 403: - case 404: - case 405: - case 407: - case 408: - case 409: - case 410: - case 411: - case 412: - case 413: - case 414: - case 415: - case 416: - case 417: - case 418: - case 419: - case 421: - case 422: - case 423: - case 425: - case 426: - case 427: - case 429: - case 430: - case 436: - case 437: - case 438: - case 439: - case 440: - case 441: - case 442: - case 443: - case 444: - case 445: - case 446: - case 447: - case 448: - case 450: - case 451: - case 452: - case 453: - case 454: - case 461: - case 463: - case 464: - case 472: - case 473: - case 476: - case 491: - case 492: - case 493: - case 494: - case 495: - case 496: - case 571: - case 577: - case 580: - case 581: - case 584: - case 605: - case 606: - case 607: - case 608: - case 611: - case 613: - case 618: - case 636: - case 648: - case 649: - case 670: - case 869: - case 1056: - case 1057: - case 1058: - case 1059: - case 1121: + case EFST_PROVOKE: + case EFST_ENDURE: + case EFST_CONCENTRATION: + case EFST_HIDING: + case EFST_CLOAKING: + case EFST_CRUCIS: + case EFST_RIDING: + case EFST_FALCON: + case EFST_BROKENARMOR: + case EFST_BROKENWEAPON: + case EFST_ILLUSION: + case EFST_PROTECTWEAPON: + case EFST_PROTECTSHIELD: + case EFST_PROTECTARMOR: + case EFST_PROTECTHELM: + case EFST_EXPLOSIONSPIRITS: + case EFST_STEELBODY: + case EFST_STOP: + case EFST_PROPERTYUNDEAD: + case EFST_POWERUP: + case EFST_AURABLADE: + case EFST_PARRYING: + case EFST_LKCONCENTRATION: + case EFST_BERSERK: + case EFST_ASSUMPTIO: + case EFST_GROUNDMAGIC: + case EFST_MAGICPOWER: + case EFST_EDP: + case EFST_TRUESIGHT: + case EFST_WINDWALK: + case EFST_MELTDOWN: + case EFST_CARTBOOST: + case EFST_SWORDREJECT: + case EFST_MARIONETTE_MASTER: + case EFST_MARIONETTE: + case EFST_MOON: + case EFST_BLOODING: + case EFST_JOINTBEAT: + case EFST_PROTECTEXP: + case EFST_AUTOBERSERK: + case EFST_RUN: + case EFST_TING: + case EFST_STORMKICK_ON: + case EFST_DOWNKICK_ON: + case EFST_TURNKICK_ON: + case EFST_COUNTER_ON: + case EFST_DODGE_ON: + case EFST_STRUP: + case EFST_SOULLINK: + case EFST_PLUSATTACKPOWER: + case EFST_PLUSMAGICPOWER: + case EFST_DEVIL1: + case EFST_KAITE: + case EFST_KAIZEL: + case EFST_KAAHI: + case EFST_KAUPE: + case EFST_SMA_READY: + case EFST_SKE: + case EFST_SG_SUN_WARM: + case EFST_SG_MOON_WARM: + case EFST_SG_STAR_WARM: + case EFST_SUN_COMFORT: + case EFST_MOON_COMFORT: + case EFST_STAR_COMFORT: + case EFST_PRESERVE: + case EFST_CHASEWALK2: + case EFST_CLAIRVOYANCE: + case EFST_DOUBLECASTING: + case EFST_TAROTCARD: + case EFST_CR_SHRINK: + case EFST_WZ_SIGHTBLASTER: + case EFST_DC_WINKCHARM: + case EFST_RG_CCONFINE_M: + case EFST_RG_CCONFINE_S: + case EFST_GS_MADNESSCANCEL: + case EFST_GS_GATLINGFEVER: + case EFST_EARTHSCROLL: + case EFST_NJ_UTSUSEMI: + case EFST_NJ_BUNSINJYUTSU: + case EFST_NJ_NEN: + case EFST_GS_ADJUSTMENT: + case EFST_GS_ACCURACY: + case EFST_NJ_SUITON: + case EFST_PET: + case EFST_MENTAL: + case EFST_EXPMEMORY: + case EFST_PERFORMANCE: + case EFST_GAIN: + case EFST_GRIFFON: + case EFST_DRIFT: + case EFST_WALLSHIFT: + case EFST_REINCARNATION: + case EFST_PATTACK: + case EFST_PSPEED: + case EFST_PDEFENSE: + case EFST_PCRITICAL: + case EFST_RANKING: + case EFST_PTRIPLE: + case EFST_DENERGY: + case EFST_WAVE1: + case EFST_WAVE2: + case EFST_WAVE3: + case EFST_WAVE4: + case EFST_DAURA: + case EFST_DFREEZER: + case EFST_DPUNISH: + case EFST_DBARRIER: + case EFST_DWARNING: + case EFST_DGAUGE: + case EFST_DACCEL: + case EFST_DBLOCK: + case EFST_CASH_PLUSEXP: + case EFST_CASH_DEATHPENALTY: + case EFST_CASH_RECEIVEITEM: + case EFST_DA_ENERGY: + case EFST_DA_FIRSTSLOT: + case EFST_DA_HEADDEF: + case EFST_DA_SPACE: + case EFST_DA_TRANSFORM: + case EFST_DA_ITEMREBUILD: + case EFST_DA_DARKPOWER: + case EFST_DA_EARPLUG: + case EFST_DA_CONTRACT: + case EFST_DA_BLACK: + case EFST_DA_MAGICCART: + case EFST_CRYSTAL: + case EFST_DA_REBUILD: + case EFST_DA_EDARKNESS: + case EFST_DA_EGUARDIAN: + case EFST_DA_TIMEOUT: + case EFST_SLOWCAST: + case EFST_CRITICALWOUND: + case EFST_MOVHASTE_HORSE: + case EFST_PROTECT_DEF: + case EFST_PROTECT_MDEF: + case EFST_HEALPLUS: + case EFST_S_LIFEPOTION: + case EFST_L_LIFEPOTION: + case EFST_CRITICALPERCENT: + case EFST_PLUSAVOIDVALUE: + case EFST_ATKER_ASPD: + case EFST_TARGET_ASPD: + case EFST_ATKER_MOVESPEED: + case EFST_ATKER_BLOOD: + case EFST_TARGET_BLOOD: + case EFST_ARMOR_PROPERTY: + case EFST_CASH_PLUSONLYJOBEXP: + case EFST_PARTYFLEE: + case EFST_ANGEL_PROTECT: + case EFST_ENCHANTBLADE: + case EFST_REFRESH: + case EFST_GIANTGROWTH: + case EFST_STONEHARDSKIN: + case EFST_VITALITYACTIVATION: + case EFST_FIGHTINGSPIRIT: + case EFST_ABUNDANCE: + case EFST_VENOMIMPRESS: + case EFST_ORATIO: + case EFST_CLOAKINGEXCEED: + case EFST_HALLUCINATIONWALK: + case EFST_RENOVATIO: + case EFST_WEAPONBLOCKING: + case EFST_POISONINGWEAPON: + case EFST_TOXIN: + case EFST_PARALYSE: + case EFST_VENOMBLEED: + case EFST_MAGICMUSHROOM: + case EFST_DEATHHURT: + case EFST_PYREXIA: + case EFST_OBLIVIONCURSE: + case EFST_LEECHESEND: + case EFST_DUPLELIGHT: + case EFST_FROSTMISTY: + case EFST_FEARBREEZE: + case EFST_ELECTRICSHOCKER: + case EFST_MARSHOFABYSS: + case EFST_RECOGNIZEDSPELL: + case EFST_WUGRIDER: + case EFST_CAMOUFLAGE: + case EFST_ACCELERATION: + case EFST_HOVERING: + case EFST_SUMMON1: + case EFST_SUMMON2: + case EFST_SUMMON3: + case EFST_SUMMON4: + case EFST_SUMMON5: + case EFST_OVERHEAT: + case EFST_SHAPESHIFT: + case EFST_INFRAREDSCAN: + case EFST_NEUTRALBARRIER: + case EFST_STEALTHFIELD: + case EFST_MANU_ATK: + case EFST_MANU_DEF: + case EFST_SPL_ATK: + case EFST_SPL_DEF: + case EFST_REPRODUCE: + case EFST_MANU_MATK: + case EFST_SPL_MATK: + case EFST_STR_SCROLL: + case EFST_INT_SCROLL: + case EFST_LG_REFLECTDAMAGE: + case EFST_AUTOSHADOWSPELL: + case EFST_SHADOWFORM: + case EFST_SHIELDSPELL_DEF: + case EFST_SHIELDSPELL_MDEF: + case EFST_SHIELDSPELL_REF: + case EFST_BODYPAINT: + case EFST_ADORAMUS: + case EFST_PRESTIGE: + case EFST_INVISIBILITY: + case EFST_DEADLYINFECT: + case EFST_BANDING: + case EFST_INSPIRATION: + case EFST_ENERVATION: + case EFST_GROOMY: + case EFST_RAISINGDRAGON: + case EFST_IGNORANCE: + case EFST_LAZINESS: + case EFST_LIGHTNINGWALK: + case EFST_ACARAJE: + case EFST_UNLUCKY: + case EFST_CURSEDCIRCLE_ATKER: + case EFST_CURSEDCIRCLE_TARGET: + case EFST_WEAKNESS: + case EFST_CRESCENTELBOW: + case EFST_STRIPACCESSARY: + case EFST_MANHOLE: + case EFST_POPECOOKIE: + case EFST_GENTLETOUCH_ENERGYGAIN: + case EFST_GENTLETOUCH_CHANGE: + case EFST_GENTLETOUCH_REVITALIZE: + case EFST_SWING: + case EFST_SYMPHONY_LOVE: + case EFST_SIRCLEOFNATURE: + case EFST_COLD: + case EFST_GLOOMYDAY: + case EFST_SONG_OF_MANA: + case EFST_CLOUD_KILL: + case EFST_DANCE_WITH_WUG: + case EFST_RUSH_WINDMILL: + case EFST_ECHOSONG: + case EFST_HARMONIZE: + case EFST_STRIKING: + case EFST_WARMER: + case EFST_MOONLIT_SERENADE: + case EFST_SATURDAY_NIGHT_FEVER: + case EFST_ANALYZE: + case EFST_LERADS_DEW: + case EFST_MELODYOFSINK: + case EFST_BEYOND_OF_WARCRY: + case EFST_UNLIMITED_HUMMING_VOICE: + case EFST_GN_CARTBOOST: + case EFST_THORNS_TRAP: + case EFST_BLOOD_SUCKER: + case EFST_AB_SECRAMENT: + case EFST_ASSUMPTIO2: + case EFST_STOMACHACHE: + case EFST_SAVAGE_STEAK: + case EFST_COCKTAIL_WARG_BLOOD: + case EFST_MINOR_BBQ: + case EFST_SIROMA_ICE_TEA: + case EFST_DROCERA_HERB_STEAMED: + case EFST_PUTTI_TAILS_NOODLES: + case EFST_EQUIPED_FLOOR: + case EFST_PAIN_KILLER: + case EFST_LIGHT_OF_REGENE: + case EFST_OVERED_BOOST: + case EFST_STYLE_CHANGE: + case EFST_MAGMA_FLOW: + case EFST_GRANITIC_ARMOR: + case EFST_PYROCLASTIC: + case EFST_VOLCANIC_ASH: + case EFST_MAGIC_CANDY: + case EFST_ALL_RIDING: + case EFST_OVERLAPEXPUP: + case EFST_REWARD_PLUSONLYJOBEXP: + case EFST_EQUIPPED_DIVINE_ARMOR: + case EFST_EQUIPPED_HOLY_ARMOR: + case EFST_M_LIFEPOTION: + case EFST_NPC_HALLUCINATIONWALK: + case EFST_SOULSHADOW: + case EFST_SOULFAIRY: + case EFST_SOULFALCON: + case EFST_SOULGOLEM: + case EFST_ASSUMPTIO_BUFF: std::sprintf(message, ""); break; - case 434: + case EFST_SIREN: if (packet->aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 109, 0, 879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } std::sprintf(message, ""); break; - case 435: + case EFST_DEEP_SLEEP: if (packet->aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } std::sprintf(message, ""); break; - case 433: + case EFST_NETHERWORLD: if (packet->aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 109, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } std::sprintf(message, ""); break; - case 358: + case EFST_WUGDASH: if (packet->aid == g_session.m_aid) { CPlayer* player = this->scene->player; while (player->HasId(752)) { @@ -6803,61 +6805,61 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } std::sprintf(message, ""); break; - case 260: + case EFST_DA_ILLUSION: if (packet->aid == g_session.m_aid) { g_session.unknown_5450 = 0; } std::sprintf(message, ""); break; - case 241: - case 271: + case EFST_FOOD_STR: + case EFST_FOOD_STR_CASH: std::sprintf(message, LookupMessage(1232)); break; - case 242: - case 272: + case EFST_FOOD_AGI: + case EFST_FOOD_AGI_CASH: std::sprintf(message, LookupMessage(1234)); break; - case 243: - case 273: + case EFST_FOOD_VIT: + case EFST_FOOD_VIT_CASH: std::sprintf(message, LookupMessage(1236)); break; - case 244: - case 274: + case EFST_FOOD_DEX: + case EFST_FOOD_DEX_CASH: std::sprintf(message, LookupMessage(1240)); break; - case 245: - case 275: + case EFST_FOOD_INT: + case EFST_FOOD_INT_CASH: std::sprintf(message, LookupMessage(1238)); break; - case 246: - case 276: + case EFST_FOOD_LUK: + case EFST_FOOD_LUK_CASH: std::sprintf(message, LookupMessage(1242)); break; - case 247: + case EFST_FOOD_BASICAVOIDANCE: std::sprintf(message, LookupMessage(1244)); break; - case 248: + case EFST_FOOD_BASICHIT: std::sprintf(message, LookupMessage(1246)); break; - case 249: + case EFST_FOOD_CRITICALSUCCESSVALUE: std::sprintf(message, LookupMessage(1248)); break; - case 253: + case EFST_CASH_BOSS_ALARM: if (packet->aid == g_session.m_aid) { this->unknown_05CC[0] = 0; } break; - case 673: + case EFST_ON_PUSH_CART: if (packet->aid == g_session.m_aid) { g_session.SetUnknown5C1C(0); } break; - case 710: + case EFST_HANDICAPSTATE_ICEEXPLO: if (packet->aid == g_session.m_aid && this->scene->player) { this->scene->player->SendMsg(nullptr, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 730: + case EFST_DARKCROW: if (packet->aid == g_session.m_aid) { CPlayer* player = this->scene->player; while (player->HasId(1040)) { @@ -6865,7 +6867,7 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } } break; - case 755: + case EFST_C_MARKER: if (packet->aid == g_session.m_aid) { CPlayer* player = this->scene->player; while (player->HasId(1061)) { @@ -6873,27 +6875,27 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } } break; - case 933: + case EFST_SUHIDE: if (packet->aid == g_session.m_aid) { this->scene->player->SetState(0, 1); this->scene->player->render.isMotionFreezed = false; } break; - case 893: + case EFST_SU_STOOP: if (packet->aid == g_session.m_aid && !this->scene->player->render.unknown_0114) { this->scene->player->SetState(0, 1); } break; - case 1013: + case EFST_ALL_STAT_DOWN: color = 0xFFFF00; std::sprintf(message, LookupMessage(3248)); break; - case 1125: + case EFST_SOULCURSE: if (CEffect* effect = g_effectMgr->Find(packet->aid, 1362)) { g_effectMgr->Retire(effect, 1); } break; - case 1149: + case EFST_MADOGEAR_TYPE: { CGameActor* actor; if (packet->aid == g_session.m_aid) { @@ -6911,12 +6913,12 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { actor->SendMsg(nullptr, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 1166: + case EFST_RELIEVE_DAMAGE: if (CEffect* effect = g_effectMgr->Find(packet->aid, 1599)) { g_effectMgr->Retire(effect, 1); } break; - case 1167: + case EFST_LOCKON_LASER: { CRenderObject* actor; if (packet->aid == g_session.m_aid) { @@ -6929,7 +6931,7 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } break; } - case 1165: + case EFST_HELLS_PLANT_ARMOR: { CRenderObject* actor; if (packet->aid == g_session.m_aid) { @@ -6942,7 +6944,7 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { } break; } - case 1176: + case EFST_DRAGONIC_AURA: if (CEffect* effect = g_effectMgr->Find(packet->aid, 1726)) { g_effectMgr->Retire(effect, 1); } @@ -6950,74 +6952,74 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) { g_effectMgr->Retire(effect, 1); } break; - case 1245: + case EFST_ABYSS_SLAYER: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3816)); break; - case 1221: + case EFST_ULTIMATE_S: _snprintf_s(message, 256, LookupMessage(3759)); break; - case 1160: + case EFST_POWERFUL_FAITH: _snprintf_s(message, 256, LookupMessage(3727)); break; - case 1162: + case EFST_FIRM_FAITH: _snprintf_s(message, 256, LookupMessage(3729)); break; - case 1161: + case EFST_SINCERE_FAITH: _snprintf_s(message, 256, LookupMessage(3731)); break; - case 1228: + case EFST_BENEDICTUM: _snprintf_s(message, 256, LookupMessage(3733)); break; - case 1227: + case EFST_RELIGIO: _snprintf_s(message, 256, LookupMessage(3735)); break; - case 1201: + case EFST_COMPETENTIA: _snprintf_s(message, 256, LookupMessage(3737)); break; - case 1200: + case EFST_PRE_ACIES: _snprintf_s(message, 256, LookupMessage(3739)); break; - case 1199: + case EFST_A_TELUM: _snprintf_s(message, 256, LookupMessage(3741)); break; - case 1198: + case EFST_A_VITA: _snprintf_s(message, 256, LookupMessage(3743)); break; - case 1152: + case EFST_CLIMAX: if (CEffect* effect = g_effectMgr->Find(packet->aid, 1800)) { g_effectMgr->Retire(effect, 1); } _snprintf_s(message, 256, LookupMessage(3761)); break; - case 1194: + case EFST_POTENT_VENOM: _snprintf_s(message, 256, LookupMessage(3765)); break; - case 1247: + case EFST_PROTECTSHADOWEQUIP: _snprintf_s(message, 256, LookupMessage(3783)); break; - case 1248: + case EFST_RESEARCHREPORT: _snprintf_s(message, 256, LookupMessage(3779)); break; - case 1249: + case EFST_BO_HELL_DUSTY: _snprintf_s(message, 256, LookupMessage(3785)); break; - case 1237: + case EFST_D_MACHINE: if (CEffect* effect = g_effectMgr->Find(packet->aid, 1817)) { g_effectMgr->Retire(effect, 1); g_effectMgr->Spawn(packet->aid, 1821, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3789)); break; - case 1236: + case EFST_A_MACHINE: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3787)); break; - case 1261: + case EFST_MUSICAL_INTERLUDE: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3800)); break; - case 1271: + case EFST_SPELL_ENCHANTING: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3813)); break; - case 1244: + case EFST_ABYSSFORCEWEAPON: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3814)); break; default: diff --git a/Source/Client/Mode/GameModePackets.cpp b/Source/Client/Mode/GameModePackets.cpp index 2c70326fc..9c52bf7b9 100644 --- a/Source/Client/Mode/GameModePackets.cpp +++ b/Source/Client/Mode/GameModePackets.cpp @@ -1,3 +1,10 @@ +#include "Contents/Combat/CombatTypes.h" +#include "Contents/Effects/EffectTypes.h" +#include "Contents/Skills/SkillId.h" +#include "Contents/Skills/SkillUnitId.h" +#include "Network/Packets/NoticeEnums.h" +#include "Network/Packets/PacketId.h" +#include "Resource/MSGSTRINGID.h" #include "UI/Chat/UINewChatWnd.h" #include "Resource/World/TerrainResource.h" #include "Client/Application/Launcher.h" @@ -578,44 +585,44 @@ void CGameMode::ReceiveNamedActionResult(const unsigned char* packet) { const int result = *reinterpret_cast(packet + 0x1A); switch (result) { - case 0: + case PARTY_REPLY_JOIN_OTHER_PARTY: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x50)), 0xFF, 0, 0, 0); break; - case 1: { + case PARTY_REPLY_REJECTED: { const std::string text = name + LookupMessage(0x80C); g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), 0xFF, 0, 0, 0); break; } - case 2: { + case PARTY_REPLY_ACCEPTED: { const std::string text = name + LookupMessage(0x80D); g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), 0xFFFF00, 0, 0, 0); break; } - case 3: + case PARTY_REPLY_FULL: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x53)), 0xFF, 0, 0, 0); break; - case 4: + case PARTY_REPLY_DUAL: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x260)), 0xFF, 0, 0, 0); break; } switch (result) { - case 5: + case PARTY_REPLY_JOINMSG_REFUSE: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x52C)), 0xFF, 0, 0, 0); break; - case 7: + case PARTY_REPLY_OFFLINE: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x47)), 0xFF, 0, 0, 0); break; - case 8: { + case PARTY_REPLY_INVALID_MAPPROPERTY: { char text[256]; std::sprintf(text, LookupMessage(0x56C), reinterpret_cast(packet + 2)); g_windowMgr.SendNotice(1, reinterpret_cast(text), 0xFF, 0, 0, 0); break; } - case 9: + case PARTY_REPLY_INVALID_MAPPROPERTY_ME: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x74F)), 0xFF, 0, 0, 0); break; - case 10: + case PARTY_REPLY_MEMORIALDUNGEON: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0xBD3)), 0xFF, 0, 0, 0); break; case 11: @@ -959,18 +966,18 @@ __declspec(noinline) void CGameMode::ReceiveHomunculusProperty64(const unsigned const HomunculusProperty64Packet* packet = reinterpret_cast(data); switch (packet->type) { - case 1: + case SP_BASEEXP: g_session.m_homunExp = packet->value; g_session.RefreshHomunculusInfo(); if (UIHomunInfoWnd* window = static_cast(g_windowMgr.window_03C0)) { window->expBar->SetValues(g_session.m_homunExp, g_session.m_homunMaxExp); } break; - case 5: + case SP_HP: g_session.m_homunHp = static_cast(packet->value); g_session.RefreshHomunculusInfo(); break; - case 7: + case SP_SP: g_session.m_homunSp = static_cast(packet->value); g_session.RefreshHomunculusInfo(); break; @@ -1066,20 +1073,20 @@ void CGameMode::ReceiveEquipAck(const unsigned char* packet) { break; case 3: switch (g_session.GetDisplayJob()) { - case 12: - case 4013: - case 4035: - case 4059: - case 4065: - case 4101: - case 4254: + case JT_ASSASSIN: + case JT_ASSASSIN_H: + case JT_ASSASSIN_B: + case JT_GUILLOTINE_CROSS: + case JT_GUILLOTINE_CROSS_H: + case JT_GUILLOTINE_CROSS_B: + case JT_SHADOW_CROSS: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(1040)), 0xFFFF64, 0, 0, 0); break; - case 24: + case JT_GUNSLINGER: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(1175)), 0xFFFF64, 0, 0, 0); break; - case 25: - case 4222: + case JT_NINJA: + case JT_NINJA_B: break; default: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(245)), 0xFFFF64, 0, 0, 0); @@ -1318,7 +1325,7 @@ void CGameMode::ReceiveHpSpRecovery(const unsigned char* packet, int variant) { } switch (type) { - case 5: { + case SP_HP: { g_session.UpdateRandomStats(); const int hp = g_session.unknown_5568 + amount; if (g_session.unknown_5568 != hp) { @@ -1329,7 +1336,7 @@ void CGameMode::ReceiveHpSpRecovery(const unsigned char* packet, int variant) { player->LaunchEffect(331, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 7: { + case SP_SP: { g_session.UpdateRandomStats(); int& sp = *reinterpret_cast(&g_session.unknown_5570[0]); const int value = sp + amount; @@ -1804,7 +1811,7 @@ __declspec(noinline) void CGameMode::ReceiveUnknownD79E90(std::int16_t result, s // FUNCTION: fn_22168 __declspec(noinline) void CGameMode::ReceiveRouletteSetResult(const unsigned char* packet) { switch (packet[2]) { - case 0: + case GENERATE_ROULETTE_SUCCESS: g_rouletteMgr->SetAdditionItem(*reinterpret_cast(packet + 3)); g_rouletteMgr->SetResult(0, 0, 0); g_rouletteMgr->Reset(); @@ -1812,13 +1819,13 @@ __declspec(noinline) void CGameMode::ReceiveRouletteSetResult(const unsigned cha g_windowMgr.RefreshRouletteWnd(); } break; - case 1: + case GENERATE_ROULETTE_FAILED: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0xA4C)), 0x6464FF, 0, 0, 0); break; - case 2: + case GENERATE_ROULETTE_NO_ENOUGH_POINT: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0xA4D)), 0x6464FF, 0, 0, 0); break; - case 3: + case GENERATE_ROULETTE_LOSING: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0xA4E)), 0x6464FF, 0, 0, 0); break; } @@ -1830,20 +1837,20 @@ __declspec(noinline) void CGameMode::ReceiveDynamicNpcNotice(const unsigned char char text[0x400]; const char* message; switch (*reinterpret_cast(packet + 2)) { - case 1: + case DYNAMICNPC_RESULT_UNKNOWN: std::memset(text, 0, sizeof(text)); StringFormat(text, sizeof(text), static_cast(-1), "dynamic npc create error found(unknown) "); message = text; break; - case 2: + case DYNAMICNPC_RESULT_UNKNOWNNPC: std::memset(text, 0, sizeof(text)); StringFormat(text, sizeof(text), static_cast(-1), "dynamic npc not found "); message = text; break; - case 3: + case DYNAMICNPC_RESULT_DUPLICATE: message = LookupMessage(0xA47); break; - case 4: + case DYNAMICNPC_RESULT_OUTOFTIME: message = LookupMessage(0xFA2); break; default: @@ -1857,7 +1864,7 @@ __declspec(noinline) void CGameMode::ReceiveDynamicNpcNotice(const unsigned char // FUNCTION: fn_21584 void CGameMode::ReceiveWhisperResult(unsigned char kind, int argument) { switch (kind) { - case 0: { + case ACKWHISPER_SUCCESS: { std::string line(g_session.DecodePlayerName()); line.append(" : ", 3); line.append(this->unknown_0214.data(), this->unknown_0214.size()); @@ -1888,7 +1895,7 @@ void CGameMode::ReceiveWhisperResult(unsigned char kind, int argument) { } return; } - case 1: { + case ACKWHISPER_TARGET_OFFLINE: { const std::string text = "(" + this->unknown_022C + ")" + LookupMessage(0x94); if (g_pendingWhisperCount > 0) { --g_pendingWhisperCount; @@ -1897,12 +1904,12 @@ void CGameMode::ReceiveWhisperResult(unsigned char kind, int argument) { g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), 0xFFFF, 2, 0, 0); return; } - case 2: { + case ACKWHISPER_IGNORED: { const std::string text = "(" + this->unknown_022C + ")" + LookupMessage(0x95); g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), 0xFFFF, 2, 0, 0); return; } - case 3: { + case ACKWHISPER_ALL_IGNORED: { const std::string text = "(" + this->unknown_022C + ")" + LookupMessage(0x96); g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), 0xFFFF, 2, 0, 0); return; @@ -2346,13 +2353,13 @@ void CGameMode::ApplyActorStatusEffects(std::uint32_t aid, int state, int flag, if (options & 0x20) { switch (actor->GetEffectiveJob(-1)) { - case 15: - case 4016: - case 4038: - case 4070: - case 4077: - case 4106: - case 4262: + case JT_MONK: + case JT_MONK_H: + case JT_MONK_B: + case JT_SURA: + case JT_SURA_H: + case JT_SURA_B: + case JT_INQUISITOR: actor->SetFrameSequence(96, 4, 4, 96, 4, 1, 99999999, 0); break; default: @@ -2582,19 +2589,19 @@ __declspec(noinline) void CGameMode::Zc_Msg(const unsigned char* packet) { const std::uint16_t message = *reinterpret_cast(packet + 2); std::uint32_t color = 0xFFFFFF; switch (message) { - case 0x4C5: - case 0x4C6: - case 0x757: - case 0x758: - case 0x886: + case MSI_CANNOT_PARTYCALL: + case MSI_NO_PARTYMEM_ON_THISMAP: + case MSI_INVALID_CLASS: + case MSI_INVALID_GENDER: + case MSI_QUESTUI_TAB_HOLD: color = 0xFF; break; } int type = 0; switch (message) { - case 0xD93: - case 0xD94: + case MSI_SEND_TO_TWITTER_FAILED: + case MSI_KEYWORD_FILTER: type = 0x17; break; } @@ -2612,11 +2619,11 @@ __declspec(noinline) void CGameMode::Zc_Msg_Color(const unsigned char* packet) { const std::uint16_t message = *reinterpret_cast(packet + 2); std::uint32_t color = *reinterpret_cast(packet + 4); switch (message) { - case 0x4C5: - case 0x4C6: - case 0x757: - case 0x758: - case 0x886: + case MSI_CANNOT_PARTYCALL: + case MSI_NO_PARTYMEM_ON_THISMAP: + case MSI_INVALID_CLASS: + case MSI_INVALID_GENDER: + case MSI_QUESTUI_TAB_HOLD: color = 0xFF; break; } @@ -2908,7 +2915,7 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { CGameActor* source = nullptr; int job = -1; - if (skillId == 0x8C2 && targetAid == g_session.m_aid) { + if (skillId == RA_WUGDASH && targetAid == g_session.m_aid) { return; } @@ -2953,10 +2960,10 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { if (target != nullptr && source != nullptr) { switch (skillId) { - case 0x2E1: - case 0x911: - case 0x96D: { - effectId = skillId == 0x96D ? 0x62F : 0x593; + case NPC_RAYOFGENESIS: + case LG_RAYOFGENESIS: + case WM_METALICSOUND: { + effectId = skillId == WM_METALICSOUND ? 0x62F : 0x593; const int duration = static_cast(source->render.speed * 100.0f + 100.0f); CEffect* effect = g_effectMgr->Spawn(target->render.accountId, effectId, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { @@ -2964,11 +2971,11 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { } break; } - case 0x2C4: + case NPC_COMET: target->LaunchEffect(0x5C, origin, 0.0f); source->SetState(7, 1); break; - case 0x2ED: + case NPC_WIDECRITICALWOUND: if (source == this->scene->player) { source->LaunchEffect(0x461, origin, 0.0f); } @@ -2976,17 +2983,17 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { target->LaunchEffect(0x461, origin, 0.0f); } break; - case 0x296: - case 0x300: + case NPC_HELLJUDGEMENT: + case NPC_HELLJUDGEMENT2: if (source != target) { target->LaunchEffect(0x174, origin, 0.0f); } break; - case 0x7D3: + case RK_DEATHBOUND: source->SetState(2, 1); target->LaunchEffect(0xB7, origin, 0.0f); break; - case 0x8A5: + case WL_COMET: if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(target->render.accountId, 0x5FE, origin.x, origin.y, origin.z, 0, -1, 0, 0); effectId = 0x5FF; @@ -2997,11 +3004,11 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { g_effectMgr->Spawn(target->render.accountId, effectId, origin.x, origin.y, origin.z, 0, -1, 0, 0); source->SetState(7, 1); break; - case 0x996: + case SO_VARETYR_SPEAR: g_effectMgr->Spawn(target->render.accountId, 0x619, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x61A, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x9AD: { + case GN_CARTCANNON: { CEffect* effect; if (g_serviceOptions.Get(0xE5)) { effect = g_effectMgr->Spawn(source->render.accountId, 0x5DA, origin.x, origin.y, origin.z, 0, -1, 0, 0); @@ -3034,13 +3041,13 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { } break; } - case 0x14C3: + case ABC_UNLUCKY_RUSH: g_effectMgr->Spawn( source->render.accountId, 0x86A, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0 ); break; - case 0x1F78: { + case MH_GLANZEN_SPIES: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); const vector3d from = source->render.position; const vector3d to = target->render.position; @@ -3056,19 +3063,19 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { } } - if (source != nullptr && skillId == 0x89B) { + if (source != nullptr && skillId == WL_FROSTMISTY) { source->SetState(7, 1); } if (target != nullptr) { switch (skillId) { - case 0x8D: + case AS_SPLASHER: if (*reinterpret_cast(packet + 0x1C) == -1) { target->LaunchEffect(0x81, origin, 0.0f); } break; - case 0x2DB: - case 0x7D8: { + case NPC_DRAGONBREATH: + case RK_DRAGONBREATH: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); if (mode == nullptr || source == nullptr) { break; @@ -3118,7 +3125,7 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { g_soundMgr->PlayWave("effect\\폭염룡.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x138C: { + case RK_DRAGONBREATH_WATER: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); if (mode == nullptr || source == nullptr) { break; @@ -3168,12 +3175,12 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { g_soundMgr->PlayWave("effect\\폭염룡.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x7D5: + case RK_WINDCUTTER: if (target != source) { g_effectMgr->Spawn(target->render.accountId, 0x69D, origin.x, origin.y, origin.z, 0, -1, 0, 0); } break; - case 0x89C: { + case WL_JACKFROST: { const float step = static_cast(std::max(std::rand() % 5, 0) + 8) * 10.0f; for (int index = 0; index < 3; ++index) { const float radius = static_cast(std::max(std::rand() % 10, 0)) + 5.0f; @@ -3200,28 +3207,28 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { } break; } - case 0x8BE: + case RA_ELECTRICSHOCKER: g_soundMgr->PlayWave("effect\\hunter_shockwavetrap.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x92, origin, 0.0f); break; - case 0x8BF: + case RA_CLUSTERBOMB: target->LaunchEffect(0x249, origin, 0.0f); g_soundMgr->PlayWave("effect\\hunter_landmine.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8CD: + case RA_FIRINGTRAP: target->LaunchEffect(0x247, origin, 0.0f); g_soundMgr->PlayWave("effect\\폭염룡.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8CE: + case RA_ICEBOUNDTRAP: target->LaunchEffect(0x87, origin, 0.0f); g_soundMgr->PlayWave("effect\\ef_frostdiver.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8D3: + case NC_FLAMELAUNCHER: target->LaunchEffect(0x247, origin, 0.0f); target->LaunchEffect(0x31, origin, 0.0f); g_soundMgr->PlayWave("effect\\폭염룡.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8D5: { + case NC_ARMSCANNON: { for (int duration = 90; duration < 450; duration += 90) { const float x = target->render.position.x; const float y = target->render.position.y; @@ -3277,7 +3284,7 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { g_soundMgr->PlayWave("effect\\폭염룡.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x900: + case SC_FEINTBOMB: if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(target->render.accountId, 0x5B7, origin.x, origin.y, origin.z, 0, -1, 0, 0); effectId = 0x5B8; @@ -3287,76 +3294,76 @@ void CGameMode::ReceiveNotifySkill(const unsigned char* packet) { } g_effectMgr->Spawn(target->render.accountId, effectId, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x919: { + case SR_FALLENEMPIRE: { CEffect* effect = g_effectMgr->Spawn(target->render.accountId, 0x624, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetDelay(100); } break; } - case 0x9B1: + case GN_SPORE_EXPLOSION: g_soundMgr->PlayWave("effect\\폭염룡.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x385, origin, 0.0f); break; - case 0x9BA: + case GN_HELLS_PLANT: g_effectMgr->Spawn(target->render.accountId, 0x551, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_soundMgr->PlayWave("spore_attack.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x9D5: + case SR_HOWLINGOFLION: g_effectMgr->Spawn(target->render.accountId, 0x62C, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x1499: + case CD_ARBITRIUM: g_effectMgr->Spawn(target->render.accountId, 0x720, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x721, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x14AE: + case SHC_FATAL_SHADOW_CROW: g_effectMgr->Spawn(target->render.accountId, 0x748, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x749, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x1F6F: + case MH_TWISTER_CUTTER: g_effectMgr->Spawn(target->render.accountId, 0x919, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x1F70: + case MH_ABSOLUTE_ZEPHYR: g_effectMgr->Spawn(target->render.accountId, 0x916, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x917, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x1F72: + case MH_BLAZING_AND_FURIOUS: g_effectMgr->Spawn(target->render.accountId, 0x921, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x1F75: + case MH_TOXIN_OF_MANDARA: g_effectMgr->Spawn(target->render.accountId, 0x912, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x1F76: + case MH_NEEDLE_STINGER: g_effectMgr->Spawn(target->render.accountId, 0x913, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x914, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x20FD: + case EM_EL_FLAMEROCK: g_effectMgr->Spawn(target->render.accountId, 0x7F3, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x7F4, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x2100: + case EM_EL_AGE_OF_ICE: g_effectMgr->Spawn(target->render.accountId, 0x7E3, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x7E4, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x2103: + case EM_EL_STORM_WIND: g_effectMgr->Spawn(target->render.accountId, 0x832, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x833, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x2106: + case EM_EL_AVALANCHE: g_effectMgr->Spawn(target->render.accountId, 0x838, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x2109: + case EM_EL_DEADLY_POISON: g_effectMgr->Spawn(target->render.accountId, 0x7D9, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x2199: + case ABR_BATTLE_BUSTER: g_effectMgr->Spawn(target->render.accountId, 0x78E, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x791, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x219A: + case ABR_DUAL_CANNON_FIRE: g_effectMgr->Spawn(target->render.accountId, 0x77B, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x77D, origin.x, origin.y, origin.z, 0, -1, 0, 0); break; - case 0x219D: + case ABR_INFINITY_BUSTER: g_effectMgr->Spawn(target->render.accountId, 0x772, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x773, origin.x, origin.y, origin.z, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x775, origin.x, origin.y, origin.z, 0, -1, 0, 0); @@ -3662,7 +3669,7 @@ void CGameMode::ReceiveActorStatusValue(std::uint32_t aid, int status, int amoun } switch (status) { - case 0x14b: + case EF_HPTIME: if (aid == g_session.m_aid) { g_session.UpdateRandomStats(); const int hp = g_session.unknown_5568 + amount; @@ -3673,7 +3680,7 @@ void CGameMode::ReceiveActorStatusValue(std::uint32_t aid, int status, int amoun } actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFF00FF00, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x14c: + case EF_SPTIME: if (aid == g_session.m_aid) { g_session.UpdateRandomStats(); int& sp = *reinterpret_cast(&g_session.unknown_5570[0]); @@ -3685,28 +3692,28 @@ void CGameMode::ReceiveActorStatusValue(std::uint32_t aid, int status, int amoun } actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFF0000FF, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x291: + case EF_GREEN_NUMBER: actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFF00FF00, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x292: + case EF_BLUE_NUMBER: actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFF0000FF, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x293: + case EF_RED_NUMBER: actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFFFF0000, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x294: + case EF_PURPLE_NUMBER: actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFFFF00FF, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x295: + case EF_BLACK_NUMBER: actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFF000000, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x296: + case EF_WHITE_NUMBER: actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFFFFFFFF, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x297: + case EF_YELLOW_NUMBER: actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFFFFFF00, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; - case 0x298: + case EF_PINK_NUMBER: actor->SendMsg(nullptr, 0x58, 0, amount, option, 0xFFFF55B1, 0, 0x72, 0, 0, 0, 0, 0, 0, 0); break; default: @@ -3850,14 +3857,14 @@ void CGameMode::Zc_Spirits2(const unsigned char* data) { if (StateFlag01(actor->GetStateFlags()) || StateFlag02(actor->GetStateFlags())) { int effectId; switch (actor->GetEffectiveJob(-1)) { - case 24: - case 4215: - case 4228: - case 4229: - case 4306: + case JT_GUNSLINGER: + case JT_REBELLION: + case JT_GUNSLINGER_B: + case JT_REBELLION_B: + case JT_NIGHT_WATCH: effectId = 629; break; - case 4038: + case JT_MONK_B: effectId = 504; break; default: @@ -3911,32 +3918,32 @@ void CGameMode::UpdateActorSpiritCount(std::uint32_t aid, std::int16_t count) { const int job = actor->GetEffectiveJob(-1); switch (job) { - case 4252: - case 4265: - case 4280: + case JT_DRAGON_KNIGHT: + case JT_DRAGON_KNIGHT_RIDING: + case JT_DRAGON_KNIGHT_CHICKEN: break; - case 4260: + case JT_ABYSS_CHASER: if (count == 0) { g_effectMgr->Retire(actor->render.accountId, 2109); return; } break; - case 24: - case 4228: + case JT_GUNSLINGER: + case JT_GUNSLINGER_B: actor->SendMsg(nullptr, 109, 0, 629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); if (count == 0) { return; } break; - case 4038: + case JT_MONK_B: actor->SendMsg(nullptr, 109, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); if (count == 0) { return; } break; - case 4215: - case 4229: - case 4306: + case JT_REBELLION: + case JT_REBELLION_B: + case JT_NIGHT_WATCH: g_effectMgr->Retire(actor->render.accountId, 1135); if (count == 0) { return; @@ -3952,12 +3959,12 @@ void CGameMode::UpdateActorSpiritCount(std::uint32_t aid, std::int16_t count) { if (StateFlag01(actor->GetStateFlags()) || StateFlag02(actor->GetStateFlags())) { switch (job) { - case 4252: - case 4265: - case 4280: + case JT_DRAGON_KNIGHT: + case JT_DRAGON_KNIGHT_RIDING: + case JT_DRAGON_KNIGHT_CHICKEN: g_effectMgr->Retire(g_effectMgr->Find(actor->render.accountId, 2460), 1); return; - case 4260: + case JT_ABYSS_CHASER: g_effectMgr->Retire(actor->render.accountId, 2109); break; } @@ -3965,16 +3972,16 @@ void CGameMode::UpdateActorSpiritCount(std::uint32_t aid, std::int16_t count) { CRagEffect* effect; switch (job) { - case 24: - case 4228: + case JT_GUNSLINGER: + case JT_GUNSLINGER_B: effect = actor->LaunchEffect(629, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 4038: + case JT_MONK_B: effect = actor->LaunchEffect(504, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 4215: - case 4229: - case 4306: { + case JT_REBELLION: + case JT_REBELLION_B: + case JT_NIGHT_WATCH: { CEffect* coins = g_effectMgr->Spawn(actor->render.accountId, 1135, actor->render.position.x, actor->render.position.y, actor->render.position.z, 0, -1, 0, 0); if (!coins) { @@ -3984,9 +3991,9 @@ void CGameMode::UpdateActorSpiritCount(std::uint32_t aid, std::int16_t count) { coins->Open(); return; } - case 4252: - case 4265: - case 4280: { + case JT_DRAGON_KNIGHT: + case JT_DRAGON_KNIGHT_RIDING: + case JT_DRAGON_KNIGHT_CHICKEN: { CServantWeaponNewEffect* weapons = static_cast(g_effectMgr->Spawn(actor->render.accountId, 2460, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0)); if (!weapons) { @@ -4004,7 +4011,7 @@ void CGameMode::UpdateActorSpiritCount(std::uint32_t aid, std::int16_t count) { } return; } - case 4260: { + case JT_ABYSS_CHASER: { CEffect* abyss = g_effectMgr->Find(actor->render.accountId, 2109); if (!abyss) { abyss = g_effectMgr->Spawn(actor->render.accountId, 2109, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4202,68 +4209,68 @@ void CGameMode::ReceiveStatusBonus(const unsigned char* data) { const StatusBonusPacket* packet = reinterpret_cast(data); int* traitBonus = g_session.m_traits.bonus; switch (packet->type) { - case 13: + case SP_STR: g_session.m_standardStats[0] = packet->value; g_session.InvalidateWindowFrames(); g_session.unknown_166C = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 14: + case SP_AGI: g_session.m_standardStats[1] = packet->value; g_session.InvalidateWindowFrames(); g_session.unknown_1670 = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 15: + case SP_VIT: g_session.m_standardStats[2] = packet->value; g_session.InvalidateWindowFrames(); g_session.unknown_1674 = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 16: + case SP_INT: g_session.m_standardStats[3] = packet->value; g_session.InvalidateWindowFrames(); g_session.unknown_1678 = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 17: + case SP_DEX: g_session.m_standardStats[4] = packet->value; g_session.InvalidateWindowFrames(); g_session.unknown_167C = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 18: + case SP_LUK: g_session.m_standardStats[5] = packet->value; g_session.InvalidateWindowFrames(); g_session.unknown_1680 = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 219: + case SP_POW: g_session.SetTraitStat(219, packet->value); traitBonus[0] = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 220: + case SP_STA: g_session.SetTraitStat(220, packet->value); traitBonus[1] = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 221: + case SP_WIS: g_session.SetTraitStat(221, packet->value); traitBonus[2] = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 222: + case SP_SPL: g_session.SetTraitStat(222, packet->value); traitBonus[3] = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 223: + case SP_CON: g_session.SetTraitStat(223, packet->value); traitBonus[4] = packet->bonus; g_session.InvalidateWindowFrames(); break; - case 224: + case SP_CRT: g_session.SetTraitStat(224, packet->value); traitBonus[5] = packet->bonus; g_session.InvalidateWindowFrames(); @@ -4271,18 +4278,18 @@ void CGameMode::ReceiveStatusBonus(const unsigned char* data) { } switch (packet->type) { - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 219: - case 220: - case 221: - case 222: - case 223: - case 224: + case SP_STR: + case SP_AGI: + case SP_VIT: + case SP_INT: + case SP_DEX: + case SP_LUK: + case SP_POW: + case SP_STA: + case SP_WIS: + case SP_SPL: + case SP_CON: + case SP_CRT: if (g_equipmentPropertiesMgr == nullptr) { g_equipmentPropertiesMgr = new (std::nothrow) EquipmentProperties::CEquipmentPropertiesMgr; } @@ -4552,17 +4559,17 @@ void CGameMode::ReceiveParChange(unsigned char* data) { switch (packet->type) { - case 0: + case SP_SPEED: if (*reinterpret_cast(&g_session.unknown_16F4[0]) != packet->value) { *reinterpret_cast(&g_session.unknown_16F4[0]) = packet->value; g_session.InvalidateWindowFrames(); } break; - case 3: + case SP_KARMA: *reinterpret_cast(&g_session.unknown_1704[0]) = packet->value; g_session.InvalidateWindowFrames(); break; - case 4: + case SP_MANNER: if (packet->value < 0) { text = FormatOwnedString(LookupMessage(664), -packet->value); const int emotion = g_cashEmotionMgr->GetSpecialEmotion(CashEmotionSpecial::ChatProhibit); @@ -4575,12 +4582,12 @@ void CGameMode::ReceiveParChange(unsigned char* data) { *reinterpret_cast(&g_session.unknown_16F4[4]) = packet->value; g_session.InvalidateWindowFrames(); break; - case 60: + case SP_UNBREAKABLE: if (packet->value < -60) { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(858)), 0xFFFF, 0, 0, 0); } break; - case 5: + case SP_HP: if (g_session.unknown_556C > 0 && (packet->value * 100) / g_session.unknown_556C < 25 && this->scene->GetGameActorByAID(g_session.unknown_1010) && rand() % 100 < 50 && g_session.CheckInterval(5000)) { @@ -4594,7 +4601,7 @@ void CGameMode::ReceiveParChange(unsigned char* data) { g_session.RefreshHpSpWindows(); } break; - case 6: + case SP_MAXHP: if (g_session.unknown_556C != packet->value) { g_session.unknown_556C = packet->value; g_session.RefreshHpSpWindows(); @@ -4603,26 +4610,26 @@ void CGameMode::ReceiveParChange(unsigned char* data) { g_windowMgr.window_02C8->SendMsg(nullptr, 6, 34, g_session.m_aid, 0, 0); } break; - case 7: + case SP_SP: if (*reinterpret_cast(&g_session.unknown_5570[0]) != packet->value) { *reinterpret_cast(&g_session.unknown_5570[0]) = packet->value; g_session.RefreshHpSpWindows(); } break; - case 8: + case SP_MAXSP: if (*reinterpret_cast(&g_session.unknown_5570[4]) != packet->value) { *reinterpret_cast(&g_session.unknown_5570[4]) = packet->value; g_session.RefreshHpSpWindows(); } break; - case 9: + case SP_STATUSPOINT: *reinterpret_cast(&g_session.unknown_1654[0]) = packet->value; g_session.InvalidateWindowFrames(); if (g_windowMgr.unknown_01C4) { g_windowMgr.unknown_01C4->SendMsg(nullptr, 35, 0, 0, 0, 0); } break; - case 11: { + case SP_BASELEVEL: { g_session.m_level = packet->value; g_session.InvalidateWindowFrames(); this->scene->player->unknown_0210 = static_cast(g_session.m_level); @@ -4633,29 +4640,29 @@ void CGameMode::ReceiveParChange(unsigned char* data) { if (g_session.IsSuperNoviceClass(job)) { effectId = 338; } else if (job < 4303) { - if (job == 4302) { + if (job == JT_SKY_EMPEROR) { effectId = 582; } else { switch (job) { - case 4046: - case 4047: - case 4048: - case 4049: - case 4225: - case 4226: - case 4227: - case 4238: - case 4239: - case 4240: - case 4241: - case 4242: - case 4243: - case 4244: + case JT_TAEKWON: + case JT_STAR: + case JT_STAR2: + case JT_LINKER: + case JT_TAEKWON_B: + case JT_STAR_B: + case JT_LINKER_B: + case JT_STAR2_B: + case JT_STAR_EMPEROR: + case JT_SOUL_REAPER: + case JT_STAR_EMPEROR_B: + case JT_SOUL_REAPER_B: + case JT_STAR2_EMPEROR: + case JT_STAR2_EMPEROR_B: effectId = 582; break; - case 4050: - case 4051: - case 4052: + case JT_GANGSI: + case JT_DEATHKNIGHT: + case JT_COLLECTOR: effectId = 338; break; default: @@ -4663,7 +4670,7 @@ void CGameMode::ReceiveParChange(unsigned char* data) { break; } } - } else if (job == 4303 || job == 4316) { + } else if (job == JT_SOUL_ASCETIC || job == JT_SKY_EMPEROR2) { effectId = 582; } else { effectId = 371; @@ -4690,7 +4697,7 @@ void CGameMode::ReceiveParChange(unsigned char* data) { } break; } - case 55: + case SP_JOBLEVEL: g_session.m_jobLevel = packet->value; g_session.InvalidateWindowFrames(); this->scene->player->LaunchEffect(packet->value < 51 ? 158 : 337, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -4705,36 +4712,36 @@ void CGameMode::ReceiveParChange(unsigned char* data) { window->SendMsg(nullptr, 6, 286, 196, 1, 0); } break; - case 12: + case SP_SKILLPOINT: g_session.m_skillPoint = packet->value; g_session.InvalidateWindowFrames(); g_session.NotifySkillWindows(); break; - case 13: + case SP_STR: g_session.m_standardStats[0] = packet->value; g_session.InvalidateWindowFrames(); break; - case 14: + case SP_AGI: g_session.m_standardStats[1] = packet->value; g_session.InvalidateWindowFrames(); break; - case 15: + case SP_VIT: g_session.m_standardStats[2] = packet->value; g_session.InvalidateWindowFrames(); break; - case 16: + case SP_INT: g_session.m_standardStats[3] = packet->value; g_session.InvalidateWindowFrames(); break; - case 17: + case SP_DEX: g_session.m_standardStats[4] = packet->value; g_session.InvalidateWindowFrames(); break; - case 18: + case SP_LUK: g_session.m_standardStats[5] = packet->value; g_session.InvalidateWindowFrames(); break; - case 24: { + case SP_WEIGHT: { packet->value = packet->value / 10; const int oldPercent = (g_session.m_weight * 100) / (g_session.m_maxWeight < 1 ? 1 : g_session.m_maxWeight); g_session.m_weight = packet->value; @@ -4773,7 +4780,7 @@ void CGameMode::ReceiveParChange(unsigned char* data) { } break; } - case 25: { + case SP_MAXWEIGHT: { packet->value = packet->value / 10; const int oldMaxWeight = g_session.m_maxWeight; if (g_session.m_maxWeight < 1) { @@ -4802,80 +4809,80 @@ void CGameMode::ReceiveParChange(unsigned char* data) { } break; } - case 41: + case SP_ATK1: derivedStats[7] = packet->value; g_session.InvalidateWindowFrames(); break; - case 42: + case SP_ATK2: derivedStats[12] = packet->value; g_session.InvalidateWindowFrames(); break; - case 43: + case SP_MATK1: derivedStats[13] = packet->value; g_session.InvalidateWindowFrames(); break; - case 44: + case SP_MATK2: derivedStats[14] = packet->value; g_session.InvalidateWindowFrames(); break; - case 45: + case SP_DEF1: derivedStats[10] = packet->value; g_session.InvalidateWindowFrames(); break; - case 46: + case SP_DEF2: derivedStats[11] = packet->value; g_session.InvalidateWindowFrames(); break; - case 47: + case SP_MDEF1: derivedStats[8] = packet->value; g_session.InvalidateWindowFrames(); break; - case 48: + case SP_MDEF2: derivedStats[15] = packet->value; g_session.InvalidateWindowFrames(); break; - case 49: + case SP_HIT: derivedStats[16] = packet->value; g_session.InvalidateWindowFrames(); break; - case 50: + case SP_FLEE1: derivedStats[17] = packet->value; g_session.InvalidateWindowFrames(); break; - case 51: + case SP_FLEE2: derivedStats[19] = packet->value; g_session.InvalidateWindowFrames(); break; - case 52: + case SP_CRITICAL: derivedStats[18] = packet->value; g_session.InvalidateWindowFrames(); break; - case 53: + case SP_ASPD: derivedStats[6] = packet->value; g_session.InvalidateWindowFrames(); break; - case 54: + case SP_36: derivedStats[9] = packet->value; g_session.InvalidateWindowFrames(); break; case 169: reinterpret_cast(g_session.unknown_8128[4]) = packet->value != 0; break; - 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 SP_POW: + case SP_STA: + case SP_WIS: + case SP_SPL: + case SP_CON: + case SP_CRT: + case SP_PATK: + case SP_SMATK: + case SP_RES: + case SP_MRES: + case SP_HPLUS: + case SP_CRATE: + case SP_TRAITPOINT: + case SP_AP: + case SP_MAXAP: g_session.SetTraitStat(packet->type, packet->value); if (g_windowMgr.unknown_01C4) { static_cast(g_windowMgr.unknown_01C4)->ValidatePlacement(); @@ -4904,7 +4911,7 @@ void CGameMode::ApplyStatusChange( now = timeGetTime(); } - if (type == 64) { + if (type == EFST_WEAPONPROPERTY) { type = value1 + 897; } @@ -4916,7 +4923,7 @@ void CGameMode::ApplyStatusChange( ); } - if (type == 432 && actor) { + if (type == EFST_SPELLFIST && actor) { const unsigned char element = static_cast(value3); if (element == 19) { g_effectMgr->Spawn(actor->render.accountId, 1665, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4947,23 +4954,23 @@ void CGameMode::ApplyStatusChange( std::uint32_t color; if (on) { if (aid == g_session.m_aid) { - if (type == 696) { + if (type == EFST_CLAN_INFO) { if (this->scene->player) { this->scene->player->SetUnknown0305(1, value2); } - } else if (type == 46) { + } else if (type == EFST_POSTDELAY) { ShortcutCooldownRecord timer; timer.id = 577; timer.end = now + remaining; timer.duration = total; g_session.m_requestTimers.push_back(timer); - } else if (type == 684) { + } else if (type == EFST_HOMUN_SKILL_POSTDELAY) { ShortcutCooldownRecord timer; timer.id = 9999; timer.end = now + remaining; timer.duration = total; g_session.m_requestTimers.push_back(timer); - } else if (type == 175) { + } else if (type == EFST_GDSKILL_POSTDELAY) { ShortcutCooldownRecord timer; for (int requestId = 10000; requestId < 10020; ++requestId) { std::list::iterator it = g_session.m_requestTimers.begin(); @@ -4982,23 +4989,23 @@ void CGameMode::ApplyStatusChange( it->end = timer.end; } } - } else if (type == 824) { + } else if (type == EFST_DAILYSENDMAILCNT) { g_rodexMailStore->unknown_0014 = value2; } - if (type != 824) { + if (type != EFST_DAILYSENDMAILCNT) { ActiveSkillEffect effect; effect.id = type; effect.unknown_0004 = remaining == 9999 ? 999999 : now + remaining; if (type >= 363 && type <= 367) { effect.unknown_0008 = value1 & 3; - } else if (type == 339 || type == 895 || type == 1149) { + } else if (type == EFST_ROLLINGCUTTER || type == EFST_HEAD_EQUIPMENT_EFFECT || type == EFST_MADOGEAR_TYPE) { effect.unknown_0008 = value1; } - if (type == 1152 || type == 1196) { + if (type == EFST_CLIMAX || type == EFST_E_SLASH_COUNT) { effect.unknown_0008 = value1; - } else if (type == 1244) { + } else if (type == EFST_ABYSSFORCEWEAPON) { effect.unknown_0008 = value2; } else if (CSkillActionMgr::GetInstance()->HasEfstAction(type) == true) { effect.unknown_000C = value2; @@ -5007,7 +5014,7 @@ void CGameMode::ApplyStatusChange( } for (std::vector::iterator it = g_activeSkillEffects.begin(); it != g_activeSkillEffects.end();) { - if (it->id == type && (it->id != 895 || it->unknown_0008 == effect.unknown_0008)) { + if (it->id == type && (it->id != EFST_HEAD_EQUIPMENT_EFFECT || it->unknown_0008 == effect.unknown_0008)) { g_cooldownOwner->Remove(it->id); g_activeSkillEffects.erase(it); it = g_activeSkillEffects.begin(); @@ -5027,136 +5034,136 @@ void CGameMode::ApplyStatusChange( color = 0xFFFF00; switch (type) { - case 2: - case 37: - case 38: - case 39: - case 40: - case 68: - case 161: + case EFST_TWOHANDQUICKEN: + case EFST_ATTHASTE_POTION1: + case EFST_ATTHASTE_POTION2: + case EFST_ATTHASTE_POTION3: + case EFST_ATTHASTE_INFINITY: + case EFST_SPEARQUICKEN: + case EFST_ONEHANDQUICKEN: std::sprintf(message, LookupMessage(463)); break; - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 363: - case 364: - case 365: - case 366: - case 367: - case 448: - case 452: - case 453: - case 454: - case 645: - case 646: - case 655: - case 656: - case 657: - case 659: - case 660: - case 674: - case 716: - case 717: - case 718: - case 719: - case 720: - case 721: - case 728: - case 730: - case 734: - case 735: - case 736: - case 737: - case 755: - case 760: - case 779: - case 822: - case 823: - case 825: - case 826: - case 849: - case 856: - case 857: - case 859: - case 863: - case 864: - case 872: - case 895: - case 896: - case 917: - case 919: - case 937: - case 982: - case 1016: - case 1017: - case 1018: - case 1019: - case 1020: - case 1021: - case 1022: - case 1023: - case 1024: - case 1025: - case 1038: - case 1039: - case 1040: - case 1041: - case 1043: - case 1050: - case 1055: - case 1126: - case 1139: - case 1141: - case 1142: - case 1148: - case 1150: - case 1165: - case 1166: - case 1167: - case 1176: - case 1184: - case 1190: - case 1196: - case 1197: - case 1205: - case 1206: - case 1207: - case 1208: - case 1209: - case 1210: - case 1211: - case 1212: - case 1213: - case 1214: - case 1215: - case 1216: - case 1230: - case 1231: - case 1232: - case 1233: - case 1234: - case 1258: - case 1318: - case 1319: - case 1337: - case 1338: - case 1339: - case 1688: + case EFST_WHISTLE: + case EFST_ASSASSINCROSS: + case EFST_POEMBRAGI: + case EFST_APPLEIDUN: + case EFST_HUMMING: + case EFST_DONTFORGETME: + case EFST_FORTUNEKISS: + case EFST_SERVICEFORYOU: + case EFST_RICHMANKIM: + case EFST_ETERNALCHAOS: + case EFST_DRUMBATTLEFIELD: + case EFST_RINGNIBELUNGEN: + case EFST_ROKISWEIL: + case EFST_INTOABYSS: + case EFST_SIEGFRIED: + case EFST_SUMMON1: + case EFST_SUMMON2: + case EFST_SUMMON3: + case EFST_SUMMON4: + case EFST_SUMMON5: + case EFST_SATURDAY_NIGHT_FEVER: + case EFST_MELODYOFSINK: + case EFST_BEYOND_OF_WARCRY: + case EFST_UNLIMITED_HUMMING_VOICE: + case EFST_KO_JYUMONJIKIRI: + case EFST_MEIKYOUSISUI: + case EFST_KYOMU: + case EFST_KAGEMUSYA: + case EFST_ZANGETSU: + case EFST_GENSOU: + case EFST_AKAITSUKI: + case EFST_HAT_EFFECT: + case EFST_OFFERTORIUM: + case EFST_TELEKINESIS_INTENSE: + case EFST_MOONSTAR: + case EFST_STRANGELIGHTS: + case EFST_FULL_THROTTLE: + case EFST_REBOUND: + case EFST_SUPER_STAR: + case EFST_DARKCROW: + case EFST_ILLUSIONDOPING: + case EFST_WIDEWEB: + case EFST_CHILL: + case EFST_BURNT: + case EFST_C_MARKER: + case EFST_ANTI_M_BLAST: + case EFST_DECORATION_OF_MUSIC: + case EFST_FLOWERSMOKE: + case EFST_FSTONE: + case EFST_QSCARABA: + case EFST_LJOSALFAR: + case EFST_HAPPINESS_STAR: + case EFST_DRESS_UP: + case EFST_MAPLE_FALLS: + case EFST_MARKING_USE_CHANGEMONSTER: + case EFST_MERMAID_LONGING: + case EFST_MAGICAL_FEATHER: + case EFST_TIME_ACCESSORY: + case EFST_HEAD_EQUIPMENT_EFFECT: + case EFST_SV_ROOTTWIST: + case EFST_BITESCAR: + case EFST_TUNAPARTY: + case EFST_SPRITEMABLE: + case EFST_SOULATTACK: + case EFST_IMMUNE_PROPERTY_NOTHING: + case EFST_IMMUNE_PROPERTY_WATER: + case EFST_IMMUNE_PROPERTY_GROUND: + case EFST_IMMUNE_PROPERTY_FIRE: + case EFST_IMMUNE_PROPERTY_WIND: + case EFST_IMMUNE_PROPERTY_POISON: + case EFST_IMMUNE_PROPERTY_SAINT: + case EFST_IMMUNE_PROPERTY_DARKNESS: + case EFST_IMMUNE_PROPERTY_TELEKINESIS: + case EFST_IMMUNE_PROPERTY_UNDEAD: + case EFST_LUNARSTANCE: + case EFST_UNIVERSESTANCE: + case EFST_SUNSTANCE: + case EFST_FLASHKICK: + case EFST_STARSTANCE: + case EFST_GRAVITYCONTROL: + case EFST_SOULUNITY: + case EFST_SOUND_OF_DESTRUCTION: + case EFST_EARTHSHAKER: + case EFST_MISTY_FROST: + case EFST_MAGIC_POISON: + case EFST_PRISON: + case EFST_DEADLY_DEFEASANCE: + case EFST_HELLS_PLANT_ARMOR: + case EFST_RELIEVE_DAMAGE: + case EFST_LOCKON_LASER: + case EFST_DRAGONIC_AURA: + case EFST_CLIMAX_CRYIMP: + case EFST_HOLY_OIL: + case EFST_E_SLASH_COUNT: + case EFST_MEDIALE: + case EFST_HANDICAPSTATE_DEEPBLIND: + case EFST_HANDICAPSTATE_DEEPSILENCE: + case EFST_HANDICAPSTATE_LASSITUDE: + case EFST_HANDICAPSTATE_FROSTBITE: + case EFST_HANDICAPSTATE_SWOONING: + case EFST_HANDICAPSTATE_LIGHTNINGSTRIKE: + case EFST_HANDICAPSTATE_CRYSTALLIZATION: + case EFST_HANDICAPSTATE_CONFLAGRATION: + case EFST_HANDICAPSTATE_MISFORTUNE: + case EFST_HANDICAPSTATE_DEADLYPOISON: + case EFST_HANDICAPSTATE_DEPRESSION: + case EFST_HANDICAPSTATE_HOLYFLAME: + case EFST_FIRST_BRAND: + case EFST_SECOND_BRAND: + case EFST_SECOND_JUDGE: + case EFST_THIRD_EXOR_FLAME: + case EFST_FIRST_FAITH_POWER: + case EFST_SOUNDBLEND: + case EFST_CLOUD_POISON: + case EFST_SPORE_EXPLOSION_DEBUFF: + case EFST_CURSE_R_CUBE: + case EFST_CURSE_B_CUBE: + case EFST_KILLING_AURA: + case EFST_BLOCK: break; - case 339: + case EFST_ROLLINGCUTTER: if (aid == g_session.m_aid) { CPlayer* player = this->scene->player; for (int i = 0; i < 10; ++i) { @@ -5169,7 +5176,7 @@ void CGameMode::ApplyStatusChange( std::sprintf(message, ""); } break; - case 434: + case EFST_SIREN: if (aid == g_session.m_aid) { CPlayer* player = this->scene->player; player->SendMsg(nullptr, 109, 0, 879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -5177,7 +5184,7 @@ void CGameMode::ApplyStatusChange( std::sprintf(message, ""); } break; - case 439: + case EFST_SONG_OF_MANA: if (aid == g_session.m_aid) { CPlayer* player = this->scene->player; player->SendMsg(nullptr, 109, 0, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -5185,7 +5192,7 @@ void CGameMode::ApplyStatusChange( std::sprintf(message, ""); } break; - case 441: + case EFST_DANCE_WITH_WUG: if (aid == g_session.m_aid) { CPlayer* player = this->scene->player; player->SendMsg(nullptr, 109, 0, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -5193,7 +5200,7 @@ void CGameMode::ApplyStatusChange( std::sprintf(message, ""); } break; - case 451: + case EFST_LERADS_DEW: if (aid == g_session.m_aid) { CPlayer* player = this->scene->player; player->SendMsg(nullptr, 109, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -5201,426 +5208,426 @@ void CGameMode::ApplyStatusChange( std::sprintf(message, ""); } break; - case 435: + case EFST_DEEP_SLEEP: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); std::sprintf(message, ""); } break; - case 433: + case EFST_NETHERWORLD: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 109, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); std::sprintf(message, ""); } break; - case 358: + case EFST_WUGDASH: if (aid == g_session.m_aid) { this->scene->player->LaunchEffect(752, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); std::sprintf(message, ""); } break; - case 15: + case EFST_IMPOSITIO: std::sprintf(message, LookupMessage(3463)); break; - case 16: + case EFST_SUFFRAGIUM: std::sprintf(message, LookupMessage(467)); break; - case 6: + case EFST_ENCHANTPOISON: std::sprintf(message, LookupMessage(469)); break; - case 17: - case 64: + case EFST_ASPERSIO: + case EFST_WEAPONPROPERTY: std::sprintf(message, LookupMessage(470)); break; - case 18: + case EFST_BENEDICTIO: std::sprintf(message, LookupMessage(472)); break; - case 19: + case EFST_KYRIE: std::sprintf(message, LookupMessage(474)); break; - case 24: + case EFST_WEAPONPERFECT: std::sprintf(message, LookupMessage(476)); break; - case 25: - case 188: + case EFST_OVERTHRUST: + case EFST_OVERTHRUSTMAX: std::sprintf(message, LookupMessage(465)); break; - case 26: + case EFST_MAXIMIZE: std::sprintf(message, LookupMessage(480)); break; - case 12: - case 41: - case 42: + case EFST_INC_AGI: + case EFST_MOVHASTE_POTION: + case EFST_MOVHASTE_INFINITY: std::sprintf(message, LookupMessage(209)); break; - case 13: + case EFST_DEC_AGI: std::sprintf(message, LookupMessage(210)); break; - case 7: + case EFST_POISONREACT: std::sprintf(message, LookupMessage(620)); break; - case 8: + case EFST_QUAGMIRE: std::sprintf(message, LookupMessage(622)); break; - case 9: + case EFST_ANGELUS: std::sprintf(message, LookupMessage(3435)); break; - case 10: + case EFST_BLESSING: std::sprintf(message, LookupMessage(3434)); break; - case 14: + case EFST_SLOWPOISON: std::sprintf(message, LookupMessage(630)); break; - case 20: + case EFST_MAGNIFICAT: std::sprintf(message, LookupMessage(632)); break; - case 21: + case EFST_GLORIA: std::sprintf(message, LookupMessage(634)); break; - case 22: + case EFST_LEXAETERNA: std::sprintf(message, LookupMessage(636)); break; - case 23: - case 147: + case EFST_ADRENALINE: + case EFST_ADRENALINE2: std::sprintf(message, LookupMessage(638)); break; - case 29: + case EFST_TRICKDEAD: std::sprintf(message, ""); if (aid == g_session.m_aid) { this->scene->player->SetAction(64, 4, 1); this->scene->player->render.isMotionFreezed = true; } break; - case 30: + case EFST_SHOUT: std::sprintf(message, LookupMessage(3433)); break; - case 31: + case EFST_ENERGYCOAT: std::sprintf(message, LookupMessage(648)); break; - case 32: + case EFST_BROKENARMOR: std::sprintf(message, LookupMessage(650)); break; - case 33: + case EFST_BROKENWEAPON: std::sprintf(message, LookupMessage(652)); break; - case 182: + case EFST_CHASEWALK2: if (aid == g_session.m_aid) { g_soundMgr->PlayWave("lava_golem_move.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } std::sprintf(message, ""); break; - case 0: - case 1: - case 3: - case 4: - case 5: - case 11: - case 27: - case 28: - case 34: - case 54: - case 55: - case 56: - case 57: - case 61: - case 86: - case 87: - case 95: - case 97: - case 98: - case 103: - case 104: - case 105: - case 107: - case 110: - case 112: - case 113: - case 114: - case 115: - case 116: - case 117: - case 118: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 130: - case 132: - case 133: - case 134: - case 135: - case 137: - case 139: - case 141: - case 143: - case 145: - case 149: - case 150: - case 151: - case 152: - case 153: - case 156: - case 157: - case 158: - case 159: - case 160: - case 165: - case 166: - case 167: - case 169: - case 170: - case 171: - case 181: - case 184: - case 186: - case 191: - case 197: - case 198: - case 199: - case 200: - case 201: - case 203: - case 204: - case 205: - case 206: - case 207: - case 208: - case 209: - case 210: - case 211: - 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 238: - case 239: - case 240: - case 254: - case 255: - case 256: - case 257: - case 258: - case 259: - case 261: - case 262: - case 263: - case 264: - case 265: - case 266: - case 267: - case 268: - case 269: - case 270: - case 282: - case 286: - case 289: - case 290: - case 291: - case 292: - case 293: - case 294: - case 295: - case 296: - case 297: - case 298: - case 299: - case 300: - case 301: - case 302: - case 313: - case 314: - case 316: - case 318: - case 319: - case 320: - case 321: - case 322: - case 323: - case 328: - case 330: - case 333: - case 334: - case 336: - case 337: - case 341: - case 342: - case 343: - case 344: - case 345: - case 346: - case 347: - case 348: - case 349: - case 350: - case 351: - case 352: - case 353: - case 355: - case 357: - case 360: - case 361: - case 362: - case 374: - case 375: - case 377: - case 379: - case 381: - case 382: - case 383: - case 384: - case 385: - case 386: - case 387: - case 388: - case 389: - case 390: - case 393: - case 394: - case 396: - case 397: - case 398: - case 399: - case 401: - case 402: - case 403: - case 404: - case 405: - case 407: - case 408: - case 409: - case 410: - case 411: - case 412: - case 413: - case 414: - case 415: - case 416: - case 417: - case 418: - case 419: - case 421: - case 422: - case 423: - case 425: - case 426: - case 427: - case 429: - case 430: - case 436: - case 437: - case 438: - case 440: - case 442: - case 443: - case 444: - case 445: - case 446: - case 447: - case 450: - case 461: - case 463: - case 464: - case 472: - case 473: - case 476: - case 491: - case 492: - case 493: - case 494: - case 495: - case 496: - case 571: - case 577: - case 580: - case 581: - case 584: - case 605: - case 606: - case 607: - case 608: - case 611: - case 613: - case 618: - case 648: - case 649: - case 670: - case 869: - case 1056: - case 1057: - case 1058: - case 1059: - case 1121: + case EFST_PROVOKE: + case EFST_ENDURE: + case EFST_CONCENTRATION: + case EFST_HIDING: + case EFST_CLOAKING: + case EFST_CRUCIS: + case EFST_RIDING: + case EFST_FALCON: + case EFST_ILLUSION: + case EFST_PROTECTWEAPON: + case EFST_PROTECTSHIELD: + case EFST_PROTECTARMOR: + case EFST_PROTECTHELM: + case EFST_PROVIDENCE: + case EFST_EXPLOSIONSPIRITS: + case EFST_STEELBODY: + case EFST_STOP: + case EFST_PROPERTYUNDEAD: + case EFST_POWERUP: + case EFST_AURABLADE: + case EFST_PARRYING: + case EFST_LKCONCENTRATION: + case EFST_BERSERK: + case EFST_ASSUMPTIO: + case EFST_GROUNDMAGIC: + case EFST_MAGICPOWER: + case EFST_EDP: + case EFST_TRUESIGHT: + case EFST_WINDWALK: + case EFST_MELTDOWN: + case EFST_CARTBOOST: + case EFST_SWORDREJECT: + case EFST_MARIONETTE_MASTER: + case EFST_MARIONETTE: + case EFST_MOON: + case EFST_BLOODING: + case EFST_JOINTBEAT: + case EFST_PROTECTEXP: + case EFST_AUTOBERSERK: + case EFST_RUN: + case EFST_TING: + case EFST_STORMKICK_ON: + case EFST_DOWNKICK_ON: + case EFST_TURNKICK_ON: + case EFST_COUNTER_ON: + case EFST_DODGE_ON: + case EFST_STRUP: + case EFST_SOULLINK: + case EFST_PLUSATTACKPOWER: + case EFST_PLUSMAGICPOWER: + case EFST_DEVIL1: + case EFST_KAITE: + case EFST_KAIZEL: + case EFST_KAAHI: + case EFST_KAUPE: + case EFST_SMA_READY: + case EFST_SKE: + case EFST_SG_SUN_WARM: + case EFST_SG_MOON_WARM: + case EFST_SG_STAR_WARM: + case EFST_SUN_COMFORT: + case EFST_MOON_COMFORT: + case EFST_STAR_COMFORT: + case EFST_PRESERVE: + case EFST_CLAIRVOYANCE: + case EFST_DOUBLECASTING: + case EFST_TAROTCARD: + case EFST_CR_SHRINK: + case EFST_WZ_SIGHTBLASTER: + case EFST_DC_WINKCHARM: + case EFST_RG_CCONFINE_M: + case EFST_RG_CCONFINE_S: + case EFST_GS_MADNESSCANCEL: + case EFST_GS_GATLINGFEVER: + case EFST_EARTHSCROLL: + case EFST_NJ_UTSUSEMI: + case EFST_NJ_BUNSINJYUTSU: + case EFST_NJ_NEN: + case EFST_GS_ADJUSTMENT: + case EFST_GS_ACCURACY: + case EFST_NJ_SUITON: + case EFST_PET: + case EFST_MENTAL: + case EFST_EXPMEMORY: + case EFST_PERFORMANCE: + case EFST_GAIN: + case EFST_GRIFFON: + case EFST_DRIFT: + case EFST_WALLSHIFT: + case EFST_REINCARNATION: + case EFST_PATTACK: + case EFST_PSPEED: + case EFST_PDEFENSE: + case EFST_PCRITICAL: + case EFST_RANKING: + case EFST_PTRIPLE: + case EFST_DENERGY: + case EFST_WAVE1: + case EFST_WAVE2: + case EFST_WAVE3: + case EFST_WAVE4: + case EFST_DAURA: + case EFST_DFREEZER: + case EFST_DPUNISH: + case EFST_DBARRIER: + case EFST_DWARNING: + case EFST_DGAUGE: + case EFST_DACCEL: + case EFST_DBLOCK: + case EFST_DA_ENERGY: + case EFST_DA_FIRSTSLOT: + case EFST_DA_HEADDEF: + case EFST_DA_SPACE: + case EFST_DA_TRANSFORM: + case EFST_DA_ITEMREBUILD: + case EFST_DA_DARKPOWER: + case EFST_DA_EARPLUG: + case EFST_DA_CONTRACT: + case EFST_DA_BLACK: + case EFST_DA_MAGICCART: + case EFST_CRYSTAL: + case EFST_DA_REBUILD: + case EFST_DA_EDARKNESS: + case EFST_DA_EGUARDIAN: + case EFST_DA_TIMEOUT: + case EFST_SLOWCAST: + case EFST_CRITICALWOUND: + case EFST_MOVHASTE_HORSE: + case EFST_PROTECT_DEF: + case EFST_PROTECT_MDEF: + case EFST_HEALPLUS: + case EFST_S_LIFEPOTION: + case EFST_L_LIFEPOTION: + case EFST_CRITICALPERCENT: + case EFST_PLUSAVOIDVALUE: + case EFST_ATKER_ASPD: + case EFST_TARGET_ASPD: + case EFST_ATKER_MOVESPEED: + case EFST_ATKER_BLOOD: + case EFST_TARGET_BLOOD: + case EFST_ARMOR_PROPERTY: + case EFST_PARTYFLEE: + case EFST_ANGEL_PROTECT: + case EFST_ENCHANTBLADE: + case EFST_REFRESH: + case EFST_GIANTGROWTH: + case EFST_STONEHARDSKIN: + case EFST_VITALITYACTIVATION: + case EFST_FIGHTINGSPIRIT: + case EFST_ABUNDANCE: + case EFST_VENOMIMPRESS: + case EFST_ORATIO: + case EFST_CLOAKINGEXCEED: + case EFST_HALLUCINATIONWALK: + case EFST_RENOVATIO: + case EFST_WEAPONBLOCKING: + case EFST_POISONINGWEAPON: + case EFST_TOXIN: + case EFST_PARALYSE: + case EFST_VENOMBLEED: + case EFST_MAGICMUSHROOM: + case EFST_DEATHHURT: + case EFST_PYREXIA: + case EFST_OBLIVIONCURSE: + case EFST_LEECHESEND: + case EFST_DUPLELIGHT: + case EFST_FROSTMISTY: + case EFST_FEARBREEZE: + case EFST_ELECTRICSHOCKER: + case EFST_RECOGNIZEDSPELL: + case EFST_WUGRIDER: + case EFST_CAMOUFLAGE: + case EFST_ACCELERATION: + case EFST_HOVERING: + case EFST_SHAPESHIFT: + case EFST_INFRAREDSCAN: + case EFST_NEUTRALBARRIER: + case EFST_STEALTHFIELD: + case EFST_MANU_ATK: + case EFST_MANU_DEF: + case EFST_SPL_ATK: + case EFST_SPL_DEF: + case EFST_REPRODUCE: + case EFST_MANU_MATK: + case EFST_SPL_MATK: + case EFST_STR_SCROLL: + case EFST_INT_SCROLL: + case EFST_LG_REFLECTDAMAGE: + case EFST_AUTOSHADOWSPELL: + case EFST_SHADOWFORM: + case EFST_SHIELDSPELL_DEF: + case EFST_SHIELDSPELL_MDEF: + case EFST_SHIELDSPELL_REF: + case EFST_BODYPAINT: + case EFST_ADORAMUS: + case EFST_PRESTIGE: + case EFST_INVISIBILITY: + case EFST_DEADLYINFECT: + case EFST_BANDING: + case EFST_INSPIRATION: + case EFST_ENERVATION: + case EFST_GROOMY: + case EFST_RAISINGDRAGON: + case EFST_IGNORANCE: + case EFST_LAZINESS: + case EFST_LIGHTNINGWALK: + case EFST_ACARAJE: + case EFST_UNLUCKY: + case EFST_CURSEDCIRCLE_ATKER: + case EFST_CURSEDCIRCLE_TARGET: + case EFST_WEAKNESS: + case EFST_CRESCENTELBOW: + case EFST_STRIPACCESSARY: + case EFST_MANHOLE: + case EFST_POPECOOKIE: + case EFST_GENTLETOUCH_ENERGYGAIN: + case EFST_GENTLETOUCH_CHANGE: + case EFST_GENTLETOUCH_REVITALIZE: + case EFST_SWING: + case EFST_SYMPHONY_LOVE: + case EFST_SIRCLEOFNATURE: + case EFST_COLD: + case EFST_GLOOMYDAY: + case EFST_CLOUD_KILL: + case EFST_RUSH_WINDMILL: + case EFST_ECHOSONG: + case EFST_HARMONIZE: + case EFST_STRIKING: + case EFST_WARMER: + case EFST_MOONLIT_SERENADE: + case EFST_ANALYZE: + case EFST_GN_CARTBOOST: + case EFST_THORNS_TRAP: + case EFST_BLOOD_SUCKER: + case EFST_AB_SECRAMENT: + case EFST_ASSUMPTIO2: + case EFST_STOMACHACHE: + case EFST_SAVAGE_STEAK: + case EFST_COCKTAIL_WARG_BLOOD: + case EFST_MINOR_BBQ: + case EFST_SIROMA_ICE_TEA: + case EFST_DROCERA_HERB_STEAMED: + case EFST_PUTTI_TAILS_NOODLES: + case EFST_EQUIPED_FLOOR: + case EFST_PAIN_KILLER: + case EFST_LIGHT_OF_REGENE: + case EFST_OVERED_BOOST: + case EFST_STYLE_CHANGE: + case EFST_MAGMA_FLOW: + case EFST_GRANITIC_ARMOR: + case EFST_PYROCLASTIC: + case EFST_VOLCANIC_ASH: + case EFST_MAGIC_CANDY: + case EFST_ALL_RIDING: + case EFST_OVERLAPEXPUP: + case EFST_EQUIPPED_DIVINE_ARMOR: + case EFST_EQUIPPED_HOLY_ARMOR: + case EFST_M_LIFEPOTION: + case EFST_NPC_HALLUCINATIONWALK: + case EFST_SOULSHADOW: + case EFST_SOULFAIRY: + case EFST_SOULFALCON: + case EFST_SOULGOLEM: + case EFST_ASSUMPTIO_BUFF: std::sprintf(message, ""); break; - case 354: + case EFST_MARSHOFABYSS: if (aid == g_session.m_aid) { this->scene->player->LaunchEffect(729, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } std::printf(message, ""); break; - case 260: + case EFST_DA_ILLUSION: if (aid == g_session.m_aid) { g_session.unknown_5450 = 1; } std::sprintf(message, ""); break; - case 241: - case 271: + case EFST_FOOD_STR: + case EFST_FOOD_STR_CASH: std::sprintf(message, LookupMessage(1231)); break; - case 242: - case 272: + case EFST_FOOD_AGI: + case EFST_FOOD_AGI_CASH: std::sprintf(message, LookupMessage(1233)); break; - case 243: - case 273: + case EFST_FOOD_VIT: + case EFST_FOOD_VIT_CASH: std::sprintf(message, LookupMessage(1235)); break; - case 244: - case 274: + case EFST_FOOD_DEX: + case EFST_FOOD_DEX_CASH: std::sprintf(message, LookupMessage(1239)); break; - case 245: - case 275: + case EFST_FOOD_INT: + case EFST_FOOD_INT_CASH: std::sprintf(message, LookupMessage(1237)); break; - case 246: - case 276: + case EFST_FOOD_LUK: + case EFST_FOOD_LUK_CASH: std::sprintf(message, LookupMessage(1241)); break; - case 247: + case EFST_FOOD_BASICAVOIDANCE: std::sprintf(message, LookupMessage(1243)); break; - case 248: + case EFST_FOOD_BASICHIT: std::sprintf(message, LookupMessage(1245)); break; - case 249: + case EFST_FOOD_CRITICALSUCCESSVALUE: std::sprintf(message, LookupMessage(1247)); break; - case 250: + case EFST_CASH_PLUSEXP: { const int minutes = remaining / 60000; if (minutes > 0) { @@ -5631,10 +5638,10 @@ void CGameMode::ApplyStatusChange( } break; } - case 251: + case EFST_CASH_DEATHPENALTY: std::sprintf(message, LookupMessage(1250)); break; - case 252: + case EFST_CASH_RECEIVEITEM: { const int minutes = remaining / 60000; if (minutes > 0) { @@ -5651,13 +5658,13 @@ void CGameMode::ApplyStatusChange( } break; } - case 253: + case EFST_CASH_BOSS_ALARM: if (aid == g_session.m_aid) { this->unknown_05CC[0] = 1; } std::sprintf(message, LookupMessage(1252)); break; - case 312: + case EFST_CASH_PLUSONLYJOBEXP: { const int minutes = remaining / 60000; if (minutes > 0) { @@ -5668,61 +5675,61 @@ void CGameMode::ApplyStatusChange( } break; } - case 636: + case EFST_REWARD_PLUSONLYJOBEXP: { const std::string text = FormatOwnedString(LookupMessage(1924), value2, value1 / 100.0 + 1.0); std::sprintf(message, text.c_str()); break; } - case 621: - case 651: - case 665: + case EFST_MONSTER_TRANSFORM: + case EFST_KYOUGAKU: + case EFST_ACTIVE_MONSTER_TRANSFORM: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 110, 0, type, type >> 31, on, 0, value1, value1 >> 31, 0, 0, 0, 0, 0, 0); this->RefreshStatusStateEffect(aid); } return; - case 673: + case EFST_ON_PUSH_CART: if (aid == g_session.m_aid) { g_session.SetUnknown5C1C(value1); } break; - case 675: + case EFST_FLOWER_LEAF: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 110, 0, 675, 0, on, 0, value1, value1 >> 31, 0, 0, 0, 0, 0, 0); this->RefreshStatusStateEffect(aid); } return; - case 676: + case EFST_RAY_OF_PROTECTION: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 110, 0, 676, 0, on, 0, value1, value1 >> 31, 0, 0, 0, 0, 0, 0); this->RefreshStatusStateEffect(aid); } break; - case 710: + case EFST_HANDICAPSTATE_ICEEXPLO: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 110, 0, 710, 0, on, 0, value1, value1 >> 31, 0, 0, 0, 0, 0, 0); this->RefreshStatusStateEffect(aid); } break; - case 933: + case EFST_SUHIDE: if (aid == g_session.m_aid) { this->scene->player->SetState(48, 1); this->scene->player->render.isMotionFreezed = true; } break; - case 893: + case EFST_SU_STOOP: if (aid == g_session.m_aid) { this->scene->GetGameActorByAID(aid); this->scene->player->SetState(47, 1); } break; - case 373: + case EFST_OVERHEAT: g_session.unknown_7ED4 = timeGetTime(); g_session.unknown_7ED0 = value2 == 0 ? value1 : 0; if (value1 == 0) { for (std::vector::iterator it = g_activeSkillEffects.begin(); it != g_activeSkillEffects.end();) { - if (it->id == 373) { + if (it->id == EFST_OVERHEAT) { g_activeSkillEffects.erase(it); it = g_activeSkillEffects.begin(); } else { @@ -5731,15 +5738,15 @@ void CGameMode::ApplyStatusChange( } } break; - case 1013: + case EFST_ALL_STAT_DOWN: color = 0xFF; std::sprintf(message, LookupMessage(3247)); break; - case 1125: + case EFST_SOULCURSE: g_effectMgr->Spawn(aid, 1362, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_soundMgr->PlayWave("effect\\s포이즌버스터.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 1149: + case EFST_MADOGEAR_TYPE: { CGameActor* actor; if (aid == g_session.m_aid) { @@ -5765,7 +5772,7 @@ void CGameMode::ApplyStatusChange( actor->SendMsg(nullptr, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 432: + case EFST_SPELLFIST: { CRenderObject* actor = this->scene->GetGameActorByAidIncludeMe(aid); if (!actor) { @@ -5784,68 +5791,68 @@ void CGameMode::ApplyStatusChange( } break; } - case 1160: + case EFST_POWERFUL_FAITH: _snprintf_s(message, 256, LookupMessage(3726)); break; - case 1162: + case EFST_FIRM_FAITH: _snprintf_s(message, 256, LookupMessage(3728)); break; - case 1161: + case EFST_SINCERE_FAITH: _snprintf_s(message, 256, LookupMessage(3730)); break; - case 1228: + case EFST_BENEDICTUM: _snprintf_s(message, 256, LookupMessage(3732)); break; - case 1227: + case EFST_RELIGIO: _snprintf_s(message, 256, LookupMessage(3734)); break; - case 1201: + case EFST_COMPETENTIA: _snprintf_s(message, 256, LookupMessage(3736)); break; - case 1200: + case EFST_PRE_ACIES: _snprintf_s(message, 256, LookupMessage(3738)); break; - case 1199: + case EFST_A_TELUM: _snprintf_s(message, 256, LookupMessage(3740)); break; - case 1198: + case EFST_A_VITA: _snprintf_s(message, 256, LookupMessage(3742)); break; - case 1221: + case EFST_ULTIMATE_S: _snprintf_s(message, 256, LookupMessage(3758)); break; - case 1152: + case EFST_CLIMAX: _snprintf_s(message, 256, LookupMessage(3760)); break; - case 1194: + case EFST_POTENT_VENOM: _snprintf_s(message, 256, LookupMessage(3764)); break; - case 1247: + case EFST_PROTECTSHADOWEQUIP: _snprintf_s(message, 256, LookupMessage(3782)); break; - case 1248: + case EFST_RESEARCHREPORT: _snprintf_s(message, 256, LookupMessage(3778)); break; - case 1249: + case EFST_BO_HELL_DUSTY: _snprintf_s(message, 256, LookupMessage(3784)); break; - case 1237: + case EFST_D_MACHINE: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3788)); break; - case 1236: + case EFST_A_MACHINE: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3786)); break; - case 1261: + case EFST_MUSICAL_INTERLUDE: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3799)); break; - case 1250: + case EFST_WINDSIGN: color = 0xFF; StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3807)); break; - case 1245: + case EFST_ABYSS_SLAYER: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3815)); break; - case 1271: + case EFST_SPELL_ENCHANTING: StringFormat(message, 256, static_cast(-1), "%s", LookupMessage(3812)); break; default: @@ -5865,7 +5872,7 @@ void CGameMode::ApplyStatusChange( } else { if (aid == g_session.m_aid) { for (std::vector::iterator it = g_activeSkillEffects.begin(); it != g_activeSkillEffects.end();) { - if (it->id == type && (it->id != 895 || it->unknown_0008 == value1)) { + if (it->id == type && (it->id != EFST_HEAD_EQUIPMENT_EFFECT || it->unknown_0008 == value1)) { g_activeSkillEffects.erase(it); it = g_activeSkillEffects.begin(); } else { @@ -5876,88 +5883,88 @@ void CGameMode::ApplyStatusChange( color = 0xFF; switch (type) { - case 2: - case 37: - case 38: - case 39: - case 68: - case 161: + case EFST_TWOHANDQUICKEN: + case EFST_ATTHASTE_POTION1: + case EFST_ATTHASTE_POTION2: + case EFST_ATTHASTE_POTION3: + case EFST_SPEARQUICKEN: + case EFST_ONEHANDQUICKEN: std::sprintf(message, LookupMessage(464)); break; - case 15: + case EFST_IMPOSITIO: std::sprintf(message, LookupMessage(3464)); break; - case 16: + case EFST_SUFFRAGIUM: std::sprintf(message, LookupMessage(468)); break; - case 6: - case 17: - case 64: + case EFST_ENCHANTPOISON: + case EFST_ASPERSIO: + case EFST_WEAPONPROPERTY: std::sprintf(message, LookupMessage(471)); break; - case 18: + case EFST_BENEDICTIO: std::sprintf(message, LookupMessage(473)); break; - case 19: + case EFST_KYRIE: std::sprintf(message, LookupMessage(475)); break; - case 24: + case EFST_WEAPONPERFECT: std::sprintf(message, LookupMessage(477)); break; - case 25: - case 188: + case EFST_OVERTHRUST: + case EFST_OVERTHRUSTMAX: std::sprintf(message, LookupMessage(466)); break; - case 26: + case EFST_MAXIMIZE: std::sprintf(message, LookupMessage(481)); break; - case 13: + case EFST_DEC_AGI: std::sprintf(message, LookupMessage(209)); break; - case 7: + case EFST_POISONREACT: std::sprintf(message, LookupMessage(621)); break; - case 8: + case EFST_QUAGMIRE: std::sprintf(message, LookupMessage(623)); break; - case 9: + case EFST_ANGELUS: std::sprintf(message, LookupMessage(625)); break; - case 10: + case EFST_BLESSING: std::sprintf(message, LookupMessage(627)); break; - case 14: + case EFST_SLOWPOISON: std::sprintf(message, LookupMessage(631)); break; - case 20: + case EFST_MAGNIFICAT: std::sprintf(message, LookupMessage(633)); break; - case 21: + case EFST_GLORIA: std::sprintf(message, LookupMessage(635)); break; - case 22: + case EFST_LEXAETERNA: std::sprintf(message, LookupMessage(637)); break; - case 23: - case 147: + case EFST_ADRENALINE: + case EFST_ADRENALINE2: std::sprintf(message, LookupMessage(639)); break; - case 29: + case EFST_TRICKDEAD: std::sprintf(message, ""); if (aid == g_session.m_aid) { this->scene->player->SetState(0, 1); this->scene->player->render.isMotionFreezed = false; } break; - case 30: + case EFST_SHOUT: std::sprintf(message, LookupMessage(647)); break; - case 31: + case EFST_ENERGYCOAT: std::sprintf(message, LookupMessage(649)); break; - case 40: - case 12: - case 42: + case EFST_ATTHASTE_INFINITY: + case EFST_INC_AGI: + case EFST_MOVHASTE_INFINITY: if (aid == g_session.m_aid) { for (std::vector::iterator it = g_activeSkillEffects.begin(); it != g_activeSkillEffects.end();) { if (it->id == type) { @@ -5970,14 +5977,14 @@ void CGameMode::ApplyStatusChange( } std::sprintf(message, LookupMessage(210)); break; - case 41: + case EFST_MOVHASTE_POTION: std::sprintf(message, LookupMessage(210)); break; - case 363: - case 364: - case 365: - case 366: - case 367: + case EFST_SUMMON1: + case EFST_SUMMON2: + case EFST_SUMMON3: + case EFST_SUMMON4: + case EFST_SUMMON5: if (aid != g_session.m_aid) { break; } @@ -5996,285 +6003,285 @@ void CGameMode::ApplyStatusChange( } std::sprintf(message, ""); break; - case 0: - case 1: - case 3: - case 4: - case 5: - case 11: - case 27: - case 28: - case 32: - case 33: - case 34: - case 54: - case 55: - case 56: - case 57: - case 86: - case 87: - case 95: - case 97: - case 98: - case 103: - case 104: - case 105: - case 107: - case 110: - case 112: - case 113: - case 114: - case 115: - case 116: - case 117: - case 118: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 130: - case 132: - case 133: - case 134: - case 135: - case 137: - case 139: - case 141: - case 143: - case 145: - case 149: - case 150: - case 151: - case 152: - case 153: - case 156: - case 157: - case 158: - case 159: - case 160: - case 165: - case 166: - case 167: - case 169: - case 170: - case 171: - case 181: - case 182: - case 184: - case 186: - case 191: - case 197: - case 198: - case 199: - case 200: - case 201: - case 203: - case 204: - case 205: - case 206: - case 207: - case 208: - case 209: - case 210: - case 211: - 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 238: - case 239: - case 240: - case 250: - case 251: - case 252: - case 254: - case 255: - case 256: - case 257: - case 258: - case 259: - case 261: - case 262: - case 263: - case 264: - case 265: - case 266: - case 267: - case 268: - case 269: - case 270: - case 282: - case 286: - case 289: - case 290: - case 291: - case 292: - case 293: - case 294: - case 295: - case 296: - case 297: - case 298: - case 299: - case 300: - case 301: - case 302: - case 312: - case 313: - case 314: - case 316: - case 318: - case 319: - case 320: - case 321: - case 322: - case 323: - case 328: - case 330: - case 333: - case 334: - case 336: - case 337: - case 341: - case 342: - case 343: - case 344: - case 345: - case 346: - case 347: - case 348: - case 349: - case 350: - case 351: - case 352: - case 353: - case 354: - case 355: - case 357: - case 360: - case 361: - case 362: - case 373: - case 374: - case 375: - case 377: - case 379: - case 381: - case 382: - case 383: - case 384: - case 385: - case 386: - case 387: - case 388: - case 389: - case 390: - case 393: - case 394: - case 396: - case 397: - case 398: - case 399: - case 401: - case 402: - case 403: - case 404: - case 405: - case 407: - case 408: - case 409: - case 410: - case 411: - case 412: - case 413: - case 414: - case 415: - case 416: - case 417: - case 418: - case 419: - case 421: - case 422: - case 423: - case 425: - case 426: - case 427: - case 429: - case 430: - case 436: - case 437: - case 438: - case 439: - case 440: - case 441: - case 442: - case 443: - case 444: - case 445: - case 446: - case 447: - case 450: - case 451: - case 461: - case 463: - case 464: - case 472: - case 473: - case 476: - case 491: - case 492: - case 493: - case 494: - case 495: - case 496: - case 571: - case 577: - case 580: - case 581: - case 584: - case 605: - case 606: - case 607: - case 608: - case 611: - case 613: - case 618: - case 636: - case 648: - case 649: - case 670: - case 869: - case 1056: - case 1057: - case 1058: - case 1059: - case 1121: + case EFST_PROVOKE: + case EFST_ENDURE: + case EFST_CONCENTRATION: + case EFST_HIDING: + case EFST_CLOAKING: + case EFST_CRUCIS: + case EFST_RIDING: + case EFST_FALCON: + case EFST_BROKENARMOR: + case EFST_BROKENWEAPON: + case EFST_ILLUSION: + case EFST_PROTECTWEAPON: + case EFST_PROTECTSHIELD: + case EFST_PROTECTARMOR: + case EFST_PROTECTHELM: + case EFST_EXPLOSIONSPIRITS: + case EFST_STEELBODY: + case EFST_STOP: + case EFST_PROPERTYUNDEAD: + case EFST_POWERUP: + case EFST_AURABLADE: + case EFST_PARRYING: + case EFST_LKCONCENTRATION: + case EFST_BERSERK: + case EFST_ASSUMPTIO: + case EFST_GROUNDMAGIC: + case EFST_MAGICPOWER: + case EFST_EDP: + case EFST_TRUESIGHT: + case EFST_WINDWALK: + case EFST_MELTDOWN: + case EFST_CARTBOOST: + case EFST_SWORDREJECT: + case EFST_MARIONETTE_MASTER: + case EFST_MARIONETTE: + case EFST_MOON: + case EFST_BLOODING: + case EFST_JOINTBEAT: + case EFST_PROTECTEXP: + case EFST_AUTOBERSERK: + case EFST_RUN: + case EFST_TING: + case EFST_STORMKICK_ON: + case EFST_DOWNKICK_ON: + case EFST_TURNKICK_ON: + case EFST_COUNTER_ON: + case EFST_DODGE_ON: + case EFST_STRUP: + case EFST_SOULLINK: + case EFST_PLUSATTACKPOWER: + case EFST_PLUSMAGICPOWER: + case EFST_DEVIL1: + case EFST_KAITE: + case EFST_KAIZEL: + case EFST_KAAHI: + case EFST_KAUPE: + case EFST_SMA_READY: + case EFST_SKE: + case EFST_SG_SUN_WARM: + case EFST_SG_MOON_WARM: + case EFST_SG_STAR_WARM: + case EFST_SUN_COMFORT: + case EFST_MOON_COMFORT: + case EFST_STAR_COMFORT: + case EFST_PRESERVE: + case EFST_CHASEWALK2: + case EFST_CLAIRVOYANCE: + case EFST_DOUBLECASTING: + case EFST_TAROTCARD: + case EFST_CR_SHRINK: + case EFST_WZ_SIGHTBLASTER: + case EFST_DC_WINKCHARM: + case EFST_RG_CCONFINE_M: + case EFST_RG_CCONFINE_S: + case EFST_GS_MADNESSCANCEL: + case EFST_GS_GATLINGFEVER: + case EFST_EARTHSCROLL: + case EFST_NJ_UTSUSEMI: + case EFST_NJ_BUNSINJYUTSU: + case EFST_NJ_NEN: + case EFST_GS_ADJUSTMENT: + case EFST_GS_ACCURACY: + case EFST_NJ_SUITON: + case EFST_PET: + case EFST_MENTAL: + case EFST_EXPMEMORY: + case EFST_PERFORMANCE: + case EFST_GAIN: + case EFST_GRIFFON: + case EFST_DRIFT: + case EFST_WALLSHIFT: + case EFST_REINCARNATION: + case EFST_PATTACK: + case EFST_PSPEED: + case EFST_PDEFENSE: + case EFST_PCRITICAL: + case EFST_RANKING: + case EFST_PTRIPLE: + case EFST_DENERGY: + case EFST_WAVE1: + case EFST_WAVE2: + case EFST_WAVE3: + case EFST_WAVE4: + case EFST_DAURA: + case EFST_DFREEZER: + case EFST_DPUNISH: + case EFST_DBARRIER: + case EFST_DWARNING: + case EFST_DGAUGE: + case EFST_DACCEL: + case EFST_DBLOCK: + case EFST_CASH_PLUSEXP: + case EFST_CASH_DEATHPENALTY: + case EFST_CASH_RECEIVEITEM: + case EFST_DA_ENERGY: + case EFST_DA_FIRSTSLOT: + case EFST_DA_HEADDEF: + case EFST_DA_SPACE: + case EFST_DA_TRANSFORM: + case EFST_DA_ITEMREBUILD: + case EFST_DA_DARKPOWER: + case EFST_DA_EARPLUG: + case EFST_DA_CONTRACT: + case EFST_DA_BLACK: + case EFST_DA_MAGICCART: + case EFST_CRYSTAL: + case EFST_DA_REBUILD: + case EFST_DA_EDARKNESS: + case EFST_DA_EGUARDIAN: + case EFST_DA_TIMEOUT: + case EFST_SLOWCAST: + case EFST_CRITICALWOUND: + case EFST_MOVHASTE_HORSE: + case EFST_PROTECT_DEF: + case EFST_PROTECT_MDEF: + case EFST_HEALPLUS: + case EFST_S_LIFEPOTION: + case EFST_L_LIFEPOTION: + case EFST_CRITICALPERCENT: + case EFST_PLUSAVOIDVALUE: + case EFST_ATKER_ASPD: + case EFST_TARGET_ASPD: + case EFST_ATKER_MOVESPEED: + case EFST_ATKER_BLOOD: + case EFST_TARGET_BLOOD: + case EFST_ARMOR_PROPERTY: + case EFST_CASH_PLUSONLYJOBEXP: + case EFST_PARTYFLEE: + case EFST_ANGEL_PROTECT: + case EFST_ENCHANTBLADE: + case EFST_REFRESH: + case EFST_GIANTGROWTH: + case EFST_STONEHARDSKIN: + case EFST_VITALITYACTIVATION: + case EFST_FIGHTINGSPIRIT: + case EFST_ABUNDANCE: + case EFST_VENOMIMPRESS: + case EFST_ORATIO: + case EFST_CLOAKINGEXCEED: + case EFST_HALLUCINATIONWALK: + case EFST_RENOVATIO: + case EFST_WEAPONBLOCKING: + case EFST_POISONINGWEAPON: + case EFST_TOXIN: + case EFST_PARALYSE: + case EFST_VENOMBLEED: + case EFST_MAGICMUSHROOM: + case EFST_DEATHHURT: + case EFST_PYREXIA: + case EFST_OBLIVIONCURSE: + case EFST_LEECHESEND: + case EFST_DUPLELIGHT: + case EFST_FROSTMISTY: + case EFST_FEARBREEZE: + case EFST_ELECTRICSHOCKER: + case EFST_MARSHOFABYSS: + case EFST_RECOGNIZEDSPELL: + case EFST_WUGRIDER: + case EFST_CAMOUFLAGE: + case EFST_ACCELERATION: + case EFST_HOVERING: + case EFST_OVERHEAT: + case EFST_SHAPESHIFT: + case EFST_INFRAREDSCAN: + case EFST_NEUTRALBARRIER: + case EFST_STEALTHFIELD: + case EFST_MANU_ATK: + case EFST_MANU_DEF: + case EFST_SPL_ATK: + case EFST_SPL_DEF: + case EFST_REPRODUCE: + case EFST_MANU_MATK: + case EFST_SPL_MATK: + case EFST_STR_SCROLL: + case EFST_INT_SCROLL: + case EFST_LG_REFLECTDAMAGE: + case EFST_AUTOSHADOWSPELL: + case EFST_SHADOWFORM: + case EFST_SHIELDSPELL_DEF: + case EFST_SHIELDSPELL_MDEF: + case EFST_SHIELDSPELL_REF: + case EFST_BODYPAINT: + case EFST_ADORAMUS: + case EFST_PRESTIGE: + case EFST_INVISIBILITY: + case EFST_DEADLYINFECT: + case EFST_BANDING: + case EFST_INSPIRATION: + case EFST_ENERVATION: + case EFST_GROOMY: + case EFST_RAISINGDRAGON: + case EFST_IGNORANCE: + case EFST_LAZINESS: + case EFST_LIGHTNINGWALK: + case EFST_ACARAJE: + case EFST_UNLUCKY: + case EFST_CURSEDCIRCLE_ATKER: + case EFST_CURSEDCIRCLE_TARGET: + case EFST_WEAKNESS: + case EFST_CRESCENTELBOW: + case EFST_STRIPACCESSARY: + case EFST_MANHOLE: + case EFST_POPECOOKIE: + case EFST_GENTLETOUCH_ENERGYGAIN: + case EFST_GENTLETOUCH_CHANGE: + case EFST_GENTLETOUCH_REVITALIZE: + case EFST_SWING: + case EFST_SYMPHONY_LOVE: + case EFST_SIRCLEOFNATURE: + case EFST_COLD: + case EFST_GLOOMYDAY: + case EFST_SONG_OF_MANA: + case EFST_CLOUD_KILL: + case EFST_DANCE_WITH_WUG: + case EFST_RUSH_WINDMILL: + case EFST_ECHOSONG: + case EFST_HARMONIZE: + case EFST_STRIKING: + case EFST_WARMER: + case EFST_MOONLIT_SERENADE: + case EFST_ANALYZE: + case EFST_LERADS_DEW: + case EFST_GN_CARTBOOST: + case EFST_THORNS_TRAP: + case EFST_BLOOD_SUCKER: + case EFST_AB_SECRAMENT: + case EFST_ASSUMPTIO2: + case EFST_STOMACHACHE: + case EFST_SAVAGE_STEAK: + case EFST_COCKTAIL_WARG_BLOOD: + case EFST_MINOR_BBQ: + case EFST_SIROMA_ICE_TEA: + case EFST_DROCERA_HERB_STEAMED: + case EFST_PUTTI_TAILS_NOODLES: + case EFST_EQUIPED_FLOOR: + case EFST_PAIN_KILLER: + case EFST_LIGHT_OF_REGENE: + case EFST_OVERED_BOOST: + case EFST_STYLE_CHANGE: + case EFST_MAGMA_FLOW: + case EFST_GRANITIC_ARMOR: + case EFST_PYROCLASTIC: + case EFST_VOLCANIC_ASH: + case EFST_MAGIC_CANDY: + case EFST_ALL_RIDING: + case EFST_OVERLAPEXPUP: + case EFST_REWARD_PLUSONLYJOBEXP: + case EFST_EQUIPPED_DIVINE_ARMOR: + case EFST_EQUIPPED_HOLY_ARMOR: + case EFST_M_LIFEPOTION: + case EFST_NPC_HALLUCINATIONWALK: + case EFST_SOULSHADOW: + case EFST_SOULFAIRY: + case EFST_SOULFALCON: + case EFST_SOULGOLEM: + case EFST_ASSUMPTIO_BUFF: std::sprintf(message, ""); break; - case 339: + case EFST_ROLLINGCUTTER: if (aid == g_session.m_aid) { CPlayer* player = this->scene->player; for (int i = 0; i < 10; ++i) { @@ -6284,25 +6291,25 @@ void CGameMode::ApplyStatusChange( } std::sprintf(message, ""); break; - case 434: + case EFST_SIREN: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 109, 0, 879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } std::sprintf(message, ""); break; - case 435: + case EFST_DEEP_SLEEP: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } std::sprintf(message, ""); break; - case 433: + case EFST_NETHERWORLD: if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 109, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } std::sprintf(message, ""); break; - case 358: + case EFST_WUGDASH: if (aid == g_session.m_aid) { CPlayer* player = this->scene->player; while (player->HasId(752)) { @@ -6311,66 +6318,66 @@ void CGameMode::ApplyStatusChange( std::sprintf(message, ""); } break; - case 260: + case EFST_DA_ILLUSION: if (aid == g_session.m_aid) { g_session.unknown_5450 = 0; } std::sprintf(message, ""); break; - case 241: - case 271: + case EFST_FOOD_STR: + case EFST_FOOD_STR_CASH: std::sprintf(message, LookupMessage(1232)); break; - case 242: - case 272: + case EFST_FOOD_AGI: + case EFST_FOOD_AGI_CASH: std::sprintf(message, LookupMessage(1234)); break; - case 243: - case 273: + case EFST_FOOD_VIT: + case EFST_FOOD_VIT_CASH: std::sprintf(message, LookupMessage(1236)); break; - case 244: - case 274: + case EFST_FOOD_DEX: + case EFST_FOOD_DEX_CASH: std::sprintf(message, LookupMessage(1240)); break; - case 245: - case 275: + case EFST_FOOD_INT: + case EFST_FOOD_INT_CASH: std::sprintf(message, LookupMessage(1238)); break; - case 246: - case 276: + case EFST_FOOD_LUK: + case EFST_FOOD_LUK_CASH: std::sprintf(message, LookupMessage(1242)); break; - case 247: + case EFST_FOOD_BASICAVOIDANCE: std::sprintf(message, LookupMessage(1244)); break; - case 248: + case EFST_FOOD_BASICHIT: std::sprintf(message, LookupMessage(1246)); break; - case 249: + case EFST_FOOD_CRITICALSUCCESSVALUE: std::sprintf(message, LookupMessage(1248)); break; - case 253: + case EFST_CASH_BOSS_ALARM: if (aid == g_session.m_aid) { this->unknown_05CC[0] = 0; } break; - case 933: + case EFST_SUHIDE: if (aid == g_session.m_aid) { this->scene->player->SetState(0, 1); this->scene->player->render.isMotionFreezed = false; } break; - case 893: + case EFST_SU_STOOP: if (aid == g_session.m_aid) { this->scene->player->SetState(0, 1); } break; - case 1013: + case EFST_ALL_STAT_DOWN: color = 0xFFFF00; std::sprintf(message, LookupMessage(3247)); break; - case 1125: + case EFST_SOULCURSE: { CEffect* effect = g_effectMgr->Find(aid, 1362); if (effect) { @@ -6378,87 +6385,87 @@ void CGameMode::ApplyStatusChange( } break; } - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 448: - case 452: - case 453: - case 454: - case 673: - case 674: - case 716: - case 717: - case 718: - case 719: - case 720: - case 721: - case 728: - case 730: - case 734: - case 735: - case 736: - case 737: - case 779: - case 822: - case 823: - case 825: - case 826: - case 849: - case 856: - case 857: - case 859: - case 863: - case 864: - case 872: - case 895: - case 896: - case 917: - case 919: - case 937: - case 982: - case 1016: - case 1017: - case 1018: - case 1019: - case 1020: - case 1021: - case 1022: - case 1023: - case 1024: - case 1025: - case 1038: - case 1039: - case 1040: - case 1041: - case 1043: - case 1050: - case 1055: - case 1126: - case 1139: - case 1141: - case 1142: - case 1149: - case 1165: - case 1166: - case 1167: - case 1176: - case 1184: - case 1197: - case 1227: - case 1688: + case EFST_WHISTLE: + case EFST_ASSASSINCROSS: + case EFST_POEMBRAGI: + case EFST_APPLEIDUN: + case EFST_HUMMING: + case EFST_DONTFORGETME: + case EFST_FORTUNEKISS: + case EFST_SERVICEFORYOU: + case EFST_RICHMANKIM: + case EFST_ETERNALCHAOS: + case EFST_DRUMBATTLEFIELD: + case EFST_RINGNIBELUNGEN: + case EFST_ROKISWEIL: + case EFST_INTOABYSS: + case EFST_SIEGFRIED: + case EFST_SATURDAY_NIGHT_FEVER: + case EFST_MELODYOFSINK: + case EFST_BEYOND_OF_WARCRY: + case EFST_UNLIMITED_HUMMING_VOICE: + case EFST_ON_PUSH_CART: + case EFST_HAT_EFFECT: + case EFST_OFFERTORIUM: + case EFST_TELEKINESIS_INTENSE: + case EFST_MOONSTAR: + case EFST_STRANGELIGHTS: + case EFST_FULL_THROTTLE: + case EFST_REBOUND: + case EFST_SUPER_STAR: + case EFST_DARKCROW: + case EFST_ILLUSIONDOPING: + case EFST_WIDEWEB: + case EFST_CHILL: + case EFST_BURNT: + case EFST_DECORATION_OF_MUSIC: + case EFST_FLOWERSMOKE: + case EFST_FSTONE: + case EFST_QSCARABA: + case EFST_LJOSALFAR: + case EFST_HAPPINESS_STAR: + case EFST_DRESS_UP: + case EFST_MAPLE_FALLS: + case EFST_MARKING_USE_CHANGEMONSTER: + case EFST_MERMAID_LONGING: + case EFST_MAGICAL_FEATHER: + case EFST_TIME_ACCESSORY: + case EFST_HEAD_EQUIPMENT_EFFECT: + case EFST_SV_ROOTTWIST: + case EFST_BITESCAR: + case EFST_TUNAPARTY: + case EFST_SPRITEMABLE: + case EFST_SOULATTACK: + case EFST_IMMUNE_PROPERTY_NOTHING: + case EFST_IMMUNE_PROPERTY_WATER: + case EFST_IMMUNE_PROPERTY_GROUND: + case EFST_IMMUNE_PROPERTY_FIRE: + case EFST_IMMUNE_PROPERTY_WIND: + case EFST_IMMUNE_PROPERTY_POISON: + case EFST_IMMUNE_PROPERTY_SAINT: + case EFST_IMMUNE_PROPERTY_DARKNESS: + case EFST_IMMUNE_PROPERTY_TELEKINESIS: + case EFST_IMMUNE_PROPERTY_UNDEAD: + case EFST_LUNARSTANCE: + case EFST_UNIVERSESTANCE: + case EFST_SUNSTANCE: + case EFST_FLASHKICK: + case EFST_STARSTANCE: + case EFST_GRAVITYCONTROL: + case EFST_SOULUNITY: + case EFST_SOUND_OF_DESTRUCTION: + case EFST_EARTHSHAKER: + case EFST_MISTY_FROST: + case EFST_MAGIC_POISON: + case EFST_MADOGEAR_TYPE: + case EFST_HELLS_PLANT_ARMOR: + case EFST_RELIEVE_DAMAGE: + case EFST_LOCKON_LASER: + case EFST_DRAGONIC_AURA: + case EFST_CLIMAX_CRYIMP: + case EFST_MEDIALE: + case EFST_RELIGIO: + case EFST_BLOCK: break; default: this->RefreshStatusStateEffect(aid); @@ -6773,7 +6780,7 @@ void CGameMode::ReceiveItemFallEntry(const unsigned char* packet) { // FUNCTION: fn_21681 __declspec(noinline) void CGameMode::ReceiveFeedOption(const unsigned char* packet) { switch (*reinterpret_cast(packet + 2)) { - case 0: { + case CONFIG_OPEN_EQUIPMENT_WINDOW: { *reinterpret_cast(g_session.unknown_5974) = *reinterpret_cast(packet + 6); const char* text = LookupMessage((*reinterpret_cast(g_session.unknown_5974) != 0) + 0x54E); g_windowMgr.SendNotice(1, reinterpret_cast(text), 0x64FFFF, 0, 0, 0); @@ -6782,20 +6789,20 @@ __declspec(noinline) void CGameMode::ReceiveFeedOption(const unsigned char* pack } break; } - case 1: + case CONFIG_CALL: g_serviceOptions.Set(231, *reinterpret_cast(packet + 6) != 0); g_windowMgr.SendNotice( 1, reinterpret_cast(LookupMessage((*reinterpret_cast(packet + 6) != 0) + 0xBA2)), 0x64FFFF, 0, 0, 0 ); g_windowMgr.RefreshGameSettingOption(231); break; - case 2: + case CONFIG_PET_AUTOFEED: g_session.SetPetAutoFeed(*reinterpret_cast(packet + 6) > 0); break; - case 3: + case CONFIG_HOMUNCULUS_AUTOFEED: g_session.SetHomunculusAutoFeed(*reinterpret_cast(packet + 6) > 0); break; - case 5: + case CONFIG_DISABLE_SHOWCOSTUMES: *reinterpret_cast(g_session.unknown_8128) = *reinterpret_cast(packet + 6); break; case 6: @@ -8812,16 +8819,16 @@ void CGameMode::ReceiveEquipItemDamaged(const unsigned char* packet) { MessengerMember member = g_session.PartyByAccount(aid); if (member.valid) { switch (location) { - case 0x20: + case EQP_HAND_L: text = FormatOwnedString(LookupMessage(0x515), member.name.c_str(), LookupMessage(0x109A)); break; - case 2: + case EQP_HAND_R: text = FormatOwnedString(LookupMessage(0x515), member.name.c_str(), LookupMessage(0x109B)); break; - case 0x10: + case EQP_ARMOR: text = FormatOwnedString(LookupMessage(0x515), member.name.c_str(), LookupMessage(0x517)); break; - case 0x100: + case EQP_HEAD_TOP: text = FormatOwnedString(LookupMessage(0x515), member.name.c_str(), LookupMessage(0x10CB)); break; } @@ -9054,7 +9061,7 @@ void CGameMode::ReceivePetChangeState(const unsigned char* data) { const PetChangeStatePacket* packet = reinterpret_cast(data); CGameActor* actor = static_cast(this->scene->GetGameActorByAID(packet->aid)); switch (packet->type) { - case 0: + case CHANGESTATEPET_INIT: g_session.unknown_1010 = packet->aid; if (actor) { g_session.unknown_103C = actor->GetEffectiveJob(-1); @@ -9062,7 +9069,7 @@ void CGameMode::ReceivePetChangeState(const unsigned char* data) { actor->unknown_0314 = 7; } break; - case 1: { + case CHANGESTATEPET_INTIMACY: { const int previousFriendly = g_session.m_petFriendly; const int friendlyState = g_session.GetPetFriendlyState(previousFriendly); g_session.m_petFriendly = packet->value; @@ -9084,7 +9091,7 @@ void CGameMode::ReceivePetChangeState(const unsigned char* data) { this->UpdatePetFriendlyWindow(previousFriendly); break; } - case 2: + case CHANGESTATEPET_HUNGER: g_session.unknown_1054 = g_session.unknown_1044; g_session.unknown_1044 = packet->value; if (actor) { @@ -9095,7 +9102,7 @@ void CGameMode::ReceivePetChangeState(const unsigned char* data) { g_windowMgr.window_038C->Invalidate(); } break; - case 3: + case CHANGESTATEPET_ACCESSORY: if (!actor) { break; } @@ -9111,13 +9118,13 @@ void CGameMode::ReceivePetChangeState(const unsigned char* data) { g_windowMgr.window_038C->Invalidate(); } break; - case 4: + case CHANGESTATEPET_PERFORMANCE: if (actor) { actor->SetUnknown02C8(packet->value); actor->SetState(0, 1); } break; - case 6: + case CHANGESTATEPET_UPDATE_EGG: if (packet->value == 0) { g_session.ResetUnknown1050(); if (UIWindow* window = g_windowMgr.LookupWindow(8)) { @@ -9249,9 +9256,9 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { char text[256]; const char* notice; switch (packet->cause) { - case 0: + case USESKILL_FAIL_LEVEL: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); - if (packet->skillId == 1) { + if (packet->skillId == NV_BASIC) { switch (packet->value) { case 0: notice = LookupMessage(0x9F); @@ -9288,13 +9295,13 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { } } else { switch (packet->skillId) { - case 27: + case AL_WARP: notice = LookupMessage(0xD6); break; - case 50: + case TF_STEAL: notice = LookupMessage(0xCD); break; - case 52: + case TF_POISON: notice = LookupMessage(0xCF); break; default: @@ -9306,39 +9313,39 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { } } break; - case 1: + case USESKILL_FAIL_SP_INSUFFICIENT: notice = LookupMessage(0xCA); break; - case 2: + case USESKILL_FAIL_HP_INSUFFICIENT: notice = LookupMessage(0xCB); break; - case 3: + case USESKILL_FAIL_STUFF_INSUFFICIENT: notice = LookupMessage(0x328); break; - case 4: + case USESKILL_FAIL_SKILLINTERVAL: if (HidesUseFailureMessage(packet->skillId) || !showMessage) { return; } std::sprintf(text, LookupMessage(0x5B4), CSkillInfo::DisplayName(*g_session.m_hotkeyScript, packet->skillId)); notice = text; break; - case 5: + case USESKILL_FAIL_MONEY: notice = LookupMessage(0xE9); break; - case 6: + case USESKILL_FAIL_THIS_WEAPON: notice = LookupMessage(0xEF); break; - case 7: + case USESKILL_FAIL_REDJAMSTONE: notice = LookupMessage(0xF6); break; - case 8: + case USESKILL_FAIL_BLUEJAMSTONE: notice = LookupMessage(0xF7); break; - case 9: + case USESKILL_FAIL_WEIGHTOVER: notice = LookupMessage(0x244); break; - case 10: - if (packet->skillId == 0x8A9 || packet->skillId == 0x8AA || packet->skillId == 0x8AB || packet->skillId == 0x8AC || packet->skillId == 0x8AD) { + case USESKILL_FAIL: + if (packet->skillId == WL_TETRAVORTEX || packet->skillId == WL_TETRAVORTEX_FIRE || packet->skillId == WL_TETRAVORTEX_WATER || packet->skillId == WL_TETRAVORTEX_WIND || packet->skillId == WL_TETRAVORTEX_GROUND) { this->scene->player->SendMsg(nullptr, 0x8F, 0, 0x2DF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->scene->player->SendMsg(nullptr, 0x8F, 0, 0x2E0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->scene->player->SendMsg(nullptr, 0x8F, 0, 0x2E1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -9349,122 +9356,122 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { } notice = LookupMessage(0x11D); break; - case 11: + case USESKILL_FAIL_TOTARGET: notice = LookupMessage(0x574); break; - case 12: + case USESKILL_FAIL_ANCILLA_NUMOVER: notice = LookupMessage(0x575); break; - case 13: + case USESKILL_FAIL_HOLYWATER: notice = LookupMessage(0x576); break; - case 14: + case USESKILL_FAIL_ANCILLA: notice = LookupMessage(0x577); break; - case 15: + case USESKILL_FAIL_DUPLICATE_RANGEIN: notice = LookupMessage(0x578); break; - case 16: + case USESKILL_FAIL_NEED_OTHER_SKILL: notice = LookupMessage(0x579); break; - case 17: + case USESKILL_FAIL_NEED_HELPER: notice = LookupMessage(0x583); break; - case 18: + case USESKILL_FAIL_INVALID_DIR: notice = LookupMessage(0x584); break; - case 19: + case USESKILL_FAIL_SUMMON: notice = LookupMessage(0x585); break; - case 20: + case USESKILL_FAIL_SUMMON_NONE: notice = LookupMessage(0x586); break; - case 21: + case USESKILL_FAIL_IMITATION_SKILL_NONE: notice = LookupMessage(0x587); break; - case 22: + case USESKILL_FAIL_DUPLICATE: notice = LookupMessage(0x588); break; - case 23: + case USESKILL_FAIL_CONDITION: notice = LookupMessage(0x589); break; - case 24: + case USESKILL_FAIL_PAINTBRUSH: notice = LookupMessage(0x591); break; - case 25: + case USESKILL_FAIL_DRAGON: notice = LookupMessage(0x748); break; - case 26: + case USESKILL_FAIL_POS: notice = LookupMessage(0x593); break; - case 27: + case USESKILL_FAIL_HELPER_SP_INSUFFICIENT: notice = LookupMessage(0x594); break; - case 28: + case USESKILL_FAIL_NEER_WALL: notice = LookupMessage(0x789); break; - case 29: + case USESKILL_FAIL_NEED_EXP_1PERCENT: notice = LookupMessage(0x78C); break; - case 30: + case USESKILL_FAIL_CHORUS_SP_INSUFFICIENT: notice = LookupMessage(0x791); break; - case 31: + case USESKILL_FAIL_GC_WEAPONBLOCKING: notice = LookupMessage(0x599); break; - case 32: + case USESKILL_FAIL_GC_POISONINGWEAPON: notice = LookupMessage(0x59A); break; - case 33: + case USESKILL_FAIL_MADOGEAR: notice = LookupMessage(0x59B); break; - case 34: + case USESKILL_FAIL_NEED_EQUIPMENT_KUNAI: notice = LookupMessage(0x79C); break; - case 35: + case USESKILL_FAIL_TOTARGET_PLAYER: notice = LookupMessage(0x7A0); break; - case 36: + case USESKILL_FAIL_SIZE: notice = LookupMessage(0x79F); break; - case 37: + case USESKILL_FAIL_CANONBALL: notice = LookupMessage(0x59F); break; - case 40: + case USESKILL_FAIL_MADOGEAR_HOVERING: notice = LookupMessage(0x5AA); break; - case 43: + case USESKILL_FAIL_GUILLONTINE_POISON: notice = LookupMessage(0x5AD); break; - case 50: + case USESKILL_FAIL_MADOGEAR_RIDE: notice = LookupMessage(0x5B6); break; - case 51: + case USESKILL_FAIL_SPELLBOOK: notice = LookupMessage(0x5C2); break; - case 52: + case USESKILL_FAIL_SPELLBOOK_DIFFICULT_SLEEP: notice = LookupMessage(0x5C3); break; - case 53: + case USESKILL_FAIL_SPELLBOOK_PRESERVATION_POINT: notice = LookupMessage(0x5C4); break; - case 54: + case USESKILL_FAIL_SPELLBOOK_READING: notice = LookupMessage(0x5C5); break; - case 57: + case USESKILL_FAIL_CART: notice = LookupMessage(0x5EF); break; - case 60: + case USESKILL_FAIL_NO_MORE_SPELL: notice = LookupMessage(0x5F2); break; - case 71: { + case USESKILL_FAIL_NEED_ITEM: { ITEM_INFO item; item.SetItemId(packet->itemId); const std::string message = FormatOwnedString(LookupMessage(0x600), item.DisplayName(0).c_str(), packet->value); g_windowMgr.SendNotice(1, reinterpret_cast(message.c_str()), 0xFF, 0xB, 0, 0); return; } - case 72: { + case USESKILL_FAIL_NEED_EQUIPMENT: { ITEM_INFO item; item.SetItemId(packet->itemId); item.identified = 1; @@ -9472,7 +9479,7 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { g_windowMgr.SendNotice(1, reinterpret_cast(message.c_str()), 0xFF, 0xB, 0, 0); return; } - case 73: + case USESKILL_FAIL_COMBOSKILL: if (packet->value == 0) { std::sprintf(text, LookupMessage(0x618)); } else { @@ -9480,7 +9487,7 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { } notice = text; break; - case 74: + case USESKILL_FAIL_SPIRITS: if (packet->value == 0) { std::sprintf(text, LookupMessage(0x61A)); } else { @@ -9488,7 +9495,7 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { } notice = text; break; - case 78: { + case USESKILL_FAIL_NEED_EQUIPPED_WEAPON_CLASS: { const int reason = packet->value; if (reason == 0x15) { notice = LookupMessage(0xA01); @@ -9513,25 +9520,25 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { } break; } - case 79: + case USESKILL_FAIL_EL_SUMMON: notice = LookupMessage(0x6D4); break; - case 80: + case USESKILL_FAIL_RELATIONGRADE: notice = LookupMessage(0x71F); break; - case 81: + case USESKILL_FAIL_STYLE_CHANGE_FIGHTER: notice = LookupMessage(0x720); break; - case 82: + case USESKILL_FAIL_STYLE_CHANGE_GRAPPLER: notice = LookupMessage(0x721); break; - case 83: + case USESKILL_FAIL_THERE_ARE_NPC_AROUND: notice = LookupMessage(0x7A2); break; - case 84: + case USESKILL_FAIL_NEED_MORE_BULLET: notice = LookupMessage(0x9A2); break; - case 85: + case USESKILL_FAIL_COINS: std::memset(text, 0, sizeof(text)); if (packet->value > 0) { StringFormat(text, sizeof(text), static_cast(-1), LookupMessage(0x9F9), packet->value); @@ -9540,95 +9547,95 @@ void CGameMode::ReceiveSkillFailure(const unsigned char* data) { } notice = text; break; - case 86: + case USESKILL_FAIL_SH_TEMPORARY_COMMUNION: notice = LookupMessage(packet->value); break; - case 87: + case USESKILL_FAIL_MAP: notice = LookupMessage(0xA03); break; - case 88: + case USESKILL_FAIL_NEED_SUMMON_SP: notice = LookupMessage(0xA42); break; - case 89: + case USESKILL_FAIL_SAME_VEND: notice = LookupMessage(0xBA6); break; - case 90: { + case USESKILL_FAIL_NEED_BULLETS: { const std::string message = FormatOwnedString(LookupMessage(0xBB5), packet->value); g_windowMgr.SendNotice(1, reinterpret_cast(message.c_str()), 0xFF, 0xB, 0, 0); return; } - case 91: { + case USESKILL_FAIL_NEED_ARROWS: { const std::string message = FormatOwnedString(LookupMessage(0xBBE), packet->value); g_windowMgr.SendNotice(1, reinterpret_cast(message.c_str()), 0xFF, 0xB, 0, 0); return; } - case 92: { + case USESKILL_FAIL_NEED_PARTY: { const std::string message = FormatOwnedString(LookupMessage(0xD82), packet->value); g_windowMgr.SendNotice(1, reinterpret_cast(message.c_str()), 0xFF, 0xB, 0, 0); return; } - case 93: + case USESKILL_FAIL_NEED_PARTY_LEADER: notice = LookupMessage(0xD9A); break; - case 94: + case USESKILL_FAIL_NEED_PARTNER_SP: notice = LookupMessage(0xD9B); break; - case 95: + case USESKILL_FAIL_NEED_WEAPON: notice = LookupMessage(0xDC9); break; - case 96: + case USESKILL_FAIL_NEED_ENERGY_SPHERE: notice = LookupMessage(0xDCA); break; - case 97: + case USESKILL_FAIL_NEED_WEAPON_BLOCKING: notice = LookupMessage(0xDCD); break; - case 98: { + case USESKILL_FAIL_MAX_TRAPS: { const std::string message = FormatOwnedString(LookupMessage(0xE00), packet->value); g_windowMgr.SendNotice(1, reinterpret_cast(message.c_str()), 0xFF, 0xB, 0, 0); return; } - case 99: + case USESKILL_FAIL_NEED_MAGIC_SPELLBOOK: notice = LookupMessage(0xE14); break; - case 100: + case USESKILL_FAIL_AP_INSUFFICIENT: notice = LookupMessage(0xE3B); break; - case 101: { + case USESKILL_FAIL_NEED_SERVANT_WEAPON: { const std::string message = FormatOwnedString(LookupMessage(0xEBD), packet->value); g_windowMgr.SendNotice(1, reinterpret_cast(message.c_str()), 0xFF, 0xB, 0, 0); return; } - case 102: + case USESKILL_FAIL_NEED_TWINKLING_GALAXY: notice = LookupMessage(0xF75); break; - case 103: + case USESKILL_FAIL_NEED_SOUL_ENGERY: notice = LookupMessage(0xF76); break; - case 104: + case USESKILL_FAIL_NEED_AMULET: notice = LookupMessage(0xF77); break; - case 105: + case USESKILL_FAIL_NEED_GATLING_SHOTGUT: notice = LookupMessage(0xF78); break; - case 106: + case USESKILL_FAIL_NEED_RIFLE_REVOLVER: notice = LookupMessage(0xF79); break; - case 107: + case USESKILL_FAIL_NEED_GLAUNCHER_RIFLE: notice = LookupMessage(0xF7A); break; - case 108: + case USESKILL_FAIL_NEED_GATLING_REVOLVER: notice = LookupMessage(0xF7B); break; - case 109: + case USESKILL_FAIL_NEED_SHOTGUN_GLAUNCHER: notice = LookupMessage(0xF7C); break; - case 110: + case USESKILL_FAIL_NEED_SHIELD: notice = LookupMessage(0xF7D); break; - case 111: + case USESKILL_FAIL_TARGET_SHADOW_SPACE: notice = LookupMessage(0xF80); break; - case 112: + case USESKILL_FAIL_MAX: notice = LookupMessage(0xF93); break; case 113: @@ -10368,7 +10375,7 @@ void CGameMode::ReceiveActorDisappear(const unsigned char* data) { } switch (packet->type) { - case 0: + case CLR_OUTSIGHT: if (CRenderObject* actor = this->scene->GetGameActorByAID(packet->aid)) { actor->SendMsg(nullptr, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->SendMsg(13, packet->aid, 0, 0, 0); @@ -10380,7 +10387,7 @@ void CGameMode::ReceiveActorDisappear(const unsigned char* data) { g_windowMgr.window_02C8->SendMsg(nullptr, 6, 34, packet->aid, 0, 0); } break; - case 1: { + case CLR_DEAD: { if (CGameActor* actor = static_cast(this->scene->GetGameActorByAID(packet->aid))) { CPlayer* player = this->scene->player; if (packet->aid == static_cast(player->unknown_051C)) { @@ -10447,7 +10454,7 @@ void CGameMode::ReceiveActorDisappear(const unsigned char* data) { RefreshPartyWindows(&g_session); break; } - case 2: + case CLR_RESPAWN: if (CRenderObject* actor = this->scene->GetGameActorByAID(packet->aid)) { this->LaunchDummyEffect(&actor->render.position, 0x13A, 600, 0); } @@ -10459,7 +10466,7 @@ void CGameMode::ReceiveActorDisappear(const unsigned char* data) { this->SendMsg(13, packet->aid, 0, 0, 0); } break; - case 3: + case CLR_TELEPORT: if (CGameActor* actor = static_cast(this->scene->GetGameActorByAID(packet->aid))) { if (!StateFlag06(actor->GetStateFlags())) { this->LaunchDummyEffect(&actor->render.position, 0x130, 300, 0); @@ -11204,7 +11211,7 @@ void LaunchSkillCastEffect(CGameMode* mode, CGameActor* source, CGameActor* targ source->Face(target->render.position.x, target->render.position.z); CEffect* effect; - if (skillId == 0x14A4) { + if (skillId == CD_FRAMEN) { effect = g_effectMgr->Spawn(target->render.accountId, 0x78A, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -11216,10 +11223,10 @@ void LaunchSkillCastEffect(CGameMode* mode, CGameActor* source, CGameActor* targ target->SendMsg(nullptr, 0x56, 0, 0x3C, 0, delayFrames, delayFrames >> 31, 0, 0, 0, 0, 0, 0, 0, 0); switch (skillId) { - case 0x1EA: + case CR_ACIDDEMONSTRATION: mode->LaunchTargetEffect(0x21B, source, target, -1); return; - case 0x89A: { + case WL_SOULEXPANSION: { const float speed = target->render.speed; effect = g_effectMgr->Spawn(target->render.accountId, 0x635, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); const int duration = static_cast(speed * 150.0f + 200.0f) + delay; @@ -11232,22 +11239,22 @@ void LaunchSkillCastEffect(CGameMode* mode, CGameActor* source, CGameActor* targ } return; } - case 0x89C: + case WL_JACKFROST: target->SendMsg(nullptr, 0x57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); target->SendMsg(nullptr, 0x56, 0, 0x5A8, 0, delayFrames, delayFrames >> 31, 0, 0, 0, 0, 0, 0, 0, 0); return; - case 0x8A6: + case WL_CHAINLIGHTNING: target->SendMsg(nullptr, 0x57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x665, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x8BC: + case RA_AIMEDBOLT: target->SendMsg(nullptr, 0x57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); effect = g_effectMgr->Spawn(target->render.accountId, 0x673, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x8D3: + case NC_FLAMELAUNCHER: if (CRagEffect* ragEffect = source->LaunchEffect(0x313, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { vector3d position = target->render.position; ragEffect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); @@ -11356,30 +11363,30 @@ void NoticeSkillUse(CGameActor* target, CGameActor* source, std::uint16_t skillI // FUNCTION: fn_21966 void ApplyActorSkillState(CGameActor* actor, std::uint16_t skillId, int duration) { switch (skillId) { - case 0x39: - case 0x3E: - case 0x154B: + case KN_BRANDISHSPEAR: + case KN_BOWLINGBASH: + case HN_DOUBLEBOWLINGBASH: actor->render.isMotionFreezed = true; actor->unknown_0278 = timeGetTime() + duration; break; - case 0x105: - case 0x3F7: + case MO_CALLSPIRITS: + case MO_KITRANSLATION: actor->SetFrameSequence(96, 0, 0, 96, 0, 0, 0, 0); break; - case 0x10C: + case MO_STEELBODY: actor->SetFrameSequence(96, 0, 0, 96, 0, 1, duration + 1000, 0); break; - case 0x191: + case CH_SOULCOLLECT: actor->SetFrameSequence(96, 0, 0, 96, 0, 0, 0, 0); actor->LaunchEffect(0x192, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x8A9: + case WL_TETRAVORTEX: actor->SendMsg(nullptr, 0x8F, 0, 0x2DF, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0); actor->SendMsg(nullptr, 0x8F, 0, 0x2E1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0); actor->SendMsg(nullptr, 0x8F, 0, 0x2E0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0); actor->SendMsg(nullptr, 0x8F, 0, 0x2E2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 0x14C4: + case ABC_CHAIN_REACTION_SHOT: actor->SetFrameSequence(88, 0, 0, 88, 0, 0, 0, 0); break; } @@ -11490,7 +11497,7 @@ void CGameMode::ReceiveExpChange(const unsigned char* packet) { std::int64_t& nextJobExp = *reinterpret_cast(&g_session.unknown_162C[0x14]); std::int64_t& jobExp = *reinterpret_cast(&g_session.unknown_162C[0x1C]); switch (*reinterpret_cast(packet + 2)) { - case 1: + case SP_BASEEXP: if (g_session.IsAdminSubMode(2)) { char text[256]; std::memset(text, 0, sizeof(text)); @@ -11508,12 +11515,12 @@ void CGameMode::ReceiveExpChange(const unsigned char* packet) { g_session.InvalidateWindowFrames(); static_cast(reinterpret_cast(g_windowMgr.unknown_01DC)->baseExpBar)->SetValues(exp, nextExp); break; - case 2: + case SP_JOBEXP: jobExp = *reinterpret_cast(packet + 4); g_session.InvalidateWindowFrames(); static_cast(reinterpret_cast(g_windowMgr.unknown_01DC)->jobExpBar)->SetValues(jobExp, nextJobExp); break; - case 20: + case SP_ZENY: if (*reinterpret_cast(&this->unknown_0100[0x14])) { *reinterpret_cast(&this->unknown_0100[0x14]) = 0; g_session.ResetSlots(); @@ -11522,12 +11529,12 @@ void CGameMode::ReceiveExpChange(const unsigned char* packet) { g_session.RefreshHpSpWindows(); g_session.InvalidateWindowFrames(); break; - case 22: + case SP_NEXTBASEEXP: nextExp = *reinterpret_cast(packet + 4); g_session.InvalidateWindowFrames(); static_cast(reinterpret_cast(g_windowMgr.unknown_01DC)->baseExpBar)->SetValues(exp, nextExp); break; - case 23: + case SP_NEXTJOBEXP: nextJobExp = *reinterpret_cast(packet + 4); g_session.InvalidateWindowFrames(); static_cast(reinterpret_cast(g_windowMgr.unknown_01DC)->jobExpBar)->SetValues(jobExp, nextJobExp); @@ -16031,7 +16038,7 @@ void CGameMode::UpdatePartyMemberInfo( // OFFSET: 0x00D5B940 // FUNCTION: fn_21965 void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t skillId, int delay, int effectId) { - if (skillId == 0x3E || skillId == 0x39) { + if (skillId == KN_BOWLINGBASH || skillId == KN_BRANDISHSPEAR) { return; } @@ -16114,19 +16121,19 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s } return; } - case 0x7D6: + case RK_IGNITIONBREAK: effect = g_effectMgr->Spawn(actor->render.accountId, 0x65A, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x7F0: + case GC_POISONSMOKE: actor->LaunchEffect(0x300, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); return; - case 0x89E: + case WL_RECOGNIZEDSPELL: actor->LaunchEffect(0x323, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); return; - case 0x8A9: + case WL_TETRAVORTEX: if (g_serviceOptions.Get(0xE5)) { effect = g_effectMgr->Spawn(actor->render.accountId, 0x5A0, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { @@ -16144,7 +16151,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x8A5: + case WL_COMET: if (g_serviceOptions.Get(0xE5)) { effect = g_effectMgr->Spawn(actor->render.accountId, 0x600, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { @@ -16162,25 +16169,25 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x89C: + case WL_JACKFROST: effect = g_effectMgr->Spawn(actor->render.accountId, g_serviceOptions.Get(0xE5) ? 0x607 : 0x5A6, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x8A4: + case WL_HELLINFERNO: effect = g_effectMgr->Spawn(actor->render.accountId, 0x610, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x804: + case AB_CLEARANCE: effect = g_effectMgr->Spawn(actor->render.accountId, 0x617, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x89A: + case WL_SOULEXPANSION: effect = g_effectMgr->Spawn(actor->render.accountId, 0x633, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16190,7 +16197,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x7F6: + case AB_JUDEX: effect = g_effectMgr->Spawn(actor->render.accountId, 0x65D, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16200,20 +16207,20 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x8A6: + case WL_CHAINLIGHTNING: g_effectMgr->Spawn(actor->render.accountId, 0x663, origin.x, origin.y, origin.z, 0, -1, 0, 0); effect = g_effectMgr->Spawn(actor->render.accountId, 0x664, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x8BC: + case RA_AIMEDBOLT: effect = g_effectMgr->Spawn(actor->render.accountId, 0x671, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x8D5: { + case NC_ARMSCANNON: { float angle = static_cast(g_modeMgr.GetGameMode())->CameraDesiredYaw() + actor->render.angle; if (angle >= 360.0f) { angle -= 360.0f; @@ -16251,7 +16258,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s } return; } - case 0x9A0: { + case SO_EL_CURE: { g_soundMgr->PlayWave("_heal_effect.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); CRagEffect* ragEffect = actor->LaunchEffect(0xD8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (ragEffect) { @@ -16260,7 +16267,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s } return; } - case 0x98F: { + case SO_DIAMONDDUST: { vector3d position{0.0f, 0.0f, 0.0f}; static_cast(g_modeMgr.GetGameMode())->CellCenter(x, y, position.x, position.z); position.y = static_cast(g_modeMgr.GetGameMode())->scene->terrain->Height(position.x, position.z); @@ -16270,8 +16277,8 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s } return; } - case 0x2E0: - case 0x991: { + case NPC_PSYCHIC_WAVE: + case SO_PSYCHIC_WAVE: { vector3d position{0.0f, 0.0f, 0.0f}; static_cast(g_modeMgr.GetGameMode())->CellCenter(x, y, position.x, position.z); position.y = static_cast(g_modeMgr.GetGameMode())->scene->terrain->Height(position.x, position.z); @@ -16281,7 +16288,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s } return; } - case 0x9AD: + case GN_CARTCANNON: if (g_serviceOptions.Get(0xE5)) { effect = g_effectMgr->Spawn(actor->render.accountId, 0x5DB, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { @@ -16299,8 +16306,8 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x2E1: - case 0x911: + case NPC_RAYOFGENESIS: + case LG_RAYOFGENESIS: effect = g_effectMgr->Spawn(actor->render.accountId, 0x591, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16310,7 +16317,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x996: + case SO_VARETYR_SPEAR: if (!g_serviceOptions.Get(0xE5)) { effect = g_effectMgr->Spawn(actor->render.accountId, 0x61B, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { @@ -16322,16 +16329,16 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x8FE: + case SC_MAELSTROM: actor->LaunchEffect(0x10, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); return; - case 0x927: + case SR_GATEOFHELL: effect = g_effectMgr->Spawn(actor->render.accountId, 0x625, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x9D5: + case SR_HOWLINGOFLION: effect = g_effectMgr->Spawn(actor->render.accountId, 0x62A, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16341,7 +16348,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x96D: + case WM_METALICSOUND: effect = g_effectMgr->Spawn(actor->render.accountId, 0x62D, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16351,7 +16358,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x9B2: + case GN_WALLOFTHORN: effect = g_effectMgr->Spawn(actor->render.accountId, 0x654, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16364,13 +16371,13 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x9BC: + case GN_MANDRAGORA: effect = g_effectMgr->Spawn(actor->render.accountId, 0x669, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x97D: + case WM_SOUND_OF_DESTRUCTION: effect = g_effectMgr->Spawn(actor->render.accountId, 0x66A, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16380,7 +16387,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x90D: + case LG_OVERBRAND: effect = g_effectMgr->Spawn(actor->render.accountId, 0x697, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16393,7 +16400,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x145E: + case AG_DEADLY_PROJECTION: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6CA, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16403,8 +16410,8 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x145F: - case 0x1472: + case AG_DESTRUCTIVE_HURRICANE: + case AG_STORM_CANNON: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6C6, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16415,7 +16422,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->AddEvent(0, "effect\\EF_BeginSpell.wav", 0, 0); } return; - case 0x1464: + case AG_SOUL_VC_STRIKE: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6CE, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16425,7 +16432,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1471: + case AG_ROCK_DOWN: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6D3, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16435,7 +16442,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1460: + case AG_RAIN_OF_CRYSTAL: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6D9, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16445,7 +16452,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1473: + case AG_CRIMSON_ARROW: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6DD, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16455,7 +16462,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1462: + case AG_VIOLENT_QUAKE: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6E1, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16465,7 +16472,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x146E: + case AG_ASTRAL_STRIKE: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6E9, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16475,7 +16482,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1461: + case AG_MYSTERY_ILLUSION: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6ED, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16485,7 +16492,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x146B: + case AG_TORNADO_STORM: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6F2, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16495,7 +16502,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1475: + case AG_FROZEN_SLASH: effect = g_effectMgr->Spawn(actor->render.accountId, 0x6F6, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16505,7 +16512,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1470: + case AG_CLIMAX: g_effectMgr->Spawn(actor->render.accountId, 0x70A, origin.x, origin.y, origin.z, 0, -1, 0, 0); effect = g_effectMgr->Spawn(actor->render.accountId, 0x70B, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { @@ -16513,7 +16520,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay - 200); } return; - case 0x146D: + case AG_FLORAL_FLARE_ROAD: effect = g_effectMgr->Spawn(actor->render.accountId, 0x70D, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16523,7 +16530,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1466: + case AG_ALL_BLOOM: effect = g_effectMgr->Spawn(actor->render.accountId, 0x704, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16533,49 +16540,49 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x147E: + case IQ_FIRST_FAITH_POWER: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7B8, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x147F: + case IQ_JUDGE: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7BB, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x1486: + case IQ_THIRD_EXOR_FLAME: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7BF, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x1495: + case CD_MEDIALE_VOTUM: effect = g_effectMgr->Spawn(actor->render.accountId, 0x711, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x1497: + case CD_ARGUTUS_VITA: effect = g_effectMgr->Spawn(actor->render.accountId, 0x714, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x1498: + case CD_ARGUTUS_TELUM: effect = g_effectMgr->Spawn(actor->render.accountId, 0x716, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x149B: + case CD_PRESENS_ACIES: effect = g_effectMgr->Spawn(actor->render.accountId, 0x718, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x1499: + case CD_ARBITRIUM: effect = g_effectMgr->Spawn(actor->render.accountId, 0x71F, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16588,7 +16595,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x149E: { + case CD_COMPETENTIA: { if (!g_serviceOptions.Get(0xE5)) { effect = g_effectMgr->Spawn(actor->render.accountId, 0x73B, actor->render.position.x, actor->render.position.y, actor->render.position.z, 0, -1, 0, 0); if (effect) { @@ -16612,7 +16619,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s static_cast(g_modeMgr.GetGameMode())->scene->objects.push_back(scope); return; } - case 0x1469: + case AG_CRYSTAL_IMPACT: effect = g_effectMgr->Spawn(actor->render.accountId, 0x740, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16622,37 +16629,37 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x14B8: + case MT_SUMMON_ABR_MOTHER_NET: effect = g_effectMgr->Spawn(actor->render.accountId, 0x76D, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14A1: + case CD_RELIGIO: effect = g_effectMgr->Spawn(actor->render.accountId, 0x745, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14D7: + case WH_FLAMETRAP: effect = g_effectMgr->Spawn(actor->render.accountId, 0x781, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14D3: + case WH_DEEPBLINDTRAP: effect = g_effectMgr->Spawn(actor->render.accountId, 0x751, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14D5: + case WH_SWIFTTRAP: effect = g_effectMgr->Spawn(actor->render.accountId, 0x755, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14D4: + case WH_SOLIDTRAP: effect = g_effectMgr->Spawn(actor->render.accountId, 0x758, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16662,7 +16669,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x14C6: + case ABC_ABYSS_SLAYER: effect = g_effectMgr->Spawn(actor->render.accountId, 0x84F, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16672,7 +16679,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x14A2: + case CD_BENEDICTUM: if (!g_serviceOptions.Get(0xE5)) { effect = g_effectMgr->Spawn(actor->render.accountId, 0x760, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { @@ -16684,13 +16691,13 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x149F: + case CD_PNEUMATICUS_PROCELLA: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7A6, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14A0: + case CD_DILECTIO_HEAL: if (!g_serviceOptions.Get(0xE5)) { effect = g_effectMgr->Spawn(actor->render.accountId, 0x785, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { @@ -16702,7 +16709,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1465: + case AG_STRANTUM_TREMOR: effect = g_effectMgr->Spawn(actor->render.accountId, 0x762, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16712,31 +16719,31 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x14B9: + case MT_SUMMON_ABR_INFINITY: effect = g_effectMgr->Spawn(actor->render.accountId, 0x774, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14B6: + case MT_SUMMON_ABR_BATTLE_WARIOR: effect = g_effectMgr->Spawn(actor->render.accountId, 0x78F, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14B7: + case MT_SUMMON_ABR_DUAL_CANNON: effect = g_effectMgr->Spawn(actor->render.accountId, 0x77C, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14D1: + case WH_HAWKBOOMERANG: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7B1, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); } return; - case 0x14F8: + case EM_INCREASING_ACTIVITY: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7C9, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16746,7 +16753,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x14F7: + case EM_ACTIVITY_BURN: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7D4, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16756,7 +16763,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1503: + case EM_SUMMON_ELEMENTAL_SERPENS: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7DA, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16766,7 +16773,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x14C4: + case ABC_CHAIN_REACTION_SHOT: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7DE, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16776,7 +16783,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x1500: + case EM_SUMMON_ELEMENTAL_DILUVIO: effect = g_effectMgr->Spawn(actor->render.accountId, 0x7E5, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16786,7 +16793,7 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->SetLifeTime(delay); } return; - case 0x14F3: + case TR_NIPELHEIM_REQUIEM: effect = g_effectMgr->Spawn(actor->render.accountId, 0x81C, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay); @@ -16796,13 +16803,13 @@ void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t s effect->unknown_002C = delay; } return; - case 0x14F1: + case TR_MUSICAL_INTERLUDE: effect = g_effectMgr->Spawn(actor->render.accountId, 0x84B, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay + 50); } return; - case 0x1F79: + case MH_HEILIGE_PFERD: effect = g_effectMgr->Spawn(actor->render.accountId, 0x91D, origin.x, origin.y, origin.z, 0, -1, 0, 0); if (effect) { effect->SetLifeTime(delay + 50); @@ -16822,11 +16829,11 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t int action = -1; if (source != nullptr) { - if (skillId == 0xF9 || skillId == 0x201C) { + if (skillId == CR_AUTOGUARD || skillId == ML_AUTOGUARD) { source->SetState(2, 1); } - if (g_session.IsMonsterActor(source) == 0 && skillId != 9) { - if (skillId == 0x14E || skillId == 0x14F) { + if (g_session.IsMonsterActor(source) == 0 && skillId != MG_SRECOVERY) { + if (skillId == WE_MALE || skillId == WE_FEMALE) { this->SendMsg(0x56, skillId, reinterpret_cast(source), targetAid, 0); } else { this->SendMsg(0x56, skillId, reinterpret_cast(source), level, 0); @@ -16843,17 +16850,17 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } if (action == -1) { switch (skillId) { - case 0x107: - case 0x110: - case 0x111: - case 0x173: - case 0x917: - case 0x918: - case 0x919: - case 0xA13: - case 0x14C4: - case 0x14CA: - case 0x14CF: + case MO_TRIPLEATTACK: + case MO_CHAINCOMBO: + case MO_COMBOFINISH: + case CH_TIGERFIST: + case SR_SKYNETBLOW: + case SR_EARTHSHAKER: + case SR_FALLENEMPIRE: + case SJ_NEWMOONKICK: + case ABC_CHAIN_REACTION_SHOT: + case ABC_FRENZY_SHOT: + case WH_HAWK_M: break; default: { int effectId; @@ -16884,15 +16891,15 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } switch (skillId) { - case 0x7C: - case 0x83: + case HT_REMOVETRAP: + case HT_SPRINGTRAP: if (CRenderObject* skill = this->scene->GetSkillByAID(targetAid)) { if (source != nullptr) { source->Face(skill->render.position.x, skill->render.position.z); } } break; - case 0xF4: + case AM_REST: if (sourceAid == g_session.m_aid) { if (g_windowMgr.window_03C0 != nullptr) { g_windowMgr.CloseWindow(0x71); @@ -16904,36 +16911,36 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_session.unknown_5614 = 0; } break; - case 0x309: + case NPC_RANDOMBREAK: if (target != nullptr) { if (CRagEffect* effect = target->LaunchEffect(0x985, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&target->render.position), 0, 0, 0, 0); } } break; - case 0x30A: + case NPC_STRIP_SHADOW: if (target != nullptr) { if (CRagEffect* effect = target->LaunchEffect(0x984, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&target->render.position), 0, 0, 0, 0); } } break; - case 0xC: - case 0x12: - case 0x15: - case 0x46: - case 0x4F: - case 0x53: - case 0x55: - case 0x59: - case 0x6E: - case 0x1DE: - case 0x2D3: - case 0x2DD: - case 0x301: - case 0x138E: - case 0x13A4: - case 0x13B2: + case MG_SAFETYWALL: + case MG_FIREWALL: + case MG_THUNDERSTORM: + case PR_SANCTUARY: + case PR_MAGNUS: + case WZ_METEOR: + case WZ_VERMILION: + case WZ_STORMGUST: + case BS_HAMMERFALL: + case CR_SLIMPITCHER: + case NPC_STORMGUST2: + case NPC_MAGMA_ERUPTION: + case NPC_RAINOFMETEOR: + case NC_MAGMA_ERUPTION: + case SU_CN_METEOR: + case SU_CN_METEOR2: if (source != nullptr) { float x; float z; @@ -16956,49 +16963,49 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t if (level < 1) { effectLevel = 1; } else if (level > 10) { - effectLevel = skillId != 9 ? 10 : level; + effectLevel = skillId != MG_SRECOVERY ? 10 : level; } switch (skillId) { - case 0x4B: + case PR_GLORIA: if (source != nullptr) { source->LaunchEffect(0x4B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x47: + case PR_SLOWPOISON: if (g_serviceType == 0 && target != nullptr) { target->LaunchEffect(0x88, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x70: + case BS_WEAPONPERFECT: if (target != nullptr) { target->LaunchEffect(0x67, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x72: + case BS_MAXIMIZE: if (source != nullptr) { source->LaunchEffect(0x68, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8A: - case 0x8D: + case AS_ENCHANTPOISON: + case AS_SPLASHER: if (target != nullptr) { target->LaunchEffect(0x7D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8B: + case AS_POISONREACT: if (target != nullptr) { target->LaunchEffect(0x7E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x3C: - case 0x1EF: + case KN_TWOHANDQUICKEN: + case KN_ONEHAND: if (source != nullptr) { source->SendMsg(nullptr, 109, 0, 0x82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->LaunchEffect(0x82, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x3D: + case KN_AUTOCOUNTER: if (source != nullptr) { source->SendMsg(nullptr, 0x52, 0, level * 400, (level * 400) >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->SetState(13, 1); @@ -17007,49 +17014,49 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x42: + case PR_IMPOSITIO: if (target != nullptr) { target->LaunchEffect(0x54, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x43: + case PR_SUFFRAGIUM: if (target != nullptr) { target->LaunchEffect(0x58, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x44: + case PR_ASPERSIO: if (target != nullptr) { target->LaunchEffect(0x56, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x23: + case AL_CURE: if (target != nullptr) { target->LaunchEffect(0x42, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x48: + case PR_STRECOVERY: if (target != nullptr) { target->LaunchEffect(0x4E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x4E: - case 0x2D7: - case 0x13D0: + case PR_LEXAETERNA: + case NPC_LEX_AETERNA: + case AB_VITUPERATUM: if (target != nullptr) { target->LaunchEffect(0x55, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x51: + case WZ_SIGHTRASHER: if (source != nullptr) { source->LaunchEffect(0x3E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x58: + case WZ_FROSTNOVA: if (target != nullptr) { target->LaunchEffect(0x1C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x83: + case HT_SPRINGTRAP: if (source != nullptr) { if (CRenderObject* skill = this->scene->GetSkillByAID(targetAid)) { static_cast(skill)->LaunchEffect(0x6F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -17060,12 +17067,12 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x7C: + case HT_REMOVETRAP: if (CRenderObject* skill = this->scene->GetSkillByAID(targetAid)) { static_cast(skill)->LaunchEffect(0x64, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x36: + case ALL_RESURRECTION: if (target != nullptr) { target->LaunchEffect(0x4D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (IsPlayerJob(target->GetEffectiveJob(-1))) { @@ -17073,135 +17080,135 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x35: + case TF_DETOXIFY: if (target != nullptr) { target->LaunchEffect(0x15, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x32: + case TF_STEAL: if (target != nullptr) { target->LaunchEffect(0x12, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x10: - if (target != nullptr && skillId == 0x10) { + case MG_STONECURSE: + if (target != nullptr && skillId == MG_STONECURSE) { target->LaunchEffect(0x17, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("_stonecurse.wav", target->render.position.x - this->scene->player->render.position.x, 0.0f, target->render.position.z - this->scene->player->render.position.z, 250, 40, 1.0f, 0); } break; - case 0x1E: + case AL_DECAGI: if (target != nullptr) { target->LaunchEffect(0x26, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F: + case AL_HOLYWATER: if (source != nullptr) { source->LaunchEffect(0x27, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x20: + case AL_CRUCIS: if (source != nullptr) { source->LaunchEffect(0x28, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x21: + case AL_ANGELUS: if (source != nullptr) { source->LaunchEffect(0x29, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8: + case SM_ENDURE: if (source != nullptr) { source->LaunchEffect(0xB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x6: + case SM_PROVOKE: if (target != nullptr) { target->LaunchEffect(0x43, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2D: + case AC_CONCENTRATION: if (source != nullptr) { source->LaunchEffect(0x99, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x9D: + case MG_ENERGYCOAT: if (source != nullptr) { source->LaunchEffect(0xA9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA2: + case NPC_CHANGEWATER: if (source != nullptr) { source->LaunchEffect(0xAE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA3: + case NPC_CHANGEGROUND: if (source != nullptr) { source->LaunchEffect(0xB1, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA4: + case NPC_CHANGEFIRE: if (source != nullptr) { source->LaunchEffect(0xAD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA5: + case NPC_CHANGEWIND: if (source != nullptr) { source->LaunchEffect(0xAF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA6: + case NPC_CHANGEPOISON: if (source != nullptr) { source->LaunchEffect(0xB3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA7: + case NPC_CHANGEHOLY: if (source != nullptr) { source->LaunchEffect(0xB2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA8: + case NPC_CHANGEDARKNESS: if (source != nullptr) { source->LaunchEffect(0xAC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA9: + case NPC_CHANGETELEKINESIS: if (source != nullptr) { source->LaunchEffect(0xB0, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xAF: + case NPC_SUICIDE: if (source != nullptr) { if (CRagEffect* effect = this->scene->player->LaunchEffect(0xB9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&source->render.position), 0, 0, 0, 0); } } break; - case 0xC4: + case NPC_SUMMONSLAVE: if (source != nullptr) { source->LaunchEffect(0xD7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xC9: + case NPC_KEEPING: if (source != nullptr) { source->LaunchEffect(0xD6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xCD: + case NPC_DEFENDER: if (source != nullptr) { source->LaunchEffect(0xD5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xFC: + case CR_REFLECTSHIELD: if (source != nullptr) { source->LaunchEffect(0xFC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x9B: + case MC_LOUD: if (source != nullptr) { source->LaunchEffect(0x137, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xD3: + case RG_STEALCOIN: if (target != nullptr) { if (sourceAid == g_session.m_aid) { char notice[512]; @@ -17215,85 +17222,85 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x10C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xD6: + case RG_RAID: if (source != nullptr) { source->LaunchEffect(0x114, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xD8: + case RG_STRIPSHIELD: if (target != nullptr) { target->LaunchEffect(0x10E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xD9: + case RG_STRIPARMOR: if (target != nullptr) { target->LaunchEffect(0x10F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xDA: + case RG_STRIPHELM: if (target != nullptr) { target->LaunchEffect(0x110, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xEA: - case 0xEB: - case 0xEC: - case 0xED: + case AM_CP_WEAPON: + case AM_CP_SHIELD: + case AM_CP_ARMOR: + case AM_CP_HELM: if (target != nullptr) { target->LaunchEffect(0x12C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xE7: + case AM_POTIONPITCHER: this->LaunchTargetEffect(0x12B, source, target, effectLevel); break; - case 0x9: + case MG_SRECOVERY: if (target != nullptr) { target->SendMsg(nullptr, 0x58, 0, effectLevel, effectLevel >> 31, static_cast(0xFF0000FF), 0, 0x72, 0, 0, 0, 0, 0, 0, 0); } break; - case 0xFF: + case CR_DEVOTION: if (source != nullptr) { source->LaunchEffect(0xFB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x115: + case SA_SPELLBREAKER: if (target != nullptr) { target->LaunchEffect(0xEA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x121: - case 0x2EA: + case SA_DISPELL: + case NPC_WIDEDISPEL: if (target != nullptr) { target->LaunchEffect(0xEB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x114: + case SA_MAGICROD: if (source != nullptr) { source->LaunchEffect(0xF4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x100: + case CR_PROVIDENCE: if (target != nullptr) { target->LaunchEffect(0xF8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x102: + case CR_SPEARQUICKEN: if (source != nullptr) { source->SendMsg(nullptr, 109, 0, 0xFA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->LaunchEffect(0xFA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x106: + case MO_ABSORBSPIRITS: if (source != nullptr) { source->LaunchEffect(0xFD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x10D: + case MO_BLADESTOP: if (source != nullptr) { source->SetFrameSequence(0x60, 3, 3, 0x60, 3, 1, 3000, 0); } break; - case 0x10E: + case MO_EXPLOSIONSPIRITS: if (source != nullptr) { g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); g_soundMgr->PlayWave("effect\\mon_폭기.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); @@ -17304,7 +17311,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t source->SetFrameSequence(0x60, 1, 2, 0x60, 2, 1, 1000, 0); } break; - case 0x10C: + case MO_STEELBODY: if (source != nullptr) { g_soundMgr->PlayWave("effect\\mon_맹룡과강.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); @@ -17312,36 +17319,36 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t source->SetFrameSequence(0x60, 0, 0, 0x60, 0, 1, 20, 0); } break; - case 0x6F: - case 0x1CB: + case BS_ADRENALINE: + case BS_ADRENALINE2: if (source != nullptr) { source->LaunchEffect(0x62, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x71: - case 0x1E6: + case BS_OVERTHRUST: + case WS_OVERTHRUSTMAX: if (source != nullptr) { source->SendMsg(nullptr, 109, 0, 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->LaunchEffect(0x80, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x156: + case NPC_STOP: if (target != nullptr) { target->LaunchEffect(0x1C5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x14F: + case WE_FEMALE: if (target != nullptr) { target->LaunchEffect(0xFD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->SendMsg(nullptr, 0x58, 0, level, level >> 31, static_cast(0xFF0000FF), 0, 0x72, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x198: + case WE_BABY: if (target != nullptr) { target->LaunchEffect(0x198, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x163: + case LK_AURABLADE: if (source != nullptr) { source->SendMsg(nullptr, 109, 0, 0x16F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->LaunchEffect(0x16F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -17351,13 +17358,13 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_soundMgr->PlayWave("effect\\오라 블레이드.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x165: + case LK_CONCENTRATION: if (source != nullptr) { source->SendMsg(nullptr, 109, 0, 0x171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->LaunchEffect(0x171, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1DC: + case ST_FULLSTRIP: if (target != nullptr) { if (CRagEffect* effect = target->LaunchEffect(0x1EF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { vector3d position = target->render.position; @@ -17365,24 +17372,24 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x1DB: + case ST_PRESERVE: if (source != nullptr) { source->LaunchEffect(0x1F0, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x15D: + case NPC_POWERUP: if (source != nullptr) { g_soundMgr->PlayWave("effect\\mon_폭기.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x1C7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xD7: - case 0x157: + case RG_STRIPWEAPON: + case NPC_WEAPONBRAKER: if (target != nullptr) { target->LaunchEffect(0x10D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x146: + case DC_SCREAM: if (source != nullptr) { source->SetFrameSequence(0x60, 0, 0, 0x60, 0, 1, 1200, 0); if (source == this->scene->player) { @@ -17390,7 +17397,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x13E: + case BA_FROSTJOKE: if (source != nullptr) { source->SetSequenceInterval(10); source->SetFrameSequence(0x60, 4, 5, 0x60, 4, 1, 1800, 1); @@ -17399,117 +17406,117 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x140: + case BA_ASSASSINCROSS: g_soundMgr->PlayWave("effect\\석양의 어쌔신.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x348, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x141: + case BA_POEMBRAGI: g_soundMgr->PlayWave("effect\\브라기의 시.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x142: + case BA_APPLEIDUN: g_soundMgr->PlayWave("effect\\이둔의 사과.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x349, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x147: + case DC_HUMMING: g_soundMgr->PlayWave("effect\\흥얼거림.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x148: + case DC_DONTFORGETME: g_soundMgr->PlayWave("effect\\나를잊지말아요.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x14A: + case DC_SERVICEFORYOU: g_soundMgr->PlayWave("effect\\당신을 위한 서비스.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x348, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x132: + case BD_LULLABY: g_soundMgr->PlayWave("effect\\자장가.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1E8: + case CG_HERMODE: g_soundMgr->PlayWave("effect\\헤르모드의 지팡이.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x1E9: + case CG_TAROTCARD: if (target != nullptr) { g_soundMgr->PlayWave("effect\\priest_slowpoison.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x1F4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x133: + case BD_RICHMANKIM: g_soundMgr->PlayWave("effect\\김서방돈.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x134: + case BD_ETERNALCHAOS: g_soundMgr->PlayWave("effect\\영원의 혼돈.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x135: + case BD_DRUMBATTLEFIELD: g_soundMgr->PlayWave("effect\\전장의.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x136: + case BD_RINGNIBELUNGEN: g_soundMgr->PlayWave("effect\\니벨룽겐의 반지.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x137: + case BD_ROKISWEIL: g_soundMgr->PlayWave("effect\\로키.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x138: + case BD_INTOABYSS: g_soundMgr->PlayWave("effect\\심연속으로.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x139: + case BD_SIEGFRIED: g_soundMgr->PlayWave("effect\\불사신.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x13F: + case BA_WHISTLE: if (source != nullptr) { source->LaunchEffect(0x34C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x149: + case DC_FORTUNEKISS: g_soundMgr->PlayWave("effect\\행운의.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x348, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x15E: - case 0x1FA: + case NPC_AGIUP: + case GS_INCREASING: if (source != nullptr) { source->LaunchEffect(0x1C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x16C: + case HW_SOULDRAIN: if (source != nullptr && target != nullptr) { source->SetFrameSequence(0x58, 0, 3, 0x58, 3, 1, 1000, 0); if (CRagEffect* effect = source->LaunchEffect(0x17A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { @@ -17519,19 +17526,19 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x17B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x16E: + case HW_MAGICPOWER: if (target != nullptr) { target->SendMsg(nullptr, 0x6D, 0, 0x17E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); target->LaunchEffect(0x17E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\마법력 증폭.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x175: + case PF_HPCONVERSION: if (source != nullptr) { source->LaunchEffect(0x17F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x176: + case PF_SOULCHANGE: if (source != nullptr && target != nullptr) { vector3d offset{0.0f, static_cast(target->render.accountId), 0.0f}; if (CRagEffect* effect = source->LaunchEffect(0x180, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { @@ -17543,55 +17550,55 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x197, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x177: + case PF_SOULBURN: if (target != nullptr) { target->LaunchEffect(0x196, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x17C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x17A: + case ASC_EDP: if (source != nullptr) { source->LaunchEffect(0x1ED, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x17C: + case SN_SIGHT: if (source != nullptr) { source->LaunchEffect(0x182, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x17F: + case SN_WINDWALK: if (source != nullptr) { source->LaunchEffect(0x185, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x180: + case WS_MELTDOWN: if (source != nullptr) { source->LaunchEffect(0x186, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x183: + case WS_CARTBOOST: if (source != nullptr) { g_soundMgr->PlayWave("effect\\EF_IncAgility.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x187, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x185: + case ST_CHASEWALK: if (source != nullptr) { source->SendMsg(nullptr, 0x3F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x186: + case ST_REJECTSWORD: if (source != nullptr) { source->LaunchEffect(0x188, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x18B: + case CG_MOONLIT: if (source != nullptr && !source->HasId(0x18A)) { source->LaunchEffect(0x18A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } g_soundMgr->PlayWave("effect\\달빛.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x18C: + case CG_MARIONETTE: if (source != nullptr && target != nullptr) { vector3d offset{0.0f, static_cast(target->render.accountId), 0.0f}; if (CRagEffect* effect = source->LaunchEffect(0x18B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { @@ -17601,23 +17608,23 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x18C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x192: + case PF_MINDBREAKER: if (target != nullptr) { target->LaunchEffect(0x193, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x193: - case 0x1F44: + case PF_MEMORIZE: + case HLIF_CHANGE: if (source != nullptr) { source->LaunchEffect(0x1F9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x196: + case ASC_METEORASSAULT: if (source != nullptr) { source->LaunchEffect(0x199, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x19B: + case TK_RUN: if (source != nullptr) { if (source->HasId(0x1BB)) { source->LaunchEffect(0x1BC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -17626,15 +17633,15 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x19D: + case TK_STORMKICK: if (source != nullptr) { source->LaunchEffect(0x1B3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1A4: + case TK_DODGE: g_soundMgr->PlayWave("effect\\T_낙법.wav", 0.0f, -150.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x1A9: + case TK_SEVENWIND: if (source != nullptr) { g_soundMgr->PlayWave("effect\\T_바람방출.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); while (source->HasId(0x1CD)) { @@ -17648,7 +17655,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t source->LaunchEffect(effectId, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1AA: + case TK_HIGHJUMP: if (source != nullptr) { if (source->HasId(0x1BE)) { source->SendMsg(nullptr, 0x6D, 0, 0x1BE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -17659,9 +17666,9 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x1AC: - case 0x1AD: - case 0x1AE: + case SG_SUN_WARM: + case SG_MOON_WARM: + case SG_STAR_WARM: if (source != nullptr && target != nullptr) { source->SendMsg(nullptr, 0x6D, 0, 0x1A2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->LaunchEffect(0x1A2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -17670,54 +17677,54 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t source->LaunchEffect(0x23C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1AF: - case 0x1B0: - case 0x1B1: + case SG_SUN_COMFORT: + case SG_MOON_COMFORT: + case SG_STAR_COMFORT: if (source != nullptr) { source->SendMsg(nullptr, 0x6D, 0, 0x1E8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->LaunchEffect(0x1E8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x21F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1B2: + case SG_HATE: if (target != nullptr) { g_soundMgr->PlayWave("effect\\T_등록.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->SendMsg(nullptr, 0x6D, 0, 0x21F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); target->LaunchEffect(0x21F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1BC: + case SG_FUSION: if (source != nullptr) { g_soundMgr->PlayWave("effect\\T_변신.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); } break; - case 0x1BE: + case AM_BERSERKPITCHER: if (source != nullptr && target != nullptr) { this->LaunchTargetEffect(0x21D, source, target, 4); target->LaunchEffect(0xDC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1CE: + case SL_KAIZEL: if (target != nullptr) { g_soundMgr->PlayWave("effect\\priest_resurrection.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x21F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x24E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1CF: + case SL_KAAHI: if (target != nullptr) { g_soundMgr->PlayWave("effect\\T_보조마법.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x21F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1D0: + case SL_KAUPE: if (target != nullptr) { g_soundMgr->PlayWave("effect\\T_치잉.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x21E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1D1: + case SL_KAITE: if (target != nullptr) { g_soundMgr->PlayWave("effect\\T_마법반사.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->SendMsg(nullptr, 0x6D, 0, 0x1A3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -17725,7 +17732,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x21E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1D6: + case SL_SWOO: if (target != nullptr) { g_soundMgr->PlayWave("effect\\T_슈웃.wav", 0.0f, -50.0f, 0.0f, 250, 40, 1.0f, 0); target->SendMsg(nullptr, 0x6D, 0, 0x1A4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -17733,14 +17740,14 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x24D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1D7: + case SL_SKE: if (target != nullptr) { g_soundMgr->PlayWave("effect\\T_공격력.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->SendMsg(nullptr, 0x6D, 0, 0x1AB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); target->LaunchEffect(0x1AB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1D8: + case SL_SKA: if (target != nullptr) { g_soundMgr->PlayWave("effect\\T_방어형.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); @@ -17751,45 +17758,45 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x105, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1DF: + case CR_FULLPROTECTION: if (target != nullptr) { target->LaunchEffect(0x12C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1F4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1E2: + case PF_DOUBLECASTING: if (target != nullptr) { target->LaunchEffect(0x209, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\마법력 증폭.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x1E7: + case CG_LONGINGFREEDOM: g_soundMgr->PlayWave("effect\\ac_concentration.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x34B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1ED: + case TK_MISSION: g_soundMgr->PlayWave("effect\\T_피링.wav", 0.0f, -100.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x1F4: + case GS_GLITTERING: g_soundMgr->PlayWave("effect\\플립.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x1F8: + case GS_MADNESSCANCEL: if (source != nullptr) { source->LaunchEffect(0x271, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F9: - case 0x205: + case GS_ADJUSTMENT: + case GS_GATLINGFEVER: if (source != nullptr) { source->LaunchEffect(0x272, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1FC: + case GS_CRACKER: g_soundMgr->PlayWave("effect\\크래커.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x201: + case GS_DISARM: if (target != nullptr) { if (CRagEffect* effect = target->LaunchEffect(0x273, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { vector3d position = target->render.position; @@ -17797,30 +17804,30 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x204: + case GS_DESPERADO: if (source != nullptr) { source->LaunchEffect(0x27D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x20F: + case NJ_TATAMIGAESHI: g_soundMgr->PlayWave("effect\\다다미뒤집기.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x218: + case NJ_BAKUENRYU: if (target != nullptr) { target->LaunchEffect(0x27B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x21B: + case NJ_HYOUSYOURAKU: if (source != nullptr) { source->LaunchEffect(0x27C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x21D: + case NJ_RAIGEKISAI: if (source != nullptr) { source->LaunchEffect(0x26E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x22B: + case MB_M_TELEPORT: if (source != nullptr) { source->SendMsg(nullptr, 0x3F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -17829,69 +17836,69 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x158, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8E: - case 0x7E0: + case NV_FIRSTAID: + case RK_VITALITYACTIVATION: if (source != nullptr) { source->LaunchEffect(0x135, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x118: - case 0x3FA: + case SA_FLAMELAUNCHER: + case SA_ELEMENTFIRE: if (target != nullptr) { target->LaunchEffect(0xFF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x119: - case 0x3F0: + case SA_FROSTWEAPON: + case SA_ELEMENTWATER: if (target != nullptr) { target->LaunchEffect(0x100, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x11A: - case 0x3FB: + case SA_LIGHTNINGLOADER: + case SA_ELEMENTWIND: if (target != nullptr) { target->LaunchEffect(0x101, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x11B: - case 0x3F9: + case SA_SEISMICWEAPON: + case SA_ELEMENTGROUND: if (target != nullptr) { target->LaunchEffect(0x102, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x13D: - case 0x145: + case BA_DISSONANCE: + case DC_UGLYDANCE: if (source != nullptr) { source->LaunchEffect(0x34B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x169: - case 0x2B3: + case HP_ASSUMPTIO: + case CASH_ASSUMPTIO: if (target != nullptr) { target->LaunchEffect(0x177, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1B8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1BD: - case 0x1BF: - case 0x1C0: - case 0x1C1: - case 0x1C2: - case 0x1C3: - case 0x1C4: - case 0x1C5: - case 0x1C6: - case 0x1C7: - case 0x1C8: - case 0x1C9: - case 0x1CA: - case 0x1CC: - case 0x1CD: - case 0x1EE: - case 0x23C: - case 0x23D: - case 0x23E: - case 0x23F: + case SL_ALCHEMIST: + case SL_MONK: + case SL_STAR: + case SL_SAGE: + case SL_CRUSADER: + case SL_SUPERNOVICE: + case SL_KNIGHT: + case SL_WIZARD: + case SL_PRIEST: + case SL_BARDDANCER: + case SL_ROGUE: + case SL_ASSASIN: + case SL_BLACKSMITH: + case SL_HUNTER: + case SL_SOULLINKER: + case SL_HIGH: + case SL_DEATHKNIGHT: + case SL_COLLECTOR: + case SL_NINJA: + case SL_GUNNER: if (target != nullptr) { vector3d offset{0.0f, static_cast(target->render.accountId), 0.0f}; if (CRagEffect* effect = target->LaunchEffect(0x1F7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { @@ -17901,59 +17908,59 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x1A8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x242: + case DE_BERSERKAIZER: if (source != nullptr) { source->LaunchEffect(0xDC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2B4: + case ALL_CATCRY: if (source != nullptr) { g_soundMgr->PlayWave("effect\\2008cat.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2B5: + case ALL_PARTYFLEE: if (target != nullptr) { target->LaunchEffect(0x2BB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2B6: + case ALL_ANGEL_PROTECT: if (target != nullptr) { target->LaunchEffect(0x5B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2B7: + case ALL_DREAM_SUMMERNIGHT: if (source != nullptr) { g_soundMgr->PlayWave("dream_device_edq.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2BA: + case ALL_WEWISH: if (source != nullptr) { g_soundMgr->PlayWave("effect\\wewish.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x2CD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2CC: - case 0x2CD: + case NPC_MAXPAIN: + case NPC_MAXPAIN_ATK: if (source != nullptr) { source->LaunchEffect(0x408, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2CE: + case NPC_DEATHSUMMON: if (source != nullptr) { source->LaunchEffect(0x409, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2CF: + case NPC_HELLBURNING: if (source != nullptr) { source->LaunchEffect(0x19, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2D1: + case NPC_WIDEWEB: if (source != nullptr) { source->LaunchEffect(0x41D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2D2: + case NPC_WIDESUCK: if (source != nullptr && target != nullptr) { if (CRagEffect* effect = target->LaunchEffect(0x41C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { vector3d position = source->render.position; @@ -17961,38 +17968,38 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x2DA: + case NPC_SR_CURSEDCIRCLE: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_CURSEDCIRCLE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2DF: + case NPC_MANDRAGORA: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); g_soundMgr->PlayWave("effect\\G하울링오브만드라고라.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2E2: - case 0x7E5: + case NPC_VENOMIMPRESS: + case GC_VENOMIMPRESS: if (target != nullptr) { target->LaunchEffect(0x300, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\수둔.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2E4: + case NPC_IGNITIONBREAK: g_soundMgr->PlayWave("effect\\wl_jackfrost.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x2D2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2E7: - case 0x7F3: + case NPC_HALLUCINATIONWALK: + case GC_HALLUCINATIONWALK: if (source != nullptr) { g_soundMgr->PlayWave("effect\\HALLUCINATIONWALK.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2EB: - case 0x2EC: + case NPC_LEASH: + case NPC_WIDELEASH: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x459, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } @@ -18000,27 +18007,27 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_effectMgr->Spawn(source->render.accountId, 0x459, source->render.position.x, source->render.position.y, source->render.position.z, 0, -1, 0, 0); } break; - case 0x303: + case NPC_RELIEVE_ON: if (target != nullptr) { target->LaunchEffect(0x640, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x310: + case All_EVENT_20TH_ANNIVERSARY: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x94E, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x3EA: + case CR_SHRINK: if (source != nullptr) { source->LaunchEffect(0x257, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x3ED: + case RG_CLOSECONFINE: if (target != nullptr) { target->LaunchEffect(0x25A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x3F2: + case BA_PANGVOICE: if (source != nullptr && target != nullptr) { source->SetFrameSequence(0x60, 4, 5, 0x60, 4, 1, 0x708, 1); g_soundMgr->PlayWave("amon_ra_die01.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); @@ -18030,7 +18037,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x3F3: + case DC_WINKCHARM: if (source != nullptr && target != nullptr) { const std::int64_t emotion = g_cashEmotionMgr->GetSpecialEmotion(CashEmotionSpecial::Chup); source->SendMsg(nullptr, 160, 0, 0, 0, static_cast(emotion), static_cast(emotion >> 32), 0, 0, 0, 0, 0, 0, 0, 0); @@ -18041,35 +18048,35 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x3F5: + case BS_GREED: if (source != nullptr) { g_soundMgr->PlayWave("effect\\ef_entry.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x7D1: + case RK_ENCHANTBLADE: if (source != nullptr) { source->LaunchEffect(0x2F4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\닌자_던지기.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x7EA: + case GC_ANTIDOTE: if (target != nullptr) { target->LaunchEffect(0x15, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x300, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7EB: + case GC_POISONINGWEAPON: if (source != nullptr) { source->LaunchEffect(0x303, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7EC: + case GC_WEAPONBLOCKING: if (source != nullptr) { source->LaunchEffect(0x300, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\t_낙법.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x7ED: + case GC_COUNTERSLASH: if (source != nullptr) { g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); g_soundMgr->PlayWave("effect\\mon_맹룡과강.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); @@ -18079,7 +18086,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x7F4: + case GC_ROLLINGCUTTER: if (source != nullptr) { if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(source->render.accountId, 0x5BA, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -18090,7 +18097,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x8AA: + case WL_TETRAVORTEX_FIRE: if (target != nullptr) { if (source != nullptr) { g_soundMgr->PlayWave("effect\\wizard_meteo.wav", target->render.position.x - source->render.position.x, 0.0f, target->render.position.z - source->render.position.z, 250, 40, 1.0f, 0); @@ -18124,7 +18131,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x8AB: + case WL_TETRAVORTEX_WATER: if (target != nullptr) { if (source != nullptr) { g_soundMgr->PlayWave("effect\\wizard_meteo.wav", target->render.position.x - source->render.position.x, 0.0f, target->render.position.z - source->render.position.z, 250, 40, 1.0f, 0); @@ -18158,7 +18165,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x8AC: + case WL_TETRAVORTEX_WIND: if (target != nullptr) { if (source != nullptr) { g_soundMgr->PlayWave("effect\\wizard_meteo.wav", target->render.position.x - source->render.position.x, 0.0f, target->render.position.z - source->render.position.z, 250, 40, 1.0f, 0); @@ -18192,7 +18199,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x8AD: + case WL_TETRAVORTEX_GROUND: if (target != nullptr) { if (source != nullptr) { g_soundMgr->PlayWave("effect\\wizard_meteo.wav", target->render.position.x - source->render.position.x, 0.0f, target->render.position.z - source->render.position.z, 250, 40, 1.0f, 0); @@ -18226,7 +18233,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x8B6: + case WL_RELEASE: if (source != nullptr && target != nullptr) { if (CRagEffect* effect = source->LaunchEffect(0x2EF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { vector3d position = target->render.position; @@ -18234,38 +18241,38 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x1D: - case 0x2B2: - case 0x7FA: - case 0x2030: + case AL_INCAGI: + case CASH_INCAGI: + case AB_CANTO: + case MER_INCAGI: if (target != nullptr) { target->LaunchEffect(0x25, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x22: - case 0x2B1: - case 0x7F9: - case 0x202F: + case AL_BLESSING: + case CASH_BLESSING: + case AB_CLEMENTIA: + case MER_BLESSING: if (target != nullptr) { target->LaunchEffect(0x2A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x4C: - case 0x809: + case PR_LEXDIVINA: + case AB_SILENTIUM: if (target != nullptr) { target->LaunchEffect(0x57, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2C3: - case 0x7DB: + case NPC_MILLENNIUMSHIELD: + case RK_MILLENNIUMSHIELD: if (source != nullptr) { source->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x2ED, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\ef_soulstrike.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2D0: - case 0x89C: + case NPC_JACKFROST: + case WL_JACKFROST: if (source != nullptr && target != nullptr) { for (int count = 0; count < 10; ++count) { CRagEffect* effect = source->LaunchEffect(0x321, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -18280,8 +18287,8 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_soundMgr->PlayWave("jack_frost.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2E5: - case 0x7E4: + case NPC_PHANTOMTHRUST: + case RK_PHANTOMTHRUST: if (source != nullptr && target != nullptr) { source->LaunchEffect(0x21A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -18289,12 +18296,12 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7D3: + case RK_DEATHBOUND: if (source != nullptr) { source->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7D5: + case RK_WINDCUTTER: if (source != nullptr) { float angle = static_cast(g_modeMgr.GetGameMode())->CameraDesiredYaw() + source->render.angle; if (angle >= 360.0f) { @@ -18314,40 +18321,40 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_effectMgr->Spawn(source->render.accountId, effectId, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x7D6: + case RK_IGNITIONBREAK: g_soundMgr->PlayWave("effect\\wl_jackfrost.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x658, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x659, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x7D9: + case RK_DRAGONHOWLING: if (source != nullptr) { g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); source->LaunchEffect(0x2DB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("dragon_h.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x7DD: + case RK_REFRESH: if (source != nullptr) { source->LaunchEffect(0x21A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("_heal_effect.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x7DE: + case RK_GIANTGROWTH: if (source != nullptr) { source->LaunchEffect(0x2F4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\닌자_던지기.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x7DF: - case 0x7E2: + case RK_STONEHARDSKIN: + case RK_FIGHTINGSPIRIT: if (source != nullptr) { source->LaunchEffect(0x2F4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7E1: + case RK_STORMBLAST: if (source != nullptr) { source->LaunchEffect(0x11, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -18358,53 +18365,53 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x14A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7E3: + case RK_ABUNDANCE: if (source != nullptr) { source->LaunchEffect(0x21A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\흡기.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x7F7: + case AB_ANCILLA: if (target != nullptr) { g_soundMgr->PlayWave("effect\\AB_ancilla.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7FD: + case AB_PRAEFATIO: if (target != nullptr) { target->LaunchEffect(0x70, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7FE: + case AB_ORATIO: if (source != nullptr) { source->LaunchEffect(0x2D5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7FF: - case 0x800: + case AB_LAUDAAGNUS: + case AB_LAUDARAMUS: if (target != nullptr) { target->LaunchEffect(0x42, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("lauagnus.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x802: + case AB_RENOVATIO: if (target != nullptr) { g_soundMgr->PlayWave("effect\\AB_renovatio.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x2CF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x804: + case AB_CLEARANCE: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x615, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x616, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x805: + case AB_EXPIATIO: if (source != nullptr) { g_soundMgr->PlayWave("effect\\바실리카.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x806: + case AB_DUPLELIGHT: if (target != nullptr) { g_soundMgr->PlayWave("effect\\AB_duplelight.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (!target->HasId(0x341)) { @@ -18416,82 +18423,82 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x89D: + case WL_MARSHOFABYSS: if (target != nullptr) { target->LaunchEffect(0x2D9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1D2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x89E: + case WL_RECOGNIZEDSPELL: if (source != nullptr) { g_soundMgr->PlayWave("effect\\wl_recognizedspell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x89F: + case WL_SIENNAEXECRATE: if (target != nullptr) { target->LaunchEffect(0x31D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8A1: + case WL_STASIS: if (source != nullptr) { source->LaunchEffect(0x31F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8BA: + case RA_FEARBREEZE: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x60D, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x8C0: + case RA_WUGMASTERY: g_soundMgr->PlayWave("wolf_attack.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8C1: + case RA_WUGRIDER: g_soundMgr->PlayWave("wolf_stand.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8D6: + case NC_ACCELERATION: if (source != nullptr) { source->LaunchEffect(0x309, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x90B: + case LG_SHIELDSPELL: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\LG_SHIELDSPELL.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x90E: + case LG_PRESTIGE: if (source != nullptr) { source->LaunchEffect(0x38C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\LG_PRESTIGE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x915: + case LG_INSPIRATION: if (source != nullptr) { source->LaunchEffect(0x38E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x921: + case SR_WINDMILL: if (source != nullptr) { source->LaunchEffect(0x1B3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_WINDMILL.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x98D: + case SO_SPELLFIST: if (source != nullptr) { g_soundMgr->PlayWave("effect\\S스펠피스트.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_soundMgr->PlayWave("effect\\S파이어워크.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_soundMgr->PlayWave("effect\\S일렉트릭워크.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x993: + case SO_STRIKING: if (source != nullptr) { g_soundMgr->PlayWave("effect\\S스트라이킹.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x997: + case SO_ARRULLO: if (target != nullptr) { target->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -18502,12 +18509,12 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x99D: + case SO_EL_ACTION: if (source != nullptr) { source->LaunchEffect(0x3A6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x9AC: + case GN_CART_TORNADO: if (source != nullptr) { source->LaunchEffect(0x555, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (g_serviceOptions.Get(0xE5)) { @@ -18519,7 +18526,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x9AD: + case GN_CARTCANNON: if (source != nullptr && target != nullptr) { const std::uint32_t accountId = target->render.accountId; CEffect* effect = g_effectMgr->Spawn(accountId, 0x54D, source->render.position.x, source->render.position.y, source->render.position.z, accountId, -1, 0, 0); @@ -18529,7 +18536,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_soundMgr->PlayWave("effect\\mon_침투경.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x9B0: + case GN_BLOOD_SUCKER: if (source != nullptr && target != nullptr) { g_soundMgr->PlayWave("effect\\S바큠익스트림.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (CRagEffect* effect = target->LaunchEffect(0xD8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { @@ -18538,13 +18545,13 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x9B1: + case GN_SPORE_EXPLOSION: this->LaunchTargetEffect(0x392, source, target, 4); break; - case 0x9B2: + case GN_WALLOFTHORN: g_soundMgr->PlayWave("effect\\G가시나무덫.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x9BC: + case GN_MANDRAGORA: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x667, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x668, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -18552,7 +18559,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_soundMgr->PlayWave("effect\\G하울링오브만드라고라.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x9BD: + case GN_SLINGITEM: if (source != nullptr && target != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (CRagEffect* effect = source->LaunchEffect(0x1B7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { @@ -18562,80 +18569,80 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x9BE: - case 0x9BF: - case 0x9C0: - case 0x9C1: + case GN_CHANGEMATERIAL: + case GN_MIX_COOKING: + case GN_MAKEBOMB: + case GN_S_PHARMACY: if (source != nullptr) { source->LaunchEffect(0x38F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x907: - case 0x909: + case LG_REFLECTDAMAGE: + case LG_FORCEOFVANGUARD: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\LG_REFLECTDAMAGE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x929: + case SR_GENTLETOUCH_CURE: if (source != nullptr && target != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("_heal_effect.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x92A: + case SR_GENTLETOUCH_ENERGYGAIN: if (source != nullptr && target != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\세크리파이스.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x92B: + case SR_GENTLETOUCH_CHANGE: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\샤프슈팅.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x92C: + case SR_GENTLETOUCH_REVITALIZE: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\mon_탄지신통.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x922: + case SR_RAISINGDRAGON: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_RAISINGDRAGON.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x925: + case SR_POWERVELOCITY: if (source != nullptr && target != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_POWERVELOCITY.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x91D: + case SR_CRESCENTELBOW: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_CRESCENTELBOW.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x91F: + case SR_LIGHTNINGWALK: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_LIGHTNINGWALK.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x91E: + case SR_CURSEDCIRCLE: if (source != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->SetFrameSequence(96, 3, 3, 96, 3, 1, 3000, 0); g_soundMgr->PlayWave("effect\\SR_CURSEDCIRCLE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x926: + case SR_CRESCENTELBOW_AUTOSPELL: if (source != nullptr && target != nullptr) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); CRagEffect* effect = source->LaunchEffect(0x37C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -18646,48 +18653,48 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x978: + case WM_RANDOMIZESPELL: if (target != nullptr) { target->LaunchEffect(0x35E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\AB_ancilla.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x92E: + case WA_SWING_DANCE: if (target != nullptr) { target->LaunchEffect(0x34F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\스윙댄스.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x92F: + case WA_SYMPHONY_OF_LOVER: if (target != nullptr) { target->LaunchEffect(0x34F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\연인들을위한심포니.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x930: + case WA_MOONLIT_SERENADE: if (target != nullptr) { target->LaunchEffect(0x34F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\AB_judex.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x94D: + case MI_RUSH_WINDMILL: if (target != nullptr) { target->LaunchEffect(0x350, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\풍차를향해돌격.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x94E: + case MI_ECHOSONG: if (target != nullptr) { target->LaunchEffect(0x350, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\메아리의노래.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x974: + case WM_VOICEOFSIREN: if (target != nullptr) { g_soundMgr->PlayWave("effect\\세이렌의목소리.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x94F: + case MI_HARMONIZE: if (target != nullptr && source != nullptr) { vector3d position{0.0f, 0.0f, 0.0f}; position.y = static_cast(target->render.accountId); @@ -18703,77 +18710,77 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_soundMgr->PlayWave("effect\\하모나이즈.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x8E3: + case NC_REPAIR: if (target != nullptr) { target->LaunchEffect(0x311, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8ED: + case SC_REPRODUCE: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x631, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x632, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } g_soundMgr->PlayWave("effect\\reproduce.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8EE: + case SC_AUTOSHADOWSPELL: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x6C2, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x6C3, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } g_soundMgr->PlayWave("effect\\autoshadow.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8F1: + case SC_BODYPAINT: if (source != nullptr) { g_soundMgr->PlayWave("effect\\bodypaint.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x32B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8F2: + case SC_INVISIBILITY: g_soundMgr->PlayWave("effect\\invisibility.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8F3: + case SC_DEADLYINFECT: if (source != nullptr) { g_soundMgr->PlayWave("effect\\deadlyinfect.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x32C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8F4: + case SC_ENERVATION: if (target != nullptr) { g_soundMgr->PlayWave("effect\\enervation.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x32D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8F5: + case SC_GROOMY: if (target != nullptr) { g_soundMgr->PlayWave("effect\\groomy.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x32E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8F6: + case SC_IGNORANCE: if (target != nullptr) { g_soundMgr->PlayWave("effect\\ignorance.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x32F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8F7: + case SC_LAZINESS: if (target != nullptr) { g_soundMgr->PlayWave("effect\\laziness.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x330, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8F8: + case SC_UNLUCKY: if (target != nullptr) { g_soundMgr->PlayWave("effect\\unlucky.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x331, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8F9: + case SC_WEAKNESS: if (target != nullptr) { g_soundMgr->PlayWave("effect\\weakness.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x332, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8FA: + case SC_STRIPACCESSARY: if (target != nullptr) { CRagEffect* effect = target->LaunchEffect(0x334, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect != nullptr) { @@ -18782,7 +18789,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x8EF: { + case SC_SHADOWFORM: { if (source != nullptr) { g_soundMgr->PlayWave("effect\\shadowform.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x33A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -18796,126 +18803,126 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x8DD: + case NC_EMERGENCYCOOL: if (source != nullptr) { g_soundMgr->PlayWave("effect\\ef_decagility.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x21F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8E2: + case NC_STEALTHFIELD: if (source != nullptr) { g_soundMgr->PlayWave("effect\\t_등록.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x1F4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8E1: + case NC_NEUTRALBARRIER: if (source != nullptr) { g_soundMgr->PlayWave("effect\\mon_금강불괴.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x30E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8DC: + case NC_SHAPESHIFT: if (source != nullptr) { source->LaunchEffect(0x30B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8D7: + case NC_HOVERING: if (source != nullptr) { g_soundMgr->PlayWave("effect\\HOVERING.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x21F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x30A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8D9: + case NC_B_SIDESLIDE: if (source != nullptr) { g_soundMgr->PlayWave("effect\\B_SIDESLIDE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x30A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x8D8: + case NC_F_SIDESLIDE: if (source != nullptr) { g_soundMgr->PlayWave("effect\\F_SIDESLIDE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x30A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x977: + case WM_SIRCLEOFNATURE: if (target != nullptr) { target->LaunchEffect(0x35D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\순환하는자연의소리.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x979: + case WM_GLOOMYDAY: if (target != nullptr) { target->LaunchEffect(0x360, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\AB_renovatio.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x975: + case WM_DEADHILLHERE: if (target != nullptr) { target->LaunchEffect(0x35D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x355, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\사망의골짜기에서.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x97B: + case WM_SONG_OF_MANA: if (target != nullptr) { target->LaunchEffect(0x364, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\마나의노래.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x97C: + case WM_DANCE_WITH_WUG: if (target != nullptr) { target->LaunchEffect(0x362, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\워그와함께춤을.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x97E: + case WM_SATURDAY_NIGHT_FEVER: if (target != nullptr) { target->LaunchEffect(0x366, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\새터데이나이트피버.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x97F: + case WM_LERADS_DEW: if (target != nullptr) { target->LaunchEffect(0x368, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_LIGHTNINGWALK.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x980: + case WM_MELODYOFSINK: if (target != nullptr) { target->LaunchEffect(0x36A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\멜로디오브싱크.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x981: + case WM_BEYOND_OF_WARCRY: if (target != nullptr) { target->LaunchEffect(0x36C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\비욘드오브워크라이.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x982: + case WM_UNLIMITED_HUMMING_VOICE: if (target != nullptr) { target->LaunchEffect(0x36E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\언리미티드허밍보이스.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x976: + case WM_LULLABY_DEEPSLEEP: target->LaunchEffect(0x3C9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\안식의자장가.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x9AE: + case GN_CARTBOOST: if (source != nullptr) { g_soundMgr->PlayWave("effect\\G카트부스트.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_effectMgr->Spawn(source->render.accountId, 0x68B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x68C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x97D: + case WM_SOUND_OF_DESTRUCTION: if (source != nullptr) { source->LaunchEffect(0x34A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x913: + case LG_EARTHDRIVE: if (source != nullptr) { vector3d position = source->render.position; float scale = 1.0f; @@ -18942,7 +18949,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x9D3: + case AB_SECRAMENT: if (target != nullptr) { if (source != nullptr) { g_soundMgr->PlayWave( @@ -18957,24 +18964,24 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x9D5: + case SR_HOWLINGOFLION: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x628, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x629, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_soundMgr->PlayWave("effect\\SR_HOWLINGOFLION.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x9F9: + case RL_MASS_SPIRAL: if (target != nullptr) { g_effectMgr->Spawn(0, 0x427, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x9FF: + case RL_QD_SHOT: if (target != nullptr) { g_effectMgr->Spawn(0, 0x434, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0xA04: + case RL_FALLEN_ANGEL: if (source != nullptr) { source->LaunchEffect(0x1BE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); while (source->HasId(0x430)) { @@ -18982,23 +18989,23 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0xA05: + case RL_R_TRIP: if (source != nullptr) { source->LaunchEffect(0x27D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_effectMgr->Spawn(0, 0x1B3, source->render.position.x, source->render.position.y, source->render.position.z, 0, -1, 0, 0); } break; - case 0xA0D: + case RL_B_FLICKER_ATK: if (CRenderObject* skill = this->scene->GetSkillByAID(targetAid)) { g_effectMgr->Spawn(0, 0x432, skill->render.position.x, skill->render.position.y, skill->render.position.z, 0, -1, 0, 0); } break; - case 0xA03: + case RL_P_ALTER: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x435, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0xA15: + case SJ_STAREMPEROR: if (source != nullptr) { source->LaunchEffect(0x1BE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_effectMgr->Spawn(source->render.accountId, 0x4B3, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -19007,7 +19014,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0xA34: + case SP_KAUTE: if (source != nullptr) { source->LaunchEffect(0x4B8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -19019,7 +19026,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x4B7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA2D: + case SP_SOULUNITY: if (target != nullptr) { if (source != nullptr) { vector3d data{0.0f, static_cast(source->render.accountId), 0.0f}; @@ -19030,10 +19037,10 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x197, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA24: - case 0xA25: - case 0xA26: - case 0xA27: + case SP_SOULGOLEM: + case SP_SOULSHADOW: + case SP_SOULFALCON: + case SP_SOULFAIRY: if (target != nullptr) { if (CRagEffect* effect = target->LaunchEffect(0x1F7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { vector3d data{0.0f, static_cast(target->render.accountId), 0.0f}; @@ -19042,32 +19049,32 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->SendMsg(nullptr, 0x6D, 0, 0x1A8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); target->LaunchEffect(0x1A8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); switch (skillId) { - case 0xA24: + case SP_SOULGOLEM: g_effectMgr->Spawn(target->render.accountId, 0x4CC, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0xA25: + case SP_SOULSHADOW: g_effectMgr->Spawn(target->render.accountId, 0x4D3, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0xA26: + case SP_SOULFALCON: g_effectMgr->Spawn(target->render.accountId, 0x4D5, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0xA27: + case SP_SOULFAIRY: g_effectMgr->Spawn(target->render.accountId, 0x4D4, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; } } break; - case 0xA21: + case SJ_PROMINENCEKICK: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x4D7, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0xA29: + case SP_SOULCURSE: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x4D6, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0xA30: + case SP_SOULREVOLVE: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x4DB, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_soundMgr->PlayWave( @@ -19076,35 +19083,35 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t ); } break; - case 0xBC1: + case KO_HUUMARANKA: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x3D8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x3E8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x3EA, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1396: - case 0x13CF: + case ALL_FULL_THROTTLE: + case EVT_FULL_THROTTLE: if (source != nullptr) { source->LaunchEffect(0x412, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1391: + case SR_FLASHCOMBO: if (target != nullptr) { target->LaunchEffect(0x413, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x138D: + case RK_LUXANIMA: if (source != nullptr) { source->LaunchEffect(0x414, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1393: + case AB_OFFERTORIUM: if (source != nullptr) { source->LaunchEffect(0x417, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1392: + case SC_ESCAPE: if (source != nullptr && !source->HasId(0x439)) { vector3d position = source->render.position; if (CRagEffect* effect = source->LaunchEffect(0x439, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { @@ -19113,7 +19120,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x138F: + case WM_FRIGG_SONG: if (source != nullptr && g_effectMgr->HasAllocator(0x423)) { const float spacing = static_cast(this->scene->terrain->cellSize) * static_cast(level + 2); for (int row = 1; row >= -1; --row) { @@ -19126,12 +19133,12 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x1390: + case SO_ELEMENTAL_SHIELD: if (source != nullptr) { source->LaunchEffect(0x416, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1394: + case WL_TELEKINESIS_INTENSE: if (source != nullptr) { CPlayer* player = static_cast(g_modeMgr.GetGameMode())->scene->player; g_soundMgr->PlayWave( @@ -19140,52 +19147,52 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t ); } break; - case 0x13B1: + case SU_FRESHSHRIMP: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x44A, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13AE: + case SU_TUNABELLY: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x44E, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x139D: + case SU_SCRATCH: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x44F, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x139B: + case SU_BITE: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x451, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13A8: + case SU_SCAROFTAROU: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x453, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13AB: + case SU_ARCLOUSEDASH: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x454, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13A9: + case SU_PICKYPECK: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x455, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13AC: + case SU_LUNATICCARROTBEAT: if (target != nullptr) { g_effectMgr->Spawn(0, 0x44B, target->render.position.x, target->render.position.y, target->render.position.z, 0, level, 0, 0); } break; - case 0x13B3: + case SU_LUNATICCARROTBEAT2: if (target != nullptr) { g_effectMgr->Spawn(0, 0x457, target->render.position.x, target->render.position.y, target->render.position.z, 0, level, 0, 0); } break; - case 0x139F: + case SU_LOPE: if (source != nullptr) { source->LaunchEffect(0x1BE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); while (source->HasId(0x1BD)) { @@ -19194,33 +19201,33 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t source->LaunchEffect(0x19B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x13B0: + case SU_BUNCHOFSHRIMP: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x45C, source->render.position.x, source->render.position.y, source->render.position.z, 0, -1, 0, 0); } break; - case 0x13B9: - case 0x13BA: + case SU_GROOMING: + case SU_PURRING: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x463, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13BF: + case SU_CHATTERING: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x464, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13B7: + case SU_HISS: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x466, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13B5: + case SU_POWEROFFLOCK: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x467, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } break; - case 0x13C8: + case WE_ONEFOREVER: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x475, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0); } @@ -19228,7 +19235,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_effectMgr->Spawn(source->render.accountId, 0x475, source->render.position.x, source->render.position.y, source->render.position.z, 0, -1, 0, 0); } break; - case 0x13C9: + case WE_CHEERUP: if (target != nullptr) { target->LaunchEffect(0x198, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -19236,20 +19243,20 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_effectMgr->Spawn(source->render.accountId, 0x476, source->render.position.x, source->render.position.y, source->render.position.z, 0, -1, 0, 0); } break; - case 0x130: - case 0x13CC: + case BD_ADAPTATION: + case CG_SPECIALSINGER: if (source != nullptr) { source->LaunchEffect(0x350, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x13D4: + case NV_HELPANGEL: if (source != nullptr) { g_soundMgr->PlayWave("effect\\priest_sanctuary.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_effectMgr->Spawn(source->render.accountId, 0x557, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x558, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x145A: + case DK_DRAGONIC_AURA: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x6BA, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x6BB, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -19263,48 +19270,48 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x145E: - case 0x1464: + case AG_DEADLY_PROJECTION: + case AG_SOUL_VC_STRIKE: if (source != nullptr) { source->SetFrameSequence(96, 1, 1, 96, 1, 1, 500, 0); } break; - case 0x145F: + case AG_DESTRUCTIVE_HURRICANE: g_effectMgr->Spawn(source->render.accountId, 0x6C4, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x6C5, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x1469: + case AG_CRYSTAL_IMPACT: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x73E, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x73F, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x6C: - case 0x14B1: + case BS_REPAIRWEAPON: + case MT_M_MACHINE: if (target != nullptr) { target->LaunchEffect(0x65, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1476: + case IQ_POWERFUL_FAITH: if (source != nullptr) { source->SetFrameSequence(96, 1, 1, 96, 1, 1, 500, 0); g_effectMgr->Spawn(source->render.accountId, 0x7C3, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1477: + case IQ_FIRM_FAITH: if (source != nullptr) { source->SetFrameSequence(0x60, 1, 1, 0x60, 1, 1, 500, 0); g_effectMgr->Spawn(source->render.accountId, 0x7CF, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x147A: + case IQ_SINCERE_FAITH: if (source != nullptr) { source->SetFrameSequence(0x60, 1, 1, 0x60, 1, 1, 500, 0); g_effectMgr->Spawn(source->render.accountId, 0x7AC, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x7AD, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x147E: + case IQ_FIRST_FAITH_POWER: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x7B9, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* effect = g_effectMgr->Spawn(source->render.accountId, 0x7B7, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -19313,7 +19320,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x147F: + case IQ_JUDGE: if (source != nullptr) { source->SetFrameSequence(0x60, 5, 5, 0x60, 5, 1, 500, 0); g_effectMgr->Spawn(source->render.accountId, 0x7BC, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -19327,7 +19334,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x1486: + case IQ_THIRD_EXOR_FLAME: if (source != nullptr) { source->SetFrameSequence(0x60, 2, 2, 0x60, 2, 1, 500, 0); g_effectMgr->Spawn(source->render.accountId, 0x7C0, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -19341,12 +19348,12 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x1479: + case IQ_OLEUM_SANCTUM: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x7C5, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x147C: + case IQ_EXPOSION_BLASTER: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x7CB, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x7CC, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -19354,47 +19361,47 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t source->SetFrameSequence(0x60, 1, 2, 0x60, 2, 1, 1100, 0); } break; - case 0x147B: + case IQ_MASSIVE_F_BLASTER: if (source != nullptr) { g_effectMgr->Spawn(0, 0x82E, source->render.position.x, source->render.position.y, source->render.position.z, 0, -1, 0, 0); source->SetSequenceInterval(5); source->SetFrameSequence(0x60, 1, 2, 0x60, 2, 1, 1100, 0); } break; - case 0x1484: + case IQ_THIRD_FLAME_BOMB: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x825, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x826, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1485: + case IQ_THIRD_CONSECRATION: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x831, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x8E7, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1483: + case IQ_THIRD_PUNISH: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x840, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x841, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1495: + case CD_MEDIALE_VOTUM: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x710, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14A2: + case CD_BENEDICTUM: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x75F, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14A1: + case CD_RELIGIO: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x744, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x149E: + case CD_COMPETENTIA: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x739, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); if (!g_serviceOptions.Get(0xE5)) { @@ -19402,41 +19409,41 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x1497: + case CD_ARGUTUS_VITA: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x713, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x149B: + case CD_PRESENS_ACIES: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x717, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1498: + case CD_ARGUTUS_TELUM: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x715, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14A4: + case CD_FRAMEN: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x789, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x78B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1471: + case AG_ROCK_DOWN: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x6D1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x6D2, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1472: + case AG_STORM_CANNON: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn( 0, 0x6DB, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0 ); } break; - case 0x1475: + case AG_FROZEN_SLASH: if (source != nullptr) { source->SetFrameSequence(0x60, 1, 3, 0x60, 3, 1, 500, 0); g_effectMgr->Spawn( @@ -19452,7 +19459,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t case 0x14BA: g_effectMgr->Spawn(source->render.accountId, 0x6C8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x1473: + case AG_CRIMSON_ARROW: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn( source->render.accountId, 0x6DC, source->render.position.x, source->render.position.y, source->render.position.z, @@ -19460,33 +19467,33 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t ); } break; - case 0x1470: + case AG_CLIMAX: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x709, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14B8: + case MT_SUMMON_ABR_MOTHER_NET: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x76F, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x770, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14B6: + case MT_SUMMON_ABR_BATTLE_WARIOR: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x78E, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14B7: + case MT_SUMMON_ABR_DUAL_CANNON: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x77B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14B9: + case MT_SUMMON_ABR_INFINITY: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x772, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14B3: { + case MT_D_MACHINE: { g_effectMgr->Spawn(targetAid, 0x71A, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(targetAid, 0x71B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* effect = g_effectMgr->Spawn(targetAid, 0x71C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -19499,12 +19506,12 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x14B2: + case MT_A_MACHINE: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x730, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14AF: { + case MT_AXE_STOMP: { float scale = 1.0f; if (level == 1 || level == 2) { scale = 0.7f; @@ -19526,11 +19533,11 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x14B0: + case MT_RUSH_QUAKE: g_effectMgr->Spawn(targetAid, 0x75C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(targetAid, 0x75D, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x1480: + case IQ_SECOND_FLAME: if (target != nullptr) { CEffect* effect = g_effectMgr->Spawn(target->render.accountId, 0x823, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); if (effect) { @@ -19542,7 +19549,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x1494: { + case CD_REPARATIO: { if (source != nullptr) { if (!g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(source->render.accountId, 0x727, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -19567,7 +19574,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x14A0: + case CD_DILECTIO_HEAL: if (source != nullptr) { CEffect* effect = g_effectMgr->Spawn(source->render.accountId, 0x784, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); if (effect) { @@ -19587,7 +19594,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x14A7: + case SHC_SAVAGE_IMPACT: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn( source->render.accountId, 0x72D, source->render.position.x, source->render.position.y, source->render.position.z, @@ -19595,81 +19602,81 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t ); } break; - case 0x149D: + case CD_EFFLIGO: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x736, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x737, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14F1: + case TR_MUSICAL_INTERLUDE: if (source != nullptr) { source->SetFrameSequence(0x60, 1, 3, 0x60, 3, 1, 500, 0); g_effectMgr->Spawn(source->render.accountId, 0x84A, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14F3: + case TR_NIPELHEIM_REQUIEM: if (source != nullptr) { source->SetFrameSequence(0x60, 1, 3, 0x60, 3, 1, 500, 0); g_effectMgr->Spawn(source->render.accountId, 0x81B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1460: - case 0x146E: - case 0x14E6: + case AG_RAIN_OF_CRYSTAL: + case AG_ASTRAL_STRIKE: + case TR_RETROSPECTION: if (source != nullptr) { source->SetFrameSequence(0x60, 1, 3, 0x60, 3, 1, 500, 0); } break; - case 0x14CC: + case WH_WIND_SIGN: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x76B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14CE: + case WH_HAWKRUSH: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x771, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14A3: + case CD_PETITIO: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x777, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14A9: + case SHC_ETERNAL_SLASH: if (source != nullptr) { LaunchRollingCutterEffect(source); g_effectMgr->Spawn(source->render.accountId, 0x778, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14AA: + case SHC_POTENT_VENOM: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x78D, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14C2: + case ABC_ABYSS_DAGGER: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x7AE, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); source->SetState(2, 1); } break; - case 0x14D1: + case WH_HAWKBOOMERANG: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn( 0, 0x7B3, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0 ); } break; - case 0x14F8: + case EM_INCREASING_ACTIVITY: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x7C8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14F7: + case EM_ACTIVITY_BURN: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x7D3, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14C4: + case ABC_CHAIN_REACTION_SHOT: if (target != nullptr) { if (source != nullptr) { g_effectMgr->Spawn( @@ -19684,149 +19691,149 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t ); } break; - case 0x14F6: + case EM_SPELL_ENCHANTING: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x7E9, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14C5: + case ABC_FROM_THE_ABYSS: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x83E, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); source->SetFrameSequence(0x60, 0, 0, 0x60, 0, 1, 0x2BC, 0); } break; - case 0x14C8: + case ABC_DEFT_STAB: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x854, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14CA: + case ABC_FRENZY_SHOT: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x842, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0); } break; - case 0x150D: + case EM_ELEMENTAL_BUSTER_FIRE: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x85B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x85C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1510: + case EM_ELEMENTAL_BUSTER_GROUND: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x85E, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x85F, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1511: + case EM_ELEMENTAL_BUSTER_POISON: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x861, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x862, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x150E: + case EM_ELEMENTAL_BUSTER_WATER: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x864, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x865, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x150F: + case EM_ELEMENTAL_BUSTER_WIND: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x867, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x868, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14DB: + case BO_ADVANCE_PROTECTION: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x871, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x872, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14DA: + case BO_THE_WHOLE_PROTECTION: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x88A, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x150A: + case NPC_BO_HELL_HOWLING: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x8BF, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14DF: + case BO_ACIDIFIED_ZONE_FIRE: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x89E, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0); } break; - case 0x1508: + case NPC_BO_THROWROCK: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x8CC, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0); } break; - case 0x1509: + case NPC_BO_WOODEN_ATTACK: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x8CA, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0); } break; - case 0x150C: + case NPC_BO_FAIRY_DUSTY: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x8D1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14DC: + case BO_ACIDIFIED_ZONE_WATER: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x8A6, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0); } break; - case 0x14DE: + case BO_ACIDIFIED_ZONE_WIND: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x8AE, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0); } break; - case 0x14DD: + case BO_ACIDIFIED_ZONE_GROUND: if (source != nullptr && target != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x8B6, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0); } break; - case 0x14E3: + case BO_RESEARCHREPORT: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x8C1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x14C1: + case ABC_STRIP_SHADOW: if (target != nullptr) { if (CRagEffect* effect = target->LaunchEffect(0x1EF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f)) { effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&target->render.position), 0, 0, 0, 0); } } break; - case 0x14D8: + case BO_BIONIC_PHARMACY: if (source != nullptr) { source->LaunchEffect(0x3A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1482: + case IQ_SECOND_JUDGEMENT: if (target != nullptr) { CPlayer* player = static_cast(g_modeMgr.GetGameMode())->scene->player; g_soundMgr->PlayWave("effect\\IQ_SECOND_JUDGEMENT.wav", player->render.position.x - target->render.position.x, 0.0f, player->render.position.z - target->render.position.z, 250, 40, 1.0f, 0); } break; - case 0x14C3: + case ABC_UNLUCKY_RUSH: if (target != nullptr) { CPlayer* player = static_cast(g_modeMgr.GetGameMode())->scene->player; g_soundMgr->PlayWave("effect\\ABC_UNLUCKY_RUSH.wav", player->render.position.x - target->render.position.x, 0.0f, player->render.position.z - target->render.position.z, 250, 40, 1.0f, 0); } break; - case 0x14C6: + case ABC_ABYSS_SLAYER: if (source != nullptr) { CPlayer* player = static_cast(g_modeMgr.GetGameMode())->scene->player; g_soundMgr->PlayWave("effect\\ABC_ABYSS_SLAYER.wav", player->render.position.x - source->render.position.x, 0.0f, player->render.position.z - source->render.position.z, 250, 40, 1.0f, 0); } break; - case 0x1C: - case 0x14E: - case 0x2D9: - case 0x7FB: - case 0x803: - case 0x1F41: + case AL_HEAL: + case WE_MALE: + case NPC_CHEAL: + case AB_CHEAL: + case AB_HIGHNESSHEAL: + case HLIF_HEAL: if (target != nullptr) { int effectId; if (level >= 4000) { @@ -19842,59 +19849,59 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->SendMsg(nullptr, 0x58, 0, level, level >> 31, static_cast(0xFF00FF00), 0, 0x72, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x1F5A: + case MH_SILENT_BREEZE: if (source != nullptr) { source->LaunchEffect(0x3C1, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F67: + case MH_MAGMA_FLOW: if (source != nullptr) { source->LaunchEffect(0x3C2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xAD: - case 0x2D4: - case 0x8DB: - case 0x1F50: + case NPC_SELFDESTRUCTION: + case NPC_FIRESTORM: + case NC_SELFDESTRUCTION: + case HVAN_EXPLOSION: if (source != nullptr) { source->LaunchEffect(0xB7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x4A: - case 0x201E: + case PR_MAGNIFICAT: + case MER_MAGNIFICAT: if (source != nullptr) { source->LaunchEffect(0x4C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x49: - case 0x202E: + case PR_KYRIE: + case MER_KYRIE: if (source != nullptr) { source->LaunchEffect(0x70, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7: - case 0x200A: + case SM_MAGNUM: + case MS_MAGNUM: if (source != nullptr) { source->LaunchEffect(0x11, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xF9: - case 0x164: - case 0x200C: - case 0x201C: + case CR_AUTOGUARD: + case LK_PARRYING: + case MS_PARRYING: + case ML_AUTOGUARD: if (source != nullptr) { source->SendMsg(nullptr, 0x7E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x101: - case 0x201B: + case CR_DEFENDER: + case ML_DEFENDER: if (source != nullptr) { source->LaunchEffect(0xDE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x167: - case 0x168: - case 0x200E: + case LK_BERSERK: + case LK_FURY: + case MS_BERSERK: if (source != nullptr) { source->SendMsg(nullptr, 0x6D, 0, 0x170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); source->LaunchEffect(0x170, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -19902,7 +19909,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t g_soundMgr->PlayWave("effect\\버서크.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x1F42: + case HLIF_AVOID: if (source != nullptr) { source->LaunchEffect(0x1C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -19910,13 +19917,13 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x1C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F4A: - case 0x1F4B: + case HFLI_FLEET: + case HFLI_SPEED: if (source != nullptr) { source->LaunchEffect(0x234, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F46: + case HAMI_DEFENCE: g_soundMgr->PlayWave("effect\\h_defence.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x239, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -19925,7 +19932,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x239, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F45: + case HAMI_CASTLE: g_soundMgr->PlayWave("effect\\h_castling.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (source != nullptr) { source->LaunchEffect(0x23A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -19934,46 +19941,46 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t target->LaunchEffect(0x23A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F48: + case HAMI_BLOODLUST: if (source != nullptr) { source->LaunchEffect(0x23B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F75: + case MH_TOXIN_OF_MANDARA: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x910, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x911, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1F79: + case MH_HEILIGE_PFERD: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x91B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x91C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1F7A: + case MH_GOLDENE_TONE: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x91E, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1F73: + case MH_THE_ONE_FIGHTER_RISES: if (source != nullptr) { source->LaunchEffect(0x922, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_effectMgr->Spawn(source->render.accountId, 0x923, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x1F6D: + case MH_TEMPERING: if (source != nullptr) { g_effectMgr->Spawn(source->render.accountId, 0x924, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x20FB: + case EM_EL_FLAMETECHNIC: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x8D6, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x8D7, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x219B: + case ABR_NET_REPAIR: if (target != nullptr) { target->LaunchEffect(0x139, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (source != nullptr && g_effectMgr->Find(source->render.accountId, 0x76F) == nullptr) { @@ -19981,7 +19988,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x219C: + case ABR_NET_SUPPORT: if (target != nullptr) { target->LaunchEffect(0xFD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (source != nullptr && g_effectMgr->Find(source->render.accountId, 0x770) == nullptr) { @@ -19989,7 +19996,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } } break; - case 0x2108: { + case EM_EL_POISON_SHIELD: { if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x7DD, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } @@ -20001,13 +20008,13 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x2107: + case EM_EL_DEEP_POISONING: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x8D2, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x8D3, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x20FF: { + case EM_EL_CRYSTAL_ARMOR: { if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x7E8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } @@ -20019,13 +20026,13 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x20FE: + case EM_EL_COLD_FORCE: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x8D4, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x8D5, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x20FC: { + case EM_EL_FLAMEARMOR: { if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x7F8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } @@ -20037,7 +20044,7 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x2102: { + case EM_EL_EYES_OF_STORM: { if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x837, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } @@ -20049,13 +20056,13 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x2101: + case EM_EL_GRACE_BREEZE: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x8D8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x8D9, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x2105: { + case EM_EL_STRONG_PROTECTION: { if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x83C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } @@ -20067,23 +20074,23 @@ void CGameMode::ReceiveSkillUse(std::uint16_t skillId, int level, std::uint32_t } break; } - case 0x2104: + case EM_EL_EARTH_CARE: if (target != nullptr) { g_effectMgr->Spawn(target->render.accountId, 0x8DA, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x8DB, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0xC: - case 0xF: - case 0x12: - case 0x18: - case 0x108: - case 0x259: - case 0x8AE: - case 0x8AF: - case 0x8B0: - case 0x8B5: - case 0x900: + case MG_SAFETYWALL: + case MG_FROSTDIVER: + case MG_FIREWALL: + case AL_RUWACH: + case MO_BODYRELOCATION: + case DE_INSTANT: + case WL_SUMMONFB: + case WL_SUMMONBL: + case WL_SUMMONWB: + case WL_SUMMONSTONE: + case SC_FEINTBOMB: break; default: LaunchLuaSkillEffect(skillId, level, source, target); @@ -20352,7 +20359,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x84: case 0x98: case 0x164: - case 0x187: + case ID_PING: case 0x1CC: case 0x1E0: case 0x1E9: @@ -20362,8 +20369,8 @@ void CGameMode::ProcessIncomingPackets() { case 0x853: case 0x855: case 0x90D: - case 0x9B7: - case 0x9B9: + case ID_ZC_ACK_OPEN_BANKING: + case ID_ZC_ACK_CLOSE_BANKING: case 0x9CC: case 0x9EB: case 0xA7B: @@ -20374,12 +20381,12 @@ void CGameMode::ProcessIncomingPackets() { case 0xAD6: case 0xAD9: case 0xB00: - case 0xB1D: + case ID_ZC_PING_LIVE: case 0xC20: case 0xC29: case 0xC35: break; - case 0x78: + case idle_unit2Type: this->ReceiveActorTypedEntry(g_gameModePacketBuffer); break; case 0x79: @@ -20388,112 +20395,112 @@ void CGameMode::ProcessIncomingPackets() { case 0x7B: this->ReceiveActorMoveEntryOld0(g_gameModePacketBuffer); break; - case 0x7C: + case spawn_unit2Type: this->ReceiveNpcStandEntry(g_gameModePacketBuffer); break; - case 0x80: + case ID_ZC_NOTIFY_VANISH: this->ReceiveActorDisappear(g_gameModePacketBuffer); break; - case 0x81: + case ID_SC_NOTIFY_BAN: this->ReceiveNotifyBan(g_gameModePacketBuffer); break; - case 0x8D: + case ID_ZC_NOTIFY_CHAT: this->ReceiveActorChat(g_gameModePacketBuffer); break; - case 0x8E: + case ID_ZC_NOTIFY_PLAYERCHAT: this->ReceiveBroadcast(g_gameModePacketBuffer); break; - case 0x91: + case ID_ZC_NPCACK_MAPMOVE: this->ReceiveMapMove(g_gameModePacketBuffer); break; case 0x92: this->ReceiveZoneServerChange(g_gameModePacketBuffer); break; - case 0x97: + case ID_ZC_WHISPER: this->ReceiveWhisper(g_gameModePacketBuffer); break; case 0xA0: this->ReceiveItemPickupAck(g_gameModePacketBuffer); break; - case 0xB0: + case ID_ZC_PAR_CHANGE: this->ReceiveParChange(g_gameModePacketBuffer); break; - case 0xB1: + case ID_ZC_LONGPAR_CHANGE: this->ReceiveExpChange(g_gameModePacketBuffer); break; - case 0xB6: + case ID_ZC_CLOSE_DIALOG: this->ReceiveUnknownD264E0(g_gameModePacketBuffer); break; - case 0xB7: + case ID_ZC_MENU_LIST: this->ReceiveWindow17Entries(g_gameModePacketBuffer); break; - case 0xBC: + case ID_ZC_STATUS_CHANGE_ACK: this->ReceiveStatusChangeAck(g_gameModePacketBuffer); break; - case 0xBD: + case ID_ZC_STATUS: this->ReceiveStatus(g_gameModePacketBuffer); break; - case 0xBE: + case ID_ZC_STATUS_CHANGE: this->ReceiveStatusChange(g_gameModePacketBuffer); break; case 0xC3: this->ReceiveSpriteChange(g_gameModePacketBuffer); break; - case 0xC7: + case ID_ZC_PC_SELL_ITEMLIST: this->ReceiveItem1718IndexList(g_gameModePacketBuffer); break; - case 0xCA: + case ID_ZC_PC_PURCHASE_RESULT: this->ReceiveItem1718Result(g_gameModePacketBuffer); break; - case 0xD1: + case ID_ZC_SETTING_WHISPER_PC: this->ReceiveResultNotice0118(g_gameModePacketBuffer); break; - case 0xD7: + case ID_ZC_ROOM_NEWENTRY: this->ReceiveActorMessage32(g_gameModePacketBuffer); break; - case 0xDA: + case ID_ZC_REFUSE_ENTER_ROOM: this->ReceiveResultNotice00FC(g_gameModePacketBuffer); break; - case 0xDB: + case ID_ZC_ENTER_ROOM: this->ReceiveChatRoomMemberList(g_gameModePacketBuffer); break; - case 0xDF: + case ID_ZC_CHANGE_CHATROOM: this->ReceiveActorMessage34(g_gameModePacketBuffer); break; case 0xE7: this->ReceiveExchangeRequestAck(g_gameModePacketBuffer); break; - case 0xEA: + case ID_ZC_ACK_ADD_EXCHANGE_ITEM: this->ReceiveExchangeItemAddAck(g_gameModePacketBuffer); break; case 0xFB: this->ReceivePartyMemberList(g_gameModePacketBuffer); break; case 0xFD: - case 0x2C5: + case ID_ZC_PARTY_JOIN_REQ_ACK: this->ReceiveNamedActionResult(g_gameModePacketBuffer); break; case 0x104: this->ReceivePartyMemberInfo(g_gameModePacketBuffer); break; - case 0x105: + case ID_ZC_DELETE_MEMBER_FROM_GROUP: this->ReceivePartyMemberLeft(g_gameModePacketBuffer); break; - case 0x109: + case ID_ZC_NOTIFY_CHAT_PARTY: this->ReceivePartyChat(g_gameModePacketBuffer); break; - case 0x10E: - case 0x239: + case ID_ZC_SKILLINFO_UPDATE: + case ID_ZC_HOSKILLINFO_UPDATE: case 0x29E: this->ApplySkillUpdatePacket(g_gameModePacketBuffer); break; case 0x114: this->ReceiveActorSkillAction(g_gameModePacketBuffer); break; - case 0x115: + case ID_ZC_NOTIFY_SKILL_POSITION: this->ReceiveActorSkillMessage(g_gameModePacketBuffer); break; - case 0x117: + case ID_ZC_NOTIFY_GROUNDSKILL: this->ReceiveNotifyGroundSkill(g_gameModePacketBuffer); break; case 0x11F: @@ -20503,19 +20510,19 @@ void CGameMode::ProcessIncomingPackets() { case 0x800: this->ReceiveItem1748List(g_gameModePacketBuffer); break; - case 0x135: + case ID_ZC_PC_PURCHASE_RESULT_FROMMC: this->ReceiveEquipItemNotice(g_gameModePacketBuffer); break; - case 0x136: + case openvendingType: this->ReceiveUnknownD50810(g_gameModePacketBuffer); break; - case 0x13B: + case ID_ZC_ACTION_FAILURE: this->ReceiveEquipAck(g_gameModePacketBuffer); break; - case 0x141: + case ID_ZC_COUPLESTATUS: this->ReceiveStatusBonus(g_gameModePacketBuffer); break; - case 0x14C: + case ID_ZC_MYGUILD_BASIC_INFO: this->ReceiveGuildRelationList(g_gameModePacketBuffer); break; case 0x150: @@ -20527,25 +20534,25 @@ void CGameMode::ProcessIncomingPackets() { case 0x15A: this->ReceiveGuildMemberLeft(g_gameModePacketBuffer); break; - case 0x160: + case ID_ZC_POSITION_INFO: this->ReceiveGuildPositionInfo(g_gameModePacketBuffer); break; case 0x163: this->ReceiveGuildBanList(g_gameModePacketBuffer); break; - case 0x166: + case ID_ZC_POSITION_ID_NAME_INFO: this->ReceiveGuildPositionNames(g_gameModePacketBuffer); break; - case 0x16F: + case ID_ZC_GUILD_NOTICE: this->ReceiveGuildNotice(g_gameModePacketBuffer); break; - case 0x174: + case ID_ZC_ACK_CHANGE_GUILD_POSITIONINFO: this->ReceiveGuildPositionUpdate(g_gameModePacketBuffer); break; - case 0x17D: + case ID_ZC_ACK_ITEMCOMPOSITION: this->ReceiveCardCompositionResult(g_gameModePacketBuffer); break; - case 0x17F: + case ID_ZC_GUILD_CHAT: this->ReceiveGuildChat(g_gameModePacketBuffer); break; case 0x182: @@ -20554,44 +20561,44 @@ void CGameMode::ProcessIncomingPackets() { case 0x185: this->ReceiveAddRelatedGuild(g_gameModePacketBuffer); break; - case 0x188: + case ID_ZC_ACK_ITEMREFINING: this->ReceiveRefineResult(g_gameModePacketBuffer); break; - case 0x18F: + case ID_ZC_ACK_REQMAKINGITEM: this->ReceiveItemEffectResult(g_gameModePacketBuffer); break; case 0x195: this->ReceiveActorNameAll(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x196: + case sc_notickType: this->ReceiveStatusChangeNotice(g_gameModePacketBuffer); break; case 0x19A: this->ReceiveEffectNumber(g_gameModePacketBuffer); break; - case 0x19B: + case ID_ZC_NOTIFY_EFFECT: this->ReceivePartyMemberEffect(g_gameModePacketBuffer); break; - case 0x19E: + case ID_ZC_START_CAPTURE: this->Zc_Start_Capture(g_gameModePacketBuffer); break; - case 0x1A0: + case ID_ZC_TRYCAPTURE_MONSTER: this->Zc_Trycapture_Monster(g_gameModePacketBuffer); break; - case 0x1A3: - case 0x22F: + case ID_ZC_FEED_PET: + case ID_ZC_FEED_MER: this->ReceiveFeedResult(g_gameModePacketBuffer); break; - case 0x1A4: + case ID_ZC_CHANGESTATE_PET: this->ReceivePetChangeState(g_gameModePacketBuffer); break; - case 0x1AA: + case ID_ZC_PET_ACT: this->ReceivePetAct(g_gameModePacketBuffer); break; case 0x1B6: this->ReceiveGuildInfo(g_gameModePacketBuffer); break; - case 0x1B9: + case ID_ZC_DISPEL: this->ReceiveDispel(g_gameModePacketBuffer); break; case 0x1C1: @@ -20603,20 +20610,20 @@ void CGameMode::ProcessIncomingPackets() { case 0x1C5: this->ReceiveItem1740Add(g_gameModePacketBuffer); break; - case 0x1C9: + case graffiti_entryType: this->Zc_Skill_Entry2(g_gameModePacketBuffer); break; case 0x1CF: this->ReceiveDevotionList(g_gameModePacketBuffer); break; - case 0x1D1: + case ID_ZC_BLADESTOP: this->ReceiveActorPairFreeze(g_gameModePacketBuffer); break; - case 0x1D2: + case ID_ZC_COMBODELAY: case 0xC36: this->ReceiveActorSequenceDeadline(g_gameModePacketBuffer); break; - case 0x1D3: + case ID_ZC_SOUND: this->ReceiveSound(g_gameModePacketBuffer); break; case 0x1D7: @@ -20631,31 +20638,31 @@ void CGameMode::ProcessIncomingPackets() { case 0x1DA: this->ReceiveActorMoveEntryOld(g_gameModePacketBuffer); break; - case 0x1DE: + case ID_ZC_NOTIFY_SKILL: this->ReceiveNotifySkill(g_gameModePacketBuffer); break; - case 0x1E1: + case ID_ZC_SPIRITS2: this->Zc_Spirits2(g_gameModePacketBuffer); break; case 0x1E4: this->Zc_Start_Couple(g_gameModePacketBuffer); break; - case 0x1E6: + case ID_ZC_COUPLENAME: this->ReceiveUnknown0294Text(g_gameModePacketBuffer); break; - case 0x1EA: + case ID_ZC_CONGRATULATION: this->ReceiveActorEffect347(g_gameModePacketBuffer); break; - case 0x1F3: + case ID_ZC_SPECIALEFFECT: this->ReceiveNotifyEffect(g_gameModePacketBuffer); break; - case 0x1F5: + case ID_ZC_ACK_EXCHANGE_ITEM: this->ReceiveExchangeRequestAck2(g_gameModePacketBuffer); break; case 0x1F8: this->Zc_Start_Baby(g_gameModePacketBuffer); break; - case 0x201: + case ID_ZC_FRIENDS_LIST: this->ReceiveFriendList(g_gameModePacketBuffer); break; case 0x20E: @@ -20664,10 +20671,10 @@ void CGameMode::ProcessIncomingPackets() { case 0x214: this->ReceiveStatDump(g_gameModePacketBuffer); break; - case 0x215: + case ID_ZC_SKILLMSG: this->ReceiveStatusNotice(g_gameModePacketBuffer); break; - case 0x223: + case ID_ZC_ACK_WEAPONREFINE: this->ReceiveItemObtainNotice(g_gameModePacketBuffer); break; case 0x22A: @@ -20682,7 +20689,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x22E: this->ReceiveHomunculusInfo(g_gameModePacketBuffer); break; - case 0x230: + case ID_ZC_CHANGESTATE_MER: this->ReceiveHomunculusChange(g_gameModePacketBuffer); break; case 0x27A: @@ -20694,19 +20701,19 @@ void CGameMode::ProcessIncomingPackets() { case 0x284: this->ReceiveActorStatusValuePacket(g_gameModePacketBuffer); break; - case 0x287: + case ID_ZC_PC_CASH_POINT_ITEMLIST: this->ReceivePendingItem1718List(g_gameModePacketBuffer); break; case 0x289: this->ReceivePendingResult(g_gameModePacketBuffer); break; - case 0x28A: + case ID_ZC_NPC_SHOWEFST_UPDATE: this->ReceiveUnknownD78010(g_gameModePacketBuffer); break; - case 0x291: + case ID_ZC_MSG: this->Zc_Msg(g_gameModePacketBuffer); break; - case 0x293: + case ID_ZC_BOSS_INFO: this->ReceiveUnknown05C4Result(g_gameModePacketBuffer); break; case 0x294: @@ -20721,10 +20728,10 @@ void CGameMode::ProcessIncomingPackets() { case 0x297: this->ReceiveItem1740BasicList(g_gameModePacketBuffer); break; - case 0x298: + case ID_ZC_CASH_TIME_COUNTER: this->ReceiveRentalItemTime(g_gameModePacketBuffer); break; - case 0x299: + case ID_ZC_CASH_ITEM_DELETE: this->ReceiveUnknownD25850(g_gameModePacketBuffer); break; case 0x29A: @@ -20739,7 +20746,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x2B8: this->ReceivePartyItemPickupNotice(g_gameModePacketBuffer); break; - case 0x2BB: + case ID_ZC_EQUIPITEM_DAMAGED: this->ReceiveEquipItemDamaged(g_gameModePacketBuffer); break; case 0x2C1: @@ -20748,7 +20755,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x2C2: this->ReceiveFormatStringMessage(g_gameModePacketBuffer); break; - case 0x2C9: + case ID_ZC_PARTY_CONFIG: this->ReceiveToggleNotice(g_gameModePacketBuffer); break; case 0x2CB: @@ -20785,13 +20792,13 @@ void CGameMode::ProcessIncomingPackets() { case 0x2D9: this->ReceiveFeedOption(g_gameModePacketBuffer); break; - case 0x2DA: + case ID_ZC_CONFIG_NOTIFY: this->ReceiveUnknownD26800(g_gameModePacketBuffer); break; - case 0x2DC: + case ID_ZC_BATTLEFIELD_CHAT: this->ReceiveActorBroadcastText(g_gameModePacketBuffer); break; - case 0x2EB: + case ID_ZC_ACCEPT_ENTER: this->ReceiveAcceptEnter(g_gameModePacketBuffer); break; case 0x2EC: @@ -20805,16 +20812,16 @@ void CGameMode::ProcessIncomingPackets() { case 0x2EE: this->ReceiveActorStandEntryFont(g_gameModePacketBuffer); break; - case 0x43D: + case ID_ZC_SKILL_POSTDELAY: this->ApplyCooldownStart(g_gameModePacketBuffer); break; case 0x43E: this->LoadCooldownRecords(g_gameModePacketBuffer); break; - case 0x43F: + case status_change2Type: this->ReceiveStatusChangeExtended(g_gameModePacketBuffer); break; - case 0x440: + case ID_ZC_MILLENNIUMSHIELD: this->ReceiveActorEffect228(g_gameModePacketBuffer); break; case 0x446: @@ -20826,7 +20833,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x7DB: this->ReceiveHomunculusProperty(g_gameModePacketBuffer); break; - case 0x7E2: + case ID_ZC_MSG_VALUE: this->ReceiveFormattedMessage(g_gameModePacketBuffer); break; case 0x7E3: @@ -20843,10 +20850,10 @@ void CGameMode::ProcessIncomingPackets() { case 0x857: this->ReceiveActorStateEntryNamedOld(g_gameModePacketBuffer); break; - case 0x7FA: + case ID_ZC_DELETE_ITEM_FROM_BODY: this->ReceiveItemConsumed(g_gameModePacketBuffer); break; - case 0x7FC: + case partyleaderchangedType: this->ReceivePartyLeaderChange(g_gameModePacketBuffer); break; case 0x7FE: @@ -20876,16 +20883,16 @@ void CGameMode::ProcessIncomingPackets() { case 0x812: this->ReceiveBuyingStoreOpenResult(g_gameModePacketBuffer); break; - case 0x813: + case ID_ZC_MYITEMLIST_BUYING_STORE: this->ReceiveItem1758List(g_gameModePacketBuffer); break; - case 0x814: + case ID_ZC_BUYING_STORE_ENTRY: this->ReceiveActorText(g_gameModePacketBuffer); break; - case 0x816: + case ID_ZC_DISAPPEAR_BUYING_STORE_ENTRY: this->ReceiveActorSignal(g_gameModePacketBuffer); break; - case 0x818: + case ID_ZC_ACK_ITEMLIST_BUYING_STORE: this->ReceiveBuyingStoreItemList(g_gameModePacketBuffer); break; case 0x81A: @@ -20900,31 +20907,31 @@ void CGameMode::ProcessIncomingPackets() { case 0x81D: this->ReceiveActorStatusBlock(g_gameModePacketBuffer); break; - case 0x81E: + case ID_ZC_EL_PAR_CHANGE: this->ReceiveActorStatusUpdate(g_gameModePacketBuffer); break; case 0x81F: this->ReceiveColoredNotice(g_gameModePacketBuffer); break; - case 0x824: + case ID_ZC_FAILED_TRADE_BUYING_STORE_TO_SELLER: this->ReceiveBuyingStoreSellResult(g_gameModePacketBuffer); break; case 0x836: this->ReceiveSearchStoreItemsOld(g_gameModePacketBuffer); break; - case 0x837: + case ID_ZC_SEARCH_STORE_INFO_FAILED: this->ReceiveWindow181Message(g_gameModePacketBuffer); break; case 0x839: this->ReceiveGuildMemberExpelled(g_gameModePacketBuffer); break; - case 0x83A: + case ID_ZC_OPEN_SEARCH_STORE_INFO: this->ReceiveSearchStoreOpen(g_gameModePacketBuffer); break; - case 0x849: + case ID_ZC_SE_PC_BUY_CASHITEM_RESULT: this->ReceiveRequestResult(g_gameModePacketBuffer); break; - case 0x8AE: + case ID_REPLAY_WINDOW_RESPONSE: this->ProcessUiMessage(g_gameModePacketBuffer); break; case 0x8B1: @@ -20942,23 +20949,23 @@ void CGameMode::ProcessIncomingPackets() { case 0x8C7: this->ReceiveGroundSkill8(g_gameModePacketBuffer); break; - case 0x8CA: + case ID_ZC_ACK_SCHEDULER_CASHITEM: this->ReceiveTypedItemList(g_gameModePacketBuffer); break; case 0x8CB: - case 0x97B: + case ID_ZC_PERSONAL_INFOMATION: this->ReceiveRateInfo(g_gameModePacketBuffer); break; case 0x8CE: this->ReceiveNotice1950(g_gameModePacketBuffer); break; - case 0x8CF: + case ID_ZC_SPIRITS_ATTRIBUTE: this->ReceiveActorCharm(g_gameModePacketBuffer); break; case 0x8D2: this->ReceiveActorMessage144(g_gameModePacketBuffer); break; - case 0x8D6: + case ID_ZC_CLEAR_DIALOG: this->RefreshWindow16(g_gameModePacketBuffer); break; case 0x8FF: @@ -20970,7 +20977,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x906: this->ReceiveEquipWindowMicroscope(g_gameModePacketBuffer); break; - case 0x908: + case ID_ZC_INVENTORY_TAB: this->ReceiveInventoryItemUpdate(g_gameModePacketBuffer); break; case 0x90F: @@ -20985,10 +20992,10 @@ void CGameMode::ProcessIncomingPackets() { case 0x96B: this->ReceiveUnknown16FC588(g_gameModePacketBuffer); break; - case 0x96D: + case ID_ZC_MERGE_ITEM_OPEN: this->ReceiveWindow227Entries(g_gameModePacketBuffer); break; - case 0x96F: + case ID_ZC_ACK_MERGE_ITEM: this->ReceiveWindow227Result(g_gameModePacketBuffer); break; case 0x975: @@ -20997,13 +21004,13 @@ void CGameMode::ProcessIncomingPackets() { case 0x976: this->ReceiveStorageEquipList3(g_gameModePacketBuffer); break; - case 0x977: + case monsterhpType: this->ReceiveActorInt64Pair(g_gameModePacketBuffer); break; - case 0x97D: + case ID_ZC_ACK_RANKING: this->ReceiveRankingList(g_gameModePacketBuffer); break; - case 0x97E: + case ID_ZC_UPDATE_RANKING_POINT: this->ReceiveTypedNotice(g_gameModePacketBuffer); break; case 0x97F: @@ -21012,22 +21019,22 @@ void CGameMode::ProcessIncomingPackets() { case 0x983: this->ReceiveStatusChangeEffect2(g_gameModePacketBuffer); break; - case 0x984: + case ID_ZC_EFST_SET_ENTER: this->ReceiveStatusChangeEntry(g_gameModePacketBuffer); break; case 0x985: this->LoadCooldownSnapshot(g_gameModePacketBuffer); break; - case 0x988: + case ID_ZC_NOTIFY_CLAN_CONNECTINFO: this->ReceiveClanMemberCount(g_gameModePacketBuffer); break; - case 0x989: + case ID_ZC_ACK_CLAN_LEAVE: this->ReceiveClanLeave(g_gameModePacketBuffer); break; - case 0x98A: + case ID_ZC_CLANINFO: this->ReceiveClanInfo(g_gameModePacketBuffer); break; - case 0x98E: + case ID_ZC_NOTIFY_CLAN_CHAT: this->ReceiveClanChat(g_gameModePacketBuffer); break; case 0x991: @@ -21051,28 +21058,28 @@ void CGameMode::ProcessIncomingPackets() { case 0x997: this->ReceiveEquipWindowMicroscope3(g_gameModePacketBuffer); break; - case 0x99B: + case ID_ZC_MAPPROPERTY_R2: this->ReceiveMapProperty(g_gameModePacketBuffer); break; case 0x99F: this->ReceiveGroundSkill32(g_gameModePacketBuffer); break; - case 0x9A6: + case ID_ZC_BANKING_CHECK: this->ReceiveBankCheck(g_gameModePacketBuffer); break; - case 0x9A8: + case ID_ZC_ACK_BANKING_DEPOSIT: this->ReceiveBankDepositAck(g_gameModePacketBuffer); break; - case 0x9AA: + case ID_ZC_ACK_BANKING_WITHDRAW: this->ReceiveBankWithdrawAck(g_gameModePacketBuffer); break; - case 0x9C1: + case ID_ZC_C_MARKERINFO: this->AddMiniMapEffectMarker(g_gameModePacketBuffer); break; case 0x9CA: this->ReceiveGroundSkillExtended(g_gameModePacketBuffer); break; - case 0x9CD: + case ID_ZC_MSG_COLOR: this->Zc_Msg_Color(g_gameModePacketBuffer); break; case 0x9D2: @@ -21081,7 +21088,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x9D3: this->ReceiveItem1738EquipList(g_gameModePacketBuffer); break; - case 0x9DA: + case ID_ZC_ACK_GUILDSTORAGE_LOG: this->ReceiveGuildStorageLog(g_gameModePacketBuffer); break; case 0x9DB: @@ -21093,25 +21100,25 @@ void CGameMode::ProcessIncomingPackets() { case 0x9DD: this->ReceiveActorStateEntryNamed(g_gameModePacketBuffer); break; - case 0x9DE: + case ID_ZC_WHISPER2: this->ReceiveWhisper2(g_gameModePacketBuffer); break; - case 0x9E7: + case rodexicon: this->ReceiveUnknownD77BF0(g_gameModePacketBuffer); break; - case 0x9ED: + case rodexwriteresult: this->ReceiveUnknown0454Result(g_gameModePacketBuffer); break; - case 0x9F0: + case rodexnextpage: this->ReceiveRodexMailListAppend(g_gameModePacketBuffer); break; - case 0x9F2: + case rodexgetzeny: this->ReceiveRodexMailReturn(g_gameModePacketBuffer); break; - case 0x9F4: + case rodexgetitem: this->ReceiveRodexItemReturn(g_gameModePacketBuffer); break; - case 0x9F6: + case rodexdelete: this->ReceiveRodexMailDeleted(g_gameModePacketBuffer); break; case 0x9F8: @@ -21132,13 +21139,13 @@ void CGameMode::ProcessIncomingPackets() { case 0x9FF: this->ReceiveActorStateEntryNamedBody(g_gameModePacketBuffer); break; - case 0xA02: + case ID_ZC_DRESSROOM_OPEN: this->EnsureWindow259(g_gameModePacketBuffer); break; case 0xA05: this->ReceiveItemReward(g_gameModePacketBuffer); break; - case 0xA07: + case rodexremoveitem: this->ReceiveStackedItemReturn(g_gameModePacketBuffer); break; case 0xA0A: @@ -21162,34 +21169,34 @@ void CGameMode::ProcessIncomingPackets() { case 0xA11: this->ReceiveItem1738EquipListOptions(g_gameModePacketBuffer); break; - case 0xA12: + case rodexopenwrite: this->ReceiveRodexOpen(g_gameModePacketBuffer); break; - case 0xA15: + case ID_ZC_GOLDPCCAFE_POINT: this->ReceiveUnknownD612A0(g_gameModePacketBuffer); break; - case 0xA17: + case ID_ZC_DYNAMICNPC_CREATE_RESULT: this->ReceiveDynamicNpcNotice(g_gameModePacketBuffer); break; case 0xA1A: this->ReceiveRouletteOpen(g_gameModePacketBuffer); break; - case 0xA1C: + case rouletteinfoackType: this->ReceiveRouletteInfo(g_gameModePacketBuffer); break; - case 0xA1E: + case ID_ZC_ACK_CLOSE_ROULETTE: this->ReceiveRouletteClose(g_gameModePacketBuffer); break; - case 0xA20: + case roulettgenerateackType: this->ReceiveRouletteResult(g_gameModePacketBuffer); break; - case 0xA22: + case roulettercvitemackType: this->ReceiveRouletteSetResult(g_gameModePacketBuffer); break; case 0xA2D: this->ReceiveEquipWindowMicroscope4(g_gameModePacketBuffer); break; - case 0xA30: + case ID_ZC_ACK_REQNAMEALL: this->ReceiveActorNameCard(g_gameModePacketBuffer); break; case 0xA31: @@ -21204,10 +21211,10 @@ void CGameMode::ProcessIncomingPackets() { case 0xA37: this->ReceiveItemPickupAck8(g_gameModePacketBuffer); break; - case 0xA3B: + case ID_ZC_EQUIPMENT_EFFECT: this->ReceiveStatusChangeList(g_gameModePacketBuffer); break; - case 0xA3F: + case ID_ZC_UPDATE_CARDSLOT: this->ReceiveEquipCardChange(g_gameModePacketBuffer); break; case 0xA43: @@ -21216,7 +21223,7 @@ void CGameMode::ProcessIncomingPackets() { case 0xA44: this->ReceivePartyInfo2(g_gameModePacketBuffer); break; - case 0xA47: + case ID_ZC_STYLE_CHANGE_RES: this->ReceiveCharacterRenameResult(g_gameModePacketBuffer); break; case 0xA7D: @@ -21261,19 +21268,19 @@ void CGameMode::ProcessIncomingPackets() { case 0xAA6: this->ReceiveGuildMemberAdd4(g_gameModePacketBuffer); break; - case 0xAA7: + case ID_ZC_MOVE_ITEM_FAILED: this->ClearItemLists(g_gameModePacketBuffer); break; - case 0xAB2: + case ID_ZC_GROUP_ISALIVE: this->ReceivePartyDead(g_gameModePacketBuffer); break; case 0xAB8: this->ReceivePacket0AB8(g_gameModePacketBuffer); break; - case 0xABD: + case ID_ZC_NOTIFY_MEMBERINFO_TO_GROUPM: this->ReceivePartyJobLevel(g_gameModePacketBuffer); break; - case 0xABE: + case ID_ZC_WARPLIST: this->ReceiveChatEntries(g_gameModePacketBuffer); break; case 0xABF: @@ -21282,13 +21289,13 @@ void CGameMode::ProcessIncomingPackets() { case 0xAC2: this->ReceiveRodexMailList(g_gameModePacketBuffer); break; - case 0xAC7: + case ID_ZC_NPCACK_SERVERMOVE: this->ReceiveChangeZoneServerWithHost(g_gameModePacketBuffer); break; case 0xAC8: this->ResetItemLists(g_gameModePacketBuffer); break; - case 0xACB: + case ID_ZC_LONGLONGPAR_CHANGE: this->ReceiveLongParChange(g_gameModePacketBuffer); break; case 0xACC: @@ -21300,7 +21307,7 @@ void CGameMode::ProcessIncomingPackets() { case 0xADE: this->ReceiveUnknown173A5BC(g_gameModePacketBuffer); break; - case 0xADF: + case ID_ZC_ACK_REQNAMEALL_NPC: this->ReceiveActorNameTitle(reinterpret_cast(g_gameModePacketBuffer)); break; case 0xAE1: @@ -21312,13 +21319,13 @@ void CGameMode::ProcessIncomingPackets() { case 0xAE5: this->ReceivePartyRoster(g_gameModePacketBuffer); break; - case 0xAF6: + case ID_ZC_ACK_RANKING2: this->ReceiveShowRankingSchedule(g_gameModePacketBuffer); break; - case 0xAF7: + case ID_ZC_ACK_REQNAME_BYGID: this->ReceivePlayerNameUpdate(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0xAFD: + case ID_ZC_GUILD_POSITION: this->ReceiveActorClanName(g_gameModePacketBuffer); break; case 0xAFE: @@ -21330,40 +21337,40 @@ void CGameMode::ProcessIncomingPackets() { case 0xB03: this->ReceiveEquipWindowMicroscope5(g_gameModePacketBuffer); break; - case 0xB08: + case ID_ZC_INVENTORY_START: this->ReceiveInventoryStart(g_gameModePacketBuffer); break; case 0xB0C: this->ReceiveAddQuest64(g_gameModePacketBuffer); break; - case 0xB0D: + case ID_ZC_REMOVE_EFFECT: this->ReceiveEffectRemove(g_gameModePacketBuffer); break; - case 0xB15: + case ID_ZC_ACK_OPEN_MSGBOX_EXTEND_BODYITEM_SIZE: this->ReceiveExtraInventoryResult(g_gameModePacketBuffer); break; - case 0xB17: + case ID_ZC_ACK_EXTEND_BODYITEM_SIZE: this->NotifyResult3562(g_gameModePacketBuffer); break; - case 0xB18: + case ID_ZC_EXTEND_BODYITEM_SIZE: this->ReceiveUnknown7FBC(g_gameModePacketBuffer); break; - case 0xB1A: + case ID_ZC_USESKILL_ACK: this->ReceiveActorSkillResult(g_gameModePacketBuffer); break; - case 0xB1B: + case ID_ZC_NOTIFY_ACTORINIT: this->ReceiveDeferredReset(g_gameModePacketBuffer); break; - case 0xB20: + case ID_ZC_SHORTCUT_KEY_LIST: this->ReceiveShortcutPagePacket(g_gameModePacketBuffer); break; - case 0xB27: + case ID_ZC_GUILD_AGIT_INFO: this->ReceiveGuildUnknown0114List(g_gameModePacketBuffer); break; case 0xB2F: this->ReceiveHomunculusInfo2(g_gameModePacketBuffer); break; - case 0xB37: + case ID_ZC_EQUIPWIN_MICROSCOPE: this->ReceiveEquipWindowMicroscope6(g_gameModePacketBuffer); break; case 0xB39: @@ -21372,106 +21379,106 @@ void CGameMode::ProcessIncomingPackets() { case 0xB3C: this->ReceiveInventoryEquipList3(g_gameModePacketBuffer); break; - case 0xB3D: + case ID_ZC_PC_PURCHASE_ITEMLIST_FROMMC: this->ReceiveItem1748List2(g_gameModePacketBuffer); break; case 0xB3E: this->ReceiveGuildStorageLogItems(g_gameModePacketBuffer); break; - case 0xB3F: + case ID_ZC_ACK_ADD_ITEM_RODEX: this->ReceiveItemReward2(g_gameModePacketBuffer); break; - case 0xB40: + case ID_ZC_PC_PURCHASE_MYITEMLIST: this->ReceiveItem1758StoreList(g_gameModePacketBuffer); break; - case 0xB41: + case ID_ZC_ITEM_PICKUP_ACK: this->ReceiveItemPickupAck9(g_gameModePacketBuffer); break; - case 0xB42: + case ID_ZC_ADD_EXCHANGE_ITEM: this->ReceiveItemSlotAddGrade(g_gameModePacketBuffer); break; - case 0xB43: + case ID_ZC_CHANGE_ITEM_OPTION: this->RefreshInventoryOrEquipItem2(g_gameModePacketBuffer); break; - case 0xB44: + case ID_ZC_ADD_ITEM_TO_STORE: this->ReceiveItem1738AddGrade(g_gameModePacketBuffer); break; - case 0xB45: + case ID_ZC_ADD_ITEM_TO_CART: this->ReceiveItem1740AddGrade(g_gameModePacketBuffer); break; case 0xB4D: this->ReceiveItem1784List(g_gameModePacketBuffer); break; - case 0xB4E: + case ID_ZC_NPC_MARKET_PURCHASE_RESULT: this->ReceiveParaResultList(g_gameModePacketBuffer); break; case 0xB56: this->ReceiveExpandedBarterMarketItemList(g_gameModePacketBuffer); break; - case 0xB5A: + case ID_ZC_GRADE_ENCHANT_MATERIAL_LIST: this->ReceiveGradeEnchantInfo(g_gameModePacketBuffer); break; - case 0xB5D: + case ID_ZC_GRADE_ENCHANT_ACK: this->ReceiveGradeEnchantResult(g_gameModePacketBuffer); break; - case 0xB5E: + case ID_ZC_GRADE_ENCHANT_BROADCAST_RESULT: this->ReceiveGradeEnchantBroadcast(g_gameModePacketBuffer); break; case 0xB62: this->ReceiveShopItemListPacket(g_gameModePacketBuffer); break; - case 0xB63: + case ID_ZC_ACK_READ_RODEX: this->ReceiveRodexReadMail(g_gameModePacketBuffer); break; - case 0xB64: + case ID_ZC_SEARCH_STORE_INFO_ACK: this->ReceiveSearchStoreItems(g_gameModePacketBuffer); break; - case 0xB65: + case ID_ZC_REPAIRITEMLIST: this->ReceiveWindow107List(g_gameModePacketBuffer); break; - case 0xB67: + case ID_ZC_ITEM_PICKUP_PARTY: this->ReceivePartyItemPickup(g_gameModePacketBuffer); break; - case 0xB69: + case ID_ZC_NOTIFY_EFFECT3: this->ReceiveActorStatusValuePacket2(g_gameModePacketBuffer); break; - case 0xB6B: + case ID_ZC_SUMMON_HP_INIT: this->ReceiveSummonHpInit(g_gameModePacketBuffer); break; - case 0xB6C: + case ID_ZC_SUMMON_HP_UPDATE: this->ReceiveSummonHpUpdate(g_gameModePacketBuffer); break; - case 0xB73: + case ID_ZC_SOULENERGY: this->ReceivePacket0B73(g_gameModePacketBuffer); break; - case 0xB77: + case ID_ZC_PC_PURCHASE_ITEMLIST: this->ReceiveItem1718BasicList(g_gameModePacketBuffer); break; - case 0xB78: + case ID_ZC_NPC_BARTER_MARKET_ITEMINFO: this->ReceiveBarterMarketItemList(g_gameModePacketBuffer); break; - case 0xB79: + case ID_ZC_NPC_EXPANDED_BARTER_MARKET_ITEMINFO: this->ReceiveExpandedBarterMarketItemList2(g_gameModePacketBuffer); break; - case 0xB7A: + case ID_ZC_NPC_MARKET_OPEN: this->ReceiveItem1718List(g_gameModePacketBuffer); break; - case 0xB7B: + case ID_ZC_GUILD_INFO: this->ReceiveGuildInfo4(g_gameModePacketBuffer); break; - case 0xB7C: + case ID_ZC_BAN_LIST: this->ReceiveGuildBanList3(g_gameModePacketBuffer); break; - case 0xB7D: + case ID_ZC_MEMBERMGR_INFO: this->ReceiveGuildMemberList2(g_gameModePacketBuffer); break; case 0xB7E: this->ReceiveGuildMemberAdd2(g_gameModePacketBuffer); break; - case 0xBA4: + case ID_ZC_PROPERTY_HOMUN: this->ReceiveHomunculusInfo3(g_gameModePacketBuffer); break; - case 0xBA5: + case ID_ZC_HO_PAR_CHANGE: this->ReceiveHomunculusProperty64(g_gameModePacketBuffer); break; case 0xBB3: @@ -21492,7 +21499,7 @@ void CGameMode::ProcessIncomingPackets() { case 0xBD9: this->ReceiveRuneRewardPacket(g_gameModePacketBuffer); break; - case 0xBDE: + case ID_ZC_ALLY_CHAT: this->ReceiveBroadcastText(g_gameModePacketBuffer); break; case 0xC10: @@ -21549,7 +21556,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x7F: { + case ID_ZC_NOTIFY_TIME: { if (g_pingLogEnabled) { FILE *file = fopen("PingLog.txt", "at"); if (file) { @@ -21571,7 +21578,7 @@ void CGameMode::ProcessIncomingPackets() { g_session.AddPingSample(timeGetTime() - *reinterpret_cast(&this->unknown_026E[0x06])); break; } - case 0x86: { + case ID_ZC_NOTIFY_MOVE: { const std::uint32_t aid = *reinterpret_cast(g_gameModePacketBuffer + 2); ActorMoveRoute path; path.tick = *reinterpret_cast(g_gameModePacketBuffer + 12); @@ -21584,7 +21591,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x87: { + case ID_ZC_NOTIFY_PLAYERMOVE: { ActorMoveRoute path; path.tick = *reinterpret_cast(g_gameModePacketBuffer + 2); DecodeSrcDst(g_gameModePacketBuffer + 6, &path.srcX, &path.srcY, &path.dstX, &path.dstY, &path.subX, &path.subY); @@ -21593,7 +21600,7 @@ void CGameMode::ProcessIncomingPackets() { this->scene->player->SendMsg(nullptr, 0, 0, pathAddress, pathAddress >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 0x88: { + case ID_ZC_STOPMOVE: { const ActorStopPacket *packet = reinterpret_cast(g_gameModePacketBuffer); this->StopActorMove(packet->aid, packet->x, packet->y, 0); break; @@ -21637,7 +21644,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x93: this->unknown_0244 = 0; break; - case 0x95: { + case reqName: { const ActorNamePacket *packet = reinterpret_cast(g_gameModePacketBuffer); this->nameCard.SetName(packet->aid, std::string(packet->name, sizeof(packet->name)).c_str()); if (packet->aid == g_session.unknown_1010) { @@ -21648,10 +21655,10 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x9A: + case ID_ZC_BROADCAST: this->ReceiveTaggedBroadcast(g_gameModePacketBuffer); break; - case 0x9C: { + case ID_ZC_CHANGE_DIRECTION: { const ActorDirectionPacket *packet = reinterpret_cast(g_gameModePacketBuffer); CRenderObject *actor; if (packet->aid == g_session.m_aid) { @@ -21666,7 +21673,7 @@ void CGameMode::ProcessIncomingPackets() { actor->SendMsg(nullptr, 100, 0, packet->headDirection, packet->headDirection >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 0x9D: + case ID_ZC_ITEM_ENTRY: case 0x9E: { const unsigned char *packet = g_gameModePacketBuffer; const bool falling = static_cast(type) == 0x9E; @@ -21693,7 +21700,7 @@ void CGameMode::ProcessIncomingPackets() { item->SendMsg(nullptr, 4, 0, entryAddress, entryAddress >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 0xA1: { + case ID_ZC_ITEM_DISAPPEAR: { const std::uint32_t aid = *reinterpret_cast(g_gameModePacketBuffer + 2); this->scene->RemoveGroundItem(aid); this->RemoveUnknown01A4(aid); @@ -21841,7 +21848,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0xAF: { + case ID_ZC_ITEM_THROW_ACK: { const unsigned char *packet = g_gameModePacketBuffer; if (*reinterpret_cast(&this->unknown_0100[0x14])) { *reinterpret_cast(&this->unknown_0100[0x14]) = 0; @@ -21859,7 +21866,7 @@ void CGameMode::ProcessIncomingPackets() { *reinterpret_cast(this->unknown_02D0) = 0; break; } - case 0xB3: + case ID_ZC_RESTART_ACK: g_navigationManager.Reset(true); g_navigationManager.ClearData(); g_navigationManager.unknown_125C = 0; @@ -21873,7 +21880,7 @@ void CGameMode::ProcessIncomingPackets() { g_modeMgr.Switch(0, "login.rsw"); } break; - case 0xB4: { + case ID_ZC_SAY_DIALOG: { const unsigned char *packet = g_gameModePacketBuffer; this->unknown_024C = 1; this->unknown_02DC = *reinterpret_cast(packet + 4); @@ -21891,12 +21898,12 @@ void CGameMode::ProcessIncomingPackets() { window->SendMsg(nullptr, 26, reinterpret_cast(text), *reinterpret_cast(packet + 4), 0, 0); break; } - case 0xB5: + case ID_ZC_WAIT_DIALOG: this->unknown_024C = 1; this->unknown_02DC = *reinterpret_cast(g_gameModePacketBuffer + 2); g_windowMgr.EnsureWindow(16)->SendMsg(nullptr, 25, 0, 0, 0, 0); break; - case 0xC0: { + case ID_ZC_EMOTION: { const std::uint32_t aid = *reinterpret_cast(g_gameModePacketBuffer + 2); CRenderObject *actor; if (aid == g_session.m_aid) { @@ -21911,7 +21918,7 @@ void CGameMode::ProcessIncomingPackets() { actor->SendMsg(nullptr, 160, 0, 0, 0, emotion, emotion >> 31, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 0xC2: { + case ID_ZC_USER_COUNT: { char text[128]; if (g_serviceType == 3 && !IsAdminAccount(g_session.m_aid)) { strcpy(text, GetUserCountText(*reinterpret_cast(g_gameModePacketBuffer + 2))); @@ -21922,7 +21929,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.SendNotice(1, reinterpret_cast(text), 0xFFFF, 0, 0, 0); break; } - case 0xC4: + case ID_ZC_SELECT_DEALTYPE: this->unknown_024C = 1; g_windowMgr.EnsureWindow(25)->SendMsg(nullptr, 28, *reinterpret_cast(g_gameModePacketBuffer + 2), 0, 0, 0); g_windowMgr.CloseWindow(22); @@ -21975,7 +21982,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.SendNotice(1, reinterpret_cast(text), 0x32FF, 0, 0, 0); break; } - case 0xD2: + case ID_ZC_SETTING_WHISPER_STATE: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); switch (g_gameModePacketBuffer[2]) { case 0: @@ -22000,7 +22007,7 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0xD4: { + case ID_ZC_WHISPER_LIST: { g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); const int length = *reinterpret_cast(g_gameModePacketBuffer + 2); const int count = (length - 4) / 24; @@ -22016,10 +22023,10 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0xD6: + case ID_ZC_ACK_CREATE_CHATROOM: this->unknown_00FC = 0; switch (g_gameModePacketBuffer[2]) { - case 0: { + case ENTERROOM_FULL: { g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(64)), 0xFFFF00, 0, 0, 0); UIWindow *window = g_windowMgr.EnsureWindow(28); @@ -22029,17 +22036,17 @@ void CGameMode::ProcessIncomingPackets() { window->SendMsg(nullptr, 44, reinterpret_cast(g_session.DecodePlayerName()), 0, 0, 0); break; } - case 1: + case ENTERROOM_WRONG_PASSWORD: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(65)), 0xFF, 0, 0, 0); break; - case 2: + case ENTERROOM_KICKED: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(66)), 0xFF, 0, 0, 0); break; } break; - case 0xD8: { + case ID_ZC_DESTROY_ROOM: { const std::uint32_t roomId = *reinterpret_cast(g_gameModePacketBuffer + 2); if (CRenderObject *actor = this->scene->GetGameActorByAID(this->unknown_01AC[roomId])) { actor->SendMsg(nullptr, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -22050,7 +22057,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0xDC: { + case ID_ZC_MEMBER_NEWENTRY: { char name[25]; std::memcpy(name, g_gameModePacketBuffer + 4, 24); name[24] = '\0'; @@ -22066,7 +22073,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.SendNotice(5, reinterpret_cast(text), 0x808000, 0, 0, 0); break; } - case 0xDD: { + case ID_ZC_MEMBER_EXIT: { char name[25]; std::memcpy(name, g_gameModePacketBuffer + 4, 24); name[24] = '\0'; @@ -22095,7 +22102,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0xE1: { + case ID_ZC_ROLE_CHANGE: { UIWindow *window = g_windowMgr.EnsureWindow(28); char name[25]; std::memcpy(name, g_gameModePacketBuffer + 6, 24); @@ -22116,7 +22123,7 @@ void CGameMode::ProcessIncomingPackets() { this->exchangeName.assign(name, strlen(name)); break; } - case 0xEC: + case ID_ZC_CONCLUDE_EXCHANGE_ITEM: if (UIWindow *window = g_windowMgr.LookupWindow(10011)) { switch (g_gameModePacketBuffer[2]) { case 0: @@ -22128,7 +22135,7 @@ void CGameMode::ProcessIncomingPackets() { } } break; - case 0xEE: + case ID_ZC_CANCEL_EXCHANGE_ITEM: *reinterpret_cast(&this->unknown_0100[0x00]) = 0; this->SendMsg(18, 0, 0, 0, 0); g_windowMgr.CloseWindow(10011); @@ -22138,7 +22145,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(74)), 0xFF, 0, 0, 0); break; - case 0xF0: + case ID_ZC_EXEC_EXCHANGE_ITEM: this->SendMsg(18, 0, 0, 0, 0); g_windowMgr.CloseWindow(10011); g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); @@ -22153,15 +22160,15 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0xF1: + case ID_ZC_EXCHANGEITEM_UNDO: *reinterpret_cast(&this->unknown_0100[0x14]) = 0; g_session.ResetSlots(); break; - case 0xF2: + case ID_ZC_NOTIFY_STOREITEM_COUNTINFO: g_windowMgr.EnsureWindow(33)->SendMsg(nullptr, 55, *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 4), 0, 0); break; - case 0xF6: { + case ID_ZC_DELETE_ITEM_FROM_STORE: { ITEM_INFO item; item.unknown_0000[1] = *reinterpret_cast(g_gameModePacketBuffer + 2); item.quantity = *reinterpret_cast(g_gameModePacketBuffer + 4); @@ -22169,11 +22176,11 @@ void CGameMode::ProcessIncomingPackets() { this->unknown_05CE = 1; break; } - case 0xF8: + case ID_ZC_CLOSE_STORE: g_windowMgr.CloseWindow(33); g_session.ClearItems1738(); break; - case 0xFA: + case ID_ZC_ACK_MAKE_GROUP: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); switch (g_gameModePacketBuffer[2]) { case 0: @@ -22192,7 +22199,7 @@ void CGameMode::ProcessIncomingPackets() { } break; case 0xFE: - case 0x2C6: { + case ID_ZC_PARTY_JOIN_REQ: { char name[25]; strncpy(name, reinterpret_cast(g_gameModePacketBuffer + 6), 24); name[24] = 0; @@ -22237,13 +22244,13 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.NotifyItemWindows(aid, hp, maxHp); break; } - case 0x107: { + case ID_ZC_NOTIFY_POSITION_TO_GROUPM: { const unsigned char *packet = g_gameModePacketBuffer; this->SendMsg(63, *reinterpret_cast(packet + 2), *reinterpret_cast(packet + 6), *reinterpret_cast(packet + 8), 0); break; } - case 0x10A: { + case ID_ZC_MVP_GETTING_ITEM: { char itemId[25]; _itoa(*reinterpret_cast(g_gameModePacketBuffer + 2), itemId, 10); itemId[24] = 0; @@ -22257,7 +22264,7 @@ void CGameMode::ProcessIncomingPackets() { 0xFFFF00, 0, 0, 0); break; } - case 0x10B: { + case ID_ZC_MVP_GETTING_SPECIAL_EXP: { char text[256]; memset(text, 0, sizeof(text)); StringFormat(text, 256, static_cast(-1), "%s%s", LookupMessage(145), LookupMessage(146)); @@ -22265,7 +22272,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.SendNotice(1, reinterpret_cast(text), 0xFFFF00, 0, 0, 0); break; } - case 0x10C: { + case ID_ZC_MVP: { const std::uint32_t aid = *reinterpret_cast(g_gameModePacketBuffer + 2); if (aid == g_session.m_aid) { this->scene->player->SendMsg(nullptr, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -22274,12 +22281,12 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x10D: + case ID_ZC_THROW_MVPITEM: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(147)), 0xFF, 0, 0, 0); break; - case 0x10F: - case 0x235: + case ID_ZC_SKILLINFO_LIST: + case ID_ZC_HOSKILLINFO_LIST: case 0x29D: { std::vector skills; const int count = static_cast((*reinterpret_cast(g_gameModePacketBuffer + 2) - 4u) / sizeof(SkillListRecord)); @@ -22298,10 +22305,10 @@ void CGameMode::ProcessIncomingPackets() { this->ReceiveSkillList(*reinterpret_cast(g_gameModePacketBuffer), skills); break; } - case 0x110: + case ID_ZC_ACK_TOUSESKILL: this->ReceiveSkillFailure(g_gameModePacketBuffer); break; - case 0x111: { + case ID_ZC_ADD_SKILL: { const unsigned char *packet = g_gameModePacketBuffer; this->ReceiveLearnedSkill(*reinterpret_cast(packet + 2), *reinterpret_cast(packet + 8), *reinterpret_cast(packet + 4), packet[0x26], *reinterpret_cast(packet + 0x0A), @@ -22357,17 +22364,17 @@ void CGameMode::ProcessIncomingPackets() { window->SendMsg(nullptr, 27, reinterpret_cast("cancel"), 0, 0, 0); break; } - case 0x11E: + case ID_ZC_ACK_REMEMBER_WARPPOINT: switch (g_gameModePacketBuffer[2]) { - case 0: + case WARPPOINT_SUCCESS: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(217)), 0xFFFF00, 0, 0, 0); g_windowMgr.SendNotice(19, reinterpret_cast(LookupMessage(217)), 0xFFFF00, 0, 0, 0); break; - case 1: + case WARPPOINT_LOW_LEVEL: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(214)), 0xFF, 0, 0, 0); g_windowMgr.SendNotice(19, reinterpret_cast(LookupMessage(214)), 0xFF, 0, 0, 0); break; - case 2: + case WARPPOINT_NOT_LEARNED: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(216)), 0xFF, 0, 0, 0); g_windowMgr.SendNotice(19, reinterpret_cast(LookupMessage(216)), 0xFF, 0, 0, 0); break; @@ -22377,7 +22384,7 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0x120: { + case ID_ZC_SKILL_DISAPPEAR: { const std::uint32_t aid = *reinterpret_cast(g_gameModePacketBuffer + 2); std::vector::iterator it = this->spriteMirrorActorIds.begin(); while (it != this->spriteMirrorActorIds.end() && *it != aid) { @@ -22391,7 +22398,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x121: { + case ID_ZC_NOTIFY_CARTITEM_COUNTINFO: { const unsigned char *packet = g_gameModePacketBuffer; g_session.cartCount = *reinterpret_cast(packet + 2); g_session.cartMaxCount = *reinterpret_cast(packet + 4); @@ -22455,7 +22462,7 @@ void CGameMode::ProcessIncomingPackets() { g_session.AddItem1740(item); break; } - case 0x125: { + case ID_ZC_DELETE_ITEM_FROM_CART: { ITEM_INFO item; item.unknown_0000[1] = *reinterpret_cast(g_gameModePacketBuffer + 2); item.quantity = *reinterpret_cast(g_gameModePacketBuffer + 4); @@ -22463,23 +22470,23 @@ void CGameMode::ProcessIncomingPackets() { this->unknown_05CE = 1; break; } - case 0x12B: + case ID_ZC_CARTOFF: g_session.ClearItems1740(); g_windowMgr.CloseWindow(40); break; - case 0x12C: + case ID_ZC_ACK_ADDITEM_TO_CART: switch (g_gameModePacketBuffer[2]) { - case 0: + case ADDITEM_TO_CART_FAIL_WEIGHT: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(56)), 0xFF, 0, 0, 0); break; - case 1: + case ADDITEM_TO_CART_FAIL_COUNT: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(221)), 0xFF, 0, 0, 0); break; } break; - case 0x12D: { + case ID_ZC_OPENSTORE: { CGameMode *mode = static_cast(g_modeMgr.GetGameMode()); if (mode && mode->drag.source != 0) { this->SendMsg(81, 0, 0, 0, 0); @@ -22501,7 +22508,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x131: { + case ID_ZC_STORE_ENTRY: { char title[81]; strncpy(title, reinterpret_cast(g_gameModePacketBuffer + 6), 80); title[80] = 0; @@ -22511,7 +22518,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x132: + case ID_ZC_DISAPPEAR_ENTRY: if (CRenderObject *actor = this->scene->GetGameActorByAID(*reinterpret_cast(g_gameModePacketBuffer + 2))) { actor->SendMsg(nullptr, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -22520,7 +22527,7 @@ void CGameMode::ProcessIncomingPackets() { ProcessVendingSale(_time32(nullptr), *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 4), 0, 0); break; - case 0x139: { + case ID_ZC_ATTACK_FAILURE_FOR_DISTANCE: { const unsigned char *packet = g_gameModePacketBuffer; const std::uint32_t aid = *reinterpret_cast(packet + 2); g_session.unknown_0F4C = *reinterpret_cast(packet + 0x0E); @@ -22535,10 +22542,10 @@ void CGameMode::ProcessIncomingPackets() { this->scene->player->SendMsg(nullptr, 60, 0, aid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 0x13A: + case ID_ZC_ATTACK_RANGE: g_session.unknown_0F4C = *reinterpret_cast(g_gameModePacketBuffer + 2); break; - case 0x13C: + case ID_ZC_EQUIP_ARROW: if (*reinterpret_cast(g_gameModePacketBuffer + 2) == 0 && g_session.unknown_16EC) { const int location = 0x8000; EquipmentProperties::CEquipmentPropertiesMgr *properties = EquipmentProperties::CEquipmentPropertiesMgr::GetInstance(); @@ -22557,14 +22564,14 @@ void CGameMode::ProcessIncomingPackets() { case 0x13E: this->ProcessSkillUsePacket(g_gameModePacketBuffer, 0); break; - case 0x142: { + case ID_ZC_OPEN_EDITDLG: { const std::uint32_t aid = *reinterpret_cast(g_gameModePacketBuffer + 2); if (this->scene->GetGameActorByAID(aid)) { g_windowMgr.EnsureWindow(56)->SendMsg(nullptr, 28, aid, 0, 0, 0); } break; } - case 0x144: { + case ID_ZC_COMPASS: { const unsigned char *packet = g_gameModePacketBuffer; const int type = *reinterpret_cast(packet + 6); const std::uint32_t id = packet[0x12]; @@ -22590,7 +22597,7 @@ void CGameMode::ProcessIncomingPackets() { this->SendMsg(100, reinterpret_cast(name), index, 0, 0); break; } - case 0x147: { + case ID_ZC_AUTORUN_SKILL: { const unsigned char *packet = g_gameModePacketBuffer; CSkillInfo skill; skill.level = *reinterpret_cast(packet + 8); @@ -22605,7 +22612,7 @@ void CGameMode::ProcessIncomingPackets() { this->SendMsg(113, reinterpret_cast(&skill), skill.level, 1, -1); break; } - case 0x148: { + case ID_ZC_RESURRECTION: { const std::uint32_t aid = *reinterpret_cast(g_gameModePacketBuffer + 2); if (CRenderObject *actor = this->scene->GetGameActorByAID(aid)) { actor->SendMsg(nullptr, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -22635,7 +22642,7 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0x14B: { + case ID_ZC_NOTIFY_MANNER_POINT_GIVEN: { char name[25]; std::memcpy(name, g_gameModePacketBuffer + 3, 24); name[24] = 0; @@ -22646,7 +22653,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x14E: + case ID_ZC_ACK_GUILD_MENUINTERFACE: g_guildInfo.unknown_00A4 = *reinterpret_cast(g_gameModePacketBuffer + 2); break; case 0x152: { @@ -22662,7 +22669,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x156: { + case ID_ZC_ACK_REQ_CHANGE_MEMBERS: { const int count = static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 4) / 12; const int *record = reinterpret_cast(g_gameModePacketBuffer + 4); for (int i = 0; i < count; ++i, record += 3) { @@ -22677,7 +22684,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.RefreshGuildWindows(); break; } - case 0x15E: + case ID_ZC_ACK_DISORGANIZE_GUILD_RESULT: switch (*reinterpret_cast(g_gameModePacketBuffer + 2)) { case 0: g_session.ClearAdditionalShortcutSkills(); @@ -22702,10 +22709,10 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.SendNotice(1, reinterpret_cast(text), 0xFFFF, 4, 0, 0); break; } - case 0x162: + case ID_ZC_GUILD_SKILLINFO: this->ApplyAdditionalSkillPacket(g_gameModePacketBuffer); break; - case 0x167: + case ID_ZC_RESULT_MAKE_GUILD: switch (g_gameModePacketBuffer[2]) { case 0: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(374)), 0xFFFF00, 4, 0, 0); @@ -22727,7 +22734,7 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0x169: + case ID_ZC_ACK_REQ_JOIN_GUILD: g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); switch (g_gameModePacketBuffer[2]) { case 0: @@ -22747,7 +22754,7 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0x16A: { + case ID_ZC_REQ_JOIN_GUILD: { char name[25]; std::memcpy(name, g_gameModePacketBuffer + 6, 24); name[24] = 0; @@ -22790,7 +22797,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x171: { + case ID_ZC_REQ_ALLY_GUILD: { char name[25]; std::memcpy(name, g_gameModePacketBuffer + 6, 24); name[24] = 0; @@ -22801,7 +22808,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.EnsureWindow(72)->SendMsg(nullptr, 74, *reinterpret_cast(g_gameModePacketBuffer + 2), reinterpret_cast(name), 0, 0); break; } - case 0x173: + case ID_ZC_ACK_REQ_ALLY_GUILD: switch (g_gameModePacketBuffer[2]) { case 0: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(394)), 0xFFFF, 4, 0, 0); @@ -22837,7 +22844,7 @@ void CGameMode::ProcessIncomingPackets() { window->SendMsg(nullptr, 60, 0, 0, 0, 0); break; } - case 0x179: + case ID_ZC_ACK_ITEMIDENTIFY: switch (g_gameModePacketBuffer[4]) { case 0: { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(491)), 0xFFFF00, 0, 0, 0); @@ -22866,7 +22873,7 @@ void CGameMode::ProcessIncomingPackets() { window->SendMsg(nullptr, 60, 0, 0, 0, 0); break; } - case 0x181: + case ID_ZC_ACK_REQ_HOSTILE_GUILD: switch (g_gameModePacketBuffer[2]) { case 0: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(495)), 0xFFFF00, 4, 0, 0); @@ -22882,12 +22889,12 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0x184: + case ID_ZC_DELETE_RELATED_GUILD: if (g_guildInfo.unknown_00BC) { g_guildInfo.RemoveRelatedGuild(*reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 6)); } break; - case 0x189: + case ID_ZC_NOTIFY_MAPINFO: switch (*reinterpret_cast(g_gameModePacketBuffer + 2)) { case 0: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(500)), 0xFF, 0, 0, 0); @@ -22919,14 +22926,14 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0x18C: { + case ID_ZC_MONSTER_INFO: { const std::uint16_t id = *reinterpret_cast(g_gameModePacketBuffer + 2); if (id != 1285 && id != 1286 && id != 1287 && id != 1829 && id != 1830) { g_windowMgr.EnsureWindow(77)->SendMsg(nullptr, 79, reinterpret_cast(g_gameModePacketBuffer), 0, 0, 0); } break; } - case 0x18D: { + case ID_ZC_MAKABLEITEMLIST: { unsigned int count = static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 4) >> 4; if (count == 0) { g_windowMgr.Confirm(LookupMessage(424), 0, true, false, 0, "Message", 280, 120, 0); @@ -22940,13 +22947,13 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x191: + case ID_ZC_TALKBOX_CHATCONTENTS: if (CRenderObject *skill = this->scene->GetSkillByAID(*reinterpret_cast(g_gameModePacketBuffer + 2))) { const int textAddress = reinterpret_cast(g_gameModePacketBuffer + 6); skill->SendMsg(nullptr, 7, 0, textAddress, textAddress >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x192: { + case ID_ZC_UPDATE_MAPINFO: { CGameMode *mode = static_cast(g_modeMgr.GetGameMode()); const int column = *reinterpret_cast(g_gameModePacketBuffer + 2); const int row = *reinterpret_cast(g_gameModePacketBuffer + 4); @@ -22961,18 +22968,18 @@ void CGameMode::ProcessIncomingPackets() { case 0x199: g_serviceOptions.Set(229, *reinterpret_cast(g_session.unknown_5454) != 0); switch (*reinterpret_cast(g_gameModePacketBuffer + 2)) { - case 1: - case 5: + case MAPPROPERTY_FREEPVPZONE: + case MAPPROPERTY_PVPSERVERZONE: this->scene->unknown_0048 = 1; break; - case 2: + case MAPPROPERTY_EVENTPVPZONE: this->scene->unknown_0054 = 1; break; - case 3: + case MAPPROPERTY_AGITZONE: this->scene->unknown_004C = 1; g_serviceOptions.Set(229, 1); break; - case 4: + case MAPPROPERTY_PKSERVERZONE: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(855)), 0x9B9BFF, 0, 0, 0); break; } @@ -22983,7 +22990,7 @@ void CGameMode::ProcessIncomingPackets() { g_mapPropertyMgr->Clear(); } break; - case 0x1A2: { + case ID_ZC_PROPERTY_PET: { unsigned char *packet = g_gameModePacketBuffer; g_session.unknown_103C = *reinterpret_cast(packet + 0x23); std::int16_t &value = *reinterpret_cast(packet + 0x1B); @@ -23029,29 +23036,29 @@ void CGameMode::ProcessIncomingPackets() { window->SendMsg(nullptr, 60, 0, 0, 0, 0); break; } - case 0x1AB: + case ID_ZC_PAR_CHANGE_USER: if (CGameActor *actor = static_cast(this->scene->GetGameActorByAID(*reinterpret_cast(g_gameModePacketBuffer + 2)))) { if (*reinterpret_cast(g_gameModePacketBuffer + 6) == 4) { actor->SetHonor(*reinterpret_cast(g_gameModePacketBuffer + 8)); } } break; - case 0x1AC: + case ID_ZC_SKILL_UPDATE: if (CGameActor *skill = static_cast(this->scene->GetSkillByAID(*reinterpret_cast(g_gameModePacketBuffer + 2)))) { if (skill->GetEffectiveJob(-1) > 138 && skill->GetEffectiveJob(-1) <= 153) { skill->SendMsg(nullptr, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } switch (skill->GetEffectiveJob(-1)) { - case 0x5174: - case 0x5175: - case 0x5176: - case 0x5177: + case UNT_DEEPBLINDTRAP: + case UNT_SOLIDTRAP: + case UNT_SWIFTTRAP: + case UNT_FLAMETRAP: skill->SendMsg(nullptr, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } } break; - case 0x1AD: { + case ID_ZC_MAKINGARROW_LIST: { const unsigned int count = static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 4) >> 2; UIWindow *window = g_windowMgr.EnsureWindow(94); window->SendMsg(nullptr, 75, 0, 0, 0, 0); @@ -23062,7 +23069,7 @@ void CGameMode::ProcessIncomingPackets() { window->SendMsg(nullptr, 34, 2, 0, 0, 0); break; } - case 0x1B0: + case ID_ZC_NPCSPRITE_CHANGE: if (CGameActor *actor = static_cast(this->scene->GetGameActorByAID(*reinterpret_cast(g_gameModePacketBuffer + 2)))) { actor->SetSprAct(*reinterpret_cast(g_gameModePacketBuffer + 7), 0, 0); } @@ -23096,7 +23103,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x1B3: { + case ID_ZC_SHOW_IMAGE: { char name[65]; strncpy(name, reinterpret_cast(g_gameModePacketBuffer + 2), 64); int position = g_gameModePacketBuffer[0x42]; @@ -23137,7 +23144,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x1C3: + case ID_ZC_BROADCAST2: this->ReceiveColorBroadcast(g_gameModePacketBuffer); break; case 0x1C7: @@ -23189,17 +23196,17 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x1D0: + case ID_ZC_SPIRITS: this->UpdateActorSpiritCount(*reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 6)); break; - case 0x1D4: + case ID_ZC_OPEN_EDITDLGSTR: if (this->scene->GetGameActorByAID(*reinterpret_cast(g_gameModePacketBuffer + 2)) || *reinterpret_cast(g_gameModePacketBuffer + 2) == 0) { g_windowMgr.EnsureWindow(100)->SendMsg(nullptr, 28, *reinterpret_cast(g_gameModePacketBuffer + 2), 0, 0, 0); } break; - case 0x1D6: { + case ID_ZC_NOTIFY_MAPPROPERTY2: { g_serviceOptions.Set(229, *reinterpret_cast(g_session.unknown_5454) != 0); const std::int16_t type = *reinterpret_cast(g_gameModePacketBuffer + 2); g_session.unknown_0000 = type; @@ -23223,17 +23230,17 @@ void CGameMode::ProcessIncomingPackets() { static_cast(g_modeMgr.GetGameMode())->scene->player->ReapplySkillEffects(); } switch (*reinterpret_cast(g_gameModePacketBuffer + 2)) { - case 5: - case 6: - case 7: - case 8: - case 9: - case 11: - case 14: - case 17: - case 18: - case 19: - case 25: + case MAPTYPE_PENALTY_FREEPKZONE: + case MAPTYPE_NOPENALTY_FREEPKZONE: + case MAPTYPE_EVENT_GUILDWAR: + case MAPTYPE_AGIT: + case MAPTYPE_DUNGEON2: + case MAPTYPE_PKSERVER: + case MAPTYPE_TURBOTRACK: + case MAPTYPE_PORINGBATTLE: + case MAPTYPE_AGIT_SIEGEV15: + case MAPTYPE_BATTLEFIELD: + case MAPTYPE_SIEGE_LOWLEVEL: case 31: case 32: this->scene->unknown_00FD = true; @@ -23251,7 +23258,7 @@ void CGameMode::ProcessIncomingPackets() { 0); break; } - case 0x1EB: + case ID_ZC_NOTIFY_POSITION_TO_GUILDM: if (*reinterpret_cast(g_gameModePacketBuffer + 2) != g_session.m_aid) { this->SendMsg(170, *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 8), 0); @@ -23337,7 +23344,7 @@ void CGameMode::ProcessIncomingPackets() { g_session.RefreshItem1738Window(); break; } - case 0x1F2: { + case ID_ZC_UPDATE_CHARSTAT: { g_guildInfo.UpdateMemberStatus( *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 0xA), *reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 0xE), @@ -23351,7 +23358,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x1F4: { + case ID_ZC_REQ_EXCHANGE_ITEM: { if (g_serviceOptions.Get(136)) { g_modeMgr.gameMode->SendMsg(50, 4, 0, 0, 0); break; @@ -23389,7 +23396,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x1FE: + case ID_ZC_ACK_ITEMREPAIR: switch (g_gameModePacketBuffer[4]) { case 0: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(813)), 0xFFFF00, 0, 0, 0); @@ -23399,7 +23406,7 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0x1FF: { + case ID_ZC_HIGHJUMP: { vector3d position{0.0f, 0.0f, 0.0f}; static_cast(g_modeMgr.GetGameMode()) ->CellCenter(*reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 8), @@ -23417,14 +23424,14 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x205: { + case ID_ZC_DIVORCE: { char message[1024]; sprintf(message, LookupMessage(836), g_session.DecodePlayerName(), reinterpret_cast(g_gameModePacketBuffer + 2)); g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(message), 0xFFFF00, 0, 0, 0); break; } - case 0x206: + case ID_ZC_FRIENDS_STATE: g_session.UpdateFriendName(*reinterpret_cast(g_gameModePacketBuffer + 6), reinterpret_cast(g_gameModePacketBuffer + 0xB)); if (g_session.SetFriendOffline(*reinterpret_cast(g_gameModePacketBuffer + 2), @@ -23467,7 +23474,7 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0x221: { + case ID_ZC_NOTIFY_WEAPONITEMLIST: { const int count = static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 4) / 23; if (count == 0) { g_windowMgr.Confirm(LookupMessage(424), 0, true, false, 0, "Message", 280, 120, 0); @@ -23483,7 +23490,7 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x229: { + case ID_ZC_STATE_CHANGE: { int state[4]; state[1] = *reinterpret_cast(g_gameModePacketBuffer + 0xA); state[3] = g_gameModePacketBuffer[0xE]; @@ -23515,7 +23522,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x253: g_windowMgr.EnsureWindow(119)->SendMsg(nullptr, 91, static_cast(g_gameModePacketBuffer[2]), 0, 0, 0); break; - case 0x25A: { + case ID_ZC_MAKINGITEM_LIST: { const unsigned int count = static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 6) >> 2; UIWindow *window = g_windowMgr.EnsureWindow(94); if (!window) { @@ -23543,7 +23550,7 @@ void CGameMode::ProcessIncomingPackets() { g_renewQuestMgr->SetOngoingQuestState(*reinterpret_cast(g_gameModePacketBuffer + 2), g_gameModePacketBuffer[6]); g_renewQuestMgr->UpdateQuestWindows(); break; - case 0x2D3: { + case ID_ZC_NOTIFY_BIND_ON_EQUIP: { ITEM_INFO item = LookupClientItemByIdentity(g_session.m_inventoryItems, *reinterpret_cast(g_gameModePacketBuffer + 2)); if (item.unknown_0000[1]) { std::string name = item.DisplayName(0); @@ -23691,7 +23698,7 @@ void CGameMode::ProcessIncomingPackets() { } } break; - case 0x2F7: { + case ID_ZC_UPDATE_GDID: { const std::uint32_t flags = *reinterpret_cast(g_gameModePacketBuffer + 0xA); g_guildInfo.unknown_00AC = flags & 1; g_guildInfo.unknown_00B4 = g_gameModePacketBuffer[0xE]; @@ -23709,10 +23716,10 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x441: + case ID_ZC_SKILLINFO_DELETE: g_session.RemoveSkill(*reinterpret_cast(g_gameModePacketBuffer + 2)); break; - case 0x442: { + case ID_ZC_SKILL_SELECT_REQUEST: { const int count = static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 8) >> 1; if (count == 0) { break; @@ -23742,14 +23749,14 @@ void CGameMode::ProcessIncomingPackets() { } break; } - case 0x7E1: + case ID_ZC_SKILLINFO_UPDATE2: this->ReceiveSkillUpdate( *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 8), *reinterpret_cast(g_gameModePacketBuffer + 0xA), g_gameModePacketBuffer[0xE], *reinterpret_cast(g_gameModePacketBuffer + 0xC), *reinterpret_cast(g_gameModePacketBuffer + 4), *reinterpret_cast(g_gameModePacketBuffer + 8)); break; - case 0x7E6: { + case ID_ZC_MSG_SKILL: { char text[256]; sprintf(text, LookupMessage(*reinterpret_cast(g_gameModePacketBuffer + 4))); char message[256]; @@ -24143,10 +24150,10 @@ void CGameMode::ProcessIncomingPackets() { GetRagConnection().Send(sizeof(packetType), &packetType); break; } - case 0x7FD: + case package_item_announceType: this->ReceiveItemObtainBroadcast(g_gameModePacketBuffer, false); break; - case 0x80E: { + case ID_ZC_NOTIFY_HP_TO_GROUPM: { if (!g_session.IsCompanionAid(*reinterpret_cast(g_gameModePacketBuffer + 2))) { if (CRenderObject *actor = this->scene->GetGameActorByAID(*reinterpret_cast(g_gameModePacketBuffer + 2))) { const int hp = *reinterpret_cast(g_gameModePacketBuffer + 6); @@ -24166,7 +24173,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x80F: ReceiveItemSlot(g_gameModePacketBuffer); break; - case 0x83D: + case ID_ZC_SSILIST_ITEM_CLICK_ACK: g_session.unknown_5BE8 = *reinterpret_cast(g_gameModePacketBuffer + 2); g_session.unknown_5BEC = *reinterpret_cast(g_gameModePacketBuffer + 4); break; @@ -24208,7 +24215,7 @@ void CGameMode::ProcessIncomingPackets() { item->SendMsg(nullptr, 4, 0, entryAddress, entryAddress >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 0x8C8: + case ID_ZC_NOTIFY_ACT: this->ReceiveActorAction( *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 0xA), *reinterpret_cast(g_gameModePacketBuffer + 0xE), @@ -24267,13 +24274,13 @@ void CGameMode::ProcessIncomingPackets() { 0); } break; - case 0x8D8: + case bgqueue_ackType: g_entryQueueMgr->OnApplyResult(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x8D9: + case bgqueue_updateinfoType: g_entryQueueMgr->OnStatus(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x8DB: + case bgqueue_notice_deleteType: g_entryQueueMgr->OnCancelResult(reinterpret_cast(g_gameModePacketBuffer)); break; case 0x8DC: @@ -24282,7 +24289,7 @@ void CGameMode::ProcessIncomingPackets() { case 0x8DE: g_entryQueueMgr->OnResultNotice(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x8DF: + case bgqueue_battlebeginsType: g_entryQueueMgr->OnReady(reinterpret_cast(g_gameModePacketBuffer)); break; case 0x8E1: @@ -24291,10 +24298,10 @@ void CGameMode::ProcessIncomingPackets() { case 0x8E2: ReceiveNavigation(g_gameModePacketBuffer); break; - case 0x90E: + case ID_ZC_ENTRY_QUEUE_INIT: g_entryQueueMgr->ResetCurrent(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x99A: + case ID_ZC_REQ_TAKEOFF_EQUIP_ACK: this->ReceiveTakeOffEquipResult(g_gameModePacketBuffer[0x8], *reinterpret_cast(g_gameModePacketBuffer + 0x4), *reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; @@ -24308,7 +24315,7 @@ void CGameMode::ProcessIncomingPackets() { g_nProtectGameGuardMgr->ProcessAuth(reinterpret_cast(g_gameModePacketBuffer + 0x4), *reinterpret_cast(g_gameModePacketBuffer + 0x2) - 4); break; - case 0x9DF: + case ID_ZC_ACK_WHISPER: this->ReceiveWhisperResult(g_gameModePacketBuffer[0x2], *reinterpret_cast(g_gameModePacketBuffer + 0x3)); break; case 0x9E6: @@ -24320,10 +24327,10 @@ void CGameMode::ProcessIncomingPackets() { case 0xA09: ReceiveItemSlotOptions(g_gameModePacketBuffer); break; - case 0xA26: + case achievementRewardAckType: this->ReceiveAchievementResult(g_gameModePacketBuffer[0x2], *reinterpret_cast(g_gameModePacketBuffer + 0x3)); break; - case 0xA27: + case ID_ZC_RECOVERY: this->ReceiveHpSpRecovery(g_gameModePacketBuffer, 1); break; case 0xA29: @@ -24348,41 +24355,41 @@ void CGameMode::ProcessIncomingPackets() { *reinterpret_cast(g_gameModePacketBuffer + 0x12), *reinterpret_cast(g_gameModePacketBuffer + 0x14)); break; - case 0xA4E: + case ID_ZC_RANDOM_COMBINE_ITEM_UI_OPEN: this->ReceiveLapineBoxIngredient(reinterpret_cast(*reinterpret_cast(g_gameModePacketBuffer + 0x2))); break; - case 0xA50: + case ID_ZC_ACK_RANDOM_COMBINE_ITEM: this->ReceiveLapineBoxResult(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; - case 0xA53: + case ID_ZC_ACK_UPLOAD_MACRO_DETECTOR: this->ReceiveCaptchaUploadRequest(reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6)); break; - case 0xA55: + case ID_ZC_COMPLETE_UPLOAD_MACRO_DETECTOR_CAPTCHA: this->NotifyCaptchaRegistered(); break; - case 0xA57: + case ID_ZC_ACK_APPLY_MACRO_DETECTOR: this->NotifyResult2877(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; - case 0xA58: + case ID_ZC_APPLY_MACRO_DETECTOR: this->BeginCaptchaImage(*reinterpret_cast(g_gameModePacketBuffer + 0x2), reinterpret_cast(g_gameModePacketBuffer + 0x4)); break; - case 0xA5B: + case ID_ZC_REQ_ANSWER_MACRO_DETECTOR: this->SetMacroDetectorCountdown(g_gameModePacketBuffer[0x2], *reinterpret_cast(g_gameModePacketBuffer + 0x3)); break; - case 0xA5D: + case ID_ZC_CLOSE_MACRO_DETECTOR: this->ReceiveMacroDetectorResult(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; case 0xA60: this->NotifyResult3995(g_gameModePacketBuffer[0x2]); break; - case 0xA6A: + case ID_ZC_ACK_PREVIEW_MACRO_DETECTOR: this->ReceiveCaptchaPreview(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6), reinterpret_cast(g_gameModePacketBuffer + 0x8)); break; - case 0xA6D: + case ID_ZC_ACK_PLAYER_AID_IN_RANGE: ReceiveMacroReporterList((static_cast(*reinterpret_cast(g_gameModePacketBuffer + 0x2) - 4) >> 2), reinterpret_cast(g_gameModePacketBuffer + 0x4)); break; @@ -24402,19 +24409,19 @@ void CGameMode::ProcessIncomingPackets() { case 0xA95: this->ReceiveFeedConfig(g_gameModePacketBuffer[0x2], g_gameModePacketBuffer[0x3]); break; - case 0xAA0: + case ID_ZC_OPEN_REFINING_UI: g_windowMgr.EnsureWindow(295); break; - case 0xAB4: + case ID_ZC_RANDOM_UPGRADE_ITEM_UI_OPEN: this->ReceiveLapineUpgradeBoxValue(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; - case 0xAB7: + case ID_ZC_ACK_RANDOM_UPGRADE_ITEM: this->ReceiveLapineUpgradeResult(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; case 0xAC3: this->IgnoreRemovedPacket6(); break; - case 0xAE2: + case ID_ZC_UI_OPEN: this->ReceiveServiceRequest(g_gameModePacketBuffer[0x2], *reinterpret_cast(g_gameModePacketBuffer + 0x3)); break; case 0xAF0: @@ -24423,32 +24430,32 @@ void CGameMode::ProcessIncomingPackets() { case 0xAF5: SetActiveSkillEffect184(g_gameModePacketBuffer[0x2]); break; - case 0xAFA: + case ID_ZC_ADVENTURER_AGENCY_JOIN_RESULT: ReceivePartyJoinResult(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0xAFB: + case ID_ZC_AUTOSPELLLIST: this->ReceiveWindow99Values((static_cast(*reinterpret_cast(g_gameModePacketBuffer + 0x2) - 4) >> 2), reinterpret_cast(g_gameModePacketBuffer + 0x4)); break; - case 0xB0B: + case ID_ZC_INVENTORY_END: this->RefreshItemListWindow(g_gameModePacketBuffer[0x2], g_gameModePacketBuffer[0x3]); break; case 0xB2B: this->ReceiveGuildUnknown0114Change(g_gameModePacketBuffer[0x2], *reinterpret_cast(g_gameModePacketBuffer + 0x3), *reinterpret_cast(g_gameModePacketBuffer + 0x7)); break; - case 0xB2D: + case ID_ZC_REQ_ACK_AGIT_INVESTMENT: this->ReceiveAgitNotice(g_gameModePacketBuffer[0x2], *reinterpret_cast(g_gameModePacketBuffer + 0x3), *reinterpret_cast(g_gameModePacketBuffer + 0x7)); break; - case 0xB2E: + case ID_ZC_REQ_ACK_MOVE_GUILD_AGIT: this->ReceivePacket0B2E(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; case 0xB30: this->ReceiveObjectsDisappear((static_cast(*reinterpret_cast(g_gameModePacketBuffer + 0x2) - 4) >> 2), reinterpret_cast(g_gameModePacketBuffer + 0x4)); break; - case 0xB47: + case ID_ZC_CHANGE_GUILD: this->ReceiveGuildEmblemVersion(*reinterpret_cast(g_gameModePacketBuffer + 0xA), *reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6)); @@ -24469,23 +24476,23 @@ void CGameMode::ProcessIncomingPackets() { this->ReceiveUnknownD79E90(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x4)); break; - case 0xB68: + case ID_ZC_TARGET_SPIRITS: this->ReceiveActorStateValue(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6), *reinterpret_cast(g_gameModePacketBuffer + 0xA)); break; - case 0xB6E: + case ID_ZC_SE_CASHSHOP_OPEN: this->ReceiveCashShopBanner(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6), *reinterpret_cast(g_gameModePacketBuffer + 0xA)); break; - case 0xB8E: + case ID_ZC_REPUTE_OPEN: this->ReceiveReputeOpen(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0xA)); break; - case 0xB8F: + case ID_ZC_OPEN_REFORM_UI: this->ReceiveItemReformOpen(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; - case 0xB92: + case ID_ZC_ITEM_REFORM_ACK: this->ReceiveWindow348Result(g_gameModePacketBuffer[0x4], *reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; case 0xB94: @@ -24500,19 +24507,19 @@ void CGameMode::ProcessIncomingPackets() { this->ReceiveRodexMailDeleteResult(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6)); break; - case 0xB9A: + case ID_ZC_UI_OPEN2: this->ReceiveUiOpen(g_gameModePacketBuffer[0x2], *reinterpret_cast(g_gameModePacketBuffer + 0x3)); break; - case 0xB9F: + case ID_ZC_RESPONSE_ENCHANT: this->ReceiveEnchantResult(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6)); break; - case 0xBA1: + case ID_ZC_DIALOG_TEXT_ALIGN: this->SetWindow16Align(g_gameModePacketBuffer[0x2]); break; - case 0xBA2: + case ID_ZC_DIALOG_WINDOW_SIZE: this->ResizeWindow16(*reinterpret_cast(g_gameModePacketBuffer + 0x6), *reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; - case 0xBA3: + case ID_ZC_DIALOG_WINDOW_POS: this->MoveWindow16(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6)); break; case 0xBAA: @@ -24525,20 +24532,20 @@ void CGameMode::ProcessIncomingPackets() { *reinterpret_cast(g_gameModePacketBuffer + 0x6), *reinterpret_cast(g_gameModePacketBuffer + 0xA), *reinterpret_cast(g_gameModePacketBuffer + 0xE), *reinterpret_cast(g_gameModePacketBuffer + 0x12)); break; - case 0xBAE: + case ID_ZC_ACK_TAKEOFF_EQUIP_ALL: this->ReceiveBasicInfoResult(g_gameModePacketBuffer[0x2]); break; - case 0xBB5: + case ID_ZC_DIALOG_WINDOW_POS2: this->PlaceWindow16(*reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x6)); break; - case 0xBBA: + case ID_ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN_item: this->ReceiveItemObtainBroadcast(g_gameModePacketBuffer, 1); break; case 0xBBC: this->ReceiveShopName(reinterpret_cast(g_gameModePacketBuffer + 0x2), *reinterpret_cast(g_gameModePacketBuffer + 0x12)); break; - case 0xBBE: + case ID_ZC_SPECIALPOPUP: this->ShowSpecialPopup(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; case 0xBC2: @@ -24566,7 +24573,7 @@ void CGameMode::ProcessIncomingPackets() { case 0xC06: this->ReceiveResultNotice(*reinterpret_cast(g_gameModePacketBuffer + 0x4)); break; - case 0xC0C: + case ID_ZC_GM_CHECKER: this->NotifyResult4138(*reinterpret_cast(g_gameModePacketBuffer + 0x2)); break; case 0xC3C: @@ -24576,11 +24583,11 @@ void CGameMode::ProcessIncomingPackets() { ReceiveTradeItems(static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 4) / sizeof(TradeItemRecord), reinterpret_cast(g_gameModePacketBuffer + 4)); break; - case 0xA59: + case ID_ZC_APPLY_MACRO_DETECTOR_CAPTCHA: this->ReceiveCaptchaImageData(reinterpret_cast(g_gameModePacketBuffer + 4), g_gameModePacketBuffer + 8, static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 8)); break; - case 0xA6B: + case ID_ZC_PREVIEW_MACRO_DETECTOR_CAPTCHA: this->ReceiveCaptchaPreviewImage(reinterpret_cast(g_gameModePacketBuffer + 4), g_gameModePacketBuffer + 8, static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 8)); break; @@ -24595,21 +24602,21 @@ void CGameMode::ProcessIncomingPackets() { case 0xAA8: this->ReceiveFeedConfig2(g_gameModePacketBuffer[2], g_gameModePacketBuffer[3], g_gameModePacketBuffer[4]); break; - case 0xB8D: + case ID_ZC_REPUTE_INFO: this->ReceiveReputeInfo(g_gameModePacketBuffer[4], static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 5) >> 4, reinterpret_cast(g_gameModePacketBuffer + 5)); break; - case 0xB25: + case ID_ZC_PAR_4JOB_CHANGE: this->ReceiveTraitStatusChangeAck(g_gameModePacketBuffer[4], *reinterpret_cast(g_gameModePacketBuffer + 2), g_gameModePacketBuffer[5]); break; - case 0xA51: + case ID_ZC_CHECKNAME: this->ReceiveRodexRecipient( *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 8), reinterpret_cast(g_gameModePacketBuffer + 0xA)); break; - case 0xADA: + case ID_ZC_BROADCAST_ITEMREFINING_RESULT: this->ReceiveRefineStatus(reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 0x1A), g_gameModePacketBuffer[0x1E], g_gameModePacketBuffer[0x1F]); break; @@ -24624,7 +24631,7 @@ void CGameMode::ProcessIncomingPackets() { this->ReceiveRuneGradeResult(g_gameModePacketBuffer[2], *reinterpret_cast(g_gameModePacketBuffer + 3), 1, *reinterpret_cast(g_gameModePacketBuffer + 5), 0, 0); break; - case 0x999: + case ID_ZC_REQ_WEAR_EQUIP_ACK: this->ReceiveWearEquipAck(g_gameModePacketBuffer[0xA], *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 8), *reinterpret_cast(g_gameModePacketBuffer + 4)); @@ -24644,7 +24651,7 @@ void CGameMode::ProcessIncomingPackets() { static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 5) / 29, g_gameModePacketBuffer + 5); break; - case 0x9E5: + case ID_ZC_DELETEITEM_FROM_MCSTORE: ProcessVendingSale(*reinterpret_cast(g_gameModePacketBuffer + 0xA), *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 4), *reinterpret_cast(g_gameModePacketBuffer + 0xE), *reinterpret_cast(g_gameModePacketBuffer + 6)); @@ -24656,18 +24663,18 @@ void CGameMode::ProcessIncomingPackets() { case 0xADC: this->ReceiveFeedConfig3(g_gameModePacketBuffer[2], g_gameModePacketBuffer[3], g_gameModePacketBuffer[4], g_gameModePacketBuffer[5]); break; - case 0x9CB: + case ID_ZC_USE_SKILL: this->ReceiveSkillUse(*reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 4), *reinterpret_cast(g_gameModePacketBuffer + 0xC), *reinterpret_cast(g_gameModePacketBuffer + 8), g_gameModePacketBuffer[0x10]); break; - case 0xA23: + case achievementListType: ReceiveAchievementList(*reinterpret_cast(g_gameModePacketBuffer + 4), *reinterpret_cast(g_gameModePacketBuffer + 8), *reinterpret_cast(g_gameModePacketBuffer + 0xC), *reinterpret_cast(g_gameModePacketBuffer + 0xE), *reinterpret_cast(g_gameModePacketBuffer + 0x12), reinterpret_cast(g_gameModePacketBuffer + 0x16)); break; - case 0xB36: + case ID_ZC_GUILD_EMBLEM_IMG: CGuildMgr::ReceiveEmblem(*reinterpret_cast(g_gameModePacketBuffer + 4), *reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 0xA), g_gameModePacketBuffer + 0xE, @@ -24687,7 +24694,7 @@ void CGameMode::ProcessIncomingPackets() { this->ReceiveFeedConfig4(g_gameModePacketBuffer[2], g_gameModePacketBuffer[3], g_gameModePacketBuffer[4], g_gameModePacketBuffer[5], *reinterpret_cast(g_gameModePacketBuffer + 6)); break; - case 0xAA2: + case ID_ZC_REFINING_MATERIAL_LIST: this->ApplyRefiningMaterial(*reinterpret_cast(g_gameModePacketBuffer + 4), static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 7) / 9, g_gameModePacketBuffer + 7, g_gameModePacketBuffer[6]); @@ -24696,7 +24703,7 @@ void CGameMode::ProcessIncomingPackets() { this->ReceiveNamedResult(*reinterpret_cast(g_gameModePacketBuffer + 2), reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 0x1E)); break; - case 0xA41: + case skillscale: this->SpawnSkillWarningPlanes( *reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 8), *reinterpret_cast(g_gameModePacketBuffer + 0xA), @@ -24709,7 +24716,7 @@ void CGameMode::ProcessIncomingPackets() { *reinterpret_cast(g_gameModePacketBuffer + 9), *reinterpret_cast(g_gameModePacketBuffer + 0xB)); break; - case 0x973: + case ID_ZC_WAIT_DIALOG2: this->unknown_024C = 1; this->unknown_02DC = *reinterpret_cast(g_gameModePacketBuffer + 2); g_windowMgr.EnsureWindow(226)->SendMsg(nullptr, 25, 0, 0, 0, 0); @@ -24742,7 +24749,7 @@ void CGameMode::ProcessIncomingPackets() { break; } break; - case 0xB8C: { + case ID_ZC_PLAY_NPC_BGM: { const unsigned char type = g_gameModePacketBuffer[4]; this->PlayBgm( type, std::string(reinterpret_cast(g_gameModePacketBuffer + 5), *reinterpret_cast(g_gameModePacketBuffer + 2))); @@ -24754,7 +24761,7 @@ void CGameMode::ProcessIncomingPackets() { static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 0x11) / 63, *reinterpret_cast(g_gameModePacketBuffer + 0xD), g_gameModePacketBuffer + 0x11); break; - case 0xA24: + case achievementUpdateType: this->ReceiveAchievementUpdate(*reinterpret_cast(g_gameModePacketBuffer + 2), *reinterpret_cast(g_gameModePacketBuffer + 6), *reinterpret_cast(g_gameModePacketBuffer + 8), *reinterpret_cast(g_gameModePacketBuffer + 0xC), @@ -24790,12 +24797,12 @@ void CGameMode::ProcessIncomingPackets() { *reinterpret_cast(g_gameModePacketBuffer + 9), *reinterpret_cast(g_gameModePacketBuffer + 0xB)); break; - case 0x9D1: + case progressbarunit: if (CRenderObject *actor = this->scene->GetGameActorByAID(*reinterpret_cast(g_gameModePacketBuffer + 2))) { actor->SendMsg(nullptr, 82, 0, *reinterpret_cast(g_gameModePacketBuffer + 0xA) * 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0xAE7: { + case ID_ZC_ADVENTURER_AGENCY_JOIN_REQ: { char name[25]; strncpy(name, reinterpret_cast(g_gameModePacketBuffer + 0xA), 24); name[24] = 0; @@ -24821,7 +24828,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.SendNotice(1, reinterpret_cast(g_simpleStringMgr->GetString("EMSG_EMOTION_EXPANTION_BUY_SUCCESS")), 0xFFFF, 0, 0, 0); this->RefreshEmotionPurchaseSchedule(); break; - case 0xA0E: + case ID_ZC_BATTLEFIELD_NOTIFY_HP: if (!g_session.IsCompanionAid(*reinterpret_cast(g_gameModePacketBuffer + 2))) { if (CRenderObject *actor = this->scene->GetGameActorByAID(*reinterpret_cast(g_gameModePacketBuffer + 2))) { const int hp = *reinterpret_cast(g_gameModePacketBuffer + 6); @@ -24881,7 +24888,7 @@ void CGameMode::ProcessIncomingPackets() { } this->unknown_026E[0x16] = 0; break; - case 0x972: { + case ID_ZC_SAY_DIALOG2: { const unsigned char *packet = g_gameModePacketBuffer; this->unknown_024C = 1; this->unknown_02DC = *reinterpret_cast(packet + 4); @@ -24946,7 +24953,7 @@ void CGameMode::ProcessIncomingPackets() { this->ReceiveSkillList(*reinterpret_cast(g_gameModePacketBuffer), skills); break; } - case 0xA78: + case ID_ZC_VIEW_CAMERAINFO: if (g_gameModePacketBuffer[2] == 1) { UIWindow *window = g_windowMgr.LookupWindow(289); if (!window) { @@ -24982,15 +24989,15 @@ void CGameMode::ProcessIncomingPackets() { this->scene->unknown_0020.push_back(skill); } break; - case 0xADB: { + case ID_ZC_DEBUGMSG: { std::string text(reinterpret_cast(g_gameModePacketBuffer + 8), reinterpret_cast(g_gameModePacketBuffer + *reinterpret_cast(g_gameModePacketBuffer + 2))); g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), *reinterpret_cast(g_gameModePacketBuffer + 4), 0, 0, 0); break; } - case 0xA28: + case ID_ZC_ACK_OPENSTORE2: switch (g_gameModePacketBuffer[2]) { - case 0: + case OPENSTORE2_SUCCESS: if (UIWindow *window = g_windowMgr.EnsureWindow(45)) { window->SendMsg(nullptr, 23, 0, 0, 0, 0); } @@ -25000,7 +25007,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.CloseWindow(41); this->unknown_024C = 1; break; - case 1: + case OPENSTORE2_FAILED: this->SendMsg(40, 0, 0, 0, 0); g_windowMgr.CloseWindow(43); g_windowMgr.CloseWindow(44); @@ -25009,7 +25016,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.Confirm(LookupMessage(2639), 0, true, false, 0, "Message", 280, 120, 0); g_windowMgr.CloseWindow(41); break; - case 3: + case OPENSTORE2_NOVENDING: this->SendMsg(40, 0, 0, 0, 0); g_windowMgr.CloseWindow(43); g_windowMgr.CloseWindow(44); @@ -25027,7 +25034,7 @@ void CGameMode::ProcessIncomingPackets() { g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), 0xFFFF, 0, 0, 0); break; } - case 0x8FE: { + case questUpdateType2: { const int count = static_cast(*reinterpret_cast(g_gameModePacketBuffer + 2) - 4) / 12; const unsigned char *entry = g_gameModePacketBuffer + 4; for (int i = 0; i < count; ++i, entry += 12) { diff --git a/Source/Client/Mode/LoginMode.cpp b/Source/Client/Mode/LoginMode.cpp index 8fb56459e..a04052db5 100644 --- a/Source/Client/Mode/LoginMode.cpp +++ b/Source/Client/Mode/LoginMode.cpp @@ -1,4 +1,6 @@ #include "Client/Mode/CLoginMode.h" +#include "Network/Packets/PacketId.h" +#include "Network/Packets/ModeResultEnums.h" #include "Utility/EncryptedName.h" #include "Client/Mode/CGameMode.h" #include "Client/Application/ApplicationMessages.h" @@ -1625,47 +1627,47 @@ struct PasswordModePacket { void CLoginMode::SubD90C90(const PasswordModePacket* packet) { g_session.m_loginAccountId = packet->accountId; switch (packet->mode) { - case 0: + case PINCODE_OK: g_windowMgr.CloseWindow(199); g_session.m_passwordWndMode = 0; this->pendingCursorType = 7; break; - case 1: + case PINCODE_ASK: g_session.m_passwordWndAccountId = packet->value; g_session.m_passwordWndMode = 2; this->passwordRetryCount = 0; this->pendingCursorType = 7; break; - case 2: + case PINCODE_NOTSET: g_session.m_passwordWndAccountId = packet->value; g_session.m_passwordWndMode = 4; this->pendingCursorType = 7; break; - case 3: + case PINCODE_EXPIRED: g_session.m_passwordWndAccountId = packet->value; g_session.m_passwordWndMode = 3; this->pendingCursorType = 7; break; - case 4: + case PINCODE_NEW: g_session.m_passwordWndAccountId = packet->value; g_session.m_passwordWndMode = 5; this->pendingCursorType = 7; break; - case 5: + case PINCODE_ILLEGAL: g_windowMgr.CloseWindow(199); this->pendingCursorType = 7; g_windowMgr.Confirm(LookupMessage(0x768), 0, true, false, 0, "Message", 280, 120, 0); break; - case 6: + case PINCODE_KSSN: g_windowMgr.CloseWindow(199); this->pendingCursorType = 7; g_windowMgr.Confirm(LookupMessage(0x769), 0, true, false, 0, "Message", 280, 120, 0); break; - case 7: + case PINCODE_PASSED: g_session.m_passwordWndMode = 1; this->pendingCursorType = 7; break; - case 8: + case PINCODE_WRONG: g_windowMgr.CloseWindow(199); if (packet->count != 0) { this->pendingCursorType = 7; @@ -1705,47 +1707,47 @@ void CLoginMode::SubD90C90(const PasswordModePacket* packet) { void CLoginMode::SubD911C0(const PasswordModePacket* packet) { g_session.m_loginAccountId = packet->accountId; switch (packet->mode) { - case 0: + case PINCODE_OK: g_windowMgr.CloseWindow(199); g_session.m_passwordWndMode = 0; this->pendingCursorType = 7; break; - case 1: + case PINCODE_ASK: g_session.m_passwordWndAccountId = packet->value; g_session.m_passwordWndMode = 2; this->passwordRetryCount = 0; this->pendingCursorType = 7; break; - case 2: + case PINCODE_NOTSET: g_session.m_passwordWndAccountId = packet->value; g_session.m_passwordWndMode = 4; this->pendingCursorType = 7; break; - case 3: + case PINCODE_EXPIRED: g_session.m_passwordWndAccountId = packet->value; g_session.m_passwordWndMode = 3; this->pendingCursorType = 7; break; - case 4: + case PINCODE_NEW: g_session.m_passwordWndAccountId = packet->value; g_session.m_passwordWndMode = 5; this->pendingCursorType = 7; break; - case 5: + case PINCODE_ILLEGAL: g_windowMgr.CloseWindow(199); this->pendingCursorType = 7; g_windowMgr.Confirm(LookupMessage(0x768), 0, true, false, 0, "Message", 280, 120, 0); break; - case 6: + case PINCODE_KSSN: g_windowMgr.CloseWindow(199); this->pendingCursorType = 7; g_windowMgr.Confirm(LookupMessage(0x769), 0, true, false, 0, "Message", 280, 120, 0); break; - case 7: + case PINCODE_PASSED: g_session.m_passwordWndMode = 1; this->pendingCursorType = 7; break; - case 8: { + case PINCODE_WRONG: { g_windowMgr.CloseWindow(199); ++this->passwordRetryCount; const int remaining = 3 - this->passwordRetryCount; @@ -2416,7 +2418,7 @@ void CLoginMode::PollNetworkStatus() { switch (GetRagConnection().GetPacketType(reinterpret_cast(g_gameModePacketBuffer))) { case 0x69: case 0x6D: - case 0x187: + case ID_PING: case 0x283: case 0x8E3: case 0x8E4: @@ -2435,10 +2437,10 @@ void CLoginMode::PollNetworkStatus() { this->ShowLoginError(packet->result, reinterpret_cast(packet->blockDate)); break; } - case 0x6B: + case ID_HC_ACCEPT_ENTER: this->ReceiveAcceptEnter(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x6C: + case ID_HC_REFUSE_ENTER: GetRagConnection().Close(); switch (reinterpret_cast(g_gameModePacketBuffer)->result) { case 1: @@ -2466,7 +2468,7 @@ void CLoginMode::PollNetworkStatus() { break; } break; - case 0x6E: { + case ID_HC_REFUSE_MAKECHAR: { int message; switch (reinterpret_cast(g_gameModePacketBuffer)->result) { case 0: @@ -2495,7 +2497,7 @@ void CLoginMode::PollNetworkStatus() { this->pendingCursorType = 7; break; } - case 0x6F: { + case ID_HC_ACCEPT_DELETECHAR: { CharacterInfo* remaining = new CharacterInfo[this->characterCount]; long long kept = 0; for (long long i = 0; i < this->characterCount; ++i) { @@ -2511,7 +2513,7 @@ void CLoginMode::PollNetworkStatus() { this->pendingCursorType = 7; break; } - case 0x70: { + case ID_HC_REFUSE_DELETECHAR: { int message; switch (reinterpret_cast(g_gameModePacketBuffer)->result) { case 0: @@ -2537,13 +2539,13 @@ void CLoginMode::PollNetworkStatus() { case 0x73: this->Zc_Accept_Enter2(reinterpret_cast(g_gameModePacketBuffer)); return; - case 0x74: + case ID_ZC_REFUSE_ENTER: g_windowMgr.Confirm(LookupMessage(9), 0, true, false, 0, "Message", 280, 120, 0); GetRagConnection().Close(); g_charServerAccountIdPending = 0; this->pendingCursorType = 3; break; - case 0x81: + case ID_SC_NOTIFY_BAN: this->ReceiveNotifyBan(g_gameModePacketBuffer); break; case 0x1B5: @@ -2576,7 +2578,7 @@ void CLoginMode::PollNetworkStatus() { this->pendingCursorType = 3; break; } - case 0x20D: { + case ID_HC_BLOCK_CHARACTER: { const BlockedCharacterPacket* packet = reinterpret_cast(g_gameModePacketBuffer); BlockedCharacter* blocked = reinterpret_cast(&g_session.unknown_07F4[0x40]); g_session.unknown_59D0 = (packet->length - offsetof(BlockedCharacterPacket, characters)) / sizeof(BlockedCharacter); @@ -2602,7 +2604,7 @@ void CLoginMode::PollNetworkStatus() { this->pendingCursorType = 19; break; } - case 0x28E: { + case ID_HC_ACK_IS_VALID_CHARNAME: { const ShortResultPacket* packet = reinterpret_cast(g_gameModePacketBuffer); if (packet->result != 0) { char text[300]; @@ -2649,37 +2651,37 @@ void CLoginMode::PollNetworkStatus() { } this->pendingCursorType = GetRagConnection().NativeSocket() != INVALID_SOCKET ? 7 : 3; break; - case 0x2EB: + case ID_ZC_ACCEPT_ENTER: this->Zc_Accept_Enter3(reinterpret_cast(g_gameModePacketBuffer)); return; case 0x448: this->ReceiveCharacterList(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x828: + case ID_HC_DELETE_CHAR3_RESERVED: this->ReceiveDeleteReservation(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x82A: + case ID_HC_DELETE_CHAR3: this->ReceiveDeleteCharacter(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x82C: + case ID_HC_DELETE_CHAR3_CANCEL: this->ReceiveDeleteCancel(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x82D: + case ID_HC_ACCEPT_ENTER2: this->ReceiveCharacterSlots(reinterpret_cast(g_gameModePacketBuffer)); break; - case 0x83E: { + case ID_AC_REFUSE_LOGIN: { LoginErrorCodePacket* packet = reinterpret_cast(g_gameModePacketBuffer); packet->text[19] = '\0'; this->ShowLoginError(packet->code, reinterpret_cast(packet->text)); break; } - case 0x840: + case ID_HC_NOTIFY_ACCESSIBLE_MAPNAME: this->ReceiveMapStates(reinterpret_cast(g_gameModePacketBuffer)); break; case 0x851: IgnoreRemovedPacket(g_gameModePacketBuffer); break; - case 0x8B9: + case ID_HC_SECOND_PASSWD_LOGIN: this->SubD911C0(reinterpret_cast(g_gameModePacketBuffer)); break; case 0x8BB: { @@ -2788,12 +2790,12 @@ void CLoginMode::PollNetworkStatus() { } break; case 0x8D5: - case 0xB70: + case ID_HC_ACK_CHANGE_CHARACTER_SLOT: if (reinterpret_cast(g_gameModePacketBuffer)->result == 1) { g_windowMgr.Confirm(LookupMessage(0x7E1), 0, true, false, 0, "Message", 280, 120, 0); } break; - case 0x8FD: + case ID_HC_ACK_CHANGE_CHARNAME: this->SubD8D500(reinterpret_cast(g_gameModePacketBuffer)); break; case 0x986: { @@ -2812,7 +2814,7 @@ void CLoginMode::PollNetworkStatus() { g_timeScheduler->AddSchedule(schedule); break; } - case 0x9A0: + case ID_HC_CHARLIST_NOTIFY: for (int i = 1; i <= reinterpret_cast(g_gameModePacketBuffer)->value; ++i) { std::int16_t request = 0x9A1; GetRagConnection().Send(sizeof(request), &request); @@ -2831,10 +2833,10 @@ void CLoginMode::PollNetworkStatus() { this->ShowLoginError(packet->code, reinterpret_cast("")); break; } - case 0xAC4: + case ID_AC_ACCEPT_LOGIN: this->ReceiveAcceptLogin(reinterpret_cast(g_gameModePacketBuffer), 5); break; - case 0xAC5: + case ID_HC_NOTIFY_ZONESVR: this->ReceiveNotifyZoneServer2(reinterpret_cast(g_gameModePacketBuffer)); break; case 0xAC9: @@ -2892,7 +2894,7 @@ void CLoginMode::PollNetworkStatus() { } break; } - case 0xAE3: + case ID_TC_RESULT: this->ReceiveLoginErrorDetail(reinterpret_cast(g_gameModePacketBuffer)); break; case 0xAE9: @@ -2907,14 +2909,14 @@ void CLoginMode::PollNetworkStatus() { case 0xB07: this->ReceiveAcceptLogin(reinterpret_cast(g_gameModePacketBuffer), 6); break; - case 0xB18: { + case ID_ZC_EXTEND_BODYITEM_SIZE: { const std::int16_t slots = reinterpret_cast(g_gameModePacketBuffer)->result; if (slots <= 100) { g_session.unknown_7FBC = slots; } break; } - case 0xB6F: { + case ID_HC_ACCEPT_MAKECHAR: { const CharacterInfoPacket* packet = reinterpret_cast(g_gameModePacketBuffer); g_charInfo = packet->info; g_selectedSlotIndex = static_cast(g_charInfo.slot); @@ -2936,7 +2938,7 @@ void CLoginMode::PollNetworkStatus() { } break; } - case 0xB72: + case ID_HC_ACK_CHARINFO_PER_PAGE: this->ReceiveCharacterPage(reinterpret_cast(g_gameModePacketBuffer)); break; case 0xC05: { diff --git a/Source/Client/Replay.cpp b/Source/Client/Replay.cpp index e6e437d04..544c952ba 100644 --- a/Source/Client/Replay.cpp +++ b/Source/Client/Replay.cpp @@ -1,4 +1,5 @@ #include "Client/Replay.h" +#include "Network/Packets/PacketId.h" #include "Contents/Configuration/ServiceConfiguration.h" #include "Contents/Skills/SkillInfo.h" #include "Client/Session.h" @@ -1003,9 +1004,9 @@ std::vector CSession::BuildShortcutReplayRecords() { // FUNCTION: fn_24207 std::vector CSession::BuildSkillListReplayPacket(short id) { switch (id) { - case 0x10F: + case ID_ZC_SKILLINFO_LIST: return BuildSkillInfoListPacket(0x10F, this->m_skillBundle.skills); - case 0x235: + case ID_ZC_HOSKILLINFO_LIST: return BuildSkillInfoListPacket(0x235, this->m_homunSkills); case 0x29D: return BuildSkillInfoListPacket(0x29D, this->m_mercSkills); diff --git a/Source/Client/Session.cpp b/Source/Client/Session.cpp index af8cba19d..78ec5bdd1 100644 --- a/Source/Client/Session.cpp +++ b/Source/Client/Session.cpp @@ -1,4 +1,5 @@ #include "Client/Session.h" +#include "Contents/Combat/CombatTypes.h" #include "Utility/EncryptedName.h" #include "Client/Mode/CGameMode.h" #include "Contents/Actors/RenderObject.h" @@ -708,7 +709,7 @@ int CSession::FindUnknown0700(int key) const { // FUNCTION: fn_23363 const char* CSession::GetEnemyHitWaveName(int element) { switch (element) { - case 3: + case ELE_FIRE: switch (std::rand() % 2) { case 0: return "_enemy_hit_fire1.wav"; @@ -716,7 +717,7 @@ const char* CSession::GetEnemyHitWaveName(int element) { return "_enemy_hit_fire2.wav"; } break; - case 4: + case ELE_WIND: switch (std::rand() % 2) { case 0: return "_enemy_hit_wind1.wav"; @@ -773,69 +774,69 @@ ITEM_INFO* CSession::GetEquippedItem(const ITEM_INFO* item) { ITEM_INFO* equipped = nullptr; switch (item->unknown_0000[2]) { - case 0x1: + case EQP_HEAD_LOW: equipped = &this->unknown_17F0[0]; break; - case 0x2: + case EQP_HAND_R: case 0x22: equipped = &this->unknown_17F0[1]; break; - case 0x4: + case EQP_GARMENT: equipped = &this->unknown_17F0[2]; break; case 0x88: equipped = &this->unknown_17F0[3]; break; - case 0x10: + case EQP_ARMOR: equipped = &this->unknown_17F0[4]; break; - case 0x20: + case EQP_HAND_L: equipped = &this->unknown_17F0[5]; break; - case 0x40: + case EQP_SHOES: equipped = &this->unknown_17F0[6]; break; - case 0x100: + case EQP_HEAD_TOP: case 0x101: case 0x300: case 0x301: equipped = &this->unknown_17F0[8]; break; - case 0x200: + case EQP_HEAD_MID: case 0x201: equipped = &this->unknown_17F0[9]; break; - case 0x1000: + case EQP_COSTUME_HEAD_LOW: equipped = &this->unknown_2B50[0]; break; - case 0x20000: + case EQP_SHADOW_WEAPON: equipped = &this->unknown_2B50[1]; break; - case 0x2000: + case EQP_COSTUME_GARMENT: equipped = &this->unknown_2B50[2]; break; - case 0x100000: + case EQP_SHADOW_ACC_R: equipped = &this->unknown_2B50[3]; break; - case 0x10000: + case EQP_SHADOW_ARMOR: equipped = &this->unknown_2B50[4]; break; - case 0x40000: + case EQP_SHADOW_SHIELD: equipped = &this->unknown_2B50[5]; break; - case 0x80000: + case EQP_SHADOW_SHOES: equipped = &this->unknown_2B50[6]; break; - case 0x200000: + case EQP_SHADOW_ACC_L: equipped = &this->unknown_2B50[7]; break; - case 0x400: + case EQP_COSTUME_HEAD_TOP: case 0xC00: case 0x1400: case 0x1C00: equipped = &this->unknown_2B50[8]; break; - case 0x800: + case EQP_COSTUME_HEAD_MID: case 0x1800: equipped = &this->unknown_2B50[9]; break; diff --git a/Source/Client/SessionState.cpp b/Source/Client/SessionState.cpp index 26d9ab8dc..bde0bd1d9 100644 --- a/Source/Client/SessionState.cpp +++ b/Source/Client/SessionState.cpp @@ -121,27 +121,27 @@ void CSession::LoadSkillDelayList(int skillId, std::vector>& int delay = 0; if (actor) { switch (actor->GetEffectiveJob(-1)) { - case 2114: - case 2117: - case 2120: - case 2123: + case JT_EL_AGNI_S: + case JT_EL_AQUA_S: + case JT_EL_VENTUS_S: + case JT_EL_TERA_S: delay = 3000; break; - case 2115: - case 2118: - case 2121: - case 2124: + case JT_EL_AGNI_M: + case JT_EL_AQUA_M: + case JT_EL_VENTUS_M: + case JT_EL_TERA_M: delay = 6000; break; - case 2116: - case 2119: - case 2122: - case 2125: - case 20816: - case 20817: - case 20818: - case 20819: - case 20820: + case JT_EL_AGNI_L: + case JT_EL_AQUA_L: + case JT_EL_VENTUS_L: + case JT_EL_TERA_L: + case JT_EM_DILUVIO: + case JT_EM_ARDOR: + case JT_EM_PROCELLA: + case JT_EM_TERREMOTUS: + case JT_EM_SERPENS: delay = 9000; break; } diff --git a/Source/Contents/Actors/GameActor.cpp b/Source/Contents/Actors/GameActor.cpp index 3f27e9e75..78c8ca694 100644 --- a/Source/Contents/Actors/GameActor.cpp +++ b/Source/Contents/Actors/GameActor.cpp @@ -1,4 +1,6 @@ #include "Contents/Actors/GameActor.h" +#include "Contents/Jobs/JobId.h" +#include "Contents/Skills/SkillId.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -874,16 +876,16 @@ int __stdcall MountedJob(int job, std::uint32_t flags) { // FUNCTION: fn_21051 int CGameActor::GetEffectCounter(int effectId) { switch (effectId) { - case 0x81: - case 0x17d: - case 0x14ce: - case 0x14d1: - case 0x1978: + case HT_BLITZBEAT: + case SN_FALCONASSAULT: + case WH_HAWKRUSH: + case WH_HAWKBOOMERANG: + case WH_WILD_WALK: return this->unknown_037C[0]; } switch (effectId) { - case 0x8c3: - case 0x8c4: + case RA_WUGSTRIKE: + case RA_WUGBITE: return this->unknown_037C[1]; } return 0; @@ -903,37 +905,37 @@ float CGameActor::GetNameOffset() { } switch (this->GetEffectiveJob(-1)) { - case 0xd: - case 0x15: - case 0xfae: - case 0xfb6: - case 0xff0: - case 0xff1: - case 0xff2: - case 0xff3: - case 0xff4: - case 0xff5: - case 0xff6: - case 0xff7: - case 0xff8: - case 0xff9: - case 0xffa: - case 0xffb: - case 0xffc: - case 0xffd: - case 0xffe: - case 0xfff: - case 0x10b6: - case 0x10b7: - case 0x10b8: - case 0x10b9: + case JT_CHICKEN: + case JT_CHICKEN2: + case JT_CHICKEN_H: + case JT_CHICKEN2_H: + case JT_RUNE_CHICKEN: + case JT_RUNE_CHICKEN_H: + case JT_ROYAL_CHICKEN: + case JT_ROYAL_CHICKEN_H: + case JT_WOLF_RANGER: + case JT_WOLF_RANGER_H: + case JT_MADOGEAR: + case JT_MADOGEAR_H: + case JT_RUNE_CHICKEN2: + case JT_RUNE_CHICKEN2_H: + case JT_RUNE_CHICKEN3: + case JT_RUNE_CHICKEN3_H: + case JT_RUNE_CHICKEN4: + case JT_RUNE_CHICKEN4_H: + case JT_RUNE_CHICKEN5: + case JT_RUNE_CHICKEN5_H: + case JT_WOLF_WINDHAWK: + case JT_MEISTER_MADOGEAR: + case JT_DRAGON_KNIGHT_CHICKEN: + case JT_IMPERIAL_GUARD_CHICKEN: return scale * 6.0f; - case 0xfc4: - case 0xfcc: - case 0x100d: - case 0x100e: - case 0x100f: - case 0x1010: + case JT_CHICKEN_B: + case JT_CHICKEN2_B: + case JT_RUNE_CHICKEN_B: + case JT_ROYAL_CHICKEN_B: + case JT_WOLF_RANGER_B: + case JT_MADOGEAR_B: return scale * 4.0f; default: break; @@ -962,18 +964,18 @@ float CGameActor::GetNameOffset() { } switch (static_cast(pc->unknown_04D4)) { - case 0x18: - case 0x1077: - case 0x10d2: + case JT_GUNSLINGER: + case JT_REBELLION: + case JT_NIGHT_WATCH: return 0.0f; - case 0: - case 0x17: - case 0xfa1: - case 0x105e: - case 0x10d3: - case 0x10ff: - case 0x1101: - case 0x1103: + case JT_NOVICE: + case JT_SUPERNOVICE: + case JT_NOVICE_H: + case JT_SUPERNOVICE2: + case JT_HYPER_NOVICE: + case JT_DRUID: + case JT_KARNOS: + case JT_ALITEA: return scale + scale; default: return scale * 6.0f; @@ -984,37 +986,37 @@ float CGameActor::GetNameOffset() { // FUNCTION: fn_21054 float CGameActor::GetNameHeight() { switch (this->GetEffectiveJob(-1)) { - case 0xd: - case 0x15: - case 0xfae: - case 0xfb6: - case 0xff0: - case 0xff1: - case 0xff2: - case 0xff3: - case 0xff4: - case 0xff5: - case 0xff6: - case 0xff7: - case 0xff8: - case 0xff9: - case 0xffa: - case 0xffb: - case 0xffc: - case 0xffd: - case 0xffe: - case 0xfff: - case 0x10b6: - case 0x10b7: - case 0x10b8: - case 0x10b9: + case JT_CHICKEN: + case JT_CHICKEN2: + case JT_CHICKEN_H: + case JT_CHICKEN2_H: + case JT_RUNE_CHICKEN: + case JT_RUNE_CHICKEN_H: + case JT_ROYAL_CHICKEN: + case JT_ROYAL_CHICKEN_H: + case JT_WOLF_RANGER: + case JT_WOLF_RANGER_H: + case JT_MADOGEAR: + case JT_MADOGEAR_H: + case JT_RUNE_CHICKEN2: + case JT_RUNE_CHICKEN2_H: + case JT_RUNE_CHICKEN3: + case JT_RUNE_CHICKEN3_H: + case JT_RUNE_CHICKEN4: + case JT_RUNE_CHICKEN4_H: + case JT_RUNE_CHICKEN5: + case JT_RUNE_CHICKEN5_H: + case JT_WOLF_WINDHAWK: + case JT_MEISTER_MADOGEAR: + case JT_DRAGON_KNIGHT_CHICKEN: + case JT_IMPERIAL_GUARD_CHICKEN: return 23.0f; - case 0xfc4: - case 0xfcc: - case 0x100d: - case 0x100e: - case 0x100f: - case 0x1010: + case JT_CHICKEN_B: + case JT_CHICKEN2_B: + case JT_RUNE_CHICKEN_B: + case JT_ROYAL_CHICKEN_B: + case JT_WOLF_RANGER_B: + case JT_MADOGEAR_B: return 19.0f; default: break; @@ -1035,18 +1037,18 @@ float CGameActor::GetNameHeight() { } switch (static_cast(pc->unknown_04D4)) { - case 0x18: - case 0x1077: - case 0x10d2: + case JT_GUNSLINGER: + case JT_REBELLION: + case JT_NIGHT_WATCH: return 18.0f; - case 0: - case 0x17: - case 0xfa1: - case 0x105e: - case 0x10d3: - case 0x10ff: - case 0x1101: - case 0x1103: + case JT_NOVICE: + case JT_SUPERNOVICE: + case JT_NOVICE_H: + case JT_SUPERNOVICE2: + case JT_HYPER_NOVICE: + case JT_DRUID: + case JT_KARNOS: + case JT_ALITEA: return 19.0f; default: return 23.0f; diff --git a/Source/Contents/Actors/GameObject.cpp b/Source/Contents/Actors/GameObject.cpp index d1ff1135e..c8645e0d4 100644 --- a/Source/Contents/Actors/GameObject.cpp +++ b/Source/Contents/Actors/GameObject.cpp @@ -1,4 +1,6 @@ #include "Contents/Actors/GameObject.h" +#include "Contents/Jobs/JobId.h" +#include "Contents/Effects/EffectTypes.h" #include "Contents/Actors/GameActor.h" #include "Client/Mode/ModeMgr.h" #include "Client/Mode/CGameMode.h" @@ -420,7 +422,7 @@ void CGameActor::RenderMercenary(const float* matrix, int job) { int offsetX = 0; int offsetY = 0; - if (layer >= 5 && job != 0x178A && job != 0x1794 && job != 0x179E) { + if (layer >= 5 && job != JT_MER_ARCHER10 && job != JT_MER_LANCER10 && job != JT_MER_SWORDMAN10) { continue; } @@ -498,125 +500,125 @@ void CGameActor::RenderMercenary(const float* matrix, int job) { frame = &action->Frame(this->render.previousAnimation, this->render.curMotion); } else if (layer == 4) { switch (job) { - case 0x1781: + case JT_MER_ARCHER01: std::sprintf(accessory, "여\\여_털모자"); break; - case 0x1782: + case JT_MER_ARCHER02: std::sprintf(accessory, "여\\여_골든헤드기어"); break; - case 0x1783: + case JT_MER_ARCHER03: std::sprintf(accessory, "여\\여_대형금방울"); break; - case 0x1784: + case JT_MER_ARCHER04: std::sprintf(accessory, "여\\여_엘리스모자"); break; - case 0x1785: + case JT_MER_ARCHER05: std::sprintf(accessory, "여\\여_가부키가면"); break; - case 0x1786: + case JT_MER_ARCHER06: std::sprintf(accessory, "여\\여_여왕의투구"); break; - case 0x1787: + case JT_MER_ARCHER07: std::sprintf(accessory, "여\\여_지르타스가면"); break; - case 0x1788: + case JT_MER_ARCHER08: std::sprintf(accessory, "여\\여_실버티아라"); break; - case 0x1789: + case JT_MER_ARCHER09: std::sprintf(accessory, "여\\여_고양이모자"); break; - case 0x178A: + case JT_MER_ARCHER10: std::sprintf(accessory, "여\\여_예쁜리본"); break; - case 0x178B: + case JT_MER_LANCER01: std::sprintf(accessory, "남\\남_간호모"); break; - case 0x178C: + case JT_MER_LANCER02: std::sprintf(accessory, "남\\남_검은눈가리개"); break; - case 0x178D: + case JT_MER_LANCER03: std::sprintf(accessory, "남\\남_고블린가면4호"); break; - case 0x178E: + case JT_MER_LANCER04: std::sprintf(accessory, "남\\남_양모자"); break; - case 0x178F: + case JT_MER_LANCER05: std::sprintf(accessory, "남\\남_귀찮은너구리"); break; - case 0x1790: + case JT_MER_LANCER06: std::sprintf(accessory, "남\\남_돈잃은자의마음"); break; - case 0x1791: + case JT_MER_LANCER07: std::sprintf(accessory, "남\\남_마리오넷모자"); break; - case 0x1792: + case JT_MER_LANCER08: std::sprintf(accessory, "남\\남_라이온마스크"); break; - case 0x1793: + case JT_MER_LANCER09: std::sprintf(accessory, "남\\남_클로스헬멧"); break; - case 0x1794: + case JT_MER_LANCER10: std::sprintf(accessory, "남\\남_로드카호의뿔"); break; - case 0x1795: + case JT_MER_SWORDMAN01: std::sprintf(accessory, "남\\남_반창고"); break; - case 0x1796: + case JT_MER_SWORDMAN02: std::sprintf(accessory, "남\\남_분노입"); break; - case 0x1797: + case JT_MER_SWORDMAN03: std::sprintf(accessory, "남\\남_코끼리모자"); break; - case 0x1798: + case JT_MER_SWORDMAN04: std::sprintf(accessory, "남\\남_야구모자"); break; - case 0x1799: + case JT_MER_SWORDMAN05: std::sprintf(accessory, "남\\남_장례건"); break; - case 0x179A: + case JT_MER_SWORDMAN06: std::sprintf(accessory, "남\\남_부용"); break; - case 0x179B: + case JT_MER_SWORDMAN07: std::sprintf(accessory, "남\\남_타이거마스크"); break; - case 0x179C: + case JT_MER_SWORDMAN08: std::sprintf(accessory, "남\\남_초승달투구"); break; - case 0x179D: + case JT_MER_SWORDMAN09: std::sprintf(accessory, "남\\남_엔젤링모자"); break; - case 0x179E: + case JT_MER_SWORDMAN10: std::sprintf(accessory, "남\\남_태양신의모자"); break; } } else if (layer == 5) { switch (job) { - case 0x178A: + case JT_MER_ARCHER10: std::sprintf(accessory, "여\\여_꽃잎"); break; - case 0x1794: + case JT_MER_LANCER10: std::sprintf(accessory, "남\\남_토스트"); break; } } else if (layer == 6) { switch (job) { - case 0x178A: + case JT_MER_ARCHER10: std::sprintf(accessory, "여\\여_요정의귀"); break; - case 0x1794: - case 0x179E: + case JT_MER_LANCER10: + case JT_MER_SWORDMAN10: std::sprintf(accessory, "남\\남_요정의귀"); break; } } else if (layer == 7) { switch (job) { - case 0x178A: + case JT_MER_ARCHER10: std::sprintf(accessory, "여\\여_미스틱로즈"); break; - case 0x1794: + case JT_MER_LANCER10: std::sprintf(accessory, "남\\남_타키우스눈가리개"); break; - case 0x179E: + case JT_MER_SWORDMAN10: std::sprintf(accessory, "남\\남_사이클롭스아이"); break; } @@ -1323,28 +1325,28 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } int effectId; switch (this->GetEffectiveJob(-1)) { - case 0xFAC: + case JT_HUNTER_H: effectId = 0x17; break; - case 0xFC2: + case JT_HUNTER_B: effectId = 0x18; break; - case 0xFD2: + case JT_GANGSI: effectId = 0x20; break; - case 0xFD3: + case JT_DEATHKNIGHT: effectId = 0x21; break; - case 0xFD4: + case JT_COLLECTOR: effectId = 0x22; break; - case 0xFD8: - case 0xFDE: - case 0x1002: + case JT_RANGER: + case JT_RANGER_H: + case JT_RANGER_B: effectId = 0x35; break; - case 0x10A1: - case 0x10B6: + case JT_WINDHAWK: + case JT_WOLF_WINDHAWK: effectId = 0x45; break; default: @@ -1371,18 +1373,18 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } int effectId; switch (this->GetEffectiveJob(-1)) { - case 0xFD8: - case 0xFDE: - case 0xFF4: - case 0xFF5: + case JT_RANGER: + case JT_RANGER_H: + case JT_WOLF_RANGER: + case JT_WOLF_RANGER_H: effectId = 0x23; break; - case 0x1002: - case 0x100F: + case JT_RANGER_B: + case JT_WOLF_RANGER_B: effectId = 0x2A; break; - case 0x10A1: - case 0x10B6: + case JT_WINDHAWK: + case JT_WOLF_WINDHAWK: effectId = 0x46; break; default: @@ -1716,25 +1718,25 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, int view = 0; if (attacker != nullptr) { switch (attacker->GetEffectiveJob(-1)) { - case 12: - case 4013: - case 4035: - case 4059: - case 4065: - case 4101: - case 4254: - case 4260: + case JT_ASSASSIN: + case JT_ASSASSIN_H: + case JT_ASSASSIN_B: + case JT_GUILLOTINE_CROSS: + case JT_GUILLOTINE_CROSS_H: + case JT_GUILLOTINE_CROSS_B: + case JT_SHADOW_CROSS: + case JT_ABYSS_CHASER: view = static_cast(weapon); if (view > 1000) { view = GetWeaponViewValue(view); } genericWeapon = false; break; - case 4351: - case 4352: - case 4353: - case 4354: - case 4355: + case JT_DRUID: + case JT_DRUID_B: + case JT_KARNOS: + case JT_KARNOS_B: + case JT_ALITEA: if (attacker->unknown_0404 != 0) { view = -1; genericWeapon = false; @@ -2300,7 +2302,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, if (this->GetEffectiveJob(-1) >= 0x792 && this->GetEffectiveJob(-1) <= 0x7A3) { break; } - if (this->GetEffectiveJob(-1) == 0x6C4) { + if (this->GetEffectiveJob(-1) == JT_G_TREASURE_BOX) { break; } this->unknown_02B8 = static_cast(*reinterpret_cast(g_session.unknown_7EE8)); @@ -2455,52 +2457,52 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, case 110: { const bool on = (static_cast(e) << 32 | static_cast(d)) != 0; switch (static_cast(c) << 32 | static_cast(b)) { - case 0x0: - case 0x1: - case 0x3: - case 0x4: - case 0x5: - case 0x6: - case 0x7: - case 0x8: - case 0x9: - case 0xA: - case 0xB: - case 0xC: - case 0xD: - case 0xE: - case 0xF: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1E: - case 0x20: - case 0x21: - case 0x40: - case 0x93: - case 0x96: - case 0x97: - case 0x10A: - case 0x129: - case 0x12B: - case 0x13A: - case 0x161: - case 0x165: - case 0x191: - case 0x19E: - case 0x207: + case EFST_PROVOKE: + case EFST_ENDURE: + case EFST_CONCENTRATION: + case EFST_HIDING: + case EFST_CLOAKING: + case EFST_ENCHANTPOISON: + case EFST_POISONREACT: + case EFST_QUAGMIRE: + case EFST_ANGELUS: + case EFST_BLESSING: + case EFST_CRUCIS: + case EFST_INC_AGI: + case EFST_DEC_AGI: + case EFST_SLOWPOISON: + case EFST_IMPOSITIO: + case EFST_SUFFRAGIUM: + case EFST_ASPERSIO: + case EFST_BENEDICTIO: + case EFST_KYRIE: + case EFST_MAGNIFICAT: + case EFST_GLORIA: + case EFST_LEXAETERNA: + case EFST_ADRENALINE: + case EFST_WEAPONPERFECT: + case EFST_MAXIMIZE: + case EFST_RIDING: + case EFST_FALCON: + case EFST_SHOUT: + case EFST_BROKENARMOR: + case EFST_BROKENWEAPON: + case EFST_WEAPONPROPERTY: + case EFST_ADRENALINE2: + case EFST_PLUSATTACKPOWER: + case EFST_PLUSMAGICPOWER: + case EFST_CRYSTAL: + case EFST_ATKER_ASPD: + case EFST_ATKER_MOVESPEED: + case EFST_ANGEL_PROTECT: + case EFST_ELECTRICSHOCKER: + case EFST_WUGRIDER: + case EFST_ADORAMUS: + case EFST_ACARAJE: + case EFST_WATER_SCREEN: break; - case 0x2: - case 0xA1: { + case EFST_TWOHANDQUICKEN: + case EFST_ONEHANDQUICKEN: { while (this->HasId(0xA6)) { this->SendMsg(nullptr, 109, 0, 0xA6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2512,7 +2514,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x44: { + case EFST_SPEARQUICKEN: { while (this->HasId(0xA6)) { this->SendMsg(nullptr, 109, 0, 0xA6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2524,7 +2526,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0xCF: + case EFST_NJ_BUNSINJYUTSU: while (this->HasId(0x269)) { this->SendMsg(nullptr, 109, 0, 0x269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2532,7 +2534,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x269, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x98: { + case EFST_DEVIL1: { if (this->render.accountId != g_session.m_aid) { break; } @@ -2556,7 +2558,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x61: + case EFST_PROPERTYUNDEAD: if (!on) { if (this->HasId(0x28F)) { vector3d position{0.0f, 0.0f, 0.0f}; @@ -2569,7 +2571,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x28F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xA0: + case EFST_SKE: if (this->render.accountId == g_session.m_aid) { if (on) { g_weatherEffect.StartDarken(); @@ -2578,12 +2580,12 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x9F: + case EFST_SMA_READY: if (on) { this->LaunchEffect(0x222, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x56: { + case EFST_EXPLOSIONSPIRITS: { while (this->HasId(0xCB)) { this->SendMsg(nullptr, 109, 0, 0xCB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2601,8 +2603,8 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x57: - case 0xEB: { + case EFST_STEELBODY: + case EFST_DBARRIER: { while (this->HasId(0xFE)) { this->SendMsg(nullptr, 109, 0, 0xFE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->SendMsg(nullptr, 109, 0, 0x46C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -2620,9 +2622,9 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x46C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0xA5: - case 0xA6: - case 0xA7: + case EFST_SG_SUN_WARM: + case EFST_SG_MOON_WARM: + case EFST_SG_STAR_WARM: while (this->HasId(0x1A2)) { this->SendMsg(nullptr, 109, 0, 0x1A2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2634,7 +2636,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x220, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xE8: + case EFST_DAURA: while (this->HasId(0x1A2)) { this->SendMsg(nullptr, 109, 0, 0x1A2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2646,7 +2648,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x220, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x99: + case EFST_KAITE: while (this->HasId(0x1A3)) { this->SendMsg(nullptr, 109, 0, 0x1A3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2654,7 +2656,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x1A3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x67: + case EFST_AURABLADE: while (this->HasId(0x16F)) { this->SendMsg(nullptr, 109, 0, 0x16F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2666,12 +2668,12 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x1DA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x5F: + case EFST_STOP: while (this->HasId(0x1C5)) { this->SendMsg(nullptr, 109, 0, 0x1C5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x7B: { + case EFST_MOON: { while (this->HasId(0x18A)) { this->SendMsg(nullptr, 109, 0, 0x18A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2680,7 +2682,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x79: { + case EFST_MARIONETTE_MASTER: { this->SendMsg(nullptr, 109, 0, 0x18B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); while (this->HasId(0x18C)) { this->SendMsg(nullptr, 109, 0, 0x18C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -2690,7 +2692,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x7A: { + case EFST_MARIONETTE: { while (this->HasId(0x18C)) { this->SendMsg(nullptr, 109, 0, 0x18C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2699,14 +2701,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x69: { + case EFST_LKCONCENTRATION: { this->SendMsg(nullptr, 109, 0, 0x171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); if (on) { this->LaunchEffect(0x171, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; } - case 0x6B: { + case EFST_BERSERK: { while (this->HasId(0x170)) { this->SendMsg(nullptr, 109, 0, 0x170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2715,8 +2717,8 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0xC8: - case 0xC9: { + case EFST_RG_CCONFINE_M: + case EFST_RG_CCONFINE_S: { while (this->HasId(0x25C)) { this->SendMsg(nullptr, 109, 0, 0x25C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2725,7 +2727,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0xC6: { + case EFST_WZ_SIGHTBLASTER: { while (this->HasId(0x259)) { this->SendMsg(nullptr, 109, 0, 0x259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2734,7 +2736,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x62: { + case EFST_POWERUP: { while (this->HasId(0x1C7)) { this->SendMsg(nullptr, 109, 0, 0x1C7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2743,14 +2745,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x85: { + case EFST_RUN: { if (this->HasId(0x1BA)) { this->LaunchEffect(0x1BB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } this->SendMsg(nullptr, 109, 0, 0x1BA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; } - case 0x86: { + case EFST_TING: { const vector3d& player = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player)->render.position; g_soundMgr->PlayWave("effect\\T_벽튕김.wav", this->render.position.x - player.x, 0.0f, this->render.position.z - player.z, 250, 40, 1.0f, 0); this->LaunchEffect(0x1AA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -2759,7 +2761,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x71: { + case EFST_MAGICPOWER: { while (this->HasId(0x17E)) { this->SendMsg(nullptr, 109, 0, 0x17E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2768,8 +2770,8 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x19: - case 0xBC: { + case EFST_OVERTHRUST: + case EFST_OVERTHRUSTMAX: { while (this->HasId(0xA6)) { this->SendMsg(nullptr, 109, 0, 0xA6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2781,7 +2783,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x1F: { + case EFST_ENERGYCOAT: { while (this->HasId(0xA6)) { this->SendMsg(nullptr, 109, 0, 0xA6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2793,7 +2795,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x1D: + case EFST_TRICKDEAD: if (on) { this->unknown_017C = 1; if (this->GetMonsterTransformJob() > 0) { @@ -2811,7 +2813,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->render.isMotionFreezed = false; } break; - case 0x22: + case EFST_ILLUSION: if (this->render.accountId == g_session.m_aid) { if (on) { g_screenShakeDuration = 10000; @@ -2833,7 +2835,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x4E: { + case EFST_RICHMANKIM: { if (this->HasId(0x363) == true) { this->SendMsg(nullptr, 109, 0, 0x363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2842,9 +2844,9 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x46: - case 0x4A: - case 0x53: { + case EFST_WHISTLE: + case EFST_HUMMING: + case EFST_INTOABYSS: { if (this->HasId(0x361) == true) { this->SendMsg(nullptr, 109, 0, 0x361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2853,8 +2855,8 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x51: - case 0x54: { + case EFST_RINGNIBELUNGEN: + case EFST_SIEGFRIED: { if (this->HasId(0x36B) == true) { this->SendMsg(nullptr, 109, 0, 0x36B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2863,7 +2865,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x49: { + case EFST_APPLEIDUN: { if (this->HasId(0x35D) == true) { this->SendMsg(nullptr, 109, 0, 0x35D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2872,8 +2874,8 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x4F: - case 0x52: { + case EFST_ETERNALCHAOS: + case EFST_ROKISWEIL: { if (this->HasId(0x360) == true) { this->SendMsg(nullptr, 109, 0, 0x360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2882,8 +2884,8 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x47: - case 0x4D: { + case EFST_ASSASSINCROSS: + case EFST_SERVICEFORYOU: { if (this->HasId(0x369) == true) { this->SendMsg(nullptr, 109, 0, 0x369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2892,8 +2894,8 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x4C: - case 0x50: { + case EFST_FORTUNEKISS: + case EFST_DRUMBATTLEFIELD: { if (this->HasId(0x367) == true) { this->SendMsg(nullptr, 109, 0, 0x367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2902,7 +2904,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x4B: { + case EFST_DONTFORGETME: { if (this->HasId(0x26) == true) { this->SendMsg(nullptr, 109, 0, 0x26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2911,7 +2913,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x48: { + case EFST_POEMBRAGI: { if (this->HasId(0x36D) == true) { this->SendMsg(nullptr, 109, 0, 0x36D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2920,7 +2922,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x107: { + case EFST_DA_CONTRACT: { while (this->HasId(0x24A)) { this->SendMsg(nullptr, 109, 0, 0x24A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2929,7 +2931,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x15E: { + case EFST_DUPLELIGHT: { while (this->HasId(0x341)) { this->SendMsg(nullptr, 109, 0, 0x341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2942,7 +2944,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x14A: + case EFST_ORATIO: while (this->HasId(0x2F3)) { this->SendMsg(nullptr, 109, 0, 0x2F3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2950,7 +2952,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x2F3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1D0: + case EFST_BLOOD_SUCKER: while (this->HasId(0x170)) { this->SendMsg(nullptr, 109, 0, 0x170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -2958,15 +2960,15 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x170, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x195: + case EFST_BANDING: if (on) { if (!this->HasId(0x38D)) { this->LaunchEffect(0x38D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } } break; - case 0x1A0: - case 0x1A1: { + case EFST_CURSEDCIRCLE_ATKER: + case EFST_CURSEDCIRCLE_TARGET: { unsigned char shade; bool frozen; if (on) { @@ -2984,7 +2986,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, argb[0] = shade; break; } - case 0x1BD: + case EFST_STRIKING: if (IsPlayerJob(this->GetEffectiveJob(-1))) { while (this->HasId(0x39D)) { this->SendMsg(nullptr, 109, 0, 0x39D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -2997,7 +2999,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x148: + case EFST_VENOMIMPRESS: while (this->HasId(0x314)) { this->SendMsg(nullptr, 109, 0, 0x314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3005,7 +3007,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x314, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x15F: + case EFST_FROSTMISTY: while (this->HasId(0x315)) { this->SendMsg(nullptr, 109, 0, 0x315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3013,7 +3015,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x315, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1B5: + case EFST_COLD: while (this->HasId(0x3AC)) { this->SendMsg(nullptr, 109, 0, 0x3AC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3021,22 +3023,22 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x3AC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x16B: + case EFST_SUMMON1: this->SetTetraBall(0, d, f); break; - case 0x16C: + case EFST_SUMMON2: this->SetTetraBall(1, d, f); break; - case 0x16D: + case EFST_SUMMON3: this->SetTetraBall(2, d, f); break; - case 0x16E: + case EFST_SUMMON4: this->SetTetraBall(3, d, f); break; - case 0x16F: + case EFST_SUMMON5: this->SetTetraBall(4, d, f); break; - case 0x153: + case EFST_ROLLINGCUTTER: if ((static_cast(e) << 32 | static_cast(d)) == 1) { const std::int64_t level = static_cast(g) << 32 | static_cast(f); if (level <= 10 && level > 0) { @@ -3057,7 +3059,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x1B2: + case EFST_SIREN: if ((static_cast(e) << 32 | static_cast(d)) == 1) { this->SendMsg(nullptr, 109, 0, 0x36F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x36F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -3065,32 +3067,32 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->SendMsg(nullptr, 109, 0, 0x36F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x1B7: + case EFST_SONG_OF_MANA: if ((static_cast(e) << 32 | static_cast(d)) == 1) { this->SendMsg(nullptr, 109, 0, 0x361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x361, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1B9: + case EFST_DANCE_WITH_WUG: if ((static_cast(e) << 32 | static_cast(d)) == 1) { this->SendMsg(nullptr, 109, 0, 0x363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x363, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1C3: + case EFST_LERADS_DEW: if ((static_cast(e) << 32 | static_cast(d)) == 1) { this->SendMsg(nullptr, 109, 0, 0x367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x367, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1B3: + case EFST_DEEP_SLEEP: if ((static_cast(e) << 32 | static_cast(d)) == 1) { this->SendMsg(nullptr, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } else { this->SendMsg(nullptr, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x1B1: + case EFST_NETHERWORLD: while (this->HasId(0x1C5)) { this->SendMsg(nullptr, 109, 0, 0x1C5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3098,7 +3100,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x1C5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x168: + case EFST_CAMOUFLAGE: while (this->HasId(0x2E8)) { this->SendMsg(nullptr, 109, 0, 0x2E8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3113,7 +3115,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x1A6: + case EFST_MANHOLE: while (this->HasId(0x337)) { this->SendMsg(nullptr, 109, 0, 0x337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3124,7 +3126,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x18A: + case EFST_SHADOWFORM: while (this->HasId(0x329)) { this->SendMsg(nullptr, 109, 0, 0x329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->SendMsg(nullptr, 109, 0, 0x333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -3133,7 +3135,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x329, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x17B: + case EFST_STEALTHFIELD: while (this->HasId(0x2E8)) { this->SendMsg(nullptr, 109, 0, 0x2E8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3141,7 +3143,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x2E8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x166: + case EFST_WUGDASH: while (this->HasId(0x2F0)) { this->SendMsg(nullptr, 109, 0, 0x2F0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3149,43 +3151,43 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x2F0, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x108: + case EFST_DA_BLACK: if (this->render.accountId == g_session.m_aid) { g_screenShakeDuration = 1; g_screenShakeMode = 1; } break; - case 0x115: { + case EFST_MER_FLEE: { const int text = reinterpret_cast("FLEE UP!"); this->SendMsg(nullptr, 7, 0, text, text >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x1C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0x116: { + case EFST_MER_ATK: { const int text = reinterpret_cast("ATK UP!"); this->SendMsg(nullptr, 7, 0, text, text >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x1C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0x119: { + case EFST_MER_HIT: { const int text = reinterpret_cast("DEX UP!"); this->SendMsg(nullptr, 7, 0, text, text >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x1C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0x117: { + case EFST_MER_HP: { const int text = reinterpret_cast("HP UP!"); this->SendMsg(nullptr, 7, 0, text, text >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x1C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0x118: { + case EFST_MER_SP: { const int text = reinterpret_cast("SP UP!"); this->SendMsg(nullptr, 7, 0, text, text >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->LaunchEffect(0x1C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0x1C6: + case EFST_UNLIMITED_HUMMING_VOICE: if (this->HasId(0x361) == true) { this->SendMsg(nullptr, 109, 0, 0x361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3193,7 +3195,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x361, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1C4: + case EFST_MELODYOFSINK: if (this->HasId(0x57) == true) { this->SendMsg(nullptr, 109, 0, 0x57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3201,7 +3203,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x57, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1C5: + case EFST_BEYOND_OF_WARCRY: if (this->HasId(0x31F) == true) { this->SendMsg(nullptr, 109, 0, 0x31F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3209,7 +3211,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x31F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1C0: + case EFST_SATURDAY_NIGHT_FEVER: if (this->HasId(0x360) == true) { this->SendMsg(nullptr, 109, 0, 0x360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3217,21 +3219,21 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x360, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x241: - case 0x244: - case 0x245: - case 0x248: - case 0x25D: - case 0x25F: - case 0x260: - case 0x26A: - case 0x288: - case 0x289: + case EFST_PAIN_KILLER: + case EFST_LIGHT_OF_REGENE: + case EFST_OVERED_BOOST: + case EFST_STYLE_CHANGE: + case EFST_MAGMA_FLOW: + case EFST_PYROCLASTIC: + case EFST_VOLCANIC_ASH: + case EFST_OVERLAPEXPUP: + case EFST_EQUIPPED_DIVINE_ARMOR: + case EFST_EQUIPPED_HOLY_ARMOR: break; - case 0x23B: + case EFST_EQUIPED_FLOOR: g_effectMgr->SpawnLevel99(this, on, f); break; - case 0x25E: + case EFST_GRANITIC_ARMOR: while (this->HasId(0x3C3)) { this->SendMsg(nullptr, 109, 0, 0x3C3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3239,7 +3241,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x3C3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x265: { + case EFST_ALL_RIDING: { if (this->render.unknown_0070 == 25) { this->SetState(0, 1); } @@ -3256,18 +3258,18 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->SetSprRobe(0, 1); break; } - case 0x26D: - case 0x28B: - case 0x299: { + case EFST_MONSTER_TRANSFORM: + case EFST_KYOUGAKU: + case EFST_ACTIVE_MONSTER_TRANSFORM: { int slot; switch (b) { - case 0x26D: + case EFST_MONSTER_TRANSFORM: slot = 0; break; - case 0x28B: + case EFST_KYOUGAKU: slot = 1; break; - case 0x299: + case EFST_ACTIVE_MONSTER_TRANSFORM: slot = 2; break; default: @@ -3284,13 +3286,13 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x285: + case EFST_KO_JYUMONJIKIRI: g_effectMgr->Retire(this->render.accountId, 0x3E6); if ((static_cast(e) << 32 | static_cast(d)) != 0 && g_effectMgr->HasAllocator(0x3E6)) { g_effectMgr->Spawn(this->render.accountId, 0x3E6, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x28F: + case EFST_KYOMU: while (this->HasId(0x3C3)) { this->SendMsg(nullptr, 109, 0, 0x3C3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3298,7 +3300,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x3C3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x290: + case EFST_KAGEMUSYA: while (this->HasId(0x3EC)) { this->SendMsg(nullptr, 109, 0, 0x3EC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3306,7 +3308,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x3EC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x286: + case EFST_MEIKYOUSISUI: while (this->HasId(0x18A)) { this->SendMsg(nullptr, 109, 0, 0x18A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3319,7 +3321,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x291: + case EFST_ZANGETSU: while (this->HasId(0x3EB)) { this->SendMsg(nullptr, 109, 0, 0x3EB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3327,7 +3329,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x3EB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x293: + case EFST_GENSOU: g_effectMgr->Retire(this->render.accountId, 0x3ED); if ((static_cast(e) << 32 | static_cast(d)) != 0 && g_effectMgr->HasAllocator(0x3ED)) { CEffect* orb = g_effectMgr->Spawn(this->render.accountId, 0x3ED, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -3342,7 +3344,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x3C3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x294: + case EFST_AKAITSUKI: while (this->HasId(0x220)) { this->SendMsg(nullptr, 109, 0, 0x220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3350,25 +3352,25 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x220, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2A0: + case EFST_UNKNOWN_NAME: this->unknown_02F8 = (static_cast(e) << 32 | static_cast(d)) != 0; break; - case 0x2A2: + case EFST_HAT_EFFECT: this->SetStackedEffect(0x3F4, (static_cast(e) << 32 | static_cast(d)) > 0); break; - case 0x2CE: + case EFST_MOONSTAR: this->SetStackedEffect(0x40A, (static_cast(e) << 32 | static_cast(d)) > 0); break; - case 0x30B: + case EFST_DECORATION_OF_MUSIC: this->SetStackedEffect(0x437, (static_cast(e) << 32 | static_cast(d)) > 0); break; - case 0x2CF: + case EFST_STRANGELIGHTS: this->SetStackedEffect(0x40B, (static_cast(e) << 32 | static_cast(d)) > 0); break; - case 0x2D8: + case EFST_SUPER_STAR: this->SetStackedEffect(0x40C, (static_cast(e) << 32 | static_cast(d)) > 0); break; - case 0x2A1: + case EFST_ON_PUSH_CART: if ((static_cast(e) << 32 | static_cast(d)) != 0) { if (static_cast(this->unknown_02FC) == (static_cast(g) << 32 | static_cast(f))) { break; @@ -3384,14 +3386,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->SendMsg(nullptr, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x2A3: + case EFST_FLOWER_LEAF: if ((static_cast(e) << 32 | static_cast(d)) != 0) { g_effectMgr->Spawn(this->render.accountId, 0x3F5, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x3F5); } break; - case 0x2A4: + case EFST_RAY_OF_PROTECTION: while (this->HasId(0x3FB)) { this->SendMsg(nullptr, 109, 0, 0x3FB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3399,16 +3401,16 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x3FB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2B8: + case EFST_CLAN_INFO: this->unknown_0305 = (static_cast(i) << 32 | static_cast(h)) != 0; this->unknown_0308 = h; break; - case 0x2C6: + case EFST_HANDICAPSTATE_ICEEXPLO: if ((static_cast(e) << 32 | static_cast(d)) != 0) { this->SendMsg(nullptr, 127, 0, 50, 0, 150, 0, 255, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x2C9: + case EFST_MAXPAIN: while (this->HasId(0x40D)) { this->SendMsg(nullptr, 109, 0, 0x40D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3416,7 +3418,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x40D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2DA: + case EFST_DARKCROW: while (this->HasId(0x410)) { this->SendMsg(nullptr, 109, 0, 0x410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3426,7 +3428,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x410, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2CD: + case EFST_TELEKINESIS_INTENSE: while (this->HasId(0x418)) { this->SendMsg(nullptr, 109, 0, 0x418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3434,7 +3436,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x418, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2DE: + case EFST_ILLUSIONDOPING: while (this->HasId(0x419)) { this->SendMsg(nullptr, 109, 0, 0x419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3442,7 +3444,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x419, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2DF: + case EFST_WIDEWEB: while (this->HasId(0x194)) { this->SendMsg(nullptr, 109, 0, 0x194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3450,7 +3452,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x194, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2E1: + case EFST_BURNT: while (this->HasId(0x41E)) { this->SendMsg(nullptr, 109, 0, 0x41E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3458,7 +3460,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x41E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2E0: + case EFST_CHILL: while (this->HasId(0x41F)) { this->SendMsg(nullptr, 109, 0, 0x41F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3466,7 +3468,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x41F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2CC: + case EFST_OFFERTORIUM: while (this->HasId(0x421)) { this->SendMsg(nullptr, 109, 0, 0x421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3474,7 +3476,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x421, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x2F3: + case EFST_C_MARKER: this->SendMsg(this, 109, 0, 0x433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); if (on) { if (g_session.unknown_5C28.find(static_cast(this->render.accountId)) == g_session.unknown_5C28.end() && g_effectMgr->HasAllocator(0x425)) { @@ -3485,34 +3487,34 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x2F8: + case EFST_ANTI_M_BLAST: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x470, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x470); } break; - case 0x2F2: + case EFST_E_QD_SHOT_READY: g_effectMgr->Spawn(0, 0x434, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); break; - case 0x2F4: + case EFST_H_MINE: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x473, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x473); } break; - case 0x2F5: + case EFST_H_MINE_SPLASH: if (on) { this->SendMsg(nullptr, 109, 0, 0x425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); g_effectMgr->Spawn(0, 0x432, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x336: + case EFST_FLOWERSMOKE: this->SetStackedEffect(0x43B, (static_cast(e) << 32 | static_cast(d)) > 0); break; - case 0x14E: - case 0x365: { + case EFST_HALLUCINATIONWALK: + case EFST_NPC_HALLUCINATIONWALK: { while (this->HasId(0x318)) { this->SendMsg(nullptr, 109, 0, 0x318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3526,11 +3528,11 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, effect->SendMsg(nullptr, 44, 0, 0xFFFF, 0x318, 0, 0, 0); break; } - case 0x95: - case 0x420: - case 0x421: - case 0x422: - case 0x423: + case EFST_SOULLINK: + case EFST_SOULSHADOW: + case EFST_SOULFAIRY: + case EFST_SOULFALCON: + case EFST_SOULGOLEM: if (this->render.accountId == g_session.m_aid) { if ((static_cast(e) << 32 | static_cast(d)) != 0) { g_weatherEffect.StartDarken(); @@ -3544,42 +3546,42 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->SendMsg(nullptr, 109, 0, 0x1A8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x351: + case EFST_HAPPINESS_STAR: if ((static_cast(e) << 32 | static_cast(d)) > 0) { this->SetStackedEffect(0x43F, true); } else { this->SetStackedEffect(0x43F, false); } break; - case 0x337: + case EFST_FSTONE: if ((static_cast(e) << 32 | static_cast(d)) > 0) { this->SetStackedEffect(0x43C, true); } else { this->SetStackedEffect(0x43C, false); } break; - case 0x339: + case EFST_QSCARABA: if ((static_cast(e) << 32 | static_cast(d)) > 0) { this->SetStackedEffect(0x43D, true); } else { this->SetStackedEffect(0x43D, false); } break; - case 0x33A: + case EFST_LJOSALFAR: if ((static_cast(e) << 32 | static_cast(d)) > 0) { this->SetStackedEffect(0x43E, true); } else { this->SetStackedEffect(0x43E, false); } break; - case 0x359: + case EFST_MAPLE_FALLS: if ((static_cast(e) << 32 | static_cast(d)) > 0) { this->SetStackedEffect(0x441, true); } else { this->SetStackedEffect(0x441, false); } break; - case 0x358: + case EFST_DRESS_UP: g_session.unknown_6184 = g_session.m_aid == this->render.accountId ? f : g_session.unknown_6184; this->unknown_03DC = f; this->SetSprJob(this->GetEffectiveJob(-1)); @@ -3587,44 +3589,44 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->SetHeadPaletteName(); this->SetBodyPaletteName(); break; - case 0x35B: + case EFST_MARKING_USE_CHANGEMONSTER: if ((static_cast(e) << 32 | static_cast(d)) != 0) { g_effectMgr->Spawn(this->render.accountId, 0x442, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x442); } break; - case 0x360: + case EFST_MAGICAL_FEATHER: if ((static_cast(e) << 32 | static_cast(d)) > 0) { this->SetStackedEffect(0x443, true); } else { this->SetStackedEffect(0x443, false); } break; - case 0x35F: + case EFST_MERMAID_LONGING: if ((static_cast(e) << 32 | static_cast(d)) > 0) { this->SetStackedEffect(0x444, true); } else { this->SetStackedEffect(0x444, false); } break; - case 0x368: + case EFST_TIME_ACCESSORY: if ((static_cast(e) << 32 | static_cast(d)) > 0) { this->SetStackedEffect(0x447, true); } else { this->SetStackedEffect(0x447, false); } break; - case 0x37F: + case EFST_HEAD_EQUIPMENT_EFFECT: this->SetStackedEffect(f + 0x9B5, (static_cast(e) << 32 | static_cast(d)) > 0); break; - case 0x3A9: + case EFST_SPRITEMABLE: g_effectMgr->Retire(this->render.accountId, 0x448); if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x448, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x3A5: + case EFST_SUHIDE: if (on == true) { this->SetState(0x30, 1); this->render.isMotionFreezed = true; @@ -3638,14 +3640,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->render.unknown_0114 = 0; } break; - case 0x37D: + case EFST_SU_STOOP: if (on == true) { this->SetState(0x2F, 1); } else if (this->render.unknown_0114 == 0) { this->SetState(0, 1); } break; - case 0x397: + case EFST_TUNAPARTY: if (on == true) { if (!g_effectMgr->Has(this->render.accountId, 0x449)) { g_effectMgr->Spawn(this->render.accountId, 0x449, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); @@ -3654,35 +3656,35 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Retire(this->render.accountId, 0x449); } break; - case 0x380: + case EFST_SV_ROOTTWIST: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x456, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x456); } break; - case 0x395: + case EFST_BITESCAR: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x45F, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x45F); } break; - case 0x3D6: + case EFST_SOULATTACK: if (g_session.IsDoramJob(this->GetEffectiveJob(-1))) { static_cast(this)->unknown_04D8[0] = on; } break; - case 0x3F8: - case 0x3F9: - case 0x3FA: - case 0x3FB: - case 0x3FC: - case 0x3FD: - case 0x3FE: - case 0x3FF: - case 0x400: - case 0x401: { + case EFST_IMMUNE_PROPERTY_NOTHING: + case EFST_IMMUNE_PROPERTY_WATER: + case EFST_IMMUNE_PROPERTY_GROUND: + case EFST_IMMUNE_PROPERTY_FIRE: + case EFST_IMMUNE_PROPERTY_WIND: + case EFST_IMMUNE_PROPERTY_POISON: + case EFST_IMMUNE_PROPERTY_SAINT: + case EFST_IMMUNE_PROPERTY_DARKNESS: + case EFST_IMMUNE_PROPERTY_TELEKINESIS: + case EFST_IMMUNE_PROPERTY_UNDEAD: { const int effectId = b + 0x87; if (on == true) { g_effectMgr->Spawn(this->render.accountId, effectId, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -3691,7 +3693,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x41A: { + case EFST_GRAVITYCONTROL: { if (g_effectMgr->Has(this->render.accountId, 0x4B1) == true) { g_effectMgr->Retire(this->render.accountId, 0x4B1); } @@ -3706,7 +3708,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x410: + case EFST_SUNSTANCE: if (g_effectMgr->Has(this->render.accountId, 0x4BE) == true) { g_effectMgr->Retire(this->render.accountId, 0x4BE); } @@ -3714,7 +3716,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Spawn(this->render.accountId, 0x4BE, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x40E: + case EFST_LUNARSTANCE: if (g_effectMgr->Has(this->render.accountId, 0x4BF) == true) { g_effectMgr->Retire(this->render.accountId, 0x4BF); } @@ -3722,7 +3724,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Spawn(this->render.accountId, 0x4BF, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x413: + case EFST_STARSTANCE: if (g_effectMgr->Has(this->render.accountId, 0x4C0) == true) { g_effectMgr->Retire(this->render.accountId, 0x4C0); } @@ -3730,7 +3732,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Spawn(this->render.accountId, 0x4C0, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x40F: + case EFST_UNIVERSESTANCE: if (g_effectMgr->Has(this->render.accountId, 0x4C1) == true) { g_effectMgr->Retire(this->render.accountId, 0x4C1); } @@ -3738,7 +3740,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Spawn(this->render.accountId, 0x4C1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x411: + case EFST_FLASHKICK: if (g_effectMgr->Has(this->render.accountId, 0x4C5) == true) { g_effectMgr->Retire(this->render.accountId, 0x4C5); } @@ -3746,7 +3748,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Spawn(this->render.accountId, 0x4C5, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x41F: { + case EFST_SOULUNITY: { if (g_effectMgr->Has(this->render.accountId, 0x4C6) == true) { g_effectMgr->Retire(this->render.accountId, 0x4C6); } @@ -3761,9 +3763,9 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x6E: - case 0x1D9: - case 0x461: + case EFST_ASSUMPTIO: + case EFST_ASSUMPTIO2: + case EFST_ASSUMPTIO_BUFF: while (this->HasId(0x177)) { this->SendMsg(nullptr, 109, 0, 0x177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3771,7 +3773,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->LaunchEffect(0x177, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x465: + case EFST_SOULCURSE: if ((static_cast(e) << 32 | static_cast(d)) == 1) { if (g_effectMgr->Find(this->render.accountId, 0x552)) { break; @@ -3785,7 +3787,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x466: { + case EFST_SOUND_OF_DESTRUCTION: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -3799,7 +3801,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x473: { + case EFST_EARTHSHAKER: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -3812,7 +3814,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x476: { + case EFST_MAGIC_POISON: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -3825,7 +3827,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x475: { + case EFST_MISTY_FROST: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -3838,7 +3840,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x47C: { + case EFST_PRISON: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -3851,7 +3853,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x47D: { + case EFST_MADOGEAR_TYPE: { CGameActor* target = this; if (this->render.accountId != g_session.m_aid) { target = static_cast(mode->scene->GetGameActorByAID(this->render.accountId)); @@ -3881,7 +3883,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x48E: { + case EFST_RELIEVE_DAMAGE: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -3895,7 +3897,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x48F: { + case EFST_LOCKON_LASER: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -3911,7 +3913,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x48D: { + case EFST_HELLS_PLANT_ARMOR: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -3927,7 +3929,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x4B5: + case EFST_HANDICAPSTATE_DEEPBLIND: if (this->render.accountId != g_session.m_aid) { break; } @@ -3949,14 +3951,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } this->SetInstantValue(0x10, on); break; - case 0x4B6: + case EFST_HANDICAPSTATE_DEEPSILENCE: if ((static_cast(e) << 32 | static_cast(d)) == 1) { this->SendMsg(nullptr, 0x9C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } else { this->SendMsg(nullptr, 0x9D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x4B9: + case EFST_HANDICAPSTATE_SWOONING: if ((static_cast(e) << 32 | static_cast(d)) == 1) { this->SendMsg(nullptr, 0x9C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); g_effectMgr->Retire(this->render.accountId, 0x8C5); @@ -3966,7 +3968,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Retire(this->render.accountId, 0x8C5); } break; - case 0x4B7: + case EFST_HANDICAPSTATE_LASSITUDE: if ((static_cast(e) << 32 | static_cast(d)) == 1) { this->SendMsg(nullptr, 0x98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x8C4, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -3974,7 +3976,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, this->SendMsg(nullptr, 0x99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x4B8: + case EFST_HANDICAPSTATE_FROSTBITE: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x8DE, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else if (g_effectMgr->Has(this->render.accountId, 0x8DE)) { @@ -3989,20 +3991,20 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x4BA: + case EFST_HANDICAPSTATE_LIGHTNINGSTRIKE: g_effectMgr->Retire(this->render.accountId, 0x8DC); if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x8DC, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x4BB: + case EFST_HANDICAPSTATE_CRYSTALLIZATION: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x8E1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x8E1); } break; - case 0x4C0: + case EFST_HANDICAPSTATE_HOLYFLAME: if (on == true) { this->SendMsg(nullptr, 0x7F, 0, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x8C6, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4011,7 +4013,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } this->SetInstantValue(0xC, on); break; - case 0x4BC: + case EFST_HANDICAPSTATE_CONFLAGRATION: if (on == true) { this->SendMsg(nullptr, 0x7F, 0, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); g_effectMgr->Retire(this->render.accountId, 0x8DD); @@ -4022,14 +4024,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } this->SetInstantValue(0xD, on); break; - case 0x4BD: + case EFST_HANDICAPSTATE_MISFORTUNE: if (on == true) { this->SendMsg(nullptr, 0x9A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } else { this->SendMsg(nullptr, 0x9B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x4BE: + case EFST_HANDICAPSTATE_DEADLYPOISON: if (on == true) { this->SendMsg(nullptr, 0x7F, 0, 0xAA, 0, 0, 0, 0xAA, 0, 0, 0, 0, 0, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x8E2, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4039,7 +4041,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } this->SetInstantValue(0xE, on); break; - case 0x4BF: + case EFST_HANDICAPSTATE_DEPRESSION: if (on == true) { this->SendMsg(nullptr, 0x7F, 0, 0, 0, 0, 0, 0xFF, 0, 0, 0, 0, 0, 0, 0); } else { @@ -4047,7 +4049,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } this->SetInstantValue(0xF, on); break; - case 0x498: { + case EFST_DRAGONIC_AURA: { CGameActor* actor = this; if (actor->render.accountId != g_session.m_aid) { actor = static_cast(mode->scene->GetGameActorByAID(actor->render.accountId)); @@ -4063,7 +4065,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x4ce: { + case EFST_FIRST_BRAND: { if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x806, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* const second = g_effectMgr->Spawn(this->render.accountId, 0x803, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4080,7 +4082,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x4cf: { + case EFST_SECOND_BRAND: { if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x821, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* const second = g_effectMgr->Spawn(this->render.accountId, 0x81e, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4098,14 +4100,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } break; } - case 0x4a6: + case EFST_HOLY_OIL: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x7c7, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x7c7); } break; - case 0x4ad: + case EFST_MEDIALE: if (on == true) { if (!g_serviceOptions.Get(0xe5) && !g_effectMgr->Find(this->render.accountId, 0x712)) { g_effectMgr->Spawn(this->render.accountId, 0x712, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4114,27 +4116,27 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Retire(this->render.accountId, 0x712); } break; - case 0x47e: + case EFST_DEADLY_DEFEASANCE: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x6cd, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else if (CEffect* const effect = g_effectMgr->Find(this->render.accountId, 0x6cd)) { g_effectMgr->Retire(effect, 1); } break; - case 0x480: + case EFST_CLIMAX: g_effectMgr->Retire(this->render.accountId, 0x708); if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x708, this->render.position.x, this->render.position.y, this->render.position.z, 0, f, 0, 0); } break; - case 0x4d2: + case EFST_FIRST_FAITH_POWER: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x7b7, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x7b7); } break; - case 0x4d0: + case EFST_SECOND_JUDGE: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x7ba, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x7bd, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4143,7 +4145,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Retire(this->render.accountId, 0x7bd); } break; - case 0x4d1: + case EFST_THIRD_EXOR_FLAME: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x7be, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x7c1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4152,14 +4154,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Retire(this->render.accountId, 0x7c1); } break; - case 0x4dd: + case EFST_ABYSS_SLAYER: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x84e, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x84e); } break; - case 0x4d5: + case EFST_D_MACHINE: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x719, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); this->LaunchEffect(0x8f8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -4167,14 +4169,14 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Retire(effect, 1); } break; - case 0x4d4: + case EFST_A_MACHINE: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x72f, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x72f); } break; - case 0x4b1: + case EFST_COMPETENTIA: if (on == true) { if (!g_effectMgr->Find(this->render.accountId, 0x73d)) { g_effectMgr->Spawn(this->render.accountId, 0x73d, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4194,7 +4196,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, } } break; - case 0x4a0: + case EFST_CLIMAX_CRYIMP: if (on == true) { if (!g_effectMgr->Find(this->render.accountId, 0x743)) { g_effectMgr->Spawn(this->render.accountId, 0x743, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -4203,75 +4205,75 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Retire(this->render.accountId, 0x743); } break; - case 0x4ea: + case EFST_SOUNDBLEND: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x80c, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else if (CEffect* const effect = g_effectMgr->Find(this->render.accountId, 0x80c)) { g_effectMgr->Retire(effect, 1); } break; - case 0x4e2: + case EFST_WINDSIGN: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x76c, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x76c); } break; - case 0x4ac: + case EFST_E_SLASH_COUNT: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x779, this->render.position.x, this->render.position.y, this->render.position.z, 0, f, 0, 0); } else { g_effectMgr->Retire(this->render.accountId, 0x779); } break; - case 0x515: + case EFST_ELEMENTAL_VEIL: if (on == true) { this->LaunchEffect(0x2e8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } else if (this->HasId(0x2e8) == true) { this->SendMsg(nullptr, 109, 0, 0x2e8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x4e1: + case EFST_BO_HELL_DUSTY: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x8be, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x526: + case EFST_CLOUD_POISON: if (on == true) { this->LaunchEffect(0x8e5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } else if (this->HasId(0x8e5) == true) { this->SendMsg(nullptr, 109, 0, 0x8e5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x527: + case EFST_SPORE_EXPLOSION_DEBUFF: if (on == true) { this->LaunchEffect(0x8e6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } else if (this->HasId(0x8e6) == true) { this->SendMsg(nullptr, 109, 0, 0x8e6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x48a: - case 0x4ed: + case EFST_FIRM_FAITH: + case EFST_MUSICAL_INTERLUDE: if (on == true) { this->LaunchEffect(0x8f8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x488: + case EFST_POWERFUL_FAITH: if (on == true) { this->LaunchEffect(0x8f6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x4f7: + case EFST_SPELL_ENCHANTING: if (on == true) { this->LaunchEffect(0x8fa, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x4b0: + case EFST_PRE_ACIES: if (on == true) { this->LaunchEffect(0x8f0, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x53b: + case EFST_KILLING_AURA: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x8fe, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else { @@ -4279,21 +4281,21 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c, g_effectMgr->Spawn(this->render.accountId, 0x8ff, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x539: + case EFST_CURSE_R_CUBE: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x901, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else if (CEffect* const effect = g_effectMgr->Find(this->render.accountId, 0x901)) { static_cast(effect)->Restart(); } break; - case 0x53a: + case EFST_CURSE_B_CUBE: if (on == true) { g_effectMgr->Spawn(this->render.accountId, 0x902, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } else if (CEffect* const effect = g_effectMgr->Find(this->render.accountId, 0x902)) { static_cast(effect)->Restart(); } break; - case 0x698: + case EFST_BLOCK: if (on == true) { g_windowMgr.EnsureWindow(0x2730); } else { diff --git a/Source/Contents/Actors/GroundScope.cpp b/Source/Contents/Actors/GroundScope.cpp index 897d8e45e..eecdc15bb 100644 --- a/Source/Contents/Actors/GroundScope.cpp +++ b/Source/Contents/Actors/GroundScope.cpp @@ -1,4 +1,5 @@ #include "Contents/Actors/GroundScope.h" +#include "Contents/Skills/SkillId.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -42,80 +43,80 @@ bool CGroundScope::OnProcess() { // FUNCTION: fn_24267 int CGroundScope::SkillScopeType(int skillId) { switch (skillId) { - case 0x0B: - case 0x19: - case 0x2F: - case 0x45: - case 0x50: - case 0x56: - case 0x58: - case 0x6E: - case 0x81: - case 0x82: - case 0x89: - case 0x8C: - case 0x17D: - case 0x1E3: - case 0x8D5: + case MG_NAPALMBEAT: + case AL_PNEUMA: + case AC_SHOWER: + case PR_BENEDICTIO: + case WZ_FIREPILLAR: + case WZ_WATERBALL: + case WZ_FROSTNOVA: + case BS_HAMMERFALL: + case HT_BLITZBEAT: + case HT_DETECTING: + case AS_GRIMTOOTH: + case AS_VENOMDUST: + case SN_FALCONASSAULT: + case HW_GANBANTEIN: + case NC_ARMSCANNON: return 3; - case 0x11: - case 0x15: - case 0x46: - case 0x5B: - case 0x5C: - case 0x1E4: - case 0x302: - case 0x7D5: - case 0x7F0: - case 0x7FC: + case MG_FIREBALL: + case MG_THUNDERSTORM: + case PR_SANCTUARY: + case WZ_HEAVENDRIVE: + case WZ_QUAGMIRE: + case HW_GRAVITATION: + case NPC_GROUNDDRIVE: + case RK_WINDCUTTER: + case GC_POISONSMOKE: + case AB_EPICLESIS: return 5; - case 0x4F: - case 0x1DE: - case 0x2DD: - case 0x2E3: - case 0x8BD: - case 0x992: - case 0x994: - case 0x995: - case 0x996: - case 0x138E: - case 0x1395: - case 0x13A4: - case 0x13B2: - case 0x146B: - case 0x146D: - case 0x146E: - case 0x149F: + case PR_MAGNUS: + case CR_SLIMPITCHER: + case NPC_MAGMA_ERUPTION: + case NPC_CLOUD_KILL: + case RA_DETONATOR: + case SO_CLOUD_KILL: + case SO_WARMER: + case SO_VACUUM_EXTREME: + case SO_VARETYR_SPEAR: + case NC_MAGMA_ERUPTION: + case LG_KINGS_GRACE: + case SU_CN_METEOR: + case SU_CN_METEOR2: + case AG_TORNADO_STORM: + case AG_FLORAL_FLARE_ROAD: + case AG_ASTRAL_STRIKE: + case CD_PNEUMATICUS_PROCELLA: return 7; - case 0x53: - case 0x59: - case 0x2D3: - case 0x2DB: - case 0x301: - case 0x7D8: - case 0x8D4: - case 0x98E: - case 0x138C: - case 0x1462: - case 0x1466: - case 0x14C7: - case 0x14F9: - case 0x14FA: - case 0x14FB: - case 0x14FC: - case 0x14FD: + case WZ_METEOR: + case WZ_STORMGUST: + case NPC_STORMGUST2: + case NPC_DRAGONBREATH: + case NPC_RAINOFMETEOR: + case RK_DRAGONBREATH: + case NC_COLDSLOWER: + case SO_EARTHGRAVE: + case RK_DRAGONBREATH_WATER: + case AG_VIOLENT_QUAKE: + case AG_ALL_BLOOM: + case ABC_ABYSS_STRIKE: + case EM_DIAMOND_STORM: + case EM_LIGHTNING_LAND: + case EM_VENOM_SWAMP: + case EM_CONFLAGRATION: + case EM_TERRA_DRIVE: return 9; - case 0x55: - case 0x1461: + case WZ_VERMILION: + case AG_MYSTERY_ILLUSION: return 11; - case 0x2C4: - case 0x8A5: + case NPC_COMET: + case WL_COMET: return 18; - case 0x149E: + case CD_COMPETENTIA: return 19; - case 0x2E0: - case 0x98F: - case 0x991: + case NPC_PSYCHIC_WAVE: + case SO_DIAMONDDUST: + case SO_PSYCHIC_WAVE: return -2; default: return CSkillActionMgr::GetInstance()->GetSkillScopeType(skillId); diff --git a/Source/Contents/Actors/Player.cpp b/Source/Contents/Actors/Player.cpp index 1cfd39de3..2cdd179a1 100644 --- a/Source/Contents/Actors/Player.cpp +++ b/Source/Contents/Actors/Player.cpp @@ -1,4 +1,6 @@ #include "Contents/Actors/Pc.h" +#include "Contents/Effects/EffectTypes.h" +#include "Contents/Skills/SkillUnitId.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -1531,43 +1533,43 @@ void CPc::SetSprHead(int value) { int CPc::MapMotion(int motion) { int mapped = motion; switch (this->GetEffectiveJob(-1)) { - case 6: - case 0xFA7: - case 0xFBD: + case JT_THIEF: + case JT_THIEF_H: + case JT_THIEF_B: if (motion == 8 || motion == 6 || motion == 7) { mapped = 2; } break; - case 0xC: - case 0x11: - case 0xFAD: - case 0xFB2: - case 0xFC3: - case 0xFC8: - case 0xFDB: - case 0xFE1: - case 0xFE8: - case 0xFEF: - case 0x1005: - case 0x100C: - case 0x109E: + case JT_ASSASSIN: + case JT_ROGUE: + case JT_ASSASSIN_H: + case JT_ROGUE_H: + case JT_ASSASSIN_B: + case JT_ROGUE_B: + case JT_GUILLOTINE_CROSS: + case JT_GUILLOTINE_CROSS_H: + case JT_SHADOW_CHASER: + case JT_SHADOW_CHASER_H: + case JT_GUILLOTINE_CROSS_B: + case JT_SHADOW_CHASER_B: + case JT_SHADOW_CROSS: if (motion == 8 || motion == 7) { mapped = 2; } else if (motion == 6 && ( - this->GetEffectiveJob(-1) == 0x11 || this->GetEffectiveJob(-1) == 0xFB2 || this->GetEffectiveJob(-1) == 0xFC8 + this->GetEffectiveJob(-1) == JT_ROGUE || this->GetEffectiveJob(-1) == JT_ROGUE_H || this->GetEffectiveJob(-1) == JT_ROGUE_B )) { mapped = 1; } break; - case 2: - case 9: - case 0x10: - case 0xFA3: - case 0xFAA: - case 0xFB1: - case 0xFB9: - case 0xFC0: - case 0xFC7: + case JT_MAGICIAN: + case JT_WIZARD: + case JT_SAGE: + case JT_MAGICIAN_H: + case JT_WIZARD_H: + case JT_SAGE_H: + case JT_MAGICIAN_B: + case JT_WIZARD_B: + case JT_SAGE_B: if (motion == 5) { mapped = 10; } @@ -2315,11 +2317,11 @@ void CPc::Render(int argument) { } if (this->render.unknown_0070 == 6) { switch (this->GetEffectiveJob(-1)) { - case 0xFD0: - case 0x108E: - case 0x1093: - case 0x1094: - case 0x10DC: + case JT_STAR2: + case JT_STAR2_B: + case JT_STAR2_EMPEROR: + case JT_STAR2_EMPEROR_B: + case JT_SKY_EMPEROR2: this->DrawShadow(argument, this->render.scale); break; } @@ -2466,13 +2468,13 @@ void CPc::SetSprAct2(int first, int second, int third, int fourth, int fifth, in if (!StateFlag12(eleventh) && !StateFlag16(eleventh) && !StateFlag18(eleventh) && !StateFlag27(eleventh) && !StateFlag28(eleventh) && this->unknown_03DC != 1 && this->unknown_02CC == 0) { switch (this->GetEffectiveJob(-1)) { - case 0xC: - case 0xFAD: - case 0xFC3: - case 0xFDB: - case 0xFE1: - case 0x1005: - case 0x109E: + case JT_ASSASSIN: + case JT_ASSASSIN_H: + case JT_ASSASSIN_B: + case JT_GUILLOTINE_CROSS: + case JT_GUILLOTINE_CROSS_H: + case JT_GUILLOTINE_CROSS_B: + case JT_SHADOW_CROSS: this->SetSprWeapon2(fourth, fifth); break; default: @@ -3118,8 +3120,8 @@ void CPlayer::UpdatePendingAction() { if (reinterpret_cast(this->unknown_04F8) == cellX && this->unknown_04FC == cellY) { return; } - if (this->render.unknown_0070 == 2 && skill->GetEffectiveJob(-1) != 141 && skill->GetEffectiveJob(-1) != 143 && - skill->GetEffectiveJob(-1) != 152) { + if (this->render.unknown_0070 == 2 && skill->GetEffectiveJob(-1) != UNT_ICEWALL && skill->GetEffectiveJob(-1) != UNT_BLASTMINE && + skill->GetEffectiveJob(-1) != UNT_CLAYMORETRAP) { return; } this->unknown_04FC = cellY; @@ -3129,16 +3131,16 @@ void CPlayer::UpdatePendingAction() { } switch (skill->GetEffectiveJob(-1)) { - case 141: - case 143: - case 152: - case 218: - case 222: - case 230: - case 20852: - case 20853: - case 20854: - case 20855: + case UNT_ICEWALL: + case UNT_BLASTMINE: + case UNT_CLAYMORETRAP: + case UNT_REVERBERATION: + case UNT_NETHERWORLD: + case UNT_WALLOFTHORN: + case UNT_DEEPBLINDTRAP: + case UNT_SOLIDTRAP: + case UNT_SWIFTTRAP: + case UNT_FLAMETRAP: if (this->unknown_052C == 0) { if (this->unknown_0510 == 2) { this->SendMsg(nullptr, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -3194,87 +3196,87 @@ void CPlayer::ReapplySkillEffects() { const int argument4 = it->unknown_0010; switch (type) { - case 0x2: { + case EFST_TWOHANDQUICKEN: { CRagEffect* effect = this->LaunchEffect(0xA6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 0xFFFF, 0x82, 0, 0, 0); } break; } - case 0xA1: { + case EFST_ONEHANDQUICKEN: { CRagEffect* effect = this->LaunchEffect(0xA6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 0xFFFF, 0x82, 0, 0, 0); } break; } - case 0xCF: { + case EFST_NJ_BUNSINJYUTSU: { CRagEffect* effect = this->LaunchEffect(0x269, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 0xFFFF, 0x269, 0, 0, 0); } break; } - case 0x19: { + case EFST_OVERTHRUST: { CRagEffect* effect = this->LaunchEffect(0xA6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 0xFFFF, 0x80, 0, 0, 0); } break; } - case 0xBC: { + case EFST_OVERTHRUSTMAX: { CRagEffect* effect = this->LaunchEffect(0xA6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 0xFFFF, 0x80, 0, 0, 0); } break; } - case 0x1F: { + case EFST_ENERGYCOAT: { CRagEffect* effect = this->LaunchEffect(0xA6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 0xFFFF, 0xA9, 0, 0, 0); } break; } - case 0x44: { + case EFST_SPEARQUICKEN: { CRagEffect* effect = this->LaunchEffect(0xA6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 0xFFFF, 0xFA, 0, 0, 0); } break; } - case 0x56: + case EFST_EXPLOSIONSPIRITS: this->LaunchEffect(0xCB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x57: + case EFST_STEELBODY: this->LaunchEffect(0xFE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); this->LaunchEffect(0x46C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0xA5: - case 0xA6: - case 0xA7: + case EFST_SG_SUN_WARM: + case EFST_SG_MOON_WARM: + case EFST_SG_STAR_WARM: this->LaunchEffect(0x1A2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); this->LaunchEffect(0x220, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x99: + case EFST_KAITE: this->LaunchEffect(0x1A3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x67: + case EFST_AURABLADE: this->LaunchEffect(0x1DA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x6B: + case EFST_BERSERK: this->LaunchEffect(0x170, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x69: + case EFST_LKCONCENTRATION: this->LaunchEffect(0x171, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x71: + case EFST_MAGICPOWER: this->LaunchEffect(0x17E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x7B: + case EFST_MOON: this->LaunchEffect(0x18A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x98: { + case EFST_DEVIL1: { CSkillInfo skill = g_session.m_skillBundle.Lookup(0x1B9); int effectId = skill.level; if (effectId > 0) { @@ -3298,28 +3300,28 @@ void CPlayer::ReapplySkillEffects() { this->unknown_0544 = this->LaunchEffect(0xA4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0x95: + case EFST_SOULLINK: g_weatherEffect.StartDarken(); this->LaunchEffect(0x1A8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x61: + case EFST_PROPERTYUNDEAD: this->LaunchEffect(0x28F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0xA0: + case EFST_SKE: g_weatherEffect.StartDarken(); break; - case 0xE8: + case EFST_DAURA: this->LaunchEffect(0x1A2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); this->LaunchEffect(0x220, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0xEB: + case EFST_DBARRIER: this->LaunchEffect(0xFE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); this->LaunchEffect(0x46C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x107: + case EFST_DA_CONTRACT: this->LaunchEffect(0x24A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x15E: { + case EFST_DUPLELIGHT: { while (this->HasId(0x341)) { this->SendMsg(nullptr, 109, 0, 0x341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3330,13 +3332,13 @@ void CPlayer::ReapplySkillEffects() { } break; } - case 0x14A: + case EFST_ORATIO: this->LaunchEffect(0x2F3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1D0: + case EFST_BLOOD_SUCKER: this->LaunchEffect(0x170, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1BD: { + case EFST_STRIKING: { while (this->HasId(0x39D)) { this->SendMsg(nullptr, 109, 0, 0x39D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3346,36 +3348,36 @@ void CPlayer::ReapplySkillEffects() { } break; } - case 0x148: + case EFST_VENOMIMPRESS: this->LaunchEffect(0x314, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x15F: + case EFST_FROSTMISTY: this->LaunchEffect(0x315, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1B5: + case EFST_COLD: this->LaunchEffect(0x3AC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x168: + case EFST_CAMOUFLAGE: this->LaunchEffect(0x2E8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x18A: + case EFST_SHADOWFORM: this->LaunchEffect(0x329, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1A6: + case EFST_MANHOLE: g_soundMgr->PlayWave("effect\\manhole.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); this->LaunchEffect(0x337, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x17B: + case EFST_STEALTHFIELD: this->LaunchEffect(0x2E8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x10A: + case EFST_CRYSTAL: this->LaunchEffect(0x2A1, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x16B: - case 0x16C: - case 0x16D: - case 0x16E: - case 0x16F: + case EFST_SUMMON1: + case EFST_SUMMON2: + case EFST_SUMMON3: + case EFST_SUMMON4: + case EFST_SUMMON5: if (!tetraBall) { CTetraBallEffect* ball; for (int id = 0x4EE; id <= 0x4F1; ++id) { @@ -3421,7 +3423,7 @@ void CPlayer::ReapplySkillEffects() { } } break; - case 0x153: + case EFST_ROLLINGCUTTER: if (value < 10) { if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(this->render.accountId, value + 0x5BA, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -3430,72 +3432,72 @@ void CPlayer::ReapplySkillEffects() { } } break; - case 0x1C4: + case EFST_MELODYOFSINK: if (this->HasId(0x57) == true) { this->SendMsg(nullptr, 109, 0, 0x57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x57, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1C5: + case EFST_BEYOND_OF_WARCRY: if (this->HasId(0x31F) == true) { this->SendMsg(nullptr, 109, 0, 0x31F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x31F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1C0: + case EFST_SATURDAY_NIGHT_FEVER: if (this->HasId(0x360) == true) { this->SendMsg(nullptr, 109, 0, 0x360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x360, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x23B: + case EFST_EQUIPED_FLOOR: this->SendMsg(nullptr, 110, 0, 0x23B, 0, 1, 0, value, value >> 31, 0, 0, 0, 0, 0, 0); break; - case 0x265: + case EFST_ALL_RIDING: this->SetRiding(1); this->SetSprJob(this->GetEffectiveJob(-1)); this->SetBodyPalette(this->render.unknown_0048); break; - case 0x2A1: + case EFST_ON_PUSH_CART: this->SendMsg(nullptr, 110, 0, type, type >> 31, 1, 0, g_session.unknown_5C1C, g_session.unknown_5C1C >> 31, 0, 0, 0, 0, 0, 0); break; - case 0x2CD: + case EFST_TELEKINESIS_INTENSE: while (this->HasId(0x418)) { this->SendMsg(this, 109, 0, 0x418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x418, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2DF: + case EFST_WIDEWEB: while (this->HasId(0x194)) { this->SendMsg(this, 109, 0, 0x194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x194, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2E1: + case EFST_BURNT: while (this->HasId(0x41E)) { this->SendMsg(this, 109, 0, 0x41E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x41E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2E0: + case EFST_CHILL: while (this->HasId(0x41F)) { this->SendMsg(this, 109, 0, 0x41F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x41F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2CC: + case EFST_OFFERTORIUM: while (this->HasId(0x421)) { this->SendMsg(this, 109, 0, 0x421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x421, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x291: + case EFST_ZANGETSU: while (this->HasId(0x3EB)) { this->SendMsg(this, 109, 0, 0x3EB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x3EB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x293: + case EFST_GENSOU: g_effectMgr->Retire(this->render.accountId, 0x3ED); if (g_effectMgr->HasAllocator(0x3ED)) { CEffect* orb = g_effectMgr->Spawn(this->render.accountId, 0x3ED, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -3508,25 +3510,25 @@ void CPlayer::ReapplySkillEffects() { } this->LaunchEffect(0x3C3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x290: + case EFST_KAGEMUSYA: while (this->HasId(0x3EC)) { this->SendMsg(nullptr, 109, 0, 0x3EC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } this->LaunchEffect(0x3EC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2F8: + case EFST_ANTI_M_BLAST: g_effectMgr->Retire(this->render.accountId, 0x470); if (g_effectMgr->HasAllocator(0x470) == true) { g_effectMgr->Spawn(this->render.accountId, 0x470, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x2A3: + case EFST_FLOWER_LEAF: g_effectMgr->Retire(this->render.accountId, 0x3F5); if (g_effectMgr->HasAllocator(0x3F5) == true) { g_effectMgr->Spawn(this->render.accountId, 0x3F5, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x2DA: + case EFST_DARKCROW: while (this->HasId(0x410)) { this->SendMsg(nullptr, 109, 0, 0x410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3534,8 +3536,8 @@ void CPlayer::ReapplySkillEffects() { this->LaunchEffect(0x410, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); this->LaunchEffect(0x410, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x14E: - case 0x365: { + case EFST_HALLUCINATIONWALK: + case EFST_NPC_HALLUCINATIONWALK: { while (this->HasId(0x318)) { this->SendMsg(nullptr, 109, 0, 0x318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3545,115 +3547,115 @@ void CPlayer::ReapplySkillEffects() { } break; } - case 0x6E: - case 0x1D9: - case 0x461: + case EFST_ASSUMPTIO: + case EFST_ASSUMPTIO2: + case EFST_ASSUMPTIO_BUFF: this->LaunchEffect(0x177, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x3A9: + case EFST_SPRITEMABLE: g_effectMgr->Retire(this->render.accountId, 0x448); if (g_effectMgr->HasAllocator(0x448) == true) { g_effectMgr->Spawn(this->render.accountId, 0x448, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x3A5: + case EFST_SUHIDE: this->SetState(0x30, 1); this->render.isMotionFreezed = true; break; - case 0x397: + case EFST_TUNAPARTY: g_effectMgr->Retire(this->render.accountId, 0x449); if (g_effectMgr->HasAllocator(0x449) == true) { g_effectMgr->Spawn(this->render.accountId, 0x449, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x380: + case EFST_SV_ROOTTWIST: g_effectMgr->Retire(this->render.accountId, 0x456); if (g_effectMgr->HasAllocator(0x456) == true) { g_effectMgr->Spawn(this->render.accountId, 0x456, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x395: + case EFST_BITESCAR: g_effectMgr->Retire(this->render.accountId, 0x45F); if (g_effectMgr->HasAllocator(0x45F) == true) { g_effectMgr->Spawn(this->render.accountId, 0x45F, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x3D6: + case EFST_SOULATTACK: this->unknown_04D8[0] = 1; break; - case 0x3F8: - case 0x3F9: - case 0x3FA: - case 0x3FB: - case 0x3FC: - case 0x3FD: - case 0x3FE: - case 0x3FF: - case 0x400: - case 0x401: + case EFST_IMMUNE_PROPERTY_NOTHING: + case EFST_IMMUNE_PROPERTY_WATER: + case EFST_IMMUNE_PROPERTY_GROUND: + case EFST_IMMUNE_PROPERTY_FIRE: + case EFST_IMMUNE_PROPERTY_WIND: + case EFST_IMMUNE_PROPERTY_POISON: + case EFST_IMMUNE_PROPERTY_SAINT: + case EFST_IMMUNE_PROPERTY_DARKNESS: + case EFST_IMMUNE_PROPERTY_TELEKINESIS: + case EFST_IMMUNE_PROPERTY_UNDEAD: g_effectMgr->Spawn(this->render.accountId, type + 0x87, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x41A: + case EFST_GRAVITYCONTROL: if (g_effectMgr->Has(this->render.accountId, 0x4B1) == true) { g_effectMgr->Retire(this->render.accountId, 0x4B1); } g_effectMgr->Spawn(this->render.accountId, 0x4B1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_soundMgr->PlayWave("effect\\t_캐스팅.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x410: + case EFST_SUNSTANCE: if (g_effectMgr->Has(this->render.accountId, 0x4BE) == true) { g_effectMgr->Retire(this->render.accountId, 0x4BE); } g_effectMgr->Spawn(this->render.accountId, 0x4BE, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x40E: + case EFST_LUNARSTANCE: if (g_effectMgr->Has(this->render.accountId, 0x4BF) == true) { g_effectMgr->Retire(this->render.accountId, 0x4BF); } g_effectMgr->Spawn(this->render.accountId, 0x4BF, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x413: + case EFST_STARSTANCE: if (g_effectMgr->Has(this->render.accountId, 0x4C0) == true) { g_effectMgr->Retire(this->render.accountId, 0x4C0); } g_effectMgr->Spawn(this->render.accountId, 0x4C0, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x40F: + case EFST_UNIVERSESTANCE: if (g_effectMgr->Has(this->render.accountId, 0x4C1) == true) { g_effectMgr->Retire(this->render.accountId, 0x4C1); } g_effectMgr->Spawn(this->render.accountId, 0x4C1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x411: + case EFST_FLASHKICK: if (g_effectMgr->Has(this->render.accountId, 0x4C5) == true) { g_effectMgr->Retire(this->render.accountId, 0x4C5); } g_effectMgr->Spawn(this->render.accountId, 0x4C5, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x41F: + case EFST_SOULUNITY: if (g_effectMgr->Has(this->render.accountId, 0x4C6) == true) { g_effectMgr->Retire(this->render.accountId, 0x4C6); } g_effectMgr->Spawn(this->render.accountId, 0x4C6, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_soundMgr->PlayWave("effect\\t_바람방출.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x420: - case 0x421: - case 0x422: - case 0x423: + case EFST_SOULSHADOW: + case EFST_SOULFAIRY: + case EFST_SOULFALCON: + case EFST_SOULGOLEM: g_weatherEffect.StartDarken(); this->LaunchEffect(0x1A8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x466: + case EFST_SOUND_OF_DESTRUCTION: g_effectMgr->Retire(this->render.accountId, 0x66C); g_effectMgr->Spawn(this->render.accountId, 0x66C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x47E: + case EFST_DEADLY_DEFEASANCE: if (!g_effectMgr->Has(this->render.accountId, 0x6CD)) { g_effectMgr->Spawn(this->render.accountId, 0x6CD, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x4B5: + case EFST_HANDICAPSTATE_DEEPBLIND: if (this->HasId(0x14E) == true) { this->SendMsg(nullptr, 109, 0, 0x14E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -3662,82 +3664,82 @@ void CPlayer::ReapplySkillEffects() { this->SendMsg(nullptr, 109, 0, 0xA4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->unknown_0544 = this->LaunchEffect(0xA4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x4B6: - case 0x4B9: + case EFST_HANDICAPSTATE_DEEPSILENCE: + case EFST_HANDICAPSTATE_SWOONING: this->SendMsg(nullptr, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 0x4B7: + case EFST_HANDICAPSTATE_LASSITUDE: this->SendMsg(nullptr, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 0x4B8: + case EFST_HANDICAPSTATE_FROSTBITE: g_effectMgr->Spawn(this->render.accountId, 0x8DE, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x8E0, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x4BA: + case EFST_HANDICAPSTATE_LIGHTNINGSTRIKE: g_effectMgr->Retire(this->render.accountId, 0x8DC); g_effectMgr->Spawn(this->render.accountId, 0x8DC, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x4BB: + case EFST_HANDICAPSTATE_CRYSTALLIZATION: g_effectMgr->Spawn(this->render.accountId, 0x8E1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x4BC: + case EFST_HANDICAPSTATE_CONFLAGRATION: this->SendMsg(nullptr, 127, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); g_effectMgr->Retire(this->render.accountId, 0x8DD); g_effectMgr->Spawn(this->render.accountId, 0x8DD, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x4BD: + case EFST_HANDICAPSTATE_MISFORTUNE: this->SendMsg(nullptr, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 0x4BE: + case EFST_HANDICAPSTATE_DEADLYPOISON: this->SendMsg(nullptr, 127, 0, 170, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0); break; - case 0x4BF: + case EFST_HANDICAPSTATE_DEPRESSION: this->SendMsg(nullptr, 127, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0); break; - case 0x4C0: + case EFST_HANDICAPSTATE_HOLYFLAME: this->SendMsg(nullptr, 127, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 0x498: + case EFST_DRAGONIC_AURA: g_effectMgr->Retire(this->render.accountId, 0x6BE); g_effectMgr->Retire(this->render.accountId, 0x6BF); g_effectMgr->Spawn(this->render.accountId, 0x6BE, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x6BF, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x480: + case EFST_CLIMAX: if (!g_effectMgr->Has(this->render.accountId, 0x708)) { g_effectMgr->Spawn(this->render.accountId, 0x708, this->render.position.x, this->render.position.y, this->render.position.z, 0, value, 0, 0); } break; - case 0x4AD: + case EFST_MEDIALE: if (!g_serviceOptions.Get(0xE5) && !g_effectMgr->Has(this->render.accountId, 0x712)) { g_effectMgr->Spawn(this->render.accountId, 0x712, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x4DD: + case EFST_ABYSS_SLAYER: if (!g_effectMgr->Has(this->render.accountId, 0x84E)) { g_effectMgr->Spawn(this->render.accountId, 0x84E, this->render.position.x, this->render.position.y, this->render.position.z, 0, value, 0, 0); } break; - case 0x4D2: + case EFST_FIRST_FAITH_POWER: g_effectMgr->Spawn(this->render.accountId, 0x7B7, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x4D0: + case EFST_SECOND_JUDGE: g_effectMgr->Spawn(this->render.accountId, 0x7BA, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x7BD, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x4D1: + case EFST_THIRD_EXOR_FLAME: g_effectMgr->Spawn(this->render.accountId, 0x7BE, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x7C1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x4D5: + case EFST_D_MACHINE: if (!g_effectMgr->Has(this->render.accountId, 0x719)) { g_effectMgr->Spawn(this->render.accountId, 0x719, this->render.position.x, this->render.position.y, this->render.position.z, 0, value, 0, 0); } break; - case 0x4D4: + case EFST_A_MACHINE: g_effectMgr->Spawn(this->render.accountId, 0x72F, this->render.position.x, this->render.position.y, this->render.position.z, 0, value, 0, 0); break; - case 0x4B1: + case EFST_COMPETENTIA: if (!g_serviceOptions.Get(0xE5) && !g_effectMgr->Has(this->render.accountId, 0x73C)) { g_effectMgr->Spawn(this->render.accountId, 0x73C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } @@ -3745,27 +3747,27 @@ void CPlayer::ReapplySkillEffects() { g_effectMgr->Spawn(this->render.accountId, 0x73D, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x4E2: + case EFST_WINDSIGN: if (!g_effectMgr->Has(this->render.accountId, 0x76C)) { g_effectMgr->Spawn(this->render.accountId, 0x76C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x4AC: + case EFST_E_SLASH_COUNT: if (!g_effectMgr->Has(this->render.accountId, 0x779)) { g_effectMgr->Spawn(this->render.accountId, 0x779, this->render.position.x, this->render.position.y, this->render.position.z, 0, value, 0, 0); } break; - case 0x48D: + case EFST_HELLS_PLANT_ARMOR: if (!this->HasId(0x64A)) { this->LaunchEffect(0x64A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x4EA: + case EFST_SOUNDBLEND: if (!g_effectMgr->Has(this->render.accountId, 0x80C)) { g_effectMgr->Spawn(this->render.accountId, 0x80C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x4DC: + case EFST_ABYSSFORCEWEAPON: if (!g_effectMgr->Has(this->render.accountId, 0x83D)) { CEffect* abyss = g_effectMgr->Spawn(this->render.accountId, 0x83D, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); if (abyss) { @@ -3773,46 +3775,46 @@ void CPlayer::ReapplySkillEffects() { } } break; - case 0x526: + case EFST_CLOUD_POISON: if (!this->HasId(0x8E5)) { this->LaunchEffect(0x8E5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x527: + case EFST_SPORE_EXPLOSION_DEBUFF: if (!this->HasId(0x8E6)) { this->LaunchEffect(0x8E6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x698: + case EFST_BLOCK: g_windowMgr.EnsureWindow(0x2730); break; - case 0x4A6: - case 0x4CE: - case 0x4CF: + case EFST_HOLY_OIL: + case EFST_FIRST_BRAND: + case EFST_SECOND_BRAND: break; - case 0x288: - case 0x289: + case EFST_EQUIPPED_DIVINE_ARMOR: + case EFST_EQUIPPED_HOLY_ARMOR: this->SendMsg(nullptr, 110, 0, type, type >> 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; default: switch (type) { - case 0x2A2: - case 0x2CE: - case 0x2CF: - case 0x2D8: - case 0x30B: - case 0x336: - case 0x337: - case 0x339: - case 0x33A: - case 0x351: - case 0x359: - case 0x35F: - case 0x360: - case 0x368: + case EFST_HAT_EFFECT: + case EFST_MOONSTAR: + case EFST_STRANGELIGHTS: + case EFST_SUPER_STAR: + case EFST_DECORATION_OF_MUSIC: + case EFST_FLOWERSMOKE: + case EFST_FSTONE: + case EFST_QSCARABA: + case EFST_LJOSALFAR: + case EFST_HAPPINESS_STAR: + case EFST_MAPLE_FALLS: + case EFST_MERMAID_LONGING: + case EFST_MAGICAL_FEATHER: + case EFST_TIME_ACCESSORY: this->SendMsg(nullptr, 110, 0, type, type >> 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 0x37F: + case EFST_HEAD_EQUIPMENT_EFFECT: this->ApplyEffectState(value + 0x9B5, true); break; default: @@ -4405,11 +4407,11 @@ void CPc::SetState(int state, int resetPosition) { CGameActor::SetState(0, resetPosition); if (g_session.m_aid == this->render.accountId) { switch (g_session.m_job) { - case 0xFCF: - case 0x1082: - case 0x108F: - case 0x1091: - case 0x10CE: + case JT_STAR: + case JT_STAR_B: + case JT_STAR_EMPEROR: + case JT_STAR_EMPEROR_B: + case JT_SKY_EMPEROR: if (static_cast(g_modeMgr.GetGameMode())->camera->camera.desiredDistance > g_serviceOptionJitterScale) { static_cast(g_modeMgr.GetGameMode())->camera->camera.desiredDistance = g_serviceOptionJitterScale; } @@ -4459,22 +4461,22 @@ void CPc::SetState(int state, int resetPosition) { return; } this->SetAction(action, 6, 1); - if (this->GetEffectiveJob(-1) == 0xFB4 || this->GetEffectiveJob(-1) == 0xFB5 || this->GetEffectiveJob(-1) == 0xFAF || - this->GetEffectiveJob(-1) == 0xFE2 || this->GetEffectiveJob(-1) == 0xFE9 || this->GetEffectiveJob(-1) == 0xF || - this->GetEffectiveJob(-1) == 0xFB0 || this->GetEffectiveJob(-1) == 0xFC6 || this->GetEffectiveJob(-1) == 0xFE6 || - this->GetEffectiveJob(-1) == 0xFED || this->GetEffectiveJob(-1) == 0x100A || this->GetEffectiveJob(-1) == 0x10A6) { + if (this->GetEffectiveJob(-1) == JT_BARD_H || this->GetEffectiveJob(-1) == JT_DANCER_H || this->GetEffectiveJob(-1) == JT_CRUSADER_H || + this->GetEffectiveJob(-1) == JT_ROYAL_GUARD || this->GetEffectiveJob(-1) == JT_ROYAL_GUARD_H || this->GetEffectiveJob(-1) == JT_MONK || + this->GetEffectiveJob(-1) == JT_MONK_H || this->GetEffectiveJob(-1) == JT_MONK_B || this->GetEffectiveJob(-1) == JT_SURA || + this->GetEffectiveJob(-1) == JT_SURA_H || this->GetEffectiveJob(-1) == JT_SURA_B || this->GetEffectiveJob(-1) == JT_INQUISITOR) { this->SetSequenceInterval(4); this->SetFrameSequence(0x60, 0, 0, 0x60, 0, 1, 400, 0); - } else if (this->GetEffectiveJob(-1) == 0x19) { + } else if (this->GetEffectiveJob(-1) == JT_NINJA) { this->SetSequenceInterval(4); this->SetFrameSequence(0x60, 2, 5, 0x60, 5, 1, 1000, 0); - } else if (this->GetEffectiveJob(-1) == 0x18) { + } else if (this->GetEffectiveJob(-1) == JT_GUNSLINGER) { this->SetSequenceInterval(4); this->SetFrameSequence(0x60, 0, 3, 0x60, 3, 1, 1000, 0); - } else if (this->GetEffectiveJob(-1) == 0x107E) { + } else if (this->GetEffectiveJob(-1) == JT_NINJA_B) { this->SetSequenceInterval(4); this->SetFrameSequence(0x60, 2, 5, 0x60, 5, 1, 1000, 0); - } else if (this->GetEffectiveJob(-1) == 0x1084) { + } else if (this->GetEffectiveJob(-1) == JT_GUNSLINGER_B) { this->SetSequenceInterval(4); this->SetFrameSequence(0x60, 0, 3, 0x60, 3, 1, 1000, 0); } @@ -4499,18 +4501,18 @@ void CPc::SetState(int state, int resetPosition) { int attackState; switch (this->GetEffectiveJob(-1)) { - case 0xFCE: - case 0xFCF: - case 0xFD0: - case 0x1081: - case 0x1082: - case 0x108E: - case 0x108F: - case 0x1091: - case 0x1093: - case 0x1094: - case 0x10CE: - case 0x10DC: + case JT_TAEKWON: + case JT_STAR: + case JT_STAR2: + case JT_TAEKWON_B: + case JT_STAR_B: + case JT_STAR2_B: + case JT_STAR_EMPEROR: + case JT_STAR_EMPEROR_B: + case JT_STAR2_EMPEROR: + case JT_STAR2_EMPEROR_B: + case JT_SKY_EMPEROR: + case JT_SKY_EMPEROR2: if (std::max(rand() % 10, 0) < 7) { weaponAllowed = true; attackState = 9; @@ -5102,29 +5104,29 @@ void CPc::SendMsg( int effectId; switch (this->unknown_04D0) { - case 0xFAC: + case JT_HUNTER_H: effectId = 0x17; break; - case 0xFC2: + case JT_HUNTER_B: effectId = 0x18; break; - case 0xFD2: + case JT_GANGSI: effectId = 0x20; break; - case 0xFD3: + case JT_DEATHKNIGHT: effectId = 0x21; break; - case 0xFD4: + case JT_COLLECTOR: effectId = 0x22; break; - case 0xFD8: - case 0xFDE: - case 0x1002: - case 0x10F1: + case JT_RANGER: + case JT_RANGER_H: + case JT_RANGER_B: + case JT_RANGER_2ND: effectId = 0x35; break; - case 0x10A1: - case 0x10B6: + case JT_WINDHAWK: + case JT_WOLF_WINDHAWK: effectId = 0x45; break; default: @@ -5145,21 +5147,21 @@ void CPc::SendMsg( int effectId; switch (this->unknown_04D0) { - case 0xFD8: - case 0xFDE: - case 0xFF4: - case 0xFF5: + case JT_RANGER: + case JT_RANGER_H: + case JT_WOLF_RANGER: + case JT_WOLF_RANGER_H: effectId = 0x23; break; - case 0x1002: - case 0x100F: + case JT_RANGER_B: + case JT_WOLF_RANGER_B: effectId = 0x2A; break; - case 0x10A1: - case 0x10B6: + case JT_WINDHAWK: + case JT_WOLF_WINDHAWK: effectId = 0x46; break; - case 0x10F1: + case JT_RANGER_2ND: effectId = g_session.IsBabyJob(this->GetEffectiveJob(-1)) == true ? 0x2A : 0x23; break; default: diff --git a/Source/Contents/Actors/RenderObject.cpp b/Source/Contents/Actors/RenderObject.cpp index a25049dff..a3ada83b5 100644 --- a/Source/Contents/Actors/RenderObject.cpp +++ b/Source/Contents/Actors/RenderObject.cpp @@ -1,4 +1,6 @@ #include "Contents/Actors/Npc.h" +#include "Contents/Combat/CombatTypes.h" +#include "Contents/Skills/SkillId.h" #include "Contents/Actors/GrannyGameActor.h" #include "Contents/Actors/RenderObject.h" #include "ActorPickNode.h" @@ -997,16 +999,16 @@ void CGameActor::PlayGroundSkillEffect(int sender, const int* skill, int argumen this->hitTargetAid = 0; switch (skillId) { - case 0x53: - case 0x301: - case 0x306: - case 0x13A4: - case 0x13B2: - case 0x1463: - case 0x1467: - case 0x1468: - case 0x146F: - case 0x1474: { + case WZ_METEOR: + case NPC_RAINOFMETEOR: + case NPC_LOCKON_LASER_ATK: + case SU_CN_METEOR: + case SU_CN_METEOR2: + case AG_VIOLENT_QUAKE_ATK: + case AG_ALL_BLOOM_ATK: + case AG_ALL_BLOOM_ATK2: + case AG_ASTRAL_STRIKE_ATK: + case AG_CRIMSON_ARROW_ATK: { CActRes* action = this->GetActRes(); this->render.previousAnimation = 0x58; this->render.curMotion = action->FrameCount(0x58) - 1; @@ -1032,85 +1034,85 @@ void CGameActor::PlayGroundSkillEffect(int sender, const int* skill, int argumen vector3d position{x, height, z}; switch (skillId) { - case 0x15: + case MG_THUNDERSTORM: mode->LaunchDummyEffect(&position, 0x1E, EffectLifetime(0x1E) + 10, 0); break; - case 0x45: - case 0x2B6: + case PR_BENEDICTIO: + case ALL_ANGEL_PROTECT: mode->LaunchDummyEffect(&position, 0x5B, EffectLifetime(0x5B) + 10, 0); break; - case 0x46: + case PR_SANCTUARY: mode->LaunchDummyEffect(&position, 0x53, EffectLifetime(0x53) + 10, 0); break; - case 0x4F: + case PR_MAGNUS: mode->LaunchDummyEffect(&position, 0x71, EffectLifetime(0x71) + 10, 0); break; - case 0x53: + case WZ_METEOR: if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(0, 0x48B, position.x, position.y, position.z, 0, -1, 0, 0); } else { mode->LaunchDummyEffect(&position, 0x5C, EffectLifetime(0x5C) + 10, 0); } break; - case 0x55: + case WZ_VERMILION: if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(0, 0x48A, position.x, position.y, position.z, 0, -1, 0, 0); } else { mode->LaunchDummyEffect(&position, 0x5A, EffectLifetime(0x5A) + 10, 0); } break; - case 0x57: + case WZ_ICEWALL: mode->LaunchDummyEffect(&position, 0x4A, EffectLifetime(0x4A) + 10, 0); break; - case 0x59: - case 0x2D3: { + case WZ_STORMGUST: + case NPC_STORMGUST2: { const int effect = g_serviceOptions.Get(0xE5) ? 0x2C4 : 0x59; mode->LaunchDummyEffect(&position, effect, EffectLifetime(0x59) + 10, 0); break; } - case 0x5B: + case WZ_HEAVENDRIVE: mode->LaunchDummyEffect(&position, 0x8E, EffectLifetime(0x8E) + 10, 0); break; - case 0x5C: + case WZ_QUAGMIRE: if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(0, 0x489, position.x, position.y, position.z, 0, -1, 0, 0); } else { mode->LaunchDummyEffect(&position, 0x5F, EffectLifetime(0x5F) + 10, 0); } break; - case 0x6E: + case BS_HAMMERFALL: mode->LaunchDummyEffect(&position, 0x66, EffectLifetime(0x66) + 10, 0); break; - case 0x6F: - case 0x1CB: + case BS_ADRENALINE: + case BS_ADRENALINE2: mode->LaunchDummyEffect(&position, 0x62, EffectLifetime(0x62) + 10, 0); break; - case 0x73: + case HT_SKIDTRAP: mode->LaunchDummyEffect(&position, 0x45, EffectLifetime(0x45) + 10, 0); break; - case 0x82: + case HT_DETECTING: mode->LaunchDummyEffect(&position, 0x77, EffectLifetime(0x77) + 10, 0); if (this->unknown_037C[0] != 0) { const int address = reinterpret_cast(&position); reinterpret_cast(this->unknown_037C[0])->SendMsg(nullptr, 0x1D, 0, address, address >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 0x8C: + case AS_VENOMDUST: mode->LaunchDummyEffect(&position, 0x7C, EffectLifetime(0x7C) + 10, 0); break; - case 0x11D: + case SA_VOLCANO: mode->LaunchDummyEffect(&position, 0xE1, EffectLifetime(0xE1) + 10, 0); break; - case 0x11E: + case SA_DELUGE: mode->LaunchDummyEffect(&position, 0xEC, EffectLifetime(0xEC) + 10, 0); break; - case 0x11F: + case SA_VIOLENTGALE: mode->LaunchDummyEffect(&position, 0xED, EffectLifetime(0xED) + 10, 0); break; - case 0x120: + case SA_LANDPROTECTOR: mode->LaunchDummyEffect(&position, 0xEE, EffectLifetime(0xEE) + 10, 0); break; - case 0x1DE: { + case CR_SLIMPITCHER: { g_soundMgr->PlayWave("assulter_attack.wav", 0.0f, -150.0f, 0.0f, 250, 40, 1.0f, 0); int effect; if (level < 6) { @@ -1123,50 +1125,50 @@ void CGameActor::PlayGroundSkillEffect(int sender, const int* skill, int argumen mode->LaunchDummyEffect(&position, effect, EffectLifetime(effect) + 10, 0); break; } - case 0x1E3: + case HW_GANBANTEIN: g_soundMgr->PlayWave("effect\\EF_FireWall.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); mode->LaunchDummyEffect(&position, 0xDF, EffectLifetime(0xDF) + 10, 0); break; - case 0x1E4: + case HW_GRAVITATION: mode->LaunchDummyEffect(&position, 0x20A, 0x104, 0); g_soundMgr->PlayWave("effect\\wizard_earthspike.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x1EB: + case CR_CULTIVATION: this->LaunchEffect(0x3A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x209: + case GS_GROUNDDRIFT: g_soundMgr->PlayWave("effect\\그라운드.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x21A: + case NJ_SUITON: g_soundMgr->PlayWave("effect\\수둔.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x2C6: + case NPC_ICEEXPLO: this->LaunchEffect(0x87, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\ef_frostdiver.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x2CD: + case NPC_MAXPAIN_ATK: this->LaunchEffect(0x408, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2DD: - case 0x138E: + case NPC_MAGMA_ERUPTION: + case NC_MAGMA_ERUPTION: mode->LaunchDummyEffect(&position, 0x66, EffectLifetime(0x66) + 10, 0); break; - case 0x2E1: - case 0x911: + case NPC_RAYOFGENESIS: + case LG_RAYOFGENESIS: g_effectMgr->Spawn(0, 0x590, position.x, position.y, position.z, 0, -1, 0, 0); g_soundMgr->PlayWave("effect\\LG_RAYOFGENESIS.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x301: { + case NPC_RAINOFMETEOR: { const float raised = height + 25.0f; g_effectMgr->Spawn(0, 0x4E7, x, raised, z, 0, -1, 0, 0); g_effectMgr->Spawn(0, 0x4E6, x, raised, z, 0, -1, 0, 0); g_soundMgr->PlayWave("effect\\wizard_meteor.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x302: + case NPC_GROUNDDRIVE: mode->LaunchDummyEffect(&position, 0x577, EffectLifetime(0x577) + 10, 0); break; - case 0x306: { + case NPC_LOCKON_LASER_ATK: { CEffect* effect = g_effectMgr->Spawn(0, 0x426, position.x, position.y, position.z, 0, -1, 0, 0); if (effect != nullptr) { using SetFloat = void (CEffect::*)(float); @@ -1175,14 +1177,14 @@ void CGameActor::PlayGroundSkillEffect(int sender, const int* skill, int argumen } break; } - case 0x8D4: { + case NC_COLDSLOWER: { CRagEffect* effect = this->LaunchEffect(0x317, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect != nullptr) { effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; } - case 0x98F: + case SO_DIAMONDDUST: g_soundMgr->PlayWave("effect\\wl_jackfrost.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(0, 0x5AA, position.x, position.y, position.z, 0, level, 0, 0); @@ -1192,27 +1194,27 @@ void CGameActor::PlayGroundSkillEffect(int sender, const int* skill, int argumen g_effectMgr->Spawn(0, 0x503, position.x, position.y, position.z, 0, level, 0, 0); } break; - case 0xA0B: + case RL_HAMMER_OF_GOD: g_effectMgr->Spawn(0, 0x426, position.x, position.y, position.z, 0, -1, 0, 0); break; - case 0x13A4: + case SU_CN_METEOR: g_effectMgr->Spawn(0, 0x452, position.x, position.y, position.z, 0, -1, 0, 0); break; - case 0x13B2: + case SU_CN_METEOR2: g_effectMgr->Spawn(0, 0x458, position.x, position.y, position.z, 0, -1, 0, 0); break; - case 0x1463: + case AG_VIOLENT_QUAKE_ATK: g_effectMgr->Spawn(0, 0x6E0, position.x, position.y, position.z, 0, -1, 0, 0); break; - case 0x1465: - case 0x146B: - case 0x146D: + case AG_STRANTUM_TREMOR: + case AG_TORNADO_STORM: + case AG_FLORAL_FLARE_ROAD: this->SetFrameSequence(0x60, 1, 3, 0x60, 3, 1, 500, 0); break; - case 0x1467: + case AG_ALL_BLOOM_ATK: g_effectMgr->Spawn(0, 0x706, position.x, position.y, position.z, 0, -1, 0, 0); break; - case 0x14C7: { + case ABC_ABYSS_STRIKE: { g_effectMgr->Spawn(0, 0x827, position.x, position.y, position.z, 0, -1, 0, 0); g_effectMgr->Spawn(0, 0x828, position.x, position.y, position.z, 0, -1, 0, 0); CEffect* effect = g_effectMgr->Spawn(0, 0x82B, position.x, position.y, position.z, 0, -1, 0, 0); @@ -1225,13 +1227,13 @@ void CGameActor::PlayGroundSkillEffect(int sender, const int* skill, int argumen } break; } - case 0x14C9: + case ABC_ABYSS_SQUARE: this->SetFrameSequence(0x60, 0, 0, 0x60, 0, 1, 500, 0); break; - case 0x14D3: - case 0x14D4: - case 0x14D5: - case 0x14D7: + case WH_DEEPBLINDTRAP: + case WH_SOLIDTRAP: + case WH_SWIFTTRAP: + case WH_FLAMETRAP: this->SetFrameSequence(0x18, 0, 2, 0x60, 2, 1, 500, 0); break; } @@ -2280,139 +2282,139 @@ void CGameActor::ShowPartyMemberEffect(std::uint32_t accountId) { void CGameActor::LaunchAttackProjectile(int target, float scale) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); switch (this->GetEffectiveJob(-1)) { - case 0x3F8: - case 0x4A5: - case 0x4E5: - case 0x4EA: - case 0x4FC: - case 0x502: - case 0x505: - case 0x582: - case 0x584: - case 0x58C: - case 0x5AD: - case 0x5AF: - case 0x5C1: - case 0x5D7: - case 0x5DA: - case 0x5DC: - case 0x5FB: - case 0x60E: - case 0x613: - case 0x680: - case 0x681: - case 0x682: - case 0x683: - case 0x698: - case 0x749: - case 0x7E5: - case 0x93C: - case 0x9AB: - case 0xF2A: - case 0x1781: - case 0x1782: - case 0x1783: - case 0x1784: - case 0x1785: - case 0x1786: - case 0x1787: - case 0x1788: - case 0x1789: - case 0x178A: - case 0x4F32: - case 0x4F33: - case 0x4F37: - case 0x4F90: - case 0x505F: - case 0x5062: - case 0x5069: - case 0x5173: - case 0x5410: - case 0x5455: - case 0x55D2: - case 0x55E1: - case 0x55F1: { + case JT_ARCHER_SKELETON: + case JT_ORC_ARCHER: + case JT_GARGOYLE: + case JT_GOBLIN_ARCHER: + case JT_RAYDRIC_ARCHER: + case JT_KOBOLD_ARCHER: + case JT_ARCHER_GUARDIAN: + case JT_LIVE_PEACH_TREE: + case JT_EVIL_CLOUD_HERMIT: + case JT_G_ARCHER_SKELETON: + case JT_G_RAYDRIC_ARCHER: + case JT_G_KOBOLD_ARCHER: + case JT_G_ORC_ARCHER: + case JT_STONE_SHOOTER: + case JT_WOOTAN_SHOOTER: + case JT_PARASITE: + case JT_G_EVIL_CLOUD_HERMIT: + case JT_G_LIVE_PEACH_TREE: + case JT_G_PARASITE: + case JT_POTON_CANON: + case JT_POTON_CANON_1: + case JT_POTON_CANON_2: + case JT_POTON_CANON_3: + case JT_LADY_TANEE: + case JT_RAGGED_ZOMBIE: + case JT_PHYLLA: + case JT_PETAL: + case JT_MG_CORRUPTION_ROOT: + case JT_E_MD_NYAILO: + case JT_MER_ARCHER01: + case JT_MER_ARCHER02: + case JT_MER_ARCHER03: + case JT_MER_ARCHER04: + case JT_MER_ARCHER05: + case JT_MER_ARCHER06: + case JT_MER_ARCHER07: + case JT_MER_ARCHER08: + case JT_MER_ARCHER09: + case JT_MER_ARCHER10: + case JT_ILL_STONE_SHOOTER: + case JT_ILL_WOOTAN_SHOOTER: + case JT_G_ILL_WOOTAN_SHOOTER: + case JT_RAYDRIC_ARCHER_H: + case JT_MD_C_CORRUPTION_ROOT: + case JT_MD_C_RAYDRIC_ARCHER: + case JT_MD_C_RAY_ARCHER_G: + case JT_SUMMON_HELLTREE: + case JT_EP19_LIMACINA: + case JT_G_EP19_LIMACINA: + case JT_EP20_MELIBE_ICESLUG: + case JT_EP20_RGAN_WARLOCK: + case JT_G_EP20_RGAN_WARLOCK: { using SpawnArrow = void (CGameMode::*)(const vector3d*, int, float, int); const SpawnArrow spawn = reinterpret_cast(&CGameMode::SpawnArrowEffect); (mode->*spawn)(&this->render.position, target, scale, this->GetEffectiveJob(-1)); return; } - case 0x3FC: - case 0x42C: - case 0x6A8: - case 0x6AD: - case 0x6F5: - case 0x75C: - case 0x75E: - case 0x7A5: - case 0x7A6: - case 0x7A7: - case 0x7A8: - case 0x7A9: - case 0x7C4: + case JT_MANDRAGORA: + case JT_HYDRA: + case JT_THA_ODIUM: + case JT_G_THA_ODIUM: + case JT_DROSERA: + case JT_MAVKA: + case JT_G_MAVKA: + case JT_ENTWEIHEN: + case JT_G_ENTWEIHEN_R: + case JT_G_ENTWEIHEN_H: + case JT_G_ENTWEIHEN_M: + case JT_G_ENTWEIHEN_S: + case JT_NEPENTHES: case 0xE94: case 0xECF: case 0x500B: - case 0x5172: - case 0x55BB: - case 0x5759: - case 0x575C: - case 0x577B: - case 0x577C: - case 0x5781: - case 0x5782: - case 0x5784: - case 0x5788: - case 0x578D: - case 0x5796: - case 0x57B2: - case 0x57D2: - case 0x57D3: { + case JT_SUMMON_CREEPER: + case JT_DEDSERA: + case JT_EP21_YORTUS_B: + case JT_EP21_B_YORTUS_B: + case JT_MEDJED: + case JT_CP_MEDJED: + case JT_HEKA: + case JT_CP_HEKA: + case JT_GUIDE_OF_DEAD: + case JT_E_SMART_ANDRE: + case JT_EP21_YORTUS_B_H: + case JT_EP21_B_YORTUS_B_H: + case JT_CH1_FIRE_FLOWER: + case JT_CH1_SHADIEST: + case JT_CP_CH1_SHADIEST: { using SpawnMandra = void (CGameMode::*)(int, int, float); const SpawnMandra spawn = reinterpret_cast(&CGameMode::SpawnMandraAttack); (mode->*spawn)(target, this->GetEffectiveJob(-1), 0.0f); return; } - case 0x51C8: - case 0x523C: - case 0x569F: - case 0x56A0: - case 0x56B5: - case 0x56B6: - case 0x56B7: - case 0x56BC: - case 0x56C6: - case 0x56C7: - case 0x56C8: - case 0x56CA: - case 0x56CB: - case 0x56D2: - case 0x56D3: - case 0x56D8: - case 0x56DA: - case 0x56DB: - case 0x56E5: - case 0x56E6: - case 0x56F0: - case 0x5732: - case 0x5736: - case 0x5737: - case 0x5752: - case 0x5753: - case 0x5757: - case 0x575E: - case 0x576F: - case 0x5770: - case 0x5790: - case 0x5792: - case 0x5794: - case 0x57C0: - case 0x57C3: - case 0x57C4: - case 0x57EE: - case 0x57F8: - case 0x5800: - case 0x5812: + case JT_DISGUISER: + case JT_G_DISGUISER: + case JT_MD_PRI_RIGEL_AC: + case JT_MD_PRI_RIGEL_ACS: + case JT_SPIRIT_B_FLAME_M: + case JT_SPIRIT_B_FLAME_L: + case JT_SPIRIT_B_FLAME_SL: + case JT_SPIRIT_I_WATER_S: + case JT_SPIRIT_C_FLAME_L: + case JT_SPIRIT_C_FLAME_SL: + case JT_SPIRIT_H_WATER_S: + case JT_SPIRIT_H_WATER_L: + case JT_SPIRIT_H_WATER_SL: + case JT_SPIRIT_R_FLAME_L: + case JT_SPIRIT_R_FLAME_SL: + case JT_SPIRIT_C_WATER_S: + case JT_SPIRIT_C_WATER_L: + case JT_SPIRIT_C_WATER_SL: + case JT_VR_MD_DREGG1: + case JT_VR_MD_DREGG2: + case JT_BIO_ICE_GARGOYLE: + case JT_EP21_YORKER_B: + case JT_EP21_YOSTER_D: + case JT_EP21_YOSTER_E: + case JT_EP21_YORMI_B: + case JT_EP21_YORDOS_A: + case JT_EP21_YOSCOPUS_B: + case JT_G_EP21_YORDOS_A: + case JT_VIOLEN: + case JT_CP_VIOLEN: + case JT_EP21_YORDOS_A_H: + case JT_EP21_YORMI_B_H: + case JT_EP21_YOSCOPUS_B_H: + case JT_CH1_SHADOW_JAILER: + case JT_CH1_SCABIOSA: + case JT_CH1_LOBELIA: + case JT_CH1_RA: + case JT_CH1_MI: + case JT_CH1_RA_1: + case JT_CH1_MI_1: LaunchBulletSpriteEffect(&this->render.position, target, scale, this->GetEffectiveJob(-1)); return; default: @@ -3651,19 +3653,19 @@ void CGameActor::ProcessHitMessage(CGameObject*, const ActorHitInfo* info, int, hitCount = 1; } - if (type != 8 && type != 9 && type != 13) { + if (type != DMG_MULTI_HIT && type != DMG_MULTI_HIT_ENDURE && type != DMG_MULTI_HIT_CRITICAL) { hitCount = 1; } damage /= hitCount; switch (type) { - case 0: - case 4: - case 8: - case 9: - case 10: - case 11: - case 13: { + case DMG_NORMAL: + case DMG_ENDURE: + case DMG_MULTI_HIT: + case DMG_MULTI_HIT_ENDURE: + case DMG_CRITICAL: + case DMG_LUCY_DODGE: + case DMG_MULTI_HIT_CRITICAL: { if (this->unknown_0178 != 0) { CRagEffect* effect = this->LaunchEffect(0x83, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect != nullptr) { @@ -3679,29 +3681,29 @@ void CGameActor::ProcessHitMessage(CGameObject*, const ActorHitInfo* info, int, this->Face(x, z); unsigned delay = static_cast(this->unknown_0378 * this->render.speed * 24.0f); - if (this->GetEffectiveJob(-1) == 0x3F8 || this->GetEffectiveJob(-1) == 0x58C) { + if (this->GetEffectiveJob(-1) == JT_ARCHER_SKELETON || this->GetEffectiveJob(-1) == JT_G_ARCHER_SKELETON) { delay += 0xC0; - } else if (this->GetEffectiveJob(-1) == 0x505 || this->GetEffectiveJob(-1) == 0x726) { + } else if (this->GetEffectiveJob(-1) == JT_ARCHER_GUARDIAN || this->GetEffectiveJob(-1) == JT_BOW_GUARDIAN) { delay += 0x390; - } else if (this->GetEffectiveJob(-1) == 0x506 || this->GetEffectiveJob(-1) == 0x725 || this->GetEffectiveJob(-1) == 0x507) { + } else if (this->GetEffectiveJob(-1) == JT_KNIGHT_GUARDIAN || this->GetEffectiveJob(-1) == JT_SWORD_GUARDIAN || this->GetEffectiveJob(-1) == JT_SOLDIER_GUARDIAN) { delay += 0x198; } int flag = -1; int action; switch (type) { - case 4: - case 9: + case DMG_ENDURE: + case DMG_MULTI_HIT_ENDURE: action = 0x27; break; - case 10: + case DMG_CRITICAL: action = 0x5D; flag = 1; break; - case 11: + case DMG_LUCY_DODGE: action = this->unknown_0178 != 0 ? 0x1A : 0x5E; break; - case 13: + case DMG_MULTI_HIT_CRITICAL: action = 0x94; flag = 1; break; @@ -3716,24 +3718,24 @@ void CGameActor::ProcessHitMessage(CGameObject*, const ActorHitInfo* info, int, int effectId = 0; switch (this->GetEffectiveJob(-1)) { - case 0xFCE: - case 0xFCF: - case 0xFD0: - case 0x1081: - case 0x1082: - case 0x108E: - case 0x108F: - case 0x1090: - case 0x1091: - case 0x1092: - case 0x1093: - case 0x10CE: - case 0x10CF: - case 0x10DC: + case JT_TAEKWON: + case JT_STAR: + case JT_STAR2: + case JT_TAEKWON_B: + case JT_STAR_B: + case JT_STAR2_B: + case JT_STAR_EMPEROR: + case JT_SOUL_REAPER: + case JT_STAR_EMPEROR_B: + case JT_SOUL_REAPER_B: + case JT_STAR2_EMPEROR: + case JT_SKY_EMPEROR: + case JT_SOUL_ASCETIC: + case JT_SKY_EMPEROR2: effectId = 0x1B2; break; - case 0x576F: - case 0x5770: + case JT_VIOLEN: + case JT_CP_VIOLEN: effectId = 0x974; break; } @@ -3819,13 +3821,13 @@ void CGameActor::ProcessHitMessage(CGameObject*, const ActorHitInfo* info, int, } break; } - case 1: + case DMG_PICKUP_ITEM: this->SetState(5, 1); return; - case 2: + case DMG_SIT_DOWN: this->SetState(6, 1); return; - case 3: + case DMG_STAND_UP: this->SetState(0, 1); return; } @@ -3950,36 +3952,36 @@ void C3dGrannyGameActor::Unused7950(int) { // FUNCTION: fn_21197 bool CGameActor::IsSkillWithoutAction(int skillId) { switch (skillId) { - case 0x00B: - case 0x02F: - case 0x111: - case 0x19D: - case 0x2DC: - case 0x8D2: - case 0x8EC: - case 0x903: - case 0x90D: - case 0x918: - case 0x919: - case 0x91C: - case 0x921: - case 0x9AC: - case 0x9D7: - case 0xA10: - case 0xBBE: - case 0xBBF: - case 0x13A2: - case 0x13B6: - case 0x146E: - case 0x1473: - case 0x147B: - case 0x147C: - case 0x147D: - case 0x1480: - case 0x1484: - case 0x14A3: - case 0x14A4: - case 0x14C4: + case MG_NAPALMBEAT: + case AC_SHOWER: + case MO_COMBOFINISH: + case TK_STORMKICK: + case NPC_FATALMENACE: + case NC_VULCANARM: + case SC_STARTMARK: + case LG_CANNONSPEAR: + case LG_OVERBRAND: + case SR_EARTHSHAKER: + case SR_FALLENEMPIRE: + case SR_RAMPAGEBLASTER: + case SR_WINDMILL: + case GN_CART_TORNADO: + case LG_OVERBRAND_BRANDISH: + case SJ_FULLMOONKICK: + case KO_BAKURETSU: + case KO_HAPPOKUNAI: + case SU_SV_STEMSPEAR: + case SU_SVG_SPIRIT: + case AG_ASTRAL_STRIKE: + case AG_CRIMSON_ARROW: + case IQ_MASSIVE_F_BLASTER: + case IQ_EXPOSION_BLASTER: + case IQ_FIRST_BRAND: + case IQ_SECOND_FLAME: + case IQ_THIRD_FLAME_BOMB: + case CD_PETITIO: + case CD_FRAMEN: + case ABC_CHAIN_REACTION_SHOT: return true; } @@ -4451,94 +4453,94 @@ void CGameActor::UpdateMaxLevelAura() { void CGameActor::SetActorJob(int job) { this->unknown_025C = job; if (job < 0xfaf) { - if (job == 0xfae) { + if (job == JT_CHICKEN_H) { this->unknown_025C = 0xfa8; - } else if (job == 0xd) { + } else if (job == JT_CHICKEN) { this->unknown_025C = 7; - } else if (job == 0x15) { + } else if (job == JT_CHICKEN2) { this->unknown_025C = 0xe; } } else if (job < 0x10b7) { - if (job == 0x10b6) { + if (job == JT_WOLF_WINDHAWK) { this->unknown_025C = 0x10a1; } else { switch (job) { - case 0xfb6: + case JT_CHICKEN2_H: this->unknown_025C = 0xfaf; break; - case 0xfc4: + case JT_CHICKEN_B: this->unknown_025C = 0xfbe; break; - case 0xfcc: + case JT_CHICKEN2_B: this->unknown_025C = 0xfc5; break; - case 0xfd0: + case JT_STAR2: this->unknown_025C = 0xfcf; break; - case 0xff0: - case 0xff8: - case 0xffa: - case 0xffc: - case 0xffe: + case JT_RUNE_CHICKEN: + case JT_RUNE_CHICKEN2: + case JT_RUNE_CHICKEN3: + case JT_RUNE_CHICKEN4: + case JT_RUNE_CHICKEN5: this->unknown_025C = 0xfd6; break; - case 0xff1: - case 0xff9: - case 0xffb: - case 0xffd: - case 0xfff: + case JT_RUNE_CHICKEN_H: + case JT_RUNE_CHICKEN2_H: + case JT_RUNE_CHICKEN3_H: + case JT_RUNE_CHICKEN4_H: + case JT_RUNE_CHICKEN5_H: this->unknown_025C = 0xfdc; break; - case 0xff2: + case JT_ROYAL_CHICKEN: this->unknown_025C = 0xfe2; break; - case 0xff3: + case JT_ROYAL_CHICKEN_H: this->unknown_025C = 0xfe9; break; - case 0xff4: + case JT_WOLF_RANGER: this->unknown_025C = 0xfd8; break; - case 0xff5: + case JT_WOLF_RANGER_H: this->unknown_025C = 0xfde; break; - case 0xff6: + case JT_MADOGEAR: this->unknown_025C = 0xfda; break; - case 0xff7: + case JT_MADOGEAR_H: this->unknown_025C = 0xfe0; break; - case 0x100d: + case JT_RUNE_CHICKEN_B: this->unknown_025C = 0x1000; break; - case 0x100e: + case JT_ROYAL_CHICKEN_B: this->unknown_025C = 0x1006; break; - case 0x100f: + case JT_WOLF_RANGER_B: this->unknown_025C = 0x1002; break; - case 0x1010: + case JT_MADOGEAR_B: this->unknown_025C = 0x1004; break; - case 0x108e: + case JT_STAR2_B: this->unknown_025C = 0x1082; break; - case 0x1094: + case JT_STAR2_EMPEROR_B: this->unknown_025C = 0x1091; break; } } } else { switch (job) { - case 0x10b7: + case JT_MEISTER_MADOGEAR: this->unknown_025C = 0x109d; break; - case 0x10b8: + case JT_DRAGON_KNIGHT_CHICKEN: this->unknown_025C = 0x109c; break; - case 0x10b9: + case JT_IMPERIAL_GUARD_CHICKEN: this->unknown_025C = 0x10a2; break; - case 0x10dc: + case JT_SKY_EMPEROR2: this->unknown_025C = 0x10ce; break; } @@ -5059,7 +5061,7 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef if (previousBodyState != this->bodyState) { switch (previousBodyState) { - case 1: { + case OPT1_STONE: { const vector3d& player = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player)->render.position; g_soundMgr->PlayWave( "_stone_explosion.wav", this->render.position.x - player.x, 0.0f, this->render.position.z - player.z, 250, 40, 1.0f, 0 @@ -5067,7 +5069,7 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef static_cast(g_modeMgr.GetGameMode())->unknown_02CC = 0; break; } - case 2: { + case OPT1_FREEZE: { this->SendMsg(nullptr, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->SendMsg(nullptr, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); const vector3d& player = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player)->render.position; @@ -5083,18 +5085,18 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef static_cast(g_modeMgr.GetGameMode())->unknown_02CC = 0; break; } - case 3: + case OPT1_STUN: this->SendMsg(nullptr, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); static_cast(g_modeMgr.GetGameMode())->unknown_02CC = 0; break; - case 4: + case OPT1_SLEEP: this->SendMsg(nullptr, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); static_cast(g_modeMgr.GetGameMode())->unknown_02CC = 0; break; - case 7: + case OPT1_BURNING: this->SendMsg(nullptr, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 8: + case OPT1_IMPRISON: while (this->HasId(802)) { this->SendMsg(nullptr, 109, 0, 802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } @@ -5104,7 +5106,7 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef } switch (this->bodyState) { - case 1: + case OPT1_STONE: this->render.isMotionFinished = true; this->render.isMotionFreezed = true; this->render.unknown_00A3 = 1; @@ -5112,7 +5114,7 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef color[2] = 0x40; color[0] = 0x40; break; - case 2: + case OPT1_FREEZE: this->SendMsg(nullptr, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); this->render.isMotionFinished = true; this->render.isMotionFreezed = true; @@ -5127,7 +5129,7 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef ); } break; - case 3: + case OPT1_STUN: this->SendMsg(nullptr, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); if (notify) { const vector3d& player = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player)->render.position; @@ -5136,19 +5138,19 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef ); } break; - case 4: + case OPT1_SLEEP: this->SendMsg(nullptr, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 6: + case OPT1_STONEWAIT: this->render.unknown_00A3 = 1; color[1] = 0x80; color[2] = 0x80; color[0] = 0x80; break; - case 7: + case OPT1_BURNING: this->SendMsg(nullptr, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 8: + case OPT1_IMPRISON: if (!this->HasId(802)) { this->LaunchEffect(802, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -5257,11 +5259,11 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef } } - if (this->bodyState == 0) { + if (this->bodyState == OPT1_NONE) { this->render.isMotionFreezed = false; } - if ((this->unknown_02C4 & 0x83) == 0 && this->bodyState != 2 && this->bodyState != 1 && this->bodyState != 6 && + if ((this->unknown_02C4 & 0x83) == 0 && this->bodyState != OPT1_FREEZE && this->bodyState != OPT1_STONE && this->bodyState != OPT1_STONEWAIT && static_cast(this->GetInstant(3)) != 1 && static_cast(this->GetInstant(12)) != 1 && static_cast(this->GetInstant(13)) != 1 && static_cast(this->GetInstant(14)) != 1 && static_cast(this->GetInstant(15)) != 1) { @@ -5301,7 +5303,7 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i hitCount = 1; } - const int level = skillId != 56 ? info->level : hitCount; + const int level = skillId != KN_PIERCE ? info->level : hitCount; const int damage = info->damage / hitCount; this->hitTargetAid = info->targetAid; @@ -5334,22 +5336,22 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i static_cast(target)->GetEffectiveJob(-1); } - if (type != 8 && type != 9 && type != 13) { + if (type != DMG_MULTI_HIT && type != DMG_MULTI_HIT_ENDURE && type != DMG_MULTI_HIT_CRITICAL) { hitCount = 1; } - if (skillId == 2288 || skillId == 5316 || skillId == 5322 || CSkillActionMgr::GetInstance()->SuppressAttackSkillArrow(skillId)) { + if (skillId == SC_TRIANGLESHOT || skillId == ABC_CHAIN_REACTION_SHOT || skillId == ABC_FRENZY_SHOT || CSkillActionMgr::GetInstance()->SuppressAttackSkillArrow(skillId)) { this->SetArrowEffectSuppressed(true); } switch (type) { - case 4: - case 5: - case 6: - case 8: - case 9: - case 13: - case 14: + case DMG_ENDURE: + case DMG_SPLASH: + case DMG_SINGLE: + case DMG_MULTI_HIT: + case DMG_MULTI_HIT_ENDURE: + case DMG_MULTI_HIT_CRITICAL: + case DMG_SPLASH_ENDURE: break; default: return; @@ -5357,8 +5359,8 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i ActorDamageMessage message; const int address = reinterpret_cast(&message); - if (type == 5) { - if (skillId == 2284 || skillId == 732) { + if (type == DMG_SPLASH) { + if (skillId == SC_STARTMARK || skillId == NPC_FATALMENACE) { this->SetAnimationSpeed(static_cast(attackSpeed) / 432.0f * 4.0f); } @@ -5370,26 +5372,26 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i int effect = -1; int followEffect = -1; switch (skillId) { - case 5215: - case 5225: - case 5226: - case 5234: - case 5235: - case 5236: - case 5237: - case 5241: - case 5244: - case 5245: - case 5294: - case 5295: - case 5296: - case 5298: - case 5314: - case 5319: - case 5329: - case 5383: - case 5384: - case 5385: + case AG_DESTRUCTIVE_HURRICANE: + case AG_CRYSTAL_IMPACT: + case AG_CRYSTAL_IMPACT_ATK: + case AG_STORM_CANNON: + case AG_CRIMSON_ARROW: + case AG_CRIMSON_ARROW_ATK: + case AG_FROZEN_SLASH: + case IQ_OLEUM_SANCTUM: + case IQ_EXPOSION_BLASTER: + case IQ_FIRST_BRAND: + case SHC_FATAL_SHADOW_CROW: + case MT_AXE_STOMP: + case MT_RUSH_QUAKE: + case MT_A_MACHINE: + case ABC_ABYSS_DAGGER: + case ABC_ABYSS_STRIKE: + case WH_HAWKBOOMERANG: + case ABC_FROM_THE_ABYSS_ATK: + case NPC_BO_THROWROCK: + case NPC_BO_WOODEN_ATTACK: effect = g_session.FindUnknown0708(skillId); followEffect = g_session.FindUnknown0700(skillId); break; @@ -5412,10 +5414,10 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i target->SendMsg(this, 0x1B, 0, address, address >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return; } - } else if (skillId == 2450 || skillId == 739 || skillId == 5030 || skillId == 2477) { + } else if (skillId == SO_CLOUD_KILL || skillId == NPC_CLOUD_KILL || skillId == SU_SV_ROOTTWIST_ATK || skillId == GN_CARTCANNON) { return; } - } else if (type == 14) { + } else if (type == DMG_SPLASH_ENDURE) { g_session.PlaySkillEffect(skillId, hitCount, this, static_cast(target)); if (target != nullptr) { if (!this->IsSkillWithoutAction(skillId)) { @@ -5437,7 +5439,7 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i target->SendMsg(this, 0x1B, 0, address, address >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return; } - } else if (skillId == 2450 || skillId == 739) { + } else if (skillId == SO_CLOUD_KILL || skillId == NPC_CLOUD_KILL) { return; } } @@ -5445,29 +5447,29 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i int castEffect; int motion; g_session.GetSkillActionInfo2(skillId, castEffect, motion); - if (skillId != 2256 && skillId != 2257 && skillId != 490 && skillId != 3009 && !CSkillActionMgr::GetInstance()->KeepSkillAttackSpeed(skillId)) { + if (skillId != NC_BOOSTKNUCKLE && skillId != NC_PILEBUNKER && skillId != CR_ACIDDEMONSTRATION && skillId != KO_HUUMARANKA && !CSkillActionMgr::GetInstance()->KeepSkillAttackSpeed(skillId)) { this->SetModifyFactorOfmotionSpeed(attackSpeed); } bool keepMotion; switch (skillId) { - case 143: - case 263: - case 271: - case 272: - case 273: - case 371: - case 2317: - case 2326: - case 2328: - case 2329: - case 2519: - case 2579: - case 5382: + case NV_TRICKDEAD: + case MO_TRIPLEATTACK: + case MO_EXTREMITYFIST: + case MO_CHAINCOMBO: + case MO_COMBOFINISH: + case CH_TIGERFIST: + case LG_OVERBRAND: + case SR_DRAGONCOMBO: + case SR_EARTHSHAKER: + case SR_FALLENEMPIRE: + case LG_OVERBRAND_BRANDISH: + case SJ_NEWMOONKICK: + case ABC_CHAIN_REACTION_SHOT_ATK: keepMotion = true; break; - case 2261: - keepMotion = type == 8; + case NC_ARMSCANNON: + keepMotion = type == DMG_MULTI_HIT; break; default: keepMotion = CSkillActionMgr::GetInstance()->KeepSkillAttackMotion(skillId, type); @@ -5484,7 +5486,7 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i } } - if (type != 5) { + if (type != DMG_SPLASH) { g_session.PlaySkillEffect(skillId, hitCount, this, static_cast(target)); } @@ -5495,19 +5497,19 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i const vector3d player = reinterpret_cast(mode->scene->player)->render.position; switch (skillId) { - case 8601: + case ABR_BATTLE_BUSTER: g_soundMgr->PlayWave( "effect\\MT_SUMMON_ABR_BATTLE_WARIOR.wav", this->render.position.x - player.x, this->render.position.y, this->render.position.z - player.z, 250, 40, 1.0f, 0 ); break; - case 8602: + case ABR_DUAL_CANNON_FIRE: g_soundMgr->PlayWave( "effect\\MT_SUMMON_ABR_DUAL_CANNON.wav", this->render.position.x - player.x, this->render.position.y, this->render.position.z - player.z, 250, 40, 1.0f, 0 ); break; - case 8605: + case ABR_INFINITY_BUSTER: g_soundMgr->PlayWave( "effect\\MT_SUMMON_ABR_INFINITY.wav", this->render.position.x - player.x, this->render.position.y, this->render.position.z - player.z, 250, 40, 1.0f, 0 @@ -5551,114 +5553,114 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i int effect = skillId < 493 && !(skillId >= 411 && skillId <= 472) ? 0 : -1; switch (skillId) { - case 7: - case 17: - case 19: - case 8202: + case SM_MAGNUM: + case MG_FIREBALL: + case MG_FIREBOLT: + case MS_MAGNUM: effect = 0x31; break; - case 14: - case 15: + case MG_COLDBOLT: + case MG_FROSTDIVER: effect = 0x33; break; - case 20: + case MG_LIGHTNINGBOLT: effect = 0x34; break; - case 54: + case ALL_RESURRECTION: if (damage != 0) { effect = 0x98; followEffect = -1; } break; - case 56: - case 57: - case 58: - case 59: - case 129: - case 184: - case 185: - case 186: - case 187: - case 188: - case 189: - case 347: - case 397: - case 654: + case KN_PIERCE: + case KN_BRANDISHSPEAR: + case KN_SPEARSTAB: + case KN_SPEARBOOMERANG: + case HT_BLITZBEAT: + case NPC_WATERATTACK: + case NPC_GROUNDATTACK: + case NPC_FIREATTACK: + case NPC_WINDATTACK: + case NPC_POISONATTACK: + case NPC_HOLYATTACK: + case NPC_UNDEADATTACK: + case LK_SPIRALPIERCE: + case NPC_FIREBREATH: effect = -1; break; - case 90: - case 91: - case 770: + case WZ_EARTHSPIKE: + case WZ_HEAVENDRIVE: + case NPC_GROUNDDRIVE: effect = 0x93; break; - case 136: + case AS_SONICBLOW: effect = 0; break; - case 170: + case NPC_CRITICALSLASH: type = 10; break; - case 190: - case 2600: - case 2602: + case NPC_DARKNESSATTACK: + case SP_CURSEEXPLOSION: + case SP_SPA: effect = 0xB4; break; - case 467: - case 468: + case SL_STIN: + case SL_STUN: effect = 0x225; break; - case 2022: + case GC_CROSSIMPACT: effect = 0x61F; break; - case 2202: + case WL_SOULEXPANSION: effect = 0x637; followEffect = 0x638; break; - case 2307: + case LG_CANNONSPEAR: followEffect = 0x583; break; - case 2317: - case 2519: + case LG_OVERBRAND: + case LG_OVERBRAND_BRANDISH: effect = 0x699; break; - case 2323: + case LG_EARTHDRIVE: if (g_session.m_aid != this->hitTargetAid) { effect = 0x6AC; } break; - case 2414: + case WM_REVERBERATION: effect = 0x639; break; - case 2446: + case SO_EARTHGRAVE: effect = 0x657; break; - case 5243: + case IQ_MASSIVE_F_BLASTER: effect = 0x82F; followEffect = 0x830; break; - case 5274: + case CD_ARBITRIUM_ATK: effect = 0x722; break; - case 5320: + case ABC_DEFT_STAB: effect = 0x854; break; - case 5322: + case ABC_FRENZY_SHOT: effect = 0x843; break; } int action; switch (type) { - case 4: - case 9: + case DMG_ENDURE: + case DMG_MULTI_HIT_ENDURE: action = 0x27; break; - case 6: + case DMG_SINGLE: action = 0x61; break; - case 10: + case DMG_CRITICAL: action = 0x5D; break; - case 13: + case DMG_MULTI_HIT_CRITICAL: action = 0x94; break; default: @@ -5681,44 +5683,44 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i message.unknown_0030 = skillId; message.unknown_0034 = 0; switch (skillId) { - case 273: - case 371: - case 2218: - case 2328: - case 2329: - case 2330: + case MO_COMBOFINISH: + case CH_TIGERFIST: + case WL_TETRAVORTEX_FIRE: + case SR_EARTHSHAKER: + case SR_FALLENEMPIRE: + case SR_TIGERCANNON: target->SendMsg(this, 0x1B, 0, address, address >> 31, damage, damage >> 31, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 2219: + case WL_TETRAVORTEX_WATER: message.time += 500; target->SendMsg(this, 0x1B, 0, address, address >> 31, damage, damage >> 31, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 2220: + case WL_TETRAVORTEX_WIND: message.time += 1000; target->SendMsg(this, 0x1B, 0, address, address >> 31, damage, damage >> 31, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 2221: + case WL_TETRAVORTEX_GROUND: message.time += 1500; target->SendMsg(this, 0x1B, 0, address, address >> 31, damage, damage >> 31, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 415: - case 417: - case 2592: - case 2593: + case TK_DOWNKICK: + case TK_TURNKICK: + case SJ_SOLARBURST: + case SJ_PROMINENCEKICK: message.time += 300; target->SendMsg(this, 0x82, 0, address, address >> 31, damage, damage >> 31, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 413: - case 419: - case 421: - case 2332: - case 2336: - case 2342: - case 2576: - case 2580: + case TK_STORMKICK: + case TK_COUNTER: + case TK_JUMPKICK: + case SR_RAMPAGEBLASTER: + case SR_KNUCKLEARROW: + case SR_CRESCENTELBOW_AUTOSPELL: + case SJ_FULLMOONKICK: + case SJ_FLASHKICK: target->SendMsg(this, 0x82, 0, address, address >> 31, damage, damage >> 31, 0, 0, 0, 0, 0, 0, 0, 0); break; - case 77: + case PR_TURNUNDEAD: message.time += 500; [[fallthrough]]; default: @@ -5732,13 +5734,13 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i message.effectId = -1; switch (skillId) { - case 263: + case MO_TRIPLEATTACK: this->SetSequenceInterval(4); this->SetFrameSequence(0x58, 0, 7, 0x58, 7, 1, g_session.FindUnknown0778(this->render.accountId), 0); break; - case 266: - case 267: - case 2518: + case MO_INVESTIGATE: + case MO_FINGEROFFENSIVE: + case SR_RIDEINLIGHTNING: if (this->unknown_0314 != 5) { this->SetSequenceInterval(10); if (g_session.IsDoramJob(this->GetEffectiveJob(-1)) == true) { @@ -5748,20 +5750,20 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i } } break; - case 271: + case MO_EXTREMITYFIST: if (this->unknown_0314 != 5) { this->SetSequenceInterval(4); this->SetFrameSequence(0x58, 0, 7, 0x58, 7, 1, 3500, 0); this->unknown_0184 = 1; } break; - case 272: + case MO_CHAINCOMBO: this->SetFrameSequence(0x60, 5, 5, 0x60, 5, 1, g_session.FindUnknown0778(this->render.accountId), 0); static_cast(target)->LaunchEffect(0x106, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); this->LaunchEffect(0x107, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); static_cast(target)->LaunchEffect(0x111, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 273: + case MO_COMBOFINISH: this->SetSequenceInterval(6); this->SetFrameSequence(0x60, 1, 2, 0x60, 2, 1, g_session.FindUnknown0778(this->render.accountId), 0); static_cast(g_modeMgr.GetGameMode())->SendMsg(122, 0, 0, 0, 0); @@ -5769,20 +5771,20 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i this->LaunchEffect(0x107, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); this->LaunchEffect(0x14A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 370: + case CH_PALMSTRIKE: this->SetFrameSequence(0x60, 3, 4, 0x60, 4, 1, 1, 0); static_cast(g_modeMgr.GetGameMode())->SendMsg(122, 0, 0, 0, 0); g_soundMgr->PlayWave("effect\\맹호경파산.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); static_cast(target)->LaunchEffect(0x178, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 371: + case CH_TIGERFIST: this->SetSequenceInterval(6); this->SetFrameSequence(0x60, 4, 4, 0x60, 4, 1, g_session.FindUnknown0778(this->render.accountId), 0); static_cast(g_modeMgr.GetGameMode())->SendMsg(122, 0, 0, 0, 0); this->LaunchEffect(0x179, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); this->LaunchEffect(0x107, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 372: { + case CH_CHAINCRUSH: { this->LaunchEffect(0x107, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); CRagEffect* follow = this->LaunchEffect(0x200, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (follow != nullptr) { @@ -5791,16 +5793,16 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i } break; } - case 2326: + case SR_DRAGONCOMBO: this->SetSequenceInterval(6); this->SetFrameSequence(0x60, 4, 4, 0x60, 4, 1, g_session.FindUnknown0778(this->render.accountId), 0); break; - case 2327: - case 2330: + case SR_SKYNETBLOW: + case SR_TIGERCANNON: this->SetSequenceInterval(6); this->SetFrameSequence(0x60, 5, 5, 0x60, 5, 1, g_session.FindUnknown0778(this->render.accountId), 0); break; - case 2328: + case SR_EARTHSHAKER: this->SetSequenceInterval(6); this->SetFrameSequence(0x60, 1, 2, 0x60, 2, 1, g_session.FindUnknown0778(this->render.accountId), 0); if (!this->HasId(0x378)) { @@ -5810,7 +5812,7 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i this->LaunchEffect(0x378, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 2329: + case SR_FALLENEMPIRE: this->SetSequenceInterval(6); this->SetFrameSequence(0x60, 3, 3, 0x60, 3, 1, g_session.FindUnknown0778(this->render.accountId), 0); static_cast(g_modeMgr.GetGameMode())->SendMsg(122, 0, 0, 0, 0); @@ -5818,7 +5820,7 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i g_effectMgr->Spawn(target->render.accountId, 0x622, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x623, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 2332: + case SR_RAMPAGEBLASTER: if (target != this) { static_cast(target)->LaunchEffect(0x225, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); static_cast(target)->LaunchEffect(0x226, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -5829,30 +5831,30 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i } } break; - case 2559: + case RL_QD_SHOT: static_cast(target)->LaunchEffect(0x106, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); static_cast(target)->LaunchEffect(0x111, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 2564: + case RL_FALLEN_ANGEL: this->SetSequenceInterval(4); this->SetFrameSequence(0x58, 0, 7, 0x58, 7, 1, 3500, 0); break; - case 5214: - case 5220: - case 5230: - case 5350: - case 5357: + case AG_DEADLY_PROJECTION: + case AG_SOUL_VC_STRIKE: + case AG_ASTRAL_STRIKE: + case TR_RETROSPECTION: + case TR_SOUNDBLEND: this->SetFrameSequence(0x60, 1, 3, 0x60, 3, 1, 500, 0); break; - case 5251: - case 5252: - case 5253: + case IQ_THIRD_PUNISH: + case IQ_THIRD_FLAME_BOMB: + case IQ_THIRD_CONSECRATION: this->SetSequenceInterval(4); this->SetFrameSequence(0x60, 2, 2, 0x60, 2, 1, 500, 0); break; } - if (type != 6 && type != 8 && type != 9 && type != 13) { + if (type != DMG_SINGLE && type != DMG_MULTI_HIT && type != DMG_MULTI_HIT_ENDURE && type != DMG_MULTI_HIT_CRITICAL) { return; } @@ -5862,7 +5864,7 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i ++hit; message.effectId = -1; message.unknown_0034 = hit; - if (skillId == 56) { + if (skillId == KN_PIERCE) { message.time += g_multiHitInterval + 80; total += damage; message.action = action; @@ -5876,16 +5878,16 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i message.damage = damage; int kind = 0x1B; switch (skillId) { - case 272: + case MO_CHAINCOMBO: message.action = action; message.effectId = 122; break; - case 372: + case CH_CHAINCRUSH: message.action = 0x6C; this->SendMsg(this, 0x1B, 0, address, address >> 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); message.action = action; break; - case 2211: + case WL_CRIMSONROCK: message.effectId = 0x512; if (g_serviceOptions.Get(229)) { message.action = action; @@ -5894,7 +5896,7 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i } message.action = action; break; - case 2213: + case WL_COMET: message.action = action; if (previous & 1) { message.unknown_001C = -1; @@ -5906,52 +5908,52 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i message.effectId = 0x589; } break; - case 5320: + case ABC_DEFT_STAB: message.unknown_001C = -1; message.effectId = g_session.FindUnknown0700(skillId); message.action = action; break; - case 5220: - case 5249: - case 5250: - case 5277: - case 5287: - case 5289: - case 5340: - case 5341: - case 5342: - case 5343: - case 5369: - case 5373: - case 5382: - case 5389: - case 5390: - case 5391: - case 5392: - case 5393: - case 8047: - case 8048: - case 8050: + case AG_SOUL_VC_STRIKE: + case IQ_SECOND_FAITH: + case IQ_SECOND_JUDGEMENT: + case CD_EFFLIGO: + case SHC_SAVAGE_IMPACT: + case SHC_ETERNAL_SLASH: + case BO_ACIDIFIED_ZONE_WATER: + case BO_ACIDIFIED_ZONE_GROUND: + case BO_ACIDIFIED_ZONE_WIND: + case BO_ACIDIFIED_ZONE_FIRE: + case EM_DIAMOND_STORM: + case EM_TERRA_DRIVE: + case ABC_CHAIN_REACTION_SHOT_ATK: + case EM_ELEMENTAL_BUSTER_FIRE: + case EM_ELEMENTAL_BUSTER_WATER: + case EM_ELEMENTAL_BUSTER_WIND: + case EM_ELEMENTAL_BUSTER_GROUND: + case EM_ELEMENTAL_BUSTER_POISON: + case MH_TWISTER_CUTTER: + case MH_ABSOLUTE_ZEPHYR: + case MH_BLAZING_AND_FURIOUS: message.effectId = g_session.FindUnknown0700(skillId); message.action = action; break; - case 413: - case 415: - case 417: - case 419: - case 421: - case 2332: - case 2336: - case 2342: - case 2576: - case 2580: - case 2592: - case 2593: + case TK_STORMKICK: + case TK_DOWNKICK: + case TK_TURNKICK: + case TK_COUNTER: + case TK_JUMPKICK: + case SR_RAMPAGEBLASTER: + case SR_KNUCKLEARROW: + case SR_CRESCENTELBOW_AUTOSPELL: + case SJ_FULLMOONKICK: + case SJ_FLASHKICK: + case SJ_SOLARBURST: + case SJ_PROMINENCEKICK: message.action = action; kind = 0x85; break; - case 737: - case 2321: + case NPC_RAYOFGENESIS: + case LG_RAYOFGENESIS: message.effectId = 0x593; message.action = action; break; diff --git a/Source/Contents/Actors/Skill.cpp b/Source/Contents/Actors/Skill.cpp index ad6b536ea..21964ae6d 100644 --- a/Source/Contents/Actors/Skill.cpp +++ b/Source/Contents/Actors/Skill.cpp @@ -1,4 +1,6 @@ #include "Contents/Actors/Skill.h" +#include "Contents/Skills/SkillId.h" +#include "Contents/Skills/SkillUnitId.h" #include "ActorPickNode.h" #include "Contents/Actors/GraffiSkill.h" @@ -106,55 +108,55 @@ CSkill::~CSkill() { // FUNCTION: fn_24268 const char* CSkill::GetTrapModelName() { switch (this->GetEffectiveJob(-1)) { - case 0x8F: - case 0xDA: - case 0xDE: - case 0xE6: + case UNT_BLASTMINE: + case UNT_REVERBERATION: + case UNT_NETHERWORLD: + case UNT_WALLOFTHORN: return "외부소품\\트랩03_3.rsm"; - case 0x90: + case UNT_SKIDTRAP: return "외부소품\\트랩02.rsm"; - case 0xE5: + case UNT_THORNS_TRAP: return "event\\3차트랩_가시01.rsm"; - case 0x93: + case UNT_LANDMINE: return "외부소품\\트랩03.rsm"; - case 0x94: + case UNT_SHOCKWAVE: return "외부소품\\트랩03_6.rsm"; - case 0x95: + case UNT_SANDMAN: return "외부소품\\트랩03_4.rsm"; - case 0x96: + case UNT_FLASHER: return "외부소품\\트랩03_5.rsm"; - case 0x97: + case UNT_FREEZINGTRAP: return "외부소품\\트랩03_2.rsm"; - case 0x98: + case UNT_CLAYMORETRAP: return "외부소품\\트랩04.rsm"; - case 0x99: + case UNT_TALKIEBOX: return "외부소품\\트랩05.rsm"; - case 0x91: - case 0xCB: + case UNT_ANKLESNARE: + case UNT_EARTHSTRAIN: return "외부소품\\트랩01.rsm"; - case 0xD2: + case UNT_MAGENTATRAP: return "event\\3차트랩_변화01.rsm"; - case 0xD3: + case UNT_COBALTTRAP: return "event\\3차트랩_변수01.rsm"; - case 0xD4: + case UNT_MAIZETRAP: return "event\\3차트랩_변지01.rsm"; - case 0xD5: + case UNT_VERDURETRAP: return "event\\3차트랩_변풍01.rsm"; - case 0xD6: + case UNT_FIRINGTRAP: return "event\\3차트랩_화01.rsm"; - case 0xD7: + case UNT_ICEBOUNDTRAP: return "event\\3차트랩_수01.rsm"; - case 0xD8: + case UNT_ELECTRICSHOCKER: return "event\\3차트랩_풍01.rsm"; - case 0xD9: + case UNT_CLUSTERBOMB: return "event\\3차트랩_지01.rsm"; - case 0x5174: + case UNT_DEEPBLINDTRAP: return "effect\\deepblindtrap\\deep_trap.rsm2"; - case 0x5175: + case UNT_SOLIDTRAP: return "effect\\solidtrap\\sol_trap.rsm2"; - case 0x5176: + case UNT_SWIFTTRAP: return "effect\\swifttrap\\swi_trap.rsm2"; - case 0x5177: + case UNT_FLAMETRAP: return "effect\\flametrap\\fla_trap.rsm2"; default: return nullptr; @@ -400,59 +402,59 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int int effectId = skillId < 493 ? 0 : -1; switch (skillId) { - case 18: + case MG_FIREWALL: effectId = 0x31; break; - case 79: + case PR_MAGNUS: effectId = 0x98; break; - case 85: - case 2587: + case WZ_VERMILION: + case SJ_BOOKOFCREATINGSTAR: effectId = 0x34; break; - case 89: - case 723: + case WZ_STORMGUST: + case NPC_STORMGUST2: effectId = 0x33; break; - case 428: - case 429: - case 430: + case SG_SUN_WARM: + case SG_MOON_WARM: + case SG_STAR_WARM: effectId = 0x247; break; - case 5217: + case AG_MYSTERY_ILLUSION: effectId = 0x6EF; break; - case 5219: - case 5221: + case AG_VIOLENT_QUAKE_ATK: + case AG_STRANTUM_TREMOR: effectId = 0x764; break; - case 5223: - case 5224: + case AG_ALL_BLOOM_ATK: + case AG_ALL_BLOOM_ATK2: effectId = 0x707; break; - case 5227: + case AG_TORNADO_STORM: effectId = 0x6F4; break; - case 5229: + case AG_FLORAL_FLARE_ROAD: effectId = 0x70F; break; - case 5321: - case 5370: - case 5371: - case 5372: - case 8044: + case ABC_ABYSS_SQUARE: + case EM_LIGHTNING_LAND: + case EM_VENOM_SWAMP: + case EM_CONFLAGRATION: + case MH_BLAST_FORGE: effectId = g_session.FindUnknown0700(skillId); break; - case 5331: + case WH_DEEPBLINDTRAP: effectId = 0x753; break; - case 5332: + case WH_SOLIDTRAP: effectId = 0x75B; break; - case 5333: + case WH_SWIFTTRAP: effectId = 0x757; break; - case 5335: + case WH_FLAMETRAP: effectId = 0x782; break; } @@ -513,53 +515,53 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int const vector3d& position = this->render.position; switch (this->GetEffectiveJob(-1)) { - case 0x8D: + case UNT_ICEWALL: this->render.unknown_00A4Bytes[1] = 1; return; - case 0x7F: - case 0xED: { + case UNT_FIREWALL: + case UNT_FIRE_MANTLE: { const vector3d& player = mode->scene->player->render.position; g_soundMgr->PlayWave("effect\\EF_FireWall.wav", position.x - player.x, 0.0f, position.z - player.z, 250, 40, 1.0f, 0); this->render.unknown_00A4Bytes[1] = 0; return; } - case 0xBC: - case 0xDC: - case 0xDD: - case 0xEB: + case UNT_TATAMIGAESHI: + case UNT_FIREWALK: + case UNT_ELECTRICWALK: + case UNT_VACUUM_EXTREME: this->render.unknown_00A4Bytes[1] = 0; return; - case 0xBE: + case UNT_GROUNDDRIFT_WIND: this->m_effectId = 0x6B; this->render.unknown_00A4Bytes[1] = 0; return; - case 0xE6: + case UNT_WALLOFTHORN: this->m_effectId = 0x6A; this->render.unknown_00A4Bytes[1] = 1; return; - case 0xE4: + case UNT_WARMER: this->m_effectId = 0x6A; this->render.unknown_00A4Bytes[1] = 0; return; - case 0xBF: - case 0xC2: - case 0x108: + case UNT_GROUNDDRIFT_DARK: + case UNT_GROUNDDRIFT_FIRE: + case UNT_GROUNDDRIFT_NEUTRAL: this->m_effectId = 0x63; this->render.unknown_00A4Bytes[1] = 0; return; - case 0xC0: + case UNT_GROUNDDRIFT_POISON: this->m_effectId = 0x8B; this->render.unknown_00A4Bytes[1] = 0; return; - case 0xD2: - case 0xD3: - case 0xD4: - case 0xD5: + case UNT_MAGENTATRAP: + case UNT_COBALTTRAP: + case UNT_MAIZETRAP: + case UNT_VERDURETRAP: this->m_effectId = 0x8B; this->render.unknown_00A4Bytes[1] = 0; this->ShowModel(this->GetTrapModelName()); return; - case 0xD8: + case UNT_ELECTRICSHOCKER: this->m_effectId = 0x6B; this->render.unknown_00A4Bytes[1] = 0; this->ShowModel(this->GetTrapModelName()); @@ -567,78 +569,78 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int this->LaunchEffect(0x91, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } return; - case 0xD6: - case 0xD9: + case UNT_FIRINGTRAP: + case UNT_CLUSTERBOMB: this->m_effectId = 0x6B; this->render.unknown_00A4Bytes[1] = 0; this->ShowModel(this->GetTrapModelName()); return; - case 0xD7: + case UNT_ICEBOUNDTRAP: this->m_effectId = 0x6C; this->render.unknown_00A4Bytes[1] = 0; this->ShowModel(this->GetTrapModelName()); return; - case 0xC1: + case UNT_GROUNDDRIFT_WATER: this->m_effectId = 0x6C; this->render.unknown_00A4Bytes[1] = 0; return; - case 0xBD: + case UNT_KAEN: if (rand() % 8 == 0) { const vector3d& player = mode->scene->player->render.position; g_soundMgr->PlayWave("effect\\화염진.wav", position.x - player.x, 0.0f, position.z - player.z, 250, 40, 1.0f, 0); } this->render.unknown_00A4Bytes[1] = 0; return; - case 0x8A: + case UNT_TRAP: this->render.unknown_00A4Bytes[1] = 1; this->ShowModel(this->GetTrapModelName()); return; - case 0x8F: + case UNT_BLASTMINE: this->render.unknown_00A4Bytes[1] = 1; this->m_effectId = 0x6A; this->ShowModel(this->GetTrapModelName()); return; - case 0xDA: - case 0xDE: + case UNT_REVERBERATION: + case UNT_NETHERWORLD: this->render.unknown_00A4Bytes[1] = 1; this->m_effectId = 0x1D0; return; - case 0x90: - case 0x91: - case 0x93: - case 0x99: - case 0xE5: + case UNT_SKIDTRAP: + case UNT_ANKLESNARE: + case UNT_LANDMINE: + case UNT_TALKIEBOX: + case UNT_THORNS_TRAP: this->render.unknown_00A4Bytes[1] = 1; this->ShowModel(this->GetTrapModelName()); return; - case 0x95: + case UNT_SANDMAN: this->render.unknown_00A4Bytes[1] = 1; this->m_effectId = 0x8B; this->ShowModel(this->GetTrapModelName()); return; - case 0x96: + case UNT_FLASHER: this->render.unknown_00A4Bytes[1] = 1; this->m_effectId = 0x63; this->ShowModel(this->GetTrapModelName()); return; - case 0x97: + case UNT_FREEZINGTRAP: this->render.unknown_00A4Bytes[1] = 1; this->m_effectId = 0x6C; this->ShowModel(this->GetTrapModelName()); return; - case 0x98: + case UNT_CLAYMORETRAP: this->render.unknown_00A4Bytes[1] = 1; this->m_effectId = 0x6B; this->ShowModel(this->GetTrapModelName()); return; - case 0x94: + case UNT_SHOCKWAVE: this->render.unknown_00A4Bytes[1] = 1; this->ShowModel(this->GetTrapModelName()); if (this->render.enabled && !this->HasId(0x91)) { this->LaunchEffect(0x91, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } return; - case 0xD1: { + case UNT_FEINTBOMB: { CPc* source; if (unit->owner == g_session.m_aid) { source = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player); @@ -653,22 +655,22 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } return; } - case 0x102: { + case UNT_KINGS_GRACE: { const vector3d& player = mode->scene->player->render.position; g_soundMgr->PlayWave("effect\\lg_kings_grace.wav", position.x - player.x, 0.0f, position.z - player.z, 250, 40, 1.0f, 0); this->render.unknown_00A4Bytes[1] = 0; return; } - case 0x101: { + case UNT_MAGMA_ERUPTION: { const vector3d& player = mode->scene->player->render.position; g_soundMgr->PlayWave("effect\\NC_MAGMA_ERUPTION.wav", position.x - player.x, 0.0f, position.z - player.z, 250, 40, 1.0f, 0); this->render.unknown_00A4Bytes[1] = 0; return; } - case 0x85: + case UNT_PNEUMA: g_effectMgr->Spawn(this->render.accountId, 0x8D, position.x, position.y, position.z, 0, -1, 0, 0); return; - case 0x104: + case UNT_B_TRAP: switch (unit->level) { case 1: g_effectMgr->Spawn(this->render.accountId, 0x42D, position.x, position.y, position.z, 0, -1, 0, 0); @@ -683,22 +685,22 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int return; } return; - case 0x106: + case UNT_CATNIPPOWDER: g_effectMgr->Spawn(this->render.accountId, 0x450, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x107: { + case UNT_NYANGGRASS: { const vector3d& player = static_cast(g_modeMgr.GetGameMode())->scene->player->render.position; g_soundMgr->PlayWave("effect\\su_nyanggrass.wav", position.x - player.x, 0.0f, position.z - player.z, 250, 40, 1.0f, 0); g_effectMgr->Spawn(this->render.accountId, 0x465, position.x, position.y, position.z, 0, unit->level, 0, 0); return; } - case 0x109: { + case UNT_CREATINGSTAR: { g_effectMgr->Spawn(this->render.accountId, 0x4B0, position.x, position.y, position.z, 0, -1, 0, 0); const vector3d& player = static_cast(g_modeMgr.GetGameMode())->scene->player->render.position; g_soundMgr->PlayWave("effect\\g카트토네이도.wav", position.x - player.x, 0.0f, position.z - player.z, 250, 40, 1.0f, 0); return; } - case 0x10C: + case UNT_SEEDTRAP: switch (unit->level) { case 1: this->m_effectId = 0x642; @@ -717,32 +719,32 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int break; } return; - case 0x114: + case UNT_PNEUMATICUS_PROCELLA: g_effectMgr->Spawn(this->render.accountId, 0x7A5, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x10A: + case UNT_RAIN_OF_CRYSTAL: if (!g_effectMgr->Has(this->render.accountId, 0x6D8)) { g_effectMgr->Retire(this->render.accountId, 0x6D8); } g_effectMgr->Spawn(this->render.accountId, 0x6D8, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x10E: + case UNT_VIOLENT_QUAKE: g_effectMgr->Retire(this->render.accountId, 0x701); g_effectMgr->Spawn(this->render.accountId, 0x701, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x112: + case UNT_ASTRAL_STRIKE: if (!g_effectMgr->Has(this->render.accountId, 0x6E8)) { g_effectMgr->Retire(this->render.accountId, 0x6E8); } g_effectMgr->Spawn(this->render.accountId, 0x6E8, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x10B: + case UNT_MYSTERY_ILLUSION: if (!g_effectMgr->Has(this->render.accountId, 0x6EC)) { g_effectMgr->Retire(this->render.accountId, 0x6EC); } g_effectMgr->Spawn(this->render.accountId, 0x6EC, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x110: + case UNT_TORNADO_STORM: if (!g_effectMgr->Has(this->render.accountId, 0x6F0)) { g_effectMgr->Retire(this->render.accountId, 0x6F0); } @@ -752,17 +754,17 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } g_effectMgr->Spawn(this->render.accountId, 0x6F1, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x10F: + case UNT_ALL_BLOOM: g_effectMgr->Retire(this->render.accountId, 0x702); g_effectMgr->Spawn(this->render.accountId, 0x702, position.x, position.y, position.z, 0, unit->level, 0, 0); g_effectMgr->Retire(this->render.accountId, 0x703); g_effectMgr->Spawn(this->render.accountId, 0x703, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x111: + case UNT_FLORAL_FLARE_ROAD: g_effectMgr->Retire(this->render.accountId, 0x70C); g_effectMgr->Spawn(this->render.accountId, 0x70C, position.x, position.y, position.z, 0, unit->level, 0, 0); return; - case 0x10D: + case UNT_STRANTUM_TREMOR: for (std::int64_t effectId = 0x765; effectId <= 0x766; ++effectId) { if (!g_effectMgr->Has(this->render.accountId, static_cast(effectId))) { g_effectMgr->Retire(this->render.accountId, static_cast(effectId)); @@ -774,13 +776,13 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } } return; - case 0x11B: + case UNT_VENOM_SWAMP: if (!g_effectMgr->Has(this->render.accountId, 0x7EF)) { g_effectMgr->Retire(this->render.accountId, 0x7EF); } g_effectMgr->Spawn(this->render.accountId, 0x7EF, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x11A: + case UNT_LIGHTNING_LAND: if (!g_effectMgr->Has(this->render.accountId, 0x7FA)) { g_effectMgr->Retire(this->render.accountId, 0x7FA); } @@ -790,7 +792,7 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } g_effectMgr->Spawn(this->render.accountId, 0x7F9, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x11C: + case UNT_CONFLAGRATION: if (!g_effectMgr->Has(this->render.accountId, 0x808)) { g_effectMgr->Retire(this->render.accountId, 0x808); } @@ -800,11 +802,11 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } g_effectMgr->Spawn(this->render.accountId, 0x807, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x115: + case UNT_ABYSS_SQUARE: g_effectMgr->Spawn(this->render.accountId, 0x852, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x851, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x119: { + case UNT_ACIDIFIED_ZONE_FIRE: { g_effectMgr->Spawn(this->render.accountId, 0x8A0, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x8A1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* effect = g_effectMgr->Spawn(this->render.accountId, 0x8A2, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -817,7 +819,7 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } return; } - case 0x116: { + case UNT_ACIDIFIED_ZONE_WATER: { g_effectMgr->Spawn(this->render.accountId, 0x8A8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x8A9, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* effect = g_effectMgr->Spawn(this->render.accountId, 0x8AA, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -830,7 +832,7 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } return; } - case 0x118: { + case UNT_ACIDIFIED_ZONE_WIND: { g_effectMgr->Spawn(this->render.accountId, 0x8B0, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x8B1, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* effect = g_effectMgr->Spawn(this->render.accountId, 0x8B2, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -843,7 +845,7 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } return; } - case 0x117: { + case UNT_ACIDIFIED_ZONE_GROUND: { g_effectMgr->Spawn(this->render.accountId, 0x8B8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(this->render.accountId, 0x8B9, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* effect = g_effectMgr->Spawn(this->render.accountId, 0x8BA, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -856,31 +858,31 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } return; } - case 0x11D: + case UNT_CANE_OF_EVIL_EYE: g_effectMgr->Spawn(this->render.accountId, 0x903, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x5174: + case UNT_DEEPBLINDTRAP: this->render.unknown_00A4Bytes[1] = 1; this->ShowModel(this->GetTrapModelName()); if (this->render.enabled) { g_effectMgr->Spawn(this->render.accountId, 0x752, position.x, position.y, position.z, 0, -1, 0, 0); } return; - case 0x5176: + case UNT_SWIFTTRAP: this->render.unknown_00A4Bytes[1] = 1; this->ShowModel(this->GetTrapModelName()); if (this->render.enabled) { g_effectMgr->Spawn(this->render.accountId, 0x756, position.x, position.y, position.z, 0, -1, 0, 0); } return; - case 0x5175: + case UNT_SOLIDTRAP: this->render.unknown_00A4Bytes[1] = 1; this->ShowModel(this->GetTrapModelName()); if (this->render.enabled) { g_effectMgr->Spawn(this->render.accountId, 0x75A, position.x, position.y, position.z, 0, -1, 0, 0); } return; - case 0x5177: + case UNT_FLAMETRAP: this->render.unknown_00A4Bytes[1] = 1; this->ShowModel(this->GetTrapModelName()); if (this->render.enabled) { @@ -901,14 +903,14 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int case 0x2F: this->SetActorJob(b); switch (this->GetEffectiveJob(-1)) { - case 0x80: { + case UNT_WARP_WAITING: { const vector3d& player = static_cast(g_modeMgr.GetGameMode())->scene->player->render.position; g_soundMgr->PlayWave( "effect\\EF_Portal.wav", this->render.position.x - player.x, 0.0f, this->render.position.z - player.z, 250, 40, 1.0f, 0 ); break; } - case 0x8C: + case UNT_USED_TRAPS: if (this->m_effectId != -1 && !g_effectMgr->Spawn(0, this->m_effectId, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0)) { CRagEffect* effect = this->LaunchEffect(this->m_effectId, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -926,7 +928,7 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int } return; case 0x35: - if (this->GetEffectiveJob(-1) == 0x11D) { + if (this->GetEffectiveJob(-1) == UNT_CANE_OF_EVIL_EYE) { CEffect* effect = g_effectMgr->Find(this->render.accountId, 0x903); if (effect != nullptr) { static_cast(effect)->Finish(); @@ -943,21 +945,21 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int this->render.enabled = 1; this->ShowModel(this->GetTrapModelName()); - if (this->GetEffectiveJob(-1) == 0x94 && !this->HasId(0x91)) { + if (this->GetEffectiveJob(-1) == UNT_SHOCKWAVE && !this->HasId(0x91)) { this->LaunchEffect(0x91, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } switch (this->GetEffectiveJob(-1)) { - case 0x5174: + case UNT_DEEPBLINDTRAP: g_effectMgr->Spawn(this->render.accountId, 0x752, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x5175: + case UNT_SOLIDTRAP: g_effectMgr->Spawn(this->render.accountId, 0x75A, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x5176: + case UNT_SWIFTTRAP: g_effectMgr->Spawn(this->render.accountId, 0x756, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; - case 0x5177: + case UNT_FLAMETRAP: g_effectMgr->Spawn(this->render.accountId, 0x77F, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); return; } diff --git a/Source/Contents/ClientItemLists.cpp b/Source/Contents/ClientItemLists.cpp index 889b970f7..04d37cad4 100644 --- a/Source/Contents/ClientItemLists.cpp +++ b/Source/Contents/ClientItemLists.cpp @@ -1,4 +1,6 @@ #include "Client/Mode/CGameMode.h" +#include "Contents/Combat/CombatTypes.h" +#include "Contents/Items/InventoryType.h" #include "Client/Mode/ModeMgr.h" #include "Client/Replay.h" #include "Client/Session.h" @@ -577,8 +579,8 @@ void CGameMode::ReceiveEquipItemList(const unsigned char* packet) { const EquipItemListRecord* records = reinterpret_cast(packet + sizeof(EquipItemListHeader)); const std::size_t count = (header->length - sizeof(EquipItemListHeader)) / sizeof(EquipItemListRecord); switch (header->listType) { - case 2: - case 3: + case INVTYPE_STORAGE: + case INVTYPE_GUILD_STORAGE: for (std::int64_t i = 0; i < count; ++i) { const EquipItemListRecord record = records[i]; if (record.location == 0x8000) { @@ -592,7 +594,7 @@ void CGameMode::ReceiveEquipItemList(const unsigned char* packet) { g_session.AddItem1738(item, 0); } break; - case 0: + case INVTYPE_INVENTORY: for (std::int64_t i = 0; i < count; ++i) { const EquipItemListRecord record = records[i]; ItemRandomOption options[5]; @@ -632,7 +634,7 @@ void CGameMode::ReceiveEquipItemList(const unsigned char* packet) { } } break; - case 1: + case INVTYPE_CART: for (std::int64_t i = 0; i < count; ++i) { const EquipItemListRecord record = records[i]; ItemRandomOption options[5]; @@ -664,14 +666,14 @@ void CGameMode::ReceiveItemListPart(unsigned char listType, int count, const uns item.unknown_0060 = 0; item.unknown_0074[0] = (record->flags >> 1) & 1; switch (listType) { - case 0: + case INVTYPE_INVENTORY: g_session.UpdateInventoryItem(item, 0); break; - case 1: + case INVTYPE_CART: g_session.AddItem1740(item); break; - case 2: - case 3: + case INVTYPE_STORAGE: + case INVTYPE_GUILD_STORAGE: g_session.AddItem1738(item, 0); break; } @@ -686,17 +688,17 @@ void CGameMode::RefreshItemListWindow(unsigned char listType, bool partial) { } switch (listType) { - case 2: - case 3: + case INVTYPE_STORAGE: + case INVTYPE_GUILD_STORAGE: if (UIWindow* window = g_windowMgr.window_0288) { window->SendMsg(nullptr, 23, 0, 0, 0, 0); reinterpret_cast(window)[0x190] = 1; } break; - case 0: + case INVTYPE_INVENTORY: RefreshItemWindows(&g_windowMgr); break; - case 1: + case INVTYPE_CART: g_session.RefreshItem1740Window(); break; } @@ -1175,7 +1177,7 @@ bool CSession::UnequipItem(int location, std::uint32_t identity) { // FUNCTION: fn_23300 EquipSlots CSession::GetEquipSlots(int location) { EquipSlots result; - if (location == 0x8000) { + if (location == EQP_AMMO) { result.values[0] = -1; result.values[1] = -1; result.values[2] = 15; @@ -1184,16 +1186,16 @@ EquipSlots CSession::GetEquipSlots(int location) { int mask = location; switch (location) { - case 0x400: + case EQP_COSTUME_HEAD_TOP: mask = 0x100; break; - case 0x800: + case EQP_COSTUME_HEAD_MID: mask = 0x200; break; case 0xC00: mask = 0x300; break; - case 0x1000: + case EQP_COSTUME_HEAD_LOW: mask = 1; break; case 0x1400: @@ -1205,26 +1207,26 @@ EquipSlots CSession::GetEquipSlots(int location) { case 0x1C00: mask = 0x301; break; - case 0x2000: + case EQP_COSTUME_GARMENT: mask = 4; break; case 0x4000: - case 0x20000: + case EQP_SHADOW_WEAPON: mask = 2; break; - case 0x10000: + case EQP_SHADOW_ARMOR: mask = 0x10; break; - case 0x40000: + case EQP_SHADOW_SHIELD: mask = 0x20; break; - case 0x80000: + case EQP_SHADOW_SHOES: mask = 0x40; break; - case 0x100000: + case EQP_SHADOW_ACC_R: mask = 8; break; - case 0x200000: + case EQP_SHADOW_ACC_L: mask = 0x80; break; } diff --git a/Source/Contents/Combat/CombatTypes.h b/Source/Contents/Combat/CombatTypes.h new file mode 100644 index 000000000..ffd54c9b9 --- /dev/null +++ b/Source/Contents/Combat/CombatTypes.h @@ -0,0 +1,85 @@ +#ifndef RAGNAROK_SOURCE_CONTENTS_COMBAT_COMBATTYPES_H +#define RAGNAROK_SOURCE_CONTENTS_COMBAT_COMBATTYPES_H + +enum e_damage_type : int { + DMG_NORMAL = 0, + DMG_PICKUP_ITEM = 1, + DMG_SIT_DOWN = 2, + DMG_STAND_UP = 3, + DMG_ENDURE = 4, + DMG_SPLASH = 5, + DMG_SINGLE = 6, + DMG_MULTI_HIT = 8, + DMG_MULTI_HIT_ENDURE = 9, + DMG_CRITICAL = 10, + DMG_LUCY_DODGE = 11, + DMG_MULTI_HIT_CRITICAL = 13, + DMG_SPLASH_ENDURE = 14, +}; + +#endif + +enum spirit_charm_types : int { + CHARM_TYPE_WATER = 1, + CHARM_TYPE_LAND = 2, + CHARM_TYPE_FIRE = 3, + CHARM_TYPE_WIND = 4, +}; + +enum equip_pos : unsigned int { + EQP_HEAD_LOW = 1, + EQP_HAND_R = 2, + EQP_GARMENT = 4, + EQP_ACC_R = 8, + EQP_ARMOR = 16, + EQP_HAND_L = 32, + EQP_SHOES = 64, + EQP_ACC_L = 128, + EQP_ACC_RL = 136, + EQP_HEAD_TOP = 256, + EQP_HEAD_MID = 512, + EQP_COSTUME_HEAD_TOP = 1024, + EQP_COSTUME_HEAD_MID = 2048, + EQP_COSTUME_HEAD_LOW = 4096, + EQP_COSTUME_GARMENT = 8192, + EQP_AMMO = 32768, + EQP_SHADOW_ARMOR = 65536, + EQP_SHADOW_WEAPON = 131072, + EQP_SHADOW_SHIELD = 262144, + EQP_SHADOW_SHOES = 524288, + EQP_SHADOW_ACC_R = 1048576, + EQP_SHADOW_ACC_L = 2097152, + EQP_SHADOW_ACC_RL = 3145728, +}; + +enum e_element : int { + ELE_NEUTRAL = 0, + ELE_WATER = 1, + ELE_EARTH = 2, + ELE_FIRE = 3, + ELE_WIND = 4, + ELE_POISON = 5, + ELE_HOLY = 6, + ELE_DARK = 7, + ELE_GHOST = 8, + ELE_UNDEAD = 9, +}; + +enum e_race : int { + RC_FORMLESS = 0, + RC_UNDEAD = 1, + RC_BRUTE = 2, + RC_PLANT = 3, + RC_INSECT = 4, + RC_FISH = 5, + RC_DEMON = 6, + RC_DEMIHUMAN = 7, + RC_ANGEL = 8, + RC_DRAGON = 9, +}; + +enum e_size : int { + SZ_SMALL = 0, + SZ_MEDIUM = 1, + SZ_BIG = 2, +}; diff --git a/Source/Contents/Effects/ArrowEffect.cpp b/Source/Contents/Effects/ArrowEffect.cpp index 8010a8350..139de6e41 100644 --- a/Source/Contents/Effects/ArrowEffect.cpp +++ b/Source/Contents/Effects/ArrowEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/ArrowEffect.h" +#include "Contents/Jobs/JobId.h" #include "Client/Mode/ModeMgr.h" #include "Resource/ResourceMgr.h" @@ -113,123 +114,123 @@ void CArrowEffect::SendMsg(CGameObject* sender, int message, int a, int b, int c const char* sprite; const char* action; switch (static_cast(i) << 32 | static_cast(h)) { - case 0x582: - case 0x60E: + case JT_LIVE_PEACH_TREE: + case JT_G_LIVE_PEACH_TREE: sprite = "몬스터\\PEACH_TREE_BULLET.spr"; action = "몬스터\\PEACH_TREE_BULLET.act"; break; - case 0x584: - case 0x5FB: + case JT_EVIL_CLOUD_HERMIT: + case JT_G_EVIL_CLOUD_HERMIT: sprite = "몬스터\\GINSENG_BULLET.spr"; action = "몬스터\\GINSENG_BULLET.act"; break; - case 0x5D7: - case 0x4F32: + case JT_STONE_SHOOTER: + case JT_ILL_STONE_SHOOTER: sprite = "몬스터\\STONE_SHOOTER_BULLET.spr"; action = "몬스터\\STONE_SHOOTER_BULLET.act"; break; - case 0x5DA: - case 0x4F33: - case 0x4F37: + case JT_WOOTAN_SHOOTER: + case JT_ILL_WOOTAN_SHOOTER: + case JT_G_ILL_WOOTAN_SHOOTER: sprite = "몬스터\\WOOTAN_SHOOTER_BULLET.spr"; action = "몬스터\\WOOTAN_SHOOTER_BULLET.act"; break; - case 0x5DC: - case 0x613: + case JT_PARASITE: + case JT_G_PARASITE: sprite = "몬스터\\PARASITE_BULLET.spr"; action = "몬스터\\PARASITE_BULLET.act"; break; - case 0x680: + case JT_POTON_CANON: sprite = "몬스터\\CANON_BULLET.spr"; action = "몬스터\\CANON_BULLET.act"; break; - case 0x681: + case JT_POTON_CANON_1: sprite = "몬스터\\CANON_BULLET_1.spr"; action = "몬스터\\CANON_BULLET_1.act"; break; - case 0x682: + case JT_POTON_CANON_2: sprite = "몬스터\\CANON_BULLET_2.spr"; action = "몬스터\\CANON_BULLET_2.act"; break; - case 0x683: + case JT_POTON_CANON_3: sprite = "몬스터\\CANON_BULLET_3.spr"; action = "몬스터\\CANON_BULLET_3.act"; break; - case 0x698: - case 0x7E5: + case JT_LADY_TANEE: + case JT_PHYLLA: sprite = "몬스터\\LADY_TANEE_BULLET.spr"; action = "몬스터\\LADY_TANEE_BULLET.act"; break; - case 0x749: + case JT_RAGGED_ZOMBIE: sprite = "몬스터\\RAGGED_ZOMBIE_BULLET.spr"; action = "몬스터\\RAGGED_ZOMBIE_BULLET.act"; break; - case 0x93C: + case JT_PETAL: sprite = "몬스터\\PETAL_BULLET.spr"; action = "몬스터\\PETAL_BULLET.act"; break; - case 0x9AB: + case JT_MG_CORRUPTION_ROOT: sprite = "몬스터\\MG_CORRUPTION_ROOT_BULLET.spr"; action = "몬스터\\MG_CORRUPTION_ROOT_BULLET.act"; break; - case 0xF2A: + case JT_E_MD_NYAILO: sprite = "몬스터\\e_nyailo_ammo.spr"; action = "몬스터\\e_nyailo_ammo.act"; break; - case 0x1079: - case 0x107A: - case 0x107B: - case 0x107C: - case 0x107D: - case 0x10D4: - case 0x10DB: + case JT_TRIBE_DORAM: + case JT_DO_SUMMONER: + case JT_DO_CART_SUMMONER: + case JT_DO_SUMMONER_B: + case JT_DO_CART_SUMMONER_B: + case JT_SPIRIT_HANDLER: + case JT_SPIRIT_HANDLER_RIDING: sprite = "몬스터\\su_soulattack.spr"; action = "몬스터\\su_soulattack.act"; break; - case 0x505F: + case JT_MD_C_CORRUPTION_ROOT: sprite = "몬스터\\mg_corruption_root_bullet.spr"; action = "몬스터\\mg_corruption_root_bullet.act"; break; - case 0x5173: + case JT_SUMMON_HELLTREE: sprite = "몬스터\\SUMMON_HELLTREE_FRUIT.spr"; action = "몬스터\\SUMMON_HELLTREE_FRUIT.act"; break; - case 0x5410: - case 0x5455: + case JT_EP19_LIMACINA: + case JT_G_EP19_LIMACINA: sprite = "몬스터\\EP19_LIMACINA_BULLET.spr"; action = "몬스터\\EP19_LIMACINA_BULLET.act"; break; - case 0x55D2: + case JT_EP20_MELIBE_ICESLUG: sprite = "몬스터\\phylla_bullet.spr"; action = "몬스터\\phylla_bullet.act"; break; - case 0x55E1: - case 0x55F1: + case JT_EP20_RGAN_WARLOCK: + case JT_G_EP20_RGAN_WARLOCK: sprite = "몬스터\\canon_bullet_3.spr"; action = "몬스터\\canon_bullet_3.act"; break; - case 0x569F: - case 0x56A0: + case JT_MD_PRI_RIGEL_AC: + case JT_MD_PRI_RIGEL_ACS: sprite = "몬스터\\RIGEL_BULLET.spr"; action = "몬스터\\RIGEL_BULLET.act"; break; diff --git a/Source/Contents/Effects/BindTrapEffect.cpp b/Source/Contents/Effects/BindTrapEffect.cpp index f08d38823..2ddafcd7f 100644 --- a/Source/Contents/Effects/BindTrapEffect.cpp +++ b/Source/Contents/Effects/BindTrapEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/BindTrapEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -50,13 +51,13 @@ void CBindTrapEffect::Close() { // FUNCTION: fn_06908 void CBindTrapEffect::Open() { switch (this->id) { - case 1069: + case EF_BIND_TRAP1: this->AddParticle(0); break; - case 1070: + case EF_BIND_TRAP2: this->AddParticle(1); break; - case 1071: + case EF_BIND_TRAP3: this->AddParticle(2); break; } diff --git a/Source/Contents/Effects/CellRangeEffect.cpp b/Source/Contents/Effects/CellRangeEffect.cpp index e0950c457..c76ef83f2 100644 --- a/Source/Contents/Effects/CellRangeEffect.cpp +++ b/Source/Contents/Effects/CellRangeEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/CellRangeEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -30,19 +31,19 @@ void CCellRangeEffect::SetCellTexture(CParticle* particle) { const int frame = (particle->unknown_00E8 + particle->unknown_000C) / 10 % 3 + 1; std::string name; switch (this->id) { - case 992: + case EF_KO_ZENKAI_WATER: name = FormatOwnedString("effect\\water-%d.bmp", frame); break; - case 993: + case EF_KO_ZENKAI_LAND: name = FormatOwnedString("effect\\stone-%d.bmp", frame); break; - case 994: + case EF_KO_ZENKAI_FIRE: name = FormatOwnedString("effect\\fire-%d.bmp", frame); break; - case 995: + case EF_KO_ZENKAI_WIND: name = FormatOwnedString("effect\\lightning-%d.bmp", frame); break; - case 1007: + case EF_KO_MAKIBISHI: name = "effect\\makibishi.bmp"; particle->scale = 2.5f; particle->destinationBlend = 6; diff --git a/Source/Contents/Effects/EZ2STREffect.cpp b/Source/Contents/Effects/EZ2STREffect.cpp index 61b49bd7f..e8e2698ca 100644 --- a/Source/Contents/Effects/EZ2STREffect.cpp +++ b/Source/Contents/Effects/EZ2STREffect.cpp @@ -36,41 +36,41 @@ float GetHatEffectOffsetX(int id, const char* name) { float result = 0.0f; switch (id) { - case 0x40B: - case 0x40C: + case EF_STRANGELIGHTS: + case EF_SUPER_STAR: offset = 5.0f; result = offset; break; - case 0x43E: + case EF_LJOSALFAR: offset = 8.0f; result = offset; break; - case 0x4C3: + case EF_SJ_DOCUMENT: offset = 0.5f; result = offset; break; - case 0x4CD: - case 0x4CE: - case 0x543: - case 0x544: - case 0x545: - case 0x546: - case 0x5CE: - case 0x5CF: + case EF_NEWMOON_KICK: + case EF_FULLMOON_KICK: + case EF_NEW_ARMSCANNON_01_UP: + case EF_NEW_ARMSCANNON_01_DOWN: + case EF_NEW_ARMSCANNON_05_UP: + case EF_NEW_ARMSCANNON_05_DOWN: + case EF_MINEFFECT_ARMSCANNON_01: + case EF_MINEFFECT_ARMSCANNON_05: offset = 1.0f; result = offset; break; - case 0x4F2: - case 0x4F5: + case EF_TETRA_VORTEX_FIRE_EXP: + case EF_TETRA_VORTEX_EARTH_EXP: offset = -0.5f; result = offset; break; - case 0x547: - case 0x548: - case 0x549: - case 0x54A: - case 0x5D0: - case 0x5D1: + case EF_NEW_ARMSCANNON_07_UP: + case EF_NEW_ARMSCANNON_07_DOWN: + case EF_NEW_ARMSCANNON_11_UP: + case EF_NEW_ARMSCANNON_11_DOWN: + case EF_MINEFFECT_ARMSCANNON_07: + case EF_MINEFFECT_ARMSCANNON_11: offset = -1.0f; result = offset; break; @@ -103,7 +103,7 @@ int GetHatEffectOffsetY(int id, CGameActor* actor) { bool ignored = false; if (id >= 0x9B5) { g_session.m_hotkeyScript->Call("IsIgnoredRidingState_Include_AttachedToHead", "d>b", id - 0x9B5, &ignored); - } else if (id == 0x719) { + } else if (id == EF_NEW_D_MACHINE) { ignored = true; } @@ -117,735 +117,735 @@ int GetHatEffectOffsetY(int id, CGameActor* actor) { } switch (id) { - case 0x40B: + case EF_STRANGELIGHTS: offset += 5; break; - case 0x45F: + case EF_BITE_SCAR: offset += 5; break; - case 0x7D6: + case EF_UNK_2006: offset += 5; break; - case 0x42C: + case EF_D_TAIL: offset -= 8; break; - case 0x43B: + case EF_FLOWERSMOKE: offset -= 8; break; - case 0x442: + case EF_MARKING_USE_CHANGEMONSTER: offset -= 8; break; - case 0x463: + case EF_SU_GROOMING: offset -= 8; break; - case 0x46E: + case EF_RICHS_COIN_A: offset -= 8; break; - case 0x470: + case EF_RL_ANTI_MATERIAL_BLAST: offset -= 8; break; - case 0x472: + case EF_HEAT_BARREL: offset -= 8; break; - case 0x473: + case EF_H_MINE: offset -= 8; break; - case 0x955: + case EF_NPC_GATE_SKYBLUE: offset -= 8; break; - case 0x43C: + case EF_FSTONE: offset -= 7; break; - case 0x7E2: + case EF_CHAIN_REACTION_SHOT: offset -= 7; break; - case 0x43D: + case EF_QSCARABA: offset -= 5; break; - case 0x441: + case EF_MAPLE_FALLS: offset -= 5; break; - case 0x443: + case EF_MAGICAL_FEATHER: offset -= 5; break; - case 0x447: + case EF_TIME_ACCESSORY: offset -= 5; break; - case 0x4ED: + case EF_TETRA_VORTEX_CORE: offset -= 5; break; - case 0x552: + case EF_QSCARABA_VISUAL: offset -= 5; break; - case 0x75E: + case EF_NEW_RUSH_QUAKE_HIT: offset -= 5; break; - case 0x805: + case EF_FIRST_BRAND_HIT: offset -= 5; break; - case 0x853: + case EF_ABYSS_DAGGER_HIT_2: offset -= 5; break; - case 0x44A: - case 0x44E: - case 0x44F: - case 0x451: - case 0x453: - case 0x454: - case 0x455: - case 0x45C: - case 0x765: - case 0x766: + case EF_FRESHSHRIMP: + case EF_SU_TUNABELLY: + case EF_SU_SCRATCH: + case EF_SU_BITE: + case EF_SU_SCAROFTAROU: + case EF_SU_ARCLOUSEDASH: + case EF_SU_PICKYPECK: + case EF_SU_BUNCHOFSHRIMP: + case EF_STRATUM_TREMOR: + case EF_STRATUM_TREMOR_BOTTOM: offset -= 8; break; - case 0x464: - case 0x467: + case EF_SU_CHATTERING: + case EF_SU_POWEROFFLOCK: offset += 8; break; - case 0x425: + case EF_C_MAKER: offset -= 6; break; - case 0x46D: + case EF_FIREDANCE: offset -= 6; break; - case 0x476: + case EF_WE_CHEERUP: offset -= 6; break; - case 0x4C2: + case EF_SOLARBURST: offset -= 6; break; - case 0x4C5: + case EF_FLASH_KICK: offset -= 6; break; - case 0x63F: + case EF_TETRA_VORTEX_CORE_REUSE: offset -= 6; break; - case 0x6C9: + case EF_DESTRUCTIVE_HURRICANE_HIT: offset -= 6; break; - case 0x6CC: + case EF_DEADLY_PROJECTION_HIT: offset -= 6; break; - case 0x6D0: + case EF_SOUL_VC_STRIKE_HIT: offset -= 6; break; - case 0x6F8: + case EF_FROZEN_SLASH_HIT: offset -= 6; break; - case 0x722: + case EF_ARBITRIUM_HIT: offset -= 6; break; - case 0x726: + case EF_UNK_1830: offset -= 6; break; - case 0x752: + case EF_DEEP_BLIND_TRAP: offset -= 6; break; - case 0x756: + case EF_SWIFT_TRAP: offset -= 6; break; - case 0x75A: + case EF_SOLID_TRAP: offset -= 6; break; - case 0x77A: + case EF_ETERNAL_SLASH_HIT_2: offset -= 6; break; - case 0x7B2: + case EF_HAWK_BOOMERANG_HIT: offset -= 6; break; - case 0x802: + case EF_UNK_2050: offset -= 6; break; - case 0x859: + case EF_TERRA_DRIVE_HIT: offset -= 6; break; - case 0x86C: + case EF_ABYSS_DAGGER_HIT_3: offset -= 6; break; - case 0x870: + case EF_UNK_2160: offset -= 6; break; - case 0x475: + case EF_WE_ONEFOREVER: offset -= 4; break; - case 0x4C3: + case EF_SJ_DOCUMENT: offset -= 4; break; - case 0x522: + case EF_NEW_CROSSRIPPERSLASHER: offset -= 4; break; - case 0x5C5: + case EF_MINEFFECT_CROSSRIPPERSLASHER: offset -= 4; break; - case 0x6D5: + case EF_ROCKDOWN_HIT: offset -= 4; break; - case 0x6DF: + case EF_CRIMSON_ARROW_HIT: offset -= 4; break; - case 0x6E3: + case EF_VIOLENT_QUAKE_HIT: offset -= 4; break; - case 0x6EF: + case EF_MYSTERY_ILLUSION_HIT: offset -= 4; break; - case 0x6F4: + case EF_TORNADO_STORM_HIT: offset -= 4; break; - case 0x707: + case EF_ALL_BLOOM_HIT: offset -= 4; break; - case 0x72E: + case EF_ETERNAL_SLASH_HIT_1: offset -= 4; break; - case 0x742: + case EF_CRYSTAL_IMPACT_HIT: offset -= 4; break; - case 0x74A: + case EF_FATAL_SHADOW_CROW_HIT: offset -= 4; break; - case 0x753: + case EF_DEEP_BLIND_TRAP_HIT: offset -= 4; break; - case 0x757: + case EF_SWIFT_TRAP_HIT: offset -= 4; break; - case 0x75B: + case EF_SOLID_TRAP_HIT: offset -= 4; break; - case 0x76A: + case EF_UNK_1898: offset -= 4; break; - case 0x771: + case EF_HAWK_RUSH: offset -= 4; break; - case 0x7AF: + case EF_ABYSS_DAGGER_HIT: offset -= 4; break; - case 0x7B6: + case EF_GALE_STORM_HIT: offset -= 4; break; - case 0x7CA: + case EF_INCREASING_ACTIVITY_CAST_BOTTOM: offset -= 4; break; - case 0x7D5: + case EF_ACTIVITY_BURN_CAST_BOTTOM: offset -= 4; break; - case 0x7EB: + case EF_DIAMOND_STORM_BOTTOM: offset -= 4; break; - case 0x800: + case EF_UNK_2048: offset -= 4; break; - case 0x843: + case EF_FRENZY_SHOT_HIT: offset -= 4; break; - case 0x889: + case EF_SHIELD_SHOOTING_HIT: offset -= 4; break; - case 0x900: + case EF_NPC_KILLING_AURA_HIT: offset -= 4; break; - case 0x904: + case EF_NPC_CANE_OF_EVIL_EYE: offset -= 4; break; - case 0x91E: + case EF_GOLDENE_TONE: offset -= 4; break; - case 0x921: + case EF_BLAZING_AND_FURIOUS: offset -= 4; break; - case 0x923: + case EF_THE_ONE_FIGHTER_RISES_BOTTOM: offset -= 4; break; - case 0x924: + case EF_TEMPERING: offset -= 4; break; - case 0x926: + case EF_BLAST_FORGE_HIT: offset -= 4; break; - case 0x4C4: + case EF_FALLING_STAR: offset -= 10; break; - case 0x4D7: + case EF_PROMINENCE_KICK: offset -= 10; break; - case 0x4DB: + case EF_SOUL_REVOLVE: offset -= 10; break; - case 0x4CC: + case EF_SOUL_GOLEM: offset -= 16; break; - case 0x4CD: - case 0x4CE: - case 0x4D6: - case 0x545: - case 0x546: - case 0x547: - case 0x548: - case 0x5CF: - case 0x5D0: - case 0x64B: - case 0x64C: - case 0x64D: - case 0x64E: - case 0x64F: - case 0x650: + case EF_NEWMOON_KICK: + case EF_FULLMOON_KICK: + case EF_SOUL_CURSE: + case EF_NEW_ARMSCANNON_05_UP: + case EF_NEW_ARMSCANNON_05_DOWN: + case EF_NEW_ARMSCANNON_07_UP: + case EF_NEW_ARMSCANNON_07_DOWN: + case EF_MINEFFECT_ARMSCANNON_05: + case EF_MINEFFECT_ARMSCANNON_07: + case EF_BLUE_WAVE_1: + case EF_BLUE_WAVE_2: + case EF_BLUE_WAVE_3: + case EF_RED_WAVE_1: + case EF_RED_WAVE_2: + case EF_RED_WAVE_3: offset -= 6; break; - case 0x4EC: + case EF_TETRA_VORTEX_CAST: offset -= 2; break; - case 0x747: + case EF_UNK_1863: offset -= 2; break; - case 0x755: + case EF_SWIFT_TRAP_CAST: offset -= 2; break; - case 0x7A1: + case EF_UNK_1953: offset -= 2; break; - case 0x7E9: + case EF_SPELL_ENCHANTING: offset -= 2; break; - case 0x810: + case EF_METALLIC_FURY: offset -= 2; break; - case 0x854: + case EF_DEFT_STAB: offset -= 2; break; - case 0x888: + case EF_SHIELD_SHOOTING_CAST: offset -= 2; break; - case 0x966: + case EF_THE_W_PROTECTION_REUSE: offset -= 2; break; - case 0x967: + case EF_ELEMENTAL_BUSTER_FIRE_REUSE: offset -= 2; break; - case 0x968: + case EF_DESTRUCTIVE_HURRICANE_BOTTOM_REUSE: offset -= 2; break; - case 0x4EE: - case 0x4EF: - case 0x4F0: - case 0x4F1: + case EF_TETRA_VORTEX_BALL_1: + case EF_TETRA_VORTEX_BALL_2: + case EF_TETRA_VORTEX_BALL_3: + case EF_TETRA_VORTEX_BALL_4: offset -= 10; break; - case 0x4F2: - case 0x4F3: - case 0x4F4: - case 0x4F6: - case 0x4F7: - case 0x4F8: - case 0x4F9: - case 0x4FD: - case 0x63B: - case 0x63C: - case 0x63D: - case 0x63E: - case 0x686: - case 0x687: - case 0x688: - case 0x689: - case 0x68A: - case 0x6AE: - case 0x6AF: - case 0x6B0: - case 0x6B1: - case 0x6B2: - case 0x6B3: - case 0x6B4: - case 0x6B5: - case 0x6B6: - case 0x6B7: - case 0x6B8: - case 0x6B9: - case 0x6BA: - case 0x6BB: - case 0x6BC: - case 0x6BD: - case 0x6BE: - case 0x6BF: - case 0x6C0: - case 0x6C1: - case 0x6C2: - case 0x6C3: - case 0x6C4: - case 0x6C5: - case 0x6C6: - case 0x6C7: - case 0x6C8: - case 0x6CA: - case 0x6CB: - case 0x6CD: - case 0x6CE: - case 0x6CF: - case 0x6D1: - case 0x6D2: - case 0x6D3: - case 0x6D4: - case 0x6D9: - case 0x6DA: - case 0x6DD: - case 0x6DE: - case 0x6E1: - case 0x6E2: - case 0x6E9: - case 0x6EA: - case 0x6EB: - case 0x6EC: - case 0x6ED: - case 0x6EE: - case 0x6F0: - case 0x6F1: - case 0x6F2: - case 0x6F3: - case 0x701: - case 0x702: - case 0x703: - case 0x704: - case 0x705: - case 0x709: - case 0x70A: - case 0x70B: - case 0x70D: - case 0x70E: - case 0x70F: - case 0x748: - case 0x749: - case 0x758: - case 0x759: - case 0x762: - case 0x763: - case 0x764: - case 0x767: - case 0x768: - case 0x76B: - case 0x76C: - case 0x7B1: - case 0x7B3: - case 0x7C8: - case 0x7C9: - case 0x7D3: - case 0x7D4: - case 0x7DA: - case 0x7DC: - case 0x7DD: - case 0x7E3: - case 0x7E4: - case 0x7E5: - case 0x7E6: - case 0x7E7: - case 0x7E8: - case 0x7EC: - case 0x7ED: - case 0x7EE: - case 0x7EF: - case 0x7F0: - case 0x7F1: - case 0x7F2: - case 0x7F3: - case 0x7F4: - case 0x7F5: - case 0x7F6: - case 0x7F7: - case 0x7F8: - case 0x7F9: - case 0x7FA: - case 0x7FB: - case 0x7FC: - case 0x7FD: - case 0x807: - case 0x808: - case 0x809: - case 0x80A: - case 0x80B: - case 0x80C: - case 0x80D: - case 0x80E: - case 0x80F: - case 0x811: - case 0x812: - case 0x813: - case 0x814: - case 0x815: - case 0x816: - case 0x81B: - case 0x81C: - case 0x829: - case 0x82A: - case 0x832: - case 0x833: - case 0x834: - case 0x835: - case 0x836: - case 0x837: - case 0x838: - case 0x839: - case 0x83A: - case 0x83B: - case 0x83C: - case 0x844: - case 0x845: - case 0x846: - case 0x847: - case 0x848: - case 0x849: - case 0x84A: - case 0x84B: - case 0x84C: - case 0x84D: - case 0x855: - case 0x856: - case 0x857: - case 0x858: - case 0x85A: - case 0x85B: - case 0x85C: - case 0x85D: - case 0x85E: - case 0x85F: - case 0x860: - case 0x861: - case 0x862: - case 0x863: - case 0x864: - case 0x865: - case 0x866: - case 0x867: - case 0x868: - case 0x869: - case 0x86D: - case 0x86E: - case 0x86F: - case 0x871: - case 0x872: - case 0x873: - case 0x874: - case 0x876: - case 0x877: - case 0x878: - case 0x879: - case 0x87A: - case 0x87B: - case 0x87C: - case 0x87D: - case 0x87E: - case 0x87F: - case 0x880: - case 0x881: - case 0x882: - case 0x883: - case 0x884: - case 0x885: - case 0x886: - case 0x88A: - case 0x88B: - case 0x88C: - case 0x88D: - case 0x88E: - case 0x88F: - case 0x890: - case 0x891: - case 0x892: - case 0x894: - case 0x895: - case 0x896: - case 0x897: - case 0x898: - case 0x899: - case 0x89A: - case 0x8BC: - case 0x8BD: - case 0x8BE: - case 0x8BF: - case 0x8C1: - case 0x8C2: - case 0x8C3: - case 0x8C4: - case 0x8C5: - case 0x8C6: - case 0x8C7: - case 0x8C8: - case 0x8CA: - case 0x8CB: - case 0x8CC: - case 0x8CD: - case 0x8D2: - case 0x8D3: - case 0x8D4: - case 0x8D5: - case 0x8D6: - case 0x8D7: - case 0x8D8: - case 0x8D9: - case 0x8DA: - case 0x8DB: - case 0x8DC: - case 0x8DD: - case 0x8DE: - case 0x8DF: - case 0x8E1: - case 0x8E2: - case 0x8E8: + case EF_TETRA_VORTEX_FIRE_EXP: + case EF_TETRA_VORTEX_WATER_EXP: + case EF_TETRA_VORTEX_WIND_EXP: + case EF_TETRA_VORTEX_FIRE_GROUND: + case EF_TETRA_VORTEX_WATER_GROUND: + case EF_TETRA_VORTEX_WIND_GROUND: + case EF_TETRA_VORTEX_EARTH_GROUND: + case EF_TETRA_VORTEX_CORE_GROUND: + case EF_NEW_AROMAOIL: + case EF_NEW_AROMAOIL_BOTTOM: + case EF_NEW_BATHFOAM: + case EF_NEW_BATHFOAM_BOTTOM: + case EF_UNK_1670: + case EF_UNK_1671: + case EF_UNK_1672: + case EF_UNK_1673: + case EF_UNK_1674: + case EF_UNK_1710: + case EF_UNK_1711: + case EF_UNK_1712: + case EF_UNK_1713: + case EF_UNK_1714: + case EF_UNK_1715: + case EF_UNK_1716: + case EF_UNK_1717: + case EF_UNK_1718: + case EF_UNK_1719: + case EF_UNK_1720: + case EF_UNK_1721: + case EF_DRAGONIC_AURA: + case EF_DRAGONIC_AURA_BOTTOM: + case EF_DRAGONIC_AURA_HIT: + case EF_DRAGONIC_AURA_HIT_BOTTOM: + case EF_DRAGONIC_AURA_BUFF: + case EF_DRAGONIC_AURA_BUFF_BOTTOM: + case EF_UNK_1728: + case EF_UNK_1729: + case EF_NEW_AUTOSHADOWSPELL: + case EF_NEW_AUTOSHADOWSPELL_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE: + case EF_DESTRUCTIVE_HURRICANE_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE_CAST: + case EF_DESTRUCTIVE_HURRICANE_CAST_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE_CLIMAX: + case EF_DEADLY_PROJECTION_CAST: + case EF_DEADLY_PROJECTION_CAST_BOTTOM: + case EF_DEADLY_PROJECTION: + case EF_SOUL_VC_STRIKE_CAST: + case EF_SOUL_VC_STRIKE_CAST_BOTTOM: + case EF_ROCKDOWN: + case EF_ROCKDOWN_BOTTOM: + case EF_ROCKDOWN_CAST: + case EF_ROCKDOWN_CAST_BOTTOM: + case EF_RAIN_OF_CRYSTAL: + case EF_RAIN_OF_CRYSTAL_BOTTOM: + case EF_CRIMSON_ARROW_CAST: + case EF_CRIMSON_ARROW_CAST_BOTTOM: + case EF_VIOLENT_QUAKE_CAST: + case EF_VIOLENT_QUAKE_CAST_BOTTOM: + case EF_ASTRAL_STRIKE_CAST: + case EF_ASTRAL_STRIKE_CAST_BOTTOM: + case EF_MYSTERY_ILLUSION: + case EF_MYSTERY_ILLUSION_BOTTOM: + case EF_MYSTERY_ILLUSION_CAST: + case EF_MYSTERY_ILLUSION_CAST_BOTTOM: + case EF_TORNADO_STORM: + case EF_TORNADO_STORM_BOTTOM: + case EF_TORNADO_STORM_CAST: + case EF_TORNADO_STORM_CAST_BOTTOM: + case EF_VIOLENT_QUAKE_BOTTOM: + case EF_ALL_BLOOM: + case EF_ALL_BLOOM_BOTTOM: + case EF_ALL_BLOOM_CAST: + case EF_ALL_BLOOM_CAST_BOTTOM: + case EF_CLIMAX_LIGHT: + case EF_CLIMAX_CAST: + case EF_CLIMAX_CAST_LOOP: + case EF_FLORAL_FLARE_ROAD_CAST: + case EF_FLORAL_FLARE_ROAD_CAST_BOTTOM: + case EF_FLORAL_FLARE_ROAD_HIT: + case EF_FATAL_SHADOW_CROW: + case EF_FATAL_SHADOW_CROW_BOTTOM: + case EF_SOLID_TRAP_CAST: + case EF_SOLID_TRAP_CAST_BOTTOM: + case EF_STRATUM_TREMOR_CAST: + case EF_STRATUM_TREMOR_CAST_BOTTOM: + case EF_STRATUM_TREMOR_HIT: + case EF_UNK_1895: + case EF_UNK_1896: + case EF_WIND_SIGN: + case EF_WIND_SIGN_LOOP: + case EF_HAWK_BOOMERANG_CAST: + case EF_HAWK_BOOMERANG_START: + case EF_INCREASING_ACTIVITY: + case EF_INCREASING_ACTIVITY_CAST: + case EF_ACTIVITY_BURN: + case EF_ACTIVITY_BURN_CAST: + case EF_SERPENS_CAST: + case EF_SERPENS_HIT: + case EF_SERPENS_SHIELD: + case EF_DILUVIO_ICE: + case EF_DILUVIO_ICE_BOTTOM: + case EF_DILUVIO_CAST: + case EF_DILUVIO_CAST_BOTTOM: + case EF_DILUVIO_HIT: + case EF_DILUVIO_ARMOR: + case EF_DIAMOND_STORM_CAST: + case EF_DIAMOND_STORM_CAST_BOTTOM: + case EF_DIAMOND_STORM_HIT: + case EF_VENOM_SWAMP_BOTTOM: + case EF_VENOM_SWAMP_CAST: + case EF_VENOM_SWAMP_CAST_BOTTOM: + case EF_VENOM_SWAMP_HIT: + case EF_ARDOR: + case EF_ARDOR_BOTTOM: + case EF_ARDOR_CAST: + case EF_ARDOR_CAST_BOTTOM: + case EF_ARDOR_HIT: + case EF_ARDOR_FLAMEARMOR: + case EF_LIGHTNING_LAND: + case EF_LIGHTNING_LAND_BOTTOM: + case EF_LIGHTNING_LAND_CAST: + case EF_LIGHTNING_LAND_CAST_BOTTOM: + case EF_LIGHTNING_LAND_HIT: + case EF_CONFLAGRATION: + case EF_CONFLAGRATION_BOTTOM: + case EF_CONFLAGRATION_CAST: + case EF_CONFLAGRATION_CAST_BOTTOM: + case EF_CONFLAGRATION_HIT: + case EF_SOUND_BLEND: + case EF_SOUND_BLEND_CAST: + case EF_SOUND_BLEND_CAST_BOTTOM: + case EF_SOUND_BLEND_RED: + case EF_UNK_2065: + case EF_UNK_2066: + case EF_UNK_2067: + case EF_UNK_2068: + case EF_UNK_2069: + case EF_UNK_2070: + case EF_NIFLHEIM: + case EF_NIFLHEIM_CAST: + case EF_ABYSS_STRIKE_CAST: + case EF_ABYSS_STRIKE_CAST_BOTTOM: + case EF_PROCELLA: + case EF_PROCELLA_BOTTOM: + case EF_PROCELLA_CAST: + case EF_PROCELLA_CAST_BOTTOM: + case EF_PROCELLA_HIT: + case EF_PROCELLA_STORM: + case EF_TERREMOTUS: + case EF_TERREMOTUS_CAST: + case EF_TERREMOTUS_CAST_BOTTOM: + case EF_TERREMOTUS_HIT: + case EF_TERREMOTUS_PROTECT: + case EF_UNK_2116: + case EF_UNK_2117: + case EF_UNK_2118: + case EF_UNK_2119: + case EF_UNK_2120: + case EF_UNK_2121: + case EF_MUSICAL_INTERLUDE: + case EF_MUSICAL_INTERLUDE_CAST: + case EF_UNK_2124: + case EF_UNK_2125: + case EF_TERRA_DRIVE: + case EF_TERRA_DRIVE_BOTTOM: + case EF_TERRA_DRIVE_CAST: + case EF_TERRA_DRIVE_CAST_BOTTOM: + case EF_ELEMENTAL_BUSTER_CAST: + case EF_ELEMENTAL_BUSTER_FIRE: + case EF_ELEMENTAL_BUSTER_FIRE_BOTTOM: + case EF_ELEMENTAL_BUSTER_FIRE_HIT: + case EF_ELEMENTAL_BUSTER_LAND: + case EF_ELEMENTAL_BUSTER_LAND_BOTTOM: + case EF_ELEMENTAL_BUSTER_LAND_HIT: + case EF_ELEMENTAL_BUSTER_POISON: + case EF_ELEMENTAL_BUSTER_POISON_BOTTOM: + case EF_ELEMENTAL_BUSTER_POISON_HIT: + case EF_ELEMENTAL_BUSTER_WATER: + case EF_ELEMENTAL_BUSTER_WATER_BOTTOM: + case EF_ELEMENTAL_BUSTER_WATER_HIT: + case EF_ELEMENTAL_BUSTER_WIND: + case EF_ELEMENTAL_BUSTER_WIND_BOTTOM: + case EF_ELEMENTAL_BUSTER_WIND_HIT: + case EF_UNK_2157: + case EF_UNK_2158: + case EF_UNK_2159: + case EF_ADVANCED_PROTECTION: + case EF_ADVANCED_PROTECTION_BOTTOM: + case EF_ADVANCED_PROTECTION_CAST: + case EF_ADVANCED_PROTECTION_CAST_BOTTOM: + case EF_UNK_2166: + case EF_UNK_2167: + case EF_UNK_2168: + case EF_UNK_2169: + case EF_UNK_2170: + case EF_UNK_2171: + case EF_UNK_2172: + case EF_UNK_2173: + case EF_UNK_2174: + case EF_UNK_2175: + case EF_UNK_2176: + case EF_UNK_2177: + case EF_UNK_2178: + case EF_UNK_2179: + case EF_UNK_2180: + case EF_UNK_2181: + case EF_UNK_2182: + case EF_THE_W_PROTECTION: + case EF_THE_W_PROTECTION_CAST: + case EF_UNK_2188: + case EF_UNK_2189: + case EF_UNK_2190: + case EF_UNK_2191: + case EF_UNK_2192: + case EF_UNK_2193: + case EF_UNK_2194: + case EF_UNK_2196: + case EF_UNK_2197: + case EF_UNK_2198: + case EF_UNK_2199: + case EF_UNK_2200: + case EF_UNK_2201: + case EF_UNK_2202: + case EF_HELLTREE_CAST: + case EF_HELLTREE_CAST_BOTTOM: + case EF_HELLTREE_DUSTY: + case EF_HELLTREE_HOWLING: + case EF_RESEARCH_REPORT: + case EF_RESEARCH_REPORT_CAST: + case EF_RESEARCH_REPORT_CAST_BOTTOM: + case EF_STATE_LASSITUDE: + case EF_STATE_SWOONING: + case EF_STATE_HOLYFLAME: + case EF_WOODEN_WARRIOR_CAST: + case EF_WOODEN_WARRIOR_CAST_BOTTOM: + case EF_WOODEN_WARRIOR_ATTACK: + case EF_WOODEN_WARRIOR_ATTACK_HIT: + case EF_WOODEN_WARRIOR_THROWROCK: + case EF_WOODEN_WARRIOR_THROWROCK_HIT: + case EF_SERPENS_DEEP_POISONING: + case EF_SERPENS_DEEP_POISONING_BOTTOM: + case EF_DILUVIO_COLD_FORCE: + case EF_DILUVIO_COLD_FORCE_BOTTOM: + case EF_ARDOR_FLAMETECHNIC: + case EF_ARDOR_FLAMETECHNIC_BOTTOM: + case EF_PROCELLA_GRACE_BREEZE: + case EF_PROCELLA_GRACE_BREEZE_BOTTOM: + case EF_TERREMOTUS_EARTH_CARE: + case EF_TERREMOTUS_EARTH_CARE_BOTTOM: + case EF_STATE_LIGHTNINGSTRIKE: + case EF_STATE_CONFLAGRATION: + case EF_STATE_FROSTBITE: + case EF_STATE_FROSTBITE_FINISH: + case EF_STATE_CRYSTALLIZATION: + case EF_STATE_DEADLYPOISON: + case EF_UNK_2280: offset -= 2; break; - case 0x543: - case 0x544: - case 0x549: - case 0x54A: - case 0x5CE: - case 0x5D1: - case 0x736: - case 0x737: - case 0x738: - case 0x77F: - case 0x782: - case 0x79E: - case 0x7A0: - case 0x7A2: - case 0x7A3: - case 0x7D9: - case 0x7DB: - case 0x7E0: - case 0x7E1: - case 0x827: - case 0x828: - case 0x82B: - case 0x82C: - case 0x82D: - case 0x913: - case 0x914: - case 0x915: - case 0x916: - case 0x917: - case 0x918: - case 0x919: - case 0x91A: - case 0x91B: - case 0x91C: - case 0x91D: - case 0x91F: - case 0x920: - case 0x943: - case 0x944: - case 0x948: - case 0x949: - case 0x94A: - case 0x94B: - case 0x94C: - case 0x94D: - case 0x94F: - case 0x950: - case 0x951: - case 0x952: - case 0x953: - case 0x954: + case EF_NEW_ARMSCANNON_01_UP: + case EF_NEW_ARMSCANNON_01_DOWN: + case EF_NEW_ARMSCANNON_11_UP: + case EF_NEW_ARMSCANNON_11_DOWN: + case EF_MINEFFECT_ARMSCANNON_01: + case EF_MINEFFECT_ARMSCANNON_11: + case EF_EFFLIGO: + case EF_EFFLIGO_BOTTOM: + case EF_EFFLIGO_HIT: + case EF_FLAME_TRAP: + case EF_FLAME_TRAP_HIT: + case EF_UNK_1950: + case EF_UNK_1952: + case EF_UNK_1954: + case EF_UNK_1955: + case EF_SERPENS_BOTTOM: + case EF_SERPENS_CAST_BOTTOM: + case EF_ETERNAL_SLASH_HIT_3: + case EF_CHAIN_REACTION_SHOT_HITSUB: + case EF_ABYSS_STRIKE: + case EF_ABYSS_STRIKE_BOTTOM: + case EF_ABYSS_STRIKE_GROUND: + case EF_ABYSS_STRIKE_GROUND_BOTTOM: + case EF_ABYSS_STRIKE_HIT: + case EF_NEEDLE_STINGER: + case EF_NEEDLE_STINGER_BOTTOM: + case EF_NEEDLE_STINGER_HIT: + case EF_ABSOLUTE_ZEPHYR: + case EF_ABSOLUTE_ZEPHYR_BOTTOM: + case EF_ABSOLUTE_ZEPHYR_HIT: + case EF_TWISTER_CUTTER: + case EF_TWISTER_CUTTER_HIT: + case EF_HEILIGE_PFERD: + case EF_HEILIGE_PFERD_BOTTOM: + case EF_HEILIGE_PFERD_CAST: + case EF_GLANZEN_SPIES: + case EF_GLANZEN_SPIES_HIT: + case EF_TETRA_VORTEX_WATER_SUB_2: + case EF_TETRA_VORTEX_EARTH_SUB_2: + case EF_NPC_20TH_CRYSTAL_S: + case EF_NPC_20TH_CRYSTAL_M: + case EF_NPC_20TH_CRYSTAL_L: + case EF_NPC_GATE_GREEN_1: + case EF_NPC_GATE_PURPLE_1: + case EF_NPC_GATE_RED_1: + case EF_NPC_GATE_GREEN_2: + case EF_NPC_GATE_PURPLE_2: + case EF_NPC_GATE_RED_2: + case EF_NPC_GATE_GREEN_3: + case EF_NPC_GATE_PURPLE_3: + case EF_NPC_GATE_RED_3: offset -= 4; break; - case 0x639: + case EF_NEW_REVERBERATION_HIT: offset -= 3; break; - case 0x657: + case EF_NEW_EARTHGRAVE_HIT: offset -= 3; break; - case 0x676: + case EF_NEW_EPICLESIS: offset -= 3; break; - case 0x774: + case EF_ABR_INFINITY_CAST: offset -= 3; break; - case 0x672: - case 0x673: - case 0x6A7: - case 0x6A8: - case 0x6A9: - case 0x71A: - case 0x71B: - case 0x72F: - case 0x730: - case 0x732: - case 0x89C: - case 0x89D: - case 0x89F: - case 0x8A0: - case 0x8A1: - case 0x8A2: - case 0x8A3: - case 0x8A4: - case 0x8A5: - case 0x8A7: - case 0x8A8: - case 0x8A9: - case 0x8AA: - case 0x8AB: - case 0x8AC: - case 0x8AD: - case 0x8AF: - case 0x8B0: - case 0x8B1: - case 0x8B2: - case 0x8B3: - case 0x8B4: - case 0x8B5: - case 0x8B7: - case 0x8B8: - case 0x8B9: - case 0x8BA: - case 0x8BB: + case EF_NEW_AIMEDBOLT_END: + case EF_NEW_AIMEDBOLT_TARGET_LOOP: + case EF_NEW_VULCANARM: + case EF_NEW_VULCANARM_BOTTOM: + case EF_NEW_VULCANARM_SHOTHOLE: + case EF_NEW_D_MACHINE_CAST: + case EF_NEW_D_MACHINE_CAST_BOTTOM: + case EF_UNK_1839: + case EF_A_MACHINE_CAST: + case EF_A_MACHINE_HIT: + case EF_ACIDIFIED_ZONE_FIRE_CAST: + case EF_ACIDIFIED_ZONE_FIRE_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_FIRE_HIT: + case EF_ACIDIFIED_ZONE_FIRE_START: + case EF_ACIDIFIED_ZONE_FIRE_START_BOTTOM: + case EF_ACIDIFIED_ZONE_FIRE_LOOP: + case EF_ACIDIFIED_ZONE_FIRE_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_CAST: + case EF_ACIDIFIED_ZONE_WATER_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_HIT: + case EF_ACIDIFIED_ZONE_WATER_START: + case EF_ACIDIFIED_ZONE_WATER_START_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_LOOP: + case EF_ACIDIFIED_ZONE_WATER_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_CAST: + case EF_ACIDIFIED_ZONE_WIND_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_HIT: + case EF_ACIDIFIED_ZONE_WIND_START: + case EF_ACIDIFIED_ZONE_WIND_START_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_LOOP: + case EF_ACIDIFIED_ZONE_WIND_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_CAST: + case EF_ACIDIFIED_ZONE_GROUND_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_HIT: + case EF_ACIDIFIED_ZONE_GROUND_START: + case EF_ACIDIFIED_ZONE_GROUND_START_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_LOOP: + case EF_ACIDIFIED_ZONE_GROUND_LOOP_BOTTOM: offset -= 3; break; - case 0x6F5: - case 0x6F6: - case 0x6F7: - case 0x739: - case 0x73A: - case 0x73C: - case 0x73D: - case 0x7AC: - case 0x7AD: - case 0x7D0: - case 0x7D1: - case 0x7D2: - case 0x851: - case 0x852: + case EF_FROZEN_SLASH: + case EF_FROZEN_SLASH_CAST: + case EF_FROZEN_SLASH_CAST_BOTTOM: + case EF_COMPETENTIA: + case EF_COMPETENTIA_BOTTOM: + case EF_COMPETENTIA_LOOP: + case EF_COMPETENTIA_LOOP_BOTTOM: + case EF_SINCERE_FAITH: + case EF_SINCERE_FAITH_BOTTOM: + case EF_UNK_2000: + case EF_UNK_2001: + case EF_UNK_2002: + case EF_ABYSS_SQUARE: + case EF_ABYSS_SQUARE_BOTTOM: --offset; break; - case 0x788: + case EF_NEW_DILECTIO_HEAL_TARGET_BOTTOM: ++offset; break; - case 0x743: + case EF_CRYSTAL_IMPACT_BUFF: offset += 4; break; - case 0x746: + case EF_UNK_1862: --offset; break; - case 0x75F: + case EF_BENEDICTUM: --offset; break; - case 0x7B4: + case EF_GALE_STORM_CAST: --offset; break; - case 0x7C3: + case EF_POWERFUL_FAITH: --offset; break; - case 0x7CF: + case EF_FIRM_FAITH: --offset; break; - case 0x803: - case 0x806: - case 0x81E: - case 0x821: - case 0x83E: - case 0x83F: + case EF_FIRST_BRAND: + case EF_FIRST_BRAND_START: + case EF_SECOND_FAITH: + case EF_SECOND_FAITH_START: + case EF_FROM_THE_ABYSS: + case EF_ABYSS_STRIKE_HIT_2: offset -= 5; break; - case 0x7DE: - case 0x7DF: + case EF_CHAIN_REACTION_SHOT_CAST: + case EF_CHAIN_REACTION_SHOT_CAST_BOTTOM: ++offset; break; - case 0x94E: + case EF_20TH_FIREWORK: offset += 16; break; } @@ -863,689 +863,689 @@ int GetHatEffectOffsetY(int id, CGameActor* actor) { // FUNCTION: fn_19041 bool CEZ2STRScreenEffect::IsAttachedToHead() const { switch (this->id) { - case 0x425: - case 0x42C: - case 0x442: - case 0x446: - case 0x44A: - case 0x44E: - case 0x44F: - case 0x451: - case 0x453: - case 0x454: - case 0x455: - case 0x45C: - case 0x45F: - case 0x463: - case 0x464: - case 0x467: - case 0x46D: - case 0x46E: - case 0x470: - case 0x472: - case 0x473: - case 0x475: - case 0x476: - case 0x4C2: - case 0x4C3: - case 0x4C4: - case 0x4C5: - case 0x4CC: - case 0x4CD: - case 0x4CE: - case 0x4D6: - case 0x4D7: - case 0x4DB: - case 0x4EA: - case 0x4EB: - case 0x4EC: - case 0x4ED: - case 0x4EE: - case 0x4EF: - case 0x4F0: - case 0x4F1: - case 0x4F2: - case 0x4F3: - case 0x4F4: - case 0x4F5: - case 0x4F6: - case 0x4F7: - case 0x4F8: - case 0x4F9: - case 0x4FA: - case 0x4FB: - case 0x4FD: - case 0x522: - case 0x543: - case 0x544: - case 0x545: - case 0x546: - case 0x547: - case 0x548: - case 0x549: - case 0x54A: - case 0x552: - case 0x590: - case 0x591: - case 0x592: - case 0x593: - case 0x5C5: - case 0x5CE: - case 0x5CF: - case 0x5D0: - case 0x5D1: - case 0x62D: - case 0x62E: - case 0x62F: - case 0x631: - case 0x632: - case 0x633: - case 0x634: - case 0x635: - case 0x636: - case 0x637: - case 0x638: - case 0x639: - case 0x63B: - case 0x63C: - case 0x63D: - case 0x63E: - case 0x63F: - case 0x64B: - case 0x64C: - case 0x64D: - case 0x64E: - case 0x64F: - case 0x650: - case 0x657: - case 0x658: - case 0x659: - case 0x65A: - case 0x65B: - case 0x65C: - case 0x65D: - case 0x65E: - case 0x65F: - case 0x660: - case 0x663: - case 0x664: - case 0x665: - case 0x666: - case 0x667: - case 0x668: - case 0x669: - case 0x66A: - case 0x66B: - case 0x66C: - case 0x66D: - case 0x66E: - case 0x66F: - case 0x670: - case 0x671: - case 0x672: - case 0x673: - case 0x674: - case 0x675: - case 0x676: - case 0x686: - case 0x687: - case 0x688: - case 0x689: - case 0x68A: - case 0x6A2: - case 0x6A3: - case 0x6A4: - case 0x6A5: - case 0x6A6: - case 0x6A7: - case 0x6A8: - case 0x6A9: - case 0x6AC: - case 0x6AE: - case 0x6AF: - case 0x6B0: - case 0x6B1: - case 0x6B2: - case 0x6B3: - case 0x6B4: - case 0x6B5: - case 0x6B6: - case 0x6B7: - case 0x6B8: - case 0x6B9: - case 0x6BA: - case 0x6BB: - case 0x6BC: - case 0x6BD: - case 0x6BE: - case 0x6BF: - case 0x6C0: - case 0x6C1: - case 0x6C2: - case 0x6C3: - case 0x6C4: - case 0x6C5: - case 0x6C6: - case 0x6C7: - case 0x6C8: - case 0x6C9: - case 0x6CA: - case 0x6CB: - case 0x6CC: - case 0x6CD: - case 0x6CE: - case 0x6CF: - case 0x6D0: - case 0x6D1: - case 0x6D2: - case 0x6D3: - case 0x6D4: - case 0x6D5: - case 0x6D6: - case 0x6D7: - case 0x6D9: - case 0x6DA: - case 0x6DD: - case 0x6DE: - case 0x6DF: - case 0x6E1: - case 0x6E2: - case 0x6E3: - case 0x6E9: - case 0x6EA: - case 0x6EB: - case 0x6EC: - case 0x6ED: - case 0x6EE: - case 0x6EF: - case 0x6F0: - case 0x6F1: - case 0x6F2: - case 0x6F3: - case 0x6F4: - case 0x6F5: - case 0x6F6: - case 0x6F7: - case 0x6F8: - case 0x6F9: - case 0x6FA: - case 0x6FB: - case 0x6FC: - case 0x6FD: - case 0x6FE: - case 0x6FF: - case 0x700: - case 0x701: - case 0x702: - case 0x703: - case 0x704: - case 0x705: - case 0x707: - case 0x709: - case 0x70A: - case 0x70B: - case 0x70D: - case 0x70E: - case 0x70F: - case 0x710: - case 0x711: - case 0x712: - case 0x714: - case 0x716: - case 0x718: - case 0x719: - case 0x71A: - case 0x71B: - case 0x71C: - case 0x71D: - case 0x71E: - case 0x71F: - case 0x720: - case 0x721: - case 0x722: - case 0x723: - case 0x724: - case 0x726: - case 0x727: - case 0x728: - case 0x729: - case 0x72A: - case 0x72B: - case 0x72C: - case 0x72E: - case 0x72F: - case 0x730: - case 0x732: - case 0x736: - case 0x737: - case 0x738: - case 0x739: - case 0x73A: - case 0x73C: - case 0x73D: - case 0x73E: - case 0x73F: - case 0x740: - case 0x741: - case 0x742: - case 0x743: - case 0x744: - case 0x745: - case 0x746: - case 0x747: - case 0x748: - case 0x749: - case 0x74A: - case 0x751: - case 0x752: - case 0x753: - case 0x755: - case 0x756: - case 0x757: - case 0x758: - case 0x759: - case 0x75A: - case 0x75B: - case 0x75C: - case 0x75D: - case 0x75E: - case 0x75F: - case 0x760: - case 0x761: - case 0x762: - case 0x763: - case 0x764: - case 0x765: - case 0x766: - case 0x767: - case 0x768: - case 0x76A: - case 0x76B: - case 0x76C: - case 0x76D: - case 0x76F: - case 0x770: - case 0x771: - case 0x772: - case 0x773: - case 0x774: - case 0x775: - case 0x77A: - case 0x77B: - case 0x77C: - case 0x77D: - case 0x77F: - case 0x782: - case 0x784: - case 0x785: - case 0x786: - case 0x787: - case 0x788: - case 0x789: - case 0x78A: - case 0x78B: - case 0x78E: - case 0x78F: - case 0x790: - case 0x791: - case 0x793: - case 0x794: - case 0x795: - case 0x796: - case 0x797: - case 0x798: - case 0x799: - case 0x79A: - case 0x79B: - case 0x79C: - case 0x79D: - case 0x79E: - case 0x7A0: - case 0x7A1: - case 0x7A2: - case 0x7A3: - case 0x7AC: - case 0x7AD: - case 0x7AE: - case 0x7AF: - case 0x7B1: - case 0x7B2: - case 0x7B3: - case 0x7B4: - case 0x7B6: - case 0x7B7: - case 0x7B8: - case 0x7B9: - case 0x7BA: - case 0x7BB: - case 0x7BC: - case 0x7BD: - case 0x7BE: - case 0x7BF: - case 0x7C0: - case 0x7C1: - case 0x7C3: - case 0x7C4: - case 0x7C5: - case 0x7C6: - case 0x7C7: - case 0x7C8: - case 0x7C9: - case 0x7CA: - case 0x7CB: - case 0x7CC: - case 0x7CD: - case 0x7CF: - case 0x7D0: - case 0x7D1: - case 0x7D2: - case 0x7D3: - case 0x7D4: - case 0x7D5: - case 0x7D6: - case 0x7D7: - case 0x7D8: - case 0x7D9: - case 0x7DA: - case 0x7DB: - case 0x7DC: - case 0x7DD: - case 0x7DE: - case 0x7DF: - case 0x7E0: - case 0x7E1: - case 0x7E2: - case 0x7E3: - case 0x7E4: - case 0x7E5: - case 0x7E6: - case 0x7E7: - case 0x7E8: - case 0x7E9: - case 0x7EB: - case 0x7EC: - case 0x7ED: - case 0x7EE: - case 0x7EF: - case 0x7F0: - case 0x7F1: - case 0x7F2: - case 0x7F3: - case 0x7F4: - case 0x7F5: - case 0x7F6: - case 0x7F7: - case 0x7F8: - case 0x7F9: - case 0x7FA: - case 0x7FB: - case 0x7FC: - case 0x7FD: - case 0x7FE: - case 0x7FF: - case 0x800: - case 0x801: - case 0x802: - case 0x803: - case 0x804: - case 0x805: - case 0x806: - case 0x807: - case 0x808: - case 0x809: - case 0x80A: - case 0x80B: - case 0x80C: - case 0x80D: - case 0x80E: - case 0x80F: - case 0x810: - case 0x811: - case 0x812: - case 0x813: - case 0x814: - case 0x815: - case 0x816: - case 0x817: - case 0x818: - case 0x819: - case 0x81B: - case 0x81C: - case 0x81E: - case 0x81F: - case 0x821: - case 0x823: - case 0x824: - case 0x825: - case 0x826: - case 0x827: - case 0x828: - case 0x829: - case 0x82A: - case 0x82B: - case 0x82C: - case 0x82D: - case 0x82E: - case 0x82F: - case 0x830: - case 0x831: - case 0x832: - case 0x833: - case 0x834: - case 0x835: - case 0x836: - case 0x837: - case 0x838: - case 0x839: - case 0x83A: - case 0x83B: - case 0x83C: - case 0x83E: - case 0x83F: - case 0x840: - case 0x841: - case 0x843: - case 0x844: - case 0x845: - case 0x846: - case 0x847: - case 0x848: - case 0x849: - case 0x84A: - case 0x84B: - case 0x84C: - case 0x84D: - case 0x84E: - case 0x84F: - case 0x850: - case 0x851: - case 0x852: - case 0x853: - case 0x854: - case 0x855: - case 0x856: - case 0x857: - case 0x858: - case 0x859: - case 0x85A: - case 0x85B: - case 0x85C: - case 0x85D: - case 0x85E: - case 0x85F: - case 0x860: - case 0x861: - case 0x862: - case 0x863: - case 0x864: - case 0x865: - case 0x866: - case 0x867: - case 0x868: - case 0x869: - case 0x86B: - case 0x86C: - case 0x86D: - case 0x86E: - case 0x86F: - case 0x870: - case 0x871: - case 0x872: - case 0x873: - case 0x874: - case 0x876: - case 0x877: - case 0x878: - case 0x879: - case 0x87A: - case 0x87B: - case 0x87C: - case 0x87D: - case 0x87E: - case 0x87F: - case 0x880: - case 0x881: - case 0x882: - case 0x883: - case 0x884: - case 0x885: - case 0x886: - case 0x888: - case 0x889: - case 0x88A: - case 0x88B: - case 0x88C: - case 0x88D: - case 0x88E: - case 0x88F: - case 0x890: - case 0x891: - case 0x892: - case 0x894: - case 0x895: - case 0x896: - case 0x897: - case 0x898: - case 0x899: - case 0x89A: - case 0x89C: - case 0x89D: - case 0x89F: - case 0x8A0: - case 0x8A1: - case 0x8A2: - case 0x8A3: - case 0x8A4: - case 0x8A5: - case 0x8A7: - case 0x8A8: - case 0x8A9: - case 0x8AA: - case 0x8AB: - case 0x8AC: - case 0x8AD: - case 0x8AF: - case 0x8B0: - case 0x8B1: - case 0x8B2: - case 0x8B3: - case 0x8B4: - case 0x8B5: - case 0x8B7: - case 0x8B8: - case 0x8B9: - case 0x8BA: - case 0x8BB: - case 0x8BC: - case 0x8BD: - case 0x8BE: - case 0x8BF: - case 0x8C1: - case 0x8C2: - case 0x8C3: - case 0x8C4: - case 0x8C5: - case 0x8C6: - case 0x8C7: - case 0x8C8: - case 0x8CA: - case 0x8CB: - case 0x8CC: - case 0x8CD: - case 0x8CE: - case 0x8D0: - case 0x8D1: - case 0x8D2: - case 0x8D3: - case 0x8D4: - case 0x8D5: - case 0x8D6: - case 0x8D7: - case 0x8D8: - case 0x8D9: - case 0x8DA: - case 0x8DB: - case 0x8DC: - case 0x8DD: - case 0x8DE: - case 0x8DF: - case 0x8E1: - case 0x8E2: - case 0x8E7: - case 0x8E8: - case 0x900: - case 0x904: - case 0x910: - case 0x911: - case 0x912: - case 0x913: - case 0x914: - case 0x915: - case 0x916: - case 0x917: - case 0x918: - case 0x919: - case 0x91A: - case 0x91B: - case 0x91C: - case 0x91D: - case 0x91E: - case 0x91F: - case 0x920: - case 0x921: - case 0x923: - case 0x924: - case 0x926: - case 0x943: - case 0x944: - case 0x948: - case 0x949: - case 0x94A: - case 0x94B: - case 0x94C: - case 0x94D: - case 0x94E: - case 0x94F: - case 0x950: - case 0x951: - case 0x952: - case 0x953: - case 0x954: - case 0x955: - case 0x95B: - case 0x95C: - case 0x95D: - case 0x95E: - case 0x95F: - case 0x963: - case 0x965: - case 0x966: - case 0x967: - case 0x968: - case 0x969: - case 0x96A: - case 0x975: - case 0x976: + case EF_C_MAKER: + case EF_D_TAIL: + case EF_MARKING_USE_CHANGEMONSTER: + case EF_ACH_COMPLETE: + case EF_FRESHSHRIMP: + case EF_SU_TUNABELLY: + case EF_SU_SCRATCH: + case EF_SU_BITE: + case EF_SU_SCAROFTAROU: + case EF_SU_ARCLOUSEDASH: + case EF_SU_PICKYPECK: + case EF_SU_BUNCHOFSHRIMP: + case EF_BITE_SCAR: + case EF_SU_GROOMING: + case EF_SU_CHATTERING: + case EF_SU_POWEROFFLOCK: + case EF_FIREDANCE: + case EF_RICHS_COIN_A: + case EF_RL_ANTI_MATERIAL_BLAST: + case EF_HEAT_BARREL: + case EF_H_MINE: + case EF_WE_ONEFOREVER: + case EF_WE_CHEERUP: + case EF_SOLARBURST: + case EF_SJ_DOCUMENT: + case EF_FALLING_STAR: + case EF_FLASH_KICK: + case EF_SOUL_GOLEM: + case EF_NEWMOON_KICK: + case EF_FULLMOON_KICK: + case EF_SOUL_CURSE: + case EF_PROMINENCE_KICK: + case EF_SOUL_REVOLVE: + case EF_NEW_ADORAMUS: + case EF_NEW_ADORAMUS_BOTTOM: + case EF_TETRA_VORTEX_CAST: + case EF_TETRA_VORTEX_CORE: + case EF_TETRA_VORTEX_BALL_1: + case EF_TETRA_VORTEX_BALL_2: + case EF_TETRA_VORTEX_BALL_3: + case EF_TETRA_VORTEX_BALL_4: + case EF_TETRA_VORTEX_FIRE_EXP: + case EF_TETRA_VORTEX_WATER_EXP: + case EF_TETRA_VORTEX_WIND_EXP: + case EF_TETRA_VORTEX_EARTH_EXP: + case EF_TETRA_VORTEX_FIRE_GROUND: + case EF_TETRA_VORTEX_WATER_GROUND: + case EF_TETRA_VORTEX_WIND_GROUND: + case EF_TETRA_VORTEX_EARTH_GROUND: + case EF_NEW_CRIMSONROCK: + case EF_NEW_CRIMSONROCK_BOTTOM: + case EF_TETRA_VORTEX_CORE_GROUND: + case EF_NEW_CROSSRIPPERSLASHER: + case EF_NEW_ARMSCANNON_01_UP: + case EF_NEW_ARMSCANNON_01_DOWN: + case EF_NEW_ARMSCANNON_05_UP: + case EF_NEW_ARMSCANNON_05_DOWN: + case EF_NEW_ARMSCANNON_07_UP: + case EF_NEW_ARMSCANNON_07_DOWN: + case EF_NEW_ARMSCANNON_11_UP: + case EF_NEW_ARMSCANNON_11_DOWN: + case EF_QSCARABA_VISUAL: + case EF_NEW_RAYOFGENESIS: + case EF_NEW_RAYOFGENESIS_CAST: + case EF_NEW_RAYOFGENESIS_CAST_BOTTOM: + case EF_NEW_RAYOFGENESIS_HIT: + case EF_MINEFFECT_CROSSRIPPERSLASHER: + case EF_MINEFFECT_ARMSCANNON_01: + case EF_MINEFFECT_ARMSCANNON_05: + case EF_MINEFFECT_ARMSCANNON_07: + case EF_MINEFFECT_ARMSCANNON_11: + case EF_NEW_METALLICSOUND: + case EF_NEW_METALLICSOUND_BOTTOM: + case EF_NEW_METALLICSOUND_HIT: + case EF_NEW_REPRODUCE: + case EF_NEW_REPRODUCE_BOTTOM: + case EF_NEW_SOULEXPANSION_CAST: + case EF_NEW_SOULEXPANSION_CAST_BOTTOM: + case EF_NEW_SOULEXPANSION_LOOP: + case EF_NEW_SOULEXPANSION_LOOP_BOTTOM: + case EF_NEW_SOULEXPANSION_HIT: + case EF_NEW_SOULEXPANSION_HIT_BOTTOM: + case EF_NEW_REVERBERATION_HIT: + case EF_NEW_AROMAOIL: + case EF_NEW_AROMAOIL_BOTTOM: + case EF_NEW_BATHFOAM: + case EF_NEW_BATHFOAM_BOTTOM: + case EF_TETRA_VORTEX_CORE_REUSE: + case EF_BLUE_WAVE_1: + case EF_BLUE_WAVE_2: + case EF_BLUE_WAVE_3: + case EF_RED_WAVE_1: + case EF_RED_WAVE_2: + case EF_RED_WAVE_3: + case EF_NEW_EARTHGRAVE_HIT: + case EF_NEW_IGNITIONBREAK: + case EF_NEW_IGNITIONBREAK_BOTTOM: + case EF_NEW_IGNITIONBREAK_CAST: + case EF_NEW_JUDEX_CAST: + case EF_NEW_JUDEX_CAST_BOTTOM: + case EF_NEW_JUDEX_CAST_LOOP: + case EF_NEW_JUDEX_CAST_LOOP_BOTTOM: + case EF_NEW_JUDEX_TARGET: + case EF_NEW_JUDEX_TARGET_BOTTOM: + case EF_NEW_CHAINLIGHTNING_CAST: + case EF_NEW_CHAINLIGHTNING_CAST_BOTTOM: + case EF_NEW_CHAINLIGHTNING_LOCKON: + case EF_NEW_CHAINLIGHTNING_TARGET: + case EF_NEW_MANDRAGORA: + case EF_NEW_MANDRAGORA_BOTTOM: + case EF_NEW_MANDRAGORA_CAST: + case EF_NEW_SOUNDOFDESTRUCTION_CAST: + case EF_NEW_SOUNDOFDESTRUCTION_CAST_BOTTOM: + case EF_NEW_SOUNDOFDESTRUCTION_TARGET: + case EF_NEW_AIMEDBOLT_01: + case EF_NEW_AIMEDBOLT_05: + case EF_NEW_AIMEDBOLT_07: + case EF_NEW_AIMEDBOLT_11: + case EF_NEW_AIMEDBOLT_CAST_BOTTOM: + case EF_NEW_AIMEDBOLT_END: + case EF_NEW_AIMEDBOLT_TARGET_LOOP: + case EF_NEW_UNLIMIT: + case EF_NEW_UNLIMIT_BOTTOM: + case EF_NEW_EPICLESIS: + case EF_UNK_1670: + case EF_UNK_1671: + case EF_UNK_1672: + case EF_UNK_1673: + case EF_UNK_1674: + case EF_NEW_POWERSWING_01: + case EF_NEW_POWERSWING_05: + case EF_NEW_POWERSWING_07: + case EF_NEW_POWERSWING_11: + case EF_NEW_POWERSWING_BOTTOM: + case EF_NEW_VULCANARM: + case EF_NEW_VULCANARM_BOTTOM: + case EF_NEW_VULCANARM_SHOTHOLE: + case EF_NEW_EARTHDRIVE_TARGET: + case EF_UNK_1710: + case EF_UNK_1711: + case EF_UNK_1712: + case EF_UNK_1713: + case EF_UNK_1714: + case EF_UNK_1715: + case EF_UNK_1716: + case EF_UNK_1717: + case EF_UNK_1718: + case EF_UNK_1719: + case EF_UNK_1720: + case EF_UNK_1721: + case EF_DRAGONIC_AURA: + case EF_DRAGONIC_AURA_BOTTOM: + case EF_DRAGONIC_AURA_HIT: + case EF_DRAGONIC_AURA_HIT_BOTTOM: + case EF_DRAGONIC_AURA_BUFF: + case EF_DRAGONIC_AURA_BUFF_BOTTOM: + case EF_UNK_1728: + case EF_UNK_1729: + case EF_NEW_AUTOSHADOWSPELL: + case EF_NEW_AUTOSHADOWSPELL_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE: + case EF_DESTRUCTIVE_HURRICANE_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE_CAST: + case EF_DESTRUCTIVE_HURRICANE_CAST_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE_CLIMAX: + case EF_DESTRUCTIVE_HURRICANE_HIT: + case EF_DEADLY_PROJECTION_CAST: + case EF_DEADLY_PROJECTION_CAST_BOTTOM: + case EF_DEADLY_PROJECTION_HIT: + case EF_DEADLY_PROJECTION: + case EF_SOUL_VC_STRIKE_CAST: + case EF_SOUL_VC_STRIKE_CAST_BOTTOM: + case EF_SOUL_VC_STRIKE_HIT: + case EF_ROCKDOWN: + case EF_ROCKDOWN_BOTTOM: + case EF_ROCKDOWN_CAST: + case EF_ROCKDOWN_CAST_BOTTOM: + case EF_ROCKDOWN_HIT: + case EF_UNK_1750: + case EF_UNK_1751: + case EF_RAIN_OF_CRYSTAL: + case EF_RAIN_OF_CRYSTAL_BOTTOM: + case EF_CRIMSON_ARROW_CAST: + case EF_CRIMSON_ARROW_CAST_BOTTOM: + case EF_CRIMSON_ARROW_HIT: + case EF_VIOLENT_QUAKE_CAST: + case EF_VIOLENT_QUAKE_CAST_BOTTOM: + case EF_VIOLENT_QUAKE_HIT: + case EF_ASTRAL_STRIKE_CAST: + case EF_ASTRAL_STRIKE_CAST_BOTTOM: + case EF_MYSTERY_ILLUSION: + case EF_MYSTERY_ILLUSION_BOTTOM: + case EF_MYSTERY_ILLUSION_CAST: + case EF_MYSTERY_ILLUSION_CAST_BOTTOM: + case EF_MYSTERY_ILLUSION_HIT: + case EF_TORNADO_STORM: + case EF_TORNADO_STORM_BOTTOM: + case EF_TORNADO_STORM_CAST: + case EF_TORNADO_STORM_CAST_BOTTOM: + case EF_TORNADO_STORM_HIT: + case EF_FROZEN_SLASH: + case EF_FROZEN_SLASH_CAST: + case EF_FROZEN_SLASH_CAST_BOTTOM: + case EF_FROZEN_SLASH_HIT: + case EF_FROZEN_SLASH_ICE_01: + case EF_FROZEN_SLASH_ICE_02: + case EF_FROZEN_SLASH_ICE_03: + case EF_FROZEN_SLASH_ICE_04: + case EF_FROZEN_SLASH_ICE_05: + case EF_FROZEN_SLASH_ICE_06: + case EF_FROZEN_SLASH_ICE_07: + case EF_FROZEN_SLASH_ICE_08: + case EF_VIOLENT_QUAKE_BOTTOM: + case EF_ALL_BLOOM: + case EF_ALL_BLOOM_BOTTOM: + case EF_ALL_BLOOM_CAST: + case EF_ALL_BLOOM_CAST_BOTTOM: + case EF_ALL_BLOOM_HIT: + case EF_CLIMAX_LIGHT: + case EF_CLIMAX_CAST: + case EF_CLIMAX_CAST_LOOP: + case EF_FLORAL_FLARE_ROAD_CAST: + case EF_FLORAL_FLARE_ROAD_CAST_BOTTOM: + case EF_FLORAL_FLARE_ROAD_HIT: + case EF_MEDIALE_VOTUM: + case EF_MEDIALE_VOTUM_CAST: + case EF_MEDIALE_VOTUM_LOOP: + case EF_ARGUTUS_VITA_CAST: + case EF_ARGUTUS_TELUM_CAST: + case EF_PRESENS_ACIES_CAST: + case EF_NEW_D_MACHINE: + case EF_NEW_D_MACHINE_CAST: + case EF_NEW_D_MACHINE_CAST_BOTTOM: + case EF_NEW_D_MACHINE_START: + case EF_NEW_D_MACHINE_END: + case EF_ARBITRIUM_CAST: + case EF_ARBITRIUM_CAST_BOTTOM: + case EF_ARBITRIUM: + case EF_ARBITRIUM_BOTTOM: + case EF_ARBITRIUM_HIT: + case EF_UNK_1827: + case EF_UNK_1828: + case EF_UNK_1830: + case EF_NEW_REPARATIO_CAST: + case EF_NEW_REPARATIO_CAST_BOTTOM: + case EF_NEW_REPARATIO: + case EF_NEW_REPARATIO_BOTTOM: + case EF_NEW_REPARATIO_TARGET: + case EF_NEW_REPARATIO_TARGET_BOTTOM: + case EF_ETERNAL_SLASH_HIT_1: + case EF_UNK_1839: + case EF_A_MACHINE_CAST: + case EF_A_MACHINE_HIT: + case EF_EFFLIGO: + case EF_EFFLIGO_BOTTOM: + case EF_EFFLIGO_HIT: + case EF_COMPETENTIA: + case EF_COMPETENTIA_BOTTOM: + case EF_COMPETENTIA_LOOP: + case EF_COMPETENTIA_LOOP_BOTTOM: + case EF_CRYSTAL_IMPACT: + case EF_CRYSTAL_IMPACT_BOTTOM: + case EF_CRYSTAL_IMPACT_CAST: + case EF_CRYSTAL_IMPACT_CAST_BOTTOM: + case EF_CRYSTAL_IMPACT_HIT: + case EF_CRYSTAL_IMPACT_BUFF: + case EF_RELIGIO: + case EF_RELIGIO_CAST: + case EF_UNK_1862: + case EF_UNK_1863: + case EF_FATAL_SHADOW_CROW: + case EF_FATAL_SHADOW_CROW_BOTTOM: + case EF_FATAL_SHADOW_CROW_HIT: + case EF_DEEP_BLIND_TRAP_CAST: + case EF_DEEP_BLIND_TRAP: + case EF_DEEP_BLIND_TRAP_HIT: + case EF_SWIFT_TRAP_CAST: + case EF_SWIFT_TRAP: + case EF_SWIFT_TRAP_HIT: + case EF_SOLID_TRAP_CAST: + case EF_SOLID_TRAP_CAST_BOTTOM: + case EF_SOLID_TRAP: + case EF_SOLID_TRAP_HIT: + case EF_NEW_RUSH_QUAKE: + case EF_NEW_RUSH_QUAKE_BOTTOM: + case EF_NEW_RUSH_QUAKE_HIT: + case EF_BENEDICTUM: + case EF_BENEDICTUM_CAST: + case EF_BENEDICTUM_CAST_BOTTOM: + case EF_STRATUM_TREMOR_CAST: + case EF_STRATUM_TREMOR_CAST_BOTTOM: + case EF_STRATUM_TREMOR_HIT: + case EF_STRATUM_TREMOR: + case EF_STRATUM_TREMOR_BOTTOM: + case EF_UNK_1895: + case EF_UNK_1896: + case EF_UNK_1898: + case EF_WIND_SIGN: + case EF_WIND_SIGN_LOOP: + case EF_ABR_MOTHER_CAST: + case EF_ABR_MOTHER_01: + case EF_ABR_MOTHER_02: + case EF_HAWK_RUSH: + case EF_ABR_INFINITY: + case EF_ABR_INFINITY_BOTTOM: + case EF_ABR_INFINITY_CAST: + case EF_ABR_INFINITY_HIT: + case EF_ETERNAL_SLASH_HIT_2: + case EF_NEW_D_CANNON: + case EF_NEW_D_CANNON_CAST: + case EF_NEW_D_CANNON_HIT: + case EF_FLAME_TRAP: + case EF_FLAME_TRAP_HIT: + case EF_NEW_DILECTIO_HEAL: + case EF_NEW_DILECTIO_HEAL_CAST: + case EF_NEW_DILECTIO_HEAL_CAST_BOTTOM: + case EF_NEW_DILECTIO_HEAL_TARGET: + case EF_NEW_DILECTIO_HEAL_TARGET_BOTTOM: + case EF_NEW_PRAMEN_BOTTOM: + case EF_NEW_PRAMEN_CAST: + case EF_NEW_PRAMEN: + case EF_NEW_BATTLE_W: + case EF_NEW_BATTLE_W_CAST: + case EF_NEW_BATTLE_W_BOTTOM: + case EF_NEW_BATTLE_W_HIT: + case EF_NEW_AXE_STOMP_HIT: + case EF_NEW_AXE_STOMP_BOTTOM: + case EF_NEW_AXE_STOMP: + case EF_NEW_AXE_STOMP_12: + case EF_NEW_AXE_STOMP_01: + case EF_NEW_AXE_STOMP_03: + case EF_NEW_AXE_STOMP_05: + case EF_NEW_AXE_STOMP_06: + case EF_NEW_AXE_STOMP_08: + case EF_NEW_AXE_STOMP_09: + case EF_NEW_AXE_STOMP_11: + case EF_UNK_1950: + case EF_UNK_1952: + case EF_UNK_1953: + case EF_UNK_1954: + case EF_UNK_1955: + case EF_SINCERE_FAITH: + case EF_SINCERE_FAITH_BOTTOM: + case EF_ABYSS_DAGGER: + case EF_ABYSS_DAGGER_HIT: + case EF_HAWK_BOOMERANG_CAST: + case EF_HAWK_BOOMERANG_HIT: + case EF_HAWK_BOOMERANG_START: + case EF_GALE_STORM_CAST: + case EF_GALE_STORM_HIT: + case EF_FIRST_FAITH_POWER: + case EF_FIRST_FAITH_POWER_CAST: + case EF_FIRST_FAITH_POWER_START: + case EF_JUDGE: + case EF_JUDGE_CAST: + case EF_JUDGE_START: + case EF_JUDGE_AURA: + case EF_THIRD_EXOR_FLAME: + case EF_THIRD_EXOR_FLAME_CAST: + case EF_THIRD_EXOR_FLAME_START: + case EF_THIRD_EXOR_FLAME_AURA: + case EF_POWERFUL_FAITH: + case EF_OLEUM_SANCTUM: + case EF_OLEUM_SANCTUM_BOTTOM: + case EF_OLEUM_SANCTUM_HIT: + case EF_OLEUM_SANCTUM_LOOP: + case EF_INCREASING_ACTIVITY: + case EF_INCREASING_ACTIVITY_CAST: + case EF_INCREASING_ACTIVITY_CAST_BOTTOM: + case EF_EXPLOSION_BLASTER: + case EF_EXPLOSION_BLASTER_BOTTOM: + case EF_EXPLOSION_BLASTER_HIT: + case EF_FIRM_FAITH: + case EF_UNK_2000: + case EF_UNK_2001: + case EF_UNK_2002: + case EF_ACTIVITY_BURN: + case EF_ACTIVITY_BURN_CAST: + case EF_ACTIVITY_BURN_CAST_BOTTOM: + case EF_UNK_2006: + case EF_UNK_2007: + case EF_UNK_2008: + case EF_SERPENS_BOTTOM: + case EF_SERPENS_CAST: + case EF_SERPENS_CAST_BOTTOM: + case EF_SERPENS_HIT: + case EF_SERPENS_SHIELD: + case EF_CHAIN_REACTION_SHOT_CAST: + case EF_CHAIN_REACTION_SHOT_CAST_BOTTOM: + case EF_ETERNAL_SLASH_HIT_3: + case EF_CHAIN_REACTION_SHOT_HITSUB: + case EF_CHAIN_REACTION_SHOT: + case EF_DILUVIO_ICE: + case EF_DILUVIO_ICE_BOTTOM: + case EF_DILUVIO_CAST: + case EF_DILUVIO_CAST_BOTTOM: + case EF_DILUVIO_HIT: + case EF_DILUVIO_ARMOR: + case EF_SPELL_ENCHANTING: + case EF_DIAMOND_STORM_BOTTOM: + case EF_DIAMOND_STORM_CAST: + case EF_DIAMOND_STORM_CAST_BOTTOM: + case EF_DIAMOND_STORM_HIT: + case EF_VENOM_SWAMP_BOTTOM: + case EF_VENOM_SWAMP_CAST: + case EF_VENOM_SWAMP_CAST_BOTTOM: + case EF_VENOM_SWAMP_HIT: + case EF_ARDOR: + case EF_ARDOR_BOTTOM: + case EF_ARDOR_CAST: + case EF_ARDOR_CAST_BOTTOM: + case EF_ARDOR_HIT: + case EF_ARDOR_FLAMEARMOR: + case EF_LIGHTNING_LAND: + case EF_LIGHTNING_LAND_BOTTOM: + case EF_LIGHTNING_LAND_CAST: + case EF_LIGHTNING_LAND_CAST_BOTTOM: + case EF_LIGHTNING_LAND_HIT: + case EF_UNK_2046: + case EF_UNK_2047: + case EF_UNK_2048: + case EF_UNK_2049: + case EF_UNK_2050: + case EF_FIRST_BRAND: + case EF_FIRST_BRAND_AURA: + case EF_FIRST_BRAND_HIT: + case EF_FIRST_BRAND_START: + case EF_CONFLAGRATION: + case EF_CONFLAGRATION_BOTTOM: + case EF_CONFLAGRATION_CAST: + case EF_CONFLAGRATION_CAST_BOTTOM: + case EF_CONFLAGRATION_HIT: + case EF_SOUND_BLEND: + case EF_SOUND_BLEND_CAST: + case EF_SOUND_BLEND_CAST_BOTTOM: + case EF_SOUND_BLEND_RED: + case EF_METALLIC_FURY: + case EF_UNK_2065: + case EF_UNK_2066: + case EF_UNK_2067: + case EF_UNK_2068: + case EF_UNK_2069: + case EF_UNK_2070: + case EF_UNK_2071: + case EF_UNK_2072: + case EF_UNK_2073: + case EF_NIFLHEIM: + case EF_NIFLHEIM_CAST: + case EF_SECOND_FAITH: + case EF_SECOND_FAITH_AURA: + case EF_SECOND_FAITH_START: + case EF_SECOND_FLAME: + case EF_SECOND_FLAME_BOTTOM: + case EF_THIRD_FLAME_BOMB: + case EF_THIRD_FLAME_BOMB_BOTTOM: + case EF_ABYSS_STRIKE: + case EF_ABYSS_STRIKE_BOTTOM: + case EF_ABYSS_STRIKE_CAST: + case EF_ABYSS_STRIKE_CAST_BOTTOM: + case EF_ABYSS_STRIKE_GROUND: + case EF_ABYSS_STRIKE_GROUND_BOTTOM: + case EF_ABYSS_STRIKE_HIT: + case EF_MASSIVE_FLAME_BLASTER: + case EF_MASSIVE_FLAME_BLASTER_HIT: + case EF_MASSIVE_FLAME_BLASTER_HIT_BOTTOM: + case EF_THIRD_CONSECRATION: + case EF_PROCELLA: + case EF_PROCELLA_BOTTOM: + case EF_PROCELLA_CAST: + case EF_PROCELLA_CAST_BOTTOM: + case EF_PROCELLA_HIT: + case EF_PROCELLA_STORM: + case EF_TERREMOTUS: + case EF_TERREMOTUS_CAST: + case EF_TERREMOTUS_CAST_BOTTOM: + case EF_TERREMOTUS_HIT: + case EF_TERREMOTUS_PROTECT: + case EF_FROM_THE_ABYSS: + case EF_ABYSS_STRIKE_HIT_2: + case EF_THIRD_PUNISH: + case EF_THIRD_PUNISH_BOTTOM: + case EF_FRENZY_SHOT_HIT: + case EF_UNK_2116: + case EF_UNK_2117: + case EF_UNK_2118: + case EF_UNK_2119: + case EF_UNK_2120: + case EF_UNK_2121: + case EF_MUSICAL_INTERLUDE: + case EF_MUSICAL_INTERLUDE_CAST: + case EF_UNK_2124: + case EF_UNK_2125: + case EF_ABYSS_SLAYER: + case EF_ABYSS_SLAYER_CAST: + case EF_ABYSS_SLAYER_CAST_BOTTOM: + case EF_ABYSS_SQUARE: + case EF_ABYSS_SQUARE_BOTTOM: + case EF_ABYSS_DAGGER_HIT_2: + case EF_DEFT_STAB: + case EF_TERRA_DRIVE: + case EF_TERRA_DRIVE_BOTTOM: + case EF_TERRA_DRIVE_CAST: + case EF_TERRA_DRIVE_CAST_BOTTOM: + case EF_TERRA_DRIVE_HIT: + case EF_ELEMENTAL_BUSTER_CAST: + case EF_ELEMENTAL_BUSTER_FIRE: + case EF_ELEMENTAL_BUSTER_FIRE_BOTTOM: + case EF_ELEMENTAL_BUSTER_FIRE_HIT: + case EF_ELEMENTAL_BUSTER_LAND: + case EF_ELEMENTAL_BUSTER_LAND_BOTTOM: + case EF_ELEMENTAL_BUSTER_LAND_HIT: + case EF_ELEMENTAL_BUSTER_POISON: + case EF_ELEMENTAL_BUSTER_POISON_BOTTOM: + case EF_ELEMENTAL_BUSTER_POISON_HIT: + case EF_ELEMENTAL_BUSTER_WATER: + case EF_ELEMENTAL_BUSTER_WATER_BOTTOM: + case EF_ELEMENTAL_BUSTER_WATER_HIT: + case EF_ELEMENTAL_BUSTER_WIND: + case EF_ELEMENTAL_BUSTER_WIND_BOTTOM: + case EF_ELEMENTAL_BUSTER_WIND_HIT: + case EF_UNLUCKY_RUSH_CAST: + case EF_ABYSS_DAGGER_HIT_3: + case EF_UNK_2157: + case EF_UNK_2158: + case EF_UNK_2159: + case EF_UNK_2160: + case EF_ADVANCED_PROTECTION: + case EF_ADVANCED_PROTECTION_BOTTOM: + case EF_ADVANCED_PROTECTION_CAST: + case EF_ADVANCED_PROTECTION_CAST_BOTTOM: + case EF_UNK_2166: + case EF_UNK_2167: + case EF_UNK_2168: + case EF_UNK_2169: + case EF_UNK_2170: + case EF_UNK_2171: + case EF_UNK_2172: + case EF_UNK_2173: + case EF_UNK_2174: + case EF_UNK_2175: + case EF_UNK_2176: + case EF_UNK_2177: + case EF_UNK_2178: + case EF_UNK_2179: + case EF_UNK_2180: + case EF_UNK_2181: + case EF_UNK_2182: + case EF_SHIELD_SHOOTING_CAST: + case EF_SHIELD_SHOOTING_HIT: + case EF_THE_W_PROTECTION: + case EF_THE_W_PROTECTION_CAST: + case EF_UNK_2188: + case EF_UNK_2189: + case EF_UNK_2190: + case EF_UNK_2191: + case EF_UNK_2192: + case EF_UNK_2193: + case EF_UNK_2194: + case EF_UNK_2196: + case EF_UNK_2197: + case EF_UNK_2198: + case EF_UNK_2199: + case EF_UNK_2200: + case EF_UNK_2201: + case EF_UNK_2202: + case EF_ACIDIFIED_ZONE_FIRE_CAST: + case EF_ACIDIFIED_ZONE_FIRE_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_FIRE_HIT: + case EF_ACIDIFIED_ZONE_FIRE_START: + case EF_ACIDIFIED_ZONE_FIRE_START_BOTTOM: + case EF_ACIDIFIED_ZONE_FIRE_LOOP: + case EF_ACIDIFIED_ZONE_FIRE_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_CAST: + case EF_ACIDIFIED_ZONE_WATER_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_HIT: + case EF_ACIDIFIED_ZONE_WATER_START: + case EF_ACIDIFIED_ZONE_WATER_START_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_LOOP: + case EF_ACIDIFIED_ZONE_WATER_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_CAST: + case EF_ACIDIFIED_ZONE_WIND_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_HIT: + case EF_ACIDIFIED_ZONE_WIND_START: + case EF_ACIDIFIED_ZONE_WIND_START_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_LOOP: + case EF_ACIDIFIED_ZONE_WIND_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_CAST: + case EF_ACIDIFIED_ZONE_GROUND_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_HIT: + case EF_ACIDIFIED_ZONE_GROUND_START: + case EF_ACIDIFIED_ZONE_GROUND_START_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_LOOP: + case EF_ACIDIFIED_ZONE_GROUND_LOOP_BOTTOM: + case EF_HELLTREE_CAST: + case EF_HELLTREE_CAST_BOTTOM: + case EF_HELLTREE_DUSTY: + case EF_HELLTREE_HOWLING: + case EF_RESEARCH_REPORT: + case EF_RESEARCH_REPORT_CAST: + case EF_RESEARCH_REPORT_CAST_BOTTOM: + case EF_STATE_LASSITUDE: + case EF_STATE_SWOONING: + case EF_STATE_HOLYFLAME: + case EF_WOODEN_WARRIOR_CAST: + case EF_WOODEN_WARRIOR_CAST_BOTTOM: + case EF_WOODEN_WARRIOR_ATTACK: + case EF_WOODEN_WARRIOR_ATTACK_HIT: + case EF_WOODEN_WARRIOR_THROWROCK: + case EF_WOODEN_WARRIOR_THROWROCK_HIT: + case EF_WOODEN_FAIRY_CAST: + case EF_WOODEN_FAIRY_CAST_BOTTOM: + case EF_WOODEN_FAIRY_DUSTY: + case EF_SERPENS_DEEP_POISONING: + case EF_SERPENS_DEEP_POISONING_BOTTOM: + case EF_DILUVIO_COLD_FORCE: + case EF_DILUVIO_COLD_FORCE_BOTTOM: + case EF_ARDOR_FLAMETECHNIC: + case EF_ARDOR_FLAMETECHNIC_BOTTOM: + case EF_PROCELLA_GRACE_BREEZE: + case EF_PROCELLA_GRACE_BREEZE_BOTTOM: + case EF_TERREMOTUS_EARTH_CARE: + case EF_TERREMOTUS_EARTH_CARE_BOTTOM: + case EF_STATE_LIGHTNINGSTRIKE: + case EF_STATE_CONFLAGRATION: + case EF_STATE_FROSTBITE: + case EF_STATE_FROSTBITE_FINISH: + case EF_STATE_CRYSTALLIZATION: + case EF_STATE_DEADLYPOISON: + case EF_THIRD_CONSECRATION_BOTTOM: + case EF_UNK_2280: + case EF_NPC_KILLING_AURA_HIT: + case EF_NPC_CANE_OF_EVIL_EYE: + case EF_TOXIN_OF_MANDARA_BOMB: + case EF_TOXIN_OF_MANDARA_BOMB_BOTTOM: + case EF_TOXIN_OF_MANDARA_SHOCK: + case EF_NEEDLE_STINGER: + case EF_NEEDLE_STINGER_BOTTOM: + case EF_NEEDLE_STINGER_HIT: + case EF_ABSOLUTE_ZEPHYR: + case EF_ABSOLUTE_ZEPHYR_BOTTOM: + case EF_ABSOLUTE_ZEPHYR_HIT: + case EF_TWISTER_CUTTER: + case EF_TWISTER_CUTTER_HIT: + case EF_HEILIGE_PFERD: + case EF_HEILIGE_PFERD_BOTTOM: + case EF_HEILIGE_PFERD_CAST: + case EF_GOLDENE_TONE: + case EF_GLANZEN_SPIES: + case EF_GLANZEN_SPIES_HIT: + case EF_BLAZING_AND_FURIOUS: + case EF_THE_ONE_FIGHTER_RISES_BOTTOM: + case EF_TEMPERING: + case EF_BLAST_FORGE_HIT: + case EF_TETRA_VORTEX_WATER_SUB_2: + case EF_TETRA_VORTEX_EARTH_SUB_2: + case EF_NPC_20TH_CRYSTAL_S: + case EF_NPC_20TH_CRYSTAL_M: + case EF_NPC_20TH_CRYSTAL_L: + case EF_NPC_GATE_GREEN_1: + case EF_NPC_GATE_PURPLE_1: + case EF_NPC_GATE_RED_1: + case EF_20TH_FIREWORK: + case EF_NPC_GATE_GREEN_2: + case EF_NPC_GATE_PURPLE_2: + case EF_NPC_GATE_RED_2: + case EF_NPC_GATE_GREEN_3: + case EF_NPC_GATE_PURPLE_3: + case EF_NPC_GATE_RED_3: + case EF_NPC_GATE_SKYBLUE: + case EF_RUNE_ACTIVE_FINISH: + case EF_RUNESET_ACTIVE: + case EF_RUNESET_UPGRADE_SUCCESS: + case EF_RUNESET_UPGRADE_FAIL: + case EF_RUNE_BROKEN: + case EF_NEW_BATTLE_W_HIT_2: + case EF_NEW_PRAMEN_REUSE: + case EF_THE_W_PROTECTION_REUSE: + case EF_ELEMENTAL_BUSTER_FIRE_REUSE: + case EF_DESTRUCTIVE_HURRICANE_BOTTOM_REUSE: + case EF_CRYSTAL_IMPACT_BOTTOM_REUSE: + case EF_NEW_JUDEX_TARGET_REUSE: + case EF_RUNE_SLOT_SMALL: + case EF_RUNE_SLOT_BIG: return true; default: return false; @@ -1648,118 +1648,118 @@ bool CEZ2STRScreenEffect::IsAlive() { } switch (id) { - case 0x8D: - case 0x3E6: - case 0x45F: - case 0x470: - case 0x473: - case 0x4C5: - case 0x4EE: - case 0x4EF: - case 0x4F0: - case 0x4F1: - case 0x514: - case 0x515: - case 0x516: - case 0x517: - case 0x518: - case 0x519: - case 0x51A: - case 0x51B: - case 0x51C: - case 0x51D: - case 0x552: - case 0x5BB: - case 0x5BC: - case 0x5BD: - case 0x5BE: - case 0x5BF: - case 0x5C0: - case 0x5C1: - case 0x5C2: - case 0x5C3: - case 0x5C4: - case 0x63F: - case 0x64B: - case 0x64C: - case 0x64D: - case 0x64E: - case 0x64F: - case 0x650: - case 0x676: - case 0x6AE: - case 0x6BE: - case 0x6BF: - case 0x6CD: - case 0x6D7: - case 0x6EB: - case 0x6EC: - case 0x6F0: - case 0x6F1: - case 0x701: - case 0x702: - case 0x703: - case 0x719: - case 0x72F: - case 0x752: - case 0x756: - case 0x75A: - case 0x765: - case 0x766: - case 0x76C: - case 0x77F: - case 0x7AA: - case 0x7B7: - case 0x7BA: - case 0x7BD: - case 0x7BE: - case 0x7C1: - case 0x7C7: - case 0x7D2: - case 0x7EF: - case 0x7F9: - case 0x7FA: - case 0x803: - case 0x804: - case 0x807: - case 0x808: - case 0x80C: - case 0x81E: - case 0x81F: - case 0x84E: - case 0x851: - case 0x852: - case 0x876: - case 0x881: - case 0x886: - case 0x8A2: - case 0x8A3: - case 0x8AA: - case 0x8AB: - case 0x8B2: - case 0x8B3: - case 0x8BA: - case 0x8BB: - case 0x8DC: - case 0x8DD: - case 0x8DE: - case 0x8E1: - case 0x8E8: - case 0x8FE: - case 0x948: - case 0x949: - case 0x94A: - case 0x94B: - case 0x94C: - case 0x94D: - case 0x94F: - case 0x950: - case 0x951: - case 0x952: - case 0x953: - case 0x954: - case 0x955: - case 0x963: + case EF_PNEUMA: + case EF_RED_CROSS: + case EF_BITE_SCAR: + case EF_RL_ANTI_MATERIAL_BLAST: + case EF_H_MINE: + case EF_FLASH_KICK: + case EF_TETRA_VORTEX_BALL_1: + case EF_TETRA_VORTEX_BALL_2: + case EF_TETRA_VORTEX_BALL_3: + case EF_TETRA_VORTEX_BALL_4: + case EF_NEW_ROLLINGCUTTER_COUNT_01: + case EF_NEW_ROLLINGCUTTER_COUNT_02: + case EF_NEW_ROLLINGCUTTER_COUNT_03: + case EF_NEW_ROLLINGCUTTER_COUNT_04: + case EF_NEW_ROLLINGCUTTER_COUNT_05: + case EF_NEW_ROLLINGCUTTER_COUNT_06: + case EF_NEW_ROLLINGCUTTER_COUNT_07: + case EF_NEW_ROLLINGCUTTER_COUNT_08: + case EF_NEW_ROLLINGCUTTER_COUNT_09: + case EF_NEW_ROLLINGCUTTER_COUNT_10: + case EF_QSCARABA_VISUAL: + case EF_MINEFFECT_ROLLINGCUTTER_01: + case EF_MINEFFECT_ROLLINGCUTTER_02: + case EF_MINEFFECT_ROLLINGCUTTER_03: + case EF_MINEFFECT_ROLLINGCUTTER_04: + case EF_MINEFFECT_ROLLINGCUTTER_05: + case EF_MINEFFECT_ROLLINGCUTTER_06: + case EF_MINEFFECT_ROLLINGCUTTER_07: + case EF_MINEFFECT_ROLLINGCUTTER_08: + case EF_MINEFFECT_ROLLINGCUTTER_09: + case EF_MINEFFECT_ROLLINGCUTTER_10: + case EF_TETRA_VORTEX_CORE_REUSE: + case EF_BLUE_WAVE_1: + case EF_BLUE_WAVE_2: + case EF_BLUE_WAVE_3: + case EF_RED_WAVE_1: + case EF_RED_WAVE_2: + case EF_RED_WAVE_3: + case EF_NEW_EPICLESIS: + case EF_UNK_1710: + case EF_DRAGONIC_AURA_BUFF: + case EF_DRAGONIC_AURA_BUFF_BOTTOM: + case EF_DEADLY_PROJECTION: + case EF_UNK_1751: + case EF_MYSTERY_ILLUSION: + case EF_MYSTERY_ILLUSION_BOTTOM: + case EF_TORNADO_STORM: + case EF_TORNADO_STORM_BOTTOM: + case EF_VIOLENT_QUAKE_BOTTOM: + case EF_ALL_BLOOM: + case EF_ALL_BLOOM_BOTTOM: + case EF_NEW_D_MACHINE: + case EF_UNK_1839: + case EF_DEEP_BLIND_TRAP: + case EF_SWIFT_TRAP: + case EF_SOLID_TRAP: + case EF_STRATUM_TREMOR: + case EF_STRATUM_TREMOR_BOTTOM: + case EF_WIND_SIGN_LOOP: + case EF_FLAME_TRAP: + case EF_UNK_1962: + case EF_FIRST_FAITH_POWER: + case EF_JUDGE: + case EF_JUDGE_AURA: + case EF_THIRD_EXOR_FLAME: + case EF_THIRD_EXOR_FLAME_AURA: + case EF_OLEUM_SANCTUM_LOOP: + case EF_UNK_2002: + case EF_VENOM_SWAMP_BOTTOM: + case EF_LIGHTNING_LAND: + case EF_LIGHTNING_LAND_BOTTOM: + case EF_FIRST_BRAND: + case EF_FIRST_BRAND_AURA: + case EF_CONFLAGRATION: + case EF_CONFLAGRATION_BOTTOM: + case EF_SOUND_BLEND: + case EF_SECOND_FAITH: + case EF_SECOND_FAITH_AURA: + case EF_ABYSS_SLAYER: + case EF_ABYSS_SQUARE: + case EF_ABYSS_SQUARE_BOTTOM: + case EF_UNK_2166: + case EF_UNK_2177: + case EF_UNK_2182: + case EF_ACIDIFIED_ZONE_FIRE_LOOP: + case EF_ACIDIFIED_ZONE_FIRE_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_LOOP: + case EF_ACIDIFIED_ZONE_WATER_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_LOOP: + case EF_ACIDIFIED_ZONE_WIND_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_LOOP: + case EF_ACIDIFIED_ZONE_GROUND_LOOP_BOTTOM: + case EF_STATE_LIGHTNINGSTRIKE: + case EF_STATE_CONFLAGRATION: + case EF_STATE_FROSTBITE: + case EF_STATE_CRYSTALLIZATION: + case EF_UNK_2280: + case EF_NPC_KILLING_AURA: + case EF_NPC_20TH_CRYSTAL_S: + case EF_NPC_20TH_CRYSTAL_M: + case EF_NPC_20TH_CRYSTAL_L: + case EF_NPC_GATE_GREEN_1: + case EF_NPC_GATE_PURPLE_1: + case EF_NPC_GATE_RED_1: + case EF_NPC_GATE_GREEN_2: + case EF_NPC_GATE_PURPLE_2: + case EF_NPC_GATE_RED_2: + case EF_NPC_GATE_GREEN_3: + case EF_NPC_GATE_PURPLE_3: + case EF_NPC_GATE_RED_3: + case EF_NPC_GATE_SKYBLUE: + case EF_NEW_BATTLE_W_HIT_2: return this->ActorExists(); } @@ -1775,3581 +1775,3581 @@ bool CEZ2STRScreenEffect::IsAlive() { // FUNCTION: fn_19043 void CEZ2STRScreenEffect::InitParticle(CEZ2STRParticle* particle, int id) { switch (id) { - case 0xCC: + case EF_POTION1: particle->Open("빨간포션.str"); break; - case 0xCD: + case EF_POTION2: particle->Open("주홍포션.str"); break; - case 0xCE: + case EF_POTION3: particle->Open("노란포션.str"); break; - case 0xCF: + case EF_POTION4: particle->Open("하얀포션.str"); break; - case 0xD0: + case EF_POTION5: particle->Open("파란포션.str"); break; - case 0xD1: + case EF_POTION6: particle->Open("초록포션.str"); break; - case 0xD2: + case EF_POTION7: particle->Open("fruit.str"); break; - case 0xD3: + case EF_POTION8: particle->Open("fruit_.str"); break; - case 0x59: + case EF_STORMGUST: particle->Open("StormGust.str"); break; - case 0x3E4: + case EF_KO_JYUMONJIKIRI: particle->Open("jyumonjikiri.str"); break; - case 0x3E5: + case EF_KO_SETSUDAN: particle->Open("setsudan.str"); break; - case 0x3E6: + case EF_RED_CROSS: particle->Open("red_cross.str"); break; - case 0x3E7: + case EF_KO_IZAYOI: particle->Open("ez_cure.str"); break; - case 0x3F0: + case EF_KAIHOU1: particle->Open("술식해방.str"); break; - case 0x3F1: + case EF_AKAITSUKI: particle->Open("불길한붉은달빛.str"); break; - case 0x3F2: + case EF_ZANGETSU: particle->Open("초승달2.str"); break; - case 0x3E0: + case EF_KO_ZENKAI_WATER: particle->Open("술식전개3.str"); break; - case 0x3E1: + case EF_KO_ZENKAI_LAND: particle->Open("술식전개4.str"); break; - case 0x3E2: + case EF_KO_ZENKAI_FIRE: particle->Open("술식전개2.str"); break; - case 0x3E3: + case EF_KO_ZENKAI_WIND: particle->Open("술식전개5.str"); break; - case 0x3E9: + case EF_KG_KYOMU: particle->Open("허무의그림자.str"); break; - case 0x3F3: + case EF_GENSOU: particle->Open("흐린달빛환상2.str"); break; - case 0xD: + case EF_GLASSWALL: particle->Open("SafetyWall.str"); break; - case 0x3F4: + case EF_HAT_EFFECT: particle->Open("cloudh.str"); break; - case 0x40A: + case EF_MOONSTAR: particle->Open("moonstar.str"); break; - case 0x437: + case EF_MUSIC_HAT: particle->Open("EFST_DECORATION_OF_MUSIC\\note_1.str"); break; - case 0x43F: + case EF_HAPPINESSSTAR: particle->Open("efst_happiness_star\\moonstar2.str"); break; - case 0x40B: + case EF_STRANGELIGHTS: particle->Open("strangelights.str"); break; - case 0x40C: + case EF_SUPER_STAR: particle->Open("superstar.str"); break; - case 0x426: + case EF_HAMMER_OF_GOD: particle->Open("RL_HAMER_GOD\\hogg2.str"); break; - case 0x427: + case EF_MASS_SPIRAL: particle->Open("RL_MESS_SPIRAL\\S5.str"); break; - case 0x428: + case EF_FIRE_RAIN: particle->Open("RL_FIRE_RAIN\\fire_rain.str"); break; - case 0x42A: + case EF_BANISHING_BUSTER: particle->Open("RL_BANISHING_BUSTER\\vanishing1.str"); break; - case 0x42B: + case EF_SLUGSHOT: particle->Open("RL_SLUGSHOT\\slug.str"); break; - case 0x42C: + case EF_D_TAIL: particle->Open("RL_d_tail\\dtdt.str"); break; - case 0x432: + case EF_RL_EXPLOSION: particle->Open("RL_EXPLOSION\\boom.str"); break; - case 0x425: + case EF_C_MAKER: particle->Open("RL_C_MAKER\\deffender.str"); break; - case 0x433: + case EF_C_MAKER_1: particle->Open("RL_C_MAKER\\cm.str"); break; - case 0x434: + case EF_QD_SHOT: particle->Open("RL_QUICK_DRAW\\qd2.str"); break; - case 0x435: + case EF_P_ALTER: particle->Open("RL_P_ALTER\\platinum.str"); break; - case 0x436: + case EF_S_STORM: particle->Open("RL_STORM\\S_STORM.str"); break; - case 0x43B: + case EF_FLOWERSMOKE: particle->Open("efst_flowersmoke\\flowersmoke.str"); break; - case 0x43C: + case EF_FSTONE: particle->Open("efst_fstone\\fstone.str"); break; - case 0x43D: + case EF_QSCARABA: particle->Open("efst_qscaraba\\qscaraba.str"); break; - case 0x43E: + case EF_LJOSALFAR: particle->Open("efst_ljosalfar\\ljosalfar.str"); break; - case 0x441: + case EF_MAPLE_FALLS: particle->Open("efst_maple_falls\\maple_falls.str"); break; - case 0x442: + case EF_MARKING_USE_CHANGEMONSTER: particle->Open("Arrows_Effect_finish\\pol.str"); break; - case 0x443: + case EF_MAGICAL_FEATHER: particle->Open("efst_magical_feather\\magical_feather.str"); break; - case 0x444: + case EF_MERMAID_LONGING: particle->Open("efst_mermaid_loging\\bubblebubble.str"); break; - case 0x446: + case EF_ACH_COMPLETE: particle->Open("ach_complete\\ppring3.str"); break; - case 0x447: + case EF_TIME_ACCESSORY: particle->Open("efst_time_accessory\\time_accessory.str"); break; - case 0x44A: + case EF_FRESHSHRIMP: particle->Open("su_freshshrimp\\su_freshshrimp.str"); break; - case 0x44E: + case EF_SU_TUNABELLY: particle->Open("su_tunabelly\\su_tunabelly.str"); break; - case 0x44D: + case EF_SU_SV_STEMSPEAR: particle->Open("su_sv_stemspear\\su_sv_stemspear.str"); break; - case 0x44F: + case EF_SU_SCRATCH: particle->Open("su_scratch\\su_scratch.str"); break; - case 0x451: + case EF_SU_BITE: particle->Open("su_bite\\su_bite.str"); break; - case 0x453: + case EF_SU_SCAROFTAROU: particle->Open("su_scaroftarou\\su_scaroftarou.str"); break; - case 0x454: + case EF_SU_ARCLOUSEDASH: particle->Open("su_arclousedash\\su_arclousedash.str"); break; - case 0x455: + case EF_SU_PICKYPECK: particle->Open("su_pickypeck\\su_pickypeck.str"); break; - case 0x45C: + case EF_SU_BUNCHOFSHRIMP: particle->Open("su_bunchofshrimp\\su_bunchofshrimp.str"); break; - case 0x45F: + case EF_BITE_SCAR: particle->Open("bite_scar\\bite_scar.str"); break; - case 0x461: + case EF_WIDE_CRITICAL_WOUND: particle->Open("wide_critical_wound\\wide_critical_wound.str"); break; - case 0x463: + case EF_SU_GROOMING: particle->Open("su_grooming\\su_grooming.str"); break; - case 0x464: + case EF_SU_CHATTERING: particle->Open("su_chattering\\su_chattering.str"); break; - case 0x465: + case EF_SU_LOPE: particle->Open("su_nyanggrass\\su_nyanggrass.str"); break; - case 0x466: + case EF_SU_HISS: particle->Open("su_hiss\\su_hiss.str"); break; - case 0x467: + case EF_SU_POWEROFFLOCK: particle->Open("su_powerofflock\\su_powerofflock.str"); break; - case 0x469: + case EF_SU_SVG_SPIRIT: particle->Open("su_svg_spirit\\su_svg_spirit.str"); break; - case 0x8D: { + case EF_PNEUMA: { int index = rand() % 3; index = index < 0 ? 0 : index; particle->Open(FormatOwnedString("Pneuma%d.str", index + 1)); break; } - case 0x46D: + case EF_FIREDANCE: particle->Open("RL_fire_dance\\firedance.str"); break; - case 0x46E: + case EF_RICHS_COIN_A: particle->Open("RL_richs_coin_A\\reachs.str"); break; - case 0x470: + case EF_RL_ANTI_MATERIAL_BLAST: particle->Open("RL_anti_material\\anti.str"); break; - case 0x471: + case EF_E_CHAIN: particle->Open("RL_e_chain\\eternal.str"); break; - case 0x472: + case EF_HEAT_BARREL: particle->Open("RL_heat_barrel\\htb.str"); break; - case 0x473: + case EF_H_MINE: particle->Open("RL_h_mine\\mine.str"); break; - case 0x475: + case EF_WE_ONEFOREVER: particle->Open("we_oneforever\\we_oneforever.str"); break; - case 0x476: + case EF_WE_CHEERUP: particle->Open("we_cheerup\\we_cheerup.str"); break; - case 0x489: + case EF_QUAGMIRE_VISUAL: particle->Open("Quagmire\\Quagmire.str"); break; - case 0x48A: + case EF_LORD_OF_VERMILLION_VISUAL: particle->Open("lord_of_vermillion\\lord_of_vermillion.str"); break; - case 0x48B: + case EF_METEOR_STORM_VISUAL: { int index = rand() % 3; index = index < 0 ? 0 : index; particle->Open(FormatOwnedString("MeteorStorm\\meteor%d.str", index + 1).c_str()); break; } - case 0x4C2: + case EF_SOLARBURST: particle->Open("solar_burst\\solar_burst.str"); break; - case 0x4C3: + case EF_SJ_DOCUMENT: particle->Open("sj_document\\sj_document.str"); break; - case 0x4C4: + case EF_FALLING_STAR: particle->Open("falling_star\\falling_star.str"); break; - case 0x4C5: + case EF_FLASH_KICK: particle->Open("flash_kick\\flash_kick.str"); break; - case 0x4CC: + case EF_SOUL_GOLEM: particle->Open("soul_golem\\soul_golem.str"); break; - case 0x4CD: + case EF_NEWMOON_KICK: particle->Open("newmoon_kick\\newmoon_kick.str"); break; - case 0x4CE: + case EF_FULLMOON_KICK: particle->Open("fullmoon_kick\\fullmoon_kick.str"); break; - case 0x4D6: + case EF_SOUL_CURSE: particle->Open("soul_curse\\soul_curse.str"); break; - case 0x4D7: + case EF_PROMINENCE_KICK: particle->Open("prominence_kick\\prominence_kick.str"); break; - case 0x4DB: + case EF_SOUL_REVOLVE: particle->Open("soul_revolve\\soul_revolve.str"); break; - case 0x4DC: - case 0x4DD: - case 0x4DE: - case 0x4DF: - case 0x4E0: - case 0x4E1: - case 0x4E2: - case 0x4E3: - case 0x4E4: - case 0x4E5: + case EF_TEST_EFFECT_00: + case EF_TEST_EFFECT_01: + case EF_TEST_EFFECT_02: + case EF_TEST_EFFECT_03: + case EF_TEST_EFFECT_04: + case EF_TEST_EFFECT_05: + case EF_TEST_EFFECT_06: + case EF_TEST_EFFECT_07: + case EF_TEST_EFFECT_08: + case EF_TEST_EFFECT_09: particle->Open(FormatOwnedString("test_effect\\%02d\\%02d.str", id - 0x4DC, id - 0x4DC)); break; - case 0x4E6: + case EF_NEW_METEORSTORM: particle->Open("new_meteostorm\\new_meteostorm\\new_meteostorm.str"); break; - case 0x4E7: + case EF_NEW_METEORSTORM_BOTTOM: particle->Open("new_meteostorm\\new_meteostorm_bottom\\new_meteostorm_bottom.str"); break; - case 0x4EA: + case EF_NEW_ADORAMUS: particle->Open("new_adoramus\\new_adoramus\\new_adoramus.str"); break; - case 0x4EB: + case EF_NEW_ADORAMUS_BOTTOM: particle->Open("new_adoramus\\new_adoramus_bottom\\new_adoramus_bottom.str"); break; - case 0x4EC: + case EF_TETRA_VORTEX_CAST: particle->Open("tetravortex\\tetra_cast\\tetra_cast.str"); break; - case 0x4ED: + case EF_TETRA_VORTEX_CORE: particle->Open("tetravortex\\tetra_ball_00_core\\tetra_ball_00_core.str"); break; - case 0x4EE: + case EF_TETRA_VORTEX_BALL_1: particle->Open("tetravortex\\tetra_ball_01_fire\\tetra_01_fire.str"); break; - case 0x4EF: + case EF_TETRA_VORTEX_BALL_2: particle->Open("tetravortex\\tetra_ball_04_water\\tetra_04_water.str"); break; - case 0x4F0: + case EF_TETRA_VORTEX_BALL_3: particle->Open("tetravortex\\tetra_ball_02_wind\\tetra_02_wind.str"); break; - case 0x4F1: + case EF_TETRA_VORTEX_BALL_4: particle->Open("tetravortex\\tetra_ball_03_earth\\tetra_03_earth.str"); break; - case 0x4F2: + case EF_TETRA_VORTEX_FIRE_EXP: particle->Open("tetravortex\\tetra_01_fire_explosion\\tetra_01_fire_expn.str"); break; - case 0x4F3: + case EF_TETRA_VORTEX_WATER_EXP: particle->Open("tetravortex\\tetra_04_water_explosion\\tetra_04_water_expn.str"); break; - case 0x4F4: + case EF_TETRA_VORTEX_WIND_EXP: particle->Open("tetravortex\\tetra_02_wind_explosion\\tetra_02_wind_expn.str"); break; - case 0x4F5: + case EF_TETRA_VORTEX_EARTH_EXP: particle->Open("tetravortex\\tetra_03_earth_explosion\\tetra_03_earth_expn.str"); break; - case 0x4F6: + case EF_TETRA_VORTEX_FIRE_GROUND: particle->Open("tetravortex\\tetra_01_fire_ground\\tetra_01_fire_grd.str"); break; - case 0x4F7: + case EF_TETRA_VORTEX_WATER_GROUND: particle->Open("tetravortex\\tetra_04_water_ground\\tetra_04_water_grd.str"); break; - case 0x4F8: + case EF_TETRA_VORTEX_WIND_GROUND: particle->Open("tetravortex\\tetra_02_wind_ground\\tetra_02_wind_grd.str"); break; - case 0x4F9: + case EF_TETRA_VORTEX_EARTH_GROUND: particle->Open("tetravortex\\tetra_03_earth_ground\\tetra_03_earth_grd.str"); break; - case 0x4FD: + case EF_TETRA_VORTEX_CORE_GROUND: particle->Open("tetravortex\\tetra_ball_00_core_ground\\tetra_ball_00_core_grd.str"); break; - case 0x4FE: + case EF_TETRA_VORTEX_FIRE_SUB: particle->Open("tetravortex\\tetra_01_fire_sub_explosion\\tetra_01_fire_sub_expn.str"); break; - case 0x4FF: + case EF_TETRA_VORTEX_WATER_SUB: particle->Open("tetravortex\\tetra_04_water_sub_explosion\\tetra_04_water_sub_expn.str"); break; - case 0x500: + case EF_TETRA_VORTEX_WIND_SUB: particle->Open("tetravortex\\tetra_02_wind_sub_explosion\\tetra_02_wind_sub_expn.str"); break; - case 0x501: + case EF_TETRA_VORTEX_EARTH_SUB: particle->Open("tetravortex\\tetra_03_earth_sub_explosion\\tetra_03_earth_sub_expn.str"); break; - case 0x4FA: + case EF_NEW_CRIMSONROCK: particle->Open("new_crimsonrock\\new_crimsonrock\\new_crimsonrock.str"); break; - case 0x4FB: + case EF_NEW_CRIMSONROCK_BOTTOM: particle->Open("new_crimsonrock\\new_crimsonrock_bottom\\new_crimsonrock_bottom.str"); break; - case 0x512: + case EF_NEW_CRIMSONROCK_SUB: particle->Open("new_crimsonrock\\new_crimsonrock_sub_explosion\\new_crimsonrock_sub_explosion.str"); break; - case 0x502: + case EF_NEW_DIAMONDDUST: particle->Open("new_diamonddust\\new_diamonddust\\new_diamonddust.str"); break; - case 0x503: + case EF_NEW_DIAMONDDUST_BOTTOM: particle->Open("new_diamonddust\\new_diamonddust_bottom\\new_diamonddust_bottom.str"); break; - case 0x504: + case EF_NEW_DIAMONDDUST_CAST: particle->Open("new_diamonddust\\new_diamonddust_cast\\new_diamonddust_cast.str"); break; - case 0x505: + case EF_NEW_SEVERERAINSTORM_CAST: particle->Open("new_severerainstorm\\new_severerainstorm_cast\\new_severerainstorm_cast.str"); break; - case 0x507: + case EF_NEW_SECRAMENT: particle->Open("new_secrament\\new_secrament\\new_secrament.str"); break; - case 0x50F: + case EF_NEW_SECRAMENT_AURA: particle->Open("new_secrament\\new_secrament_aura\\new_secrament_aura.str"); break; - case 0x508: + case EF_NEW_PSYCHICWAVE: particle->Open("new_psychicwave\\new_psychicwave\\new_psychicwave.str"); break; - case 0x509: + case EF_NEW_PSYCHICWAVE_BOTTOM: particle->Open("new_psychicwave\\new_psychicwave_bottom\\new_psychicwave_bottom.str"); break; - case 0x50A: + case EF_NEW_PSYCHICWAVE_CAST: particle->Open("new_psychicwave\\new_psychicwave_cast\\new_psychicwave_cast.str"); break; - case 0x50D: + case EF_NEW_ARROWSTORM_00: particle->Open("new_arrowstorm\\new_arrowstorm_00\\new_arrowstorm_00.str"); break; - case 0x50E: + case EF_NEW_ARROWSTORM_01: particle->Open("new_arrowstorm\\new_arrowstorm_01\\new_arrowstorm_01.str"); break; - case 0x510: + case EF_NEW_TRIANGLESHOT: particle->Open("new_triangleshot\\new_triangleshot\\new_triangleshot.str"); break; - case 0x511: + case EF_NEW_TRIANGLESHOT_BOTTOM: particle->Open("new_triangleshot\\new_triangleshot_bottom\\new_triangleshot_bottom.str"); break; - case 0x51E: + case EF_NEW_RAMPAGEBLASTER: particle->Open("new_rampageblaster\\new_rampageblaster\\new_rampageblaster.str"); break; - case 0x51F: + case EF_NEW_RAMPAGEBLASTER_BOTTOM: particle->Open("new_rampageblaster\\new_rampageblaster_bottom\\new_rampageblaster_bottom.str"); break; - case 0x520: + case EF_NEW_FEINTBOMB: particle->Open("new_peintbomb\\new_peintbomb\\new_peintbomb.str"); break; - case 0x521: + case EF_NEW_FEINTBOMB_BOTTOM: particle->Open("new_peintbomb\\new_peintbomb_bottom\\new_peintbomb_bottom.str"); break; - case 0x513: + case EF_NEW_ROLLINGCUTTER: particle->Open("new_rollingcutter\\new_rollingcutter\\new_rollingcutter.str"); break; - case 0x514: + case EF_NEW_ROLLINGCUTTER_COUNT_01: particle->Open("new_rollingcutter\\new_rollingcutter_count_01\\new_rollingcutter_count_01.str"); break; - case 0x515: + case EF_NEW_ROLLINGCUTTER_COUNT_02: particle->Open("new_rollingcutter\\new_rollingcutter_count_02\\new_rollingcutter_count_02.str"); break; - case 0x516: + case EF_NEW_ROLLINGCUTTER_COUNT_03: particle->Open("new_rollingcutter\\new_rollingcutter_count_03\\new_rollingcutter_count_03.str"); break; - case 0x517: + case EF_NEW_ROLLINGCUTTER_COUNT_04: particle->Open("new_rollingcutter\\new_rollingcutter_count_04\\new_rollingcutter_count_04.str"); break; - case 0x518: + case EF_NEW_ROLLINGCUTTER_COUNT_05: particle->Open("new_rollingcutter\\new_rollingcutter_count_05\\new_rollingcutter_count_05.str"); break; - case 0x519: + case EF_NEW_ROLLINGCUTTER_COUNT_06: particle->Open("new_rollingcutter\\new_rollingcutter_count_06\\new_rollingcutter_count_06.str"); break; - case 0x51A: + case EF_NEW_ROLLINGCUTTER_COUNT_07: particle->Open("new_rollingcutter\\new_rollingcutter_count_07\\new_rollingcutter_count_07.str"); break; - case 0x51B: + case EF_NEW_ROLLINGCUTTER_COUNT_08: particle->Open("new_rollingcutter\\new_rollingcutter_count_08\\new_rollingcutter_count_08.str"); break; - case 0x51C: + case EF_NEW_ROLLINGCUTTER_COUNT_09: particle->Open("new_rollingcutter\\new_rollingcutter_count_09\\new_rollingcutter_count_09.str"); break; - case 0x51D: + case EF_NEW_ROLLINGCUTTER_COUNT_10: particle->Open("new_rollingcutter\\new_rollingcutter_count_10\\new_rollingcutter_count_10.str"); break; - case 0x522: + case EF_NEW_CROSSRIPPERSLASHER: particle->Open("new_crossripperslasher\\new_crossripperslasher\\new_crossripperslasher.str"); break; - case 0x523: + case EF_NEW_CROSSRIPPERSLASHER_00: particle->Open("new_crossripperslasher\\new_crossripperslasher_clock_00\\new_crossripperslasher_clock_00.str"); break; - case 0x524: + case EF_NEW_CROSSRIPPERSLASHER_01: particle->Open("new_crossripperslasher\\new_crossripperslasher_clock_01\\new_crossripperslasher_clock_01.str"); break; - case 0x525: + case EF_NEW_CROSSRIPPERSLASHER_03: particle->Open("new_crossripperslasher\\new_crossripperslasher_clock_03\\new_crossripperslasher_clock_03.str"); break; - case 0x526: + case EF_NEW_CROSSRIPPERSLASHER_05: particle->Open("new_crossripperslasher\\new_crossripperslasher_clock_05\\new_crossripperslasher_clock_05.str"); break; - case 0x527: + case EF_NEW_CROSSRIPPERSLASHER_06: particle->Open("new_crossripperslasher\\new_crossripperslasher_clock_06\\new_crossripperslasher_clock_06.str"); break; - case 0x528: + case EF_NEW_CROSSRIPPERSLASHER_07: particle->Open("new_crossripperslasher\\new_crossripperslasher_clock_07\\new_crossripperslasher_clock_07.str"); break; - case 0x529: + case EF_NEW_CROSSRIPPERSLASHER_09: particle->Open("new_crossripperslasher\\new_crossripperslasher_clock_09\\new_crossripperslasher_clock_09.str"); break; - case 0x52A: + case EF_NEW_CROSSRIPPERSLASHER_11: particle->Open("new_crossripperslasher\\new_crossripperslasher_clock_11\\new_crossripperslasher_clock_11.str"); break; - case 0x52B: + case EF_NEW_TIGERCANNON: particle->Open("new_tigercannon\\new_tigercannon.str"); break; - case 0x544: + case EF_NEW_ARMSCANNON_01_DOWN: particle->Open("new_armscannon\\new_armscannon_01_clock_down\\new_armscannon_01_clock_down.str"); break; - case 0x543: + case EF_NEW_ARMSCANNON_01_UP: particle->Open("new_armscannon\\new_armscannon_01_clock_up\\new_armscannon_01_clock_up.str"); break; - case 0x546: + case EF_NEW_ARMSCANNON_05_DOWN: particle->Open("new_armscannon\\new_armscannon_05_clock_down\\new_armscannon_05_clock_down.str"); break; - case 0x545: + case EF_NEW_ARMSCANNON_05_UP: particle->Open("new_armscannon\\new_armscannon_05_clock_up\\new_armscannon_05_clock_up.str"); break; - case 0x548: + case EF_NEW_ARMSCANNON_07_DOWN: particle->Open("new_armscannon\\new_armscannon_07_clock_down\\new_armscannon_07_clock_down.str"); break; - case 0x547: + case EF_NEW_ARMSCANNON_07_UP: particle->Open("new_armscannon\\new_armscannon_07_clock_up\\new_armscannon_07_clock_up.str"); break; - case 0x54A: + case EF_NEW_ARMSCANNON_11_DOWN: particle->Open("new_armscannon\\new_armscannon_11_clock_down\\new_armscannon_11_clock_down.str"); break; - case 0x549: + case EF_NEW_ARMSCANNON_11_UP: particle->Open("new_armscannon\\new_armscannon_11_clock_up\\new_armscannon_11_clock_up.str"); break; - case 0x54B: + case EF_NEW_ARMSCANNON_EXPLOSION: particle->Open("new_armscannon\\new_armscannon_explosion\\new_armscannon_explosion.str"); break; - case 0x54C: + case EF_NEW_ARMSCANNON_EXPLOSION_BOTTOM: particle->Open("new_armscannon\\new_armscannon_explosion_bottom\\new_armscannon_explosion_bottom.str"); break; - case 0x568: + case EF_NEW_ARMSCANNON_CAST: particle->Open("new_armscannon\\new_armscannon_cast\\new_armscannon_cast.str"); break; - case 0x569: + case EF_NEW_ARMSCANNON_CAST_BOTTOM: particle->Open("new_armscannon\\new_armscannon_cast_bottom\\new_armscannon_cast_bottom.str"); break; - case 0x54E: + case EF_NEW_CART_CANNON_EXPLOSION: particle->Open("new_cart_cannon\\new_cart_cannon_explosion\\new_cart_cannon_explosion.str"); break; - case 0x54F: + case EF_NEW_CART_CANNON_EXPLOSION_BOTTOM: particle->Open("new_cart_cannon\\new_cart_cannon_explosion_bottom\\new_cart_cannon_explosion_bottom.str"); break; - case 0x550: + case EF_NEW_CART_CANNON_FIRE: particle->Open("new_cart_cannon\\new_cart_cannon_fire\\new_cart_cannon_fire.str"); break; - case 0x551: + case EF_NEW_CART_CANNON_FIRE_BOTTOM: particle->Open("new_cart_cannon\\new_cart_cannon_fire_bottom\\new_cart_cannon_fire_bottom.str"); break; - case 0x58E: + case EF_NEW_CART_CANNON_CAST: particle->Open("new_cart_cannon\\new_cart_cannon_cast\\new_cart_cannon_cast.str"); break; - case 0x58F: + case EF_NEW_CART_CANNON_CAST_BOTTOM: particle->Open("new_cart_cannon\\new_cart_cannon_cast_bottom\\new_cart_cannon_cast_bottom.str"); break; - case 0x552: + case EF_QSCARABA_VISUAL: particle->Open("efst_qscaraba\\qscaraba.str"); break; - case 0x553: + case EF_NEW_AXETORNADO: particle->Open("new_axetornado\\new_axetornado\\new_axetornado.str"); break; - case 0x554: + case EF_NEW_AXETORNADO_BOTTOM: particle->Open("new_axetornado\\new_axetornado_bottom\\new_axetornado_bottom.str"); break; - case 0x555: + case EF_NEW_CART_TORNADO: particle->Open("new_cart_tornado\\new_cart_tornado\\new_cart_tornado.str"); break; - case 0x556: + case EF_NEW_CART_TORNADO_BOTTOM: particle->Open("new_cart_tornado\\new_cart_tornado_bottom\\new_cart_tornado_bottom.str"); break; - case 0x557: + case EF_HELP_ANGEL: particle->Open("help_angel\\help_angel\\help_angel.str"); break; - case 0x558: + case EF_HELP_ANGEL_BOTTOM: particle->Open("help_angel\\help_angel_bottom\\help_angel_bottom.str"); break; - case 0x559: + case EF_NEW_BANISHINGPOINT_TARGET: particle->Open("new_banishingpoint\\new_banishingpoint_target\\new_banishingpoint_target.str"); break; - case 0x55A: + case EF_NEW_BANISHINGPOINT_TARGET_BOTTOM: particle->Open("new_banishingpoint\\new_banishingpoint_target_bottom\\new_banishingpoint_target_bottom.str"); break; - case 0x55B: + case EF_NEW_BANISHINGPOINT_CAST: particle->Open("new_banishingpoint\\new_banishingpoint_cast\\new_banishingpoint_cast.str"); break; - case 0x55C: + case EF_NEW_BANISHINGPOINT_CAST_BOTTOM: particle->Open("new_banishingpoint\\new_banishingpoint_cast_bottom\\new_banishingpoint_cast_bottom.str"); break; - case 0x55D: + case EF_NEW_BANISHINGPOINT_01: particle->Open("new_banishingpoint\\new_banishingpoint_01\\new_banishingpoint_01.str"); break; - case 0x55E: + case EF_NEW_BANISHINGPOINT_05: particle->Open("new_banishingpoint\\new_banishingpoint_05\\new_banishingpoint_05.str"); break; - case 0x55F: + case EF_NEW_BANISHINGPOINT_07: particle->Open("new_banishingpoint\\new_banishingpoint_07\\new_banishingpoint_07.str"); break; - case 0x560: + case EF_NEW_BANISHINGPOINT_11: particle->Open("new_banishingpoint\\new_banishingpoint_11\\new_banishingpoint_11.str"); break; - case 0x562: + case EF_NEW_DRAGONBREATH_BOMB: particle->Open("new_dragonbreath\\new_dragonbreath_bomb\\new_dragonbreath_bomb.str"); break; - case 0x563: + case EF_NEW_DRAGONBREATH_BOMB_BOTTOM: particle->Open("new_dragonbreath\\new_dragonbreath_bomb_bottom\\new_dragonbreath_bomb_bottom.str"); break; - case 0x564: + case EF_NEW_DRAGONBREATH_01: particle->Open("new_dragonbreath\\new_dragonbreath_01_clock\\new_dragonbreath_01_clock.str"); break; - case 0x565: + case EF_NEW_DRAGONBREATH_05: particle->Open("new_dragonbreath\\new_dragonbreath_05_clock\\new_dragonbreath_05_clock.str"); break; - case 0x566: + case EF_NEW_DRAGONBREATH_07: particle->Open("new_dragonbreath\\new_dragonbreath_07_clock\\new_dragonbreath_07_clock.str"); break; - case 0x567: + case EF_NEW_DRAGONBREATH_11: particle->Open("new_dragonbreath\\new_dragonbreath_11_clock\\new_dragonbreath_11_clock.str"); break; - case 0x56A: + case EF_NEW_DRAGONBREATH_WATER_BOMB: particle->Open("new_dragonbreath_water\\new_dragonbreath_water_bomb\\new_dragonbreath_water_bomb.str"); break; - case 0x56B: + case EF_NEW_DRAGONBREATH_WATER_BOMB_BOTTOM: particle->Open("new_dragonbreath_water\\new_dragonbreath_water_bomb_bottom\\new_dragonbreath_water_bomb_bottom.str"); break; - case 0x56C: + case EF_NEW_DRAGONBREATH_WATER_01: particle->Open("new_dragonbreath_water\\new_dragonbreath_water_01_clock\\new_dragonbreath_water_01_clock.str"); break; - case 0x56D: + case EF_NEW_DRAGONBREATH_WATER_05: particle->Open("new_dragonbreath_water\\new_dragonbreath_water_05_clock\\new_dragonbreath_water_05_clock.str"); break; - case 0x56E: + case EF_NEW_DRAGONBREATH_WATER_07: particle->Open("new_dragonbreath_water\\new_dragonbreath_water_07_clock\\new_dragonbreath_water_07_clock.str"); break; - case 0x56F: + case EF_NEW_DRAGONBREATH_WATER_11: particle->Open("new_dragonbreath_water\\new_dragonbreath_water_11_clock\\new_dragonbreath_water_11_clock.str"); break; - case 0x570: + case EF_NEW_COUNTER_SLASH: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_counter_slash\\new_counter_slash\\new_counter_slash.str"); } else { particle->Open("new_counter_slash\\new_counter_slash\\new_counter_slash.str"); } break; - case 0x571: + case EF_NEW_COUNTER_SLASH_BOTTOM: particle->Open("new_counter_slash\\new_counter_slash_bottom\\new_counter_slash_bottom.str"); break; - case 0x572: + case EF_NEW_FATAL_MENACE: particle->Open("new_fatal_menace\\new_fatal_menace\\new_fatal_menace.str"); break; - case 0x573: + case EF_NEW_FATAL_MENACE_BOTTOM: particle->Open("new_fatal_menace\\new_fatal_menace_bottom\\new_fatal_menace_bottom.str"); break; - case 0x574: + case EF_NEW_FATAL_MENACE_CAST: particle->Open("new_fatal_menace\\new_fatal_menace_cast\\new_fatal_menace_cast.str"); break; - case 0x575: + case EF_NEW_FATAL_MENACE_CAST_BOTTOM: particle->Open("new_fatal_menace\\new_fatal_menace_cast_bottom\\new_fatal_menace_cast_bottom.str"); break; - case 0x578: + case EF_NEW_CANNON_SPEAR_12: particle->Open("new_cannon_spear\\new_cannon_spear_12_clock\\new_cannon_spear_12_clock.str"); break; - case 0x579: + case EF_NEW_CANNON_SPEAR_01: particle->Open("new_cannon_spear\\new_cannon_spear_01_clock\\new_cannon_spear_01_clock.str"); break; - case 0x57A: + case EF_NEW_CANNON_SPEAR_03: particle->Open("new_cannon_spear\\new_cannon_spear_03_clock\\new_cannon_spear_03_clock.str"); break; - case 0x57B: + case EF_NEW_CANNON_SPEAR_05: particle->Open("new_cannon_spear\\new_cannon_spear_05_clock\\new_cannon_spear_05_clock.str"); break; - case 0x57C: + case EF_NEW_CANNON_SPEAR_06: particle->Open("new_cannon_spear\\new_cannon_spear_06_clock\\new_cannon_spear_06_clock.str"); break; - case 0x57D: + case EF_NEW_CANNON_SPEAR_07: particle->Open("new_cannon_spear\\new_cannon_spear_07_clock\\new_cannon_spear_07_clock.str"); break; - case 0x57E: + case EF_NEW_CANNON_SPEAR_09: particle->Open("new_cannon_spear\\new_cannon_spear_09_clock\\new_cannon_spear_09_clock.str"); break; - case 0x57F: + case EF_NEW_CANNON_SPEAR_11: particle->Open("new_cannon_spear\\new_cannon_spear_11_clock\\new_cannon_spear_11_clock.str"); break; - case 0x580: + case EF_NEW_CANNON_SPEAR_BOTTOM: particle->Open("new_cannon_spear\\new_cannon_spear_bottom\\new_cannon_spear_bottom.str"); break; - case 0x582: + case EF_NEW_BASICATTACK: particle->Open("new_hit\\new_basicattack\\new_basicattack.str"); break; - case 0x583: + case EF_NEW_CRITICALATTACK: particle->Open("new_hit\\new_criticalattack\\new_criticalattack.str"); break; - case 0x584: + case EF_NEW_RANGEDATTACK: particle->Open(this->name); break; - case 0x585: + case EF_NEW_COMET: particle->Open("new_comet\\new_comet\\new_comet.str"); break; - case 0x586: + case EF_NEW_COMET_BOTTOM: particle->Open("new_comet\\new_comet_bottom\\new_comet_bottom.str"); break; - case 0x587: + case EF_NEW_COMET_CAST_BOTTOM: particle->Open("new_comet\\new_comet_cast_bottom\\new_comet_cast_bottom.str"); break; - case 0x588: + case EF_NEW_COMET_SUB_EXP: particle->Open("new_comet\\new_comet_sub_explosion\\new_comet_sub_explosion.str"); break; - case 0x589: + case EF_NEW_COMET_SUB_EXP_BOTTOM: particle->Open("new_comet\\new_comet_sub_explosion_bottom\\new_comet_sub_explosion_bottom.str"); break; - case 0x58D: + case EF_NEW_COMET_CAST: particle->Open("new_comet\\new_comet_cast\\new_comet_cast.str"); break; - case 0x590: + case EF_NEW_RAYOFGENESIS: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_rayofgenesis\\new_rayofgenesis\\new_rayofgenesis.str"); } else { particle->Open("new_rayofgenesis\\new_rayofgenesis\\new_rayofgenesis.str"); } break; - case 0x591: + case EF_NEW_RAYOFGENESIS_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_rayofgenesis\\new_rayofgenesis_cast\\new_rayofgenesis_cast.str"); } else { particle->Open("new_rayofgenesis\\new_rayofgenesis_cast\\new_rayofgenesis_cast.str"); } break; - case 0x592: + case EF_NEW_RAYOFGENESIS_CAST_BOTTOM: particle->Open("new_rayofgenesis\\new_rayofgenesis_cast_bottom\\new_rayofgenesis_cast_bottom.str"); break; - case 0x593: + case EF_NEW_RAYOFGENESIS_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_rayofgenesis\\new_rayofgenesis_hit\\new_rayofgenesis_hit.str"); } else { particle->Open("new_rayofgenesis\\new_rayofgenesis_hit\\new_rayofgenesis_hit.str"); } break; - case 0x594: + case EF_MINEFFECT_ADORAMUS: particle->Open("mineffect\\new_adoramus\\new_adoramus\\new_adoramus.str"); break; - case 0x595: + case EF_MINEFFECT_ADORAMUS_BOTTOM: particle->Open("mineffect\\new_adoramus\\new_adoramus_bottom\\new_adoramus_bottom.str"); break; - case 0x596: + case EF_MINEFFECT_TETRA_CAST: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_cast\\new_tetravortex_cast.str"); break; - case 0x597: + case EF_MINEFFECT_TETRA_CORE: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_ball_core\\new_tetravortex_ball_core.str"); break; - case 0x598: + case EF_MINEFFECT_TETRA_FIRE: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_fire\\new_tetravortex_fire.str"); break; - case 0x599: + case EF_MINEFFECT_TETRA_WATER: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_water\\new_tetravortex_water.str"); break; - case 0x59A: + case EF_MINEFFECT_TETRA_WIND: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_wind\\new_tetravortex_wind.str"); break; - case 0x59B: + case EF_MINEFFECT_TETRA_EARTH: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_earth\\new_tetravortex_earth.str"); break; - case 0x59C: + case EF_MINEFFECT_TETRA_FIRE_BOTTOM: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_fire_bottom\\new_tetravortex_fire_bottom.str"); break; - case 0x59D: + case EF_MINEFFECT_TETRA_WATER_BOTTOM: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_water_bottom\\new_tetravortex_water_bottom.str"); break; - case 0x59E: + case EF_MINEFFECT_TETRA_WIND_BOTTOM: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_wind_bottom\\new_tetravortex_wind_bottom.str"); break; - case 0x59F: + case EF_MINEFFECT_TETRA_EARTH_BOTTOM: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_earth_bottom\\new_tetravortex_earth_bottom.str"); break; - case 0x5A0: + case EF_MINEFFECT_TETRA_CORE_BOTTOM: particle->Open("mineffect\\new_tetravortex\\new_tetravortex_ball_core_bottom\\new_tetravortex_ball_core_bottom.str"); break; - case 0x5A1: + case EF_MINEFFECT_CRIMSONROCK: particle->Open("mineffect\\new_crimsonrock\\new_crimsonrock\\new_crimsonrock.str"); break; - case 0x5A2: + case EF_MINEFFECT_CRIMSONROCK_BOTTOM: particle->Open("mineffect\\new_crimsonrock\\new_crimsonrock_bottom\\new_crimsonrock_bottom.str"); break; - case 0x5A3: + case EF_NEW_JACKFROST_00: particle->Open("new_jackfrost\\new_jackfrost\\new_jackfrost_00.str"); break; - case 0x5A4: + case EF_NEW_JACKFROST_01: particle->Open("new_jackfrost\\new_jackfrost\\new_jackfrost_01.str"); break; - case 0x5A5: + case EF_NEW_JACKFROST_02: particle->Open("new_jackfrost\\new_jackfrost\\new_jackfrost_02.str"); break; - case 0x5A6: + case EF_NEW_JACKFROST_CAST: particle->Open("new_jackfrost\\new_jackfrost_cast\\new_jackfrost_cast.str"); break; - case 0x5A7: + case EF_NEW_JACKFROST_RUNE: particle->Open("new_jackfrost\\new_jackfrost_magicrune\\new_jackfrost_frost.str"); break; - case 0x5AA: + case EF_MINEFFECT_DIAMONDDUST: particle->Open("mineffect\\new_diamonddust\\new_diamonddust\\new_diamonddust.str"); break; - case 0x5AB: + case EF_MINEFFECT_DIAMONDDUST_BOTTOM: particle->Open("mineffect\\new_diamonddust\\new_diamonddust_bottom\\new_diamonddust_bottom.str"); break; - case 0x5AC: + case EF_MINEFFECT_DIAMONDDUST_CAST: particle->Open("mineffect\\new_diamonddust\\new_diamonddust_cast\\new_diamonddust_cast.str"); break; - case 0x5AD: + case EF_MINEFFECT_SECRAMENT: particle->Open("mineffect\\new_secrament\\new_secrament\\new_secrament.str"); break; - case 0x5AE: + case EF_MINEFFECT_PSYCHICWAVE: particle->Open("mineffect\\new_psychicwave\\new_psychicwave\\new_psychicwave.str"); break; - case 0x5AF: + case EF_MINEFFECT_PSYCHICWAVE_BOTTOM: particle->Open("mineffect\\new_psychicwave\\new_psychicwave_bottom\\new_psychicwave_bottom.str"); break; - case 0x5B0: + case EF_MINEFFECT_PSYCHICWAVE_CAST: particle->Open("mineffect\\new_psychicwave\\new_psychicwave_cast\\new_psychicwave_cast.str"); break; - case 0x5B1: + case EF_MINEFFECT_ARROWSTORM_00: particle->Open("mineffect\\new_arrowstorm\\new_arrowstorm_00\\new_arrowstorm_00.str"); break; - case 0x5B2: + case EF_MINEFFECT_ARROWSTORM_01: particle->Open("mineffect\\new_arrowstorm\\new_arrowstorm_01\\new_arrowstorm_01.str"); break; - case 0x5B3: + case EF_MINEFFECT_TRIANGLESHOT: particle->Open("mineffect\\new_triangleshot\\new_triangleshot\\new_triangleshot.str"); break; - case 0x5B4: + case EF_MINEFFECT_TRIANGLESHOT_BOTTOM: particle->Open("mineffect\\new_triangleshot\\new_triangleshot_bottom\\new_triangleshot_bottom.str"); break; - case 0x5B5: + case EF_MINEFFECT_RAMPAGEBLASTER: particle->Open("mineffect\\new_rampageblaster\\new_rampageblaster\\new_rampageblaster_exp.str"); break; - case 0x5B6: + case EF_MINEFFECT_RAMPAGEBLASTER_BOTTOM: particle->Open("mineffect\\new_rampageblaster\\new_rampageblaster_bottom\\new_rampageblaster_bottom.str"); break; - case 0x5B7: + case EF_MINEFFECT_FEINTBOMB: particle->Open("mineffect\\new_peintbomb\\new_peintbomb\\new_peintbomb.str"); break; - case 0x5B8: + case EF_MINEFFECT_FEINTBOMB_BOTTOM: particle->Open("mineffect\\new_peintbomb\\new_peintbomb_bottom\\new_peintbomb_bottom.str"); break; - case 0x5B9: + case EF_NEW_EARTHGRAVE_VISUAL: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_earthgrave\\new_earthgrave\\new_earthgrave.str"); } else { particle->Open("new_earthgrave\\new_earthgrave\\new_earthgrave.str"); } break; - case 0x656: + case EF_NEW_EARTHGRAVE_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_earthgrave\\new_earthgrave_bottom\\new_earthgrave_bottom.str"); } else { particle->Open("new_earthgrave\\new_earthgrave_bottom\\new_earthgrave_bottom.str"); } break; - case 0x657: + case EF_NEW_EARTHGRAVE_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_earthgrave\\new_earthgrave_hit\\new_earthgrave_hit.str"); } else { particle->Open("new_earthgrave\\new_earthgrave_hit\\new_earthgrave_hit.str"); } break; - case 0x5BA: + case EF_MINEFFECT_ROLLINGCUTTER_CAST: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter\\new_rollingcutter_cast.str"); break; - case 0x5BB: + case EF_MINEFFECT_ROLLINGCUTTER_01: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_01\\new_rollingcutter_count_01.str"); break; - case 0x5BC: + case EF_MINEFFECT_ROLLINGCUTTER_02: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_02\\new_rollingcutter_count_02.str"); break; - case 0x5BD: + case EF_MINEFFECT_ROLLINGCUTTER_03: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_03\\new_rollingcutter_count_03.str"); break; - case 0x5BE: + case EF_MINEFFECT_ROLLINGCUTTER_04: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_04\\new_rollingcutter_count_04.str"); break; - case 0x5BF: + case EF_MINEFFECT_ROLLINGCUTTER_05: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_05\\new_rollingcutter_count_05.str"); break; - case 0x5C0: + case EF_MINEFFECT_ROLLINGCUTTER_06: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_06\\new_rollingcutter_count_06.str"); break; - case 0x5C1: + case EF_MINEFFECT_ROLLINGCUTTER_07: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_07\\new_rollingcutter_count_07.str"); break; - case 0x5C2: + case EF_MINEFFECT_ROLLINGCUTTER_08: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_08\\new_rollingcutter_count_08.str"); break; - case 0x5C3: + case EF_MINEFFECT_ROLLINGCUTTER_09: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_09\\new_rollingcutter_count_09.str"); break; - case 0x5C4: + case EF_MINEFFECT_ROLLINGCUTTER_10: particle->Open("mineffect\\new_rollingcutter\\new_rollingcutter_count_10\\new_rollingcutter_count_10.str"); break; - case 0x5C5: + case EF_MINEFFECT_CROSSRIPPERSLASHER: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher\\new_crossripperslasher.str"); break; - case 0x5C6: + case EF_MINEFFECT_CROSSRIPPERSLASHER_12: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher_12\\new_crossripperslasher_12.str"); break; - case 0x5C7: + case EF_MINEFFECT_CROSSRIPPERSLASHER_01: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher_01\\new_crossripperslasher_01.str"); break; - case 0x5C8: + case EF_MINEFFECT_CROSSRIPPERSLASHER_03: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher_03\\new_crossripperslasher_03.str"); break; - case 0x5C9: + case EF_MINEFFECT_CROSSRIPPERSLASHER_05: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher_05\\new_crossripperslasher_05.str"); break; - case 0x5CA: + case EF_MINEFFECT_CROSSRIPPERSLASHER_06: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher_06\\new_crossripperslasher_06.str"); break; - case 0x5CB: + case EF_MINEFFECT_CROSSRIPPERSLASHER_07: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher_07\\new_crossripperslasher_07.str"); break; - case 0x5CC: + case EF_MINEFFECT_CROSSRIPPERSLASHER_09: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher_09\\new_crossripperslasher_09.str"); break; - case 0x5CD: + case EF_MINEFFECT_CROSSRIPPERSLASHER_11: particle->Open("mineffect\\new_crossripperslasher\\new_crossripperslasher_11\\new_crossripperslasher_11.str"); break; - case 0x5CE: + case EF_MINEFFECT_ARMSCANNON_01: particle->Open("mineffect\\new_armscannon\\new_armscannon_01\\new_armscannon_01.str"); break; - case 0x5CF: + case EF_MINEFFECT_ARMSCANNON_05: particle->Open("mineffect\\new_armscannon\\new_armscannon_05\\new_armscannon_05.str"); break; - case 0x5D0: + case EF_MINEFFECT_ARMSCANNON_07: particle->Open("mineffect\\new_armscannon\\new_armscannon_07\\new_armscannon_07.str"); break; - case 0x5D1: + case EF_MINEFFECT_ARMSCANNON_11: particle->Open("mineffect\\new_armscannon\\new_armscannon_11\\new_armscannon_11.str"); break; - case 0x5D2: + case EF_MINEFFECT_ARMSCANNON_EXPLOSION: particle->Open("mineffect\\new_armscannon\\new_armscannon_explosion\\armscannon_explosion.str"); break; - case 0x5D3: + case EF_MINEFFECT_ARMSCANNON_EXPLOSION_BOTTOM: particle->Open("mineffect\\new_armscannon\\new_armscannon_explosion_bottom\\armscannon_explosion_bottom.str"); break; - case 0x5D4: + case EF_MINEFFECT_ARMSCANNON_CAST: particle->Open("mineffect\\new_armscannon\\new_armscannon_cast\\new_armscannon_cast.str"); break; - case 0x5D5: + case EF_MINEFFECT_ARMSCANNON_CAST_BOTTOM: particle->Open("mineffect\\new_armscannon\\new_armscannon_cast_bottom\\new_armscannon_cast_bottom.str"); break; - case 0x5D6: + case EF_MINEFFECT_AXETORNADO: particle->Open("mineffect\\new_axetornado\\new_axetornado\\new_axetornado.str"); break; - case 0x5D7: + case EF_MINEFFECT_AXETORNADO_BOTTOM: particle->Open("mineffect\\new_axetornado\\new_axetornado_bottom\\new_axetornado_bottom.str"); break; - case 0x5D8: + case EF_MINEFFECT_CART_CANNON_EXPLOSION: particle->Open("mineffect\\new_cart_cannon\\new_cart_cannon_explosion\\armscannon_explosion.str"); break; - case 0x5D9: + case EF_MINEFFECT_CART_CANNON_EXPLOSION_BOTTOM: particle->Open("mineffect\\new_cart_cannon\\new_cart_cannon_explosion_bottom\\armscannon_explosion_bottom.str"); break; - case 0x5DA: + case EF_MINEFFECT_CART_CANNON_FIRE_BOTTOM: particle->Open("mineffect\\new_cart_cannon\\new_cart_cannon_fire_bottom\\new_cartcannon_cast_bottom.str"); break; - case 0x5DB: + case EF_MINEFFECT_CART_CANNON_CAST: particle->Open("mineffect\\new_cart_cannon\\new_cart_cannon_cast\\new_cart_cannon_cast.str"); break; - case 0x5DC: + case EF_MINEFFECT_CART_CANNON_CAST_BOTTOM: particle->Open("mineffect\\new_cart_cannon\\new_cart_cannon_cast_bottom\\new_cart_cannon_cast_bottom.str"); break; - case 0x5DD: + case EF_MINEFFECT_CART_TORNADO: particle->Open("mineffect\\new_cart_tornado\\new_cart_tornado\\new_carttornado.str"); break; - case 0x5DE: + case EF_MINEFFECT_CART_TORNADO_BOTTOM: particle->Open("mineffect\\new_cart_tornado\\new_cart_tornado_bottom\\new_carttornado_bottom.str"); break; - case 0x5DF: + case EF_MINEFFECT_BANISHINGPOINT_TARGET: particle->Open("mineffect\\new_banishingpoint\\new_banishingpoint_target\\new_banishingpoint_target.str"); break; - case 0x5E0: + case EF_MINEFFECT_BANISHINGPOINT_TARGET_BOTTOM: particle->Open("mineffect\\new_banishingpoint\\new_banishingpoint_target_bottom\\new_banishingpoint_target_bottom.str"); break; - case 0x5E1: + case EF_MINEFFECT_BANISHINGPOINT_CAST: particle->Open("mineffect\\new_banishingpoint\\new_banishingpoint_cast\\new_banishingpoint_cast.str"); break; - case 0x5E2: + case EF_MINEFFECT_BANISHINGPOINT_CAST_BOTTOM: particle->Open("mineffect\\new_banishingpoint\\new_banishingpoint_cast_bottom\\new_banishingpoint_cast_combine.str"); break; - case 0x5E3: + case EF_MINEFFECT_BANISHINGPOINT_01: particle->Open("mineffect\\new_banishingpoint\\new_banishingpoint_01\\new_banishingpoint_01.str"); break; - case 0x5E4: + case EF_MINEFFECT_BANISHINGPOINT_05: particle->Open("mineffect\\new_banishingpoint\\new_banishingpoint_05\\new_banishingpoint_05.str"); break; - case 0x5E5: + case EF_MINEFFECT_BANISHINGPOINT_07: particle->Open("mineffect\\new_banishingpoint\\new_banishingpoint_07\\new_banishingpoint_07.str"); break; - case 0x5E6: + case EF_MINEFFECT_BANISHINGPOINT_11: particle->Open("mineffect\\new_banishingpoint\\new_banishingpoint_11\\new_banishingpoint_11.str"); break; - case 0x5E7: + case EF_MINEFFECT_CANNON_SPEAR_12: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_12\\new_cannonspear_12.str"); break; - case 0x5E8: + case EF_MINEFFECT_CANNON_SPEAR_01: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_01\\new_cannonspear_01.str"); break; - case 0x5E9: + case EF_MINEFFECT_CANNON_SPEAR_03: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_03\\new_cannonspear_03.str"); break; - case 0x5EA: + case EF_MINEFFECT_CANNON_SPEAR_05: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_05\\new_cannonspear_05.str"); break; - case 0x5EB: + case EF_MINEFFECT_CANNON_SPEAR_06: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_06\\new_cannonspear_06.str"); break; - case 0x5EC: + case EF_MINEFFECT_CANNON_SPEAR_07: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_07\\new_cannonspear_07.str"); break; - case 0x5ED: + case EF_MINEFFECT_CANNON_SPEAR_09: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_09\\new_cannonspear_09.str"); break; - case 0x5EE: + case EF_MINEFFECT_CANNON_SPEAR_11: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_11\\new_cannonspear_11.str"); break; - case 0x5EF: + case EF_MINEFFECT_CANNON_SPEAR_BOTTOM: particle->Open("mineffect\\new_cannonspear\\new_cannonspear_bottom\\new_cannonspear_bottom.str"); break; - case 0x5F0: + case EF_MINEFFECT_DRAGONBREATH_BOMB: particle->Open("mineffect\\new_dragonbreath\\new_dragonbreath_fire_bomb\\new_dragonbreath_fire_bomb.str"); break; - case 0x5F1: + case EF_MINEFFECT_DRAGONBREATH_01: particle->Open("mineffect\\new_dragonbreath\\new_dragonbreath_fire_01\\new_dragonbreath_fire_01.str"); break; - case 0x5F2: + case EF_MINEFFECT_DRAGONBREATH_05: particle->Open("mineffect\\new_dragonbreath\\new_dragonbreath_fire_05\\new_dragonbreath_fire_05.str"); break; - case 0x5F3: + case EF_MINEFFECT_DRAGONBREATH_07: particle->Open("mineffect\\new_dragonbreath\\new_dragonbreath_fire_07\\new_dragonbreath_fire_07.str"); break; - case 0x5F4: + case EF_MINEFFECT_DRAGONBREATH_11: particle->Open("mineffect\\new_dragonbreath\\new_dragonbreath_fire_11\\new_dragonbreath_fire_11.str"); break; - case 0x5F6: + case EF_MINEFFECT_DRAGONBREATH_WATER_BOMB: particle->Open("mineffect\\new_dragonbreath_water\\new_dragonbreath_water_bomb\\new_dragonbreath_water_bomb.str"); break; - case 0x5F7: + case EF_MINEFFECT_DRAGONBREATH_WATER_01: particle->Open("mineffect\\new_dragonbreath_water\\new_dragonbreath_water_01\\new_dragonbreath_water_01.str"); break; - case 0x5F8: + case EF_MINEFFECT_DRAGONBREATH_WATER_05: particle->Open("mineffect\\new_dragonbreath_water\\new_dragonbreath_water_05\\new_dragonbreath_water_05.str"); break; - case 0x5F9: + case EF_MINEFFECT_DRAGONBREATH_WATER_07: particle->Open("mineffect\\new_dragonbreath_water\\new_dragonbreath_water_07\\new_dragonbreath_water_07.str"); break; - case 0x5FA: + case EF_MINEFFECT_DRAGONBREATH_WATER_11: particle->Open("mineffect\\new_dragonbreath_water\\new_dragonbreath_water_11\\new_dragonbreath_water_11.str"); break; - case 0x5FC: + case EF_MINEFFECT_TIGERCANNON: particle->Open("mineffect\\new_tigercannon\\new_tigercannon.str"); break; - case 0x5FD: + case EF_MINEFFECT_SEVERERAINSTORM_CAST: particle->Open("mineffect\\new_severerainstorm\\new_severerainstorm_cast\\new_severerainstorm_cast.str"); break; - case 0x5FE: + case EF_MINEFFECT_COMET: particle->Open("mineffect\\new_comet\\new_comet\\new_comet.str"); break; - case 0x5FF: + case EF_MINEFFECT_COMET_BOTTOM: particle->Open("mineffect\\new_comet\\new_comet_bottom\\new_comet_bottom.str"); break; - case 0x600: + case EF_MINEFFECT_COMET_CAST_BOTTOM: particle->Open("mineffect\\new_comet\\new_comet_cast_bottom\\new_comet_cast_bottom.str"); break; - case 0x601: + case EF_MINEFFECT_COMET_SUB_EXP: particle->Open("mineffect\\new_comet\\new_comet_sub_explosion\\new_comet_sub_explosion.str"); break; - case 0x602: + case EF_MINEFFECT_COMET_SUB_EXP_BOTTOM: particle->Open("mineffect\\new_comet\\new_comet_sub_explosion_bottom\\new_comet_sub_explosion_bottom.str"); break; - case 0x603: + case EF_MINEFFECT_COMET_CAST: particle->Open("mineffect\\new_comet\\new_comet_cast\\new_comet_cast.str"); break; - case 0x604: + case EF_MINEFFECT_JACKFROST_00: particle->Open("mineffect\\new_jackfrost\\new_jackfrost_ice\\new_jackfrost_00.str"); break; - case 0x605: + case EF_MINEFFECT_JACKFROST_01: particle->Open("mineffect\\new_jackfrost\\new_jackfrost_ice\\new_jackfrost_01.str"); break; - case 0x606: + case EF_MINEFFECT_JACKFROST_02: particle->Open("mineffect\\new_jackfrost\\new_jackfrost_ice\\new_jackfrost_02.str"); break; - case 0x607: + case EF_MINEFFECT_JACKFROST_CAST: particle->Open("mineffect\\new_jackfrost\\new_jackfrost_cast\\new_jackfrost_cast.str"); break; - case 0x608: + case EF_MINEFFECT_JACKFROST_RUNE: particle->Open("mineffect\\new_jackfrost\\new_jackfrost_magicrune\\new_jackfrost_frost.str"); break; - case 0x60A: + case EF_NEW_POISONSMOKE_1: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_poisonsmoke\\new_poisonsmoke\\new_poisonsmoke_1.str"); } else { particle->Open("new_poisonsmoke\\new_poisonsmoke\\new_poisonsmoke_1.str"); } break; - case 0x60B: + case EF_NEW_POISONSMOKE_2: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_poisonsmoke\\new_poisonsmoke\\new_poisonsmoke_2.str"); } else { particle->Open("new_poisonsmoke\\new_poisonsmoke\\new_poisonsmoke_2.str"); } break; - case 0x60C: + case EF_NEW_POISONSMOKE_CAST: particle->Open("new_poisonsmoke\\new_poisonsmoke_cast\\new_poisonsmoke_cast.str"); break; - case 0x60D: + case EF_NEW_FEARBREEZE: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_fearbreeze\\new_fearbreeze.str"); } else { particle->Open("new_fearbreeze\\new_fearbreeze.str"); } break; - case 0x60E: + case EF_NEW_HELLINFERNO: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_hellInferno\\new_hellInferno\\new_hellInferno.str"); } else { particle->Open("new_hellInferno\\new_hellInferno\\new_hellInferno.str"); } break; - case 0x60F: + case EF_NEW_HELLINFERNO_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_hellInferno\\new_hellInferno_bottom\\new_hellInferno_bottom.str"); } else { particle->Open("new_hellInferno\\new_hellInferno_bottom\\new_hellInferno_bottom.str"); } break; - case 0x610: + case EF_NEW_HELLINFERNO_CAST_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_hellInferno\\new_hellInferno_cast_bottom\\new_hellInferno_cast_bottom.str"); } else { particle->Open("new_hellInferno\\new_hellInferno_cast_bottom\\new_hellInferno_cast_bottom.str"); } break; - case 0x611: + case EF_NEW_HELLINFERNO_SUB: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_hellInferno\\new_hellInferno_sub\\new_hellInferno_sub.str"); } else { particle->Open("new_hellInferno\\new_hellInferno_sub\\new_hellInferno_sub.str"); } break; - case 0x612: + case EF_NEW_HELLINFERNO_SUB_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_hellInferno\\new_hellInferno_sub_bottom\\new_hellInferno_sub_bottom.str"); } else { particle->Open("new_hellInferno\\new_hellInferno_sub_bottom\\new_hellInferno_sub_bottom.str"); } break; - case 0x615: + case EF_NEW_CLEARANCE: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_clearence\\new_clearence\\new_clearence.str"); } else { particle->Open("new_clearence\\new_clearence\\new_clearence.str"); } break; - case 0x616: + case EF_NEW_CLEARANCE_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_clearence\\new_clearence_bottom\\new_clearence_bottom.str"); } else { particle->Open("new_clearence\\new_clearence_bottom\\new_clearence_bottom.str"); } break; - case 0x617: + case EF_NEW_CLEARANCE_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_clearence\\new_clearence_cast\\new_clearence_cast.str"); } else { particle->Open("new_clearence\\new_clearence_cast\\new_clearence_cast.str"); } break; - case 0x619: + case EF_NEW_VARETYRSPEAR: particle->Open("new_varetyrspear\\new_varetyrspear\\new_varetyrspear.str"); break; - case 0x61A: + case EF_NEW_VARETYRSPEAR_BOTTOM: particle->Open("new_varetyrspear\\new_varetyrspear_bottom\\new_varetyrspear_bottom.str"); break; - case 0x61B: + case EF_NEW_VARETYRSPEAR_CAST: particle->Open("new_varetyrspear\\new_varetyrspear_cast\\new_varetyrspear_cast.str"); break; - case 0x61C: + case EF_NEW_VARETYRSPEAR_CAST_BOTTOM: particle->Open("new_varetyrspear\\new_varetyrspear_cast_bottom\\new_varetyrspear_cast_bottom.str"); break; - case 0x61E: + case EF_NEW_CROSSIMPACT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_crossimpact\\new_crossimpact\\new_crossimpact.str"); } else { particle->Open("new_crossimpact\\new_crossimpact\\new_crossimpact.str"); } break; - case 0x61F: + case EF_NEW_CROSSIMPACT_TARGET: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_crossimpact\\new_crossimpact_target\\new_crossimpact_target.str"); } else { particle->Open("new_crossimpact\\new_crossimpact_target\\new_crossimpact_target.str"); } break; - case 0x639: + case EF_NEW_REVERBERATION_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_reverberation\\new_reverberation_hit\\new_reverberation_hit.str"); } else { particle->Open("new_reverberation\\new_reverberation_hit\\new_reverberation_hit.str"); } break; - case 0x622: + case EF_NEW_FALLENEMPIRE: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_fallenempire\\new_fallenempire\\new_fallenempire.str"); } else { particle->Open("new_fallenempire\\new_fallenempire\\new_fallenempire.str"); } break; - case 0x623: + case EF_NEW_FALLENEMPIRE_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_fallenempire\\new_fallenempire_bottom\\new_fallenempire_bottom.str"); } else { particle->Open("new_fallenempire\\new_fallenempire_bottom\\new_fallenempire_bottom.str"); } break; - case 0x624: + case EF_NEW_FALLENEMPIRE_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_fallenempire\\new_fallenempire_hit\\new_fallenempire_hit.str"); } else { particle->Open("new_fallenempire\\new_fallenempire_hit\\new_fallenempire_hit.str"); } break; - case 0x625: + case EF_NEW_GATEOFHELL_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_gateofhell\\new_gateofhell_cast\\new_gateofhell_cast.str"); } else { particle->Open("new_gateofhell\\new_gateofhell_cast\\new_gateofhell_cast.str"); } break; - case 0x626: + case EF_NEW_GATEOFHELL_TARGET: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_gateofhell\\new_gateofhell_target\\new_gateofhell_target.str"); } else { particle->Open("new_gateofhell\\new_gateofhell_target\\new_gateofhell_target.str"); } break; - case 0x628: + case EF_NEW_HOWLINGOFLION: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_howlingoflion\\new_howlingoflion\\new_howlingoflion.str"); } else { particle->Open("new_howlingoflion\\new_howlingoflion\\new_howlingoflion.str"); } break; - case 0x629: + case EF_NEW_HOWLINGOFLION_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_howlingoflion\\new_howlingoflion_bottom\\new_howlingoflion_bottom.str"); } else { particle->Open("new_howlingoflion\\new_howlingoflion_bottom\\new_howlingoflion_bottom.str"); } break; - case 0x62A: + case EF_NEW_HOWLINGOFLION_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_howlingoflion\\new_howlingoflion_cast\\new_howlingoflion_cast.str"); } else { particle->Open("new_howlingoflion\\new_howlingoflion_cast\\new_howlingoflion_cast.str"); } break; - case 0x62B: + case EF_NEW_HOWLINGOFLION_CAST_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_howlingoflion\\new_howlingoflion_cast_bottom\\new_howlingoflion_cast_bottom.str"); } else { particle->Open("new_howlingoflion\\new_howlingoflion_cast_bottom\\new_howlingoflion_cast_bottom.str"); } break; - case 0x62C: + case EF_NEW_HOWLINGOFLION_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_howlingoflion\\new_howlingoflion_hit\\new_howlingoflion_hit.str"); } else { particle->Open("new_howlingoflion\\new_howlingoflion_hit\\new_howlingoflion_hit.str"); } break; - case 0x62D: + case EF_NEW_METALLICSOUND: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_metalicsound\\new_metalicsound\\new_metalicsound.str"); } else { particle->Open("new_metalicsound\\new_metalicsound\\new_metalicsound.str"); } break; - case 0x62E: + case EF_NEW_METALLICSOUND_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_metalicsound\\new_metalicsound_bottom\\new_metalicsound_bottom.str"); } else { particle->Open("new_metalicsound\\new_metalicsound_bottom\\new_metalicsound_bottom.str"); } break; - case 0x62F: + case EF_NEW_METALLICSOUND_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_metalicsound\\new_metalicsound_hit\\new_metalicsound_hit.str"); } else { particle->Open("new_metalicsound\\new_metalicsound_hit\\new_metalicsound_hit.str"); } break; - case 0x631: + case EF_NEW_REPRODUCE: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_reproduce\\new_reproduce\\new_reproduce.str"); } else { particle->Open("new_reproduce\\new_reproduce\\new_reproduce.str"); } break; - case 0x632: + case EF_NEW_REPRODUCE_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_reproduce\\new_reproduce_bottom\\new_reproduce_bottom.str"); } else { particle->Open("new_reproduce\\new_reproduce_bottom\\new_reproduce_bottom.str"); } break; - case 0x633: + case EF_NEW_SOULEXPANSION_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soulexpansion\\new_soulexpansion_cast\\new_soulexpansion_cast.str"); } else { particle->Open("new_soulexpansion\\new_soulexpansion_cast\\new_soulexpansion_cast.str"); } break; - case 0x634: + case EF_NEW_SOULEXPANSION_CAST_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soulexpansion\\new_soulexpansion_cast_bottom\\new_soulexpansion_cast_bottom.str"); } else { particle->Open("new_soulexpansion\\new_soulexpansion_cast_bottom\\new_soulexpansion_cast_bottom.str"); } break; - case 0x635: + case EF_NEW_SOULEXPANSION_LOOP: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soulexpansion\\new_soulexpansion_loop\\new_soulexpansion_loop.str"); } else { particle->Open("new_soulexpansion\\new_soulexpansion_loop\\new_soulexpansion_loop.str"); } break; - case 0x636: + case EF_NEW_SOULEXPANSION_LOOP_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soulexpansion\\new_soulexpansion_loop_bottom\\new_soulexpansion_loop_bottom.str"); } else { particle->Open("new_soulexpansion\\new_soulexpansion_loop_bottom\\new_soulexpansion_loop_bottom.str"); } break; - case 0x637: + case EF_NEW_SOULEXPANSION_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soulexpansion\\new_soulexpansion_hit\\new_soulexpansion_hit.str"); } else { particle->Open("new_soulexpansion\\new_soulexpansion_hit\\new_soulexpansion_hit.str"); } break; - case 0x638: + case EF_NEW_SOULEXPANSION_HIT_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soulexpansion\\new_soulexpansion_hit_bottom\\new_soulexpansion_hit_bottom.str"); } else { particle->Open("new_soulexpansion\\new_soulexpansion_hit_bottom\\new_soulexpansion_hit_bottom.str"); } break; - case 0x63B: + case EF_NEW_AROMAOIL: particle->Open("new_aromaoil\\new_aromaoil\\new_aromaoil_combine.str"); break; - case 0x63C: + case EF_NEW_AROMAOIL_BOTTOM: particle->Open("new_aromaoil\\new_aromaoil_bottom\\new_aromaoil_bottom.str"); break; - case 0x63D: + case EF_NEW_BATHFOAM: particle->Open("new_bathfoam\\new_bathfoam\\new_bathfoam.str"); break; - case 0x63E: + case EF_NEW_BATHFOAM_BOTTOM: particle->Open("new_bathfoam\\new_bathfoam_bottom\\new_bathfoam_bottom.str"); break; - case 0x63F: + case EF_TETRA_VORTEX_CORE_REUSE: particle->Open("tetravortex\\tetra_ball_00_core\\tetra_ball_00_core.str"); break; - case 0x647: + case EF_GRADE_ENCHANT_INTRO: particle->Open("grade_enchant\\new_intro\\new_intro.str"); break; - case 0x648: + case EF_GRADE_ENCHANT_SUCCESS: particle->Open("grade_enchant\\new_success\\new_success.str"); break; - case 0x649: + case EF_GRADE_ENCHANT_FAILED: particle->Open("grade_enchant\\new_failed\\new_failed.str"); break; - case 0x64B: + case EF_BLUE_WAVE_1: particle->Open("blue_wave\\ef_mon_electric.str"); break; - case 0x64C: + case EF_BLUE_WAVE_2: particle->Open("blue_wave\\ef_mon_electric2.str"); break; - case 0x64D: + case EF_BLUE_WAVE_3: particle->Open("blue_wave\\ef_mon_electric3.str"); break; - case 0x64E: + case EF_RED_WAVE_1: particle->Open("red_wave\\ef_mon_explodngwave.str"); break; - case 0x64F: + case EF_RED_WAVE_2: particle->Open("red_wave\\ef_mon_explodngwave2.str"); break; - case 0x650: + case EF_RED_WAVE_3: particle->Open("red_wave\\ef_mon_explodngwave3.str"); break; - case 0x654: + case EF_NEW_WALLOFTHORN_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_wallofthorn\\new_wallofthorn_cast\\new_wallofthorn_cast.str"); } else { particle->Open("new_wallofthorn\\new_wallofthorn_cast\\new_wallofthorn_cast.str"); } break; - case 0x655: + case EF_NEW_WALLOFTHORN_CAST_BOTTOM: particle->Open("new_wallofthorn\\new_wallofthorn_cast_bottom\\new_wallofthorn_cast_bottom.str"); break; - case 0x658: + case EF_NEW_IGNITIONBREAK: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_ignitionbreak\\new_ignitionbreak\\new_ignitionbreak.str"); } else { particle->Open("new_ignitionbreak\\new_ignitionbreak\\new_ignitionbreak.str"); } break; - case 0x659: + case EF_NEW_IGNITIONBREAK_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_ignitionbreak\\new_ignitionbreak_bottom\\new_ignitionbreak_bottom.str"); } else { particle->Open("new_ignitionbreak\\new_ignitionbreak_bottom\\new_ignitionbreak_bottom.str"); } break; - case 0x65A: + case EF_NEW_IGNITIONBREAK_CAST: particle->Open("new_ignitionbreak\\new_ignitionbreak_cast\\new_ignitionbreak_cast.str"); break; - case 0x65B: + case EF_NEW_JUDEX_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_judex\\new_judex_cast\\new_judex_cast.str"); } else { particle->Open("new_judex\\new_judex_cast\\new_judex_cast.str"); } break; - case 0x65C: + case EF_NEW_JUDEX_CAST_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_judex\\new_judex_cast_bottom\\new_judex_cast_bottom.str"); } else { particle->Open("new_judex\\new_judex_cast_bottom\\new_judex_cast_bottom.str"); } break; - case 0x65D: + case EF_NEW_JUDEX_CAST_LOOP: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_judex\\new_judex_cast_loop\\new_judex_cast_loop.str"); } else { particle->Open("new_judex\\new_judex_cast_loop\\new_judex_cast_loop.str"); } break; - case 0x65E: + case EF_NEW_JUDEX_CAST_LOOP_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_judex\\new_judex_cast_loop_bottom\\new_judex_cast_loop_bottom.str"); } else { particle->Open("new_judex\\new_judex_cast_loop_bottom\\new_judex_cast_loop_bottom.str"); } break; - case 0x65F: + case EF_NEW_JUDEX_TARGET: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_judex\\new_judex_target\\new_judex_target.str"); } else { particle->Open("new_judex\\new_judex_target\\new_judex_target.str"); } break; - case 0x660: + case EF_NEW_JUDEX_TARGET_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_judex\\new_judex_target_bottom\\new_judex_target_bottom.str"); } else { particle->Open("new_judex\\new_judex_target_bottom\\new_judex_target_bottom.str"); } break; - case 0x661: + case EF_NEW_JUDEX_LIGHT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_judex\\new_judex_light\\new_judex_light.str"); } else { particle->Open("new_judex\\new_judex_light\\new_judex_light.str"); } break; - case 0x662: + case EF_NEW_JUDEX_LIGHT_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_judex\\new_judex_light_bottom\\new_judex_light_bottom.str"); } else { particle->Open("new_judex\\new_judex_light_bottom\\new_judex_light_bottom.str"); } break; - case 0x663: + case EF_NEW_CHAINLIGHTNING_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_chainlightning\\new_chainlightning_cast\\new_chainlightning_cast.str"); } else { particle->Open("new_chainlightning\\new_chainlightning_cast\\new_chainlightning_cast.str"); } break; - case 0x664: + case EF_NEW_CHAINLIGHTNING_CAST_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_chainlightning\\new_chainlightning_cast_bottom\\new_chainlightning_cast_bottom.str"); } else { particle->Open("new_chainlightning\\new_chainlightning_cast_bottom\\new_chainlightning_cast_bottom.str"); } break; - case 0x665: + case EF_NEW_CHAINLIGHTNING_LOCKON: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_chainlightning\\new_chainlightning_lockon\\new_chainlightning_lockon.str"); } else { particle->Open("new_chainlightning\\new_chainlightning_lockon\\new_chainlightning_lockon.str"); } break; - case 0x666: + case EF_NEW_CHAINLIGHTNING_TARGET: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_chainlightning\\new_chainlightning_target\\new_chainlightning_target.str"); } else { particle->Open("new_chainlightning\\new_chainlightning_target\\new_chainlightning_target.str"); } break; - case 0x667: + case EF_NEW_MANDRAGORA: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_mandragora\\new_mandragora\\new_mandragora.str"); } else { particle->Open("new_mandragora\\new_mandragora\\new_mandragora.str"); } break; - case 0x668: + case EF_NEW_MANDRAGORA_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_mandragora\\new_mandragora_bottom\\new_mandragora_bottom.str"); } else { particle->Open("new_mandragora\\new_mandragora_bottom\\new_mandragora_bottom.str"); } break; - case 0x669: + case EF_NEW_MANDRAGORA_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_mandragora\\new_mandragora_cast\\new_mandragora_cast.str"); } else { particle->Open("new_mandragora\\new_mandragora_cast\\new_mandragora_cast.str"); } break; - case 0x66A: + case EF_NEW_SOUNDOFDESTRUCTION_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soundofdestruction\\new_soundofdestruction_cast\\new_soundofdestruction_cast.str"); } else { particle->Open("new_soundofdestruction\\new_soundofdestruction_cast\\new_soundofdestruction_cast.str"); } break; - case 0x66B: + case EF_NEW_SOUNDOFDESTRUCTION_CAST_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soundofdestruction\\new_soundofdestruction_cast_bottom\\new_soundofdestruction_cast_bottom.str"); } else { particle->Open("new_soundofdestruction\\new_soundofdestruction_cast_bottom\\new_soundofdestruction_cast_bottom.str"); } break; - case 0x66C: + case EF_NEW_SOUNDOFDESTRUCTION_TARGET: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_soundofdestruction\\new_soundofdestruction_target\\new_soundofdestruction_target.str"); } else { particle->Open("new_soundofdestruction\\new_soundofdestruction_target\\new_soundofdestruction_target.str"); } break; - case 0x66D: + case EF_NEW_AIMEDBOLT_01: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_aimedbolt\\new_aimedbolt_attack_01clock\\new_aimedbolt_attack_01clock.str"); } else { particle->Open("new_aimedbolt\\new_aimedbolt_attack_01clock\\new_aimedbolt_attack_01clock.str"); } break; - case 0x66E: + case EF_NEW_AIMEDBOLT_05: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_aimedbolt\\new_aimedbolt_attack_05clock\\new_aimedbolt_attack_05clock.str"); } else { particle->Open("new_aimedbolt\\new_aimedbolt_attack_05clock\\new_aimedbolt_attack_05clock.str"); } break; - case 0x66F: + case EF_NEW_AIMEDBOLT_07: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_aimedbolt\\new_aimedbolt_attack_07clock\\new_aimedbolt_attack_07clock.str"); } else { particle->Open("new_aimedbolt\\new_aimedbolt_attack_07clock\\new_aimedbolt_attack_07clock.str"); } break; - case 0x670: + case EF_NEW_AIMEDBOLT_11: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_aimedbolt\\new_aimedbolt_attack_11clock\\new_aimedbolt_attack_11clock.str"); } else { particle->Open("new_aimedbolt\\new_aimedbolt_attack_11clock\\new_aimedbolt_attack_11clock.str"); } break; - case 0x671: + case EF_NEW_AIMEDBOLT_CAST_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_aimedbolt\\new_aimedbolt_cast_bottom\\new_aimedbolt_cast_bottom.str"); } else { particle->Open("new_aimedbolt\\new_aimedbolt_cast_bottom\\new_aimedbolt_cast_bottom.str"); } break; - case 0x672: + case EF_NEW_AIMEDBOLT_END: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_aimedbolt\\new_aimedbolt_target_end\\new_aimedbolt_end.str"); } else { particle->Open("new_aimedbolt\\new_aimedbolt_target_end\\new_aimedbolt_end.str"); } break; - case 0x673: + case EF_NEW_AIMEDBOLT_TARGET_LOOP: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_aimedbolt\\new_aimedbolt_target_loop\\new_aimedbolt_target_loop.str"); } else { particle->Open("new_aimedbolt\\new_aimedbolt_target_loop\\new_aimedbolt_target_loop.str"); } break; - case 0x674: + case EF_NEW_UNLIMIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_unlimit\\new_unlimit\\new_unlimit.str"); } else { particle->Open("new_unlimit\\new_unlimit\\new_unlimit.str"); } break; - case 0x675: + case EF_NEW_UNLIMIT_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_unlimit\\new_unlimit_bottom\\new_unlimit_bottom.str"); } else { particle->Open("new_unlimit\\new_unlimit_bottom\\new_unlimit_bottom.str"); } break; - case 0x676: + case EF_NEW_EPICLESIS: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_epiclesis\\new_epiclesis_combine.str"); } else { particle->Open("new_epiclesis\\new_epiclesis_combine\\new_epiclesis_combine.str"); } break; - case 0x67A: + case EF_NEW_AXEBOOMERANG_CAST: particle->Open("new_axeboomerang\\new_axeboomerang_cast\\new_axeboomerang_cast.str"); break; - case 0x67B: + case EF_NEW_AXEBOOMERANG_CAST_BOTTOM: particle->Open("new_axeboomerang\\new_axeboomerang_cast_bottom\\new_axeboomerang_cast_bottom.str"); break; - case 0x67C: + case EF_NEW_AXEBOOMERANG_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_axeboomerang\\new_axeboomerang_hit\\new_axeboomerang_hit.str"); } else { particle->Open("new_axeboomerang\\new_axeboomerang_hit\\new_axeboomerang_hit.str"); } break; - case 0x67D: + case EF_UNK_1661: particle->Load("hackandslash\\hackandslash\\hackandslash.str"); break; - case 0x67E: + case EF_UNK_1662: particle->Load("hackandslash\\hackandslash_bottom\\hackandslash_bottom.str"); break; - case 0x67F: + case EF_UNK_1663: particle->Load("hackandslash\\hackandslash_hit\\hackandslash_hit.str"); break; - case 0x681: + case EF_NEW_SPELLFIST_FIRE: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_spellfist\\new_spellfist_fire\\new_spellfist_fire.str"); } else { particle->Open("new_spellfist\\new_spellfist_fire\\new_spellfist_fire.str"); } break; - case 0x682: + case EF_NEW_SPELLFIST_FIRE_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_spellfist\\new_spellfist_fire_bottom\\new_spellfist_fire_bottom.str"); } else { particle->Open("new_spellfist\\new_spellfist_fire_bottom\\new_spellfist_fire_bottom.str"); } break; - case 0x683: + case EF_NEW_SPELLFIST_WATER: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_spellfist\\new_spellfist_water\\new_spellfist_water.str"); } else { particle->Open("new_spellfist\\new_spellfist_water\\new_spellfist_water.str"); } break; - case 0x684: + case EF_NEW_SPELLFIST_WATER_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_spellfist\\new_spellfist_water_bottom\\new_spellfist_water_bottom.str"); } else { particle->Open("new_spellfist\\new_spellfist_water_bottom\\new_spellfist_water_bottom.str"); } break; - case 0x685: + case EF_NEW_SPELLFIST_WIND: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_spellfist\\new_spellfist_wind\\new_spellfist_wind.str"); } else { particle->Open("new_spellfist\\new_spellfist_wind\\new_spellfist_wind.str"); } break; - case 0x686: + case EF_UNK_1670: particle->Load("stormslash\\stormslash\\stormslash_1.str"); break; - case 0x687: + case EF_UNK_1671: particle->Load("stormslash\\stormslash\\stormslash_2.str"); break; - case 0x688: + case EF_UNK_1672: particle->Load("stormslash\\stormslash\\stormslash_3.str"); break; - case 0x689: + case EF_UNK_1673: particle->Load("stormslash\\stormslash\\stormslash_4.str"); break; - case 0x68A: + case EF_UNK_1674: particle->Load("stormslash\\stormslash\\stormslash_5.str"); break; - case 0x68B: + case EF_NEW_CARTBOOST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_cartboost\\new_cartboost\\new_cartboost.str"); } else { particle->Open("new_cartboost\\new_cartboost\\new_cartboost.str"); } break; - case 0x68C: + case EF_NEW_CARTBOOST_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_cartboost\\new_cartboost_bottom\\new_cartboost_bottom.str"); } else { particle->Open("new_cartboost\\new_cartboost_bottom\\new_cartboost_bottom.str"); } break; - case 0x68F: + case EF_NEW_OVERBRAND_01: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_01_clock\\new_overbrand_01_clock.str"); } else { particle->Open("new_overbrand\\new_overbrand_01_clock\\new_overbrand_01_clock.str"); } break; - case 0x690: + case EF_NEW_OVERBRAND_03: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_03_clock\\new_overbrand_03_clock.str"); } else { particle->Open("new_overbrand\\new_overbrand_03_clock\\new_overbrand_03_clock.str"); } break; - case 0x691: + case EF_NEW_OVERBRAND_05: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_05_clock\\new_overbrand_05_clock.str"); } else { particle->Open("new_overbrand\\new_overbrand_05_clock\\new_overbrand_05_clock.str"); } break; - case 0x692: + case EF_NEW_OVERBRAND_06: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_06_clock\\new_overbrand_06_clock.str"); } else { particle->Open("new_overbrand\\new_overbrand_06_clock\\new_overbrand_06_clock.str"); } break; - case 0x693: + case EF_NEW_OVERBRAND_07: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_07_clock\\new_overbrand_07_clock.str"); } else { particle->Open("new_overbrand\\new_overbrand_07_clock\\new_overbrand_07_clock.str"); } break; - case 0x694: + case EF_NEW_OVERBRAND_09: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_09_clock\\new_overbrand_09_clock.str"); } else { particle->Open("new_overbrand\\new_overbrand_09_clock\\new_overbrand_09_clock.str"); } break; - case 0x695: + case EF_NEW_OVERBRAND_11: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_11_clock\\new_overbrand_11_clock.str"); } else { particle->Open("new_overbrand\\new_overbrand_11_clock\\new_overbrand_11_clock.str"); } break; - case 0x696: + case EF_NEW_OVERBRAND_12: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_12_clock\\new_overbrand_12_clock.str"); } else { particle->Open("new_overbrand\\new_overbrand_12_clock\\new_overbrand_12_clock.str"); } break; - case 0x697: + case EF_NEW_OVERBRAND_CAST: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_cast\\new_overbrand_cast.str"); } else { particle->Open("new_overbrand\\new_overbrand_cast\\new_overbrand_cast.str"); } break; - case 0x698: + case EF_NEW_OVERBRAND_CAST_BOTTOM: particle->Open("new_overbrand\\new_overbrand_cast_bottom\\new_overbrand_cast_bottom.str"); break; - case 0x699: + case EF_NEW_OVERBRAND_HIT: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_overbrand\\new_overbrand_hit\\new_overbrand_hit.str"); } else { particle->Open("new_overbrand\\new_overbrand_hit\\new_overbrand_hit.str"); } break; - case 0x69A: + case EF_NEW_WINDCUTTER: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_windcutter\\new_windcutter\\new_windcutter.str"); } else { particle->Open("new_windcutter\\new_windcutter\\new_windcutter.str"); } break; - case 0x69B: + case EF_NEW_WINDCUTTER_BOTTOM_01: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_windcutter\\new_windcutter_bottom_01clock\\new_windcutter_bottom_01clock.str"); } else { particle->Open("new_windcutter\\new_windcutter_bottom_01clock\\new_windcutter_bottom_01clock.str"); } break; - case 0x69C: + case EF_NEW_WINDCUTTER_BOTTOM_05: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_windcutter\\new_windcutter_bottom_05clock\\new_windcutter_bottom_05clock.str"); } else { particle->Open("new_windcutter\\new_windcutter_bottom_05clock\\new_windcutter_bottom_05clock.str"); } break; - case 0x69D: + case EF_NEW_WINDCUTTER_TARGET: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_windcutter\\new_windcutter_target\\new_windcutter_target.str"); } else { particle->Open("new_windcutter\\new_windcutter_target\\new_windcutter_target.str"); } break; - case 0x69F: + case EF_UNK_1695: particle->Load("new_servantweapon\\new_servantweapon_hit\\new_servantweapon_hit.str"); break; - case 0x6A0: + case EF_UNK_1696: particle->Load("new_servantweapon\\new_servantweapon_hit_bottom\\new_servantweapon_hit_bottom.str"); break; - case 0x6A1: + case EF_UNK_1697: particle->Load("new_servantweapon\\new_servantweapon_shoot_bottom\\new_servantweapon_shoot_bottom.str"); break; - case 0x6A2: + case EF_NEW_POWERSWING_01: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_powerswing\\new_powerswing_01_clock\\new_powerswing_01_clock.str"); } else { particle->Open("new_powerswing\\new_powerwing_01_clock\\new_powerwing_01_clock.str"); } break; - case 0x6A3: + case EF_NEW_POWERSWING_05: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_powerswing\\new_powerswing_05_clock\\new_powerswing_05_clock.str"); } else { particle->Open("new_powerswing\\new_powerwing_05_clock\\new_powerwing_05_clock.str"); } break; - case 0x6A4: + case EF_NEW_POWERSWING_07: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_powerswing\\new_powerswing_07_clock\\new_powerswing_07_clock.str"); } else { particle->Open("new_powerswing\\new_powerwing_07_clock\\new_powerwing_07_clock.str"); } break; - case 0x6A5: + case EF_NEW_POWERSWING_11: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_powerswing\\new_powerswing_11_clock\\new_powerswing_11_clock.str"); } else { particle->Open("new_powerswing\\new_powerwing_11_clock\\new_powerwing_11_clock.str"); } break; - case 0x6A6: + case EF_NEW_POWERSWING_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_powerswing\\new_powerswing_bottom\\new_powerswing_bottom.str"); } else { particle->Open("new_powerswing\\new_powerswing_bottom\\new_powerswing_bottom.str"); } break; - case 0x6A7: + case EF_NEW_VULCANARM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_vulcanarm\\new_vulcanarm\\new_vulcanarm.str"); } else { particle->Open("new_vulcanarm\\new_vulcanarm\\new_vulcanarm.str"); } break; - case 0x6A8: + case EF_NEW_VULCANARM_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_vulcanarm\\new_vulcanarm_bottom\\new_vulcanarm_bottom.str"); } else { particle->Open("new_vulcanarm\\new_vulcanarm_bottom\\new_vulcanarm_bottom.str"); } break; - case 0x6A9: + case EF_NEW_VULCANARM_SHOTHOLE: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_vulcanarm\\new_vulcanarm_shothole\\new_vulcanarm_shothole.str"); } else { particle->Open("new_vulcanarm\\new_vulcanarm_shothole\\new_vulcanarm_shothole.str"); } break; - case 0x6AA: + case EF_NEW_EARTHDRIVE: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_earthdrive\\new_earthdrive\\new_earthdrive.str"); } else { particle->Open("new_earthdrive\\new_earthdrive\\new_earthdrive.str"); } break; - case 0x6AB: + case EF_NEW_EARTHDRIVE_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_earthdrive\\new_earthdrive_bottom\\new_earthdrive_bottom.str"); } else { particle->Open("new_earthdrive\\new_earthdrive_bottom\\new_earthdrive_bottom.str"); } break; - case 0x6AC: + case EF_NEW_EARTHDRIVE_TARGET: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_earthdrive\\new_earthdrive_target\\new_earthdrive_target.str"); } else { particle->Open("new_earthdrive\\new_earthdrive_target\\new_earthdrive_target.str"); } break; - case 0x6AE: + case EF_UNK_1710: particle->Load("servant_sign\\servant_sign\\servant_sign.str"); break; - case 0x8E8: + case EF_UNK_2280: particle->Load("servant_sign\\servant_sign_bottom\\servant_sign_bottom.str"); break; - case 0x6AF: + case EF_UNK_1711: particle->Load("servant_sign\\servant_sign_down\\servant_sign_down.str"); break; - case 0x6B0: + case EF_UNK_1712: particle->Load("servant_sign\\servant_sign_down_bottom\\servant_sign_down_bottom.str"); break; - case 0x6B1: + case EF_UNK_1713: particle->Load("servant_phantom\\servant_phantom_down\\servant_phantom_down.str"); break; - case 0x6B2: + case EF_UNK_1714: particle->Load("servant_phantom\\servant_phantom_hit\\servant_phantom_hit.str"); break; - case 0x6B3: + case EF_UNK_1715: particle->Load("servant_phantom\\servant_phantom_hit_bottom\\servant_phantom_hit_bottom.str"); break; - case 0x6B4: + case EF_UNK_1716: particle->Load("servant_phantom\\servant_phantom_sub\\servant_phantom_sub.str"); break; - case 0x6B5: + case EF_UNK_1717: particle->Load("servant_phantom\\servant_phantom_sub_bottom\\servant_phantom_sub_bottom.str"); break; - case 0x6B6: + case EF_UNK_1718: particle->Load("servant_demolition\\servant_demolition_collect\\servant_demolition_collect.str"); break; - case 0x6B7: + case EF_UNK_1719: particle->Load("servant_demolition\\servant_demolition_hit\\servant_demolition_hit.str"); break; - case 0x6B8: + case EF_UNK_1720: particle->Load("servant_demolition\\servant_demolition_leftdown\\servant_demolition_leftdown.str"); break; - case 0x6B9: + case EF_UNK_1721: particle->Load("servant_demolition\\servant_demolition_rightdown\\servant_demolition_rightdown.str"); break; - case 0x6BA: + case EF_DRAGONIC_AURA: particle->Load("dragonnic_ora\\dragonnic_ora\\dragonnic_ora.str"); break; - case 0x6BB: + case EF_DRAGONIC_AURA_BOTTOM: particle->Load("dragonnic_ora\\dragonnic_ora_bottom\\dragonnic_ora_bottom.str"); break; - case 0x6BC: + case EF_DRAGONIC_AURA_HIT: particle->Load("dragonnic_ora\\dragonnic_ora_hit\\dragonnic_ora_hit.str"); break; - case 0x6BD: + case EF_DRAGONIC_AURA_HIT_BOTTOM: particle->Load("dragonnic_ora\\dragonnic_ora_hit_bottom\\dragonnic_ora_hit_bottom.str"); break; - case 0x6BE: + case EF_DRAGONIC_AURA_BUFF: particle->Load("dragonnic_ora\\dragonnic_ora_buff\\dragonnic_ora_buff.str"); break; - case 0x6BF: + case EF_DRAGONIC_AURA_BUFF_BOTTOM: particle->Load("dragonnic_ora\\dragonnic_ora_buff_bottom\\dragonnic_ora_buff_bottom.str"); break; - case 0x6C0: + case EF_UNK_1728: particle->Load("madness_crusher\\madness_crusher\\madness_crusher.str"); break; - case 0x6C1: + case EF_UNK_1729: particle->Load("madness_crusher\\madness_crusher_bottom\\madness_crusher_bottom.str"); break; - case 0x6D6: + case EF_UNK_1750: particle->Load("vigor\\vigor_cast\\vigor_cast.str"); break; - case 0x6D7: + case EF_UNK_1751: particle->Load("vigor\\vigor_buff\\vigor_buff.str"); break; - case 0x6C2: + case EF_NEW_AUTOSHADOWSPELL: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_autoshadowspell\\new_autoshadowspell\\new_autoshadowspell.str"); } else { particle->Open("new_autoshadowspell\\new_autoshadowspell\\new_autoshadowspell.str"); } break; - case 0x6C3: + case EF_NEW_AUTOSHADOWSPELL_BOTTOM: if (g_serviceOptions.Get(229)) { particle->Open("mineffect\\new_autoshadowspell\\new_autoshadowspell_bottom\\new_autoshadowspell_bottom.str"); } else { particle->Open("new_autoshadowspell\\new_autoshadowspell_bottom\\new_autoshadowspell_bottom.str"); } break; - case 0x6C4: + case EF_DESTRUCTIVE_HURRICANE: particle->Load("destructive_hurricane\\destructive_hurricane\\destructive_hurricane.str"); break; - case 0x6C5: + case EF_DESTRUCTIVE_HURRICANE_BOTTOM: particle->Load("destructive_hurricane\\destructive_hurricane_bottom\\destructive_hurricane_bottom.str"); break; - case 0x6C6: + case EF_DESTRUCTIVE_HURRICANE_CAST: particle->Load("destructive_hurricane\\destructive_hurricane_cast\\destructive_hurricane_cast.str"); break; - case 0x6C7: + case EF_DESTRUCTIVE_HURRICANE_CAST_BOTTOM: particle->Load("destructive_hurricane\\destructive_hurricane_cast_bottom\\destructive_hurricane_cast_bottom.str"); break; - case 0x6C8: + case EF_DESTRUCTIVE_HURRICANE_CLIMAX: particle->Load("destructive_hurricane\\destructive_hurricane_climax\\destructive_hurricane_climax.str"); break; - case 0x6C9: + case EF_DESTRUCTIVE_HURRICANE_HIT: particle->Load("destructive_hurricane\\destructive_hurricane_hit\\destructive_hurricane_hit.str"); break; - case 0x6CA: + case EF_DEADLY_PROJECTION_CAST: particle->Load("deadly_projection\\deadly_projection_cast\\deadly_projection_cast.str"); break; - case 0x6CB: + case EF_DEADLY_PROJECTION_CAST_BOTTOM: particle->Load("deadly_projection\\deadly_projection_cast_bottom\\deadly_projection_cast_bottom.str"); break; - case 0x6CC: + case EF_DEADLY_PROJECTION_HIT: particle->Load("deadly_projection\\deadly_projection_hit\\deadly_projection_hit.str"); break; - case 0x6CD: + case EF_DEADLY_PROJECTION: particle->Load("deadly_projection\\efst_deadly_defeasance\\efst_deadly_defeasance.str"); break; - case 0x6CE: + case EF_SOUL_VC_STRIKE_CAST: particle->Load("soul_vc_strike\\soul_vc_strike_cast\\soul_vc_strike_cast.str"); break; - case 0x6CF: + case EF_SOUL_VC_STRIKE_CAST_BOTTOM: particle->Load("soul_vc_strike\\soul_vc_strike_cast_bottom\\soul_vc_strike_cast_bottom.str"); break; - case 0x6D0: + case EF_SOUL_VC_STRIKE_HIT: particle->Load("soul_vc_strike\\soul_vc_strike_hit\\soul_vc_strike_hit.str"); break; - case 0x6D1: + case EF_ROCKDOWN: particle->Load("rockdown\\rockdown\\rockdown.str"); break; - case 0x6D2: + case EF_ROCKDOWN_BOTTOM: particle->Load("rockdown\\rockdown_bottom\\rockdown_bottom.str"); break; - case 0x6D3: + case EF_ROCKDOWN_CAST: particle->Load("rockdown\\rockdown_cast\\rockdown_cast.str"); break; - case 0x6D4: + case EF_ROCKDOWN_CAST_BOTTOM: particle->Load("rockdown\\rockdown_cast_bottom\\rockdown_cast_bottom.str"); break; - case 0x6D5: + case EF_ROCKDOWN_HIT: particle->Load("rockdown\\rockdown_hit\\rockdown_hit.str"); break; - case 0x6D9: + case EF_RAIN_OF_CRYSTAL: particle->Load("rain_of_crystal\\rain_of_crystal_casting\\rain_of_crystal_casting.str"); break; - case 0x6DA: + case EF_RAIN_OF_CRYSTAL_BOTTOM: particle->Load("rain_of_crystal\\rain_of_crystal_casting_bottom\\rain_of_crystal_casting_bottom.str"); break; - case 0x6DD: + case EF_CRIMSON_ARROW_CAST: particle->Load("crimsonarrow\\crimsonarrow_cast\\crimsonarrow_cast.str"); break; - case 0x6DE: + case EF_CRIMSON_ARROW_CAST_BOTTOM: particle->Load("crimsonarrow\\crimsonarrow_cast_bottom\\crimsonarrow_cast_bottom.str"); break; - case 0x6DF: + case EF_CRIMSON_ARROW_HIT: particle->Load("crimsonarrow\\crimsonarrow_hit\\crimsonarrow_hit.str"); break; - case 0x6E1: + case EF_VIOLENT_QUAKE_CAST: particle->Load("violentquake\\violentquake_cast\\violentquake_cast.str"); break; - case 0x6E2: + case EF_VIOLENT_QUAKE_CAST_BOTTOM: particle->Load("violentquake\\violentquake_cast_bottom\\violentquake_cast_bottom.str"); break; - case 0x6E3: + case EF_VIOLENT_QUAKE_HIT: particle->Load("violentquake\\violentquake_hit\\violentquake_hit.str"); break; - case 0x701: + case EF_VIOLENT_QUAKE_BOTTOM: particle->Load("violentquake\\violentquake_bottom\\violentquake_bottom.str"); break; - case 0x6E5: + case EF_UNK_1765: particle->Load("new_chargingpierce\\new_chargingpierce_cast\\new_chargingpierce_cast.str"); break; - case 0x6E6: + case EF_UNK_1766: particle->Load("new_chargingpierce\\new_chargingpierce_cast_bottom\\new_chargingpierce_cast_bottom.str"); break; - case 0x6E7: + case EF_UNK_1767: particle->Load("new_chargingpierce\\new_chargingpierce_hit\\new_chargingpierce_hit.str"); break; - case 0x6E9: + case EF_ASTRAL_STRIKE_CAST: particle->Load("astralstrike\\astralstrike_cast\\astralstrike_cast.str"); break; - case 0x6EA: + case EF_ASTRAL_STRIKE_CAST_BOTTOM: particle->Load("astralstrike\\astralstrike_cast_bottom\\astralstrike_cast_bottom.str"); break; - case 0x6EB: + case EF_MYSTERY_ILLUSION: particle->Load("mystery_illusion\\mystery_illusion\\mystery_illusion.str"); break; - case 0x6EC: + case EF_MYSTERY_ILLUSION_BOTTOM: particle->Load("mystery_illusion\\mystery_illusion_bottom\\mystery_illusion_bottom.str"); break; - case 0x6ED: + case EF_MYSTERY_ILLUSION_CAST: particle->Load("mystery_illusion\\mystery_illusion_cast\\mystery_illusion_cast.str"); break; - case 0x6EE: + case EF_MYSTERY_ILLUSION_CAST_BOTTOM: particle->Load("mystery_illusion\\mystery_illusion_cast_bottom\\mystery_illusion_cast_bottom.str"); break; - case 0x6EF: + case EF_MYSTERY_ILLUSION_HIT: particle->Load("mystery_illusion\\mystery_illusion_hit\\mystery_illusion_hit.str"); break; - case 0x6F0: + case EF_TORNADO_STORM: particle->Load("tornadostorm\\tornadostorm\\tornadostorm.str"); break; - case 0x6F1: + case EF_TORNADO_STORM_BOTTOM: particle->Load("tornadostorm\\tornadostorm_bottom\\tornadostorm_bottom.str"); break; - case 0x6F2: + case EF_TORNADO_STORM_CAST: particle->Load("tornadostorm\\tornadostorm_cast\\tornadostorm_cast.str"); break; - case 0x6F3: + case EF_TORNADO_STORM_CAST_BOTTOM: particle->Load("tornadostorm\\tornadostorm_cast_bottom\\tornadostorm_cast_bottom.str"); break; - case 0x6F4: + case EF_TORNADO_STORM_HIT: particle->Load("tornadostorm\\tornadostorm_hit\\tornadostorm_hit.str"); break; - case 0x6F5: + case EF_FROZEN_SLASH: particle->Load("frozen_slash\\frozen_slash\\frozen_slash.str"); break; - case 0x6F6: + case EF_FROZEN_SLASH_CAST: particle->Load("frozen_slash\\frozen_slash_casting\\frozen_slash_cast.str"); break; - case 0x6F7: + case EF_FROZEN_SLASH_CAST_BOTTOM: particle->Load("frozen_slash\\frozen_slash_casting_bottom\\frozen_slash_cast_bottom.str"); break; - case 0x6F8: + case EF_FROZEN_SLASH_HIT: particle->Load("frozen_slash\\frozen_slash_hit\\frozen_slash_hit.str"); break; - case 0x6F9: + case EF_FROZEN_SLASH_ICE_01: particle->Load("frozen_slash\\frozen_slash_ice\\frozen_slash_ice_01.str"); break; - case 0x6FA: + case EF_FROZEN_SLASH_ICE_02: particle->Load("frozen_slash\\frozen_slash_ice\\frozen_slash_ice_02.str"); break; - case 0x6FB: + case EF_FROZEN_SLASH_ICE_03: particle->Load("frozen_slash\\frozen_slash_ice\\frozen_slash_ice_03.str"); break; - case 0x6FC: + case EF_FROZEN_SLASH_ICE_04: particle->Load("frozen_slash\\frozen_slash_ice\\frozen_slash_ice_04.str"); break; - case 0x6FD: + case EF_FROZEN_SLASH_ICE_05: particle->Load("frozen_slash\\frozen_slash_ice\\frozen_slash_ice_05.str"); break; - case 0x6FE: + case EF_FROZEN_SLASH_ICE_06: particle->Load("frozen_slash\\frozen_slash_ice\\frozen_slash_ice_06.str"); break; - case 0x6FF: + case EF_FROZEN_SLASH_ICE_07: particle->Load("frozen_slash\\frozen_slash_ice\\frozen_slash_ice_07.str"); break; - case 0x700: + case EF_FROZEN_SLASH_ICE_08: particle->Load("frozen_slash\\frozen_slash_ice\\frozen_slash_ice_08.str"); break; - case 0x702: + case EF_ALL_BLOOM: particle->Load("allbloom\\allbloom\\allbloom.str"); break; - case 0x703: + case EF_ALL_BLOOM_BOTTOM: particle->Load("allbloom\\allbloom_bottom\\allbloom_bottom.str"); break; - case 0x704: + case EF_ALL_BLOOM_CAST: particle->Load("allbloom\\allbloom_cast\\allbloom_cast.str"); break; - case 0x705: + case EF_ALL_BLOOM_CAST_BOTTOM: particle->Load("allbloom\\allbloom_cast_bottom\\allbloom_cast_bottom.str"); break; - case 0x707: + case EF_ALL_BLOOM_HIT: particle->Load("allbloom\\allbloom_hit\\allbloom_hit.str"); break; - case 0x709: + case EF_CLIMAX_LIGHT: particle->Load("climax\\climax_light\\climax_light.str"); break; - case 0x70A: + case EF_CLIMAX_CAST: particle->Load("climax\\climax_cast\\climax_cast.str"); break; - case 0x70B: + case EF_CLIMAX_CAST_LOOP: particle->Load("climax\\climax_cast_loop\\climax_cast_loop.str"); break; - case 0x70D: + case EF_FLORAL_FLARE_ROAD_CAST: particle->Load("froral_flareroad\\froral_flareroad_cast\\froral_flareroad_cast.str"); break; - case 0x70E: + case EF_FLORAL_FLARE_ROAD_CAST_BOTTOM: particle->Load("froral_flareroad\\froral_flareroad_cast_bottom\\froral_flareroad_cast_bottom.str"); break; - case 0x70F: + case EF_FLORAL_FLARE_ROAD_HIT: particle->Load("froral_flareroad\\froral_flareroad_hit\\froral_flareroad_hit.str"); break; - case 0x710: + case EF_MEDIALE_VOTUM: particle->Load("medialevotum\\medialevotum\\medialevotum.str"); break; - case 0x711: + case EF_MEDIALE_VOTUM_CAST: particle->Load("medialevotum\\medialevotum_cast\\medialevotum_cast.str"); break; - case 0x712: + case EF_MEDIALE_VOTUM_LOOP: particle->Open("medialevotum\\medialevotum_loop\\medialevotum_loop.str"); break; - case 0x713: + case EF_ARGUTUS_VITA: particle->Load("argutusvita\\argutusvita\\argutusvita.str"); break; - case 0x714: + case EF_ARGUTUS_VITA_CAST: particle->Load("argutusvita\\argutusvita_cast\\argutusvita_cast.str"); break; - case 0x715: + case EF_ARGUTUS_TELUM: particle->Load("argutustelum\\argutustelum\\argutustelum.str"); break; - case 0x716: + case EF_ARGUTUS_TELUM_CAST: particle->Load("argutustelum\\argutustelum_cast\\argutustelum_cast.str"); break; - case 0x717: + case EF_PRESENS_ACIES: particle->Load("presensacies\\presensacies\\presensacies.str"); break; - case 0x718: + case EF_PRESENS_ACIES_CAST: particle->Load("presensacies\\presensacies_cast\\presensacies_cast.str"); break; - case 0x76D: + case EF_ABR_MOTHER_CAST: particle->Load("new_abr_mother\\new_abr_mother_cast\\new_abr_mother_cast.str"); break; - case 0x76F: + case EF_ABR_MOTHER_01: particle->Load("new_abr_mother\\new_abr_mother_01\\new_abr_mother_01.str"); break; - case 0x770: + case EF_ABR_MOTHER_02: particle->Load("new_abr_mother\\new_abr_mother_02\\new_abr_mother_02.str"); break; - case 0x719: + case EF_NEW_D_MACHINE: particle->Load("new_d_machine\\new_d_machine\\new_d_machine.str"); break; - case 0x71A: + case EF_NEW_D_MACHINE_CAST: particle->Load("new_d_machine\\new_d_machine_cast\\new_d_machine_cast.str"); break; - case 0x71B: + case EF_NEW_D_MACHINE_CAST_BOTTOM: particle->Load("new_d_machine\\new_d_machine_cast_bottom\\new_d_machine_cast_bottom.str"); break; - case 0x71C: + case EF_NEW_D_MACHINE_START: particle->Load("new_d_machine\\new_d_machine_start_end\\new_d_machine_start.str"); break; - case 0x71D: + case EF_NEW_D_MACHINE_END: particle->Load("new_d_machine\\new_d_machine_start_end\\new_d_machine_end.str"); break; - case 0x730: + case EF_A_MACHINE_CAST: particle->Load("a_machine\\a_machine_cast\\a_machine_cast.str"); break; - case 0x732: + case EF_A_MACHINE_HIT: particle->Load("a_machine\\a_machine_hit\\a_machine_hit.str"); break; - case 0x795: + case EF_NEW_AXE_STOMP: particle->Load("new_axe_stomp\\new_axe_stomp\\new_axe_stomp.str"); break; - case 0x793: + case EF_NEW_AXE_STOMP_HIT: particle->Load("new_axe_stomp\\new_axe_stomp_hit\\new_axe_stomp_hit.str"); break; - case 0x794: + case EF_NEW_AXE_STOMP_BOTTOM: particle->Load("new_axe_stomp\\new_axe_stomp_bottom\\new_axe_stomp_bottom.str"); break; - case 0x796: + case EF_NEW_AXE_STOMP_12: particle->Load("new_axe_stomp\\new_axe_stomp_12c\\new_axe_stomp_12c.str"); break; - case 0x797: + case EF_NEW_AXE_STOMP_01: particle->Load("new_axe_stomp\\new_axe_stomp_01c\\new_axe_stomp_01c.str"); break; - case 0x798: + case EF_NEW_AXE_STOMP_03: particle->Load("new_axe_stomp\\new_axe_stomp_03c\\new_axe_stomp_03.str"); break; - case 0x799: + case EF_NEW_AXE_STOMP_05: particle->Load("new_axe_stomp\\new_axe_stomp_05c\\new_axe_stomp_05c.str"); break; - case 0x79A: + case EF_NEW_AXE_STOMP_06: particle->Load("new_axe_stomp\\new_axe_stomp_06c\\new_axe_stomp_06c.str"); break; - case 0x79B: + case EF_NEW_AXE_STOMP_08: particle->Load("new_axe_stomp\\new_axe_stomp_08c\\new_axe_stomp_08c.str"); break; - case 0x79C: + case EF_NEW_AXE_STOMP_09: particle->Load("new_axe_stomp\\new_axe_stomp_09c\\new_axe_stomp_09c.str"); break; - case 0x79D: + case EF_NEW_AXE_STOMP_11: particle->Load("new_axe_stomp\\new_axe_stomp_11c\\new_axe_stomp_11c.str"); break; - case 0x75C: + case EF_NEW_RUSH_QUAKE: particle->Load("new_rush_quake\\new_rush_quake\\new_rush_quake.str"); break; - case 0x75D: + case EF_NEW_RUSH_QUAKE_BOTTOM: particle->Load("new_rush_quake\\new_rush_quake_bottom\\new_rush_quake.str"); break; - case 0x75E: + case EF_NEW_RUSH_QUAKE_HIT: particle->Load("new_rush_quake\\new_rush_quake_hit\\new_rush_quake_hit.str"); break; - case 0x720: + case EF_ARBITRIUM: particle->Load("arbitrium\\arbitrium\\arbitrium.str"); break; - case 0x721: + case EF_ARBITRIUM_BOTTOM: particle->Load("arbitrium\\arbitrium_bottom\\arbitrium_bottom.str"); break; - case 0x71E: + case EF_ARBITRIUM_CAST: particle->Open("arbitrium\\arbitrium_cast\\arbitrium_cast.str"); break; - case 0x71F: + case EF_ARBITRIUM_CAST_BOTTOM: particle->Load("arbitrium\\arbitrium_cast_bottom\\arbitrium_cast_bottom.str"); break; - case 0x722: + case EF_ARBITRIUM_HIT: particle->Load("arbitrium\\arbitrium_hit\\arbitrium_hit.str"); break; - case 0x723: + case EF_UNK_1827: particle->Load("dancing_knife\\dancing_knife_cast\\dancing_knife_cast.str"); break; - case 0x724: + case EF_UNK_1828: particle->Load("dancing_knife\\dancing_knife_cast_bottom\\dancing_knife_cast_bottom.str"); break; - case 0x726: + case EF_UNK_1830: particle->Load("abyss_dagger\\abyss_dagger_hit\\abyss_dagger_hit.str"); break; - case 0x72E: + case EF_ETERNAL_SLASH_HIT_1: particle->Load("eternal_slash\\eternal_slash_hit\\eternal_slash_hit.str"); break; - case 0x727: + case EF_NEW_REPARATIO_CAST: particle->Open("new_reparatio\\new_reparatio_cast\\new_reparatio_cast.str"); break; - case 0x728: + case EF_NEW_REPARATIO_CAST_BOTTOM: particle->Load("new_reparatio\\new_reparatio_cast_bottom\\new_reparatio_cast_bottom.str"); break; - case 0x729: + case EF_NEW_REPARATIO: particle->Load("new_reparatio\\new_reparatio\\new_reparatio.str"); break; - case 0x72A: + case EF_NEW_REPARATIO_BOTTOM: particle->Load("new_reparatio\\new_reparatio_bottom\\new_reparatio_bottom.str"); break; - case 0x72B: + case EF_NEW_REPARATIO_TARGET: particle->Load("new_reparatio\\new_reparatio_target\\new_reparatio_target.str"); break; - case 0x72C: + case EF_NEW_REPARATIO_TARGET_BOTTOM: particle->Open("new_reparatio\\new_reparatio_target_bottom\\new_reparatio_target_bottom.str"); break; - case 0x736: + case EF_EFFLIGO: particle->Load("effligo\\effligo\\effligo.str"); break; - case 0x737: + case EF_EFFLIGO_BOTTOM: particle->Load("effligo\\effligo_bottom\\effligo_bottom.str"); break; - case 0x738: + case EF_EFFLIGO_HIT: particle->Load("effligo\\effligo_hit\\effligo_hit.str"); break; - case 0x739: + case EF_COMPETENTIA: particle->Load("competentia\\competentia\\competentia.str"); break; - case 0x73A: + case EF_COMPETENTIA_BOTTOM: particle->Open("competentia\\competentia_bottom\\competentia_bottom.str"); break; - case 0x73C: + case EF_COMPETENTIA_LOOP: particle->Open("competentia\\competentia_loop\\competentia_loop.str"); break; - case 0x73D: + case EF_COMPETENTIA_LOOP_BOTTOM: particle->Load("competentia\\competentia_loop_bottom\\competentia_loop_bottom.str"); break; - case 0x7A6: + case EF_PNEUMATICUS_PROCELLA_CAST: particle->Load("pneumaticusprocella\\pneumaticusprocella_cast\\pneumaticusprocella_cast.str"); break; - case 0x789: + case EF_NEW_PRAMEN_BOTTOM: particle->Load("new_pramen\\new_pramen_bottom\\new_pramen_bottom.str"); break; - case 0x78A: + case EF_NEW_PRAMEN_CAST: particle->Load("new_pramen\\new_pramen_cast\\new_pramen_cast.str"); break; - case 0x78B: + case EF_NEW_PRAMEN: particle->Load("new_pramen\\new_pramen\\new_pramen.str"); break; - case 0x784: + case EF_NEW_DILECTIO_HEAL: particle->Load("new_dilectioheal\\new_dilectioheal\\new_dilectioheal.str"); break; - case 0x785: + case EF_NEW_DILECTIO_HEAL_CAST: particle->Open("new_dilectioheal\\new_dilectioheal_cast\\new_dilectioheal_cast.str"); break; - case 0x786: + case EF_NEW_DILECTIO_HEAL_CAST_BOTTOM: particle->Load("new_dilectioheal\\new_dilectioheal_cast_bottom\\new_dilectioheal_cast_bottom.str"); break; - case 0x787: + case EF_NEW_DILECTIO_HEAL_TARGET: particle->Load("new_dilectioheal\\new_dilectioheal_target\\new_dilectioheal_target.str"); break; - case 0x788: + case EF_NEW_DILECTIO_HEAL_TARGET_BOTTOM: particle->Load("new_dilectioheal\\new_dilectioheal_target_bottom\\new_dilectioheal_target_bottom.str"); break; - case 0x73E: + case EF_CRYSTAL_IMPACT: particle->Load("crystal_impact\\crystal_impact\\crystal_impact.str"); break; - case 0x73F: + case EF_CRYSTAL_IMPACT_BOTTOM: particle->Load("crystal_impact\\crystal_impact_bottom\\crystal_impact_bottom.str"); break; - case 0x740: + case EF_CRYSTAL_IMPACT_CAST: particle->Load("crystal_impact\\crystal_impact_cast\\crystal_impact_cast.str"); break; - case 0x741: + case EF_CRYSTAL_IMPACT_CAST_BOTTOM: particle->Load("crystal_impact\\crystal_impact_cast_bottom\\crystal_impact_cast_bottom.str"); break; - case 0x742: + case EF_CRYSTAL_IMPACT_HIT: particle->Load("crystal_impact\\crystal_impact_hit\\crystal_impact_hit.str"); break; - case 0x743: + case EF_CRYSTAL_IMPACT_BUFF: particle->Load("crystal_impact\\crystal_impact_buff\\crystal_impact_buff.str"); break; - case 0x746: + case EF_UNK_1862: particle->Load("enchanting_shadow\\enchanting_shadow\\new_enchanting_shadow.str"); break; - case 0x747: + case EF_UNK_1863: particle->Load("enchanting_shadow\\enchanting_shadow_bottom\\new_enchanting_shadow_bottom.str"); break; - case 0x782: + case EF_FLAME_TRAP_HIT: particle->Load("flametrap\\flametrap_hit\\flametrap_hit.str"); break; - case 0x781: + case EF_FLAME_TRAP_CAST: particle->Load("flametrap\\flametrap_cast\\flametrap_cast.str"); break; - case 0x77F: + case EF_FLAME_TRAP: particle->Load("flametrap\\flametrap\\flametrap.str"); break; - case 0x744: + case EF_RELIGIO: particle->Load("religio\\religio\\religio.str"); break; - case 0x745: + case EF_RELIGIO_CAST: particle->Load("religio\\religio_cast\\religio_cast.str"); break; - case 0x748: + case EF_FATAL_SHADOW_CROW: particle->Load("fatal_shadow_crow\\fatal_shadow_crow\\fatal_shadow_crow.str"); break; - case 0x749: + case EF_FATAL_SHADOW_CROW_BOTTOM: particle->Load("fatal_shadow_crow\\fatal_shadow_crow_bottom\\fatal_shadow_crow_bottom.str"); break; - case 0x74A: + case EF_FATAL_SHADOW_CROW_HIT: particle->Load("fatal_shadow_crow\\fatal_shadow_crow_hit\\fatal_shadow_crow_hit.str"); break; - case 0x74C: + case EF_UNK_1868: particle->Load("shadow_exceed\\shadow_exceed_cast\\shadow_exceed_cast.str"); break; - case 0x752: + case EF_DEEP_BLIND_TRAP: particle->Load("deepblindtrap\\deepblindtrap\\deepblindtrap.str"); break; - case 0x751: + case EF_DEEP_BLIND_TRAP_CAST: particle->Load("deepblindtrap\\deepblindtrap_cast\\deepblindtrap_cast.str"); break; - case 0x753: + case EF_DEEP_BLIND_TRAP_HIT: particle->Load("deepblindtrap\\deepblindtrap_hit\\deepblindtrap_hit.str"); break; - case 0x7A8: + case EF_UNK_1960: particle->Load("4wh_calumitygale\\calumitygale\\calumitygale.str"); break; - case 0x7A9: + case EF_UNK_1961: particle->Load("4wh_calumitygale\\calumitygale_cast\\calumitygale_cast.str"); break; - case 0x7AA: + case EF_UNK_1962: particle->Load("4wh_calumitygale\\calumitygale_loop\\calumitygale_loop.str"); break; - case 0x756: + case EF_SWIFT_TRAP: particle->Load("swifttrap\\swifttrap\\swifttrap.str"); break; - case 0x755: + case EF_SWIFT_TRAP_CAST: particle->Load("swifttrap\\swifttrap_cast\\swifttrap_cast.str"); break; - case 0x757: + case EF_SWIFT_TRAP_HIT: particle->Load("swifttrap\\swifttrap_hit\\swifttrap_hit.str"); break; - case 0x75A: + case EF_SOLID_TRAP: particle->Load("solidtrap\\solidtrap\\solidtrap.str"); break; - case 0x758: + case EF_SOLID_TRAP_CAST: particle->Load("solidtrap\\solidtrap_cast\\solidtrap_cast.str"); break; - case 0x759: + case EF_SOLID_TRAP_CAST_BOTTOM: particle->Load("solidtrap\\solidtrap_cast_bottom\\solidtrap_cast_bottom.str"); break; - case 0x75B: + case EF_SOLID_TRAP_HIT: particle->Load("solidtrap\\solidtrap_hit\\solidtrap_hit.str"); break; - case 0x75F: + case EF_BENEDICTUM: particle->Load("benedictum\\benedictum\\benedictum.str"); break; - case 0x760: + case EF_BENEDICTUM_CAST: particle->Open("benedictum\\benedictum_cast\\benedictum_cast.str"); break; - case 0x761: + case EF_BENEDICTUM_CAST_BOTTOM: particle->Load("benedictum\\benedictum_cast_bottom\\benedictum_cast_bottom.str"); break; - case 0x762: + case EF_STRATUM_TREMOR_CAST: particle->Load("strantumtremor\\strantumtremor_cast\\strantumtremor_cast.str"); break; - case 0x763: + case EF_STRATUM_TREMOR_CAST_BOTTOM: particle->Load("strantumtremor\\strantumtremor_cast_bottom\\strantumtremor_cast_bottom.str"); break; - case 0x764: + case EF_STRATUM_TREMOR_HIT: particle->Load("strantumtremor\\strantumtremor_hit\\strantumtremor_hit.str"); break; - case 0x765: + case EF_STRATUM_TREMOR: particle->Load("strantumtremor\\strantumtremor\\strantumtremor.str"); break; - case 0x766: + case EF_STRATUM_TREMOR_BOTTOM: particle->Load("strantumtremor\\strantumtremor_bottom\\strantumtremor_bottom.str"); break; - case 0x767: + case EF_UNK_1895: particle->Load("impact_crater\\impact_crater\\impact_crater.str"); break; - case 0x768: + case EF_UNK_1896: particle->Load("impact_crater\\impact_crater_bottom\\impact_crater_bottom.str"); break; - case 0x76A: + case EF_UNK_1898: particle->Load("impact_crater\\impact_crater_hit\\impact_crater_hit.str"); break; - case 0x76B: + case EF_WIND_SIGN: particle->Load("windsign\\windsign\\windsign.str"); break; - case 0x76C: + case EF_WIND_SIGN_LOOP: particle->Load("windsign\\windsign_loop\\windsign_loop.str"); break; - case 0x772: + case EF_ABR_INFINITY: particle->Load("new_abr_infinity\\new_abr_infinity\\new_abr_infinity.str"); break; - case 0x773: + case EF_ABR_INFINITY_BOTTOM: particle->Load("new_abr_infinity\\new_abr_infinity_bottom\\new_abr_infinity_bottom.str"); break; - case 0x774: + case EF_ABR_INFINITY_CAST: particle->Load("new_abr_infinity\\new_abr_infinity_cast\\new_abr_infinity_cast.str"); break; - case 0x775: + case EF_ABR_INFINITY_HIT: particle->Load("new_abr_infinity\\new_abr_infinity_hit\\new_abr_infinity_hit.str"); break; - case 0x78E: + case EF_NEW_BATTLE_W: particle->Load("new_battle_w\\new_battle_w\\new_battle_w.str"); break; - case 0x78F: + case EF_NEW_BATTLE_W_CAST: particle->Load("new_battle_w\\new_battle_w_cast\\new_battle_w_cast.str"); break; - case 0x790: + case EF_NEW_BATTLE_W_BOTTOM: particle->Load("new_battle_w\\new_battle_w_bottom\\new_battle_w_bottom.str"); break; - case 0x791: + case EF_NEW_BATTLE_W_HIT: particle->Load("new_battle_w\\new_battle_w_hit\\new_battle_w_hit.str"); break; - case 0x77B: + case EF_NEW_D_CANNON: particle->Load("new_d_cannon\\new_d_cannon\\new_d_cannon.str"); break; - case 0x77C: + case EF_NEW_D_CANNON_CAST: particle->Load("new_d_cannon\\new_d_cannon_cast\\new_d_cannon_cast.str"); break; - case 0x77D: + case EF_NEW_D_CANNON_HIT: particle->Load("new_d_cannon\\new_d_cannon_hit\\new_d_cannon_hit.str"); break; - case 0x771: + case EF_HAWK_RUSH: particle->Load("hawkrush\\hawkrush\\hawkrush.str"); break; - case 0x77A: + case EF_ETERNAL_SLASH_HIT_2: particle->Load("eternal_slash\\eternal_slash_hit\\eternal_slash_hit.str"); break; - case 0x78D: + case EF_NEW_POTENT_VENOM: particle->Load("new_potent_venom\\new_potent_venom.str"); break; - case 0x79E: + case EF_UNK_1950: particle->Load("crescivebolt\\crescivebolt_cast\\crescivebolt_cast.str"); break; - case 0x7A0: + case EF_UNK_1952: particle->Load("crescivebolt\\crescivebolt_hit\\crescivebolt_hit.str"); break; - case 0x7A1: + case EF_UNK_1953: particle->Load("shadow_stab\\shadow_stab\\shadow_stab.str"); break; - case 0x7A2: + case EF_UNK_1954: particle->Load("eternal_slash\\eternal_slash_hit\\eternal_slash_hit.str"); break; - case 0x7A3: + case EF_UNK_1955: particle->Load("shadow_stab\\shadow_stab_hit2\\shadow_stab_hit2.str"); break; - case 0x7B7: + case EF_FIRST_FAITH_POWER: particle->Load("4ig_firstfaithpower\\firstfaithpower\\firstfaithpower.str"); break; - case 0x7B8: + case EF_FIRST_FAITH_POWER_CAST: particle->Load("4ig_firstfaithpower\\firstfaithpower_cast\\firstfaithpower_cast.str"); break; - case 0x7B9: + case EF_FIRST_FAITH_POWER_START: particle->Load("4ig_firstfaithpower\\firstfaithpower_start\\firstfaithpower_start.str"); break; - case 0x7BA: + case EF_JUDGE: particle->Load("4ig_judge\\judge\\judge.str"); break; - case 0x7BB: + case EF_JUDGE_CAST: particle->Load("4ig_judge\\judge_cast\\judge_cast.str"); break; - case 0x7BC: + case EF_JUDGE_START: particle->Load("4ig_judge\\judge_start\\judge_start.str"); break; - case 0x7BD: + case EF_JUDGE_AURA: if (!g_serviceOptions.Get(229)) { particle->Open("4ig_judge\\judge_aura\\judge_aura.str"); } break; - case 0x7BE: + case EF_THIRD_EXOR_FLAME: particle->Load("4ig_thirdexorflame\\thirdexorflame\\thirdexorflame.str"); break; - case 0x7BF: + case EF_THIRD_EXOR_FLAME_CAST: particle->Load("4ig_thirdexorflame\\thirdexorflame_cast\\thirdexorflame_cast.str"); break; - case 0x7C0: + case EF_THIRD_EXOR_FLAME_START: particle->Load("4ig_thirdexorflame\\thirdexorflame_start\\thirdexorflame_start.str"); break; - case 0x7C1: + case EF_THIRD_EXOR_FLAME_AURA: particle->Load("4ig_thirdexorflame\\thirdexorflame_aura\\thirdexorflame_aura.str"); break; - case 0x7C4: + case EF_OLEUM_SANCTUM: particle->Load("4ig_oleumsanctum\\oleumsanctum\\oleumsanctum.str"); break; - case 0x7C5: + case EF_OLEUM_SANCTUM_BOTTOM: particle->Load("4ig_oleumsanctum\\oleumsanctum_bottom\\oleumsanctum_bottom.str"); break; - case 0x7C6: + case EF_OLEUM_SANCTUM_HIT: particle->Load("4ig_oleumsanctum\\oleumsanctum_hit\\oleumsanctum_hit.str"); break; - case 0x7C7: + case EF_OLEUM_SANCTUM_LOOP: particle->Load("4ig_oleumsanctum\\oleumsanctum_loop\\oleumsanctum_loop.str"); break; - case 0x7CB: + case EF_EXPLOSION_BLASTER: particle->Load("4ig_explosionblaster\\explosionblaster\\explosionblaster.str"); break; - case 0x7CC: + case EF_EXPLOSION_BLASTER_BOTTOM: particle->Load("4ig_explosionblaster\\explosionblaster_bottom\\explosionblaster_bottom.str"); break; - case 0x7CD: + case EF_EXPLOSION_BLASTER_HIT: particle->Load("4ig_explosionblaster\\explosionblaster_hit\\explosionblaster_hit.str"); break; - case 0x803: + case EF_FIRST_BRAND: particle->Load("4ig_firstbrand\\firstbrand\\firstbrand.str"); break; - case 0x804: + case EF_FIRST_BRAND_AURA: if (!g_serviceOptions.Get(229)) { particle->Open("4ig_firstbrand\\firstbrand_aura\\firstbrand_aura.str"); } break; - case 0x805: + case EF_FIRST_BRAND_HIT: particle->Load("4ig_firstbrand\\firstbrand_hit\\firstbrand_hit.str"); break; - case 0x806: + case EF_FIRST_BRAND_START: particle->Load("4ig_firstbrand\\firstbrand_start\\firstbrand_start.str"); break; - case 0x81E: + case EF_SECOND_FAITH: particle->Load("4ig_secondfalth\\secondfalth\\secondfalth.str"); break; - case 0x81F: + case EF_SECOND_FAITH_AURA: particle->Load("4ig_secondfalth\\secondfalth_aura\\secondfalth_aura.str"); break; - case 0x821: + case EF_SECOND_FAITH_START: particle->Load("4ig_secondfalth\\secondfalth_start\\secondfalth_start.str"); break; - case 0x825: + case EF_THIRD_FLAME_BOMB: particle->Load("4iq_thirdflamebomb\\thirdflamebomb\\thirdflamebomb.str"); break; - case 0x826: + case EF_THIRD_FLAME_BOMB_BOTTOM: particle->Load("4iq_thirdflamebomb\\thirdflamebomb_bottom\\thirdflamebomb_bottom.str"); break; - case 0x823: + case EF_SECOND_FLAME: particle->Load("4iq_secondflame\\secondflame\\secondflame.str"); break; - case 0x824: + case EF_SECOND_FLAME_BOTTOM: particle->Load("4iq_secondflame\\secondflame_bottom\\secondflame_bottom.str"); break; - case 0x7AC: + case EF_SINCERE_FAITH: particle->Load("sincerefaith\\sincerefaith\\sincerefaith.str"); break; - case 0x7AD: + case EF_SINCERE_FAITH_BOTTOM: if (!g_serviceOptions.Get(229)) { particle->Open("sincerefaith\\sincerefaith_bottom\\sincerefaith_bottom.str"); } break; - case 0x831: + case EF_THIRD_CONSECRATION: particle->Load("4iq_thirdconsecration\\thirdconsecration\\thirdconsecration.str"); break; - case 0x8E7: + case EF_THIRD_CONSECRATION_BOTTOM: particle->Load("4iq_thirdconsecration\\thirdconsecration_bottom\\thirdconsecration_bottom.str"); break; - case 0x840: + case EF_THIRD_PUNISH: particle->Load("4iq_thirdpunish\\thirdpunish\\thirdpunish.str"); break; - case 0x841: + case EF_THIRD_PUNISH_BOTTOM: particle->Load("4iq_thirdpunish\\thirdpunish_bottom\\thirdpunish_bottom.str"); break; - case 0x82E: + case EF_MASSIVE_FLAME_BLASTER: particle->Load("4iq_massivefblaster\\massivefblaster\\massivefblaster.str"); break; - case 0x82F: + case EF_MASSIVE_FLAME_BLASTER_HIT: particle->Load("4iq_massivefblaster\\massivefblaster_hit\\massivefblaster_hit.str"); break; - case 0x830: + case EF_MASSIVE_FLAME_BLASTER_HIT_BOTTOM: particle->Load("4iq_massivefblaster\\massivefblaster_hit_bottom\\massivefblaster_hit_bottom.str"); break; - case 0x7AE: + case EF_ABYSS_DAGGER: particle->Load("abyss_dagger\\abyss_dagger\\abyss_dagger.str"); break; - case 0x7AF: + case EF_ABYSS_DAGGER_HIT: particle->Load("abyss_dagger\\abyss_dagger_hit\\abyss_dagger_hit.str"); break; - case 0x84E: + case EF_ABYSS_SLAYER: particle->Load("4abc_abyss_slayer\\abyss_slayer\\abyss_slayer.str"); break; - case 0x84F: + case EF_ABYSS_SLAYER_CAST: particle->Load("4abc_abyss_slayer\\abyss_slayer_cast\\abyss_slayer_cast.str"); break; - case 0x850: + case EF_ABYSS_SLAYER_CAST_BOTTOM: particle->Load("4abc_abyss_slayer\\abyss_slayer_cast_bottom\\abyss_slayer_cast_bottom.str"); break; - case 0x7B1: + case EF_HAWK_BOOMERANG_CAST: particle->Load("hawkvumerang\\hawkvumerang_cast\\hawkvumerang_cast.str"); break; - case 0x7B2: + case EF_HAWK_BOOMERANG_HIT: particle->Load("hawkvumerang\\hawkvumerang_hit\\hawkvumerang_hit.str"); break; - case 0x7B3: + case EF_HAWK_BOOMERANG_START: particle->Load("hawkvumerang\\hawkvumerang_start\\hawkvumerang_start.str"); break; - case 0x7B4: + case EF_GALE_STORM_CAST: particle->Load("galestorm\\galestorm_cast\\galestorm_cast.str"); break; - case 0x7B6: + case EF_GALE_STORM_HIT: particle->Load("galestorm\\galestorm_hit\\galestorm_hit.str"); break; - case 0x7D6: + case EF_UNK_2006: particle->Load("4tr_kvasirsonata\\kvasirsonata\\kvasirsonata.str"); break; - case 0x7D7: + case EF_UNK_2007: particle->Load("4tr_kvasirsonata\\kvasirsonata_cast\\kvasirsonata_cast.str"); break; - case 0x7D8: + case EF_UNK_2008: particle->Load("4tr_kvasirsonata\\kvasirsonata_cast_bottom\\kvasirsonata_cast_bottom.str"); break; - case 0x7C3: + case EF_POWERFUL_FAITH: particle->Load("powerfulfaith\\powerfulfaith\\powerfulfaith.str"); break; - case 0x7C8: + case EF_INCREASING_ACTIVITY: particle->Load("increasing_activity\\increasing_activity\\increasing_activity.str"); break; - case 0x7C9: + case EF_INCREASING_ACTIVITY_CAST: particle->Load("increasing_activity\\increasing_activity_cast\\increasing_activity_cast.str"); break; - case 0x7CA: + case EF_INCREASING_ACTIVITY_CAST_BOTTOM: particle->Load("increasing_activity\\increasing_activity_cast_bottom\\increasing_activity_cast_bottom.str"); break; - case 0x7CF: + case EF_FIRM_FAITH: particle->Load("firmfaith\\firmfaith\\firmfaith.str"); break; - case 0x7D0: + case EF_UNK_2000: particle->Load("mysticsymphony\\mysticsymphony\\mysticsymphony.str"); break; - case 0x7D1: + case EF_UNK_2001: particle->Load("mysticsymphony\\mysticsymphony_cast\\mysticsymphony_cast.str"); break; - case 0x7D2: + case EF_UNK_2002: particle->Load("mysticsymphony\\mysticsymphony_note\\mysticsymphony_note.str"); break; - case 0x7D3: + case EF_ACTIVITY_BURN: particle->Load("activity_burn\\activity_burn\\activity_burn.str"); break; - case 0x7D4: + case EF_ACTIVITY_BURN_CAST: particle->Load("activity_burn\\activity_burn_cast\\activity_burn_cast.str"); break; - case 0x7D5: + case EF_ACTIVITY_BURN_CAST_BOTTOM: particle->Load("activity_burn\\activity_burn_cast_bottom\\activity_burn_cast_bottom.str"); break; - case 0x7DE: + case EF_CHAIN_REACTION_SHOT_CAST: particle->Load("chain_reaction_shot\\chain_reaction_shot_cast\\chain_reaction_shot_cast.str"); break; - case 0x7DF: + case EF_CHAIN_REACTION_SHOT_CAST_BOTTOM: particle->Load("chain_reaction_shot\\chain_reaction_shot_cast_bottom\\chain_reaction_shot_cast_bottom.str"); break; - case 0x7E0: + case EF_ETERNAL_SLASH_HIT_3: particle->Load("eternal_slash\\eternal_slash_hit\\eternal_slash_hit.str"); break; - case 0x7E1: + case EF_CHAIN_REACTION_SHOT_HITSUB: particle->Load("chain_reaction_shot\\chain_reaction_shot_hitsub\\chain_reaction_shot_hitsub.str"); break; - case 0x7E2: + case EF_CHAIN_REACTION_SHOT: particle->Load("chain_reaction_shot\\chain_reaction_shot\\chain_reaction_shot.str"); break; - case 0x7D9: + case EF_SERPENS_BOTTOM: particle->Load("serpens\\serpens_bottom\\serpens_bottom.str"); break; - case 0x7DA: + case EF_SERPENS_CAST: particle->Load("serpens\\serpens_cast\\serpens_cast.str"); break; - case 0x7DB: + case EF_SERPENS_CAST_BOTTOM: particle->Load("serpens\\serpens_cast_bottom\\serpens_cast_bottom.str"); break; - case 0x7DC: + case EF_SERPENS_HIT: particle->Load("serpens\\serpens_hit\\serpens_hit.str"); break; - case 0x7DD: + case EF_SERPENS_SHIELD: particle->Load("serpens\\serpens_shield\\serpens_shield.str"); break; - case 0x8D2: + case EF_SERPENS_DEEP_POISONING: particle->Load("serpens\\serpens_deep_poisoning\\serpens_deep_poisoning.str"); break; - case 0x8D3: + case EF_SERPENS_DEEP_POISONING_BOTTOM: particle->Load("serpens\\serpens_deep_poisoning_bottom\\serpens_deep_poisoning_bottom.str"); break; - case 0x7E3: + case EF_DILUVIO_ICE: particle->Load("diluvio\\diluvio_ice\\diluvio_ice.str"); break; - case 0x7E4: + case EF_DILUVIO_ICE_BOTTOM: particle->Load("diluvio\\diluvio_ice_bottom\\diluvio_ice_bottom.str"); break; - case 0x7E5: + case EF_DILUVIO_CAST: particle->Load("diluvio\\diluvio_cast\\diluvio_cast.str"); break; - case 0x7E6: + case EF_DILUVIO_CAST_BOTTOM: particle->Load("diluvio\\diluvio_cast_bottom\\diluvio_cast_bottom.str"); break; - case 0x7E7: + case EF_DILUVIO_HIT: particle->Load("diluvio\\diluvio_hit\\diluvio_hit.str"); break; - case 0x7E8: + case EF_DILUVIO_ARMOR: particle->Load("diluvio\\diluvio_armor\\diluvio_armor.str"); break; - case 0x8D4: + case EF_DILUVIO_COLD_FORCE: particle->Load("diluvio\\diluvio_cold_force\\diluvio_cold_force.str"); break; - case 0x8D5: + case EF_DILUVIO_COLD_FORCE_BOTTOM: particle->Load("diluvio\\diluvio_cold_force _bottom\\diluvio_cold_force _bottom.str"); break; - case 0x7E9: + case EF_SPELL_ENCHANTING: particle->Load("spell_enchanting\\spell_enchanting\\spell_enchanting.str"); break; - case 0x7EB: + case EF_DIAMOND_STORM_BOTTOM: particle->Load("diamond_storm\\diamond_storm_bottom\\diamond_storm_bottom.str"); break; - case 0x7EC: + case EF_DIAMOND_STORM_CAST: particle->Load("diamond_storm\\diamond_storm_cast\\diamond_storm_cast.str"); break; - case 0x7ED: + case EF_DIAMOND_STORM_CAST_BOTTOM: particle->Load("diamond_storm\\diamond_storm_cast_bottom\\diamond_storm_cast_bottom.str"); break; - case 0x7EE: + case EF_DIAMOND_STORM_HIT: particle->Load("diamond_storm\\diamond_storm_hit\\diamond_storm_hit.str"); break; - case 0x7FE: + case EF_UNK_2046: particle->Load("roseblossom\\roseblossom_cast\\roseblossom_cast.str"); break; - case 0x7FF: + case EF_UNK_2047: particle->Load("roseblossom\\roseblossom_cast_bottom\\roseblossom_cast_bottom.str"); break; - case 0x800: + case EF_UNK_2048: particle->Load("roseblossom\\roseblossom_hit\\roseblossom_hit.str"); break; - case 0x801: + case EF_UNK_2049: particle->Load("roseblossom\\roseblossom_rose\\roseblossom_rose.str"); break; - case 0x802: + case EF_UNK_2050: particle->Load("roseblossom\\roseblossom_shot\\roseblossom_shot.str"); break; - case 0x7EF: + case EF_VENOM_SWAMP_BOTTOM: particle->Load("venom_swamp\\venom_swamp_bottom\\venom_swamp_bottom.str"); break; - case 0x7F0: + case EF_VENOM_SWAMP_CAST: particle->Load("venom_swamp\\venom_swamp_cast\\venom_swamp_cast.str"); break; - case 0x7F1: + case EF_VENOM_SWAMP_CAST_BOTTOM: particle->Load("venom_swamp\\venom_swamp_cast_bottom\\venom_swamp_cast_bottom.str"); break; - case 0x7F2: + case EF_VENOM_SWAMP_HIT: particle->Load("venom_swamp\\venom_swamp_hit\\venom_swamp_hit.str"); break; - case 0x7F3: + case EF_ARDOR: particle->Load("ardor\\ardor\\ardor.str"); break; - case 0x7F4: + case EF_ARDOR_BOTTOM: particle->Load("ardor\\ardor_bottom\\ardor_bottom.str"); break; - case 0x7F5: + case EF_ARDOR_CAST: particle->Load("ardor\\ardor_cast\\ardor_cast.str"); break; - case 0x7F6: + case EF_ARDOR_CAST_BOTTOM: particle->Load("ardor\\ardor_cast_bottom\\ardor_cast_bottom.str"); break; - case 0x7F7: + case EF_ARDOR_HIT: particle->Load("ardor\\ardor_hit\\ardor_hit.str"); break; - case 0x7F8: + case EF_ARDOR_FLAMEARMOR: particle->Load("ardor\\ardor_flamearmor\\ardor_flamearmor.str"); break; - case 0x8D6: + case EF_ARDOR_FLAMETECHNIC: particle->Load("ardor\\ardor_flametechnic\\ardor_flametechnic.str"); break; - case 0x8D7: + case EF_ARDOR_FLAMETECHNIC_BOTTOM: particle->Load("ardor\\ardor_flametechnic_bottom\\ardor_flametechnic_bottom.str"); break; - case 0x7F9: + case EF_LIGHTNING_LAND: particle->Load("lightning_land\\lightning_land\\lightning_land.str"); break; - case 0x7FA: + case EF_LIGHTNING_LAND_BOTTOM: particle->Load("lightning_land\\lightning_land_bottom\\lightning_land_bottom.str"); break; - case 0x7FB: + case EF_LIGHTNING_LAND_CAST: particle->Load("lightning_land\\lightning_land_cast\\lightning_land_cast.str"); break; - case 0x7FC: + case EF_LIGHTNING_LAND_CAST_BOTTOM: particle->Load("lightning_land\\lightning_land_cast_bottom\\lightning_land_cast_bottom.str"); break; - case 0x7FD: + case EF_LIGHTNING_LAND_HIT: particle->Load("lightning_land\\lightning_land_hit\\lightning_land_hit.str"); break; - case 0x807: + case EF_CONFLAGRATION: particle->Load("conflagration\\conflagration\\conflagration.str"); break; - case 0x808: + case EF_CONFLAGRATION_BOTTOM: particle->Load("conflagration\\conflagration_bottom\\conflagration_bottom.str"); break; - case 0x809: + case EF_CONFLAGRATION_CAST: particle->Load("conflagration\\conflagration_cast\\conflagration_cast.str"); break; - case 0x80A: + case EF_CONFLAGRATION_CAST_BOTTOM: particle->Load("conflagration\\conflagration_cast_bottom\\conflagration_cast_bottom.str"); break; - case 0x80B: + case EF_CONFLAGRATION_HIT: particle->Load("conflagration\\conflagration_hit\\conflagration_hit.str"); break; - case 0x80C: + case EF_SOUND_BLEND: particle->Load("soundblend\\soundblend\\soundblend.str"); break; - case 0x80D: + case EF_SOUND_BLEND_CAST: particle->Load("soundblend\\soundblend_cast\\soundblend_cast.str"); break; - case 0x80E: + case EF_SOUND_BLEND_CAST_BOTTOM: particle->Load("soundblend\\soundblend_cast_bottom\\soundblend_cast_bottom.str"); break; - case 0x80F: + case EF_SOUND_BLEND_RED: particle->Load("soundblend\\soundblend_red\\soundblend_red.str"); break; - case 0x810: + case EF_METALLIC_FURY: particle->Load("metalicfury\\metalicfury\\metalicfury.str"); break; - case 0x811: + case EF_UNK_2065: particle->Load("jawaii_serenade\\jawaii_serenade\\jawaii_serenade.str"); break; - case 0x812: + case EF_UNK_2066: particle->Load("jawaii_serenade\\jawaii_serenade_cast\\jawaii_serenade_cast.str"); break; - case 0x813: + case EF_UNK_2067: particle->Load("jawaii_serenade\\jawaii_serenade_cast_bottom\\jawaii_serenade_cast_bottom.str"); break; - case 0x814: + case EF_UNK_2068: particle->Load("pronmarch\\pronmarch\\pronmarch.str"); break; - case 0x815: + case EF_UNK_2069: particle->Load("pronmarch\\pronmarch_cast\\pronmarch_cast.str"); break; - case 0x816: + case EF_UNK_2070: particle->Load("pronmarch\\pronmarch_cast_bottom\\pronmarch_cast_bottom.str"); break; - case 0x817: + case EF_UNK_2071: particle->Load("rhythmshooting\\rhythmshooting_cast\\rhythmshooting_cast.str"); break; - case 0x818: + case EF_UNK_2072: particle->Load("rhythmshooting\\rhythmshooting_cast_bottom\\rhythmshooting_cast_bottom.str"); break; - case 0x819: + case EF_UNK_2073: particle->Load("rhythmshooting\\rhythmshooting_hit\\rhythmshooting_hit.str"); break; - case 0x81B: + case EF_NIFLHEIM: particle->Load("nipelheim\\nipelheim\\nipelheim.str"); break; - case 0x81C: + case EF_NIFLHEIM_CAST: particle->Load("nipelheim\\nipelheim_cast\\nipelheim_cast.str"); break; - case 0x827: + case EF_ABYSS_STRIKE: particle->Load("abyss_strike\\abyss_strike\\abyss_strike.str"); break; - case 0x828: + case EF_ABYSS_STRIKE_BOTTOM: particle->Load("abyss_strike\\abyss_strike_bottom\\abyss_strike_bottom.str"); break; - case 0x829: + case EF_ABYSS_STRIKE_CAST: particle->Load("abyss_strike\\abyss_strike_cast\\abyss_strike_cast.str"); break; - case 0x82A: + case EF_ABYSS_STRIKE_CAST_BOTTOM: particle->Load("abyss_strike\\abyss_strike_cast_bottom\\abyss_strike_cast_bottom.str"); break; - case 0x82B: + case EF_ABYSS_STRIKE_GROUND: particle->Load("abyss_strike\\abyss_strike_ground\\abyss_strike_ground.str"); break; - case 0x82C: + case EF_ABYSS_STRIKE_GROUND_BOTTOM: particle->Load("abyss_strike\\abyss_strike_ground_bottom\\abyss_strike_ground_bottom.str"); break; - case 0x82D: + case EF_ABYSS_STRIKE_HIT: particle->Load("abyss_strike\\abyss_strike_hit\\abyss_strike_hit.str"); break; - case 0x832: + case EF_PROCELLA: particle->Load("procella\\procella\\procella.str"); break; - case 0x833: + case EF_PROCELLA_BOTTOM: particle->Load("procella\\procella_bottom\\procella_bottom.str"); break; - case 0x834: + case EF_PROCELLA_CAST: particle->Load("procella\\procella_cast\\procella_cast.str"); break; - case 0x835: + case EF_PROCELLA_CAST_BOTTOM: particle->Load("procella\\procella_cast_bottom\\procella_cast_bottom.str"); break; - case 0x836: + case EF_PROCELLA_HIT: particle->Load("procella\\procella_hit\\procella_hit.str"); break; - case 0x837: + case EF_PROCELLA_STORM: particle->Load("procella\\procella_storm\\procella_storm.str"); break; - case 0x8D8: + case EF_PROCELLA_GRACE_BREEZE: particle->Load("procella\\procella_grace_breeze\\procella_grace_breeze.str"); break; - case 0x8D9: + case EF_PROCELLA_GRACE_BREEZE_BOTTOM: particle->Load("procella\\procella_grace_breeze_bottom\\procella_grace_breeze_bottom.str"); break; - case 0x838: + case EF_TERREMOTUS: particle->Load("terremotus\\terremotus\\terremotus.str"); break; - case 0x839: + case EF_TERREMOTUS_CAST: particle->Load("terremotus\\terremotus_cast\\terremotus_cast.str"); break; - case 0x83A: + case EF_TERREMOTUS_CAST_BOTTOM: particle->Load("terremotus\\terremotus_cast_bottom\\terremotus_cast_bottom.str"); break; - case 0x83B: + case EF_TERREMOTUS_HIT: particle->Load("terremotus\\terremotus_hit\\terremotus_hit.str"); break; - case 0x83C: + case EF_TERREMOTUS_PROTECT: particle->Load("terremotus\\terremotus_protect\\terremotus_protect.str"); break; - case 0x8DA: + case EF_TERREMOTUS_EARTH_CARE: particle->Load("terremotus\\terremotus_earth_care\\terremotus_earth_care.str"); break; - case 0x8DB: + case EF_TERREMOTUS_EARTH_CARE_BOTTOM: particle->Load("terremotus\\terremotus_earth_care_bottom\\terremotus_earth_care_bottom.str"); break; - case 0x83E: + case EF_FROM_THE_ABYSS: particle->Load("from_the_abyss\\from_the_abyss_shadow\\from_the_abyss_shadow.str"); break; - case 0x83F: + case EF_ABYSS_STRIKE_HIT_2: particle->Load("abyss_strike\\abyss_strike_hit\\abyss_strike_hit.str"); break; - case 0x854: + case EF_DEFT_STAB: particle->Load("deft_stab\\deft_stab\\deft_stab.str"); break; - case 0x851: + case EF_ABYSS_SQUARE: particle->Load("abyss_square\\abyss_square\\abyss_square.str"); break; - case 0x852: + case EF_ABYSS_SQUARE_BOTTOM: particle->Load("abyss_square\\abyss_square_bottom\\abyss_square_bottom.str"); break; - case 0x853: + case EF_ABYSS_DAGGER_HIT_2: particle->Load("abyss_dagger\\abyss_dagger_hit\\abyss_dagger_hit.str"); break; - case 0x843: + case EF_FRENZY_SHOT_HIT: particle->Load("frenzy_shot\\frenzy_shot_hit\\frenzy_shot_hit.str"); break; - case 0x844: + case EF_UNK_2116: particle->Load("gef_nocturn\\gef_nocturn\\gef_nocturn.str"); break; - case 0x845: + case EF_UNK_2117: particle->Load("gef_nocturn\\gef_nocturn_cast\\gef_nocturn_cast.str"); break; - case 0x846: + case EF_UNK_2118: particle->Load("gef_nocturn\\gef_nocturn_cast_bottom\\gef_nocturn_cast_bottom.str"); break; - case 0x847: + case EF_UNK_2119: particle->Load("roki_capriccio\\roki_capriccio\\roki_capriccio.str"); break; - case 0x848: + case EF_UNK_2120: particle->Load("roki_capriccio\\roki_capriccio_cast\\roki_capriccio_cast.str"); break; - case 0x849: + case EF_UNK_2121: particle->Load("roki_capriccio\\roki_capriccio_cast_bottom\\roki_capriccio_cast_bottom.str"); break; - case 0x84A: + case EF_MUSICAL_INTERLUDE: particle->Load("musical_interlude\\musical_interlude\\musical_interlude.str"); break; - case 0x84B: + case EF_MUSICAL_INTERLUDE_CAST: particle->Load("musical_interlude\\musical_interlude_cast\\musical_interlude_cast.str"); break; - case 0x84C: + case EF_UNK_2124: particle->Load("ain_rhapsody\\ain_rhapsody\\ain_rhapsody.str"); break; - case 0x84D: + case EF_UNK_2125: particle->Load("ain_rhapsody\\ain_rhapsody_cast\\ain_rhapsody_cast.str"); break; - case 0x855: + case EF_TERRA_DRIVE: particle->Load("terradrive\\terradrive\\terradrive.str"); break; - case 0x856: + case EF_TERRA_DRIVE_BOTTOM: particle->Load("terradrive\\terradrive_bottom\\terradrive_bottom.str"); break; - case 0x857: + case EF_TERRA_DRIVE_CAST: particle->Load("terradrive\\terradrive_cast\\terradrive_cast.str"); break; - case 0x858: + case EF_TERRA_DRIVE_CAST_BOTTOM: particle->Load("terradrive\\terradrive_cast_bottom\\terradrive_cast_bottom.str"); break; - case 0x859: + case EF_TERRA_DRIVE_HIT: particle->Load("terradrive\\terradrive_hit\\terradrive_hit.str"); break; - case 0x85A: + case EF_ELEMENTAL_BUSTER_CAST: particle->Load("elemental_buster\\elemental_buster_cast\\elemental_buster_cast.str"); break; - case 0x85B: + case EF_ELEMENTAL_BUSTER_FIRE: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_fire\\elemental_buster_fire.str"); break; - case 0x85C: + case EF_ELEMENTAL_BUSTER_FIRE_BOTTOM: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_fire_bottom\\elemental_buster_fire_bottom.str"); break; - case 0x85D: + case EF_ELEMENTAL_BUSTER_FIRE_HIT: particle->Load("elemental_buster\\elemental_buster_hit\\elemental_buster_fire_hit\\elemental_buster_fire_hit.str"); break; - case 0x85E: + case EF_ELEMENTAL_BUSTER_LAND: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_land\\elemental_buster_land.str"); break; - case 0x85F: + case EF_ELEMENTAL_BUSTER_LAND_BOTTOM: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_land_bottom\\elemental_buster_land_bottom.str"); break; - case 0x860: + case EF_ELEMENTAL_BUSTER_LAND_HIT: particle->Load("elemental_buster\\elemental_buster_hit\\elemental_buster_land_hit\\elemental_buster_land_hit.str"); break; - case 0x861: + case EF_ELEMENTAL_BUSTER_POISON: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_poison\\elemental_buster_poison.str"); break; - case 0x862: + case EF_ELEMENTAL_BUSTER_POISON_BOTTOM: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_poison_bottom\\elemental_buster_poison_bottom.str"); break; - case 0x863: + case EF_ELEMENTAL_BUSTER_POISON_HIT: particle->Load("elemental_buster\\elemental_buster_hit\\elemental_buster_poison_hit\\elemental_buster_poison_hit.str"); break; - case 0x864: + case EF_ELEMENTAL_BUSTER_WATER: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_water\\elemental_buster_water.str"); break; - case 0x865: + case EF_ELEMENTAL_BUSTER_WATER_BOTTOM: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_water_bottom\\elemental_buster_water_bottom.str"); break; - case 0x866: + case EF_ELEMENTAL_BUSTER_WATER_HIT: particle->Load("elemental_buster\\elemental_buster_hit\\elemental_buster_water_hit\\elemental_buster_water_hit.str"); break; - case 0x867: + case EF_ELEMENTAL_BUSTER_WIND: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_wind\\elemental_buster_wind.str"); break; - case 0x868: + case EF_ELEMENTAL_BUSTER_WIND_BOTTOM: particle->Load("elemental_buster\\elemental_buster\\elemental_buster_wind_bottom\\elemental_buster_wind_bottom.str"); break; - case 0x869: + case EF_ELEMENTAL_BUSTER_WIND_HIT: particle->Load("elemental_buster\\elemental_buster_hit\\elemental_buster_wind_hit\\elemental_buster_wind_hit.str"); break; - case 0x86B: + case EF_UNLUCKY_RUSH_CAST: particle->Load("unlucky_rush\\unlucky_rush_cast\\unlucky_rush_cast.str"); break; - case 0x86C: + case EF_ABYSS_DAGGER_HIT_3: particle->Load("abyss_dagger\\abyss_dagger_hit\\abyss_dagger_hit.str"); break; - case 0x86D: + case EF_UNK_2157: particle->Load("overslash\\overslash\\overslash.str"); break; - case 0x86E: + case EF_UNK_2158: particle->Load("overslash\\overslash_bottom\\overslash_bottom.str"); break; - case 0x86F: + case EF_UNK_2159: particle->Load("overslash\\overslash_cast\\overslash_cast.str"); break; - case 0x870: + case EF_UNK_2160: particle->Load("overslash\\overslash_hit\\overslash_hit.str"); break; - case 0x871: + case EF_ADVANCED_PROTECTION: particle->Load("adv_protection\\adv_protection\\adv_protection.str"); break; - case 0x872: + case EF_ADVANCED_PROTECTION_BOTTOM: particle->Load("adv_protection\\adv_protection_bottom\\adv_protection_bottom.str"); break; - case 0x873: + case EF_ADVANCED_PROTECTION_CAST: particle->Load("adv_protection\\adv_protection_cast\\adv_protection_cast.str"); break; - case 0x874: + case EF_ADVANCED_PROTECTION_CAST_BOTTOM: particle->Load("adv_protection\\adv_protection_cast_bottom\\adv_protection_cast_bottom.str"); break; - case 0x876: + case EF_UNK_2166: particle->Load("crossrain\\cross_rain_bottom\\cross_rain_bottom.str"); break; - case 0x877: + case EF_UNK_2167: particle->Load("crossrain\\cross_rain_cast\\cross_rain_cast.str"); break; - case 0x878: + case EF_UNK_2168: particle->Load("crossrain\\cross_rain_cast_bottom\\cross_rain_cast_bottom.str"); break; - case 0x879: + case EF_UNK_2169: particle->Load("guard_stance\\guard_stance\\guard_stance.str"); break; - case 0x87A: + case EF_UNK_2170: particle->Load("guard_stance\\guard_stance_cast\\guard_stance_cast.str"); break; - case 0x87B: + case EF_UNK_2171: particle->Load("guard_stance\\guard_stance_cast_bottom\\guard_stance_cast_bottom.str"); break; - case 0x87C: + case EF_UNK_2172: particle->Load("attack_stance\\attack_stance\\attack_stance.str"); break; - case 0x87D: + case EF_UNK_2173: particle->Load("attack_stance\\attack_stance_cast\\attack_stance_cast.str"); break; - case 0x87E: + case EF_UNK_2174: particle->Load("attack_stance\\attack_stance_cast_bottom\\attack_stance_cast_bottom.str"); break; - case 0x87F: + case EF_UNK_2175: particle->Load("grand_judgement\\grand_judgement\\grand_judgement.str"); break; - case 0x880: + case EF_UNK_2176: particle->Load("grand_judgement\\grand_judgement_bottom\\grand_judgement_bottom.str"); break; - case 0x881: + case EF_UNK_2177: particle->Load("grand_judgement\\grand_judgement_buff\\grand_judgement_buff.str"); break; - case 0x882: + case EF_UNK_2178: particle->Load("grand_judgement\\grand_judgement_cast\\grand_judgement_cast.str"); break; - case 0x883: + case EF_UNK_2179: particle->Load("grand_judgement\\grand_judgement_cast_bottom\\grand_judgement_cast_bottom.str"); break; - case 0x885: + case EF_UNK_2181: particle->Load("holy_shield\\holy_shield\\holy_shield.str"); break; - case 0x884: + case EF_UNK_2180: particle->Load("holy_shield\\holy_shield_cast\\holy_shield_cast.str"); break; - case 0x886: + case EF_UNK_2182: particle->Load("holy_shield\\holy_shield_loop\\holy_shield_loop.str"); break; - case 0x888: + case EF_SHIELD_SHOOTING_CAST: particle->Load("shield_shooting\\shield_shooting_cast\\shield_shooting_cast.str"); break; - case 0x889: + case EF_SHIELD_SHOOTING_HIT: particle->Load("shield_shooting\\shield_shooting_hit\\shield_shooting_hit.str"); break; - case 0x88A: + case EF_THE_W_PROTECTION: particle->Load("the_w_protection\\the_w_protection\\the_w_protection.str"); break; - case 0x88B: + case EF_THE_W_PROTECTION_CAST: particle->Load("the_w_protection\\the_w_protection_cast\\the_w_protection_cast.str"); break; - case 0x88C: + case EF_UNK_2188: particle->Load("guardianshield\\guardianshield\\guardianshield.str"); break; - case 0x88D: + case EF_UNK_2189: particle->Load("guardianshield\\guardianshield_bottom\\guardianshield_bottom.str"); break; - case 0x88E: + case EF_UNK_2190: particle->Load("guardianshield\\guardianshield_sub\\guardianshield_sub.str"); break; - case 0x88F: + case EF_UNK_2191: particle->Load("judgement_cross\\judgement_cross\\judgement_cross.str"); break; - case 0x890: + case EF_UNK_2192: particle->Load("judgement_cross\\judgement_cross_bottom\\judgement_cross_bottom.str"); break; - case 0x891: + case EF_UNK_2193: particle->Load("judgement_cross\\judgement_cross_cast\\judgement_cross_cast.str"); break; - case 0x892: + case EF_UNK_2194: particle->Load("judgement_cross\\judgement_cross_cast_bottom\\judgement_cross_cast_bottom.str"); break; - case 0x894: + case EF_UNK_2196: particle->Load("rebound_shield\\rebound_shield\\rebound_shield.str"); break; - case 0x895: + case EF_UNK_2197: particle->Load("rebound_shield\\rebound_shield_bottom\\rebound_shield_bottom.str"); break; - case 0x896: + case EF_UNK_2198: particle->Load("rebound_shield\\rebound_shield_cast\\rebound_shield_cast.str"); break; - case 0x897: + case EF_UNK_2199: particle->Load("rebound_shield\\rebound_shield_cast_bottom\\rebound_shield_cast_bottom.str"); break; - case 0x898: + case EF_UNK_2200: particle->Load("ultimate_sacrifice\\ultimatesacrifice\\ultimatesacrifice.str"); break; - case 0x899: + case EF_UNK_2201: particle->Load("ultimate_sacrifice\\ultimatesacrifice_bottom\\ultimatesacrifice_bottom.str"); break; - case 0x89A: + case EF_UNK_2202: particle->Load("ultimate_sacrifice\\ultimatesacrifice_shine\\ultimatesacrifice_shine.str"); break; - case 0x89C: + case EF_ACIDIFIED_ZONE_FIRE_CAST: particle->Load("acidified_zone_fire\\acidified_zone_fire_cast\\acidified_zone_fire_cast.str"); break; - case 0x89D: + case EF_ACIDIFIED_ZONE_FIRE_CAST_BOTTOM: particle->Load("acidified_zone_fire\\acidified_zone_fire_cast_bottom\\acidified_zone_fire_cast_bottom.str"); break; - case 0x89F: + case EF_ACIDIFIED_ZONE_FIRE_HIT: particle->Load("acidified_zone_fire\\acidified_zone_fire_hit\\acidified_zone_fire_hit.str"); break; - case 0x8A0: + case EF_ACIDIFIED_ZONE_FIRE_START: particle->Load("acidified_zone_fire\\acidified_zone_fire_a_start\\acidified_zone_fire_a_start.str"); break; - case 0x8A1: + case EF_ACIDIFIED_ZONE_FIRE_START_BOTTOM: particle->Load("acidified_zone_fire\\acidified_zone_fire_a_start_bottom\\acidified_zone_fire_a_start_bottom.str"); break; - case 0x8A2: + case EF_ACIDIFIED_ZONE_FIRE_LOOP: particle->Load("acidified_zone_fire\\acidified_zone_fire_a_loop\\acidified_zone_fire_a_loop.str"); break; - case 0x8A3: + case EF_ACIDIFIED_ZONE_FIRE_LOOP_BOTTOM: particle->Load("acidified_zone_fire\\acidified_zone_fire_a_loop_bottom\\acidified_zone_fire_a_loop_bottom.str"); break; - case 0x8A4: + case EF_ACIDIFIED_ZONE_WATER_CAST: particle->Load("acidified_zone_water\\acidified_zone_water_cast\\acidified_zone_water_cast.str"); break; - case 0x8A5: + case EF_ACIDIFIED_ZONE_WATER_CAST_BOTTOM: particle->Load("acidified_zone_water\\acidified_zone_water_cast_bottom\\acidified_zone_water_cast_bottom.str"); break; - case 0x8A7: + case EF_ACIDIFIED_ZONE_WATER_HIT: particle->Load("acidified_zone_water\\acidified_zone_water_hit\\acidified_zone_water_hit.str"); break; - case 0x8A8: + case EF_ACIDIFIED_ZONE_WATER_START: particle->Load("acidified_zone_water\\acidified_zone_water_a_start\\acidified_zone_water_a_start.str"); break; - case 0x8A9: + case EF_ACIDIFIED_ZONE_WATER_START_BOTTOM: particle->Load("acidified_zone_water\\acidified_zone_water_a_start_bottom\\acidified_zone_water_a_start_bottom.str"); break; - case 0x8AA: + case EF_ACIDIFIED_ZONE_WATER_LOOP: particle->Load("acidified_zone_water\\acidified_zone_water_a_loop\\acidified_zone_water_a_loop.str"); break; - case 0x8AB: + case EF_ACIDIFIED_ZONE_WATER_LOOP_BOTTOM: particle->Load("acidified_zone_water\\acidified_zone_water_a_loop_bottom\\acidified_zone_water_a_loop_bottom.str"); break; - case 0x8AC: + case EF_ACIDIFIED_ZONE_WIND_CAST: particle->Load("acidified_zone_wind\\acidified_zone_wind_cast\\acidified_zone_wind_cast.str"); break; - case 0x8AD: + case EF_ACIDIFIED_ZONE_WIND_CAST_BOTTOM: particle->Load("acidified_zone_wind\\acidified_zone_wind_cast_bottom\\acidified_zone_wind_cast_bottom.str"); break; - case 0x8AF: + case EF_ACIDIFIED_ZONE_WIND_HIT: particle->Load("acidified_zone_wind\\acidified_zone_wind_hit\\acidified_zone_wind_hit.str"); break; - case 0x8B0: + case EF_ACIDIFIED_ZONE_WIND_START: particle->Load("acidified_zone_wind\\acidified_zone_wind_a_start\\acidified_zone_wind_a_start.str"); break; - case 0x8B1: + case EF_ACIDIFIED_ZONE_WIND_START_BOTTOM: particle->Load("acidified_zone_wind\\acidified_zone_wind_a_start_bottom\\acidified_zone_wind_a_start_bottom.str"); break; - case 0x8B2: + case EF_ACIDIFIED_ZONE_WIND_LOOP: particle->Load("acidified_zone_wind\\acidified_zone_wind_a_loop\\acidified_zone_wind_a_loop.str"); break; - case 0x8B3: + case EF_ACIDIFIED_ZONE_WIND_LOOP_BOTTOM: particle->Load("acidified_zone_wind\\acidified_zone_wind_a_loop_bottom\\acidified_zone_wind_a_loop_bottom.str"); break; - case 0x8B4: + case EF_ACIDIFIED_ZONE_GROUND_CAST: particle->Load("acidified_zone_ground\\acidified_zone_ground_cast\\acidified_zone_ground_cast.str"); break; - case 0x8B5: + case EF_ACIDIFIED_ZONE_GROUND_CAST_BOTTOM: particle->Load("acidified_zone_ground\\acidified_zone_ground_cast_bottom\\acidified_zone_ground_cast_bottom.str"); break; - case 0x8B7: + case EF_ACIDIFIED_ZONE_GROUND_HIT: particle->Load("acidified_zone_ground\\acidified_zone_ground_hit\\acidified_zone_ground_hit.str"); break; - case 0x8B8: + case EF_ACIDIFIED_ZONE_GROUND_START: particle->Load("acidified_zone_ground\\acidified_zone_ground_a_start\\acidified_zone_ground_a_start.str"); break; - case 0x8B9: + case EF_ACIDIFIED_ZONE_GROUND_START_BOTTOM: particle->Load("acidified_zone_ground\\acidified_zone_ground_a_start_bottom\\acidified_zone_ground_a_start_bottom.str"); break; - case 0x8BA: + case EF_ACIDIFIED_ZONE_GROUND_LOOP: particle->Load("acidified_zone_ground\\acidified_zone_ground_a_loop\\acidified_zone_ground_a_loop.str"); break; - case 0x8BB: + case EF_ACIDIFIED_ZONE_GROUND_LOOP_BOTTOM: particle->Load("acidified_zone_ground\\acidified_zone_ground_a_loop_bottom\\acidified_zone_ground_a_loop_bottom.str"); break; - case 0x8BC: + case EF_HELLTREE_CAST: particle->Load("helltree\\helltree_cast\\helltree_cast.str"); break; - case 0x8BD: + case EF_HELLTREE_CAST_BOTTOM: particle->Load("helltree\\helltree_cast_bottom\\helltree_cast_bottom.str"); break; - case 0x8BE: + case EF_HELLTREE_DUSTY: particle->Load("helltree\\hell_dusty\\hell_dusty.str"); break; - case 0x8BF: + case EF_HELLTREE_HOWLING: particle->Load("helltree\\hell_howling\\hell_howling.str"); break; - case 0x8C1: + case EF_RESEARCH_REPORT: particle->Load("research_report\\researchreport\\researchreport.str"); break; - case 0x8C2: + case EF_RESEARCH_REPORT_CAST: particle->Load("research_report\\researchreport_cast\\researchreport_cast.str"); break; - case 0x8C3: + case EF_RESEARCH_REPORT_CAST_BOTTOM: particle->Load("research_report\\researchreport_cast_bottom\\researchreport_cast_bottom.str"); break; - case 0x8C7: + case EF_WOODEN_WARRIOR_CAST: particle->Load("wooden_warrior\\wooden_warrior_cast\\wooden_warrior_cast.str"); break; - case 0x8C8: + case EF_WOODEN_WARRIOR_CAST_BOTTOM: particle->Load("wooden_warrior\\wooden_warrior_cast_bottom\\wooden_warrior_cast_bottom.str"); break; - case 0x8CA: + case EF_WOODEN_WARRIOR_ATTACK: particle->Load("wooden_warrior\\wooden_attack\\wooden_attack\\wooden_attack.str"); break; - case 0x8CB: + case EF_WOODEN_WARRIOR_ATTACK_HIT: particle->Load("wooden_warrior\\wooden_attack\\wooden_attack_hit\\wooden_attack_hit.str"); break; - case 0x8CC: + case EF_WOODEN_WARRIOR_THROWROCK: particle->Load("wooden_warrior\\throwrock\\throwrock\\throwrock.str"); break; - case 0x8CD: + case EF_WOODEN_WARRIOR_THROWROCK_HIT: particle->Load("wooden_warrior\\throwrock\\throwrock_hit\\throwrock_hit.str"); break; - case 0x8CE: + case EF_WOODEN_FAIRY_CAST: particle->Load("wooden_fairy\\wooden_cast\\wooden_cast.str"); break; - case 0x8D0: + case EF_WOODEN_FAIRY_CAST_BOTTOM: particle->Load("wooden_fairy\\wooden_cast_bottom\\wooden_cast_bottom.str"); break; - case 0x8D1: + case EF_WOODEN_FAIRY_DUSTY: particle->Load("wooden_fairy\\fairy_dusty\\fairy_dusty.str"); break; - case 0x8C4: + case EF_STATE_LASSITUDE: particle->Open("state_effect\\lassitude\\lassitude.str"); break; - case 0x8C5: + case EF_STATE_SWOONING: particle->Open("state_effect\\swooning\\swooning.str"); break; - case 0x8C6: + case EF_STATE_HOLYFLAME: particle->Open("state_effect\\holyflame\\holyflame.str"); break; - case 0x8DC: + case EF_STATE_LIGHTNINGSTRIKE: particle->Open("state_effect\\lightningstrike\\lightningstrike.str"); break; - case 0x8DD: + case EF_STATE_CONFLAGRATION: particle->Open("state_effect\\conflagration\\conflagration.str"); break; - case 0x8DE: + case EF_STATE_FROSTBITE: particle->Open("state_effect\\frostbite\\frostbite\\frostbite.str"); break; - case 0x8DF: + case EF_STATE_FROSTBITE_FINISH: particle->Open("state_effect\\frostbite\\frostbite_finish\\frostbite_finish.str"); break; - case 0x8E2: + case EF_STATE_DEADLYPOISON: particle->Open("state_effect\\deadlypoison\\deadlypoison.str"); break; - case 0x8E1: + case EF_STATE_CRYSTALLIZATION: particle->Open("state_effect\\crystallization\\crystallization.str"); break; - case 0x8FE: + case EF_NPC_KILLING_AURA: particle->Open("NPC_KILLING_AURA\\npc_killing_aura_bottom\\killing_aura.str"); break; - case 0x8FF: + case EF_NPC_KILLING_AURA_END: particle->Open("NPC_KILLING_AURA\\npc_killing_aura_bottom\\killing_aura_end.str"); break; - case 0x900: + case EF_NPC_KILLING_AURA_HIT: particle->Open("NPC_KILLING_AURA\\npc_killing_aura_hit\\killing_aura_hit.str"); break; - case 0x904: + case EF_NPC_CANE_OF_EVIL_EYE: particle->Open("NPC_CANE_OF_EVIL_EYE\\npc_cane_of_evil_eye_hit\\npc_cane_of_evil_eye_hit.str"); break; - case 0x907: + case EF_UI_ENCHANT_INTRO_YELLOW: particle->Open("ui_enchant\\ui_intro_yellow\\ui_intro_yellow.str"); break; - case 0x908: + case EF_UI_ENCHANT_SUCCESS: particle->Open("ui_enchant\\ui_enchant_success\\ui_enchant_success.str"); break; - case 0x909: + case EF_UI_ENCHANT_FAIL: particle->Open("ui_enchant\\ui_fail\\ui_enchant_fail.str"); break; - case 0x90A: + case EF_UI_ENCHANT_INTRO_BLUE: particle->Open("ui_enchant\\ui_intro_blue\\ui_intro_blue.str"); break; - case 0x90B: + case EF_UI_LEVELUP_SUCCESS: particle->Open("ui_enchant\\ui_levelup_success\\ui_levelup_success.str"); break; - case 0x90C: + case EF_UI_LEVELUP_FAIL: particle->Open("ui_enchant\\ui_fail\\ui_levelup_fail.str"); break; - case 0x90D: + case EF_UI_ENCHANT_INTRO_GREEN: particle->Open("ui_enchant\\ui_intro_green\\ui_intro_green.str"); break; - case 0x90E: + case EF_UI_RESET_SUCCESS: particle->Open("ui_enchant\\ui_reset_success\\ui_reset_success.str"); break; - case 0x90F: + case EF_UI_RESET_FAIL: particle->Open("ui_enchant\\ui_fail\\ui_reset_fail.str"); break; - case 0x95B: + case EF_RUNE_ACTIVE_FINISH: particle->Open("runesystem\\rune_active\\ui_finish.str"); break; - case 0x95C: + case EF_RUNESET_ACTIVE: particle->Open("runesystem\\runeset_active\\ui_activate.str"); break; - case 0x95D: + case EF_RUNESET_UPGRADE_SUCCESS: particle->Open("runesystem\\runeset_upgrade_success\\rune_upgrade_succecss.str"); break; - case 0x95E: + case EF_RUNESET_UPGRADE_FAIL: particle->Open("runesystem\\runeset_upgrade_fail\\rune_upgrade_fail.str"); break; - case 0x95F: + case EF_RUNE_BROKEN: particle->Open("runesystem\\decom_broken\\ui_broken.str"); break; - case 0x975: + case EF_RUNE_SLOT_SMALL: particle->Open("runesystem\\rune_slot_small\\rune_slot_small.str"); break; - case 0x976: + case EF_RUNE_SLOT_BIG: particle->Open("runesystem\\rune_slot_big\\rune_slot_big.str"); break; - case 0x910: + case EF_TOXIN_OF_MANDARA_BOMB: particle->Open("toxin_of_mandara\\toxin_of_mandara_bomb\\toxin_of_mandara_bomb.str"); break; - case 0x911: + case EF_TOXIN_OF_MANDARA_BOMB_BOTTOM: particle->Open("toxin_of_mandara\\toxin_of_mandara_bomb_bottom\\toxin_of_mandara_bomb_bottom.str"); break; - case 0x912: + case EF_TOXIN_OF_MANDARA_SHOCK: particle->Open("toxin_of_mandara\\toxin_of_mandara_shock\\toxin_of_mandara_shock.str"); break; - case 0x913: + case EF_NEEDLE_STINGER: particle->Open("needle_stinger\\needle_stinger\\needle_stinger.str"); break; - case 0x914: + case EF_NEEDLE_STINGER_BOTTOM: particle->Open("needle_stinger\\needle_stinger_bottom\\needle_stinger_bottom.str"); break; - case 0x915: + case EF_NEEDLE_STINGER_HIT: particle->Open("needle_stinger\\needle_stinger_hit\\needle_stinger_hit.str"); break; - case 0x916: + case EF_ABSOLUTE_ZEPHYR: particle->Open("absolute_zephyr\\absolute_zephyr\\absolute_zephyr.str"); break; - case 0x917: + case EF_ABSOLUTE_ZEPHYR_BOTTOM: particle->Open("absolute_zephyr\\absolute_zephyr_bottom\\absolute_zephyr_bottom.str"); break; - case 0x918: + case EF_ABSOLUTE_ZEPHYR_HIT: particle->Open("absolute_zephyr\\absolute_zephyr_hit\\absolute_zephyr_hit.str"); break; - case 0x919: + case EF_TWISTER_CUTTER: particle->Open("twister_cutter\\twister_cutter\\twister_cutter.str"); break; - case 0x91A: + case EF_TWISTER_CUTTER_HIT: particle->Open("twister_cutter\\twister_cutter_hit\\twister_cutter_hit.str"); break; - case 0x91B: + case EF_HEILIGE_PFERD: particle->Open("heilige_pferd\\heilige_pferd\\heilige_pferd.str"); break; - case 0x91C: + case EF_HEILIGE_PFERD_BOTTOM: particle->Open("heilige_pferd\\heilige_pferd_bottom\\heilige_pferd_bottom.str"); break; - case 0x91D: + case EF_HEILIGE_PFERD_CAST: particle->Open("heilige_pferd\\heilige_pferd_cast\\heilige_pferd_cast.str"); break; - case 0x91E: + case EF_GOLDENE_TONE: particle->Open("goldene_tone\\goldene_tone\\goldene_tone.str"); break; - case 0x91F: + case EF_GLANZEN_SPIES: particle->Open("glanzen_spies\\glanzen_spies\\glanzen_spies.str"); break; - case 0x920: + case EF_GLANZEN_SPIES_HIT: particle->Open("glanzen_spies\\glanzen_spies_hit\\glanzen_spies_hit.str"); break; - case 0x921: + case EF_BLAZING_AND_FURIOUS: particle->Open("blazing_and_furious\\blazing_and_furious\\blazing_and_furious.str"); break; - case 0x923: + case EF_THE_ONE_FIGHTER_RISES_BOTTOM: particle->Open("the_one_fighter_rises\\the_one_fighter_rises_bottom\\the_one_fighter_rises_bottom.str"); break; - case 0x924: + case EF_TEMPERING: particle->Open("tempering\\tempering\\tempering.str"); break; - case 0x926: + case EF_BLAST_FORGE_HIT: particle->Open("blast_forge\\blast_forge_hit\\blast_forge_hit.str"); break; - case 0x943: + case EF_TETRA_VORTEX_WATER_SUB_2: particle->Open("tetravortex\\tetra_04_water_sub_explosion\\tetra_04_water_sub_expn.str"); break; - case 0x944: + case EF_TETRA_VORTEX_EARTH_SUB_2: particle->Open("tetravortex\\tetra_03_earth_sub_explosion\\tetra_03_earth_sub_expn.str"); break; - case 0x948: + case EF_NPC_20TH_CRYSTAL_S: particle->Open("npc_20th_crystal\\npc_20th_crystal_s.str"); break; - case 0x949: + case EF_NPC_20TH_CRYSTAL_M: particle->Open("npc_20th_crystal\\npc_20th_crystal_m.str"); break; - case 0x94A: + case EF_NPC_20TH_CRYSTAL_L: particle->Open("npc_20th_crystal\\npc_20th_crystal_l.str"); break; - case 0x94B: - case 0x94F: - case 0x952: + case EF_NPC_GATE_GREEN_1: + case EF_NPC_GATE_GREEN_2: + case EF_NPC_GATE_GREEN_3: particle->Open("npc_gate\\npc_gate_green\\npc_gate_green.str"); break; - case 0x94C: - case 0x950: - case 0x953: + case EF_NPC_GATE_PURPLE_1: + case EF_NPC_GATE_PURPLE_2: + case EF_NPC_GATE_PURPLE_3: particle->Open("npc_gate\\npc_gate_purple\\npc_gate_purple.str"); break; - case 0x94D: - case 0x951: - case 0x954: + case EF_NPC_GATE_RED_1: + case EF_NPC_GATE_RED_2: + case EF_NPC_GATE_RED_3: particle->Open("npc_gate\\npc_gate_red\\npc_gate_red.str"); break; - case 0x94E: + case EF_20TH_FIREWORK: particle->Open("20th_firework\\20th_firework.str"); break; - case 0x955: + case EF_NPC_GATE_SKYBLUE: particle->Open("npc_gate_skyblue\\npc_gate_skyblue\\npc_gate_skyblue.str"); break; - case 0x963: + case EF_NEW_BATTLE_W_HIT_2: particle->Open("new_battle_w\\new_battle_w_hit\\new_battle_w_hit.str"); break; - case 0x965: + case EF_NEW_PRAMEN_REUSE: particle->Open("new_pramen\\new_pramen\\new_pramen.str"); break; - case 0x966: + case EF_THE_W_PROTECTION_REUSE: particle->Open("the_w_protection\\the_w_protection\\the_w_protection.str"); break; - case 0x967: + case EF_ELEMENTAL_BUSTER_FIRE_REUSE: particle->Open("elemental_buster\\elemental_buster\\elemental_buster_fire\\elemental_buster_fire.str"); break; - case 0x968: + case EF_DESTRUCTIVE_HURRICANE_BOTTOM_REUSE: particle->Open("destructive_hurricane\\destructive_hurricane_bottom\\destructive_hurricane_bottom.str"); break; - case 0x969: + case EF_CRYSTAL_IMPACT_BOTTOM_REUSE: particle->Open("crystal_impact\\crystal_impact_bottom\\crystal_impact_bottom.str"); break; - case 0x96A: + case EF_NEW_JUDEX_TARGET_REUSE: particle->Open("new_judex\\new_judex_target\\new_judex_target.str"); break; default: @@ -5435,20 +5435,20 @@ void CEZ2STRScreenEffect::Render() { } switch (this->id) { - case 0x647: - case 0x907: - case 0x908: - case 0x909: - case 0x90A: - case 0x90B: - case 0x90D: - case 0x90E: - case 0x90F: + case EF_GRADE_ENCHANT_INTRO: + case EF_UI_ENCHANT_INTRO_YELLOW: + case EF_UI_ENCHANT_SUCCESS: + case EF_UI_ENCHANT_FAIL: + case EF_UI_ENCHANT_INTRO_BLUE: + case EF_UI_LEVELUP_SUCCESS: + case EF_UI_ENCHANT_INTRO_GREEN: + case EF_UI_RESET_SUCCESS: + case EF_UI_RESET_FAIL: this->overlayColor += 0x2000000; break; - case 0x95B: - case 0x95C: - case 0x95F: + case EF_RUNE_ACTIVE_FINISH: + case EF_RUNESET_ACTIVE: + case EF_RUNE_BROKEN: this->overlayColor += 0x10000000; break; default: @@ -5484,22 +5484,22 @@ void CEZ2STRScreenEffect::SetAlpha(float argument) { void CEZ2STRScreenEffect::SetId(int id) { CEffect::SetId(id); switch (id) { - case 0x3F4: - case 0x40A: - case 0x40B: - case 0x40C: - case 0x433: - case 0x437: - case 0x43B: - case 0x43C: - case 0x43D: - case 0x43E: - case 0x43F: - case 0x441: - case 0x443: - case 0x444: - case 0x445: - case 0x447: + case EF_HAT_EFFECT: + case EF_MOONSTAR: + case EF_STRANGELIGHTS: + case EF_SUPER_STAR: + case EF_C_MAKER_1: + case EF_MUSIC_HAT: + case EF_FLOWERSMOKE: + case EF_FSTONE: + case EF_QSCARABA: + case EF_LJOSALFAR: + case EF_HAPPINESSSTAR: + case EF_MAPLE_FALLS: + case EF_MAGICAL_FEATHER: + case EF_MERMAID_LONGING: + case EF_GIFT_OF_SNOW: + case EF_TIME_ACCESSORY: this->unknown_00C8 = 1; break; default: @@ -5620,132 +5620,132 @@ void CEZ2STRScreenEffect::Open() { } switch (this->id) { - case 0x3E6: - case 0x442: - case 0x45F: - case 0x470: - case 0x473: - case 0x4C5: - case 0x4DC: - case 0x4DD: - case 0x4DE: - case 0x4DF: - case 0x4E0: - case 0x4E1: - case 0x4E2: - case 0x4E3: - case 0x4E4: - case 0x4E5: - case 0x4EE: - case 0x4EF: - case 0x4F0: - case 0x4F1: + case EF_RED_CROSS: + case EF_MARKING_USE_CHANGEMONSTER: + case EF_BITE_SCAR: + case EF_RL_ANTI_MATERIAL_BLAST: + case EF_H_MINE: + case EF_FLASH_KICK: + case EF_TEST_EFFECT_00: + case EF_TEST_EFFECT_01: + case EF_TEST_EFFECT_02: + case EF_TEST_EFFECT_03: + case EF_TEST_EFFECT_04: + case EF_TEST_EFFECT_05: + case EF_TEST_EFFECT_06: + case EF_TEST_EFFECT_07: + case EF_TEST_EFFECT_08: + case EF_TEST_EFFECT_09: + case EF_TETRA_VORTEX_BALL_1: + case EF_TETRA_VORTEX_BALL_2: + case EF_TETRA_VORTEX_BALL_3: + case EF_TETRA_VORTEX_BALL_4: particle->m_loop = true; break; - case 0x552: - case 0x584: - case 0x5A6: - case 0x607: - case 0x63F: - case 0x64B: - case 0x64C: - case 0x64D: - case 0x64E: - case 0x64F: - case 0x650: - case 0x676: - case 0x6AE: - case 0x6BE: - case 0x6BF: - case 0x6CD: - case 0x6D7: - case 0x6EB: - case 0x6F1: - case 0x701: - case 0x702: - case 0x703: - case 0x712: - case 0x719: - case 0x72F: - case 0x73C: - case 0x73D: - case 0x752: - case 0x756: - case 0x75A: - case 0x765: - case 0x766: - case 0x76C: - case 0x77F: - case 0x7AA: - case 0x7B7: - case 0x7BA: - case 0x7BD: - case 0x7BE: - case 0x7C1: - case 0x7C7: - case 0x7D2: - case 0x7EF: - case 0x7F9: - case 0x7FA: - case 0x803: - case 0x804: - case 0x807: - case 0x808: - case 0x80C: - case 0x81E: - case 0x81F: - case 0x84E: - case 0x851: - case 0x852: - case 0x876: - case 0x881: - case 0x886: - case 0x8A2: - case 0x8A3: - case 0x8AA: - case 0x8AB: - case 0x8B2: - case 0x8B3: - case 0x8BA: - case 0x8BB: - case 0x8DC: - case 0x8DD: - case 0x8DE: - case 0x8E1: - case 0x8E8: - case 0x8FE: - case 0x948: - case 0x949: - case 0x94A: - case 0x94B: - case 0x94C: - case 0x94D: - case 0x94F: - case 0x950: - case 0x951: - case 0x952: - case 0x953: - case 0x954: - case 0x955: - case 0x963: + case EF_QSCARABA_VISUAL: + case EF_NEW_RANGEDATTACK: + case EF_NEW_JACKFROST_CAST: + case EF_MINEFFECT_JACKFROST_CAST: + case EF_TETRA_VORTEX_CORE_REUSE: + case EF_BLUE_WAVE_1: + case EF_BLUE_WAVE_2: + case EF_BLUE_WAVE_3: + case EF_RED_WAVE_1: + case EF_RED_WAVE_2: + case EF_RED_WAVE_3: + case EF_NEW_EPICLESIS: + case EF_UNK_1710: + case EF_DRAGONIC_AURA_BUFF: + case EF_DRAGONIC_AURA_BUFF_BOTTOM: + case EF_DEADLY_PROJECTION: + case EF_UNK_1751: + case EF_MYSTERY_ILLUSION: + case EF_TORNADO_STORM_BOTTOM: + case EF_VIOLENT_QUAKE_BOTTOM: + case EF_ALL_BLOOM: + case EF_ALL_BLOOM_BOTTOM: + case EF_MEDIALE_VOTUM_LOOP: + case EF_NEW_D_MACHINE: + case EF_UNK_1839: + case EF_COMPETENTIA_LOOP: + case EF_COMPETENTIA_LOOP_BOTTOM: + case EF_DEEP_BLIND_TRAP: + case EF_SWIFT_TRAP: + case EF_SOLID_TRAP: + case EF_STRATUM_TREMOR: + case EF_STRATUM_TREMOR_BOTTOM: + case EF_WIND_SIGN_LOOP: + case EF_FLAME_TRAP: + case EF_UNK_1962: + case EF_FIRST_FAITH_POWER: + case EF_JUDGE: + case EF_JUDGE_AURA: + case EF_THIRD_EXOR_FLAME: + case EF_THIRD_EXOR_FLAME_AURA: + case EF_OLEUM_SANCTUM_LOOP: + case EF_UNK_2002: + case EF_VENOM_SWAMP_BOTTOM: + case EF_LIGHTNING_LAND: + case EF_LIGHTNING_LAND_BOTTOM: + case EF_FIRST_BRAND: + case EF_FIRST_BRAND_AURA: + case EF_CONFLAGRATION: + case EF_CONFLAGRATION_BOTTOM: + case EF_SOUND_BLEND: + case EF_SECOND_FAITH: + case EF_SECOND_FAITH_AURA: + case EF_ABYSS_SLAYER: + case EF_ABYSS_SQUARE: + case EF_ABYSS_SQUARE_BOTTOM: + case EF_UNK_2166: + case EF_UNK_2177: + case EF_UNK_2182: + case EF_ACIDIFIED_ZONE_FIRE_LOOP: + case EF_ACIDIFIED_ZONE_FIRE_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_LOOP: + case EF_ACIDIFIED_ZONE_WATER_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_LOOP: + case EF_ACIDIFIED_ZONE_WIND_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_LOOP: + case EF_ACIDIFIED_ZONE_GROUND_LOOP_BOTTOM: + case EF_STATE_LIGHTNINGSTRIKE: + case EF_STATE_CONFLAGRATION: + case EF_STATE_FROSTBITE: + case EF_STATE_CRYSTALLIZATION: + case EF_UNK_2280: + case EF_NPC_KILLING_AURA: + case EF_NPC_20TH_CRYSTAL_S: + case EF_NPC_20TH_CRYSTAL_M: + case EF_NPC_20TH_CRYSTAL_L: + case EF_NPC_GATE_GREEN_1: + case EF_NPC_GATE_PURPLE_1: + case EF_NPC_GATE_RED_1: + case EF_NPC_GATE_GREEN_2: + case EF_NPC_GATE_PURPLE_2: + case EF_NPC_GATE_RED_2: + case EF_NPC_GATE_GREEN_3: + case EF_NPC_GATE_PURPLE_3: + case EF_NPC_GATE_RED_3: + case EF_NPC_GATE_SKYBLUE: + case EF_NEW_BATTLE_W_HIT_2: this->retained = 1; particle->m_loop = true; break; - case 0x6EC: + case EF_MYSTERY_ILLUSION_BOTTOM: this->AddEvent(0, "effect\\AG_MYSTERY_ILLUSION.wav", 0, 0); this->retained = 1; particle->m_loop = true; break; - case 0x6F0: + case EF_TORNADO_STORM: this->AddEvent(0, "effect\\AG_TORNADO_STORM.wav", 0, 0); this->retained = 1; particle->m_loop = true; break; - case 0x710: + case EF_MEDIALE_VOTUM: this->AddEvent(0, "effect\\CD_MEDIALE_VOTUM.wav", 0, 0); break; @@ -5773,69 +5773,69 @@ void CEZ2STRScreenEffect::Open() { // FUNCTION: fn_19040 void CEZ2STRScreenEffect::InitEvents() { switch (this->id) { - case 0xCC: - case 0xCD: - case 0xCE: - case 0xCF: - case 0xD2: + case EF_POTION1: + case EF_POTION2: + case EF_POTION3: + case EF_POTION4: + case EF_POTION7: this->AddEvent(0, "_heal_effect.wav", 0, 0); break; - case 0xD0: - case 0xD1: - case 0xD3: + case EF_POTION5: + case EF_POTION6: + case EF_POTION8: this->AddEvent(0, "effect\\흡기.wav", 0, 0); break; - case 0x426: + case EF_HAMMER_OF_GOD: this->AddEvent(0, "effect\\RL_HAMMER_OF_GOD.wav", 0, 0); break; - case 0x44E: + case EF_SU_TUNABELLY: this->AddEvent(0, "effect\\su_tunabelly.wav", 0, 0); break; - case 0x44D: + case EF_SU_SV_STEMSPEAR: this->AddEvent(0, "effect\\su_stemspear.wav", 0, 0); break; - case 0x44F: + case EF_SU_SCRATCH: this->AddEvent(0, "effect\\su_scratch.wav", 0, 0); break; - case 0x453: + case EF_SU_SCAROFTAROU: this->AddEvent(0, "effect\\su_scaroftarou.wav", 0, 0); break; - case 0x455: + case EF_SU_PICKYPECK: this->AddEvent(0, "effect\\su_pickypeck.wav", 0, 0); break; - case 0x45C: + case EF_SU_BUNCHOFSHRIMP: this->AddEvent(0, "effect\\su_brunchofshrimp.wav", 0, 0); break; - case 0x463: + case EF_SU_GROOMING: this->AddEvent(0, "effect\\su_grooming.wav", 0, 0); break; - case 0x464: + case EF_SU_CHATTERING: this->AddEvent(0, "effect\\su_chattering.wav", 0, 0); break; - case 0x466: + case EF_SU_HISS: this->AddEvent(0, "effect\\su_hiss.wav", 0, 0); break; - case 0x467: + case EF_SU_POWEROFFLOCK: this->AddEvent(0, "effect\\su_powerofflock.wav", 0, 0); break; - case 0x469: + case EF_SU_SVG_SPIRIT: this->AddEvent(0, "effect\\su_svg_spirit.wav", 0, 0); break; - case 0x489: { + case EF_QUAGMIRE_VISUAL: { int random = rand() % 12; random = random < 0 ? 0 : random; if (random == 0) { @@ -5844,7 +5844,7 @@ void CEZ2STRScreenEffect::InitEvents() { break; } - case 0x48A: + case EF_LORD_OF_VERMILLION_VISUAL: this->AddEvent(0, "effect\\wizard_meteo.wav", 0, 0); this->AddEvent(0, "effect\\hunter_blastmine.wav", 0, 0); this->AddEvent(0, "effect\\hunter_blastmine.wav", 0xa, 0); @@ -5863,199 +5863,199 @@ void CEZ2STRScreenEffect::InitEvents() { this->AddEvent(1, nullptr, 0xfa, 0); break; - case 0x48B: + case EF_METEOR_STORM_VISUAL: this->AddEvent(0, "effect\\wizard_meteor.wav", 0, 0); this->AddEvent(1, nullptr, 0x28, 0); break; - case 0x58F: - case 0x592: - case 0x5DC: - case 0x610: - case 0x6C7: - case 0x6D4: - case 0x6E2: - case 0x6EE: - case 0x6F3: - case 0x705: - case 0x70A: - case 0x740: - case 0x763: - case 0x7E6: - case 0x7F1: - case 0x7FC: - case 0x85A: + case EF_NEW_CART_CANNON_CAST_BOTTOM: + case EF_NEW_RAYOFGENESIS_CAST_BOTTOM: + case EF_MINEFFECT_CART_CANNON_CAST_BOTTOM: + case EF_NEW_HELLINFERNO_CAST_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE_CAST_BOTTOM: + case EF_ROCKDOWN_CAST_BOTTOM: + case EF_VIOLENT_QUAKE_CAST_BOTTOM: + case EF_MYSTERY_ILLUSION_CAST_BOTTOM: + case EF_TORNADO_STORM_CAST_BOTTOM: + case EF_ALL_BLOOM_CAST_BOTTOM: + case EF_CLIMAX_CAST: + case EF_CRYSTAL_IMPACT_CAST: + case EF_STRATUM_TREMOR_CAST_BOTTOM: + case EF_DILUVIO_CAST_BOTTOM: + case EF_VENOM_SWAMP_CAST_BOTTOM: + case EF_LIGHTNING_LAND_CAST_BOTTOM: + case EF_ELEMENTAL_BUSTER_CAST: this->AddEvent(0, "effect\\EF_BeginSpell.wav", 0, 0); this->particle->flags = 13; break; - case 0x554: - case 0x5D7: + case EF_NEW_AXETORNADO_BOTTOM: + case EF_MINEFFECT_AXETORNADO_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "ice_titan_attack.wav", 5, 0); break; - case 0x573: + case EF_NEW_FATAL_MENACE_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\EF_Bash.wav", 0, 0); this->AddEvent(0, "effect\\rog_intimidate.wav", 0x23, 0); break; - case 0x580: - case 0x5EF: + case EF_NEW_CANNON_SPEAR_BOTTOM: + case EF_MINEFFECT_CANNON_SPEAR_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\EF_hit2.wav", 0xa, 0); this->AddEvent(0, "effect\\EF_hit4.wav", 0x14, 0); break; - case 0x583: + case EF_NEW_CRITICALATTACK: this->AddEvent(0, "effect\\EF_hit2.wav", 0, 0); break; - case 0x590: + case EF_NEW_RAYOFGENESIS: this->AddEvent(0, "effect\\mon_맹룡과강.wav", 5, 0); this->AddEvent(0, "effect\\mon_맹룡과강.wav", 5, 0); this->AddEvent(0, "effect\\mon_맹룡과강.wav", 5, 0); break; - case 0x585: - case 0x5FE: + case EF_NEW_COMET: + case EF_MINEFFECT_COMET: this->AddEvent(0, "effect\\g크레이지위드.wav", 0, 0); break; - case 0x60A: - case 0x60B: - case 0x64B: - case 0x64C: - case 0x64D: - case 0x64E: - case 0x64F: - case 0x650: + case EF_NEW_POISONSMOKE_1: + case EF_NEW_POISONSMOKE_2: + case EF_BLUE_WAVE_1: + case EF_BLUE_WAVE_2: + case EF_BLUE_WAVE_3: + case EF_RED_WAVE_1: + case EF_RED_WAVE_2: + case EF_RED_WAVE_3: this->particle->flags = 5; break; - case 0x60D: + case EF_NEW_FEARBREEZE: this->AddEvent(0, "effect\\EF_Bash.wav", 0, 0); break; - case 0x60E: + case EF_NEW_HELLINFERNO: this->AddEvent(0, "hell_in.wav", 0, 0); break; - case 0x615: + case EF_NEW_CLEARANCE: this->AddEvent(0, "effect\\샤프슈팅.wav", 0, 0); this->AddEvent(0, "effect\\흡기.wav", 0, 0); break; - case 0x619: + case EF_NEW_VARETYRSPEAR: this->AddEvent(0, "effect\\프레셔.wav", 3, 0); this->AddEvent(0, "effect\\S바레티르스피어.wav", 0x16, 0); this->AddEvent(1, nullptr, 0x16, 0); break; - case 0x61E: + case EF_NEW_CROSSIMPACT: this->AddEvent(0, "effect\\EF_StoneCurse.wav", 0, 0); break; - case 0x638: + case EF_NEW_SOULEXPANSION_HIT_BOTTOM: this->AddEvent(0, "effect\\매직 크래쉬.wav", 0, 0); this->particle->flags = 13; break; - case 0x647: - case 0x648: - case 0x907: - case 0x908: - case 0x90A: - case 0x90B: - case 0x90D: - case 0x90E: - case 0x95B: - case 0x95C: - case 0x95D: - case 0x95E: - case 0x95F: - case 0x975: - case 0x976: + case EF_GRADE_ENCHANT_INTRO: + case EF_GRADE_ENCHANT_SUCCESS: + case EF_UI_ENCHANT_INTRO_YELLOW: + case EF_UI_ENCHANT_SUCCESS: + case EF_UI_ENCHANT_INTRO_BLUE: + case EF_UI_LEVELUP_SUCCESS: + case EF_UI_ENCHANT_INTRO_GREEN: + case EF_UI_RESET_SUCCESS: + case EF_RUNE_ACTIVE_FINISH: + case EF_RUNESET_ACTIVE: + case EF_RUNESET_UPGRADE_SUCCESS: + case EF_RUNESET_UPGRADE_FAIL: + case EF_RUNE_BROKEN: + case EF_RUNE_SLOT_SMALL: + case EF_RUNE_SLOT_BIG: this->particle->flags = 517; break; - case 0x649: + case EF_GRADE_ENCHANT_FAILED: this->particle->flags = 517; this->AddEvent(1, nullptr, 0xb4, 0); break; - case 0x666: + case EF_NEW_CHAINLIGHTNING_TARGET: this->AddEvent(0, "chainlight.wav", 0, 0); break; - case 0x66C: + case EF_NEW_SOUNDOFDESTRUCTION_TARGET: this->AddEvent(0, "effect\\priest_lexaeterna.wav", 0, 0); break; - case 0x671: - case 0x6CB: - case 0x6CF: - case 0x6DA: - case 0x6DE: - case 0x6EA: - case 0x6F7: - case 0x70E: + case EF_NEW_AIMEDBOLT_CAST_BOTTOM: + case EF_DEADLY_PROJECTION_CAST_BOTTOM: + case EF_SOUL_VC_STRIKE_CAST_BOTTOM: + case EF_RAIN_OF_CRYSTAL_BOTTOM: + case EF_CRIMSON_ARROW_CAST_BOTTOM: + case EF_ASTRAL_STRIKE_CAST_BOTTOM: + case EF_FROZEN_SLASH_CAST_BOTTOM: + case EF_FLORAL_FLARE_ROAD_CAST_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\EF_BeginSpell.wav", 0, 0); break; - case 0x676: + case EF_NEW_EPICLESIS: this->AddEvent(0, "effect\\EF_GlassWall.wav", 0x1e, 0); break; - case 0x67E: + case EF_UNK_1662: this->particle->flags = 13; this->AddEvent(0, "effect\\DK_HACKANDSLASHER.wav", 0, 0); break; - case 0x69A: + case EF_NEW_WINDCUTTER: this->AddEvent(0, "effect\\wl_siennaexecrate.wav", 0, 0); break; - case 0x6A6: - case 0x75D: + case EF_NEW_POWERSWING_BOTTOM: + case EF_NEW_RUSH_QUAKE_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\wizard_fire_pillar_b.wav", 0xf, 0); this->AddEvent(1, nullptr, 0x14, 0); break; - case 0x6AA: + case EF_NEW_EARTHDRIVE: this->AddEvent(0, "effect\\wizard_earthspike.wav", 0x14, 0); this->AddEvent(1, nullptr, 0x14, 0); break; - case 0x6B0: + case EF_UNK_1712: this->particle->flags = 13; this->AddEvent(0, "effect\\DK_SERVANT_W_SIGN.wav", 0x28, 0); break; - case 0x6B2: + case EF_UNK_1714: this->AddEvent(0, "effect\\DK_SERVANT_W_PHANTOM.wav", 0, 0); break; - case 0x6BA: + case EF_DRAGONIC_AURA: this->AddEvent(0, "effect\\DK_DRAGONIC_AURA1.wav", 0, 0); break; - case 0x6BC: + case EF_DRAGONIC_AURA_HIT: this->AddEvent(0, "effect\\DK_DRAGONIC_AURA2.wav", 1, 0); break; - case 0x6C0: + case EF_UNK_1728: this->AddEvent(0, "effect\\DK_MADNESS_CRUSHER.wav", 1, 0); break; - case 0x6C4: + case EF_DESTRUCTIVE_HURRICANE: this->AddEvent(0, "effect\\AG_DESTRUCTIVE_HURRICANE.wav", 0, 0); break; - case 0x6CC: { + case EF_DEADLY_PROJECTION_HIT: { CGameActor* actor = static_cast(FindRenderObject(this->actor)); if (actor && actor->bodyState == 0 && actor->unknown_02C4 == 0) { this->AddEvent(0, "effect\\AG_DEADLY_PROJECTION.wav", 0, 0); @@ -6063,163 +6063,163 @@ void CEZ2STRScreenEffect::InitEvents() { break; } - case 0x6D1: + case EF_ROCKDOWN: this->AddEvent(0, "effect\\AG_ROCK_DOWN.wav", 0, 0); break; - case 0x6E7: + case EF_UNK_1767: this->AddEvent(0, "effect\\DK_CHARGINGPIERCE1.wav", 0, 0); break; - case 0x6F5: + case EF_FROZEN_SLASH: this->AddEvent(0, "effect\\AG_FROZEN_SLASH.wav", 0, 0); break; - case 0x6D6: + case EF_UNK_1750: this->AddEvent(0, "effect\\DK_VIGOR.wav", 0, 0); break; - case 0x6B7: + case EF_UNK_1719: this->AddEvent(0, "effect\\DK_SERVANT_W_DEMOL.wav", 0, 0); break; - case 0x686: - case 0x687: - case 0x688: - case 0x689: - case 0x68A: + case EF_UNK_1670: + case EF_UNK_1671: + case EF_UNK_1672: + case EF_UNK_1673: + case EF_UNK_1674: for (int i = 0; i <= this->id - 0x686; ++i) { this->AddEvent(0, FormatOwnedString("effect\\DK_STORMSLASH%d.wav", rand() % 4 + 1).c_str(), i * 15, 0); } break; - case 0x76F: + case EF_ABR_MOTHER_01: this->particle->flags = 13; this->AddEvent(0, "effect\\MT_ABR_NET_REPAIR.wav", 0, 0); break; - case 0x770: + case EF_ABR_MOTHER_02: this->particle->flags = 13; this->AddEvent(0, "effect\\MT_ABR_NET_SUPPORT.wav", 0, 0); break; - case 0x71C: + case EF_NEW_D_MACHINE_START: this->AddEvent(0, "effect\\MT_D_MACHINE.wav", 0, 0); this->particle->flags = 13; break; - case 0x794: + case EF_NEW_AXE_STOMP_BOTTOM: this->particle->flags = 13; this->AddEvent(1, nullptr, 0x14, 0); break; - case 0x824: + case EF_SECOND_FLAME_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\wizard_fire_pillar_b.wav", 0xf, 0); this->AddEvent(1, nullptr, 0x28, 0); break; - case 0x721: + case EF_ARBITRIUM_BOTTOM: this->AddEvent(0, "effect\\CD_ARBITRIUM.wav", 0, 0); this->particle->flags = 13; break; - case 0x788: + case EF_NEW_DILECTIO_HEAL_TARGET_BOTTOM: this->AddEvent(0, "effect\\CD_DILECTIO_HEAL.wav", 0, 0); this->particle->flags = 13; break; - case 0x73A: + case EF_COMPETENTIA_BOTTOM: this->AddEvent(0, "effect\\CD_COMPETENTIA.wav", 0, 0); this->particle->flags = 13; break; - case 0x73E: + case EF_CRYSTAL_IMPACT: this->AddEvent(0, "effect\\AG_CRYSTAL_IMPACT.wav", 0, 0); break; - case 0x7A9: - case 0x7CA: - case 0x7D5: - case 0x7DB: - case 0x7F6: - case 0x835: - case 0x83A: - case 0x858: - case 0x87B: - case 0x87E: - case 0x883: - case 0x8BD: - case 0x8C8: - case 0x8D0: + case EF_UNK_1961: + case EF_INCREASING_ACTIVITY_CAST_BOTTOM: + case EF_ACTIVITY_BURN_CAST_BOTTOM: + case EF_SERPENS_CAST_BOTTOM: + case EF_ARDOR_CAST_BOTTOM: + case EF_PROCELLA_CAST_BOTTOM: + case EF_TERREMOTUS_CAST_BOTTOM: + case EF_TERRA_DRIVE_CAST_BOTTOM: + case EF_UNK_2171: + case EF_UNK_2174: + case EF_UNK_2179: + case EF_HELLTREE_CAST_BOTTOM: + case EF_WOODEN_WARRIOR_CAST_BOTTOM: + case EF_WOODEN_FAIRY_CAST_BOTTOM: this->particle->flags = 13; [[fallthrough]]; - case 0x625: - case 0x62A: - case 0x62D: - case 0x633: - case 0x654: - case 0x65D: - case 0x663: - case 0x669: - case 0x66A: - case 0x681: - case 0x683: - case 0x685: - case 0x711: - case 0x714: - case 0x716: - case 0x718: - case 0x71E: - case 0x723: - case 0x745: - case 0x746: - case 0x74C: - case 0x758: - case 0x760: - case 0x785: - case 0x79E: - case 0x7A6: - case 0x7B1: - case 0x7B4: - case 0x7B8: - case 0x7BB: - case 0x7BF: - case 0x86F: - case 0x877: - case 0x884: - case 0x888: - case 0x891: - case 0x896: + case EF_NEW_GATEOFHELL_CAST: + case EF_NEW_HOWLINGOFLION_CAST: + case EF_NEW_METALLICSOUND: + case EF_NEW_SOULEXPANSION_CAST: + case EF_NEW_WALLOFTHORN_CAST: + case EF_NEW_JUDEX_CAST_LOOP: + case EF_NEW_CHAINLIGHTNING_CAST: + case EF_NEW_MANDRAGORA_CAST: + case EF_NEW_SOUNDOFDESTRUCTION_CAST: + case EF_NEW_SPELLFIST_FIRE: + case EF_NEW_SPELLFIST_WATER: + case EF_NEW_SPELLFIST_WIND: + case EF_MEDIALE_VOTUM_CAST: + case EF_ARGUTUS_VITA_CAST: + case EF_ARGUTUS_TELUM_CAST: + case EF_PRESENS_ACIES_CAST: + case EF_ARBITRIUM_CAST: + case EF_UNK_1827: + case EF_RELIGIO_CAST: + case EF_UNK_1862: + case EF_UNK_1868: + case EF_SOLID_TRAP_CAST: + case EF_BENEDICTUM_CAST: + case EF_NEW_DILECTIO_HEAL_CAST: + case EF_UNK_1950: + case EF_PNEUMATICUS_PROCELLA_CAST: + case EF_HAWK_BOOMERANG_CAST: + case EF_GALE_STORM_CAST: + case EF_FIRST_FAITH_POWER_CAST: + case EF_JUDGE_CAST: + case EF_THIRD_EXOR_FLAME_CAST: + case EF_UNK_2159: + case EF_UNK_2167: + case EF_UNK_2180: + case EF_SHIELD_SHOOTING_CAST: + case EF_UNK_2193: + case EF_UNK_2198: this->AddEvent(0, "effect\\EF_BeginSpell.wav", 0, 0); break; - case 0x82E: + case EF_MASSIVE_FLAME_BLASTER: this->AddEvent(0, "effect\\IQ_MASSIVE_F_BLASTER.wav", 0, 0); this->particle->flags = 13; break; - case 0x826: + case EF_THIRD_FLAME_BOMB_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\IQ_THIRD_FLAME_BOMB.wav", 0, 0); break; - case 0x841: + case EF_THIRD_PUNISH_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\IQ_THIRD_PUNISH.wav", 0, 0); break; - case 0x7D8: + case EF_UNK_2008: this->particle->flags = 13; this->AddEvent(0, "effect\\TR_KVASIR_SONATA.wav", 0, 0); break; - case 0x765: + case EF_STRATUM_TREMOR: this->AddEvent(0, "effect\\AG_STRANTUM_TREMOR1.wav", 0, 0); [[fallthrough]]; - case 0x766: + case EF_STRATUM_TREMOR_BOTTOM: this->particle->flags = 13; switch (this->unknown_00B0) { case 1: @@ -6234,7 +6234,7 @@ void CEZ2STRScreenEffect::InitEvents() { } break; - case 0x7A1: { + case EF_UNK_1953: { float fromReciprocalDepth = 0.0f; float toReciprocalDepth = 0.0f; float fromX; @@ -6257,21 +6257,21 @@ void CEZ2STRScreenEffect::InitEvents() { break; } - case 0x7AC: + case EF_SINCERE_FAITH: this->particle->flags = 13; [[fallthrough]]; - case 0x7C3: - case 0x7CF: + case EF_POWERFUL_FAITH: + case EF_FIRM_FAITH: this->AddEvent(0, "effect\\IQ_FAITH.wav", 0, 0); break; - case 0x7C8: + case EF_INCREASING_ACTIVITY: this->particle->m_repeat = 2; this->AddEvent(0, "effect\\EM_INCREASING_ACTIVITY.wav", 0, 0); break; - case 0x7E2: { + case EF_CHAIN_REACTION_SHOT: { float fromReciprocalDepth = 0.0f; float toReciprocalDepth = 0.0f; float fromX; @@ -6294,95 +6294,95 @@ void CEZ2STRScreenEffect::InitEvents() { break; } - case 0x7D1: + case EF_UNK_2001: this->particle->flags = 13; [[fallthrough]]; - case 0x7D7: - case 0x7DE: - case 0x7FE: - case 0x80D: - case 0x812: - case 0x815: - case 0x817: - case 0x81C: - case 0x829: - case 0x845: - case 0x848: - case 0x84B: - case 0x84D: - case 0x84F: - case 0x86B: - case 0x873: - case 0x88B: - case 0x89C: - case 0x8A4: - case 0x8AC: - case 0x8B4: - case 0x8C2: + case EF_UNK_2007: + case EF_CHAIN_REACTION_SHOT_CAST: + case EF_UNK_2046: + case EF_SOUND_BLEND_CAST: + case EF_UNK_2066: + case EF_UNK_2069: + case EF_UNK_2071: + case EF_NIFLHEIM_CAST: + case EF_ABYSS_STRIKE_CAST: + case EF_UNK_2117: + case EF_UNK_2120: + case EF_MUSICAL_INTERLUDE_CAST: + case EF_UNK_2125: + case EF_ABYSS_SLAYER_CAST: + case EF_UNLUCKY_RUSH_CAST: + case EF_ADVANCED_PROTECTION_CAST: + case EF_THE_W_PROTECTION_CAST: + case EF_ACIDIFIED_ZONE_FIRE_CAST: + case EF_ACIDIFIED_ZONE_WATER_CAST: + case EF_ACIDIFIED_ZONE_WIND_CAST: + case EF_ACIDIFIED_ZONE_GROUND_CAST: + case EF_RESEARCH_REPORT_CAST: this->AddEvent(0, "effect\\ef_beginspell.wav", 0, 0); break; - case 0x7D9: + case EF_SERPENS_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\EM_SUMMON_ELEMENTAL_SERPENS_2.wav", 0, 0); break; - case 0x744: + case EF_RELIGIO: this->AddEvent(0, "effect\\CD_RELIGIO.wav", 0, 0); break; - case 0x75F: + case EF_BENEDICTUM: this->AddEvent(0, "effect\\CD_BENEDICTUM.wav", 0, 0); break; - case 0x713: - case 0x715: + case EF_ARGUTUS_VITA: + case EF_ARGUTUS_TELUM: this->AddEvent(0, "effect\\CD_ARGUTUS_VITA.wav", 0, 0); break; - case 0x737: + case EF_EFFLIGO_BOTTOM: this->AddEvent(0, "effect\\CD_EFFLIGO.wav", 0, 0); break; - case 0x717: + case EF_PRESENS_ACIES: this->AddEvent(0, "effect\\CD_PRESENS_ACIES.wav", 0, 0); break; - case 0x789: + case EF_NEW_PRAMEN_BOTTOM: this->AddEvent(0, "effect\\CD_FRAMEN.wav", 0, 0); break; - case 0x7E3: + case EF_DILUVIO_ICE: this->AddEvent(0, "effect\\EM_SUMMON_ELEMENTAL_DILUVIO_2.wav", 0, 0); break; - case 0x7EB: + case EF_DIAMOND_STORM_BOTTOM: this->particle->life = static_cast(EffectLifetime(0x7EB)) / 60.0f; this->particle->flags = 13; this->AddEvent(0, "effect\\EM_DIAMOND_STORM.wav", 0, 0); break; - case 0x7ED: - case 0x80A: + case EF_DIAMOND_STORM_CAST_BOTTOM: + case EF_CONFLAGRATION_CAST_BOTTOM: this->AddEvent(0, "effect\\ef_beginspell.wav", 0, 0); this->particle->flags = 13; break; - case 0x7EF: + case EF_VENOM_SWAMP_BOTTOM: this->particle->flags = 13; this->AddEvent(0, "effect\\EM_VENOM_SWAMP.wav", 0, 0); break; - case 0x7F3: + case EF_ARDOR: this->AddEvent(0, "effect\\EM_SUMMON_ELEMENTAL_ARDOR_2.wav", 0, 0); break; - case 0x7F9: + case EF_LIGHTNING_LAND: this->AddEvent(0, "effect\\EM_LIGHTNING_LAND.wav", 0, 0); break; - case 0x802: { + case EF_UNK_2050: { float fromReciprocalDepth = 0.0f; float toReciprocalDepth = 0.0f; float fromX; @@ -6407,530 +6407,530 @@ void CEZ2STRScreenEffect::InitEvents() { break; } - case 0x807: + case EF_CONFLAGRATION: this->AddEvent(0, "effect\\EM_CONFLAGRATION.wav", 0, 0); break; - case 0x811: + case EF_UNK_2065: this->particle->flags = 13; this->AddEvent(0, "effect\\TR_JAWAII_SERENADE.wav", 0, 0); break; - case 0x832: + case EF_PROCELLA: this->AddEvent(0, "effect\\EM_SUMMON_ELEMENTAL_PROCELLA_2.wav", 0, 0); break; - case 0x838: + case EF_TERREMOTUS: this->AddEvent(0, "effect\\EM_SUMMON_ELEMENTAL_TERREMOTUS_2.wav", 0, 0); break; - case 0x83E: + case EF_FROM_THE_ABYSS: this->particle->flags = 13; this->AddEvent(0, "effect\\ABC_FROM_THE_ABYSS.wav", 0, 0); break; - case 0x771: + case EF_HAWK_RUSH: this->AddEvent(0, "effect\\WH_HAWKRUSH.wav", 0, 0); break; - case 0x76B: + case EF_WIND_SIGN: this->AddEvent(0, "effect\\WH_WIND_SIGN.wav", 0, 0); break; - case 0x7A8: + case EF_UNK_1960: this->AddEvent(0, "effect\\WH_CALAMITYGALE.wav", 0, 0); break; - case 0x752: - case 0x756: - case 0x75A: - case 0x77F: + case EF_DEEP_BLIND_TRAP: + case EF_SWIFT_TRAP: + case EF_SOLID_TRAP: + case EF_FLAME_TRAP: this->AddEvent(0, "effect\\WH_TRAP.wav", 0, 0); break; - case 0x753: + case EF_DEEP_BLIND_TRAP_HIT: this->AddEvent(0, "effect\\WH_DEEP_BLIND_TRAP_HIT.wav", 0, 0); break; - case 0x75B: + case EF_SOLID_TRAP_HIT: this->AddEvent(0, "effect\\WH_SOLID_TRAP_HIT.wav", 0, 0); break; - case 0x757: + case EF_SWIFT_TRAP_HIT: this->AddEvent(0, "effect\\WH_SWIFT_TRAP_HIT.wav", 0, 0); break; - case 0x782: + case EF_FLAME_TRAP_HIT: this->AddEvent(0, "effect\\WH_FLAMETRAP_HIT.wav", 0, 0); break; - case 0x855: + case EF_TERRA_DRIVE: this->AddEvent(0, "effect\\EM_TERRA_DRIVE.wav", 0, 0); break; - case 0x7A2: + case EF_UNK_1954: this->AddEvent(0, "effect\\SHC_SHADOW_STAB.wav", 0, 0); break; - case 0x77A: + case EF_ETERNAL_SLASH_HIT_2: this->AddEvent(0, "effect\\SHC_ETERNAL_SLASH.wav", 0, 0); break; - case 0x76A: + case EF_UNK_1898: this->AddEvent(0, "effect\\SHC_IMPACT_CRATER.wav", 0, 0); break; - case 0x748: + case EF_FATAL_SHADOW_CROW: this->AddEvent(0, "effect\\SHC_FATAL_SHADOW_CROW.wav", 0, 0); break; - case 0x78D: + case EF_NEW_POTENT_VENOM: this->AddEvent(0, "effect\\SHC_POTENT_VENOM.wav", 0, 0); break; - case 0x795: + case EF_NEW_AXE_STOMP: this->AddEvent(0, "effect\\MT_AXE_STOMP.wav", 0, 0); break; - case 0x75E: + case EF_NEW_RUSH_QUAKE_HIT: this->AddEvent(0, "effect\\MT_RUSH_QUAKE.wav", 0, 0); break; - case 0x8CC: + case EF_WOODEN_WARRIOR_THROWROCK: this->particle->m_angle = static_cast(ScreenAngle(*reinterpret_cast(this->position), *reinterpret_cast(this->sourcePosition)) + 180.0); this->AddEvent(0, "effect\\BO_THROWROCK.wav", 0, 0); break; - case 0x8CA: + case EF_WOODEN_WARRIOR_ATTACK: this->particle->m_angle = static_cast(ScreenAngle(*reinterpret_cast(this->position), *reinterpret_cast(this->sourcePosition)) + 180.0); this->AddEvent(0, "effect\\BO_WOODEN_ATTACK.wav", 0, 0); break; - case 0x801: + case EF_UNK_2049: this->AddEvent(0, "effect\\TR_ROSEBLOSSOM_ROSE.wav", 0, 0); break; - case 0x80C: + case EF_SOUND_BLEND: this->AddEvent(0, "effect\\TR_SOUNDBLEND_SHOT.wav", 0, 0); break; - case 0x80F: + case EF_SOUND_BLEND_RED: this->AddEvent(0, "effect\\TR_SOUNDBLEND_HIT.wav", 0, 0); break; - case 0x810: + case EF_METALLIC_FURY: this->AddEvent(0, "effect\\TR_METALIC_FURY.wav", 0, 0); break; - case 0x844: + case EF_UNK_2116: this->AddEvent(0, "effect\\TR_GEF_NOCTURN.wav", 0, 0); break; - case 0x847: + case EF_UNK_2119: this->AddEvent(0, "effect\\TR_ROKI_CAPRICCIO.wav", 0, 0); break; - case 0x84C: + case EF_UNK_2124: this->AddEvent(0, "effect\\TR_AIN_RHAPSODY.wav", 0, 0); break; - case 0x84A: + case EF_MUSICAL_INTERLUDE: this->AddEvent(0, "effect\\TR_MUSICAL_INTERLUDE.wav", 0, 0); break; - case 0x81B: + case EF_NIFLHEIM: this->AddEvent(0, "effect\\TR_NIPELHEIM_REQUIEM.wav", 0, 0); break; - case 0x814: + case EF_UNK_2068: this->AddEvent(0, "effect\\TR_PRON_MARCH.wav", 0, 0); break; - case 0x7D0: + case EF_UNK_2000: this->AddEvent(0, "effect\\TR_MYSTIC_SYMPHONY.wav", 0, 0); break; - case 0x7C4: + case EF_OLEUM_SANCTUM: this->AddEvent(0, "effect\\IQ_OLEUM_SANCTUM.wav", 0x32, 0); break; - case 0x7CB: + case EF_EXPLOSION_BLASTER: this->AddEvent(0, "effect\\IQ_EXPOSION_BLASTER.wav", 0, 0); break; - case 0x7B9: + case EF_FIRST_FAITH_POWER_START: this->AddEvent(0, "effect\\IQ_FIRST_FAITH_POWER.wav", 0, 0); break; - case 0x7BC: + case EF_JUDGE_START: this->AddEvent(0, "effect\\IQ_JUDGE.wav", 0, 0); break; - case 0x7C0: + case EF_THIRD_EXOR_FLAME_START: this->AddEvent(0, "effect\\IQ_THIRD_EXOR_FLAME.wav", 0, 0); break; - case 0x806: + case EF_FIRST_BRAND_START: this->AddEvent(0, "effect\\IQ_FIRST_BRAND.wav", 0, 0); break; - case 0x81E: + case EF_SECOND_FAITH: this->AddEvent(0, "effect\\IQ_SECOND_FAITH.wav", 0x14, 0); break; - case 0x823: + case EF_SECOND_FLAME: this->AddEvent(0, "effect\\IQ_SECOND_FLAME.wav", 0, 0); break; - case 0x831: + case EF_THIRD_CONSECRATION: this->AddEvent(0, "effect\\IQ_THIRD_CONSECRATION.wav", 0, 0); break; - case 0x88A: + case EF_THE_W_PROTECTION: this->AddEvent(0, "apocalips_attack.wav", 0, 0); break; - case 0x871: + case EF_ADVANCED_PROTECTION: this->AddEvent(0, "effect\\BO_ADVANCE_PROTECTION.wav", 0, 0); break; - case 0x8D1: + case EF_WOODEN_FAIRY_DUSTY: this->AddEvent(0, "effect\\BO_FAIRY_DUSTY.wav", 0, 0); break; - case 0x8C1: + case EF_RESEARCH_REPORT: this->AddEvent(0, "effect\\BO_RESEARCHREPORT.wav", 0, 0); break; - case 0x8BF: + case EF_HELLTREE_HOWLING: this->AddEvent(0, "effect\\BO_HELL_HOWLING.wav", 0, 0); break; - case 0x7AE: + case EF_ABYSS_DAGGER: this->AddEvent(0, "effect\\ABC_ABYSS_DAGGER.wav", 0, 0); break; - case 0x827: + case EF_ABYSS_STRIKE: this->AddEvent(0, "effect\\ABC_ABYSS_STRIKE.wav", 0, 0); break; - case 0x854: + case EF_DEFT_STAB: this->AddEvent(0, "effect\\ABC_DEFT_STAB1.wav", 0, 0); break; - case 0x7E9: + case EF_SPELL_ENCHANTING: this->AddEvent(0, "effect\\EM_SPELL_ENCHANTING.wav", 0, 0); break; - case 0x7D3: + case EF_ACTIVITY_BURN: this->AddEvent(0, "effect\\EM_ACTIVITY_BURN.wav", 0, 0); break; - case 0x85B: + case EF_ELEMENTAL_BUSTER_FIRE: this->AddEvent(0, "effect\\EM_ELEMETAL_BUSTER_FIRE.wav", 0, 0); break; - case 0x864: + case EF_ELEMENTAL_BUSTER_WATER: this->AddEvent(0, "effect\\EM_ELEMETAL_BUSTER_WATER.wav", 0, 0); break; - case 0x861: + case EF_ELEMENTAL_BUSTER_POISON: this->AddEvent(0, "effect\\EM_ELEMETAL_BUSTER_POISON.wav", 0, 0); break; - case 0x85E: + case EF_ELEMENTAL_BUSTER_LAND: this->AddEvent(0, "effect\\EM_ELEMETAL_BUSTER_GROUND.wav", 0, 0); break; - case 0x867: + case EF_ELEMENTAL_BUSTER_WIND: this->AddEvent(0, "effect\\EM_ELEMETAL_BUSTER_WIND.wav", 0, 0); break; - case 0x8D6: + case EF_ARDOR_FLAMETECHNIC: this->AddEvent(0, "effect\\EF_FireArrow1.wav", 0, 0); this->AddEvent(1, nullptr, 0, 0); break; - case 0x8D4: + case EF_DILUVIO_COLD_FORCE: this->AddEvent(0, "effect\\EF_IceArrow1.wav", 0, 0); this->AddEvent(1, nullptr, 0, 0); break; - case 0x8D8: + case EF_PROCELLA_GRACE_BREEZE: this->AddEvent(0, "effect\\EF_LightBolt3.wav", 0, 0); this->AddEvent(1, nullptr, 0, 0); break; - case 0x8DA: + case EF_TERREMOTUS_EARTH_CARE: this->AddEvent(0, "effect\\wizard_earthspike.wav", 0, 0); this->AddEvent(1, nullptr, 0, 0); break; - case 0x8D2: + case EF_SERPENS_DEEP_POISONING: this->AddEvent(0, "effect\\ef_detoxication.wav", 0, 0); this->AddEvent(1, nullptr, 0, 0); break; - case 0x879: - case 0x87C: + case EF_UNK_2169: + case EF_UNK_2172: this->AddEvent(0, "effect\\IG_GUARD_STANCE.wav", 0, 0); break; - case 0x88E: + case EF_UNK_2190: this->AddEvent(0, "effect\\IG_GUARDIAN_SHIELD.wav", 0, 0); break; - case 0x894: + case EF_UNK_2196: this->AddEvent(0, "effect\\IG_REBOUND_SHIELD.wav", 0, 0); break; - case 0x898: + case EF_UNK_2200: this->AddEvent(0, "effect\\IG_ULTIMATE_SACRIFICE.wav", 0, 0); break; - case 0x885: + case EF_UNK_2181: this->AddEvent(0, "effect\\IG_HOLY_SHIELD1.wav", 0, 0); break; - case 0x886: + case EF_UNK_2182: this->AddEvent(0, "effect\\IG_HOLY_SHIELD2.wav", 0x22, 0); break; - case 0x87F: + case EF_UNK_2175: this->AddEvent(0, "effect\\IG_GRAND_JUDGEMENT.wav", 0, 0); break; - case 0x86D: + case EF_UNK_2157: this->AddEvent(0, "effect\\IG_OVERSLASH.wav", 0, 0); break; - case 0x909: - case 0x90C: - case 0x90F: + case EF_UI_ENCHANT_FAIL: + case EF_UI_LEVELUP_FAIL: + case EF_UI_RESET_FAIL: this->particle->flags = 0x205; this->AddEvent(1, nullptr, 0, 0); break; - case 0x943: + case EF_TETRA_VORTEX_WATER_SUB_2: this->AddEvent(0, "effect\\drop_effect_1.wav", 0, 0); break; - case 0x944: + case EF_TETRA_VORTEX_EARTH_SUB_2: this->AddEvent(0, "effect\\drop_effect_2.wav", 0, 0); break; - case 0x94E: + case EF_20TH_FIREWORK: this->AddEvent(0, "effect\\pokjuk_jap.wav", 0, 0); break; - case 0x94F: - case 0x950: - case 0x951: + case EF_NPC_GATE_GREEN_2: + case EF_NPC_GATE_PURPLE_2: + case EF_NPC_GATE_RED_2: this->particle->m_scale = 0.6f; break; - case 0x952: - case 0x953: - case 0x954: + case EF_NPC_GATE_GREEN_3: + case EF_NPC_GATE_PURPLE_3: + case EF_NPC_GATE_RED_3: this->particle->m_scale = 0.35f; break; - case 0x4E7: - case 0x4EB: - case 0x4F6: - case 0x4F7: - case 0x4F8: - case 0x4F9: - case 0x4FB: - case 0x4FD: - case 0x503: - case 0x504: - case 0x507: - case 0x509: - case 0x50A: - case 0x511: - case 0x51F: - case 0x521: - case 0x544: - case 0x54A: - case 0x54C: - case 0x54F: - case 0x551: - case 0x556: - case 0x558: - case 0x55A: - case 0x55C: - case 0x563: - case 0x569: - case 0x56B: - case 0x571: - case 0x575: - case 0x586: - case 0x587: - case 0x589: - case 0x595: - case 0x59C: - case 0x59D: - case 0x59E: - case 0x59F: - case 0x5A0: - case 0x5A2: - case 0x5AB: - case 0x5AC: - case 0x5AD: - case 0x5AF: - case 0x5B0: - case 0x5B4: - case 0x5B6: - case 0x5B8: - case 0x5CE: - case 0x5D1: - case 0x5D3: - case 0x5D5: - case 0x5D9: - case 0x5DA: - case 0x5DE: - case 0x5E0: - case 0x5E2: - case 0x5FF: - case 0x600: - case 0x602: - case 0x60C: - case 0x60F: - case 0x612: - case 0x616: - case 0x61A: - case 0x61C: - case 0x623: - case 0x629: - case 0x62B: - case 0x62E: - case 0x632: - case 0x634: - case 0x636: - case 0x63C: - case 0x63E: - case 0x655: - case 0x656: - case 0x659: - case 0x65C: - case 0x65E: - case 0x660: - case 0x662: - case 0x664: - case 0x665: - case 0x668: - case 0x66B: - case 0x675: - case 0x67B: - case 0x682: - case 0x684: - case 0x68C: - case 0x698: - case 0x69B: - case 0x69C: - case 0x6A0: - case 0x6A1: - case 0x6A8: - case 0x6AB: - case 0x6B3: - case 0x6B5: - case 0x6BB: - case 0x6BD: - case 0x6BF: - case 0x6C1: - case 0x6C3: - case 0x6C5: - case 0x6D2: - case 0x6E6: - case 0x6EC: - case 0x6F1: - case 0x701: - case 0x703: - case 0x70B: - case 0x71B: - case 0x71F: - case 0x73D: - case 0x741: - case 0x747: - case 0x768: - case 0x773: - case 0x774: - case 0x786: - case 0x78A: - case 0x790: - case 0x7B7: - case 0x7BA: - case 0x7BD: - case 0x7BE: - case 0x7C1: - case 0x7DF: - case 0x7E4: - case 0x7F4: - case 0x7FA: - case 0x7FF: - case 0x804: - case 0x808: - case 0x80E: - case 0x813: - case 0x816: - case 0x818: - case 0x81F: - case 0x828: - case 0x82A: - case 0x82C: - case 0x830: - case 0x833: - case 0x846: - case 0x849: - case 0x850: - case 0x852: - case 0x856: - case 0x85C: - case 0x85F: - case 0x862: - case 0x865: - case 0x868: - case 0x86E: - case 0x872: - case 0x874: - case 0x876: - case 0x878: - case 0x880: - case 0x88D: - case 0x890: - case 0x892: - case 0x895: - case 0x897: - case 0x899: - case 0x89D: - case 0x8A1: - case 0x8A3: - case 0x8A5: - case 0x8A9: - case 0x8AB: - case 0x8AD: - case 0x8B1: - case 0x8B3: - case 0x8B5: - case 0x8B9: - case 0x8BB: - case 0x8C3: - case 0x8D3: - case 0x8D5: - case 0x8D7: - case 0x8D9: - case 0x8DB: - case 0x8E7: - case 0x8E8: - case 0x8FE: - case 0x911: - case 0x914: - case 0x917: - case 0x91C: - case 0x91D: - case 0x923: - case 0x968: + case EF_NEW_METEORSTORM_BOTTOM: + case EF_NEW_ADORAMUS_BOTTOM: + case EF_TETRA_VORTEX_FIRE_GROUND: + case EF_TETRA_VORTEX_WATER_GROUND: + case EF_TETRA_VORTEX_WIND_GROUND: + case EF_TETRA_VORTEX_EARTH_GROUND: + case EF_NEW_CRIMSONROCK_BOTTOM: + case EF_TETRA_VORTEX_CORE_GROUND: + case EF_NEW_DIAMONDDUST_BOTTOM: + case EF_NEW_DIAMONDDUST_CAST: + case EF_NEW_SECRAMENT: + case EF_NEW_PSYCHICWAVE_BOTTOM: + case EF_NEW_PSYCHICWAVE_CAST: + case EF_NEW_TRIANGLESHOT_BOTTOM: + case EF_NEW_RAMPAGEBLASTER_BOTTOM: + case EF_NEW_FEINTBOMB_BOTTOM: + case EF_NEW_ARMSCANNON_01_DOWN: + case EF_NEW_ARMSCANNON_11_DOWN: + case EF_NEW_ARMSCANNON_EXPLOSION_BOTTOM: + case EF_NEW_CART_CANNON_EXPLOSION_BOTTOM: + case EF_NEW_CART_CANNON_FIRE_BOTTOM: + case EF_NEW_CART_TORNADO_BOTTOM: + case EF_HELP_ANGEL_BOTTOM: + case EF_NEW_BANISHINGPOINT_TARGET_BOTTOM: + case EF_NEW_BANISHINGPOINT_CAST_BOTTOM: + case EF_NEW_DRAGONBREATH_BOMB_BOTTOM: + case EF_NEW_ARMSCANNON_CAST_BOTTOM: + case EF_NEW_DRAGONBREATH_WATER_BOMB_BOTTOM: + case EF_NEW_COUNTER_SLASH_BOTTOM: + case EF_NEW_FATAL_MENACE_CAST_BOTTOM: + case EF_NEW_COMET_BOTTOM: + case EF_NEW_COMET_CAST_BOTTOM: + case EF_NEW_COMET_SUB_EXP_BOTTOM: + case EF_MINEFFECT_ADORAMUS_BOTTOM: + case EF_MINEFFECT_TETRA_FIRE_BOTTOM: + case EF_MINEFFECT_TETRA_WATER_BOTTOM: + case EF_MINEFFECT_TETRA_WIND_BOTTOM: + case EF_MINEFFECT_TETRA_EARTH_BOTTOM: + case EF_MINEFFECT_TETRA_CORE_BOTTOM: + case EF_MINEFFECT_CRIMSONROCK_BOTTOM: + case EF_MINEFFECT_DIAMONDDUST_BOTTOM: + case EF_MINEFFECT_DIAMONDDUST_CAST: + case EF_MINEFFECT_SECRAMENT: + case EF_MINEFFECT_PSYCHICWAVE_BOTTOM: + case EF_MINEFFECT_PSYCHICWAVE_CAST: + case EF_MINEFFECT_TRIANGLESHOT_BOTTOM: + case EF_MINEFFECT_RAMPAGEBLASTER_BOTTOM: + case EF_MINEFFECT_FEINTBOMB_BOTTOM: + case EF_MINEFFECT_ARMSCANNON_01: + case EF_MINEFFECT_ARMSCANNON_11: + case EF_MINEFFECT_ARMSCANNON_EXPLOSION_BOTTOM: + case EF_MINEFFECT_ARMSCANNON_CAST_BOTTOM: + case EF_MINEFFECT_CART_CANNON_EXPLOSION_BOTTOM: + case EF_MINEFFECT_CART_CANNON_FIRE_BOTTOM: + case EF_MINEFFECT_CART_TORNADO_BOTTOM: + case EF_MINEFFECT_BANISHINGPOINT_TARGET_BOTTOM: + case EF_MINEFFECT_BANISHINGPOINT_CAST_BOTTOM: + case EF_MINEFFECT_COMET_BOTTOM: + case EF_MINEFFECT_COMET_CAST_BOTTOM: + case EF_MINEFFECT_COMET_SUB_EXP_BOTTOM: + case EF_NEW_POISONSMOKE_CAST: + case EF_NEW_HELLINFERNO_BOTTOM: + case EF_NEW_HELLINFERNO_SUB_BOTTOM: + case EF_NEW_CLEARANCE_BOTTOM: + case EF_NEW_VARETYRSPEAR_BOTTOM: + case EF_NEW_VARETYRSPEAR_CAST_BOTTOM: + case EF_NEW_FALLENEMPIRE_BOTTOM: + case EF_NEW_HOWLINGOFLION_BOTTOM: + case EF_NEW_HOWLINGOFLION_CAST_BOTTOM: + case EF_NEW_METALLICSOUND_BOTTOM: + case EF_NEW_REPRODUCE_BOTTOM: + case EF_NEW_SOULEXPANSION_CAST_BOTTOM: + case EF_NEW_SOULEXPANSION_LOOP_BOTTOM: + case EF_NEW_AROMAOIL_BOTTOM: + case EF_NEW_BATHFOAM_BOTTOM: + case EF_NEW_WALLOFTHORN_CAST_BOTTOM: + case EF_NEW_EARTHGRAVE_BOTTOM: + case EF_NEW_IGNITIONBREAK_BOTTOM: + case EF_NEW_JUDEX_CAST_BOTTOM: + case EF_NEW_JUDEX_CAST_LOOP_BOTTOM: + case EF_NEW_JUDEX_TARGET_BOTTOM: + case EF_NEW_JUDEX_LIGHT_BOTTOM: + case EF_NEW_CHAINLIGHTNING_CAST_BOTTOM: + case EF_NEW_CHAINLIGHTNING_LOCKON: + case EF_NEW_MANDRAGORA_BOTTOM: + case EF_NEW_SOUNDOFDESTRUCTION_CAST_BOTTOM: + case EF_NEW_UNLIMIT_BOTTOM: + case EF_NEW_AXEBOOMERANG_CAST_BOTTOM: + case EF_NEW_SPELLFIST_FIRE_BOTTOM: + case EF_NEW_SPELLFIST_WATER_BOTTOM: + case EF_NEW_CARTBOOST_BOTTOM: + case EF_NEW_OVERBRAND_CAST_BOTTOM: + case EF_NEW_WINDCUTTER_BOTTOM_01: + case EF_NEW_WINDCUTTER_BOTTOM_05: + case EF_UNK_1696: + case EF_UNK_1697: + case EF_NEW_VULCANARM_BOTTOM: + case EF_NEW_EARTHDRIVE_BOTTOM: + case EF_UNK_1715: + case EF_UNK_1717: + case EF_DRAGONIC_AURA_BOTTOM: + case EF_DRAGONIC_AURA_HIT_BOTTOM: + case EF_DRAGONIC_AURA_BUFF_BOTTOM: + case EF_UNK_1729: + case EF_NEW_AUTOSHADOWSPELL_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE_BOTTOM: + case EF_ROCKDOWN_BOTTOM: + case EF_UNK_1766: + case EF_MYSTERY_ILLUSION_BOTTOM: + case EF_TORNADO_STORM_BOTTOM: + case EF_VIOLENT_QUAKE_BOTTOM: + case EF_ALL_BLOOM_BOTTOM: + case EF_CLIMAX_CAST_LOOP: + case EF_NEW_D_MACHINE_CAST_BOTTOM: + case EF_ARBITRIUM_CAST_BOTTOM: + case EF_COMPETENTIA_LOOP_BOTTOM: + case EF_CRYSTAL_IMPACT_CAST_BOTTOM: + case EF_UNK_1863: + case EF_UNK_1896: + case EF_ABR_INFINITY_BOTTOM: + case EF_ABR_INFINITY_CAST: + case EF_NEW_DILECTIO_HEAL_CAST_BOTTOM: + case EF_NEW_PRAMEN_CAST: + case EF_NEW_BATTLE_W_BOTTOM: + case EF_FIRST_FAITH_POWER: + case EF_JUDGE: + case EF_JUDGE_AURA: + case EF_THIRD_EXOR_FLAME: + case EF_THIRD_EXOR_FLAME_AURA: + case EF_CHAIN_REACTION_SHOT_CAST_BOTTOM: + case EF_DILUVIO_ICE_BOTTOM: + case EF_ARDOR_BOTTOM: + case EF_LIGHTNING_LAND_BOTTOM: + case EF_UNK_2047: + case EF_FIRST_BRAND_AURA: + case EF_CONFLAGRATION_BOTTOM: + case EF_SOUND_BLEND_CAST_BOTTOM: + case EF_UNK_2067: + case EF_UNK_2070: + case EF_UNK_2072: + case EF_SECOND_FAITH_AURA: + case EF_ABYSS_STRIKE_BOTTOM: + case EF_ABYSS_STRIKE_CAST_BOTTOM: + case EF_ABYSS_STRIKE_GROUND_BOTTOM: + case EF_MASSIVE_FLAME_BLASTER_HIT_BOTTOM: + case EF_PROCELLA_BOTTOM: + case EF_UNK_2118: + case EF_UNK_2121: + case EF_ABYSS_SLAYER_CAST_BOTTOM: + case EF_ABYSS_SQUARE_BOTTOM: + case EF_TERRA_DRIVE_BOTTOM: + case EF_ELEMENTAL_BUSTER_FIRE_BOTTOM: + case EF_ELEMENTAL_BUSTER_LAND_BOTTOM: + case EF_ELEMENTAL_BUSTER_POISON_BOTTOM: + case EF_ELEMENTAL_BUSTER_WATER_BOTTOM: + case EF_ELEMENTAL_BUSTER_WIND_BOTTOM: + case EF_UNK_2158: + case EF_ADVANCED_PROTECTION_BOTTOM: + case EF_ADVANCED_PROTECTION_CAST_BOTTOM: + case EF_UNK_2166: + case EF_UNK_2168: + case EF_UNK_2176: + case EF_UNK_2189: + case EF_UNK_2192: + case EF_UNK_2194: + case EF_UNK_2197: + case EF_UNK_2199: + case EF_UNK_2201: + case EF_ACIDIFIED_ZONE_FIRE_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_FIRE_START_BOTTOM: + case EF_ACIDIFIED_ZONE_FIRE_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_START_BOTTOM: + case EF_ACIDIFIED_ZONE_WATER_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_START_BOTTOM: + case EF_ACIDIFIED_ZONE_WIND_LOOP_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_CAST_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_START_BOTTOM: + case EF_ACIDIFIED_ZONE_GROUND_LOOP_BOTTOM: + case EF_RESEARCH_REPORT_CAST_BOTTOM: + case EF_SERPENS_DEEP_POISONING_BOTTOM: + case EF_DILUVIO_COLD_FORCE_BOTTOM: + case EF_ARDOR_FLAMETECHNIC_BOTTOM: + case EF_PROCELLA_GRACE_BREEZE_BOTTOM: + case EF_TERREMOTUS_EARTH_CARE_BOTTOM: + case EF_THIRD_CONSECRATION_BOTTOM: + case EF_UNK_2280: + case EF_NPC_KILLING_AURA: + case EF_TOXIN_OF_MANDARA_BOMB_BOTTOM: + case EF_NEEDLE_STINGER_BOTTOM: + case EF_ABSOLUTE_ZEPHYR_BOTTOM: + case EF_HEILIGE_PFERD_BOTTOM: + case EF_HEILIGE_PFERD_CAST: + case EF_THE_ONE_FIGHTER_RISES_BOTTOM: + case EF_DESTRUCTIVE_HURRICANE_BOTTOM_REUSE: this->particle->flags = 13; break; diff --git a/Source/Contents/Effects/EffectMessageId.h b/Source/Contents/Effects/EffectMessageId.h new file mode 100644 index 000000000..e49a7b877 --- /dev/null +++ b/Source/Contents/Effects/EffectMessageId.h @@ -0,0 +1,60 @@ +#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_EFFECTMESSAGEID_H +#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_EFFECTMESSAGEID_H + +enum EffectMessageId : int { + MSG_SET_INIT = 0, + MSG_SET_SPAWNDIR1 = 1, + MSG_SET_SPAWNDIR2 = 2, + MSG_SET_GRAVITY = 3, + MSG_SET_POS = 4, + MSG_SET_EMITRADIUS = 5, + MSG_SET_COLOR = 6, + MSG_SET_EMITRATE = 7, + MSG_SET_SIZE = 8, + MSG_SET_LIFETIME = 9, + MSG_SET_TEXTURE = 10, + MSG_SET_SPEED = 11, + MSG_SET_SRCMODE = 12, + MSG_SET_DESTMODE = 13, + MSG_SET_MAXPARTICLE = 14, + MSG_SET_AREA = 16, + MSG_SET_ANGLE = 17, + MSG_SET_RISEANGLE = 18, + MSG_SET_ALPHA = 19, + MSG_SET_FDA = 20, + MSG_SET_HEIGHT0 = 21, + MSG_SET_HEIGHT1 = 22, + MSG_SET_HEIGHT2 = 23, + MSG_SET_HEIGHT3 = 24, + MSG_SET_HEIGHT4 = 25, + MSG_SET_HEIGHT5 = 26, + MSG_SET_HEIGHT6 = 27, + MSG_SET_HEIGHT7 = 28, + MSG_SET_HEIGHT8 = 29, + MSG_SET_HEIGHT9 = 30, + MSG_SET_HEIGHT10 = 31, + MSG_SET_HEIGHT11 = 32, + MSG_SET_HEIGHT12 = 33, + MSG_SET_HEIGHT13 = 34, + MSG_SET_HEIGHT14 = 35, + MSG_SET_HEIGHT15 = 36, + MSG_SET_HEIGHT16 = 37, + MSG_SET_HEIGHT17 = 38, + MSG_SET_HEIGHT18 = 39, + MSG_SET_HEIGHT19 = 40, + MSG_SET_HEIGHT20 = 41, + MSG_SET_SIZE2 = 42, + MSG_SET_ZENABLE = 43, + MSG_SET_OFFSET_POS = 44, + MSG_SET_BILLBOARD_OFF = 45, + MSG_SET_ROTATE_ANGLE = 46, + MSG_SET_STR_FILENAME = 47, + MSG_SET_RENDER_FLAG = 48, + MSG_SET_SCALE_RATIO = 49, + MSG_SET_ALPHA_RATIO = 50, + MSG_SET_ETERNITY = 51, + MSG_SET_SCALE = 52, + MSG_SET_NUMBER = 53, +}; + +#endif diff --git a/Source/Contents/Effects/EnergyOrbEffect.cpp b/Source/Contents/Effects/EnergyOrbEffect.cpp index 4b76ce1be..507502a11 100644 --- a/Source/Contents/Effects/EnergyOrbEffect.cpp +++ b/Source/Contents/Effects/EnergyOrbEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/EnergyOrbEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" #include "Contents/Camera/Camera.h" @@ -61,26 +62,26 @@ void CEnergyOrbEffect::Open() { } switch (this->id) { - case 228: + case EF_CHOOKGI: particle->SetColor(particle->unknown_000C != 0 ? -1 : 0, particle->unknown_000C != 0 ? -1 : 0, particle->unknown_000C != 0 ? 0 : 255); break; - case 735: + case EF_CHOOKGI_FIRE: particle->SetTexture("effect\\FireOrb.bmp"); particle->scale = 2.3f; break; - case 736: + case EF_CHOOKGI_WIND: particle->SetTexture("effect\\LightningOrb.bmp"); particle->scale = 2.3f; break; - case 737: + case EF_CHOOKGI_WATER: particle->SetTexture("effect\\WaterOrb.bmp"); particle->scale = 1.3f; break; - case 738: + case EF_CHOOKGI_GROUND: particle->SetTexture("effect\\StoneOrb.bmp"); particle->scale = 2.3f; break; - case 1005: + case EF_OB_GENSOU: particle->SetTexture("effect\\fog1.tga"); particle->scale = 6.0f; particle->unknown_00C0 = 0.05f; diff --git a/Source/Contents/Effects/HealEffect.cpp b/Source/Contents/Effects/HealEffect.cpp index 871150836..a46fd8553 100644 --- a/Source/Contents/Effects/HealEffect.cpp +++ b/Source/Contents/Effects/HealEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/HealEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -337,13 +338,13 @@ void CHealEffect::Open() { // FUNCTION: fn_19073 void CHealEffect::InitEvents() { switch (this->id) { - case 253: + case EF_ABSORBSPIRITS: this->AddEvent(0, "effect\\흡기.wav", 0, 0); break; - case 312: - case 313: - case 320: - case 325: + case EF_HEAL: + case EF_HEAL2: + case EF_HEAL3: + case EF_HEAL4: this->AddEvent(0, "_heal_effect.wav", 0, 0); break; } @@ -353,7 +354,7 @@ void CHealEffect::InitEvents() { // FUNCTION: fn_19074 void CHealEffect::SpawnParticles() { switch (this->id) { - case 312: + case EF_HEAL: if (this->spawnTick == 0) { this->AddColumn(4); } @@ -361,7 +362,7 @@ void CHealEffect::SpawnParticles() { this->AddSparks(4); } break; - case 313: + case EF_HEAL2: if (this->spawnTick == 0) { this->AddColumn(0); this->AddCone(0); @@ -370,7 +371,7 @@ void CHealEffect::SpawnParticles() { this->AddSparks(0); } break; - case 320: + case EF_HEAL3: if (this->spawnTick == 0) { this->AddColumn(3); } @@ -378,13 +379,13 @@ void CHealEffect::SpawnParticles() { this->AddSparks(3); } break; - case 253: + case EF_ABSORBSPIRITS: if (this->spawnTick == 0) { this->AddColumn(5); this->AddCone(5); } break; - case 325: + case EF_HEAL4: if (this->spawnTick == 0) { this->AddColumn(1); this->AddCone(1); diff --git a/Source/Contents/Effects/LightSphereEffect.cpp b/Source/Contents/Effects/LightSphereEffect.cpp index df08fe201..cfed3eff1 100644 --- a/Source/Contents/Effects/LightSphereEffect.cpp +++ b/Source/Contents/Effects/LightSphereEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/LightSphereEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -44,7 +45,7 @@ void CLightSphereEffect::CreateRayParticles(int param) { *reinterpret_cast(particle->unknown_0058) = static_cast(param); switch (this->id) { - case 0x4AD: { + case EF_LIGHTSPHERE_SUN: { int randVal = std::rand() % 2; if (randVal < 0) { randVal = 0; @@ -56,7 +57,7 @@ void CLightSphereEffect::CreateRayParticles(int param) { } break; } - case 0x4AE: { + case EF_LIGHTSPHERE_MOON: { int randVal = std::rand() % 2; if (randVal < 0) { randVal = 0; @@ -68,7 +69,7 @@ void CLightSphereEffect::CreateRayParticles(int param) { } break; } - case 0x4AF: { + case EF_LIGHTSPHERE_STAR: { int randVal = std::rand() % 2; if (randVal < 0) { randVal = 0; @@ -132,13 +133,13 @@ void CLightSphereEffect::Open() { *reinterpret_cast(particle->unknown_0058) = 0.0f; switch (this->id) { - case 0x4AD: + case EF_LIGHTSPHERE_SUN: particle->SetColor(0xFF, 0x7C, 0x80); break; - case 0x4AE: + case EF_LIGHTSPHERE_MOON: particle->SetColor(0xFF, 0xFF, 0x37); break; - case 0x4AF: + case EF_LIGHTSPHERE_STAR: particle->SetColor(0x3B, 0xCC, 0xFF); break; } diff --git a/Source/Contents/Effects/MandraAttackEffect.cpp b/Source/Contents/Effects/MandraAttackEffect.cpp index f7c76fa60..27bbb3d5b 100644 --- a/Source/Contents/Effects/MandraAttackEffect.cpp +++ b/Source/Contents/Effects/MandraAttackEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/MandraAttackEffect.h" +#include "Contents/Jobs/JobId.h" #include "Resource/ResourceMgr.h" #include "Resource/Sprites/ActionResource.h" @@ -49,39 +50,39 @@ void CMandraAttackEffect::SendMsg(CGameObject* sender, int message, int a, int b const char* sprite; const char* action; switch (f) { - case 0x42C: + case JT_HYDRA: sprite = "몬스터\\hydra_atk.spr"; action = "몬스터\\hydra_atk.act"; break; - case 0x6A8: - case 0x6AD: + case JT_THA_ODIUM: + case JT_G_THA_ODIUM: sprite = "몬스터\\tha_odium_ef.spr"; action = "몬스터\\tha_odium_ef.act"; break; - case 0x6F5: - case 0x55BB: + case JT_DROSERA: + case JT_DEDSERA: sprite = "몬스터\\drosera_bullet.spr"; action = "몬스터\\drosera_bullet.act"; break; - case 0x75C: - case 0x75E: + case JT_MAVKA: + case JT_G_MAVKA: sprite = "몬스터\\MAVKA_BULLET.spr"; action = "몬스터\\MAVKA_BULLET.act"; break; - case 0x7A5: - case 0x7A6: - case 0x7A7: - case 0x7A8: - case 0x7A9: + case JT_ENTWEIHEN: + case JT_G_ENTWEIHEN_R: + case JT_G_ENTWEIHEN_H: + case JT_G_ENTWEIHEN_M: + case JT_G_ENTWEIHEN_S: sprite = "몬스터\\ENTWEIHEN_BULLET.spr"; action = "몬스터\\ENTWEIHEN_BULLET.act"; break; - case 0x7C4: + case JT_NEPENTHES: sprite = "몬스터\\NEPENTHES_BULLET.spr"; action = "몬스터\\NEPENTHES_BULLET.act"; break; @@ -97,52 +98,52 @@ void CMandraAttackEffect::SendMsg(CGameObject* sender, int message, int a, int b action = "몬스터\\jp_2017evt_atk.act"; break; - case 0x5172: + case JT_SUMMON_CREEPER: sprite = "몬스터\\summon_creeper_bullet.spr"; action = "몬스터\\summon_creeper_bullet.act"; break; - case 0x5759: - case 0x578D: + case JT_EP21_YORTUS_B: + case JT_EP21_YORTUS_B_H: sprite = "몬스터\\EP21_YORTUS_Bullet.spr"; action = "몬스터\\EP21_YORTUS_Bullet.act"; break; - case 0x575C: - case 0x5796: + case JT_EP21_B_YORTUS_B: + case JT_EP21_B_YORTUS_B_H: sprite = "몬스터\\EP21_B_YORTUS_Bullet.spr"; action = "몬스터\\EP21_B_YORTUS_Bullet.act"; break; - case 0x577B: - case 0x577C: + case JT_MEDJED: + case JT_CP_MEDJED: sprite = "몬스터\\MEDJED_bullet.spr"; action = "몬스터\\MEDJED_bullet.act"; break; - case 0x5781: - case 0x5782: + case JT_HEKA: + case JT_CP_HEKA: sprite = "몬스터\\mg_corruption_root_h_bullet.spr"; action = "몬스터\\mg_corruption_root_h_bullet.act"; break; - case 0x5784: + case JT_GUIDE_OF_DEAD: sprite = "몬스터\\GUIDE_OF_DEAD_bullet.spr"; action = "몬스터\\GUIDE_OF_DEAD_bullet.act"; break; - case 0x5788: + case JT_E_SMART_ANDRE: sprite = "몬스터\\E_SMART_ANDRE_Bullet.spr"; action = "몬스터\\E_SMART_ANDRE_Bullet.act"; break; - case 0x57B2: + case JT_CH1_FIRE_FLOWER: sprite = "몬스터\\CH1_FIRE_FLOWER_bullet.spr"; action = "몬스터\\CH1_FIRE_FLOWER_bullet.act"; break; - case 0x57D2: - case 0x57D3: + case JT_CH1_SHADIEST: + case JT_CP_CH1_SHADIEST: sprite = "몬스터\\CH1_SHADIEST_bullet.spr"; action = "몬스터\\CH1_SHADIEST_bullet.act"; break; diff --git a/Source/Contents/Effects/MonsterSkillEffects.cpp b/Source/Contents/Effects/MonsterSkillEffects.cpp index 3fd38caa7..d4e9ecd40 100644 --- a/Source/Contents/Effects/MonsterSkillEffects.cpp +++ b/Source/Contents/Effects/MonsterSkillEffects.cpp @@ -1,3 +1,5 @@ +#include "Contents/Jobs/JobId.h" +#include "Contents/Skills/SkillId.h" #include "Contents/Effects/MonsterSkillEffects.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -227,73 +229,73 @@ void CSprArrowEffect::SetBulletSprite(int job) { const char* name; switch (job) { - case 20936: - case 21052: - case 22216: - case 22218: - case 22219: - case 22232: - case 22234: - case 22235: + case JT_DISGUISER: + case JT_G_DISGUISER: + case JT_SPIRIT_H_WATER_S: + case JT_SPIRIT_H_WATER_L: + case JT_SPIRIT_H_WATER_SL: + case JT_SPIRIT_C_WATER_S: + case JT_SPIRIT_C_WATER_L: + case JT_SPIRIT_C_WATER_SL: name = "canon_bullet"; break; - case 22175: - case 22176: + case JT_MD_PRI_RIGEL_AC: + case JT_MD_PRI_RIGEL_ACS: name = "RIGEL_BULLET"; break; - case 22204: + case JT_SPIRIT_I_WATER_S: name = "phylla_bullet"; break; - case 22197: - case 22198: - case 22199: + case JT_SPIRIT_B_FLAME_M: + case JT_SPIRIT_B_FLAME_L: + case JT_SPIRIT_B_FLAME_SL: name = "mg_corruption_root_h_bullet"; break; - case 22214: - case 22215: - case 22226: - case 22227: + case JT_SPIRIT_C_FLAME_L: + case JT_SPIRIT_C_FLAME_SL: + case JT_SPIRIT_R_FLAME_L: + case JT_SPIRIT_R_FLAME_SL: name = "mg_corruption_root_bullet"; break; - case 22245: + case JT_VR_MD_DREGG1: name = "VR_MD_DREGG1_bullet"; break; - case 22246: + case JT_VR_MD_DREGG2: name = "VR_MD_DREGG2_bullet"; break; - case 22322: + case JT_EP21_YORKER_B: name = "EP21_YORKER_Bullet"; break; - case 22326: + case JT_EP21_YOSTER_D: name = "EP21_YOSTER_D_bullet"; break; - case 22327: + case JT_EP21_YOSTER_E: name = "EP21_YOSTER_E_bullet"; break; - case 22354: - case 22418: + case JT_EP21_YORMI_B: + case JT_EP21_YORMI_B_H: name = "EP21_YORMI_bullet"; break; - case 22355: - case 22366: - case 22416: + case JT_EP21_YORDOS_A: + case JT_G_EP21_YORDOS_A: + case JT_EP21_YORDOS_A_H: name = "EP21_YORDOS_Bullet"; break; - case 22359: - case 22420: + case JT_EP21_YOSCOPUS_B: + case JT_EP21_YOSCOPUS_B_H: name = "EP21_YOSCOPUS_Bullet"; break; - case 22383: - case 22384: + case JT_VIOLEN: + case JT_CP_VIOLEN: name = "violen_bullet"; break; - case 22464: + case JT_CH1_SHADOW_JAILER: name = "CH1_SHADOW_JAILER_bullet"; break; - case 22467: + case JT_CH1_SCABIOSA: name = "CH1_SCABIOSA_bullet"; break; - case 22468: + case JT_CH1_LOBELIA: name = "CH1_LOBELIA_bullet"; break; default: @@ -1832,27 +1834,27 @@ bool CDropItemEffect::IsAlive() { // FUNCTION: fn_07310 void CDropItemEffect::OpenEmitters() { switch (this->id) { - case 1190: + case EF_UNK_1190: AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_purple\\dropitem_purple\\dropitem_purple.str"); AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_purple\\dropitem_purple_bottom\\dropitem_purple_bottom.str"); this->soundName = "drop_purple.wav"; break; - case 1189: + case EF_UNK_1189: AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_yellow\\dropitem_yellow\\dropitem_yellow.str"); AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_yellow\\dropitem_yellow_bottom\\dropitem_yellow_bottom.str"); this->soundName = "drop_yellow.wav"; break; - case 1869: + case EF_UNK_1869: AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_blue\\dropitem_blue\\dropitem_blue.str"); AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_blue\\dropitem_blue_bottom\\dropitem_blue_bottom.str"); this->soundName = "drop_blue.wav"; break; - case 1870: + case EF_UNK_1870: AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_green\\dropitem_green\\dropitem_green.str"); AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_green\\dropitem_green_bottom\\dropitem_green_bottom.str"); this->soundName = "drop_green.wav"; break; - case 1871: + case EF_UNK_1871: AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_red\\dropitem_red\\dropitem_red.str"); AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_red\\dropitem_red_bottom\\dropitem_red_bottom.str"); this->soundName = "drop_red.wav"; @@ -1896,15 +1898,15 @@ CJupitelThunderHit::CJupitelThunderHit() : CEffect(-1) { // FUNCTION: fn_07320 void CJupitelThunderHit::SpawnHit() { switch (this->id) { - case 94: - case 1200: + case EF_YUFITELHIT: + case EF_UNK_1200: this->textures.push_back("effect\\thunder_plazma_blast_a.bmp"); this->textures.push_back("effect\\thunder_plazma_blast_b.bmp"); this->textures.push_back("effect\\thunder_ball_d.bmp"); this->textures.push_back("effect\\thunder_ball_e.bmp"); this->textures.push_back("effect\\thunder_ball_f.bmp"); break; - case 452: + case EF_YUFITEL2: this->textures.push_back("effect\\twirl_soft.bmp"); this->textures.push_back("effect\\thunder_ball_b.bmp"); this->textures.push_back("effect\\twirl_soft.bmp"); @@ -1927,10 +1929,10 @@ void CJupitelThunderHit::SpawnHit() { void CJupitelThunderHit::SpawnSpark() { std::string texture = "effect\\thunder_pang.bmp"; switch (this->id) { - case 94: + case EF_YUFITELHIT: texture = "effect\\thunder_pang.bmp"; break; - case 452: + case EF_YUFITEL2: texture = "effect\\pokjuk_d.bmp"; break; } @@ -2593,24 +2595,24 @@ void CRandomOptEffect::Init() { particle->unknown_0054 = 0.0f; switch (this->id) { - case 1186: + case EF_UNK_1186: particle->SetColor(255, 200, 255); particle->unknown_00C0 = 120.0f - level * 12.0f; particle->scale = level * 0.24f + 0.6f; break; - case 1187: + case EF_UNK_1187: particle->SetColor(192, 192, 192); break; - case 1188: + case EF_UNK_1188: particle->SetColor(0, 100, 150); break; - case 1189: + case EF_UNK_1189: particle->SetColor(255, 255, 128); break; - case 1190: + case EF_UNK_1190: particle->SetColor(128, 0, 255); break; - case 1191: + case EF_UNK_1191: particle->SetColor(255, 128, 0); break; } @@ -2997,16 +2999,16 @@ EZ2STREmitter* CServantWeaponNewEffect::CreateShot(float angle, int skill) { } switch (skill) { - case 5202: + case DK_SERVANTWEAPON_ATK: particle->Load(std::string("DRAGON_KNIGHT\\DK_SERVANTWEAPON\\servantweapon_shoot\\servantweapon_shoot.str")); break; - case 5203: + case DK_SERVANT_W_SIGN: particle->Load(std::string("DRAGON_KNIGHT\\DK_SERVANT_W_SIGN\\servant_sign_shot\\servant_sign_shot.str")); break; - case 5204: + case DK_SERVANT_W_PHANTOM: particle->Load(std::string("DRAGON_KNIGHT\\DK_SERVANT_W_PHANTOM\\servant_phantom_shot\\servant_phantom_shot.str")); break; - case 5205: + case DK_SERVANT_W_DEMOL: particle->Load( std::string("DRAGON_KNIGHT\\DK_SERVANT_W_DEMOL\\servant_demolition_shot\\servant_demolition_shot.str")); break; @@ -3597,17 +3599,17 @@ void CRichsCoinEffect::Close() { // FUNCTION: fn_07413 void CSevereRainStorm::SpawnParticles() { switch (this->id) { - case 1752: + case EF_UNK_1752: if (this->unknown_00D4 % (4 - (this->unknown_00B0 + 1) / 2) == 0) { this->SpawnCrystalRain(); } break; - case 1276: + case EF_UNK_1276: if (this->unknown_00D4 % 3 == 0) { this->SpawnSevereRain(); } break; - case 2026: + case EF_UNK_2026: if (this->unknown_00D4 % 5 == 0) { vector3d position = {this->position[0], this->position[1], this->position[2]}; position.x = (static_cast(std::max(0, rand() % 451)) - 225.0f) * 0.1f + position.x; @@ -3619,7 +3621,7 @@ void CSevereRainStorm::SpawnParticles() { this->emitters.push_back(emitter); } break; - case 2165: + case EF_UNK_2165: if (this->unknown_00D4 % (9 - this->unknown_00B0 / 3) == 0) { const long long ranges[10] = {3, 3, 3, 5, 5, 5, 7, 7, 7, 9}; const long long spread = ranges[std::min(static_cast(this->unknown_00B0), 10u) - 1] * 50; @@ -3634,32 +3636,32 @@ void CSevereRainStorm::SpawnParticles() { this->emitters.push_back(emitter); } break; - case 2348: + case EF_UNK_2348: if (this->ActorExists() && this->unknown_00D4 % 15 == 0) { this->SpawnTwinklingGalaxy(this->unknown_00D4 / 15 % 4); } break; - case 2349: + case EF_UNK_2349: if (this->ActorExists() && this->unknown_00D4 % 18 == 0) { this->SpawnGalaxyStar(); } break; - case 2350: + case EF_UNK_2350: if (this->ActorExists() && this->unknown_00D4 % 18 == 0) { this->SpawnStarCannon(); } break; - case 2351: + case EF_UNK_2351: if (this->ActorExists() && this->unknown_00D4 % 15 == 0) { this->SpawnGrenades(); } break; - case 2354: + case EF_UNK_2354: if (this->ActorExists() && this->unknown_00D4 % 15 == 0) { this->SpawnBombardHits(); } break; - case 2462: + case EF_UNK_2462: if (this->unknown_00D4 % (9 - this->unknown_00B0 / 3) == 0) { this->SpawnCrossRain(); } @@ -3884,29 +3886,29 @@ void CSevereRainStorm::Open() { // FUNCTION: fn_07424 bool CSevereRainStorm::IsAlive() { switch (this->id) { - case 1752: - case 2165: - case 2462: + case EF_UNK_1752: + case EF_UNK_2165: + case EF_UNK_2462: return this->ActorExists(); - case 1276: + case EF_UNK_1276: if (this->unknown_00D4 > 240) { return false; } break; - case 2026: + case EF_UNK_2026: if (EffectLifetime(2026) < this->unknown_00D4) { return false; } break; - case 2348: - case 2349: - case 2350: + case EF_UNK_2348: + case EF_UNK_2349: + case EF_UNK_2350: if (this->ActorExists() != true && this->emitters.size() == 0) { return false; } break; - case 2351: - case 2354: + case EF_UNK_2351: + case EF_UNK_2354: if (this->ActorExists() != true && this->emitters.size() == 0) { return false; } @@ -4008,7 +4010,7 @@ void CCrimsonArrowEffect::Open() { EZ2STREmitter* emitter = reinterpret_cast(arrow); switch (this->id) { - case 1756: + case EF_UNK_1756: arrow->Load("crimsonarrow\\crimsonarrow\\crimsonarrow.str"); emitter->offset.x = 0.0f; emitter->offset.y = -13.0f; @@ -4016,7 +4018,7 @@ void CCrimsonArrowEffect::Open() { arrow->m_angle = static_cast(angle); this->AddEvent(0, "effect\\AG_CRIMSON_ARROW1.wav", 0, 0); break; - case 2074: + case EF_UNK_2074: arrow->Load("rhythmshooting\\rhythmshooting_shot\\rhythmshooting_shot.str"); emitter->offset.x = 0.0f; emitter->offset.y = -8.0f; @@ -4024,7 +4026,7 @@ void CCrimsonArrowEffect::Open() { arrow->m_angle = static_cast(angle + 180.0); this->AddEvent(0, "effect\\TR_RHYTHMSHOOTING.wav", 0, 0); break; - case 2114: + case EF_UNK_2114: arrow->Load("frenzy_shot\\frenzy_shot\\frenzy_shot.str"); emitter->offset.x = 0.0f; emitter->offset.y = -4.0f; @@ -4032,11 +4034,11 @@ void CCrimsonArrowEffect::Open() { arrow->m_angle = static_cast(angle); this->AddEvent(0, "effect\\ABC_FRENZY_SHOT.wav", 0, 0); break; - case 2154: + case EF_UNK_2154: arrow->Load("unlucky_rush\\unlucky_rush\\unlucky_rush.str"); arrow->m_angle = static_cast(angle); break; - case 2195: + case EF_UNK_2195: arrow->Load("judgement_cross\\judgement_cross_shot\\judgement_cross_shot.str"); arrow->m_angle = static_cast(angle + 180.0); break; diff --git a/Source/Contents/Effects/MsgEffect.cpp b/Source/Contents/Effects/MsgEffect.cpp index 73b9b112e..acb1a5815 100644 --- a/Source/Contents/Effects/MsgEffect.cpp +++ b/Source/Contents/Effects/MsgEffect.cpp @@ -1,3 +1,4 @@ +#include "Contents/Skills/SkillUnitId.h" #include "Contents/Effects/MsgEffect.h" #include "Client/Mode/CGameMode.h" @@ -517,7 +518,7 @@ bool CSkill::OnProcess() { this->ProcessDamageMessages(); switch (this->GetEffectiveJob(-1)) { - case 0xCC: + case UNT_MANHOLE: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x336, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -526,7 +527,7 @@ bool CSkill::OnProcess() { } break; - case 0xCB: + case UNT_EARTHSTRAIN: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x8E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -536,7 +537,7 @@ bool CSkill::OnProcess() { } break; - case 0xCA: + case UNT_EPICLESIS: if (!this->m_hasEffect) { this->m_hasEffect = true; this->LaunchEffect(0x677, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -544,14 +545,14 @@ bool CSkill::OnProcess() { } break; - case 0x82: + case UNT_BENEDICTIO: if (this->m_effectTimer >= EffectLifetime(0x5B) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x5B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x83: + case UNT_SANCTUARY: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x13F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -560,7 +561,7 @@ bool CSkill::OnProcess() { } break; - case 0xB1: + case UNT_DEMONSTRATION: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x12E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -569,7 +570,7 @@ bool CSkill::OnProcess() { } break; - case 0x9A: + case UNT_VOLCANO: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0xEF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -578,7 +579,7 @@ bool CSkill::OnProcess() { } break; - case 0xE1: + case UNT_POISONSMOKE: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x304, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -594,7 +595,7 @@ bool CSkill::OnProcess() { } break; - case 0xB6: + case UNT_FOGWALL: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x195, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -603,7 +604,7 @@ bool CSkill::OnProcess() { } break; - case 0x9B: + case UNT_DELUGE: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0xF0, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -612,7 +613,7 @@ bool CSkill::OnProcess() { } break; - case 0xBB: + case UNT_SUITON: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x26C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -621,7 +622,7 @@ bool CSkill::OnProcess() { } break; - case 0x9C: + case UNT_VIOLENTGALE: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0xF1, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -630,7 +631,7 @@ bool CSkill::OnProcess() { } break; - case 0x9D: + case UNT_LANDPROTECTOR: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0xF2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -639,7 +640,7 @@ bool CSkill::OnProcess() { } break; - case 0xC8: + case UNT_DARK_RUNNER: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x29F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -648,7 +649,7 @@ bool CSkill::OnProcess() { } break; - case 0xC9: + case UNT_DARK_TRANSFER: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x2A0, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -657,7 +658,7 @@ bool CSkill::OnProcess() { } break; - case 0xB4: + case UNT_BASILICA: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x176, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -666,7 +667,7 @@ bool CSkill::OnProcess() { } break; - case 0xB7: + case UNT_SPIDERWEB: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x194, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -675,7 +676,7 @@ bool CSkill::OnProcess() { } break; - case 0xB9: + case UNT_HERMODE: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x205, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -684,7 +685,7 @@ bool CSkill::OnProcess() { } break; - case 0xB8: + case UNT_GRAVITATION: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x20A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -693,7 +694,7 @@ bool CSkill::OnProcess() { } break; - case 0xE2: + case UNT_NEUTRALBARRIER: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x30F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -702,13 +703,13 @@ bool CSkill::OnProcess() { } break; - case 0xC7: + case UNT_EVILLAND: if (!this->m_hasEffect && g_effectMgr->Spawn(this->skillAid, 0x613, this->render.position.x, this->render.position.y, this->render.position.z, 0, this->range * 2, 0, 0)) { this->m_hasEffect = true; } break; - case 0xB3: + case UNT_GOSPEL: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x172, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -717,7 +718,7 @@ bool CSkill::OnProcess() { } break; - case 0xE3: + case UNT_STEALTHFIELD: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x310, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -726,7 +727,7 @@ bool CSkill::OnProcess() { } break; - case 0x92: + case UNT_VENOMDUST: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0xAB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -735,14 +736,14 @@ bool CSkill::OnProcess() { } break; - case 0xE0: + case UNT_CLOUD_KILL: if (!this->m_hasEffect && g_effectMgr->Spawn(this->skillAid, 0x438, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0)) { this->m_hasEffect = true; this->m_effectId = 0x438; } break; - case 0x84: + case UNT_MAGNUS: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x13E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -751,15 +752,15 @@ bool CSkill::OnProcess() { } break; - case 0x88: + case UNT_FIREPILLAR_ACTIVE: if (this->m_effectTimer >= EffectLifetime(0x61) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x61, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x87: - case 0xC5: + case UNT_FIREPILLAR_WAITING: + case UNT_WINDATTACK: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x8A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -768,9 +769,9 @@ bool CSkill::OnProcess() { } break; - case 0x8D: - case 0xC3: - case 0xC4: + case UNT_ICEWALL: + case UNT_DEATHWAVE: + case UNT_WATERATTACK: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x4A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -779,7 +780,7 @@ bool CSkill::OnProcess() { } break; - case 0x8E: + case UNT_QUAGMIRE: if (this->m_effectTimer >= EffectLifetime(0x5F) - 20u) { this->m_effectTimer = 0; if (g_serviceOptions.Get(0xE5)) { @@ -790,42 +791,42 @@ bool CSkill::OnProcess() { } break; - case 0x81: + case UNT_WARP_ACTIVE: if (this->m_effectTimer >= EffectLifetime(0x13C) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x13C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x80: + case UNT_WARP_WAITING: if (this->m_effectTimer >= EffectLifetime(0x13D) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x13D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xCD: + case UNT_DIMENSIONDOOR: if (this->m_effectTimer >= EffectLifetime(0x339) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x339, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xCE: + case UNT_CHAOSPANIC: if (this->m_effectTimer >= EffectLifetime(0x33B) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x33B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xCF: + case UNT_MAELSTROM: if (this->m_effectTimer >= EffectLifetime(0x33C) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x33C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xDA: + case UNT_REVERBERATION: if (this->m_effectTimer >= EffectLifetime(0x358) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x358, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -833,7 +834,7 @@ bool CSkill::OnProcess() { } break; - case 0xDE: + case UNT_NETHERWORLD: if (this->m_effectTimer >= EffectLifetime(0x35C) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x35C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -841,7 +842,7 @@ bool CSkill::OnProcess() { } break; - case 0xDB: + case UNT_SEVERE_RAINSTORM: if (this->m_effectTimer >= EffectLifetime(0x359) - 8u) { this->m_effectTimer = 0; g_effectMgr->Spawn(0, 0x4FC, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); @@ -849,50 +850,50 @@ bool CSkill::OnProcess() { } break; - case 0xD0: + case UNT_BLOODYLUST: if (this->m_effectTimer >= EffectLifetime(0x33D) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x33D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xB2: + case UNT_CALLFAMILY: if (this->m_effectTimer >= EffectLifetime(0x155) - 8u) { this->m_effectTimer = 0; this->LaunchEffect(0x155, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7E: + case UNT_SAFETYWALL: if (this->m_effectTimer >= EffectLifetime(0x13B) - 7u) { this->m_effectTimer = 0; this->LaunchEffect(0x13B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x7F: - case 0xED: + case UNT_FIREWALL: + case UNT_FIRE_MANTLE: if (this->m_effectTimer >= EffectLifetime(0x19) - 7u) { this->m_effectTimer = 0; this->LaunchEffect(0x19, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xDC: + case UNT_FIREWALK: if (this->m_effectTimer >= EffectLifetime(0x398) - 7u) { this->m_effectTimer = 0; this->LaunchEffect(0x398, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xDD: + case UNT_ELECTRICWALK: if (this->m_effectTimer >= EffectLifetime(0x39E) - 7u) { this->m_effectTimer = 0; this->LaunchEffect(0x39E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xEB: + case UNT_VACUUM_EXTREME: if (this->m_effectTimer >= EffectLifetime(0x399) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x399, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -900,7 +901,7 @@ bool CSkill::OnProcess() { } break; - case 0xEA: + case UNT_HELLS_PLANT: if (this->m_effectTimer >= EffectLifetime(0x397) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x397, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -908,7 +909,7 @@ bool CSkill::OnProcess() { } break; - case 0xBC: + case UNT_TATAMIGAESHI: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x277, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -917,96 +918,96 @@ bool CSkill::OnProcess() { } break; - case 0xBD: + case UNT_KAEN: if (this->m_effectTimer >= EffectLifetime(0x27A) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x27A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xD2: + case UNT_MAGENTATRAP: if (this->m_effectTimer >= EffectLifetime(0x2E3) - 1u) { this->m_effectTimer = 0; } break; - case 0xD3: + case UNT_COBALTTRAP: if (this->m_effectTimer >= EffectLifetime(0x2E4) - 1u) { this->m_effectTimer = 0; } break; - case 0xD4: + case UNT_MAIZETRAP: if (this->m_effectTimer >= EffectLifetime(0x2E5) - 1u) { this->m_effectTimer = 0; } break; - case 0xD5: + case UNT_VERDURETRAP: if (this->m_effectTimer >= EffectLifetime(0x2E6) - 1u) { this->m_effectTimer = 0; } break; - case 0xD6: - case 0xD7: - case 0xD8: - case 0xD9: + case UNT_FIRINGTRAP: + case UNT_ICEBOUNDTRAP: + case UNT_ELECTRICSHOCKER: + case UNT_CLUSTERBOMB: if (this->m_effectTimer >= EffectLifetime(0x2E7) - 1u) { this->m_effectTimer = 0; } break; - case 0xBE: + case UNT_GROUNDDRIFT_WIND: if (this->m_effectTimer >= EffectLifetime(0x27E) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x27E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xBF: + case UNT_GROUNDDRIFT_DARK: if (this->m_effectTimer >= EffectLifetime(0x27F) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x27F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xC0: + case UNT_GROUNDDRIFT_POISON: if (this->m_effectTimer >= EffectLifetime(0x280) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x280, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xC1: + case UNT_GROUNDDRIFT_WATER: if (this->m_effectTimer >= EffectLifetime(0x281) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x281, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xC2: + case UNT_GROUNDDRIFT_FIRE: if (this->m_effectTimer >= EffectLifetime(0x282) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x282, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x108: + case UNT_GROUNDDRIFT_NEUTRAL: if (this->m_effectTimer >= EffectLifetime(0x460) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x460, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xE6: + case UNT_WALLOFTHORN: if (this->m_effectTimer >= EffectLifetime(0x390) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x390, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xEE: + case UNT_WATER_BARRIER: if (!this->m_effect) { this->m_effect = this->LaunchEffect(0x3AB, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } @@ -1015,34 +1016,34 @@ bool CSkill::OnProcess() { } break; - case 0xEF: + case UNT_ZEPHYR: if (this->m_effectTimer >= EffectLifetime(0x1D1) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x1D1, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xF0: + case UNT_POWER_OF_GAIA: if (this->m_effectTimer >= EffectLifetime(0x440) - 1u) { this->m_effectTimer = 0; g_effectMgr->Spawn(this->render.accountId, 0x440, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0xF5: + case UNT_POISON_MIST: this->LaunchGroundEffects(0x3BF, 3, 0); break; - case 0xF6: + case UNT_LAVA_SLIDE: this->LaunchGroundEffects(0x3C4, 0, 0); break; - case 0xF7: + case UNT_VOLCANIC_ASH: this->LaunchGroundEffects(0x3CF, 0, 0); break; - case 0xE7: - case 0xF1: + case UNT_DEMONIC_FIRE: + case UNT_FIRE_INSIGNIA: if (this->m_effectTimer >= EffectLifetime(0x394) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x394, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -1050,7 +1051,7 @@ bool CSkill::OnProcess() { } break; - case 0xF2: + case UNT_WATER_INSIGNIA: if (this->m_effectTimer >= EffectLifetime(0x394) - 1u) { this->m_effectTimer = 0; CRagEffect* effect = this->LaunchEffect(0x394, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -1063,7 +1064,7 @@ bool CSkill::OnProcess() { } break; - case 0xF3: + case UNT_WIND_INSIGNIA: if (this->m_effectTimer >= EffectLifetime(0x394) - 1u) { this->m_effectTimer = 0; CRagEffect* effect = this->LaunchEffect(0x394, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -1076,7 +1077,7 @@ bool CSkill::OnProcess() { } break; - case 0xF4: + case UNT_EARTH_INSIGNIA: if (this->m_effectTimer >= EffectLifetime(0x394) - 1u) { this->m_effectTimer = 0; CRagEffect* effect = this->LaunchEffect(0x394, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -1089,7 +1090,7 @@ bool CSkill::OnProcess() { } break; - case 0xE8: + case UNT_FIRE_EXPANSION_SMOKE_POWDER: if (this->m_effectTimer >= EffectLifetime(0x395) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x395, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -1097,7 +1098,7 @@ bool CSkill::OnProcess() { } break; - case 0xE9: + case UNT_FIRE_EXPANSION_TEAR_GAS: if (this->m_effectTimer >= EffectLifetime(0x396) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x396, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -1105,7 +1106,7 @@ bool CSkill::OnProcess() { } break; - case 0xE4: + case UNT_WARMER: if (this->m_effectTimer >= EffectLifetime(0x3A1) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x3A1, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -1113,74 +1114,74 @@ bool CSkill::OnProcess() { } break; - case 0xF8: + case UNT_ZENKAI_WATER: this->LaunchGroundEffects(0x3E0, 0, 0); break; - case 0xF9: + case UNT_ZENKAI_LAND: this->LaunchGroundEffects(0x3E1, 0, 0); break; - case 0xFA: + case UNT_ZENKAI_FIRE: this->LaunchGroundEffects(0x3E2, 0, 0); break; - case 0xFB: + case UNT_ZENKAI_WIND: this->LaunchGroundEffects(0x3E3, 0, 0); break; - case 0xFC: + case UNT_MAKIBISHI: this->LaunchGroundEffects(0x3EF, 0, 0); break; - case 0xFD: + case UNT_VENOMFOG: this->LaunchGroundEffects(0x3FC, 0, 0); break; - case 0xFE: + case UNT_ICEMINE: if (this->m_effectTimer >= EffectLifetime(0x402) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x402, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0xFF: - case 0x100: + case UNT_FLAMECROSS: + case UNT_HELLBURNING: if (this->m_effectTimer >= EffectLifetime(0x19) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x19, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x102: + case UNT_KINGS_GRACE: if (this->m_effectTimer >= EffectLifetime(0x41B) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x41B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x101: + case UNT_MAGMA_ERUPTION: if (this->m_effectTimer >= EffectLifetime(0x41A) - 1u) { this->m_effectTimer = 0; this->LaunchEffect(0x41A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x105: + case UNT_FIRE_RAIN: if (this->m_effectTimer >= EffectLifetime(0x428) - 1u) { this->m_effectTimer = 0; g_effectMgr->Spawn(0, 0x428, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x103: + case UNT_GLITTERING_GREED: if (!this->m_hasEffect) { this->m_hasEffect = true; g_effectMgr->Spawn(0, 0x4FE, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0); } break; - case 0x10C: + case UNT_SEEDTRAP: if (!this->m_hasEffect) { this->m_hasEffect = true; this->LaunchEffect(this->m_effectId, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); diff --git a/Source/Contents/Effects/RagEffect.cpp b/Source/Contents/Effects/RagEffect.cpp index d2b3aff71..c9b38262b 100644 --- a/Source/Contents/Effects/RagEffect.cpp +++ b/Source/Contents/Effects/RagEffect.cpp @@ -8572,16 +8572,16 @@ void CRagEffect::TetraVortexPillar(char kind) { this->state.unknown_11C84->slots[0].vecBPre.y = this->render.position.y - 10.0f; if (kind == 4) { switch (this->state.type) { - case 970: + case EF_TETRA_FIRE: this->state.unknown_11C84->slots[0].flag1[2] = 20; break; - case 971: + case EF_TETRA_WATER: this->state.unknown_11C84->slots[0].flag1[2] = 18; break; - case 972: + case EF_TETRA_WIND: this->state.unknown_11C84->slots[0].flag1[2] = 17; break; - case 973: + case EF_TETRA_GROUND: this->state.unknown_11C84->slots[0].flag1[2] = 19; break; } @@ -10220,7 +10220,7 @@ void CRagEffect::NapalmFragments() { // FUNCTION: fn_20086 bool CRagEffect::OnProcess2() { switch (this->state.type) { - case 300: + case EF_CHEMICALPROTECTION: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "apocalips_attack.wav"); @@ -10228,13 +10228,13 @@ bool CRagEffect::OnProcess2() { this->ShockwaveRing(30); this->ShockwaveRing(60); break; - case 301: + case EF_POKJUK_SOUND: this->Fireworks(); break; - case 302: + case EF_DEMONSTRATION: this->Demonstration(); break; - case 303: + case EF_CHEMICAL2: this->SlashFan(0); this->SlashFan(1); if (this->state.stateCnt == 44) { @@ -10249,10 +10249,10 @@ bool CRagEffect::OnProcess2() { this->state.parent->SetColor(-1, 255, 255, 150); } break; - case 304: + case EF_TELEPORTATION2: this->TeleportRings("effect\\Magic_Violet.tga", 0); break; - case 305: + case EF_PHARMACY_OK: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\p_success.wav"); @@ -10261,7 +10261,7 @@ bool CRagEffect::OnProcess2() { return false; } break; - case 306: + case EF_PHARMACY_FAIL: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\p_failed.wav"); @@ -10270,21 +10270,21 @@ bool CRagEffect::OnProcess2() { return false; } break; - case 307: + case EF_FORESTLIGHT: this->ForestLight("effect\\cloud11.tga", 0); break; - case 308: + case EF_THROWITEM3: this->ThrowItem("유저인터페이스\\item\\돌.bmp", 2); break; - case 309: + case EF_FIRSTAID: this->FirstAid(); break; - case 310: + case EF_SPRINKLESAND: for (int index = 0; index < 20; ++index) { this->ThunderSparks(); } break; - case 311: + case EF_LOUD: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\고성방가.wav"); @@ -10293,106 +10293,106 @@ bool CRagEffect::OnProcess2() { return false; } break; - case 312: + case EF_HEAL: this->HealBurst("effect\\alpha_down.tga", 0); break; - case 313: + case EF_HEAL2: this->HealRingSparkle("effect\\ring_white.tga", 0); break; - case 314: + case EF_EXIT2: this->TeleportSpiral("effect\\ring_purple.tga"); break; - case 315: + case EF_GLASSWALL2: if (!this->GlassWallRising("effect\\alpha_down.tga")) { return false; } break; - case 316: + case EF_READYPORTAL2: this->BlueRingWave(); break; - case 317: + case EF_PORTAL2: this->VioletRingCloud(0); break; - case 318: + case EF_BOTTOM_MAG: this->TexturedPulseKind("effect\\ring_red.tga", 0); break; - case 319: + case EF_BOTTOM_SANC: this->TexturedPulseKind("effect\\alpha_down.tga", 1); break; - case 320: + case EF_HEAL3: this->HealBurst("effect\\alpha_down.tga", 1); break; - case 321: + case EF_WARPZONE2: this->AlphaDownRipples("effect\\ring_blue.tga", 0); break; - case 322: + case EF_FORESTLIGHT2: this->ForestLight("effect\\cloud11.tga", 1); break; - case 323: + case EF_FORESTLIGHT3: this->ForestLight("effect\\cloud11.tga", 2); break; - case 324: + case EF_FORESTLIGHT4: this->ForestLight("effect\\cloud11.tga", 10); break; - case 325: + case EF_HEAL4: this->HealRingSparkle("effect\\ring_white.tga", 1); break; - case 326: + case EF_FOOT: this->TexturedRise("effect\\foot_l_b.tga", 0); break; - case 327: + case EF_FOOT2: this->TexturedRise("effect\\foot_r_b.tga", 0); break; - case 328: + case EF_BEGINASURA: this->AsuraStrike(0); break; - case 329: + case EF_TRIPLEATTACK: this->CloudDrift(); break; - case 330: + case EF_HITLINE: this->WhiteSparks(0); break; - case 331: + case EF_HPTIME: this->TexturedRisingOrbs("effect\\white02.bmp", 0); break; - case 332: + case EF_SPTIME: this->TexturedRisingOrbs("effect\\white02.bmp", 1); break; - case 333: + case EF_MAPLE: this->Maple(); break; - case 334: + case EF_BLIND: this->BLIND(0); break; - case 335: + case EF_POISON: this->POISON(0); break; - case 336: + case EF_GUARD: this->KyrieGuard("effect\\guardK.tga", 0); break; - case 337: + case EF_JOBLVUP50: this->JobLvUp50(0); this->JobLvUp50(45); break; - case 338: + case EF_ANGEL2: this->SuperAngel(0); this->SuperAngel(1); this->SuperAngel(2); this->SuperAngel(3); break; - case 339: + case EF_MAGNUM2: this->Magnum2("effect\\ring_yellow.tga"); break; - case 340: + case EF_CALLZONE: this->CALLZONE("effect\\white02.bmp"); break; - case 341: + case EF_PORTAL3: this->VioletRingCloud(3); break; - case 342: + case EF_COUPLECASTING: this->TexturedSpellRings("effect\\ring_red.tga"); break; - case 343: + case EF_HEARTCASTING: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -10420,86 +10420,86 @@ bool CRagEffect::OnProcess2() { this->RingRedPulse("effect\\ring_red.tga", 14 * cell, 44 * cell); } break; - case 344: + case EF_ENTRY2: this->PortalRings(); break; - case 345: + case EF_SAINTWING: this->TexturedPair("effect\\wing003.bmp"); break; - case 346: + case EF_SPHEREWIND: for (int angle = 0; angle < 45; angle += 9) { this->FeatherRing("effect\\blue_ivy.bmp", static_cast(angle), 0); } break; - case 347: + case EF_COLORPAPER: for (int index = 0; index < 50; ++index) { this->WeddingBurst("effect\\white02.bmp", 0); } break; - case 348: + case EF_LIGHTSPHERE: this->TexturedAura("effect\\thunder_center.bmp", 0); for (int index = 0; index < 80; ++index) { this->TexturedSparkle("effect\\white02.bmp"); } break; - case 349: + case EF_WATERFALL: this->Waterfall("", 0, 0, 0); for (int index = 0; index < 40; ++index) { this->FrostScatter(0, 0); } break; - case 350: + case EF_WATERFALL_90: this->Waterfall("", 1, 0, 0); for (int index = 0; index < 40; ++index) { this->FrostScatter(1, 0); } break; - case 351: + case EF_WATERFALL_SMALL: this->Waterfall("", 0, 1, 0); for (int index = 0; index < 20; ++index) { this->FrostScatter(0, 1); } break; - case 352: + case EF_WATERFALL_SMALL_90: this->Waterfall("", 1, 1, 0); for (int index = 0; index < 20; ++index) { this->FrostScatter(1, 1); } break; - case 353: + case EF_WATERFALL_T2: this->Waterfall("", 0, 0, 1); for (int index = 0; index < 40; ++index) { this->FrostScatter(0, 0); } break; - case 354: + case EF_WATERFALL_T2_90: this->Waterfall("", 1, 0, 1); for (int index = 0; index < 40; ++index) { this->FrostScatter(1, 0); } break; - case 355: + case EF_WATERFALL_SMALL_T2: this->Waterfall("", 0, 1, 1); for (int index = 0; index < 20; ++index) { this->FrostScatter(0, 1); } break; - case 356: + case EF_WATERFALL_SMALL_T2_90: this->Waterfall("", 1, 1, 1); for (int index = 0; index < 20; ++index) { this->FrostScatter(1, 1); } break; - case 358: + case EF_GHOST: this->Ghost(0); break; - case 359: + case EF_BAT: this->Ghost(1); break; - case 360: + case EF_BAT2: this->Ghost(2); break; - case 361: + case EF_SOULBREAKER: if (this->state.stateCnt == 20) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\기공포.wav"); @@ -10512,16 +10512,16 @@ bool CRagEffect::OnProcess2() { } this->SonicWave(0); break; - case 362: + case EF_LEVEL99_4: this->FreezingCircle(1); break; - case 363: + case EF_VALLENTINE: this->Vallentine(0); break; - case 364: + case EF_VALLENTINE2: this->Vallentine(1); break; - case 365: + case EF_PRESSURE: if (this->state.stateCnt == 3) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\프레셔.wav"); @@ -10529,7 +10529,7 @@ bool CRagEffect::OnProcess2() { this->TexturedRain("effect\\cross_old.bmp", 0); this->TexturedLevelRing("effect\\explosive_1_128.bmp", -28, 0); break; - case 366: + case EF_BASH3D: if (this->state.stateCnt == 22) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\세크리파이스.wav"); @@ -10544,32 +10544,32 @@ bool CRagEffect::OnProcess2() { this->state.parent->SetColor(-1, 255, 200, 200); } break; - case 367: + case EF_AURABLADE: this->WhiteYellowRings(); break; - case 368: + case EF_REDBODY: if ((this->state.parent->render.flags & 1) == 0) { this->state.parent->render.flags += 1; } this->state.parent->SetColor(-1, 255, 100, 100); break; - case 369: + case EF_LKCONCENTRATION: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\knight_twohandquicken.wav"); } this->state.parent->SetColor(-1, 255, 255, 160); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 370: + case EF_BOTTOM_GOSPEL: this->Bottom_Music("effect\\cross_old.bmp", 9); break; - case 371: - case 372: + case EF_ANGEL: + case EF_DEVIL: if (!this->ProcessEZ2STRC10830()) { return false; } break; - case 373: + case EF_DRAGONSMOKE: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { this->state.unknown_11C84 = @@ -19547,91 +19547,91 @@ void CRagEffect::TexturedClassChange(char kind) { // FUNCTION: fn_20087 bool CRagEffect::OnProcess3() { switch (this->state.type) { - case 1003: + case EF_BLUELIGHTBODY: if ((this->state.parent->render.flags & 0x4000) == 0) { this->state.parent->render.flags += 0x4000; this->state.parent->render.unknown_00F6 = 20; } break; - case 947: + case EF_EL_GUST: this->TexturedClassChange(70); break; - case 963: + case EF_GRAYBODY: this->state.parent->SetColor(-1, 105, 105, 105); break; - case 961: + case EF_SILENT_BREEZE: this->TexturedClassChange(82); break; - case 962: + case EF_MAGMA_FLOW: this->TexturedClassChange(83); break; - case 948: + case EF_EL_BLAST: this->TexturedClassChange(71); break; - case 949: + case EF_EL_AQUAPLAY: this->TexturedClassChange(72); break; - case 950: + case EF_EL_UPHEAVAL: this->TexturedClassChange(73); break; - case 951: + case EF_EL_WILD_STORM: this->TexturedClassChange(74); break; - case 952: + case EF_EL_CHILLY_AIR: this->TexturedClassChange(75); break; - case 953: + case EF_EL_CURSED_SOIL: this->TexturedClassChange(76); break; - case 954: + case EF_EL_COOLER: this->TexturedClassChange(77); break; - case 955: + case EF_EL_TROPIC: this->TexturedClassChange(78); break; - case 956: + case EF_EL_PYROTECHNIC: this->TexturedClassChange(79); break; - case 957: + case EF_EL_PETROLOGY: this->TexturedClassChange(80); break; - case 958: + case EF_EL_HEATER: this->TexturedClassChange(81); break; - case 945: + case EF_CLOUD9: for (int index = 0; index < 65; ++index) { this->SkyCloud(9); } break; - case 942: + case EF_WATERBALL3: this->WaterBallBurst(); break; - case 941: + case EF_SPR_LIGHTPRINT3: this->SpriteRing(20); break; - case 939: + case EF_BOTTOM_DE2: this->TexturedGroundRing("effect\\ring_blue.tga", 0, 0, 0); break; - case 902: + case EF_PNG_TEST: this->TexturedAura("pe_fur1_01.bmp", 1); break; - case 926: + case EF_SHOCKWAVE2: if (!this->ProcessEZ2STR(0.0f, -80.0f, 0.0f)) { this->InitEZ2STRFrame(); } break; - case 920: + case EF_FIREWALL2: if (!this->ShieldCharge()) { return false; } break; - case 914: + case EF_THROWITEM11: this->ThrowItem("유저인터페이스\\item\\폭탄버섯포자.bmp", 1); break; - case 911: + case EF_GREENCASTING: this->WhiteSpellRings(); break; - case 907: + case EF_RG_COIN7: if (this->state.stateCnt == 26) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\LG_PINPOINTATTACK.wav"); @@ -19646,7 +19646,7 @@ bool CRagEffect::OnProcess3() { this->TexturedSprayKind("effect\\sword.bmp", 9.0f, 7); } break; - case 906: + case EF_PRESSURE2: if (this->state.stateCnt == 3) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\프레셔.wav"); @@ -19658,7 +19658,7 @@ bool CRagEffect::OnProcess3() { this->TexturedRain("effect\\shield.bmp", 0); this->TexturedLevelRing("effect\\explosive_1_128.bmp", -28, 0); break; - case 930: + case EF_PRESSURE3: if (this->state.stateCnt == 3) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\프레셔.wav"); @@ -19672,55 +19672,55 @@ bool CRagEffect::OnProcess3() { this->TexturedRain("유저인터페이스\\item\\궁그닐.bmp", 4); this->TexturedLevelRing("effect\\explosive_1_128.bmp", -28, 0); break; - case 904: + case EF_CHEMICAL2DASH4: for (int index = 0; index < 4; ++index) { this->LineStreakTextured(10, "effect\\throw.bmp"); this->LineStreakTextured(11, "effect\\throw.bmp"); } break; - case 903: + case EF_BEGINSPELL_YB: this->BeginSpellSwirl(45, "", 10); break; - case 729: + case EF_SPR_MASH: this->TexturedClassChange(38); break; - case 901: + case EF_SPR_LIGHTPRINT: this->SpriteRing(9); break; - case 923: + case EF_SPR_LIGHTPRINT2: this->SpriteRing(10); break; - case 894: + case EF_GROUNDSHAKE: if (this->state.stateCnt == 3) { this->render.position = this->state.parent->render.position; } this->TexturedLevelRing("effect\\explosive_1_128.bmp", 0, 4); break; - case 905: + case EF_GROUNDSHAKE2: if (this->state.stateCnt == 3) { this->render.position = this->state.parent->render.position; } this->TexturedLevelRing("effect\\explosive_1_128.bmp", 0, 10); break; - case 893: + case EF_CHEMICAL3S: for (int index = 0; index < 4; ++index) { this->LineStreakKind(0); this->LineStreakKind(1); } break; - case 892: + case EF_TRIPLEATTACK4: this->CloudBurst(); break; - case 1030: + case EF_DARKPIERCING: this->CloudSpread(); break; - case 891: + case EF_FIREBALL4: this->BlueFireballVolley(); break; - case 913: + case EF_FIREBALL5: this->PaleFireballVolley(); break; - case 890: + case EF_SPINMOVE: if (this->state.stateCnt <= 7) { this->state.parent->render.angle += 12.0f; } else if (this->state.stateCnt <= 15) { @@ -19740,7 +19740,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->render.angle -= 360.0f; } break; - case 889: + case EF_TEIHIT1T: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\mon_맹룡과강.wav"); @@ -19752,14 +19752,14 @@ bool CRagEffect::OnProcess3() { } } break; - case 888: + case EF_ELECTRIC4: this->ElectricRing(0, 0); this->ElectricRing(0, 180); break; - case 887: + case EF_HITLINE8: this->WhiteSparks(8); break; - case 886: + case EF_GUMGANG5: if (this->state.stateCnt >= 0) { this->state.parent->render.flags |= 0x1000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt); @@ -19775,7 +19775,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, 0, 0, 255); } break; - case 938: + case EF_GUMGANG9: if (this->state.stateCnt >= 0) { this->state.parent->render.flags |= 0x1000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt); @@ -19791,7 +19791,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, 80, 40, 0); } break; - case 937: + case EF_GUMGANG8: if (this->state.stateCnt >= 0) { this->state.parent->render.flags |= 0x1000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt); @@ -19807,7 +19807,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, 255, 255, 0); } break; - case 936: + case EF_GUMGANG7: if (this->state.stateCnt >= 0) { this->state.parent->render.flags |= 0x1000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt); @@ -19823,7 +19823,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, 255, 0, 0); } break; - case 934: + case EF_GUMGANG6: this->TexturedCrossKind("effect\\ring_white.tga", 4); if (this->state.stateCnt >= 10 && this->state.stateCnt <= 34 && this->state.stateCnt % 4 < 2) { if ((this->state.parent->render.flags & 1) == 0) { @@ -19834,7 +19834,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 885: + case EF_BASH3D6: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\mon_맹룡과강.wav"); @@ -19843,7 +19843,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadSpin("effect\\alpha_center.tga", index, 6); } break; - case 882: + case EF_PRIMECHARGE: if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\LG_EXEEDBREAK.wav"); @@ -19852,7 +19852,7 @@ bool CRagEffect::OnProcess3() { this->TexturedScatterSphere("effect\\alpha_center.tga", 0, 0); } break; - case 908: + case EF_PRIMECHARGE2: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; } @@ -19860,7 +19860,7 @@ bool CRagEffect::OnProcess3() { this->TexturedScatterSphere("effect\\alpha_center.tga", 1, 0); } break; - case 909: + case EF_PRIMECHARGE3: if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\LG_BANDING.wav"); @@ -19869,7 +19869,7 @@ bool CRagEffect::OnProcess3() { this->TexturedScatterSphere("effect\\alpha_center.tga", 2, 0); } break; - case 910: + case EF_PRIMECHARGE4: if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\LG_INSPIRATION.wav"); @@ -19878,145 +19878,145 @@ bool CRagEffect::OnProcess3() { this->TexturedScatterSphere("effect\\alpha_center.tga", 3, 0); } break; - case 895: + case EF_DQ9_CHARGE: this->TexturedSpiral("effect\\alpha_center.tga", 0, 0); break; - case 896: + case EF_DQ9_CHARGE2: this->TexturedSpiralSmall("effect\\shockwave_c.bmp", 0, 0); break; - case 897: + case EF_DQ9_CHARGE3: this->TexturedSpiralTall("effect\\shockwave_c.bmp", 0, 0); break; - case 898: + case EF_DQ9_CHARGE4: this->TexturedSpiralFade("effect\\shockwave_c.bmp", 0, 0); break; - case 900: + case EF_SELFSCROLL: this->TexturedDoubleSpiral("effect\\shockwave_c.bmp", 0, 0); break; - case 881: + case EF_LEVEL99_150: this->TexturedDoubleRing("effect\\emp shock.tga", 2); this->TexturedDoubleRing("effect\\cir0002.bmp", 3); break; - case 861: + case EF_CIRCLEPOWER2: this->TexturedTwinkleRing("effect\\freeze_a.bmp", 2); break; - case 865: + case EF_CIRCLEPOWER3: this->TexturedTwinkleRing("effect\\freeze_a.bmp", 3); break; - case 867: + case EF_CIRCLEPOWER4: this->TexturedTwinkleRing("effect\\freeze_a.bmp", 4); break; - case 871: + case EF_CIRCLEPOWER5: this->TexturedTwinkleRing("effect\\freeze_a.bmp", 5); break; - case 873: + case EF_CIRCLEPOWER6: this->TexturedTwinkleRing("effect\\freeze_a.bmp", 6); break; - case 875: + case EF_CIRCLEPOWER7: this->TexturedTwinkleRing("effect\\freeze_a.bmp", 7); break; - case 877: + case EF_CIRCLEPOWER8: this->TexturedTwinkleRing("effect\\freeze_a.bmp", 8); break; - case 856: + case EF_BOT_REVERB: this->TexturedDrop("effect\\melody_a.bmp", 0); break; - case 860: + case EF_BOT_REVERB2: this->TexturedDrop("effect\\melody_a.bmp", 1); break; - case 857: + case EF_RAIN_PARTICLE: this->TexturedFloatingDust("effect\\번개1.bmp", 0); break; - case 944: + case EF_RAIN_PARTICLE2: if (this->state.stateCnt == 1) { g_soundMgr->PlayWave("effect\\매직 크래쉬.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } this->TexturedFloatingDust("effect\\stone_part.bmp", 0); break; - case 854: + case EF_CHEMICAL_V: this->TexturedBeam(0, "effect\\line3.tga"); this->TexturedForkBolt("effect\\melody_a.bmp", 0); this->TexturedForkBolt("effect\\melody_b.bmp", 0); break; - case 858: + case EF_CHEMICAL_V2: this->TexturedBeam(1, "effect\\line3.tga"); this->TexturedForkBolt("effect\\melody_a.bmp", 1); this->TexturedForkBolt("effect\\melody_b.bmp", 1); break; - case 969: + case EF_CHEMICAL_ALLRANGE: this->TexturedSpinShards("effect\\melody_a.bmp", 1); this->TexturedSpinShards("effect\\melody_b.bmp", 1); this->TexturedSpinShards("effect\\melody_a.bmp", 1); this->TexturedSpinShards("effect\\melody_b.bmp", 1); break; - case 863: + case EF_CHEMICAL_V3: this->TexturedBeam(2, "effect\\line3.tga"); break; - case 859: + case EF_SECRA: this->TexturedSlam("effect\\priest_spell.bmp", 1, 0); break; - case 862: + case EF_SECRA2: this->TexturedSlam("effect\\priest_spell.bmp", 2, 0); break; - case 851: + case EF_SPR_PARTICLE: this->Mavka(0); break; - case 852: + case EF_SPR_PARTICLE2: this->Mavka(2); break; - case 853: + case EF_SPR_PLANT: this->MonsterSpriteBurst(0); break; - case 866: + case EF_SPR_PLANT2: this->MonsterSpriteBurst(2); break; - case 868: + case EF_SPR_PLANT3: this->MonsterSpriteBurst(3); break; - case 870: + case EF_SPR_PLANT4: this->MonsterSpriteBurst(4); break; - case 872: + case EF_SPR_PLANT5: this->MonsterSpriteBurst(5); break; - case 874: + case EF_SPR_PLANT6: this->MonsterSpriteBurst(6); break; - case 876: + case EF_SPR_PLANT7: this->MonsterSpriteBurst(7); break; - case 878: + case EF_SPR_PLANT8: this->MonsterSpriteBurst(8); break; - case 915: + case EF_SPR_PLANT9: this->MonsterSpriteBurst(9); break; - case 922: + case EF_SPR_PLANT10: this->MonsterSpriteBurst(13); break; - case 927: + case EF_SPR_PLANT11: this->MonsterSpriteBurst(14); break; - case 849: + case EF_LINKPARTICLE: this->TexturedTumbleOrb("effect\\whitelight.tga", 0); break; - case 931: + case EF_LINKPARTICLE2: this->TexturedTumbleOrb("effect\\whitelight.tga", 2); this->TexturedTumbleOrb("effect\\whitelight.tga", 1); break; - case 850: + case EF_SOULLIGHT2: this->TexturedStorm2("effect\\whitelight.tga", 2); break; - case 932: + case EF_SOULLIGHT3: this->TexturedStorm2("effect\\whitelight.tga", 3); break; - case 836: + case EF_CHEMICAL2DASH3: for (int index = 0; index < 4; ++index) { this->LineStreakTextured(10, "effect\\throw.bmp"); this->LineStreakTextured(11, "effect\\throw.bmp"); } break; - case 835: + case EF_CHEMICAL2DASH2: for (int index = 0; index < 4; ++index) { this->LineStreakLayered(10); this->LineStreakLayered(11); @@ -20031,14 +20031,14 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, 255, 255, 150); } break; - case 834: + case EF_JOBLVUP50_2: this->JobLvUp50(0); this->JobLvUp50(45); break; - case 833: + case EF_CHOOKGI_N: this->ThunderFreeze(3); break; - case 832: + case EF_HEAL_N: if (this->state.stateCnt >= 4 && this->state.stateCnt <= 52) { if (this->state.stateCnt % 2 == 0) { if ((this->state.parent->render.flags & 8) == 0) { @@ -20054,7 +20054,7 @@ bool CRagEffect::OnProcess3() { } this->BubbleFanSweep("effect\\ring_white.tga", 0); break; - case 943: + case EF_HEAL_N2: if (this->state.stateCnt >= 4 && this->state.stateCnt <= 52) { if (this->state.stateCnt % 2 == 0) { if ((this->state.parent->render.flags & 8) == 0) { @@ -20070,46 +20070,46 @@ bool CRagEffect::OnProcess3() { } this->BubbleFanSweep("effect\\ring_white.tga", 1); break; - case 830: + case EF_BEGINSPELL_N1: if (this->state.stateCnt == 1) { g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } this->BubbleSpiralKind(45, "", 1); this->BubbleSpiralKind(25, "", 0); break; - case 880: + case EF_BEGINSPELL_150: this->BubbleSpiral(45, "", 1); this->BubbleSpiral(25, "", 1); break; - case 831: + case EF_BEGINSPELL_N2: this->BeginSpellSwirl(45, "", 0); this->TexturedTwinSpin("effect\\cir0002.bmp", 3); break; - case 840: + case EF_BEGINSPELL_N3: this->BeginSpellSwirl(45, "", 3); break; - case 841: + case EF_BEGINSPELL_N4: this->BeginSpellSwirl(45, "", 4); break; - case 842: + case EF_BEGINSPELL_N5: this->BeginSpellSwirl(45, "", 5); break; - case 843: + case EF_BEGINSPELL_N6: this->BeginSpellSwirl(45, "", 6); break; - case 844: + case EF_BEGINSPELL_N7: this->BeginSpellSwirl(45, "", 7); break; - case 845: + case EF_BEGINSPELL_N8: this->BeginSpellSwirl(45, "", 8); break; - case 1656: + case EF_NEW_EPICLESIS_CAST: this->BeginSpellSwirl(45, "", 9); break; - case 826: + case EF_DARKCASTING2: this->BlackSpellRings(2); break; - case 825: + case EF_FORESTLIGHT6: if (this->state.stateCnt == 1) { g_soundMgr->PlayWave("effect\\dimension.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } @@ -20117,16 +20117,16 @@ bool CRagEffect::OnProcess3() { this->TexturedHalo("effect\\구체15.bmp", 4); this->WhiteRingRipple(0); break; - case 823: + case EF_MANHOLE: if ((this->state.parent->render.flags & 0x100000) == 0) { this->state.parent->render.flags += 0x100000; } break; - case 822: + case EF_BOTTOM_MANHOLE: this->TexturedHalo("effect\\twirl.bmp", 4); this->WhiteRingRipple(0); break; - case 828: + case EF_BOTTOM_MAELSTROM: { const char* flare; const char* ring0; @@ -20145,31 +20145,31 @@ bool CRagEffect::OnProcess3() { this->TexturedHalo(ring1, 12); } break; - case 829: + case EF_BOTTOM_BLOODYLUST: this->TorchDustRing("", 1, 0); this->TorchDustRing("", 1, 120); this->TorchDustRing("", 1, 240); this->WhiteRingRipple(2); break; - case 827: + case EF_BOTTOM_ANI: this->TorchDustRing("", 0, 0); this->WhiteRingRipple(1); break; - case 821: + case EF_WATERFALL_ANI: this->WaterBubble(0); break; - case 838: + case EF_WATER_BELOW: this->TorchDustRing("", 2, 0); break; - case 839: + case EF_WATER_FADE: this->TexturedDualSpin("effect\\W_Comp_00.tga", "effect\\W_Comp_24.tga", 0); break; - case 846: + case EF_WATER_SMOKE: for (int index = 0; index < 40; ++index) { this->FrostSplash(0, 0); } break; - case 820: + case EF_RG_COIN5: if (this->state.stateCnt != 1) { if (this->state.stateCnt != 11) { if (this->state.stateCnt != 21) { @@ -20198,7 +20198,7 @@ bool CRagEffect::OnProcess3() { this->TexturedSprayKind("유저인터페이스\\item\\상자.bmp", 4.0f, 1); this->TexturedSprayKind("유저인터페이스\\item\\수제초콜렛.bmp", 5.0f, 1); break; - case 869: + case EF_RG_COIN6: if (this->state.stateCnt != 1) { if (this->state.stateCnt != 11) { if (this->state.stateCnt != 21) { @@ -20223,34 +20223,34 @@ bool CRagEffect::OnProcess3() { this->TexturedSprayKind("effect\\melody_b.bmp", 6.0f, 1); } break; - case 819: + case EF_LINELINK4: this->TrackCloud(2); break; - case 813: + case EF_ENERVATION: this->TintedRisingSparkles(0); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 814: + case EF_ENERVATION2: this->TintedRisingSparkles(1); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 815: + case EF_ENERVATION3: this->TintedRisingSparkles(2); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 816: + case EF_ENERVATION4: this->TintedRisingSparkles(3); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 817: + case EF_ENERVATION5: this->TintedRisingSparkles(4); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 818: + case EF_ENERVATION6: this->TintedRisingSparkles(5); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 864: + case EF_ENERVATION7: if (this->state.stateCnt >= 4 && this->state.stateCnt <= 90) { if (this->state.stateCnt % 2 == 0) { if ((this->state.parent->render.flags & 1) == 0) { @@ -20264,7 +20264,7 @@ bool CRagEffect::OnProcess3() { this->RisingSparkles(2); this->TintedRisingSparkles(6); break; - case 847: + case EF_DANCE1: if (this->state.stateCnt >= 4 && this->state.stateCnt <= 90) { if (this->state.stateCnt % 2 == 0) { if ((this->state.parent->render.flags & 1) == 0) { @@ -20277,7 +20277,7 @@ bool CRagEffect::OnProcess3() { } this->RisingSparkles(1); break; - case 848: + case EF_DANCE2: if (this->state.stateCnt >= 4 && this->state.stateCnt <= 90) { if (this->state.stateCnt % 2 == 0) { if ((this->state.parent->render.flags & 1) == 0) { @@ -20290,7 +20290,7 @@ bool CRagEffect::OnProcess3() { } this->RisingSparkles(2); break; - case 812: + case EF_BLACKBODY: if (this->state.stateCnt >= 6 && this->state.stateCnt <= 60) { const int value = (this->state.stateCnt & 1) != 0 ? 255 : 0; this->state.parent->SetColor(-1, value, value, value); @@ -20303,18 +20303,18 @@ bool CRagEffect::OnProcess3() { } this->TexturedSkillAura(6); break; - case 811: + case EF_STRETCH: this->TexturedDescendingRings("effect\\freezing_stick.bmp", 0); break; - case 809: + case EF_CLOAKING3: this->AssassinCloakingClear(); break; - case 808: + case EF_RECOGNIZED2: for (int index = 0; index < 5; ++index) { this->TexturedSkillIcon("", index * 30 + 1, 2); } break; - case 810: + case EF_INTIMIDATE4: if (this->state.stateCnt == 25) { PlayEffectWave(*this, "effect\\triangle.wav"); } @@ -20322,7 +20322,7 @@ bool CRagEffect::OnProcess3() { this->WhiteSpray(4); } break; - case 807: + case EF_INTIMIDATE3: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_Bash.wav"); @@ -20334,13 +20334,13 @@ bool CRagEffect::OnProcess3() { this->WhiteSpray(3); } break; - case 806: + case EF_FIREBALL3: this->RocketPunch(); break; - case 935: + case EF_FIREBALL6: this->GreenRocketPunch(); break; - case 805: + case EF_TETRACASTING: if (this->state.stateCnt == 0) { g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } @@ -20355,11 +20355,11 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRing(25, "effect\\ring_white.tga", 0); this->TexturedQuadRing(45, "effect\\ring_white.tga", 0); break; - case 804: - case 970: - case 971: - case 972: - case 973: + case EF_TETRA: + case EF_TETRA_FIRE: + case EF_TETRA_WATER: + case EF_TETRA_WIND: + case EF_TETRA_GROUND: if (this->state.stateCnt != 0) { if (this->state.stateCnt != 40) { if (this->state.stateCnt == 80) { @@ -20376,32 +20376,32 @@ bool CRagEffect::OnProcess3() { this->TexturedSpread("effect\\ring_red.tga", 10); } break; - case 803: + case EF_RECOGNIZED: for (int index = 0; index < 10; ++index) { this->TexturedSkillIcon("", index * 30 + 1, 0); } break; - case 802: + case EF_BOTTOM_BASILICA2: if (this->state.stateCnt == 6) { g_soundMgr->PlayWave("effect\\wl_whiteimprison.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } this->TexturedFourRing("effect\\alpha_down.tga", 20); this->TexturedFourRing("effect\\alpha_down.tga", 21); break; - case 801: + case EF_FROSTDIVER3: this->FrostDiver(3); break; - case 800: + case EF_REDLINE: for (int index = 0; index < 3; ++index) { this->TexturedSpreadFlat("effect\\ring_red.tga", 3); } break; - case 899: + case EF_BLUELINE: for (int index = 0; index < 6; ++index) { this->TexturedSpreadFlat("effect\\ring_blue.tga", 12); } break; - case 799: + case EF_STASIS: if (this->state.stateCnt == 6) { g_soundMgr->PlayWave("effect\\wl_stasis.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } @@ -20422,46 +20422,46 @@ bool CRagEffect::OnProcess3() { this->TexturedLevelRing("effect\\thunder_ball_0005.bmp", -26, 3); this->TexturedLevelRing("effect\\thunder_ball_0006.bmp", -30, 3); break; - case 798: + case EF_INTIMIDATE2: for (int index = 0; index < 16; ++index) { this->WhiteSpray(2); } break; - case 797: + case EF_STONERING: if (this->state.stateCnt == 0) { g_soundMgr->PlayWave("effect\\wl_siennaexecrate.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } this->TexturedClassChange(60); break; - case 796: + case EF_GTHUNDER: this->TexturedMark("effect\\storm2.tga", 10); this->TexturedRisingPillar("effect\\white01.bmp", 0); break; - case 795: + case EF_CRASHAXE: if (!this->FirePillarBomb()) { return false; } break; - case 794: + case EF_INFRAREDSCAN: if (this->state.stateCnt == 0) { g_soundMgr->PlayWave("effect\\INFRAREDSCAN.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } this->ElectricFan(nullptr, 0); this->ElectricFan(nullptr, 1); break; - case 793: + case EF_HALLUTIME: this->TexturedRisingOrbs("effect\\white02.bmp", 3); break; - case 792: + case EF_MAKEHALLU: this->SpawnActorHallucination(); break; - case 925: + case EF_MAKEHALLU2: this->SpawnHallucinationTrail(); break; - case 824: + case EF_MAKEFEINT: this->SpawnHallucinationOnce(); break; - case 1004: + case EF_KAGEMUSYA: { CHalluPC2* hallu = new CHalluPC2(reinterpret_cast(this->state.parent)); hallu->render.position = this->state.parent->render.position; @@ -20471,7 +20471,7 @@ bool CRagEffect::OnProcess3() { WorldObjects().push_back(hallu); } break; - case 791: + case EF_COLDTHROW: if (this->state.stateCnt == 0) { g_soundMgr->PlayWave("ice_titan_attack.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } @@ -20492,7 +20492,7 @@ bool CRagEffect::OnProcess3() { this->SnowDrift(0); this->SnowDrift(0); break; - case 928: + case EF_COLDTHROW2: if (this->state.stateCnt >= 6 && this->state.stateCnt <= 40) { if ((this->state.parent->render.flags & 8) == 0) { this->state.parent->render.flags += 8; @@ -20510,10 +20510,10 @@ bool CRagEffect::OnProcess3() { this->SnowDrift(0); this->SnowDrift(0); break; - case 787: + case EF_FIRETHROW: this->TorchRedRing(0); break; - case 786: + case EF_NC_ANAL: if (this->state.stateCnt >= 10 && this->state.stateCnt <= 90) { if (this->state.stateCnt % 2 == 0) { if ((this->state.parent->render.flags & 1) == 0) { @@ -20527,16 +20527,16 @@ bool CRagEffect::OnProcess3() { this->TexturedSkillAura(5); this->TexturedAura("effect\\target3.bmp", 21); break; - case 785: + case EF_REPAIRTIME: this->TexturedRisingOrbs("유저인터페이스\\item\\스패너.bmp", 2); break; - case 784: + case EF_BOTTOM_STEALTH: this->TexturedGlow("effect\\썬더스톰파티클.tga", 8); break; - case 783: + case EF_BOTTOM_BARRIER: this->TexturedGlow("effect\\slash01.tga", 8); break; - case 782: + case EF_GUARD4: this->BlackMaximize("effect\\성체강복.tga"); if (this->state.stateCnt >= 10 && this->state.stateCnt <= 30) { if (this->state.stateCnt % 2 == 0) { @@ -20549,7 +20549,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 781: + case EF_ELECTRIC3: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\MAGNETICFIELD.wav"); @@ -20557,13 +20557,13 @@ bool CRagEffect::OnProcess3() { this->ElectricRingEarly(0, 0); this->ElectricRingEarly(0, 180); break; - case 780: + case EF_DETECT4: this->TexturedSkillAura(4); break; - case 778: + case EF_DETECT3: this->TexturedSkillAura(3); break; - case 779: + case EF_AGIUP3: if (this->state.stateCnt < 61) { if ((this->state.parent->render.flags & 8) == 0) { this->state.parent->render.flags += 8; @@ -20579,7 +20579,7 @@ bool CRagEffect::OnProcess3() { } this->IncAgilityCenter(3); break; - case 777: + case EF_AGIUP2: if (this->state.stateCnt < 61) { if ((this->state.parent->render.flags & 8) == 0) { this->state.parent->render.flags += 8; @@ -20595,7 +20595,7 @@ bool CRagEffect::OnProcess3() { } this->IncAgilityCenter(2); break; - case 775: + case EF_CASTSPIN2: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -20615,28 +20615,28 @@ bool CRagEffect::OnProcess3() { } } break; - case 774: + case EF_SHIELDBOOMERANG4: this->TexturedShieldThrow("유저인터페이스\\item\\배틀액스.bmp"); break; - case 773: + case EF_GUMGANG4: this->TexturedCrossKind("effect\\ring_purple.tga", 1); break; - case 771: + case EF_POISONWAV: if (this->state.stateCnt == 1) { g_soundMgr->PlayWave("effect\\assasin_enchantpoison.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_soundMgr->PlayWave("effect\\EF_PoisonAttack.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 776: + case EF_VULCANWAV: if (this->state.stateCnt == 45) { g_soundMgr->PlayWave("effect\\데스페라도.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 772: - case 924: + case EF_POISONSMOKE: + case EF_POISONSMOKE2: this->PoisonAttack(1); break; - case 770: + case EF_RG_COIN4: if (this->state.stateCnt != 1) { if (this->state.stateCnt != 11) { if (this->state.stateCnt != 21) { @@ -20665,40 +20665,40 @@ bool CRagEffect::OnProcess3() { this->TexturedSprayKind("유저인터페이스\\item\\드래곤슬레이어.bmp", 5.0f, 0); this->TexturedSprayKind("유저인터페이스\\item\\배틀액스.bmp", 5.0f, 0); break; - case 758: + case EF_ROLLING1: this->TexturedSlam("effect\\회전카운터1.tga", 0, 0); break; - case 759: + case EF_ROLLING2: this->TexturedSlam("effect\\회전카운터2.tga", 0, 0); break; - case 760: + case EF_ROLLING3: this->TexturedSlam("effect\\회전카운터3.tga", 0, 0); break; - case 761: + case EF_ROLLING4: this->TexturedSlam("effect\\회전카운터4.tga", 0, 0); break; - case 762: + case EF_ROLLING5: this->TexturedSlam("effect\\회전카운터5.tga", 0, 0); break; - case 763: + case EF_ROLLING6: this->TexturedSlam("effect\\회전카운터6.tga", 0, 0); break; - case 764: + case EF_ROLLING7: this->TexturedSlam("effect\\회전카운터7.tga", 0, 0); break; - case 765: + case EF_ROLLING8: this->TexturedSlam("effect\\회전카운터8.tga", 0, 0); break; - case 766: + case EF_ROLLING9: this->TexturedSlam("effect\\회전카운터9.tga", 0, 0); break; - case 767: + case EF_ROLLING10: this->TexturedSlam("effect\\회전카운터10.tga", 0, 0); break; - case 879: + case EF_HEARTASURA: this->TexturedSlam("effect\\kiss2.bmp", 2, 0); break; - case 769: + case EF_STIN6: if (this->state.stateCnt == 5 || this->state.stateCnt == 20 || this->state.stateCnt == 35 || this->state.stateCnt == 50 || this->state.stateCnt == 65) { this->render.position = this->state.parent->render.position; g_modeMgr.GetGameMode(); @@ -20707,51 +20707,51 @@ bool CRagEffect::OnProcess3() { ); } break; - case 756: + case EF_POTION_BERSERK2: if (!this->Potion_Awakening()) { return false; } break; - case 755: + case EF_ORATIO: this->TexturedAura("effect\\마법진1-3.bmp", 19); break; - case 788: + case EF_VENOMIMPRESS: this->TexturedAura("effect\\베놈_상태.bmp", 22); break; - case 789: + case EF_FROSTMISTY: this->TexturedAura("effect\\빙결_상태.bmp", 22); break; - case 940: + case EF_COLDSTATUS: this->TexturedAura("effect\\얼음결정체1.tga", 22); break; - case 790: + case EF_BURNING: this->TexturedAura("effect\\발화_상태.bmp", 22); break; - case 754: + case EF_GLASSWALL3: this->WhiteRingWave(); if (!this->TexturedRisingRingStages("effect\\alpha_down.tga", 0)) { return false; } break; - case 883: + case EF_GLASSWALL4: this->TexturedColumn("effect\\ef_epitree.tga", 30); this->WhiteRingWave(); this->TexturedRisingRingStages("effect\\alpha_down.tga", 1); break; - case 884: + case EF_GRADIUS_LASER: this->TexturedTripleOrbit("effect\\white02.bmp"); break; - case 753: + case EF_CLEARTIME: if (this->state.stateCnt == 1) { PlayEffectWave(*this, "effect\\샤프슈팅.wav"); } this->TexturedRisingOrbs("effect\\white02.bmp", 1); this->TexturedMark("effect\\storm2.tga", 8); break; - case 751: + case EF_FIREBALL2: this->ShadedFireballVolley(); break; - case 750: + case EF_CONCENTRATION2: if (this->state.stateCnt >= 10 && this->state.stateCnt <= 40) { if (this->state.stateCnt % 2 == 0) { if ((this->state.parent->render.flags & 1) == 0) { @@ -20764,69 +20764,69 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 745: + case EF_AIMED_STR: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 1) { PlayEffectWave(*this, "aimed.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 746: + case EF_ARROWSTORM_STR: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 1) { PlayEffectWave(*this, "arrowstorm.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 747: - case 748: + case EF_LAULAMUS_STR: + case EF_LAUAGNUS_STR: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 1) { PlayEffectWave(*this, "lauagnus.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 749: + case EF_MILSHIELD_STR: this->render.position = this->state.parent->render.position; this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 744: + case EF_CLOAKING2: this->AssassinCloaking(); break; - case 739: + case EF_MAGENTA_TRAP: this->TexturedClassChange(53); break; - case 740: + case EF_COBALT_TRAP: this->TexturedClassChange(52); break; - case 741: + case EF_MAIZE_TRAP: this->TexturedClassChange(51); break; - case 742: + case EF_VERDURE_TRAP: this->TexturedClassChange(54); break; - case 743: + case EF_NORMAL_TRAP: this->TexturedClassChange(50); break; - case 732: + case EF_EARTHWALL: this->StoneWall(); break; - case 730: + case EF_SPR_SOULE: this->TexturedClassChange(39); break; - case 735: + case EF_CHOOKGI_FIRE: this->ElementalOrbit(10); break; - case 736: + case EF_CHOOKGI_WIND: this->ElementalOrbit(11); break; - case 737: + case EF_CHOOKGI_WATER: this->ElementalOrbit(12); break; - case 738: + case EF_CHOOKGI_GROUND: this->ElementalOrbit(13); break; - case 733: + case EF_SOULBREAKER4: if (this->state.stateCnt == 20) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\기공포.wav"); @@ -20839,7 +20839,7 @@ bool CRagEffect::OnProcess3() { } this->SonicWave(1); break; - case 723: + case EF_CHIMTO2: { this->render.position = this->state.parent->render.position; const auto* player = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player); @@ -20851,7 +20851,7 @@ bool CRagEffect::OnProcess3() { } this->CHIMTO(12); break; - case 726: + case EF_FROSTMYSTY: if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\t_에너지방출.wav"); @@ -20859,42 +20859,42 @@ bool CRagEffect::OnProcess3() { this->SaintWing("effect\\freeze_a.bmp"); this->SnowFall("", 1); break; - case 725: + case EF_DETECT2: this->TexturedSkillAura(2); break; - case 724: + case EF_WINDCUTTER: if (this->state.stateCnt == 1) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\wl_siennaexecrate.wav"); } this->TexturedSkillAura(8); break; - case 722: + case EF_IGN_STR: this->TexturedSkillAura(7); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 727: + case EF_CRIMSON_STR: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 1) { PlayEffectWave(*this, "crimson_r.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 728: + case EF_HELL_STR: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 1) { PlayEffectWave(*this, "hell_in.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 734: + case EF_CHAINL_STR: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 1) { PlayEffectWave(*this, "chainlight.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 720: + case EF_SOULBREAKER3: if (this->state.stateCnt == 20) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\기공포.wav"); @@ -20907,189 +20907,189 @@ bool CRagEffect::OnProcess3() { } this->SonicWave(1); break; - case 719: + case EF_FORESTLIGHT5: this->ForestLight("effect\\cloud11.tga", 12); break; - case 718: + case EF_FIREPILLARON2: this->RingStack(1); for (int index = 0; index < 3; ++index) { this->TexturedSpreadFlat("effect\\ring_white.tga", 11); } break; - case 715: - case 716: + case EF_BOTTOM_BLUE: + case EF_BOTTOM_BLUE2: this->TexturedFourRing("effect\\ring_blue.tga", 10); this->TexturedFourRing("effect\\ring_blue.tga", 11); break; - case 713: + case EF_YELLOWFLY1: this->WhiteLightSparkle(0); break; - case 714: + case EF_YELLOWFLY2: this->WhiteLightSparkle(1); break; - case 946: + case EF_YELLOWFLY3: this->WhiteLightSparkle(2); break; - case 711: + case EF_MAP_MAGICWALL: this->WaterfallSheets(0, 10, 10); for (int index = 0; index < 2; ++index) { this->FreezingCircle(6); } break; - case 710: + case EF_MAP_GREENLIGHT: this->TexturedAura("effect\\b.bmp", 18); this->TexturedAura("effect\\glow02.bmp", 16); this->TexturedAura("effect\\glow02.bmp", 17); this->FreezingCircle(5); break; - case 712: + case EF_MAP_GREENLIGHT2: this->TexturedAura("effect\\b.bmp", 18); this->TexturedAura("effect\\glow03.bmp", 16); this->TexturedAura("effect\\glow03.bmp", 17); this->FreezingCircle(7); break; - case 708: + case EF_STORM_MIN: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\wizard_stormgust.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 703: + case EF_CIRCLELIGHT: this->TexturedBeams("effect\\alpha_upper.tga", 0); this->FreezingCircle(4); break; - case 707: + case EF_ITEM318: this->TexturedClassChange(37); break; - case 697: + case EF_CLOUD7: for (int index = 0; index < 80; ++index) { this->SkyCloud(7); } break; - case 698: + case EF_CLOUD8: for (int index = 0; index < 80; ++index) { this->SkyCloud(8); } break; - case 693: + case EF_GLOW1: this->TexturedAura("effect\\glow01.bmp", 14); break; - case 694: + case EF_GLOW2: this->TexturedAura("effect\\glow02.bmp", 14); break; - case 701: + case EF_GLOW11: this->TexturedAura("effect\\glow11.bmp", 15); break; - case 702: + case EF_GLOW12: this->TexturedAura("effect\\glow12b .bmp", 14); break; - case 695: + case EF_GLOW4: this->Map_MagicZone("effect\\glow04.bmp", 5); for (int index = 2; index < 21; index += 2) { this->TexturedOrbitDust("effect\\mpa3.tga", index, 2); } break; - case 692: + case EF_MAP_GHOST: this->FreezingCircle(3); break; - case 689: + case EF_DUST: this->TorchDust(0); break; - case 690: + case EF_TORCH_RED: this->TorchDust(1); break; - case 691: + case EF_TORCH_GREEN: this->TorchDust(2); break; - case 696: + case EF_TORCH_PURPLE: this->TorchDust(3); break; - case 650: + case EF_MAP_MAGICZONE: this->Map_MagicZone("effect\\mjin2.tga", 0); this->Map_MagicZone("effect\\mjin.tga", 1); this->Map_Pika("effect\\pikapika2.bmp"); this->WideTripleRingStack("effect\\ring_blue.tga"); break; - case 651: + case EF_MAP_MAGICZONE2: this->Map_MagicZone("effect\\mjin2.tga", 2); this->Map_MagicZone("effect\\mjin.tga", 3); for (int index = 2; index < 21; index += 2) { this->TexturedOrbitDust("effect\\mpa3.tga", index, 0); } break; - case 687: + case EF_MAP_MAGICZONE3: this->Map_MagicZone("effect\\마법진1-1.bmp", 4); this->Map_MagicZone("effect\\마법진1-2.bmp", 14); this->Map_MagicZone("effect\\마법진1-3.bmp", 4); break; - case 688: + case EF_MAP_MAGICZONE4: this->Map_MagicZone("effect\\마법진2-1.bmp", 4); this->Map_MagicZone("effect\\마법진2-2.bmp", 14); this->Map_MagicZone("effect\\마법진2-3.bmp", 4); break; - case 682: + case EF_POK_LOVE: this->TexturedClassChange(32); break; - case 683: + case EF_POK_WHITE: this->TexturedClassChange(33); break; - case 684: + case EF_POK_VALEN: this->TexturedClassChange(34); break; - case 685: + case EF_POK_BIRTH: this->TexturedClassChange(35); break; - case 686: + case EF_POK_CHRISTMAS: this->TexturedClassChange(36); break; - case 681: + case EF_MAPSPHERE: this->TexturedAura("effect\\구체2.bmp", 12); this->TexturedAura("effect\\구체3.bmp", 13); this->TexturedAura("effect\\구체4.bmp", 11); this->TexturedAura("effect\\구체5.bmp", 10); break; - case 700: + case EF_MAPSPHERE2: this->TexturedAura("effect\\구체12.bmp", 12); this->TexturedAura("effect\\구체3.bmp", 13); this->TexturedAura("effect\\구체14.bmp", 11); this->TexturedAura("effect\\구체15.bmp", 10); break; - case 678: + case EF_GREEN99_3: this->FreezingCircle(2); break; - case 679: + case EF_GREEN99_5: this->TripleRingStack("effect\\ring_white.tga", 1); break; - case 680: + case EF_GREEN99_6: this->TexturedDoubleRing("effect\\pikapika2.bmp", 1); break; - case 677: + case EF_CRITICALWOUND: if (this->state.stateCnt == 1) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\wideb.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 676: + case EF_NPC_SLOWCAST: this->TexturedAura("effect\\blast_mine##clock.bmp", 4); if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_DecAgility.wav"); } break; - case 675: + case EF_GUARD3: this->KyrieGuard("effect\\guardK.tga", 2); break; - case 674: + case EF_BOTTOM_EVILLAND: this->Bottom_Music("effect\\curse.bmp", 6); break; - case 671: + case EF_BOTTOM_RUNNER: this->TexturedHalo("effect\\hanmoon1.tga", 3); break; - case 672: + case EF_BOTTOM_TRANSFER: this->TexturedHalo("effect\\hanmoon2.tga", 3); break; - case 667: + case EF_DA_SPACE: if ((this->state.parent->render.flags & 2) == 0) { this->state.parent->render.flags += 2; if (this->state.stateCnt < 25) { @@ -21099,7 +21099,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 666: + case EF_NPC_EARTHQUAKE: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\earth_quake.wav"); @@ -21117,16 +21117,16 @@ bool CRagEffect::OnProcess3() { g_modeMgr.GetGameMode()->SendMsg(122, 0, 0, 0, 0); } break; - case 665: + case EF_BUBBLE_DROP: this->Bubble_Drop(); break; - case 655: + case EF_UNDEADBODY: if ((this->state.parent->render.flags & 0x80000) == 0) { this->state.parent->render.flags += 0x80000; this->state.parent->render.unknown_00F2 = static_cast(std::min(this->state.stateCnt, 200)); } break; - case 656: + case EF_UNDEADBODY_DEL: if (this->state.stateCnt < 40) { if ((this->state.parent->render.flags & 0x80000) == 0) { this->state.parent->render.flags += 0x80000; @@ -21134,62 +21134,62 @@ bool CRagEffect::OnProcess3() { } } break; - case 633: + case EF_ISSEN: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\일섬.wav"); } this->TexturedClassChange(18); break; - case 632: + case EF_KASUMIKIRI: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\안개베기.wav"); } this->TexturedClassChange(17); break; - case 630: + case EF_KIRIKAGE: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\그림자베기.wav"); } this->TexturedClassChange(15); break; - case 652: + case EF_DAMAGE1: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_hit2.wav"); this->state.parent->SendMsg(nullptr, 88, 0, 1, 0, 0xFFFF0000, 0, 114, 0, 0, 0, 0, 0, 0, 0); } break; - case 653: + case EF_DAMAGE1_2: if (this->state.stateCnt == 0) { this->state.parent->SendMsg(nullptr, 88, 0, 1, 0, 0xFFFF0000, 0, 114, 0, 0, 0, 0, 0, 0, 0); } break; - case 654: + case EF_DAMAGE1_3: if (this->state.stateCnt == 0) { this->state.parent->SendMsg(nullptr, 88, 0, 1, 0, 0xFFFF00FF, 0, 114, 0, 0, 0, 0, 0, 0, 0); } break; - case 645: + case EF_SPREADATTACK: this->TexturedClassChange(28); break; - case 643: + case EF_RAPIDSHOWER: if (this->state.stateCnt == 20) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\래피드샤워.wav"); } this->TexturedClassChange(26); break; - case 644: + case EF_MAGICALBULLET: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\매지컬블릿.wav"); } this->TexturedClassChange(27); break; - case 648: + case EF_TRIPLEACTION: if (this->state.stateCnt == 25) { this->render.position = this->state.parent->render.position; g_modeMgr.GetGameMode(); @@ -21197,77 +21197,77 @@ bool CRagEffect::OnProcess3() { } this->TexturedClassChange(30); break; - case 647: + case EF_TRACKING: this->TexturedClassChange(29); break; - case 638: + case EF_LIGHTNING_S: this->TexturedClassChange(21); break; - case 912: + case EF_WALLOFTHORN: this->TexturedClassChange(61); break; - case 921: + case EF_VACUUM: this->TexturedClassChange(64); this->TexturedClassChange(65); break; - case 916: + case EF_DEMONICFIRE: this->MonsterSpriteBurst(10); break; - case 917: + case EF_DEMONICFIRE2: this->MonsterSpriteBurst(11); break; - case 918: + case EF_DEMONICFIRE3: this->MonsterSpriteBurst(12); break; - case 929: + case EF_DEMONICFIRE4: this->MonsterSpriteBurst(15); break; - case 639: + case EF_BLIND_S: this->TexturedClassChange(22); break; - case 640: + case EF_POISON_S: this->TexturedClassChange(23); break; - case 641: + case EF_FREEZING_S: this->TexturedClassChange(24); break; - case 642: + case EF_FLARE_S: this->TexturedClassChange(25); break; - case 1120: + case EF_SU_LUNATIC_CARROT_BEAT: this->TexturedClassChange(90); break; - case 631: + case EF_TATAMI: this->TexturedClassChange(16); break; - case 635: + case EF_BAKU: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\폭염룡.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 636: + case EF_HYOUSYOURAKU: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\빙정락.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 634: + case EF_KAEN: this->TexturedClassChange(19); break; - case 637: + case EF_DESPERADO: if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\데스페라도.wav"); } this->TexturedClassChange(20); break; - case 629: + case EF_CHOOKGI3: this->ElementalOrbit(3); break; - case 628: + case EF_BASH3D5: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\더스트샷.wav"); @@ -21276,7 +21276,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadSpin("effect\\alpha_center.tga", index, 5); } break; - case 627: + case EF_RG_COIN3: if (this->state.stateCnt == 21) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\디스암.wav"); @@ -21286,14 +21286,14 @@ bool CRagEffect::OnProcess3() { this->TexturedSprayKind("유저인터페이스\\item\\더블샷건.bmp", 5.0f, 0); this->TexturedSprayKind("유저인터페이스\\item\\더스크.bmp", 5.0f, 0); break; - case 624: + case EF_STIN5: if (this->state.stateCnt == 1) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\t_바람방출.wav"); } this->TexturedSlashCross("effect\\270바람.tga"); break; - case 623: + case EF_CHEMICAL4: if (this->state.stateCnt == 28) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\피어싱샷.wav"); @@ -21303,7 +21303,7 @@ bool CRagEffect::OnProcess3() { this->LineStreakLayered(21); } break; - case 622: + case EF_THUNDERSTORM2: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_ThunderStorm.wav"); @@ -21319,7 +21319,7 @@ bool CRagEffect::OnProcess3() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 621: + case EF_STIN4: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\풍인.wav"); @@ -21328,40 +21328,40 @@ bool CRagEffect::OnProcess3() { this->TexturedSlashWave("effect\\270바람.tga", index % 2); } break; - case 600: + case EF_THROWITEM6: this->ThrowItem("유저인터페이스\\item\\베넘나이프.bmp", 3); break; - case 613: + case EF_THROWITEM7: this->ThrowItem("유저인터페이스\\item\\수리검.bmp", 3); break; - case 614: + case EF_THROWITEM8: this->ThrowItem("유저인터페이스\\item\\쿠나이_독.bmp", 3); break; - case 615: + case EF_THROWITEM9: this->ThrowItem("유저인터페이스\\item\\풍마_열화.bmp", 3); break; - case 616: + case EF_THROWITEM10: this->ThrowItem("effect\\coin_a.bmp", 3); break; - case 620: + case EF_BOTTOM_SUITON: this->TexturedFlare("effect\\ring_blue.tga", 14, 0, 0); break; - case 619: + case EF_HYOUSENSOU: this->EarthSpike(2); break; - case 618: + case EF_KOUENKA: this->SakuraFireArrow(); for (int index = 0; index < 2; ++index) { this->TexturedQuadSpin("effect\\alpha_center.tga", index, 2); } break; - case 617: + case EF_BUNSINJYUTSU: this->SpawnPaleBlur(); break; - case 752: + case EF_BUNSINJYUTSU2: this->SpawnLightBlur(); break; - case 608: + case EF_COOKING_OK: if (this->state.stateCnt == 45) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "_heal_effect.wav"); @@ -21370,28 +21370,28 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 569: - case 603: - case 717: - case 959: - case 960: - case 964: - case 965: - case 966: - case 967: - case 975: - case 1019: - case 1020: - case 1021: - case 1029: - case 1031: - case 1033: - case 1055: + case EF_HAMIDEFENCE: + case EF_FIREHIT2: + case EF_WEWISH: + case EF_POISON_MIST: + case EF_ERASER_CUTTER: + case EF_LAVA_SLIDE: + case EF_SONIC_CLAW: + case EF_TINDER_BREAKER: + case EF_MIDNIGHT_FRENZY: + case EF_VOLCANIC_ASH: + case EF_ALL_RAY_OF_PROTECTION: + case EF_VENOMFOG: + case EF_DUSTSTORM: + case EF_DANCE_BLADE_ATK: + case EF_INVINCIBLEOFF2: + case EF_DEATHSUMMON: + case EF_NPC_CHILL: if (!this->ProcessEZ2STRC10830()) { return false; } break; - case 609: + case EF_COOKING_FAIL: if (this->state.stateCnt == 50) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "caramel_die.wav"); @@ -21400,35 +21400,35 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 610: + case EF_TEMP_OK: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "_heal_effect.wav"); } this->TexturedAura("effect\\success.bmp", 3); break; - case 611: + case EF_TEMP_FAIL: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "caramel_die.wav"); } this->TexturedAura("effect\\failed.bmp", 3); break; - case 606: + case EF_FVOICE: this->CHIMTO(2); break; - case 607: + case EF_WINK: this->CHIMTO(1); break; - case 604: + case EF_NPC_STOP2: this->NpcStop(2); break; - case 605: + case EF_NPC_STOP2_DEL: if (this->state.stateCnt == 0) { this->state.parent->SendMsg(nullptr, 109, 0, 604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } break; - case 601: + case EF_SIGHT2: { this->render.position = this->state.parent->render.position; const RenderVertex vertex = TransformVert(static_cast(g_modeMgr.GetGameMode())->camera->frame.view, this->state.parent->render.position); @@ -21456,38 +21456,38 @@ bool CRagEffect::OnProcess3() { } } break; - case 590: + case EF_KAIZEL: if (this->state.stateCnt == 15) { this->JobLvUp50_2(0); this->JobLvUp50_2(45); } break; - case 582: + case EF_ANGEL3: this->SuperAngel(11, 0); this->SuperAngel(10, 0); break; - case 573: + case EF_TWILIGHT1: for (int index = 0; index < 80; ++index) { this->ScatterItemIcons(0); } break; - case 574: + case EF_TWILIGHT2: for (int index = 0; index < 80; ++index) { this->ScatterItemIcons(1); } break; - case 575: + case EF_TWILIGHT3: for (int index = 0; index < 80; ++index) { this->ScatterItemIcons(2); } break; - case 542: + case EF_BLUEBODY: if ((this->state.parent->render.flags & 0x4000) == 0 && this->state.stateCnt <= 150) { this->state.parent->render.flags += 0x4000; this->state.parent->render.unknown_00F6 = static_cast(this->state.stateCnt / 3); } break; - case 625: + case EF_MADNESS_BLUE: if (this->state.stateCnt % 4 == 0) { if ((this->state.parent->render.flags & 0x4000) == 0) { this->state.parent->render.flags += 0x4000; @@ -21495,7 +21495,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 626: + case EF_MADNESS_RED: if (this->state.stateCnt % 4 == 0) { if ((this->state.parent->render.flags & 0x40000) == 0) { this->state.parent->render.flags += 0x40000; @@ -21503,7 +21503,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 543: + case EF_HATED: if (this->state.stateCnt < 200 && (this->state.parent->render.flags & 0x4000) == 0) { this->state.parent->render.flags += 0x4000; if (this->state.stateCnt <= 25) { @@ -21515,27 +21515,27 @@ bool CRagEffect::OnProcess3() { } this->ParticleTime("effect\\white02.bmp", 1); break; - case 572: + case EF_HATED2: if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_따듯한마법.wav"); } this->ParticleTime("effect\\white02.bmp", 3); break; - case 540: + case EF_BABYBODY_BACK: if (this->state.stateCnt <= 15 && (this->state.parent->render.flags & 16) == 0) { this->state.parent->render.flags += 16; this->state.parent->render.pulsePhases[0] = static_cast(45 - this->state.stateCnt * 3); } break; - case 539: + case EF_THROWITEM4: this->ThrowItem("유저인터페이스\\item\\화염병.bmp", 10); this->ThrowItem("유저인터페이스\\item\\염산병.bmp", 11); break; - case 541: + case EF_THROWITEM5: this->ThrowItem("유저인터페이스\\item\\버서크포션.bmp", 1); break; - case 538: + case EF_GREENBODY: if (this->state.stateCnt < 31) { if ((this->state.parent->render.flags & 8) == 0) { this->state.parent->render.flags += 8; @@ -21550,7 +21550,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 768: + case EF_PURPLEBODY: if (this->state.stateCnt < 31) { if ((this->state.parent->render.flags & 8) == 0) { this->state.parent->render.flags += 8; @@ -21565,73 +21565,73 @@ bool CRagEffect::OnProcess3() { } } break; - case 537: + case EF_ACIDDEMON: if (this->state.stateCnt == 5) { g_modeMgr.GetGameMode()->SendMsg(122, 0, 0, 0, 0); } this->TexturedFireWall("effect\\ring_black.tga", 33); break; - case 515: + case EF_CLOUD4: for (int index = 0; index < 80; ++index) { this->SkyCloud(3); } break; - case 516: + case EF_CLOUD5: for (int index = 0; index < 80; ++index) { this->SkyCloud(4); } break; - case 592: + case EF_CLOUD6: for (int index = 0; index < 80; ++index) { this->SkyCloud(5); } break; - case 523: + case EF_TAROTCARD1: this->TexturedAura("effect\\Tarot01.tga", 1); break; - case 524: + case EF_TAROTCARD2: this->TexturedAura("effect\\Tarot02.tga", 1); break; - case 525: + case EF_TAROTCARD3: this->TexturedAura("effect\\Tarot03.tga", 1); break; - case 526: + case EF_TAROTCARD4: this->TexturedAura("effect\\Tarot04.tga", 1); break; - case 527: + case EF_TAROTCARD5: this->TexturedAura("effect\\Tarot05.tga", 1); break; - case 528: + case EF_TAROTCARD6: this->TexturedAura("effect\\Tarot06.tga", 1); break; - case 529: + case EF_TAROTCARD7: this->TexturedAura("effect\\Tarot07.tga", 1); break; - case 530: + case EF_TAROTCARD8: this->TexturedAura("effect\\Tarot08.tga", 1); break; - case 531: + case EF_TAROTCARD9: this->TexturedAura("effect\\Tarot09.tga", 1); break; - case 532: + case EF_TAROTCARD10: this->TexturedAura("effect\\Tarot10.tga", 1); break; - case 533: + case EF_TAROTCARD11: this->TexturedAura("effect\\Tarot11.tga", 1); break; - case 534: + case EF_TAROTCARD12: this->TexturedAura("effect\\Tarot12.tga", 1); break; - case 535: + case EF_TAROTCARD13: this->TexturedAura("effect\\Tarot13.tga", 1); break; - case 536: + case EF_TAROTCARD14: this->TexturedAura("effect\\Tarot14.tga", 1); break; - case 522: + case EF_GRAVITATION: this->Gravitation(); break; - case 521: + case EF_DOUBLECASTBODY: if (this->state.stateCnt >= 10 && this->state.stateCnt <= 50) { if ((this->state.parent->render.flags & 8) == 0) { this->state.parent->render.flags += 8; @@ -21646,7 +21646,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 518: + case EF_CARTTER: if (this->state.stateCnt == 30) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\wizard_fire_pillar_b.wav"); @@ -21655,10 +21655,10 @@ bool CRagEffect::OnProcess3() { this->TexturedTumble("effect\\whitelight.tga", 0); } break; - case 517: + case EF_BOTTOM_HERMODE: this->TexturedSpin("effect\\white02.bmp"); break; - case 512: + case EF_CHEMICAL2DASH: for (int index = 0; index < 4; ++index) { this->LineStreakLayered(10); this->LineStreakLayered(11); @@ -21675,22 +21675,22 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, 255, 255, 150); } break; - case 513: + case EF_GROUNDSAMPLE: this->GROUNDSAMPLE(); break; - case 514: + case EF_GI_EXPLOSION: this->TexturedCrossFade("effect\\ring_blue.tga"); break; - case 510: + case EF_BEGINASURA11: this->AsuraStrike(1); break; - case 509: + case EF_05VAL: this->Vallentine(2); break; - case 519: + case EF_ITEMFAST: this->Vallentine(3); break; - case 505: + case EF_MEMORIZE: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\priest_suffragium.wav"); } @@ -21705,7 +21705,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 599: + case EF_SHRINK: if (this->state.stateCnt == 5) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); } @@ -21720,22 +21720,22 @@ bool CRagEffect::OnProcess3() { } } break; - case 504: + case EF_CHOOKGI2: this->ElementalOrbit(1); break; - case 497: + case EF_SLIM: this->TexturedRain("유저인터페이스\\item\\레드슬림포션.bmp", 1); this->TexturedLevelRing("effect\\bbbb.bmp", -16, 1); break; - case 498: + case EF_SLIM2: this->TexturedRain("유저인터페이스\\item\\옐로우슬림포션.bmp", 2); this->TexturedLevelRing("effect\\bbbb.bmp", -16, 2); break; - case 499: + case EF_SLIM3: this->TexturedRain("유저인터페이스\\item\\화이트슬림포션.bmp", 3); this->TexturedLevelRing("effect\\bbbb.bmp", -16, 0); break; - case 503: + case EF_SOULLINK: { this->render.position = this->state.parent->render.position; const auto* player = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player); @@ -21753,10 +21753,10 @@ bool CRagEffect::OnProcess3() { this->TexturedOrbit("effect\\whitelight.tga"); this->SoulLink(0); break; - case 506: + case EF_SOULLIGHT: this->TexturedStorm2("effect\\whitelight.tga", 0); break; - case 1195: + case EF_AUTOSHADOWSPELL_ACTIVE: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -21776,7 +21776,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 501: + case EF_CASTSPIN: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -21796,7 +21796,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 502: + case EF_PIERCEBODY: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -21815,7 +21815,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 496: + case EF_GUARD2: this->BlackMaximize("effect\\a01.bmp"); if (this->state.stateCnt >= 10 && this->state.stateCnt <= 30) { if (this->state.stateCnt % 2 == 0) { @@ -21828,7 +21828,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 495: + case EF_RG_COIN2: if (this->state.stateCnt != 1) { if (this->state.stateCnt != 11) { if (this->state.stateCnt != 21) { @@ -21853,13 +21853,13 @@ bool CRagEffect::OnProcess3() { this->TexturedSprayKind("effect\\sword.bmp", 9.0f, 0); } break; - case 494: + case EF_SHIELDBOOMERANG2: this->TexturedShieldThrow("effect\\토마.bmp"); break; - case 520: + case EF_SHIELDBOOMERANG3: this->ShieldBoomerang3("effect\\shield_boomerang.bmp"); break; - case 493: + case EF_EDP: this->EnchantPoison2(); if (this->state.stateCnt < 81) { if (this->state.stateCnt % 2 == 0) { @@ -21872,7 +21872,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 500: + case EF_CHEMICALBODY: if (this->state.stateCnt < 31) { if ((this->state.parent->render.flags & 8) == 0) { this->state.parent->render.flags += 8; @@ -21887,55 +21887,55 @@ bool CRagEffect::OnProcess3() { } } break; - case 557: + case EF_BLUEFALL: this->WaterfallSheets(0, 0, 0); break; - case 558: + case EF_BLUEFALL_90: this->WaterfallSheets(1, 0, 0); break; - case 559: + case EF_FASTBLUEFALL: this->WaterfallSheets(0, 1, 0); break; - case 560: + case EF_FASTBLUEFALL_90: this->WaterfallSheets(1, 1, 0); break; - case 561: + case EF_BIG_PORTAL: this->TexturedMagicRing(0); break; - case 562: + case EF_BIG_PORTAL2: this->TexturedMagicRing(1); break; - case 563: + case EF_SCREEN_QUAKE: if (this->state.stateCnt < 100 && this->state.stateCnt % 5 == 0) { g_modeMgr.GetGameMode()->SendMsg(122, 0, 0, 0, 0); } break; - case 554: + case EF_HITTEXTURE: this->TexturedAura("effect\\freeze_a.bmp", 2); break; - case 555: + case EF_STIN3: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_에너지방출.wav"); } this->SMA(1); break; - case 551: + case EF_SMA: this->SMA(0); break; - case 552: + case EF_SMA2: this->TexturedBlueRing("effect\\ring_blue.tga"); break; - case 556: + case EF_SMA3: this->TexturedComet("effect\\thunder_ball_0001.bmp", 1); break; - case 550: + case EF_QUAKEBODY3: if (this->state.stateCnt >= 31 && this->state.stateCnt <= 50) { this->state.parent->render.flags |= 0x2000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt); } break; - case 602: + case EF_QUAKEBODY4: if (this->state.stateCnt == 20) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\ef_hit6.wav"); @@ -21950,20 +21950,20 @@ bool CRagEffect::OnProcess3() { } } break; - case 548: + case EF_RED_HIT: if (this->state.stateCnt <= 16) { this->state.parent->render.flags |= 0x40000; this->state.parent->render.unknown_00F6 = static_cast(this->state.stateCnt * 3); } break; - case 549: + case EF_BLUE_HIT: if (this->state.stateCnt <= 16) { this->state.parent->render.flags |= 0x4000; this->state.parent->render.unknown_00F6 = static_cast(this->state.stateCnt * 3); } break; - case 544: - case 1398: + case EF_REDLIGHTBODY: + case EF_UNK_1398: if ((this->state.parent->render.flags & 0x40000) == 0) { this->state.parent->render.flags += 0x40000; if (this->state.stateCnt <= 200) { @@ -21973,20 +21973,20 @@ bool CRagEffect::OnProcess3() { } } break; - case 545: + case EF_RO2YEAR: this->Vallentine(4); break; - case 546: + case EF_SMA_READY: this->ParticleTime("effect\\white02.bmp", 2); break; - case 547: + case EF_STIN: if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_바람마법.wav"); } this->TexturedSlashFan("effect\\270바람.tga"); break; - case 553: + case EF_STIN2: if (this->state.stateCnt == 5 || this->state.stateCnt == 20 || this->state.stateCnt == 35 || this->state.stateCnt == 50 || this->state.stateCnt == 65) { this->render.position = this->state.parent->render.position; g_modeMgr.GetGameMode(); @@ -21997,10 +21997,10 @@ bool CRagEffect::OnProcess3() { this->TexturedSlashLevel("effect\\270바람.tga", 0); this->TexturedSlashLevel("effect\\270바람.tga", 1); break; - case 564: + case EF_HOMUNCASTING: this->TexturedSpellRings("effect\\ring_red.tga"); break; - case 565: + case EF_HFLIMOON1: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\h_moonlight_1.wav"); @@ -22009,7 +22009,7 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 566: + case EF_HFLIMOON2: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\h_moonlight_2.wav"); @@ -22018,7 +22018,7 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 567: + case EF_HFLIMOON3: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\h_moonlight_3.wav"); @@ -22027,7 +22027,7 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 568: + case EF_HO_UP: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "levelup.wav"); @@ -22036,15 +22036,15 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 673: + case EF_CRYSTAL_BLUE: this->ColoredFlash(2, 0, 0, 255); break; - case 593: - case 594: - case 595: - case 596: - case 597: - case 598: + case EF_FOOD01: + case EF_FOOD02: + case EF_FOOD03: + case EF_FOOD04: + case EF_FOOD05: + case EF_FOOD06: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "_heal_effect.wav"); @@ -22053,60 +22053,60 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 570: + case EF_HAMICASTLE: this->TexturedClassChange(0); break; - case 571: + case EF_HAMIBLOOD: this->TexturedClassChange(1); break; - case 576: + case EF_ITEM_THUNDER: this->TexturedClassChange(2); break; - case 577: + case EF_ITEM_CLOUD: this->TexturedClassChange(3); break; - case 578: + case EF_ITEM_CURSE: this->TexturedClassChange(4); break; - case 579: + case EF_ITEM_ZZZ: this->TexturedClassChange(5); break; - case 580: + case EF_ITEM_RAIN: this->TexturedClassChange(6); break; - case 581: + case EF_ITEM_LIGHT: this->ForestLight("effect\\cloud11.tga", 11); break; - case 583: + case EF_M01: this->TexturedClassChange(7); break; - case 584: + case EF_M02: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\풀버스터.wav"); } this->TexturedClassChange(8); break; - case 585: + case EF_M03: this->TexturedClassChange(9); break; - case 586: + case EF_M04: this->TexturedClassChange(10); break; - case 587: + case EF_M05: this->TexturedClassChange(11); break; - case 588: + case EF_M06: this->TexturedClassChange(12); break; - case 589: + case EF_M07: this->TexturedClassChange(13); break; - case 612: + case EF_HAPGYEOK: this->TexturedClassChange(14); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 668: + case EF_DRAGONFEAR: if (this->state.stateCnt == 1) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\dragonfear.wav"); @@ -22114,26 +22114,26 @@ bool CRagEffect::OnProcess3() { } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 491: - case 492: - case 507: - case 508: - case 646: - case 649: - case 670: - case 699: - case 704: - case 705: - case 706: - case 709: - case 721: - case 731: - case 987: - case 988: - case 1006: + case EF_MOCHI: + case EF_LAMADAN: + case EF_MAPAE: + case EF_ITEMPOKJUK: + case EF_TRACKCASTING: + case EF_BULLSEYE: + case EF_WIDECONFUSE: + case EF_FLOWERLEAF: + case EF_ITEM315: + case EF_ITEM316: + case EF_ITEM317: + case EF_POK_JAP: + case EF_ADO_STR: + case EF_DHOWL_STR: + case EF_2011RWC: + case EF_2011RWC2: + case EF_NO100_FIRECRACKER: this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 669: + case EF_BLEEDING: if (this->state.stateCnt == 1) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\wideb.wav"); @@ -22141,8 +22141,8 @@ bool CRagEffect::OnProcess3() { this->ColoredFlash(1, 255, 0, 0); this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 1015: - case 1017: + case EF_RUN_MAKE_OK: + case EF_MIRESULT_MAKE_OK: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\p_success.wav"); @@ -22151,8 +22151,8 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 1016: - case 1018: + case EF_RUN_MAKE_FAILURE: + case EF_MIRESULT_MAKE_FAIL: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\p_failed.wav"); @@ -22161,32 +22161,32 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 1026: + case EF_ICEMINE: this->TexturedClassChange(84); break; - case 1028: + case EF_ICEMINE_1: this->TexturedClassChange(85); break; - case 1032: + case EF_MAXPAIN: this->KyrieGuard("effect\\guardK.tga", 3); break; - case 1037: + case EF_YELLOBODY: this->state.parent->SetColor(-1, 251, 200, 4); break; - case 1038: + case EF_COLORPAPER2: for (int index = 0; index < 50; ++index) { this->WeddingBurst("effect\\white02.bmp", 1); } break; - case 1040: + case EF_GC_DARKCROW: if (!this->ProcessEZ2STR(0.0f, 40.0f, 0.0f)) { return false; } break; - case 1041: + case EF_RK_DRAGONBREATH_WATER: this->TexturedClassChange(86); break; - case 1042: + case EF_ALL_FULL_THROTTLE: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\all_full_throttle.wav"); } @@ -22194,7 +22194,7 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 1043: + case EF_SR_FLASHCOMBO: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\sr_flashcombo.wav"); } @@ -22202,7 +22202,7 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 1044: + case EF_RK_LUXANIMA: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\rk_luxanima.wav"); } @@ -22210,7 +22210,7 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 1046: + case EF_SO_ELEMENTAL_SHIELD: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\so_elemental_shield.wav"); } @@ -22218,7 +22218,7 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 1047: + case EF_AB_OFFERTORIUM: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\ab_offertorium.wav"); } @@ -22226,17 +22226,17 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 1057: + case EF_AB_OFFERTORIUM_RING: if (!this->ProcessEZ2STR(0.0f, -5.0f - static_cast(reinterpret_cast(this->state.parent)->MountHeightOffset()), 0.0f)) { return false; } break; - case 1048: + case EF_WL_TELEKINESIS_INTENSE: if (!this->ProcessEZ2STR(0.0f, 0.0f, 0.0f)) { return false; } break; - case 1049: + case EF_GN_ILLUSIONDOPING: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\gn_illusiondoping.wav"); } @@ -22244,12 +22244,12 @@ bool CRagEffect::OnProcess3() { return false; } break; - case 1050: + case EF_NC_MAGMA_ERUPTION: if (!this->ProcessEZ2STR(0.0f, -25.0f, 0.0f)) { return false; } break; - case 1051: + case EF_LG_KINGS_GRACE: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { const vector3d offset = {0.0f, 0.0f, 0.0f}; @@ -22279,27 +22279,27 @@ bool CRagEffect::OnProcess3() { } } break; - case 1045: + case EF_CLOUD10: for (int index = 0; index < 30; ++index) { this->SkyCloud(5); } break; - case 1052: + case EF_BLOODDRAIN2: this->RedParticleSpray(1); break; - case 1053: + case EF_NPC_WIDEWEB: this->TexturedClassChange(87); break; - case 1054: + case EF_NPC_BURNT: this->TexturedClassChange(88); break; - case 1065: + case EF_WHITEBODY: if ((this->state.parent->render.flags & 1) == 0) { this->state.parent->render.flags += 1; } this->state.parent->SetColor(-1, 255, 255, 255); break; - case 1072: + case EF_JUMPBODY1: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_회피2.wav"); @@ -22309,7 +22309,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt - 10); } break; - case 1081: + case EF_ESCAPE: { float x = this->state.parent->render.position.x - this->state.deltaPos[0]; float y = this->state.parent->render.position.y - this->state.deltaPos[1]; @@ -22333,7 +22333,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 1082: + case EF_XENO_SLASHER: if (this->state.stateCnt == 20) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\기공포.wav"); @@ -22346,10 +22346,10 @@ bool CRagEffect::OnProcess3() { } this->SonicWave(2); break; - case 1088: + case EF_POWER_OF_GAIA: this->TexturedPulseKind("effect\\ring_yellow.tga", 4); break; - case 1115: + case EF_SU_CN_METEOR: for (int index = 0; index < 40; ++index) { this->SkyCloud(11); this->SkyCloud(12); @@ -22357,14 +22357,14 @@ bool CRagEffect::OnProcess3() { this->SkyCloud(14); } break; - case 1122: + case EF_SU_SOUL_ATTACK: if (this->state.stateCnt >= EffectLifetime(1122) - 1) { this->state.stateCnt = 0; } - case 757: + case EF_CIRCLEPOWER: this->EmpShockBurst("effect\\emp shock.tga", 0); break; - case 1131: + case EF_SU_SPIRIT_OF_LIFE: if (EffectLifetime(1131) - 1 <= this->state.stateCnt) { this->state.stateCnt = 0; } @@ -22373,27 +22373,27 @@ bool CRagEffect::OnProcess3() { } this->state.parent->SetColor(-1, 255, 255, 255); break; - case 1132: + case EF_SU_STOOP: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\mon_금강불괴.wav"); } break; - case 1135: + case EF_RL_B_TRAP: this->ElementalOrbit(4); break; - case 1145: + case EF_RL_HAMMER_OF_GOD: for (int index = 0; index < 65; ++index) { this->SkyCloud(15); } break; - case 1148: + case EF_RL_R_TRIP: this->state.parent->SetColor(-1, 220, 150, 0); break; - case 1149: + case EF_IMMUNE_PROPERTY: this->KyrieGuard("effect\\guardK.tga", 4); break; - case 1150: + case EF_MOVE_COORDINATE: for (int index = 0; index < 30; ++index) { this->WhiteLightTrail("effect\\whitelight.tga", 1); } @@ -22405,16 +22405,16 @@ bool CRagEffect::OnProcess3() { this->TexturedScatterArc("effect\\peong2.tga", angle, 1); } break; - case 1185: + case EF_WARPZONE3: this->AlphaDownRipples("effect\\ring_red.tga", 1); break; - case 1204: + case EF_SMA_BLACK: this->SMA(99); break; - case 1205: + case EF_SMA_BLACK2: this->BlueRingStack(); break; - case 1206: + case EF_STIN_BLACK: if (this->state.stateCnt == 5 || this->state.stateCnt == 20 || this->state.stateCnt == 35 || this->state.stateCnt == 50 || this->state.stateCnt == 65) { this->render.position = this->state.parent->render.position; g_modeMgr.GetGameMode(); @@ -22425,7 +22425,7 @@ bool CRagEffect::OnProcess3() { this->TexturedSlashLevel("effect\\270바람.tga", 4); this->TexturedSlashLevel("effect\\270바람.tga", 5); break; - case 1207: + case EF_PEONG_BLACK: this->SonicSlashFan(1); if (this->state.stateCnt >= 50 && this->state.stateCnt <= 80) { if ((this->state.parent->render.flags & 8) == 0) { @@ -22434,7 +22434,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, (125 - this->state.stateCnt) * 2, (125 - this->state.stateCnt) * 2, 250); } break; - case 1208: + case EF_ENERGYDRAIN_BLACK: this->SonicSlashFan(2); if (this->state.stateCnt >= 50 && this->state.stateCnt <= 80) { if ((this->state.parent->render.flags & 8) == 0) { @@ -22443,7 +22443,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, (125 - this->state.stateCnt) * 2, (125 - this->state.stateCnt) * 2, 250); } break; - case 1209: + case EF_BLINK_BODY: if (this->state.stateCnt < 61) { if ((this->state.parent->render.flags & 8) != 0) { this->state.parent->render.flags += 8; @@ -22458,10 +22458,10 @@ bool CRagEffect::OnProcess3() { } } break; - case 1210: + case EF_LINELINK5: this->TrackCloud(0); break; - case 1224: + case EF_SOLAR_EXPLOSION: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\mon_침투경.wav"); @@ -22471,10 +22471,10 @@ bool CRagEffect::OnProcess3() { this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt - 14); } break; - case 1240: + case EF_SOUL_REAPER_COLLECT: this->DigitalSpace(1240); break; - case 1286: + case EF_NEW_SEVERERAINSTORM_HIT: if (this->state.stateCnt % 30 == 0) { const vector3d& position = this->state.parent->render.position; g_effectMgr->Spawn(0, g_serviceOptions.Get(229) ? 1533 : 1285, position.x, position.y, position.z, 0, -1, 0, 0); @@ -22484,7 +22484,7 @@ bool CRagEffect::OnProcess3() { this->SevereRainstormCylinder(45, "", 3, 8.0f); this->SevereRainstormCylinder(45, "", 3, 8.0f); break; - case 1365: + case EF_NEW_CART_TORNADO: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_회오리차기.wav"); @@ -22496,23 +22496,23 @@ bool CRagEffect::OnProcess3() { } } break; - case 1399: + case EF_NEW_HEAVENS_DRIVE: this->StoneSpike(); break; - case 1409: + case EF_NEW_TRIPLEATTACK: for (int index = 0; index < 4; ++index) { this->LineStreak(0); this->LineStreak(1); } break; - case 1418: + case EF_NEW_MOON_SLASH: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); this->TexturedQuadRingSized(45, "effect\\new_comet\\new_comet_cast_ring\\ring_rainbow.tga", 20); } break; - case 1420: + case EF_NEW_GRANDCROSS: if ((this->state.parent->render.flags & 0x4000) == 0) { this->state.parent->render.flags += 0x4000; if (this->state.stateCnt <= 150) { @@ -22522,14 +22522,14 @@ bool CRagEffect::OnProcess3() { } } break; - case 1449: + case EF_NEW_FROSTMISTY: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); this->QuadRingStackSized("effect\\new_jackfrost\\ring_ice.tga", 2); } break; - case 1448: + case EF_NEW_JACKFROST_ART: { const vector3d offset = {0.0f, 0.0f, 0.0f}; this->render.position = this->state.parent->render.position; @@ -22569,13 +22569,13 @@ bool CRagEffect::OnProcess3() { } } break; - case 1525: + case EF_WHITEIMPRISON_STATE: this->TexturedAura("effect\\Buff_Prison.bmp", 31); break; - case 1531: + case EF_POK_THUNDER: this->TexturedClassChange(91); break; - case 1545: + case EF_NEW_MAGNUM_BREAK: if (this->state.stateCnt >= 0) { this->state.parent->render.flags |= 0x1000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt); @@ -22590,7 +22590,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, 0, 0, 255); } break; - case 1556: + case EF_NEW_HEAL_BLUE: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { { @@ -22603,7 +22603,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_blue.tga", 21); } break; - case 1923: + case EF_FLAME_TRAP_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { { @@ -22616,7 +22616,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_red.tga", 44); } break; - case 1932: + case EF_NEW_PRAMEN_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { { @@ -22628,7 +22628,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(90, "effect\\new_pramen\\ring_blue.tga", 5); } break; - case 1560: + case EF_NEW_HEAL_WHITE: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22636,7 +22636,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 22); } break; - case 1565: + case EF_NEW_HEAL_YELLOW: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22644,7 +22644,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_yellow.tga", 23); } break; - case 1568: + case EF_NEW_CROSSIMPACT_HIT: for (int index = 0; index < 2; ++index) { if (g_serviceOptions.Get(229)) { this->LineStreakTextured(10, "effect\\mineffect\\new_crossimpact\\new_crossimpact_line\\line_pitch.tga"); @@ -22659,7 +22659,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 2416: + case EF_ABC_CHASING_LINE: { std::string path("effect\\ABYSS_CHASER\\ABC_CHASING_BREAK\\chasing_line\\"); for (int index = 0; index < 2; ++index) { @@ -22677,7 +22677,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 2417: + case EF_ABC_CROSSIMPACT_LINE: for (int index = 0; index < 2; ++index) { if (g_serviceOptions.Get(229)) { this->LineStreakTextured(30, "effect\\mineffect\\new_crossimpact\\new_crossimpact_line\\line_pitch.tga"); @@ -22692,7 +22692,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 1575: + case EF_NEW_GATEOFHELL: for (int index = 0; index < 4; ++index) { if (g_serviceOptions.Get(229)) { this->LineStreakTextured(10, "effect\\mineffect\\new_gateofhell\\line_hell.tga"); @@ -22703,7 +22703,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 1584: + case EF_NEW_METALLICSOUND_LINE: if (g_serviceOptions.Get(229)) { this->TexturedBeam(2, "effect\\mineffect\\new_metalicsound\\new_metalicsound_line\\met_damege_line_1.tga"); this->TexturedForkBolt("effect\\mineffect\\new_metalicsound\\new_metalicsound_icon\\met_particle_1.tga", 2); @@ -22716,7 +22716,7 @@ bool CRagEffect::OnProcess3() { this->TexturedForkBolt("effect\\new_metalicsound\\new_metalicsound_icon\\met_particle_3.tga", 2); } break; - case 1569: + case EF_NEW_REVERBERATION: if (g_serviceOptions.Get(229)) { this->TexturedDrop("effect\\mineffect\\new_reverberation\\melody_a.bmp", 2); } else { @@ -22724,7 +22724,7 @@ bool CRagEffect::OnProcess3() { } this->WhiteRingRippleSized(28); break; - case 1594: + case EF_NEW_REVERBERATION_NOTE: if (g_serviceOptions.Get(229)) { this->TexturedSpinShards("effect\\mineffect\\new_reverberation\\rev_note_01.tga", 3); this->TexturedSpinShards("effect\\mineffect\\new_reverberation\\rev_note_02.tga", 3); @@ -22733,33 +22733,33 @@ bool CRagEffect::OnProcess3() { this->TexturedSpinShards("effect\\new_reverberation\\rev_note_02.tga", 3); } break; - case 1600: + case EF_GUARD5: this->KyrieGuard("effect\\guardK.tga", 5); break; - case 1601: + case EF_MAGIC_CIRCLE_1: this->TexturedAura("effect\\마법진1-3.bmp", 32); break; - case 1602: - case 1603: - case 1604: - case 1605: - case 1606: + case EF_BIO5_PLANT_GREEN: + case EF_BIO5_PLANT_BLUE: + case EF_BIO5_PLANT_YELLOW: + case EF_BIO5_PLANT_WHITE: + case EF_BIO5_PLANT_RED: if (this->state.stateCnt == 0) { CHalluPlant* plant = new CHalluPlant(); plant->render.position = this->render.position; - if (this->state.type == 1602) { + if (this->state.type == EF_BIO5_PLANT_GREEN) { plant->SetActionName(ResourceMgr::Instance(), "sprite\\몬스터\\green_plant.act"); plant->SetActorJob(1080); - } else if (this->state.type == 1603) { + } else if (this->state.type == EF_BIO5_PLANT_BLUE) { plant->SetActionName(ResourceMgr::Instance(), "sprite\\몬스터\\blue_plant.act"); plant->SetActorJob(1079); - } else if (this->state.type == 1604) { + } else if (this->state.type == EF_BIO5_PLANT_YELLOW) { plant->SetActionName(ResourceMgr::Instance(), "sprite\\몬스터\\yellow_plant.act"); plant->SetActorJob(1081); - } else if (this->state.type == 1605) { + } else if (this->state.type == EF_BIO5_PLANT_WHITE) { plant->SetActionName(ResourceMgr::Instance(), "sprite\\몬스터\\white_plant.act"); plant->SetActorJob(1082); - } else if (this->state.type == 1606) { + } else if (this->state.type == EF_BIO5_PLANT_RED) { plant->SetActionName(ResourceMgr::Instance(), "sprite\\몬스터\\red_plant.act"); plant->SetActorJob(1078); } @@ -22767,21 +22767,21 @@ bool CRagEffect::OnProcess3() { WorldObjects().push_back(plant); } break; - case 919: - case 1610: + case EF_HELLSPLANT: + case EF_POK_MAGIC: this->TexturedClassChange(63); break; - case 1655: + case EF_NEW_EPICLESIS_AURA: this->WhiteRingRippleSized(29); break; - case 1664: + case EF_NEW_SANCTUARY: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); this->QuadRingStackSized("effect\\ring_yellow.tga", 33); } break; - case 1677: + case EF_NEW_SAFETYWALL: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { { @@ -22794,11 +22794,11 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 31); } break; - case 1678: + case EF_NEW_SONICWAVE: this->TexturedFanSweep("effect\\new_sonicwave\\new_sonicwave\\son_wave_01.tga", 1); this->TexturedFanSweep("effect\\new_sonicwave\\new_sonicwave\\son_wave_00.tga", 0); break; - case 1709: + case EF_NEW_EARTHDRIVE_CAST: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22809,7 +22809,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 1872: + case EF_NEW_PNEUMA: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22817,7 +22817,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 42); } break; - case 1876: + case EF_NEW_SW_CAST: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22825,7 +22825,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 43); } break; - case 1910: + case EF_ABR_INFINITY_RING: if (this->state.parent != nullptr) { this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { @@ -22835,7 +22835,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 1938: + case EF_NEW_BATTLE_W_ENTITY: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22843,7 +22843,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\new_battle_w\\ABR_BATTLE_WARIOR.tga", 0); } break; - case 1918: + case EF_NEW_D_CANNON_ENTITY: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22851,7 +22851,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\new_d_cannon\\ABR_DUAL_CANNON.tga", 0); } break; - case 1959: + case EF_PNEUMATICUS_PROCELLA_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22859,7 +22859,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\pneumaticusprocella\\pneumaticusprocella_cast\\ring_yellow.tga", 0); } break; - case 1902: + case EF_ABR_MOTHER: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22867,7 +22867,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\new_abr_mother\\abr_mother.tga", 0); } break; - case 1963: + case EF_SINCERE_FAITH_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22875,7 +22875,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 45); } break; - case 1986: + case EF_POWERFUL_FAITH_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22883,7 +22883,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 46); } break; - case 1998: + case EF_FIRM_FAITH_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22891,7 +22891,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 47); } break; - case 2240: + case EF_RESEARCH_REPORT_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22899,7 +22899,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 48); } break; - case 2249: + case EF_WOODEN_WARRIOR_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22907,7 +22907,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 49); } break; - case 2255: + case EF_WOODEN_FAIRY_RING: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22915,81 +22915,81 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 50); } break; - case 2277: + case EF_UNK_2277: this->state.parent->SetColor(-1, 105, 105, 105); break; - case 2278: + case EF_UNK_2278: this->state.parent->SetColor(-1, 251, 200, 4); break; - case 2288: + case EF_STATUS_CRATE_UP: return this->AgilityChange(1, "effect\\status_effect\\C_rate_Up.bmp"); - case 2289: + case EF_STATUS_CRATE_DOWN: return this->AgilityChange(0, "effect\\status_effect\\C_rate_Down.bmp"); - case 2290: + case EF_STATUS_HPLUS_UP: return this->AgilityChange(1, "effect\\status_effect\\H_plus_Up.bmp"); - case 2291: + case EF_STATUS_HPLUS_DOWN: return this->AgilityChange(0, "effect\\status_effect\\H_plus_Down.bmp"); - case 2292: + case EF_STATUS_MRES_UP: return this->AgilityChange(1, "effect\\status_effect\\Mres_Up.bmp"); - case 2293: + case EF_STATUS_MRES_DOWN: return this->AgilityChange(0, "effect\\status_effect\\Mres_Down.bmp"); - case 2294: + case EF_STATUS_PATK_UP: return this->AgilityChange(1, "effect\\status_effect\\P_atk_Up.bmp"); - case 2295: + case EF_STATUS_PATK_DOWN: return this->AgilityChange(0, "effect\\status_effect\\P_atk_Down.bmp"); - case 2296: + case EF_STATUS_RES_UP: return this->AgilityChange(1, "effect\\status_effect\\Res_Up.bmp"); - case 2297: + case EF_STATUS_RES_DOWN: return this->AgilityChange(0, "effect\\status_effect\\Res_Down.bmp"); - case 2298: + case EF_STATUS_SMATK_UP: return this->AgilityChange(1, "effect\\status_effect\\S_matk_Up.bmp"); - case 2299: + case EF_STATUS_SMATK_DOWN: return this->AgilityChange(0, "effect\\status_effect\\S_matk_Down.bmp"); - case 2300: + case EF_STATUS_PATK_SMATK_UP: return this->AgilityChange(1, "effect\\status_effect\\P_atk_S_matk_Up.bmp"); - case 2338: + case EF_THE_ONE_FIGHTER_RISES: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { this->TexturedQuadSpiral("effect\\the_one_fighter_rises\\the_one_fighter_rises\\the_ring_00.tga"); } break; - case 2346: + case EF_POK_94: this->TexturedClassChange(94); break; - case 2347: + case EF_POK_95: this->TexturedClassChange(95); break; - case 2356: + case EF_POK_96: this->TexturedClassChange(96); break; - case 2357: + case EF_POK_97: this->TexturedClassChange(97); break; - case 2358: + case EF_POK_98: this->TexturedClassChange(98); break; - case 2359: + case EF_POK_99: this->TexturedClassChange(99); break; - case 2360: + case EF_POK_100: this->TexturedClassChange(100); break; - case 2361: + case EF_POK_101: this->TexturedClassChange(101); break; - case 2362: + case EF_POK_102: this->TexturedClassChange(102); break; - case 2363: + case EF_POK_103: this->TexturedClassChange(103); break; - case 2364: + case EF_POK_104: this->TexturedClassChange(104); break; - case 2365: + case EF_POK_105: this->TexturedClassChange(105); break; - case 2367: + case EF_UNKNOWN_RING_YELLOW: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -22997,17 +22997,17 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadRingSized(25, "effect\\ring_yellow.tga", 0); } break; - case 2368: + case EF_UNKNOWN_SPELL: this->BeginSpellSwirl(45, "", 11); break; - case 2369: + case EF_UNKNOWN_RING_WHITE: if (this->state.stateCnt == 0) { g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } this->TexturedQuadRing(25, "effect\\ring_white.tga", 0); this->TexturedQuadRing(45, "effect\\ring_white.tga", 0); break; - case 2373: + case EF_VOLCANO_BLACK: if (this->state.stateCnt >= 0) { this->state.parent->render.flags |= 0x1000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt); @@ -23023,7 +23023,7 @@ bool CRagEffect::OnProcess3() { this->state.parent->SetColor(-1, 255, 0, 0); } break; - case 2401: + case EF_ALPHA_DOWN_ANIM: if (this->state.stateCnt >= this->state.duration - 1) { this->state.stateCnt = 0; } @@ -23031,14 +23031,14 @@ bool CRagEffect::OnProcess3() { this->TexturedFourRing("effect\\alpha_down.tga", 1); this->SendMsg(this, 127, 0, 255, 115, 0, 0, 0); break; - case 2402: + case EF_GLOW_BLACK: this->Map_MagicZone("effect\\glow04_bk.bmp", 5); for (int index = 2; index < 21; index += 2) { this->TexturedOrbitDust("effect\\mpa3.tga", index, 2); } this->SendMsg(this, 127, 0, 255, 115, 0, 0, 0); break; - case 2425: + case EF_WH_WILD_WALK: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; } @@ -23046,7 +23046,7 @@ bool CRagEffect::OnProcess3() { this->TexturedQuadSpin("effect\\WINDHAWK\\WH_WILD_WALK\\alpha_center_green.tga", index, 3); } break; - case 2426: + case EF_FORCE_ANIM_27: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; this->state.parent->render.unknown_0070 = 27; @@ -23057,13 +23057,13 @@ bool CRagEffect::OnProcess3() { } } break; - case 2427: + case EF_HEAL_BLUE_2: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; } this->HealRingSparkle("effect\\ring_blue.tga", 2); break; - case 2439: + case EF_UNK_2439: { const char* line = g_serviceOptions.Get(229) ? "effect\\DRUID\\DR_CRUEL_BITE\\min_cruel_bite_line\\line_red.tga" : "effect\\DRUID\\DR_CRUEL_BITE\\cruel_bite_line\\line_red.tga"; const char* black = g_serviceOptions.Get(229) ? "effect\\DRUID\\DR_CRUEL_BITE\\min_cruel_bite_line\\line_black.tga" : "effect\\DRUID\\DR_CRUEL_BITE\\cruel_bite_line\\line_black.tga"; @@ -23075,7 +23075,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 2442: + case EF_UNK_2442: { const char* line = g_serviceOptions.Get(229) ? "effect\\DRUID\\AT_QUILL_SPEAR\\min_quill_spear_line\\line_color.tga" : "effect\\DRUID\\AT_QUILL_SPEAR\\quill_spear_line\\line_color.tga"; const char* black = g_serviceOptions.Get(229) ? "effect\\DRUID\\AT_QUILL_SPEAR\\min_quill_spear_line\\line_black.tga" : "effect\\DRUID\\AT_QUILL_SPEAR\\quill_spear_line\\line_black.tga"; @@ -23087,7 +23087,7 @@ bool CRagEffect::OnProcess3() { } } break; - case 2436: + case EF_RG_COIN_BLUE: if (this->state.stateCnt != 1) { if (this->state.stateCnt != 11) { if (this->state.stateCnt != 21) { @@ -23112,7 +23112,7 @@ bool CRagEffect::OnProcess3() { this->TexturedSprayKind("effect\\sword.bmp", 9.0f, 8); } break; - case 2437: + case EF_RG_COIN_BLUE_2: if (this->state.stateCnt != 1) { if (this->state.stateCnt != 11) { if (this->state.stateCnt != 21) { @@ -23158,91 +23158,91 @@ bool CRagEffect::OnProcess() { } switch (this->state.type) { - case 25: - case 37: - case 49: - case 51: - case 52: - case 53: - case 147: - case 152: - case 200: - case 201: - case 202: - case 203: - case 228: - case 254: - case 312: - case 313: - case 320: - case 325: - case 328: - case 362: - case 397: - case 398: - case 418: - case 436: - case 437: - case 438: - case 441: - case 454: - case 467: - case 468: - case 469: - case 470: - case 471: - case 472: - case 473: - case 488: - case 489: - case 490: - case 503: - case 504: - case 506: - case 523: - case 524: - case 525: - case 526: - case 527: - case 528: - case 529: - case 530: - case 531: - case 532: - case 533: - case 534: - case 535: - case 536: - case 590: - case 603: - case 629: - case 678: - case 679: - case 680: - case 755: - case 757: - case 788: - case 789: - case 790: - case 826: - case 833: - case 837: - case 850: - case 861: - case 865: - case 867: - case 871: - case 873: - case 875: - case 877: - case 881: - case 911: - case 920: - case 932: - case 940: - case 1122: + case EF_FIREWALL: + case EF_INCAGILITY: + case EF_FIREHIT: + case EF_COLDHIT: + case EF_WINDHIT: + case EF_POISONHIT: + case EF_EARTHHIT: + case EF_HOLYHIT: + case EF_LEVEL99: + case EF_LEVEL99_2: + case EF_LEVEL99_3: + case EF_GUMGANG: + case EF_CHOOKGI: + case EF_STEELBODY: + case EF_HEAL: + case EF_HEAL2: + case EF_HEAL3: + case EF_HEAL4: + case EF_BEGINASURA: + case EF_LEVEL99_4: + case EF_LEVEL99_5: + case EF_LEVEL99_6: + case EF_DOUBLEGUMGANG: + case EF_HALFSPHERE: + case EF_ATTACKENERGY: + case EF_ATTACKENERGY2: + case EF_BLUECASTING: + case EF_DARKCASTING: + case EF_BEGINASURA1: + case EF_BEGINASURA2: + case EF_BEGINASURA3: + case EF_BEGINASURA4: + case EF_BEGINASURA5: + case EF_BEGINASURA6: + case EF_BEGINASURA7: + case EF_FLOWERCAST: + case EF_FLOWERCAST2: + case EF_FLOWERCAST3: + case EF_SOULLINK: + case EF_CHOOKGI2: + case EF_SOULLIGHT: + case EF_TAROTCARD1: + case EF_TAROTCARD2: + case EF_TAROTCARD3: + case EF_TAROTCARD4: + case EF_TAROTCARD5: + case EF_TAROTCARD6: + case EF_TAROTCARD7: + case EF_TAROTCARD8: + case EF_TAROTCARD9: + case EF_TAROTCARD10: + case EF_TAROTCARD11: + case EF_TAROTCARD12: + case EF_TAROTCARD13: + case EF_TAROTCARD14: + case EF_KAIZEL: + case EF_FIREHIT2: + case EF_CHOOKGI3: + case EF_GREEN99_3: + case EF_GREEN99_5: + case EF_GREEN99_6: + case EF_ORATIO: + case EF_CIRCLEPOWER: + case EF_VENOMIMPRESS: + case EF_FROSTMISTY: + case EF_BURNING: + case EF_DARKCASTING2: + case EF_CHOOKGI_N: + case EF_ROLLINGCAST: + case EF_SOULLIGHT2: + case EF_CIRCLEPOWER2: + case EF_CIRCLEPOWER3: + case EF_CIRCLEPOWER4: + case EF_CIRCLEPOWER5: + case EF_CIRCLEPOWER6: + case EF_CIRCLEPOWER7: + case EF_CIRCLEPOWER8: + case EF_LEVEL99_150: + case EF_GREENCASTING: + case EF_FIREWALL2: + case EF_SOULLIGHT3: + case EF_COLDSTATUS: + case EF_SU_SOUL_ATTACK: break; - case 164: + case EF_STATUS_STATE: if (g_updateTick == 0) { return true; } @@ -23269,45 +23269,45 @@ bool CRagEffect::OnProcess() { } } else { switch (this->state.type) { - case 0: + case EF_HIT1: this->Hit1(); break; - case 1: + case EF_HIT2: this->Hit2(0); break; - case 2: + case EF_HIT3: this->Hit3(); break; - case 3: + case EF_HIT4: this->Hit4(); break; - case 4: + case EF_HIT5: this->Hit5(); break; - case 5: + case EF_HIT6: this->Hit6(); break; - case 6: + case EF_ENTRY: this->Entry(); break; - case 7: + case EF_EXIT: this->Exit(); break; - case 8: + case EF_WARP: this->Warp(); break; - case 9: + case EF_ENHANCE: this->Enhance(); break; - case 10: + case EF_COIN: if (!this->Coin()) { return false; } break; - case 11: + case EF_ENDURE: this->Endure(); break; - case 12: + case EF_BEGINSPELL: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -23315,61 +23315,61 @@ bool CRagEffect::OnProcess() { this->TexturedQuadRingSized(25, "effect\\ring_yellow.tga", 1); } break; - case 13: + case EF_GLASSWALL: if (!this->GlassWall()) { return false; } break; - case 14: + case EF_HEALSP: this->HealSP(); break; - case 15: + case EF_SOULSTRIKE: this->SoulStrike(0); break; - case 16: + case EF_BASH: this->Bash(); break; - case 17: + case EF_MAGNUMBREAK: this->MagnumBreak(); break; - case 18: + case EF_STEAL: this->Steal(); break; - case 20: - case 125: + case EF_PATTACK: + case EF_ENCHANTPOISON: this->PoisonAttack(0); break; - case 21: + case EF_DETOXICATION: this->Detoxication(); break; - case 22: + case EF_SIGHT: this->Sight(); break; - case 23: - case 195: + case EF_STONECURSE: + case EF_PETRIFYATTACK: if (!this->ProcessEZ2STRC3CC40()) { return false; } break; - case 24: + case EF_FIREBALL: this->FireBall(); break; - case 25: - case 29: + case EF_FIREWALL: + case EF_LIGHTBOLT: if (!this->ProcessEZ2STR(0.0f, -80.0f, 0.0f)) { return false; } break; - case 26: + case EF_ICEARROW: this->IceArrow(); break; - case 27: + case EF_FROSTDIVER: this->FrostDiver(0); break; - case 28: + case EF_FROSTDIVER2: this->FrostDiver2(); break; - case 30: + case EF_THUNDERSTORM: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\magician_thunderstorm.wav"); } @@ -23377,13 +23377,13 @@ bool CRagEffect::OnProcess() { return false; } break; - case 31: + case EF_FIREARROW: this->FireArrow(); break; - case 32: + case EF_NAPALMBEAT: this->NapalmFragments(); break; - case 33: + case EF_RUWACH: this->render.position = this->state.parent->render.position; if (this->state.stateCnt % 3 == 0) { const float turn = this->state.stateCnt / 1.3 * -5.0; @@ -23424,7 +23424,7 @@ bool CRagEffect::OnProcess() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 34: + case EF_TELEPORTATION: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_Teleportation.wav"); this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 13, 0.0f, 0.0f, 0.0f, WorldObjects())->state; @@ -23440,7 +23440,7 @@ bool CRagEffect::OnProcess() { this->state.unknown_11C84->textures[0] = g_texMgr.Load("effect\\ring_blue.tga", 0, false, true, false); } break; - case 35: + case EF_READYPORTAL: if (this->state.stateCnt % 14 == 0) { PlayEffectWave(*this, "effect\\EF_ReadyPortal.wav"); this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 12, 0.0f, 0.0f, 0.0f, WorldObjects())->state; @@ -23460,16 +23460,16 @@ bool CRagEffect::OnProcess() { this->state.unknown_11C84->textures[0] = g_texMgr.Load("effect\\ring_blue.tga", 0, false, true, false); } break; - case 36: + case EF_PORTAL: this->Portal(); break; - case 37: + case EF_INCAGILITY: this->IncAgility(); break; - case 38: + case EF_DECAGILITY: this->DecAgility(); break; - case 39: + case EF_AQUA: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_Aqua.wav"); @@ -23483,12 +23483,12 @@ bool CRagEffect::OnProcess() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 40: + case EF_SIGNUM: if (!this->Signum()) { return false; } break; - case 41: + case EF_ANGELUS: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_Angelus.wav"); } @@ -23496,13 +23496,13 @@ bool CRagEffect::OnProcess() { return false; } break; - case 42: + case EF_BLESSING: this->Blessing(); break; - case 43: + case EF_INCAGIDEX: this->IncAgiDex(); break; - case 44: + case EF_SMOKE: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { const int count = std::max(rand() % 4, 0) + 1; @@ -23525,13 +23525,13 @@ bool CRagEffect::OnProcess() { } } break; - case 45: + case EF_FIREFLY: this->FireSparks(); break; - case 46: + case EF_SANDWIND: this->SandScatter(); break; - case 47: + case EF_TORCH: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 5, 0.0f, 0.0f, 0.0f, WorldObjects())->state; @@ -23551,10 +23551,10 @@ bool CRagEffect::OnProcess() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 48: + case EF_SPRAYPOND: this->SprayPond(); break; - case 49: + case EF_FIREHIT: if (this->state.stateCnt == 0) { const auto* player = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player); g_soundMgr->PlayWave( @@ -23566,7 +23566,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 50: + case EF_FIRESPLASHHIT: { RenderVertex vertex{0.0f, 0.0f, 0.0f, 0.0f, 0u, 0xFF000000u, 0.0f, 0.0f}; const float* view = static_cast(g_modeMgr.GetGameMode())->camera->frame.view.values; @@ -23594,55 +23594,55 @@ bool CRagEffect::OnProcess() { } break; } - case 51: + case EF_COLDHIT: this->ColdHit(); break; - case 52: - case 64: - case 70: - case 109: - case 110: - case 126: - case 135: - case 139: - case 141: - case 143: - case 144: - case 146: - case 147: - case 148: - case 149: - case 150: - case 151: - case 152: - case 156: - case 157: - case 158: - case 167: - case 168: - case 169: - case 181: - case 182: - case 186: - case 187: - case 188: - case 189: - case 190: - case 191: - case 192: - case 193: - case 194: - case 197: - case 199: - case 213: - case 214: - case 235: - case 268: + case EF_WINDHIT: + case EF_ARROWSHOT: + case EF_BRANDISHSPEAR: + case EF_BUBBLE: + case EF_GASPUSH: + case EF_POISONREACT: + case EF_ICECRASH: + case EF_SANDMAN: + case EF_PNEUMA: + case EF_SONICBLOW2: + case EF_BRANDISH2: + case EF_SHOCKWAVEHIT: + case EF_EARTHHIT: + case EF_PIERCESELF: + case EF_BOWLINGSELF: + case EF_SPEARSTABSELF: + case EF_SPEARBMRSELF: + case EF_HOLYHIT: + case EF_JOBCHANGE: + case EF_LVUP: + case EF_JOBLVUP: + case EF_TAMINGSUCCESS: + case EF_TAMINGFAILED: + case EF_ENERGYCOAT: + case EF_MENTALBREAK: + case EF_MAGICALATTHIT: + case EF_COMBOATTACK1: + case EF_COMBOATTACK2: + case EF_COMBOATTACK3: + case EF_COMBOATTACK4: + case EF_COMBOATTACK5: + case EF_GUIDEDATTACK: + case EF_POISONATTACK: + case EF_SILENCEATTACK: + case EF_STUNATTACK: + case EF_SLEEPATTACK: + case EF_PONG: + case EF_DEFFENDER: + case EF_KEEPING: + case EF_DISPELL: + case EF_STEALCOIN: if (!this->ProcessEZ2STRC10830()) { return false; } break; - case 53: + case EF_POISONHIT: if (this->state.stateCnt == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 5, 0.0f, 0.0f, 0.0f, WorldObjects())->state; this->state.unknown_11C84->duration = this->state.duration; @@ -23655,35 +23655,35 @@ bool CRagEffect::OnProcess() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 54: + case EF_BEGINSPELL2: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); this->QuadRingStackSized("effect\\ring_blue.tga", 2); } break; - case 55: + case EF_BEGINSPELL3: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); this->QuadRingStackSized("effect\\ring_yellow.tga", 1); } break; - case 56: + case EF_BEGINSPELL4: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); this->QuadRingStackSized("effect\\Magic_Green.tga", 33); } break; - case 57: + case EF_BEGINSPELL5: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); this->QuadRingStackSized("effect\\ring_yellow.tga", 0); } break; - case 58: + case EF_BEGINSPELL6: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); @@ -23691,23 +23691,23 @@ bool CRagEffect::OnProcess() { this->TexturedQuadRingSized(25, "effect\\ring_white.tga", 0); } break; - case 59: + case EF_BEGINSPELL7: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\EF_BeginSpell.wav"); this->QuadRingStackSized("effect\\Magic_Violet.tga", 33); } break; - case 60: + case EF_LOCKON: this->LockOnMarker(); break; - case 61: + case EF_WARPZONE: this->WarpZone(); break; - case 62: + case EF_SIGHTRASHER: this->Sightrasher(); break; - case 63: + case EF_BARRIER: if (this->state.stateCnt == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 14, 0.0f, 0.0f, 0.0f, WorldObjects())->state; this->state.unknown_11C84->duration = 250; @@ -23719,7 +23719,7 @@ bool CRagEffect::OnProcess() { this->state.unknown_11C84->textures[0] = g_texMgr.Load("effect\\대폭발.tga", 0, false, true, false); } break; - case 65: + case EF_INVENOM: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\thief_invenom.wav"); } @@ -23727,7 +23727,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 66: + case EF_CURE: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\Acolyte_cure.wav"); } @@ -23735,7 +23735,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 67: + case EF_PROVOKE: if (this->state.stateCnt == 5) { PlayEffectWave(*this, "effect\\swordman_provoke.wav"); } @@ -23746,7 +23746,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 68: + case EF_MVP: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\st_mvp.wav"); } @@ -23754,7 +23754,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 69: + case EF_SKIDTRAP: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\hunter_skidtrap.wav"); } @@ -23762,7 +23762,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 71: + case EF_CONE: if (this->state.stateCnt % 130 == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 7, 0.0f, 0.0f, 0.0f, WorldObjects())->state; this->state.duration = 200; @@ -23788,16 +23788,16 @@ bool CRagEffect::OnProcess() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 72: + case EF_SPHERE: this->Sphere(); break; - case 73: + case EF_BOWLINGBASH: this->BowlingBash(); break; - case 74: + case EF_ICEWALL: this->IceWall(); break; - case 75: + case EF_GLORIA: if (this->state.stateCnt == 0) { PlayEffectWaveAt(*this, "effect\\priest_gloria.wav", 1.0f); } @@ -23805,7 +23805,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 76: + case EF_MAGNIFICAT: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\priest_magnificat.wav"); } @@ -23813,7 +23813,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 77: + case EF_RESURRECTION: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\priest_resurrection.wav"); } @@ -23821,7 +23821,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 78: + case EF_RECOVERY: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\priest_recovery.wav"); } @@ -23829,19 +23829,19 @@ bool CRagEffect::OnProcess() { return false; } break; - case 79: + case EF_EARTHSPIKE: this->EarthSpike(0); break; - case 80: + case EF_SPEARBMR: this->SpearBmr(); break; - case 81: + case EF_PIERCE: this->RingBurstSparks(); break; - case 82: + case EF_TURNUNDEAD: this->TurnUndead(); break; - case 83: + case EF_SANCTUARY: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\priest_sanctuary.wav"); } @@ -23849,7 +23849,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 84: + case EF_IMPOSITIO: if (this->state.stateCnt == 60) { PlayEffectWave(*this, "effect\\priest_impositio.wav"); } @@ -23857,7 +23857,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 85: + case EF_LEXAETERNA: if (this->state.stateCnt == 15) { PlayEffectWave(*this, "effect\\priest_lexaeterna.wav"); } @@ -23865,17 +23865,17 @@ bool CRagEffect::OnProcess() { return false; } break; - case 86: + case EF_ASPERSIO: if (!this->Aspersio()) { return false; } break; - case 87: + case EF_LEXDIVINA: if (!this->LexDivina()) { return false; } break; - case 88: + case EF_SUFFRAGIUM: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\priest_suffragium.wav"); } @@ -23883,12 +23883,12 @@ bool CRagEffect::OnProcess() { return false; } break; - case 89: + case EF_STORMGUST: if (!this->StormGust()) { return false; } break; - case 90: + case EF_LORD: { const auto* player = reinterpret_cast(static_cast(g_modeMgr.GetGameMode())->scene->player); switch (this->state.stateCnt) { @@ -23925,7 +23925,7 @@ bool CRagEffect::OnProcess() { } break; } - case 91: + case EF_BENEDICTIO: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\priest_benedictio.wav"); } @@ -23933,7 +23933,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 92: + case EF_METEORSTORM: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\wizard_meteor.wav"); } @@ -23944,13 +23944,13 @@ bool CRagEffect::OnProcess() { return false; } break; - case 93: + case EF_YUFITEL: this->Yufitel(0); break; - case 94: + case EF_YUFITELHIT: this->YufitelHit(0); break; - case 95: + case EF_QUAGMIRE: if (this->state.stateCnt == 0 && std::max(rand() % 12, 0) == 0) { PlayEffectWaveAt(*this, "effect\\wizard_quagmire.wav", -100.0f); } @@ -23958,7 +23958,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 96: + case EF_FIREPILLAR: if (this->state.stateCnt == 75) { PlayEffectWave(*this, "effect\\wizard_fire_pillar_a.wav"); } @@ -23966,7 +23966,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 97: + case EF_FIREPILLARBOMB: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\wizard_fire_pillar_b.wav"); } @@ -23974,16 +23974,16 @@ bool CRagEffect::OnProcess() { return false; } break; - case 98: + case EF_HASTEUP: this->HasteUp(); break; - case 99: + case EF_FLASHER: this->Flasher(); break; - case 100: + case EF_REMOVETRAP: this->RemoveTrap(); break; - case 101: + case EF_REPAIRWEAPON: if (this->state.stateCnt == 20) { PlayEffectWave(*this, "effect\\black_weapon_repair_a.wav"); } @@ -23994,12 +23994,12 @@ bool CRagEffect::OnProcess() { return false; } break; - case 102: + case EF_CRASHEARTH: if (!this->FirePillarBomb()) { return false; } break; - case 103: + case EF_PERFECTION: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\black_weapon_perfection.wav"); } @@ -24007,7 +24007,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 104: + case EF_MAXPOWER: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\black_maximize_power_circle.wav"); } @@ -24024,14 +24024,14 @@ bool CRagEffect::OnProcess() { return false; } break; - case 105: - case 161: - case 198: - case 443: - case 489: - case 490: + case EF_BLASTMINE: + case EF_RAIN: + case EF_TELEKHIT: + case EF_STOPRUN: + case EF_FLOWERCAST2: + case EF_FLOWERCAST3: break; - case 106: + case EF_BLASTMINEBOMB: if (this->state.stateCnt == 20) { PlayEffectWave(*this, "effect\\hunter_blastmine.wav"); } @@ -24039,7 +24039,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 107: + case EF_CLAYMORE: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\hunter_claymoretrap.wav"); } @@ -24047,7 +24047,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 108: + case EF_FREEZING: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\hunter_freezingtrap.wav"); } @@ -24055,7 +24055,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 111: + case EF_SPRINGTRAP: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\hunter_springtrap.wav"); } @@ -24063,7 +24063,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 112: + case EF_KYRIE: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\priest_kyrie_eleison_b.wav"); } @@ -24074,7 +24074,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 113: + case EF_MAGNUS: if (this->state.stateCnt == 0) { PlayEffectWaveAt(*this, "effect\\priest_magnus.wav", 1.0f); } @@ -24082,19 +24082,19 @@ bool CRagEffect::OnProcess() { return false; } break; - case 114: + case EF_BOTTOM: this->Bottom(); break; - case 115: + case EF_BLITZBEAT: this->BlitzBeat(); break; - case 116: + case EF_WATERBALL: this->WaterOut(); break; - case 117: + case EF_WATERBALL2: this->WaterBall2(); break; - case 118: + case EF_FIREIVY: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\wizard_fire_ivy.wav"); } @@ -24113,13 +24113,13 @@ bool CRagEffect::OnProcess() { this->state.unknown_11C84->textures[0] = g_texMgr.Load("effect\\fire_ivy.bmp", 0, false, true, false); } break; - case 119: + case EF_DETECTING: this->TexturedSkillAura(0); break; - case 120: + case EF_CLOAKING: this->AssassinCloaking(); break; - case 121: + case EF_SONICBLOW: { RenderVertex vertex{0.0f, 0.0f, 0.0f, 0.0f, 0u, 0xFF000000u, 0.0f, 0.0f}; const float* view = static_cast(g_modeMgr.GetGameMode())->camera->frame.view.values; @@ -24142,14 +24142,14 @@ bool CRagEffect::OnProcess() { } break; } - case 122: + case EF_SONICBLOWHIT: this->SonicBlowHit(); break; - case 123: + case EF_GRIMTOOTH: this->GrimTooth(); break; - case 124: - case 127: + case EF_VENOMDUST: + case EF_POISONREACT2: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\assasin_poisonreact.wav"); } @@ -24157,10 +24157,10 @@ bool CRagEffect::OnProcess() { return false; } break; - case 128: + case EF_OVERTHRUST: this->StoneCurseRing(); break; - case 129: + case EF_SPLASHER: if (this->state.stateCnt == 10) { PlayEffectWave(*this, "effect\\assasin_venomsplasher.wav"); } @@ -24168,11 +24168,11 @@ bool CRagEffect::OnProcess() { return false; } break; - case 130: - case 250: + case EF_TWOHANDQUICKEN: + case EF_SPEARQUICKEN: this->TwoHandQuicken(); break; - case 131: + case EF_AUTOCOUNTER: if (this->state.stateCnt == 0) { PlayEffectWave(*this, "effect\\knight_autocounter.wav"); } @@ -24180,29 +24180,29 @@ bool CRagEffect::OnProcess() { return false; } break; - case 132: + case EF_GRIMTOOTHATK: this->GrimToothAtk(); break; - case 133: - case 134: + case EF_FREEZE: + case EF_FREEZED: if (!this->ProcessEZ2STR(0.0f, -80.0f, 0.0f)) { this->state.stateCnt = 9999; return false; } break; - case 136: - case 391: - case 406: - case 407: + case EF_SLOWPOISON: + case EF_CARTBOOST: + case EF_SOULBURN: + case EF_SOULCHANGE: this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 137: + case EF_BOTTOM2: this->Bottom2(); break; - case 138: + case EF_FIREPILLARON: this->RingStack(0); break; - case 140: + case EF_REVIVE: if (this->state.stateCnt % 25 == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 13, 0.0f, 0.0f, 0.0f, WorldObjects())->state; this->state.unknown_11C84->duration = 60; @@ -24234,20 +24234,20 @@ bool CRagEffect::OnProcess() { this->state.unknown_11C84->textures[0] = g_texMgr.Load("effect\\ring_yellow.tga", 0, false, true, false); } break; - case 142: + case EF_HEAVENSDRIVE: this->StoneSpike(); break; - case 145: + case EF_SHOCKWAVE: if (!this->ProcessEZ2STR(0.0f, -80.0f, 0.0f)) { this->InitEZ2STRFrame(); } break; - case 153: + case EF_CONCENTRATION: if (!this->Concentration()) { return false; } break; - case 154: + case EF_REFINEOK: if (this->state.stateCnt == 15) { PlayEffectWave(*this, "effect\\bs_refinesuccess.wav"); } @@ -24255,7 +24255,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 155: + case EF_REFINEFAIL: if (this->state.stateCnt == 5) { PlayEffectWave(*this, "effect\\bs_refinefailed.wav"); } @@ -24263,7 +24263,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 159: + case EF_TOPRANK: { this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 9998) { @@ -24293,7 +24293,7 @@ bool CRagEffect::OnProcess() { this->render.position.y = world->terrain->Height(this->render.position.x, this->render.position.z) - 2.0f; break; } - case 160: + case EF_PARTY: { this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 9998) { @@ -24316,16 +24316,16 @@ bool CRagEffect::OnProcess() { this->render.position.y = world->terrain->Height(this->render.position.x, this->render.position.z) - 2.0f; break; } - case 162: + case EF_SNOW: this->Snow(); break; - case 163: + case EF_SAKURA: this->Sakura(); break; - case 164: + case EF_STATUS_STATE: this->StatusIconColumn(); break; - case 165: + case EF_BANJJAKII: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 5, 0.0f, 0.0f, 0.0f, WorldObjects())->state; @@ -24347,15 +24347,15 @@ bool CRagEffect::OnProcess() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 166: + case EF_MAKEBLUR: this->SpawnBlurAfterimage(); break; - case 170: + case EF_CARTREVOLUTION: if (!this->CartRevolution()) { return false; } break; - case 171: + case EF_VENOMDUST2: if (this->state.stateCnt % 5 == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 5, 0.0f, 0.0f, 0.0f, WorldObjects())->state; this->state.unknown_11C84->duration = 10; @@ -24377,51 +24377,51 @@ bool CRagEffect::OnProcess() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 172: + case EF_CHANGEDARK: if (this->state.stateCnt == 0) { this->QuadRingStackSized("effect\\ring_black.tga", 3); } break; - case 173: + case EF_CHANGEFIRE: if (this->state.stateCnt == 0) { this->QuadRingStackSized("effect\\ring_red.tga", 3); } break; - case 174: + case EF_CHANGECOLD: if (this->state.stateCnt == 0) { this->QuadRingStackSized("effect\\ring_blue.tga", 3); } break; - case 175: + case EF_CHANGEWIND: if (this->state.stateCnt == 0) { this->QuadRingStackSized("effect\\ring_yellow.tga", 3); } break; - case 176: + case EF_CHANGEFLAME: if (this->state.stateCnt == 0) { this->QuadRingStackSized("effect\\ring_jadu.tga", 3); } break; - case 177: + case EF_CHANGEEARTH: if (this->state.stateCnt == 0) { this->QuadRingStackSized("effect\\ring_brown.tga", 3); } break; - case 178: + case EF_CHAINGEHOLY: if (this->state.stateCnt == 0) { this->QuadRingStackSized("effect\\ring_white.tga", 3); } break; - case 179: + case EF_CHANGEPOISON: if (this->state.stateCnt == 0) { this->QuadRingStackSized("effect\\ring_purple.tga", 3); } break; - case 180: - case 184: + case EF_HITDARK: + case EF_DARKATTACK: this->HitDark(); break; - case 183: + case EF_SUI_EXPLOSION: if (this->state.stateCnt == 0) { this->Hit2(1); } else if (this->state.stateCnt == 3 || this->state.stateCnt == 7 || this->state.stateCnt == 9) { @@ -24431,7 +24431,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 185: + case EF_SUICIDE: { EffectActor* parent = this->state.parent; this->state.deltaPos2[0] = parent->render.position.x; @@ -24449,7 +24449,7 @@ bool CRagEffect::OnProcess() { } break; } - case 196: + case EF_CURSEATTACK: if (this->state.stateCnt == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 15, 0.0f, 0.0f, 0.0f, WorldObjects())->state; this->state.unknown_11C84->duration = 9999; @@ -24462,25 +24462,25 @@ bool CRagEffect::OnProcess() { this->state.unknown_11C84->textures[0] = g_texMgr.Load("effect\\curse.bmp", 0, false, true, false); } break; - case 200: - case 397: + case EF_LEVEL99: + case EF_LEVEL99_5: this->TripleRingStack("effect\\ring_blue.tga", 0); break; - case 201: - case 398: + case EF_LEVEL99_2: + case EF_LEVEL99_6: this->TexturedDoubleRing("effect\\pikapika2.bmp", 0); break; - case 202: + case EF_LEVEL99_3: this->FreezingCircle(0); break; - case 203: + case EF_GUMGANG: this->SuperSlashFan(1, 0); break; - case 204: - case 205: - case 206: - case 207: - case 210: + case EF_POTION1: + case EF_POTION2: + case EF_POTION3: + case EF_POTION4: + case EF_POTION7: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWaveAt(*this, "_heal_effect.wav", -80.0f); @@ -24489,9 +24489,9 @@ bool CRagEffect::OnProcess() { return false; } break; - case 208: - case 209: - case 211: + case EF_POTION5: + case EF_POTION6: + case EF_POTION8: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWaveAt(*this, "effect\\흡기.wav", -80.0f); @@ -24500,7 +24500,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 212: + case EF_DARKBREATH: if (this->state.stateCnt == 0) { this->state.unknown_11C84 = &CreateEffectParticle(*this, this->render, 5, 0.0f, 0.0f, 0.0f, WorldObjects())->state; this->state.unknown_11C84->duration = 65; @@ -24516,16 +24516,16 @@ bool CRagEffect::OnProcess() { Owner(this->state.unknown_11C84).InitSegment(); } break; - case 215: + case EF_SUMMONSLAVE: this->AlphaCenterRise(); break; - case 216: + case EF_BLOODDRAIN: this->RedParticleSpray(3); break; - case 217: + case EF_ENERGYDRAIN: this->BloodDrain(); break; - case 218: + case EF_POTION_CON: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 0) { g_soundMgr->PlayWave("effect\\ac_concentration.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); @@ -24535,7 +24535,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 219: + case EF_POTION_: this->render.position = this->state.parent->render.position; if (this->state.stateCnt == 30) { g_soundMgr->PlayWave("effect\\ac_concentration.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); @@ -24545,31 +24545,31 @@ bool CRagEffect::OnProcess() { return false; } break; - case 220: + case EF_POTION_BERSERK: if (!this->Potion_Berserk()) { return false; } break; - case 221: + case EF_POTIONPILLAR: this->PotionPillar(1.0f, 50); break; - case 222: + case EF_DEFENDER: this->QuadRingStack("effect\\ring_black.tga"); break; - case 223: + case EF_GANBANTEIN: this->TexturedCrossKind("effect\\ring_white.tga", 2); break; - case 224: + case EF_WIND: this->HealCloudRings(); break; - case 225: + case EF_VOLCANO: this->TexturedCrossKind("effect\\ring_red.tga", 0); break; - case 226: + case EF_GRANDCROSS: this->GrandCrossRings(0, 0); this->GRANDCROSS2(0); break; - case 227: + case EF_INTIMIDATE: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_Bash.wav"); @@ -24581,31 +24581,31 @@ bool CRagEffect::OnProcess() { this->WhiteSpray(0); } break; - case 228: + case EF_CHOOKGI: this->ElementalOrbit(0); break; - case 229: + case EF_CLOUD: for (int index = 0; index < 40; ++index) { this->SkyCloud(0); } break; - case 230: + case EF_CLOUD2: for (int index = 0; index < 60; ++index) { this->SkyCloud(1); } break; - case 231: + case EF_MAPPILLAR: this->TexturedCrossStaged("effect\\ring_blue.tga", 0); break; - case 232: + case EF_LINELINK: this->TrackCloud(0); break; - case 233: + case EF_CLOUD3: for (int index = 0; index < 40; ++index) { this->SkyCloud(2); } break; - case 234: + case EF_SPELLBREAKER: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\sage_spell breake.wav"); @@ -24614,32 +24614,32 @@ bool CRagEffect::OnProcess() { return false; } break; - case 236: + case EF_DELUGE: this->TexturedCrossKind("effect\\ring_blue.tga", 0); break; - case 237: + case EF_VIOLENTGALE: this->TexturedCrossKind("effect\\magic_green.tga", 0); break; - case 238: + case EF_LANDPROTECTOR: this->TexturedCrossKind("effect\\ring_white.tga", 0); break; - case 239: + case EF_BOTTOM_VO: this->TexturedFlare("effect\\ring_red.tga", 0, 0, 0); break; - case 240: + case EF_BOTTOM_DE: this->TexturedFlare("effect\\ring_blue.tga", 0, 0, 0); break; - case 241: + case EF_BOTTOM_VI: this->TexturedFlare("effect\\magic_green.tga", 0, 0, 0); break; - case 242: + case EF_BOTTOM_LA: this->TexturedHalo("effect\\aaa copy.bmp", 1); break; - case 244: + case EF_MAGICROD: this->ProcessEZ2STRC10830(); this->SageMagicRod(); break; - case 245: + case EF_HOLYCROSS: if (this->state.stateCnt == 0) { g_soundMgr->PlayWave("effect\\cru_holy cross.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } @@ -24647,45 +24647,45 @@ bool CRagEffect::OnProcess() { return false; } break; - case 246: + case EF_SHIELDCHARGE: if (!this->ProcessEZ2STRC65300()) { return false; } break; - case 247: + case EF_MAPPILLAR2: this->TexturedCrossStaged("effect\\ring_blue.tga", 1); break; - case 248: + case EF_PROVIDENCE: this->TexturedCross("effect\\ring_yellow.tga", 0); if (!this->ProcessEZ2STR(0.0f, -80.0f, 0.0f)) { return false; } break; - case 249: + case EF_SHIELDBOOMERANG: this->TexturedShieldThrow("effect\\shield_boomerang.bmp"); break; - case 251: + case EF_DEVOTION: if (!this->ProcessEZ2STR(0.0f, -20.0f, 0.0f)) { return false; } break; - case 252: + case EF_REFLECTSHIELD: this->QuadRingStack("effect\\ring_yellow.tga"); break; - case 253: + case EF_ABSORBSPIRITS: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWaveAt(*this, "effect\\흡기.wav", -80.0f); } this->HealRingSparkle("effect\\ring_blue.tga", 2); break; - case 254: + case EF_STEELBODY: this->SuperSlashFan(4, 0); break; - case 255: - case 256: - case 257: - case 258: + case EF_FLAMELAUNCHER: + case EF_FROSTWEAPON: + case EF_LIGHTNINGLOADER: + case EF_SEISMICWEAPON: if (this->state.stateCnt == 10) { this->render.position = this->state.parent->render.position; PlayEffectWaveAt(*this, "_enemy_hit_wind1.wav", -150.0f); @@ -24694,43 +24694,43 @@ bool CRagEffect::OnProcess() { return false; } break; - case 259: + case EF_MAPPILLAR3: this->TexturedCrossStaged("effect\\magic_green.tga", 2); break; - case 260: + case EF_MAPPILLAR4: this->TexturedCrossStaged("effect\\ring_red.tga", 3); break; - case 261: + case EF_GUMGANG2: this->TexturedCrossLevel("effect\\ring_yellow.tga", 0); break; - case 262: + case EF_TEIHIT1: for (int index = 0; index < 20; ++index) { this->TexturedScatter("effect\\alpha_center.tga", 0); } break; - case 263: + case EF_GUMGANG3: this->TexturedCrossKind("effect\\ring_yellow.tga", 1); break; - case 264: + case EF_TEIHIT2: for (int index = 0; index < 5; ++index) { this->TEIHIT2(); } break; - case 265: + case EF_TANJI: this->TANJI(); break; - case 266: + case EF_TEIHIT1X: for (int index = 0; index < 24; ++index) { this->TexturedScatter("effect\\lens1.tga", 1); } break; - case 267: + case EF_CHIMTO: this->CHIMTO(0); break; - case 269: - case 270: - case 271: - case 272: + case EF_STRIPWEAPON: + case EF_STRIPSHIELD: + case EF_STRIPARMOR: + case EF_STRIPHELM: if (this->state.stateCnt == 6) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\복호격.wav"); @@ -24739,7 +24739,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 273: + case EF_CHAINCOMBO: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\mon_연환.wav"); @@ -24748,7 +24748,7 @@ bool CRagEffect::OnProcess() { return false; } break; - case 274: + case EF_RG_COIN: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\rog_steal coin.wav"); @@ -24757,7 +24757,7 @@ bool CRagEffect::OnProcess() { this->TexturedSpray("effect\\coin_a.bmp"); } break; - case 275: + case EF_BACKSTAP: if (this->state.stateCnt == 20) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\rog_back stap.wav"); @@ -24766,90 +24766,90 @@ bool CRagEffect::OnProcess() { this->TEIHIT2(); } break; - case 276: + case EF_TEIHIT3: for (int index = 0; index < 20; ++index) { this->TexturedScatterLow("effect\\lens2.tga", 2); } break; - case 277: + case EF_BOTTOM_DISSONANCE: this->TexturedMagicRing("effect\\ring_blue.tga", 0); break; - case 278: + case EF_BOTTOM_LULLABY: this->Bottom_Music("effect\\zz.bmp", 1); break; - case 279: + case EF_BOTTOM_RICHMANKIM: this->Bottom_Music("effect\\pocket.bmp", 3); break; - case 280: + case EF_BOTTOM_ETERNALCHAOS: this->TexturedGlow("effect\\twirl.bmp", 8); break; - case 281: + case EF_BOTTOM_DRUMBATTLEFIELD: this->Bottom_Music("", 2); break; - case 282: + case EF_BOTTOM_RINGNIBELUNGEN: this->Bottom_Music("effect\\twirl.bmp", 7); break; - case 283: + case EF_BOTTOM_ROKISWEIL: this->Bottom_Out("effect\\safeline.bmp", 0); break; - case 284: + case EF_BOTTOM_INTOABYSS: this->Bottom_Music("", 5); break; - case 285: + case EF_BOTTOM_SIEGFRIED: this->TexturedGlow("effect\\twirl.bmp", 4); break; - case 286: + case EF_BOTTOM_WHISTLE: this->Bottom_Music("effect\\melody_b.bmp", 0); break; - case 287: + case EF_BOTTOM_ASSASSINCROSS: this->TexturedMagicRing("effect\\ring_red.tga", 1); break; - case 288: + case EF_BOTTOM_POEMBRAGI: this->Bottom_Music("", 8); break; - case 289: + case EF_BOTTOM_APPLEIDUN: this->Bottom_Music("effect\\idun_apple.bmp", 6); break; - case 290: + case EF_BOTTOM_UGLYDANCE: this->TexturedMagicRing("effect\\ring_red.tga", 0); break; - case 291: + case EF_BOTTOM_HUMMING: this->Bottom_Music("effect\\melody_a.bmp", 0); break; - case 292: + case EF_BOTTOM_DONTFORGETME: this->TexturedMagicRing("effect\\magic_green.tga", 2); break; - case 293: + case EF_BOTTOM_FORTUNEKISS: this->Bottom_Music("effect\\kiss.bmp", 4); break; - case 294: + case EF_BOTTOM_SERVICEFORYOU: this->TexturedMagicRing("effect\\safeline.bmp", 4); break; - case 295: + case EF_TALK_FROSTJOKE: this->NotifyGameMode(1); break; - case 296: + case EF_TALK_SCREAM: this->NotifyGameMode(0); break; - case 297: + case EF_POKJUK: this->PokBurst(); break; - case 298: + case EF_THROWITEM: this->ThrowItem("유저인터페이스\\item\\빈병.bmp", 0); break; - case 299: + case EF_THROWITEM2: this->ThrowItem("유저인터페이스\\item\\빈포션병.bmp", 1); break; - case 374: + case EF_BOTTOM_BASILICA: this->TexturedFourRing("effect\\alpha_down.tga", 0); this->TexturedFourRing("effect\\alpha_down.tga", 1); break; - case 375: + case EF_ASSUMPTIO: if ((this->state.parent->render.flags & 8) == 0) { this->state.parent->render.flags += 8; } break; - case 376: + case EF_HITLINE2: this->WhiteSparks(2); if (this->state.stateCnt >= 10 && this->state.stateCnt <= 20) { if ((this->state.parent->render.flags & 8) == 0) { @@ -24858,7 +24858,7 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, 255, 120, 50); } break; - case 377: + case EF_BASH3D2: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\mon_맹룡과강.wav"); @@ -24872,7 +24872,7 @@ bool CRagEffect::OnProcess() { } } break; - case 378: + case EF_ENERGYDRAIN2: this->EnergyDrain2(); if (this->state.stateCnt >= 55 && this->state.stateCnt <= 65) { if ((this->state.parent->render.flags & 1) == 0) { @@ -24881,12 +24881,12 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, 100, 100, 255); } break; - case 379: + case EF_TRANSBLUEBODY: if (this->state.stateCnt >= 0 && this->state.stateCnt <= 200) { this->state.parent->SetColor(-1, 205 - this->state.stateCnt, 205 - this->state.stateCnt, 255); } break; - case 380: + case EF_MAGICCRASHER: if (this->state.stateCnt == 25) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\매직 크래쉬.wav"); @@ -24901,18 +24901,18 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, std::max(rand() % 255, 0), std::max(rand() % 255, 0), std::max(rand() % 255, 0)); } break; - case 381: + case EF_LIGHTSPHERE2: this->TexturedAura("effect\\thunder_center.bmp", 0); for (int index = 0; index < 80; ++index) { this->TexturedSparkle("effect\\white02.bmp"); } break; - case 382: + case EF_LIGHTBLADE: if ((this->state.parent->render.flags & 4) == 0) { this->state.parent->render.flags += 4; } break; - case 383: + case EF_ENERGYDRAIN3: this->SonicSlashFan(0); if (this->state.stateCnt >= 50 && this->state.stateCnt <= 80) { if ((this->state.parent->render.flags & 8) == 0) { @@ -24921,14 +24921,14 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, (125 - this->state.stateCnt) * 2, (125 - this->state.stateCnt) * 2, 250); } break; - case 384: + case EF_LINELINK2: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\소울 체인지.wav"); } this->TrackTarget(); break; - case 385: + case EF_LINKLIGHT: if (this->state.stateCnt >= 40 && this->state.stateCnt <= 70) { if ((this->state.parent->render.flags & 1) == 0) { this->state.parent->render.flags += 1; @@ -24936,7 +24936,7 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, 200, 150, 50); } break; - case 386: + case EF_TRUESIGHT: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\hunter_detecting.wav"); @@ -24945,7 +24945,7 @@ bool CRagEffect::OnProcess() { this->TexturedQuadSpin("effect\\alpha_center.tga", static_cast(phase), 3); } break; - case 387: + case EF_FALCONASSAULT: if (this->state.stateCnt == 30) { g_modeMgr.GetGameMode()->SendMsg(122, 0, 0, 0, 0); } @@ -24961,14 +24961,14 @@ bool CRagEffect::OnProcess() { } } break; - case 388: + case EF_TRIPLEATTACK2: if (this->state.stateCnt == 30) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\샤프슈팅.wav"); } this->AlphaCenterTrail(); break; - case 389: + case EF_PORTAL4: this->Cloud11Burst(0); if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; @@ -24981,14 +24981,14 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, 220, 250, 220); } break; - case 390: + case EF_MELTDOWN: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\black_overthrust.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 392: + case EF_REJECTSWORD: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\kyrie_guard.wav"); @@ -25005,26 +25005,26 @@ bool CRagEffect::OnProcess() { } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 393: + case EF_TRIPLEATTACK3: if (this->state.stateCnt == 30) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\애로우 발칸.wav"); } this->AlphaCenterStream(); break; - case 394: + case EF_SPHEREWIND2: for (int angle = 0; angle < 45; angle += 9) { this->FeatherRing("effect\\fire_ivy.bmp", static_cast(angle), 1); } break; - case 395: + case EF_LINELINK3: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\소울 체인지.wav"); } this->TrackTargetWide(); break; - case 396: + case EF_PINKBODY: if ((this->state.parent->render.flags & 1) == 0) { this->state.parent->render.flags += 1; } @@ -25033,7 +25033,7 @@ bool CRagEffect::OnProcess() { } this->state.parent->SetColor(-1, 255, 89, 182); break; - case 399: + case EF_BASH3D3: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\헤드 크러쉬.wav"); @@ -25048,7 +25048,7 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, 255, 255, 200); } break; - case 400: + case EF_BASH3D4: if (this->state.stateCnt == 22) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\비트 조인트.wav"); @@ -25063,14 +25063,14 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, 255, 255, 255); } break; - case 401: + case EF_NAPALMVALCAN: if (this->state.stateCnt == 20 || this->state.stateCnt == 30 || this->state.stateCnt == 40 || this->state.stateCnt == 50 || this->state.stateCnt == 60) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_NapalmBeat.wav"); this->Hit2(0); } break; - case 402: + case EF_PORTAL5: this->Cloud11Burst(1); if (this->state.stateCnt >= 5 && this->state.stateCnt <= 65) { if ((this->state.parent->render.flags & 1) == 0) { @@ -25079,7 +25079,7 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, 250, 250, 200); } break; - case 403: + case EF_MAGICCRASHER2: if (this->state.stateCnt == 25) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\swordman_provoke.wav"); @@ -25088,13 +25088,13 @@ bool CRagEffect::OnProcess() { this->state.parent->SetColor(-1, std::max(rand() % 255, 0), std::max(rand() % 255, 0), std::max(rand() % 255, 0)); } break; - case 404: + case EF_BOTTOM_SPIDER: this->TexturedHalo("effect\\spiderweb.tga", 2); break; - case 405: + case EF_BOTTOM_FOGWALL: this->TexturedPulseKind("effect\\ring_white.tga", 2); break; - case 408: + case EF_BABY: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_Blessing.wav"); @@ -25103,7 +25103,7 @@ bool CRagEffect::OnProcess() { this->FeatherBurst("effect\\fire_ivy.bmp", static_cast(angle), 0); } break; - case 409: + case EF_SOULBREAKER2: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\메테오 어썰트.wav"); @@ -25118,10 +25118,10 @@ bool CRagEffect::OnProcess() { this->PurpleSlash(static_cast(angle)); } break; - case 410: + case EF_RAINBOW: this->Rainbow("effect\\alpha_center.tga", 0); break; - case 411: + case EF_PEONG: for (int index = 0; index < 30; ++index) { this->WhiteLightTrail("effect\\whitelight.tga", 0); } @@ -25133,10 +25133,10 @@ bool CRagEffect::OnProcess() { this->TexturedScatterArc("effect\\peong2.tga", static_cast(angle), 0); } break; - case 412: + case EF_TANJI2: this->TANJI2(); break; - case 413: + case EF_PRESSEDBODY: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_내려찍기.wav"); @@ -25146,13 +25146,13 @@ bool CRagEffect::OnProcess() { this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt - 17); } break; - case 414: + case EF_SPINEDBODY: if ((this->state.parent->render.flags & 0x40) == 0 && this->state.stateCnt < 18) { this->state.parent->render.flags += 0x40; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt * 2); } break; - case 415: + case EF_KICKEDBODY: if (this->state.stateCnt == 17) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\EF_hit2.wav"); @@ -25166,10 +25166,10 @@ bool CRagEffect::OnProcess() { this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt - 30); } break; - case 416: + case EF_AIRTEXTURE: this->AirTexture("effect\\emp shock.tga"); break; - case 417: + case EF_HITBODY: if ((this->state.parent->render.flags & 0x100) == 0) { this->state.parent->render.flags += 0x100; if (this->state.stateCnt < 15) { @@ -25177,15 +25177,15 @@ bool CRagEffect::OnProcess() { } } break; - case 418: + case EF_DOUBLEGUMGANG: this->SuperSlashSpread(2, 2); break; - case 419: + case EF_REFLECTBODY: if ((this->state.parent->render.flags & 0x200) == 0) { this->state.parent->render.flags += 0x200; } break; - case 420: + case EF_BABYBODY: if ((this->state.parent->render.flags & 0x10) == 0) { this->state.parent->render.flags += 0x10; if (this->state.stateCnt <= 45) { @@ -25193,7 +25193,7 @@ bool CRagEffect::OnProcess() { } } break; - case 421: + case EF_BABYBODY2: if (this->state.stateCnt >= EffectLifetime(421) - 1) { this->state.stateCnt = 0; } @@ -25202,7 +25202,7 @@ bool CRagEffect::OnProcess() { this->state.parent->render.pulsePhases[0] = 45; } break; - case 422: + case EF_GIANTBODY: if ((this->state.parent->render.flags & 0x400) == 0) { this->state.parent->render.flags += 0x400; if (this->state.stateCnt <= 45) { @@ -25210,32 +25210,32 @@ bool CRagEffect::OnProcess() { } } break; - case 423: + case EF_GIANTBODY2: if ((this->state.parent->render.flags & 0x400) == 0) { this->state.parent->render.flags += 0x400; this->state.parent->render.pulsePhases[1] = 45; } break; - case 424: + case EF_ASURABODY: if ((this->state.parent->render.flags & 0x800) == 0) { this->state.parent->render.flags += 0x800; this->state.parent->render.unknown_00F2 = this->state.stateCnt < 200 ? static_cast(this->state.stateCnt) : 200; } break; - case 425: + case EF_4WAYBODY: if (this->state.stateCnt >= 30) { this->state.parent->render.flags |= 0x1000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt - 30); } break; - case 426: - case 458: + case EF_QUAKEBODY: + case EF_QUAKEBODY2: if ((this->state.parent->render.flags & 0x2000) == 0) { this->state.parent->render.flags += 0x2000; this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt); } break; - case 427: + case EF_ASURABODY_MONSTER: if ((this->state.parent->render.flags & 0x800) == 0) { this->state.parent->render.flags += 0x800; if (this->state.stateCnt < 150) { @@ -25243,19 +25243,19 @@ bool CRagEffect::OnProcess() { } } break; - case 428: + case EF_HITLINE3: this->WhiteSparkStreak(0); break; - case 429: + case EF_HITLINE4: this->White02Burst(3); break; - case 430: + case EF_HITLINE5: this->WhiteSparkRing(3); break; - case 431: + case EF_HITLINE6: this->WhiteSparkStreak(3); break; - case 432: + case EF_ELECTRIC: if (this->state.stateCnt == 25) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_전기.wav"); @@ -25263,14 +25263,14 @@ bool CRagEffect::OnProcess() { this->ElectricRingLate(0, 0); this->ElectricRingLate(0, 180); break; - case 433: + case EF_ELECTRIC2: this->ElectricArc(0, 0); this->ElectricArc(0, 0); break; - case 434: + case EF_HITLINE7: this->WhiteSparkStreak(1); break; - case 435: + case EF_STORMKICK: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_회오리차기.wav"); @@ -25285,43 +25285,43 @@ bool CRagEffect::OnProcess() { } } break; - case 436: + case EF_HALFSPHERE: this->TexturedPulse("effect\\white02.bmp"); break; - case 437: + case EF_ATTACKENERGY: this->TexturedPulse("effect\\white02.bmp"); this->TexturedBurst("effect\\ring_blue.tga"); break; - case 438: + case EF_ATTACKENERGY2: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_마법반사.wav"); } this->AttackEnergy2("effect\\cloud11.tga"); break; - case 439: + case EF_CHEMICAL3: for (int index = 0; index < 4; ++index) { this->LineStreakLayered(0); this->LineStreakLayered(1); } break; - case 440: + case EF_ASSUMPTIO2: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\아숨프티오.wav"); } this->ProcessEZ2STR(0.0f, -80.0f, 0.0f); break; - case 441: + case EF_BLUECASTING: this->BlueSpellRings(); break; - case 442: + case EF_RUN: if ((this->state.parent->render.flags & 0x8000) == 0) { this->state.parent->render.flags += 0x8000; this->state.parent->render.unknown_00F7 = static_cast(this->state.stateCnt); } break; - case 444: + case EF_STOPEFFECT: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_효과음1.wav"); @@ -25329,7 +25329,7 @@ bool CRagEffect::OnProcess() { this->RunStop(0); this->RunStop(45); break; - case 445: + case EF_JUMPBODY: if (this->state.stateCnt == 30) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_회피2.wav"); @@ -25339,7 +25339,7 @@ bool CRagEffect::OnProcess() { this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt - 35); } break; - case 446: + case EF_LANDBODY: if ((this->state.parent->render.flags & 0x20000) == 0) { this->state.parent->render.flags += 0x20000; this->state.parent->render.unknown_00F6 = static_cast(this->state.stateCnt); @@ -25349,13 +25349,13 @@ bool CRagEffect::OnProcess() { this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt + 11); } break; - case 447: + case EF_FOOT3: this->TexturedRise("effect\\foot_l2.tga", 1); break; - case 448: + case EF_FOOT4: this->TexturedRise("effect\\foot_r2.tga", 1); break; - case 449: + case EF_TAE_READY: if ((this->state.parent->render.flags & 0x4000) == 0) { this->state.parent->render.flags += 0x4000; if (this->state.stateCnt <= 50) { @@ -25363,29 +25363,29 @@ bool CRagEffect::OnProcess() { } } break; - case 450: + case EF_GRANDCROSS2: this->GrandCrossRings(0, 1); this->GRANDCROSS2(1); break; - case 451: + case EF_SOULSTRIKE2: this->SoulStrike(1); break; - case 452: + case EF_YUFITEL2: this->YufitelHit(1); break; - case 453: + case EF_NPC_STOP: this->NpcStop(0); break; - case 454: + case EF_DARKCASTING: this->BlackSpellRings(0); break; - case 455: + case EF_GUMGANGNPC: this->SuperSlashFan(2, 1); break; - case 456: + case EF_AGIUP: this->IncAgilityCenter(0); break; - case 457: + case EF_JUMPKICK: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_날라차기.wav"); @@ -25398,7 +25398,7 @@ bool CRagEffect::OnProcess() { this->state.parent->render.unknown_0070 = 2; } break; - case 459: + case EF_STORMKICK1: this->TexturedMark("effect\\storm2.tga", 1); this->Cloud11Burst(2); this->Cloud11Burst(3); @@ -25409,7 +25409,7 @@ bool CRagEffect::OnProcess() { } } break; - case 460: + case EF_STORMKICK2: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "ice_titan_attack.wav"); @@ -25418,12 +25418,12 @@ bool CRagEffect::OnProcess() { this->Cloud11Burst(2); this->Cloud11Burst(3); break; - case 461: + case EF_STORMKICK3: this->TexturedMark("effect\\storm2.tga", 3); this->Cloud11Burst(2); this->Cloud11Burst(3); break; - case 462: + case EF_STORMKICK4: if (this->state.stateCnt == 15) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_회피.wav"); @@ -25432,7 +25432,7 @@ bool CRagEffect::OnProcess() { this->WhiteLightTrail("effect\\whitelight.tga", 1); } break; - case 463: + case EF_STORMKICK5: if (this->state.stateCnt == 15) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_회피.wav"); @@ -25443,7 +25443,7 @@ bool CRagEffect::OnProcess() { this->WhiteLightTrail("effect\\whitelight.tga", 1); } break; - case 464: + case EF_STORMKICK6: if (this->state.stateCnt == 0) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\REVERBERATION.wav"); @@ -25452,12 +25452,12 @@ bool CRagEffect::OnProcess() { this->Cloud11Burst(2); this->Cloud11Burst(3); break; - case 465: + case EF_STORMKICK7: this->TexturedMark("effect\\storm2.tga", 2); this->Cloud11Burst(2); this->Cloud11Burst(3); break; - case 466: + case EF_SPINEDBODY2: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_돌려차기.wav"); @@ -25467,72 +25467,72 @@ bool CRagEffect::OnProcess() { this->state.parent->render.unknown_00F4 = static_cast(this->state.stateCnt - 14); } break; - case 467: + case EF_BEGINASURA1: this->TexturedSkillIcon("effect\\hanmoon1.tga", 0, 0); break; - case 468: + case EF_BEGINASURA2: this->TexturedSkillIcon("effect\\hanmoon2.tga", 0, 0); break; - case 469: + case EF_BEGINASURA3: this->TexturedSkillIcon("effect\\hanmoon3.tga", 0, 0); break; - case 470: + case EF_BEGINASURA4: this->TexturedSkillIcon("effect\\hanmoon4.tga", 0, 0); break; - case 471: + case EF_BEGINASURA5: this->TexturedSkillIcon("effect\\hanmoon7.tga", 0, 0); break; - case 472: + case EF_BEGINASURA6: this->TexturedSkillIcon("effect\\hanmoon5.tga", 0, 0); break; - case 473: + case EF_BEGINASURA7: this->TexturedSkillIcon("effect\\hanmoon6.tga", 0, 0); break; - case 474: + case EF_AURABLADE2: if ((this->state.parent->render.flags & 2) == 0) { this->state.parent->render.flags += 2; } break; - case 475: + case EF_DEVIL1: this->BLIND(1); break; - case 476: + case EF_DEVIL2: this->BLIND(2); break; - case 477: + case EF_DEVIL3: this->BLIND(3); break; - case 478: + case EF_DEVIL4: this->BLIND(4); break; - case 479: + case EF_DEVIL5: this->BLIND(5); break; - case 480: + case EF_DEVIL6: this->BLIND(6); break; - case 481: + case EF_DEVIL7: this->BLIND(7); break; - case 482: + case EF_DEVIL8: this->BLIND(8); break; - case 483: + case EF_DEVIL9: this->BLIND(9); break; - case 484: + case EF_DEVIL10: this->BLIND(10); break; - case 485: + case EF_DOUBLEGUMGANG2: this->SuperSlashSpread(2, 1); break; - case 486: + case EF_DOUBLEGUMGANG3: this->SuperSlashSpread(2, 0); break; - case 487: + case EF_BLACKDEVIL: this->TexturedRisingRing("effect\\ring_black.tga"); break; - case 488: + case EF_FLOWERCAST: if (this->state.stateCnt == 5) { this->render.position = this->state.parent->render.position; PlayEffectWave(*this, "effect\\T_안락한마법.wav"); diff --git a/Source/Contents/Effects/RotateLineEffect.cpp b/Source/Contents/Effects/RotateLineEffect.cpp index 68b37f7a4..18615fa77 100644 --- a/Source/Contents/Effects/RotateLineEffect.cpp +++ b/Source/Contents/Effects/RotateLineEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/RotateLineEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Contents/Effects/EffectMemoryMgr.h" #include "Contents/Effects/Particle.h" @@ -47,11 +48,11 @@ void CRotateLineEffect::Open() { particle->unknown_0054 = 28.0f - static_cast(ring) * 5.0f; *reinterpret_cast(particle->unknown_0058) = 3.0f; switch (this->id) { - case 986: + case EF_ROTATE_LINE_GRAY: particle->SetColor(50, 50, 50); particle->destinationBlend = 6; break; - case 1000: + case EF_ROTATE_LINE_BLUE: particle->SetColor(100, 100, 255); particle->scale += 3.0f; break; diff --git a/Source/Contents/Effects/SaintCastingEffect.cpp b/Source/Contents/Effects/SaintCastingEffect.cpp index 69738c636..743565fde 100644 --- a/Source/Contents/Effects/SaintCastingEffect.cpp +++ b/Source/Contents/Effects/SaintCastingEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/SaintCastingEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -32,22 +33,22 @@ void CSaintCastingEffect::AddRing(const char* texture, int alpha) { *reinterpret_cast(&particle->unknown_00C4) = static_cast((particle->unknown_0010 + 2) * 90 % 360); switch (this->id) { - case 342: + case EF_COUPLECASTING: particle->alpha += (3 - particle->unknown_0010) * 45; particle->unknown_00C0 = 20.0f - static_cast(particle->unknown_0010); break; - case 367: + case EF_AURABLADE: particle->alpha = 0; particle->unknown_00E8 = -5 * particle->unknown_0010; particle->unknown_00C0 = 15.0f - static_cast(particle->unknown_0010); break; - case 12: - case 58: - case 441: - case 454: - case 564: - case 826: - case 911: + case EF_BEGINSPELL: + case EF_BEGINSPELL6: + case EF_BLUECASTING: + case EF_DARKCASTING: + case EF_HOMUNCASTING: + case EF_DARKCASTING2: + case EF_GREENCASTING: particle->alpha = 0; particle->unknown_00E8 = -5 * particle->unknown_0010; particle->unknown_00C0 = 20.0f - static_cast(particle->unknown_0010); @@ -55,21 +56,21 @@ void CSaintCastingEffect::AddRing(const char* texture, int alpha) { } switch (this->id) { - case 12: + case EF_BEGINSPELL: particle->SetColor(255, 255, 170); break; - case 342: - case 564: + case EF_COUPLECASTING: + case EF_HOMUNCASTING: particle->SetColor(255, 89, 182); break; - case 441: + case EF_BLUECASTING: particle->SetColor(100, 100, 255); break; - case 454: - case 826: + case EF_DARKCASTING: + case EF_DARKCASTING2: particle->SetColor(50, 50, 50); break; - case 911: + case EF_GREENCASTING: particle->SetColor(100, 255, 100); break; } @@ -97,60 +98,60 @@ void CSaintCastingEffect::Open() { const vector3d& player = reinterpret_cast(world->player)->render.position; switch (this->id) { - case 12: - case 58: - case 342: - case 441: - case 454: - case 564: - case 911: + case EF_BEGINSPELL: + case EF_BEGINSPELL6: + case EF_COUPLECASTING: + case EF_BLUECASTING: + case EF_DARKCASTING: + case EF_HOMUNCASTING: + case EF_GREENCASTING: g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", this->position[0] - player.x, 0.0f, this->position[2] - player.z, 250, 40, 1.0f, 0); break; } switch (this->id) { - case 12: + case EF_BEGINSPELL: this->AddRing("effect\\ring_yellow.tga", 0); this->AddRing("effect\\ring_yellow.tga", 0); break; - case 367: + case EF_AURABLADE: this->AddRing("effect\\ring_white.tga", 0); this->AddRing("effect\\ring_yellow.tga", 0); break; - case 441: + case EF_BLUECASTING: this->AddRing("effect\\ring_blue.tga", 0); this->AddRing("effect\\ring_blue.tga", 0); break; - case 342: - case 564: + case EF_COUPLECASTING: + case EF_HOMUNCASTING: this->AddRing("effect\\ring_red.tga", 45); this->AddRing("effect\\ring_red.tga", 25); break; - case 454: - case 826: + case EF_DARKCASTING: + case EF_DARKCASTING2: this->AddRing("effect\\ring_black.tga", 0); this->AddRing("effect\\ring_black.tga", 0); break; - case 58: - case 911: + case EF_BEGINSPELL6: + case EF_GREENCASTING: this->AddRing("effect\\ring_white.tga", 0); this->AddRing("effect\\ring_white.tga", 0); break; } switch (this->id) { - case 12: - case 58: + case EF_BEGINSPELL: + case EF_BEGINSPELL6: this->unknown_002C = 56; break; - case 342: + case EF_COUPLECASTING: this->unknown_002C = 1000; break; - case 367: - case 454: - case 564: - case 826: - case 911: + case EF_AURABLADE: + case EF_DARKCASTING: + case EF_HOMUNCASTING: + case EF_DARKCASTING2: + case EF_GREENCASTING: this->unknown_002C = 60; break; } @@ -178,13 +179,13 @@ void CSaintCastingEffect::OnProcess() { int alpha = previousTilt >= 10 ? particle->alpha : 0; if (scale < 4.0f) { - alpha += this->id == 367 ? 5 : 10; + alpha += this->id == EF_AURABLADE ? 5 : 10; } else { alpha -= 3; if (alpha <= 0) { alpha = 0; if (particle->unknown_00E8 < this->unknown_002C - 30) { - tilt = this->id == 367 ? 64 : 74; + tilt = this->id == EF_AURABLADE ? 64 : 74; scale = 3.37f; } } diff --git a/Source/Contents/Effects/SpriteEffect.cpp b/Source/Contents/Effects/SpriteEffect.cpp index 93ed04fed..742497371 100644 --- a/Source/Contents/Effects/SpriteEffect.cpp +++ b/Source/Contents/Effects/SpriteEffect.cpp @@ -1,3 +1,4 @@ +#include "Contents/Effects/EffectTypes.h" #include "Contents/Effects/SpriteEffect.h" #include "Client/Mode/CGameMode.h" @@ -97,13 +98,13 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { this->unknown_002C = 100; switch (this->id) { - case 0x3DE: + case EF_GROUND_EXPLOSION: particle->SetSprite("이팩트\\m_ef03.spr"); particle->SetAction("이팩트\\m_ef03.act"); particle->frameDelay = 4.0f; particle->scale = 1.5f; break; - case 0x46A: + case EF_UNK_1130: particle->SetSprite("이팩트\\bakuretsu_hadou\\bakuretsu_hadou.spr"); particle->SetAction("이팩트\\bakuretsu_hadou\\bakuretsu_hadou.act"); particle->unknown_00EC |= 0x200; @@ -112,125 +113,125 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 0; particle->frameDelay = 8.0f; break; - case 0x47B: + case EF_UNK_1147: particle->SetSprite("이팩트\\EF_POPCORN\\EF_POPCORN.spr"); particle->SetAction("이팩트\\EF_POPCORN\\EF_POPCORN.act"); particle->loopMode = 1; particle->depthOffset = 0.0003f; particle->frameDelay = 8.0f; break; - case 0x47F: + case EF_UNK_1151: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_NOTHING.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_NOTHING.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x480: + case EF_UNK_1152: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_WATER.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_WATER.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x481: + case EF_UNK_1153: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_GROUND.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_GROUND.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x482: + case EF_UNK_1154: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_FIRE.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_FIRE.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x483: + case EF_UNK_1155: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_WIND.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_WIND.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x484: + case EF_UNK_1156: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_POISON.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_POISON.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x485: + case EF_UNK_1157: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_SAINT.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_SAINT.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x486: + case EF_UNK_1158: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_DARKNESS.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_DARKNESS.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x487: + case EF_UNK_1159: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_TELEKINESIS.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_TELEKINESIS.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x488: + case EF_UNK_1160: particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_UNDEAD.spr"); particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_UNDEAD.act"); particle->loopMode = 0; particle->depthOffset = 0.0003f; break; - case 0x4A8: + case EF_UNK_1192: particle->SetSprite("이팩트\\random_opt_spr\\yellow.spr"); particle->SetAction("이팩트\\random_opt_spr\\yellow.act"); particle->loopMode = 0; particle->frameDelay = 4.0f; break; - case 0x4BB: - case 0x4BC: - case 0x4BD: + case EF_UNK_1211: + case EF_UNK_1212: + case EF_UNK_1213: particle->SetSprite("이팩트\\subject_aura\\subject_aura.spr"); particle->SetAction("이팩트\\subject_aura\\subject_aura.act"); particle->frameDelay = 8.0f; particle->loopMode = 0; particle->depthOffset = 0.0003f; particle->flags = 0x101; - if (this->id == 0x4BC) { + if (this->id == EF_UNK_1212) { particle->animation = 0; - } else if (this->id == 0x4BD) { + } else if (this->id == EF_UNK_1213) { particle->animation = 1; - } else if (this->id == 0x4BB) { + } else if (this->id == EF_UNK_1211) { particle->animation = 2; } break; - case 0x4CF: + case EF_BOOK_OF_DIMENSION: particle->SetSprite("이팩트\\book_of_dimension\\book_of_dimension.spr"); particle->SetAction("이팩트\\book_of_dimension\\book_of_dimension.act"); particle->frameDelay = 4.0f; particle->loopMode = 1; particle->flags = 0x101; break; - case 0x4D0: + case EF_UNK_1232: particle->SetSprite("이팩트\\book_of_creatingstar\\book_of_creatingstar.spr"); particle->SetAction("이팩트\\book_of_creatingstar\\book_of_creatingstar.act"); particle->frameDelay = 4.0f; particle->loopMode = 1; particle->flags = 0x101; break; - case 0x4D1: + case EF_CURSE_EXPLOSION: particle->SetSprite("이팩트\\curse_explosion\\curse_explosion.spr"); particle->SetAction("이팩트\\curse_explosion\\curse_explosion.act"); particle->frameDelay = 4.0f; particle->loopMode = 1; particle->flags = 0x101; break; - case 0x4D2: + case EF_SOUL_REAPER: particle->SetSprite("이팩트\\soul_reaper\\soul_reaper.spr"); particle->SetAction("이팩트\\soul_reaper\\soul_reaper.act"); particle->frameDelay = 4.0f; particle->loopMode = 1; particle->flags = 0x101; break; - case 0x4D3: + case EF_UNK_1235: particle->SetSprite("이팩트\\soul_shadow\\soul_shadow.spr"); particle->SetAction("이팩트\\soul_shadow\\soul_shadow.act"); particle->depthOffset = 0.0003f; @@ -238,7 +239,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 1; particle->flags = 0x101; break; - case 0x4D4: + case EF_UNK_1236: particle->SetSprite("이팩트\\soul_fairy\\soul_fairy.spr"); particle->SetAction("이팩트\\soul_fairy\\soul_fairy.act"); particle->depthOffset = 0.0003f; @@ -246,7 +247,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 1; particle->flags = 0x101; break; - case 0x4D5: + case EF_UNK_1237: particle->SetSprite("이팩트\\soul_falcon\\soul_falcon.spr"); particle->SetAction("이팩트\\soul_falcon\\soul_falcon.act"); particle->depthOffset = 0.0003f; @@ -254,7 +255,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 1; particle->flags = 0x101; break; - case 0x4DA: + case EF_SOUL_EXPLOSION: particle->SetSprite("이팩트\\soul_explosion\\soul_explosion.spr"); particle->SetAction("이팩트\\soul_explosion\\soul_explosion.act"); particle->depthOffset = 0.0003f; @@ -262,7 +263,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 1; particle->flags = 0x101; break; - case 0x561: + case EF_UNK_1377: particle->SetSprite("이팩트\\valkyrie_wing\\valkyrie_wing.spr"); particle->SetAction("이팩트\\valkyrie_wing\\valkyrie_wing.act"); particle->loopMode = 0; @@ -270,7 +271,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->frameDelay = 6.0f; particle->flags = 0x101; break; - case 0x58B: + case EF_UNK_1419: particle->SetSprite("이팩트\\c_amdarais_effect.spr"); particle->SetAction("이팩트\\c_amdarais_effect.act"); particle->depthOffset = 0.0001f; @@ -278,7 +279,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 0; particle->flags = 1; break; - case 0x651: + case EF_UNK_1617: particle->SetSprite("이팩트\\black_bubble\\small\\blackbubble_small.spr"); particle->SetAction("이팩트\\black_bubble\\small\\blackbubble_small.act"); particle->depthOffset = 0.0001f; @@ -286,7 +287,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 0; particle->flags = 1; break; - case 0x652: + case EF_UNK_1618: particle->SetSprite("이팩트\\black_bubble\\midium\\blackbubble_midium.spr"); particle->SetAction("이팩트\\black_bubble\\midium\\blackbubble_midium.act"); particle->depthOffset = 0.0001f; @@ -294,7 +295,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 0; particle->flags = 1; break; - case 0x653: + case EF_UNK_1619: particle->SetSprite("이팩트\\black_bubble\\large\\blackbubble_large.spr"); particle->SetAction("이팩트\\black_bubble\\large\\blackbubble_large.act"); particle->depthOffset = 0.0001f; @@ -302,7 +303,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 0; particle->flags = 1; break; - case 0x95A: + case EF_UNK_2394: particle->SetSprite("이팩트\\Serpent_Shadow\\Serpent_Shadow.spr"); particle->SetAction("이팩트\\Serpent_Shadow\\Serpent_Shadow.act"); particle->loopMode = 0; @@ -310,35 +311,35 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->frameDelay = 4.0f; particle->flags = 0xD; break; - case 0x974: + case EF_UNK_2420: particle->SetSprite("몬스터\\violen_hit.spr"); particle->SetAction("몬스터\\violen_hit.act"); particle->loopMode = 1; particle->depthOffset = 0.001f; particle->frameDelay = 4.0f; break; - case 0x978: + case EF_UNK_2424: particle->SetSprite("이팩트\\C_Aura_Of_Ghost_S\\C_Aura_Of_Ghost_S.spr"); particle->SetAction("이팩트\\C_Aura_Of_Ghost_S\\C_Aura_Of_Ghost_S.act"); particle->loopMode = 0; particle->depthOffset = 0.001f; particle->frameDelay = 4.0f; break; - case 0x97E: + case EF_UNK_2430: particle->SetSprite("이팩트\\C_Guide_Of_Dead_Text\\C_Guide_Of_Dead_Text.spr"); particle->SetAction("이팩트\\C_Guide_Of_Dead_Text\\C_Guide_Of_Dead_Text.act"); particle->loopMode = 0; particle->depthOffset = 0.001f; particle->frameDelay = 12.0f; break; - case 0x97F: + case EF_UNK_2431: particle->SetSprite("이팩트\\C_Medjed_Text\\C_Medjed_Text.spr"); particle->SetAction("이팩트\\C_Medjed_Text\\C_Medjed_Text.act"); particle->loopMode = 0; particle->depthOffset = 0.001f; particle->frameDelay = 12.0f; break; - case 0x97C: + case EF_UNK_2428: particle->SetSprite("이팩트\\Atque_Poenitentia\\Atque_Poenitentia.spr"); particle->SetAction("이팩트\\Atque_Poenitentia\\Atque_Poenitentia.act"); particle->loopMode = 0; @@ -346,7 +347,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->frameDelay = 4.0f; particle->flags = 0xD; break; - case 0x97D: + case EF_UNK_2429: particle->SetSprite("이팩트\\Perm_Frost_Oblivion\\Perm_Frost_Oblivion.spr"); particle->SetAction("이팩트\\Perm_Frost_Oblivion\\Perm_Frost_Oblivion.act"); particle->depthOffset = 0.001f; @@ -354,7 +355,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 0; particle->flags = 1; break; - case 0x99A: + case EF_UNK_2458: particle->SetSprite("이팩트\\S_Beelzebub_Wing\\S_Beelzebub_Wing.spr"); particle->SetAction("이팩트\\S_Beelzebub_Wing\\S_Beelzebub_Wing.act"); particle->flags = 1; @@ -362,7 +363,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) { particle->loopMode = 0; particle->frameDelay = 8.0f; break; - case 0x98B: { + case EF_UNK_2443: { const char spriteSource[] = {'\x99', '\x4B', '\xC5', '\xAC', '\x93', '\x65', '\x7B', '\x98', '\x06', '\xB5', '\x33', '\x4F', '\x60', '\x99', '\x48', '\xA8', '\x1F', '\xE2', '\x70', '\x09', '\x34', '\xE5', '\x54', '\xAB', '\x2B', '\x87'}; particle->SetSprite(DecryptName<0xDB27CB557D038759ULL>(spriteSource)); @@ -394,9 +395,9 @@ void CSpriteEffect::Render() { // FUNCTION: fn_19199 bool CSpriteEffect::IsAlive() { switch (this->id) { - case 0x3DE: + case EF_GROUND_EXPLOSION: return !this->IsFinished(); - case 0x4A8: { + case EF_UNK_1192: { if (this->actor == 0) { return false; } @@ -416,33 +417,33 @@ bool CSpriteEffect::IsAlive() { return true; } - case 0x46A: - case 0x47F: - case 0x480: - case 0x481: - case 0x482: - case 0x483: - case 0x484: - case 0x485: - case 0x486: - case 0x487: - case 0x488: - case 0x4BB: - case 0x4BC: - case 0x4BD: - case 0x561: - case 0x58B: - case 0x651: - case 0x652: - case 0x653: - case 0x95A: - case 0x978: - case 0x97C: - case 0x97D: - case 0x97E: - case 0x97F: - case 0x98B: - case 0x99A: + case EF_UNK_1130: + case EF_UNK_1151: + case EF_UNK_1152: + case EF_UNK_1153: + case EF_UNK_1154: + case EF_UNK_1155: + case EF_UNK_1156: + case EF_UNK_1157: + case EF_UNK_1158: + case EF_UNK_1159: + case EF_UNK_1160: + case EF_UNK_1211: + case EF_UNK_1212: + case EF_UNK_1213: + case EF_UNK_1377: + case EF_UNK_1419: + case EF_UNK_1617: + case EF_UNK_1618: + case EF_UNK_1619: + case EF_UNK_2394: + case EF_UNK_2424: + case EF_UNK_2428: + case EF_UNK_2429: + case EF_UNK_2430: + case EF_UNK_2431: + case EF_UNK_2443: + case EF_UNK_2458: return this->ActorExists(); } @@ -467,7 +468,7 @@ void CSpriteEffect::OnProcess() { ++particle->unknown_00E8; switch (this->id) { - case 0x46A: { + case EF_UNK_1130: { int height = 8; if (CGameActor* actor = static_cast(FindRenderObject(this->actor))) { height = static_cast(actor->GetNameOffset() + 8.0f); @@ -478,22 +479,22 @@ void CSpriteEffect::OnProcess() { particle->position.z = this->position[2]; break; } - case 0x47B: - case 0x4A8: + case EF_UNK_1147: + case EF_UNK_1192: particle->position.x = this->position[0]; particle->position.y = this->position[1] - 10.0f; particle->position.z = this->position[2]; break; - case 0x47F: - case 0x480: - case 0x481: - case 0x482: - case 0x483: - case 0x484: - case 0x485: - case 0x486: - case 0x487: - case 0x488: { + case EF_UNK_1151: + case EF_UNK_1152: + case EF_UNK_1153: + case EF_UNK_1154: + case EF_UNK_1155: + case EF_UNK_1156: + case EF_UNK_1157: + case EF_UNK_1158: + case EF_UNK_1159: + case EF_UNK_1160: { int height = 25; if (CGameActor* actor = static_cast(FindRenderObject(this->actor))) { height = static_cast(actor->GetNameOffset() + 25.0f); @@ -504,9 +505,9 @@ void CSpriteEffect::OnProcess() { particle->position.z = this->position[2]; break; } - case 0x4BB: - case 0x4BC: - case 0x4BD: { + case EF_UNK_1211: + case EF_UNK_1212: + case EF_UNK_1213: { CGameActor* actor = static_cast(FindRenderObject(this->actor)); if (!actor) { break; @@ -518,7 +519,7 @@ void CSpriteEffect::OnProcess() { particle->position.z = this->position[2]; break; } - case 0x561: { + case EF_UNK_1377: { CGameActor* actor = static_cast(FindRenderObject(this->actor)); if (!actor) { break; @@ -530,8 +531,8 @@ void CSpriteEffect::OnProcess() { particle->position.z = this->position[2]; break; } - case 0x95A: - case 0x978: { + case EF_UNK_2394: + case EF_UNK_2424: { CGameActor* actor = static_cast(FindRenderObject(this->actor)); if (!actor) { break; @@ -543,7 +544,7 @@ void CSpriteEffect::OnProcess() { particle->position.z = this->position[2]; break; } - case 0x97C: { + case EF_UNK_2428: { CGameActor* actor = static_cast(FindRenderObject(this->actor)); if (!actor) { break; @@ -556,7 +557,7 @@ void CSpriteEffect::OnProcess() { particle->position.z = this->position[2]; break; } - case 0x97D: { + case EF_UNK_2429: { CGameActor* actor = static_cast(FindRenderObject(this->actor)); if (!actor) { break; @@ -568,8 +569,8 @@ void CSpriteEffect::OnProcess() { particle->position.z = this->position[2]; break; } - case 0x97E: - case 0x97F: { + case EF_UNK_2430: + case EF_UNK_2431: { CGameActor* actor = static_cast(FindRenderObject(this->actor)); if (!actor) { break; @@ -581,7 +582,7 @@ void CSpriteEffect::OnProcess() { particle->position.z = this->position[2]; break; } - case 0x98B: + case EF_UNK_2443: particle->unknown_02BC = 1; particle->unknown_02BD = 1; particle->unknown_02C4 = 0.0f; @@ -590,7 +591,7 @@ void CSpriteEffect::OnProcess() { particle->position.y = this->position[1]; particle->position.z = this->position[2]; break; - case 0x99A: + case EF_UNK_2458: particle->unknown_02BC = 1; particle->unknown_02BD = 1; particle->unknown_02C4 = -105.0f; diff --git a/Source/Contents/Effects/StormKickEffect.cpp b/Source/Contents/Effects/StormKickEffect.cpp index e27cdccf2..bf827726e 100644 --- a/Source/Contents/Effects/StormKickEffect.cpp +++ b/Source/Contents/Effects/StormKickEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/StormKickEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Client/Mode/ModeMgr.h" #include "Contents/Actors/RenderObject.h" @@ -40,29 +41,29 @@ void CStormKickEffect::CreateStorms(int layer) { motion[1] = static_cast(layer); switch (this->id) { - case 435: + case EF_STORMKICK: particle->SetColor(50, 50, 255); break; - case 459: + case EF_STORMKICK1: particle->SetColor(164, 136, 55); break; - case 460: + case EF_STORMKICK2: particle->SetColor(255, 255, 255); break; - case 461: + case EF_STORMKICK3: particle->SetColor(130, 130, 255); break; - case 464: + case EF_STORMKICK6: if (motion[1] == 0.0f) { particle->SetColor(255, 255, 255); } else if (motion[1] == 1.0f) { particle->SetColor(255, 55, 55); } break; - case 465: + case EF_STORMKICK7: particle->SetColor(155, 255, 155); break; - case 1223: + case EF_STORMKICK8: particle->SetColor(255, 255, 50); break; } @@ -95,7 +96,7 @@ void CStormKickEffect::CreateClouds(int layer) { particle->unknown_004C = std::max(rand() % 21, 0) + 80; particle->unknown_0054 = 1.0f; - if (this->id == 1223) { + if (this->id == EF_STORMKICK8) { if (layer == 0) { particle->unknown_00C0 = 28.0f - ring * 5.0f; particle->scale = 10.0f - ring * 2.0f; @@ -187,39 +188,39 @@ void CStormKickEffect::Open() { g_modeMgr.GetGameMode(); switch (this->id) { - case 435: - case 459: - case 460: - case 461: - case 465: + case EF_STORMKICK: + case EF_STORMKICK1: + case EF_STORMKICK2: + case EF_STORMKICK3: + case EF_STORMKICK7: this->CreateStorms(0); this->CreateClouds(0); this->CreateClouds(1); break; - case 464: + case EF_STORMKICK6: this->CreateStorms(0); this->CreateStorms(1); this->CreateClouds(0); this->CreateClouds(1); break; - case 1223: + case EF_STORMKICK8: this->CreateClouds(0); this->CreateClouds(1); break; } switch (this->id) { - case 435: - case 459: - case 460: - case 461: - case 464: + case EF_STORMKICK: + case EF_STORMKICK1: + case EF_STORMKICK2: + case EF_STORMKICK3: + case EF_STORMKICK6: this->unknown_002C = 100; break; - case 465: + case EF_STORMKICK7: this->unknown_002C = 1000; break; - case 1223: + case EF_STORMKICK8: this->unknown_002C = 60; break; } @@ -229,13 +230,13 @@ void CStormKickEffect::Open() { // FUNCTION: fn_19223 void CStormKickEffect::InitEvents() { switch (this->id) { - case 435: + case EF_STORMKICK: this->AddEvent(0, "effect\\T_회오리차기.wav", 5, 0); break; - case 460: + case EF_STORMKICK2: this->AddEvent(0, "ice_titan_attack.wav", 5, 0); break; - case 464: + case EF_STORMKICK6: this->AddEvent(0, "effect\\REVERBERATION.wav", 0, 0); break; } @@ -257,7 +258,7 @@ void CStormKickEffect::OnProcess() { particle->position.z = this->position[2]; if (particle) { int alpha = particle->alpha; - if (particle->unknown_00E8 > 60 && this->id != 465) { + if (particle->unknown_00E8 > 60 && this->id != EF_STORMKICK7) { alpha = std::max(alpha - 1, 0); } if (particle->unknown_00E8 <= 40) { @@ -291,7 +292,7 @@ void CStormKickEffect::OnProcess() { int alpha = particle->alpha; rotation = nextRotation; - if (this->id == 1223) { + if (this->id == EF_STORMKICK8) { if (frame > 30) { alpha = std::max(alpha - 3, 0); } else { @@ -351,14 +352,14 @@ void CStormKickEffect::OnProcess() { float angle; switch (this->id) { - case 435: - case 1223: + case EF_STORMKICK: + case EF_STORMKICK8: if (this->frame > 47) { return; } angle = actor->render.angle + 30.0f; break; - case 459: + case EF_STORMKICK1: if (this->frame > 50) { return; } @@ -383,13 +384,13 @@ void CStormKickEffect::Render() { const float* motion = reinterpret_cast(particle->unknown_0058); switch (this->id) { - case 459: - case 460: - case 461: - case 465: + case EF_STORMKICK1: + case EF_STORMKICK2: + case EF_STORMKICK3: + case EF_STORMKICK7: particle->destinationBlend = 6; break; - case 464: + case EF_STORMKICK6: if (motion[1] == 0.0f) { particle->destinationBlend = 6; particle->alpha = alpha / 3; diff --git a/Source/Contents/Effects/TetraBallEffect.cpp b/Source/Contents/Effects/TetraBallEffect.cpp index 9e4ae221e..21c3b0ef4 100644 --- a/Source/Contents/Effects/TetraBallEffect.cpp +++ b/Source/Contents/Effects/TetraBallEffect.cpp @@ -1,4 +1,5 @@ #include "Contents/Effects/TetraBallEffect.h" +#include "Contents/Effects/EffectTypes.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -22,16 +23,16 @@ void CTetraBallEffect::AddBall(int id, int index) { ball->m_loop = true; switch (id) { - case 1262: + case EF_TETRA_VORTEX_BALL_1: ball->Open("tetravortex\\tetra_ball_01_fire\\tetra_01_fire.str"); break; - case 1263: + case EF_TETRA_VORTEX_BALL_2: ball->Open("tetravortex\\tetra_ball_04_water\\tetra_04_water.str"); break; - case 1264: + case EF_TETRA_VORTEX_BALL_3: ball->Open("tetravortex\\tetra_ball_02_wind\\tetra_02_wind.str"); break; - case 1265: + case EF_TETRA_VORTEX_BALL_4: ball->Open("tetravortex\\tetra_ball_03_earth\\tetra_03_earth.str"); break; } diff --git a/Source/Contents/Effects/ThrowEffects.cpp b/Source/Contents/Effects/ThrowEffects.cpp index ec244009d..d9e4de387 100644 --- a/Source/Contents/Effects/ThrowEffects.cpp +++ b/Source/Contents/Effects/ThrowEffects.cpp @@ -1,3 +1,5 @@ +#include "Contents/Combat/CombatTypes.h" +#include "Contents/Effects/EffectTypes.h" #include "Contents/Effects/ThrowEffects.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeMgr.h" @@ -33,13 +35,13 @@ void CThrowItemEffect::Close() { // FUNCTION: fn_19230 void CThrowItemEffect::Open() { switch (this->id) { - case 981: + case EF_THROW_HAPPOKUNAI: this->unknown_00D4 = 8; break; - case 982: + case EF_THROW_MULTIPLE_COIN: this->unknown_00D4 = 10; break; - case 989: + case EF_KAIHOU: if (CGameActor* owner = static_cast(FindRenderObject(this->actor))) { this->unknown_00D4 = owner->unknown_03D0; this->unknown_00D8 = 1; @@ -60,7 +62,7 @@ void CThrowItemEffect::Open() { particle->unknown_0008 = 1; switch (this->id) { - case 298: + case EF_THROWITEM: this->unknown_002C = 300; this->unknown_00E0 = 30.0f; this->InitTrajectory(particle); @@ -75,11 +77,11 @@ void CThrowItemEffect::Open() { particle->unknown_00D8 = this->position[2]; particle->destinationBlend = 6; break; - case 299: + case EF_THROWITEM2: particle->SetTexture("유저인터페이스\\item\\빈포션병.bmp"); this->InitPotionParticle(particle, this->unknown_0030 == -1 ? 1 : this->unknown_0030); break; - case 308: + case EF_THROWITEM3: this->unknown_002C = 300; this->unknown_00E0 = 10.0f; particle->SetTexture("유저인터페이스\\item\\돌.bmp"); @@ -93,49 +95,49 @@ void CThrowItemEffect::Open() { particle->unknown_00D8 = this->position[2]; particle->destinationBlend = 6; break; - case 539: + case EF_THROWITEM4: this->unknown_00D0 = 5; particle->SetTexture("유저인터페이스\\item\\화염병.bmp"); this->InitFlameParticle(particle); break; - case 541: + case EF_THROWITEM5: particle->SetTexture("유저인터페이스\\item\\버서크포션.bmp"); this->InitPotionParticle(particle, this->unknown_0030 == -1 ? 1 : this->unknown_0030); break; - case 600: + case EF_THROWITEM6: particle->SetTexture("유저인터페이스\\item\\베넘나이프.bmp"); this->InitSpinParticle(particle); break; - case 613: + case EF_THROWITEM7: particle->SetTexture("유저인터페이스\\item\\수리검.bmp"); this->InitSpinParticle(particle); break; - case 614: + case EF_THROWITEM8: particle->SetTexture("유저인터페이스\\item\\쿠나이_독.bmp"); this->InitSpinParticle(particle); break; - case 615: + case EF_THROWITEM9: particle->SetTexture("유저인터페이스\\item\\풍마_열화.bmp"); this->InitSpinParticle(particle); break; - case 616: + case EF_THROWITEM10: particle->SetTexture("effect\\coin_a.bmp"); this->InitSpinParticle(particle); break; - case 914: + case EF_THROWITEM11: particle->SetTexture("유저인터페이스\\item\\폭탄버섯포자.bmp"); this->InitPotionParticle(particle, this->unknown_0030 == -1 ? 1 : this->unknown_0030); break; - case 980: + case EF_THROWITEM4_1: this->unknown_00D0 = 10; particle->SetTexture("유저인터페이스\\item\\염산병.bmp"); this->InitFlameParticle(particle); break; - case 983: + case EF_THROW_BAKURETSU: particle->SetTexture("유저인터페이스\\item\\쿠나이_화.bmp"); this->InitSpinParticle(particle); particle->unknown_00C0 = 1.0f; - case 981: + case EF_THROW_HAPPOKUNAI: this->unknown_002C = 200; this->unknown_00E0 = 1.0f; particle->SetTexture("유저인터페이스\\item\\쿠나이_독.bmp"); @@ -154,7 +156,7 @@ void CThrowItemEffect::Open() { this->sourcePosition[0] = this->position[0] - 8.0f; } break; - case 982: + case EF_THROW_MULTIPLE_COIN: this->unknown_002C = 200; this->unknown_00E0 = 10.0f; particle->SetTexture("effect\\coin_a.bmp"); @@ -168,20 +170,20 @@ void CThrowItemEffect::Open() { particle->unknown_00D4 = this->position[1] - 8.0f; particle->unknown_00D0 = this->position[0]; break; - case 989: + case EF_KAIHOU: if (CGameActor* owner = static_cast(FindRenderObject(this->actor))) { switch (owner->charmType) { - case 1: + case CHARM_TYPE_WATER: particle->SetTexture("effect\\WaterOrb.bmp"); particle->scale = 1.0f; break; - case 2: + case CHARM_TYPE_LAND: particle->SetTexture("effect\\StoneOrb.bmp"); break; - case 3: + case CHARM_TYPE_FIRE: particle->SetTexture("effect\\FireOrb.bmp"); break; - case 4: + case CHARM_TYPE_WIND: particle->SetTexture("effect\\LightningOrb.bmp"); break; } @@ -274,16 +276,16 @@ void CThrowItemEffect::InitSpinParticle(CParticle* particle) { // FUNCTION: fn_19234 void CThrowItemEffect::InitEvents() { switch (this->id) { - case 613: - case 614: - case 615: - case 616: + case EF_THROWITEM7: + case EF_THROWITEM8: + case EF_THROWITEM9: + case EF_THROWITEM10: this->AddEvent(0, "effect\\닌자_던지기.wav", 0, 0); break; - case 298: + case EF_THROWITEM: this->AddEvent(0, "_heal_effect.wav", 0, 0); break; - case 914: + case EF_THROWITEM11: this->AddEvent(0, "effect\\G스포어익스플로젼.wav", 0, 0); break; } @@ -433,7 +435,7 @@ void CVolcanoEffect::AddRings() { particle->unknown_0008 = 1; switch (this->id) { - case 223: + case EF_GANBANTEIN: particle->unknown_00C0 = 15.0f; particle->unknown_004C = 70; particle->unknown_0054 = 0.0f; @@ -442,17 +444,17 @@ void CVolcanoEffect::AddRings() { *reinterpret_cast(&particle->unknown_00C4) = static_cast(row * 90); particle->scale = static_cast(row) + 1.0f; break; - case 225: - case 236: - case 237: - case 238: - case 261: - case 263: - case 773: - case 934: - case 936: - case 937: - case 938: + case EF_VOLCANO: + case EF_DELUGE: + case EF_VIOLENTGALE: + case EF_LANDPROTECTOR: + case EF_GUMGANG2: + case EF_GUMGANG3: + case EF_GUMGANG4: + case EF_GUMGANG6: + case EF_GUMGANG7: + case EF_GUMGANG8: + case EF_GUMGANG9: particle->unknown_00C0 = 25.0f; particle->unknown_004C = 80; particle->unknown_0054 = 0.0f; @@ -461,7 +463,7 @@ void CVolcanoEffect::AddRings() { *reinterpret_cast(&particle->unknown_00C4) = static_cast(baseAngle); particle->scale = static_cast(row) + 1.0f; break; - case 886: + case EF_GUMGANG5: particle->alpha = 1; particle->unknown_0050 = 360; particle->unknown_00C0 = 25.0f; @@ -474,31 +476,31 @@ void CVolcanoEffect::AddRings() { } switch (this->id) { - case 223: - case 238: - case 934: + case EF_GANBANTEIN: + case EF_LANDPROTECTOR: + case EF_GUMGANG6: particle->SetTexture("effect\\ring_white.tga"); break; - case 225: - case 936: + case EF_VOLCANO: + case EF_GUMGANG7: particle->SetTexture("effect\\ring_red.tga"); break; - case 236: - case 886: + case EF_DELUGE: + case EF_GUMGANG5: particle->SetTexture("effect\\ring_blue.tga"); break; - case 237: + case EF_VIOLENTGALE: particle->SetTexture("effect\\magic_green.tga"); break; - case 261: - case 263: - case 937: + case EF_GUMGANG2: + case EF_GUMGANG3: + case EF_GUMGANG8: particle->SetTexture("effect\\ring_yellow.tga"); break; - case 773: + case EF_GUMGANG4: particle->SetTexture("effect\\ring_purple.tga"); break; - case 938: + case EF_GUMGANG9: particle->SetTexture("effect\\ring_brown.tga"); break; } @@ -525,19 +527,19 @@ void CVolcanoEffect::Close() { // FUNCTION: fn_19242 void CVolcanoEffect::Open() { switch (this->id) { - case 223: - case 225: - case 236: - case 237: - case 238: - case 261: - case 263: - case 773: - case 886: - case 934: - case 936: - case 937: - case 938: + case EF_GANBANTEIN: + case EF_VOLCANO: + case EF_DELUGE: + case EF_VIOLENTGALE: + case EF_LANDPROTECTOR: + case EF_GUMGANG2: + case EF_GUMGANG3: + case EF_GUMGANG4: + case EF_GUMGANG5: + case EF_GUMGANG6: + case EF_GUMGANG7: + case EF_GUMGANG8: + case EF_GUMGANG9: this->AddRings(); break; } @@ -568,10 +570,10 @@ void CVolcanoEffect::OnProcess() { particle->position.z = this->position[2]; if (particle) { - particle->scale += this->id == 261 ? 0.1f : 0.3f; + particle->scale += this->id == EF_GUMGANG2 ? 0.1f : 0.3f; int tilt = particle->unknown_004C - 1; - if (this->id == 261) { + if (this->id == EF_GUMGANG2) { if (tilt < 30) { tilt = 30; } @@ -581,31 +583,31 @@ void CVolcanoEffect::OnProcess() { particle->unknown_004C = tilt; float& spin = *reinterpret_cast(&particle->unknown_00C4); - spin = static_cast(static_cast(spin) + (this->id != 261) * 2 + 3); + spin = static_cast(static_cast(spin) + (this->id != EF_GUMGANG2) * 2 + 3); switch (this->id) { - case 223: + case EF_GANBANTEIN: fadeIn = 20; fadeOut = 8; break; - case 225: - case 236: - case 237: - case 238: - case 261: + case EF_VOLCANO: + case EF_DELUGE: + case EF_VIOLENTGALE: + case EF_LANDPROTECTOR: + case EF_GUMGANG2: fadeIn = 20; fadeOut = 2; break; - case 263: - case 773: + case EF_GUMGANG3: + case EF_GUMGANG4: fadeIn = 10; fadeOut = 2; break; - case 886: - case 934: - case 936: - case 937: - case 938: + case EF_GUMGANG5: + case EF_GUMGANG6: + case EF_GUMGANG7: + case EF_GUMGANG8: + case EF_GUMGANG9: fadeIn = 20; fadeOut = 5; break; diff --git a/Source/Contents/EnchantMgr.cpp b/Source/Contents/EnchantMgr.cpp index 458eef1fb..fd2a4b7df 100644 --- a/Source/Contents/EnchantMgr.cpp +++ b/Source/Contents/EnchantMgr.cpp @@ -1,4 +1,5 @@ #include "Contents/EnchantMgr.h" +#include "Network/Packets/PacketId.h" #include "Client/Session.h" #include "Contents/Effects/EffectLists.h" #include "Contents/ItemDBToIDMgr.h" @@ -119,16 +120,16 @@ void CEnchantMgr::HandleEnchantResult(int messageId, int itemId) { g_session.UpdateInventoryItem(item, 1); int effect = 0; switch (this->m_request.packetType) { - case 0xB9B: - case 0xB9C: + case ID_CZ_REQUEST_RANDOM_ENCHANT: + case ID_CZ_REQUEST_PERFECT_ENCHANT: effect = 0x908; break; - case 0xB9D: + case ID_CZ_REQUEST_UPGRADE_ENCHANT: case 0xBF0: case 0xBF1: effect = 0x90B; break; - case 0xB9E: + case ID_CZ_REQUEST_RESET_ENCHANT: effect = 0x90E; break; } @@ -136,14 +137,14 @@ void CEnchantMgr::HandleEnchantResult(int messageId, int itemId) { } else if (messageId == 0xF12) { int effect = 0; switch (this->m_request.packetType) { - case 0xB9B: - case 0xB9C: - case 0xB9D: + case ID_CZ_REQUEST_RANDOM_ENCHANT: + case ID_CZ_REQUEST_PERFECT_ENCHANT: + case ID_CZ_REQUEST_UPGRADE_ENCHANT: case 0xBF0: case 0xBF1: effect = 0x909; break; - case 0xB9E: + case ID_CZ_REQUEST_RESET_ENCHANT: effect = 0x90F; break; } diff --git a/Source/Contents/HeadResources.cpp b/Source/Contents/HeadResources.cpp index 0ab3e8a23..8c4123b05 100644 --- a/Source/Contents/HeadResources.cpp +++ b/Source/Contents/HeadResources.cpp @@ -1,4 +1,5 @@ #include "Client/Session.h" +#include "Contents/Jobs/JobId.h" #include "Contents/EquipmentResourceMgr.h" #include "Resource/ResourceMgr.h" #include "Utility/Text/FormatString.h" @@ -213,22 +214,22 @@ void CSession::NormalizeHead(int* head, int job) { if (job < 23) { switch (job) { - case 1: + case JT_SWORDMAN: *head = 2; return; - case 4: + case JT_ACOLYTE: *head = 5; return; - case 2: + case JT_MAGICIAN: *head = 3; return; - case 3: + case JT_ARCHER: *head = 4; return; - case 5: + case JT_MERCHANT: *head = 6; return; - case 6: + case JT_THIEF: *head = 7; return; } diff --git a/Source/Contents/Items/InventoryType.h b/Source/Contents/Items/InventoryType.h new file mode 100644 index 000000000..be203ff05 --- /dev/null +++ b/Source/Contents/Items/InventoryType.h @@ -0,0 +1,11 @@ +#ifndef RAGNAROK_SOURCE_CONTENTS_ITEMS_INVENTORYTYPE_H +#define RAGNAROK_SOURCE_CONTENTS_ITEMS_INVENTORYTYPE_H + +enum e_inventory_type : int { + INVTYPE_INVENTORY = 0, + INVTYPE_CART = 1, + INVTYPE_STORAGE = 2, + INVTYPE_GUILD_STORAGE = 3, +}; + +#endif diff --git a/Source/Contents/Items/ItemId.h b/Source/Contents/Items/ItemId.h new file mode 100644 index 000000000..74bbcf26d --- /dev/null +++ b/Source/Contents/Items/ItemId.h @@ -0,0 +1,40 @@ +#ifndef RAGNAROK_SOURCE_CONTENTS_ITEMS_ITEMID_H +#define RAGNAROK_SOURCE_CONTENTS_ITEMS_ITEMID_H + +enum item_itemid : int { + ITEMID_ORIDECON = 984, + Elunium = 985, + ITEMID_FLAME_HEART = 994, + ITEMID_MISTIC_FROZEN = 995, + ITEMID_ROUGH_WIND = 996, + ITEMID_GREAT_NATURE = 997, + ITEMID_IRON = 998, + ITEMID_STEEL = 999, + ITEMID_STAR_CRUMB = 1000, + ITEMID_PHRACON = 1010, + ITEMID_EMVERETARCON = 1011, + Carnium = 6223, + Bradium = 6224, + HD_Carnium = 6225, + HD_Bradium = 6226, + HD_Oridecon = 6240, + HD_Elunium = 6241, + LI_HD_Bradium = 6327, + LI_HD_Carnium = 6906, + LI_HD_Oridecon = 6910, + LI_HD_Elunium = 6911, + Enriched_Elunium = 7619, + Enriched_Oridecon = 7620, + Ethernium = 1000331, + Etherdeocon = 1000332, + Enriched_Ethernium = 1000333, + Enriched_Etherdeocon = 1000334, + HD_Ethernium = 1000335, + HD_Etherdeocon = 1000336, + Etel_Bradium = 1000368, + HD_Etel_Bradium = 1000369, + Etel_Carnium = 1000370, + HD_Etel_Carnium = 1000371, +}; + +#endif diff --git a/Source/Contents/Jobs/JobId.h b/Source/Contents/Jobs/JobId.h index 6a29a06c0..aaafa0bfb 100644 --- a/Source/Contents/Jobs/JobId.h +++ b/Source/Contents/Jobs/JobId.h @@ -3953,6 +3953,119 @@ enum JobId : int { JT_EVENT_MON_END = 25017, JT_LAST = 25018, JT_EXTENDED_JOB_NAME_END = 32000, + JT_BLUE_UNICORN = 3261, + JT_LITTLE_ISIS = 3636, + JT_DIABOLIC2 = 3669, + JT_DELETER_2 = 3670, + JT_SCATLETON = 3731, + JT_SKELION = 3971, + JT_ILL_STONE_SHOOTER = 20274, + JT_ILL_WOOTAN_SHOOTER = 20275, + JT_G_ILL_WOOTAN_SHOOTER = 20279, + JT_RAYDRIC_ARCHER_H = 20368, + JT_NIGHTMARE_TERROR_H = 20373, + JT_WANDER_MAN_H = 20420, + JT_BACSOJIN2 = 20423, + JT_MOONLIGHT2 = 20424, + JT_PHREEONI2 = 20425, + JT_ILL_BAPHOMET_J = 20525, + JT_MD_C_CORRUPTION_ROOT = 20575, + JT_MD_C_RAYDRIC_ARCHER = 20578, + JT_MD_C_RAY_ARCHER_G = 20585, + JT_GLOOMUNDERNIGHT2 = 20619, + JT_EP17_2_CHILD_ADMIN1 = 20696, + JT_EP17_2_CHILD_ADMIN2 = 20697, + JT_EM_DILUVIO = 20816, + JT_EM_ARDOR = 20817, + JT_EM_PROCELLA = 20818, + JT_EM_TERREMOTUS = 20819, + JT_EM_SERPENS = 20820, + JT_SUMMON_CREEPER = 20850, + JT_SUMMON_HELLTREE = 20851, + JT_DISGUISER = 20936, + JT_G_DISGUISER = 21052, + JT_WANDERING_DUCK = 21089, + JT_KIEL_D_01_2 = 21290, + JT_BAPHOMET2 = 21502, + JT_EP19_LIMACINA = 21520, + JT_G_EP19_LIMACINA = 21589, + JT_WILD_ROSE3 = 21630, + JT_BLUEMOON_LOLI_RURI2 = 21631, + JT_FARMILIAR2 = 21632, + JT_CWHITEKNIGHT = 21650, + JT_KNIGHT_OF_ABYSS2 = 21651, + JT_GH_WHITEKNIGHT = 21652, + JT_EDDGA3 = 21653, + JT_LARVA_VIOLET = 21919, + JT_DEDSERA = 21947, + JT_EP20_COPO = 21965, + JT_EP20_ICEWIND1 = 21966, + JT_EP20_ICEWIND2 = 21967, + JT_EP20_MELIBE_ICESLUG = 21970, + JT_EP20_RGAN_WARLOCK = 21985, + JT_G_EP20_RGAN_WARLOCK = 22001, + JT_MD_PRI_RIGEL_AC = 22175, + JT_MD_PRI_RIGEL_ACS = 22176, + JT_DARK_LORD2 = 22185, + JT_SPIRIT_B_FLAME_M = 22197, + JT_SPIRIT_B_FLAME_L = 22198, + JT_SPIRIT_B_FLAME_SL = 22199, + JT_SPIRIT_I_WATER_S = 22204, + JT_SPIRIT_C_FLAME_L = 22214, + JT_SPIRIT_C_FLAME_SL = 22215, + JT_SPIRIT_H_WATER_S = 22216, + JT_SPIRIT_H_WATER_L = 22218, + JT_SPIRIT_H_WATER_SL = 22219, + JT_SPIRIT_R_FLAME_L = 22226, + JT_SPIRIT_R_FLAME_SL = 22227, + JT_SPIRIT_C_WATER_S = 22232, + JT_SPIRIT_C_WATER_L = 22234, + JT_SPIRIT_C_WATER_SL = 22235, + JT_VR_MD_DREGG1 = 22245, + JT_VR_MD_DREGG2 = 22246, + JT_BIO_ICE_GARGOYLE = 22256, + JT_VR_CHAO = 22299, + JT_EP21_ICESEAHORSE = 22318, + JT_EP21_YORKER_B = 22322, + JT_EP21_YOSTER_D = 22326, + JT_EP21_YOSTER_E = 22327, + JT_EP21_YORMI_B = 22354, + JT_EP21_YORDOS_A = 22355, + JT_EP21_YOSCOPUS_B = 22359, + JT_EP21_YORTUS_B = 22361, + JT_EP21_B_YORTUS_B = 22364, + JT_G_EP21_YORDOS_A = 22366, + JT_CLB_SS_FC = 22381, + JT_CLB_SS_TZ = 22382, + JT_VIOLEN = 22383, + JT_CP_VIOLEN = 22384, + JT_MEDJED = 22395, + JT_CP_MEDJED = 22396, + JT_HEKA = 22401, + JT_CP_HEKA = 22402, + JT_GUIDE_OF_DEAD = 22404, + JT_MISTRESS3 = 22405, + JT_GIANT_HONET2 = 22406, + JT_E_SMART_ANDRE = 22408, + JT_EP21_YORTUS_B_H = 22413, + JT_EP21_YORDOS_A_H = 22416, + JT_EP21_YORMI_B_H = 22418, + JT_EP21_YOSCOPUS_B_H = 22420, + JT_EP21_B_YORTUS_B_H = 22422, + JT_CH1_FIRE_FLOWER = 22450, + JT_CH1_SHADOW_JAILER = 22464, + JT_CH1_SCABIOSA = 22467, + JT_CH1_LOBELIA = 22468, + JT_CH1_SHADIEST = 22482, + JT_CP_CH1_SHADIEST = 22483, + JT_C_TOWER_MANAGER2 = 22504, + JT_ANGELGOLT3 = 22505, + JT_TIMEHOLDER3 = 22506, + JT_CH1_RA = 22510, + JT_CH1_MI = 22520, + JT_CH1_RA_1 = 22528, + JT_CH1_MI_1 = 22546, + JT_DARK_ILLUSION2 = 23000, }; #endif diff --git a/Source/Contents/Jobs/JobInheritance.cpp b/Source/Contents/Jobs/JobInheritance.cpp index 5616d8e5e..338b7c0c9 100644 --- a/Source/Contents/Jobs/JobInheritance.cpp +++ b/Source/Contents/Jobs/JobInheritance.cpp @@ -1,3 +1,5 @@ +#include "Contents/Skills/SkillId.h" +#include "Contents/Combat/CombatTypes.h" #include "Client/Mode/ModeMgr.h" #include "Client/Mode/CMode.h" #include "Client/Mode/CGameMode.h" @@ -821,7 +823,7 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_IMPERIAL_GUARD: case JT_DRAGON_KNIGHT_CHICKEN: case JT_IMPERIAL_GUARD_CHICKEN: - if (view == 4 || view == 5) { + if (view == W_1HSPEAR || view == W_2HSPEAR) { result = true; } break; @@ -831,14 +833,14 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_MERCHANT_H: case JT_MAGICIAN_B: case JT_MERCHANT_B: - if (view == 1) { + if (view == W_DAGGER) { result = true; } break; case JT_ARCHER: case JT_ARCHER_H: case JT_ARCHER_B: - if (view != 11) { + if (view != W_BOW) { result = true; } break; @@ -877,7 +879,7 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_TROUBADOUR: case JT_TROUVERE: case JT_WOLF_WINDHAWK: - if (view == 11) { + if (view == W_BOW) { result = true; } break; @@ -888,7 +890,7 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_ARCHBISHOP_H: case JT_ARCHBISHOP_B: case JT_CARDINAL: - if (view == 15) { + if (view == W_BOOK) { result = true; } break; @@ -904,14 +906,14 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_SOUL_REAPER_B: case JT_ARCH_MAGE: case JT_SOUL_ASCETIC: - if (view == 1) { + if (view == W_DAGGER) { if (slot == 1) { result = true; } break; } - if (view == 10 || view == 23) { + if (view == W_STAFF || view == W_2HSTAFF) { if (slot == 0) { result = true; } @@ -936,10 +938,10 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_KARNOS_B: case JT_ALITEA: switch (view) { - case 2: - case 6: - case 7: - case 8: + case W_1HSWORD: + case W_1HAXE: + case W_2HAXE: + case W_MACE: result = true; break; default: @@ -954,13 +956,13 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_GUILLOTINE_CROSS_B: case JT_SHADOW_CROSS: switch (view) { - case 16: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: + case W_KATAR: + case W_DOUBLE_DD: + case W_DOUBLE_SS: + case W_DOUBLE_AA: + case W_DOUBLE_DS: + case W_DOUBLE_DA: + case W_DOUBLE_SA: result = true; break; default: @@ -974,7 +976,7 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_SURA_H: case JT_SURA_B: case JT_INQUISITOR: - if (view == 0 || view == 12) { + if (view == W_FIST || view == W_KNUCKLE) { result = true; } break; @@ -986,10 +988,10 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_SORCERER_B: case JT_ELEMENTAL_MASTER: switch (view) { - case 5: - case 10: - case 15: - case 23: + case W_2HSPEAR: + case W_STAFF: + case W_BOOK: + case W_2HSTAFF: result = true; break; default: @@ -1004,10 +1006,10 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_GENETIC_B: case JT_BIOLO: switch (view) { - case 2: - case 6: - case 7: - case 8: + case W_1HSWORD: + case W_1HAXE: + case W_2HAXE: + case W_MACE: result = true; break; default: @@ -1023,7 +1025,7 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_SUPERNOVICE2_B: case JT_HYPER_NOVICE: if (slot == 0) { - if (view == 1) { + if (view == W_DAGGER) { result = true; } break; @@ -1034,14 +1036,14 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { } switch (view) { - case 2: - case 3: - case 6: - case 7: - case 8: - case 9: - case 10: - case 23: + case W_1HSWORD: + case W_2HSWORD: + case W_1HAXE: + case W_2HAXE: + case W_MACE: + case W_2HMACE: + case W_STAFF: + case W_2HSTAFF: result = true; break; default: @@ -1065,7 +1067,7 @@ bool __stdcall IsJobWeaponAllowed(int job, int slot, std::int64_t weapon) { case JT_OBORO_B: case JT_SHINKIRO: case JT_SHIRANUI: - if (view == 22) { + if (view == W_HUUMA) { result = true; } break; @@ -1364,21 +1366,21 @@ bool CSession::IsConsumableItemType(int type) const { // FUNCTION: fn_23857 bool CSession::IsCostumeLocation(int location) const { switch (location) { - case 0x400: - case 0x800: + case EQP_COSTUME_HEAD_TOP: + case EQP_COSTUME_HEAD_MID: case 0xC00: - case 0x1000: + case EQP_COSTUME_HEAD_LOW: case 0x1400: case 0x1800: case 0x1C00: - case 0x2000: + case EQP_COSTUME_GARMENT: case 0x4000: - case 0x10000: - case 0x20000: - case 0x40000: - case 0x80000: - case 0x100000: - case 0x200000: + case EQP_SHADOW_ARMOR: + case EQP_SHADOW_WEAPON: + case EQP_SHADOW_SHIELD: + case EQP_SHADOW_SHOES: + case EQP_SHADOW_ACC_R: + case EQP_SHADOW_ACC_L: return true; default: return false; @@ -2020,7 +2022,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame CRagEffect* effect; switch (skillId) { - case 0x38: + case KN_PIERCE: effect = source->LaunchEffect(0x94, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, level, 0, 0, 0, 0); @@ -2028,28 +2030,28 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x54: + case WZ_JUPITEL: effect = source->LaunchEffect(0x5D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x5A: + case WZ_EARTHSPIKE: effect = target->LaunchEffect(0x4F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x56: + case WZ_WATERBALL: effect = source->LaunchEffect(0x75, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x3B: + case KN_SPEARBOOMERANG: effect = source->LaunchEffect(0x50, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2061,35 +2063,35 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x3E: + case KN_BOWLINGBASH: effect = source->LaunchEffect(0x95, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = source->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x39: + case KN_BRANDISHSPEAR: effect = target->LaunchEffect(0x46, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x3A: + case KN_SPEARSTAB: effect = source->LaunchEffect(0x96, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x89: + case AS_GRIMTOOTH: effect = source->LaunchEffect(0x7B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x88: + case AS_SONICBLOW: effect = source->LaunchEffect(0x79, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2101,28 +2103,28 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x4D: + case PR_TURNUNDEAD: effect = source->LaunchEffect(0x52, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x11: + case MG_FIREBALL: effect = source->LaunchEffect(0x18, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0xF: + case MG_FROSTDIVER: effect = source->LaunchEffect(0x1B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x2F: { + case AC_SHOWER: { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); vector3d* sourcePosition = &source->render.position; mode->SpawnArrowEffect64(sourcePosition, &target->render.position, 18.0f); @@ -2142,85 +2144,85 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } break; } - case 0xE: + case MG_COLDBOLT: effect = target->LaunchEffect(0x1A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, level, 0, 0, 0, 0); } break; - case 0x13: + case MG_FIREBOLT: effect = target->LaunchEffect(0x1F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, level, 0, 0, 0, 0); } break; - case 0x14: + case MG_LIGHTNINGBOLT: effect = target->LaunchEffect(0x1D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, level, 0, 0, 0, 0); } break; - case 0x15: + case MG_THUNDERSTORM: target->LaunchEffect(0x1E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x99: + case MC_CARTREVOLUTION: source->LaunchEffect(0xAA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0xA0: + case NPC_RANGEATTACK: effect = source->LaunchEffect(0x50, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0xFE: + case CR_GRANDCROSS: source->LaunchEffect(0xE2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0xFA: + case CR_SHIELDCHARGE: target->LaunchEffect(0xF6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0xFB: + case CR_SHIELDBOOMERANG: effect = source->LaunchEffect(0xF9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0xD4: + case RG_BACKSTAP: effect = source->LaunchEffect(0x113, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0xE6: + case AM_ACIDTERROR: if (g_modeMgr.GetGameMode() != nullptr) { static_cast(g_modeMgr.GetGameMode())->LaunchTargetEffect(0x12A, source, target, -1); } break; - case 0x95: + case TF_SPRINKLESAND: target->LaunchEffect(0x136, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x98: + case TF_THROWSTONE: if (g_modeMgr.GetGameMode() != nullptr) { static_cast(g_modeMgr.GetGameMode())->LaunchTargetEffect(0x134, source, target, -1); } break; - case 0xDB: + case RG_INTIMIDATE: effect = static_cast(g_modeMgr.GetGameMode())->scene->player->LaunchEffect(0xE3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = source->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x107: + case MO_TRIPLEATTACK: effect = source->LaunchEffect(0x149, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x10B: + case MO_FINGEROFFENSIVE: effect = source->LaunchEffect(0x109, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2228,7 +2230,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 44, 0, level, 0, 0, 0, 0); } break; - case 0x10A: + case MO_INVESTIGATE: effect = source->LaunchEffect(0x108, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2240,80 +2242,80 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x1C: + case AL_HEAL: target->LaunchEffect(0x140, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x10F: + case MO_EXTREMITYFIST: g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); g_soundMgr->PlayWave("effect\\mon_아수라 패황권.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x10A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x155: + case NPC_DARKTHUNDER: effect = source->LaunchEffect(0x5D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x1E5: + case WS_CARTTERMINATION: target->LaunchEffect(0x206, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x18D: + case LK_SPIRALPIERCE: target->LaunchEffect(0x153, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x153: + case NPC_GRANDDARKNESS: source->LaunchEffect(0x1C2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0xFD: - case 0x152: + case CR_HOLYCROSS: + case NPC_DARKCROSS: target->LaunchEffect(0xF5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1E0: + case PA_SHIELDCHAIN: target->LaunchEffect(0x208, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x151: + case ITM_TOMAHAWK: effect = source->LaunchEffect(0x1EE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x1EA: { + case CR_ACIDDEMONSTRATION: { vector3d position = target->render.position; static_cast(g_modeMgr.GetGameMode())->LaunchDummyEffect(&position, 0x219, 100, 0); break; } - case 0x20B: + case NJ_SYURIKEN: if (g_modeMgr.GetGameMode() != nullptr) { static_cast(g_modeMgr.GetGameMode())->LaunchTargetEffect(0x265, source, target, -1); } break; - case 0x20C: + case NJ_KUNAI: if (g_modeMgr.GetGameMode() != nullptr) { static_cast(g_modeMgr.GetGameMode())->LaunchTargetEffect(0x266, source, target, -1); } break; - case 0x20D: + case NJ_HUUMA: if (g_modeMgr.GetGameMode() != nullptr) { static_cast(g_modeMgr.GetGameMode())->LaunchTargetEffect(0x267, source, target, -1); } break; - case 0x20E: + case NJ_ZENYNAGE: if (g_modeMgr.GetGameMode() != nullptr) { static_cast(g_modeMgr.GetGameMode())->LaunchTargetEffect(0x268, source, target, -1); } break; - case 0x216: + case NJ_KOUENKA: target->LaunchEffect(0x26A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x219: + case NJ_HYOUSENSOU: effect = target->LaunchEffect(0x26B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x21C: + case NJ_HUUJIN: effect = source->LaunchEffect(0x26D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = vector3d{0.0f, static_cast(target->render.accountId), 0.0f}; @@ -2321,124 +2323,124 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 44, 0, level, 0, 0, 0, 0); } break; - case 0x21E: + case NJ_KAMAITACHI: effect = source->LaunchEffect(0x270, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x1F5: + case GS_FLING: target->LaunchEffect(0x224, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x212: + case NJ_KIRIKAGE: target->LaunchEffect(0x276, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x210: + case NJ_KASUMIKIRI: target->LaunchEffect(0x278, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x220: + case NJ_ISSEN: target->LaunchEffect(0x279, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x202: + case GS_PIERCINGSHOT: effect = source->LaunchEffect(0x26F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x206: + case GS_DUST: target->LaunchEffect(0x274, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x207: + case GS_FULLBUSTER: effect = source->LaunchEffect(0x248, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x203: + case GS_RAPIDSHOWER: target->LaunchEffect(0x283, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1FB: + case GS_MAGICALBULLET: target->LaunchEffect(0x284, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x200: + case GS_TRACKING: target->LaunchEffect(0x287, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1F6: + case GS_TRIPLEACTION: target->LaunchEffect(0x288, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1F7: + case GS_BULLSEYE: target->LaunchEffect(0x289, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x208: + case GS_SPREADATTACK: effect = source->LaunchEffect(0x285, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x16F: + case PA_PRESSURE: target->LaunchEffect(0x16D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x18E: + case LK_HEADCRUSH: source->LaunchEffect(0x18F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x18F: + case LK_JOINTBEAT: source->LaunchEffect(0x190, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x170: + case PA_SACRIFICE: source->LaunchEffect(0x16E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x17B: + case ASC_BREAKER: effect = source->LaunchEffect(0x169, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x16D: + case HW_MAGICCRASHER: target->LaunchEffect(0x17C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x190: + case HW_NAPALMVULCAN: target->LaunchEffect(0x191, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x17D: + case SN_FALCONASSAULT: target->LaunchEffect(0x183, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x17E: + case SN_SHARPSHOOTING: effect = source->LaunchEffect(0x184, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x18A: + case CG_ARROWVULCAN: effect = source->LaunchEffect(0x189, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x15A: + case NPC_SHIELDBRAKE: target->LaunchEffect(0x10E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x158: + case NPC_ARMORBRAKE: target->LaunchEffect(0x10F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x159: + case NPC_HELMBRAKE: target->LaunchEffect(0x110, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x19F: + case TK_DOWNKICK: target->LaunchEffect(0x19D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1AF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1A1: + case TK_TURNKICK: target->LaunchEffect(0x1D2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1AD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1A5: + case TK_JUMPKICK: source->LaunchEffect(0x1C9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); effect = source->LaunchEffect(0x1B7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -2447,7 +2449,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } target->LaunchEffect(0x1CA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1D3: + case SL_STIN: effect = source->LaunchEffect(0x223, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2455,7 +2457,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } target->LaunchEffect(0x226, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1D4: + case SL_STUN: effect = source->LaunchEffect(0x22B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2463,7 +2465,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } target->LaunchEffect(0x1AD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1D5: + case SL_SMA: target->LaunchEffect(0x1A9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); effect = source->LaunchEffect(0x229, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -2473,63 +2475,63 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x1AF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x22A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2A1: + case NPC_CRITICALWOUND: target->LaunchEffect(0x2A5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2A0: + case NPC_SLOWCAST: target->LaunchEffect(0x2A4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2A3: + case NPC_STONESKIN: source->LaunchEffect(0xD6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2A4: + case NPC_ANTIMAGIC: source->LaunchEffect(0x2A3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x28E: + case NPC_FIREBREATH: g_soundMgr->PlayWave("effect\\EF_FireWall.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x2A2: + case NPC_EXPULSION: effect = static_cast(g_modeMgr.GetGameMode())->scene->player->LaunchEffect(0xE3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x29A: - case 0x2F7: + case NPC_WIDESTONE: + case NPC_WIDESTONE2: g_soundMgr->PlayWave("_stonecurse.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x29C: - case 0x2F8: + case NPC_WIDESLEEP: + case NPC_WIDESLEEP2: g_soundMgr->PlayWave("effect\\widesleep.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x29B: - case 0x2FA: + case NPC_WIDECONFUSE: + case NPC_WIDECONFUSE2: g_soundMgr->PlayWave("amon_ra_die01.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x29E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x29D: + case NPC_WIDESIGHT: source->LaunchEffect(0x16, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x293: + case NPC_DRAGONFEAR: source->LaunchEffect(0x29C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x299: - case 0x2F4: + case NPC_WIDEBLEEDING: + case NPC_WIDEBLEEDING2: source->LaunchEffect(0x29D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x295: - case 0x2C8: + case NPC_PULSESTRIKE: + case NPC_PULSESTRIKE2: source->LaunchEffect(0x199, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x28D: - case 0x2EE: + case NPC_EARTHQUAKE: + case NPC_EARTHQUAKE_K: source->LaunchEffect(0x29A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2CA: + case NPC_DANCINGBLADE_ATK: target->LaunchEffect(0x405, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2CB: { + case NPC_DARKPIERCING: { CRagEffect* first = target->LaunchEffect(0x406, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); CRagEffect* second = target->LaunchEffect(0x406, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (first) { @@ -2543,15 +2545,15 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame g_soundMgr->PlayWave("effect\\LG_CANNONSPEAR.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x2CC: + case NPC_MAXPAIN: source->LaunchEffect(0x408, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x3EC: + case AS_VENOMKNIFE: if (g_modeMgr.GetGameMode() != nullptr) { static_cast(g_modeMgr.GetGameMode())->LaunchTargetEffect(0x258, source, target, -1); } break; - case 0x7D4: + case RK_HUNDREDSPEAR: effect = source->LaunchEffect(0x2D3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2563,24 +2565,24 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x7F2: + case GC_PHANTOMMENACE: source->LaunchEffect(0x300, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\mon_맹룡과강.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x305, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x7EF: + case GC_VENOMPRESSURE: source->LaunchEffect(0x300, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x24D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\EF_PoisonAttack.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x7EE: + case GC_WEAPONCRUSH: effect = target->LaunchEffect(0x302, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x7F5: { + case GC_CROSSRIPPERSLASHER: { float angle = static_cast(g_modeMgr.GetGameMode())->CameraDesiredYaw() + source->render.angle; if (angle >= 360.0f) { angle -= 360.0f; @@ -2618,7 +2620,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x226, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0x7E7: + case GC_DARKILLUSION: source->LaunchEffect(0x1C9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); effect = source->LaunchEffect(0x1B7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -2627,7 +2629,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } target->LaunchEffect(0x1CA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x7E6: + case GC_CROSSIMPACT: g_effectMgr->Spawn(target->render.accountId, 0x61E, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); effect = source->LaunchEffect(0x620, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -2635,35 +2637,35 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x8C6: + case RA_SENSITIVEKEEN: g_soundMgr->PlayWave("were_wolf_attack.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8B1: + case WL_SUMMON_ATK_FIRE: target->LaunchEffect(0x31, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x8B2: + case WL_SUMMON_ATK_WIND: target->LaunchEffect(0x34, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x8B3: + case WL_SUMMON_ATK_WATER: target->LaunchEffect(0x33, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x8B4: + case WL_SUMMON_ATK_GROUND: target->LaunchEffect(0x93, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x8AA: + case WL_TETRAVORTEX_FIRE: effect = source->LaunchEffect(0x324, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x8C4: + case RA_WUGBITE: g_soundMgr->PlayWave("wug_bite.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8C3: + case RA_WUGSTRIKE: g_soundMgr->PlayWave("wug_strike.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8BC: { + case RA_AIMEDBOLT: { g_effectMgr->Spawn(target->render.accountId, 0x672, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); float angle = static_cast(g_modeMgr.GetGameMode())->CameraDesiredYaw() + source->render.angle; if (angle >= 360.0f) { @@ -2682,8 +2684,8 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame g_effectMgr->Spawn(source->render.accountId, effectId, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; } - case 0x2D8: - case 0x8B9: { + case NPC_ARROWSTORM: + case RA_ARROWSTORM: { if (source == target) { return; } @@ -2699,19 +2701,19 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } break; } - case 0x8BD: + case RA_DETONATOR: source->LaunchEffect(0x2EE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x7DC: + case RK_CRUSHSTRIKE: g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); target->LaunchEffect(0x24D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("_enemy_hit_wind2.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8A6: - case 0x8A7: + case WL_CHAINLIGHTNING: + case WL_CHAINLIGHTNING_ATK: g_effectMgr->Spawn(target->render.accountId, 0x666, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x7D2: + case RK_SONICWAVE: g_soundMgr->PlayWave("effect\\기공포.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); effect = source->LaunchEffect(0x340, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -2724,8 +2726,8 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x807: - case 0x808: + case AB_DUPLELIGHT_MELEE: + case AB_DUPLELIGHT_MAGIC: effect = source->LaunchEffect(0x109, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2733,7 +2735,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 44, 0, 3, 0, 0, 0, 0); } break; - case 0x7F6: + case AB_JUDEX: g_soundMgr->PlayWave("effect\\AB_judex.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); g_effectMgr->Spawn(source->render.accountId, 0x65B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x65C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -2759,7 +2761,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } } break; - case 0x7F8: + case AB_ADORAMUS: g_soundMgr->PlayWave("effect\\AB_adoramus.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn( @@ -2777,7 +2779,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame ); } break; - case 0x8A3: + case WL_CRIMSONROCK: g_soundMgr->PlayWave( "crimson_r.wav", target->render.position.x - source->render.position.x, 0.0f, target->render.position.z - source->render.position.z, 250, 40, 1.0f, 0 @@ -2798,7 +2800,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame ); } break; - case 0x8A4: + case WL_HELLINFERNO: g_effectMgr->Spawn(target->render.accountId, 0x60E, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(target->render.accountId, 0x60F, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); for (int index = 0; index < 4; ++index) { @@ -2812,7 +2814,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame g_effectMgr->Spawn(0, 0x612, spot.x, spot.y, spot.z, 0, -1, 0, 0); } break; - case 0x8D0: + case NC_BOOSTKNUCKLE: g_soundMgr->PlayWave("effect\\맹호경파산.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); effect = source->LaunchEffect(0x326, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -2820,7 +2822,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x96D: + case WM_METALICSOUND: effect = source->LaunchEffect(0x630, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -2828,12 +2830,12 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame g_soundMgr->PlayWave("effect\\metalic.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); } break; - case 0x2E6: - case 0x990: + case NPC_POISON_BUSTER: + case SO_POISON_BUSTER: g_soundMgr->PlayWave("effect\\S포이즌버스터.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); target->LaunchEffect(0x39B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x914: + case LG_HESPERUSLIT: source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x383, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -2841,10 +2843,10 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x38A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\LG_HESPERUSLIT.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x912: + case LG_PIETY: target->LaunchEffect(0x5B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x910: + case LG_MOONSLASHER: if (!source->HasId(0x37A)) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x37A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -2853,27 +2855,27 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame source->LaunchEffect(0x3A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x375, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x90A: + case LG_RAGEBURST: source->LaunchEffect(0x3A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x179, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\LG_RAGEBURST.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x908: + case LG_PINPOINTATTACK: effect = source->LaunchEffect(0x38B, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x906: + case LG_SHIELDPRESS: source->LaunchEffect(0x38A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x905: + case LG_TRAMPLE: g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); source->LaunchEffect(0x389, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\LG_TRAMPLE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x904: { + case LG_BANISHINGPOINT: { float angle = static_cast(g_modeMgr.GetGameMode())->CameraDesiredYaw() + source->render.angle; if (angle >= 360.0f) { angle -= 360.0f; @@ -2924,7 +2926,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame g_soundMgr->PlayWave("effect\\LG_BANISHINGPOINT.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x903: { + case LG_CANNONSPEAR: { float angle = static_cast(g_modeMgr.GetGameMode())->CameraDesiredYaw() + source->render.angle; if (angle >= 360.0f) { angle -= 360.0f; @@ -2976,7 +2978,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame g_soundMgr->PlayWave("effect\\LG_CANNONSPEAR.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; } - case 0x927: + case SR_GATEOFHELL: g_effectMgr->Spawn(target->render.accountId, 0x626, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); effect = source->LaunchEffect(0x627, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -2985,11 +2987,11 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } g_soundMgr->PlayWave("effect\\SR_GATEOFHELL.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x924: + case SR_ASSIMILATEPOWER: source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\흡기.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x920: + case SR_KNUCKLEARROW: source->LaunchEffect(0x1C9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); effect = source->LaunchEffect(0x37D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -3000,7 +3002,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x1CA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_KNUCKLEARROW.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x97A: + case WM_GREAT_ECHO: effect = source->LaunchEffect(0x35F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -3010,10 +3012,10 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x1D2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\LG_EARTHDRIVE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x913: + case LG_EARTHDRIVE: g_soundMgr->PlayWave("effect\\LG_EARTHDRIVE.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x97D: + case WM_SOUND_OF_DESTRUCTION: effect = target->LaunchEffect(0x365, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; @@ -3022,13 +3024,13 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x1A9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\metalic.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x96E: + case WM_REVERBERATION: target->LaunchEffect(0x621, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x63A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\REVERBERATION.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x2DC: - case 0x8EC: { + case NPC_FATALMENACE: + case SC_STARTMARK: { g_effectMgr->Spawn(source->render.accountId, 0x574, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x575, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); const int duration = static_cast(source->render.speed * 100.0f + 150.0f); @@ -3042,7 +3044,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } break; } - case 0x8F0: { + case SC_TRIANGLESHOT: { const int duration = static_cast(source->render.speed * 100.0f + 100.0f); CEffect* spawned; if (g_serviceOptions.Get(0xE5)) { @@ -3069,17 +3071,17 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } break; } - case 0x8DF: + case NC_ANALYZE: target->LaunchEffect(0x312, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x8E0: + case NC_MAGNETICFIELD: source->LaunchEffect(0x30D, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x8DE: + case NC_INFRAREDSCAN: source->LaunchEffect(0x30C, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x31A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x8D2: { + case NC_VULCANARM: { g_effectMgr->Spawn(source->render.accountId, 0x6A7, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x6A8, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); CEffect* spawned = g_effectMgr->Spawn(target->render.accountId, 0x6A9, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -3089,11 +3091,11 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame source->LaunchEffect(0x308, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; } - case 0x8D1: + case NC_PILEBUNKER: g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); g_soundMgr->PlayWave("effect\\맹호경파산.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x8E8: + case NC_AXETORNADO: if (g_serviceOptions.Get(0xE5)) { if (g_effectMgr->Find(source->render.accountId, 0x5D6)) { return; @@ -3108,7 +3110,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame g_effectMgr->Spawn(source->render.accountId, 0x554, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); } break; - case 0x8E7: { + case NC_POWERSWING: { float angle = static_cast(g_modeMgr.GetGameMode())->CameraDesiredYaw() + source->render.angle; if (angle >= 360.0f) { angle -= 360.0f; @@ -3127,28 +3129,28 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame g_effectMgr->Spawn(target->render.accountId, 0x6A6, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; } - case 0x8E6: + case NC_AXEBOOMERANG: g_effectMgr->Spawn( source->render.accountId, 0x679, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0 ); g_effectMgr->Spawn(target->render.accountId, 0x67C, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); break; - case 0x928: + case SR_GENTLETOUCH_QUIET: source->LaunchEffect(0x375, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\mon_탄지신통.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x916: + case SR_DRAGONCOMBO: source->LaunchEffect(0x375, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_DRAGONCOMBO.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x91A: + case SR_TIGERCANNON: g_effectMgr->Spawn(source->render.accountId, g_serviceOptions.Get(0xE5) ? 0x5FC : 0x52B, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); target->LaunchEffect(0x379, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\SR_TIGERCANNON.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x917: + case SR_SKYNETBLOW: if (!source->HasId(0x37A)) { source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x37A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); @@ -3157,7 +3159,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x224, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x226, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x91C: + case SR_RAMPAGEBLASTER: if (g_serviceOptions.Get(0xE5)) { g_effectMgr->Spawn(source->render.accountId, 0x5B5, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); g_effectMgr->Spawn(source->render.accountId, 0x5B6, 0.0f, 0.0f, 0.0f, 0, -1, 0, 0); @@ -3169,8 +3171,8 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame } g_soundMgr->PlayWave("effect\\SR_RAMPAGEBLASTER.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x1A3: - case 0xA14: + case TK_COUNTER: + case SJ_FLASHKICK: target->LaunchEffect(0x19F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); effect = target->LaunchEffect(0x1AE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -3178,12 +3180,12 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x2DB: - case 0x7D8: - case 0x138C: + case NPC_DRAGONBREATH: + case RK_DRAGONBREATH: + case RK_DRAGONBREATH_WATER: g_soundMgr->PlayWave("dragon_breath.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0xA2C: + case SP_SWHOO: target->LaunchEffect(0x1A9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); effect = source->LaunchEffect(0x4B6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -3193,17 +3195,17 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x1AF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1A1, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0xA21: + case SJ_PROMINENCEKICK: target->LaunchEffect(0x4C8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1AD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x13A2: + case SU_SV_STEMSPEAR: g_effectMgr->Spawn(0, 0x44D, source->render.position.x, source->render.position.y, source->render.position.z, 0, -1, 0, 0); g_effectMgr->Spawn( source->render.accountId, 0x44C, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0 ); break; - case 0x14B2: { + case MT_A_MACHINE: { CEffect* machine = g_effectMgr->Find(source->render.accountId, 0x72F); if (machine) { static_cast(machine)->PlayAttack(); @@ -3215,7 +3217,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame ); break; } - case 0x13B6: + case SU_SVG_SPIRIT: g_effectMgr->Spawn( source->render.accountId, 0x468, source->render.position.x, source->render.position.y, source->render.position.z, target->render.accountId, -1, 0, 0 ); @@ -3223,7 +3225,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->render.accountId, 0x469, target->render.position.x, target->render.position.y, target->render.position.z, target->render.accountId, -1, 0, 0 ); break; - case 0x1F49: + case HFLI_MOON: if (level == 1) { target->LaunchEffect(0x235, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } else if (level == 2) { @@ -3232,48 +3234,48 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame target->LaunchEffect(0x237, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x1F5C: + case MH_SONIC_CRAW: target->LaunchEffect(0x3C5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1F64: - case 0x1F65: - case 0x1F66: + case MH_TINDER_BREAKER: + case MH_CBC: + case MH_EQC: target->LaunchEffect(0x3C6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1F5E: + case MH_MIDNIGHT_FRENZY: target->LaunchEffect(0x3C7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1F58: + case MH_ERASER_CUTTER: target->LaunchEffect(0x3C0, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1F4C: + case HFLI_SBR44: target->LaunchEffect(0x237, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1A9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x2031: + case MER_INVINCIBLEOFF2: target->LaunchEffect(0x407, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x1F59: + case MH_XENO_SLASHER: effect = source->LaunchEffect(0x43A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { vector3d position = target->render.position; effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x20D1: + case EL_CIRCLE_OF_FIRE: target->LaunchEffect(0xFC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x150, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20FA: + case EL_STONE_RAIN: target->LaunchEffect(0x3B0, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20F3: + case EL_HURRICANE: target->LaunchEffect(0x1D2, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (!target->HasId(0x1CC)) { target->LaunchEffect(0x1CC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 0x20F2: + case EL_WIND_SLASH: g_soundMgr->PlayWave("effect\\기공포.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); effect = source->LaunchEffect(0x3AF, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -3281,7 +3283,7 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x20F1: + case EL_TIDAL_WEAPON: target->LaunchEffect(0x3AE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); effect = source->LaunchEffect(0x1B7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -3289,22 +3291,22 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x20EF: + case EL_WATER_SCREW: target->LaunchEffect(0x3AD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20EE: + case EL_ICE_NEEDLE: effect = target->LaunchEffect(0x1A, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 1, 0, 0, 0, 0); } break; - case 0x20E9: + case EL_FIRE_ARROW: effect = target->LaunchEffect(0x1F, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { effect->SendMsg(nullptr, 44, 0, 1, 0, 0, 0, 0); } break; - case 0x20EA: + case EL_FIRE_BOMB: g_soundMgr->PlayWave("effect\\화염진.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); effect = source->LaunchEffect(0x18, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -3313,23 +3315,23 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x20EC: + case EL_FIRE_WAVE: target->LaunchEffect(0x385, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x11, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_soundMgr->PlayWave("effect\\폭염룡.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 0x20DA: + case EL_SOLID_SKIN: source->LaunchEffect(0xD6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0xD6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20D7: + case EL_WIND_STEP: target->LaunchEffect(0x185, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20D4: + case EL_WATER_SCREEN: source->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x1B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20F5: + case EL_TYPOON_MIS: g_soundMgr->PlayWave("effect\\맹호경파산.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); effect = source->LaunchEffect(0x3A7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); if (effect) { @@ -3337,65 +3339,65 @@ void CSession::PlaySkillEffect(int skillId, int level, CGameActor* source, CGame effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&position), 0, 0, 0, 0); } break; - case 0x20E0: + case EL_AQUAPLAY: g_soundMgr->PlayWave("effect\\EF_FrostDiver2.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3B5, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20E1: + case EL_COOLER: g_soundMgr->PlayWave("effect\\EF_FrostDiver.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3BA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20E2: + case EL_CHILLY_AIR: g_soundMgr->PlayWave("effect\\EF_IceArrow1.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x376, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); source->LaunchEffect(0x37E, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3B8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20E6: + case EL_PETROLOGY: g_soundMgr->PlayWave("_stonecurse.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3AA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3BD, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20E7: + case EL_CURSED_SOIL: g_soundMgr->PlayWave("evil_cloud_hermit_attack.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3AA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3B9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20E8: + case EL_UPHEAVAL: g_soundMgr->PlayWave("effect\\wizard_earthspike.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3AA, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); target->LaunchEffect(0x3B6, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20E3: + case EL_GUST: g_soundMgr->PlayWave("effect\\EF_ThunderStorm.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3A9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3B3, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20E4: + case EL_BLAST: g_soundMgr->PlayWave("effect\\EF_LightBolt1.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3A9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3B4, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20E5: + case EL_WILD_STORM: g_soundMgr->PlayWave("effect\\EF_LightBolt3.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3A9, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); target->LaunchEffect(0x3B7, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20DD: + case EL_PYROTECHNIC: g_soundMgr->PlayWave("effect\\EF_FireWall.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3A8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3BC, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20DE: + case EL_HEATER: g_soundMgr->PlayWave("effect\\ef_firehit.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3A8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); target->LaunchEffect(0x3BE, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; - case 0x20DF: + case EL_TROPIC: g_soundMgr->PlayWave("effect\\EF_FireArrow1.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); source->LaunchEffect(0x3A8, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); g_modeMgr.GetGameMode()->SendMsg(0x7A, 0, 0, 0, 0); diff --git a/Source/Contents/MessageTable.h b/Source/Contents/MessageTable.h index 15a18a799..7b46eb5c2 100644 --- a/Source/Contents/MessageTable.h +++ b/Source/Contents/MessageTable.h @@ -6,10 +6,6 @@ #include #include -enum MessageId : int { - MSI_FAILED_ADD_TAB = 1578 -}; - struct MessageIdHash { std::size_t operator()(int id) const { return static_cast(id); diff --git a/Source/Contents/Messenger/ClientMessenger.cpp b/Source/Contents/Messenger/ClientMessenger.cpp index ebaae04a0..332d67999 100644 --- a/Source/Contents/Messenger/ClientMessenger.cpp +++ b/Source/Contents/Messenger/ClientMessenger.cpp @@ -1,3 +1,5 @@ +#include "Network/Packets/NoticeEnums.h" +#include "Contents/Combat/CombatTypes.h" #include "Contents/Messenger/ClientMessenger.h" #include "Utility/EncryptedName.h" #include "Contents/Effects/EffectActor.h" @@ -1980,38 +1982,38 @@ EquipmentPropertyDefinition* EquipmentProperties::CEquipmentPropertiesMgr::GetUn int GetEquipLocationIndex(const int& mask) { int index = 0; switch (mask) { - case 0x1: + case EQP_HEAD_LOW: index = 1; break; - case 0x10: + case EQP_ARMOR: index = 2; break; - case 0x20: + case EQP_HAND_L: index = 3; break; - case 0x2: + case EQP_HAND_R: case 0x22: index = 4; break; - case 0x4: + case EQP_GARMENT: index = 5; break; - case 0x8: + case EQP_ACC_R: index = 7; break; - case 0x40: + case EQP_SHOES: index = 6; break; case 0x101: index = 1; break; - case 0x100: + case EQP_HEAD_TOP: index = 10; break; - case 0x80: + case EQP_ACC_L: index = 8; break; - case 0x200: + case EQP_HEAD_MID: index = 11; break; case 0x201: @@ -2023,41 +2025,41 @@ int GetEquipLocationIndex(const int& mask) { case 0x301: index = 1; break; - case 0x400: + case EQP_COSTUME_HEAD_TOP: case 0xC00: case 0x1400: case 0x1C00: index = 20; break; - case 0x1000: + case EQP_COSTUME_HEAD_LOW: index = 22; break; - case 0x800: + case EQP_COSTUME_HEAD_MID: case 0x1800: index = 21; break; - case 0x2000: + case EQP_COSTUME_GARMENT: index = 23; break; - case 0x8000: + case EQP_AMMO: index = 0; break; - case 0x40000: + case EQP_SHADOW_SHIELD: index = 32; break; - case 0x20000: + case EQP_SHADOW_WEAPON: index = 31; break; - case 0x10000: + case EQP_SHADOW_ARMOR: index = 30; break; - case 0x80000: + case EQP_SHADOW_SHOES: index = 33; break; - case 0x200000: + case EQP_SHADOW_ACC_L: index = 35; break; - case 0x100000: + case EQP_SHADOW_ACC_R: index = 34; break; } @@ -4820,37 +4822,37 @@ int GetPlayerValue(lua_State* state) { std::map& traitStats = g_session.m_traits.stats; int value = 0; switch (args[0]) { - case 7: + case SP_SP: value = *reinterpret_cast(&g_session.unknown_5570[0]); break; - case 8: + case SP_MAXSP: value = *reinterpret_cast(&g_session.unknown_5570[4]); break; - case 11: + case SP_BASELEVEL: value = g_session.m_level; break; - case 19: + case SP_CLASS: value = g_session.m_job; break; - case 32: + case SP_USTR: value = g_session.m_standardStats[0]; break; - case 33: + case SP_UAGI: value = g_session.m_standardStats[1]; break; - case 34: + case SP_UVIT: value = g_session.m_standardStats[2]; break; - case 35: + case SP_UINT: value = g_session.m_standardStats[3]; break; - case 36: + case SP_UDEX: value = g_session.m_standardStats[4]; break; - case 37: + case SP_ULUK: value = g_session.m_standardStats[5]; break; - case 55: + case SP_JOBLEVEL: value = g_session.m_jobLevel; break; case 255: @@ -6223,38 +6225,38 @@ void CGameMode::Zc_Mer_Par_Change(const unsigned char* data) { const MercenaryParChangePacket* packet = reinterpret_cast(data); switch (packet->type) { - case 5: + case SP_HP: g_session.m_mercenaryHp = packet->value; g_session.RefreshMercenaryInfo(); break; - case 7: + case SP_SP: g_session.m_mercenarySp = packet->value; g_session.RefreshMercenaryInfo(); break; - case 6: + case SP_MAXHP: g_session.m_mercenaryMaxHp = packet->value; g_session.RefreshMercenaryInfo(); break; - case 8: + case SP_MAXSP: g_session.m_mercenaryMaxSp = packet->value; g_session.RefreshMercenaryInfo(); break; - case 41: + case SP_ATK1: g_session.m_mercenaryStats[0] = packet->value; break; - case 49: + case SP_HIT: g_session.m_mercenaryStats[2] = packet->value; break; - case 165: + case SP_MERCFLEE: g_session.m_mercenaryStats[6] = packet->value; break; - case 53: + case SP_ASPD: g_session.m_mercenaryStats[7] = packet->value; break; - case 189: + case SP_MERCKILLS: g_session.m_mercenaryKills = packet->value; break; - case 190: + case SP_MERCFAITH: g_session.m_mercenaryLoyalty = packet->value; break; } diff --git a/Source/Contents/PetTalkNames.cpp b/Source/Contents/PetTalkNames.cpp index 2a422f63a..94d67fbaa 100644 --- a/Source/Contents/PetTalkNames.cpp +++ b/Source/Contents/PetTalkNames.cpp @@ -1,3 +1,4 @@ +#include "Contents/Jobs/JobId.h" #include "Client/Session.h" #include "Utility/Cipher/XorBytes.h" @@ -49,441 +50,441 @@ const char* DecryptName(const char (&source)[Length]) { // FUNCTION: fn_23814 const char* CSession::GetPetTalkName(int job) { switch (job) { - case 1002: { + case JT_PORING: { const char source[] = {'\x67', '\x74', '\x5F', '\xCA', '\xD3', '\x8C', '\x41'}; return DecryptName<0x0F41EBBDA32D1B17ULL>(source); } - case 1052: { + case JT_ROCKER: { const char source[] = {'\xB3', '\x28', '\xA6', '\x7C', '\x84', '\xEB', '\xD5'}; return DecryptName<0xFBD599E117C547C1ULL>(source); } - case 1113: { + case JT_DROPS: { const char source[] = {'\x01', '\x81', '\xB8', '\x2D', '\xFE', '\x13'}; return DecryptName<0x176F138D5DD7F365ULL>(source); } - case 1031: { + case JT_POPORING: { const char source[] = {'\x15', '\x3A', '\xB9', '\x10', '\x7F', '\x86', '\x41', '\x22', '\x65'}; return DecryptName<0x452FEF0D7FC95565ULL>(source); } - case 1063: { + case JT_LUNATIC: { const char source[] = {'\x31', '\x78', '\x27', '\xE8', '\xD5', '\x14', '\x8E', '\x9F'}; return DecryptName<0x9FED7DA189490D5DULL>(source); } - case 1049: { + case JT_PICKY: { const char source[] = {'\xC3', '\x0E', '\x3A', '\xE4', '\xA6', '\x27'}; return DecryptName<0x839B27DF8F5967B3ULL>(source); } - case 1011: { + case JT_CHONCHON: { const char source[] = {'\x0E', '\x73', '\xC8', '\x7F', '\x14', '\x07', '\xA4', '\x9D', '\x6D'}; return DecryptName<0xF3CB6F7711A71B6DULL>(source); } - case 1042: { + case JT_STEEL_CHONCHON: { const char source[] = {'\x3C', '\xD5', '\xAA', '\x50', '\x0F', '\x88', '\x22', '\x11', '\x20', '\xCF', '\xAC', '\x5D', '\x0C', '\xB9', '\x41'}; return DecryptName<0x7941D76335CFA14FULL>(source); } - case 1035: { + case JT_HUNTER_FLY: { const char source[] = {'\x89', '\xEC', '\xE9', '\x3B', '\xE4', '\xB1', '\x7E', '\x15', '\x8D', '\xE0', '\x87'}; return DecryptName<0x7321C3814F8799E1ULL>(source); } - case 1107: { + case JT_DESERT_WOLF_B: { const char source[] = {'\x47', '\x94', '\xA4', '\x72', '\xA5', '\x3D', '\xBC', '\x0A', '\x4C', '\x9D', '\xB1', '\x48', '\xB5', '\x28', '\x81', '\x18', '\x23'}; return DecryptName<0x7DE349D717D7F123ULL>(source); } - case 1014: { + case JT_SPORE: { const char source[] = {'\x0C', '\xA5', '\xC0', '\x29', '\x0E', '\xB1'}; return DecryptName<0x0F15B16B5BAFD57FULL>(source); } - case 1077: { + case JT_POISON_SPORE: { const char source[] = {'\x3F', '\x08', '\x84', '\xF6', '\x66', '\x59', '\x60', '\x0A', '\x3F', '\x08', '\x9F', '\xE0', '\x09'}; return DecryptName<0x793F370985ED674FULL>(source); } - case 1019: { + case JT_PECOPECO: { const char source[] = {'\x6D', '\x60', '\xF0', '\x46', '\x01', '\x46', '\x34', '\x8A', '\x1D'}; return DecryptName<0xE55723712993051DULL>(source); } - case 1056: { + case JT_SMOKIE: { const char source[] = {'\xBA', '\x7E', '\x96', '\x18', '\x90', '\xBC', '\x15'}; return DecryptName<0x7115D9F973F913C9ULL>(source); } - case 1057: { + case JT_YOYO: { const char source[] = {'\x1A', '\x9A', '\x98', '\x10', '\x3B'}; return DecryptName<0xCB1D253B7FE1F563ULL>(source); } - case 1023: { + case JT_ORK_WARRIOR: { const char source[] = {'\x18', '\xE5', '\xEC', '\x42', '\x54', '\x32', '\x93', '\x1D', '\x1E', '\xF8', '\xF5', '\x1D'}; return DecryptName<0x6FE153231D879777ULL>(source); } - case 1026: { + case JT_MUNAK: { const char source[] = {'\x36', '\x26', '\x31', '\xBC', '\xEC', '\x9F'}; return DecryptName<0x39A39F87DD5F535BULL>(source); } - case 1110: { + case JT_DOKEBI: { const char source[] = {'\xA1', '\x42', '\x40', '\x5A', '\xEB', '\x74', '\x6D'}; return DecryptName<0xEF6D1D893F2B2DC5ULL>(source); } - case 1170: { + case JT_SOHEE: { const char source[] = {'\x6E', '\xA8', '\x23', '\xD0', '\xB8', '\x77'}; return DecryptName<0x234977DDB54BC71DULL>(source); } - case 1029: { + case JT_ISIS: { const char source[] = {'\x46', '\xA4', '\x2C', '\x56', '\x39'}; return DecryptName<0xA12DAB392545D72FULL>(source); } - case 1155: { + case JT_PETIT: { const char source[] = {'\x05', '\x5E', '\x77', '\x46', '\x67', '\xC1'}; return DecryptName<0x6BA1C1132F033B75ULL>(source); } - case 1109: { + case JT_DEVIRUCHI: { const char source[] = {'\xB5', '\x3E', '\xE1', '\x8C', '\x4B', '\xF2', '\x88', '\x47', '\xB8', '\x5B'}; return DecryptName<0x2FEB8739E5975BD1ULL>(source); } - case 1101: { + case JT_BAPHOMET_: { const char source[] = {'\xAF', '\x62', '\xBD', '\x13', '\xF8', '\x56', '\x76', '\x47', '\x92', '\x69', '\xCD'}; return DecryptName<0x33133B977BCD03CDULL>(source); } - case 1167: { + case JT_SAVAGE_BABE: { const char source[] = {'\x84', '\x72', '\x5D', '\xCE', '\x96', '\x6A', '\x42', '\xEF', '\x96', '\x71', '\x4E', '\xAF'}; return DecryptName<0x8D1D0FF1AF2B13F7ULL>(source); } - case 1188: { + case JT_BON_GUN: { const char source[] = {'\xEF', '\xD4', '\xA1', '\x24', '\xF6', '\xD2', '\xF1', '\xB3'}; return DecryptName<0xB39FA7917BCFBB8DULL>(source); } - case 1879: { + case JT_ECLIPSE_P: { const char source[] = {'\xEE', '\x82', '\x01', '\x70', '\x37', '\x26', '\x8E', '\x72', '\xFB', '\xC1'}; return DecryptName<0x2DCB7567394DC1ABULL>(source); } - case 1200: { + case JT_ZHERLTHSH: { const char source[] = {'\x23', '\xDF', '\x62', '\x61', '\xA9', '\x09', '\x0B', '\x3C', '\x31', '\xB7'}; return DecryptName<0x4F637DC51307B759ULL>(source); } - case 1275: { + case JT_ALICE: { const char source[] = {'\x44', '\x1D', '\xC6', '\xA8', '\x68', '\xF3'}; return DecryptName<0xE52DF30DCBAF7125ULL>(source); } - case 1815: { + case JT_EVENT_RICECAKE: { const char source[] = {'\x3A', '\x43', '\xCA', '\xFB', '\xE9', '\xD6', '\x81', '\xA6', '\x3C', '\x50', '\xCC', '\xF4', '\xF6', '\xEC', '\xF3'}; return DecryptName<0xCFF3899D95AF355FULL>(source); } - case 1245: { + case JT_GOBLINE_XMAS: { const char source[] = {'\x90', '\xA6', '\x01', '\x05', '\x14', '\xF7', '\x14', '\xCE', '\x8F', '\xA4', '\x02', '\x1A', '\x7D'}; return DecryptName<0x9171997D6963C9F7ULL>(source); } - case 1519: - case 1631: { + case JT_CHUNG_E: + case JT_CHUNG_E_: { const char source[] = {'\xF4', '\x79', '\xBA', '\x8D', '\x44', '\x80', '\xDC', '\x4F'}; return DecryptName<0x4F99DF03C3EF31B7ULL>(source); } - case 1963: { + case JT_P_CHUNG_E: { const char source[] = {'\x13', '\x76', '\x10', '\x6F', '\x80', '\xF1', '\x0E', '\xC6', '\x06', '\x29'}; return DecryptName<0x9949BFD527532943ULL>(source); } - case 1122: { + case JT_GOBLIN_1: { const char source[] = {'\x08', '\x12', '\x99', '\x4F', '\x18', '\x69', '\xD0', '\xFC', '\x6F'}; return DecryptName<0xCD8F077123FB7D6FULL>(source); } - case 1123: { + case JT_GOBLIN_2: { const char source[] = {'\x00', '\xC4', '\xF3', '\xC9', '\xC8', '\x51', '\xBC', '\x21', '\x67'}; return DecryptName<0x13E33FA1A591AB67ULL>(source); } - case 1125: { + case JT_GOBLIN_4: { const char source[] = {'\x50', '\x28', '\xCF', '\x55', '\xD6', '\x8B', '\xF6', '\x23', '\x37'}; return DecryptName<0x17A9E5BF39AD4737ULL>(source); } - case 1385: { + case JT_DELETER_: { const char source[] = {'\xC1', '\xF8', '\x01', '\x9C', '\x17', '\x42', '\x05', '\x5C', '\xA5'}; return DecryptName<0x03772763F96D9DA5ULL>(source); } - case 1382: { + case JT_DIABOLIC: { const char source[] = {'\xE3', '\x7A', '\x0A', '\x1D', '\x56', '\x65', '\x18', '\x68', '\x87'}; return DecryptName<0x0B7109397F6B1387ULL>(source); } - case 1208: { + case JT_WANDER_MAN: { const char source[] = {'\xBE', '\x94', '\x31', '\xEF', '\xEA', '\xA7', '\xE4', '\x4E', '\xA8', '\x9B', '\x5F'}; return DecryptName<0x23BBD58F8B5FF5C9ULL>(source); } - case 1630: { + case JT_BACSOJIN_: { const char source[] = {'\x2F', '\xFA', '\xD6', '\x7E', '\xDC', '\xB1', '\x5E', '\x8B', '\x32', '\xBB'}; return DecryptName<0xC517FB932D95BB6DULL>(source); } - case 1513: { + case JT_CIVIL_SERVANT: { const char source[] = {'\xCC', '\xF4', '\xB9', '\xCE', '\x31', '\x9A', '\xFE', '\x30', '\xDD', '\xEB', '\xAE', '\xC9', '\x29', '\xC5'}; return DecryptName<0x75ADC57D87EFBD8FULL>(source); } - case 1586: { + case JT_LEAF_CAT: { const char source[] = {'\x95', '\xBC', '\xA0', '\xA5', '\x32', '\x56', '\xEC', '\x7F', '\xD9'}; return DecryptName<0x2BAD156DE3E1F9D9ULL>(source); } - case 1505: { + case JT_LOLI_RURI: { const char source[] = {'\xD9', '\xC0', '\xAD', '\x44', '\x02', '\x5B', '\x34', '\xA3', '\xDC', '\x8F'}; return DecryptName<0xF161095D0DE18F95ULL>(source); } - case 1143: { + case JT_MARIONETTE: { const char source[] = {'\xA2', '\x30', '\x8D', '\x5A', '\x22', '\x01', '\x82', '\xB9', '\xBB', '\x34', '\xDF'}; return DecryptName<0xEDC74F6D13DF71EFULL>(source); } - case 1401: { + case JT_SHINOBI: { const char source[] = {'\xEA', '\x4D', '\x3E', '\x01', '\x44', '\x5F', '\xC6', '\x75'}; return DecryptName<0x758F1D0B4F7705B9ULL>(source); } - case 1179: { + case JT_WHISPER: { const char source[] = {'\x32', '\x51', '\x0C', '\x5A', '\x7D', '\x66', '\x49', '\x89'}; return DecryptName<0x891B232D09451965ULL>(source); } - case 1504: { + case JT_DULLAHAN: { const char source[] = {'\x2D', '\x4A', '\x3B', '\x19', '\xDC', '\xDD', '\x3A', '\x2D', '\x69'}; return DecryptName<0x637B959D55771F69ULL>(source); } - case 1299: { + case JT_GOBLIN_LEADER: { const char source[] = {'\x16', '\xC4', '\x8F', '\x4D', '\xF2', '\x73', '\x1E', '\x9D', '\x14', '\xCA', '\x89', '\x44', '\xE9', '\x3D'}; return DecryptName<0xD1413DBB01CD8B51ULL>(source); } - case 1040: { + case JT_GOLEM: { const char source[] = {'\x2C', '\xF6', '\x8B', '\x4A', '\x2A', '\x8F'}; return DecryptName<0xB7FD8F670FC7B96BULL>(source); } - case 1837: { + case JT_IMP: { const char source[] = {'\xB4', '\x9A', '\x1D', '\xA9'}; return DecryptName<0xE7978FB5A94DD7FDULL>(source); } - case 1374: { + case JT_INCUBUS: { const char source[] = {'\xB4', '\xF7', '\xF8', '\x74', '\xDD', '\xA8', '\x12', '\x49'}; return DecryptName<0x4941FD9F21BBB9FDULL>(source); } - case 1148: { + case JT_MEDUSA: { const char source[] = {'\x38', '\x88', '\xA9', '\x08', '\x38', '\x24', '\xE5'}; return DecryptName<0x35E5656B5DEDCD75ULL>(source); } - case 1404: { + case JT_MIYABI_NINGYO: { const char source[] = {'\x32', '\x5C', '\xD4', '\x50', '\x75', '\x46', '\xD4', '\x61', '\x36', '\x5B', '\xCA', '\x48', '\x78', '\x0F'}; return DecryptName<0x2F8B0F37118D157FULL>(source); } - case 1379: { + case JT_NIGHTMARE_TERROR: { const char source[] = {'\x83', '\xB8', '\xDE', '\xFD', '\xD9', '\x16', '\x46', '\xFF', '\x88', '\xAE', '\xCD', '\xF0', '\xDF', '\x09', '\x48', '\xFF', '\xCD'}; return DecryptName<0xAD075B8DB599F1CDULL>(source); } - case 1495: { + case JT_STONE_SHOOTER: { const char source[] = {'\xC4', '\xA5', '\xAE', '\x93', '\x94', '\xCC', '\xBA', '\x67', '\xD8', '\xBE', '\xB5', '\x98', '\x83', '\x93'}; return DecryptName<0x2FE993D1DDE1F197ULL>(source); } - case 1370: { + case JT_SUCCUBUS: { const char source[] = {'\xDC', '\xCC', '\xA8', '\x4E', '\xE0', '\x3D', '\xAA', '\x6A', '\x8F'}; return DecryptName<0x39FF7FB50DEB998FULL>(source); } - case 1416: { + case JT_WICKED_NYMPH: { const char source[] = {'\xEA', '\xF4', '\xAE', '\x7C', '\xFE', '\xFB', '\xB0', '\xCD', '\xE4', '\xF0', '\xBD', '\x7F', '\xBB'}; return DecryptName<0x83EFBFBB37EDBDBDULL>(source); } - case 2200: { + case JT_J_TAINI: { const char source[] = {'\xED', '\xAA', '\x2B', '\x78', '\x78', '\x05', '\x62', '\xBF'}; return DecryptName<0xBF2B4B31397FF5A7ULL>(source); } - case 2210: { + case JT_XMAS_LUNATIC: { const char source[] = {'\xB9', '\x36', '\xB8', '\x84', '\x8A', '\x5F', '\x6C', '\x93', '\xA0', '\x2F', '\xB0', '\x94', '\xD5'}; return DecryptName<0xDD3913D5D7F97BE1ULL>(source); } - case 2313: { + case JT_TIKBALANG: { const char source[] = {'\xCF', '\x1E', '\x48', '\xDB', '\x26', '\x49', '\x44', '\x4B', '\xDC', '\x57'}; return DecryptName<0x050505679903579BULL>(source); } - case 1242: { + case JT_MARIN: { const char source[] = {'\xBC', '\x86', '\x6B', '\x40', '\x59', '\x79'}; return DecryptName<0xF14F79170939C7F1ULL>(source); } - case 2336: { + case JT_DOMOVOI: { const char source[] = {'\xDB', '\x8A', '\x20', '\xE4', '\x81', '\x66', '\xB4', '\xA5'}; return DecryptName<0xA5FD29D7AB6DC59FULL>(source); } - case 2398: { + case JT_LITTLE_PORING: { const char source[] = {'\x45', '\x6E', '\x7B', '\xEF', '\xF1', '\x18', '\x22', '\x89', '\x46', '\x75', '\x66', '\xF5', '\xFA', '\x5D'}; return DecryptName<0xD97D5DBDBB2F2709ULL>(source); } - case 3257: { + case JT_MALE_PORING: { const char source[] = {'\x12', '\x72', '\xB3', '\xB4', '\xDA', '\x17', '\x16', '\x9F', '\x16', '\x7D', '\xB8', '\xD1'}; return DecryptName<0xED796785D1DF137FULL>(source); } - case 3258: { + case JT_FEMALE_PORING: { const char source[] = {'\xF5', '\x10', '\xB2', '\x8E', '\x21', '\x46', '\x50', '\xEB', '\xFC', '\x07', '\xB6', '\x81', '\x2A', '\x23'}; return DecryptName<0x9B0F234DEFDF7593ULL>(source); } - case 3261: { + case JT_BLUE_UNICORN: { const char source[] = {'\x4F', '\x2F', '\xD8', '\x4C', '\x1A', '\x06', '\xC1', '\x90', '\x4E', '\x2C', '\xDF', '\x47', '\x45'}; return DecryptName<0xD98F5345098D630DULL>(source); } - case 1090: { + case JT_MASTERING: { const char source[] = {'\x46', '\x7E', '\x9A', '\xDF', '\xA4', '\x8D', '\x44', '\x11', '\x4C', '\x1F'}; return DecryptName<0x7F2DFFC1ABE91F2BULL>(source); } - case 1166: { + case JT_SAVAGE: { const char source[] = {'\xFE', '\xE0', '\x67', '\x92', '\xD4', '\xCC', '\x69'}; return DecryptName<0xFD69A9B3F311818DULL>(source); } - case 1369: { + case JT_GRAND_PECO: { const char source[] = {'\x76', '\x91', '\x32', '\xF7', '\xD5', '\x02', '\x05', '\x2E', '\x72', '\x8C', '\x53'}; return DecryptName<0x4B755DB19953E311ULL>(source); } - case 1213: { + case JT_HIGH_ORC: { const char source[] = {'\x53', '\x8E', '\x66', '\x73', '\x9E', '\xCE', '\x59', '\xDE', '\x3B'}; return DecryptName<0xBD2BA1C11B01E73BULL>(source); } - case 3636: { + case JT_LITTLE_ISIS: { const char source[] = {'\xF5', '\x64', '\x69', '\x67', '\xC1', '\xD6', '\x4A', '\xA4', '\xEA', '\x64', '\x6E', '\x33'}; return DecryptName<0xED15938D333D2DB9ULL>(source); } - case 1096: { + case JT_ANGELING: { const char source[] = {'\x22', '\x57', '\x3C', '\x0E', '\x0B', '\x44', '\x1F', '\xAE', '\x43'}; return DecryptName<0xC9712D676B5B3943ULL>(source); } - case 3495: { + case JT_DR_EGGRING: { const char source[] = {'\xCB', '\x7B', '\x56', '\x82', '\xA0', '\xAE', '\x1B', '\xFC', '\xC1', '\x6E', '\x09'}; return DecryptName<0x9569C9C7E70909AFULL>(source); } - case 1214: { + case JT_CHOCO: { const char source[] = {'\xB0', '\x51', '\x00', '\x72', '\xC6', '\x1F'}; return DecryptName<0xB19D1FA9116F39D3ULL>(source); } - case 1301: { + case JT_AM_MUT: { const char source[] = {'\xF8', '\x54', '\xA2', '\x5C', '\x20', '\xCF', '\x91'}; return DecryptName<0x4191BB5531FD3999ULL>(source); } - case 1512: { + case JT_HYEGUN: { const char source[] = {'\x33', '\xCE', '\x04', '\x3E', '\x3A', '\x3F', '\x15'}; return DecryptName<0xF715514F5961B75BULL>(source); } - case 3496: { + case JT_DR_LUNATIC: { const char source[] = {'\xA5', '\xEB', '\x92', '\x89', '\xF4', '\x43', '\x24', '\xAD', '\xA8', '\xFA', '\xCD'}; return DecryptName<0xD9452D81E5CD99C1ULL>(source); } - case 1180: { + case JT_NINE_TAIL: { const char source[] = {'\x3B', '\x52', '\xEF', '\x92', '\x12', '\x9F', '\xCC', '\xC4', '\x39', '\x3B'}; return DecryptName<0xADADEB4DF7813B55ULL>(source); } - case 1307: { + case JT_CAT_O_NINE_TAIL: { const char source[] = {'\x3A', '\x6C', '\xBF', '\xF0', '\x12', '\x3C', '\xFB', '\xD8', '\x37', '\x68', '\x94', '\xDB', '\x1C', '\x0A', '\xF9', '\xB1'}; return DecryptName<0xB195637DAFCB0D59ULL>(source); } - case 3669: { + case JT_DIABOLIC2: { const char source[] = {'\x09', '\xD6', '\xB4', '\x45', '\x84', '\x25', '\xCE', '\xB4', '\x5F', '\xBF'}; return DecryptName<0xD7A749EB27D5BF6DULL>(source); } - case 3670: { + case JT_DELETER_2: { const char source[] = {'\x59', '\x18', '\x39', '\x44', '\xB5', '\x10', '\xEB', '\x3A', '\x0F', '\x7D'}; return DecryptName<0x659975C121557D3DULL>(source); } - case 1622: { + case JT_TEDDY_BEAR: { const char source[] = {'\x2D', '\x1A', '\xC3', '\xC5', '\x6E', '\x9A', '\x97', '\xDA', '\x38', '\x0D', '\xA7'}; return DecryptName<0xBFF5C517A1A77F59ULL>(source); } - case 1632: { + case JT_GREMLIN: { const char source[] = {'\x40', '\xD7', '\xF6', '\xF2', '\x6D', '\x3A', '\x0F', '\xAD'}; return DecryptName<0xAD6153019F93A527ULL>(source); } - case 3731: { + case JT_SCATLETON: { const char source[] = {'\x0C', '\x38', '\x14', '\xD1', '\xCB', '\x90', '\x95', '\xEA', '\x11', '\x5B'}; return DecryptName<0x85E1F5A7A5755B7FULL>(source); } - case 1041: { + case JT_MUMMY: { const char source[] = {'\x30', '\x9E', '\x1E', '\x24', '\xE2', '\x49'}; return DecryptName<0x0F61499B4973EB5DULL>(source); } - case 1010: { + case JT_WILOW: { const char source[] = {'\x26', '\x9E', '\x37', '\x18', '\xEA', '\xA1'}; return DecryptName<0xB127A19D775BF751ULL>(source); } - case 1782: { + case JT_ROWEEN: { const char source[] = {'\xBB', '\x6E', '\x9A', '\x8A', '\x82', '\x07', '\x1F'}; return DecryptName<0xA31F69E7EFED01C9ULL>(source); } - case 1773: { + case JT_HODREMLIN: { const char source[] = {'\x03', '\x24', '\xDF', '\x73', '\xE2', '\x02', '\xC5', '\xDE', '\x05', '\x4B'}; return DecryptName<0xB7A96F8701BB4B6BULL>(source); } - case 1058: { + case JT_METALLER: { const char source[] = {'\x2C', '\xB4', '\x95', '\x82', '\x07', '\x25', '\xEC', '\x45', '\x41'}; return DecryptName<0x3789496BE3E1D141ULL>(source); } - case 1297: { + case JT_ANCIENT_MUMMY: { const char source[] = {'\x76', '\xB7', '\x50', '\xC0', '\x1C', '\x89', '\xE3', '\x50', '\x7A', '\xAC', '\x5E', '\xC4', '\x00', '\xE7'}; return DecryptName<0x0F97E779A933D917ULL>(source); } - case 2995: { + case JT_XM_TEDDY_BEAR: { const char source[] = {'\x0B', '\x4A', '\x12', '\x39', '\x9C', '\x0B', '\x61', '\xA8', '\x2C', '\x45', '\x28', '\x2C', '\x8B', '\x6F'}; return DecryptName<0xD1056FF94D4D2773ULL>(source); } - case 3790: { + case JT_SWEETS_DROPS: { const char source[] = {'\x98', '\x28', '\x6C', '\x56', '\x0B', '\xD2', '\x6E', '\x27', '\x99', '\x30', '\x79', '\x40', '\x7F'}; return DecryptName<0x4331A17F33095FEBULL>(source); } - case 1150: { + case JT_MOONLIGHT: { const char source[] = {'\xA6', '\x82', '\xDC', '\x45', '\xEB', '\x58', '\x2A', '\x2D', '\xBF', '\xED'}; return DecryptName<0x454D31872BB3EDCBULL>(source); } - case 1159: { + case JT_PHREEONI: { const char source[] = {'\x71', '\x65', '\x35', '\x38', '\x88', '\xE2', '\x9B', '\xE8', '\x01'}; return DecryptName<0x81F58DED5D470D01ULL>(source); } - case 3971: { + case JT_SKELION: { const char source[] = {'\x06', '\x54', '\x04', '\xC7', '\x46', '\x1E', '\x89', '\x5D'}; return DecryptName<0x5DE7712FAB613F75ULL>(source); } - case 1894: { + case JT_POURING: { const char source[] = {'\xE1', '\x04', '\x1E', '\x6D', '\xEA', '\xA5', '\xA8', '\x41'}; return DecryptName<0x41CFCB831F6B6B91ULL>(source); } - case 20424: { + case JT_MOONLIGHT2: { const char source[] = {'\x5E', '\x0C', '\x3A', '\x9F', '\x45', '\x5C', '\xB4', '\x21', '\x47', '\x63'}; return DecryptName<0x49D33529F1556333ULL>(source); } - case 20425: { + case JT_PHREEONI2: { const char source[] = {'\xC5', '\xE7', '\x33', '\x40', '\x76', '\x92', '\x41', '\x10', '\xB5'}; return DecryptName<0x792FFD1325418FB5ULL>(source); } - case 20423: { + case JT_BACSOJIN2: { const char source[] = {'\xDD', '\x08', '\x80', '\xBE', '\xEA', '\xED', '\x36', '\x9F', '\x8D', '\x69'}; return DecryptName<0xF15F8785CDE369BFULL>(source); } - case 20571: { + case JT_ORK_HERO2: { const char source[] = {'\x16', '\xD7', '\xCC', '\x26', '\xBF', '\x6A', '\x6D', '\xAC', '\x6B', '\x85'}; return DecryptName<0xE33F2FF779878559ULL>(source); } - case 1737: { + case JT_ALIZA: { const char source[] = {'\xCA', '\xD1', '\x3E', '\xD7', '\xA0', '\xDD'}; return DecryptName<0x1767DDE18D779D8BULL>(source); } - case 1735: { + case JT_ALICEL: { const char source[] = {'\xA0', '\xCF', '\x98', '\xAE', '\x54', '\xCD', '\xBB'}; return DecryptName<0xC1BB8111EDD183E1ULL>(source); } - case 1736: { + case JT_ALIOT: { const char source[] = {'\xD6', '\x85', '\x80', '\xD4', '\x99', '\xBB'}; return DecryptName<0xC5B1BBCD9BC9C997ULL>(source); } case 20338: - case 20373: { + case JT_NIGHTMARE_TERROR_H: { const char source[] = {'\x5F', '\x90', '\xB4', '\x91', '\x69', '\x22', '\xAA', '\x73', '\x54', '\xA6', '\xA7', '\x9C', '\x6F', '\x3D', '\xA4', '\x73', '\x6E', '\x94', '\xB9', '\xF9'}; return DecryptName<0x01CB4F1DF9D3F931ULL>(source); } - case 20420: { + case JT_WANDER_MAN_H: { const char source[] = {'\xA0', '\xF4', '\x71', '\xFF', '\x34', '\x37', '\xD8', '\x66', '\xB6', '\xFB', '\x40', '\xF6', '\x3B', '\x45'}; return DecryptName<0x0B8745519B1F95D7ULL>(source); } - case 20619: { + case JT_GLOOMUNDERNIGHT2: { const char source[] = {'\xE8', '\x35', '\x0E', '\x84', '\xD8', '\x6C', '\x6D', '\xA3', '\xEA', '\x2B', '\x0F', '\x82', '\xD2', '\x71', '\x77', '\xF5', '\x8F'}; return DecryptName<0xC70319B5EB61598FULL>(source); } - case 20696: { + case JT_EP17_2_CHILD_ADMIN1: { const char source[] = {'\xFC', '\xB5', '\xEA', '\x73', '\x13', '\x1A', '\x7A', '\x43', '\xF2', '\xB4', '\xED', '\x40', '\x15', '\x45'}; return DecryptName<0x271B45771F83DD9FULL>(source); } - case 20697: { + case JT_EP17_2_CHILD_ADMIN2: { const char source[] = {'\x74', '\x39', '\x88', '\x2D', '\x5D', '\x9C', '\xE2', '\xE3', '\x7A', '\x38', '\x8F', '\x1E', '\x58', '\xC3'}; return DecryptName<0x8783C33941E15117ULL>(source); } - case 21089: { + case JT_WANDERING_DUCK: { const char source[] = {'\xFC', '\xEE', '\xC3', '\xC9', '\xF6', '\xDF', '\xEE', '\x9B', '\xEC', '\xF0', '\xC9', '\xD8', '\xF0', '\xC6', '\xA7'}; return DecryptName<0xD5A78DB38D8DAFABULL>(source); } - case 21290: { + case JT_KIEL_D_01_2: { const char source[] = {'\x7F', '\x2A', '\x31', '\xF0', '\xF6', '\x2C', '\xFC', '\x6F', '\x0F'}; return DecryptName<0x0399459DAF454F0FULL>(source); } @@ -491,59 +492,59 @@ const char* CSession::GetPetTalkName(int job) { const char source[] = {'\x10', '\x8E', '\xCB', '\xBE', '\xBA', '\xBC', '\xDF', '\x88', '\x73'}; return DecryptName<0xFFABE3D5D1BBEF73ULL>(source); } - case 1106: { + case JT_DESERT_WOLF: { const char source[] = {'\x91', '\x7C', '\x78', '\x0C', '\xB5', '\xF3', '\xC8', '\xF2', '\x9A', '\x75', '\x6D', '\x49'}; return DecryptName<0xA597A7E7492B39D5ULL>(source); } - case 1198: { + case JT_DARK_PRIEST: { const char source[] = {'\xC9', '\xFC', '\xE9', '\x28', '\xE8', '\x69', '\xE9', '\x18', '\xC8', '\xEE', '\xEF', '\x63'}; return DecryptName<0x51BB39B763BBBD8DULL>(source); } - case 3023: { + case JT_FIRE_GOLEM: { const char source[] = {'\xA9', '\x64', '\x05', '\x48', '\x9A', '\x96', '\xAC', '\xCB', '\xAA', '\x60', '\x57'}; return DecryptName<0x87E3D1C50D572DEFULL>(source); } - case 20525: { + case JT_ILL_BAPHOMET_J: { const char source[] = {'\xB6', '\xAF', '\x11', '\x5C', '\xE5', '\xEE', '\xF3', '\x77', '\xB0', '\xAE', '\x18', '\x57', '\xF8', '\xE5', '\xA3'}; return DecryptName<0x3FA3AFA7035DE3FFULL>(source); } - case 21502: { + case JT_BAPHOMET2: { const char source[] = {'\x1B', '\xC6', '\x53', '\x35', '\x1A', '\x86', '\x62', '\x8F', '\x6B', '\x87'}; return DecryptName<0xDB27CB557D038759ULL>(source); } - case 23000: { + case JT_DARK_ILLUSION2: { const char source[] = {'\x35', '\xC2', '\x39', '\x40', '\x4E', '\x46', '\x11', '\x31', '\x24', '\xD0', '\x22', '\x44', '\x5F', '\x3D', '\x5D'}; return DecryptName<0x7D5D0F110B6B8371ULL>(source); } - case 21630: { + case JT_WILD_ROSE3: { const char source[] = {'\x1E', '\x24', '\x33', '\xA7', '\x98', '\x53', '\x06', '\x42', '\x0C', '\x5E', '\x7F'}; return DecryptName<0x114901C7E37F6D49ULL>(source); } - case 21631: { + case JT_BLUEMOON_LOLI_RURI2: { const char source[] = {'\x13', '\xB9', '\x9A', '\x0C', '\xB2', '\x58', '\xCE', '\x91', '\x0E', '\xB9', '\x80', '\x05', '\xB6', '\x48', '\xD3', '\x8A', '\x03', '\xBC', '\xFD', '\x49'}; return DecryptName<0xDF8117FF49CFF551ULL>(source); } - case 21632: { + case JT_FARMILIAR2: { const char source[] = {'\x7B', '\x00', '\xD9', '\x84', '\xB0', '\x57', '\x8C', '\xEC', '\x6F', '\x73', '\x8B'}; return DecryptName<0xADC51BF9C98B413DULL>(source); } - case 1005: { + case JT_FARMILIAR: { const char source[] = {'\x07', '\x7C', '\x05', '\x38', '\x70', '\xD3', '\x04', '\x26', '\x13', '\x3D'}; return DecryptName<0x674D9F3975573D41ULL>(source); } - case 21650: { + case JT_CWHITEKNIGHT: { const char source[] = {'\x12', '\xFA', '\xB5', '\x62', '\x1B', '\x76', '\x94', '\x25', '\x18', '\xEA', '\xB5', '\x7F', '\x4F'}; return DecryptName<0x6BDF334F2BFDAD51ULL>(source); } - case 21651: { + case JT_KNIGHT_OF_ABYSS2: { const char source[] = {'\x84', '\x95', '\x98', '\x52', '\xD1', '\x7B', '\x30', '\x5C', '\x89', '\x84', '\x90', '\x57', '\xC0', '\x7C', '\x3C', '\x21', '\xCF'}; return DecryptName<0x136F2F9915D1DBCFULL>(source); } - case 21652: { + case JT_GH_WHITEKNIGHT: { const char source[] = {'\x6C', '\x9F', '\x16', '\x78', '\x47', '\x98', '\x77', '\x4E', '\x60', '\x99', '\x00', '\x68', '\x47', '\x85', '\x23'}; return DecryptName<0x0B23D10F2F49D72BULL>(source); } - case 21653: { + case JT_EDDGA3: { const char source[] = {'\xA6', '\x91', '\x17', '\xB0', '\xE4', '\x34', '\xE3'}; return DecryptName<0xB3E307A5F753D5E3ULL>(source); } @@ -551,23 +552,23 @@ const char* CSession::GetPetTalkName(int job) { const char source[] = {'\xB5', '\x32', '\x67', '\x68', '\x14', '\x24', '\x72', '\x4B', '\xBA', '\x2B', '\x76', '\x7D', '\x4D'}; return DecryptName<0x192D654D29337BE5ULL>(source); } - case 21919: { + case JT_LARVA_VIOLET: { const char source[] = {'\x4D', '\x34', '\xAF', '\x8F', '\x6E', '\xE2', '\xF9', '\xFE', '\x4E', '\x39', '\xB8', '\x8D', '\x2F'}; return DecryptName<0xB7AFBD2FD9FD7501ULL>(source); } - case 21965: { + case JT_EP20_COPO: { const char source[] = {'\xB8', '\x25', '\x5D', '\x9F', '\xB6', '\x76', '\x86', '\x09', '\xB2', '\x55'}; return DecryptName<0x79E915E9AF6F55DDULL>(source); } - case 21966: { + case JT_EP20_ICEWIND1: { const char source[] = {'\x40', '\xE1', '\x35', '\x93', '\xBE', '\x68', '\x50', '\x0E', '\x52', '\xF8', '\x69', '\xC7', '\xD0', '\x01'}; return DecryptName<0x6B3301E1A3079125ULL>(source); } - case 21967: { + case JT_EP20_ICEWIND2: { const char source[] = {'\xEC', '\x4D', '\x5F', '\xD5', '\xF8', '\x68', '\x44', '\x4A', '\xFE', '\x54', '\x03', '\x81', '\x95', '\x01'}; return DecryptName<0x2F2701A7E56D3D89ULL>(source); } - case 22185: { + case JT_DARK_LORD2: { const char source[] = {'\x27', '\x78', '\x2F', '\xEA', '\x06', '\xF9', '\xD0', '\x91', '\x27', '\x0B', '\x7D'}; return DecryptName<0xC39FB559A17D3963ULL>(source); } @@ -587,47 +588,47 @@ const char* CSession::GetPetTalkName(int job) { const char source[] = {'\xA5', '\xEE', '\x8E', '\x96', '\x4A', '\x62', '\x3F', '\xD6', '\xA1', '\x87'}; return DecryptName<0x936F3D2FFDFD87F5ULL>(source); } - case 22299: { + case JT_VR_CHAO: { const char source[] = {'\x89', '\x15', '\xF2', '\x24', '\x57', '\x38', '\x7C', '\x2D'}; return DecryptName<0x2D33791F67AD47DFULL>(source); } - case 22318: { + case JT_EP21_ICESEAHORSE: { const char source[] = {'\xBA', '\xEB', '\x0D', '\xC8', '\xDA', '\x70', '\x24', '\xC2', '\xAC', '\xFE', '\x5E', '\x91', '\xEA', '\x6B', '\x34', '\xC2', '\xDF'}; return DecryptName<0xA7471985F93F9BDFULL>(source); } - case 22381: { + case JT_CLB_SS_FC: { const char source[] = {'\x14', '\xA3', '\x93', '\xEA', '\xF8', '\x2C', '\xA2', '\x19', '\x14', '\xEF'}; return DecryptName<0x5FFD7FABB5D1EF57ULL>(source); } - case 22382: { + case JT_CLB_SS_TZ: { const char source[] = {'\x92', '\x2D', '\xB3', '\xD6', '\x3C', '\x02', '\xBA', '\x87', '\x8B', '\x61'}; return DecryptName<0xD3E5516F89F161D1ULL>(source); } - case 1004: { + case JT_HORNET: { const char source[] = {'\xC5', '\x7C', '\x0D', '\x7D', '\x04', '\x91', '\x35'}; return DecryptName<0xF535E561137F138DULL>(source); } - case 22406: { + case JT_GIANT_HONET2: { const char source[] = {'\x4A', '\x12', '\x28', '\xCD', '\xEF', '\x4E', '\xD5', '\xC6', '\x43', '\x1E', '\x3D', '\x83'}; return DecryptName<0x899D11BB83695B0DULL>(source); } - case 22405: { + case JT_MISTRESS3: { const char source[] = {'\xB8', '\x6C', '\x00', '\xBD', '\x85', '\x60', '\xD4', '\x78', '\xC7', '\x25'}; return DecryptName<0x2B8725D7E95325F5ULL>(source); } - case 1269: { + case JT_CLOCK: { const char source[] = {'\xFE', '\xF1', '\x54', '\x84', '\x66', '\x83'}; return DecryptName<0x7989830DE73B9DBDULL>(source); } - case 22504: { + case JT_C_TOWER_MANAGER2: { const char source[] = {'\x28', '\x54', '\xF1', '\xAA', '\xF0', '\xB8', '\xDF', '\xE2', '\x26', '\x6A', '\xCB', '\xA4', '\xE0', '\xB8', '\xDF', '\xBD'}; return DecryptName<0xBDADDD87C5A50B6BULL>(source); } - case 1754: { + case JT_SKEGGIOLD: { const char source[] = {'\x18', '\x98', '\x32', '\xC2', '\xB6', '\x24', '\xB4', '\x8B', '\x0F', '\xD3'}; return DecryptName<0xC7FB6DF18577D34BULL>(source); } - case 22505: { + case JT_ANGELGOLT3: { const char source[] = {'\xBC', '\x1F', '\xF2', '\x1C', '\x4D', '\x04', '\x70', '\xF1', '\xA9', '\x51'}; return DecryptName<0xBD3F430159B551FDULL>(source); } @@ -639,7 +640,7 @@ const char* CSession::GetPetTalkName(int job) { const char source[] = {'\xD1', '\x24', '\xEA', '\xF4', '\x3E', '\x6B', '\xC2', '\x0E', '\xC4', '\x24', '\xA7'}; return DecryptName<0x5B832361BDA77197ULL>(source); } - case 22506: { + case JT_TIMEHOLDER3: { const char source[] = {'\x2D', '\xA2', '\x6C', '\xDA', '\x75', '\xFC', '\xB9', '\x49', '\x3C', '\xB9', '\x13', '\x9F'}; return DecryptName<0x0DF5B33D9F21EB79ULL>(source); } diff --git a/Source/Contents/Skills/AutomaticSkills.cpp b/Source/Contents/Skills/AutomaticSkills.cpp index 8a41f156e..dc9169381 100644 --- a/Source/Contents/Skills/AutomaticSkills.cpp +++ b/Source/Contents/Skills/AutomaticSkills.cpp @@ -1,4 +1,5 @@ #include "Contents/Skills/AutomaticSkills.h" +#include "Contents/Skills/SkillId.h" #include "Client/Session.h" #include "Network/Connection/Connection.h" @@ -8,11 +9,11 @@ namespace { // INLINED int ActiveOption(std::int16_t id) { switch (id) { - case 2036: + case GC_ROLLINGCUTTER: return 2; - case 6552: + case KR_CHOP_CHOP: return 23; - case 6601: + case AT_FURIOS_STORM: return 21; default: return -1; @@ -50,11 +51,11 @@ bool AutomaticSkills::Contains(int id) const { // FUNCTION: fn_09151 int AutomaticSkills::CancelOption(std::int16_t id) { switch (id) { - case 2036: + case GC_ROLLINGCUTTER: return 4; - case 6552: + case KR_CHOP_CHOP: return 24; - case 6601: + case AT_FURIOS_STORM: return 22; default: return -1; diff --git a/Source/Contents/Skills/PlayerSkillBundle.cpp b/Source/Contents/Skills/PlayerSkillBundle.cpp index dcbdfd4b5..712a063ae 100644 --- a/Source/Contents/Skills/PlayerSkillBundle.cpp +++ b/Source/Contents/Skills/PlayerSkillBundle.cpp @@ -1,4 +1,5 @@ #include "Contents/Skills/PlayerSkillBundle.h" +#include "Contents/Skills/SkillId.h" #include "Client/Session.h" #include "UI/Window/UIWindow.h" #include "UI/Window/WindowManagerWindows.h" @@ -372,8 +373,8 @@ void CPlayerSkillBundle::ForEachGrouped(std::function callbac // FUNCTION: fn_08285 bool IsIndexedSkill(int id) { switch (id) { - case 6579: - case 6580: + case AT_FERAL_CLAW: + case AT_ALPHA_CLAW: return true; default: return false; diff --git a/Source/Contents/Skills/SkillActionInfo.cpp b/Source/Contents/Skills/SkillActionInfo.cpp index f08aee559..4e097bcd9 100644 --- a/Source/Contents/Skills/SkillActionInfo.cpp +++ b/Source/Contents/Skills/SkillActionInfo.cpp @@ -1,7 +1,9 @@ #include "Client/Session.h" +#include "Contents/Combat/CombatTypes.h" #include "Contents/Configuration/ServiceOptions.h" #include "Contents/EquipmentResourceMgr.h" #include "Contents/Items/ItemDescription.h" +#include "Contents/Skills/SkillId.h" #include "Contents/Skills/SkillInfo.h" #include "Contents/Sound/SoundMgr.h" @@ -49,21 +51,21 @@ void CSession::GetSkillActionInfo(int skillId, int& effectId, int& motion, int v motion = 8; const int beginEffect = this->GetBeginEffectId(skillId); switch (skillId) { - case 3006: - case 3009: + case KO_BAKURETSU: + case KO_HUUMARANKA: motion = 36; break; - case 3011: - case 3013: - case 3014: - case 3015: - case 3016: - case 3017: - case 3018: - case 3021: - case 3026: - case 3027: - case 3029: + case KO_MEIKYOUSISUI: + case KO_KYOUGAKU: + case KO_JYUSATSU: + case KO_KAHU_ENTEN: + case KO_HYOUHU_HUBUKI: + case KO_KAZEHU_SEIRAN: + case KO_DOHU_KOUKAI: + case KO_GENWAKU: + case OB_ZANGETSU: + case OB_OBOROGENSOU: + case OB_AKAITSUKI: motion = 37; break; } @@ -74,1049 +76,1049 @@ void CSession::GetSkillActionInfo(int skillId, int& effectId, int& motion, int v } switch (skillId) { - case 61: - case 152: - case 1004: + case KN_AUTOCOUNTER: + case TF_THROWSTONE: + case AS_VENOMKNIFE: effectId = -1; motion = 11; break; - case 149: + case TF_SPRINKLESAND: motion = 11; break; - case 57: + case KN_BRANDISHSPEAR: effectId = 144; motion = 2; break; - case 5: - case 7: - case 42: - case 46: - case 110: - case 499: - case 1009: - case 8202: + case SM_BASH: + case SM_MAGNUM: + case MC_MAMMONITE: + case AC_DOUBLE: + case BS_HAMMERFALL: + case HT_POWER: + case HT_PHANTASMIC: + case MS_MAGNUM: motion = 2; break; - case 59: + case KN_SPEARBOOMERANG: effectId = -1; motion = 12; break; - case 45: + case AC_CONCENTRATION: effectId = 43; return; - case 47: + case AC_SHOWER: effectId = -1; motion = 18; break; - case 151: + case TF_PICKSTONE: effectId = -1; motion = 5; break; - case 271: + case MO_EXTREMITYFIST: effectId = level < 4016 ? 328 : 510; break; - case 243: - case 244: - case 247: + case AM_CALLHOMUN: + case AM_REST: + case AM_RESURRECTHOMUN: motion = 0; effectId = 342; return; - case 325: - case 327: - case 328: - case 329: - case 330: - case 334: - case 336: - case 408: - case 409: - case 410: - case 5063: - case 5064: - case 5065: + case DC_UGLYDANCE: + case DC_HUMMING: + case DC_DONTFORGETME: + case DC_FORTUNEKISS: + case DC_SERVICEFORYOU: + case WE_MALE: + case WE_CALLPARTNER: + case WE_BABY: + case WE_CALLPARENT: + case WE_CALLBABY: + case WE_CALLALLFAMILY: + case WE_ONEFOREVER: + case WE_CHEERUP: effectId = 342; return; - case 389: + case ST_CHASEWALK: motion = 0; effectId = 1195; return; - case 335: + case WE_FEMALE: effectId = 343; return; - case 382: - case 394: + case SN_SHARPSHOOTING: + case CG_ARROWVULCAN: motion = 18; effectId = 58; return; - case 306: - case 308: - case 311: - case 361: - case 362: - case 367: - case 383: - case 480: - case 483: - case 489: - case 691: - case 2013: - case 2050: - case 2515: - case 2582: - case 2585: - case 2587: - case 5073: - case 5381: + case BD_LULLABY: + case BD_ETERNALCHAOS: + case BD_ROKISWEIL: + case HP_ASSUMPTIO: + case HP_BASILICA: + case PA_PRESSURE: + case SN_WINDWALK: + case PA_SHIELDCHAIN: + case HW_GANBANTEIN: + case CG_TAROTCARD: + case CASH_ASSUMPTIO: + case RK_REFRESH: + case AB_RENOVATIO: + case AB_SECRAMENT: + case SJ_NOVAEXPLOSING: + case SJ_GRAVITYCONTROL: + case SJ_BOOKOFCREATINGSTAR: + case AB_CONVENIO: + case EM_ELEMENTAL_VEIL: effectId = 58; return; - case 397: + case LK_SPIRALPIERCE: effectId = 502; motion = 11; break; - case 34: - case 689: + case AL_BLESSING: + case CASH_BLESSING: effectId = 12; motion = 0; break; - case 230: - case 231: - case 232: - case 234: - case 235: - case 236: - case 237: - case 268: - case 479: + case AM_ACIDTERROR: + case AM_POTIONPITCHER: + case AM_CANNIBALIZE: + case AM_CP_WEAPON: + case AM_CP_SHIELD: + case AM_CP_ARMOR: + case AM_CP_HELM: + case MO_STEELBODY: + case CR_FULLPROTECTION: motion = 0; effectId = 12; goto variant; - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 30: - case 31: - case 32: - case 33: - case 35: - case 54: - case 66: - case 67: - case 68: - case 69: - case 70: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 108: - case 156: - case 157: - case 254: - case 255: - case 256: - case 261: - case 262: - case 266: - case 267: - case 277: - case 279: - case 280: - case 281: - case 282: - case 283: - case 285: - case 286: - case 287: - case 288: - case 289: - case 290: - case 307: - case 309: - case 310: - case 312: - case 313: - case 339: - case 340: - case 341: - case 342: - case 365: - case 373: - case 374: - case 375: - case 400: - case 401: - case 402: - case 403: - case 405: - case 482: - case 484: - case 669: - case 694: - case 707: - case 723: - case 729: - case 731: - case 738: - case 740: - case 741: - case 769: - case 770: - case 1006: - case 1015: - case 2001: - case 2004: - case 2006: - case 2008: - case 2011: - case 2012: - case 2014: - case 2015: - case 2018: - case 2019: - case 2020: - case 2021: - case 2036: - case 2040: - case 2043: - case 2044: - case 2046: - case 2051: - case 2053: - case 2054: - case 2057: - case 2301: - case 2533: - case 2534: - case 2536: - case 2537: - case 2579: - case 2584: - case 5004: - case 5028: - case 5042: - case 5210: - case 5268: - case 8222: - case 8445: - case 8448: - case 8451: - case 8454: - case 8457: + case MG_SRECOVERY: + case MG_SIGHT: + case MG_NAPALMBEAT: + case MG_SAFETYWALL: + case MG_SOULSTRIKE: + case MG_COLDBOLT: + case MG_FROSTDIVER: + case MG_STONECURSE: + case MG_FIREBALL: + case MG_FIREWALL: + case MG_FIREBOLT: + case MG_LIGHTNINGBOLT: + case MG_THUNDERSTORM: + case AL_DP: + case AL_DEMONBANE: + case AL_RUWACH: + case AL_PNEUMA: + case AL_TELEPORT: + case AL_WARP: + case AL_HEAL: + case AL_DECAGI: + case AL_HOLYWATER: + case AL_CRUCIS: + case AL_ANGELUS: + case AL_CURE: + case ALL_RESURRECTION: + case PR_IMPOSITIO: + case PR_SUFFRAGIUM: + case PR_ASPERSIO: + case PR_BENEDICTIO: + case PR_SANCTUARY: + case PR_STRECOVERY: + case PR_KYRIE: + case PR_MAGNIFICAT: + case PR_GLORIA: + case PR_LEXDIVINA: + case PR_TURNUNDEAD: + case PR_LEXAETERNA: + case PR_MAGNUS: + case WZ_FIREPILLAR: + case WZ_SIGHTRASHER: + case WZ_FIREIVY: + case WZ_METEOR: + case WZ_JUPITEL: + case WZ_VERMILION: + case WZ_WATERBALL: + case WZ_ICEWALL: + case WZ_FROSTNOVA: + case WZ_STORMGUST: + case WZ_EARTHSPIKE: + case WZ_HEAVENDRIVE: + case WZ_QUAGMIRE: + case BS_REPAIRWEAPON: + case AL_HOLYLIGHT: + case MG_ENERGYCOAT: + case CR_GRANDCROSS: + case CR_DEVOTION: + case CR_PROVIDENCE: + case MO_CALLSPIRITS: + case MO_ABSORBSPIRITS: + case MO_INVESTIGATE: + case MO_FINGEROFFENSIVE: + case SA_SPELLBREAKER: + case SA_AUTOSPELL: + case SA_FLAMELAUNCHER: + case SA_FROSTWEAPON: + case SA_LIGHTNINGLOADER: + case SA_SEISMICWEAPON: + case SA_VOLCANO: + case SA_DELUGE: + case SA_VIOLENTGALE: + case SA_LANDPROTECTOR: + case SA_DISPELL: + case SA_ABRACADABRA: + case BD_RICHMANKIM: + case BD_DRUMBATTLEFIELD: + case BD_RINGNIBELUNGEN: + case BD_INTOABYSS: + case BD_SIEGFRIED: + case NPC_GRANDDARKNESS: + case NPC_DARKSTRIKE: + case NPC_DARKTHUNDER: + case NPC_STOP: + case HW_MAGICCRASHER: + case PF_HPCONVERSION: + case PF_SOULCHANGE: + case PF_SOULBURN: + case HW_NAPALMVULCAN: + case CH_SOULCOLLECT: + case PF_MINDBREAKER: + case PF_MEMORIZE: + case PF_SPIDERWEB: + case PF_DOUBLECASTING: + case HW_GRAVITATION: + case NPC_WIDESIGHT: + case ALL_ANGEL_PROTECT: + case NPC_MILLENNIUMSHIELD: + case NPC_STORMGUST2: + case NPC_CHEAL: + case NPC_DRAGONBREATH: + case NPC_VENOMIMPRESS: + case NPC_IGNITIONBREAK: + case NPC_PHANTOMTHRUST: + case NPC_RAINOFMETEOR: + case NPC_GROUNDDRIVE: + case WZ_SIGHTBLASTER: + case MO_KITRANSLATION: + case RK_ENCHANTBLADE: + case RK_HUNDREDSPEAR: + case RK_IGNITIONBREAK: + case RK_DRAGONBREATH: + case RK_MILLENNIUMSHIELD: + case RK_CRUSHSTRIKE: + case RK_GIANTGROWTH: + case RK_STONEHARDSKIN: + case RK_FIGHTINGSPIRIT: + case RK_ABUNDANCE: + case RK_PHANTOMTHRUST: + case GC_VENOMIMPRESS: + case GC_ROLLINGCUTTER: + case AB_ADORAMUS: + case AB_CHEAL: + case AB_EPICLESIS: + case AB_ORATIO: + case AB_HIGHNESSHEAL: + case AB_EXPIATIO: + case AB_DUPLELIGHT: + case AB_SILENTIUM: + case SC_CHAOSPANIC: + case ALL_ODINS_RECALL: + case RETURN_TO_ELDICASTES: + case ALL_GUARDIAN_RECALL: + case ALL_ODINS_POWER: + case SJ_NEWMOONKICK: + case SJ_FALLINGSTAR: + case RK_DRAGONBREATH_WATER: + case SU_CN_METEOR: + case SU_CN_METEOR2: + case DK_DRAGONIC_AURA: + case CD_REPARATIO: + case MER_MAGNIFICAT: + case EM_EL_FLAMEROCK: + case EM_EL_AGE_OF_ICE: + case EM_EL_STORM_WIND: + case EM_EL_AVALANCHE: + case EM_EL_DEADLY_POISON: effectId = 12; goto variant; - case 478: - case 490: + case CR_SLIMPITCHER: + case CR_ACIDDEMONSTRATION: motion = 28; effectId = 12; goto variant; - case 475: + case ST_PRESERVE: motion = 0; effectId = 59; return; - case 141: - case 344: - case 345: - case 346: - case 350: - case 379: - case 406: - case 661: - case 712: + case AS_SPLASHER: + case NPC_ARMORBRAKE: + case NPC_HELMBRAKE: + case NPC_SHIELDBRAKE: + case NPC_AGIUP: + case ASC_BREAKER: + case ASC_METEORASSAULT: + case NPC_PULSESTRIKE: + case NPC_PULSESTRIKE2: effectId = 59; return; - case 425: - case 493: + case TK_SEVENWIND: + case TK_MISSION: motion = 0; effectId = 441; return; - case 317: - case 319: - case 320: - case 321: - case 322: - case 411: - case 427: - case 434: - case 444: - case 445: - case 447: - case 448: - case 449: - case 450: - case 451: - case 452: - case 453: - case 454: - case 455: - case 456: - case 457: - case 458: - case 460: - case 461: - case 462: - case 463: - case 464: - case 465: - case 467: - case 468: - case 469: - case 470: - case 471: - case 472: - case 494: - case 572: - case 573: - case 574: - case 575: - case 2039: - case 2299: - case 2300: - case 2303: - case 2596: - case 2597: - case 2598: - case 2599: - case 2605: - case 2607: - case 2608: + case BA_DISSONANCE: + case BA_WHISTLE: + case BA_ASSASSINCROSS: + case BA_POEMBRAGI: + case BA_APPLEIDUN: + case TK_RUN: + case SG_FEEL: + case SG_HATE: + case SG_FUSION: + case SL_ALCHEMIST: + case SL_MONK: + case SL_STAR: + case SL_SAGE: + case SL_CRUSADER: + case SL_SUPERNOVICE: + case SL_KNIGHT: + case SL_WIZARD: + case SL_PRIEST: + case SL_BARDDANCER: + case SL_ROGUE: + case SL_ASSASIN: + case SL_BLACKSMITH: + case SL_HUNTER: + case SL_SOULLINKER: + case SL_KAIZEL: + case SL_KAAHI: + case SL_KAUPE: + case SL_KAITE: + case SL_STIN: + case SL_STUN: + case SL_SMA: + case SL_SWOO: + case SL_SKE: + case SL_SKA: + case SL_HIGH: + case SL_DEATHKNIGHT: + case SL_COLLECTOR: + case SL_NINJA: + case SL_GUNNER: + case AB_ANCILLA: + case SC_MANHOLE: + case SC_DIMENSIONDOOR: + case SC_BLOODYLUST: + case SP_SOULGOLEM: + case SP_SOULSHADOW: + case SP_SOULFALCON: + case SP_SOULFAIRY: + case SP_SOULUNITY: + case SP_SOULREAPER: + case SP_SOULREVOLVE: effectId = 441; return; - case 446: + case AM_BERSERKPITCHER: motion = 12; effectId = 12; goto variant; - case 496: + case AM_TWILIGHT1: motion = 7; effectId = 573; return; - case 497: + case AM_TWILIGHT2: motion = 7; effectId = 574; return; - case 498: + case AM_TWILIGHT3: motion = 7; effectId = 575; return; - case 525: - case 532: - case 543: + case NJ_HUUMA: + case NJ_BUNSINJYUTSU: + case NJ_NEN: motion = 37; effectId = 441; return; - case 534: - case 535: - case 536: + case NJ_KOUENKA: + case NJ_KAENSIN: + case NJ_BAKUENRYU: motion = 37; effectId = 55; return; - case 1018: + case SA_ELEMENTFIRE: effectId = 55; return; - case 537: - case 538: - case 539: + case NJ_HYOUSENSOU: + case NJ_SUITON: + case NJ_HYOUSYOURAKU: motion = 37; effectId = 54; return; - case 540: - case 541: - case 542: + case NJ_HUUJIN: + case NJ_RAIGEKISAI: + case NJ_KAMAITACHI: motion = 37; effectId = 57; return; - case 1019: + case SA_ELEMENTWIND: effectId = 57; return; - case 503: - case 504: - case 505: - case 512: - case 513: - case 514: - case 515: - case 517: + case GS_BULLSEYE: + case GS_MADNESSCANCEL: + case GS_ADJUSTMENT: + case GS_TRACKING: + case GS_DISARM: + case GS_PIERCINGSHOT: + case GS_RAPIDSHOWER: + case GS_GATLINGFEVER: motion = 41; effectId = 441; return; - case 518: - case 519: - case 520: - case 521: + case GS_DUST: + case GS_FULLBUSTER: + case GS_SPREADATTACK: + case GS_GROUNDDRIFT: motion = 42; effectId = 441; return; - case 1001: - case 1010: - case 1014: + case KN_CHARGEATK: + case BA_PANGVOICE: + case PR_REDEMPTIO: motion = 0; effectId = 58; return; - case 2052: + case AB_CLEARANCE: effectId = 1560; return; - case 56: - case 58: - case 62: - case 2055: + case KN_PIERCE: + case KN_SPEARSTAB: + case KN_BOWLINGBASH: + case AB_DUPLELIGHT_MELEE: effectId = -1; motion = 2; break; - case 2002: + case RK_SONICWAVE: effectId = 12; motion = 2; break; - case 115: - case 116: - case 117: - case 118: - case 119: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 688: - case 2239: - case 2253: - case 2254: + case HT_SKIDTRAP: + case HT_LANDMINE: + case HT_ANKLESNARE: + case HT_SHOCKWAVE: + case HT_SANDMAN: + case HT_FLASHER: + case HT_FREEZINGTRAP: + case HT_BLASTMINE: + case HT_CLAYMORETRAP: + case HT_REMOVETRAP: + case HT_TALKIEBOX: + case GM_SANDMAN: + case RA_CLUSTERBOMB: + case RA_FIRINGTRAP: + case RA_ICEBOUNDTRAP: motion = 5; break; - case 2326: - case 2327: - case 2328: - case 2329: - case 2330: - case 2332: - case 2338: - case 2340: - case 2341: - case 2344: - case 2345: - case 2346: - case 2347: - case 2348: - case 2518: + case SR_DRAGONCOMBO: + case SR_SKYNETBLOW: + case SR_EARTHSHAKER: + case SR_FALLENEMPIRE: + case SR_TIGERCANNON: + case SR_RAMPAGEBLASTER: + case SR_RAISINGDRAGON: + case SR_ASSIMILATEPOWER: + case SR_POWERVELOCITY: + case SR_GENTLETOUCH_QUIET: + case SR_GENTLETOUCH_CURE: + case SR_GENTLETOUCH_ENERGYGAIN: + case SR_GENTLETOUCH_CHANGE: + case SR_GENTLETOUCH_REVITALIZE: + case SR_RIDEINLIGHTNING: motion = -1; effectId = 831; return; - case 555: - case 2290: - case 2304: + case MB_M_TELEPORT: + case SC_INVISIBILITY: + case SC_FEINTBOMB: motion = 0; effectId = 501; return; - case 2292: - case 2293: - case 2294: - case 2295: - case 2296: - case 2297: - case 2298: + case SC_ENERVATION: + case SC_GROOMY: + case SC_IGNORANCE: + case SC_LAZINESS: + case SC_UNLUCKY: + case SC_WEAKNESS: + case SC_STRIPACCESSARY: motion = 7; effectId = 441; return; - case 2302: + case SC_MAELSTROM: effectId = 1556; return; - case 2564: + case RL_FALLEN_ANGEL: motion = 46; effectId = -1; return; - case 51: - case 55: - case 60: - case 63: - case 64: - case 93: - case 158: - case 159: - case 160: - case 161: - case 162: - case 163: - case 164: - case 165: - case 166: - case 167: - case 168: - case 169: - case 170: - case 171: - case 172: - case 173: - case 174: - case 175: - case 176: - case 177: - case 178: - case 179: - case 180: - case 181: - case 182: - case 183: - case 184: - case 185: - case 186: - case 187: - case 188: - case 189: - case 190: - case 191: - case 192: - case 258: - case 272: - case 273: - case 338: - case 347: - case 368: - case 370: - case 371: - case 372: - case 398: - case 399: - case 495: - case 654: - case 663: - case 666: - case 667: - case 668: - case 675: - case 676: - case 678: - case 721: - case 724: - case 757: - case 758: - case 759: - case 760: - case 762: - case 782: - case 783: - case 1016: - case 2005: - case 2038: - case 2278: - case 5214: - case 5215: - case 5216: - case 5217: - case 5218: - case 5220: - case 5221: - case 5222: - case 5225: - case 5227: - case 5229: - case 5230: - case 5232: - case 5233: - case 5234: - case 5235: - case 5237: - case 5241: - case 5244: - case 5246: - case 5247: - case 5254: - case 5269: - case 5271: - case 5272: - case 5273: - case 5275: - case 5278: - case 5280: - case 5281: - case 5282: - case 5313: - case 5315: - case 5316: - case 5318: - case 5319: - case 5329: - case 5332: - case 5338: - case 5339: - case 5340: - case 5341: - case 5342: - case 5343: - case 5344: - case 5345: - case 5346: - case 5347: - case 5348: - case 5357: - case 5361: - case 5367: - case 5368: - case 5369: - case 5370: - case 5371: - case 5372: - case 5373: - case 5375: - case 5376: - case 5377: - case 5378: - case 5379: - case 5380: - case 5382: - case 5389: - case 5390: - case 5391: - case 5392: - case 5393: - case 8444: - case 8447: - case 8450: - case 8453: - case 8456: - case 8603: - case 8604: - case 8605: + case TF_HIDING: + case KN_SPEARMASTERY: + case KN_TWOHANDQUICKEN: + case KN_RIDING: + case KN_CAVALIERMASTERY: + case WZ_ESTIMATION: + case NPC_PIERCINGATT: + case NPC_MENTALBREAKER: + case NPC_RANGEATTACK: + case NPC_ATTRICHANGE: + case NPC_CHANGEWATER: + case NPC_CHANGEGROUND: + case NPC_CHANGEFIRE: + case NPC_CHANGEWIND: + case NPC_CHANGEPOISON: + case NPC_CHANGEHOLY: + case NPC_CHANGEDARKNESS: + case NPC_CHANGETELEKINESIS: + case NPC_CRITICALSLASH: + case NPC_COMBOATTACK: + case NPC_GUIDEDATTACK: + case NPC_SELFDESTRUCTION: + case NPC_SPLASHATTACK: + case NPC_SUICIDE: + case NPC_POISON: + case NPC_BLINDATTACK: + case NPC_SILENCEATTACK: + case NPC_STUNATTACK: + case NPC_PETRIFYATTACK: + case NPC_CURSEATTACK: + case NPC_SLEEPATTACK: + case NPC_RANDOMATTACK: + case NPC_WATERATTACK: + case NPC_GROUNDATTACK: + case NPC_FIREATTACK: + case NPC_WINDATTACK: + case NPC_POISONATTACK: + case NPC_HOLYATTACK: + case NPC_DARKNESSATTACK: + case NPC_TELEKINESISATTACK: + case NPC_MAGICALATTACK: + case CR_SPEARQUICKEN: + case MO_CHAINCOMBO: + case MO_COMBOFINISH: + case NPC_DARKCROSS: + case NPC_UNDEADATTACK: + case PA_SACRIFICE: + case CH_PALMSTRIKE: + case CH_TIGERFIST: + case CH_CHAINCRUSH: + case LK_HEADCRUSH: + case LK_JOINTBEAT: + case KN_ONEHAND: + case NPC_FIREBREATH: + case NPC_WIDESILENCE: + case NPC_WIDESTONE: + case NPC_WIDECONFUSE: + case NPC_WIDESLEEP: + case NPC_STONESKIN: + case NPC_ANTIMAGIC: + case NPC_WIDESTUN: + case NPC_WIDEWEB: + case NPC_FIRESTORM: + case NPC_WIDESILENCE2: + case NPC_WIDESTUN2: + case NPC_WIDESTONE2: + case NPC_WIDESLEEP2: + case NPC_WIDECONFUSE2: + case NPC_CURSE_OF_BLUE_CUBE: + case NPC_KILLING_AURA: + case MO_BALKYOUNG: + case RK_WINDCUTTER: + case AB_JUDEX: + case NC_AXEBOOMERANG: + case AG_DEADLY_PROJECTION: + case AG_DESTRUCTIVE_HURRICANE: + case AG_RAIN_OF_CRYSTAL: + case AG_MYSTERY_ILLUSION: + case AG_VIOLENT_QUAKE: + case AG_SOUL_VC_STRIKE: + case AG_STRANTUM_TREMOR: + case AG_ALL_BLOOM: + case AG_CRYSTAL_IMPACT: + case AG_TORNADO_STORM: + case AG_FLORAL_FLARE_ROAD: + case AG_ASTRAL_STRIKE: + case AG_CLIMAX: + case AG_ROCK_DOWN: + case AG_STORM_CANNON: + case AG_CRIMSON_ARROW: + case AG_FROZEN_SLASH: + case IQ_OLEUM_SANCTUM: + case IQ_EXPOSION_BLASTER: + case IQ_FIRST_FAITH_POWER: + case IQ_JUDGE: + case IQ_THIRD_EXOR_FLAME: + case CD_MEDIALE_VOTUM: + case CD_ARGUTUS_VITA: + case CD_ARGUTUS_TELUM: + case CD_ARBITRIUM: + case CD_PRESENS_ACIES: + case CD_COMPETENTIA: + case CD_DILECTIO_HEAL: + case CD_RELIGIO: + case CD_BENEDICTUM: + case ABC_STRIP_SHADOW: + case ABC_UNLUCKY_RUSH: + case ABC_CHAIN_REACTION_SHOT: + case ABC_ABYSS_SLAYER: + case ABC_ABYSS_STRIKE: + case WH_HAWKBOOMERANG: + case WH_SOLIDTRAP: + case BO_THE_WHOLE_PROTECTION: + case BO_ADVANCE_PROTECTION: + case BO_ACIDIFIED_ZONE_WATER: + case BO_ACIDIFIED_ZONE_GROUND: + case BO_ACIDIFIED_ZONE_WIND: + case BO_ACIDIFIED_ZONE_FIRE: + case BO_WOODENWARRIOR: + case BO_WOODEN_FAIRY: + case BO_CREEPER: + case BO_RESEARCHREPORT: + case BO_HELLTREE: + case TR_SOUNDBLEND: + case TR_MUSICAL_INTERLUDE: + case EM_ACTIVITY_BURN: + case EM_INCREASING_ACTIVITY: + case EM_DIAMOND_STORM: + case EM_LIGHTNING_LAND: + case EM_VENOM_SWAMP: + case EM_CONFLAGRATION: + case EM_TERRA_DRIVE: + case EM_SUMMON_ELEMENTAL_ARDOR: + case EM_SUMMON_ELEMENTAL_DILUVIO: + case EM_SUMMON_ELEMENTAL_PROCELLA: + case EM_SUMMON_ELEMENTAL_TERREMOTUS: + case EM_SUMMON_ELEMENTAL_SERPENS: + case EM_ELEMENTAL_BUSTER: + case ABC_CHAIN_REACTION_SHOT_ATK: + case EM_ELEMENTAL_BUSTER_FIRE: + case EM_ELEMENTAL_BUSTER_WATER: + case EM_ELEMENTAL_BUSTER_WIND: + case EM_ELEMENTAL_BUSTER_GROUND: + case EM_ELEMENTAL_BUSTER_POISON: + case EM_EL_FLAMEARMOR: + case EM_EL_CRYSTAL_ARMOR: + case EM_EL_EYES_OF_STORM: + case EM_EL_STRONG_PROTECTION: + case EM_EL_POISON_SHIELD: + case ABR_NET_REPAIR: + case ABR_NET_SUPPORT: + case ABR_INFINITY_BUSTER: effectId = -1; return; - case 744: - case 2444: + case NPC_ELECTRICWALK: + case SO_ELECTRICWALK: motion = -1; effectId = 57; return; - case 2446: + case SO_EARTHGRAVE: motion = -1; effectId = 1664; return; - case 2454: + case SO_VARETYR_SPEAR: motion = 7; effectId = 1565; return; - case 735: - case 2476: - case 2480: - case 2494: - case 2495: - case 2496: - case 2497: + case NPC_MANDRAGORA: + case GN_CART_TORNADO: + case GN_BLOOD_SUCKER: + case GN_CHANGEMATERIAL: + case GN_MIX_COOKING: + case GN_MAKEBOMB: + case GN_S_PHARMACY: motion = -1; effectId = 911; return; - case 2478: + case GN_CARTBOOST: motion = -1; effectId = 1677; return; - case 2343: - case 2492: - case 2517: + case SR_GATEOFHELL: + case GN_MANDRAGORA: + case SR_HOWLINGOFLION: motion = -1; effectId = -1; return; - case 2481: - case 2485: + case GN_SPORE_EXPLOSION: + case GN_DEMONIC_FIRE: motion = 12; effectId = 911; return; - case 2479: - case 2483: - case 2486: - case 2490: + case GN_THORNS_TRAP: + case GN_CRAZYWEED: + case GN_FIRE_EXPANSION: + case GN_HELLS_PLANT: motion = 7; effectId = 911; return; - case 2482: + case GN_WALLOFTHORN: motion = 7; effectId = -1; return; - case 2204: + case WL_JACKFROST: effectId = 1449; motion = 7; break; - case 2213: + case WL_COMET: effectId = 1418; motion = 7; break; - case 2217: + case WL_TETRAVORTEX: effectId = 805; motion = 7; break; - case 2222: - case 2223: - case 2224: - case 2229: + case WL_SUMMONFB: + case WL_SUMMONBL: + case WL_SUMMONWB: + case WL_SUMMONSTONE: effectId = g_serviceOptions.Get(229) ? 1430 : 1260; g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); motion = 7; break; - case 2288: + case SC_TRIANGLESHOT: effectId = 441; motion = 18; break; - case 2287: + case SC_SHADOWFORM: effectId = 826; motion = 7; break; - case 29: - case 690: - case 708: - case 720: - case 728: - case 2201: - case 2203: - case 2205: - case 2207: - case 2210: - case 2211: - case 2216: - case 2230: - case 2233: - case 2237: - case 2243: - case 2244: - case 2246: + case AL_INCAGI: + case CASH_INCAGI: + case NPC_COMET: + case NPC_JACKFROST: + case NPC_ARROWSTORM: + case WL_WHITEIMPRISON: + case WL_FROSTMISTY: + case WL_MARSHOFABYSS: + case WL_SIENNAEXECRATE: + case WL_DRAINLIFE: + case WL_CRIMSONROCK: + case WL_EARTHSTRAIN: + case WL_RELEASE: + case RA_ARROWSTORM: + case RA_DETONATOR: + case RA_WUGSTRIKE: + case RA_WUGBITE: + case RA_SENSITIVEKEEN: effectId = 12; motion = 7; break; - case 2209: - case 2240: - case 2286: + case WL_STASIS: + case RA_WUGMASTERY: + case SC_AUTOSHADOWSPELL: effectId = 441; motion = 7; break; - case 136: - case 737: - case 2022: - case 2056: - case 2202: - case 2212: - case 2214: - case 2236: - case 2317: - case 2321: + case AS_SONICBLOW: + case NPC_RAYOFGENESIS: + case GC_CROSSIMPACT: + case AB_DUPLELIGHT_MAGIC: + case WL_SOULEXPANSION: + case WL_HELLINFERNO: + case WL_CHAINLIGHTNING: + case RA_AIMEDBOLT: + case LG_OVERBRAND: + case LG_RAYOFGENESIS: effectId = -1; motion = 7; break; - case 2323: + case LG_EARTHDRIVE: effectId = 1709; motion = 7; break; - case 2322: + case LG_PIETY: effectId = 830; motion = 7; break; - case 2241: - case 2242: - case 2477: - case 2520: + case RA_WUGRIDER: + case RA_WUGDASH: + case GN_CARTCANNON: + case LG_OVERBRAND_PLUSATK: effectId = -1; motion = -1; break; - case 2316: + case LG_EXEEDBREAK: effectId = 882; motion = 7; break; - case 2280: + case NC_AXETORNADO: motion = 2; effectId = 775; return; - case 2259: + case NC_FLAMELAUNCHER: motion = 2; effectId = 12; goto variant; - case 2261: + case NC_ARMSCANNON: motion = 2; effectId = -1; return; - case 736: - case 739: - case 742: - case 2256: - case 2258: - case 2260: - case 2262: - case 2268: - case 2447: - case 2448: - case 2449: - case 2450: - case 2451: - case 2452: - case 2453: - case 2455: - case 2456: - case 2457: - case 2458: - case 2459: - case 2460: + case NPC_PSYCHIC_WAVE: + case NPC_CLOUD_KILL: + case NPC_POISON_BUSTER: + case NC_BOOSTKNUCKLE: + case NC_VULCANARM: + case NC_COLDSLOWER: + case NC_ACCELERATION: + case NC_SHAPESHIFT: + case SO_DIAMONDDUST: + case SO_POISON_BUSTER: + case SO_PSYCHIC_WAVE: + case SO_CLOUD_KILL: + case SO_STRIKING: + case SO_WARMER: + case SO_VACUUM_EXTREME: + case SO_ARRULLO: + case SO_EL_CONTROL: + case SO_SUMMON_AGNI: + case SO_SUMMON_AQUA: + case SO_SUMMON_VENTUS: + case SO_SUMMON_TERA: motion = -1; effectId = 12; goto variant; - case 2267: + case NC_SELFDESTRUCTION: motion = -1; effectId = 775; return; - case 745: - case 2270: - case 2443: + case NPC_FIREWALK: + case NC_INFRAREDSCAN: + case SO_FIREWALK: motion = -1; effectId = 55; return; - case 2272: + case NC_MAGNETICFIELD: motion = -1; effectId = 54; return; - case 2271: - case 2273: - case 2275: + case NC_ANALYZE: + case NC_NEUTRALBARRIER: + case NC_REPAIR: motion = -1; effectId = 58; return; - case 2274: + case NC_STEALTHFIELD: motion = -1; effectId = 441; return; - case 2350: - case 2351: - case 2417: - case 2420: - case 2422: - case 2424: - case 2425: + case WA_SWING_DANCE: + case WA_SYMPHONY_OF_LOVER: + case WM_DOMINION_IMPULSE: + case WM_VOICEOFSIREN: + case WM_LULLABY_DEEPSLEEP: + case WM_RANDOMIZESPELL: + case WM_GLOOMYDAY: motion = 16; effectId = 840; return; - case 2352: + case WA_MOONLIT_SERENADE: motion = 16; effectId = 840; g_soundMgr->PlayWave("effect\\달빛세레나데.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 2419: + case WM_POEMOFNETHERWORLD: motion = 16; effectId = 840; g_soundMgr->PlayWave("effect\\나락의노래.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 2414: + case WM_REVERBERATION: motion = 16; effectId = 1656; return; - case 1011: - case 2413: + case DC_WINKCHARM: + case WM_METALICSOUND: motion = 16; effectId = -1; return; - case 2418: + case WM_SEVERE_RAINSTORM: motion = 16; effectId = 1286; return; - case 2421: - case 2423: + case WM_DEADHILLHERE: + case WM_SIRCLEOFNATURE: motion = 16; effectId = 841; return; - case 2381: - case 2382: + case MI_RUSH_WINDMILL: + case MI_ECHOSONG: motion = 16; effectId = 844; return; - case 2426: - case 2427: - case 2428: - case 2430: - case 2432: - case 2433: - case 2434: + case WM_GREAT_ECHO: + case WM_SONG_OF_MANA: + case WM_DANCE_WITH_WUG: + case WM_SATURDAY_NIGHT_FEVER: + case WM_MELODYOFSINK: + case WM_BEYOND_OF_WARCRY: + case WM_UNLIMITED_HUMMING_VOICE: motion = 16; effectId = 843; return; - case 2431: + case WM_LERADS_DEW: motion = 16; effectId = 843; g_soundMgr->PlayWave("effect\\레라드의이슬.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 2429: + case WM_SOUND_OF_DESTRUCTION: effectId = -1; motion = 16; break; - case 2383: + case MI_HARMONIZE: motion = 16; effectId = 441; return; - case 2581: + case SJ_STAREMPEROR: motion = 19; effectId = 58; return; - case 2600: - case 2601: - case 2602: - case 2603: - case 2604: - case 2606: - case 2610: + case SP_CURSEEXPLOSION: + case SP_SOULCURSE: + case SP_SPA: + case SP_SHA: + case SP_SWHOO: + case SP_SOULDIVISION: + case SP_SOULEXPLOSION: effectId = 454; return; - case 426: - case 5023: + case TK_HIGHJUMP: + case SU_LOPE: motion = 19; effectId = -1; return; - case 5026: - case 5027: - case 5032: - case 5033: - case 5035: - case 5036: - case 5038: - case 5040: - case 5043: + case SU_SV_STEMSPEAR: + case SU_CN_POWDERING: + case SU_SCAROFTAROU: + case SU_PICKYPECK: + case SU_ARCLOUSEDASH: + case SU_LUNATICCARROTBEAT: + case SU_TUNABELLY: + case SU_BUNCHOFSHRIMP: + case SU_LUNATICCARROTBEAT2: motion = 50; effectId = -1; return; - case 2041: - case 2042: - case 2045: - case 2047: - case 2048: - case 5072: + case AB_CLEMENTIA: + case AB_CANTO: + case AB_PRAEFATIO: + case AB_LAUDAAGNUS: + case AB_LAUDARAMUS: + case AB_VITUPERATUM: effectId = 830; return; - case 2206: - case 2231: - case 2313: - case 2314: - case 2315: - case 2318: - case 2319: - case 2320: - case 2324: - case 2325: - case 5078: + case WL_RECOGNIZEDSPELL: + case WL_READING_SB: + case LG_FORCEOFVANGUARD: + case LG_RAGEBURST: + case LG_SHIELDSPELL: + case LG_PRESTIGE: + case LG_BANDING: + case LG_MOONSLASHER: + case LG_HESPERUSLIT: + case LG_INSPIRATION: + case WL_READING_SB_READING: effectId = 58; motion = 7; break; - case 5242: + case IQ_SINCERE_FAITH: effectId = 1963; return; - case 5238: + case IQ_POWERFUL_FAITH: effectId = 1986; return; - case 5239: + case IQ_FIRM_FAITH: effectId = 1998; return; - case 5279: + case CD_PNEUMATICUS_PROCELLA: effectId = 1959; return; - case 5284: + case CD_FRAMEN: effectId = 1932; return; - case 5335: + case WH_FLAMETRAP: effectId = 1923; return; - case 5305: + case MT_SUMMON_ABR_INFINITY: effectId = 1910; return; - case 5302: + case MT_SUMMON_ABR_BATTLE_WARIOR: effectId = 1938; return; - case 5303: + case MT_SUMMON_ABR_DUAL_CANNON: effectId = 1918; return; - case 5304: + case MT_SUMMON_ABR_MOTHER_NET: effectId = 1902; return; - case 5331: + case WH_DEEPBLINDTRAP: effectId = 1872; return; - case 5333: + case WH_SWIFTTRAP: effectId = 1876; return; - case 5321: + case ABC_ABYSS_SQUARE: effectId = -1; motion = -1; g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 2032: - case 2234: - case 5002: + case GC_POISONSMOKE: + case RA_FEARBREEZE: + case RA_UNLIMIT: g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); break; - case 5294: + case SHC_FATAL_SHADOW_CROW: g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0); effectId = -1; return; - case 5387: + case NPC_BO_HELL_DUSTY: effectId = 2240; return; - case 5384: - case 5385: + case NPC_BO_THROWROCK: + case NPC_BO_WOODEN_ATTACK: effectId = 2249; return; - case 5388: + case NPC_BO_FAIRY_DUSTY: effectId = 2255; return; - case 196: - case 209: - case 249: - case 270: - case 349: - case 8220: + case NPC_SUMMONSLAVE: + case NPC_SUMMONMONSTER: + case CR_AUTOGUARD: + case MO_EXPLOSIONSPIRITS: + case NPC_POWERUP: + case ML_AUTOGUARD: motion = 0; effectId = -1; return; - case 8401: - case 8425: - case 8426: - case 8428: + case EL_CIRCLE_OF_FIRE: + case EL_FIRE_ARROW: + case EL_FIRE_BOMB: + case EL_FIRE_WAVE: motion = 7; effectId = 55; return; - case 8430: - case 8431: - case 8433: + case EL_ICE_NEEDLE: + case EL_WATER_SCREW: + case EL_TIDAL_WEAPON: motion = 7; effectId = 54; return; - case 8434: - case 8435: + case EL_WIND_SLASH: + case EL_HURRICANE: motion = 7; effectId = 57; return; - case 8442: + case EL_STONE_RAIN: motion = 7; effectId = 56; return; - case 1017: + case SA_ELEMENTGROUND: effectId = 56; return; default: @@ -1130,63 +1132,63 @@ void CSession::GetSkillActionInfo(int skillId, int& effectId, int& motion, int v } } break; - case 1: - case 2: - case 3: - case 4: - case 6: - case 8: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 43: - case 44: - case 48: - case 49: - case 50: - case 52: - case 53: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 106: - case 107: - case 109: - case 111: - case 112: - case 113: - case 114: - case 126: - case 127: - case 128: - case 129: - case 130: - case 131: - case 132: - case 133: - case 134: - case 135: - case 137: - case 138: - case 139: - case 140: - case 459: - case 486: - case 2033: + case NV_BASIC: + case SM_SWORD: + case SM_TWOHAND: + case SM_RECOVERY: + case SM_PROVOKE: + case SM_ENDURE: + case MC_INCCARRY: + case MC_DISCOUNT: + case MC_OVERCHARGE: + case MC_PUSHCART: + case MC_IDENTIFY: + case MC_VENDING: + case AC_OWL: + case AC_VULTURE: + case TF_DOUBLE: + case TF_MISS: + case TF_STEAL: + case TF_POISON: + case TF_DETOXIFY: + case BS_IRON: + case BS_STEEL: + case BS_ENCHANTEDSTONE: + case BS_ORIDEOCON: + case BS_DAGGER: + case BS_SWORD: + case BS_TWOHANDSWORD: + case BS_AXE: + case BS_MACE: + case BS_KNUCKLE: + case BS_SPEAR: + case BS_HILTBINDING: + case BS_FINDINGORE: + case BS_WEAPONRESEARCH: + case BS_SKINTEMPER: + case BS_ADRENALINE: + case BS_WEAPONPERFECT: + case BS_OVERTHRUST: + case BS_MAXIMIZE: + case HT_BEASTBANE: + case HT_FALCON: + case HT_STEELCROW: + case HT_BLITZBEAT: + case HT_DETECTING: + case HT_SPRINGTRAP: + case AS_RIGHT: + case AS_LEFT: + case AS_KATAR: + case AS_CLOAKING: + case AS_GRIMTOOTH: + case AS_ENCHANTPOISON: + case AS_POISONREACT: + case AS_VENOMDUST: + case BS_ADRENALINE2: + case WS_OVERTHRUSTMAX: + case GC_CLOAKINGEXCEED: break; - case 1008: + case SA_ELEMENTWATER: effectId = 54; return; } @@ -1197,22 +1199,22 @@ void CSession::GetSkillActionInfo(int skillId, int& effectId, int& motion, int v variant: switch (variant) { - case 1: + case ELE_WATER: effectId = 54; return; - case 2: + case ELE_EARTH: effectId = 56; return; - case 3: + case ELE_FIRE: effectId = 55; return; - case 4: + case ELE_WIND: effectId = 57; return; - case 5: + case ELE_POISON: effectId = 59; return; - case 6: + case ELE_HOLY: effectId = 58; return; } @@ -1225,29 +1227,29 @@ void CSession::GetSkillActionInfo2(int skillId, int& effectId, int& motion) { motion = 7; const int beginEffect = this->GetBeginEffectId(skillId); switch (skillId) { - case 3004: + case KO_JYUMONJIKIRI: motion = 9; break; - case 3005: - case 3006: - case 3007: - case 3009: - case 3020: - case 3022: - case 3023: + case KO_SETSUDAN: + case KO_BAKURETSU: + case KO_HAPPOKUNAI: + case KO_HUUMARANKA: + case KO_ZENKAI: + case KO_IZAYOI: + case KG_KAGEHUMI: motion = 36; break; - case 3011: - case 3013: - case 3014: - case 3015: - case 3016: - case 3017: - case 3018: - case 3021: - case 3026: - case 3027: - case 3029: + case KO_MEIKYOUSISUI: + case KO_KYOUGAKU: + case KO_JYUSATSU: + case KO_KAHU_ENTEN: + case KO_HYOUHU_HUBUKI: + case KO_KAZEHU_SEIRAN: + case KO_DOHU_KOUKAI: + case KO_GENWAKU: + case OB_ZANGETSU: + case OB_OBOROGENSOU: + case OB_AKAITSUKI: motion = 37; break; } @@ -1258,995 +1260,995 @@ void CSession::GetSkillActionInfo2(int skillId, int& effectId, int& motion) { } switch (skillId) { - case 1: - case 2: - case 3: - case 4: - case 6: - case 8: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 43: - case 44: - case 48: - case 49: - case 50: - case 52: - case 53: - case 355: + case NV_BASIC: + case SM_SWORD: + case SM_TWOHAND: + case SM_RECOVERY: + case SM_PROVOKE: + case SM_ENDURE: + case MC_INCCARRY: + case MC_DISCOUNT: + case MC_OVERCHARGE: + case MC_PUSHCART: + case MC_IDENTIFY: + case MC_VENDING: + case AC_OWL: + case AC_VULTURE: + case TF_DOUBLE: + case TF_MISS: + case TF_STEAL: + case TF_POISON: + case TF_DETOXIFY: + case LK_AURABLADE: return; - case 5: - case 7: - case 42: - case 46: - case 366: - case 499: - case 1009: - case 8202: + case SM_BASH: + case SM_MAGNUM: + case MC_MAMMONITE: + case AC_DOUBLE: + case HW_MAGICPOWER: + case HT_POWER: + case HT_PHANTASMIC: + case MS_MAGNUM: motion = 2; return; - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 30: - case 31: - case 32: - case 33: - case 35: - case 54: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 340: - case 341: - case 342: - case 400: - case 483: - case 669: - case 694: - case 723: - case 769: - case 770: - case 1006: - case 2533: - case 2534: - case 2536: - case 2537: - case 8222: + case MG_SRECOVERY: + case MG_SIGHT: + case MG_NAPALMBEAT: + case MG_SAFETYWALL: + case MG_SOULSTRIKE: + case MG_COLDBOLT: + case MG_FROSTDIVER: + case MG_STONECURSE: + case MG_FIREBALL: + case MG_FIREWALL: + case MG_FIREBOLT: + case MG_LIGHTNINGBOLT: + case MG_THUNDERSTORM: + case AL_DP: + case AL_DEMONBANE: + case AL_RUWACH: + case AL_PNEUMA: + case AL_TELEPORT: + case AL_WARP: + case AL_DECAGI: + case AL_HOLYWATER: + case AL_CRUCIS: + case AL_ANGELUS: + case AL_CURE: + case ALL_RESURRECTION: + case PR_MACEMASTERY: + case PR_IMPOSITIO: + case PR_SUFFRAGIUM: + case PR_ASPERSIO: + case PR_BENEDICTIO: + case PR_SANCTUARY: + case PR_SLOWPOISON: + case PR_STRECOVERY: + case PR_KYRIE: + case PR_MAGNIFICAT: + case PR_GLORIA: + case PR_LEXDIVINA: + case PR_TURNUNDEAD: + case PR_LEXAETERNA: + case PR_MAGNUS: + case WZ_FIREPILLAR: + case WZ_SIGHTRASHER: + case WZ_FIREIVY: + case WZ_METEOR: + case WZ_JUPITEL: + case WZ_VERMILION: + case WZ_WATERBALL: + case WZ_ICEWALL: + case WZ_FROSTNOVA: + case WZ_STORMGUST: + case WZ_EARTHSPIKE: + case WZ_HEAVENDRIVE: + case WZ_QUAGMIRE: + case NPC_DARKSTRIKE: + case NPC_DARKTHUNDER: + case NPC_STOP: + case HW_NAPALMVULCAN: + case HW_GANBANTEIN: + case NPC_WIDESIGHT: + case ALL_ANGEL_PROTECT: + case NPC_STORMGUST2: + case NPC_RAINOFMETEOR: + case NPC_GROUNDDRIVE: + case WZ_SIGHTBLASTER: + case ALL_ODINS_RECALL: + case RETURN_TO_ELDICASTES: + case ALL_GUARDIAN_RECALL: + case ALL_ODINS_POWER: + case MER_MAGNIFICAT: effectId = 12; return; - case 28: - case 34: - case 136: - case 156: - case 157: - case 334: - case 335: - case 408: - case 487: - case 489: - case 689: - case 2051: - case 5063: - case 5064: - case 5065: + case AL_HEAL: + case AL_BLESSING: + case AS_SONICBLOW: + case AL_HOLYLIGHT: + case MG_ENERGYCOAT: + case WE_MALE: + case WE_FEMALE: + case WE_BABY: + case CG_LONGINGFREEDOM: + case CG_TAROTCARD: + case CASH_BLESSING: + case AB_HIGHNESSHEAL: + case WE_CALLALLFAMILY: + case WE_ONEFOREVER: + case WE_CHEERUP: effectId = -1; motion = 7; return; - case 29: - case 151: - case 304: - case 690: + case AL_INCAGI: + case TF_PICKSTONE: + case BD_ADAPTATION: + case CASH_INCAGI: effectId = -1; motion = 0; return; - case 45: + case AC_CONCENTRATION: effectId = 43; return; - case 47: - case 212: - case 214: - case 219: - case 253: - case 266: - case 267: - case 338: - case 367: - case 368: - case 379: - case 382: - case 406: - case 502: - case 503: - case 512: - case 513: - case 514: - case 515: - case 518: - case 519: - case 520: - case 661: - case 674: - case 712: - case 728: - case 732: - case 740: - case 1001: - case 1005: - case 2004: - case 2005: - case 2006: - case 2017: - case 2023: - case 2030: - case 2031: - case 2036: - case 2037: - case 2233: - case 2236: - case 2259: - case 2261: - case 2280: - case 2284: - case 2288: - case 2298: - case 2314: - case 2317: - case 2320: - case 2324: - case 2342: - case 2476: - case 5245: - case 5248: - case 5249: - case 5250: - case 5277: - case 5283: - case 5287: - case 5289: - case 5294: - case 5295: - case 5296: - case 5344: - case 5345: - case 5346: - case 5348: - case 8601: - case 8602: - case 8603: - case 8604: - case 8605: + case AC_SHOWER: + case RG_BACKSTAP: + case RG_RAID: + case RG_INTIMIDATE: + case CR_HOLYCROSS: + case MO_INVESTIGATE: + case MO_FINGEROFFENSIVE: + case NPC_DARKCROSS: + case PA_PRESSURE: + case PA_SACRIFICE: + case ASC_BREAKER: + case SN_SHARPSHOOTING: + case ASC_METEORASSAULT: + case GS_TRIPLEACTION: + case GS_BULLSEYE: + case GS_TRACKING: + case GS_DISARM: + case GS_PIERCINGSHOT: + case GS_RAPIDSHOWER: + case GS_DUST: + case GS_FULLBUSTER: + case GS_SPREADATTACK: + case NPC_PULSESTRIKE: + case NPC_EXPULSION: + case NPC_PULSESTRIKE2: + case NPC_ARROWSTORM: + case NPC_FATALMENACE: + case NPC_IGNITIONBREAK: + case KN_CHARGEATK: + case RG_CLOSECONFINE: + case RK_HUNDREDSPEAR: + case RK_WINDCUTTER: + case RK_IGNITIONBREAK: + case RK_STORMBLAST: + case GC_DARKILLUSION: + case GC_WEAPONCRUSH: + case GC_VENOMPRESSURE: + case GC_ROLLINGCUTTER: + case GC_CROSSRIPPERSLASHER: + case RA_ARROWSTORM: + case RA_AIMEDBOLT: + case NC_FLAMELAUNCHER: + case NC_ARMSCANNON: + case NC_AXETORNADO: + case SC_FATALMENACE: + case SC_TRIANGLESHOT: + case SC_STRIPACCESSARY: + case LG_RAGEBURST: + case LG_OVERBRAND: + case LG_MOONSLASHER: + case LG_HESPERUSLIT: + case SR_CRESCENTELBOW_AUTOSPELL: + case GN_CART_TORNADO: + case IQ_FIRST_BRAND: + case IQ_SECOND_FLAME: + case IQ_SECOND_FAITH: + case IQ_SECOND_JUDGEMENT: + case CD_EFFLIGO: + case CD_PETITIO: + case SHC_SAVAGE_IMPACT: + case SHC_ETERNAL_SLASH: + case SHC_FATAL_SHADOW_CROW: + case MT_AXE_STOMP: + case MT_RUSH_QUAKE: + case BO_WOODENWARRIOR: + case BO_WOODEN_FAIRY: + case BO_CREEPER: + case BO_HELLTREE: + case ABR_BATTLE_BUSTER: + case ABR_DUAL_CANNON_FIRE: + case ABR_NET_REPAIR: + case ABR_NET_SUPPORT: + case ABR_INFINITY_BUSTER: motion = 2; effectId = -1; return; - case 51: - case 55: - case 60: - case 63: - case 64: - case 93: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 106: - case 107: - case 108: - case 110: - case 111: - case 112: - case 113: - case 114: - case 126: - case 127: - case 128: - case 129: - case 130: - case 131: - case 132: - case 133: - case 134: - case 135: - case 137: - case 138: - case 139: - case 140: - case 141: - case 153: - case 158: - case 159: - case 160: - case 161: - case 162: - case 163: - case 164: - case 165: - case 166: - case 167: - case 168: - case 169: - case 170: - case 171: - case 172: - case 173: - case 174: - case 175: - case 176: - case 177: - case 178: - case 179: - case 180: - case 181: - case 182: - case 183: - case 184: - case 185: - case 186: - case 187: - case 188: - case 189: - case 190: - case 191: - case 192: - case 234: - case 235: - case 236: - case 237: - case 258: - case 264: - case 271: - case 272: - case 273: - case 371: - case 383: - case 459: - case 479: - case 486: - case 495: - case 544: - case 654: - case 663: - case 666: - case 667: - case 668: - case 675: - case 676: - case 678: - case 721: - case 724: - case 757: - case 758: - case 759: - case 760: - case 762: - case 780: - case 783: - case 2033: - case 2038: - case 2040: - case 2055: - case 2056: - case 2326: - case 2328: - case 2329: - case 2332: - case 2335: - case 2338: - case 2341: - case 2519: - case 2584: - case 2592: - case 2602: - case 2604: - case 5030: - case 5036: - case 5043: - case 5205: - case 5210: - case 5214: - case 5220: - case 5230: - case 5233: - case 5234: - case 5235: - case 5237: - case 5251: - case 5252: - case 5253: - case 5265: - case 5273: - case 5274: - case 5284: - case 5290: - case 5326: - case 5329: - case 5336: - case 5338: - case 5339: - case 5347: - case 5356: - case 5357: - case 5369: - case 5373: - case 5380: - case 5389: - case 5390: - case 5391: - case 5392: - case 5393: - case 8425: - case 8426: - case 8428: - case 8430: - case 8431: - case 8433: - case 8434: - case 8435: - case 8442: - case 8443: - case 8444: - case 8445: - case 8446: - case 8447: - case 8448: - case 8449: - case 8450: - case 8451: - case 8452: - case 8453: - case 8454: - case 8455: - case 8456: - case 8457: + case TF_HIDING: + case KN_SPEARMASTERY: + case KN_TWOHANDQUICKEN: + case KN_RIDING: + case KN_CAVALIERMASTERY: + case WZ_ESTIMATION: + case BS_IRON: + case BS_STEEL: + case BS_ENCHANTEDSTONE: + case BS_ORIDEOCON: + case BS_DAGGER: + case BS_SWORD: + case BS_TWOHANDSWORD: + case BS_AXE: + case BS_MACE: + case BS_KNUCKLE: + case BS_SPEAR: + case BS_HILTBINDING: + case BS_FINDINGORE: + case BS_WEAPONRESEARCH: + case BS_REPAIRWEAPON: + case BS_HAMMERFALL: + case BS_ADRENALINE: + case BS_WEAPONPERFECT: + case BS_OVERTHRUST: + case BS_MAXIMIZE: + case HT_BEASTBANE: + case HT_FALCON: + case HT_STEELCROW: + case HT_BLITZBEAT: + case HT_DETECTING: + case HT_SPRINGTRAP: + case AS_RIGHT: + case AS_LEFT: + case AS_KATAR: + case AS_CLOAKING: + case AS_GRIMTOOTH: + case AS_ENCHANTPOISON: + case AS_POISONREACT: + case AS_VENOMDUST: + case AS_SPLASHER: + case MC_CARTREVOLUTION: + case NPC_PIERCINGATT: + case NPC_MENTALBREAKER: + case NPC_RANGEATTACK: + case NPC_ATTRICHANGE: + case NPC_CHANGEWATER: + case NPC_CHANGEGROUND: + case NPC_CHANGEFIRE: + case NPC_CHANGEWIND: + case NPC_CHANGEPOISON: + case NPC_CHANGEHOLY: + case NPC_CHANGEDARKNESS: + case NPC_CHANGETELEKINESIS: + case NPC_CRITICALSLASH: + case NPC_COMBOATTACK: + case NPC_GUIDEDATTACK: + case NPC_SELFDESTRUCTION: + case NPC_SPLASHATTACK: + case NPC_SUICIDE: + case NPC_POISON: + case NPC_BLINDATTACK: + case NPC_SILENCEATTACK: + case NPC_STUNATTACK: + case NPC_PETRIFYATTACK: + case NPC_CURSEATTACK: + case NPC_SLEEPATTACK: + case NPC_RANDOMATTACK: + case NPC_WATERATTACK: + case NPC_GROUNDATTACK: + case NPC_FIREATTACK: + case NPC_WINDATTACK: + case NPC_POISONATTACK: + case NPC_HOLYATTACK: + case NPC_DARKNESSATTACK: + case NPC_TELEKINESISATTACK: + case NPC_MAGICALATTACK: + case AM_CP_WEAPON: + case AM_CP_SHIELD: + case AM_CP_ARMOR: + case AM_CP_HELM: + case CR_SPEARQUICKEN: + case MO_BODYRELOCATION: + case MO_EXTREMITYFIST: + case MO_CHAINCOMBO: + case MO_COMBOFINISH: + case CH_TIGERFIST: + case SN_WINDWALK: + case BS_ADRENALINE2: + case CR_FULLPROTECTION: + case WS_OVERTHRUSTMAX: + case KN_ONEHAND: + case NJ_ISSEN: + case NPC_FIREBREATH: + case NPC_WIDESILENCE: + case NPC_WIDESTONE: + case NPC_WIDECONFUSE: + case NPC_WIDESLEEP: + case NPC_STONESKIN: + case NPC_ANTIMAGIC: + case NPC_WIDESTUN: + case NPC_WIDEWEB: + case NPC_FIRESTORM: + case NPC_WIDESILENCE2: + case NPC_WIDESTUN2: + case NPC_WIDESTONE2: + case NPC_WIDESLEEP2: + case NPC_WIDECONFUSE2: + case NPC_CANE_OF_EVIL_EYE: + case NPC_KILLING_AURA: + case GC_CLOAKINGEXCEED: + case AB_JUDEX: + case AB_ADORAMUS: + case AB_DUPLELIGHT_MELEE: + case AB_DUPLELIGHT_MAGIC: + case SR_DRAGONCOMBO: + case SR_EARTHSHAKER: + case SR_FALLENEMPIRE: + case SR_RAMPAGEBLASTER: + case SR_LIGHTNINGWALK: + case SR_RAISINGDRAGON: + case SR_POWERVELOCITY: + case LG_OVERBRAND_BRANDISH: + case SJ_FALLINGSTAR: + case SJ_SOLARBURST: + case SP_SPA: + case SP_SWHOO: + case SU_SV_ROOTTWIST_ATK: + case SU_LUNATICCARROTBEAT: + case SU_LUNATICCARROTBEAT2: + case DK_SERVANT_W_DEMOL: + case DK_DRAGONIC_AURA: + case AG_DEADLY_PROJECTION: + case AG_SOUL_VC_STRIKE: + case AG_ASTRAL_STRIKE: + case AG_ROCK_DOWN: + case AG_STORM_CANNON: + case AG_CRIMSON_ARROW: + case AG_FROZEN_SLASH: + case IQ_THIRD_PUNISH: + case IQ_THIRD_FLAME_BOMB: + case IQ_THIRD_CONSECRATION: + case IG_SHIELD_SHOOTING: + case CD_ARBITRIUM: + case CD_ARBITRIUM_ATK: + case CD_FRAMEN: + case SHC_POTENT_VENOM: + case WH_HAWKRUSH: + case WH_HAWKBOOMERANG: + case BO_BIONIC_PHARMACY: + case BO_THE_WHOLE_PROTECTION: + case BO_ADVANCE_PROTECTION: + case BO_RESEARCHREPORT: + case TR_METALIC_FURY: + case TR_SOUNDBLEND: + case EM_DIAMOND_STORM: + case EM_TERRA_DRIVE: + case EM_ELEMENTAL_BUSTER: + case EM_ELEMENTAL_BUSTER_FIRE: + case EM_ELEMENTAL_BUSTER_WATER: + case EM_ELEMENTAL_BUSTER_WIND: + case EM_ELEMENTAL_BUSTER_GROUND: + case EM_ELEMENTAL_BUSTER_POISON: + case EL_FIRE_ARROW: + case EL_FIRE_BOMB: + case EL_FIRE_WAVE: + case EL_ICE_NEEDLE: + case EL_WATER_SCREW: + case EL_TIDAL_WEAPON: + case EL_WIND_SLASH: + case EL_HURRICANE: + case EL_STONE_RAIN: + case ELEMENTAL_LAST: + case EM_EL_FLAMEARMOR: + case EM_EL_FLAMEROCK: + case EM_EL_COLD_FORCE: + case EM_EL_CRYSTAL_ARMOR: + case EM_EL_AGE_OF_ICE: + case EM_EL_GRACE_BREEZE: + case EM_EL_EYES_OF_STORM: + case EM_EL_STORM_WIND: + case EM_EL_EARTH_CARE: + case EM_EL_STRONG_PROTECTION: + case EM_EL_AVALANCHE: + case EM_EL_DEEP_POISONING: + case EM_EL_POISON_SHIELD: + case EM_EL_DEADLY_POISON: effectId = -1; return; - case 56: - case 58: - case 61: - case 62: - case 109: - case 263: - case 370: - case 372: - case 397: - case 398: - case 399: - case 484: - case 1016: - case 2002: - case 2022: - case 5314: - case 5315: - case 5316: - case 5320: - case 5322: - case 5382: + case KN_PIERCE: + case KN_SPEARSTAB: + case KN_AUTOCOUNTER: + case KN_BOWLINGBASH: + case BS_SKINTEMPER: + case MO_TRIPLEATTACK: + case CH_PALMSTRIKE: + case CH_CHAINCRUSH: + case LK_SPIRALPIERCE: + case LK_HEADCRUSH: + case LK_JOINTBEAT: + case HW_GRAVITATION: + case MO_BALKYOUNG: + case RK_SONICWAVE: + case GC_CROSSIMPACT: + case ABC_ABYSS_DAGGER: + case ABC_UNLUCKY_RUSH: + case ABC_CHAIN_REACTION_SHOT: + case ABC_DEFT_STAB: + case ABC_FRENZY_SHOT: + case ABC_CHAIN_REACTION_SHOT_ATK: effectId = -1; motion = 2; return; - case 57: + case KN_BRANDISHSPEAR: effectId = 144; motion = 2; return; - case 59: - case 149: - case 152: - case 1004: + case KN_SPEARBOOMERANG: + case TF_SPRINKLESAND: + case TF_THROWSTONE: + case AS_VENOMKNIFE: effectId = -1; motion = 12; return; - case 115: - case 116: - case 117: - case 118: - case 119: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 688: - case 2238: - case 2239: - case 2249: - case 2250: - case 2251: - case 2252: - case 2253: - case 2254: - case 5335: + case HT_SKIDTRAP: + case HT_LANDMINE: + case HT_ANKLESNARE: + case HT_SHOCKWAVE: + case HT_SANDMAN: + case HT_FLASHER: + case HT_FREEZINGTRAP: + case HT_BLASTMINE: + case HT_CLAYMORETRAP: + case HT_REMOVETRAP: + case HT_TALKIEBOX: + case GM_SANDMAN: + case RA_ELECTRICSHOCKER: + case RA_CLUSTERBOMB: + case RA_MAGENTATRAP: + case RA_COBALTTRAP: + case RA_MAIZETRAP: + case RA_VERDURETRAP: + case RA_FIRINGTRAP: + case RA_ICEBOUNDTRAP: + case WH_FLAMETRAP: motion = 5; return; - case 196: - case 209: - case 249: - case 252: - case 257: - case 268: - case 349: - case 350: - case 356: - case 380: - case 384: - case 387: - case 411: - case 444: - case 8204: - case 8219: - case 8220: + case NPC_SUMMONSLAVE: + case NPC_SUMMONMONSTER: + case CR_AUTOGUARD: + case CR_REFLECTSHIELD: + case CR_DEFENDER: + case MO_STEELBODY: + case NPC_POWERUP: + case NPC_AGIUP: + case LK_PARRYING: + case SN_SIGHT: + case WS_MELTDOWN: + case WS_CARTBOOST: + case TK_RUN: + case SG_FUSION: + case MS_PARRYING: + case ML_DEFENDER: + case ML_AUTOGUARD: motion = 0; effectId = -1; return; - case 229: - case 230: - case 231: - case 232: - case 250: - case 251: - case 480: - case 2480: - case 2493: - case 5340: - case 5341: - case 5342: - case 5343: + case AM_DEMONSTRATION: + case AM_ACIDTERROR: + case AM_POTIONPITCHER: + case AM_CANNIBALIZE: + case CR_SHIELDCHARGE: + case CR_SHIELDBOOMERANG: + case PA_SHIELDCHAIN: + case GN_BLOOD_SUCKER: + case GN_SLINGITEM: + case BO_ACIDIFIED_ZONE_WATER: + case BO_ACIDIFIED_ZONE_GROUND: + case BO_ACIDIFIED_ZONE_WIND: + case BO_ACIDIFIED_ZONE_FIRE: motion = 12; effectId = -1; return; - case 243: - case 244: - case 247: - case 337: - case 344: - case 345: - case 346: - case 365: - case 373: - case 374: - case 375: - case 381: - case 389: - case 402: - case 403: - case 425: - case 427: - case 434: - case 462: - case 463: - case 464: - case 465: - case 467: - case 468: - case 469: - case 470: - case 471: - case 472: - case 485: - case 493: - case 720: - case 731: - case 735: - case 736: - case 737: - case 738: - case 739: - case 741: - case 742: - case 744: - case 745: - case 2001: - case 2008: - case 2009: - case 2012: - case 2013: - case 2014: - case 2019: - case 2020: - case 2021: - case 2202: - case 2203: - case 2204: - case 2211: - case 2212: - case 2214: - case 2217: - case 2230: - case 2231: - case 2237: - case 2243: - case 2244: - case 2246: - case 2286: - case 2287: - case 2289: - case 2290: - case 2291: - case 2292: - case 2293: - case 2294: - case 2295: - case 2296: - case 2297: - case 2299: - case 2300: - case 2301: - case 2302: - case 2303: - case 2304: - case 2309: - case 2310: - case 2315: - case 2316: - case 2318: - case 2319: - case 2321: - case 2322: - case 2325: - case 2350: - case 2351: - case 2352: - case 2381: - case 2382: - case 2383: - case 2413: - case 2414: - case 2417: - case 2418: - case 2419: - case 2420: - case 2422: - case 2426: - case 2429: - case 2443: - case 2444: - case 2446: - case 2447: - case 2448: - case 2449: - case 2450: - case 2451: - case 2452: - case 2453: - case 2454: - case 2455: - case 2456: - case 2457: - case 2458: - case 2459: - case 2460: - case 2477: - case 2479: - case 2483: - case 2492: - case 2518: - case 5004: - case 5078: - case 8009: - case 8012: - case 8401: + case AM_CALLHOMUN: + case AM_REST: + case AM_RESURRECTHOMUN: + case ITM_TOMAHAWK: + case NPC_ARMORBRAKE: + case NPC_HELMBRAKE: + case NPC_SHIELDBRAKE: + case HW_MAGICCRASHER: + case PF_HPCONVERSION: + case PF_SOULCHANGE: + case PF_SOULBURN: + case SN_FALCONASSAULT: + case ST_CHASEWALK: + case PF_MINDBREAKER: + case PF_MEMORIZE: + case TK_SEVENWIND: + case SG_FEEL: + case SG_HATE: + case SL_KAIZEL: + case SL_KAAHI: + case SL_KAUPE: + case SL_KAITE: + case SL_STIN: + case SL_STUN: + case SL_SMA: + case SL_SWOO: + case SL_SKE: + case SL_SKA: + case WS_CARTTERMINATION: + case TK_MISSION: + case NPC_JACKFROST: + case NPC_DRAGONBREATH: + case NPC_MANDRAGORA: + case NPC_PSYCHIC_WAVE: + case NPC_RAYOFGENESIS: + case NPC_VENOMIMPRESS: + case NPC_CLOUD_KILL: + case NPC_PHANTOMTHRUST: + case NPC_POISON_BUSTER: + case NPC_ELECTRICWALK: + case NPC_FIREWALK: + case RK_ENCHANTBLADE: + case RK_DRAGONBREATH: + case RK_DRAGONHOWLING: + case RK_CRUSHSTRIKE: + case RK_REFRESH: + case RK_GIANTGROWTH: + case RK_ABUNDANCE: + case RK_PHANTOMTHRUST: + case GC_VENOMIMPRESS: + case WL_SOULEXPANSION: + case WL_FROSTMISTY: + case WL_JACKFROST: + case WL_CRIMSONROCK: + case WL_HELLINFERNO: + case WL_CHAINLIGHTNING: + case WL_TETRAVORTEX: + case WL_RELEASE: + case WL_READING_SB: + case RA_DETONATOR: + case RA_WUGSTRIKE: + case RA_WUGBITE: + case RA_SENSITIVEKEEN: + case SC_AUTOSHADOWSPELL: + case SC_SHADOWFORM: + case SC_BODYPAINT: + case SC_INVISIBILITY: + case SC_DEADLYINFECT: + case SC_ENERVATION: + case SC_GROOMY: + case SC_IGNORANCE: + case SC_LAZINESS: + case SC_UNLUCKY: + case SC_WEAKNESS: + case SC_MANHOLE: + case SC_DIMENSIONDOOR: + case SC_CHAOSPANIC: + case SC_MAELSTROM: + case SC_BLOODYLUST: + case SC_FEINTBOMB: + case LG_TRAMPLE: + case LG_SHIELDPRESS: + case LG_SHIELDSPELL: + case LG_EXEEDBREAK: + case LG_PRESTIGE: + case LG_BANDING: + case LG_RAYOFGENESIS: + case LG_PIETY: + case LG_INSPIRATION: + case WA_SWING_DANCE: + case WA_SYMPHONY_OF_LOVER: + case WA_MOONLIT_SERENADE: + case MI_RUSH_WINDMILL: + case MI_ECHOSONG: + case MI_HARMONIZE: + case WM_METALICSOUND: + case WM_REVERBERATION: + case WM_DOMINION_IMPULSE: + case WM_SEVERE_RAINSTORM: + case WM_POEMOFNETHERWORLD: + case WM_VOICEOFSIREN: + case WM_LULLABY_DEEPSLEEP: + case WM_GREAT_ECHO: + case WM_SOUND_OF_DESTRUCTION: + case SO_FIREWALK: + case SO_ELECTRICWALK: + case SO_EARTHGRAVE: + case SO_DIAMONDDUST: + case SO_POISON_BUSTER: + case SO_PSYCHIC_WAVE: + case SO_CLOUD_KILL: + case SO_STRIKING: + case SO_WARMER: + case SO_VACUUM_EXTREME: + case SO_VARETYR_SPEAR: + case SO_ARRULLO: + case SO_EL_CONTROL: + case SO_SUMMON_AGNI: + case SO_SUMMON_AQUA: + case SO_SUMMON_VENTUS: + case SO_SUMMON_TERA: + case GN_CARTCANNON: + case GN_THORNS_TRAP: + case GN_CRAZYWEED: + case GN_MANDRAGORA: + case SR_RIDEINLIGHTNING: + case RK_DRAGONBREATH_WATER: + case WL_READING_SB_READING: + case HFLI_MOON: + case HFLI_SBR44: + case EL_CIRCLE_OF_FIRE: motion = 7; effectId = -1; return; - case 256: - case 261: - case 269: - case 369: - case 401: - case 730: - case 1015: - case 2334: + case CR_PROVIDENCE: + case MO_CALLSPIRITS: + case MO_BLADESTOP: + case PA_GOSPEL: + case CH_SOULCOLLECT: + case NPC_SR_CURSEDCIRCLE: + case MO_KITRANSLATION: + case SR_CURSEDCIRCLE: motion = 0; return; - case 306: - case 307: - case 308: - case 309: - case 310: - case 311: - case 312: - case 313: - case 325: - case 327: - case 328: - case 329: - case 330: - case 395: - case 396: - case 488: + case BD_LULLABY: + case BD_RICHMANKIM: + case BD_ETERNALCHAOS: + case BD_DRUMBATTLEFIELD: + case BD_RINGNIBELUNGEN: + case BD_ROKISWEIL: + case BD_INTOABYSS: + case BD_SIEGFRIED: + case DC_UGLYDANCE: + case DC_HUMMING: + case DC_DONTFORGETME: + case DC_FORTUNEKISS: + case DC_SERVICEFORYOU: + case CG_MOONLIT: + case CG_MARIONETTE: + case CG_HERMODE: effectId = -1; motion = 16; return; - case 316: - case 324: - case 394: - case 530: - case 2258: - case 2307: - case 2308: - case 2312: - case 5330: + case BA_MUSICALSTRIKE: + case DC_THROWARROW: + case CG_ARROWVULCAN: + case NJ_KIRIKAGE: + case NC_VULCANARM: + case LG_CANNONSPEAR: + case LG_BANISHINGPOINT: + case LG_PINPOINTATTACK: + case WH_GALESTORM: motion = 9; effectId = -1; return; - case 317: - case 319: - case 320: - case 321: - case 322: + case BA_DISSONANCE: + case BA_WHISTLE: + case BA_ASSASSINCROSS: + case BA_POEMBRAGI: + case BA_APPLEIDUN: effectId = -1; motion = 17; return; - case 347: + case NPC_UNDEADATTACK: effectId = 454; return; - case 357: - case 359: - case 360: - case 361: - case 362: - case 405: - case 482: - case 691: - case 8206: - case 8414: - case 8415: - case 8416: - case 8417: - case 8418: - case 8419: - case 8420: - case 8421: - case 8422: - case 8423: - case 8424: + case LK_CONCENTRATION: + case LK_BERSERK: + case LK_FURY: + case HP_ASSUMPTIO: + case HP_BASILICA: + case PF_SPIDERWEB: + case PF_DOUBLECASTING: + case CASH_ASSUMPTIO: + case MS_BERSERK: + case EL_HEATER: + case EL_TROPIC: + case EL_AQUAPLAY: + case EL_COOLER: + case EL_CHILLY_AIR: + case EL_GUST: + case EL_BLAST: + case EL_WILD_STORM: + case EL_PETROLOGY: + case EL_CURSED_SOIL: + case EL_UPHEAVAL: motion = 7; return; - case 364: + case HW_SOULDRAIN: motion = 1; effectId = -1; return; - case 412: - case 2015: - case 2285: + case TK_READYSTORM: + case RK_STONEHARDSKIN: + case SC_REPRODUCE: motion = 21; effectId = -1; return; - case 413: - case 2337: - case 2576: + case TK_STORMKICK: + case SR_WINDMILL: + case SJ_FULLMOONKICK: motion = 30; effectId = -1; return; - case 414: - case 2478: + case TK_READYDOWN: + case GN_CARTBOOST: motion = 22; effectId = -1; return; - case 415: - case 2313: + case TK_DOWNKICK: + case LG_FORCEOFVANGUARD: motion = 31; effectId = -1; return; - case 416: - case 445: - case 447: - case 448: - case 449: - case 450: - case 451: - case 452: - case 453: - case 454: - case 455: - case 456: - case 457: - case 458: - case 460: - case 461: - case 494: - case 572: - case 573: - case 574: - case 575: - case 2333: - case 2340: - case 2596: - case 2597: - case 2598: - case 2599: + case TK_READYTURN: + case SL_ALCHEMIST: + case SL_MONK: + case SL_STAR: + case SL_SAGE: + case SL_CRUSADER: + case SL_SUPERNOVICE: + case SL_KNIGHT: + case SL_WIZARD: + case SL_PRIEST: + case SL_BARDDANCER: + case SL_ROGUE: + case SL_ASSASIN: + case SL_BLACKSMITH: + case SL_HUNTER: + case SL_SOULLINKER: + case SL_HIGH: + case SL_DEATHKNIGHT: + case SL_COLLECTOR: + case SL_NINJA: + case SL_GUNNER: + case SR_CRESCENTELBOW: + case SR_ASSIMILATEPOWER: + case SP_SOULGOLEM: + case SP_SOULSHADOW: + case SP_SOULFALCON: + case SP_SOULFAIRY: motion = 23; effectId = -1; return; - case 417: - case 2311: - case 2344: - case 2345: - case 2346: - case 2347: - case 2348: - case 2593: + case TK_TURNKICK: + case LG_REFLECTDAMAGE: + case SR_GENTLETOUCH_QUIET: + case SR_GENTLETOUCH_CURE: + case SR_GENTLETOUCH_ENERGYGAIN: + case SR_GENTLETOUCH_CHANGE: + case SR_GENTLETOUCH_REVITALIZE: + case SJ_PROMINENCEKICK: motion = 32; effectId = -1; return; - case 418: - case 2018: - case 2343: + case TK_READYCOUNTER: + case RK_FIGHTINGSPIRIT: + case SR_GATEOFHELL: motion = 24; effectId = -1; return; - case 419: + case TK_COUNTER: motion = 26; effectId = -1; return; - case 420: - case 2323: + case TK_DODGE: + case LG_EARTHDRIVE: motion = 25; effectId = -1; return; - case 421: - case 2336: + case TK_JUMPKICK: + case SR_KNUCKLEARROW: motion = 27; effectId = -1; return; - case 426: - case 2581: - case 5023: + case TK_HIGHJUMP: + case SJ_STAREMPEROR: + case SU_LOPE: motion = 20; effectId = -1; return; - case 428: - case 429: - case 430: + case SG_SUN_WARM: + case SG_MOON_WARM: + case SG_STAR_WARM: motion = 34; effectId = -1; return; - case 431: - case 432: - case 433: + case SG_SUN_COMFORT: + case SG_MOON_COMFORT: + case SG_STAR_COMFORT: motion = 33; effectId = -1; return; - case 446: - case 478: - case 490: - case 2215: - case 2218: - case 2219: - case 2220: - case 2221: - case 2240: - case 2241: - case 2242: - case 2415: - case 2416: - case 2481: - case 2482: - case 2484: - case 2485: - case 2486: - case 2490: - case 2516: - case 5219: - case 5223: - case 5224: - case 5226: - case 5231: - case 5236: - case 5243: - case 5244: + case AM_BERSERKPITCHER: + case CR_SLIMPITCHER: + case CR_ACIDDEMONSTRATION: + case WL_CHAINLIGHTNING_ATK: + case WL_TETRAVORTEX_FIRE: + case WL_TETRAVORTEX_WATER: + case WL_TETRAVORTEX_WIND: + case WL_TETRAVORTEX_GROUND: + case RA_WUGMASTERY: + case RA_WUGRIDER: + case RA_WUGDASH: + case WM_REVERBERATION_MELEE: + case WM_REVERBERATION_MAGIC: + case GN_SPORE_EXPLOSION: + case GN_WALLOFTHORN: + case GN_CRAZYWEED_ATK: + case GN_DEMONIC_FIRE: + case GN_FIRE_EXPANSION: + case GN_HELLS_PLANT: + case WM_SEVERE_RAINSTORM_MELEE: + case AG_VIOLENT_QUAKE_ATK: + case AG_ALL_BLOOM_ATK: + case AG_ALL_BLOOM_ATK2: + case AG_CRYSTAL_IMPACT_ATK: + case AG_ASTRAL_STRIKE_ATK: + case AG_CRIMSON_ARROW_ATK: + case IQ_MASSIVE_F_BLASTER: + case IQ_EXPOSION_BLASTER: motion = -1; effectId = -1; return; - case 500: - case 2256: - case 2260: - case 2271: - case 2272: + case GS_GLITTERING: + case NC_BOOSTKNUCKLE: + case NC_COLDSLOWER: + case NC_ANALYZE: + case NC_MAGNETICFIELD: motion = 39; effectId = -1; return; - case 501: - case 504: - case 505: - case 506: - case 516: - case 517: + case GS_FLING: + case GS_MADNESSCANCEL: + case GS_ADJUSTMENT: + case GS_INCREASING: + case GS_DESPERADO: + case GS_GATLINGFEVER: motion = 38; effectId = -1; return; - case 508: - case 521: + case GS_CRACKER: + case GS_GROUNDDRIFT: motion = 40; effectId = -1; return; - case 523: - case 524: - case 525: - case 526: - case 531: - case 534: - case 539: - case 540: - case 541: - case 542: - case 543: - case 3006: - case 3007: - case 3008: + case NJ_SYURIKEN: + case NJ_KUNAI: + case NJ_HUUMA: + case NJ_ZENYNAGE: + case NJ_UTSUSEMI: + case NJ_KOUENKA: + case NJ_HYOUSYOURAKU: + case NJ_HUUJIN: + case NJ_RAIGEKISAI: + case NJ_KAMAITACHI: + case NJ_NEN: + case KO_BAKURETSU: + case KO_HAPPOKUNAI: + case KO_MUCHANAGE: motion = 36; effectId = -1; return; - case 527: - case 528: - case 529: - case 532: - case 535: - case 536: - case 537: - case 538: + case NJ_TATAMIGAESHI: + case NJ_KASUMIKIRI: + case NJ_SHADOWJUMP: + case NJ_BUNSINJYUTSU: + case NJ_KAENSIN: + case NJ_BAKUENRYU: + case NJ_HYOUSENSOU: + case NJ_SUITON: motion = 35; effectId = -1; return; - case 707: - case 2003: - case 2011: + case NPC_MILLENNIUMSHIELD: + case RK_DEATHBOUND: + case RK_MILLENNIUMSHIELD: motion = 11; return; - case 719: + case NPC_HELLBURNING: effectId = 49; return; - case 1011: + case DC_WINKCHARM: motion = 16; effectId = -1; return; - case 1013: + case BS_GREED: motion = 5; effectId = -1; return; - case 2027: + case GC_POISONINGWEAPON: motion = 7; effectId = 768; return; - case 2028: + case GC_WEAPONBLOCKING: motion = -1; return; - case 2029: + case GC_COUNTERSLASH: motion = 2; effectId = 768; return; - case 2032: + case GC_POISONSMOKE: motion = 7; effectId = 771; return; - case 2034: - case 2262: - case 8404: - case 8406: + case GC_PHANTOMMENACE: + case NC_ACCELERATION: + case EL_WATER_SCREEN: + case EL_WATER_BARRIER: motion = 7; effectId = 441; return; - case 2257: - case 2445: + case NC_PILEBUNKER: + case SO_SPELLFIST: motion = 39; effectId = 441; return; - case 2263: - case 2264: - case 2265: + case NC_HOVERING: + case NC_F_SIDESLIDE: + case NC_B_SIDESLIDE: motion = -1; effectId = 441; return; - case 2267: + case NC_SELFDESTRUCTION: motion = 5; effectId = 441; return; - case 2268: - case 2273: - case 2274: + case NC_SHAPESHIFT: + case NC_NEUTRALBARRIER: + case NC_STEALTHFIELD: motion = 43; effectId = 441; return; - case 2269: + case NC_EMERGENCYCOOL: motion = 25; effectId = 441; return; - case 2270: + case NC_INFRAREDSCAN: motion = 44; effectId = 548; return; - case 2275: + case NC_REPAIR: motion = 43; effectId = 58; return; - case 2278: + case NC_AXEBOOMERANG: motion = 12; effectId = 12; return; - case 2279: + case NC_POWERSWING: motion = 2; effectId = 12; return; - case 2327: - case 2330: + case SR_SKYNETBLOW: + case SR_TIGERCANNON: motion = 18; effectId = -1; return; - case 2494: - case 2495: - case 2496: - case 2497: - case 8407: - case 8409: + case GN_CHANGEMATERIAL: + case GN_MIX_COOKING: + case GN_MAKEBOMB: + case GN_S_PHARMACY: + case EL_WIND_STEP: + case EL_ZEPHYR: motion = 7; effectId = 911; return; - case 2520: + case LG_OVERBRAND_PLUSATK: motion = -1; effectId = 548; return; - case 2580: + case SJ_FLASHKICK: motion = 51; effectId = -1; return; - case 5021: + case SU_SCRATCH: motion = 49; effectId = -1; return; - case 8410: + case EL_SOLID_SKIN: motion = 7; effectId = 56; return; diff --git a/Source/Contents/Skills/SkillId.h b/Source/Contents/Skills/SkillId.h index 9e6e3a845..7368a0dac 100644 --- a/Source/Contents/Skills/SkillId.h +++ b/Source/Contents/Skills/SkillId.h @@ -1815,7 +1815,6 @@ enum SkillId : int { ITEM_PUTTI_TAILS_NOODLES = 11005, ITEM_BANANA_BOMB = 11006, SCRIPT_999 = 11999, - EFST_DRESS_UP = 12000, EFST_999 = 12999, SS_FOUR_CHARM = 5499, NW_WILD_SHOT = 5500, diff --git a/Source/Contents/Skills/SkillUnitId.h b/Source/Contents/Skills/SkillUnitId.h new file mode 100644 index 000000000..345575ea2 --- /dev/null +++ b/Source/Contents/Skills/SkillUnitId.h @@ -0,0 +1,145 @@ +#ifndef RAGNAROK_SOURCE_CONTENTS_SKILLS_SKILLUNITID_H +#define RAGNAROK_SOURCE_CONTENTS_SKILLS_SKILLUNITID_H + +enum e_skill_unit_id : int { + UNT_SAFETYWALL = 126, + UNT_FIREWALL = 127, + UNT_WARP_WAITING = 128, + UNT_WARP_ACTIVE = 129, + UNT_BENEDICTIO = 130, + UNT_SANCTUARY = 131, + UNT_MAGNUS = 132, + UNT_PNEUMA = 133, + UNT_FIREPILLAR_WAITING = 135, + UNT_FIREPILLAR_ACTIVE = 136, + UNT_TRAP = 138, + UNT_USED_TRAPS = 140, + UNT_ICEWALL = 141, + UNT_QUAGMIRE = 142, + UNT_BLASTMINE = 143, + UNT_SKIDTRAP = 144, + UNT_ANKLESNARE = 145, + UNT_VENOMDUST = 146, + UNT_LANDMINE = 147, + UNT_SHOCKWAVE = 148, + UNT_SANDMAN = 149, + UNT_FLASHER = 150, + UNT_FREEZINGTRAP = 151, + UNT_CLAYMORETRAP = 152, + UNT_TALKIEBOX = 153, + UNT_VOLCANO = 154, + UNT_DELUGE = 155, + UNT_VIOLENTGALE = 156, + UNT_LANDPROTECTOR = 157, + UNT_GRAFFITI = 176, + UNT_DEMONSTRATION = 177, + UNT_CALLFAMILY = 178, + UNT_GOSPEL = 179, + UNT_BASILICA = 180, + UNT_FOGWALL = 182, + UNT_SPIDERWEB = 183, + UNT_GRAVITATION = 184, + UNT_HERMODE = 185, + UNT_SUITON = 187, + UNT_TATAMIGAESHI = 188, + UNT_KAEN = 189, + UNT_GROUNDDRIFT_WIND = 190, + UNT_GROUNDDRIFT_DARK = 191, + UNT_GROUNDDRIFT_POISON = 192, + UNT_GROUNDDRIFT_WATER = 193, + UNT_GROUNDDRIFT_FIRE = 194, + UNT_DEATHWAVE = 195, + UNT_WATERATTACK = 196, + UNT_WINDATTACK = 197, + UNT_EVILLAND = 199, + UNT_DARK_RUNNER = 200, + UNT_DARK_TRANSFER = 201, + UNT_EPICLESIS = 202, + UNT_EARTHSTRAIN = 203, + UNT_MANHOLE = 204, + UNT_DIMENSIONDOOR = 205, + UNT_CHAOSPANIC = 206, + UNT_MAELSTROM = 207, + UNT_BLOODYLUST = 208, + UNT_FEINTBOMB = 209, + UNT_MAGENTATRAP = 210, + UNT_COBALTTRAP = 211, + UNT_MAIZETRAP = 212, + UNT_VERDURETRAP = 213, + UNT_FIRINGTRAP = 214, + UNT_ICEBOUNDTRAP = 215, + UNT_ELECTRICSHOCKER = 216, + UNT_CLUSTERBOMB = 217, + UNT_REVERBERATION = 218, + UNT_SEVERE_RAINSTORM = 219, + UNT_FIREWALK = 220, + UNT_ELECTRICWALK = 221, + UNT_NETHERWORLD = 222, + UNT_CLOUD_KILL = 224, + UNT_POISONSMOKE = 225, + UNT_NEUTRALBARRIER = 226, + UNT_STEALTHFIELD = 227, + UNT_WARMER = 228, + UNT_THORNS_TRAP = 229, + UNT_WALLOFTHORN = 230, + UNT_DEMONIC_FIRE = 231, + UNT_FIRE_EXPANSION_SMOKE_POWDER = 232, + UNT_FIRE_EXPANSION_TEAR_GAS = 233, + UNT_HELLS_PLANT = 234, + UNT_VACUUM_EXTREME = 235, + UNT_FIRE_MANTLE = 237, + UNT_WATER_BARRIER = 238, + UNT_ZEPHYR = 239, + UNT_POWER_OF_GAIA = 240, + UNT_FIRE_INSIGNIA = 241, + UNT_WATER_INSIGNIA = 242, + UNT_WIND_INSIGNIA = 243, + UNT_EARTH_INSIGNIA = 244, + UNT_POISON_MIST = 245, + UNT_LAVA_SLIDE = 246, + UNT_VOLCANIC_ASH = 247, + UNT_ZENKAI_WATER = 248, + UNT_ZENKAI_LAND = 249, + UNT_ZENKAI_FIRE = 250, + UNT_ZENKAI_WIND = 251, + UNT_MAKIBISHI = 252, + UNT_VENOMFOG = 253, + UNT_ICEMINE = 254, + UNT_FLAMECROSS = 255, + UNT_HELLBURNING = 256, + UNT_MAGMA_ERUPTION = 257, + UNT_KINGS_GRACE = 258, + UNT_GLITTERING_GREED = 259, + UNT_B_TRAP = 260, + UNT_FIRE_RAIN = 261, + UNT_CATNIPPOWDER = 262, + UNT_NYANGGRASS = 263, + UNT_GROUNDDRIFT_NEUTRAL = 264, + UNT_CREATINGSTAR = 265, + UNT_RAIN_OF_CRYSTAL = 266, + UNT_MYSTERY_ILLUSION = 267, + UNT_SEEDTRAP = 268, + UNT_STRANTUM_TREMOR = 269, + UNT_VIOLENT_QUAKE = 270, + UNT_ALL_BLOOM = 271, + UNT_TORNADO_STORM = 272, + UNT_FLORAL_FLARE_ROAD = 273, + UNT_ASTRAL_STRIKE = 274, + UNT_PNEUMATICUS_PROCELLA = 276, + UNT_ABYSS_SQUARE = 277, + UNT_ACIDIFIED_ZONE_WATER = 278, + UNT_ACIDIFIED_ZONE_GROUND = 279, + UNT_ACIDIFIED_ZONE_WIND = 280, + UNT_ACIDIFIED_ZONE_FIRE = 281, + UNT_LIGHTNING_LAND = 282, + UNT_VENOM_SWAMP = 283, + UNT_CONFLAGRATION = 284, + UNT_CANE_OF_EVIL_EYE = 285, + UNT_SHINKIROU = 294, + UNT_DEEPBLINDTRAP = 20852, + UNT_SOLIDTRAP = 20853, + UNT_SWIFTTRAP = 20854, + UNT_FLAMETRAP = 20855, +}; + +#endif diff --git a/Source/Contents/Sound/SoundMaker.cpp b/Source/Contents/Sound/SoundMaker.cpp index 09f980390..32c4cfac9 100644 --- a/Source/Contents/Sound/SoundMaker.cpp +++ b/Source/Contents/Sound/SoundMaker.cpp @@ -1,4 +1,5 @@ #include "Contents/Sound/SoundMaker.h" +#include "Contents/Jobs/JobId.h" #include "Contents/Actors/ActorStateFlags.h" #include "Contents/Actors/EffectActors.h" @@ -448,9 +449,9 @@ void CNpc::RegisterPos() { mode->WorldCell(this->render.position.x, this->render.position.z, column, row); switch (this->GetEffectiveJob(-1)) { - case 45: - case 111: - case 139: + case JT_WARPNPC: + case JT_HIDDEN_NPC: + case JT_HIDDEN_WARP_NPC: break; default: mode->SendMsg(12, this->render.accountId, column, row, 0); @@ -462,10 +463,10 @@ void CNpc::RegisterPos() { // FUNCTION: fn_22434 void CNpc::UnRegisterPos() { switch (this->GetEffectiveJob(-1)) { - case 45: - case 104: - case 111: - case 139: + case JT_WARPNPC: + case JT_EFFECTLAUNCHER: + case JT_HIDDEN_NPC: + case JT_HIDDEN_WARP_NPC: break; default: g_modeMgr.GetGameMode()->SendMsg(13, this->render.accountId, 0, 0, 0); @@ -1039,7 +1040,7 @@ void CHalluNPC::Render(int argument) { void CNpc::Render(int argument) { const float* matrix = reinterpret_cast(argument); switch (this->GetEffectiveJob(-1)) { - case 45: { + case JT_WARPNPC: { if (!this->render.enabled) { this->UpdateTlvertex(matrix); return; @@ -1065,10 +1066,10 @@ void CNpc::Render(int argument) { } return; } - case 104: - case 139: + case JT_EFFECTLAUNCHER: + case JT_HIDDEN_WARP_NPC: return; - case 111: { + case JT_HIDDEN_NPC: { float x; float y; float reciprocalDepth; @@ -1358,16 +1359,16 @@ bool CNpc::OnProcess() { bool result = true; switch (this->GetEffectiveJob(-1)) { - case 45: - case 139: + case JT_WARPNPC: + case JT_HIDDEN_WARP_NPC: break; - case 104: + case JT_EFFECTLAUNCHER: if (timeGetTime() > this->unknown_0424 + this->unknown_0294 * 1000) { this->unknown_0424 = timeGetTime(); this->LaunchEffect(*reinterpret_cast(&this->unknown_0170[4]), vector3d{0.0f, 0.0f, 0.0f}, 0.0f); } break; - case 111: + case JT_HIDDEN_NPC: this->ProcessDamageMessages(); this->UpdateGaugePositions(); result = this->ProcessState(); @@ -1592,7 +1593,7 @@ void CNpc::SetState(int state, int) { } switch (this->GetEffectiveJob(-1)) { - case 45: { + case JT_WARPNPC: { int height = this->unknown_0298; if (height <= 10) { this->unknown_0298 = 10; @@ -1613,14 +1614,14 @@ void CNpc::SetState(int state, int) { } break; } - case 104: + case JT_EFFECTLAUNCHER: this->render.position.y -= static_cast(this->unknown_0298 * 5); break; - case 111: + case JT_HIDDEN_NPC: this->unknown_0294 *= 2; this->unknown_0298 *= 2; break; - case 139: + case JT_HIDDEN_WARP_NPC: break; default: { CGameActor* actor = static_cast(g_session.FindGameActor(this->render.accountId)); @@ -1628,7 +1629,7 @@ void CNpc::SetState(int state, int) { if (actor && actor->unknown_0314 == 12) { isDisguised = true; } - if (g_session.IsAllyActor(this->render.accountId, this->GetEffectiveJob(-1)) == 1 && this->GetEffectiveJob(-1) != 565 && + if (g_session.IsAllyActor(this->render.accountId, this->GetEffectiveJob(-1)) == 1 && this->GetEffectiveJob(-1) != JT_MOB_TOMB && !isDisguised) { this->SetAction(0, 4, 0); this->RegisterPos(); @@ -1708,7 +1709,7 @@ void CNpc::SetState(int state, int) { this->render.isMotionFreezed = false; } if (this->unknown_0314 == 8) { - if (this->GetEffectiveJob(-1) == 6052) { + if (this->GetEffectiveJob(-1) == JT_MER_ELEANOR) { this->SetAction(16, 4, 1); } else if (std::rand() % 2) { this->SetAction(16, 4, 1); diff --git a/Source/Contents/StatusIconImages.cpp b/Source/Contents/StatusIconImages.cpp index 451dae9c0..6b93627cd 100644 --- a/Source/Contents/StatusIconImages.cpp +++ b/Source/Contents/StatusIconImages.cpp @@ -1,3 +1,4 @@ +#include "Contents/Effects/EffectTypes.h" #include "Client/Session.h" #include "Script/LuaScript.h" @@ -23,691 +24,691 @@ const char* CSession::GetEFSTImgFileName(int efstId, int type) { switch (type) { case 0: switch (efstId) { - case 762: + case EFST_SWORDCLAN: return "effect\\SWORDCLAN.TGA"; - case 763: + case EFST_ARCWANDCLAN: return "effect\\ARCWANDCLAN.TGA"; - case 764: + case EFST_GOLDENMACECLAN: return "effect\\GOLDENMACECLAN.TGA"; - case 765: + case EFST_CROSSBOWCLAN: return "effect\\CROSSBOWCLAN.TGA"; } break; case 1: switch (efstId) { - case 32: + case EFST_BROKENARMOR: return "effect\\갑옷파괴.tga"; - case 34: + case EFST_ILLUSION: return "effect\\환각.tga"; - case 8: + case EFST_QUAGMIRE: return "effect\\콰그마이어.tga"; - case 33: + case EFST_BROKENWEAPON: return "effect\\무기파괴.tga"; - case 35: + case EFST_WEIGHTOVER50: return "effect\\무게50이상.tga"; - case 36: + case EFST_WEIGHTOVER90: return "effect\\무게90이상.tga"; - case 50: + case EFST_NOEQUIPWEAPON: return "effect\\스트립웨폰.tga"; - case 51: + case EFST_NOEQUIPSHIELD: return "effect\\스트립쉴드.tga"; - case 52: + case EFST_NOEQUIPARMOR: return "effect\\스트립아머.tga"; - case 53: + case EFST_NOEQUIPHELM: return "effect\\스트립헬름.tga"; - case 90: + case EFST_PROPERTYFIRE: if (IsTaekwonDisplayJob()) { return "effect\\i_p_FIRE.tga"; } return "effect\\프레임런쳐.tga"; - case 13: + case EFST_DEC_AGI: return "effect\\민첩성감소.tga"; - case 401: + case EFST_ADORAMUS: return "effect\\민첩성감소.tga"; - case 298: + case EFST_TARGET_ASPD: return "effect\\멘탈포션.tga"; - case 245: + case EFST_FOOD_INT: return "effect\\Int_gogi.tga"; - case 275: + case EFST_FOOD_INT_CASH: return "effect\\Int_gogi.tga"; - case 492: + case EFST_COCKTAIL_WARG_BLOOD: return "effect\\Int_gogi.tga"; - case 241: + case EFST_FOOD_STR: return "effect\\Str_gogi.tga"; - case 271: + case EFST_FOOD_STR_CASH: return "effect\\Str_gogi.tga"; - case 491: + case EFST_SAVAGE_STEAK: return "effect\\Str_gogi.tga"; - case 242: + case EFST_FOOD_AGI: return "effect\\Agi_gogi.tga"; - case 272: + case EFST_FOOD_AGI_CASH: return "effect\\Agi_gogi.tga"; - case 495: + case EFST_DROCERA_HERB_STEAMED: return "effect\\Agi_gogi.tga"; - case 243: + case EFST_FOOD_VIT: return "effect\\Vit_gogi.tga"; - case 273: + case EFST_FOOD_VIT_CASH: return "effect\\Vit_gogi.tga"; - case 493: + case EFST_MINOR_BBQ: return "effect\\Vit_gogi.tga"; - case 244: + case EFST_FOOD_DEX: return "effect\\Dex_gogi.tga"; - case 274: + case EFST_FOOD_DEX_CASH: return "effect\\Dex_gogi.tga"; - case 494: + case EFST_SIROMA_ICE_TEA: return "effect\\Dex_gogi.tga"; - case 246: + case EFST_FOOD_LUK: return "effect\\Luk_gogi.tga"; - case 276: + case EFST_FOOD_LUK_CASH: return "effect\\Luk_gogi.tga"; - case 496: + case EFST_PUTTI_TAILS_NOODLES: return "effect\\Luk_gogi.tga"; - case 247: - case 248: - case 249: + case EFST_FOOD_BASICAVOIDANCE: + case EFST_FOOD_BASICHIT: + case EFST_FOOD_CRITICALSUCCESSVALUE: return "effect\\gogi.tga"; - case 313: + case EFST_PARTYFLEE: return "effect\\gogi.tga"; - case 250: + case EFST_CASH_PLUSEXP: return "effect\\exp.tga"; - case 251: + case EFST_CASH_DEATHPENALTY: return "effect\\death.tga"; - case 252: + case EFST_CASH_RECEIVEITEM: return "effect\\item.tga"; - case 621: + case EFST_MONSTER_TRANSFORM: return "effect\\변신.tga"; - case 312: + case EFST_CASH_PLUSONLYJOBEXP: return "effect\\job.tga"; - case 636: + case EFST_REWARD_PLUSONLYJOBEXP: return "effect\\job.tga"; - case 637: + case EFST_HANDICAPSTATE_NORECOVER: return "effect\\NORECOVER.TGA"; - case 662: - case 663: + case EFST_GM_BATTLE: + case EFST_GM_BATTLE2: return "effect\\icon02.tga"; - case 664: + case EFST_2011RWC_SCROLL: return "effect\\rwcscroll.tga"; - case 730: + case EFST_DARKCROW: return "effect\\darkcrow.tga"; - case 721: + case EFST_REBOUND: return "effect\\REBOUND.tga"; - case 476: + case EFST_STOMACHACHE: return "effect\\npc_hellpower.tga"; } break; case 2: switch (efstId) { - case 1: + case EFST_ENDURE: return "effect\\인듀어.tga"; - case 6: + case EFST_ENCHANTPOISON: return "effect\\인찬트포이즌.tga"; - case 5: + case EFST_CLOAKING: return "effect\\클로킹.tga"; - case 2: + case EFST_TWOHANDQUICKEN: return "effect\\투핸드퀴큰.tga"; - case 26: + case EFST_MAXIMIZE: return "effect\\맥시마이즈파워.tga"; - case 7: + case EFST_POISONREACT: return "effect\\포이즌리액트.tga"; - case 58: + case EFST_AUTOGUARD: return "effect\\오토가드.tga"; - case 65: + case EFST_AUTOSPELL: return "effect\\오토스펠.tga"; - case 0: + case EFST_PROVOKE: return "effect\\프로보크.tga"; - case 25: + case EFST_OVERTHRUST: return "effect\\오버트러스트.tga"; - case 24: + case EFST_WEAPONPERFECT: return "effect\\웨폰퍼펙션.tga"; - case 4: + case EFST_HIDING: return "effect\\하이딩.tga"; - case 68: + case EFST_SPEARQUICKEN: return "effect\\스피어퀴큰.tga"; - case 62: + case EFST_DEFENDER: return "effect\\디펜더.tga"; - case 59: + case EFST_REFLECTSHIELD: return "effect\\리플렉트쉴드.tga"; - case 91: + case EFST_PROPERTYWATER: if (IsTaekwonDisplayJob()) { return "effect\\i_p_WATER.tga"; } return "effect\\프로스트웨폰.tga"; - case 92: + case EFST_PROPERTYWIND: if (IsTaekwonDisplayJob()) { return "effect\\i_p_WIND.tga"; } return "effect\\라이트닝로더.tga"; - case 104: + case EFST_PARRYING: return "effect\\ICON10.tga"; - case 23: + case EFST_ADRENALINE: return "effect\\아드레날린러쉬.tga"; - case 147: + case EFST_ADRENALINE2: return "effect\\아드레날린러쉬.tga"; - case 124: + case EFST_BLOODING: return "effect\\출혈상태.tga"; - case 125: + case EFST_JOINTBEAT: return "effect\\관절공격.tga"; - case 115: + case EFST_TRUESIGHT: return "effect\\ICON09.tga"; - case 116: + case EFST_WINDWALK: return "effect\\ICON06.tga"; - case 118: + case EFST_CARTBOOST: return "effect\\ICON07.tga"; - case 117: + case EFST_MELTDOWN: return "effect\\ICON03.tga"; - case 120: + case EFST_SWORDREJECT: return "effect\\ICON04.tga"; - case 121: - case 122: + case EFST_MARIONETTE_MASTER: + case EFST_MARIONETTE: return "effect\\ICON01.tga"; - case 132: + case EFST_AUTOBERSERK: return "effect\\금강불괴.tga"; - case 135: + case EFST_STORMKICK_ON: return "effect\\i_STORMKICK.tga"; - case 137: + case EFST_DOWNKICK_ON: return "effect\\i_DOWNKICK.tga"; - case 139: + case EFST_TURNKICK_ON: return "effect\\i_TURNKICK.tga"; - case 141: + case EFST_COUNTER_ON: return "effect\\i_COUNTER.tga"; - case 143: + case EFST_DODGE_ON: return "effect\\i_DODGE.tga"; - case 145: + case EFST_STRUP: return "effect\\i_RUN.tga"; - case 146: + case EFST_PROPERTYDARK: return "effect\\i_p_DARK.tga"; - case 148: + case EFST_PROPERTYTELEKINESIS: return "effect\\i_p_TELE.tga"; - case 114: + case EFST_EDP: return "effect\\I_치독.tga"; - case 181: + case EFST_PRESERVE: return "effect\\I_프리저브.tga"; - case 182: + case EFST_CHASEWALK2: return "effect\\I_체이스힘.tga"; - case 112: + case EFST_GROUNDMAGIC: return "effect\\I_장판.tga"; - case 186: + case EFST_DOUBLECASTING: return "effect\\I_더블캐스팅.tga"; - case 188: + case EFST_OVERTHRUSTMAX: return "effect\\I_오버맥스.tga"; - case 169: + case EFST_SUN_COMFORT: return "effect\\i_SUNCOMFORT.tga"; - case 170: + case EFST_MOON_COMFORT: return "effect\\i_MOONCOMFORT.tga"; - case 171: + case EFST_STAR_COMFORT: return "effect\\i_STARCOMFORT.tga"; - case 156: + case EFST_KAIZEL: return "effect\\i_KAIZEL.tga"; - case 157: + case EFST_KAAHI: return "effect\\i_KAAHI.tga"; - case 158: + case EFST_KAUPE: return "effect\\i_KAUPE.tga"; - case 197: + case EFST_CR_SHRINK: return "effect\\i_shrink.tga"; - case 198: + case EFST_WZ_SIGHTBLASTER: return "effect\\i_sightblaster.tga"; - case 200: - case 201: + case EFST_RG_CCONFINE_M: + case EFST_RG_CCONFINE_S: return "effect\\i_closeconfine.tga"; - case 207: + case EFST_NJ_BUNSINJYUTSU: return "effect\\i_BUNSIN.tga"; - case 206: + case EFST_NJ_UTSUSEMI: return "effect\\i_MAEMI.tga"; - case 208: + case EFST_NJ_NEN: return "effect\\i_NEN.tga"; - case 209: + case EFST_GS_ADJUSTMENT: return "effect\\i_ADJUSTMENT.tga"; - case 210: + case EFST_GS_ACCURACY: return "effect\\i_ACCURACY.tga"; - case 203: + case EFST_GS_MADNESSCANCEL: return "effect\\i_MADNESS.tga"; - case 204: + case EFST_GS_GATLINGFEVER: return "effect\\i_FEVER.tga"; - case 282: + case EFST_SLOWCAST: return "effect\\slowcast.tga"; - case 286: + case EFST_CRITICALWOUND: return "effect\\criticalwound.tga"; - case 150: + case EFST_PLUSATTACKPOWER: return "effect\\PLUSATTACKPOWER.tga"; - case 290: + case EFST_PROTECT_DEF: return "effect\\물리방어포션.tga"; - case 130: + case EFST_PROTECTEXP: return "effect\\엄마아빠사랑해요.tga"; - case 314: + case EFST_ANGEL_PROTECT: return "effect\\엄마아빠사랑해요.tga"; - case 423: + case EFST_POPECOOKIE: return "effect\\ICON02.tga"; - case 579: + case EFST_VITALIZE_POTION: return "effect\\ICON02.tga"; - case 191: + case EFST_TAROTCARD: return "effect\\I_타로카드.tga"; - case 573: + case EFST_MORA_BUFF: return "effect\\I_타로카드.tga"; - case 300: + case EFST_ATKER_BLOOD: return "effect\\SP소모량감소포션.tga"; - case 301: + case EFST_TARGET_BLOOD: return "effect\\올상태저항포션.tga"; - case 377: + case EFST_NEUTRALBARRIER: return "effect\\뉴트럴배리어.tga"; - case 374: + case EFST_SHAPESHIFT: return "effect\\셰이프쉬프트.tga"; - case 379: + case EFST_STEALTHFIELD: return "effect\\스텔스필드.tga"; - case 450: + case EFST_ANALYZE: return "effect\\애널라이즈.tga"; - case 361: + case EFST_ACCELERATION: return "effect\\엑셀레이션.tga"; - case 336: + case EFST_RENOVATIO: return "effect\\레노바티오.tga"; - case 472: + case EFST_AB_SECRAMENT: return "effect\\세크라멘트.tga"; - case 404: + case EFST_DEADLYINFECT: return "effect\\데들리인펙트.tga"; - case 385: + case EFST_REPRODUCE: return "effect\\리프로듀스.tga"; - case 408: + case EFST_ENERVATION: return "effect\\Masquerade_ENERVATION.tga"; - case 409: + case EFST_GROOMY: return "effect\\Masquerade_GROOMY.tga"; - case 411: + case EFST_IGNORANCE: return "effect\\Masquerade_IGNORANCE.tga"; - case 412: + case EFST_LAZINESS: return "effect\\Masquerade_LAZINESS.tga"; - case 415: + case EFST_UNLUCKY: return "effect\\Masquerade_UNLUCKY.tga"; - case 418: + case EFST_WEAKNESS: return "effect\\Masquerade_WEAKNESS.tga"; - case 399: + case EFST_BODYPAINT: return "effect\\바디페인팅.tga"; - case 394: + case EFST_SHADOWFORM: return "effect\\쉐도우폼.tga"; - case 421: + case EFST_STRIPACCESSARY: return "effect\\스트립액세서리.tga"; - case 393: + case EFST_AUTOSHADOWSPELL: return "effect\\오토쉐도우스펠.tga"; - case 403: + case EFST_INVISIBILITY: return "effect\\인비지빌리티.tga"; - case 373: + case EFST_OVERHEAT: return "effect\\오버히트.tga"; - case 375: + case EFST_INFRAREDSCAN: return "effect\\인프라레드스캔.tga"; - case 437: + case EFST_COLD: return "effect\\다이아몬드더스트.tga"; - case 362: + case EFST_HOVERING: return "effect\\호버링.tga"; - case 304: + case EFST_HELLPOWER: return "effect\\npc_hellpower.tga"; - case 295: + case EFST_CRITICALPERCENT: return "effect\\연마제.tga"; - case 292: + case EFST_HEALPLUS: return "effect\\회복력향상포션.tga"; - case 294: + case EFST_L_LIFEPOTION: return "effect\\중형생명수.tga"; - case 578: + case EFST_G_LIFEPOTION: return "effect\\중형생명수.tga"; - case 296: + case EFST_PLUSAVOIDVALUE: return "effect\\환영의술잔.tga"; - case 291: + case EFST_PROTECT_MDEF: return "effect\\마법방어포션.tga"; - case 302: + case EFST_ARMOR_PROPERTY: return "effect\\캐시갑옷속성부여.tga"; - case 316: + case EFST_ENCHANTBLADE: return "effect\\RK_ENCHANT.tga"; - case 318: + case EFST_REFRESH: return "effect\\RK_NAUTHIZ.tga"; - case 321: + case EFST_VITALITYACTIVATION: return "effect\\RK_ISHA.tga"; - case 322: + case EFST_FIGHTINGSPIRIT: return "effect\\RK_EISIR.tga"; - case 323: + case EFST_ABUNDANCE: return "effect\\RK_URUZ.tga"; - case 319: + case EFST_GIANTGROWTH: return "effect\\RK_TURISUSS.tga"; - case 320: + case EFST_STONEHARDSKIN: return "effect\\RK_HAGALAZ.tga"; - case 388: + case EFST_STR_SCROLL: return "effect\\str_gogi.tga"; - case 389: + case EFST_INT_SCROLL: return "effect\\int_gogi.tga"; - case 161: + case EFST_ONEHANDQUICKEN: return "effect\\i_ONEHAND.tga"; - case 414: + case EFST_ACARAJE: return "effect\\i_ONEHAND.tga"; - case 354: + case EFST_MARSHOFABYSS: return "effect\\MARSHOFABYSS.tga"; - case 351: + case EFST_FROSTMISTY: return "effect\\FROSTMISTY.tga"; - case 355: + case EFST_RECOGNIZEDSPELL: return "effect\\RECOGNIZEDSPELL.tga"; - case 352: + case EFST_FEARBREEZE: return "effect\\RA_FEARBREEZE.tga"; - case 349: + case EFST_LEECHESEND: return "effect\\거머리.tga"; - case 348: + case EFST_OBLIVIONCURSE: return "effect\\망각의재.tga"; - case 346: + case EFST_DEATHHURT: return "effect\\상처오염독.tga"; - case 344: + case EFST_VENOMBLEED: return "effect\\쇠약독.tga"; - case 342: + case EFST_TOXIN: return "effect\\신경마비독.tga"; - case 347: + case EFST_PYREXIA: return "effect\\열병독.tga"; - case 345: + case EFST_MAGICMUSHROOM: return "effect\\웃음버섯.tga"; - case 337: + case EFST_WEAPONBLOCKING: return "effect\\웨폰블로킹.tga"; - case 333: + case EFST_CLOAKINGEXCEED: return "effect\\포이즈닝웨폰.tga"; - case 341: + case EFST_POISONINGWEAPON: return "effect\\감각마비독.tga"; - case 343: + case EFST_PARALYSE: return "effect\\감각마비독.tga"; - case 447: + case EFST_MOONLIT_SERENADE: return "effect\\달빛의세레나데.tga"; - case 451: + case EFST_LERADS_DEW: return "effect\\레라드의이슬.tga"; - case 439: + case EFST_SONG_OF_MANA: return "effect\\마나의노래.tga"; - case 443: + case EFST_ECHOSONG: return "effect\\메아리의노래.tga"; - case 452: + case EFST_MELODYOFSINK: return "effect\\멜로디오브싱크.tga"; - case 453: + case EFST_BEYOND_OF_WARCRY: return "effect\\비욘드오브워크라이.tga"; - case 448: + case EFST_SATURDAY_NIGHT_FEVER: return "effect\\새터데이나이트피버.tga"; - case 438: + case EFST_GLOOMYDAY: return "effect\\수줍은하루의우울.tga"; - case 436: + case EFST_SIRCLEOFNATURE: return "effect\\순환하는자연의소리.tga"; - case 429: + case EFST_SWING: return "effect\\스윙댄스.tga"; - case 435: + case EFST_DEEP_SLEEP: return "effect\\안식의자장가.tga"; - case 454: + case EFST_UNLIMITED_HUMMING_VOICE: return "effect\\언리미티드허밍보이스.tga"; - case 430: + case EFST_SYMPHONY_LOVE: return "effect\\연인들을위한심포니.tga"; - case 441: + case EFST_DANCE_WITH_WUG: return "effect\\워그와함께춤을.tga"; - case 442: + case EFST_RUSH_WINDMILL: return "effect\\풍차를향해돌격.tga"; - case 444: + case EFST_HARMONIZE: return "effect\\하모나이즈.tga"; - case 440: + case EFST_CLOUD_KILL: return "effect\\클라우드킬.tga"; - case 446: + case EFST_WARMER: return "effect\\워머.tga"; - case 445: + case EFST_STRIKING: return "effect\\스트라이킹.tga"; - case 413: + case EFST_LIGHTNINGWALK: return "effect\\섬전보.tga"; - case 410: + case EFST_RAISINGDRAGON: return "effect\\잠룡승천.tga"; - case 425: + case EFST_GENTLETOUCH_ENERGYGAIN: return "effect\\점혈구.tga"; - case 426: + case EFST_GENTLETOUCH_CHANGE: return "effect\\점혈반.tga"; - case 427: + case EFST_GENTLETOUCH_REVITALIZE: return "effect\\점혈활.tga"; - case 390: + case EFST_LG_REFLECTDAMAGE: return "effect\\LG_REFLECTDAMAGE.tga"; - case 396: + case EFST_SHIELDSPELL_DEF: return "effect\\LG_SHIELDSPELL_방.tga"; - case 397: + case EFST_SHIELDSPELL_MDEF: return "effect\\LG_SHIELDSPELL_마.tga"; - case 398: + case EFST_SHIELDSPELL_REF: return "effect\\LG_SHIELDSPELL_연.tga"; - case 402: + case EFST_PRESTIGE: return "effect\\LG_PRESTIGE.tga"; - case 405: + case EFST_BANDING: return "effect\\LG_BANDING.tga"; - case 407: + case EFST_INSPIRATION: return "effect\\LG_INSPIRATION.tga"; - case 463: + case EFST_THORNS_TRAP: return "effect\\가시나무덫.tga"; - case 461: + case EFST_GN_CARTBOOST: return "effect\\카트부스트.tga"; - case 391: + case EFST_FORCEOFVANGUARD: return "effect\\포스오브뱅가드.tga"; - case 297: + case EFST_ATKER_ASPD: return "effect\\대환단.tga"; - case 299: + case EFST_ATKER_MOVESPEED: return "effect\\태청단.tga"; - case 370: + case EFST_MVPCARD_ORCHERO: return "effect\\MVPCARD_ORCHERO.tga"; - case 371: + case EFST_MVPCARD_ORCLORD: return "effect\\MVPCARD_ORCLORD.tga"; - case 368: + case EFST_MVPCARD_TAOGUNKA: return "effect\\MVPCARD_TAOGUNKA.tga"; - case 369: + case EFST_MVPCARD_MISTRESS: return "effect\\MVPCARD_MISTRESS.tga"; - case 583: + case EFST_ODINS_POWER: return "effect\\all_odins_power.tga"; - case 106: + case EFST_TENSIONRELAX: return "effect\\ICON08.tga"; - case 632: - case 633: - case 634: - case 635: + case EFST_SKF_CAST: + case EFST_SKF_ASPD: + case EFST_SKF_ATK: + case EFST_SKF_MATK: return "effect\\ICON08.tga"; - case 293: + case EFST_S_LIFEPOTION: return "effect\\소형생명수.tga"; - case 670: + case EFST_M_LIFEPOTION: return "effect\\소형생명수.tga"; - case 622: + case EFST_SIT: return "effect\\앉기.tga"; - case 638: - case 640: + case EFST_SET_NUM_DEF: + case EFST_SET_PER_DEF: return "effect\\SETDEF.TGA"; - case 695: + case EFST_CLIENT_ONLY_EQUIP_ARROW: return "effect\\ArrowN.tga"; - case 381: + case EFST_MANU_ATK: return "effect\\EFST_ATK.tga"; - case 383: + case EFST_SPL_ATK: return "effect\\EFST_ATK.tga"; - case 697: + case EFST_JP_EVENT01: return "effect\\EFST_ATK.tga"; - case 386: - case 387: + case EFST_MANU_MATK: + case EFST_SPL_MATK: return "effect\\EFST_MATK.tga"; - case 611: + case EFST_MAGIC_CANDY: return "effect\\EFST_MATK.tga"; - case 698: + case EFST_JP_EVENT02: return "effect\\EFST_MATK.tga"; - case 382: + case EFST_MANU_DEF: return "effect\\EFST_DEF.tga"; - case 384: + case EFST_SPL_DEF: return "effect\\EFST_DEF.tga"; - case 699: + case EFST_JP_EVENT03: return "effect\\EFST_DEF.tga"; - case 700: + case EFST_JP_EVENT04: return "effect\\EXP.tga"; - case 334: + case EFST_HALLUCINATIONWALK: return "effect\\할루시네이션워크.tga"; - case 869: + case EFST_NPC_HALLUCINATIONWALK: return "effect\\할루시네이션워크.tga"; - case 110: + case EFST_ASSUMPTIO: return "effect\\ICON05.tga"; - case 473: + case EFST_ASSUMPTIO2: return "effect\\ICON05.tga"; - case 1121: + case EFST_ASSUMPTIO_BUFF: return "effect\\ICON05.tga"; - case 97: + case EFST_PROPERTYUNDEAD: return "effect\\글로리아.tga"; - case 205: + case EFST_EARTHSCROLL: return "effect\\글로리아.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: + case EFST_PET: + case EFST_MENTAL: + case EFST_EXPMEMORY: + case EFST_PERFORMANCE: + case EFST_GAIN: + case EFST_GRIFFON: + case EFST_DRIFT: + case EFST_WALLSHIFT: + case EFST_REINCARNATION: + case EFST_PATTACK: + case EFST_PSPEED: + case EFST_PDEFENSE: + case EFST_PCRITICAL: + case EFST_RANKING: + case EFST_PTRIPLE: + case EFST_DENERGY: + case EFST_WAVE1: + case EFST_WAVE2: + case EFST_WAVE3: + case EFST_WAVE4: + case EFST_DAURA: + case EFST_DFREEZER: + case EFST_DPUNISH: + case EFST_DBARRIER: + case EFST_DWARNING: + case EFST_DACCEL: + case EFST_DBLOCK: + case EFST_DA_ENERGY: + case EFST_DA_FIRSTSLOT: + case EFST_DA_HEADDEF: + case EFST_DA_SPACE: + case EFST_DA_TRANSFORM: + case EFST_DA_ITEMREBUILD: + case EFST_DA_ILLUSION: + case EFST_DA_DARKPOWER: + case EFST_DA_EARPLUG: return "effect\\글로리아.tga"; - case 263: + case EFST_DA_CONTRACT: return "effect\\죽은척하기.tga"; - case 264: - case 265: - case 266: - case 267: - case 268: - case 269: - case 270: + case EFST_DA_BLACK: + case EFST_DA_MAGICCART: + case EFST_CRYSTAL: + case EFST_DA_REBUILD: + case EFST_DA_EDARKNESS: + case EFST_DA_EGUARDIAN: + case EFST_DA_TIMEOUT: return "effect\\글로리아.tga"; } break; case 3: switch (efstId) { - case 3: + case EFST_CONCENTRATION: return "effect\\집중력향상.tga"; - case 29: + case EFST_TRICKDEAD: return "effect\\죽은척하기.tga"; - case 28: + case EFST_FALCON: return "effect\\팔콘.tga"; - case 30: + case EFST_SHOUT: return "effect\\고성지르기.tga"; - case 31: + case EFST_ENERGYCOAT: return "effect\\에너지코트.tga"; - case 37: - case 38: - case 39: - case 40: + case EFST_ATTHASTE_POTION1: + case EFST_ATTHASTE_POTION2: + case EFST_ATTHASTE_POTION3: + case EFST_ATTHASTE_INFINITY: return "effect\\공속물약.tga"; - case 54: + case EFST_PROTECTWEAPON: return "effect\\케미컬프로텍션[웨폰].tga"; - case 55: + case EFST_PROTECTSHIELD: return "effect\\케미컬프로텍션[쉴드].tga"; - case 56: + case EFST_PROTECTARMOR: return "effect\\케미컬프로텍션[아머].tga"; - case 57: + case EFST_PROTECTHELM: return "effect\\케미컬프로텍션[헬름].tga"; - case 93: + case EFST_PROPERTYGROUND: if (IsTaekwonDisplayJob()) { return "effect\\i_p_EARTH.tga"; } return "effect\\사이즈믹웨폰.tga"; - case 151: + case EFST_PLUSMAGICPOWER: return "effect\\PLUSMAGICPOWER.tga"; - case 357: + case EFST_WUGRIDER: return "effect\\wolfmount.tga"; - case 27: + case EFST_RIDING: return "effect\\라이딩.tga"; - case 613: + case EFST_ALL_RIDING: return "effect\\라이딩.tga"; - case 639: - case 641: + case EFST_SET_NUM_MDEF: + case EFST_SET_PER_MDEF: return "effect\\SETMDEF.TGA"; - case 647: + case EFST_ATTHASTE_CASH: return "effect\\ASPDCASH.TGA"; - case 650: + case EFST_2011RWC: return "effect\\ELDICASTES.TGA"; } break; case 4: switch (efstId) { - case 21: + case EFST_GLORIA: return "effect\\글로리아.tga"; - case 19: + case EFST_KYRIE: return "effect\\기리에엘레이손.tga"; - case 22: + case EFST_LEXAETERNA: return "effect\\렉스에테르나.tga"; - case 11: + case EFST_CRUCIS: return "effect\\시그넘크루시스.tga"; - case 20: + case EFST_MAGNIFICAT: return "effect\\마니피캇.tga"; - case 10: + case EFST_BLESSING: return "effect\\블레싱.tga"; - case 18: + case EFST_BENEDICTIO: return "effect\\성체강복.tga"; - case 16: + case EFST_SUFFRAGIUM: return "effect\\수프라기움.tga"; - case 14: + case EFST_SLOWPOISON: return "effect\\슬로우포이즌.tga"; - case 17: + case EFST_ASPERSIO: if (IsTaekwonDisplayJob()) { return "effect\\i_p_SAINT.tga"; } return "effect\\아스페르시오.tga"; - case 64: + case EFST_WEAPONPROPERTY: if (IsTaekwonDisplayJob()) { return "effect\\i_p_SAINT.tga"; } return "effect\\아스페르시오.tga"; - case 9: + case EFST_ANGELUS: return "effect\\안젤루스.tga"; - case 15: + case EFST_IMPOSITIO: return "effect\\임포시티오마누스.tga"; - case 61: + case EFST_PROVIDENCE: return "effect\\신의뜻.tga"; - case 87: + case EFST_STEELBODY: return "effect\\STEELBODY.tga"; - case 12: + case EFST_INC_AGI: return "effect\\민첩성증가.tga"; - case 41: - case 42: + case EFST_MOVHASTE_POTION: + case EFST_MOVHASTE_INFINITY: return "effect\\민첩성증가.tga"; - case 289: + case EFST_MOVHASTE_HORSE: return "effect\\민첩성증가.tga"; - case 577: + case EFST_PAIN_KILLER: return "effect\\세라4.tga"; - case 580: + case EFST_LIGHT_OF_REGENE: return "effect\\에이라1.tga"; - case 581: + case EFST_OVERED_BOOST: return "effect\\에이라2.tga"; - case 584: + case EFST_STYLE_CHANGE: return "effect\\에레노아1_1.tga"; - case 605: + case EFST_MAGMA_FLOW: return "effect\\디이터1.tga"; - case 606: + case EFST_GRANITIC_ARMOR: return "effect\\디이터2.tga"; - case 607: + case EFST_PYROCLASTIC: return "effect\\디이터4.tga"; - case 608: + case EFST_VOLCANIC_ASH: return "effect\\디이터5.tga"; - case 618: + case EFST_OVERLAPEXPUP: return "effect\\exp_말랑도_고양이캔.tga"; - case 658: + case EFST_PHI_DEMON: return "effect\\PHIDEMON.tga"; - case 723: + case EFST_KINGS_GRACE: return "effect\\KINGS_GRACE.tga"; - case 715: + case EFST_FRIGG_SONG: return "effect\\FRIGG_SONG.tga"; - case 716: + case EFST_OFFERTORIUM: return "effect\\OFFERTORIUM.tga"; - case 717: + case EFST_TELEKINESIS_INTENSE: return "effect\\TELEKINESIS_INTENSE.tga"; - case 720: + case EFST_FULL_THROTTLE: return "effect\\FULL_THROTTLE.tga"; } break; diff --git a/Source/Network/Packets/ModeResultEnums.h b/Source/Network/Packets/ModeResultEnums.h new file mode 100644 index 000000000..f1d99d8c6 --- /dev/null +++ b/Source/Network/Packets/ModeResultEnums.h @@ -0,0 +1,24 @@ +#ifndef RAGNAROK_SOURCE_NETWORK_PACKETS_MODERESULTENUMS_H +#define RAGNAROK_SOURCE_NETWORK_PACKETS_MODERESULTENUMS_H + +enum e_enchantgrade_result : int { + ENCHANTGRADE_UPGRADE_SUCCESS = 0, + ENCHANTGRADE_UPGRADE_FAILED = 1, + ENCHANTGRADE_UPGRADE_DOWNGRADE = 2, + ENCHANTGRADE_UPGRADE_BREAK = 3, + ENCHANTGRADE_UPGRADE_PROTECTED = 4, +}; + +#endif + +enum pincode_state : int { + PINCODE_OK = 0, + PINCODE_ASK = 1, + PINCODE_NOTSET = 2, + PINCODE_EXPIRED = 3, + PINCODE_NEW = 4, + PINCODE_ILLEGAL = 5, + PINCODE_KSSN = 6, + PINCODE_PASSED = 7, + PINCODE_WRONG = 8, +}; diff --git a/Source/Network/Packets/NoticeEnums.h b/Source/Network/Packets/NoticeEnums.h new file mode 100644 index 000000000..0fc94b125 --- /dev/null +++ b/Source/Network/Packets/NoticeEnums.h @@ -0,0 +1,344 @@ +#ifndef RAGNAROK_SOURCE_NETWORK_PACKETS_NOTICEENUMS_H +#define RAGNAROK_SOURCE_NETWORK_PACKETS_NOTICEENUMS_H + +enum _sp : int { + SP_SPEED = 0, + SP_BASEEXP = 1, + SP_JOBEXP = 2, + SP_KARMA = 3, + SP_MANNER = 4, + SP_HP = 5, + SP_MAXHP = 6, + SP_SP = 7, + SP_MAXSP = 8, + SP_STATUSPOINT = 9, + SP_BASELEVEL = 11, + SP_SKILLPOINT = 12, + SP_STR = 13, + SP_AGI = 14, + SP_VIT = 15, + SP_INT = 16, + SP_DEX = 17, + SP_LUK = 18, + SP_CLASS = 19, + SP_ZENY = 20, + SP_NEXTBASEEXP = 22, + SP_NEXTJOBEXP = 23, + SP_WEIGHT = 24, + SP_MAXWEIGHT = 25, + SP_USTR = 32, + SP_UAGI = 33, + SP_UVIT = 34, + SP_UINT = 35, + SP_UDEX = 36, + SP_ULUK = 37, + SP_ATK1 = 41, + SP_ATK2 = 42, + SP_MATK1 = 43, + SP_MATK2 = 44, + SP_DEF1 = 45, + SP_DEF2 = 46, + SP_MDEF1 = 47, + SP_MDEF2 = 48, + SP_HIT = 49, + SP_FLEE1 = 50, + SP_FLEE2 = 51, + SP_CRITICAL = 52, + SP_ASPD = 53, + SP_36 = 54, + SP_JOBLEVEL = 55, + SP_UNBREAKABLE = 60, + SP_MERCFLEE = 165, + SP_MERCKILLS = 189, + SP_MERCFAITH = 190, + SP_POW = 219, + SP_STA = 220, + SP_WIS = 221, + SP_SPL = 222, + SP_CON = 223, + SP_CRT = 224, + SP_PATK = 225, + SP_SMATK = 226, + SP_RES = 227, + SP_MRES = 228, + SP_HPLUS = 229, + SP_CRATE = 230, + SP_TRAITPOINT = 231, + SP_AP = 232, + SP_MAXAP = 233, + SP_UPOW = 247, + SP_USTA = 248, + SP_UWIS = 249, + SP_USPL = 250, + SP_UCON = 251, + SP_UCRT = 252, +}; + +#endif + +enum mail_inbox_type : int { + MAIL_INBOX_NORMAL = 0, + MAIL_INBOX_ACCOUNT = 1, + MAIL_INBOX_RETURNED = 2, +}; + +enum GENERATE_ROULETTE_ACK : int { + GENERATE_ROULETTE_SUCCESS = 0, + GENERATE_ROULETTE_FAILED = 1, + GENERATE_ROULETTE_NO_ENOUGH_POINT = 2, + GENERATE_ROULETTE_LOSING = 3, +}; + +enum e_ack_itemrefining : int { + ITEMREFINING_SUCCESS = 0, + ITEMREFINING_FAILURE = 1, + ITEMREFINING_DOWNGRADE = 2, + ITEMREFINING_FAILURE2 = 3, +}; + +enum e_macro_detect_status : int { + MCD_TIMEOUT = 0, + MCD_INCORRECT = 1, + MCD_GOOD = 2, +}; + +enum CLOSE_ROULETTE_ACK : int { + CLOSE_ROULETTE_SUCCESS = 0, + CLOSE_ROULETTE_FAILED = 1, +}; + +enum MERGE_ITEM_ACK : int { + MERGE_ITEM_SUCCESS = 0, + MERGE_ITEM_FAILED_NOT_MERGE = 1, + MERGE_ITEM_FAILED_MAX_COUNT = 2, +}; + +enum OPEN_ROULETTE_ACK : int { + OPEN_ROULETTE_SUCCESS = 0, + OPEN_ROULETTE_FAILED = 1, +}; + +enum e_exitem_add_result : int { + EXITEM_ADD_SUCCEED = 0, + EXITEM_ADD_FAILED_OVERWEIGHT = 1, + EXITEM_ADD_FAILED_OVERCOUNT = 3, + EXITEM_ADD_FAILED_EACHITEM_OVERCOUNT = 4, +}; + +enum e_ack_trade_response : int { + TRADE_ACK_TOOFAR = 0, + TRADE_ACK_CHARNOTEXIST = 1, + TRADE_ACK_FAILED = 2, + TRADE_ACK_ACCEPT = 3, + TRADE_ACK_CANCEL = 4, + TRADE_ACK_BUSY = 5, +}; + +enum look : int { + LOOK_BASE = 0, + LOOK_HAIR = 1, + LOOK_WEAPON = 2, + LOOK_HEAD_BOTTOM = 3, + LOOK_HEAD_TOP = 4, + LOOK_HEAD_MID = 5, + LOOK_HAIR_COLOR = 6, + LOOK_CLOTHES_COLOR = 7, + LOOK_SHIELD = 8, + LOOK_SHOES = 9, + LOOK_RESET_COSTUMES = 11, + LOOK_ROBE = 12, + LOOK_BODY2 = 13, +}; + +enum e_party_invite_reply : int { + PARTY_REPLY_JOIN_OTHER_PARTY = 0, + PARTY_REPLY_REJECTED = 1, + PARTY_REPLY_ACCEPTED = 2, + PARTY_REPLY_FULL = 3, + PARTY_REPLY_DUAL = 4, + PARTY_REPLY_JOINMSG_REFUSE = 5, + PARTY_REPLY_OFFLINE = 7, + PARTY_REPLY_INVALID_MAPPROPERTY = 8, + PARTY_REPLY_INVALID_MAPPROPERTY_ME = 9, + PARTY_REPLY_MEMORIALDUNGEON = 10, +}; + +enum e_dynamicnpc_result : int { + DYNAMICNPC_RESULT_UNKNOWN = 1, + DYNAMICNPC_RESULT_UNKNOWNNPC = 2, + DYNAMICNPC_RESULT_DUPLICATE = 3, + DYNAMICNPC_RESULT_OUTOFTIME = 4, +}; + +enum e_ack_whisper : int { + ACKWHISPER_SUCCESS = 0, + ACKWHISPER_TARGET_OFFLINE = 1, + ACKWHISPER_IGNORED = 2, + ACKWHISPER_ALL_IGNORED = 3, +}; + +enum e_config_type : int { + CONFIG_OPEN_EQUIPMENT_WINDOW = 0, + CONFIG_CALL = 1, + CONFIG_PET_AUTOFEED = 2, + CONFIG_HOMUNCULUS_AUTOFEED = 3, + CONFIG_DISABLE_SHOWCOSTUMES = 5, +}; + +enum e_changestate_pet : int { + CHANGESTATEPET_INIT = 0, + CHANGESTATEPET_INTIMACY = 1, + CHANGESTATEPET_HUNGER = 2, + CHANGESTATEPET_ACCESSORY = 3, + CHANGESTATEPET_PERFORMANCE = 4, + CHANGESTATEPET_UPDATE_EGG = 6, +}; + +enum useskill_fail_cause : int { + USESKILL_FAIL_LEVEL = 0, + USESKILL_FAIL_SP_INSUFFICIENT = 1, + USESKILL_FAIL_HP_INSUFFICIENT = 2, + USESKILL_FAIL_STUFF_INSUFFICIENT = 3, + USESKILL_FAIL_SKILLINTERVAL = 4, + USESKILL_FAIL_MONEY = 5, + USESKILL_FAIL_THIS_WEAPON = 6, + USESKILL_FAIL_REDJAMSTONE = 7, + USESKILL_FAIL_BLUEJAMSTONE = 8, + USESKILL_FAIL_WEIGHTOVER = 9, + USESKILL_FAIL = 10, + USESKILL_FAIL_TOTARGET = 11, + USESKILL_FAIL_ANCILLA_NUMOVER = 12, + USESKILL_FAIL_HOLYWATER = 13, + USESKILL_FAIL_ANCILLA = 14, + USESKILL_FAIL_DUPLICATE_RANGEIN = 15, + USESKILL_FAIL_NEED_OTHER_SKILL = 16, + USESKILL_FAIL_NEED_HELPER = 17, + USESKILL_FAIL_INVALID_DIR = 18, + USESKILL_FAIL_SUMMON = 19, + USESKILL_FAIL_SUMMON_NONE = 20, + USESKILL_FAIL_IMITATION_SKILL_NONE = 21, + USESKILL_FAIL_DUPLICATE = 22, + USESKILL_FAIL_CONDITION = 23, + USESKILL_FAIL_PAINTBRUSH = 24, + USESKILL_FAIL_DRAGON = 25, + USESKILL_FAIL_POS = 26, + USESKILL_FAIL_HELPER_SP_INSUFFICIENT = 27, + USESKILL_FAIL_NEER_WALL = 28, + USESKILL_FAIL_NEED_EXP_1PERCENT = 29, + USESKILL_FAIL_CHORUS_SP_INSUFFICIENT = 30, + USESKILL_FAIL_GC_WEAPONBLOCKING = 31, + USESKILL_FAIL_GC_POISONINGWEAPON = 32, + USESKILL_FAIL_MADOGEAR = 33, + USESKILL_FAIL_NEED_EQUIPMENT_KUNAI = 34, + USESKILL_FAIL_TOTARGET_PLAYER = 35, + USESKILL_FAIL_SIZE = 36, + USESKILL_FAIL_CANONBALL = 37, + USESKILL_FAIL_MADOGEAR_HOVERING = 40, + USESKILL_FAIL_GUILLONTINE_POISON = 43, + USESKILL_FAIL_MADOGEAR_RIDE = 50, + USESKILL_FAIL_SPELLBOOK = 51, + USESKILL_FAIL_SPELLBOOK_DIFFICULT_SLEEP = 52, + USESKILL_FAIL_SPELLBOOK_PRESERVATION_POINT = 53, + USESKILL_FAIL_SPELLBOOK_READING = 54, + USESKILL_FAIL_CART = 57, + USESKILL_FAIL_NO_MORE_SPELL = 60, + USESKILL_FAIL_NEED_ITEM = 71, + USESKILL_FAIL_NEED_EQUIPMENT = 72, + USESKILL_FAIL_COMBOSKILL = 73, + USESKILL_FAIL_SPIRITS = 74, + USESKILL_FAIL_NEED_EQUIPPED_WEAPON_CLASS = 78, + USESKILL_FAIL_EL_SUMMON = 79, + USESKILL_FAIL_RELATIONGRADE = 80, + USESKILL_FAIL_STYLE_CHANGE_FIGHTER = 81, + USESKILL_FAIL_STYLE_CHANGE_GRAPPLER = 82, + USESKILL_FAIL_THERE_ARE_NPC_AROUND = 83, + USESKILL_FAIL_NEED_MORE_BULLET = 84, + USESKILL_FAIL_COINS = 85, + USESKILL_FAIL_SH_TEMPORARY_COMMUNION = 86, + USESKILL_FAIL_MAP = 87, + USESKILL_FAIL_NEED_SUMMON_SP = 88, + USESKILL_FAIL_SAME_VEND = 89, + USESKILL_FAIL_NEED_BULLETS = 90, + USESKILL_FAIL_NEED_ARROWS = 91, + USESKILL_FAIL_NEED_PARTY = 92, + USESKILL_FAIL_NEED_PARTY_LEADER = 93, + USESKILL_FAIL_NEED_PARTNER_SP = 94, + USESKILL_FAIL_NEED_WEAPON = 95, + USESKILL_FAIL_NEED_ENERGY_SPHERE = 96, + USESKILL_FAIL_NEED_WEAPON_BLOCKING = 97, + USESKILL_FAIL_MAX_TRAPS = 98, + USESKILL_FAIL_NEED_MAGIC_SPELLBOOK = 99, + USESKILL_FAIL_AP_INSUFFICIENT = 100, + USESKILL_FAIL_NEED_SERVANT_WEAPON = 101, + USESKILL_FAIL_NEED_TWINKLING_GALAXY = 102, + USESKILL_FAIL_NEED_SOUL_ENGERY = 103, + USESKILL_FAIL_NEED_AMULET = 104, + USESKILL_FAIL_NEED_GATLING_SHOTGUT = 105, + USESKILL_FAIL_NEED_RIFLE_REVOLVER = 106, + USESKILL_FAIL_NEED_GLAUNCHER_RIFLE = 107, + USESKILL_FAIL_NEED_GATLING_REVOLVER = 108, + USESKILL_FAIL_NEED_SHOTGUN_GLAUNCHER = 109, + USESKILL_FAIL_NEED_SHIELD = 110, + USESKILL_FAIL_TARGET_SHADOW_SPACE = 111, + USESKILL_FAIL_MAX = 112, +}; + +enum clr_type : int { + CLR_OUTSIGHT = 0, + CLR_DEAD = 1, + CLR_RESPAWN = 2, + CLR_TELEPORT = 3, +}; + +enum e_refuse_enter_room : int { + ENTERROOM_FULL = 0, + ENTERROOM_WRONG_PASSWORD = 1, + ENTERROOM_KICKED = 2, +}; + +enum e_ack_remember_warppoint_result : int { + WARPPOINT_SUCCESS = 0, + WARPPOINT_LOW_LEVEL = 1, + WARPPOINT_NOT_LEARNED = 2, +}; + +enum e_ack_additem_to_cart : int { + ADDITEM_TO_CART_FAIL_WEIGHT = 0, + ADDITEM_TO_CART_FAIL_COUNT = 1, +}; + +enum map_property : int { + MAPPROPERTY_FREEPVPZONE = 1, + MAPPROPERTY_EVENTPVPZONE = 2, + MAPPROPERTY_AGITZONE = 3, + MAPPROPERTY_PKSERVERZONE = 4, + MAPPROPERTY_PVPSERVERZONE = 5, +}; + +enum e_map_type : int { + MAPTYPE_PENALTY_FREEPKZONE = 5, + MAPTYPE_NOPENALTY_FREEPKZONE = 6, + MAPTYPE_EVENT_GUILDWAR = 7, + MAPTYPE_AGIT = 8, + MAPTYPE_DUNGEON2 = 9, + MAPTYPE_PKSERVER = 11, + MAPTYPE_TURBOTRACK = 14, + MAPTYPE_PORINGBATTLE = 17, + MAPTYPE_AGIT_SIEGEV15 = 18, + MAPTYPE_BATTLEFIELD = 19, + MAPTYPE_SIEGE_LOWLEVEL = 25, +}; + +enum e_ack_openstore2 : int { + OPENSTORE2_SUCCESS = 0, + OPENSTORE2_FAILED = 1, + OPENSTORE2_NOVENDING = 3, +}; + +enum e_searchstore_failure : int { + SSI_FAILED_NOTHING_SEARCH_ITEM = 0, + SSI_FAILED_OVER_MAXCOUNT = 1, + SSI_FAILED_SEARCH_CNT = 2, + SSI_FAILED_LIMIT_SEARCH_TIME = 3, + SSI_FAILED_SSILIST_CLICK_TO_OPEN_STORE = 4, +}; diff --git a/Source/Network/Packets/PacketId.h b/Source/Network/Packets/PacketId.h index 5266f18f1..32108110e 100644 --- a/Source/Network/Packets/PacketId.h +++ b/Source/Network/Packets/PacketId.h @@ -840,6 +840,62 @@ enum PacketId : std::int16_t { ID_ZC_BATTLEFIELD_CHAT = 0x2dc, ID_ZC_ALLY_CHAT = 0xbde, ID_REPLAY_WINDOW_RESPONSE = 0x8ae, + ID_HC_ACCEPT_ENTER = 0x6b, + ID_HC_REFUSE_ENTER = 0x6c, + ID_HC_REFUSE_MAKECHAR = 0x6e, + ID_HC_ACCEPT_DELETECHAR = 0x6f, + ID_HC_REFUSE_DELETECHAR = 0x70, + idle_unit2Type = 0x78, + spawn_unit2Type = 0x7c, + ID_ZC_NOTIFY_MOVE = 0x86, + reqName = 0x95, + openvendingType = 0x136, + ID_PING = 0x187, + sc_notickType = 0x196, + graffiti_entryType = 0x1c9, + ID_HC_BLOCK_CHARACTER = 0x20d, + ID_HC_ACK_IS_VALID_CHARNAME = 0x28e, + status_change2Type = 0x43f, + partyleaderchangedType = 0x7fc, + package_item_announceType = 0x7fd, + ID_HC_DELETE_CHAR3_RESERVED = 0x828, + ID_HC_DELETE_CHAR3 = 0x82a, + ID_HC_DELETE_CHAR3_CANCEL = 0x82c, + ID_HC_ACCEPT_ENTER2 = 0x82d, + ID_AC_REFUSE_LOGIN = 0x83e, + ID_HC_NOTIFY_ACCESSIBLE_MAPNAME = 0x840, + ID_HC_SECOND_PASSWD_LOGIN = 0x8b9, + bgqueue_ackType = 0x8d8, + bgqueue_updateinfoType = 0x8d9, + bgqueue_notice_deleteType = 0x8db, + bgqueue_battlebeginsType = 0x8df, + ID_HC_ACK_CHANGE_CHARNAME = 0x8fd, + questUpdateType2 = 0x8fe, + monsterhpType = 0x977, + ID_HC_CHARLIST_NOTIFY = 0x9a0, + progressbarunit = 0x9d1, + rodexicon = 0x9e7, + rodexwriteresult = 0x9ed, + rodexnextpage = 0x9f0, + rodexgetzeny = 0x9f2, + rodexgetitem = 0x9f4, + rodexdelete = 0x9f6, + rodexremoveitem = 0xa07, + rodexopenwrite = 0xa12, + rouletteinfoackType = 0xa1c, + roulettgenerateackType = 0xa20, + roulettercvitemackType = 0xa22, + achievementListType = 0xa23, + achievementUpdateType = 0xa24, + achievementRewardAckType = 0xa26, + skillscale = 0xa41, + ID_AC_ACCEPT_LOGIN = 0xac4, + ID_HC_NOTIFY_ZONESVR = 0xac5, + ID_TC_RESULT = 0xae3, + ID_HC_ACCEPT_MAKECHAR = 0xb6f, + ID_HC_ACK_CHANGE_CHARACTER_SLOT = 0xb70, + ID_HC_ACK_CHARINFO_PER_PAGE = 0xb72, + ID_ZC_REPUTE_OPEN = 0xb8e, }; #endif diff --git a/Source/Network/Packets/PacketLengths.cpp b/Source/Network/Packets/PacketLengths.cpp index 4e213ffab..e15b4ee16 100644 --- a/Source/Network/Packets/PacketLengths.cpp +++ b/Source/Network/Packets/PacketLengths.cpp @@ -1,4 +1,5 @@ #include "Network/Packets/PacketLengths.h" +#include "Network/Packets/PacketId.h" #include @@ -31,7 +32,7 @@ int PacketLengths::FixedLength(int id) const { case 703: return 12; - case 704: + case ID_CZ_SRPACKETR2_START: return 4; } diff --git a/Source/Network/Packets/SkillUpdatePacket.cpp b/Source/Network/Packets/SkillUpdatePacket.cpp index 2e25a1fcb..caea43e98 100644 --- a/Source/Network/Packets/SkillUpdatePacket.cpp +++ b/Source/Network/Packets/SkillUpdatePacket.cpp @@ -1,4 +1,5 @@ #include "Client/Mode/CGameMode.h" +#include "Network/Packets/PacketId.h" #include "Client/Session.h" #include "UI/Window/UIWindow.h" #include "UI/Window/UIWindowMgr.h" @@ -25,10 +26,10 @@ void CGameMode::ApplySkillUpdatePacket(const void* packet) { CSkillInfo value; switch (opcode) { - case 270: + case ID_ZC_SKILLINFO_UPDATE: value = g_session.m_skillBundle.Lookup(id); break; - case 569: + case ID_ZC_HOSKILLINFO_UPDATE: value = g_session.LookupHomunSkill(id); break; case 670: @@ -45,10 +46,10 @@ void CGameMode::ApplySkillUpdatePacket(const void* packet) { g_session.m_skillBundle.ApplyLevelChange(value); switch (opcode) { - case 270: + case ID_ZC_SKILLINFO_UPDATE: g_session.UpdateSkill(value, 1, 0); break; - case 569: + case ID_ZC_HOSKILLINFO_UPDATE: g_session.UpdateHomunSkill(value, 1); break; case 670: diff --git a/Source/Script/LuaScript.cpp b/Source/Script/LuaScript.cpp index 60982539f..bc676d3c0 100644 --- a/Source/Script/LuaScript.cpp +++ b/Source/Script/LuaScript.cpp @@ -1,3 +1,4 @@ +#include "Contents/Effects/EffectMessageId.h" #include "Script/LuaScript.h" #include "Archive/PakRegistry.h" #include "Client/Session.h" @@ -209,41 +210,41 @@ int SetEmitterInfo(lua_State* state) { const int key = static_cast(luaL_checknumber(state, 2)); switch (key) { - case 0: + case MSG_SET_INIT: effect->ResetParticles(); break; - case 1: - case 2: - case 3: - case 4: - case 5: { + case MSG_SET_SPAWNDIR1: + case MSG_SET_SPAWNDIR2: + case MSG_SET_GRAVITY: + case MSG_SET_POS: + case MSG_SET_EMITRADIUS: { const float x = static_cast(luaL_checknumber(state, 3)); const float y = static_cast(luaL_checknumber(state, 4)); const float z = static_cast(luaL_checknumber(state, 5)); - if (key == 1) { + if (key == MSG_SET_SPAWNDIR1) { effect->velocityMin.x = x; effect->velocityMin.y = y; effect->velocityMin.z = z; - } else if (key == 2) { + } else if (key == MSG_SET_SPAWNDIR2) { effect->velocityMax.x = x; effect->velocityMax.y = y; effect->velocityMax.z = z; - } else if (key == 3) { + } else if (key == MSG_SET_GRAVITY) { effect->acceleration.x = x; effect->acceleration.y = y; effect->acceleration.z = z; - } else if (key == 4) { + } else if (key == MSG_SET_POS) { effect->position[0] = x; effect->position[1] = y; effect->position[2] = z; - } else if (key == 5) { + } else if (key == MSG_SET_EMITRADIUS) { effect->spread.x = x; effect->spread.y = y; effect->spread.z = z; } break; } - case 6: { + case MSG_SET_COLOR: { const int red = (std::min)(static_cast(luaL_checknumber(state, 3)), 255); const int green = (std::min)(static_cast(luaL_checknumber(state, 4)), 255); const int blue = (std::min)(static_cast(luaL_checknumber(state, 5)), 255); @@ -254,47 +255,47 @@ int SetEmitterInfo(lua_State* state) { effect->alpha = alpha; break; } - case 7: - case 8: - case 9: { + case MSG_SET_EMITRATE: + case MSG_SET_SIZE: + case MSG_SET_LIFETIME: { const float minimum = static_cast(luaL_checknumber(state, 3)); const float maximum = static_cast(luaL_checknumber(state, 4)); - if (key == 7) { + if (key == MSG_SET_EMITRATE) { effect->rateMin = minimum; effect->rateMax = maximum; - } else if (key == 8) { + } else if (key == MSG_SET_SIZE) { effect->scaleMin = minimum; effect->scaleMax = maximum; - } else if (key == 9) { + } else if (key == MSG_SET_LIFETIME) { effect->lifeMin = minimum; effect->lifeMax = maximum; } break; } - case 10: { + case MSG_SET_TEXTURE: { std::string texture = luaL_checkstring(state, 3); effect->SetTexture(texture); break; } - case 11: + case MSG_SET_SPEED: effect->SetParticleSpeed(static_cast(luaL_checknumber(state, 3))); break; - case 12: + case MSG_SET_SRCMODE: effect->sourceBlend = luaL_checknumber(state, 3); break; - case 13: + case MSG_SET_DESTMODE: effect->destinationBlend = luaL_checknumber(state, 3); break; - case 14: + case MSG_SET_MAXPARTICLE: effect->SetCount(static_cast(luaL_checknumber(state, 3))); break; - case 43: + case MSG_SET_ZENABLE: effect->depth = static_cast(luaL_checknumber(state, 3)) != 0; break; - case 45: + case MSG_SET_BILLBOARD_OFF: effect->billboard = static_cast(luaL_checknumber(state, 3)) != 0; break; - case 46: { + case MSG_SET_ROTATE_ANGLE: { const float x = static_cast(luaL_checknumber(state, 3)); const float y = static_cast(luaL_checknumber(state, 4)); const float z = static_cast(luaL_checknumber(state, 5)); @@ -303,10 +304,10 @@ int SetEmitterInfo(lua_State* state) { effect->rotation[2] = z; break; } - case 51: + case MSG_SET_ETERNITY: effect->fixedAlpha = static_cast(luaL_checknumber(state, 3)) == 1; break; - case 52: { + case MSG_SET_SCALE: { const float width = static_cast(luaL_checknumber(state, 3)); const float height = static_cast(luaL_checknumber(state, 4)); effect->width = width; @@ -331,48 +332,48 @@ int SetMagicFloorInfo(lua_State* state) { const int key = static_cast(value); switch (key) { - case 0: + case MSG_SET_INIT: effect->ResetParticles(); break; - case 16: + case MSG_SET_AREA: *reinterpret_cast(&effect->unknown_003C[8]) = static_cast(luaL_checknumber(state, 3)); break; - case 42: + case MSG_SET_SIZE2: reinterpret_cast(effect->unknown_0048) = static_cast(luaL_checknumber(state, 3)); break; - case 17: + case MSG_SET_ANGLE: *reinterpret_cast(effect->unknown_004C) = luaL_checknumber(state, 3); break; - case 18: + case MSG_SET_RISEANGLE: reinterpret_cast(effect->unknown_0050) = static_cast(static_cast(luaL_checknumber(state, 3))); break; - case 19: + case MSG_SET_ALPHA: *reinterpret_cast(&effect->unknown_0054[0]) = luaL_checknumber(state, 3); break; - case 20: + case MSG_SET_FDA: *reinterpret_cast(&effect->unknown_0054[4]) = luaL_checknumber(state, 3); break; - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: + case MSG_SET_HEIGHT0: + case MSG_SET_HEIGHT1: + case MSG_SET_HEIGHT2: + case MSG_SET_HEIGHT3: + case MSG_SET_HEIGHT4: + case MSG_SET_HEIGHT5: + case MSG_SET_HEIGHT6: + case MSG_SET_HEIGHT7: + case MSG_SET_HEIGHT8: + case MSG_SET_HEIGHT9: + case MSG_SET_HEIGHT10: + case MSG_SET_HEIGHT11: + case MSG_SET_HEIGHT12: + case MSG_SET_HEIGHT13: + case MSG_SET_HEIGHT14: + case MSG_SET_HEIGHT15: + case MSG_SET_HEIGHT16: + case MSG_SET_HEIGHT17: + case MSG_SET_HEIGHT18: + case MSG_SET_HEIGHT19: + case MSG_SET_HEIGHT20: reinterpret_cast(&effect->unknown_0054[8])[key - 21] = static_cast(static_cast(luaL_checknumber(state, 3))); break; } @@ -392,16 +393,16 @@ int SetEvilsPawInfo(lua_State* state) { } switch (static_cast(key)) { - case 0: + case MSG_SET_INIT: effect->ResetParticles(); break; - case 8: + case MSG_SET_SIZE: effect->size = static_cast(static_cast(luaL_checknumber(state, 3))); break; - case 11: + case MSG_SET_SPEED: effect->frameDelay = static_cast(static_cast(luaL_checknumber(state, 3))); break; - case 44: { + case MSG_SET_OFFSET_POS: { const float x = static_cast(luaL_checknumber(state, 3)); const float y = static_cast(luaL_checknumber(state, 4)); const float z = static_cast(luaL_checknumber(state, 5)); @@ -428,48 +429,48 @@ int SetOtherEffectInfo(lua_State* state) { const int key = static_cast(luaL_checknumber(state, 3)); switch (key) { - case 0: + case MSG_SET_INIT: effect->ResetParticles(); break; - case 16: + case MSG_SET_AREA: *reinterpret_cast(&effect->unknown_003C[8]) = static_cast(luaL_checknumber(state, 4)); break; - case 42: + case MSG_SET_SIZE2: reinterpret_cast(effect->unknown_0048) = static_cast(luaL_checknumber(state, 4)); break; - case 17: + case MSG_SET_ANGLE: *reinterpret_cast(effect->unknown_004C) = luaL_checknumber(state, 4); break; - case 18: + case MSG_SET_RISEANGLE: reinterpret_cast(effect->unknown_0050) = static_cast(static_cast(luaL_checknumber(state, 4))); break; - case 19: + case MSG_SET_ALPHA: *reinterpret_cast(&effect->unknown_0054[0]) = luaL_checknumber(state, 4); break; - case 20: + case MSG_SET_FDA: *reinterpret_cast(&effect->unknown_0054[4]) = luaL_checknumber(state, 4); break; - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: + case MSG_SET_HEIGHT0: + case MSG_SET_HEIGHT1: + case MSG_SET_HEIGHT2: + case MSG_SET_HEIGHT3: + case MSG_SET_HEIGHT4: + case MSG_SET_HEIGHT5: + case MSG_SET_HEIGHT6: + case MSG_SET_HEIGHT7: + case MSG_SET_HEIGHT8: + case MSG_SET_HEIGHT9: + case MSG_SET_HEIGHT10: + case MSG_SET_HEIGHT11: + case MSG_SET_HEIGHT12: + case MSG_SET_HEIGHT13: + case MSG_SET_HEIGHT14: + case MSG_SET_HEIGHT15: + case MSG_SET_HEIGHT16: + case MSG_SET_HEIGHT17: + case MSG_SET_HEIGHT18: + case MSG_SET_HEIGHT19: + case MSG_SET_HEIGHT20: reinterpret_cast(&effect->unknown_0054[8])[key - 21] = static_cast(static_cast(luaL_checknumber(state, 4))); break; } @@ -488,41 +489,41 @@ int SetAnimatedEmitterInfo(lua_State* state) { const int key = static_cast(luaL_checknumber(state, 2)); switch (key) { - case 0: + case MSG_SET_INIT: effect->ResetParticles(); break; - case 1: - case 2: - case 3: - case 4: - case 5: { + case MSG_SET_SPAWNDIR1: + case MSG_SET_SPAWNDIR2: + case MSG_SET_GRAVITY: + case MSG_SET_POS: + case MSG_SET_EMITRADIUS: { const float x = static_cast(luaL_checknumber(state, 3)); const float y = static_cast(luaL_checknumber(state, 4)); const float z = static_cast(luaL_checknumber(state, 5)); - if (key == 1) { + if (key == MSG_SET_SPAWNDIR1) { effect->velocityMin.x = x; effect->velocityMin.y = y; effect->velocityMin.z = z; - } else if (key == 2) { + } else if (key == MSG_SET_SPAWNDIR2) { effect->velocityMax.x = x; effect->velocityMax.y = y; effect->velocityMax.z = z; - } else if (key == 3) { + } else if (key == MSG_SET_GRAVITY) { effect->acceleration.x = x; effect->acceleration.y = y; effect->acceleration.z = z; - } else if (key == 4) { + } else if (key == MSG_SET_POS) { effect->position[0] = x; effect->position[1] = y; effect->position[2] = z; - } else if (key == 5) { + } else if (key == MSG_SET_EMITRADIUS) { effect->spread.x = x; effect->spread.y = y; effect->spread.z = z; } break; } - case 6: { + case MSG_SET_COLOR: { const int red = (std::min)(static_cast(luaL_checknumber(state, 3)), 255); const int green = (std::min)(static_cast(luaL_checknumber(state, 4)), 255); const int blue = (std::min)(static_cast(luaL_checknumber(state, 5)), 255); @@ -533,41 +534,41 @@ int SetAnimatedEmitterInfo(lua_State* state) { effect->alpha = alpha; break; } - case 7: - case 8: - case 9: { + case MSG_SET_EMITRATE: + case MSG_SET_SIZE: + case MSG_SET_LIFETIME: { const float minimum = static_cast(luaL_checknumber(state, 3)); const float maximum = static_cast(luaL_checknumber(state, 4)); - if (key == 7) { + if (key == MSG_SET_EMITRATE) { effect->rateMin = minimum; effect->rateMax = maximum; - } else if (key == 8) { + } else if (key == MSG_SET_SIZE) { effect->scaleMin = minimum; effect->scaleMax = maximum; - } else if (key == 9) { + } else if (key == MSG_SET_LIFETIME) { effect->lifeMin = minimum; effect->lifeMax = maximum; } break; } - case 10: { + case MSG_SET_TEXTURE: { std::string texture = luaL_checkstring(state, 3); effect->SetTexture(texture); break; } - case 11: + case MSG_SET_SPEED: effect->SetParticleSpeed(static_cast(luaL_checknumber(state, 3))); break; - case 12: + case MSG_SET_SRCMODE: effect->sourceBlend = luaL_checknumber(state, 3); break; - case 13: + case MSG_SET_DESTMODE: effect->destinationBlend = luaL_checknumber(state, 3); break; - case 14: + case MSG_SET_MAXPARTICLE: effect->SetCount(static_cast(luaL_checknumber(state, 3))); break; - case 43: + case MSG_SET_ZENABLE: effect->depth = static_cast(luaL_checknumber(state, 3)) != 0; break; } @@ -587,18 +588,18 @@ int SetEZ2STRInfo(lua_State* state) { } switch (static_cast(key)) { - case 47: { + case MSG_SET_STR_FILENAME: { std::string name = luaL_checkstring(state, 3); effect->SetResource(reinterpret_cast(name.c_str())); break; } - case 48: + case MSG_SET_RENDER_FLAG: effect->SetFlags(static_cast(luaL_checknumber(state, 3))); break; - case 49: + case MSG_SET_SCALE_RATIO: effect->SetScale(static_cast(luaL_checknumber(state, 3))); break; - case 50: { + case MSG_SET_ALPHA_RATIO: { const float alpha = static_cast(luaL_checknumber(state, 3)); effect->SetAlpha(alpha >= 1.0f ? 1.0f : (std::max)(0.0f, alpha)); break; @@ -620,10 +621,10 @@ int SetWindEffectInfo(lua_State* state) { } switch (static_cast(key)) { - case 0: + case MSG_SET_INIT: effect->ResetParticles(); break; - case 4: { + case MSG_SET_POS: { const float x = static_cast(luaL_checknumber(state, 3)); const float y = static_cast(luaL_checknumber(state, 4)); const float z = static_cast(luaL_checknumber(state, 5)); @@ -632,10 +633,10 @@ int SetWindEffectInfo(lua_State* state) { effect->position[2] = z; break; } - case 53: + case MSG_SET_NUMBER: effect->ringCount = static_cast(luaL_checknumber(state, 3)); break; - case 6: { + case MSG_SET_COLOR: { const double alpha = luaL_checknumber(state, 3); const double red = luaL_checknumber(state, 4); const double green = luaL_checknumber(state, 5); @@ -646,22 +647,22 @@ int SetWindEffectInfo(lua_State* state) { effect->red = static_cast(static_cast(red)); break; } - case 8: + case MSG_SET_SIZE: effect->particleScale = static_cast(luaL_checknumber(state, 3)); break; - case 18: + case MSG_SET_RISEANGLE: effect->width = static_cast(luaL_checknumber(state, 3)); break; - case 21: + case MSG_SET_HEIGHT0: effect->height = static_cast(luaL_checknumber(state, 3)); break; - case 11: + case MSG_SET_SPEED: effect->angleSpeed = static_cast(luaL_checknumber(state, 3)); break; - case 20: + case MSG_SET_FDA: effect->arcLength = static_cast(luaL_checknumber(state, 3)); break; - case 46: { + case MSG_SET_ROTATE_ANGLE: { const float x = static_cast(luaL_checknumber(state, 3)); const float z = static_cast(luaL_checknumber(state, 4)); effect->rotation.x = x; @@ -669,13 +670,13 @@ int SetWindEffectInfo(lua_State* state) { effect->rotation.z = z; break; } - case 12: + case MSG_SET_SRCMODE: effect->sourceBlend = static_cast(luaL_checknumber(state, 3)); break; - case 13: + case MSG_SET_DESTMODE: effect->destinationBlend = static_cast(luaL_checknumber(state, 3)); break; - case 10: { + case MSG_SET_TEXTURE: { std::string name = luaL_checkstring(state, 3); std::string texture = name; effect->textureName = texture; diff --git a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp index 680d8bf08..5b42b5760 100644 --- a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp +++ b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp @@ -6,6 +6,8 @@ #include "Client/Input/InputCharset.h" #include "Contents/Actors/ActorStateFlags.h" #include "Contents/Skills/SkillInfo.h" +#include "Contents/Jobs/JobId.h" +#include "Contents/Combat/CombatTypes.h" #include "File/File.h" #include "File/ShortcutFilename.h" #include "Render/DeviceContext/DCSurface.h" @@ -3349,10 +3351,10 @@ void UIEquipWnd::OnCreate(int width, int height) { tooltip = LookupMessage(0x1B9); } else if (StateFlag05(flags)) { switch (g_session.GetDisplayJob()) { - case 0xFF2: - case 0xFF3: - case 0x100E: - case 0x10B9: + case JT_ROYAL_CHICKEN: + case JT_ROYAL_CHICKEN_H: + case JT_ROYAL_CHICKEN_B: + case JT_IMPERIAL_GUARD_CHICKEN: tooltip = LookupMessage(0x830); break; default: @@ -12747,22 +12749,22 @@ int UIItemCollectionWnd::SendMsg(UIWindow* sender, int message, std::intptr_t ar this->unknown_023C = nullptr; } switch (item->unknown_0000[2]) { - case 1: - case 4: - case 0x100: + case EQP_HEAD_LOW: + case EQP_GARMENT: + case EQP_HEAD_TOP: case 0x101: - case 0x200: + case EQP_HEAD_MID: case 0x201: case 0x300: case 0x301: - case 0x400: - case 0x800: + case EQP_COSTUME_HEAD_TOP: + case EQP_COSTUME_HEAD_MID: case 0xC00: - case 0x1000: + case EQP_COSTUME_HEAD_LOW: case 0x1400: case 0x1800: case 0x1C00: - case 0x2000: + case EQP_COSTUME_GARMENT: break; default: return 0; diff --git a/Source/UI/GameSettings/TalkType.h b/Source/UI/GameSettings/TalkType.h new file mode 100644 index 000000000..61e3df566 --- /dev/null +++ b/Source/UI/GameSettings/TalkType.h @@ -0,0 +1,307 @@ +#ifndef RAGNAROK_SOURCE_UI_GAMESETTINGS_TALKTYPE_H +#define RAGNAROK_SOURCE_UI_GAMESETTINGS_TALKTYPE_H + +enum TALKTYPE : int { + TT_NORMAL = 0, + TT_BROADCAST = 1, + TT_STAT = 2, + TT_UNKNOWN = 3, + TT_DISCONNECT_CHARACTER = 4, + TT_DISCONNECT_ALL_CHARACTER = 5, + TT_REQ_NUM_USER = 6, + TT_MUSIC_ON_OFF = 7, + TT_EFFECT_ON_OFF = 8, + TT_EX_MAP_POS = 9, + TT_FRAMESKIP_ON_OFF = 10, + TT_EFFECT_SOUND_ON_OFF = 11, + TT_VOLUME = 12, + TT_BVOLUME = 13, + TT_EX_HELP = 14, + TT_EX_WHISPER_BLOCK_LIST = 15, + TT_EX_WHISPER_ALL_BLOCK = 16, + TT_EX_WHISPER_ALL_ACCEPT = 17, + TT_REQ_WHISPER_PC_EX = 18, + TT_REQ_WHISPER_PC_IN = 19, + TT_IS_REDCELL = 20, + TT_UNUSED_EX_STAND = 21, + TT_EX_SIT = 22, + TT_EX_MAKE_CHAT_ROOM = 23, + TT_EX_EXIT_CHAT_ROOM = 24, + TT_REQ_EXCHANGE_ITEM = 25, + TT_REQ_MAKE_GROUP = 26, + TT_EX_LEAVE_GROUP = 27, + TT_REQ_EXPEL_GROUP_MEMBER = 28, + TT_REQ_EMOTION_SURPRISE = 29, + TT_REQ_EMOTION_QUESTION = 30, + TT_REQ_EMOTION_DELIGHT = 31, + TT_REQ_EMOTION_THROB = 32, + TT_REQ_EMOTION_SWEAT = 33, + TT_REQ_EMOTION_AHA = 34, + TT_REQ_EMOTION_FRET = 35, + TT_REQ_EMOTION_ANGER = 36, + TT_REQ_EMOTION_MONEY = 37, + TT_REQ_EMOTION_THINK = 38, + TT_REQ_EMOTION_SCISSOR = 39, + TT_REQ_EMOTION_ROCK = 40, + TT_REQ_EMOTION_WRAP = 41, + TT_OPEN_TIP = 42, + TT_EX_REMEMBER_WARPPOINT = 43, + TT_REQ_PK = 44, + TT_SKILL_SNAP_ON_OFF = 45, + TT_ATTACK_SNAP_ON_OFF = 46, + TT_ITEM_SNAP_ON_OFF = 47, + TT_REQ_ITEM_CREATE = 48, + TT_REQ_MOVETO_MAP = 49, + TT_NORMAL_FROM_CHATROOM = 50, + TT_EX_SAVE_CHAT = 51, + TT_REQ_SAVE_CHAT_FROM_CHATROOM = 52, + TT_MISS_EFFECT_ON_OFF = 53, + TT_FIXED_CAMERA_ON_OFF = 54, + TT_REQ_MAKE_GUILD = 55, + TT_REQ_BREAK_GUILD = 56, + TT_GUILD_CHAT = 57, + TT_TEST_SHOW_IMAGE = 58, + TT_TESTPACKET = 59, + TT_FOG_ON_OFF = 60, + TT_REQ_RESETSTATE = 61, + TT_REQ_RESETSKILL = 62, + TT_CHANGE_MAPTYPE = 63, + TT_SHOW_EMBLEM_ON_OFF = 64, + TT_TOGGLE_OBJLIGHT = 65, + TT_REQ_EMOTION_THANKS = 66, + TT_REQ_EMOTION_KEK = 67, + TT_REQ_EMOTION_SORRY = 68, + TT_REQ_EMOTION_SMILE = 69, + TT_REQ_EMOTION_PROFUSELY_SWEAT = 70, + TT_REQ_EMOTION_SCRATCH = 71, + TT_REQ_EMOTION_BEST = 72, + TT_REQ_EMOTION_STARE_ABOUT = 73, + TT_REQ_EMOTION_HUK = 74, + TT_REQ_EMOTION_O = 75, + TT_REQ_EMOTION_X = 76, + TT_REQ_EMOTION_HELP = 77, + TT_REQ_EMOTION_GO = 78, + TT_REQ_EMOTION_BIGTHROB = 79, + TT_REQ_EMOTION_CRY = 80, + TT_REQ_EMOTION_KIK = 81, + TT_REQ_EMOTION_CHUP = 82, + TT_REQ_EMOTION_CHUPCHUP = 83, + TT_REQ_EMOTION_HNG = 84, + TT_REQ_EMOTION_OK = 85, + TT_SHOW_EMOTIONLIST = 86, + TT_LOCALBROADCAST = 87, + TT_HIDE = 88, + TT_UNUSED_NAME_BALLOON = 89, + TT_NAMELESS_BROADCAST = 90, + TT_NAMELESS_LOCALBROADCAST = 91, + TT_NAME_ABOVE_HEAD_ON_OFF = 92, + TT_SAVEMONEY = 93, + TT_LOADMONEY = 94, + TT_REMOVE = 95, + TT_SHIFT = 96, + TT_RECALL_AID = 97, + TT_RECALL_GID = 98, + TT_FORCING_MOVE_AID = 99, + TT_FORCING_MOVE_GID = 100, + TT_BILLING_INFO = 101, + TT_NAMELESS_BLUEBROADCAST = 102, + TT_NAMELESS_BLUELOCALBROADCAST = 103, + TT_REQ_AUTO_SAVE_CHAT = 104, + TT_NOSHIFT_ON_OFF = 105, + TT_FULL_AURA_ON_OFF = 106, + TT_HIDE_AURA_ON_OFF = 107, + TT_BOLD_NAME_TYPE_ON_OFF = 108, + TT_NOCTRL_ON_OFF = 109, + TT_EX_DORIDORI = 110, + TT_EX_BINGBING = 111, + TT_EX_BANGBANG = 112, + TT_SKILLFAIL_ON_OFF = 113, + TT_NOTALKMSG_ON_OFF = 114, + TT_SET1_ON_OFF = 115, + TT_REQ_REPORT_CHAT = 116, + TT_REQ_REPORT_CHAT_FROM_CHATROOM = 117, + UNUSED_TT_CLIPMOUSE = 118, + TT_LIGHTMAP_ON_OFF = 119, + TT_QUICKSPELL_ON_OFF = 120, + TT_QUICKSPELL2_ON_OFF = 121, + TT_QUICKSPELL3_ON_OFF = 122, + TT_REQ_EMOTION_STARE = 123, + TT_REQ_EMOTION_HUNGRY = 124, + TT_REQ_EMOTION_COOL = 125, + TT_REQ_EMOTION_MERONG = 126, + TT_REQ_EMOTION_SHY = 127, + TT_REQ_EMOTION_GOODBOY = 128, + TT_REQ_EMOTION_SPTIME = 129, + TT_REQ_EMOTION_SEXY = 130, + TT_REQ_EMOTION_COMEON = 131, + TT_REQ_EMOTION_SLEEPY = 132, + TT_REQ_EMOTION_CONGRATULATION = 133, + TT_REQ_EMOTION_HPTIME = 134, + TT_BATTLE_ON_OFF = 135, + TT_NOTRADE_ON_OFF = 136, + TT_SIYEON_STATUS = 137, + TT_SET2_ON_OFF = 138, + TT_SYSTEM_CHECK_ON_OFF = 139, + UNUSED_TT_FRAME_ON_OFF = 140, + TT_WINDOW_SNAP_ON_OFF = 141, + TT_SHOW_PVP_INFO = 142, + TT_CHECK_ID = 143, + TT_RC_ID = 144, + TT_RANDOM_LOADING_SCREEN_ON_OFF = 145, + TT_EX_RANK_BLACKSMITH = 146, + TT_EX_RANK_ALCHEMIST = 147, + TT_NOTALKMSG2_ON_OFF = 148, + TT_LEVEL = 149, + TT_SP = 150, + TT_EX_HI = 151, + TT_EX_RANK_TAEKWON = 152, + TT_AUTO_MSG_ON_OFF = 153, + TT_REQ_EMOTION_SPARK = 154, + TT_REQ_EMOTION_CONFUSE = 155, + TT_REQ_EMOTION_OHNO = 156, + TT_REQ_EMOTION_HUM = 157, + TT_REQ_EMOTION_BLABLA = 158, + TT_REQ_EMOTION_OTL = 159, + TT_REQ_EMOTION_DICE = 160, + TT_REQ_KILLER_RANK = 161, + TT_TRACEAI_ON_OFF = 162, + TT_HOMUN_WAIT = 163, + TT_HOMUN_USERAI_ON_OFF = 164, + TT_LOGINOUT_ON_OFF = 165, + TT_SET3_ON_OFF = 166, + TT_SHOPPING_ON_OFF = 167, + TT_REQ_MUNAK = 168, + TT_REQ_HUNTING = 169, + TT_REQ_DEATHKNIGHT = 170, + TT_REQ_EMOTION_LUV = 171, + TT_REQ_COLLECTOR = 172, + TT_MINIGAME_ON_OFF = 173, + TT_MER_USERAI_ON_OFF = 174, + TT_REQ_EMOTION_MOBILE = 175, + TT_REQ_EMOTION_MAIL = 176, + TT_REQ_EMOTION_ANTENNA0 = 177, + TT_REQ_EMOTION_ANTENNA1 = 178, + TT_REQ_EMOTION_ANTENNA2 = 179, + TT_REQ_EMOTION_ANTENNA3 = 180, + TT_COPY_NAME = 181, + TT_REQ_ACCEPT_INVITE_PARTY = 182, + TT_REQ_REFUSE_INVITE_PARTY = 183, + TT_REQ_INVITE_PARTY = 184, + TT_REQ_OPEN_EQUIPEDITEM_ONOFF = 185, + TT_BATTLECHAT_ON_OFF = 186, + TT_REQ_EMOTION_HUM2 = 187, + TT_REQ_EMOTION_ABS = 188, + TT_REQ_EMOTION_OOPS = 189, + TT_REQ_EMOTION_SPIT = 190, + TT_REQ_EMOTION_ENE = 191, + TT_REQ_EMOTION_PANIC = 192, + TT_REQ_EMOTION_WHISP = 193, + TT_PROCESS_AFFINITY = 194, + TT_TINGONLY_ON_OFF = 195, + TT_SEEK_PARTY = 196, + TT_BATTLEFIELD_ICON_ON_OFF = 197, + TT_BATTLEFIELD_WND_ON_OFF = 198, + TT_OPEN_SIMPLE_CASH = 199, + TT_REQ_RECRUIT = 200, + TT_STATEINFO_ON_OFF = 201, + TT_SHOW_INFO_TESTLAYER = 202, + TT_GPK_DYNCODE_RELOAD = 203, + UNUSED_TT_MAKE_DBGINTERFACE = 204, + TT_SHOW_WEB_ADDRESSBAR = 205, + TT_STOPWATCH = 206, + TT_SHOW_BUILD_INFO = 207, + TT_WEB_BROWSER = 208, + TT_NAVIGATION = 209, + TT_NAVIGATION2 = 210, + TT_REQ_INVITE_GUILD = 211, + TT_TEST_MONSTERHP = 212, + TT_MONSTERHP_ON_OFF = 213, + TT_CLAN_CHAT = 214, + TT_REQ_EFST = 215, + TT_REQ_BARGAINSALE = 216, + TT_NAVIGATION3 = 217, + TT_SHOW_CASHSHOP_BTN_ON_OFF = 218, + TT_SHOW_GOLDPCCAFE_ON_OFF = 219, + TT_SHOW_ROULETTE_BTN_ON_OFF = 220, + TT_QUAKE_ON_OFF = 221, + TT_UNUSED_CONNECT_TWITTER = 222, + TT_SHOW_MINIMAP_BUTTON_ONOFF = 223, + TT_MACRO_REGISTER = 224, + TT_MACRO_PREVIEW = 225, + TT_MACRO_DETECTOR = 226, + TT_VIEW_CAMERAINFO_ON_OFF = 227, + TT_SET_CAMERA = 228, + TT_MIN_EFFECT_ON_OFF = 229, + TT_RESET_COOLTIME = 230, + TT_BLOCK_CALL_ON_OFF = 231, + TT_RODEX_ON_OFF = 232, + TT_ACHIEVEMENT_ON_OFF = 233, + TT_SHOW_EFFECT = 234, + TT_STYLINGSHOP = 235, + TT_ADVENTURER_AGENCY_SETUP = 236, + TT_ADVEN_PARTY_BOARD = 237, + TT_INDOOR_DISPLAY_ON_OFF = 238, + TT_EX_NO_COS_PLAY = 239, + TT_SPRITEMABLE_ON_OFF = 240, + TT_EXPAND_SIGHT_ON_OFF = 241, + TT_HALFALPHAOBJ_ON_OFF = 242, + TT_EMBLEM_FRAME_ON_OFF = 243, + TT_INDOOR_MEMO = 244, + TT_SKIPCOUNT_TEST = 245, + TT_RECORD_TEST = 246, + TT_CLASSNAME_POPUP_ON_OFF = 247, + TT_TOGGLE_PACKET_LOG = 248, + TT_ACCOUNT_LINKED_USER_DATA_TEST_LOG = 249, + TT_SHOW_MERCHANT_SHOP_ON_OFF = 250, + TT_PRISON_USER = 251, + TT_OPEN_ACCOUNT_LIMITED_TOOL = 252, + TT_REQ_RESET_PERIOD_EFFECT = 253, + TT_REMOVE_ON = 254, + TT_REMOVE_OFF = 255, + TT_CHANGE_COSTUME_JOB = 256, + TT_WEAPON_EFFECT_OUT = 257, + TT_WEAPON_EFFECT_IN = 258, + TT_ROS_COUNTDOWN = 259, + TT_MACRO_CHECKER_MAP = 260, + TT_ROS_OPENUI = 261, + TT_ROS_OBSERVER = 262, + TT_ROS_QUIT = 263, + TT_ITEM_COMPARE_ON_OFF = 264, + TT_HIDE_PLAYER_ON_OFF = 265, + TT_HIDE_SUMMON_ON_OFF = 266, + TT_EXTEND_DAMAGE_ON_OFF = 267, + TT_SHOW_MAP_NAME_ON_OFF = 268, + TT_HIDE_FOOTPRINT_ON_OFF = 269, + TT_QUICK_SLOT_ON_OFF = 270, + TT_MOUSE_EXCLUSIVE_ON_OFF = 271, + TT_TOGGLE_AUTO_HUNT = 272, + TT_AUTO_HUNT_MOB_ADD = 273, + TT_AUTO_HUNT_MOB_DEL = 274, + TT_AUTO_HUNT_MOB_SHOW = 275, + TT_TOGGLE_AUTO_HUNT_LOG = 276, + TT_AUTO_HUNT_ITEMPICK_WEIGHT = 277, + TT_UI_SOUND_ON_OFF = 278, + TT_PROBABILITY_TEST = 279, + TT_AUTO_HUNT_WINGOFFLY_ADD = 280, + TT_AUTO_HUNT_WINGOFFLY_DEL = 281, + TT_AUTO_HUNT_WINGOFFLY_CLEAR = 282, + TT_AUTO_HUNT_WINGOFFLY_SHOW = 283, + TT_CHANGE_LANGUAGE = 284, + TT_TRANSLATE_SERVER_ON_OFF = 285, + TT_AUTO_MOVE_START = 286, + TT_AUTO_MOVE_STOP = 287, + TT_AUTO_HUNT_WINGOFBUTTERFLY_ADD = 288, + TT_AUTO_HUNT_WINGOFBUTTERFLY_DEL = 289, + TT_AUTO_HUNT_WINGOFBUTTERFLY_CLEAR = 290, + TT_AUTO_HUNT_WINGOFBUTTERFLY_SHOW = 291, + TT_AUTO_HUNT_COMMAND_ONOFF = 292, + TT_AUTO_HUNT_COMMAND_VALUE = 293, + TT_AUTO_HUNT_COMMAND_ONOFF_SHOW = 294, + TT_AUTO_HUNT_COMMAND_VALUE_SHOW = 295, + TT_PETINFO_ALERT_ONOFF = 296, + TT_SHOW_CARD_ILLUST_ONOFF = 297, + TT_NO_CHECK_VALID_CELL_FOR_MOVE = 298, + TT_3D_SOUND_ON_OFF = 299, +}; + +#endif diff --git a/Source/UI/Items/UIMakeTargetListWnd.cpp b/Source/UI/Items/UIMakeTargetListWnd.cpp index ae1952780..adaab6902 100644 --- a/Source/UI/Items/UIMakeTargetListWnd.cpp +++ b/Source/UI/Items/UIMakeTargetListWnd.cpp @@ -5,6 +5,7 @@ #include "Client/Replay.h" #include "Client/Session.h" #include "Contents/Configuration/ServiceConfiguration.h" +#include "Contents/Jobs/JobId.h" #include "Contents/Items/ItemDescription.h" #include "Contents/Items/ItemInfo.h" #include "Contents/Items/ItemNaming.h" @@ -90,10 +91,10 @@ int UIMakeTargetListWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, if (list->selected >= 0) { switch (g_session.m_job) { - case 4054: - case 4060: - case 4096: - case 4252: { + case JT_RUNE_KNIGHT: + case JT_RUNE_KNIGHT_H: + case JT_RUNE_KNIGHT_B: + case JT_DRAGON_KNIGHT: { ITEM_INFO materials[3]; g_modeMgr.GetGameMode()->SendMsg(130, this->itemIds[this->m_list->selected], reinterpret_cast(materials), 0, 0); g_windowMgr.CloseWindow(79); diff --git a/Source/UI/Items/UIMakeTargetProcessWnd.cpp b/Source/UI/Items/UIMakeTargetProcessWnd.cpp index 17516a3c1..1c38203ac 100644 --- a/Source/UI/Items/UIMakeTargetProcessWnd.cpp +++ b/Source/UI/Items/UIMakeTargetProcessWnd.cpp @@ -5,6 +5,7 @@ #include "Client/Replay.h" #include "Client/Session.h" #include "Contents/Items/ItemDescription.h" +#include "Contents/Items/ItemId.h" #include "Contents/MessageTable.h" #include "Resource/Bitmap/BitmapResource.h" #include "Resource/ResourceMgr.h" @@ -23,13 +24,13 @@ // FUNCTION: fn_13598 void UIMakeTargetProcessWnd::DragAndDrop(int x, int y, std::intptr_t value) { switch (this->makeType) { - case 994: - case 995: - case 996: - case 997: - case 998: - case 999: - case 1000: + case ITEMID_FLAME_HEART: + case ITEMID_MISTIC_FROZEN: + case ITEMID_ROUGH_WIND: + case ITEMID_GREAT_NATURE: + case ITEMID_IRON: + case ITEMID_STEEL: + case ITEMID_STAR_CRUMB: g_modeMgr.GetGameMode()->SendMsg(18, 0, 0, 0, 0); return; } @@ -86,13 +87,13 @@ std::vector UIMakeTargetProcessWnd::GetReplayData() { // FUNCTION: fn_13603 ITEM_INFO UIMakeTargetProcessWnd::GetItemAt(int x, int y) { switch (this->makeType) { - case 994: - case 995: - case 996: - case 997: - case 998: - case 999: - case 1000: + case ITEMID_FLAME_HEART: + case ITEMID_MISTIC_FROZEN: + case ITEMID_ROUGH_WIND: + case ITEMID_GREAT_NATURE: + case ITEMID_IRON: + case ITEMID_STEEL: + case ITEMID_STAR_CRUMB: return ITEM_INFO(0); } @@ -119,13 +120,13 @@ void UIMakeTargetProcessWnd::Paint() { this->DrawButtonBar(2, 0, 1); switch (this->makeType) { - case 994: - case 995: - case 996: - case 997: - case 998: - case 999: - case 1000: + case ITEMID_FLAME_HEART: + case ITEMID_MISTIC_FROZEN: + case ITEMID_ROUGH_WIND: + case ITEMID_GREAT_NATURE: + case ITEMID_IRON: + case ITEMID_STEEL: + case ITEMID_STAR_CRUMB: break; default: { const ITEM_INFO* material = this->materials; diff --git a/Source/UI/Lists/UITagListBox.cpp b/Source/UI/Lists/UITagListBox.cpp index f45f976ce..e36e07408 100644 --- a/Source/UI/Lists/UITagListBox.cpp +++ b/Source/UI/Lists/UITagListBox.cpp @@ -8,6 +8,7 @@ #include "UI/Buttons/UITagButton.h" #include "UI/Lists/UIScrollBar.h" #include "UI/Text/ColoredText.h" +#include "UI/Text/CreateLineInfo.h" #include "UI/Text/PixelTextWrapping.h" #include "UI/Text/TextWrapping.h" #include "UI/Window/UIWindowMgr.h" @@ -475,7 +476,7 @@ std::pair UITagListBox::ParseTag(std::string text, int } switch (g_textTagRegistry[tagIndex].type) { - case 438: { + case LINE_SEGMENT_NAVI: { const std::size_t opening = text.find(infoTagOpening, 0); if (opening == std::string::npos) { return result; @@ -490,7 +491,7 @@ std::pair UITagListBox::ParseTag(std::string text, int result.second += text.substr(opening + marker.size(), closing - marker.size() - opening); break; } - case 464: { + case LINE_SEGMENT_ITEM: { const std::size_t opening = text.find(infoTagOpening, 0); if (opening == std::string::npos) { return result; @@ -505,7 +506,7 @@ std::pair UITagListBox::ParseTag(std::string text, int result.second += text.substr(opening + marker.size(), closing - marker.size() - opening); break; } - case 501: { + case LINE_SEGMENT_ITEM_LINK: { result.first = text.substr(0, 1); const std::size_t start = g_textTagRegistry[tagIndex].opening.size(); result.second = text.substr(start, closing - start); @@ -529,7 +530,7 @@ void UITagListBox::OnTagClick(std::intptr_t type, UIWindow* sender) { } switch (type) { - case 438: { + case LINE_SEGMENT_NAVI: { const int count = button->GetStringCount(); if (count == 0) { return; @@ -568,8 +569,8 @@ void UITagListBox::OnTagClick(std::intptr_t type, UIWindow* sender) { } break; } - case 464: - case 501: + case LINE_SEGMENT_ITEM: + case LINE_SEGMENT_ITEM_LINK: if (UIWindow* window = g_windowMgr.EnsureWindow(12)) { window->SendMsg(nullptr, 24, reinterpret_cast(&button->item), 0, 0, 0); } @@ -689,7 +690,7 @@ void UITagListBox::AddTagButton(STagInfoV2 tag, int lineCount) { std::string data = tag.unknown_0028; if (!data.empty()) { switch (tag.unknown_0004) { - case 438: { + case LINE_SEGMENT_NAVI: { std::string remaining = data; std::size_t separator = remaining.find(","); while (separator != std::string::npos) { @@ -701,7 +702,7 @@ void UITagListBox::AddTagButton(STagInfoV2 tag, int lineCount) { button->AddString(remaining); break; } - case 464: { + case LINE_SEGMENT_ITEM: { std::string remaining = data; std::size_t separator = remaining.find(","); while (separator != std::string::npos) { @@ -721,7 +722,7 @@ void UITagListBox::AddTagButton(STagInfoV2 tag, int lineCount) { button->item.itemId = button->GetString(0); break; } - case 501: { + case LINE_SEGMENT_ITEM_LINK: { std::vector fields; this->DecodeItemFields(data, fields); this->ItemFromFields(fields, button->item); diff --git a/Source/UI/Rodex/UIRodexInboxWnd.cpp b/Source/UI/Rodex/UIRodexInboxWnd.cpp index 1f7f4952c..ef1b6ab7e 100644 --- a/Source/UI/Rodex/UIRodexInboxWnd.cpp +++ b/Source/UI/Rodex/UIRodexInboxWnd.cpp @@ -6,6 +6,7 @@ #include "Network/Connection/Connection.h" #include "Network/Packets/PacketId.h" #include "Network/Packets/PacketLengths.h" +#include "Network/Packets/NoticeEnums.h" #include "UI/Window/UIWindowMgr.h" #include "Resource/Bitmap/BitmapResource.h" #include "Resource/ResourceMgr.h" @@ -205,13 +206,13 @@ void UIRodexInboxWnd::OnCreate(int width, int height) { this->unknown_0130->SendMsg(this, 13, 0, 0, 0, 0); switch (g_rodexMailStore->unknown_0010) { - case 0: + case MAIL_INBOX_NORMAL: this->unknown_0130->SendMsg(this, 13, 1, 0, 0, 0); break; - case 1: + case MAIL_INBOX_ACCOUNT: this->unknown_0134->SendMsg(this, 13, 1, 0, 0, 0); break; - case 2: + case MAIL_INBOX_RETURNED: this->unknown_0138->SendMsg(this, 13, 1, 0, 0, 0); break; } @@ -436,7 +437,7 @@ void UIRodexInboxWnd::Paint() { this->unknown_0144[row]->Enable(0); this->unknown_015C[row]->Enable(0); switch (g_rodexMailStore->unknown_0010) { - case 1: + case MAIL_INBOX_ACCOUNT: if (index < this->mails1.size()) { std::map::iterator it = g_rodexMailStore->m_mails1.find(this->mails1[index].second); if (it != g_rodexMailStore->m_mails1.end()) { @@ -454,7 +455,7 @@ void UIRodexInboxWnd::Paint() { } } break; - case 2: + case MAIL_INBOX_RETURNED: if (index < this->mails2.size()) { std::map::iterator it = g_rodexMailStore->m_mails2.find(this->mails2[index].second); if (it != g_rodexMailStore->m_mails2.end()) { @@ -1066,7 +1067,7 @@ int UIRodexInboxWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argume } case 0x136: - if (g_rodexMailStore->unknown_0010 == 0) { + if (g_rodexMailStore->unknown_0010 == MAIL_INBOX_NORMAL) { std::map::iterator mail = g_rodexMailStore->m_mails0.find(argument2); if (mail != g_rodexMailStore->m_mails0.end()) { PACKET_CZ_RODEX_RETURN packet; @@ -1083,13 +1084,13 @@ int UIRodexInboxWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argume type = LookupMessage(0xDDD); } else { switch (g_rodexMailStore->unknown_0010) { - case 0: + case MAIL_INBOX_NORMAL: type = LookupMessage(0xDDB); break; - case 1: + case MAIL_INBOX_ACCOUNT: type = LookupMessage(0xDDA); break; - case 2: + case MAIL_INBOX_RETURNED: type = LookupMessage(0xDDC); break; } @@ -1108,13 +1109,13 @@ int UIRodexInboxWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argume type = LookupMessage(0xDDD); } else { switch (g_rodexMailStore->unknown_0010) { - case 0: + case MAIL_INBOX_NORMAL: type = LookupMessage(0xDDB); break; - case 1: + case MAIL_INBOX_ACCOUNT: type = LookupMessage(0xDDA); break; - case 2: + case MAIL_INBOX_RETURNED: type = LookupMessage(0xDDC); break; } @@ -1202,7 +1203,7 @@ int UIRodexInboxWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argume case 0x62: if (argument1 == 0x142) { - if (g_rodexMailStore->unknown_0010 == 0) { + if (g_rodexMailStore->unknown_0010 == MAIL_INBOX_NORMAL) { std::map::iterator mail = g_rodexMailStore->m_mails0.find(argument2); if (mail != g_rodexMailStore->m_mails0.end() && (mail->second.unknown_0001 & 8) == 0 && mail->second.unknown_0004.size() != 0) { const std::pair title = RemoveLineBreakTag(mail->second.unknown_0024); diff --git a/Source/UI/Text/UITagTextViewer.cpp b/Source/UI/Text/UITagTextViewer.cpp index 2169bf4b1..05be39a6d 100644 --- a/Source/UI/Text/UITagTextViewer.cpp +++ b/Source/UI/Text/UITagTextViewer.cpp @@ -176,19 +176,19 @@ int UITagTextViewer::SendMsg( break; case 0x62: switch (argument1) { - case 0x1B5: + case LINE_SEGMENT_URL: OpenTextButtonLink(static_cast(sender)); break; - case 0x1D0: + case LINE_SEGMENT_ITEM: ShowTextButtonItem(static_cast(sender)); break; - case 0x1B6: + case LINE_SEGMENT_NAVI: OpenTextButtonNavigation(static_cast(sender)); break; - case 0x21B: + case LINE_SEGMENT_QUEST: RequestTextButtonService(static_cast(sender)); break; - case 0x205: + case LINE_SEGMENT_TIPBOX: ShowTextButtonTip(static_cast(sender)); break; } diff --git a/Source/UI/Text/UITextViewerMessages.cpp b/Source/UI/Text/UITextViewerMessages.cpp index a06eeee0c..61311d56d 100644 --- a/Source/UI/Text/UITextViewerMessages.cpp +++ b/Source/UI/Text/UITextViewerMessages.cpp @@ -17,6 +17,7 @@ #include "UI/Text/TextMarkup.h" #include "UI/Text/TextWrapping.h" #include "Render/Text/TextContext.h" +#include "UI/Text/CreateLineInfo.h" #include #include @@ -26,7 +27,7 @@ // INLINED __forceinline void UITextViewer::Activate(UITextButton* button, int id) { switch (id) { - case 437: + case LINE_SEGMENT_URL: if (button) { const std::string& url = button->GetLine(0); @@ -36,7 +37,7 @@ __forceinline void UITextViewer::Activate(UITextButton* button, int id) { } break; - case 438: { + case LINE_SEGMENT_NAVI: { if (!button) { break; } @@ -92,7 +93,7 @@ __forceinline void UITextViewer::Activate(UITextButton* button, int id) { break; } - case 464: { + case LINE_SEGMENT_ITEM: { if (!button || button->GetLinesCount() == 0) { break; } @@ -115,7 +116,7 @@ __forceinline void UITextViewer::Activate(UITextButton* button, int id) { break; } - case 517: + case LINE_SEGMENT_TIPBOX: if (button && button->GetLinesCount() != 0) { const std::string& tip = button->GetLine(0); @@ -125,7 +126,7 @@ __forceinline void UITextViewer::Activate(UITextButton* button, int id) { } break; - case 539: + case LINE_SEGMENT_QUEST: if (button) { const int value = std::atoi(button->GetLine(0).c_str()); static_cast(g_modeMgr.GetGameMode())->ReceiveServiceRequest(6, value); @@ -323,12 +324,12 @@ int UITextViewer::SendMsg(UIWindow* sender, int message, std::intptr_t argument1 auto* button = static_cast(sender); const int id = static_cast(argument1); switch (id) { - case 437: + case LINE_SEGMENT_URL: if (button && !button->GetLine(0).empty()) { ShellExecuteA(hWnd, "open", button->GetLine(0).c_str(), nullptr, nullptr, SW_SHOWNORMAL); } break; - case 438: + case LINE_SEGMENT_NAVI: if (button && button->GetLinesCount() != 0) { const int count = button->GetLinesCount(); const std::string& map = button->GetLine(0); @@ -355,7 +356,7 @@ int UITextViewer::SendMsg(UIWindow* sender, int message, std::intptr_t argument1 } } break; - case 464: + case LINE_SEGMENT_ITEM: if (button && button->GetLinesCount() != 0) { int idValue = 0; if (!button->GetLine(1).empty()) { @@ -371,7 +372,7 @@ int UITextViewer::SendMsg(UIWindow* sender, int message, std::intptr_t argument1 } } break; - case 517: + case LINE_SEGMENT_TIPBOX: if (button && button->GetLinesCount() != 0) { const std::string& tip = button->GetLine(0); if (UIWindow* window = g_windowMgr.EnsureWindow(315)) { @@ -379,7 +380,7 @@ int UITextViewer::SendMsg(UIWindow* sender, int message, std::intptr_t argument1 } } break; - case 539: + case LINE_SEGMENT_QUEST: if (button) { static_cast(g_modeMgr.GetGameMode())->ReceiveServiceRequest(6, std::atoi(button->GetLine(0).c_str())); } diff --git a/Source/UI/UIGradeEnchantWnd.cpp b/Source/UI/UIGradeEnchantWnd.cpp index e17c15938..aff38a54a 100644 --- a/Source/UI/UIGradeEnchantWnd.cpp +++ b/Source/UI/UIGradeEnchantWnd.cpp @@ -14,6 +14,7 @@ #include "Contents/MessageTable.h" #include "Network/Connection/Connection.h" #include "Network/Packets/PacketLengths.h" +#include "Network/Packets/ModeResultEnums.h" #include "Resource/ResourceMgr.h" #include "Resource/TextureNames.h" #include "UI/Buttons/UIBasicButton.h" @@ -425,19 +426,19 @@ void UIGradeEnchantWnd::OnProcess() { if (this->state == 2 && now >= this->unknown_00E0 + 3000) { switch (this->result) { - case 0: + case ENCHANTGRADE_UPGRADE_SUCCESS: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(3702)), 0xFFFF00, 0, 0, 0); break; - case 1: + case ENCHANTGRADE_UPGRADE_FAILED: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(3703)), 0xFFFF00, 0, 0, 0); break; - case 2: + case ENCHANTGRADE_UPGRADE_DOWNGRADE: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(3704)), 0xFFFF00, 0, 0, 0); break; - case 3: + case ENCHANTGRADE_UPGRADE_BREAK: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(3705)), 0xFFFF00, 0, 0, 0); break; - case 4: + case ENCHANTGRADE_UPGRADE_PROTECTED: g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(3706)), 0xFFFF00, 0, 0, 0); break; } diff --git a/Source/UI/UIPreviewEquipWnd.cpp b/Source/UI/UIPreviewEquipWnd.cpp index 334332d12..9d92cf7f9 100644 --- a/Source/UI/UIPreviewEquipWnd.cpp +++ b/Source/UI/UIPreviewEquipWnd.cpp @@ -6,6 +6,7 @@ #include "Contents/Actors/CharacterRender.h" #include "Contents/Actors/Pc.h" #include "Contents/Items/ItemInfo.h" +#include "Contents/Combat/CombatTypes.h" #include "Contents/MessageTable.h" #include "Contents/UserData/NormalItemSlots.h" #include "Render/Renderer.h" @@ -199,8 +200,8 @@ int UIPreviewEquipWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, s if (a != 0) { const ITEM_INFO* item = reinterpret_cast(a); switch (item->unknown_0000[2]) { - case 0x100: - case 0x400: + case EQP_HEAD_TOP: + case EQP_COSTUME_HEAD_TOP: this->m_render->unknown_002C = item->unknown_0070; this->m_render->unknown_0038 = 0x100; if ((this->m_render->unknown_0034 & 0x100) != 0) { @@ -212,8 +213,8 @@ int UIPreviewEquipWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, s this->m_render->unknown_0030 = 0; } break; - case 0x200: - case 0x800: + case EQP_HEAD_MID: + case EQP_COSTUME_HEAD_MID: this->m_render->unknown_0030 = item->unknown_0070; this->m_render->unknown_003C = 0x200; if ((this->m_render->unknown_0034 & 0x200) != 0) { @@ -231,7 +232,7 @@ int UIPreviewEquipWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, s this->m_render->unknown_0030 = 0; this->m_render->unknown_0038 = 0x300; this->m_render->unknown_003C = 0x300; - if (this->m_render->unknown_0034 != 1) { + if (this->m_render->unknown_0034 != EQP_HEAD_LOW) { this->m_render->unknown_0034 = 0; this->m_render->unknown_0028 = 0; } @@ -251,7 +252,7 @@ int UIPreviewEquipWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, s this->m_render->unknown_0028 = 0; this->m_render->unknown_003C = 0x201; this->m_render->unknown_0034 = 0x201; - if (this->m_render->unknown_0038 != 0x100) { + if (this->m_render->unknown_0038 != EQP_HEAD_TOP) { this->m_render->unknown_0038 = 0; this->m_render->unknown_002C = 0; } @@ -262,13 +263,13 @@ int UIPreviewEquipWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, s this->m_render->unknown_0028 = 0; this->m_render->unknown_0038 = 0x101; this->m_render->unknown_0034 = 0x101; - if (this->m_render->unknown_003C != 0x200) { + if (this->m_render->unknown_003C != EQP_HEAD_MID) { this->m_render->unknown_003C = 0; this->m_render->unknown_0030 = 0; } break; - case 1: - case 0x1000: + case EQP_HEAD_LOW: + case EQP_COSTUME_HEAD_LOW: this->m_render->unknown_0028 = item->unknown_0070; this->m_render->unknown_0034 = 1; if ((this->m_render->unknown_0038 & 1) != 0) { @@ -280,8 +281,8 @@ int UIPreviewEquipWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, s this->m_render->unknown_0030 = 0; } break; - case 4: - case 0x2000: + case EQP_GARMENT: + case EQP_COSTUME_GARMENT: this->m_render->SetRobe(item->unknown_0070); break; } diff --git a/Source/UI/UIRefiningWnd.cpp b/Source/UI/UIRefiningWnd.cpp index 1868ef501..5e50d272f 100644 --- a/Source/UI/UIRefiningWnd.cpp +++ b/Source/UI/UIRefiningWnd.cpp @@ -9,6 +9,7 @@ #include "Client/Session.h" #include "Contents/Sound/SoundMgr.h" #include "Contents/Items/ItemDescription.h" +#include "Contents/Items/ItemId.h" #include "Contents/MessageTable.h" #include "Network/Connection/Connection.h" #include "Network/Packets/PacketLengths.h" @@ -462,36 +463,36 @@ void UIRefiningWnd::OnLBtnUp(int x, int y) { if (this->materials[slot].unknown_0004 <= 99 && this->catalystEnabled == 0) { int message; switch (this->materials[slot].itemId) { - case 6223: - case 6224: + case Carnium: + case Bradium: message = 2990; break; - case 6225: - case 6226: - case 6240: - case 6241: - case 6327: - case 6906: - case 6910: - case 6911: - case 1000331: - case 1000332: - case 1000333: - case 1000334: + case HD_Carnium: + case HD_Bradium: + case HD_Oridecon: + case HD_Elunium: + case LI_HD_Bradium: + case LI_HD_Carnium: + case LI_HD_Oridecon: + case LI_HD_Elunium: + case Ethernium: + case Etherdeocon: + case Enriched_Ethernium: + case Enriched_Etherdeocon: message = 2989; break; - case 984: - case 985: - case 1010: - case 1011: - case 7619: - case 7620: - case 1000335: - case 1000336: - case 1000368: - case 1000369: - case 1000370: - case 1000371: + case ITEMID_ORIDECON: + case Elunium: + case ITEMID_PHRACON: + case ITEMID_EMVERETARCON: + case Enriched_Elunium: + case Enriched_Oridecon: + case HD_Ethernium: + case HD_Etherdeocon: + case Etel_Bradium: + case HD_Etel_Bradium: + case Etel_Carnium: + case HD_Etel_Carnium: message = 2988; break; default: diff --git a/Source/UI/Window/FrameFocus.cpp b/Source/UI/Window/FrameFocus.cpp index b501b34d8..c89814455 100644 --- a/Source/UI/Window/FrameFocus.cpp +++ b/Source/UI/Window/FrameFocus.cpp @@ -1,3 +1,4 @@ +#include "UI/Window/WindowId.h" #include "UI/Window/UIWindow.h" #include "UI/Window/UIWindowMgr.h" #include "UI/Lists/UIDropDownBox.h" @@ -18,15 +19,15 @@ // FUNCTION: fn_17192 bool UIWindowMgr::IsOrderFixed(int id) { switch (id) { - case 0: case 1: case 2: case 3: case 4: case 6: case 7: case 9: case 14: case 15: case 16: case 17: case 18: case 20: case 21: case 22: case 23: - case 24: case 26: case 28: case 29: case 31: case 32: case 33: case 34: case 35: case 36: case 39: case 42: case 45: case 49: case 50: case 56: - case 58: case 60: case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 70: case 73: case 74: case 78: case 79: case 80: case 81: - case 90: case 91: case 94: case 95: case 99: case 100: case 101: case 104: case 105: case 107: case 109: case 111: case 115: case 116: case 123: - case 124: case 127: case 128: case 130: case 131: case 133: case 136: case 137: case 138: case 144: case 154: case 156: case 158: case 159: - case 160: case 161: case 164: case 175: case 176: case 177: case 179: case 180: case 183: case 186: case 187: case 189: case 190: case 196: - case 198: case 199: case 200: case 204: 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 253: case 257: case 258: case 262: case 267: case 268: case 269: case 271: case 277: case 278: case 284: case 285: - case 286: case 289: case 295: case 301: case 307: case 325: case 332: case 343: case 358: case 359: case 600: case 10011: case 10032: + case WID_BASICINFOWND: case WID_NEWCHATWND: case WID_SELECTSERVERWND: case WID_LOGINWND: case WID_MAKECHARWND: case WID_WAITWND: case WID_LOADINGWND: case WID_TOOLTIPWND: case WID_MINIMAPZOOMWND: case WID_ITEMDROPCNTWND: case WID_SAYDIALOGWND_DIALOG: case WID_CHOOSE3WND: case WID_MENUWND: case WID_NOTICECONFIRMWND: case WID_NOTIFYLEVELUPWND: case WID_ITEMSHOPWND: case WID_ITEMPURCHASEWND: + case WID_ITEMSELLWND: case WID_COMBOBOXWND: case WID_CHATROOMWND: case WID_PASSWORDWND: case 31: case WID_EXCHANGEACCEPTWND: case WID_ITEMSTOREWND: case WID_MESSENGERGROUPWND: case WID_JOINPARTYACCEPTWND: case WID_SHORTCUTWND: case WID_CHOOSEWARPWND: case WID_MERCHANTMIRRORITEMWND_MODE_0: case WID_MERCHANTITEMMYSHOPWND_MODE_0: case WID_NOTIFYJOBLEVELUPWND: case WID_ITEMPARAMCHANGEDISPLAYWND: case WID_NPCEDITDIALOGWND: + case WID_NOTIFYITEMOBTAINWND: case WID_GUILDINFOMANAGEWND: case WID_GUILDMEMBERMANAGEWND: case WID_GUILDPOSITIONMANAGEWND: case WID_GUILDSKILLWND: case WID_GUILDBANISHEDMEMBERWND: case WID_GUILDNOTICEWND: case WID_GUILDTOTALINFOWND: case 67: case WID_JOINGUILDACCEPTWND: case WID_ITEMIDENTIFYWND: case WID_ITEMCOMPOSITIONWND: case WID_ILLUSTWND: case WID_MAKETARGETLISTWND: case WID_MAKETARGETPROCESSWND: case WID_MAKETARGETRESULTWND: + case WID_PETEGGLISTWND: case WID_PETTAMINGDECEIVEWND: case WID_MAKINGARROWLISTWND: case WID_SELECTCARTWND: case WID_SPELLLISTWND: case WID_NPCTEXTEDITDIALOGWND: case WID_GRAFFISTRBOXWND: case WID_COUPLEACCEPTWND: case WID_BABYACCEPTWND: case WID_ITEMREPAIRWND: case WID_JOINFRIENDACCEPTWND: case WID_WEAPONREFINEWND: case 115: case WID_AUTOMESSAGEWND: case 123: + case 124: case WID_SELCHARFORUSERVERWND: case WID_CHANGENAMEWND: case WID_SUBCHATHISWND_UNKNOWN_03E4: case WID_SUBCHATHISWND_UNKNOWN_03E8: case WID_SUBCHATMINIWND: case 136: case WID_MEMORIALDUNWND: case WID_YOURITEMWND: case 144: case 154: case WID_HOTKEYWND: case WID_RELOADLUASCRIPTWND: case WID_QUIKSLOTWND: + case WID_ITEMSHOPWND2: case WID_ITEMSELLWND2: case WID_SEEKPARTYWND: case WID_MERCHANTMIRRORITEMWND_MODE_1: case WID_MERCHANTITEMMYSHOPWND_MODE_1: case WID_MERCHANTITEMSHOPWND_MODE_1: case WID_MERCHANTMIRRORITEMWND_MODE_2: case WID_LOGINOTPWND: case WID_SHOWINFO_TESTLAYER: case WID_SELECTREPLAYDATAWND: case WID_REPLAYCONTROLWND: case WID_MERCHANTSHOPTITLE: case WID_NCASH_CALLWND: case WID_COLLECTIONSYSTEMWND: + case WID_REPLAYRECCONTROLWND: case WID_SECONDPASSWORDINPUTWND: case WID_SECONDPASSWORDEDITWND: case WID_QUESTDISPLAY: case WID_MULTIILLUSTWND_SLOT_0: case WID_MULTIILLUSTWND_SLOT_1: case WID_MULTIILLUSTWND_SLOT_2: case WID_MULTIILLUSTWND_SLOT_3: case WID_MULTIILLUSTWND_SLOT_4: case WID_MULTIILLUSTWND_SLOT_5: case WID_MULTIILLUSTWND_SLOT_6: case WID_MULTIILLUSTWND_SLOT_7: case WID_MULTIILLUSTWND_SLOT_8: case WID_MULTIILLUSTWND_SLOT_9: + case WID_SAYDIALOGWND_OVERLAY: case WID_MERGEITEMWND: case WID_GUILD_STORAGE_LOG: case WID_MERCHANTITEMLOGWND_MODE_0: case WID_MERCHANTITEMLOGWND_MODE_1: case WID_OPENMAILBOXWND: case WID_MILEAGEWND: case WID_OPENROULLETTEWND: case WID_ROULLETTEWND: case WID_ACHTRACINGWND: case WID_NEWSELECTCHARWND: case WID_NEWMAKECHARWND: case WID_CAPTCHAREGISTERWND: case WID_MACRODETECTORWND: + case WID_MACROREPORTERWND: case WID_VIEWCAMERAINFOWND: case WID_REFININGWND: case WID_MINIPARTYWND: case WID_MENUICONWND: case WID_RPIMAGEWND2: case WID_DISCONNECTEDSERVERMSGWND: case WID_GRADEENCHANTWND: case WID_BALLOONOPENBTN: case WID_MACROBLACKLISTCHECKWND: case 600: case 10011: case WID_DEBUFFREMOVEWND: return true; case 145: { UIWindow* window = g_windowMgr.LookupWindow(145); @@ -121,21 +122,21 @@ bool UIWindowMgr::IsFriend(const char* name) { // FUNCTION: fn_17196 bool UIWindowMgr::IsSharedWindowId(int id) { switch (id) { - case 9: + case WID_TOOLTIPWND: case 13: - case 16: - case 17: - case 18: - case 20: - case 45: + case WID_SAYDIALOGWND_DIALOG: + case WID_CHOOSE3WND: + case WID_MENUWND: + case WID_NOTICECONFIRMWND: + case WID_MERCHANTITEMMYSHOPWND_MODE_0: case 112: - case 113: - case 114: + case WID_HOMUNINFOWND: + case WID_SKILLLISTWND_SKILLTAB_0: case 115: - case 116: + case WID_AUTOMESSAGEWND: case 117: case 118: - case 119: + case WID_STARPLACEACCEPTWND: case 120: case 121: case 122: diff --git a/Source/UI/Window/UIBasicInfoWnd.cpp b/Source/UI/Window/UIBasicInfoWnd.cpp index 7868e3f2b..6f1a484d0 100644 --- a/Source/UI/Window/UIBasicInfoWnd.cpp +++ b/Source/UI/Window/UIBasicInfoWnd.cpp @@ -6,6 +6,7 @@ #include "Client/Mode/CGameMode.h" #include "Client/Session.h" #include "Contents/Configuration/ServiceConfiguration.h" +#include "Contents/Jobs/JobId.h" #include "Resource/Bitmap/BitmapResource.h" #include "Resource/ResourceMgr.h" #include "Resource/SkinPalette.h" @@ -454,19 +455,19 @@ void UIBasicInfoWnd::DrawCollapsed() { int fontHeight = 14; if (g_serviceType == 0) { switch (g_session.GetDisplayJob()) { - case 4046: - case 4047: - case 4048: - case 4049: - case 4239: - case 4240: - case 4241: - case 4242: - case 4243: - case 4244: - case 4302: - case 4303: - case 4316: + case JT_TAEKWON: + case JT_STAR: + case JT_STAR2: + case JT_LINKER: + case JT_STAR_EMPEROR: + case JT_SOUL_REAPER: + case JT_STAR_EMPEROR_B: + case JT_SOUL_REAPER_B: + case JT_STAR2_EMPEROR: + case JT_STAR2_EMPEROR_B: + case JT_SKY_EMPEROR: + case JT_SOUL_ASCETIC: + case JT_SKY_EMPEROR2: family = 0; fontHeight = 11; break; @@ -643,20 +644,20 @@ void UIBasicInfoWnd::Paint() { } else { if (g_serviceType == 0) { switch (g_session.GetDisplayJob()) { - case 23: - case 4046: - case 4047: - case 4048: - case 4049: - case 4239: - case 4240: - case 4241: - case 4242: - case 4243: - case 4244: - case 4302: - case 4303: - case 4316: + case JT_SUPERNOVICE: + case JT_TAEKWON: + case JT_STAR: + case JT_STAR2: + case JT_LINKER: + case JT_STAR_EMPEROR: + case JT_SOUL_REAPER: + case JT_STAR_EMPEROR_B: + case JT_SOUL_REAPER_B: + case JT_STAR2_EMPEROR: + case JT_STAR2_EMPEROR_B: + case JT_SKY_EMPEROR: + case JT_SOUL_ASCETIC: + case JT_SKY_EMPEROR2: family = 0; fontHeight = 11; break; diff --git a/Source/UI/Window/UIControl.cpp b/Source/UI/Window/UIControl.cpp index ff43a2395..cba43a3aa 100644 --- a/Source/UI/Window/UIControl.cpp +++ b/Source/UI/Window/UIControl.cpp @@ -2330,19 +2330,19 @@ void CUITextViewer::OnWheel(int value) { int CUITextViewer::SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) { if (message == 98) { switch (a) { - case 437: + case LINE_SEGMENT_URL: OpenTextButtonLink(static_cast(sender)); break; - case 464: + case LINE_SEGMENT_ITEM: ShowTextButtonItem(static_cast(sender)); break; - case 438: + case LINE_SEGMENT_NAVI: OpenTextButtonNavigation(static_cast(sender)); break; - case 539: + case LINE_SEGMENT_QUEST: RequestTextButtonService(static_cast(sender)); break; - case 517: + case LINE_SEGMENT_TIPBOX: ShowTextButtonTip(static_cast(sender)); break; } diff --git a/Source/UI/Window/UIMessageBox.cpp b/Source/UI/Window/UIMessageBox.cpp index c4d3b5abb..ec1b1fccc 100644 --- a/Source/UI/Window/UIMessageBox.cpp +++ b/Source/UI/Window/UIMessageBox.cpp @@ -1,6 +1,7 @@ #include "Render/DeviceContext/DCSurface.h" #include "Render/Text/FontCache.h" #include "Contents/Items/ItemDescription.h" +#include "Contents/Combat/CombatTypes.h" #include "Resource/Bitmap/BitmapResource.h" #include "Resource/ResourceMgr.h" #include "Resource/TextureNames.h" @@ -2154,13 +2155,13 @@ void UIMonsterInfoWnd::Paint() { this->DrawTextAt(260, 30, LookupMessage(410), 0, 0, 12, 0, 0, 0); switch (this->info.size) { - case 0: + case SZ_SMALL: this->DrawTextAt(300, 30, LookupMessage(3907), 0, 0, 12, 0, 0, 0); break; - case 1: + case SZ_MEDIUM: this->DrawTextAt(300, 30, LookupMessage(3908), 0, 0, 12, 0, 0, 0); break; - case 2: + case SZ_BIG: this->DrawTextAt(300, 30, LookupMessage(3909), 0, 0, 12, 0, 0, 0); break; } @@ -2168,34 +2169,34 @@ void UIMonsterInfoWnd::Paint() { StringFormat(text, sizeof(text), static_cast(-1), "%d", this->info.race); this->DrawTextAt(260, 50, LookupMessage(411), 0, 0, 12, 0, 0, 0); switch (this->info.race) { - case 0: + case RC_FORMLESS: this->DrawTextAt(300, 50, LookupMessage(3887), 0, 0, 12, 0, 0, 0); break; - case 1: + case RC_UNDEAD: this->DrawTextAt(300, 50, LookupMessage(3888), 0, 0, 12, 0, 0, 0); break; - case 2: + case RC_BRUTE: this->DrawTextAt(300, 50, LookupMessage(3889), 0, 0, 12, 0, 0, 0); break; - case 3: + case RC_PLANT: this->DrawTextAt(300, 50, LookupMessage(3890), 0, 0, 12, 0, 0, 0); break; - case 4: + case RC_INSECT: this->DrawTextAt(300, 50, LookupMessage(3891), 0, 0, 12, 0, 0, 0); break; - case 5: + case RC_FISH: this->DrawTextAt(300, 50, LookupMessage(3892), 0, 0, 12, 0, 0, 0); break; - case 6: + case RC_DEMON: this->DrawTextAt(300, 50, LookupMessage(3893), 0, 0, 12, 0, 0, 0); break; - case 7: + case RC_DEMIHUMAN: this->DrawTextAt(300, 50, LookupMessage(3894), 0, 0, 12, 0, 0, 0); break; - case 8: + case RC_ANGEL: this->DrawTextAt(300, 50, LookupMessage(3895), 0, 0, 12, 0, 0, 0); break; - case 9: + case RC_DRAGON: this->DrawTextAt(300, 50, LookupMessage(3896), 0, 0, 12, 0, 0, 0); break; } @@ -2206,34 +2207,34 @@ void UIMonsterInfoWnd::Paint() { this->DrawTextAt(260, 70, LookupMessage(413), 0, 0, 12, 0, 0, 0); switch (this->info.element % 20) { - case 0: + case ELE_NEUTRAL: this->DrawTextAt(300, 70, LookupMessage(3897), 0, 0, 12, 0, 0, 0); break; - case 1: + case ELE_WATER: this->DrawTextAt(300, 70, LookupMessage(3898), 0, 0, 12, 0, 0, 0); break; - case 2: + case ELE_EARTH: this->DrawTextAt(300, 70, LookupMessage(3899), 0, 0, 12, 0, 0, 0); break; - case 3: + case ELE_FIRE: this->DrawTextAt(300, 70, LookupMessage(3900), 0, 0, 12, 0, 0, 0); break; - case 4: + case ELE_WIND: this->DrawTextAt(300, 70, LookupMessage(3901), 0, 0, 12, 0, 0, 0); break; - case 5: + case ELE_POISON: this->DrawTextAt(300, 70, LookupMessage(3902), 0, 0, 12, 0, 0, 0); break; - case 6: + case ELE_HOLY: this->DrawTextAt(300, 70, LookupMessage(3903), 0, 0, 12, 0, 0, 0); break; - case 7: + case ELE_DARK: this->DrawTextAt(300, 70, LookupMessage(3904), 0, 0, 12, 0, 0, 0); break; - case 8: + case ELE_GHOST: this->DrawTextAt(300, 70, LookupMessage(3905), 0, 0, 12, 0, 0, 0); break; - case 9: + case ELE_UNDEAD: this->DrawTextAt(300, 70, LookupMessage(3906), 0, 0, 12, 0, 0, 0); break; } diff --git a/Source/UI/Window/UINewSkillListWnd.cpp b/Source/UI/Window/UINewSkillListWnd.cpp index 8fe384dee..5c163cab9 100644 --- a/Source/UI/Window/UINewSkillListWnd.cpp +++ b/Source/UI/Window/UINewSkillListWnd.cpp @@ -1,3 +1,4 @@ +#include "Contents/Jobs/JobId.h" #include "Render/DeviceContext/DCSurface.h" #include "UI/Window/UINewSkillListWnd.h" #include "Client/Mode/CGameMode.h" @@ -505,210 +506,210 @@ void UINewSkillListWnd::InitTabs() { const unsigned baseJob = JobNames::BaseJob(g_session.GetDisplayJob()); int jobKey = baseJob; switch (baseJob) { - case 0: - case 4001: - case 4023: + case JT_NOVICE: + case JT_NOVICE_H: + case JT_NOVICE_B: jobKey = 0; break; - case 1: - case 4002: - case 4024: + case JT_SWORDMAN: + case JT_SWORDMAN_H: + case JT_SWORDMAN_B: jobKey = 1; break; - case 2: - case 4003: - case 4025: + case JT_MAGICIAN: + case JT_MAGICIAN_H: + case JT_MAGICIAN_B: jobKey = 2; break; - case 3: - case 4004: - case 4026: + case JT_ARCHER: + case JT_ARCHER_H: + case JT_ARCHER_B: jobKey = 3; break; - case 4: - case 4005: - case 4027: + case JT_ACOLYTE: + case JT_ACOLYTE_H: + case JT_ACOLYTE_B: jobKey = 4; break; - case 5: - case 4006: - case 4028: + case JT_MERCHANT: + case JT_MERCHANT_H: + case JT_MERCHANT_B: jobKey = 5; break; - case 6: - case 4007: - case 4029: + case JT_THIEF: + case JT_THIEF_H: + case JT_THIEF_B: jobKey = 6; break; - case 7: - case 4008: - case 4030: - case 4054: - case 4060: - case 4096: - case 4252: + case JT_KNIGHT: + case JT_KNIGHT_H: + case JT_KNIGHT_B: + case JT_RUNE_KNIGHT: + case JT_RUNE_KNIGHT_H: + case JT_RUNE_KNIGHT_B: + case JT_DRAGON_KNIGHT: jobKey = 7; break; - case 8: - case 4009: - case 4031: - case 4057: - case 4063: - case 4099: - case 4256: + case JT_PRIEST: + case JT_PRIEST_H: + case JT_PRIEST_B: + case JT_ARCHBISHOP: + case JT_ARCHBISHOP_H: + case JT_ARCHBISHOP_B: + case JT_CARDINAL: jobKey = 8; break; - case 9: - case 4010: - case 4032: - case 4055: - case 4061: - case 4097: - case 4255: + case JT_WIZARD: + case JT_WIZARD_H: + case JT_WIZARD_B: + case JT_WARLOCK: + case JT_WARLOCK_H: + case JT_WARLOCK_B: + case JT_ARCH_MAGE: jobKey = 9; break; - case 10: - case 4011: - case 4033: - case 4058: - case 4064: - case 4100: - case 4253: + case JT_BLACKSMITH: + case JT_BLACKSMITH_H: + case JT_BLACKSMITH_B: + case JT_MECHANIC: + case JT_MECHANIC_H: + case JT_MECHANIC_B: + case JT_MEISTER: jobKey = 10; break; - case 11: - case 4012: - case 4034: - case 4056: - case 4062: - case 4098: - case 4257: + case JT_HUNTER: + case JT_HUNTER_H: + case JT_HUNTER_B: + case JT_RANGER: + case JT_RANGER_H: + case JT_RANGER_B: + case JT_WINDHAWK: jobKey = 11; break; - case 12: - case 4013: - case 4035: - case 4059: - case 4065: - case 4101: - case 4254: + case JT_ASSASSIN: + case JT_ASSASSIN_H: + case JT_ASSASSIN_B: + case JT_GUILLOTINE_CROSS: + case JT_GUILLOTINE_CROSS_H: + case JT_GUILLOTINE_CROSS_B: + case JT_SHADOW_CROSS: jobKey = 12; break; - case 14: - case 4015: - case 4037: - case 4066: - case 4073: - case 4102: - case 4258: + case JT_CRUSADER: + case JT_CRUSADER_H: + case JT_CRUSADER_B: + case JT_ROYAL_GUARD: + case JT_ROYAL_GUARD_H: + case JT_ROYAL_GUARD_B: + case JT_IMPERIAL_GUARD: jobKey = 14; break; - case 15: - case 4016: - case 4038: - case 4070: - case 4077: - case 4106: - case 4262: + case JT_MONK: + case JT_MONK_H: + case JT_MONK_B: + case JT_SURA: + case JT_SURA_H: + case JT_SURA_B: + case JT_INQUISITOR: jobKey = 15; break; - case 16: - case 4017: - case 4039: - case 4067: - case 4074: - case 4103: - case 4261: + case JT_SAGE: + case JT_SAGE_H: + case JT_SAGE_B: + case JT_SORCERER: + case JT_SORCERER_H: + case JT_SORCERER_B: + case JT_ELEMENTAL_MASTER: jobKey = 16; break; - case 17: - case 4018: - case 4040: - case 4072: - case 4079: - case 4108: - case 4260: + case JT_ROGUE: + case JT_ROGUE_H: + case JT_ROGUE_B: + case JT_SHADOW_CHASER: + case JT_SHADOW_CHASER_H: + case JT_SHADOW_CHASER_B: + case JT_ABYSS_CHASER: jobKey = 17; break; - case 18: - case 4019: - case 4041: - case 4071: - case 4078: - case 4107: - case 4259: + case JT_ALCHEMIST: + case JT_ALCHEMIST_H: + case JT_ALCHEMIST_B: + case JT_GENETIC: + case JT_GENETIC_H: + case JT_GENETIC_B: + case JT_BIOLO: jobKey = 18; break; - case 19: - case 4020: - case 4042: - case 4068: - case 4075: - case 4104: - case 4263: + case JT_BARD: + case JT_BARD_H: + case JT_BARD_B: + case JT_MINSTREL: + case JT_MINSTREL_H: + case JT_MINSTREL_B: + case JT_TROUBADOUR: jobKey = 19; break; - case 20: - case 4021: - case 4043: - case 4069: - case 4076: - case 4105: - case 4264: + case JT_DANCER: + case JT_DANCER_H: + case JT_DANCER_B: + case JT_WANDERER: + case JT_WANDERER_H: + case JT_WANDERER_B: + case JT_TROUVERE: jobKey = 20; break; - case 23: - case 4045: - case 4190: - case 4191: - case 4307: + case JT_SUPERNOVICE: + case JT_SUPERNOVICE_B: + case JT_SUPERNOVICE2: + case JT_SUPERNOVICE2_B: + case JT_HYPER_NOVICE: jobKey = 23; break; - case 24: - case 4215: - case 4228: - case 4229: - case 4306: + case JT_GUNSLINGER: + case JT_REBELLION: + case JT_GUNSLINGER_B: + case JT_REBELLION_B: + case JT_NIGHT_WATCH: jobKey = 24; break; - case 25: - case 4211: - case 4212: - case 4222: - case 4223: - case 4224: - case 4304: - case 4305: + case JT_NINJA: + case JT_KAGEROU: + case JT_OBORO: + case JT_NINJA_B: + case JT_KAGEROU_B: + case JT_OBORO_B: + case JT_SHINKIRO: + case JT_SHIRANUI: jobKey = 25; break; - case 4046: - case 4225: + case JT_TAEKWON: + case JT_TAEKWON_B: jobKey = 4046; break; - case 4047: - case 4226: - case 4239: - case 4241: - case 4302: + case JT_STAR: + case JT_STAR_B: + case JT_STAR_EMPEROR: + case JT_STAR_EMPEROR_B: + case JT_SKY_EMPEROR: jobKey = 4047; break; - case 4049: - case 4227: - case 4240: - case 4242: - case 4303: + case JT_LINKER: + case JT_LINKER_B: + case JT_SOUL_REAPER: + case JT_SOUL_REAPER_B: + case JT_SOUL_ASCETIC: jobKey = 4049; break; - case 4218: - case 4220: - case 4308: + case JT_DO_SUMMONER: + case JT_DO_SUMMONER_B: + case JT_SPIRIT_HANDLER: jobKey = 4218; break; - case 4351: - case 4352: - case 4353: - case 4354: - case 4355: + case JT_DRUID: + case JT_DRUID_B: + case JT_KARNOS: + case JT_KARNOS_B: + case JT_ALITEA: jobKey = 4351; break; default: diff --git a/Source/UI/Window/UIRodexContentsWnd.cpp b/Source/UI/Window/UIRodexContentsWnd.cpp index fbe770dcc..f19e6c656 100644 --- a/Source/UI/Window/UIRodexContentsWnd.cpp +++ b/Source/UI/Window/UIRodexContentsWnd.cpp @@ -15,6 +15,7 @@ #include "Contents/SkinMgr.h" #include "Network/Connection/Connection.h" #include "Network/Packets/PacketLengths.h" +#include "Network/Packets/NoticeEnums.h" #include "Contents/MessageTable.h" #include "Resource/Bitmap/BitmapResource.h" #include "Resource/ResourceMgr.h" @@ -108,7 +109,7 @@ void UIRodexContentsWnd::OnCreate(int, int) { RodexMailStore* store = g_rodexMailStore; switch (store->unknown_0010) { - case 0: { + case MAIL_INBOX_NORMAL: { std::map::iterator mail = store->m_mails0.find(store->currentMailId); if (mail != store->m_mails0.end()) { this->SetMailContents(mail->second.unknown_0004, mail->second.unknown_0024, mail->second.unknown_003C, mail->second.hasItem, mail->second.zeny, @@ -126,7 +127,7 @@ void UIRodexContentsWnd::OnCreate(int, int) { } break; } - case 1: { + case MAIL_INBOX_ACCOUNT: { std::map::iterator mail = store->m_mails1.find(store->currentMailId); if (mail != store->m_mails1.end()) { this->SetMailContents(mail->second.unknown_0004, mail->second.unknown_0024, mail->second.unknown_003C, mail->second.hasItem, mail->second.zeny, @@ -134,7 +135,7 @@ void UIRodexContentsWnd::OnCreate(int, int) { } break; } - case 2: { + case MAIL_INBOX_RETURNED: { std::map::iterator mail = store->m_mails2.find(store->currentMailId); if (mail != store->m_mails2.end()) { this->SetMailContents(mail->second.unknown_0004, mail->second.unknown_0024, mail->second.unknown_003C, mail->second.hasItem, mail->second.zeny, diff --git a/Source/UI/Window/UISerachStoreInfoWnd.cpp b/Source/UI/Window/UISerachStoreInfoWnd.cpp index 9fcda7dee..2a3b36db0 100644 --- a/Source/UI/Window/UISerachStoreInfoWnd.cpp +++ b/Source/UI/Window/UISerachStoreInfoWnd.cpp @@ -6,6 +6,7 @@ #include "Contents/MessageTable.h" #include "Network/Connection/Connection.h" #include "Network/Packets/PacketLengths.h" +#include "Network/Packets/NoticeEnums.h" #include "UI/Buttons/UIBitmapButton.h" #include "UI/Buttons/UICheckBox.h" #include "UI/Buttons/UIRadioBtn.h" @@ -328,23 +329,23 @@ int UISerachStoreInfoWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a this->unknown_00DC = 1; } else if (argument2 < 387) { switch (argument2) { - case 0: + case SSI_FAILED_NOTHING_SEARCH_ITEM: this->unknown_00DC = 1; g_session.unknown_5BD4.clear(); reinterpret_cast(&g_session.unknown_5BE4)[1] = 0; this->unknown_00F0 = LookupMessage(1803); --g_session.unknown_5BE0; break; - case 1: + case SSI_FAILED_OVER_MAXCOUNT: this->unknown_00F0 = LookupMessage(1784); break; - case 2: + case SSI_FAILED_SEARCH_CNT: this->unknown_00F0 = LookupMessage(1798); break; - case 3: + case SSI_FAILED_LIMIT_SEARCH_TIME: g_windowMgr.Confirm(LookupMessage(1800), 0, true, false, 0, "Message", 280, 120, 0); return 0; - case 4: + case SSI_FAILED_SSILIST_CLICK_TO_OPEN_STORE: g_session.unknown_5BE8 = -1; g_session.unknown_5BEC = -1; g_session.unknown_5BF0 = 0xFFFFFFFF; diff --git a/Source/UI/Window/UIWindowFactory.cpp b/Source/UI/Window/UIWindowFactory.cpp index 2cd16f396..b2ac91c00 100644 --- a/Source/UI/Window/UIWindowFactory.cpp +++ b/Source/UI/Window/UIWindowFactory.cpp @@ -9,6 +9,7 @@ #include "UI/Window/UISerachStoreInfoWnd.h" #include "UI/Window/UIWindow.h" #include "UI/Window/UIWindowMgr.h" +#include "UI/Window/WindowId.h" #include @@ -36,17 +37,17 @@ UIWindow* UIWindowMgr::CreateLayoutWindow(int id) { std::string xKey; if (window == nullptr) { switch (id) { - case 0x9C: + case WID_HOTKEYWND: window = new UIHotKeyWnd(); this->unknown_0404 = window; break; - case 0x9D: + case WID_JOINTO_BATTLEFIELDWND: window = new UIEntryQueueWnd(); break; - case 0x9F: + case WID_QUIKSLOTWND: window = new UIQuickSlotWnd(); break; - case 0xB5: + case WID_SEARCH_STORE_INFO: window = new UISerachStoreInfoWnd(); g_searchStoreInfoCreated = true; break; diff --git a/Source/UI/Window/UIWindowMgr.cpp b/Source/UI/Window/UIWindowMgr.cpp index 738aaafd7..914b987b5 100644 --- a/Source/UI/Window/UIWindowMgr.cpp +++ b/Source/UI/Window/UIWindowMgr.cpp @@ -1,3 +1,4 @@ +#include "UI/Window/WindowId.h" #include "UI/Window/WindowPolicy.h" #include "Render/Renderer.h" #include "UI/Chat/UISubChatHisWnd.h" @@ -551,84 +552,84 @@ UIWindow* UIWindowMgr::LookupWindow(int id) { } switch (id) { - case 3: + case WID_LOGINWND: return this->window_01CC; - case 180: + case WID_LOGINOTPWND: return this->window_01D0; - case 1: + case WID_NEWCHATWND: return this->window_01C8; - case 27: + case WID_CHATROOMMAKEWND: return this->window_0274; - case 30: + case WID_CHATROOMCHANGEWND: return this->window_0278; - case 28: + case WID_CHATROOMWND: return this->window_027C; - case 34: + case WID_MESSENGERGROUPWND: return this->window_02C8; - case 37: + case WID_NEWSKILLLISTWND: return this->window_02C4; - case 61: + case WID_GUILDMEMBERMANAGEWND: return this->window_0324; - case 60: + case WID_GUILDINFOMANAGEWND: return this->window_0320; - case 88: + case WID_PETINFOWND: return this->window_038C; - case 63: + case WID_GUILDSKILLWND: return this->window_032C; - case 103: + case WID_PROHIBITLISTWND: return this->window_0388; - case 113: + case WID_HOMUNINFOWND: return this->window_03C0; - case 114: + case WID_SKILLLISTWND_SKILLTAB_0: return this->window_03C4; - case 125: + case WID_MERINFOWND: return this->window_03C8; - case 126: + case WID_SKILLLISTWND_SKILLTAB_1: return this->window_03CC; - case 33: + case WID_ITEMSTOREWND: return this->window_0288; - case 196: + case WID_COLLECTIONSYSTEMWND: return this->window_4F18C; - case 204: + case WID_QUESTDISPLAY: return this->window_0428; - case 203: + case WID_NAVIGATIONV4WND: return this->window_4F174; - case 237: + case WID_CLANINFOMANAGEWND: return this->window_0444; - case 253: + case WID_GUILD_STORAGE_LOG: return this->window_044C; - case 273: + case WID_MINIMAPWND: return this->window_4F1CC; - case 277: + case WID_NEWSELECTCHARWND: return this->window_03D4; - case 275: + case WID_BANK_NEWWND: return this->window_0448; - case 274: + case WID_EDITCTRLWND: return this->window_4F1D0; - case 284: + case WID_CAPTCHAREGISTERWND: return this->window_4F1E8; - case 285: + case WID_MACRODETECTORWND: return this->window_4F1EC; - case 286: + case WID_MACROREPORTERWND: return this->window_4F1F0; - case 287: + case WID_MACROUSERINFOWND: return this->window_4F1F4; - case 288: + case WID_CAPTCHAPREVIEWWND: return this->window_4F1F8; - case 301: + case WID_MINIPARTYWND: if (!this->snapExcluded.empty()) { return this->snapExcluded.front(); } [[fallthrough]]; - case 318: + case WID_CASHSHOP_WND: return this->window_4F254; - case 315: + case WID_TIPBOXWND: return this->window_0468; - case 325: + case WID_RPIMAGEWND2: return this->window_4F25C; - case 359: + case WID_MACROBLACKLISTCHECKWND: return this->window_4F288; - case 10024: + case WID_WAITDBSAVEWND: return this->window_4F2AC; default: { const auto found = this->windows.find(id); @@ -2528,30 +2529,30 @@ bool UIWindowMgr::ProcessHotkeyAction(int action, int pressed) { g_modeMgr.GetGameMode()->SendMsg(100, reinterpret_cast(""), -1, 1, 0); } else if (UIWindow* window = g_windowMgr.LookupWindow(id)) { switch (id) { - case 22: - case 23: - case 24: - case 25: - case 41: - case 44: - case 161: - case 174: - case 178: + case WID_ITEMSHOPWND: + case WID_ITEMPURCHASEWND: + case WID_ITEMSELLWND: + case WID_CHOOSESELLBUYWND: + case WID_MERCHANTSHOPMAKEWND_MODE_0: + case WID_MERCHANTITEMPURCHASEWND_MODE_0: + case WID_ITEMSELLWND2: + case WID_MERCHANTSHOPMAKEWND_MODE_1: + case WID_MERCHANTITEMPURCHASEWND_MODE_1: if (replaying != 0) { return false; } window->SendMsg(nullptr, 6, 185, 0, 0, 0); return false; - case 132: - case 181: - case 184: - case 203: - case 281: - case 326: + case WID_BATTLEMSGOPTIONWND: + case WID_SEARCH_STORE_INFO: + case WID_NCASHWND: + case WID_NAVIGATIONV4WND: + case WID_STYLINGSHOPWND: + case WID_REQUESTJOINPARTYWND: window->SendMsg(nullptr, 6, 201, 0, 0, 0); return false; - case 358: - case 10024: + case WID_BALLOONOPENBTN: + case WID_WAITDBSAVEWND: return false; } } @@ -2739,7 +2740,7 @@ bool UIWindowMgr::CloseWindow(int id) { if (Replay::Instance().state == 2 && Replay::Instance().header.options.Get(ReplayRecordOption::Item) && Replay::Instance().header.options.Get(ReplayRecordOption::BasicInfo) && Replay::Instance().header.options.Get(ReplayRecordOption::Status) && - (id == 315 || id == 321 || id == 322)) { + (id == WID_TIPBOXWND || id == WID_RENEWQUESTWND || id == WID_RENEWDETAILQUESTINFOWND)) { #pragma pack(push, 1) struct WindowClosePacket { std::uint32_t marker; @@ -2754,7 +2755,7 @@ bool UIWindowMgr::CloseWindow(int id) { } switch (id) { - case 1: + case WID_NEWCHATWND: this->CloseWindow(26); if (this->window_01C8) { this->Schedule(this->window_01C8); @@ -2763,14 +2764,14 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_003C = 0; } break; - case 0: + case WID_BASICINFOWND: if (this->unknown_01DC) { this->Schedule(this->unknown_01DC); this->unknown_01DC = nullptr; closed = true; } break; - case 8: + case WID_ITEMWND: if (this->unknown_01D4) { static_cast(this->unknown_01D4)->ReleaseSelection(0); this->Schedule(this->unknown_01D4); @@ -2779,21 +2780,21 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_054C = 0; } break; - case 361: + case WID_RUNESYSTEMWND: if (UIWindow* found = this->LookupWindow(id)) { this->CloseWindow(362); this->Schedule(found); closed = true; } break; - case 204: + case WID_QUESTDISPLAY: if (this->window_0428) { this->Schedule(this->window_0428); this->window_0428 = nullptr; closed = true; } break; - case 10: + case WID_EQUIPWND_VIEWOTHER_0: if (this->unknown_01E0) { this->Schedule(this->unknown_01E0); this->unknown_01E0 = nullptr; @@ -2802,14 +2803,14 @@ bool UIWindowMgr::CloseWindow(int id) { g_savedWindowCloseValue = g_windowCloseValue; } break; - case 184: + case WID_NCASHWND: if (this->unknown_01E4) { this->Schedule(this->unknown_01E4); this->unknown_01E4 = nullptr; closed = true; } break; - case 11: + case WID_STATUSWND: if (this->unknown_01C4) { if (reinterpret_cast(this->unknown_01C4) > 8) { this->Schedule(this->unknown_01C4); @@ -2819,98 +2820,98 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_0588 = 0; } break; - case 15: + case WID_ITEMDROPCNTWND: if (this->window_01EC) { this->Schedule(this->window_01EC); this->window_01EC = nullptr; closed = true; } break; - case 226: + case WID_SAYDIALOGWND_OVERLAY: if (this->unknown_01F4) { this->Schedule(this->unknown_01F4); this->unknown_01F4 = nullptr; closed = true; } break; - case 16: + case WID_SAYDIALOGWND_DIALOG: if (this->unknown_01F0) { this->Schedule(this->unknown_01F0); this->unknown_01F0 = nullptr; closed = true; } break; - case 28: + case WID_CHATROOMWND: if (this->window_027C) { this->Schedule(this->window_027C); this->window_027C = nullptr; closed = true; } break; - case 39: + case WID_CHOOSEWARPWND: if (this->unknown_020C) { this->Schedule(this->unknown_020C); this->unknown_020C = nullptr; closed = true; } break; - case 17: + case WID_CHOOSE3WND: if (this->unknown_01F8) { this->Schedule(this->unknown_01F8); this->unknown_01F8 = nullptr; closed = true; } break; - case 74: + case WID_ITEMCOMPOSITIONWND: if (this->unknown_0208) { this->Schedule(this->unknown_0208); this->unknown_0208 = nullptr; closed = true; } break; - case 73: + case WID_ITEMIDENTIFYWND: if (this->unknown_01FC) { this->Schedule(this->unknown_01FC); this->unknown_01FC = nullptr; closed = true; } break; - case 26: + case WID_COMBOBOXWND: if (this->unknown_0214) { this->Schedule(this->unknown_0214); this->unknown_0214 = nullptr; closed = true; } break; - case 260: + case WID_COMBOBOXIDWND: if (this->unknown_021C) { this->Schedule(this->unknown_021C); this->unknown_021C = nullptr; closed = true; } break; - case 18: + case WID_MENUWND: if (this->unknown_0210) { this->Schedule(this->unknown_0210); this->unknown_0210 = nullptr; closed = true; } break; - case 30: + case WID_CHATROOMCHANGEWND: if (this->window_0278) { this->Schedule(this->window_0278); this->window_0278 = nullptr; closed = true; } break; - case 27: + case WID_CHATROOMMAKEWND: if (this->window_0274) { this->Schedule(this->window_0274); this->window_0274 = nullptr; closed = true; } break; - case 25: + case WID_CHOOSESELLBUYWND: if (this->unknown_0264) { g_modeMgr.gameMode->SendMsg(291, 0, 0, 0, 0); this->Schedule(this->unknown_0264); @@ -2918,7 +2919,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 24: + case WID_ITEMSELLWND: if (this->unknown_025C) { g_modeMgr.gameMode->SendMsg(291, 0, 0, 0, 0); this->Schedule(this->unknown_025C); @@ -2926,21 +2927,21 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 161: + case WID_ITEMSELLWND2: if (this->unknown_0260) { this->Schedule(this->unknown_0260); this->unknown_0260 = nullptr; closed = true; } break; - case 44: + case WID_MERCHANTITEMPURCHASEWND_MODE_0: if (this->unknown_0308) { this->Schedule(this->unknown_0308); this->unknown_0308 = nullptr; closed = true; } break; - case 23: + case WID_ITEMPURCHASEWND: if (this->unknown_0258) { g_modeMgr.gameMode->SendMsg(291, 0, 0, 0, 0); this->Schedule(this->unknown_0258); @@ -2948,42 +2949,42 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 45: + case WID_MERCHANTITEMMYSHOPWND_MODE_0: if (this->unknown_0304) { this->Schedule(this->unknown_0304); this->unknown_0304 = nullptr; closed = true; } break; - case 43: + case WID_MERCHANTITEMSHOPWND_MODE_0: if (this->unknown_0300) { this->Schedule(this->unknown_0300); this->unknown_0300 = nullptr; closed = true; } break; - case 22: + case WID_ITEMSHOPWND: if (this->unknown_0250) { this->Schedule(this->unknown_0250); this->unknown_0250 = nullptr; closed = true; } break; - case 160: + case WID_ITEMSHOPWND2: if (this->unknown_0254) { this->Schedule(this->unknown_0254); this->unknown_0254 = nullptr; closed = true; } break; - case 254: + case WID_PARAITEMSHOPWND: if (this->unknown_0268) { this->Schedule(this->unknown_0268); this->unknown_0268 = nullptr; closed = true; } break; - case 255: + case WID_PARAITEMPURCHASEWND: if (this->unknown_026C) { this->NotifyMode(); this->Schedule(this->unknown_026C); @@ -2991,7 +2992,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 256: + case WID_PARARESULTWND: if (this->window_0270) { this->NotifyMode(); this->Schedule(this->window_0270); @@ -2999,14 +3000,14 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 334: + case WID_BARTERMARKETWND: if (this->window_4F260) { this->Schedule(this->window_4F260); this->window_4F260 = nullptr; closed = true; } break; - case 335: + case WID_BARTERITEMPURCHASEWND: if (this->window_4F264) { if (g_modeMgr.gameMode) { g_modeMgr.gameMode->SendMsg(309, 0, 0, 0, 0); @@ -3016,7 +3017,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 341: + case WID_EXPANDEDBARTERMARKETWND: if (this->window_4F268) { this->Schedule(this->window_4F268); closed = true; @@ -3026,7 +3027,7 @@ bool UIWindowMgr::CloseWindow(int id) { } } break; - case 342: + case WID_EXPANDEDBARTERITEMPURCHASEWND: if (this->window_4F26C) { if (g_modeMgr.gameMode) { g_modeMgr.gameMode->SendMsg(322, 0, 0, 0, 0); @@ -3039,63 +3040,63 @@ bool UIWindowMgr::CloseWindow(int id) { } } break; - case 49: + case WID_NOTIFYJOBLEVELUPWND: if (this->unknown_0244) { this->Schedule(this->unknown_0244); this->unknown_0244 = nullptr; closed = true; } break; - case 21: + case WID_NOTIFYLEVELUPWND: if (this->unknown_0240) { this->Schedule(this->unknown_0240); this->unknown_0240 = nullptr; closed = true; } break; - case 143: + case WID_NOTIFYQUESTWND: if (this->unknown_0248) { this->Schedule(this->unknown_0248); this->unknown_0248 = nullptr; closed = true; } break; - case 190: + case WID_NCASH_CALLWND: if (this->unknown_024C) { this->Schedule(this->unknown_024C); this->unknown_024C = nullptr; closed = true; } break; - case 47: + case WID_CARDITEMILLUSTWND: if (this->unknown_023C) { this->Schedule(this->unknown_023C); this->unknown_023C = nullptr; closed = true; } break; - case 201: + case WID_MONSTERDISPLAYWND: if (this->unknown_0424) { this->Schedule(this->unknown_0424); this->unknown_0424 = nullptr; closed = true; } break; - case 19: + case WID_RESTARTWND: if (this->unknown_0238) { this->Schedule(this->unknown_0238); this->unknown_0238 = nullptr; closed = true; } break; - case 48: + case WID_QUITWND: if (this->unknown_0234) { this->Schedule(this->unknown_0234); this->unknown_0234 = nullptr; closed = true; } break; - case 46: + case WID_SKILLDESCRIBEWND: if (this->window_0230) { this->Schedule(this->window_0230); this->window_0230 = nullptr; @@ -3103,21 +3104,21 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_0048 = 0; } break; - case 50: + case WID_ITEMPARAMCHANGEDISPLAYWND: if (this->unknown_022C) { this->Schedule(this->unknown_022C); this->unknown_022C = nullptr; closed = true; } break; - case 82: + case WID_COMBINEDCARDITEMCOLLECTIONWND: if (this->unknown_0228) { this->Schedule(this->unknown_0228); this->unknown_0228 = nullptr; closed = true; } break; - case 12: + case WID_ITEMCOLLECTIONWND: if (this->unknown_0218) { this->Schedule(this->unknown_0218); closed = true; @@ -3127,7 +3128,7 @@ bool UIWindowMgr::CloseWindow(int id) { } } break; - case 234: + case WID_ITEMCOLLECTION_COMPARISONWND: if (this->unknown_0220) { this->Schedule(this->unknown_0220); closed = true; @@ -3137,21 +3138,21 @@ bool UIWindowMgr::CloseWindow(int id) { } } break; - case 250: + case WID_COMBINEDCARDITEMCOLLECTION_COMPARISONWND: if (this->unknown_0224) { this->Schedule(this->unknown_0224); this->unknown_0224 = nullptr; closed = true; } break; - case 14: + case WID_MINIMAPZOOMWND: if (this->unknown_01C0) { this->Schedule(this->unknown_01C0); this->unknown_01C0 = nullptr; closed = true; } break; - case 37: + case WID_NEWSKILLLISTWND: if (g_windowMgr.LookupWindow(10030)) { this->CloseWindow(10030); } @@ -3163,7 +3164,7 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_077C = 0; } break; - case 33: + case WID_ITEMSTOREWND: if (this->window_0288) { this->Schedule(this->window_0288); this->window_0288 = nullptr; @@ -3177,7 +3178,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = this->CloseWindow(34); g_windowMgr.DismissTransient(); break; - case 34: + case WID_MESSENGERGROUPWND: if (this->window_02C8) { this->Schedule(this->window_02C8); this->window_02C8 = nullptr; @@ -3188,7 +3189,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 41: + case WID_MERCHANTSHOPMAKEWND_MODE_0: this->CloseWindow(42); if (this->unknown_02FC) { this->Schedule(this->unknown_02FC); @@ -3196,14 +3197,14 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 42: + case WID_MERCHANTMIRRORITEMWND_MODE_0: if (this->unknown_02F8) { this->Schedule(reinterpret_cast(this->unknown_02F8)); this->unknown_02F8 = 0; closed = true; } break; - case 40: + case WID_MERCHANTITEMWND: if (this->unknown_02F4) { this->Schedule(this->unknown_02F4); this->unknown_02F4 = nullptr; @@ -3211,49 +3212,49 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_0790 = 0; } break; - case 51: + case WID_CANDIDATEWND: if (this->window_03A4) { this->Schedule(this->window_03A4); this->window_03A4 = nullptr; closed = true; } break; - case 52: + case WID_COMPOSITIONWND: if (this->unknown_03A8) { this->Schedule(this->unknown_03A8); this->unknown_03A8 = nullptr; closed = true; } break; - case 58: + case WID_NOTIFYITEMOBTAINWND: if (this->unknown_031C) { this->Schedule(this->unknown_031C); this->unknown_031C = nullptr; closed = true; } break; - case 56: + case WID_NPCEDITDIALOGWND: if (this->unknown_0314) { this->Schedule(this->unknown_0314); this->unknown_0314 = nullptr; closed = true; } break; - case 100: + case WID_NPCTEXTEDITDIALOGWND: if (this->unknown_0318) { this->Schedule(this->unknown_0318); this->unknown_0318 = nullptr; closed = true; } break; - case 55: + case WID_SKILLNAMECHANGEWND: if (this->unknown_0310) { this->Schedule(this->unknown_0310); this->unknown_0310 = nullptr; closed = true; } break; - case 212: + case WID_GUILDHELPERWND: if (this->unknown_0430) { this->unknown_0430->StoreInfo(); this->Schedule(this->unknown_0430); @@ -3261,21 +3262,21 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 214: + case WID_GUILDTIPWND: if (this->unknown_0434) { this->Schedule(this->unknown_0434); this->unknown_0434 = nullptr; closed = true; } break; - case 213: + case WID_CREATEGUILDWND_MODE_0: if (this->unknown_0438) { this->Schedule(this->unknown_0438); this->unknown_0438 = nullptr; closed = true; } break; - case 215: + case WID_CREATEGUILDWND_MODE_1: if (this->unknown_043C) { this->Schedule(this->unknown_043C); this->unknown_043C = nullptr; @@ -3297,7 +3298,7 @@ bool UIWindowMgr::CloseWindow(int id) { } break; } - case 61: + case WID_GUILDMEMBERMANAGEWND: if (this->window_0324) { this->window_0324->StoreInfo(); this->Schedule(this->window_0324); @@ -3305,7 +3306,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 62: + case WID_GUILDPOSITIONMANAGEWND: if (this->unknown_0328) { this->unknown_0328->StoreInfo(); this->Schedule(this->unknown_0328); @@ -3313,7 +3314,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 63: + case WID_GUILDSKILLWND: if (this->window_032C) { this->window_032C->StoreInfo(); this->Schedule(this->window_032C); @@ -3321,7 +3322,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 64: + case WID_GUILDBANISHEDMEMBERWND: if (this->unknown_0330) { this->unknown_0330->StoreInfo(); this->Schedule(this->unknown_0330); @@ -3329,7 +3330,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 65: + case WID_GUILDNOTICEWND: if (this->unknown_0334) { this->unknown_0334->StoreInfo(); this->Schedule(this->unknown_0334); @@ -3337,7 +3338,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 66: + case WID_GUILDTOTALINFOWND: if (this->unknown_0338) { this->unknown_0338->StoreInfo(); this->Schedule(this->unknown_0338); @@ -3345,7 +3346,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 60: + case WID_GUILDINFOMANAGEWND: if (this->window_0320) { this->window_0320->StoreInfo(); this->Schedule(this->window_0320); @@ -3353,201 +3354,201 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 78: + case WID_ILLUSTWND: if (this->unknown_0348) { this->Schedule(this->unknown_0348); this->unknown_0348 = nullptr; closed = true; } break; - case 216: case 217: case 218: case 219: case 220: case 221: case 222: case 223: case 224: case 225: + case WID_MULTIILLUSTWND_SLOT_0: case WID_MULTIILLUSTWND_SLOT_1: case WID_MULTIILLUSTWND_SLOT_2: case WID_MULTIILLUSTWND_SLOT_3: case WID_MULTIILLUSTWND_SLOT_4: case WID_MULTIILLUSTWND_SLOT_5: case WID_MULTIILLUSTWND_SLOT_6: case WID_MULTIILLUSTWND_SLOT_7: case WID_MULTIILLUSTWND_SLOT_8: case WID_MULTIILLUSTWND_SLOT_9: if (this->unknown_034C[id - 216]) { this->Schedule(this->unknown_034C[id - 216]); this->unknown_034C[id - 216] = nullptr; closed = true; } break; - case 76: + case WID_GUILDBANREASONDESCWND: if (this->unknown_0344) { this->Schedule(this->unknown_0344); this->unknown_0344 = nullptr; closed = true; } break; - case 75: + case WID_GUILDLEAVEREASONDESCWND: if (this->unknown_0340) { this->Schedule(this->unknown_0340); this->unknown_0340 = nullptr; closed = true; } break; - case 68: + case WID_FRIENDOPTIONWND: if (this->unknown_033C) { this->Schedule(this->unknown_033C); this->unknown_033C = nullptr; closed = true; } break; - case 53: + case WID_PARTYSETTINGWND_PARTYCOUNT: if (this->unknown_030C) { this->Schedule(this->unknown_030C); this->unknown_030C = nullptr; closed = true; } break; - case 208: + case WID_PARTYINVITATIONTOWND: if (this->unknown_042C) { this->Schedule(this->unknown_042C); this->unknown_042C = nullptr; closed = true; } break; - case 207: + case WID_PARTYSETTINGWND_HEIGHT_220: this->CloseWindow(53); closed = true; break; - case 38: + case WID_TIPOFTHEDAYWND: if (this->unknown_02F0) { this->Schedule(this->unknown_02F0); this->unknown_02F0 = nullptr; closed = true; } break; - case 70: + case WID_JOINGUILDACCEPTWND: if (this->unknown_02E8) { this->Schedule(this->unknown_02E8); this->unknown_02E8 = nullptr; closed = true; } break; - case 72: + case WID_ALLYGUILDACCEPTWND: if (this->unknown_02EC) { this->Schedule(this->unknown_02EC); this->unknown_02EC = nullptr; closed = true; } break; - case 35: + case WID_JOINPARTYACCEPTWND: if (this->unknown_02CC) { this->Schedule(this->unknown_02CC); this->unknown_02CC = nullptr; closed = true; } break; - case 104: + case WID_COUPLEACCEPTWND: if (this->unknown_02D0) { this->Schedule(this->unknown_02D0); this->unknown_02D0 = nullptr; closed = true; } break; - case 119: + case WID_STARPLACEACCEPTWND: if (this->unknown_02D4) { this->Schedule(this->unknown_02D4); this->unknown_02D4 = nullptr; closed = true; } break; - case 163: + case WID_MIXACCEPTWND: if (this->unknown_02D8) { this->Schedule(this->unknown_02D8); this->unknown_02D8 = nullptr; closed = true; } break; - case 138: + case WID_YOURITEMWND: if (this->unknown_02DC) { this->Schedule(this->unknown_02DC); this->unknown_02DC = nullptr; closed = true; } break; - case 105: + case WID_BABYACCEPTWND: if (this->unknown_02E0) { this->Schedule(this->unknown_02E0); this->unknown_02E0 = nullptr; closed = true; } break; - case 110: + case WID_BABYACCEPTWND2: if (this->unknown_02E4) { this->Schedule(this->unknown_02E4); this->unknown_02E4 = nullptr; closed = true; } break; - case 32: + case WID_EXCHANGEACCEPTWND: if (this->unknown_0284) { this->Schedule(this->unknown_0284); this->unknown_0284 = nullptr; closed = true; } break; - case 29: + case WID_PASSWORDWND: if (this->unknown_0280) { this->Schedule(this->unknown_0280); this->unknown_0280 = nullptr; closed = true; } break; - case 79: + case WID_MAKETARGETLISTWND: if (this->unknown_0374) { this->Schedule(this->unknown_0374); this->unknown_0374 = nullptr; } break; - case 107: + case WID_ITEMREPAIRWND: if (this->unknown_0200) { this->Schedule(this->unknown_0200); this->unknown_0200 = nullptr; } break; - case 111: + case WID_WEAPONREFINEWND: if (this->unknown_0204) { this->Schedule(this->unknown_0204); this->unknown_0204 = nullptr; } break; - case 80: + case WID_MAKETARGETPROCESSWND: if (this->unknown_0378) { this->Schedule(this->unknown_0378); this->unknown_0378 = nullptr; } break; - case 81: + case WID_MAKETARGETRESULTWND: if (this->unknown_037C) { this->Schedule(this->unknown_037C); this->unknown_037C = nullptr; } break; - case 85: + case WID_KEYSTROKEWND: if (this->window_03AC) { this->Schedule(this->window_03AC); this->window_03AC = nullptr; } break; - case 86: + case WID_EMOTIONWND: if (this->unknown_0380) { this->Schedule(this->unknown_0380); this->unknown_0380 = nullptr; closed = true; } break; - case 87: + case WID_CASHEMOTIONLISTWND: if (this->unknown_0384) { this->Schedule(this->unknown_0384); this->unknown_0384 = nullptr; closed = true; } break; - case 88: + case WID_PETINFOWND: if (this->window_038C) { this->Schedule(this->window_038C); this->window_038C = nullptr; closed = true; } break; - case 90: + case WID_PETEGGLISTWND: if (this->unknown_0390) { this->Schedule(this->unknown_0390); this->unknown_0390 = nullptr; @@ -3555,77 +3556,77 @@ bool UIWindowMgr::CloseWindow(int id) { g_modeMgr.gameMode->SendMsg(146, -1, 0, 0, 0); } break; - case 91: + case WID_PETTAMINGDECEIVEWND: if (this->unknown_0394) { this->Schedule(this->unknown_0394); this->unknown_0394 = nullptr; closed = true; } break; - case 94: + case WID_MAKINGARROWLISTWND: if (this->unknown_0398) { this->Schedule(this->unknown_0398); this->unknown_0398 = nullptr; closed = true; } break; - case 95: + case WID_SELECTCARTWND: if (this->unknown_039C) { this->Schedule(this->unknown_039C); this->unknown_039C = nullptr; closed = true; } break; - case 99: + case WID_SPELLLISTWND: if (this->unknown_03A0) { this->Schedule(this->unknown_03A0); this->unknown_03A0 = nullptr; closed = true; } break; - case 103: + case WID_PROHIBITLISTWND: if (this->window_0388) { this->Schedule(this->window_0388); this->window_0388 = nullptr; closed = true; } break; - case 106: + case WID_BOOKWND: if (this->unknown_03B0) { this->Schedule(this->unknown_03B0); this->unknown_03B0 = nullptr; closed = true; } break; - case 109: + case WID_JOINFRIENDACCEPTWND: if (this->unknown_03B4) { this->Schedule(this->unknown_03B4); this->unknown_03B4 = nullptr; closed = true; } break; - case 199: + case WID_SECONDPASSWORDINPUTWND: if (this->unknown_03B8) { this->Schedule(this->unknown_03B8); this->unknown_03B8 = nullptr; closed = true; } break; - case 200: + case WID_SECONDPASSWORDEDITWND: if (this->unknown_03BC) { this->Schedule(this->unknown_03BC); this->unknown_03BC = nullptr; closed = true; } break; - case 113: + case WID_HOMUNINFOWND: if (this->window_03C0) { this->Schedule(this->window_03C0); this->window_03C0 = nullptr; closed = true; } break; - case 114: + case WID_SKILLLISTWND_SKILLTAB_0: if (this->window_03C4) { this->Schedule(this->window_03C4); this->window_03C4 = nullptr; @@ -3633,39 +3634,39 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_08EC = 0; } break; - case 125: + case WID_MERINFOWND: if (this->window_03C8) { this->Schedule(this->window_03C8); this->window_03C8 = nullptr; closed = true; } break; - case 187: + case WID_REPLAYCONTROLWND: this->Schedule(this->window_4F168); this->window_4F168 = nullptr; closed = true; break; - case 198: + case WID_REPLAYRECCONTROLWND: if (this->window_4F164) { this->Schedule(this->window_4F164); this->window_4F164 = nullptr; closed = true; } break; - case 203: + case WID_NAVIGATIONV4WND: if (this->window_4F174) { this->Schedule(this->window_4F174); this->window_4F174 = nullptr; closed = true; } break; - case 229: + case WID_NAVIGATIONHELPWND: if (UIWindow* found = this->LookupWindow(id)) { this->Schedule(found); closed = true; } break; - case 126: + case WID_SKILLLISTWND_SKILLTAB_1: if (this->window_03CC) { this->Schedule(this->window_03CC); this->window_03CC = nullptr; @@ -3673,28 +3674,28 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_0910 = 0; } break; - case 116: + case WID_AUTOMESSAGEWND: if (this->unknown_03D0) { this->Schedule(this->unknown_03D0); this->unknown_03D0 = nullptr; closed = true; } break; - case 128: + case WID_CHANGENAMEWND: if (this->window_03DC) { this->Schedule(this->window_03DC); this->window_03DC = nullptr; closed = true; } break; - case 129: + case WID_REBIRTHWND: if (this->unknown_03E0) { this->Schedule(this->unknown_03E0); this->unknown_03E0 = nullptr; closed = true; } break; - case 130: + case WID_SUBCHATHISWND_UNKNOWN_03E4: if (this->unknown_03E4) { reinterpret_cast(this->unknown_03E4)->StoreInfo(); this->Schedule(reinterpret_cast(this->unknown_03E4)); @@ -3702,7 +3703,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 131: + case WID_SUBCHATHISWND_UNKNOWN_03E8: if (this->unknown_03E8) { reinterpret_cast(this->unknown_03E8)->StoreInfo(); this->Schedule(reinterpret_cast(this->unknown_03E8)); @@ -3710,21 +3711,21 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 132: + case WID_BATTLEMSGOPTIONWND: if (this->unknown_03EC) { this->Schedule(this->unknown_03EC); this->unknown_03EC = nullptr; closed = true; } break; - case 133: + case WID_SUBCHATMINIWND: if (this->unknown_03F0) { this->Schedule(reinterpret_cast(this->unknown_03F0)); this->unknown_03F0 = 0; closed = true; } break; - case 137: + case WID_MEMORIALDUNWND: if (this->unknown_03F8) { static_cast(this->unknown_03F8)->ResetDungeonInfo(); this->Schedule(this->unknown_03F8); @@ -3733,14 +3734,14 @@ bool UIWindowMgr::CloseWindow(int id) { g_session.unknown_593C = 0; } break; - case 139: + case WID_EQUIPWND_VIEWOTHER_1: if (this->unknown_03FC) { this->Schedule(this->unknown_03FC); this->unknown_03FC = nullptr; closed = true; } break; - case 140: + case WID_ROMAPWND: if (this->modal) { this->Schedule(this->modal); this->modal = nullptr; @@ -3751,7 +3752,7 @@ bool UIWindowMgr::CloseWindow(int id) { } } break; - case 146: case 147: case 148: case 149: case 150: case 151: case 152: + case WID_ITEMSTORESUBWND_TAB_0: case WID_ITEMSTORESUBWND_TAB_1: case WID_ITEMSTORESUBWND_TAB_2: case WID_ITEMSTORESUBWND_TAB_3: case WID_ITEMSTORESUBWND_TAB_4: case WID_ITEMSTORESUBWND_TAB_5: case WID_ITEMSTORESUBWND_TAB_6: if (this->unknown_028C[id - 146]) { this->Schedule(this->unknown_028C[id - 146]); this->unknown_028C[id - 146] = nullptr; @@ -3761,7 +3762,7 @@ bool UIWindowMgr::CloseWindow(int id) { } } break; - case 309: + case WID_ITEMSTORESUBWND_TAB_7: if (this->unknown_02A8) { this->Schedule(this->unknown_02A8); this->unknown_02A8 = nullptr; @@ -3771,28 +3772,28 @@ bool UIWindowMgr::CloseWindow(int id) { } } break; - case 153: + case WID_ITEMSTOREFINDWND: if (this->unknown_02AC) { this->Schedule(this->unknown_02AC); this->unknown_02AC = nullptr; closed = true; } break; - case 173: + case WID_PARTYBOOKINGHELPWND: if (this->unknown_02C0) { this->Schedule(this->unknown_02C0); this->unknown_02C0 = nullptr; closed = true; } break; - case 170: + case WID_JOBLISTWND: if (this->unknown_02B8) { this->Schedule(this->unknown_02B8); this->unknown_02B8 = nullptr; closed = true; } break; - case 164: + case WID_SEEKPARTYWND: if (this->unknown_02B0) { this->Schedule(this->unknown_02B0); this->unknown_02B0 = nullptr; @@ -3800,47 +3801,47 @@ bool UIWindowMgr::CloseWindow(int id) { g_session.m_partyBooking.unknown_0000 = 0; } break; - case 168: + case WID_SEEKPARTYMBWND: if (this->unknown_02B4) { this->Schedule(this->unknown_02B4); this->unknown_02B4 = nullptr; closed = true; } break; - case 169: + case WID_SEEKPARTYLISTWND: if (this->unknown_02BC) { this->Schedule(this->unknown_02BC); this->unknown_02BC = nullptr; closed = true; } break; - case 155: + case WID_ESCOPTIONWND: if (this->unknown_0408) { this->Schedule(this->unknown_0408); this->unknown_0408 = nullptr; closed = true; } break; - case 156: case 158: case 159: case 165: case 166: case 167: case 171: case 181: case 183: case 191: + case WID_HOTKEYWND: case WID_RELOADLUASCRIPTWND: case WID_QUIKSLOTWND: case WID_BATTLEFIELD_DESCRIBEWND: case WID_BATTLEFIELD_STATUSWND: case WID_BATTLEFIELD_HELPWND: case 171: case WID_SEARCH_STORE_INFO: case WID_SHOWINFO_TESTLAYER: case WID_EXMACRO_SETUPWND: if (this->LookupWindow(id)) { if (UIWindow* found = this->LookupWindow(id)) { switch (id) { - case 156: + case WID_HOTKEYWND: this->Schedule(this->unknown_0404); this->unknown_0404 = nullptr; break; - case 157: - case 158: - case 159: - case 165: - case 166: - case 167: + case WID_JOINTO_BATTLEFIELDWND: + case WID_RELOADLUASCRIPTWND: + case WID_QUIKSLOTWND: + case WID_BATTLEFIELD_DESCRIBEWND: + case WID_BATTLEFIELD_STATUSWND: + case WID_BATTLEFIELD_HELPWND: case 171: - case 183: - case 191: + case WID_SHOWINFO_TESTLAYER: + case WID_EXMACRO_SETUPWND: this->Schedule(found); break; - case 181: + case WID_SEARCH_STORE_INFO: this->Schedule(found); g_session.ClearEntryList5BD4(); break; @@ -3855,7 +3856,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 174: + case WID_MERCHANTSHOPMAKEWND_MODE_1: this->CloseWindow(175); if (this->unknown_040C) { this->Schedule(this->unknown_040C); @@ -3863,49 +3864,49 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 175: + case WID_MERCHANTMIRRORITEMWND_MODE_1: if (this->unknown_0410) { this->Schedule(reinterpret_cast(this->unknown_0410)); this->unknown_0410 = 0; closed = true; } break; - case 176: + case WID_MERCHANTITEMMYSHOPWND_MODE_1: if (this->unknown_0414) { this->Schedule(this->unknown_0414); this->unknown_0414 = nullptr; closed = true; } break; - case 177: + case WID_MERCHANTITEMSHOPWND_MODE_1: if (this->unknown_0418) { this->Schedule(this->unknown_0418); this->unknown_0418 = nullptr; closed = true; } break; - case 178: + case WID_MERCHANTITEMPURCHASEWND_MODE_1: if (this->unknown_041C) { this->Schedule(this->unknown_041C); this->unknown_041C = nullptr; closed = true; } break; - case 179: + case WID_MERCHANTMIRRORITEMWND_MODE_2: if (this->unknown_0420) { this->Schedule(reinterpret_cast(this->unknown_0420)); this->unknown_0420 = 0; closed = true; } break; - case 196: + case WID_COLLECTIONSYSTEMWND: if (this->window_4F18C) { this->Schedule(this->window_4F18C); this->window_4F18C = nullptr; closed = true; } break; - case 237: + case WID_CLANINFOMANAGEWND: if (this->window_0444) { this->window_0444->StoreInfo(); this->Schedule(this->window_0444); @@ -3913,28 +3914,28 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 275: + case WID_BANK_NEWWND: if (this->window_0448) { this->Schedule(this->window_0448); this->window_0448 = nullptr; closed = true; } break; - case 253: + case WID_GUILD_STORAGE_LOG: if (this->window_044C) { this->Schedule(this->window_044C); this->window_044C = nullptr; closed = true; } break; - case 262: + case WID_OPENMAILBOXWND: if (this->unknown_0450) { this->Schedule(this->unknown_0450); this->unknown_0450 = nullptr; closed = true; } break; - case 263: + case WID_RODEXINBOXWND: if (this->unknown_0454) { std::int16_t packet = 0x9E9; GetRagConnection().Send(g_packetLengths.FixedLength(packet), &packet); @@ -3946,7 +3947,7 @@ bool UIWindowMgr::CloseWindow(int id) { } } break; - case 264: + case WID_RODEXCOMPOSEWND: if (this->unknown_0458) { std::int16_t packet = 0xA03; GetRagConnection().Send(g_packetLengths.FixedLength(packet), &packet); @@ -3957,7 +3958,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 265: + case WID_RODEXCONTENTSWND: if (this->unknown_045C) { g_session.ClearItemQuantities(); this->Schedule(this->unknown_045C); @@ -3965,21 +3966,21 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 259: + case WID_SECONDCOSTUMEWND: if (this->window_4F170) { this->Schedule(this->window_4F170); this->window_4F170 = nullptr; closed = true; } break; - case 268: + case WID_OPENROULLETTEWND: if (this->unknown_0460) { this->Schedule(this->unknown_0460); this->unknown_0460 = nullptr; closed = true; } break; - case 269: + case WID_ROULLETTEWND: if (this->unknown_0464) { std::int16_t packet = 0xA1D; GetRagConnection().Send(g_packetLengths.FixedLength(packet), &packet); @@ -3989,28 +3990,28 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 36: + case WID_SHORTCUTWND: if (this->window_01E8) { this->Schedule(this->window_01E8); this->window_01E8 = nullptr; closed = true; } break; - case 273: + case WID_MINIMAPWND: if (this->window_4F1CC) { this->Schedule(this->window_4F1CC); this->window_4F1CC = nullptr; closed = true; } break; - case 274: + case WID_EDITCTRLWND: if (this->window_4F1D0) { this->Schedule(this->window_4F1D0); this->window_4F1D0 = nullptr; closed = true; } break; - case 276: + case WID_ROUNDBOXTOOLTIPWND: if (this->window_4F1E4) { this->Schedule(this->window_4F1E4); this->window_4F1E4 = nullptr; @@ -4018,14 +4019,14 @@ bool UIWindowMgr::CloseWindow(int id) { this->visible_276 = 0; } break; - case 284: + case WID_CAPTCHAREGISTERWND: if (this->window_4F1E8) { this->Schedule(this->window_4F1E8); this->window_4F1E8 = nullptr; closed = true; } break; - case 285: + case WID_MACRODETECTORWND: if (this->window_4F1EC) { this->Schedule(this->window_4F1EC); this->window_4F1EC = nullptr; @@ -4033,7 +4034,7 @@ bool UIWindowMgr::CloseWindow(int id) { this->window_4F1FC = nullptr; } break; - case 286: + case WID_MACROREPORTERWND: if (this->window_4F1F0) { this->Schedule(this->window_4F1F0); this->window_4F1F0 = nullptr; @@ -4041,28 +4042,28 @@ bool UIWindowMgr::CloseWindow(int id) { this->unknown_4F210 = false; } break; - case 287: + case WID_MACROUSERINFOWND: if (this->window_4F1F4) { this->Schedule(this->window_4F1F4); this->window_4F1F4 = nullptr; closed = true; } break; - case 288: + case WID_CAPTCHAPREVIEWWND: if (this->window_4F1F8) { this->Schedule(this->window_4F1F8); this->window_4F1F8 = nullptr; closed = true; } break; - case 180: + case WID_LOGINOTPWND: if (UIWindow* found = this->LookupWindow(id)) { this->Schedule(found); this->window_01D0 = nullptr; closed = true; } break; - case 318: + case WID_CASHSHOP_WND: if (this->window_4F254) { this->Schedule(this->window_4F254); this->window_4F254 = nullptr; @@ -4071,21 +4072,21 @@ bool UIWindowMgr::CloseWindow(int id) { GetRagConnection().Send(g_packetLengths.FixedLength(packet), &packet); } break; - case 315: + case WID_TIPBOXWND: if (this->window_0468) { this->Schedule(this->window_0468); this->window_0468 = nullptr; closed = true; } break; - case 321: + case WID_RENEWQUESTWND: if (UIWindow* found = this->LookupWindow(id)) { this->Schedule(found); this->unknown_0568 = 0; closed = true; } break; - case 324: + case WID_ADVENPARTYBOARDWND: if (this->window_4F274) { this->window_4F274->StoreInfo(); this->Schedule(this->window_4F274); @@ -4093,7 +4094,7 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 323: + case WID_REGISTERPARTYWND: if (this->window_4F270) { this->window_4F270->StoreInfo(); this->Schedule(this->window_4F270); @@ -4101,14 +4102,14 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 326: + case WID_REQUESTJOINPARTYWND: if (this->window_4F278) { this->Schedule(this->window_4F278); this->window_4F278 = nullptr; closed = true; } break; - case 345: + case WID_APPLYFORPARTYWND: if (this->window_4F27C) { this->window_4F27C->StoreInfo(); this->Schedule(this->window_4F27C); @@ -4116,13 +4117,13 @@ bool UIWindowMgr::CloseWindow(int id) { closed = true; } break; - case 359: + case WID_MACROBLACKLISTCHECKWND: if (this->window_4F288) { this->Schedule(this->window_4F288); this->window_4F288 = nullptr; } break; - case 10024: + case WID_WAITDBSAVEWND: if (this->window_4F2AC) { this->Schedule(this->window_4F2AC); this->window_4F2AC = nullptr; @@ -4663,22 +4664,22 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { if (this->window_4F288) { switch (id) { - case 8: - case 10: - case 18: - case 40: - case 155: - case 203: + case WID_ITEMWND: + case WID_EQUIPWND_VIEWOTHER_0: + case WID_MENUWND: + case WID_MERCHANTITEMWND: + case WID_ESCOPTIONWND: + case WID_NAVIGATIONV4WND: case 251: - case 263: - case 275: + case WID_RODEXINBOXWND: + case WID_BANK_NEWWND: return nullptr; } } if (!this->IsOrderFixed(id)) { this->RemoveOrder(id); - if (id == 203) { + if (id == WID_NAVIGATIONV4WND) { this->windowHistory.push_back(int(id)); } else { this->windowHistory.push_front(int(id)); @@ -4691,7 +4692,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { }; UIWindow* window = nullptr; switch (id) { - case 0: + case WID_BASICINFOWND: window = this->unknown_01DC; if (window == nullptr) { window = new UIBasicInfoWnd(); @@ -4711,7 +4712,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(g_replayAnimationScaling ? Replay::Instance().header.options.Get(ReplayRecordOption::BasicInfo) : 1); if (this->savedWindowIds.size() != 0) { for (int savedId : this->savedWindowIds) { - if (savedId == 301) { + if (savedId == WID_MINIPARTYWND) { this->RebuildMiniPartyWindows(); } else { this->EnsureWindow(savedId); @@ -4757,7 +4758,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->ShowWindowById(36, this->m_normalItemSlotWindow.show); this->ShowWindowById(15, 0); break; - case 1: + case WID_NEWCHATWND: window = this->window_01C8; if (window == nullptr) { window = new UINewChatWnd(); @@ -4767,13 +4768,13 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } this->window_01C8->SendMsg(nullptr, 0x22, 0, 0, 0, 0); break; - case 2: + case WID_SELECTSERVERWND: window = new UISelectServerWnd(); window->SetSize(280, 200); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300) - 80); this->AddRendered(window); break; - case 325: + case WID_RPIMAGEWND2: if (this->LookupWindow(325) == nullptr) { window = new UIRPImageWnd2(); this->window_4F25C = window; @@ -4784,33 +4785,33 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(325); } break; - case 3: + case WID_LOGINWND: window = new UILoginWnd(); this->window_01CC = window; window->SetSize(301, 132); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300)); this->AddRendered(window); break; - case 180: + case WID_LOGINOTPWND: window = new UILoginOTPWnd(); this->window_01D0 = window; window->SetSize(280, 142); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300)); this->AddRendered(window); break; - case 93: + case WID_NOTICEWND: window = new UINoticeWnd(); window->SetSize(600, 400); window->Move(CenterOnViewportX(33), CenterOnViewportY(40)); this->AddRendered(window); break; - case 4: + case WID_MAKECHARWND: window = new UIMakeCharWnd(); window->SetSize(150, 286); window->Move((g_renderer->viewport.width - 150) / 2, (g_renderer->viewport.height - 286) / 2); this->AddRendered(window); break; - case 277: { + case WID_NEWSELECTCHARWND: { window = new UINewSelectCharWnd(); this->window_03D4 = window; UIWindow* background = new UIRPImageWnd("유저인터페이스\\select_character_ver3\\bg_back1.tga", 5); @@ -4834,7 +4835,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } break; } - case 278: { + case WID_NEWMAKECHARWND: { window = new UINewMakeCharWnd(); UIWindow* background = new UIRPImageWnd("", 1); background->SetSize(1028, 768); @@ -4845,7 +4846,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); break; } - case 8: + case WID_ITEMWND: window = this->unknown_01D4; if (window == nullptr) { this->RecordWindowPacket(8); @@ -4863,7 +4864,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { basicInfo->SendMsg(nullptr, 6, 0x11E, 0xC2, 0, 0); } break; - case 204: + case WID_QUESTDISPLAY: if (this->window_0428 == nullptr) { UIQuestDisplay* display = new UIQuestDisplay(); this->window_0428 = display; @@ -4875,13 +4876,13 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->window_0428->SendMsg(nullptr, 0x22, reinterpret_cast(base + 0x570), 0, 0, 0); } break; - case 6: + case WID_WAITWND: window = new UIWaitWnd(); window->SetSize(280, 120); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300)); this->AddRendered(window); break; - case 7: + case WID_LOADINGWND: window = this->unknown_01BC; if (window == nullptr) { window = new UILoadingWnd(); @@ -4892,13 +4893,13 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 9: + case WID_TOOLTIPWND: window = new UIToolTipWnd(); window->SetSize(200, 120); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300)); this->AddRendered(window); break; - case 36: + case WID_SHORTCUTWND: window = this->window_01E8; if (window == nullptr) { window = new UIShortCutWnd(); @@ -4910,7 +4911,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { g_snapMgr.Add(window); } break; - case 10: + case WID_EQUIPWND_VIEWOTHER_0: window = this->unknown_01E0; if (window == nullptr) { window = new UIEquipWnd(); @@ -4925,7 +4926,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->unknown_05A4 = 1; break; - case 184: + case WID_NCASHWND: window = this->unknown_01E4; if (window == nullptr) { window = new UInCashWnd(); @@ -4938,7 +4939,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 11: + case WID_STATUSWND: window = this->unknown_01C4; if (window == nullptr) { window = new UIStatusWnd(); @@ -4956,7 +4957,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { basicInfo->SendMsg(nullptr, 6, 0x11E, 0xC0, 0, 0); } break; - case 37: + case WID_NEWSKILLLISTWND: window = this->window_02C4; if (window == nullptr) { window = new UINewSkillListWnd(); @@ -4973,7 +4974,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { basicInfo->SendMsg(nullptr, 6, 0x11E, 0xC4, 0, 0); } break; - case 33: + case WID_ITEMSTOREWND: window = this->window_0288; if (window == nullptr) { window = new UIItemStoreWnd(); @@ -4985,13 +4986,13 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 146: - case 147: - case 148: - case 149: - case 150: - case 151: - case 152: { + case WID_ITEMSTORESUBWND_TAB_0: + case WID_ITEMSTORESUBWND_TAB_1: + case WID_ITEMSTORESUBWND_TAB_2: + case WID_ITEMSTORESUBWND_TAB_3: + case WID_ITEMSTORESUBWND_TAB_4: + case WID_ITEMSTORESUBWND_TAB_5: + case WID_ITEMSTORESUBWND_TAB_6: { const int tab = id - 146; window = this->unknown_028C[tab]; if (window == nullptr) { @@ -5001,17 +5002,17 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { store->SetTabIndex(tab); int message = 0; switch (id) { - case 146: - case 147: - case 148: - case 149: + case WID_ITEMSTORESUBWND_TAB_0: + case WID_ITEMSTORESUBWND_TAB_1: + case WID_ITEMSTORESUBWND_TAB_2: + case WID_ITEMSTORESUBWND_TAB_3: message = tab + 0x5B9; break; - case 150: + case WID_ITEMSTORESUBWND_TAB_4: message = 0xC4F; break; - case 151: - case 152: + case WID_ITEMSTORESUBWND_TAB_5: + case WID_ITEMSTORESUBWND_TAB_6: message = tab + 0x5B8; break; } @@ -5023,7 +5024,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); break; } - case 309: + case WID_ITEMSTORESUBWND_TAB_7: window = this->unknown_02A8; if (window == nullptr) { UIItemStoreSubWnd* store = new UIItemStoreSubWnd(); @@ -5031,14 +5032,14 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->unknown_02A8 = window; store->SetTabIndex(7); window->SetSize(140, 145); - static_cast(this->unknown_02A8)->SetTitle(LookupMessage(id == 309 ? 0x5BF : 0)); + static_cast(this->unknown_02A8)->SetTitle(LookupMessage(id == WID_ITEMSTORESUBWND_TAB_7 ? 0x5BF : 0)); window->Move(CenterOnViewportX(200), ScaleByScreenHeight(200)); this->AddRendered(window); this->unknown_02A8->SendMsg(nullptr, 0x22, reinterpret_cast(base + 0x69C), 0, 0, 0); } window->Show(1); break; - case 153: + case WID_ITEMSTOREFINDWND: window = this->unknown_02AC; if (window == nullptr) { window = new UIItemStoreFindWnd(); @@ -5051,7 +5052,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 173: + case WID_PARTYBOOKINGHELPWND: if (this->unknown_02C0 == nullptr) { window = new UIPartyBookingHelpWnd(); this->unknown_02C0 = window; @@ -5060,7 +5061,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 170: + case WID_JOBLISTWND: if (this->unknown_02B8 == nullptr) { window = new UIJobListWnd(); this->unknown_02B8 = window; @@ -5070,7 +5071,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->unknown_02B8->SendMsg(nullptr, 0x22, reinterpret_cast(base + 0x6EC), 0, 0, 0); } break; - case 164: + case WID_SEEKPARTYWND: window = this->unknown_02B0; if (window == nullptr) { window = new UISeekPartyWnd(); @@ -5083,7 +5084,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); g_session.m_partyBooking.unknown_0000 = 1; break; - case 168: + case WID_SEEKPARTYMBWND: if (this->unknown_02B0 == nullptr) { if (this->unknown_02B4 == nullptr) { window = new UISeekPartyMBWnd(); @@ -5097,7 +5098,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } } break; - case 169: + case WID_SEEKPARTYLISTWND: if (this->unknown_02BC == nullptr) { window = new UISeekPartyListWnd(); this->unknown_02BC = window; @@ -5116,7 +5117,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->EnsureWindow(34)->SendMsg(nullptr, 6, 0xD7, 1, 0, 0); } break; - case 34: + case WID_MESSENGERGROUPWND: if (g_replayAnimationScaling && !Replay::Instance().header.options.Get(ReplayRecordOption::Party)) { break; } @@ -5133,7 +5134,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->unknown_073C = 1; break; - case 41: + case WID_MERCHANTSHOPMAKEWND_MODE_0: window = this->unknown_02FC; if (window == nullptr) { window = new UIMerchantShopMakeWnd(0); @@ -5146,7 +5147,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->EnsureWindow(42); break; - case 42: + case WID_MERCHANTMIRRORITEMWND_MODE_0: window = reinterpret_cast(this->unknown_02F8); if (window == nullptr) { window = new UIMerchantMirrorItemWnd(0); @@ -5158,7 +5159,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 40: + case WID_MERCHANTITEMWND: if (!g_mapPropertyMgr->GetValue(g_session.unknown_0000, 40)) { g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0x94C)), 255, 0, 0, 0); @@ -5176,7 +5177,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->unknown_0790 = 1; break; - case 58: + case WID_NOTIFYITEMOBTAINWND: window = this->unknown_031C; if (window == nullptr) { window = new UINotifyItemObtainWnd(); @@ -5187,7 +5188,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 56: + case WID_NPCEDITDIALOGWND: window = this->unknown_0314; if (window == nullptr) { window = new UINpcEditDialogWnd(); @@ -5198,7 +5199,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 100: + case WID_NPCTEXTEDITDIALOGWND: window = this->unknown_0318; if (window == nullptr) { window = new UINpcTextEditDialogWnd(); @@ -5209,7 +5210,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 55: + case WID_SKILLNAMECHANGEWND: window = this->unknown_0310; if (window == nullptr) { window = new UISkillNameChangeWnd(); @@ -5220,7 +5221,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 212: + case WID_GUILDHELPERWND: window = this->unknown_0430; if (window == nullptr) { window = new UIGuildHelperWnd(); @@ -5232,7 +5233,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 214: + case WID_GUILDTIPWND: window = this->unknown_0434; if (window == nullptr) { window = new UIGuildTipWnd(); @@ -5242,7 +5243,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 213: + case WID_CREATEGUILDWND_MODE_0: window = this->unknown_0438; if (window == nullptr) { window = new UICreateGuildWnd(0); @@ -5253,7 +5254,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 215: + case WID_CREATEGUILDWND_MODE_1: window = this->unknown_043C; if (window == nullptr) { window = new UICreateGuildWnd(1); @@ -5294,7 +5295,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } break; } - case 61: + case WID_GUILDMEMBERMANAGEWND: window = this->window_0324; if (window == nullptr) { window = new UIGuildMemberManageWnd(); @@ -5306,7 +5307,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 62: + case WID_GUILDPOSITIONMANAGEWND: window = this->unknown_0328; if (window == nullptr) { window = new UIGuildPositionManageWnd(); @@ -5318,7 +5319,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 63: + case WID_GUILDSKILLWND: window = this->window_032C; if (window == nullptr) { window = new UIGuildSkillWnd(); @@ -5330,7 +5331,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 64: + case WID_GUILDBANISHEDMEMBERWND: window = this->unknown_0330; if (window == nullptr) { window = new UIGuildBanishedMemberWnd(); @@ -5342,7 +5343,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 65: + case WID_GUILDNOTICEWND: window = this->unknown_0334; if (window == nullptr) { window = new UIGuildNoticeWnd(); @@ -5354,7 +5355,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 66: + case WID_GUILDTOTALINFOWND: window = this->unknown_0338; if (window == nullptr) { window = new UIGuildTotalInfoWnd(); @@ -5366,7 +5367,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 60: + case WID_GUILDINFOMANAGEWND: window = this->window_0320; if (window == nullptr) { window = new UIGuildInfoManageWnd(); @@ -5378,7 +5379,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 75: + case WID_GUILDLEAVEREASONDESCWND: window = this->unknown_0340; if (window == nullptr) { window = new UIGuildLeaveReasonDescWnd(); @@ -5389,7 +5390,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 78: + case WID_ILLUSTWND: window = this->unknown_0348; if (window == nullptr) { window = new UIIllustWnd(); @@ -5404,16 +5405,16 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 216: - case 217: - case 218: - case 219: - case 220: - case 221: - case 222: - case 223: - case 224: - case 225: + case WID_MULTIILLUSTWND_SLOT_0: + case WID_MULTIILLUSTWND_SLOT_1: + case WID_MULTIILLUSTWND_SLOT_2: + case WID_MULTIILLUSTWND_SLOT_3: + case WID_MULTIILLUSTWND_SLOT_4: + case WID_MULTIILLUSTWND_SLOT_5: + case WID_MULTIILLUSTWND_SLOT_6: + case WID_MULTIILLUSTWND_SLOT_7: + case WID_MULTIILLUSTWND_SLOT_8: + case WID_MULTIILLUSTWND_SLOT_9: window = this->unknown_034C[id - 216]; if (window == nullptr) { window = new UIMultiIllustWnd(); @@ -5424,7 +5425,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 76: + case WID_GUILDBANREASONDESCWND: window = this->unknown_0344; if (window == nullptr) { window = new UIGuildBanReasonDescWnd(); @@ -5435,7 +5436,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 68: + case WID_FRIENDOPTIONWND: window = this->unknown_033C; if (window == nullptr) { window = new UIFriendOptionWnd(); @@ -5447,7 +5448,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 53: + case WID_PARTYSETTINGWND_PARTYCOUNT: window = this->unknown_030C; if (window == nullptr) { window = new UIPartySettingWnd(); @@ -5459,7 +5460,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 207: + case WID_PARTYSETTINGWND_HEIGHT_220: window = this->unknown_030C; if (window == nullptr) { window = new UIPartySettingWnd(); @@ -5471,7 +5472,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 208: + case WID_PARTYINVITATIONTOWND: window = this->unknown_042C; if (window == nullptr) { window = new UIPartyInvitationToWnd(); @@ -5482,7 +5483,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 52: + case WID_COMPOSITIONWND: window = this->unknown_03A8; if (window == nullptr) { window = new UICompositionWnd(); @@ -5493,7 +5494,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 51: + case WID_CANDIDATEWND: window = this->window_03A4; if (window == nullptr) { window = new UICandidateWnd(); @@ -5506,7 +5507,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 38: + case WID_TIPOFTHEDAYWND: window = this->unknown_02F0; if (window == nullptr) { window = new UITipOfTheDayWnd(); @@ -5517,7 +5518,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 70: + case WID_JOINGUILDACCEPTWND: window = this->unknown_02E8; if (window == nullptr) { window = new UIJoinGuildAcceptWnd(); @@ -5528,7 +5529,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 72: + case WID_ALLYGUILDACCEPTWND: window = this->unknown_02EC; if (window == nullptr) { window = new UIAllyGuildAcceptWnd(); @@ -5539,7 +5540,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 35: + case WID_JOINPARTYACCEPTWND: window = this->unknown_02CC; if (window == nullptr) { window = new UIJoinPartyAcceptWnd(); @@ -5550,7 +5551,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 104: + case WID_COUPLEACCEPTWND: window = this->unknown_02D0; if (window == nullptr) { window = new UICoupleAcceptWnd(); @@ -5561,7 +5562,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 119: + case WID_STARPLACEACCEPTWND: window = this->unknown_02D4; if (window == nullptr) { window = new UIStarPlaceAcceptWnd(); @@ -5572,7 +5573,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 163: + case WID_MIXACCEPTWND: window = this->unknown_02D8; if (window == nullptr) { window = new UIMixAcceptWnd(); @@ -5583,7 +5584,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 138: + case WID_YOURITEMWND: window = this->unknown_02DC; if (window == nullptr) { window = new UIYourItemWnd(); @@ -5594,7 +5595,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 105: + case WID_BABYACCEPTWND: window = this->unknown_02E0; if (window == nullptr) { window = new UIBabyAcceptWnd(); @@ -5605,7 +5606,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 110: + case WID_BABYACCEPTWND2: window = this->unknown_02E4; if (window == nullptr) { window = new UIBabyAcceptWnd2(); @@ -5616,7 +5617,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 32: + case WID_EXCHANGEACCEPTWND: window = this->unknown_0284; if (window == nullptr) { window = new UIExchangeAcceptWnd(); @@ -5628,7 +5629,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 29: + case WID_PASSWORDWND: window = this->unknown_0280; if (window == nullptr) { window = new UIPasswordWnd(); @@ -5639,7 +5640,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 15: + case WID_ITEMDROPCNTWND: window = this->window_01EC; if (window == nullptr) { window = new UIItemDropCntWnd(); @@ -5649,7 +5650,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 16: + case WID_SAYDIALOGWND_DIALOG: window = this->unknown_01F0; if (window == nullptr) { window = new UISayDialogWnd(); @@ -5663,7 +5664,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->unknown_01F0->unknown_004C = 1; this->rendered.sort(layerGreater); break; - case 226: + case WID_SAYDIALOGWND_OVERLAY: window = this->unknown_01F4; if (window == nullptr) { window = new UISayDialogWnd(); @@ -5674,7 +5675,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 28: + case WID_CHATROOMWND: window = this->window_027C; if (window == nullptr) { window = new UIChatRoomWnd(); @@ -5686,7 +5687,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 39: + case WID_CHOOSEWARPWND: window = this->unknown_020C; if (window == nullptr) { window = new UIChooseWarpWnd(); @@ -5697,7 +5698,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 17: + case WID_CHOOSE3WND: window = this->unknown_01F8; if (window == nullptr) { window = new UIChoose3Wnd(); @@ -5709,7 +5710,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 74: + case WID_ITEMCOMPOSITIONWND: window = this->unknown_0208; if (window == nullptr) { window = new UIItemCompositionWnd(); @@ -5721,7 +5722,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 73: + case WID_ITEMIDENTIFYWND: window = this->unknown_01FC; if (window == nullptr) { window = new UIItemIdentifyWnd(); @@ -5733,7 +5734,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 26: + case WID_COMBOBOXWND: window = this->unknown_0214; if (window == nullptr) { window = new UIComboBoxWnd(); @@ -5744,7 +5745,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 260: + case WID_COMBOBOXIDWND: window = this->unknown_021C; if (window == nullptr) { window = new UIComboBoxIDWnd(); @@ -5755,7 +5756,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 18: + case WID_MENUWND: window = this->unknown_0210; if (window == nullptr) { window = new UIMenuWnd(); @@ -5766,7 +5767,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 14: + case WID_MINIMAPZOOMWND: window = this->unknown_01C0; if (window == nullptr) { window = new UIMinimapZoomWnd(); @@ -5777,7 +5778,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 30: + case WID_CHATROOMCHANGEWND: window = this->window_0278; if (window == nullptr) { window = new UIChatRoomChangeWnd(); @@ -5788,7 +5789,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 27: + case WID_CHATROOMMAKEWND: window = this->window_0274; if (window == nullptr) { window = new UIChatRoomMakeWnd(); @@ -5799,7 +5800,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 25: + case WID_CHOOSESELLBUYWND: window = this->unknown_0264; if (window == nullptr) { window = new UIChooseSellBuyWnd(); @@ -5810,7 +5811,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 24: + case WID_ITEMSELLWND: window = this->unknown_025C; if (window == nullptr) { window = new UIItemSellWnd(); @@ -5822,7 +5823,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 161: + case WID_ITEMSELLWND2: window = this->unknown_0260; if (window == nullptr) { window = new UIItemSellWnd2(); @@ -5834,7 +5835,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 44: + case WID_MERCHANTITEMPURCHASEWND_MODE_0: window = this->unknown_0308; if (window == nullptr) { window = new UIMerchantItemPurchaseWnd(0); @@ -5846,7 +5847,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 23: + case WID_ITEMPURCHASEWND: window = this->unknown_0258; if (window == nullptr) { window = new UIItemPurchaseWnd(); @@ -5859,7 +5860,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->EnsureWindow(50); break; - case 45: + case WID_MERCHANTITEMMYSHOPWND_MODE_0: window = this->unknown_0304; if (window == nullptr) { window = new UIMerchantItemMyShopWnd(0); @@ -5871,7 +5872,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 43: + case WID_MERCHANTITEMSHOPWND_MODE_0: window = this->unknown_0300; if (window == nullptr) { window = new UIMerchantItemShopWnd(0); @@ -5883,7 +5884,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 22: + case WID_ITEMSHOPWND: window = this->unknown_0250; if (window == nullptr) { window = new UIItemShopWnd(); @@ -5895,7 +5896,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 160: + case WID_ITEMSHOPWND2: window = this->unknown_0254; if (window == nullptr) { window = new UIItemShopWnd2(); @@ -5907,7 +5908,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 254: + case WID_PARAITEMSHOPWND: window = this->unknown_0268; if (window == nullptr) { window = new UIParaItemShopWnd(); @@ -5919,7 +5920,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 255: + case WID_PARAITEMPURCHASEWND: window = this->unknown_026C; if (window == nullptr) { window = new UIParaItemPurchaseWnd(); @@ -5931,7 +5932,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 256: + case WID_PARARESULTWND: window = this->window_0270; if (window == nullptr) { window = new UIParaResultWnd(); @@ -5943,7 +5944,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 49: + case WID_NOTIFYJOBLEVELUPWND: window = this->unknown_0244; if (window == nullptr) { window = new UINotifyJobLevelUpWnd(); @@ -5954,7 +5955,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 21: + case WID_NOTIFYLEVELUPWND: window = this->unknown_0240; if (window == nullptr) { window = new UINotifyLevelUpWnd(); @@ -5965,7 +5966,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 143: + case WID_NOTIFYQUESTWND: window = this->unknown_0248; if (window == nullptr) { window = new UINotifyQuestWnd(); @@ -5976,7 +5977,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 190: + case WID_NCASH_CALLWND: window = this->unknown_024C; if (window == nullptr) { window = new UInCash_CallWnd(); @@ -5987,7 +5988,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(g_serviceOptions.Get(218)); break; - case 47: + case WID_CARDITEMILLUSTWND: window = this->unknown_023C; if (window == nullptr) { window = new UICardItemIllustWnd(); @@ -5998,7 +5999,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 201: + case WID_MONSTERDISPLAYWND: window = this->unknown_0424; if (window == nullptr) { window = new UIMonsterDisplayWnd(); @@ -6009,7 +6010,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 19: + case WID_RESTARTWND: window = this->unknown_0238; if (window == nullptr) { window = new UIRestartWnd(); @@ -6020,7 +6021,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 48: + case WID_QUITWND: window = this->unknown_0234; if (window == nullptr) { window = new UIQuitWnd(); @@ -6031,7 +6032,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 46: + case WID_SKILLDESCRIBEWND: window = this->window_0230; if (window == nullptr) { window = new UISkillDescribeWnd(); @@ -6042,7 +6043,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 50: + case WID_ITEMPARAMCHANGEDISPLAYWND: window = this->unknown_022C; if (window == nullptr) { window = new UIItemParamChangeDisplayWnd(); @@ -6054,7 +6055,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 82: + case WID_COMBINEDCARDITEMCOLLECTIONWND: window = this->unknown_0228; if (window == nullptr) { window = new UICombinedCardItemCollectionWnd(); @@ -6066,7 +6067,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 12: + case WID_ITEMCOLLECTIONWND: window = this->unknown_0218; if (window == nullptr) { window = new UIItemCollectionWnd(); @@ -6078,7 +6079,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 234: + case WID_ITEMCOLLECTION_COMPARISONWND: window = this->unknown_0220; if (window == nullptr) { window = new UIItemCollection_ComparisonWnd(); @@ -6089,7 +6090,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->SendMsg(nullptr, 0x22, 0, 0, 0, 0); window->Show(1); break; - case 250: + case WID_COMBINEDCARDITEMCOLLECTION_COMPARISONWND: window = this->unknown_0224; if (window == nullptr) { window = new UICombinedCardItemCollection_ComparisonWnd(); @@ -6101,25 +6102,25 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 20: + case WID_NOTICECONFIRMWND: window = new UINoticeConfirmWnd(); window->SetSize(280, 120); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300)); this->AddRendered(window); break; - case 332: + case WID_DISCONNECTEDSERVERMSGWND: window = new UIDisconnectedServerMsgWnd(); window->SetSize(280, 120); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300)); this->AddRendered(window); break; - case 77: + case WID_MONSTERINFOWND: window = new UIMonsterInfoWnd(); window->SetSize(400, 200); window->Move(0, 0); this->AddRendered(window); break; - case 79: + case WID_MAKETARGETLISTWND: window = this->unknown_0374; if (window == nullptr) { window = new UIMakeTargetListWnd(); @@ -6130,7 +6131,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 107: + case WID_ITEMREPAIRWND: window = this->unknown_0200; if (window == nullptr) { window = new UIItemRepairWnd(); @@ -6141,7 +6142,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 111: + case WID_WEAPONREFINEWND: window = this->unknown_0204; if (window == nullptr) { window = new UIWeaponRefineWnd(); @@ -6152,7 +6153,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 80: + case WID_MAKETARGETPROCESSWND: window = this->unknown_0378; if (window == nullptr) { window = new UIMakeTargetProcessWnd(); @@ -6163,7 +6164,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 81: + case WID_MAKETARGETRESULTWND: window = this->unknown_037C; if (window == nullptr) { window = new UIMakeTargetResultWnd(); @@ -6174,13 +6175,13 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 84: + case WID_TALKBOXTRAPINPUTWND: window = new UITalkboxTrapInputWnd(); window->SetSize(280, 120); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300) - 60); this->AddRendered(window); break; - case 85: + case WID_KEYSTROKEWND: window = this->window_03AC; if (window == nullptr) { window = new UIKeyStrokeWnd(); @@ -6191,7 +6192,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 86: + case WID_EMOTIONWND: window = this->unknown_0380; if (window == nullptr) { window = new UIEmotionWnd(); @@ -6203,7 +6204,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 87: + case WID_CASHEMOTIONLISTWND: window = this->unknown_0384; if (window == nullptr) { window = new (std::nothrow) UICashEmotionListWnd(); @@ -6218,7 +6219,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 88: + case WID_PETINFOWND: if (g_session.unknown_103C == -1) { break; } @@ -6233,7 +6234,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 90: + case WID_PETEGGLISTWND: window = this->unknown_0390; if (window == nullptr) { window = new UIPetEggListWnd(); @@ -6244,7 +6245,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 91: + case WID_PETTAMINGDECEIVEWND: window = this->unknown_0394; if (window == nullptr) { window = new UIPetTamingDeceiveWnd(); @@ -6255,7 +6256,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 94: + case WID_MAKINGARROWLISTWND: window = this->unknown_0398; if (window == nullptr) { window = new UIMakingArrowListWnd(); @@ -6266,7 +6267,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 95: + case WID_SELECTCARTWND: window = this->unknown_039C; if (window == nullptr) { window = new UISelectCartWnd(); @@ -6277,7 +6278,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 99: + case WID_SPELLLISTWND: if (this->unknown_03A0) { this->Schedule(this->unknown_03A0); this->unknown_03A0 = nullptr; @@ -6289,13 +6290,13 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); window->Show(1); break; - case 101: + case WID_GRAFFISTRBOXWND: window = new UIGraffiStrboxWnd(); window->SetSize(280, 120); window->Move(CenterOnViewportX(185), ScaleByScreenHeight(300) - 60); this->AddRendered(window); break; - case 103: + case WID_PROHIBITLISTWND: window = this->window_0388; if (window == nullptr) { window = new UIProhibitListWnd(); @@ -6306,7 +6307,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 106: + case WID_BOOKWND: window = this->unknown_03B0; if (window == nullptr) { window = new UIBookWnd(); @@ -6317,7 +6318,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 109: + case WID_JOINFRIENDACCEPTWND: window = this->unknown_03B4; if (window == nullptr) { window = new UIJoinFriendAcceptWnd(); @@ -6328,7 +6329,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 113: + case WID_HOMUNINFOWND: if (g_session.m_homunJob == -1) { break; } @@ -6343,7 +6344,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 114: + case WID_SKILLLISTWND_SKILLTAB_0: window = this->window_03C4; if (window == nullptr) { window = new UISkillListWnd(); @@ -6358,7 +6359,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->window_03C4->Show(1); this->unknown_08EC = 1; break; - case 125: + case WID_MERINFOWND: if (g_session.m_mercenaryClass == -1) { break; } @@ -6373,13 +6374,13 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 186: + case WID_SELECTREPLAYDATAWND: window = new UISelectReplayDataWnd(); window->SetSize(280, 311); window->Move(CenterOnViewportX(320) - 140, CenterOnViewportY(240) - 160); this->AddRendered(window); break; - case 187: + case WID_REPLAYCONTROLWND: if (this->window_4F168 == nullptr) { window = new UIReplayControlWnd(); this->window_4F168 = window; @@ -6390,7 +6391,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 198: + case WID_REPLAYRECCONTROLWND: if (this->window_4F164 == nullptr) { if (Replay::Instance().state == 2) { window = new UIReplayRECControlWnd(1); @@ -6404,7 +6405,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->window_4F164->SendMsg(nullptr, 0x22, reinterpret_cast(this->unknown_4F154), 0, 0, 0); } break; - case 203: + case WID_NAVIGATIONV4WND: if (this->window_4F174 == nullptr) { this->RecordWindowPacket(203); g_navigationManager.unknown_1248 = false; @@ -6415,7 +6416,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 229: + case WID_NAVIGATIONHELPWND: if (this->LookupWindow(229) == nullptr) { window = new UINavigationHelpWnd(); window->SetSize(310, 200); @@ -6423,7 +6424,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 306: + case WID_NAVIGATIONROADICONWND: if (this->LookupWindow(306) == nullptr) { int x = 200; int y = 200; @@ -6437,7 +6438,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 314: + case WID_NAVIGATIONRUIDEWND: if (this->LookupWindow(314) == nullptr) { int x = 200; int y = 200; @@ -6451,7 +6452,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 126: + case WID_SKILLLISTWND_SKILLTAB_1: window = this->window_03CC; if (window == nullptr) { window = new UISkillListWnd(); @@ -6466,7 +6467,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->window_03CC->Show(1); this->unknown_0910 = 1; break; - case 116: + case WID_AUTOMESSAGEWND: window = this->unknown_03D0; if (window == nullptr) { window = new UIAutoMessageWnd(); @@ -6477,7 +6478,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 127: { + case WID_SELCHARFORUSERVERWND: { const int width = g_session.unknown_0E94 > 12 ? 783 : 540; window = new UISelCharForUServerWnd(); this->window_03D8 = window; @@ -6486,7 +6487,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); break; } - case 128: + case WID_CHANGENAMEWND: window = this->window_03DC; if (window == nullptr) { window = new UIChangeNameWnd(); @@ -6497,7 +6498,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 129: + case WID_REBIRTHWND: window = this->unknown_03E0; if (window == nullptr) { window = new UIRebirthWnd(); @@ -6508,7 +6509,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 130: + case WID_SUBCHATHISWND_UNKNOWN_03E4: window = reinterpret_cast(this->unknown_03E4); if (window == nullptr) { window = new UISubChatHisWnd(); @@ -6520,7 +6521,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(0); break; - case 131: + case WID_SUBCHATHISWND_UNKNOWN_03E8: window = reinterpret_cast(this->unknown_03E8); if (window == nullptr) { window = new UISubChatHisWnd(); @@ -6532,7 +6533,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(0); break; - case 132: + case WID_BATTLEMSGOPTIONWND: window = this->unknown_03EC; if (window == nullptr) { window = new UIBattleMsgOptionWnd(); @@ -6543,7 +6544,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 133: + case WID_SUBCHATMINIWND: window = reinterpret_cast(this->unknown_03F0); if (window == nullptr) { window = new UISubChatMiniWnd(); @@ -6553,7 +6554,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 137: + case WID_MEMORIALDUNWND: if (g_session.unknown_5950 == "") { return nullptr; } @@ -6572,7 +6573,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); g_session.unknown_593C = 1; break; - case 139: + case WID_EQUIPWND_VIEWOTHER_1: window = this->unknown_03FC; if (window == nullptr) { window = new UIEquipWnd(); @@ -6585,7 +6586,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 140: + case WID_ROMAPWND: window = this->modal; if (window == nullptr) { window = new UIRoMapWnd(); @@ -6598,7 +6599,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { g_windowMgr.Promote(this->modal); g_windowMgr.Promote(this->window_4F174); break; - case 155: + case WID_ESCOPTIONWND: if (this->window_4F1EC || this->window_4F288) { break; } @@ -6612,22 +6613,22 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 156: - case 158: - case 159: - case 165: - case 166: - case 167: - case 181: - case 183: - case 191: + case WID_HOTKEYWND: + case WID_RELOADLUASCRIPTWND: + case WID_QUIKSLOTWND: + case WID_BATTLEFIELD_DESCRIBEWND: + case WID_BATTLEFIELD_STATUSWND: + case WID_BATTLEFIELD_HELPWND: + case WID_SEARCH_STORE_INFO: + case WID_SHOWINFO_TESTLAYER: + case WID_EXMACRO_SETUPWND: window = this->CreateLayoutWindow(id); if (window == nullptr) { break; } window->Show(1); break; - case 157: + case WID_JOINTO_BATTLEFIELDWND: window = this->LookupWindow(157); if (window == nullptr) { window = new UIEntryQueueWnd(); @@ -6637,7 +6638,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 209: + case WID_ENTRYQUEUESTANDBYWND: window = this->LookupWindow(209); if (window == nullptr) { UIEntryQueueStandByWnd* standBy = new UIEntryQueueStandByWnd(); @@ -6647,7 +6648,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 210: + case WID_ENTRYQUEUEREQUESTWND: window = this->LookupWindow(210); if (window == nullptr) { UIEntryQueueRequestWnd* request = new UIEntryQueueRequestWnd(); @@ -6657,7 +6658,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 211: + case WID_ENTRYQUEUEHELPWND: window = this->LookupWindow(211); if (window == nullptr) { window = new UIEntryQueueHelpWnd(); @@ -6666,7 +6667,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 174: + case WID_MERCHANTSHOPMAKEWND_MODE_1: window = this->unknown_040C; if (window == nullptr) { window = new UIMerchantShopMakeWnd(1); @@ -6679,7 +6680,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->EnsureWindow(175); break; - case 175: + case WID_MERCHANTMIRRORITEMWND_MODE_1: window = reinterpret_cast(this->unknown_0410); if (window == nullptr) { window = new UIMerchantMirrorItemWnd(1); @@ -6691,7 +6692,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 176: + case WID_MERCHANTITEMMYSHOPWND_MODE_1: window = this->unknown_0414; if (window == nullptr) { window = new UIMerchantItemMyShopWnd(1); @@ -6703,7 +6704,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 177: + case WID_MERCHANTITEMSHOPWND_MODE_1: window = this->unknown_0418; if (window == nullptr) { window = new UIMerchantItemShopWnd(1); @@ -6715,7 +6716,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 178: + case WID_MERCHANTITEMPURCHASEWND_MODE_1: window = this->unknown_041C; if (window == nullptr) { window = new UIMerchantItemPurchaseWnd(1); @@ -6727,7 +6728,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 179: + case WID_MERCHANTMIRRORITEMWND_MODE_2: window = reinterpret_cast(this->unknown_0420); if (window == nullptr) { window = new UIMerchantMirrorItemWnd(2); @@ -6739,7 +6740,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 196: + case WID_COLLECTIONSYSTEMWND: window = this->window_4F18C; if (window == nullptr) { window = new CUICollectionSystemWnd(); @@ -6750,7 +6751,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 199: { + case WID_SECONDPASSWORDINPUTWND: { const int rangeX = g_renderer->viewport.width - 540; const int minX = rangeX / 2; const int rangeY = g_renderer->viewport.height - 365; @@ -6779,7 +6780,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { static_cast(this->unknown_03B8)->SetInputMode(0); break; } - case 200: { + case WID_SECONDPASSWORDEDITWND: { const int rangeX = g_renderer->viewport.width - 540; const int minX = rangeX / 2; const int rangeY = g_renderer->viewport.height - 365; @@ -6808,7 +6809,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { static_cast(this->unknown_03BC)->SetInputMode(1); break; } - case 227: + case WID_MERGEITEMWND: window = this->LookupWindow(227); if (window == nullptr) { window = new CMergeItemWnd(); @@ -6818,7 +6819,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 230: + case WID_MERCHANTITEMPURCHASEMSGWND: if (this->LookupWindow(230) == nullptr) { this->CloseWindow(230); } @@ -6831,7 +6832,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->AddRendered(window); break; - case 237: + case WID_CLANINFOMANAGEWND: window = this->window_0444; if (window == nullptr) { window = new UIClanInfoManageWnd(); @@ -6843,7 +6844,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 275: + case WID_BANK_NEWWND: if (this->LookupWindow(295)) { g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0xBC6)), 255, 0, 0, 0); break; @@ -6874,7 +6875,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 253: + case WID_GUILD_STORAGE_LOG: window = this->window_044C; if (window == nullptr) { window = new UIGuild_Storage_Log(); @@ -6885,11 +6886,11 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 257: - case 258: + case WID_MERCHANTITEMLOGWND_MODE_0: + case WID_MERCHANTITEMLOGWND_MODE_1: window = this->LookupWindow(id); if (window == nullptr) { - if (id == 258) { + if (id == WID_MERCHANTITEMLOGWND_MODE_1) { window = new UIMerchantItemLogWnd(1); } else { window = new UIMerchantItemLogWnd(0); @@ -6900,7 +6901,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 262: + case WID_OPENMAILBOXWND: window = this->unknown_0450; if (window == nullptr) { window = new UIOpenMailBoxWnd(); @@ -6911,7 +6912,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 263: + case WID_RODEXINBOXWND: window = this->unknown_0454; if (window == nullptr) { window = new UIRodexInboxWnd(); @@ -6922,7 +6923,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 264: + case WID_RODEXCOMPOSEWND: window = this->unknown_0458; if (window == nullptr) { window = new UIRodexComposeWnd(); @@ -6933,7 +6934,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 265: + case WID_RODEXCONTENTSWND: window = this->unknown_045C; if (window == nullptr) { window = new UIRodexContentsWnd(); @@ -6944,7 +6945,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 261: + case WID_PETEVOLUTIONWND: window = this->LookupWindow(261); if (window == nullptr) { window = new UIPetEvolutionWnd(); @@ -6954,7 +6955,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 259: + case WID_SECONDCOSTUMEWND: window = dynamic_cast(this->LookupWindow(259)); if (window == nullptr) { window = new UISecondCostumeWnd(); @@ -6965,7 +6966,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 267: + case WID_MILEAGEWND: window = this->LookupWindow(267); if (window == nullptr) { window = new UIMileageWnd(); @@ -6985,7 +6986,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(g_serviceOptions.Get(219)); break; - case 268: + case WID_OPENROULLETTEWND: window = this->unknown_0460; if (window == nullptr) { window = new UIOpenRoulletteWnd(); @@ -6996,7 +6997,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(g_serviceOptions.Get(220)); break; - case 269: + case WID_ROULLETTEWND: window = this->unknown_0464; if (window == nullptr) { UIRoulletteWnd* roulette = new UIRoulletteWnd(); @@ -7008,7 +7009,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 270: + case WID_ACHIEVEMENTWND: window = dynamic_cast(this->LookupWindow(270)); if (window == nullptr) { window = new UIAchievementWnd(); @@ -7021,7 +7022,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { basicInfo->SendMsg(nullptr, 6, 0x11E, 0x1D9, 0, 0); } break; - case 271: + case WID_ACHTRACINGWND: window = dynamic_cast(this->LookupWindow(271)); if (window == nullptr) { window = new UIAchTracingWnd(); @@ -7034,7 +7035,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->SendMsg(nullptr, 0x22, reinterpret_cast(base + 0x4F1D8), 0, 0, 0); } break; - case 273: + case WID_MINIMAPWND: if (this->window_4F1CC == nullptr) { window = new UIMiniMapWnd(); this->window_4F1CC = window; @@ -7045,7 +7046,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 274: + case WID_EDITCTRLWND: if (this->window_4F1D0 == nullptr) { window = new UIEditctrlWnd(); this->window_4F1D0 = window; @@ -7055,7 +7056,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 276: + case WID_ROUNDBOXTOOLTIPWND: if (this->LookupWindow(276) == nullptr) { window = new UIRoundBoxTooltipWnd(); this->window_4F1E4 = window; @@ -7068,7 +7069,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->window_4F1E4->Show(1); } break; - case 281: + case WID_STYLINGSHOPWND: window = this->LookupWindow(281); if (window == nullptr) { window = new UIStylingShopWnd(); @@ -7078,7 +7079,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 284: + case WID_CAPTCHAREGISTERWND: window = this->window_4F1E8; if (window == nullptr) { window = new UICaptchaRegisterWnd(); @@ -7089,7 +7090,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 285: + case WID_MACRODETECTORWND: window = this->window_4F1EC; if (window == nullptr) { window = new UIMacroDetectorWnd(); @@ -7101,7 +7102,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->window_4F1FC = static_cast(this->window_4F1EC)->m_editCtrl; break; - case 286: + case WID_MACROREPORTERWND: window = this->window_4F1F0; if (window == nullptr) { window = new UIMacroReporterWnd(); @@ -7114,7 +7115,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->SendMsg(nullptr, 0x22, reinterpret_cast(base + 0x4F200), 0, 0, 0); this->unknown_4F210 = true; break; - case 287: + case WID_MACROUSERINFOWND: window = this->window_4F1F4; if (window == nullptr) { window = new UIMacroUserInfoWnd(); @@ -7125,7 +7126,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 288: + case WID_CAPTCHAPREVIEWWND: window = this->window_4F1F8; if (window == nullptr) { window = new UICaptchaPreviewWnd(); @@ -7136,7 +7137,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 289: + case WID_VIEWCAMERAINFOWND: window = this->LookupWindow(289); if (window == nullptr) { int y = 200; @@ -7154,7 +7155,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(g_session.unknown_61B1); break; - case 290: + case WID_LAPINEBOXWND: if (this->LookupWindow(290) == nullptr) { window = new UILapineBoxWnd(); window->SetSize(400, 250); @@ -7162,7 +7163,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 291: + case WID_TRANSMENUWND: window = this->LookupWindow(291); if (window == nullptr) { window = new UITransMenuWnd(); @@ -7173,7 +7174,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->Promote(window); } break; - case 294: + case WID_PREVIEWEQUIPWND: if (this->LookupWindow(294) == nullptr) { window = new UIPreviewEquipWnd(); window->SetSize(280, 260); @@ -7184,7 +7185,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(294); } break; - case 295: { + case WID_REFININGWND: { const int x = static_cast((g_renderer->viewport.width - 264) * g_depthAverageHalf); const int y = static_cast((g_renderer->viewport.height - 346) * g_depthAverageHalf); this->EnsureWindow(8); @@ -7211,7 +7212,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } break; } - case 302: + case WID_LAPINEUPGRADEBOXWND: if (this->LookupWindow(302) == nullptr) { window = new UILapineUpgradeBoxWnd(); window->SetSize(400, 250); @@ -7221,7 +7222,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(302); } break; - case 303: + case WID_HOTKEYGUIDEWND: if (this->LookupWindow(303) == nullptr) { window = new UIHotkeyGuideWnd(); window->SetSize(934, 498); @@ -7231,7 +7232,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(303); } break; - case 304: + case WID_VIDEOWND: window = this->LookupWindow(304); if (window == nullptr) { window = new UIVideoWnd(); @@ -7240,7 +7241,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 307: + case WID_MENUICONWND: if (this->LookupWindow(307) == nullptr) { window = new UIMenuIconWnd(); window->SetSize(220, 197); @@ -7250,7 +7251,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(307); } break; - case 308: + case WID_SHOWWARPWND: if (this->LookupWindow(308) == nullptr) { window = new UIShowWarpWnd(); window->SetSize(280, 120); @@ -7262,7 +7263,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); } break; - case 315: + case WID_TIPBOXWND: if (this->LookupWindow(315) == nullptr) { window = new UITipboxWnd(); this->window_0468 = window; @@ -7275,7 +7276,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); } break; - case 318: + case WID_CASHSHOP_WND: if (this->LookupWindow(318) == nullptr) { window = new UICashShopWnd(); this->window_4F254 = window; @@ -7287,7 +7288,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(318); } break; - case 321: + case WID_RENEWQUESTWND: this->RecordWindowPacket(321); window = this->LookupWindow(id); if (window == nullptr) { @@ -7302,7 +7303,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->CloseWindow(143); this->unknown_0568 = 1; break; - case 322: + case WID_RENEWDETAILQUESTINFOWND: this->RecordWindowPacket(321); window = this->LookupWindow(id); if (window == nullptr) { @@ -7318,7 +7319,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 328: + case WID_CHECKATTENDANCEWND: if (this->LookupWindow(328) == nullptr) { window = new UICheckAttendanceWnd(); window->SetSize(488, 413); @@ -7328,7 +7329,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(328); } break; - case 334: + case WID_BARTERMARKETWND: if (this->LookupWindow(334) == nullptr) { window = new UIBartermarketWnd(); this->window_4F260 = window; @@ -7340,7 +7341,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(334); } break; - case 335: + case WID_BARTERITEMPURCHASEWND: if (this->LookupWindow(335) == nullptr) { window = new UIBarterItemPurchaseWnd(); this->window_4F264 = window; @@ -7352,7 +7353,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(335); } break; - case 341: + case WID_EXPANDEDBARTERMARKETWND: if (this->LookupWindow(275)) { g_windowMgr.CloseWindow(275); g_windowMgr.SendNotice(1, reinterpret_cast(LookupMessage(0xF7E)), 255, 0, 0, 0); @@ -7367,7 +7368,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(341); } break; - case 342: + case WID_EXPANDEDBARTERITEMPURCHASEWND: if (this->LookupWindow(275)) { break; } @@ -7381,7 +7382,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(341); } break; - case 333: + case WID_NOTEWND: if (this->LookupWindow(333) == nullptr) { window = new UINoteWnd(); window->SetSize(358, 275); @@ -7396,7 +7397,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window = this->LookupWindow(333); } break; - case 340: + case WID_ACCOUNTLIMITEDTOOLWND: window = this->LookupWindow(340); if (window == nullptr) { window = new UIAccountLimitedToolWnd(); @@ -7406,7 +7407,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 343: { + case WID_GRADEENCHANTWND: { const int x = static_cast((g_renderer->viewport.width - 400) * g_depthAverageHalf - 100.0f); const int y = static_cast((g_renderer->viewport.height - 330) * g_depthAverageHalf); this->EnsureWindow(8); @@ -7433,7 +7434,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } break; } - case 344: + case WID_CHANGEMATERIALWND: window = this->LookupWindow(344); if (window == nullptr) { window = new UIChangeMaterialWnd(); @@ -7444,7 +7445,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->SetFocus(nullptr); } break; - case 324: + case WID_ADVENPARTYBOARDWND: window = this->window_4F274; if (window == nullptr) { window = new UIAdvenPartyBoardWnd(); @@ -7455,7 +7456,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->window_4F274->SendMsg(nullptr, 0x22, reinterpret_cast(base + 0xA20), 0, 0, 0); } break; - case 323: + case WID_REGISTERPARTYWND: window = this->window_4F270; if (window == nullptr) { window = new UIRegisterPartyWnd(); @@ -7466,7 +7467,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->window_4F270->SendMsg(nullptr, 0x22, reinterpret_cast(base + 0xA00), 0, 0, 0); } break; - case 326: + case WID_REQUESTJOINPARTYWND: window = this->window_4F278; if (window == nullptr) { window = new UIRequestJoinPartyWnd(); @@ -7476,7 +7477,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 345: + case WID_APPLYFORPARTYWND: window = this->window_4F27C; if (window == nullptr) { window = new UIApplyForPartyWnd(); @@ -7487,7 +7488,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->window_4F27C->SendMsg(nullptr, 0x22, reinterpret_cast(base + 0xA10), 0, 0, 0); } break; - case 346: + case WID_REPUTEWND: window = this->LookupWindow(346); if (window == nullptr) { window = new UIReputeWnd(); @@ -7496,7 +7497,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 348: + case WID_ITEMREFORMWND: window = this->LookupWindow(348); if (window == nullptr) { window = new UIItemReformWnd(); @@ -7505,7 +7506,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 358: + case WID_BALLOONOPENBTN: window = this->LookupWindow(358); if (window == nullptr) { window = new UIBalloonOpenBtn(); @@ -7514,7 +7515,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { this->AddRendered(window); } break; - case 359: + case WID_MACROBLACKLISTCHECKWND: window = this->window_4F288; if (window == nullptr) { window = new UIMacroBlackListCheckWnd(); @@ -7525,7 +7526,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 361: + case WID_RUNESYSTEMWND: window = this->LookupWindow(361); if (window == nullptr) { g_runeSystemMgr->SendRequest(0xBCB, nullptr, -1); @@ -7546,7 +7547,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { } window->Show(1); break; - case 362: + case WID_RUNESYSTEM_DECOMRESULTWND: window = this->LookupWindow(362); if (window == nullptr) { window = new UIRuneSystem_DecomResultWnd(); @@ -7559,7 +7560,7 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { window->Show(1); this->Promote(window); break; - case 10032: + case WID_DEBUFFREMOVEWND: if (this->LookupWindow(10032) == nullptr) { window = new UIDebuffRemoveWnd(); window->SetSize(180, 47); @@ -7611,19 +7612,19 @@ UIWindow* UIWindowMgr::EnsureWindow(int id) { if (notify) { switch (id) { - case 70: + case WID_JOINGUILDACCEPTWND: this->SendNotice(1, reinterpret_cast(LookupMessage(0xFDA)), 0xFFFF00, 0, 0, 0); break; - case 72: + case WID_ALLYGUILDACCEPTWND: this->SendNotice(1, reinterpret_cast(LookupMessage(0xFDB)), 0xFFFF00, 0, 0, 0); break; - case 109: + case WID_JOINFRIENDACCEPTWND: this->SendNotice(1, reinterpret_cast(LookupMessage(0xFDC)), 0xFFFF00, 0, 0, 0); break; - case 35: + case WID_JOINPARTYACCEPTWND: this->SendNotice(1, reinterpret_cast(LookupMessage(0xFDD)), 0xFFFF00, 0, 0, 0); break; - case 32: + case WID_EXCHANGEACCEPTWND: this->SendNotice(1, reinterpret_cast(LookupMessage(0xFDE)), 0xFFFF00, 0, 0, 0); break; } diff --git a/Source/UI/Window/WindowId.h b/Source/UI/Window/WindowId.h new file mode 100644 index 000000000..1a0ffe277 --- /dev/null +++ b/Source/UI/Window/WindowId.h @@ -0,0 +1,263 @@ +#ifndef RAGNAROK_SOURCE_UI_WINDOW_WINDOWID_H +#define RAGNAROK_SOURCE_UI_WINDOW_WINDOWID_H + +enum WindowId : int { + WID_BASICINFOWND = 0, + WID_NEWCHATWND = 1, + WID_SELECTSERVERWND = 2, + WID_LOGINWND = 3, + WID_MAKECHARWND = 4, + WID_WAITWND = 6, + WID_LOADINGWND = 7, + WID_ITEMWND = 8, + WID_TOOLTIPWND = 9, + WID_EQUIPWND_VIEWOTHER_0 = 10, + WID_STATUSWND = 11, + WID_ITEMCOLLECTIONWND = 12, + WID_MINIMAPZOOMWND = 14, + WID_ITEMDROPCNTWND = 15, + WID_SAYDIALOGWND_DIALOG = 16, + WID_CHOOSE3WND = 17, + WID_MENUWND = 18, + WID_RESTARTWND = 19, + WID_NOTICECONFIRMWND = 20, + WID_NOTIFYLEVELUPWND = 21, + WID_ITEMSHOPWND = 22, + WID_ITEMPURCHASEWND = 23, + WID_ITEMSELLWND = 24, + WID_CHOOSESELLBUYWND = 25, + WID_COMBOBOXWND = 26, + WID_CHATROOMMAKEWND = 27, + WID_CHATROOMWND = 28, + WID_PASSWORDWND = 29, + WID_CHATROOMCHANGEWND = 30, + WID_EXCHANGEACCEPTWND = 32, + WID_ITEMSTOREWND = 33, + WID_MESSENGERGROUPWND = 34, + WID_JOINPARTYACCEPTWND = 35, + WID_SHORTCUTWND = 36, + WID_NEWSKILLLISTWND = 37, + WID_TIPOFTHEDAYWND = 38, + WID_CHOOSEWARPWND = 39, + WID_MERCHANTITEMWND = 40, + WID_MERCHANTSHOPMAKEWND_MODE_0 = 41, + WID_MERCHANTMIRRORITEMWND_MODE_0 = 42, + WID_MERCHANTITEMSHOPWND_MODE_0 = 43, + WID_MERCHANTITEMPURCHASEWND_MODE_0 = 44, + WID_MERCHANTITEMMYSHOPWND_MODE_0 = 45, + WID_SKILLDESCRIBEWND = 46, + WID_CARDITEMILLUSTWND = 47, + WID_QUITWND = 48, + WID_NOTIFYJOBLEVELUPWND = 49, + WID_ITEMPARAMCHANGEDISPLAYWND = 50, + WID_CANDIDATEWND = 51, + WID_COMPOSITIONWND = 52, + WID_PARTYSETTINGWND_PARTYCOUNT = 53, + WID_SKILLNAMECHANGEWND = 55, + WID_NPCEDITDIALOGWND = 56, + WID_NOTIFYITEMOBTAINWND = 58, + WID_GUILDINFOMANAGEWND = 60, + WID_GUILDMEMBERMANAGEWND = 61, + WID_GUILDPOSITIONMANAGEWND = 62, + WID_GUILDSKILLWND = 63, + WID_GUILDBANISHEDMEMBERWND = 64, + WID_GUILDNOTICEWND = 65, + WID_GUILDTOTALINFOWND = 66, + WID_FRIENDOPTIONWND = 68, + WID_JOINGUILDACCEPTWND = 70, + WID_ALLYGUILDACCEPTWND = 72, + WID_ITEMIDENTIFYWND = 73, + WID_ITEMCOMPOSITIONWND = 74, + WID_GUILDLEAVEREASONDESCWND = 75, + WID_GUILDBANREASONDESCWND = 76, + WID_MONSTERINFOWND = 77, + WID_ILLUSTWND = 78, + WID_MAKETARGETLISTWND = 79, + WID_MAKETARGETPROCESSWND = 80, + WID_MAKETARGETRESULTWND = 81, + WID_COMBINEDCARDITEMCOLLECTIONWND = 82, + WID_TALKBOXTRAPINPUTWND = 84, + WID_KEYSTROKEWND = 85, + WID_EMOTIONWND = 86, + WID_CASHEMOTIONLISTWND = 87, + WID_PETINFOWND = 88, + WID_PETEGGLISTWND = 90, + WID_PETTAMINGDECEIVEWND = 91, + WID_NOTICEWND = 93, + WID_MAKINGARROWLISTWND = 94, + WID_SELECTCARTWND = 95, + WID_SPELLLISTWND = 99, + WID_NPCTEXTEDITDIALOGWND = 100, + WID_GRAFFISTRBOXWND = 101, + WID_PROHIBITLISTWND = 103, + WID_COUPLEACCEPTWND = 104, + WID_BABYACCEPTWND = 105, + WID_BOOKWND = 106, + WID_ITEMREPAIRWND = 107, + WID_JOINFRIENDACCEPTWND = 109, + WID_BABYACCEPTWND2 = 110, + WID_WEAPONREFINEWND = 111, + WID_HOMUNINFOWND = 113, + WID_SKILLLISTWND_SKILLTAB_0 = 114, + WID_AUTOMESSAGEWND = 116, + WID_STARPLACEACCEPTWND = 119, + WID_MERINFOWND = 125, + WID_SKILLLISTWND_SKILLTAB_1 = 126, + WID_SELCHARFORUSERVERWND = 127, + WID_CHANGENAMEWND = 128, + WID_REBIRTHWND = 129, + WID_SUBCHATHISWND_UNKNOWN_03E4 = 130, + WID_SUBCHATHISWND_UNKNOWN_03E8 = 131, + WID_BATTLEMSGOPTIONWND = 132, + WID_SUBCHATMINIWND = 133, + WID_MEMORIALDUNWND = 137, + WID_YOURITEMWND = 138, + WID_EQUIPWND_VIEWOTHER_1 = 139, + WID_ROMAPWND = 140, + WID_NOTIFYQUESTWND = 143, + WID_ITEMSTORESUBWND_TAB_0 = 146, + WID_ITEMSTORESUBWND_TAB_1 = 147, + WID_ITEMSTORESUBWND_TAB_2 = 148, + WID_ITEMSTORESUBWND_TAB_3 = 149, + WID_ITEMSTORESUBWND_TAB_4 = 150, + WID_ITEMSTORESUBWND_TAB_5 = 151, + WID_ITEMSTORESUBWND_TAB_6 = 152, + WID_ITEMSTOREFINDWND = 153, + WID_ESCOPTIONWND = 155, + WID_HOTKEYWND = 156, + WID_JOINTO_BATTLEFIELDWND = 157, + WID_RELOADLUASCRIPTWND = 158, + WID_QUIKSLOTWND = 159, + WID_ITEMSHOPWND2 = 160, + WID_ITEMSELLWND2 = 161, + WID_MIXACCEPTWND = 163, + WID_SEEKPARTYWND = 164, + WID_BATTLEFIELD_DESCRIBEWND = 165, + WID_BATTLEFIELD_STATUSWND = 166, + WID_BATTLEFIELD_HELPWND = 167, + WID_SEEKPARTYMBWND = 168, + WID_SEEKPARTYLISTWND = 169, + WID_JOBLISTWND = 170, + WID_PARTYBOOKINGHELPWND = 173, + WID_MERCHANTSHOPMAKEWND_MODE_1 = 174, + WID_MERCHANTMIRRORITEMWND_MODE_1 = 175, + WID_MERCHANTITEMMYSHOPWND_MODE_1 = 176, + WID_MERCHANTITEMSHOPWND_MODE_1 = 177, + WID_MERCHANTITEMPURCHASEWND_MODE_1 = 178, + WID_MERCHANTMIRRORITEMWND_MODE_2 = 179, + WID_LOGINOTPWND = 180, + WID_SEARCH_STORE_INFO = 181, + WID_SHOWINFO_TESTLAYER = 183, + WID_NCASHWND = 184, + WID_SELECTREPLAYDATAWND = 186, + WID_REPLAYCONTROLWND = 187, + WID_MERCHANTSHOPTITLE = 189, + WID_NCASH_CALLWND = 190, + WID_EXMACRO_SETUPWND = 191, + WID_COLLECTIONSYSTEMWND = 196, + WID_REPLAYRECCONTROLWND = 198, + WID_SECONDPASSWORDINPUTWND = 199, + WID_SECONDPASSWORDEDITWND = 200, + WID_MONSTERDISPLAYWND = 201, + WID_NAVIGATIONV4WND = 203, + WID_QUESTDISPLAY = 204, + WID_PARTYSETTINGWND_HEIGHT_220 = 207, + WID_PARTYINVITATIONTOWND = 208, + WID_ENTRYQUEUESTANDBYWND = 209, + WID_ENTRYQUEUEREQUESTWND = 210, + WID_ENTRYQUEUEHELPWND = 211, + WID_GUILDHELPERWND = 212, + WID_CREATEGUILDWND_MODE_0 = 213, + WID_GUILDTIPWND = 214, + WID_CREATEGUILDWND_MODE_1 = 215, + WID_MULTIILLUSTWND_SLOT_0 = 216, + WID_MULTIILLUSTWND_SLOT_1 = 217, + WID_MULTIILLUSTWND_SLOT_2 = 218, + WID_MULTIILLUSTWND_SLOT_3 = 219, + WID_MULTIILLUSTWND_SLOT_4 = 220, + WID_MULTIILLUSTWND_SLOT_5 = 221, + WID_MULTIILLUSTWND_SLOT_6 = 222, + WID_MULTIILLUSTWND_SLOT_7 = 223, + WID_MULTIILLUSTWND_SLOT_8 = 224, + WID_MULTIILLUSTWND_SLOT_9 = 225, + WID_SAYDIALOGWND_OVERLAY = 226, + WID_MERGEITEMWND = 227, + WID_NAVIGATIONHELPWND = 229, + WID_MERCHANTITEMPURCHASEMSGWND = 230, + WID_ITEMCOLLECTION_COMPARISONWND = 234, + WID_CLANINFOMANAGEWND = 237, + WID_COMBINEDCARDITEMCOLLECTION_COMPARISONWND = 250, + WID_GUILD_STORAGE_LOG = 253, + WID_PARAITEMSHOPWND = 254, + WID_PARAITEMPURCHASEWND = 255, + WID_PARARESULTWND = 256, + WID_MERCHANTITEMLOGWND_MODE_0 = 257, + WID_MERCHANTITEMLOGWND_MODE_1 = 258, + WID_SECONDCOSTUMEWND = 259, + WID_COMBOBOXIDWND = 260, + WID_PETEVOLUTIONWND = 261, + WID_OPENMAILBOXWND = 262, + WID_RODEXINBOXWND = 263, + WID_RODEXCOMPOSEWND = 264, + WID_RODEXCONTENTSWND = 265, + WID_MILEAGEWND = 267, + WID_OPENROULLETTEWND = 268, + WID_ROULLETTEWND = 269, + WID_ACHIEVEMENTWND = 270, + WID_ACHTRACINGWND = 271, + WID_MINIMAPWND = 273, + WID_EDITCTRLWND = 274, + WID_BANK_NEWWND = 275, + WID_ROUNDBOXTOOLTIPWND = 276, + WID_NEWSELECTCHARWND = 277, + WID_NEWMAKECHARWND = 278, + WID_STYLINGSHOPWND = 281, + WID_CAPTCHAREGISTERWND = 284, + WID_MACRODETECTORWND = 285, + WID_MACROREPORTERWND = 286, + WID_MACROUSERINFOWND = 287, + WID_CAPTCHAPREVIEWWND = 288, + WID_VIEWCAMERAINFOWND = 289, + WID_LAPINEBOXWND = 290, + WID_TRANSMENUWND = 291, + WID_PREVIEWEQUIPWND = 294, + WID_REFININGWND = 295, + WID_MINIPARTYWND = 301, + WID_LAPINEUPGRADEBOXWND = 302, + WID_HOTKEYGUIDEWND = 303, + WID_VIDEOWND = 304, + WID_NAVIGATIONROADICONWND = 306, + WID_MENUICONWND = 307, + WID_SHOWWARPWND = 308, + WID_ITEMSTORESUBWND_TAB_7 = 309, + WID_NAVIGATIONRUIDEWND = 314, + WID_TIPBOXWND = 315, + WID_CASHSHOP_WND = 318, + WID_RENEWQUESTWND = 321, + WID_RENEWDETAILQUESTINFOWND = 322, + WID_REGISTERPARTYWND = 323, + WID_ADVENPARTYBOARDWND = 324, + WID_RPIMAGEWND2 = 325, + WID_REQUESTJOINPARTYWND = 326, + WID_CHECKATTENDANCEWND = 328, + WID_DISCONNECTEDSERVERMSGWND = 332, + WID_NOTEWND = 333, + WID_BARTERMARKETWND = 334, + WID_BARTERITEMPURCHASEWND = 335, + WID_ACCOUNTLIMITEDTOOLWND = 340, + WID_EXPANDEDBARTERMARKETWND = 341, + WID_EXPANDEDBARTERITEMPURCHASEWND = 342, + WID_GRADEENCHANTWND = 343, + WID_CHANGEMATERIALWND = 344, + WID_APPLYFORPARTYWND = 345, + WID_REPUTEWND = 346, + WID_ITEMREFORMWND = 348, + WID_BALLOONOPENBTN = 358, + WID_MACROBLACKLISTCHECKWND = 359, + WID_RUNESYSTEMWND = 361, + WID_RUNESYSTEM_DECOMRESULTWND = 362, + WID_WAITDBSAVEWND = 10024, + WID_DEBUFFREMOVEWND = 10032, +}; + +#endif