diff options
Diffstat (limited to 'src/server/scripts')
382 files changed, 5555 insertions, 6176 deletions
diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index f193cf4aa6a..8c40a93e197 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -143,6 +143,7 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/server/game/World ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders ${MYSQL_INCLUDE_DIR} + ${VALGRIND_INCLUDE_DIR} ) add_library(scripts STATIC diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp index 4b7aa8ecad3..91e42fc68f7 100644 --- a/src/server/scripts/Commands/cs_account.cpp +++ b/src/server/scripts/Commands/cs_account.cpp @@ -775,7 +775,7 @@ public: if (handler->HasLowerSecurityAccount(NULL, targetAccountId, true)) return false; - if (strcmp(password, passwordConfirmation)) + if (strcmp(password, passwordConfirmation) != 0) { handler->SendSysMessage(LANG_NEW_PASSWORDS_NOT_MATCH); handler->SetSentErrorMessage(true); diff --git a/src/server/scripts/Commands/cs_arena.cpp b/src/server/scripts/Commands/cs_arena.cpp index 5658701bd54..4db7c088d35 100644 --- a/src/server/scripts/Commands/cs_arena.cpp +++ b/src/server/scripts/Commands/cs_arena.cpp @@ -103,7 +103,7 @@ public: } sArenaTeamMgr->AddArenaTeam(arena); - handler->PSendSysMessage(LANG_ARENA_CREATE, arena->GetName().c_str(), arena->GetId(), arena->GetType(), arena->GetCaptain()); + handler->PSendSysMessage(LANG_ARENA_CREATE, arena->GetName().c_str(), arena->GetId(), arena->GetType(), arena->GetCaptain().GetCounter()); } else { @@ -232,7 +232,7 @@ public: return false; Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid)) return false; @@ -275,7 +275,7 @@ public: arena->SetCaptain(targetGuid); - CharacterNameData const* oldCaptainNameData = sWorld->GetCharacterNameData(GUID_LOPART(arena->GetCaptain())); + CharacterNameData const* oldCaptainNameData = sWorld->GetCharacterNameData(arena->GetCaptain()); if (!oldCaptainNameData) { handler->SetSentErrorMessage(true); @@ -313,7 +313,7 @@ public: handler->PSendSysMessage(LANG_ARENA_INFO_HEADER, arena->GetName().c_str(), arena->GetId(), arena->GetRating(), arena->GetType(), arena->GetType()); for (ArenaTeam::MemberList::iterator itr = arena->m_membersBegin(); itr != arena->m_membersEnd(); ++itr) - handler->PSendSysMessage(LANG_ARENA_INFO_MEMBERS, itr->Name.c_str(), GUID_LOPART(itr->Guid), itr->PersonalRating, (arena->GetCaptain() == itr->Guid ? "- Captain" : "")); + handler->PSendSysMessage(LANG_ARENA_INFO_MEMBERS, itr->Name.c_str(), itr->Guid.GetCounter(), itr->PersonalRating, (arena->GetCaptain() == itr->Guid ? "- Captain" : "")); return true; } diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp index 6143a4ca344..2ffd5e3b605 100644 --- a/src/server/scripts/Commands/cs_ban.cpp +++ b/src/server/scripts/Commands/cs_ban.cpp @@ -340,7 +340,7 @@ public: bool permanent = (fields[1].GetUInt32() == uint32(0)); std::string banTime = permanent ? handler->GetTrinityString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt32(), true); handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY, - fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO), fields[4].GetCString(), fields[5].GetCString()); + TimeToTimestampStr(fields[0].GetUInt32()).c_str(), banTime.c_str(), active ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO), fields[4].GetCString(), fields[5].GetCString()); } while (result->NextRow()); diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp index 7722c330e5f..c6769493020 100644 --- a/src/server/scripts/Commands/cs_character.cpp +++ b/src/server/scripts/Commands/cs_character.cpp @@ -79,7 +79,7 @@ public: // Stores informations about a deleted character struct DeletedInfo { - uint32 lowGuid; ///< the low GUID from the character + ObjectGuid guid; ///< the GUID from the character std::string name; ///< the character name uint32 accountId; ///< the account id std::string accountName; ///< the account name @@ -133,7 +133,7 @@ public: DeletedInfo info; - info.lowGuid = fields[0].GetUInt32(); + info.guid = ObjectGuid(HIGHGUID_PLAYER, fields[0].GetUInt32()); info.name = fields[1].GetString(); info.accountId = fields[2].GetUInt32(); @@ -173,11 +173,11 @@ public: if (!handler->GetSession()) handler->PSendSysMessage(LANG_CHARACTER_DELETED_LIST_LINE_CONSOLE, - itr->lowGuid, itr->name.c_str(), itr->accountName.empty() ? "<Not existed>" : itr->accountName.c_str(), + itr->guid.GetCounter(), itr->name.c_str(), itr->accountName.empty() ? "<Not existed>" : itr->accountName.c_str(), itr->accountId, dateStr.c_str()); else handler->PSendSysMessage(LANG_CHARACTER_DELETED_LIST_LINE_CHAT, - itr->lowGuid, itr->name.c_str(), itr->accountName.empty() ? "<Not existed>" : itr->accountName.c_str(), + itr->guid.GetCounter(), itr->name.c_str(), itr->accountName.empty() ? "<Not existed>" : itr->accountName.c_str(), itr->accountId, dateStr.c_str()); } @@ -199,7 +199,7 @@ public: { if (delInfo.accountName.empty()) // account not exist { - handler->PSendSysMessage(LANG_CHARACTER_DELETED_SKIP_ACCOUNT, delInfo.name.c_str(), delInfo.lowGuid, delInfo.accountId); + handler->PSendSysMessage(LANG_CHARACTER_DELETED_SKIP_ACCOUNT, delInfo.name.c_str(), delInfo.guid.GetCounter(), delInfo.accountId); return; } @@ -207,29 +207,29 @@ public: uint32 charcount = AccountMgr::GetCharactersCount(delInfo.accountId); if (charcount >= 10) { - handler->PSendSysMessage(LANG_CHARACTER_DELETED_SKIP_FULL, delInfo.name.c_str(), delInfo.lowGuid, delInfo.accountId); + handler->PSendSysMessage(LANG_CHARACTER_DELETED_SKIP_FULL, delInfo.name.c_str(), delInfo.guid.GetCounter(), delInfo.accountId); return; } if (sObjectMgr->GetPlayerGUIDByName(delInfo.name)) { - handler->PSendSysMessage(LANG_CHARACTER_DELETED_SKIP_NAME, delInfo.name.c_str(), delInfo.lowGuid, delInfo.accountId); + handler->PSendSysMessage(LANG_CHARACTER_DELETED_SKIP_NAME, delInfo.name.c_str(), delInfo.guid.GetCounter(), delInfo.accountId); return; } PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_RESTORE_DELETE_INFO); stmt->setString(0, delInfo.name); stmt->setUInt32(1, delInfo.accountId); - stmt->setUInt32(2, delInfo.lowGuid); + stmt->setUInt32(2, delInfo.guid.GetCounter()); CharacterDatabase.Execute(stmt); stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_NAME_DATA); - stmt->setUInt32(0, delInfo.lowGuid); + stmt->setUInt32(0, delInfo.guid.GetCounter()); if (PreparedQueryResult result = CharacterDatabase.Query(stmt)) - sWorld->AddCharacterNameData(delInfo.lowGuid, delInfo.name, (*result)[2].GetUInt8(), (*result)[0].GetUInt8(), (*result)[1].GetUInt8(), (*result)[3].GetUInt8()); + sWorld->AddCharacterNameData(delInfo.guid, delInfo.name, (*result)[2].GetUInt8(), (*result)[0].GetUInt8(), (*result)[1].GetUInt8(), (*result)[3].GetUInt8()); } - static void HandleCharacterLevel(Player* player, uint64 playerGuid, uint32 oldLevel, uint32 newLevel, ChatHandler* handler) + static void HandleCharacterLevel(Player* player, ObjectGuid playerGuid, uint32 oldLevel, uint32 newLevel, ChatHandler* handler) { if (player) { @@ -252,7 +252,7 @@ public: // Update level and reset XP, everything else will be updated at login PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_LEVEL); stmt->setUInt8(0, uint8(newLevel)); - stmt->setUInt32(1, GUID_LOPART(playerGuid)); + stmt->setUInt32(1, playerGuid.GetCounter()); CharacterDatabase.Execute(stmt); } } @@ -303,7 +303,7 @@ public: static bool HandleCharacterRenameCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; @@ -318,7 +318,7 @@ public: if (target) { // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; playerOldName = target->GetName(); @@ -368,7 +368,7 @@ public: // Remove declined name from db stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_DECLINED_NAME); - stmt->setUInt32(0, targetGuid); + stmt->setUInt32(0, targetGuid.GetCounter()); CharacterDatabase.Execute(stmt); if (target) @@ -382,7 +382,7 @@ public: { stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_NAME_BY_GUID); stmt->setString(0, newName); - stmt->setUInt32(1, GUID_LOPART(targetGuid)); + stmt->setUInt32(1, targetGuid.GetCounter()); CharacterDatabase.Execute(stmt); } @@ -396,14 +396,14 @@ public: sLog->outCommand(session->GetAccountId(), "GM %s (Account: %u) forced rename %s to player %s (Account: %u)", player->GetName().c_str(), session->GetAccountId(), newName.c_str(), playerOldName.c_str(), sObjectMgr->GetPlayerAccountIdByGUID(targetGuid)); } else - sLog->outCommand(0, "CONSOLE forced rename '%s' to '%s' (GUID: %u)", playerOldName.c_str(), newName.c_str(), GUID_LOPART(targetGuid)); + sLog->outCommand(0, "CONSOLE forced rename '%s' to '%s' (%s)", playerOldName.c_str(), newName.c_str(), targetGuid.ToString().c_str()); } else { if (target) { // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_RENAME_PLAYER, handler->GetNameLink(target).c_str()); @@ -416,11 +416,11 @@ public: return false; std::string oldNameLink = handler->playerLink(targetName); - handler->PSendSysMessage(LANG_RENAME_PLAYER_GUID, oldNameLink.c_str(), GUID_LOPART(targetGuid)); + handler->PSendSysMessage(LANG_RENAME_PLAYER_GUID, oldNameLink.c_str(), targetGuid.GetCounter()); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG); stmt->setUInt16(0, uint16(AT_LOGIN_RENAME)); - stmt->setUInt32(1, GUID_LOPART(targetGuid)); + stmt->setUInt32(1, targetGuid.GetCounter()); CharacterDatabase.Execute(stmt); } } @@ -444,7 +444,7 @@ public: } Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid, &targetName)) return false; @@ -472,7 +472,7 @@ public: static bool HandleCharacterCustomizeCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; @@ -488,8 +488,8 @@ public: else { std::string oldNameLink = handler->playerLink(targetName); - stmt->setUInt32(1, GUID_LOPART(targetGuid)); - handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, oldNameLink.c_str(), GUID_LOPART(targetGuid)); + stmt->setUInt32(1, targetGuid.GetCounter()); + handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, oldNameLink.c_str(), targetGuid.GetCounter()); } CharacterDatabase.Execute(stmt); @@ -499,7 +499,7 @@ public: static bool HandleCharacterChangeFactionCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) @@ -516,8 +516,8 @@ public: else { std::string oldNameLink = handler->playerLink(targetName); - handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, oldNameLink.c_str(), GUID_LOPART(targetGuid)); - stmt->setUInt32(1, GUID_LOPART(targetGuid)); + handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, oldNameLink.c_str(), targetGuid.GetCounter()); + stmt->setUInt32(1, targetGuid.GetCounter()); } CharacterDatabase.Execute(stmt); @@ -527,7 +527,7 @@ public: static bool HandleCharacterChangeRaceCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; @@ -545,8 +545,8 @@ public: { std::string oldNameLink = handler->playerLink(targetName); /// @todo add text into database - handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, oldNameLink.c_str(), GUID_LOPART(targetGuid)); - stmt->setUInt32(1, GUID_LOPART(targetGuid)); + handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, oldNameLink.c_str(), targetGuid.GetCounter()); + stmt->setUInt32(1, targetGuid.GetCounter()); } CharacterDatabase.Execute(stmt); @@ -721,7 +721,7 @@ public: // Call the appropriate function to delete them (current account for deleted characters is 0) for (DeletedInfoList::const_iterator itr = foundList.begin(); itr != foundList.end(); ++itr) - Player::DeleteFromDB(itr->lowGuid, 0, false, true); + Player::DeleteFromDB(itr->guid, 0, false, true); return true; } @@ -773,7 +773,7 @@ public: if (!normalizePlayerName(characterName)) return false; - uint64 characterGuid; + ObjectGuid characterGuid; uint32 accountId; Player* player = sObjectAccessor->FindPlayerByName(characterName); @@ -799,7 +799,7 @@ public: AccountMgr::GetName(accountId, accountName); Player::DeleteFromDB(characterGuid, accountId, true, true); - handler->PSendSysMessage(LANG_CHARACTER_DELETED, characterName.c_str(), GUID_LOPART(characterGuid), accountName.c_str(), accountId); + handler->PSendSysMessage(LANG_CHARACTER_DELETED, characterName.c_str(), characterGuid.GetCounter(), accountName.c_str(), accountId); return true; } @@ -818,7 +818,7 @@ public: } Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid, &targetName)) return false; @@ -921,7 +921,7 @@ public: return false; } - if (sObjectMgr->GetPlayerAccountIdByGUID(guid)) + if (sObjectMgr->GetPlayerAccountIdByGUID(ObjectGuid(HIGHGUID_PLAYER, guid))) { handler->PSendSysMessage(LANG_CHARACTER_GUID_IN_USE, guid); handler->SetSentErrorMessage(true); @@ -966,10 +966,10 @@ public: if (!fileStr || !playerStr) return false; - uint64 guid; + ObjectGuid guid; // character name can't start from number if (isNumeric(playerStr)) - guid = MAKE_NEW_GUID(atoi(playerStr), 0, HIGHGUID_PLAYER); + guid = ObjectGuid(HIGHGUID_PLAYER, uint32(atoi(playerStr))); else { std::string name = handler->extractPlayerNameFromLink(playerStr); diff --git a/src/server/scripts/Commands/cs_cheat.cpp b/src/server/scripts/Commands/cs_cheat.cpp index b61cf2c54fe..7ab414b0d63 100644 --- a/src/server/scripts/Commands/cs_cheat.cpp +++ b/src/server/scripts/Commands/cs_cheat.cpp @@ -227,7 +227,7 @@ public: if (!chr) chr = handler->GetSession()->GetPlayer(); - else if (handler->HasLowerSecurity(chr, 0)) // check online security + else if (handler->HasLowerSecurity(chr, ObjectGuid::Empty)) // check online security return false; if (argstr == "on") diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 1dc0cdef330..6a810070347 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -239,7 +239,7 @@ public: return false; SellResult msg = SellResult(atoi(args)); - handler->GetSession()->GetPlayer()->SendSellError(msg, 0, 0, 0); + handler->GetSession()->GetPlayer()->SendSellError(msg, nullptr, ObjectGuid::Empty, 0); return true; } @@ -249,7 +249,7 @@ public: return false; BuyResult msg = BuyResult(atoi(args)); - handler->GetSession()->GetPlayer()->SendBuyError(msg, 0, 0, 0); + handler->GetSession()->GetPlayer()->SendBuyError(msg, nullptr, 0, 0); return true; } @@ -320,7 +320,7 @@ public: std::string type; parsedStream >> type; - if (type == "") + if (type.empty()) break; if (type == "uint8") @@ -361,11 +361,11 @@ public: } else if (type == "appitsguid") { - data.append(unit->GetPackGUID()); + data << unit->GetPackGUID(); } else if (type == "appmyguid") { - data.append(player->GetPackGUID()); + data << player->GetPackGUID(); } else if (type == "appgoguid") { @@ -377,7 +377,7 @@ public: ifs.close(); return false; } - data.append(obj->GetPackGUID()); + data << obj->GetPackGUID(); } else if (type == "goguid") { @@ -558,10 +558,10 @@ public: for (uint8 j = 0; j < bag->GetBagSize(); ++j) if (Item* item2 = bag->GetItemByPos(j)) if (item2->GetState() == state) - handler->PSendSysMessage("bag: 255 slot: %d guid: %d owner: %d", item2->GetSlot(), item2->GetGUIDLow(), GUID_LOPART(item2->GetOwnerGUID())); + handler->PSendSysMessage("bag: 255 slot: %d guid: %d owner: %d", item2->GetSlot(), item2->GetGUIDLow(), item2->GetOwnerGUID().GetCounter()); } else if (item->GetState() == state) - handler->PSendSysMessage("bag: 255 slot: %d guid: %d owner: %d", item->GetSlot(), item->GetGUIDLow(), GUID_LOPART(item->GetOwnerGUID())); + handler->PSendSysMessage("bag: 255 slot: %d guid: %d owner: %d", item->GetSlot(), item->GetGUIDLow(), item->GetOwnerGUID().GetCounter()); } } } @@ -623,7 +623,7 @@ public: if (item->GetOwnerGUID() != player->GetGUID()) { - handler->PSendSysMessage("The item with slot %d and itemguid %d does have non-matching owner guid (%d) and player guid (%d) !", item->GetSlot(), item->GetGUIDLow(), GUID_LOPART(item->GetOwnerGUID()), player->GetGUIDLow()); + handler->PSendSysMessage("The item with slot %d and itemguid %d does have non-matching owner guid (%d) and player guid (%d) !", item->GetSlot(), item->GetGUIDLow(), item->GetOwnerGUID().GetCounter(), player->GetGUIDLow()); error = true; continue; } @@ -683,7 +683,7 @@ public: if (item2->GetOwnerGUID() != player->GetGUID()) { - handler->PSendSysMessage("The item in bag %d at slot %d and with itemguid %d, the owner's guid (%d) and the player's guid (%d) don't match!", bag->GetSlot(), item2->GetSlot(), item2->GetGUIDLow(), GUID_LOPART(item2->GetOwnerGUID()), player->GetGUIDLow()); + handler->PSendSysMessage("The item in bag %d at slot %d and with itemguid %d, the owner's guid (%d) and the player's guid (%d) don't match!", bag->GetSlot(), item2->GetSlot(), item2->GetGUIDLow(), item2->GetOwnerGUID().GetCounter(), player->GetGUIDLow()); error = true; continue; } @@ -745,7 +745,7 @@ public: if (item->GetOwnerGUID() != player->GetGUID()) { - handler->PSendSysMessage("queue(%zu): For the item with guid %d, the owner's guid (%d) and the player's guid (%d) don't match!", i, item->GetGUIDLow(), GUID_LOPART(item->GetOwnerGUID()), player->GetGUIDLow()); + handler->PSendSysMessage("queue(%zu): For the item with guid %d, the owner's guid (%d) and the player's guid (%d) don't match!", i, item->GetGUIDLow(), item->GetOwnerGUID().GetCounter(), player->GetGUIDLow()); error = true; continue; } @@ -972,7 +972,7 @@ public: uint32 guid = (uint32)atoi(e); uint32 index = (uint32)atoi(f); - Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(MAKE_NEW_GUID(guid, 0, HIGHGUID_ITEM)); + Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HIGHGUID_ITEM, 0, guid)); if (!i) return false; @@ -1003,7 +1003,7 @@ public: uint32 index = (uint32)atoi(f); uint32 value = (uint32)atoi(g); - Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(MAKE_NEW_GUID(guid, 0, HIGHGUID_ITEM)); + Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HIGHGUID_ITEM, 0, guid)); if (!i) return false; @@ -1027,7 +1027,7 @@ public: uint32 guid = (uint32)atoi(e); - Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(MAKE_NEW_GUID(guid, 0, HIGHGUID_ITEM)); + Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HIGHGUID_ITEM, guid)); if (!i) return false; @@ -1106,12 +1106,12 @@ public: return false; } - uint64 guid = target->GetGUID(); + ObjectGuid guid = target->GetGUID(); uint32 field = (uint32)atoi(x); if (field >= target->GetValuesCount()) { - handler->PSendSysMessage(LANG_TOO_BIG_INDEX, field, GUID_LOPART(guid), target->GetValuesCount()); + handler->PSendSysMessage(LANG_TOO_BIG_INDEX, field, guid.GetCounter(), target->GetValuesCount()); return false; } @@ -1123,13 +1123,13 @@ public: { uint32 value = (uint32)atoi(y); target->SetUInt32Value(field, value); - handler->PSendSysMessage(LANG_SET_UINT_FIELD, GUID_LOPART(guid), field, value); + handler->PSendSysMessage(LANG_SET_UINT_FIELD, guid.GetCounter(), field, value); } else { float value = (float)atof(y); target->SetFloatValue(field, value); - handler->PSendSysMessage(LANG_SET_FLOAT_FIELD, GUID_LOPART(guid), field, value); + handler->PSendSysMessage(LANG_SET_FLOAT_FIELD, guid.GetCounter(), field, value); } return true; @@ -1154,12 +1154,12 @@ public: return false; } - uint64 guid = target->GetGUID(); + ObjectGuid guid = target->GetGUID(); uint32 opcode = (uint32)atoi(x); if (opcode >= target->GetValuesCount()) { - handler->PSendSysMessage(LANG_TOO_BIG_INDEX, opcode, GUID_LOPART(guid), target->GetValuesCount()); + handler->PSendSysMessage(LANG_TOO_BIG_INDEX, opcode, guid.GetCounter(), target->GetValuesCount()); return false; } @@ -1170,12 +1170,12 @@ public: if (isInt32) { uint32 value = target->GetUInt32Value(opcode); - handler->PSendSysMessage(LANG_GET_UINT_FIELD, GUID_LOPART(guid), opcode, value); + handler->PSendSysMessage(LANG_GET_UINT_FIELD, guid.GetCounter(), opcode, value); } else { float value = target->GetFloatValue(opcode); - handler->PSendSysMessage(LANG_GET_FLOAT_FIELD, GUID_LOPART(guid), opcode, value); + handler->PSendSysMessage(LANG_GET_FLOAT_FIELD, guid.GetCounter(), opcode, value); } return true; diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp index 90fd0bdd71c..29f8c904f97 100644 --- a/src/server/scripts/Commands/cs_gm.cpp +++ b/src/server/scripts/Commands/cs_gm.cpp @@ -111,7 +111,7 @@ public: handler->SendSysMessage(LANG_USE_BOL); return false; } - data.append(target->GetPackGUID()); + data << target->GetPackGUID(); data << uint32(0); // unknown target->SendMessageToSet(&data, true); handler->PSendSysMessage(LANG_COMMAND_FLYMODE_STATUS, handler->GetNameLink(target).c_str(), args); @@ -211,7 +211,7 @@ public: if (param == "on") { - if (_player->HasAura(VISUAL_AURA, 0)) + if (_player->HasAura(VISUAL_AURA)) _player->RemoveAurasDueToSpell(VISUAL_AURA); _player->SetGMVisible(true); diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp index 44ebb1ea4e0..d2b97e81479 100644 --- a/src/server/scripts/Commands/cs_go.cpp +++ b/src/server/scripts/Commands/cs_go.cpp @@ -140,7 +140,7 @@ public: Transport* transport = NULL; - if (Creature* creature = ObjectAccessor::GetObjectInWorld(MAKE_NEW_GUID(guid, id, HIGHGUID_UNIT), (Creature*)NULL)) + if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid(HIGHGUID_UNIT, id, guid), (Creature*)NULL)) { x = creature->GetPositionX(); y = creature->GetPositionY(); diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp index ed5b39e476d..f3ddc6f0137 100644 --- a/src/server/scripts/Commands/cs_gobject.cpp +++ b/src/server/scripts/Commands/cs_gobject.cpp @@ -324,7 +324,7 @@ public: return false; } - GameObject* target = handler->GetSession()->GetPlayer()->GetMap()->GetGameObject(MAKE_NEW_GUID(guidLow, id, HIGHGUID_GAMEOBJECT)); + GameObject* target = handler->GetSession()->GetPlayer()->GetMap()->GetGameObject(ObjectGuid(HIGHGUID_GAMEOBJECT, id, guidLow)); handler->PSendSysMessage(LANG_GAMEOBJECT_DETAIL, guidLow, objectInfo->name.c_str(), guidLow, id, x, y, z, mapId, o, phase); @@ -367,13 +367,13 @@ public: return false; } - uint64 ownerGuid = object->GetOwnerGUID(); + ObjectGuid ownerGuid = object->GetOwnerGUID(); if (ownerGuid) { Unit* owner = ObjectAccessor::GetUnit(*handler->GetSession()->GetPlayer(), ownerGuid); - if (!owner || !IS_PLAYER_GUID(ownerGuid)) + if (!owner || !ownerGuid.IsPlayer()) { - handler->PSendSysMessage(LANG_COMMAND_DELOBJREFERCREATURE, GUID_LOPART(ownerGuid), object->GetGUIDLow()); + handler->PSendSysMessage(LANG_COMMAND_DELOBJREFERCREATURE, ownerGuid.GetCounter(), object->GetGUIDLow()); handler->SetSentErrorMessage(true); return false; } diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp index 470eb27bad2..e39aca6f6a7 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -57,7 +57,7 @@ public: return false; // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; Group* group = target->GetGroup(); @@ -95,7 +95,7 @@ public: continue; // check online security - if (handler->HasLowerSecurity(player, 0)) + if (handler->HasLowerSecurity(player, ObjectGuid::Empty)) return false; std::string plNameLink = handler->GetNameLink(player); @@ -147,7 +147,7 @@ public: { Player* player = NULL; Group* group = NULL; - uint64 guid = 0; + ObjectGuid guid; char* nameStr = strtok((char*)args, " "); if (!handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid)) @@ -173,7 +173,7 @@ public: { Player* player = NULL; Group* group = NULL; - uint64 guid = 0; + ObjectGuid guid; char* nameStr = strtok((char*)args, " "); if (!handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid)) @@ -194,7 +194,7 @@ public: { Player* player = NULL; Group* group = NULL; - uint64 guid = 0; + ObjectGuid guid; char* nameStr = strtok((char*)args, " "); if (!handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid)) @@ -220,8 +220,8 @@ public: Player* playerTarget = NULL; Group* groupSource = NULL; Group* groupTarget = NULL; - uint64 guidSource = 0; - uint64 guidTarget = 0; + ObjectGuid guidSource; + ObjectGuid guidTarget; char* nameplgrStr = strtok((char*)args, " "); char* nameplStr = strtok(NULL, " "); @@ -263,18 +263,18 @@ public: // Get ALL the variables! Player* playerTarget; uint32 phase = 0; - uint64 guidTarget; + ObjectGuid guidTarget; std::string nameTarget; std::string zoneName; const char* onlineState = ""; // Parse the guid to uint32... - uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER); + ObjectGuid parseGUID(HIGHGUID_PLAYER, uint32(atol((char*)args))); // ... and try to extract a player out of it. if (sObjectMgr->GetPlayerNameByGUID(parseGUID, nameTarget)) { - playerTarget = sObjectMgr->GetPlayerByLowGUID(parseGUID); + playerTarget = ObjectAccessor::FindPlayer(parseGUID); guidTarget = parseGUID; } // If not, we return false and end right away. @@ -292,7 +292,7 @@ public: if (!groupTarget) { PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GROUP_MEMBER); - stmt->setUInt32(0, guidTarget); + stmt->setUInt32(0, guidTarget.GetCounter()); PreparedQueryResult resultGroup = CharacterDatabase.Query(stmt); if (resultGroup) groupTarget = sGroupMgr->GetGroupByDbStoreId((*resultGroup)[0].GetUInt32()); @@ -368,7 +368,7 @@ public: // Now we can print those informations for every single member of each group! handler->PSendSysMessage(LANG_GROUP_PLAYER_NAME_GUID, slot.name.c_str(), onlineState, - zoneName.c_str(), phase, GUID_LOPART(slot.guid), flags.c_str(), + zoneName.c_str(), phase, slot.guid.GetCounter(), flags.c_str(), lfg::GetRolesString(slot.roles).c_str()); } diff --git a/src/server/scripts/Commands/cs_guild.cpp b/src/server/scripts/Commands/cs_guild.cpp index 7b074087c0f..7c025cd4e95 100644 --- a/src/server/scripts/Commands/cs_guild.cpp +++ b/src/server/scripts/Commands/cs_guild.cpp @@ -130,7 +130,7 @@ public: return false; // if not guild name only (in "") then player name - uint64 targetGuid; + ObjectGuid targetGuid; if (!handler->extractPlayerTarget(*args != '"' ? (char*)args : NULL, NULL, &targetGuid)) return false; @@ -154,7 +154,7 @@ public: static bool HandleGuildUninviteCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid)) return false; @@ -179,7 +179,7 @@ public: return false; Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string target_name; if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid, &target_name)) return false; @@ -249,7 +249,7 @@ public: { Guild* guild = nullptr; - if (args && strlen(args) > 0) + if (args && args[0] != '\0') { if (isNumeric(args)) { @@ -273,7 +273,7 @@ public: std::string guildMasterName; if (sObjectMgr->GetPlayerNameByGUID(guild->GetLeaderGUID(), guildMasterName)) - handler->PSendSysMessage(LANG_GUILD_INFO_GUILD_MASTER, guildMasterName.c_str(), guild->GetLeaderGUID()); // Guild Master + handler->PSendSysMessage(LANG_GUILD_INFO_GUILD_MASTER, guildMasterName.c_str(), guild->GetLeaderGUID().GetCounter()); // Guild Master // Format creation date char createdDateStr[20]; diff --git a/src/server/scripts/Commands/cs_honor.cpp b/src/server/scripts/Commands/cs_honor.cpp index 6b76f753403..eeaee40fea9 100644 --- a/src/server/scripts/Commands/cs_honor.cpp +++ b/src/server/scripts/Commands/cs_honor.cpp @@ -71,7 +71,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; uint32 amount = (uint32)atoi(args); @@ -91,7 +91,7 @@ public: // check online security if (Player* player = target->ToPlayer()) - if (handler->HasLowerSecurity(player, 0)) + if (handler->HasLowerSecurity(player, ObjectGuid::Empty)) return false; handler->GetSession()->GetPlayer()->RewardHonor(target, 1); @@ -109,7 +109,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; target->UpdateHonorFields(); diff --git a/src/server/scripts/Commands/cs_instance.cpp b/src/server/scripts/Commands/cs_instance.cpp index 464d58ad908..a426c49a5f7 100644 --- a/src/server/scripts/Commands/cs_instance.cpp +++ b/src/server/scripts/Commands/cs_instance.cpp @@ -125,7 +125,7 @@ public: uint16 counter = 0; uint16 MapId = 0; - if (strcmp(map, "all")) + if (strcmp(map, "all") != 0) { MapId = uint16(atoi(map)); if (!MapId) diff --git a/src/server/scripts/Commands/cs_lfg.cpp b/src/server/scripts/Commands/cs_lfg.cpp index 2f6afd29e9f..1a4cce16d68 100644 --- a/src/server/scripts/Commands/cs_lfg.cpp +++ b/src/server/scripts/Commands/cs_lfg.cpp @@ -27,7 +27,7 @@ void GetPlayerInfo(ChatHandler* handler, Player* player) if (!player) return; - uint64 guid = player->GetGUID(); + ObjectGuid guid = player->GetGUID(); lfg::LfgDungeonSet dungeons = sLFGMgr->GetSelectedDungeons(guid); std::string const& state = lfg::GetStateString(sLFGMgr->GetState(guid)); @@ -86,7 +86,7 @@ public: return true; } - uint64 guid = grp->GetGUID(); + ObjectGuid guid = grp->GetGUID(); std::string const& state = lfg::GetStateString(sLFGMgr->GetState(guid)); handler->PSendSysMessage(LANG_LFG_GROUP_INFO, grp->isLFGGroup(), state.c_str(), sLFGMgr->GetDungeon(guid)); diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp index 6a0755b82e8..0f21200c22d 100644 --- a/src/server/scripts/Commands/cs_list.cpp +++ b/src/server/scripts/Commands/cs_list.cpp @@ -447,8 +447,8 @@ public: handler->PSendSysMessage(LANG_COMMAND_TARGET_AURADETAIL, aura->GetId(), (handler->GetSession() ? ss_name.str().c_str() : name), aurApp->GetEffectMask(), aura->GetCharges(), aura->GetStackAmount(), aurApp->GetSlot(), aura->GetDuration(), aura->GetMaxDuration(), (aura->IsPassive() ? passiveStr : ""), - (talent ? talentStr : ""), IS_PLAYER_GUID(aura->GetCasterGUID()) ? "player" : "creature", - GUID_LOPART(aura->GetCasterGUID())); + (talent ? talentStr : ""), aura->GetCasterGUID().IsPlayer() ? "player" : "creature", + aura->GetCasterGUID().GetCounter()); } for (uint16 i = 0; i < TOTAL_AURAS; ++i) @@ -469,25 +469,25 @@ public: static bool HandleListMailCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; PreparedStatement* stmt = NULL; if (!*args) return false; - uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER); + ObjectGuid parseGUID(HIGHGUID_PLAYER, uint32(atol((char*)args))); if (sObjectMgr->GetPlayerNameByGUID(parseGUID, targetName)) { - target = sObjectMgr->GetPlayerByLowGUID(parseGUID); + target = ObjectAccessor::FindPlayer(parseGUID); targetGuid = parseGUID; } else if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAIL_LIST_COUNT); - stmt->setUInt32(0, targetGuid); + stmt->setUInt32(0, targetGuid.GetCounter()); PreparedQueryResult queryResult = CharacterDatabase.Query(stmt); if (queryResult) { @@ -495,11 +495,11 @@ public: uint32 countMail = fields[0].GetUInt64(); std::string nameLink = handler->playerLink(targetName); - handler->PSendSysMessage(LANG_LIST_MAIL_HEADER, countMail, nameLink.c_str(), targetGuid); + handler->PSendSysMessage(LANG_LIST_MAIL_HEADER, countMail, nameLink.c_str(), targetGuid.GetCounter()); handler->PSendSysMessage(LANG_ACCOUNT_LIST_BAR); stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAIL_LIST_INFO); - stmt->setUInt32(0, targetGuid); + stmt->setUInt32(0, targetGuid.GetCounter()); PreparedQueryResult queryResult = CharacterDatabase.Query(stmt); if (queryResult) diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 3e7b242f3cc..b4b9928d6f8 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -136,7 +136,7 @@ public: WorldObject* object = NULL; if (*args) { - uint64 guid = handler->extractGuidFromLink((char*)args); + ObjectGuid guid = handler->extractGuidFromLink((char*)args); if (guid) object = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*handler->GetSession()->GetPlayer(), guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT); @@ -181,9 +181,8 @@ public: GridCoord gridCoord = Trinity::ComputeGridCoord(object->GetPositionX(), object->GetPositionY()); - // 63? WHY? - int gridX = 63 - gridCoord.x_coord; - int gridY = 63 - gridCoord.y_coord; + int gridX = (MAX_NUMBER_OF_GRIDS - 1) - gridCoord.x_coord; + int gridY = (MAX_NUMBER_OF_GRIDS - 1) - gridCoord.y_coord; uint32 haveMap = Map::ExistMap(mapId, gridX, gridY) ? 1 : 0; uint32 haveVMap = Map::ExistVMap(mapId, gridX, gridY) ? 1 : 0; @@ -199,10 +198,12 @@ public: else handler->PSendSysMessage(LANG_GPS_NO_VMAP); + char const* unknown = handler->GetTrinityString(LANG_UNKNOWN); + handler->PSendSysMessage(LANG_MAP_POSITION, - mapId, (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), - zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), - areaId, (areaEntry ? areaEntry->area_name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), + mapId, (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : unknown), + zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : unknown), + areaId, (areaEntry ? areaEntry->area_name[handler->GetSessionDbcLocale()] : unknown), object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation(), cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), object->GetInstanceId(), @@ -266,7 +267,7 @@ public: static bool HandleAppearCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; @@ -282,7 +283,7 @@ public: if (target) { // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; std::string chrNameLink = handler->playerLink(targetName); @@ -408,7 +409,7 @@ public: static bool HandleSummonCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; @@ -425,7 +426,7 @@ public: { std::string nameLink = handler->playerLink(targetName); // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; if (target->IsBeingTeleported()) @@ -537,7 +538,7 @@ public: } if (Player* player = target->ToPlayer()) - if (handler->HasLowerSecurity(player, 0, false)) + if (handler->HasLowerSecurity(player, ObjectGuid::Empty, false)) return false; if (target->IsAlive()) @@ -554,7 +555,7 @@ public: static bool HandleReviveCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid)) return false; @@ -597,16 +598,16 @@ public: static bool HandleGUIDCommand(ChatHandler* handler, char const* /*args*/) { - uint64 guid = handler->GetSession()->GetPlayer()->GetTarget(); + ObjectGuid guid = handler->GetSession()->GetPlayer()->GetTarget(); - if (guid == 0) + if (guid.IsEmpty()) { handler->SendSysMessage(LANG_NO_SELECTION); handler->SetSentErrorMessage(true); return false; } - handler->PSendSysMessage(LANG_OBJECT_GUID, GUID_LOPART(guid), GUID_HIPART(guid)); + handler->PSendSysMessage(LANG_OBJECT_GUID, guid.GetCounter(), guid.GetHigh()); return true; } @@ -703,7 +704,7 @@ public: if (*args) { - uint64 guid = handler->extractGuidFromLink((char*)args); + ObjectGuid guid = handler->extractGuidFromLink((char*)args); if (guid) obj = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*handler->GetSession()->GetPlayer(), guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT); @@ -737,7 +738,7 @@ public: return false; // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; if (target->IsBeingTeleported()) @@ -805,7 +806,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; std::string kickReasonStr = handler->GetTrinityString(LANG_NO_REASON); @@ -1380,17 +1381,17 @@ public: { // Define ALL the player variables! Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; PreparedStatement* stmt = NULL; // To make sure we get a target, we convert our guid to an omniversal... - uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER); + ObjectGuid parseGUID(HIGHGUID_PLAYER, uint32(atol((char*)args))); // ... and make sure we get a target, somehow. if (sObjectMgr->GetPlayerNameByGUID(parseGUID, targetName)) { - target = sObjectMgr->GetPlayerByLowGUID(parseGUID); + target = ObjectAccessor::FindPlayer(parseGUID); targetGuid = parseGUID; } // if not, then return false. Which shouldn't happen, now should it ? @@ -1432,7 +1433,7 @@ public: // Account data print variables std::string userName = handler->GetTrinityString(LANG_ERROR); uint32 accId = 0; - uint32 lowguid = GUID_LOPART(targetGuid); + uint32 lowguid = targetGuid.GetCounter(); std::string eMail = handler->GetTrinityString(LANG_ERROR); std::string regMail = handler->GetTrinityString(LANG_ERROR); uint32 security = 0; @@ -1486,7 +1487,7 @@ public: if (target) { // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; accId = target->GetSession()->GetAccountId(); @@ -1711,7 +1712,9 @@ public: } if (target) - handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->name[locale], (!zoneName.empty() ? zoneName.c_str() : handler->GetTrinityString(LANG_UNKNOWN)), (!areaName.empty() ? areaName.c_str() : handler->GetTrinityString(LANG_UNKNOWN))); + handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->name[locale], + (!zoneName.empty() ? zoneName.c_str() : handler->GetTrinityString(LANG_UNKNOWN)), + (!areaName.empty() ? areaName.c_str() : handler->GetTrinityString(LANG_UNKNOWN))); // Output XVII. - XVIX. if they are not empty if (!guildName.empty()) @@ -1796,7 +1799,7 @@ public: muteReasonStr = muteReason; Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid, &targetName)) return false; @@ -1859,7 +1862,7 @@ public: static bool HandleUnmuteCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; @@ -2115,7 +2118,7 @@ public: } if (Player* player = target->ToPlayer()) - if (handler->HasLowerSecurity(player, 0, false)) + if (handler->HasLowerSecurity(player, ObjectGuid::Empty, false)) return false; if (!target->IsAlive()) @@ -2187,7 +2190,7 @@ public: { Player* target = NULL; - if (args && strlen(args) > 0) + if (args && args[0] != '\0') { target = sObjectAccessor->FindPlayerByName(args); if (!target) @@ -2205,7 +2208,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; target->CombatStop(); @@ -2226,7 +2229,7 @@ public: return false; // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; // Repair items @@ -2266,7 +2269,7 @@ public: // Get the args that we might have (up to 2) char const* arg1 = strtok((char*)args, " "); char const* arg2 = strtok(NULL, " "); - + // Analyze them to see if we got either a playerName or duration or both if (arg1) { @@ -2452,7 +2455,7 @@ public: } WorldPacket data(SMSG_PLAY_SOUND, 4); - data << uint32(soundId) << handler->GetSession()->GetPlayer()->GetGUID(); + data << uint32(soundId); sWorld->SendGlobalMessage(&data); handler->PSendSysMessage(LANG_COMMAND_PLAYED_TO_ALL, soundId); diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp index f70f17232eb..3c2f122324d 100644 --- a/src/server/scripts/Commands/cs_modify.cpp +++ b/src/server/scripts/Commands/cs_modify.cpp @@ -106,7 +106,7 @@ public: return false; } - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_YOU_CHANGE_HP, handler->GetNameLink(target).c_str(), hp, hpm); @@ -144,7 +144,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_YOU_CHANGE_MANA, handler->GetNameLink(target).c_str(), mana, manam); @@ -193,7 +193,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_YOU_CHANGE_ENERGY, handler->GetNameLink(target).c_str(), energy/10, energym/10); @@ -244,7 +244,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_YOU_CHANGE_RAGE, handler->GetNameLink(target).c_str(), rage/10, ragem/10); @@ -398,7 +398,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_YOU_CHANGE_SPELLFLATID, spellflatid, val, mark, handler->GetNameLink(target).c_str()); @@ -436,7 +436,7 @@ public: if (target->GetTypeId() == TYPEID_PLAYER) { // check online security - if (handler->HasLowerSecurity(target->ToPlayer(), 0)) + if (handler->HasLowerSecurity(target->ToPlayer(), ObjectGuid::Empty)) return false; target->ToPlayer()->SetFreeTalentPoints(tp); target->ToPlayer()->SendTalentsInfoData(false); @@ -448,7 +448,7 @@ public: if (owner && owner->GetTypeId() == TYPEID_PLAYER && ((Pet*)target)->IsPermanentPetFor(owner->ToPlayer())) { // check online security - if (handler->HasLowerSecurity(owner->ToPlayer(), 0)) + if (handler->HasLowerSecurity(owner->ToPlayer(), ObjectGuid::Empty)) return false; ((Pet*)target)->SetFreeTalentPoints(tp); owner->ToPlayer()->SendTalentsInfoData(true); @@ -485,7 +485,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; std::string targetNameLink = handler->GetNameLink(target); @@ -533,7 +533,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; std::string targetNameLink = handler->GetNameLink(target); @@ -578,7 +578,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; std::string targetNameLink = handler->GetNameLink(target); @@ -623,7 +623,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; std::string targetNameLink = handler->GetNameLink(target); @@ -668,7 +668,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_YOU_CHANGE_FLY_SPEED, FSpeed, handler->GetNameLink(target).c_str()); @@ -705,7 +705,7 @@ public: if (Player* player = target->ToPlayer()) { // check online security - if (handler->HasLowerSecurity(player, 0)) + if (handler->HasLowerSecurity(player, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_YOU_CHANGE_SIZE, Scale, handler->GetNameLink(player).c_str()); @@ -953,7 +953,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; handler->PSendSysMessage(LANG_YOU_GIVE_MOUNT, handler->GetNameLink(target).c_str()); @@ -964,14 +964,14 @@ public: target->Mount(mId); WorldPacket data(SMSG_FORCE_RUN_SPEED_CHANGE, (8+4+1+4)); - data.append(target->GetPackGUID()); + data << target->GetPackGUID(); data << (uint32)0; data << (uint8)0; //new 2.1.0 data << float(speed); target->SendMessageToSet(&data, true); data.Initialize(SMSG_FORCE_SWIM_SPEED_CHANGE, (8+4+4)); - data.append(target->GetPackGUID()); + data << target->GetPackGUID(); data << (uint32)0; data << float(speed); target->SendMessageToSet(&data, true); @@ -994,7 +994,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; int32 moneyToAdd = 0; @@ -1061,7 +1061,7 @@ public: } // check online security - if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0)) + if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), ObjectGuid::Empty)) return false; char* pField = strtok((char*)args, " "); @@ -1115,7 +1115,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; int32 amount = (uint32)atoi(args); @@ -1156,7 +1156,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; char* factionTxt = handler->extractKeyFromLink((char*)args, "Hfaction"); @@ -1255,7 +1255,7 @@ public: target = handler->GetSession()->GetPlayer(); // check online security - else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0)) + else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), ObjectGuid::Empty)) return false; target->SetDisplayId(display_id); @@ -1276,7 +1276,7 @@ public: target = handler->GetSession()->GetPlayer(); // check online security - else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0)) + else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), ObjectGuid::Empty)) return false; target->SetPhaseMask(phasemask, true); @@ -1386,7 +1386,7 @@ public: target = handler->GetSession()->GetPlayer(); // check online security - else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0)) + else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), ObjectGuid::Empty)) return false; target->DeMorph(); diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index 9737b1dd5b9..987c12debb7 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -521,7 +521,7 @@ public: return false; if (CreatureData const* cr_data = sObjectMgr->GetCreatureData(lowguid)) - unit = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(MAKE_NEW_GUID(lowguid, cr_data->id, HIGHGUID_UNIT)); + unit = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid(HIGHGUID_UNIT, cr_data->id, lowguid)); } else unit = handler->getSelectedCreature(); @@ -681,8 +681,8 @@ public: } creature->AI()->SetData(data_1, data_2); - std::string AIorScript = creature->GetAIName() != "" ? "AI type: " + creature->GetAIName() : (creature->GetScriptName() != "" ? "Script Name: " + creature->GetScriptName() : "No AI or Script Name Set"); - handler->PSendSysMessage(LANG_NPC_SETDATA, creature->GetGUID(), creature->GetEntry(), creature->GetName().c_str(), data_1, data_2, AIorScript.c_str()); + std::string AIorScript = !creature->GetAIName().empty() ? "AI type: " + creature->GetAIName() : (!creature->GetScriptName().empty() ? "Script Name: " + creature->GetScriptName() : "No AI or Script Name Set"); + handler->PSendSysMessage(LANG_NPC_SETDATA, creature->GetGUID().GetCounter(), creature->GetEntry(), creature->GetName().c_str(), data_1, data_2, AIorScript.c_str()); return true; } @@ -761,8 +761,8 @@ public: handler->PSendSysMessage(npcFlagTexts[i].Name, npcFlagTexts[i].Value); handler->PSendSysMessage(LANG_NPCINFO_MECHANIC_IMMUNE, mechanicImmuneMask); - for (uint8 i = 0; i < MAX_MECHANIC; ++i) - if ((mechanicImmuneMask << 1) & mechanicImmunes[i].Value) + for (uint8 i = 1; i < MAX_MECHANIC; ++i) + if (mechanicImmuneMask & (1 << (mechanicImmunes[i].Value - 1))) handler->PSendSysMessage("%s (0x%X)", mechanicImmunes[i].Name, mechanicImmunes[i].Value); return true; @@ -1222,7 +1222,7 @@ public: return false; } - creature->MonsterSay(args, LANG_UNIVERSAL, NULL); + creature->Say(args, LANG_UNIVERSAL); // make some emotes char lastchar = args[strlen(args) - 1]; @@ -1251,7 +1251,7 @@ public: return false; } - creature->MonsterTextEmote(args, 0); + creature->TextEmote(args); return true; } @@ -1321,14 +1321,14 @@ public: return false; } - uint64 receiver_guid = atol(receiver_str); + ObjectGuid receiver_guid(HIGHGUID_PLAYER, uint32(atol(receiver_str))); // check online security Player* receiver = ObjectAccessor::FindPlayer(receiver_guid); - if (handler->HasLowerSecurity(receiver, 0)) + if (handler->HasLowerSecurity(receiver, ObjectGuid::Empty)) return false; - creature->MonsterWhisper(text, receiver); + creature->Whisper(text, LANG_UNIVERSAL, receiver); return true; } @@ -1349,7 +1349,7 @@ public: return false; } - creature->MonsterYell(args, LANG_UNIVERSAL, NULL); + creature->Yell(args, LANG_UNIVERSAL); // make an emote creature->HandleEmoteCommand(EMOTE_ONESHOT_SHOUT); diff --git a/src/server/scripts/Commands/cs_pet.cpp b/src/server/scripts/Commands/cs_pet.cpp index 82f99501a58..bb5e0764f2f 100644 --- a/src/server/scripts/Commands/cs_pet.cpp +++ b/src/server/scripts/Commands/cs_pet.cpp @@ -85,7 +85,7 @@ public: creatureTarget->RemoveCorpse(); creatureTarget->SetHealth(0); // just for nice GM-mode view - pet->SetUInt64Value(UNIT_FIELD_CREATEDBY, player->GetGUID()); + pet->SetGuidValue(UNIT_FIELD_CREATEDBY, player->GetGUID()); pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, player->getFaction()); if (!pet->InitStatsForLevel(creatureTarget->getLevel())) diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp index 08603279824..dc75e0aedab 100644 --- a/src/server/scripts/Commands/cs_quest.cpp +++ b/src/server/scripts/Commands/cs_quest.cpp @@ -206,11 +206,11 @@ public: { if (CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(creature)) for (uint16 z = 0; z < creatureCount; ++z) - player->KilledMonster(creatureInfo, 0); + player->KilledMonster(creatureInfo, ObjectGuid::Empty); } else if (creature < 0) for (uint16 z = 0; z < creatureCount; ++z) - player->KillCreditGO(creature, 0); + player->KillCreditGO(creature); } // If the quest requires reputation to complete diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp index 00a669609f9..484d41a47d9 100644 --- a/src/server/scripts/Commands/cs_reset.cpp +++ b/src/server/scripts/Commands/cs_reset.cpp @@ -59,14 +59,14 @@ public: static bool HandleResetAchievementsCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid)) return false; if (target) target->ResetAchievements(); else - AchievementMgr::DeleteFromDB(GUID_LOPART(targetGuid)); + AchievementMgr::DeleteFromDB(targetGuid); return true; } @@ -158,7 +158,7 @@ public: static bool HandleResetSpellsCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; @@ -175,7 +175,7 @@ public: { PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG); stmt->setUInt16(0, uint16(AT_LOGIN_RESET_SPELLS)); - stmt->setUInt32(1, GUID_LOPART(targetGuid)); + stmt->setUInt32(1, targetGuid.GetCounter()); CharacterDatabase.Execute(stmt); handler->PSendSysMessage(LANG_RESET_SPELLS_OFFLINE, targetName.c_str()); @@ -205,7 +205,7 @@ public: static bool HandleResetTalentsCommand(ChatHandler* handler, char const* args) { Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) { @@ -249,7 +249,7 @@ public: { PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG); stmt->setUInt16(0, uint16(AT_LOGIN_NONE | AT_LOGIN_RESET_PET_TALENTS)); - stmt->setUInt32(1, GUID_LOPART(targetGuid)); + stmt->setUInt32(1, targetGuid.GetCounter()); CharacterDatabase.Execute(stmt); std::string nameLink = handler->playerLink(targetName); diff --git a/src/server/scripts/Commands/cs_send.cpp b/src/server/scripts/Commands/cs_send.cpp index 486645df290..e27f09278fd 100644 --- a/src/server/scripts/Commands/cs_send.cpp +++ b/src/server/scripts/Commands/cs_send.cpp @@ -51,7 +51,7 @@ public: { // format: name "subject text" "mail text" Player* target; - uint64 targetGuid; + ObjectGuid targetGuid; std::string targetName; if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName)) return false; @@ -82,7 +82,7 @@ public: /// @todo Fix poor design SQLTransaction trans = CharacterDatabase.BeginTransaction(); MailDraft(subject, text) - .SendMailTo(trans, MailReceiver(target, GUID_LOPART(targetGuid)), sender); + .SendMailTo(trans, MailReceiver(target, targetGuid.GetCounter()), sender); CharacterDatabase.CommitTransaction(trans); @@ -96,7 +96,7 @@ public: { // format: name "subject text" "mail text" item1[:count1] item2[:count2] ... item12[:count12] Player* receiver; - uint64 receiverGuid; + ObjectGuid receiverGuid; std::string receiverName; if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName)) return false; @@ -192,7 +192,7 @@ public: } } - draft.SendMailTo(trans, MailReceiver(receiver, GUID_LOPART(receiverGuid)), sender); + draft.SendMailTo(trans, MailReceiver(receiver, receiverGuid.GetCounter()), sender); CharacterDatabase.CommitTransaction(trans); std::string nameLink = handler->playerLink(receiverName); @@ -205,7 +205,7 @@ public: /// format: name "subject text" "mail text" money Player* receiver; - uint64 receiverGuid; + ObjectGuid receiverGuid; std::string receiverName; if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName)) return false; @@ -242,7 +242,7 @@ public: MailDraft(subject, text) .AddMoney(money) - .SendMailTo(trans, MailReceiver(receiver, GUID_LOPART(receiverGuid)), sender); + .SendMailTo(trans, MailReceiver(receiver, receiverGuid.GetCounter()), sender); CharacterDatabase.CommitTransaction(trans); diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp index ad77464b6e1..6b4fb7d104d 100644 --- a/src/server/scripts/Commands/cs_tele.cpp +++ b/src/server/scripts/Commands/cs_tele.cpp @@ -123,7 +123,7 @@ public: return false; Player* target; - uint64 target_guid; + ObjectGuid target_guid; std::string target_name; if (!handler->extractPlayerTarget(nameStr, &target, &target_guid, &target_name)) return false; @@ -135,7 +135,7 @@ public: else { PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_HOMEBIND); - stmt->setUInt32(0, target_guid); + stmt->setUInt32(0, target_guid.GetCounter()); PreparedQueryResult resultDB = CharacterDatabase.Query(stmt); if (resultDB) @@ -166,7 +166,7 @@ public: if (target) { // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; std::string chrNameLink = handler->playerLink(target_name); @@ -225,7 +225,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r @@ -263,7 +263,7 @@ public: continue; // check online security - if (handler->HasLowerSecurity(player, 0)) + if (handler->HasLowerSecurity(player, ObjectGuid::Empty)) return false; std::string plNameLink = handler->GetNameLink(player); diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp index cbf0ae51a82..674658f41ff 100644 --- a/src/server/scripts/Commands/cs_ticket.cpp +++ b/src/server/scripts/Commands/cs_ticket.cpp @@ -95,7 +95,7 @@ public: return true; } - uint64 targetGuid = sObjectMgr->GetPlayerGUIDByName(target); + ObjectGuid targetGuid = sObjectMgr->GetPlayerGUIDByName(target); uint32 accountId = sObjectMgr->GetPlayerAccountIdByGUID(targetGuid); // Target must exist and have administrative rights if (!AccountMgr::HasPermission(accountId, rbac::RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET, realmID)) @@ -153,7 +153,7 @@ public: return true; } - sTicketMgr->CloseTicket(ticket->GetId(), player ? player->GetGUID() : -1); + sTicketMgr->CloseTicket(ticket->GetId(), player ? player->GetGUID() : ObjectGuid(uint64(-1))); sTicketMgr->UpdateLastChange(); std::string msg = ticket->FormatMessageString(*handler, player ? player->GetName().c_str() : "Console", NULL, NULL, NULL, NULL); @@ -376,7 +376,7 @@ public: security = assignedPlayer->GetSession()->GetSecurity(); else { - uint64 guid = ticket->GetAssignedToGUID(); + ObjectGuid guid = ticket->GetAssignedToGUID(); uint32 accountId = sObjectMgr->GetPlayerAccountIdByGUID(guid); security = AccountMgr::GetSecurity(accountId, realmID); } @@ -434,7 +434,7 @@ public: return false; // Detect target's GUID - uint64 guid = 0; + ObjectGuid guid; if (Player* player = sObjectAccessor->FindPlayerByName(name)) guid = player->GetGUID(); else diff --git a/src/server/scripts/Commands/cs_titles.cpp b/src/server/scripts/Commands/cs_titles.cpp index dee9c33ae99..e75a36cb913 100644 --- a/src/server/scripts/Commands/cs_titles.cpp +++ b/src/server/scripts/Commands/cs_titles.cpp @@ -80,7 +80,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(id); @@ -125,7 +125,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(id); @@ -171,7 +171,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(id); @@ -219,7 +219,7 @@ public: } // check online security - if (handler->HasLowerSecurity(target, 0)) + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) return false; uint64 titles2 = titles; diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp index 647d8b49c1b..9b2667148a6 100644 --- a/src/server/scripts/Commands/cs_wp.cpp +++ b/src/server/scripts/Commands/cs_wp.cpp @@ -214,7 +214,7 @@ public: target->LoadPath(pathid); target->SetDefaultMovementType(WAYPOINT_MOTION_TYPE); target->GetMotionMaster()->Initialize(); - target->MonsterSay("Path loaded.", LANG_UNIVERSAL, NULL); + target->Say("Path loaded.", LANG_UNIVERSAL); return true; } @@ -267,7 +267,7 @@ public: target->SetDefaultMovementType(IDLE_MOTION_TYPE); target->GetMotionMaster()->MoveTargetedHome(); target->GetMotionMaster()->Initialize(); - target->MonsterSay("Path unloaded.", LANG_UNIVERSAL, NULL); + target->Say("Path unloaded.", LANG_UNIVERSAL); return true; } @@ -628,7 +628,7 @@ public: handler->PSendSysMessage("|cff00ff00DEBUG: wp modify del, PathID: |r|cff00ffff%u|r", pathid); if (wpGuid != 0) - if (Creature* wpCreature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT))) + if (Creature* wpCreature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid(HIGHGUID_UNIT, VISUAL_WAYPOINT, wpGuid))) { wpCreature->CombatStop(); wpCreature->DeleteFromDB(); @@ -661,7 +661,7 @@ public: // Respawn the owner of the waypoints if (wpGuid != 0) { - if (Creature* wpCreature = map->GetCreature(MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT))) + if (Creature* wpCreature = map->GetCreature(ObjectGuid(HIGHGUID_UNIT, VISUAL_WAYPOINT, wpGuid))) { wpCreature->CombatStop(); wpCreature->DeleteFromDB(); @@ -842,7 +842,7 @@ public: { Field* fields = result2->Fetch(); uint32 wpguid = fields[0].GetUInt32(); - Creature* creature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(MAKE_NEW_GUID(wpguid, VISUAL_WAYPOINT, HIGHGUID_UNIT)); + Creature* creature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid(HIGHGUID_UNIT, VISUAL_WAYPOINT, wpguid)); if (!creature) { @@ -1038,7 +1038,7 @@ public: { Field* fields = result->Fetch(); uint32 guid = fields[0].GetUInt32(); - Creature* creature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(MAKE_NEW_GUID(guid, VISUAL_WAYPOINT, HIGHGUID_UNIT)); + Creature* creature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid(HIGHGUID_UNIT, VISUAL_WAYPOINT, guid)); if (!creature) { handler->PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, guid); diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp index 651e487522d..c8717a73f16 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp @@ -65,7 +65,7 @@ public: void Initialize() { - WaterElementalGUID = 0; + WaterElementalGUID.Clear(); HasCastIceblock = false; } @@ -177,7 +177,7 @@ public: private: EventMap events; SummonList summons; - uint64 WaterElementalGUID; + ObjectGuid WaterElementalGUID; bool HasCastIceblock; }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp index 51ca327738b..08b773bc61a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp @@ -38,10 +38,10 @@ public: else instance->SetData(TYPE_LYCEUM, IN_PROGRESS); // If used brazier open linked doors (North or South) - if (go->GetGUID() == instance->GetData64(DATA_SF_BRAZIER_N)) - instance->HandleGameObject(instance->GetData64(DATA_GOLEM_DOOR_N), true); - else if (go->GetGUID() == instance->GetData64(DATA_SF_BRAZIER_S)) - instance->HandleGameObject(instance->GetData64(DATA_GOLEM_DOOR_S), true); + if (go->GetGUID() == instance->GetGuidData(DATA_SF_BRAZIER_N)) + instance->HandleGameObject(instance->GetGuidData(DATA_GOLEM_DOOR_N), true); + else if (go->GetGUID() == instance->GetGuidData(DATA_SF_BRAZIER_S)) + instance->HandleGameObject(instance->GetGuidData(DATA_GOLEM_DOOR_S), true); } return false; } @@ -138,9 +138,9 @@ public: MobDeath_Timer = 0; for (uint8 i = 0; i < MAX_NPC_AMOUNT; ++i) - RingMobGUID[i] = 0; + RingMobGUID[i].Clear(); - RingBossGUID = 0; + RingBossGUID.Clear(); CanWalk = false; } @@ -154,8 +154,8 @@ public: uint8 MobCount; uint32 MobDeath_Timer; - uint64 RingMobGUID[4]; - uint64 RingBossGUID; + ObjectGuid RingMobGUID[4]; + ObjectGuid RingBossGUID; bool CanWalk; @@ -222,7 +222,7 @@ public: void HandleGameObject(uint32 id, bool open) { - instance->HandleGameObject(instance->GetData64(id), open); + instance->HandleGameObject(instance->GetGuidData(id), open); } void UpdateAI(uint32 diff) override @@ -238,7 +238,7 @@ public: Creature* boss = ObjectAccessor::GetCreature(*me, RingBossGUID); if (boss && !boss->IsAlive() && boss->isDead()) { - RingBossGUID = 0; + RingBossGUID.Clear(); Event_Timer = 5000; MobDeath_Timer = 0; return; @@ -251,7 +251,7 @@ public: Creature* mob = ObjectAccessor::GetCreature(*me, RingMobGUID[i]); if (mob && !mob->IsAlive() && mob->isDead()) { - RingMobGUID[i] = 0; + RingMobGUID[i].Clear(); --MobCount; //seems all are gone, so set timer to continue and discontinue this @@ -1277,7 +1277,7 @@ public: void DoGo(uint32 id, uint32 state) { - if (GameObject* go = instance->instance->GetGameObject(instance->GetData64(id))) + if (GameObject* go = instance->instance->GetGameObject(instance->GetGuidData(id))) go->SetGoState((GOState)state); } @@ -1324,7 +1324,7 @@ public: DoGo(DATA_GO_BAR_KEG_TRAP, 0); //doesn't work very well, leaving code here for future //spell by trap has effect61, this indicate the bar go hostile - if (Unit* tmp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PHALANX))) + if (Unit* tmp = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_PHALANX))) tmp->setFaction(14); //for later, this event(s) has alot more to it. diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp index cec29bcd4d1..4b2434c73c9 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp @@ -70,7 +70,7 @@ class boss_emperor_dagran_thaurissan : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* moira = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MOIRA))) + if (Creature* moira = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MOIRA))) { moira->AI()->EnterEvadeMode(); moira->setFaction(35); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp index e6bbbaa73a9..3230a700810 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp @@ -96,7 +96,7 @@ class boss_magmus : public CreatureScript void JustDied(Unit* /*killer*/) override { if (InstanceScript* instance = me->GetInstanceScript()) - instance->HandleGameObject(instance->GetData64(DATA_THRONE_DOOR), true); + instance->HandleGameObject(instance->GetGuidData(DATA_THRONE_DOOR), true); } private: diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp index 77a8c68d28e..6706713698d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp @@ -76,7 +76,7 @@ public: if (InstanceScript* instance = creature->GetInstanceScript()) { //are 5 minutes expected? go template may have data to despawn when used at quest - instance->DoRespawnGameObject(instance->GetData64(DATA_GO_CHALICE), MINUTE*5); + instance->DoRespawnGameObject(instance->GetGuidData(DATA_GO_CHALICE), MINUTE*5); } break; } @@ -139,7 +139,7 @@ class boss_doomrel : public CreatureScript creature->AI()->AttackStart(player); InstanceScript* instance = creature->GetInstanceScript(); if (instance) - instance->SetData64(DATA_EVENSTARTER, player->GetGUID()); + instance->SetGuidData(DATA_EVENSTARTER, player->GetGUID()); break; } return true; @@ -202,7 +202,7 @@ class boss_doomrel : public CreatureScript { ScriptedAI::EnterEvadeMode(); - _instance->SetData64(DATA_EVENSTARTER, 0); + _instance->SetGuidData(DATA_EVENSTARTER, ObjectGuid::Empty); } void JustDied(Unit* /*killer*/) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp index 67219a2990a..22999c221dd 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp @@ -81,37 +81,37 @@ public: uint32 encounter[MAX_ENCOUNTER]; std::string str_data; - uint64 EmperorGUID; - uint64 PhalanxGUID; - uint64 MagmusGUID; - uint64 MoiraGUID; - - uint64 GoArena1GUID; - uint64 GoArena2GUID; - uint64 GoArena3GUID; - uint64 GoArena4GUID; - uint64 GoShadowLockGUID; - uint64 GoShadowMechGUID; - uint64 GoShadowGiantGUID; - uint64 GoShadowDummyGUID; - uint64 GoBarKegGUID; - uint64 GoBarKegTrapGUID; - uint64 GoBarDoorGUID; - uint64 GoTombEnterGUID; - uint64 GoTombExitGUID; - uint64 GoLyceumGUID; - uint64 GoSFSGUID; - uint64 GoSFNGUID; - uint64 GoGolemNGUID; - uint64 GoGolemSGUID; - uint64 GoThroneGUID; - uint64 GoChestGUID; - uint64 GoSpectralChaliceGUID; + ObjectGuid EmperorGUID; + ObjectGuid PhalanxGUID; + ObjectGuid MagmusGUID; + ObjectGuid MoiraGUID; + + ObjectGuid GoArena1GUID; + ObjectGuid GoArena2GUID; + ObjectGuid GoArena3GUID; + ObjectGuid GoArena4GUID; + ObjectGuid GoShadowLockGUID; + ObjectGuid GoShadowMechGUID; + ObjectGuid GoShadowGiantGUID; + ObjectGuid GoShadowDummyGUID; + ObjectGuid GoBarKegGUID; + ObjectGuid GoBarKegTrapGUID; + ObjectGuid GoBarDoorGUID; + ObjectGuid GoTombEnterGUID; + ObjectGuid GoTombExitGUID; + ObjectGuid GoLyceumGUID; + ObjectGuid GoSFSGUID; + ObjectGuid GoSFNGUID; + ObjectGuid GoGolemNGUID; + ObjectGuid GoGolemSGUID; + ObjectGuid GoThroneGUID; + ObjectGuid GoChestGUID; + ObjectGuid GoSpectralChaliceGUID; uint32 BarAleCount; uint32 GhostKillCount; - uint64 TombBossGUIDs[7]; - uint64 TombEventStarterGUID; + ObjectGuid TombBossGUIDs[7]; + ObjectGuid TombEventStarterGUID; uint32 TombTimer; uint32 TombEventCounter; @@ -120,41 +120,10 @@ public: SetHeaders(DataHeader); memset(&encounter, 0, sizeof(encounter)); - EmperorGUID = 0; - PhalanxGUID = 0; - MagmusGUID = 0; - MoiraGUID = 0; - - GoArena1GUID = 0; - GoArena2GUID = 0; - GoArena3GUID = 0; - GoArena4GUID = 0; - GoShadowLockGUID = 0; - GoShadowMechGUID = 0; - GoShadowGiantGUID = 0; - GoShadowDummyGUID = 0; - GoBarKegGUID = 0; - GoBarKegTrapGUID = 0; - GoBarDoorGUID = 0; - GoTombEnterGUID = 0; - GoTombExitGUID = 0; - GoLyceumGUID = 0; - GoSFSGUID = 0; - GoSFNGUID = 0; - GoGolemNGUID = 0; - GoGolemSGUID = 0; - GoThroneGUID = 0; - GoChestGUID = 0; - GoSpectralChaliceGUID = 0; - BarAleCount = 0; GhostKillCount = 0; - TombEventStarterGUID = 0; TombTimer = TIMER_TOMBOFTHESEVEN; TombEventCounter = 0; - - for (uint8 i = 0; i < 7; ++i) - TombBossGUIDs[i] = 0; } void OnCreatureCreate(Creature* creature) override @@ -174,7 +143,7 @@ public: case NPC_MAGMUS: MagmusGUID = creature->GetGUID(); if (!creature->IsAlive()) - HandleGameObject(GetData64(DATA_THRONE_DOOR), true); // if Magmus is dead open door to last boss + HandleGameObject(GetGuidData(DATA_THRONE_DOOR), true); // if Magmus is dead open door to last boss break; } } @@ -198,9 +167,9 @@ public: case GO_TOMB_EXIT: GoTombExitGUID = go->GetGUID(); if (GhostKillCount >= 7) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); else - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_LYCEUM: GoLyceumGUID = go->GetGUID(); break; case GO_SF_S: GoSFSGUID = go->GetGUID(); break; @@ -213,9 +182,9 @@ public: } } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { - TC_LOG_DEBUG("scripts", "Instance Blackrock Depths: SetData64 update (Type: %u Data " UI64FMTD ")", type, data); + TC_LOG_DEBUG("scripts", "Instance Blackrock Depths: SetGuidData update (Type: %u Data %s)", type, data.ToString().c_str()); switch (type) { @@ -301,7 +270,7 @@ public: return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -340,7 +309,7 @@ public: case DATA_GO_CHALICE: return GoSpectralChaliceGUID; } - return 0; + return ObjectGuid::Empty; } std::string GetSaveData() override @@ -409,7 +378,7 @@ public: } } GhostKillCount = 0; - TombEventStarterGUID = 0; + TombEventStarterGUID.Clear(); TombEventCounter = 0; TombTimer = TIMER_TOMBOFTHESEVEN; SetData(TYPE_TOMB_OF_SEVEN, NOT_STARTED); @@ -427,7 +396,7 @@ public: DoRespawnGameObject(GoChestGUID, DAY); HandleGameObject(GoTombExitGUID, true);//event done, open exit door HandleGameObject(GoTombEnterGUID, true);//event done, open entrance door - TombEventStarterGUID = 0; + TombEventStarterGUID.Clear(); SetData(TYPE_TOMB_OF_SEVEN, DONE); } void Update(uint32 diff) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp index 2bd43e7283c..92906009b9a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp @@ -104,10 +104,10 @@ public: break; case 2: // Close these two doors on Blackhand Incarcerators aggro - if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_IN))) + if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_IN))) if (door1->GetGoState() == GO_STATE_ACTIVE) door1->SetGoState(GO_STATE_READY); - if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetData64(GO_DOORS))) + if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_DOORS))) if (door2->GetGoState() == GO_STATE_ACTIVE) door2->SetGoState(GO_STATE_READY); break; @@ -166,33 +166,33 @@ public: void OpenDoors(bool Boss_Killed) { // These two doors reopen on reset or boss kill - if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_IN))) + if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_IN))) door1->SetGoState(GO_STATE_ACTIVE); - if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetData64(GO_DOORS))) + if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_DOORS))) door2->SetGoState(GO_STATE_ACTIVE); // This door opens on boss kill if (Boss_Killed) - if (GameObject* door3 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_OUT))) + if (GameObject* door3 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_OUT))) door3->SetGoState(GO_STATE_ACTIVE); } void UpdateRunes(GOState state) { // update all runes - if (GameObject* rune1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_1))) + if (GameObject* rune1 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_1))) rune1->SetGoState(state); - if (GameObject* rune2 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_2))) + if (GameObject* rune2 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_2))) rune2->SetGoState(state); - if (GameObject* rune3 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_3))) + if (GameObject* rune3 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_3))) rune3->SetGoState(state); - if (GameObject* rune4 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_4))) + if (GameObject* rune4 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_4))) rune4->SetGoState(state); - if (GameObject* rune5 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_5))) + if (GameObject* rune5 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_5))) rune5->SetGoState(state); - if (GameObject* rune6 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_6))) + if (GameObject* rune6 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_6))) rune6->SetGoState(state); - if (GameObject* rune7 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_7))) + if (GameObject* rune7 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_7))) rune7->SetGoState(state); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp index 94bf3e991f4..2018f12b613 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp @@ -167,16 +167,16 @@ public: boss_rend_blackhandAI(Creature* creature) : BossAI(creature, DATA_WARCHIEF_REND_BLACKHAND) { gythEvent = false; - victorGUID = 0; - portcullisGUID = 0; + victorGUID.Clear(); + portcullisGUID.Clear(); } void Reset() override { _Reset(); gythEvent = false; - victorGUID = 0; - portcullisGUID = 0; + victorGUID.Clear(); + portcullisGUID.Clear(); } void EnterCombat(Unit* /*who*/) override @@ -437,8 +437,8 @@ public: private: bool gythEvent; - uint64 victorGUID; - uint64 portcullisGUID; + ObjectGuid victorGUID; + ObjectGuid portcullisGUID; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index e95fb8da42e..34d524a5470 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -52,29 +52,6 @@ public: { SetHeaders(DataHeader); SetBossNumber(EncounterCount); - HighlordOmokk = 0; - ShadowHunterVoshgajin = 0; - WarMasterVoone = 0; - MotherSmolderweb = 0; - UrokDoomhowl = 0; - QuartermasterZigris = 0; - GizrultheSlavener = 0; - Halycon = 0; - OverlordWyrmthalak = 0; - PyroguardEmberseer = 0; - WarchiefRendBlackhand = 0; - Gyth = 0; - LordVictorNefarius = 0; - TheBeast = 0; - GeneralDrakkisath = 0; - go_emberseerin = 0; - go_doors = 0; - go_emberseerout = 0; - go_blackrockaltar = 0; - go_portcullis_active = 0; - go_portcullis_tobossrooms = 0; - memset(go_roomrunes, 0, sizeof(go_roomrunes)); - memset(go_emberseerrunes, 0, sizeof(go_emberseerrunes)); } void OnCreatureCreate(Creature* creature) override @@ -145,97 +122,97 @@ public: case GO_EMBERSEER_IN: go_emberseerin = go->GetGUID(); if (GetBossState(DATA_DRAGONSPIRE_ROOM) == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_DOORS: go_doors = go->GetGUID(); if (GetBossState(DATA_DRAGONSPIRE_ROOM) == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_EMBERSEER_OUT: go_emberseerout = go->GetGUID(); if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_HALL_RUNE_1: go_roomrunes[0] = go->GetGUID(); if (GetBossState(DATA_HALL_RUNE_1) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_HALL_RUNE_2: go_roomrunes[1] = go->GetGUID(); if (GetBossState(DATA_HALL_RUNE_2) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_HALL_RUNE_3: go_roomrunes[2] = go->GetGUID(); if (GetBossState(DATA_HALL_RUNE_3) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_HALL_RUNE_4: go_roomrunes[3] = go->GetGUID(); if (GetBossState(DATA_HALL_RUNE_4) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_HALL_RUNE_5: go_roomrunes[4] = go->GetGUID(); if (GetBossState(DATA_HALL_RUNE_5) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_HALL_RUNE_6: go_roomrunes[5] = go->GetGUID(); if (GetBossState(DATA_HALL_RUNE_6) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_HALL_RUNE_7: go_roomrunes[6] = go->GetGUID(); if (GetBossState(DATA_HALL_RUNE_7) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_EMBERSEER_RUNE_1: go_emberseerrunes[0] = go->GetGUID(); if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_EMBERSEER_RUNE_2: go_emberseerrunes[1] = go->GetGUID(); if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_EMBERSEER_RUNE_3: go_emberseerrunes[2] = go->GetGUID(); if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_EMBERSEER_RUNE_4: go_emberseerrunes[3] = go->GetGUID(); if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_EMBERSEER_RUNE_5: go_emberseerrunes[4] = go->GetGUID(); if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_EMBERSEER_RUNE_6: go_emberseerrunes[5] = go->GetGUID(); if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_EMBERSEER_RUNE_7: go_emberseerrunes[6] = go->GetGUID(); if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_PORTCULLIS_ACTIVE: go_portcullis_active = go->GetGUID(); if (GetBossState(DATA_GYTH) == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_PORTCULLIS_TOBOSSROOMS: go_portcullis_tobossrooms = go->GetGUID(); if (GetBossState(DATA_GYTH) == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; default: break; @@ -309,7 +286,7 @@ public: } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -382,7 +359,7 @@ public: default: break; } - return 0; + return ObjectGuid::Empty; } void Update(uint32 diff) override @@ -459,7 +436,7 @@ public: if (!_mobAlive && rune->GetGoState() == GO_STATE_ACTIVE) { - HandleGameObject(0, false, rune); + HandleGameObject(ObjectGuid::Empty, false, rune); switch (rune->GetEntry()) { @@ -496,38 +473,38 @@ public: { SetBossState(DATA_DRAGONSPIRE_ROOM, DONE); if (GameObject* door1 = instance->GetGameObject(go_emberseerin)) - HandleGameObject(0, true, door1); + HandleGameObject(ObjectGuid::Empty, true, door1); if (GameObject* door2 = instance->GetGameObject(go_doors)) - HandleGameObject(0, true, door2); + HandleGameObject(ObjectGuid::Empty, true, door2); } } protected: EventMap Events; - uint64 HighlordOmokk; - uint64 ShadowHunterVoshgajin; - uint64 WarMasterVoone; - uint64 MotherSmolderweb; - uint64 UrokDoomhowl; - uint64 QuartermasterZigris; - uint64 GizrultheSlavener; - uint64 Halycon; - uint64 OverlordWyrmthalak; - uint64 PyroguardEmberseer; - uint64 WarchiefRendBlackhand; - uint64 Gyth; - uint64 LordVictorNefarius; - uint64 TheBeast; - uint64 GeneralDrakkisath; - uint64 go_emberseerin; - uint64 go_doors; - uint64 go_emberseerout; - uint64 go_blackrockaltar; - uint64 go_roomrunes[7]; - uint64 go_emberseerrunes[7]; - uint64 runecreaturelist[7][5]; - uint64 go_portcullis_active; - uint64 go_portcullis_tobossrooms; + ObjectGuid HighlordOmokk; + ObjectGuid ShadowHunterVoshgajin; + ObjectGuid WarMasterVoone; + ObjectGuid MotherSmolderweb; + ObjectGuid UrokDoomhowl; + ObjectGuid QuartermasterZigris; + ObjectGuid GizrultheSlavener; + ObjectGuid Halycon; + ObjectGuid OverlordWyrmthalak; + ObjectGuid PyroguardEmberseer; + ObjectGuid WarchiefRendBlackhand; + ObjectGuid Gyth; + ObjectGuid LordVictorNefarius; + ObjectGuid TheBeast; + ObjectGuid GeneralDrakkisath; + ObjectGuid go_emberseerin; + ObjectGuid go_doors; + ObjectGuid go_emberseerout; + ObjectGuid go_blackrockaltar; + ObjectGuid go_roomrunes[7]; + ObjectGuid go_emberseerrunes[7]; + ObjectGuid runecreaturelist[7][5]; + ObjectGuid go_portcullis_active; + ObjectGuid go_portcullis_tobossrooms; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp index b83cc4694ab..2efea4ae30c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp @@ -175,7 +175,7 @@ public: { if (InstanceScript* instance = go->GetInstanceScript()) if (instance->GetData(DATA_EGG_EVENT) != DONE) - if (Creature* razor = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_RAZORGORE_THE_UNTAMED))) + if (Creature* razor = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_RAZORGORE_THE_UNTAMED))) { razor->Attack(player, true); player->CastSpell(razor, SPELL_MINDCONTROL); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp index 1282cdcd313..6b2d6e1f11a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp @@ -78,7 +78,7 @@ public: void Initialize() { - PlayerGUID = 0; + PlayerGUID.Clear(); HasYelled = false; } @@ -231,7 +231,7 @@ public: } private: - uint64 PlayerGUID; + ObjectGuid PlayerGUID; bool HasYelled; }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index ae52e281c9d..bae3f1b9b5c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -60,25 +60,6 @@ public: // Razorgore EggCount = 0; EggEvent = 0; - RazorgoreTheUntamedGUID = 0; - RazorgoreDoorGUID = 0; - // Vaelastrasz the Corrupt - VaelastraszTheCorruptGUID = 0; - VaelastraszDoorGUID = 0; - // Broodlord Lashlayer - BroodlordLashlayerGUID = 0; - BroodlordDoorGUID = 0; - // 3 Dragons - FiremawGUID = 0; - EbonrocGUID = 0; - FlamegorGUID = 0; - ChrommagusDoorGUID = 0; - // Chormaggus - ChromaggusGUID = 0; - NefarianDoorGUID = 0; - // Nefarian - LordVictorNefariusGUID = 0; - NefarianGUID = 0; SetBossNumber(EncounterCount); } @@ -87,26 +68,6 @@ public: // Razorgore EggCount = 0; EggEvent = 0; - RazorgoreTheUntamedGUID = 0; - RazorgoreDoorGUID = 0; - EggList.clear(); - // Vaelastrasz the Corrupt - VaelastraszTheCorruptGUID = 0; - VaelastraszDoorGUID = 0; - // Broodlord Lashlayer - BroodlordLashlayerGUID = 0; - BroodlordDoorGUID = 0; - // 3 Dragons - FiremawGUID = 0; - EbonrocGUID = 0; - FlamegorGUID = 0; - ChrommagusDoorGUID = 0; - // Chormaggus - ChromaggusGUID = 0; - NefarianDoorGUID = 0; - // Nefarian - LordVictorNefariusGUID = 0; - NefarianGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -162,23 +123,23 @@ public: break; case 175946: // Door RazorgoreDoorGUID = go->GetGUID(); - HandleGameObject(0, GetBossState(BOSS_RAZORGORE) == DONE, go); + HandleGameObject(ObjectGuid::Empty, GetBossState(BOSS_RAZORGORE) == DONE, go); break; case 175185: // Door VaelastraszDoorGUID = go->GetGUID(); - HandleGameObject(0, GetBossState(BOSS_VAELASTRAZ) == DONE, go); + HandleGameObject(ObjectGuid::Empty, GetBossState(BOSS_VAELASTRAZ) == DONE, go); break; case 180424: // Door BroodlordDoorGUID = go->GetGUID(); - HandleGameObject(0, GetBossState(BOSS_BROODLORD) == DONE, go); + HandleGameObject(ObjectGuid::Empty, GetBossState(BOSS_BROODLORD) == DONE, go); break; case 185483: // Door ChrommagusDoorGUID = go->GetGUID(); - HandleGameObject(0, GetBossState(BOSS_FIREMAW) == DONE && GetBossState(BOSS_EBONROC) == DONE && GetBossState(BOSS_FLAMEGOR) == DONE, go); + HandleGameObject(ObjectGuid::Empty, GetBossState(BOSS_FIREMAW) == DONE && GetBossState(BOSS_EBONROC) == DONE && GetBossState(BOSS_FLAMEGOR) == DONE, go); break; case 181125: // Door NefarianDoorGUID = go->GetGUID(); - HandleGameObject(0, GetBossState(BOSS_CHROMAGGUS) == DONE, go); + HandleGameObject(ObjectGuid::Empty, GetBossState(BOSS_CHROMAGGUS) == DONE, go); break; } } @@ -200,7 +161,7 @@ public: HandleGameObject(RazorgoreDoorGUID, state == DONE); if (state == DONE) { - for (std::list<uint64>::const_iterator itr = EggList.begin(); itr != EggList.end(); ++itr) + for (GuidList::const_iterator itr = EggList.begin(); itr != EggList.end(); ++itr) if (GameObject* egg = instance->GetGameObject((*itr))) egg->SetPhaseMask(2, true); } @@ -239,7 +200,7 @@ public: return true; } - uint64 GetData64(uint32 id) const override + ObjectGuid GetGuidData(uint32 id) const override { switch (id) { @@ -254,7 +215,7 @@ public: case DATA_NEFARIAN: return NefarianGUID; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -340,31 +301,31 @@ public: // Razorgore uint8 EggCount; uint32 EggEvent; - uint64 RazorgoreTheUntamedGUID; - uint64 RazorgoreDoorGUID; - std::list<uint64> EggList; + ObjectGuid RazorgoreTheUntamedGUID; + ObjectGuid RazorgoreDoorGUID; + GuidList EggList; // Vaelastrasz the Corrupt - uint64 VaelastraszTheCorruptGUID; - uint64 VaelastraszDoorGUID; + ObjectGuid VaelastraszTheCorruptGUID; + ObjectGuid VaelastraszDoorGUID; // Broodlord Lashlayer - uint64 BroodlordLashlayerGUID; - uint64 BroodlordDoorGUID; + ObjectGuid BroodlordLashlayerGUID; + ObjectGuid BroodlordDoorGUID; // 3 Dragons - uint64 FiremawGUID; - uint64 EbonrocGUID; - uint64 FlamegorGUID; - uint64 ChrommagusDoorGUID; + ObjectGuid FiremawGUID; + ObjectGuid EbonrocGUID; + ObjectGuid FlamegorGUID; + ObjectGuid ChrommagusDoorGUID; // Chormaggus - uint64 ChromaggusGUID; - uint64 NefarianDoorGUID; + ObjectGuid ChromaggusGUID; + ObjectGuid NefarianDoorGUID; // Nefarian - uint64 LordVictorNefariusGUID; - uint64 NefarianGUID; + ObjectGuid LordVictorNefariusGUID; + ObjectGuid NefarianGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp index c8b33e48852..cdfe00c767f 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp @@ -150,7 +150,7 @@ class npc_core_rager : public CreatureScript if (HealthAbovePct(50) || !instance) return; - if (Creature* pGolemagg = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_GOLEMAGG_THE_INCINERATOR))) + if (Creature* pGolemagg = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_GOLEMAGG_THE_INCINERATOR))) { if (pGolemagg->IsAlive()) { diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp index 4a0e22b1ba8..58f38ec4267 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp @@ -153,7 +153,7 @@ class boss_ragnaros : public CreatureScript break; case EVENT_INTRO_4: Talk(SAY_ARRIVAL5_RAG); - if (Creature* executus = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MAJORDOMO_EXECUTUS))) + if (Creature* executus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MAJORDOMO_EXECUTUS))) me->Kill(executus); break; case EVENT_INTRO_5: diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp index 800b6bb0edc..7de89b41b7f 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp @@ -45,9 +45,6 @@ class instance_molten_core : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTER); - _golemaggTheIncineratorGUID = 0; - _majordomoExecutusGUID = 0; - _cacheOfTheFirelordGUID = 0; _executusSchedule = false; _ragnarosAddDeaths = 0; } @@ -107,7 +104,7 @@ class instance_molten_core : public InstanceMapScript return 0; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -117,7 +114,7 @@ class instance_molten_core : public InstanceMapScript return _majordomoExecutusGUID; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 bossId, EncounterState state) override @@ -176,9 +173,9 @@ class instance_molten_core : public InstanceMapScript } private: - uint64 _golemaggTheIncineratorGUID; - uint64 _majordomoExecutusGUID; - uint64 _cacheOfTheFirelordGUID; + ObjectGuid _golemaggTheIncineratorGUID; + ObjectGuid _majordomoExecutusGUID; + ObjectGuid _cacheOfTheFirelordGUID; bool _executusSchedule; uint8 _ragnarosAddDeaths; }; diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp index 7338620a8b2..029c3f08a8d 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp @@ -133,7 +133,7 @@ public: ++uiHealth; DoCastAOE(SPELL_SMITE_STOMP, false); SetCombatMovement(false); - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_SMITE_CHEST))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_SMITE_CHEST))) { me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MovePoint(1, go->GetPositionX() - 3.0f, go->GetPositionY(), go->GetPositionZ()); diff --git a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp index c5f4f9cdbf9..d7667b37e87 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp @@ -28,7 +28,6 @@ EndScriptData */ #include "deadmines.h" #include "TemporarySummon.h" #include "WorldPacket.h" -#include "Opcodes.h" enum Sounds { @@ -59,32 +58,24 @@ class instance_deadmines : public InstanceMapScript { instance_deadmines_InstanceMapScript(Map* map) : InstanceScript(map) { } - uint64 FactoryDoorGUID; - uint64 IronCladDoorGUID; - uint64 DefiasCannonGUID; - uint64 DoorLeverGUID; - uint64 DefiasPirate1GUID; - uint64 DefiasPirate2GUID; - uint64 DefiasCompanionGUID; + ObjectGuid FactoryDoorGUID; + ObjectGuid IronCladDoorGUID; + ObjectGuid DefiasCannonGUID; + ObjectGuid DoorLeverGUID; + ObjectGuid DefiasPirate1GUID; + ObjectGuid DefiasPirate2GUID; + ObjectGuid DefiasCompanionGUID; uint32 State; uint32 CannonBlast_Timer; uint32 PiratesDelay_Timer; - uint64 uiSmiteChestGUID; + ObjectGuid uiSmiteChestGUID; void Initialize() override { SetHeaders(DataHeader); - FactoryDoorGUID = 0; - IronCladDoorGUID = 0; - DefiasCannonGUID = 0; - DoorLeverGUID = 0; - DefiasPirate1GUID = 0; - DefiasPirate2GUID = 0; - DefiasCompanionGUID = 0; State = CANNON_NOT_USED; - uiSmiteChestGUID = 0; } virtual void Update(uint32 diff) override @@ -101,9 +92,9 @@ class instance_deadmines : public InstanceMapScript case CANNON_GUNPOWDER_USED: CannonBlast_Timer = DATA_CANNON_BLAST_TIMER; // it's a hack - Mr. Smite should do that but his too far away - pIronCladDoor->SetName("Mr. Smite"); - pIronCladDoor->MonsterYell(SAY_MR_SMITE_ALARM1, LANG_UNIVERSAL, NULL); - DoPlaySound(pIronCladDoor, SOUND_MR_SMITE_ALARM1); + //pIronCladDoor->SetName("Mr. Smite"); + //pIronCladDoor->MonsterYell(SAY_MR_SMITE_ALARM1, LANG_UNIVERSAL, NULL); + pIronCladDoor->PlayDirectSound(SOUND_MR_SMITE_ALARM1); State = CANNON_BLAST_INITIATED; break; case CANNON_BLAST_INITIATED: @@ -114,8 +105,8 @@ class instance_deadmines : public InstanceMapScript ShootCannon(); BlastOutDoor(); LeverStucked(); - pIronCladDoor->MonsterYell(SAY_MR_SMITE_ALARM2, LANG_UNIVERSAL, NULL); - DoPlaySound(pIronCladDoor, SOUND_MR_SMITE_ALARM2); + //pIronCladDoor->MonsterYell(SAY_MR_SMITE_ALARM2, LANG_UNIVERSAL, NULL); + pIronCladDoor->PlayDirectSound(SOUND_MR_SMITE_ALARM2); State = PIRATES_ATTACK; } else CannonBlast_Timer -= diff; break; @@ -170,7 +161,7 @@ class instance_deadmines : public InstanceMapScript if (GameObject* pDefiasCannon = instance->GetGameObject(DefiasCannonGUID)) { pDefiasCannon->SetGoState(GO_STATE_ACTIVE); - DoPlaySound(pDefiasCannon, SOUND_CANNONFIRE); + pDefiasCannon->PlayDirectSound(SOUND_CANNONFIRE); } } @@ -179,7 +170,7 @@ class instance_deadmines : public InstanceMapScript if (GameObject* pIronCladDoor = instance->GetGameObject(IronCladDoorGUID)) { pIronCladDoor->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); - DoPlaySound(pIronCladDoor, SOUND_DESTROYDOOR); + pIronCladDoor->PlayDirectSound(SOUND_DESTROYDOOR); } } @@ -228,7 +219,7 @@ class instance_deadmines : public InstanceMapScript return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -236,14 +227,7 @@ class instance_deadmines : public InstanceMapScript return uiSmiteChestGUID; } - return 0; - } - - void DoPlaySound(GameObject* unit, uint32 sound) - { - WorldPacket data(SMSG_PLAY_SOUND, 4); - data << uint32(sound); - unit->SendMessageToSet(&data, false); + return ObjectGuid::Empty; } }; diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp index d009986651a..6d9d07fdd81 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp @@ -103,8 +103,8 @@ public: uint8 uiPhase; uint32 uiTimer; - std::list<uint64> SummonList; - std::list<uint64> GoSummonList; + GuidList SummonList; + GuidList GoSummonList; void Reset() override { @@ -147,7 +147,7 @@ public: if (GoSummonList.empty()) return; - for (std::list<uint64>::const_iterator itr = GoSummonList.begin(); itr != GoSummonList.end(); ++itr) + for (GuidList::const_iterator itr = GoSummonList.begin(); itr != GoSummonList.end(); ++itr) { if (GameObject* go = ObjectAccessor::GetGameObject(*me, *itr)) { @@ -162,33 +162,33 @@ public: } } - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(isRight ? DATA_GO_CAVE_IN_RIGHT : DATA_GO_CAVE_IN_LEFT))) - instance->HandleGameObject(0, false, go); + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(isRight ? DATA_GO_CAVE_IN_RIGHT : DATA_GO_CAVE_IN_LEFT))) + instance->HandleGameObject(ObjectGuid::Empty, false, go); } void SetInFace(bool isRight) { - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(isRight ? DATA_GO_CAVE_IN_RIGHT : DATA_GO_CAVE_IN_LEFT))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(isRight ? DATA_GO_CAVE_IN_RIGHT : DATA_GO_CAVE_IN_LEFT))) me->SetFacingToObject(go); } void RestoreAll() { - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT))) - instance->HandleGameObject(0, false, go); + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_CAVE_IN_RIGHT))) + instance->HandleGameObject(ObjectGuid::Empty, false, go); - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT))) - instance->HandleGameObject(0, false, go); + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_CAVE_IN_LEFT))) + instance->HandleGameObject(ObjectGuid::Empty, false, go); if (!GoSummonList.empty()) - for (std::list<uint64>::const_iterator itr = GoSummonList.begin(); itr != GoSummonList.end(); ++itr) + for (GuidList::const_iterator itr = GoSummonList.begin(); itr != GoSummonList.end(); ++itr) { if (GameObject* go = ObjectAccessor::GetGameObject(*me, *itr)) go->RemoveFromWorld(); } if (!SummonList.empty()) - for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) + for (GuidList::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) { if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr)) { @@ -398,8 +398,8 @@ public: SetInFace(true); Talk(SAY_BLASTMASTER_5); Summon(1); - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT))) - instance->HandleGameObject(0, true, go); + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_CAVE_IN_RIGHT))) + instance->HandleGameObject(ObjectGuid::Empty, true, go); NextStep(3000, true); break; case 7: @@ -444,8 +444,8 @@ public: case 16: Talk(SAY_BLASTMASTER_14); SetInFace(false); - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT))) - instance->HandleGameObject(0, true, go); + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_CAVE_IN_LEFT))) + instance->HandleGameObject(ObjectGuid::Empty, true, go); NextStep(2000, true); break; case 17: diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp index f8e00fab682..9cd6afaca78 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp @@ -41,19 +41,14 @@ public: uint32 m_auiEncounter[MAX_ENCOUNTER]; - uint64 uiCaveInLeftGUID; - uint64 uiCaveInRightGUID; + ObjectGuid uiCaveInLeftGUID; + ObjectGuid uiCaveInRightGUID; - uint64 uiBastmasterEmiShortfuseGUID; + ObjectGuid uiBastmasterEmiShortfuseGUID; void Initialize() override { memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - - uiCaveInLeftGUID = 0; - uiCaveInRightGUID = 0; - - uiBastmasterEmiShortfuseGUID = 0; } void Load(const char* in) override @@ -93,12 +88,12 @@ public: case GO_CAVE_IN_LEFT: uiCaveInLeftGUID = go->GetGUID(); if (m_auiEncounter[0] == DONE || m_auiEncounter[0] == NOT_STARTED) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_CAVE_IN_RIGHT: uiCaveInRightGUID = go->GetGUID(); if (m_auiEncounter[0] == DONE || m_auiEncounter[0] == NOT_STARTED) - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; } } @@ -124,7 +119,7 @@ public: return 0; } - uint64 GetData64(uint32 uiType) const override + ObjectGuid GetGuidData(uint32 uiType) const override { switch (uiType) { @@ -133,7 +128,7 @@ public: case DATA_NPC_BASTMASTER_EMI_SHORTFUSE: return uiBastmasterEmiShortfuseGUID; } - return 0; + return ObjectGuid::Empty; } }; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp index bbddf0aa5f5..87f7ab5f07e 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp @@ -75,10 +75,10 @@ public: void Initialize() { ResetTimer = 0; - Midnight = 0; + Midnight.Clear(); } - uint64 Midnight; + ObjectGuid Midnight; uint8 Phase; uint32 CleaveTimer; uint32 CurseTimer; @@ -141,11 +141,11 @@ public: void Initialize() { Phase = 1; - Attumen = 0; + Attumen.Clear(); Mount_Timer = 0; } - uint64 Attumen; + ObjectGuid Attumen; uint8 Phase; uint32 Mount_Timer; @@ -242,7 +242,7 @@ public: Mount_Timer = 1000; } - void SetMidnight(Creature* pAttumen, uint64 value) + void SetMidnight(Creature* pAttumen, ObjectGuid value) { ENSURE_AI(boss_attumen::boss_attumenAI, pAttumen->AI())->Midnight = value; } @@ -262,7 +262,7 @@ void boss_attumen::boss_attumenAI::UpdateAI(uint32 diff) pMidnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); pMidnight->SetVisible(true); } - Midnight = 0; + Midnight.Clear(); me->SetVisible(false); me->Kill(me); } else ResetTimer -= diff; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp index 5b4f25aea44..0d9827d390c 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp @@ -107,7 +107,6 @@ public: { Initialize(); memset(AddId, 0, sizeof(AddId)); - memset(AddGUID, 0, sizeof(AddGUID)); instance = creature->GetInstanceScript(); } @@ -126,7 +125,7 @@ public: InstanceScript* instance; - uint64 AddGUID[4]; + ObjectGuid AddGUID[4]; uint32 Vanish_Timer; uint32 Blind_Timer; @@ -339,13 +338,10 @@ struct boss_moroes_guestAI : public ScriptedAI { InstanceScript* instance; - uint64 GuestGUID[4]; + ObjectGuid GuestGUID[4]; boss_moroes_guestAI(Creature* creature) : ScriptedAI(creature) { - for (uint8 i = 0; i < 4; ++i) - GuestGUID[i] = 0; - instance = creature->GetInstanceScript(); } @@ -356,15 +352,15 @@ struct boss_moroes_guestAI : public ScriptedAI void AcquireGUID() { - if (Creature* Moroes = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOROES))) + if (Creature* Moroes = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MOROES))) for (uint8 i = 0; i < 4; ++i) - if (uint64 GUID = ENSURE_AI(boss_moroes::boss_moroesAI, Moroes->AI())->AddGUID[i]) + if (ObjectGuid GUID = ENSURE_AI(boss_moroes::boss_moroesAI, Moroes->AI())->AddGUID[i]) GuestGUID[i] = GUID; } Unit* SelectGuestTarget() { - uint64 TempGUID = GuestGUID[rand32() % 4]; + ObjectGuid TempGUID = GuestGUID[rand32() % 4]; if (TempGUID) { Unit* unit = ObjectAccessor::GetUnit(*me, TempGUID); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index a928413fea0..77e9e3fe86d 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -81,13 +81,6 @@ public: Initialize(); instance = creature->GetInstanceScript(); - for (int i=0; i<3; ++i) - { - PortalGUID[i] = 0; - BeamTarget[i] = 0; - BeamerGUID[i] = 0; - } - PortalPhase = false; PhaseTimer = 0; EmpowermentTimer = 0; @@ -112,9 +105,9 @@ public: uint32 NetherbreathTimer; uint32 EmpowermentTimer; uint32 PortalTimer; // timer for beam checking - uint64 PortalGUID[3]; // guid's of portals - uint64 BeamerGUID[3]; // guid's of auxiliary beaming portals - uint64 BeamTarget[3]; // guid's of portals' current targets + ObjectGuid PortalGUID[3]; // guid's of portals + ObjectGuid BeamerGUID[3]; // guid's of auxiliary beaming portals + ObjectGuid BeamTarget[3]; // guid's of portals' current targets bool IsBetween(WorldObject* u1, WorldObject* target, WorldObject* u2) // the in-line checker { @@ -157,7 +150,7 @@ public: pos[GREEN_PORTAL] = ((r % 2) ? 0 : (r > 1 ? 2 : 1)); pos[BLUE_PORTAL] = (r > 1 ? 1 : 2); // Blue Portal not on the left side (0) - for (int i=0; i<3; ++i) + for (int i = 0; i < 3; ++i) if (Creature* portal = me->SummonCreature(PortalID[i], PortalCoord[pos[i]][0], PortalCoord[pos[i]][1], PortalCoord[pos[i]][2], 0, TEMPSUMMON_TIMED_DESPAWN, 60000)) { PortalGUID[i] = portal->GetGUID(); @@ -173,14 +166,14 @@ public: portal->DisappearAndDie(); if (Creature* portal = ObjectAccessor::GetCreature(*me, BeamerGUID[i])) portal->DisappearAndDie(); - PortalGUID[i] = 0; - BeamTarget[i] = 0; + PortalGUID[i].Clear(); + BeamTarget[i].Clear(); } } void UpdatePortals() // Here we handle the beams' behavior { - for (int j=0; j<3; ++j) // j = color + for (int j = 0; j < 3; ++j) // j = color if (Creature* portal = ObjectAccessor::GetCreature(*me, PortalGUID[j])) { // the one who's been cast upon before @@ -198,9 +191,9 @@ public: Player* p = i->GetSource(); if (p && p->IsAlive() // alive && (!target || target->GetDistance2d(portal)>p->GetDistance2d(portal)) // closer than current best - && !p->HasAura(PlayerDebuff[j], 0) // not exhausted - && !p->HasAura(PlayerBuff[(j+1)%3], 0) // not on another beam - && !p->HasAura(PlayerBuff[(j+2)%3], 0) + && !p->HasAura(PlayerDebuff[j]) // not exhausted + && !p->HasAura(PlayerBuff[(j + 1) % 3]) // not on another beam + && !p->HasAura(PlayerBuff[(j + 2) % 3]) && IsBetween(me, p, portal)) // on the beam target = p; } @@ -220,7 +213,7 @@ public: { beamer->CastSpell(target, PortalBeam[j], false); beamer->DisappearAndDie(); - BeamerGUID[j] = 0; + BeamerGUID[j].Clear(); } // create new one and start beaming on the target if (Creature* beamer = portal->SummonCreature(PortalID[j], portal->GetPositionX(), portal->GetPositionY(), portal->GetPositionZ(), portal->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 60000)) @@ -264,7 +257,7 @@ public: void HandleDoors(bool open) // Massive Door switcher { - if (GameObject* Door = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_MASSIVE_DOOR) )) + if (GameObject* Door = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_MASSIVE_DOOR) )) Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index 7ce11653567..619e3c9cd15 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -159,8 +159,8 @@ public: void HandleTerraceDoors(bool open) { - instance->HandleGameObject(instance->GetData64(DATA_MASTERS_TERRACE_DOOR_1), open); - instance->HandleGameObject(instance->GetData64(DATA_MASTERS_TERRACE_DOOR_2), open); + instance->HandleGameObject(instance->GetGuidData(DATA_MASTERS_TERRACE_DOOR_1), open); + instance->HandleGameObject(instance->GetGuidData(DATA_MASTERS_TERRACE_DOOR_2), open); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index c09b349f143..06e4859a931 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -110,11 +110,11 @@ public: struct netherspite_infernalAI : public ScriptedAI { netherspite_infernalAI(Creature* creature) : ScriptedAI(creature), - HellfireTimer(0), CleanupTimer(0), malchezaar(0), point(NULL) { } + HellfireTimer(0), CleanupTimer(0), point(NULL) { } uint32 HellfireTimer; uint32 CleanupTimer; - uint64 malchezaar; + ObjectGuid malchezaar; InfernalPoint *point; void Reset() override { } @@ -189,7 +189,6 @@ public: Initialize(); instance = creature->GetInstanceScript(); - memset(axes, 0, sizeof(axes)); } void Initialize() @@ -208,7 +207,7 @@ public: for (uint8 i = 0; i < 5; ++i) { - enfeeble_targets[i] = 0; + enfeeble_targets[i].Clear(); enfeeble_health[i] = 0; } } @@ -225,12 +224,12 @@ public: uint32 AxesTargetSwitchTimer; uint32 InfernalCleanupTimer; - std::vector<uint64> infernals; + GuidVector infernals; std::vector<InfernalPoint*> positions; - uint64 axes[2]; - uint64 enfeeble_targets[5]; - uint32 enfeeble_health[5]; + ObjectGuid axes[2]; + ObjectGuid enfeeble_targets[5]; + uint64 enfeeble_health[5]; uint32 phase; @@ -246,7 +245,7 @@ public: for (uint8 i = 0; i < TOTAL_INFERNAL_POINTS; ++i) positions.push_back(&InfernalPoints[i]); - instance->HandleGameObject(instance->GetData64(DATA_GO_NETHER_DOOR), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true); } void KilledUnit(Unit* /*victim*/) override @@ -266,20 +265,20 @@ public: for (uint8 i = 0; i < TOTAL_INFERNAL_POINTS; ++i) positions.push_back(&InfernalPoints[i]); - instance->HandleGameObject(instance->GetData64(DATA_GO_NETHER_DOOR), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true); } void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); - instance->HandleGameObject(instance->GetData64(DATA_GO_NETHER_DOOR), false); // Open the door leading further in + instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), false); // Open the door leading further in } void InfernalCleanup() { //Infernal Cleanup - for (std::vector<uint64>::const_iterator itr = infernals.begin(); itr != infernals.end(); ++itr) + for (GuidVector::const_iterator itr = infernals.begin(); itr != infernals.end(); ++itr) if (Unit* pInfernal = ObjectAccessor::GetUnit(*me, *itr)) if (pInfernal->IsAlive()) { @@ -297,7 +296,7 @@ public: Unit* axe = ObjectAccessor::GetUnit(*me, axes[i]); if (axe && axe->IsAlive()) axe->Kill(axe); - axes[i] = 0; + axes[i].Clear(); } } @@ -350,7 +349,7 @@ public: Unit* target = ObjectAccessor::GetUnit(*me, enfeeble_targets[i]); if (target && target->IsAlive()) target->SetHealth(enfeeble_health[i]); - enfeeble_targets[i] = 0; + enfeeble_targets[i].Clear(); enfeeble_health[i] = 0; } } @@ -398,7 +397,7 @@ public: if (me->HasUnitState(UNIT_STATE_STUNNED)) // While shifting to phase 2 malchezaar stuns himself return; - if (me->GetVictim() && me->GetUInt64Value(UNIT_FIELD_TARGET) != me->EnsureVictim()->GetGUID()) + if (me->GetVictim() && me->GetTarget() != me->EnsureVictim()->GetGUID()) me->SetTarget(me->EnsureVictim()->GetGUID()); if (phase == 1) @@ -576,11 +575,13 @@ public: void Cleanup(Creature* infernal, InfernalPoint *point) { - for (std::vector<uint64>::iterator itr = infernals.begin(); itr!= infernals.end(); ++itr) - if (*itr == infernal->GetGUID()) + for (GuidVector::iterator itr = infernals.begin(); itr!= infernals.end(); ++itr) { - infernals.erase(itr); - break; + if (*itr == infernal->GetGUID()) + { + infernals.erase(itr); + break; + } } positions.push_back(point); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp index c66f2b335c4..4cb0b61365d 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp @@ -134,7 +134,7 @@ public: uint32 FlameWreathTimer; uint32 FlameWreathCheckTime; - uint64 FlameWreathTarget[3]; + ObjectGuid FlameWreathTarget[3]; float FWTargPosX[3]; float FWTargPosY[3]; @@ -155,7 +155,7 @@ public: // Not in progress instance->SetData(TYPE_ARAN, NOT_STARTED); - instance->HandleGameObject(instance->GetData64(DATA_GO_LIBRARY_DOOR), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_LIBRARY_DOOR), true); } void KilledUnit(Unit* /*victim*/) override @@ -168,7 +168,7 @@ public: Talk(SAY_DEATH); instance->SetData(TYPE_ARAN, DONE); - instance->HandleGameObject(instance->GetData64(DATA_GO_LIBRARY_DOOR), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_LIBRARY_DOOR), true); } void EnterCombat(Unit* /*who*/) override @@ -176,7 +176,7 @@ public: Talk(SAY_AGGRO); instance->SetData(TYPE_ARAN, IN_PROGRESS); - instance->HandleGameObject(instance->GetData64(DATA_GO_LIBRARY_DOOR), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_LIBRARY_DOOR), false); } void FlameWreathEffect() @@ -223,7 +223,7 @@ public: { if (CloseDoorTimer <= diff) { - instance->HandleGameObject(instance->GetData64(DATA_GO_LIBRARY_DOOR), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_LIBRARY_DOOR), false); CloseDoorTimer = 0; } else CloseDoorTimer -= diff; } @@ -393,9 +393,9 @@ public: FlameWreathTimer = 20000; FlameWreathCheckTime = 500; - FlameWreathTarget[0] = 0; - FlameWreathTarget[1] = 0; - FlameWreathTarget[2] = 0; + FlameWreathTarget[0].Clear(); + FlameWreathTarget[1].Clear(); + FlameWreathTarget[2].Clear(); FlameWreathEffect(); break; @@ -465,7 +465,7 @@ public: { unit->CastSpell(unit, 20476, true, 0, 0, me->GetGUID()); unit->CastSpell(unit, 11027, true); - FlameWreathTarget[i] = 0; + FlameWreathTarget[i].Clear(); } } FlameWreathCheckTime = 500; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp index ed40c18f70e..db8b1327585 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp @@ -101,7 +101,7 @@ public: void JustDied(Unit* /*killer*/) override { - Creature* Terestian = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TERESTIAN)); + Creature* Terestian = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TERESTIAN)); if (Terestian && Terestian->IsAlive()) DoCast(Terestian, SPELL_BROKEN_PACT, true); } @@ -144,10 +144,10 @@ public: void Initialize() { - SacrificeGUID = 0; + SacrificeGUID.Clear(); } - uint64 SacrificeGUID; + ObjectGuid SacrificeGUID; void Reset() override { @@ -269,10 +269,8 @@ public: { boss_terestianAI(Creature* creature) : ScriptedAI(creature) { - Initialize(); - for (uint8 i = 0; i < 2; ++i) - PortalGUID[i] = 0; instance = creature->GetInstanceScript(); + Initialize(); } void Initialize() @@ -289,7 +287,7 @@ public: InstanceScript* instance; - uint64 PortalGUID[2]; + ObjectGuid PortalGUID[2]; uint8 PortalsCount; uint32 SacrificeTimer; @@ -312,7 +310,7 @@ public: pPortal->DespawnOrUnsummon(); } - PortalGUID[i] = 0; + PortalGUID[i].Clear(); } } @@ -367,7 +365,7 @@ public: if (Creature* pPortal = ObjectAccessor::GetCreature((*me), PortalGUID[i])) pPortal->DespawnOrUnsummon(); - PortalGUID[i] = 0; + PortalGUID[i].Clear(); } } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 7b51b61ba0a..63d543568fb 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -250,11 +250,11 @@ public: void Initialize() { - DorotheeGUID = 0; + DorotheeGUID.Clear(); YipTimer = 10000; } - uint64 DorotheeGUID; + ObjectGuid DorotheeGUID; uint32 YipTimer; void Reset() override @@ -710,10 +710,10 @@ public: Talk(SAY_CRONE_DEATH); instance->SetData(TYPE_OPERA, DONE); - instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORLEFT), true); - instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORRIGHT), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_STAGEDOORLEFT), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_STAGEDOORRIGHT), true); - if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR))) + if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetGuidData(DATA_GO_SIDE_ENTRANCE_DOOR))) pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); } @@ -868,7 +868,7 @@ public: FearTimer = urand(25000, 35000); SwipeTimer = 5000; - HoodGUID = 0; + HoodGUID.Clear(); TempThreat = 0; IsChasing = false; @@ -880,7 +880,7 @@ public: uint32 FearTimer; uint32 SwipeTimer; - uint64 HoodGUID; + ObjectGuid HoodGUID; float TempThreat; bool IsChasing; @@ -910,10 +910,10 @@ public: DoPlaySoundToSet(me, SOUND_WOLF_DEATH); instance->SetData(TYPE_OPERA, DONE); - instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORLEFT), true); - instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORRIGHT), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_STAGEDOORLEFT), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_STAGEDOORRIGHT), true); - if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR))) + if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetGuidData(DATA_GO_SIDE_ENTRANCE_DOOR))) pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); } @@ -947,7 +947,7 @@ public: if (Unit* target = ObjectAccessor::GetUnit(*me, HoodGUID)) { - HoodGUID = 0; + HoodGUID.Clear(); if (DoGetThreat(target)) DoModifyThreatPercent(target, -100); me->AddThreat(target, TempThreat); @@ -1073,7 +1073,7 @@ public: void Initialize() { - RomuloGUID = 0; + RomuloGUID.Clear(); Phase = PHASE_JULIANNE; BlindingPassionTimer = 30000; @@ -1093,7 +1093,7 @@ public: uint32 EntryYellTimer; uint32 AggroYellTimer; - uint64 RomuloGUID; + ObjectGuid RomuloGUID; uint32 Phase; @@ -1160,9 +1160,9 @@ public: Talk(SAY_JULIANNE_DEATH02); instance->SetData(TYPE_OPERA, DONE); - instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORLEFT), true); - instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORRIGHT), true); - if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR))) + instance->HandleGameObject(instance->GetGuidData(DATA_GO_STAGEDOORLEFT), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_STAGEDOORRIGHT), true); + if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetGuidData(DATA_GO_SIDE_ENTRANCE_DOOR))) pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); } @@ -1197,7 +1197,7 @@ public: void Initialize() { - JulianneGUID = 0; + JulianneGUID.Clear(); Phase = PHASE_ROMULO; BackwardLungeTimer = 15000; @@ -1212,7 +1212,7 @@ public: InstanceScript* instance; - uint64 JulianneGUID; + ObjectGuid JulianneGUID; uint32 Phase; uint32 EntryYellTimer; @@ -1318,10 +1318,10 @@ public: Talk(SAY_ROMULO_DEATH); instance->SetData(TYPE_OPERA, DONE); - instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORLEFT), true); - instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORRIGHT), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_STAGEDOORLEFT), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_STAGEDOORRIGHT), true); - if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR))) + if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetGuidData(DATA_GO_SIDE_ENTRANCE_DOOR))) pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index 8f6d142e22b..0d639df731a 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -64,21 +64,21 @@ public: uint32 m_uiOperaEvent; uint32 m_uiOzDeathCount; - uint64 m_uiCurtainGUID; - uint64 m_uiStageDoorLeftGUID; - uint64 m_uiStageDoorRightGUID; - uint64 m_uiKilrekGUID; - uint64 m_uiTerestianGUID; - uint64 m_uiMoroesGUID; - uint64 m_uiLibraryDoor; // Door at Shade of Aran - uint64 m_uiMassiveDoor; // Door at Netherspite - uint64 m_uiSideEntranceDoor; // Side Entrance - uint64 m_uiGamesmansDoor; // Door before Chess - uint64 m_uiGamesmansExitDoor; // Door after Chess - uint64 m_uiNetherspaceDoor; // Door at Malchezaar - uint64 MastersTerraceDoor[2]; - uint64 ImageGUID; - uint64 DustCoveredChest; + ObjectGuid m_uiCurtainGUID; + ObjectGuid m_uiStageDoorLeftGUID; + ObjectGuid m_uiStageDoorRightGUID; + ObjectGuid m_uiKilrekGUID; + ObjectGuid m_uiTerestianGUID; + ObjectGuid m_uiMoroesGUID; + ObjectGuid m_uiLibraryDoor; // Door at Shade of Aran + ObjectGuid m_uiMassiveDoor; // Door at Netherspite + ObjectGuid m_uiSideEntranceDoor; // Side Entrance + ObjectGuid m_uiGamesmansDoor; // Door before Chess + ObjectGuid m_uiGamesmansExitDoor; // Door after Chess + ObjectGuid m_uiNetherspaceDoor; // Door at Malchezaar + ObjectGuid MastersTerraceDoor[2]; + ObjectGuid ImageGUID; + ObjectGuid DustCoveredChest; void Initialize() override { @@ -88,25 +88,6 @@ public: // 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered. m_uiOperaEvent = urand(1, 3); m_uiOzDeathCount = 0; - - m_uiCurtainGUID = 0; - m_uiStageDoorLeftGUID = 0; - m_uiStageDoorRightGUID = 0; - - m_uiKilrekGUID = 0; - m_uiTerestianGUID = 0; - m_uiMoroesGUID = 0; - - m_uiLibraryDoor = 0; - m_uiMassiveDoor = 0; - m_uiSideEntranceDoor = 0; - m_uiGamesmansDoor = 0; - m_uiGamesmansExitDoor = 0; - m_uiNetherspaceDoor = 0; - MastersTerraceDoor[0]= 0; - MastersTerraceDoor[1]= 0; - ImageGUID = 0; - DustCoveredChest = 0; } bool IsEncounterInProgress() const override @@ -183,7 +164,7 @@ public: } } - void SetData64(uint32 identifier, uint64 data) override + void SetGuidData(uint32 identifier, ObjectGuid data) override { switch (identifier) { @@ -265,7 +246,7 @@ public: return 0; } - uint64 GetData64(uint32 uiData) const override + ObjectGuid GetGuidData(uint32 uiData) const override { switch (uiData) { @@ -286,7 +267,7 @@ public: case DATA_IMAGE_OF_MEDIVH: return ImageGUID; } - return 0; + return ObjectGuid::Empty; } void Load(char const* chrIn) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index c37829e26d5..159035c6eb3 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -139,7 +139,7 @@ public: void Initialize() { - m_uiSpotlightGUID = 0; + m_uiSpotlightGUID.Clear(); TalkCount = 0; TalkTimer = 2000; @@ -150,7 +150,7 @@ public: InstanceScript* instance; - uint64 m_uiSpotlightGUID; + ObjectGuid m_uiSpotlightGUID; uint32 TalkCount; uint32 TalkTimer; @@ -186,7 +186,7 @@ public: { case 0: DoCast(me, SPELL_TUXEDO, false); - instance->DoUseDoorOrButton(instance->GetData64(DATA_GO_STAGEDOORLEFT)); + instance->DoUseDoorOrButton(instance->GetGuidData(DATA_GO_STAGEDOORLEFT)); break; case 4: TalkCount = 0; @@ -202,12 +202,12 @@ public: } break; case 8: - instance->DoUseDoorOrButton(instance->GetData64(DATA_GO_STAGEDOORLEFT)); + instance->DoUseDoorOrButton(instance->GetGuidData(DATA_GO_STAGEDOORLEFT)); PerformanceReady = true; break; case 9: PrepareEncounter(); - instance->DoUseDoorOrButton(instance->GetData64(DATA_GO_CURTAINS)); + instance->DoUseDoorOrButton(instance->GetGuidData(DATA_GO_CURTAINS)); break; } } @@ -360,17 +360,17 @@ public: case GOSSIP_ACTION_INFO_DEF+3: player->CLOSE_GOSSIP_MENU(); pBarnesAI->m_uiEventId = EVENT_OZ; - TC_LOG_INFO("scripts", "player (GUID " UI64FMTD ") manually set Opera event to EVENT_OZ", player->GetGUID()); + TC_LOG_INFO("scripts", "player (%s) manually set Opera event to EVENT_OZ", player->GetGUID().ToString().c_str()); break; case GOSSIP_ACTION_INFO_DEF+4: player->CLOSE_GOSSIP_MENU(); pBarnesAI->m_uiEventId = EVENT_HOOD; - TC_LOG_INFO("scripts", "player (GUID " UI64FMTD ") manually set Opera event to EVENT_HOOD", player->GetGUID()); + TC_LOG_INFO("scripts", "player (%s) manually set Opera event to EVENT_HOOD", player->GetGUID().ToString().c_str()); break; case GOSSIP_ACTION_INFO_DEF+5: player->CLOSE_GOSSIP_MENU(); pBarnesAI->m_uiEventId = EVENT_RAJ; - TC_LOG_INFO("scripts", "player (GUID " UI64FMTD ") manually set Opera event to EVENT_RAJ", player->GetGUID()); + TC_LOG_INFO("scripts", "player (%s) manually set Opera event to EVENT_RAJ", player->GetGUID().ToString().c_str()); break; } @@ -491,14 +491,14 @@ public: void Initialize() { - ArcanagosGUID = 0; + ArcanagosGUID.Clear(); EventStarted = false; YellTimer = 0; } InstanceScript* instance; - uint64 ArcanagosGUID; + ObjectGuid ArcanagosGUID; uint32 YellTimer; uint32 Step; @@ -511,9 +511,9 @@ public: { Initialize(); - if (instance->GetData64(DATA_IMAGE_OF_MEDIVH) == 0) + if (instance->GetGuidData(DATA_IMAGE_OF_MEDIVH).IsEmpty()) { - instance->SetData64(DATA_IMAGE_OF_MEDIVH, me->GetGUID()); + instance->SetGuidData(DATA_IMAGE_OF_MEDIVH, me->GetGUID()); (*me).GetMotionMaster()->MovePoint(1, MedivPos[0], MedivPos[1], MedivPos[2]); Step = 0; } @@ -560,25 +560,25 @@ public: { case 0: return 9999999; case 1: - me->MonsterYell(SAY_DIALOG_MEDIVH_1, LANG_UNIVERSAL, NULL); + me->Yell(SAY_DIALOG_MEDIVH_1, LANG_UNIVERSAL); return 10000; case 2: if (arca) - arca->MonsterYell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL, NULL); + arca->Yell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL); return 20000; case 3: - me->MonsterYell(SAY_DIALOG_MEDIVH_3, LANG_UNIVERSAL, NULL); + me->Yell(SAY_DIALOG_MEDIVH_3, LANG_UNIVERSAL); return 10000; case 4: if (arca) - arca->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, NULL); + arca->Yell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL); return 20000; case 5: - me->MonsterYell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL, NULL); + me->Yell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL); return 20000; case 6: if (arca) - arca->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, NULL); + arca->Yell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL); return 10000; case 7: FireArcanagosTimer = 500; @@ -588,7 +588,7 @@ public: DoCast(me, SPELL_MANA_SHIELD); return 10000; case 9: - me->MonsterTextEmote(EMOTE_DIALOG_MEDIVH_7, NULL, false); + me->TextEmote(EMOTE_DIALOG_MEDIVH_7); return 10000; case 10: if (arca) @@ -596,7 +596,7 @@ public: return 1000; case 11: if (arca) - arca->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, NULL); + arca->Yell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL); return 5000; case 12: if (arca) @@ -608,7 +608,7 @@ public: } return 10000; case 13: - me->MonsterYell(SAY_DIALOG_MEDIVH_9, LANG_UNIVERSAL, NULL); + me->Yell(SAY_DIALOG_MEDIVH_9, LANG_UNIVERSAL); return 10000; case 14: me->SetVisible(false); diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index 1aafb32cef9..bae61f9b452 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -166,7 +166,7 @@ public: instance->SetBossState(DATA_KAELTHAS, DONE); // Enable the Translocation Orb Exit - if (GameObject* escapeOrb = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ESCAPE_ORB))) + if (GameObject* escapeOrb = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ESCAPE_ORB))) escapeOrb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } @@ -253,7 +253,7 @@ public: unit->CastSpell(unit, SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, me->GetGUID()); // Use packet hack WorldPacket data(SMSG_MOVE_SET_CAN_FLY, 12); - data.append(unit->GetPackGUID()); + data << unit->GetPackGUID(); data << uint32(0); unit->SendMessageToSet(&data, true); } @@ -273,7 +273,7 @@ public: unit->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT); WorldPacket data(SMSG_MOVE_UNSET_CAN_FLY, 12); - data.append(unit->GetPackGUID()); + data << unit->GetPackGUID(); data << uint32(0); unit->SendMessageToSet(&data, true); } @@ -548,7 +548,7 @@ public: me->ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->ClearAllReactives(); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MoveIdle(); me->SetStandState(UNIT_STAND_STATE_DEAD); diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp index cc2af3dcea5..9acf82c312e 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp @@ -119,7 +119,6 @@ public: { Initialize(); instance = creature->GetInstanceScript(); - memset(&m_auiLackeyGUID, 0, sizeof(m_auiLackeyGUID)); LackeyEntryList.clear(); } @@ -138,7 +137,7 @@ public: InstanceScript* instance; std::vector<uint32> LackeyEntryList; - uint64 m_auiLackeyGUID[MAX_ACTIVE_LACKEY]; + ObjectGuid m_auiLackeyGUID[MAX_ACTIVE_LACKEY]; uint8 PlayersKilled; @@ -361,7 +360,6 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI { Initialize(); instance = creature->GetInstanceScript(); - memset(&m_auiLackeyGUIDs, 0, sizeof(m_auiLackeyGUIDs)); AcquireGUIDs(); } @@ -378,7 +376,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI InstanceScript* instance; - uint64 m_auiLackeyGUIDs[MAX_ACTIVE_LACKEY]; + ObjectGuid m_auiLackeyGUIDs[MAX_ACTIVE_LACKEY]; uint32 ResetThreatTimer; bool UsedPotion; @@ -388,7 +386,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI Initialize(); // in case she is not alive and Reset was for some reason called, respawn her (most likely party wipe after killing her) - if (Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA))) + if (Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DELRISSA))) { if (!pDelrissa->IsAlive()) pDelrissa->Respawn(); @@ -412,7 +410,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI } } - if (Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA))) + if (Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DELRISSA))) { if (pDelrissa->IsAlive() && !pDelrissa->GetVictim()) { @@ -424,7 +422,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI void JustDied(Unit* /*killer*/) override { - Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA)); + Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DELRISSA)); uint32 uiLackeyDeathCount = instance->GetData(DATA_DELRISSA_DEATH_COUNT); if (!pDelrissa) @@ -453,13 +451,13 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI void KilledUnit(Unit* victim) override { - if (Creature* Delrissa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA))) + if (Creature* Delrissa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DELRISSA))) Delrissa->AI()->KilledUnit(victim); } void AcquireGUIDs() { - if (Creature* Delrissa = (ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA)))) + if (Creature* Delrissa = (ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DELRISSA)))) { for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i) m_auiLackeyGUIDs[i] = ENSURE_AI(boss_priestess_delrissa::boss_priestess_delrissaAI, Delrissa->AI())->m_auiLackeyGUID[i]; @@ -1054,7 +1052,6 @@ public: boss_garaxxasAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { Initialize(); - m_uiPetGUID = 0; } void Initialize() @@ -1067,7 +1064,7 @@ public: Freezing_Trap_Timer = 15000; } - uint64 m_uiPetGUID; + ObjectGuid m_uiPetGUID; uint32 Aimed_Shot_Timer; uint32 Shoot_Timer; diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp index d34123c58b2..c186470f2d5 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp @@ -71,7 +71,6 @@ class boss_selin_fireheart : public CreatureScript { boss_selin_fireheartAI(Creature* creature) : BossAI(creature, DATA_SELIN) { - CrystalGUID = 0; _scheduledEvents = false; } @@ -89,7 +88,7 @@ class boss_selin_fireheart : public CreatureScript } _Reset(); - CrystalGUID = 0; + CrystalGUID.Clear(); _scheduledEvents = false; } @@ -221,7 +220,7 @@ class boss_selin_fireheart : public CreatureScript if (CrystalChosen && CrystalChosen->IsAlive()) CrystalChosen->Kill(CrystalChosen); - CrystalGUID = 0; + CrystalGUID.Clear(); me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MoveChase(me->GetVictim()); @@ -255,7 +254,7 @@ class boss_selin_fireheart : public CreatureScript private: std::list<Creature*> Crystals; - uint64 CrystalGUID; + ObjectGuid CrystalGUID; bool _scheduledEvents; }; @@ -278,7 +277,7 @@ class npc_fel_crystal : public CreatureScript { if (InstanceScript* instance = me->GetInstanceScript()) { - Creature* Selin = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SELIN)); + Creature* Selin = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SELIN)); if (Selin && Selin->IsAlive()) Selin->AI()->DoAction(ACTION_SWITCH_PHASE); } diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp index 01491c53f72..65fed52d998 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp @@ -50,12 +50,6 @@ class instance_magisters_terrace : public InstanceMapScript LoadDoorData(doorData); DelrissaDeathCount = 0; - - SelinGUID = 0; - DelrissaGUID = 0; - EscapeOrbGUID = 0; - - memset(KaelStatue, 0, 2 * sizeof(uint64)); } uint32 GetData(uint32 type) const override @@ -162,7 +156,7 @@ class instance_magisters_terrace : public InstanceMapScript return true; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -179,14 +173,14 @@ class instance_magisters_terrace : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 SelinGUID; - uint64 DelrissaGUID; - uint64 KaelStatue[2]; - uint64 EscapeOrbGUID; + ObjectGuid SelinGUID; + ObjectGuid DelrissaGUID; + ObjectGuid KaelStatue[2]; + ObjectGuid EscapeOrbGUID; uint32 DelrissaDeathCount; }; diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp index a20f595183f..6cd14598a58 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp @@ -165,7 +165,7 @@ public: if (Player* player = i->GetSource()) { if (spell && spell->Effects[0].MiscValue) - player->KilledMonsterCredit(spell->Effects[0].MiscValue, 0); + player->KilledMonsterCredit(spell->Effects[0].MiscValue); } } } diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 58ebef77425..2fcdd276bdc 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -107,7 +107,6 @@ public: if (!me->GetCurrentEquipmentId()) me->SetCurrentEquipmentId(me->GetOriginalEquipmentId()); - playerGUID = 0; wait_timer = 0; anchorX = 0.f; anchorY = 0.f; @@ -115,15 +114,15 @@ public: void Initialize() { - anchorGUID = 0; + anchorGUID.Clear(); phase = PHASE_CHAINED; } - uint64 playerGUID; + ObjectGuid playerGUID; UnworthyInitiatePhase phase; uint32 wait_timer; float anchorX, anchorY; - uint64 anchorGUID; + ObjectGuid anchorGUID; EventMap events; @@ -300,17 +299,17 @@ public: struct npc_unworthy_initiate_anchorAI : public PassiveAI { - npc_unworthy_initiate_anchorAI(Creature* creature) : PassiveAI(creature), prisonerGUID(0) { } + npc_unworthy_initiate_anchorAI(Creature* creature) : PassiveAI(creature) { } - uint64 prisonerGUID; + ObjectGuid prisonerGUID; - void SetGUID(uint64 guid, int32 /*id*/) override + void SetGUID(ObjectGuid guid, int32 /*id*/) override { if (!prisonerGUID) prisonerGUID = guid; } - uint64 GetGUID(int32 /*id*/) const override + ObjectGuid GetGUID(int32 /*id*/) const override { return prisonerGUID; } @@ -325,7 +324,7 @@ public: bool OnGossipHello(Player* player, GameObject* go) override { if (Creature* anchor = go->FindNearestCreature(29521, 15)) - if (uint64 prisonerGUID = anchor->AI()->GetGUID()) + if (ObjectGuid prisonerGUID = anchor->AI()->GetGUID()) if (Creature* prisoner = ObjectAccessor::GetCreature(*player, prisonerGUID)) ENSURE_AI(npc_unworthy_initiate::npc_unworthy_initiateAI, prisoner->AI())->EventStart(anchor, player); @@ -421,7 +420,7 @@ class npc_eye_of_acherus : public CreatureScript for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i) me->SetSpeed(UnitMoveType(i), owner->GetSpeedRate(UnitMoveType(i)), true); - TalkToMap(TALK_CONTROL, owner); + Talk(TALK_CONTROL, owner); } me->SetDisableGravity(false); DoCast(me, SPELL_EYE_FLIGHT); @@ -532,14 +531,14 @@ public: void Initialize() { - m_uiDuelerGUID = 0; + m_uiDuelerGUID.Clear(); m_uiDuelTimer = 5000; m_bIsDuelInProgress = false; lose = false; } bool lose; - uint64 m_uiDuelerGUID; + ObjectGuid m_uiDuelerGUID; uint32 m_uiDuelTimer; bool m_bIsDuelInProgress; @@ -655,7 +654,7 @@ class npc_dark_rider_of_acherus : public CreatureScript PhaseTimer = 4000; Phase = 0; Intro = false; - TargetGUID = 0; + TargetGUID.Clear(); } void Reset() override @@ -716,7 +715,7 @@ class npc_dark_rider_of_acherus : public CreatureScript uint32 PhaseTimer; uint32 Phase; bool Intro; - uint64 TargetGUID; + ObjectGuid TargetGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -1010,7 +1009,7 @@ class npc_scarlet_miner_cart : public CreatureScript struct npc_scarlet_miner_cartAI : public PassiveAI { - npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature), _minerGUID(0), _playerGUID(0) + npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature) { me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); // Modelid2 is a horse. @@ -1028,7 +1027,7 @@ class npc_scarlet_miner_cart : public CreatureScript void SummonedCreatureDespawn(Creature* summon) override { if (summon->GetEntry() == NPC_MINER) - _minerGUID = 0; + _minerGUID.Clear(); } void DoAction(int32 /*param*/) override @@ -1054,15 +1053,15 @@ class npc_scarlet_miner_cart : public CreatureScript } else { - _playerGUID = 0; + _playerGUID.Clear(); if (Creature* miner = ObjectAccessor::GetCreature(*me, _minerGUID)) miner->DespawnOrUnsummon(); } } private: - uint64 _minerGUID; - uint64 _playerGUID; + ObjectGuid _minerGUID; + ObjectGuid _playerGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -1096,14 +1095,14 @@ class npc_scarlet_miner : public CreatureScript void Initialize() { - carGUID = 0; + carGUID.Clear(); IntroTimer = 0; IntroPhase = 0; } uint32 IntroTimer; uint32 IntroPhase; - uint64 carGUID; + ObjectGuid carGUID; void Reset() override { @@ -1148,7 +1147,7 @@ class npc_scarlet_miner : public CreatureScript } } - void SetGUID(uint64 guid, int32 /*id = 0*/) override + void SetGUID(ObjectGuid guid, int32 /*id = 0*/) override { InitWaypoint(); Start(false, false, guid); diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index ee624c4f6a5..fe433a6692d 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -60,12 +60,12 @@ public: { speechTimer = 0; speechCounter = 0; - playerGUID = 0; + playerGUID.Clear(); } uint32 speechTimer; uint32 speechCounter; - uint64 playerGUID; + ObjectGuid playerGUID; void Reset() override { @@ -223,7 +223,7 @@ public: { wave = 0; waveTimer = 3000; - valrothGUID = 0; + valrothGUID.Clear(); } void Reset() override @@ -357,7 +357,7 @@ public: private: uint8 wave; uint32 waveTimer; - uint64 valrothGUID; + ObjectGuid valrothGUID; }; @@ -642,12 +642,12 @@ public: { ExecuteSpeech_Timer = 0; ExecuteSpeech_Counter = 0; - PlayerGUID = 0; + PlayerGUID.Clear(); } uint32 ExecuteSpeech_Timer; uint32 ExecuteSpeech_Counter; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; void Reset() override { diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp index f6757afd5bc..d67c28a3552 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp @@ -311,25 +311,6 @@ public: { npc_highlord_darion_mograineAI(Creature* creature) : npc_escortAI(creature) { - uiTirionGUID = 0; - uiAlexandrosGUID = 0; - uiDarionGUID = 0; - uiKorfaxGUID = 0; - uiMaxwellGUID = 0; - uiEligorGUID = 0; - uiRayneGUID = 0; - uiKoltiraGUID = 0; - uiOrbazGUID = 0; - uiThassarianGUID = 0; - uiLichKingGUID = 0; - - memset(uiDefenderGUID, 0, sizeof(uiDefenderGUID)); - memset(uiEarthshatterGUID, 0, sizeof(uiEarthshatterGUID)); - memset(uiAbominationGUID, 0, sizeof(uiAbominationGUID)); - memset(uiBehemothGUID, 0, sizeof(uiBehemothGUID)); - memset(uiGhoulGUID, 0, sizeof(uiGhoulGUID)); - memset(uiWarriorGUID, 0, sizeof(uiWarriorGUID)); - Reset(); } @@ -352,25 +333,25 @@ public: uint32 uiTargetcheck; // Dawn - uint64 uiTirionGUID; - uint64 uiAlexandrosGUID; - uint64 uiDarionGUID; - uint64 uiKorfaxGUID; - uint64 uiMaxwellGUID; - uint64 uiEligorGUID; - uint64 uiRayneGUID; - uint64 uiDefenderGUID[ENCOUNTER_DEFENDER_NUMBER]; - uint64 uiEarthshatterGUID[ENCOUNTER_EARTHSHATTER_NUMBER]; + ObjectGuid uiTirionGUID; + ObjectGuid uiAlexandrosGUID; + ObjectGuid uiDarionGUID; + ObjectGuid uiKorfaxGUID; + ObjectGuid uiMaxwellGUID; + ObjectGuid uiEligorGUID; + ObjectGuid uiRayneGUID; + ObjectGuid uiDefenderGUID[ENCOUNTER_DEFENDER_NUMBER]; + ObjectGuid uiEarthshatterGUID[ENCOUNTER_EARTHSHATTER_NUMBER]; // Death - uint64 uiKoltiraGUID; - uint64 uiOrbazGUID; - uint64 uiThassarianGUID; - uint64 uiLichKingGUID; - uint64 uiAbominationGUID[ENCOUNTER_ABOMINATION_NUMBER]; - uint64 uiBehemothGUID[ENCOUNTER_BEHEMOTH_NUMBER]; - uint64 uiGhoulGUID[ENCOUNTER_GHOUL_NUMBER]; - uint64 uiWarriorGUID[ENCOUNTER_WARRIOR_NUMBER]; + ObjectGuid uiKoltiraGUID; + ObjectGuid uiOrbazGUID; + ObjectGuid uiThassarianGUID; + ObjectGuid uiLichKingGUID; + ObjectGuid uiAbominationGUID[ENCOUNTER_ABOMINATION_NUMBER]; + ObjectGuid uiBehemothGUID[ENCOUNTER_BEHEMOTH_NUMBER]; + ObjectGuid uiGhoulGUID[ENCOUNTER_GHOUL_NUMBER]; + ObjectGuid uiWarriorGUID[ENCOUNTER_WARRIOR_NUMBER]; void Reset() override { @@ -413,23 +394,23 @@ public: if (Creature* temp = ObjectAccessor::GetCreature(*me, uiRayneGUID)) temp->setDeathState(JUST_DIED); - uiTirionGUID = 0; - uiKorfaxGUID = 0; - uiMaxwellGUID = 0; - uiEligorGUID = 0; - uiRayneGUID = 0; + uiTirionGUID.Clear(); + uiKorfaxGUID.Clear(); + uiMaxwellGUID.Clear(); + uiEligorGUID.Clear(); + uiRayneGUID.Clear(); for (uint8 i = 0; i < ENCOUNTER_DEFENDER_NUMBER; ++i) { if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDefenderGUID[i])) temp->setDeathState(JUST_DIED); - uiDefenderGUID[i] = 0; + uiDefenderGUID[i].Clear(); } for (uint8 i = 0; i < ENCOUNTER_EARTHSHATTER_NUMBER; ++i) { if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEarthshatterGUID[i])) temp->setDeathState(JUST_DIED); - uiEarthshatterGUID[i] = 0; + uiEarthshatterGUID[i].Clear(); } if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID)) @@ -441,33 +422,33 @@ public: if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID)) temp->Respawn(); - uiKoltiraGUID = 0; - uiOrbazGUID = 0; - uiThassarianGUID = 0; - uiLichKingGUID = 0; + uiKoltiraGUID.Clear(); + uiOrbazGUID.Clear(); + uiThassarianGUID.Clear(); + uiLichKingGUID.Clear(); for (uint8 i = 0; i < ENCOUNTER_ABOMINATION_NUMBER; ++i) { if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAbominationGUID[i])) temp->setDeathState(JUST_DIED); - uiAbominationGUID[i] = 0; + uiAbominationGUID[i].Clear(); } for (uint8 i = 0; i < ENCOUNTER_BEHEMOTH_NUMBER; ++i) { if (Creature* temp = ObjectAccessor::GetCreature(*me, uiBehemothGUID[i])) temp->setDeathState(JUST_DIED); - uiBehemothGUID[i] = 0; + uiBehemothGUID[i].Clear(); } for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i) { if (Creature* temp = ObjectAccessor::GetCreature(*me, uiGhoulGUID[i])) temp->setDeathState(JUST_DIED); - uiGhoulGUID[i] = 0; + uiGhoulGUID[i].Clear(); } for (uint8 i = 0; i < ENCOUNTER_WARRIOR_NUMBER; ++i) { if (Creature* temp = ObjectAccessor::GetCreature(*me, uiWarriorGUID[i])) temp->setDeathState(JUST_DIED); - uiWarriorGUID[i] = 0; + uiWarriorGUID[i].Clear(); } } } @@ -552,18 +533,18 @@ public: //Unit* pTirion = ObjectAccessor::GetCreature(*me, uiTirionGUID); Talk(EMOTE_LIGHT_OF_DAWN05); - if (me->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0)) + if (me->HasAura(SPELL_THE_LIGHT_OF_DAWN)) me->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID)) { - if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0)) + if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN)) temp->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN); temp->SetWalk(true); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[19].x, LightofDawnLoc[19].y, LightofDawnLoc[19].z); } if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID)) { - if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0)) + if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN)) temp->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN); temp->SetWalk(true); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[21].x, LightofDawnLoc[21].y, LightofDawnLoc[21].z); @@ -1143,7 +1124,7 @@ public: me->SummonGameObject(GO_LIGHT_OF_DAWN, 2283.896f, -5287.914f, 83.066f, 0, 0, 0, 0, 0, 30); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) { - if (temp->HasAura(SPELL_REBIRTH_OF_THE_ASHBRINGER, 0)) + if (temp->HasAura(SPELL_REBIRTH_OF_THE_ASHBRINGER)) temp->RemoveAurasDueToSpell(SPELL_REBIRTH_OF_THE_ASHBRINGER); temp->CastSpell(temp, 41542, false); // workarounds, light expoded, makes it cool temp->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); @@ -1433,7 +1414,7 @@ public: bIsBattle = false; uiFight_duration = 300000; - if (me->HasAura(SPELL_THE_MIGHT_OF_MOGRAINE, 0)) + if (me->HasAura(SPELL_THE_MIGHT_OF_MOGRAINE)) me->RemoveAurasDueToSpell(SPELL_THE_MIGHT_OF_MOGRAINE); me->RemoveAllAuras(); me->DeleteThreatList(); @@ -1532,7 +1513,7 @@ public: ++uiStep; } - void NPCChangeTarget(uint64 ui_GUID) + void NPCChangeTarget(ObjectGuid ui_GUID) { if (Creature* temp = ObjectAccessor::GetCreature(*me, ui_GUID)) if (temp->IsAlive()) @@ -1651,7 +1632,7 @@ public: } } - void DespawnNPC(uint64 pGUID) + void DespawnNPC(ObjectGuid pGUID) { if (Creature* temp = ObjectAccessor::GetCreature(*me, pGUID)) if (temp->IsAlive()) diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 0733640f4c3..58165df48ef 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -240,14 +240,14 @@ public: void Initialize() { Phase = 0; - bodyGUID = 0; + bodyGUID.Clear(); die = false; withbody = true; wait = 1000; laugh = urand(15000, 30000); } - uint64 bodyGUID; + ObjectGuid bodyGUID; uint32 Phase; uint32 laugh; @@ -352,7 +352,7 @@ public: Creature* speaker = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 1000); if (speaker) speaker->CastSpell(speaker, SPELL_HEAD_SPEAKS, false); - me->MonsterTextEmote(EMOTE_LAUGHS, NULL); + me->TextEmote(EMOTE_LAUGHS); } else laugh -= diff; } @@ -390,8 +390,6 @@ public: { Initialize(); instance = creature->GetInstanceScript(); - headGUID = 0; - PlayerGUID = 0; id = 0; whirlwind = 0; wp_reached = false; @@ -417,8 +415,8 @@ public: InstanceScript* instance; - uint64 headGUID; - uint64 PlayerGUID; + ObjectGuid headGUID; + ObjectGuid PlayerGUID; uint32 Phase; uint32 id; @@ -446,9 +444,9 @@ public: if (headGUID) { if (Creature* Head = ObjectAccessor::GetCreature((*me), headGUID)) - Head->DisappearAndDie(); + Head->DespawnOrUnsummon(); - headGUID = 0; + headGUID.Clear(); } me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); @@ -670,14 +668,14 @@ public: if (count < 3) { if (player) - player->Say(Text[count], 0); + player->Say(Text[count], LANG_UNIVERSAL); } else { DoCast(me, SPELL_RHYME_BIG); if (player) { - player->Say(Text[count], 0); + player->Say(Text[count], LANG_UNIVERSAL); player->HandleEmoteCommand(ANIM_EMOTE_SHOUT); } wp_reached = true; @@ -735,7 +733,7 @@ public: if (laugh <= diff) { laugh = urand(11000, 22000); - me->MonsterTextEmote(EMOTE_LAUGHS, NULL); + me->TextEmote(EMOTE_LAUGHS); DoPlaySoundToSet(me, RandomLaugh[rand32() % 3]); } else laugh -= diff; @@ -806,18 +804,17 @@ public: npc_pulsing_pumpkinAI(Creature* creature) : ScriptedAI(creature) { sprouted = false; - debuffGUID = 0; } bool sprouted; - uint64 debuffGUID; + ObjectGuid debuffGUID; void Reset() override { float x, y, z; me->GetPosition(x, y, z); //this visual aura some under ground me->SetPosition(x, y, z + 0.35f, 0.0f); - debuffGUID = 0; + debuffGUID.Clear(); Despawn(); Creature* debuff = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 14500); if (debuff) @@ -857,7 +854,7 @@ public: if (debuff) { debuff->SetVisible(false); - debuffGUID = 0; + debuffGUID.Clear(); } } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp index 3e752858e63..4f0cdc2ec16 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp @@ -77,7 +77,7 @@ class boss_interrogator_vishas : public CreatureScript void JustDied(Unit* /*killer*/) override { _JustDied(); - if (Creature* vorrel = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VORREL))) + if (Creature* vorrel = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VORREL))) vorrel->AI()->Talk(SAY_TRIGGER_VORREL); } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp index 02f7c815414..da32e535ab2 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp @@ -132,7 +132,7 @@ public: return; //On first death, fake death and open door, as well as initiate whitemane if exist - if (Unit* Whitemane = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_WHITEMANE))) + if (Unit* Whitemane = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_WHITEMANE))) { instance->SetBossState(DATA_MOGRAINE_AND_WHITE_EVENT, IN_PROGRESS); @@ -180,7 +180,7 @@ public: if (_bHasDied && !_bHeal && instance->GetBossState(DATA_MOGRAINE_AND_WHITE_EVENT) == SPECIAL) { //On resurrection, stop fake death and heal whitemane and resume fight - if (Unit* Whitemane = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_WHITEMANE))) + if (Unit* Whitemane = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_WHITEMANE))) { me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetStandState(UNIT_STAND_STATE_STAND); @@ -302,7 +302,7 @@ public: //When casting resuruction make sure to delay so on rez when reinstate battle deepsleep runs out if (Wait_Timer <= diff) { - if (Creature* mograine = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOGRAINE))) + if (Creature* mograine = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MOGRAINE))) { DoCast(mograine, SPELL_SCARLETRESURRECTION); Talk(SAY_WH_RESURRECT); @@ -336,7 +336,7 @@ public: if (!HealthAbovePct(75)) target = me; - if (Creature* mograine = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOGRAINE))) + if (Creature* mograine = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MOGRAINE))) { // checking _bCanResurrectCheck prevents her healing Mograine while he is "faking death" if (_bCanResurrectCheck && mograine->IsAlive() && !mograine->HealthAbovePct(75)) diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp index 3a79dac3a90..ab0a44b013d 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp @@ -38,13 +38,6 @@ class instance_scarlet_monastery : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - PumpkinShrineGUID = 0; - HorsemanGUID = 0; - HeadGUID = 0; - MograineGUID = 0; - WhitemaneGUID = 0; - VorrelGUID = 0; - HorsemanAdds.clear(); } @@ -124,7 +117,7 @@ class instance_scarlet_monastery : public InstanceMapScript case DATA_HORSEMAN_EVENT: if (state == DONE) { - for (uint64 guid : HorsemanAdds) + for (ObjectGuid guid : HorsemanAdds) { Creature* add = instance->GetCreature(guid); if (add && add->IsAlive()) @@ -140,7 +133,7 @@ class instance_scarlet_monastery : public InstanceMapScript return true; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -153,18 +146,18 @@ class instance_scarlet_monastery : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 PumpkinShrineGUID; - uint64 HorsemanGUID; - uint64 HeadGUID; - uint64 MograineGUID; - uint64 WhitemaneGUID; - uint64 VorrelGUID; - - std::set<uint64> HorsemanAdds; + ObjectGuid PumpkinShrineGUID; + ObjectGuid HorsemanGUID; + ObjectGuid HeadGUID; + ObjectGuid MograineGUID; + ObjectGuid WhitemaneGUID; + ObjectGuid VorrelGUID; + + GuidSet HorsemanAdds; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp index 0386341ed0c..24f7d90817d 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp @@ -59,14 +59,14 @@ class boss_darkmaster_gandling : public CreatureScript void Reset() override { _Reset(); - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_GANDLING))) + if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_GANDLING))) gate->SetGoState(GO_STATE_ACTIVE); } void JustDied(Unit* /*killer*/) override { _JustDied(); - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_GANDLING))) + if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_GANDLING))) gate->SetGoState(GO_STATE_ACTIVE); } @@ -78,7 +78,7 @@ class boss_darkmaster_gandling : public CreatureScript events.ScheduleEvent(EVENT_CURSE, 2000); events.ScheduleEvent(EVENT_SHADOW_PORTAL, 16000); - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_GANDLING))) + if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_GANDLING))) gate->SetGoState(GO_STATE_READY); } @@ -181,32 +181,32 @@ class spell_shadow_portal : public SpellScriptLoader switch (urand(0, 5)) { case ROOM_HALL_OF_SECRETS: - if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_RAVENIAN))) + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetGuidData(GO_GATE_RAVENIAN))) if (go->GetGoState() == GO_STATE_ACTIVE) spellId = SPELL_SHADOW_PORTAL_HALLOFSECRETS; break; case ROOM_HALL_OF_THE_DAMNED: - if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_THEOLEN))) + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetGuidData(GO_GATE_THEOLEN))) if (go->GetGoState() == GO_STATE_ACTIVE) spellId = SPELL_SHADOW_PORTAL_HALLOFTHEDAMNED; break; case ROOM_THE_COVEN: - if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_MALICIA))) + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetGuidData(GO_GATE_MALICIA))) if (go->GetGoState() == GO_STATE_ACTIVE) spellId = SPELL_SHADOW_PORTAL_THECOVEN; break; case ROOM_THE_SHADOW_VAULT: - if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_ILLUCIA))) + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetGuidData(GO_GATE_ILLUCIA))) if (go->GetGoState() == GO_STATE_ACTIVE) spellId = SPELL_SHADOW_PORTAL_THESHADOWVAULT; break; case ROOM_BAROV_FAMILY_VAULT: - if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_BAROV))) + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetGuidData(GO_GATE_BAROV))) if (go->GetGoState() == GO_STATE_ACTIVE) spellId = SPELL_SHADOW_PORTAL_BAROVFAMILYVAULT; break; case ROOM_VAULT_OF_THE_RAVENIAN: - if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_POLKELT))) + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetGuidData(GO_GATE_POLKELT))) if (go->GetGoState() == GO_STATE_ACTIVE) spellId = SPELL_SHADOW_PORTAL_VAULTOFTHERAVENIAN; break; @@ -348,7 +348,7 @@ class spell_shadow_portal_rooms : public SpellScriptLoader } } - if (GameObject* gate = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(gate_to_close))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*caster, _instance->GetGuidData(gate_to_close))) gate->SetGoState(GO_STATE_READY); } } diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp index 3b423134f2a..05f5dcd9952 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp @@ -98,9 +98,9 @@ class boss_kirtonos_the_herald : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS))) + if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_KIRTONOS))) gate->SetGoState(GO_STATE_ACTIVE); - if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetData64(GO_BRAZIER_OF_THE_HERALD))) + if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) { brazier->ResetDoorOrButton(); brazier->SetGoState(GO_STATE_READY); @@ -110,9 +110,9 @@ class boss_kirtonos_the_herald : public CreatureScript void EnterEvadeMode() override { - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS))) + if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_KIRTONOS))) gate->SetGoState(GO_STATE_ACTIVE); - if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetData64(GO_BRAZIER_OF_THE_HERALD))) + if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) { brazier->ResetDoorOrButton(); brazier->SetGoState(GO_STATE_READY); @@ -160,13 +160,13 @@ class boss_kirtonos_the_herald : public CreatureScript events.ScheduleEvent(INTRO_3, 1000); break; case INTRO_3: - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS))) + if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_KIRTONOS))) gate->SetGoState(GO_STATE_READY); me->SetFacingTo(0.01745329f); events.ScheduleEvent(INTRO_4, 3000); break; case INTRO_4: - if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetData64(GO_BRAZIER_OF_THE_HERALD))) + if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) brazier->SetGoState(GO_STATE_READY); me->SetWalk(true); me->SetDisableGravity(false); diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp index dcb212eead8..f5b1dc34062 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp @@ -89,6 +89,7 @@ public: case EVENT_BLAST_WAVE: DoCast(me, SPELL_BLAST_WAVE); events.ScheduleEvent(EVENT_BLAST_WAVE, 12000); + break; case EVENT_FRENZY: DoCast(me, SPELL_FRENZY); Talk(EMOTE_FRENZY); diff --git a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp index f1959b6cf56..9565666cee8 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp @@ -38,15 +38,6 @@ class instance_scholomance : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(EncounterCount); - GateKirtonosGUID = 0; - GateGandlingGUID = 0; - GateMiliciaGUID = 0; - GateTheolenGUID = 0; - GatePolkeltGUID = 0; - GateRavenianGUID = 0; - GateBarovGUID = 0; - GateIlluciaGUID = 0; - BrazierOfTheHeraldGUID = 0; } void OnGameObjectCreate(GameObject* go) override @@ -107,7 +98,7 @@ class instance_scholomance : public InstanceMapScript return true; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -133,7 +124,7 @@ class instance_scholomance : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } bool CheckPreBosses(uint32 bossId) const @@ -175,15 +166,15 @@ class instance_scholomance : public InstanceMapScript } protected: - uint64 GateKirtonosGUID; - uint64 GateGandlingGUID; - uint64 GateMiliciaGUID; - uint64 GateTheolenGUID; - uint64 GatePolkeltGUID; - uint64 GateRavenianGUID; - uint64 GateBarovGUID; - uint64 GateIlluciaGUID; - uint64 BrazierOfTheHeraldGUID; + ObjectGuid GateKirtonosGUID; + ObjectGuid GateGandlingGUID; + ObjectGuid GateMiliciaGUID; + ObjectGuid GateTheolenGUID; + ObjectGuid GatePolkeltGUID; + ObjectGuid GateRavenianGUID; + ObjectGuid GateBarovGUID; + ObjectGuid GateIlluciaGUID; + ObjectGuid BrazierOfTheHeraldGUID; }; }; diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp index 10c4aedf103..ae8cb74ea49 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp @@ -83,13 +83,13 @@ public: uint32 m_auiEncounter[MAX_ENCOUNTER]; std::string str_data; - uint64 uiAshGUID; - uint64 uiAdaGUID; - uint64 uiArchmageArugalGUID; + ObjectGuid uiAshGUID; + ObjectGuid uiAdaGUID; + ObjectGuid uiArchmageArugalGUID; - uint64 DoorCourtyardGUID; - uint64 DoorSorcererGUID; - uint64 DoorArugalGUID; + ObjectGuid DoorCourtyardGUID; + ObjectGuid DoorSorcererGUID; + ObjectGuid DoorArugalGUID; uint8 uiPhase; uint16 uiTimer; @@ -99,14 +99,6 @@ public: SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - uiAshGUID = 0; - uiAdaGUID = 0; - uiArchmageArugalGUID = 0; - - DoorCourtyardGUID = 0; - DoorSorcererGUID = 0; - DoorArugalGUID = 0; - uiPhase = 0; uiTimer = 0; } @@ -128,17 +120,17 @@ public: case GO_COURTYARD_DOOR: DoorCourtyardGUID = go->GetGUID(); if (m_auiEncounter[0] == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_SORCERER_DOOR: DoorSorcererGUID = go->GetGUID(); if (m_auiEncounter[2] == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_ARUGAL_DOOR: DoorArugalGUID = go->GetGUID(); if (m_auiEncounter[3] == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; } } diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp index 0a09bc85ea3..e855b7e676f 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp @@ -132,7 +132,7 @@ public: if (instance->GetData(TYPE_SH_QUEST)) { if (Player* player = killer->ToPlayer()) - player->KilledMonsterCredit(SH_QUEST_CREDIT, 0); + player->KilledMonsterCredit(SH_QUEST_CREDIT); } } diff --git a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp index 43ce4d05297..927ca0b19ac 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp @@ -56,21 +56,21 @@ class instance_stratholme : public InstanceMapScript bool IsSilverHandDead[5]; - uint64 serviceEntranceGUID; - uint64 gauntletGate1GUID; - uint64 ziggurat1GUID; - uint64 ziggurat2GUID; - uint64 ziggurat3GUID; - uint64 ziggurat4GUID; - uint64 ziggurat5GUID; - uint64 portGauntletGUID; - uint64 portSlaugtherGUID; - uint64 portElderGUID; - - uint64 baronGUID; - uint64 ysidaTriggerGUID; - std::set<uint64> crystalsGUID; - std::set<uint64> abomnationGUID; + ObjectGuid serviceEntranceGUID; + ObjectGuid gauntletGate1GUID; + ObjectGuid ziggurat1GUID; + ObjectGuid ziggurat2GUID; + ObjectGuid ziggurat3GUID; + ObjectGuid ziggurat4GUID; + ObjectGuid ziggurat5GUID; + ObjectGuid portGauntletGUID; + ObjectGuid portSlaugtherGUID; + ObjectGuid portElderGUID; + + ObjectGuid baronGUID; + ObjectGuid ysidaTriggerGUID; + GuidSet crystalsGUID; + GuidSet abomnationGUID; EventMap events; void Initialize() override @@ -81,19 +81,6 @@ class instance_stratholme : public InstanceMapScript for (uint8 i = 0; i < 5; ++i) IsSilverHandDead[i] = false; - serviceEntranceGUID = 0; - gauntletGate1GUID = 0; - ziggurat1GUID = 0; - ziggurat2GUID = 0; - ziggurat3GUID = 0; - ziggurat4GUID = 0; - ziggurat5GUID = 0; - portGauntletGUID = 0; - portSlaugtherGUID = 0; - portElderGUID = 0; - - baronGUID = 0; - ysidaTriggerGUID = 0; crystalsGUID.clear(); abomnationGUID.clear(); } @@ -113,7 +100,7 @@ class instance_stratholme : public InstanceMapScript } //if withRestoreTime true, then newState will be ignored and GO should be restored to original state after 10 seconds - void UpdateGoState(uint64 goGuid, uint32 newState, bool withRestoreTime) + void UpdateGoState(ObjectGuid goGuid, uint32 newState, bool withRestoreTime) { if (!goGuid) return; @@ -176,37 +163,37 @@ class instance_stratholme : public InstanceMapScript case GO_ZIGGURAT1: ziggurat1GUID = go->GetGUID(); if (GetData(TYPE_BARONESS) == IN_PROGRESS) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_ZIGGURAT2: ziggurat2GUID = go->GetGUID(); if (GetData(TYPE_NERUB) == IN_PROGRESS) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_ZIGGURAT3: ziggurat3GUID = go->GetGUID(); if (GetData(TYPE_PALLID) == IN_PROGRESS) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_ZIGGURAT4: ziggurat4GUID = go->GetGUID(); if (GetData(TYPE_BARON) == DONE || GetData(TYPE_RAMSTEIN) == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_ZIGGURAT5: ziggurat5GUID = go->GetGUID(); if (GetData(TYPE_BARON) == DONE || GetData(TYPE_RAMSTEIN) == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_PORT_GAUNTLET: portGauntletGUID = go->GetGUID(); if (GetData(TYPE_BARONESS) == IN_PROGRESS && GetData(TYPE_NERUB) == IN_PROGRESS && GetData(TYPE_PALLID) == IN_PROGRESS) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_PORT_SLAUGTHER: portSlaugtherGUID = go->GetGUID(); if (GetData(TYPE_BARONESS) == IN_PROGRESS && GetData(TYPE_NERUB) == IN_PROGRESS && GetData(TYPE_PALLID) == IN_PROGRESS) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_PORT_ELDERS: portElderGUID = go->GetGUID(); @@ -276,7 +263,7 @@ class instance_stratholme : public InstanceMapScript HandleGameObject(portGauntletGUID, false); uint32 count = abomnationGUID.size(); - for (std::set<uint64>::const_iterator i = abomnationGUID.begin(); i != abomnationGUID.end(); ++i) + for (GuidSet::const_iterator i = abomnationGUID.begin(); i != abomnationGUID.end(); ++i) { if (Creature* pAbom = instance->GetCreature(*i)) if (!pAbom->IsAlive()) @@ -418,7 +405,7 @@ class instance_stratholme : public InstanceMapScript return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -427,7 +414,7 @@ class instance_stratholme : public InstanceMapScript case DATA_YSIDA_TRIGGER: return ysidaTriggerGUID; } - return 0; + return ObjectGuid::Empty; } void Update(uint32 diff) override diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp index 9c733677b42..384be9c90a8 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp @@ -117,12 +117,12 @@ public: void Initialize() { - Tagger = 0; + Tagger.Clear(); Die_Timer = 5000; Tagged = false; } - uint64 Tagger; + ObjectGuid Tagger; uint32 Die_Timer; bool Tagged; diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp index ee16a662711..194f5790f44 100644 --- a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp +++ b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp @@ -63,13 +63,13 @@ public: SetHeaders(DataHeader); } - uint64 GOAtalaiStatue1; - uint64 GOAtalaiStatue2; - uint64 GOAtalaiStatue3; - uint64 GOAtalaiStatue4; - uint64 GOAtalaiStatue5; - uint64 GOAtalaiStatue6; - uint64 GOAtalaiIdol; + ObjectGuid GOAtalaiStatue1; + ObjectGuid GOAtalaiStatue2; + ObjectGuid GOAtalaiStatue3; + ObjectGuid GOAtalaiStatue4; + ObjectGuid GOAtalaiStatue5; + ObjectGuid GOAtalaiStatue6; + ObjectGuid GOAtalaiIdol; uint32 State; @@ -82,13 +82,6 @@ public: void Initialize() override { - GOAtalaiStatue1 = 0; - GOAtalaiStatue2 = 0; - GOAtalaiStatue3 = 0; - GOAtalaiStatue4 = 0; - GOAtalaiStatue5 = 0; - GOAtalaiStatue6 = 0; - GOAtalaiIdol = 0; State = 0; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index 4e401be7df3..1ad113456ac 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -147,7 +147,7 @@ public: if (!Intro || IsIntro) return; - if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA))) + if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MADRIGOSA))) { Madrigosa->Respawn(); Madrigosa->setActive(true); @@ -182,7 +182,7 @@ public: void DoIntro() { - Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA)); + Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MADRIGOSA)); if (!Madrigosa) return; @@ -285,7 +285,7 @@ public: { if (IntroFrostBoltTimer <= diff) { - if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA))) + if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MADRIGOSA))) { Madrigosa->CastSpell(me, SPELL_INTRO_FROSTBOLT, true); IntroFrostBoltTimer = 2000; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index d2382cda37d..7613811e021 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -114,7 +114,7 @@ public: { Enraged = false; - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALYTHESS))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALYTHESS))) { if (temp->isDead()) temp->Respawn(); @@ -134,7 +134,7 @@ public: { DoZoneInCombat(); - Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALYTHESS)); + Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALYTHESS)); if (temp && temp->IsAlive() && !temp->GetVictim()) temp->AI()->AttackStart(who); @@ -207,7 +207,7 @@ public: { if (!SisterDeath) { - Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); + Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ALYTHESS)); if (Temp && Temp->isDead()) { Talk(YELL_SISTER_ALYTHESS_DEAD); @@ -366,7 +366,7 @@ public: { Enraged = false; - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SACROLASH))) { if (temp->isDead()) temp->Respawn(); @@ -386,7 +386,7 @@ public: { DoZoneInCombat(); - Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); + Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SACROLASH)); if (temp && temp->IsAlive() && !temp->GetVictim()) temp->AI()->AttackStart(who); @@ -486,7 +486,7 @@ public: uint32 IntroStep(uint32 step) { - Creature* Sacrolash = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); + Creature* Sacrolash = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SACROLASH)); switch (step) { case 0: @@ -535,7 +535,7 @@ public: if (!SisterDeath) { - Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); + Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_SACROLASH)); if (Temp && Temp->isDead()) { Talk(YELL_SISTER_SACROLASH_DEAD); @@ -546,7 +546,7 @@ public: } if (!me->GetVictim()) { - Creature* sisiter = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); + Creature* sisiter = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SACROLASH)); if (sisiter && !sisiter->isDead() && sisiter->GetVictim()) { me->AddThreat(sisiter->GetVictim(), 0.0f); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 4b17f698553..859a09aff78 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -288,7 +288,7 @@ public: { Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); if (!target) - target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); + target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_PLAYER_GUID)); if (!target) { @@ -314,7 +314,7 @@ public: Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); if (!target) - target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); + target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_PLAYER_GUID)); if (!target) { @@ -343,7 +343,7 @@ public: { Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); if (!target) - target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); + target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_PLAYER_GUID)); if (!target) { diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index 3284febb9f3..f88c9c6159e 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -115,7 +115,7 @@ public: void Initialize() { - SathGUID = 0; + SathGUID.Clear(); ArcaneBuffetTimer = 8000; FrostBreathTimer = 15000; WildMagicTimer = 10000; @@ -148,11 +148,11 @@ public: bool isBanished; bool bJustReset; - uint64 SathGUID; + ObjectGuid SathGUID; void Reset() override { - SathGUID = instance->GetData64(DATA_SATHROVARR); + SathGUID = instance->GetGuidData(DATA_SATHROVARR); instance->SetBossState(DATA_KALECGOS, NOT_STARTED); if (Creature* Sath = ObjectAccessor::GetCreature(*me, SathGUID)) @@ -456,7 +456,7 @@ public: uint32 YellTimer; uint32 YellSequence; - uint64 SathGUID; + ObjectGuid SathGUID; bool isEnraged; // if demon is enraged @@ -464,7 +464,6 @@ public: { Initialize(); instance = creature->GetInstanceScript(); - SathGUID = 0; } void Initialize() @@ -479,7 +478,7 @@ public: void Reset() override { - SathGUID = instance->GetData64(DATA_SATHROVARR); + SathGUID = instance->GetGuidData(DATA_SATHROVARR); Initialize(); } @@ -593,8 +592,6 @@ public: { Initialize(); instance = creature->GetInstanceScript(); - KalecGUID = 0; - KalecgosGUID = 0; } void Initialize() @@ -616,8 +613,8 @@ public: uint32 CheckTimer; uint32 ResetThreat; - uint64 KalecGUID; - uint64 KalecgosGUID; + ObjectGuid KalecGUID; + ObjectGuid KalecgosGUID; bool isEnraged; bool isBanished; @@ -626,13 +623,13 @@ public: { me->SetFullHealth();//dunno why it does not resets health at evade.. me->setActive(true); - KalecgosGUID = instance->GetData64(DATA_KALECGOS_DRAGON); + KalecgosGUID = instance->GetGuidData(DATA_KALECGOS_DRAGON); instance->SetBossState(DATA_KALECGOS, NOT_STARTED); if (KalecGUID) { if (Creature* Kalec = ObjectAccessor::GetCreature(*me, KalecGUID)) Kalec->setDeathState(JUST_DIED); - KalecGUID = 0; + KalecGUID.Clear(); } Initialize(); @@ -769,7 +766,7 @@ public: } else { - me->MonsterTextEmote(EMOTE_UNABLE_TO_FIND, NULL); + me->TextEmote(EMOTE_UNABLE_TO_FIND); EnterEvadeMode(); return; } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 79ebfa7b62b..9bddbcccf49 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -274,13 +274,13 @@ public: switch (index) { case 0: - return ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1)); + return ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1)); case 1: - return ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2)); + return ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2)); case 2: - return ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3)); + return ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3)); case 3: - return ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4)); + return ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4)); } return NULL; @@ -375,7 +375,7 @@ public: player->CastSpell(player, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, false); go->SetUInt32Value(GAMEOBJECT_FACTION, 0); - if (Creature* pKalec = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_KALECGOS_KJ))) + if (Creature* pKalec = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_KALECGOS_KJ))) ENSURE_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalec->AI())->SetRingOfBlueFlames(); go->Refresh(); @@ -437,7 +437,7 @@ public: { Initialize(); - if (Creature* pKalecKJ = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_KALECGOS_KJ))) + if (Creature* pKalecKJ = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_KALECGOS_KJ))) ENSURE_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalecKJ->AI())->ResetOrbs(); summons.DespawnAll(); } @@ -571,7 +571,7 @@ public: { Initialize(); - if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KALECGOS_KJ))) + if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KALECGOS_KJ))) pKalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES); me->SetFloatValue(UNIT_FIELD_COMBATREACH, 12); @@ -631,7 +631,7 @@ public: summons.DespawnAll(); // Reset the controller - if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) + if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KILJAEDEN_CONTROLLER))) ENSURE_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->Reset(); } @@ -713,10 +713,10 @@ public: if (Speeches[speechCount].timer < SpeechTimer) { SpeechTimer = 0; - if (Creature* speechCreature = ObjectAccessor::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature))) + if (Creature* speechCreature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(Speeches[speechCount].creature))) speechCreature->AI()->Talk(Speeches[speechCount].textid); if (speechCount == 12) - if (Creature* pAnveena = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ANVEENA))) + if (Creature* pAnveena = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ANVEENA))) pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false); // ChangeTimers(true, 10000); // Kil should do an emote while screaming without attacking for 10 seconds if (speechCount == speechPhaseEnd) @@ -742,7 +742,7 @@ public: for (uint8 z = 0; z < 6; ++z) { pRandomPlayer = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); - if (!pRandomPlayer || !pRandomPlayer->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, 0)) + if (!pRandomPlayer || !pRandomPlayer->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT)) break; } @@ -815,7 +815,7 @@ public: } break; case TIMER_ORBS_EMPOWER: //Phase 3 - if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KALECGOS_KJ))) + if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KALECGOS_KJ))) { switch (Phase) { @@ -835,7 +835,7 @@ public: for (uint8 z = 0; z < 6; ++z) { target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); - if (!target || !target->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, 0)) break; + if (!target || !target->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT)) break; } if (target) { @@ -941,7 +941,7 @@ public: void EnterCombat(Unit* who) override { instance->SetBossState(DATA_KILJAEDEN, IN_PROGRESS); - if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) + if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KILJAEDEN_CONTROLLER))) pControl->AddThreat(who, 1.0f); me->InterruptNonMeleeSpells(true); @@ -949,7 +949,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) + if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KILJAEDEN_CONTROLLER))) ++(ENSURE_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->deceiverDeathCount); } @@ -962,7 +962,7 @@ public: return; // Gain Shadow Infusion at 20% health - if (HealthBelowPct(20) && !me->HasAura(SPELL_SHADOW_INFUSION, 0)) + if (HealthBelowPct(20) && !me->HasAura(SPELL_SHADOW_INFUSION)) DoCast(me, SPELL_SHADOW_INFUSION, true); // Shadow Bolt Volley - Shoots Shadow Bolts at all enemies within 30 yards, for ~2k Shadow damage. @@ -1260,7 +1260,7 @@ public: if (uiTimer <= diff) { - if (Unit* random = ObjectAccessor::GetPlayer(*me, instance->GetData64(DATA_PLAYER_GUID))) + if (Unit* random = ObjectAccessor::GetPlayer(*me, instance->GetGuidData(DATA_PLAYER_GUID))) DoCast(random, SPELL_SHADOW_BOLT, false); uiTimer = urand(500, 1000); } else uiTimer -= diff; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 823423fc3a8..99b710afb1e 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -153,7 +153,7 @@ public: void EnterEvadeMode() override { - if (Creature* muru = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MURU))) + if (Creature* muru = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MURU))) muru->AI()->Reset(); // Reset encounter. me->DisappearAndDie(); summons.DespawnAll(); @@ -183,7 +183,7 @@ public: { DarkFiend = false; HasEnraged = false; - EntropiusGUID = 0; + EntropiusGUID.Clear(); } void Reset() override @@ -278,7 +278,7 @@ public: private: bool DarkFiend; bool HasEnraged; - uint64 EntropiusGUID; + ObjectGuid EntropiusGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -334,7 +334,7 @@ public: void JustSummoned(Creature* summoned) override { - if (Player* target = ObjectAccessor::GetPlayer(*me, instance->GetData64(DATA_PLAYER_GUID))) + if (Player* target = ObjectAccessor::GetPlayer(*me, instance->GetGuidData(DATA_PLAYER_GUID))) summoned->AI()->AttackStart(target); Summons.Summon(summoned); @@ -555,7 +555,7 @@ public: { if (SpellTimer <= diff) { - Unit* Victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); + Unit* Victim = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_PLAYER_GUID)); switch (NeedForAHack) { case 0: @@ -574,7 +574,7 @@ public: case 2: SpellTimer = 400; NeedForAHack = 3; - me->RemoveAura(SPELL_BLACKHOLE_GROW, 1); + me->RemoveAura(SPELL_BLACKHOLE_GROW); break; case 3: SpellTimer = urand(400, 900); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 2066c4309b2..f0e785bad16 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -53,21 +53,7 @@ class instance_sunwell_plateau : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - KalecgosDragonGUID = 0; - KalecgosHumanGUID = 0; - SathrovarrGUID = 0; - BrutallusGUID = 0; - MadrigosaGUID = 0; - FelmystGUID = 0; - AlythessGUID = 0; - SacrolashGUID = 0; - MuruGUID = 0; - KilJaedenGUID = 0; - KilJaedenControllerGUID = 0; - AnveenaGUID = 0; - KalecgosKjGUID = 0; SpectralPlayers = 0; - SpectralRealmTimer = 5000; } @@ -80,7 +66,7 @@ class instance_sunwell_plateau : public InstanceMapScript for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) { Player* player = itr->GetSource(); - if (player && !player->HasAura(45839, 0)) + if (player && !player->HasAura(45839)) return player; } } @@ -172,7 +158,7 @@ class instance_sunwell_plateau : public InstanceMapScript } } - uint64 GetData64(uint32 id) const override + ObjectGuid GetGuidData(uint32 id) const override { switch (id) { @@ -205,32 +191,32 @@ class instance_sunwell_plateau : public InstanceMapScript case DATA_PLAYER_GUID: { Player const* target = GetPlayerInMap(); - return target ? target->GetGUID() : 0; + return target ? target->GetGUID() : ObjectGuid::Empty; } default: break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 KalecgosDragonGUID; - uint64 KalecgosHumanGUID; - uint64 SathrovarrGUID; - uint64 BrutallusGUID; - uint64 MadrigosaGUID; - uint64 FelmystGUID; - uint64 AlythessGUID; - uint64 SacrolashGUID; - uint64 MuruGUID; - uint64 KilJaedenGUID; - uint64 KilJaedenControllerGUID; - uint64 AnveenaGUID; - uint64 KalecgosKjGUID; + ObjectGuid KalecgosDragonGUID; + ObjectGuid KalecgosHumanGUID; + ObjectGuid SathrovarrGUID; + ObjectGuid BrutallusGUID; + ObjectGuid MadrigosaGUID; + ObjectGuid FelmystGUID; + ObjectGuid AlythessGUID; + ObjectGuid SacrolashGUID; + ObjectGuid MuruGUID; + ObjectGuid KilJaedenGUID; + ObjectGuid KilJaedenControllerGUID; + ObjectGuid AnveenaGUID; + ObjectGuid KalecgosKjGUID; uint32 SpectralPlayers; uint32 SpectralRealmTimer; - std::vector<uint64> SpectralRealmList; + GuidVector SpectralRealmList; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp index f82d71901ac..6986cb8d6e9 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp @@ -98,7 +98,7 @@ class boss_archaedas : public CreatureScript me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); } - void ActivateMinion(uint64 uiGuid, bool flag) + void ActivateMinion(ObjectGuid uiGuid, bool flag) { Unit* minion = ObjectAccessor::GetUnit(*me, uiGuid); @@ -145,7 +145,7 @@ class boss_archaedas : public CreatureScript } else if (bWakingUp && iAwakenTimer <= 0) { bWakingUp = false; - AttackStart(ObjectAccessor::GetUnit(*me, instance->GetData64(0))); + AttackStart(ObjectAccessor::GetUnit(*me, instance->GetGuidData(0))); return; // dont want to continue until we finish the AttackStart method } @@ -164,12 +164,12 @@ class boss_archaedas : public CreatureScript //If we are <66 summon the guardians if (!bGuardiansAwake && !HealthAbovePct(66)) { - ActivateMinion(instance->GetData64(5), true); // EarthenGuardian1 - ActivateMinion(instance->GetData64(6), true); // EarthenGuardian2 - ActivateMinion(instance->GetData64(7), true); // EarthenGuardian3 - ActivateMinion(instance->GetData64(8), true); // EarthenGuardian4 - ActivateMinion(instance->GetData64(9), true); // EarthenGuardian5 - ActivateMinion(instance->GetData64(10), false); // EarthenGuardian6 + ActivateMinion(instance->GetGuidData(5), true); // EarthenGuardian1 + ActivateMinion(instance->GetGuidData(6), true); // EarthenGuardian2 + ActivateMinion(instance->GetGuidData(7), true); // EarthenGuardian3 + ActivateMinion(instance->GetGuidData(8), true); // EarthenGuardian4 + ActivateMinion(instance->GetGuidData(9), true); // EarthenGuardian5 + ActivateMinion(instance->GetGuidData(10), false); // EarthenGuardian6 Talk(SAY_SUMMON_GUARDIANS); bGuardiansAwake = true; } @@ -177,10 +177,10 @@ class boss_archaedas : public CreatureScript //If we are <33 summon the vault walkers if (!bVaultWalkersAwake && !HealthAbovePct(33)) { - ActivateMinion(instance->GetData64(1), true); // VaultWalker1 - ActivateMinion(instance->GetData64(2), true); // VaultWalker2 - ActivateMinion(instance->GetData64(3), true); // VaultWalker3 - ActivateMinion(instance->GetData64(4), false); // VaultWalker4 + ActivateMinion(instance->GetGuidData(1), true); // VaultWalker1 + ActivateMinion(instance->GetGuidData(2), true); // VaultWalker2 + ActivateMinion(instance->GetGuidData(3), true); // VaultWalker3 + ActivateMinion(instance->GetGuidData(4), false); // VaultWalker4 Talk(SAY_SUMMON_VAULT_WALKERS); bVaultWalkersAwake = true; } @@ -297,7 +297,7 @@ class npc_archaedas_minions : public CreatureScript { bWakingUp = false; bAmIAwake = true; - // AttackStart(ObjectAccessor::GetUnit(*me, instance->GetData64(0))); // whoWokeArchaedasGUID + // AttackStart(ObjectAccessor::GetUnit(*me, instance->GetGuidData(0))); // whoWokeArchaedasGUID return; // dont want to continue until we finish the AttackStart method } @@ -401,7 +401,7 @@ class go_altar_of_archaedas : public GameObjectScript player->CastSpell (player, SPELL_BOSS_OBJECT_VISUAL, false); - instance->SetData64(0, player->GetGUID()); // activate archaedas + instance->SetGuidData(0, player->GetGUID()); // activate archaedas return false; } }; diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp index 17a6440702e..956f7099596 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp @@ -52,18 +52,6 @@ class instance_uldaman : public InstanceMapScript SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - archaedasGUID = 0; - ironayaGUID = 0; - whoWokeuiArchaedasGUID = 0; - - altarOfTheKeeperTempleDoor = 0; - archaedasTempleDoor = 0; - ancientVaultDoor = 0; - - ironayaSealDoor = 0; - - keystoneGUID = 0; - ironayaSealDoorTimer = 27000; //animation time keystoneCheck = false; } @@ -77,25 +65,25 @@ class instance_uldaman : public InstanceMapScript return false; } - uint64 archaedasGUID; - uint64 ironayaGUID; - uint64 whoWokeuiArchaedasGUID; + ObjectGuid archaedasGUID; + ObjectGuid ironayaGUID; + ObjectGuid whoWokeuiArchaedasGUID; - uint64 altarOfTheKeeperTempleDoor; - uint64 archaedasTempleDoor; - uint64 ancientVaultDoor; - uint64 ironayaSealDoor; + ObjectGuid altarOfTheKeeperTempleDoor; + ObjectGuid archaedasTempleDoor; + ObjectGuid ancientVaultDoor; + ObjectGuid ironayaSealDoor; - uint64 keystoneGUID; + ObjectGuid keystoneGUID; uint32 ironayaSealDoorTimer; bool keystoneCheck; - std::vector<uint64> stoneKeepers; - std::vector<uint64> altarOfTheKeeperCounts; - std::vector<uint64> vaultWalkers; - std::vector<uint64> earthenGuardians; - std::vector<uint64> archaedasWallMinions; // minions lined up around the wall + GuidVector stoneKeepers; + GuidVector altarOfTheKeeperCounts; + GuidVector vaultWalkers; + GuidVector earthenGuardians; + GuidVector archaedasWallMinions; // minions lined up around the wall uint32 m_auiEncounter[MAX_ENCOUNTER]; std::string str_data; @@ -108,14 +96,14 @@ class instance_uldaman : public InstanceMapScript altarOfTheKeeperTempleDoor = go->GetGUID(); if (m_auiEncounter[0] == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_ARCHAEDAS_TEMPLE_DOOR: archaedasTempleDoor = go->GetGUID(); if (m_auiEncounter[0] == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_ANCIENT_VAULT_DOOR: @@ -124,14 +112,14 @@ class instance_uldaman : public InstanceMapScript ancientVaultDoor = go->GetGUID(); if (m_auiEncounter[1] == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_IRONAYA_SEAL_DOOR: ironayaSealDoor = go->GetGUID(); if (m_auiEncounter[2] == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_KEYSTONE: @@ -139,7 +127,7 @@ class instance_uldaman : public InstanceMapScript if (m_auiEncounter[2] == DONE) { - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); go->SetUInt32Value(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); } break; @@ -155,7 +143,7 @@ class instance_uldaman : public InstanceMapScript creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); } - void SetDoor(uint64 guid, bool open) + void SetDoor(ObjectGuid guid, bool open) { GameObject* go = instance->GetGameObject(guid); if (!go) @@ -164,7 +152,7 @@ class instance_uldaman : public InstanceMapScript HandleGameObject(guid, open); } - void BlockGO(uint64 guid) + void BlockGO(ObjectGuid guid) { GameObject* go = instance->GetGameObject(guid); if (!go) @@ -177,7 +165,7 @@ class instance_uldaman : public InstanceMapScript { if (GetData(DATA_ALTAR_DOORS) != DONE) { - for (std::vector<uint64>::const_iterator i = stoneKeepers.begin(); i != stoneKeepers.end(); ++i) + for (GuidVector::const_iterator i = stoneKeepers.begin(); i != stoneKeepers.end(); ++i) { Creature* target = instance->GetCreature(*i); if (!target || !target->IsAlive()) @@ -199,7 +187,7 @@ class instance_uldaman : public InstanceMapScript if (!archaedas) return; - for (std::vector<uint64>::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i) + for (GuidVector::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i) { Creature* target = instance->GetCreature(*i); if (!target || !target->IsAlive() || target->getFaction() == 14) @@ -217,7 +205,7 @@ class instance_uldaman : public InstanceMapScript void DeActivateMinions() { // first despawn any aggroed wall minions - for (std::vector<uint64>::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i) + for (GuidVector::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i) { Creature* target = instance->GetCreature(*i); if (!target || target->isDead() || target->getFaction() != 14) @@ -227,7 +215,7 @@ class instance_uldaman : public InstanceMapScript } // Vault Walkers - for (std::vector<uint64>::const_iterator i = vaultWalkers.begin(); i != vaultWalkers.end(); ++i) + for (GuidVector::const_iterator i = vaultWalkers.begin(); i != vaultWalkers.end(); ++i) { Creature* target = instance->GetCreature(*i); if (!target || target->isDead() || target->getFaction() != 14) @@ -237,7 +225,7 @@ class instance_uldaman : public InstanceMapScript } // Earthen Guardians - for (std::vector<uint64>::const_iterator i = earthenGuardians.begin(); i != earthenGuardians.end(); ++i) + for (GuidVector::const_iterator i = earthenGuardians.begin(); i != earthenGuardians.end(); ++i) { Creature* target = instance->GetCreature(*i); if (!target || target->isDead() || target->getFaction() != 14) @@ -247,7 +235,7 @@ class instance_uldaman : public InstanceMapScript } } - void ActivateArchaedas(uint64 target) + void ActivateArchaedas(ObjectGuid target) { Creature* archaedas = instance->GetCreature(archaedasGUID); if (!archaedas) @@ -274,7 +262,7 @@ class instance_uldaman : public InstanceMapScript void RespawnMinions() { // first respawn any aggroed wall minions - for (std::vector<uint64>::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i) + for (GuidVector::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i) { Creature* target = instance->GetCreature(*i); if (target && target->isDead()) @@ -286,7 +274,7 @@ class instance_uldaman : public InstanceMapScript } // Vault Walkers - for (std::vector<uint64>::const_iterator i = vaultWalkers.begin(); i != vaultWalkers.end(); ++i) + for (GuidVector::const_iterator i = vaultWalkers.begin(); i != vaultWalkers.end(); ++i) { Creature* target = instance->GetCreature(*i); if (target && target->isDead()) @@ -298,7 +286,7 @@ class instance_uldaman : public InstanceMapScript } // Earthen Guardians - for (std::vector<uint64>::const_iterator i = earthenGuardians.begin(); i != earthenGuardians.end(); ++i) + for (GuidVector::const_iterator i = earthenGuardians.begin(); i != earthenGuardians.end(); ++i) { Creature* target = instance->GetCreature(*i); if (target && target->isDead()) @@ -394,7 +382,7 @@ class instance_uldaman : public InstanceMapScript } } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { // Archaedas if (type == 0) @@ -470,7 +458,7 @@ class instance_uldaman : public InstanceMapScript } } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -492,8 +480,8 @@ class instance_uldaman : public InstanceMapScript break; } - return 0; - } // end GetData64 + return ObjectGuid::Empty; + } // end GetGuidData void ProcessEvent(WorldObject* /*gameObject*/, uint32 eventId) override { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index b15fdd85a00..275435121f1 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -93,10 +93,12 @@ class boss_akilzon : public CreatureScript void Initialize() { - TargetGUID = 0; - CloudGUID = 0; - CycloneGUID = 0; - memset(BirdGUIDs, 0, sizeof(BirdGUIDs)); + TargetGUID.Clear(); + CloudGUID.Clear(); + CycloneGUID.Clear(); + for (ObjectGuid& guid : BirdGUIDs) + guid.Clear(); + StormCount = 0; isRaining = false; } @@ -211,7 +213,7 @@ class boss_akilzon : public CreatureScript StormCount = 0; // finish events.ScheduleEvent(EVENT_SUMMON_EAGLES, 5000); me->InterruptNonMeleeSpells(false); - CloudGUID = 0; + CloudGUID.Clear(); if (Cloud) Cloud->DealDamage(Cloud, Cloud->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); SetWeather(WEATHER_STATE_FINE, 0.0f); @@ -364,10 +366,10 @@ class boss_akilzon : public CreatureScript } private: - uint64 BirdGUIDs[8]; - uint64 TargetGUID; - uint64 CycloneGUID; - uint64 CloudGUID; + ObjectGuid BirdGUIDs[8]; + ObjectGuid TargetGUID; + ObjectGuid CycloneGUID; + ObjectGuid CloudGUID; uint8 StormCount; bool isRaining; }; @@ -394,12 +396,12 @@ class npc_akilzon_eagle : public CreatureScript { EagleSwoop_Timer = urand(5000, 10000); arrived = true; - TargetGUID = 0; + TargetGUID.Clear(); } uint32 EagleSwoop_Timer; bool arrived; - uint64 TargetGUID; + ObjectGuid TargetGUID; void Reset() override { @@ -422,7 +424,7 @@ class npc_akilzon_eagle : public CreatureScript { if (Unit* target = ObjectAccessor::GetUnit(*me, TargetGUID)) DoCast(target, SPELL_EAGLE_SWOOP, true); - TargetGUID = 0; + TargetGUID.Clear(); me->SetSpeed(MOVE_RUN, 1.2f); EagleSwoop_Timer = urand(5000, 10000); } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp index 0cf1f932f10..6e38ca6a39e 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp @@ -85,7 +85,7 @@ class boss_halazzi : public CreatureScript void Initialize() { - LynxGUID = 0; + LynxGUID.Clear(); TransformCount = 0; BerserkTimer = 600000; CheckTimer = 1000; @@ -103,7 +103,7 @@ class boss_halazzi : public CreatureScript uint32 BerserkTimer; uint32 TransformCount; - uint64 LynxGUID; + ObjectGuid LynxGUID; void Reset() override { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp index 3c9d4397d24..55f7af71253 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp @@ -258,8 +258,8 @@ class boss_hexlord_malacrass : public CreatureScript instance = creature->GetInstanceScript(); SelectAddEntry(); for (uint8 i = 0; i < 4; ++i) - AddGUID[i] = 0; - PlayerGUID = 0; + AddGUID[i].Clear(); + PlayerGUID.Clear(); PlayerClass = CLASS_NONE; } @@ -275,10 +275,10 @@ class boss_hexlord_malacrass : public CreatureScript InstanceScript* instance; - uint64 AddGUID[4]; + ObjectGuid AddGUID[4]; uint32 AddEntry[4]; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 SpiritBolts_Timer; uint32 DrainPower_Timer; @@ -306,7 +306,7 @@ class boss_hexlord_malacrass : public CreatureScript instance->SetData(DATA_HEXLORDEVENT, IN_PROGRESS); DoZoneInCombat(); - me->MonsterYell(YELL_AGGRO, LANG_UNIVERSAL, NULL); + me->Yell(YELL_AGGRO, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_AGGRO); for (uint8 i = 0; i < 4; ++i) @@ -327,11 +327,11 @@ class boss_hexlord_malacrass : public CreatureScript switch (urand(0, 1)) { case 0: - me->MonsterYell(YELL_KILL_ONE, LANG_UNIVERSAL, NULL); + me->Yell(YELL_KILL_ONE, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_KILL_ONE); break; case 1: - me->MonsterYell(YELL_KILL_TWO, LANG_UNIVERSAL, NULL); + me->Yell(YELL_KILL_TWO, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_KILL_TWO); break; } @@ -341,7 +341,7 @@ class boss_hexlord_malacrass : public CreatureScript { instance->SetData(DATA_HEXLORDEVENT, DONE); - me->MonsterYell(YELL_DEATH, LANG_UNIVERSAL, NULL); + me->Yell(YELL_DEATH, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_DEATH); for (uint8 i = 0; i < 4; ++i) @@ -415,7 +415,7 @@ class boss_hexlord_malacrass : public CreatureScript if (DrainPower_Timer <= diff) { DoCast(me, SPELL_DRAIN_POWER, true); - me->MonsterYell(YELL_DRAIN_POWER, LANG_UNIVERSAL, NULL); + me->Yell(YELL_DRAIN_POWER, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_DRAIN_POWER); DrainPower_Timer = urand(40000, 55000); // must cast in 60 sec, or buff/debuff will disappear } else DrainPower_Timer -= diff; @@ -427,7 +427,7 @@ class boss_hexlord_malacrass : public CreatureScript else { DoCast(me, SPELL_SPIRIT_BOLTS, false); - me->MonsterYell(YELL_SPIRIT_BOLTS, LANG_UNIVERSAL, NULL); + me->Yell(YELL_SPIRIT_BOLTS, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_SPIRIT_BOLTS); SpiritBolts_Timer = 40000; SiphonSoul_Timer = 10000; // ready to drain diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp index 2e434ed6ab5..37b8b559895 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp @@ -141,7 +141,7 @@ class boss_janalai : public CreatureScript isFlameBreathing = false; for (uint8 i = 0; i < 40; ++i) - FireBombGUIDs[i] = 0; + FireBombGUIDs[i].Clear(); } InstanceScript* instance; @@ -159,7 +159,7 @@ class boss_janalai : public CreatureScript bool isFlameBreathing; - uint64 FireBombGUIDs[40]; + ObjectGuid FireBombGUIDs[40]; void Reset() override { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp index c9c028021f1..279ca60a484 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp @@ -227,7 +227,7 @@ class boss_nalorakk : public CreatureScript case 0: if (me->IsWithinDistInMap(who, 50)) { - me->MonsterYell(YELL_NALORAKK_WAVE1, LANG_UNIVERSAL, NULL); + me->Yell(YELL_NALORAKK_WAVE1, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_NALORAKK_WAVE1); (*me).GetMotionMaster()->MovePoint(1, NalorakkWay[1][0], NalorakkWay[1][1], NalorakkWay[1][2]); @@ -240,7 +240,7 @@ class boss_nalorakk : public CreatureScript case 2: if (me->IsWithinDistInMap(who, 40)) { - me->MonsterYell(YELL_NALORAKK_WAVE2, LANG_UNIVERSAL, NULL); + me->Yell(YELL_NALORAKK_WAVE2, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_NALORAKK_WAVE2); (*me).GetMotionMaster()->MovePoint(3, NalorakkWay[3][0], NalorakkWay[3][1], NalorakkWay[3][2]); @@ -253,7 +253,7 @@ class boss_nalorakk : public CreatureScript case 5: if (me->IsWithinDistInMap(who, 40)) { - me->MonsterYell(YELL_NALORAKK_WAVE3, LANG_UNIVERSAL, NULL); + me->Yell(YELL_NALORAKK_WAVE3, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_NALORAKK_WAVE3); (*me).GetMotionMaster()->MovePoint(6, NalorakkWay[6][0], NalorakkWay[6][1], NalorakkWay[6][2]); @@ -268,7 +268,7 @@ class boss_nalorakk : public CreatureScript { SendAttacker(who); - me->MonsterYell(YELL_NALORAKK_WAVE4, LANG_UNIVERSAL, NULL); + me->Yell(YELL_NALORAKK_WAVE4, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_NALORAKK_WAVE4); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -287,7 +287,7 @@ class boss_nalorakk : public CreatureScript { instance->SetData(DATA_NALORAKKEVENT, IN_PROGRESS); - me->MonsterYell(YELL_AGGRO, LANG_UNIVERSAL, NULL); + me->Yell(YELL_AGGRO, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_AGGRO); DoZoneInCombat(); } @@ -296,7 +296,7 @@ class boss_nalorakk : public CreatureScript { instance->SetData(DATA_NALORAKKEVENT, DONE); - me->MonsterYell(YELL_DEATH, LANG_UNIVERSAL, NULL); + me->Yell(YELL_DEATH, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_DEATH); } @@ -305,11 +305,11 @@ class boss_nalorakk : public CreatureScript switch (urand(0, 1)) { case 0: - me->MonsterYell(YELL_KILL_ONE, LANG_UNIVERSAL, NULL); + me->Yell(YELL_KILL_ONE, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_KILL_ONE); break; case 1: - me->MonsterYell(YELL_KILL_TWO, LANG_UNIVERSAL, NULL); + me->Yell(YELL_KILL_TWO, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_KILL_TWO); break; } @@ -373,7 +373,7 @@ class boss_nalorakk : public CreatureScript if (Berserk_Timer <= diff) { DoCast(me, SPELL_BERSERK, true); - me->MonsterYell(YELL_BERSERK, LANG_UNIVERSAL, NULL); + me->Yell(YELL_BERSERK, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_BERSERK); Berserk_Timer = 600000; } else Berserk_Timer -= diff; @@ -383,7 +383,7 @@ class boss_nalorakk : public CreatureScript if (inBearForm) { // me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 5122); - me->MonsterYell(YELL_SHIFTEDTOTROLL, LANG_UNIVERSAL, NULL); + me->Yell(YELL_SHIFTEDTOTROLL, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_TOTROLL); me->RemoveAurasDueToSpell(SPELL_BEARFORM); Surge_Timer = urand(15000, 20000); @@ -395,7 +395,7 @@ class boss_nalorakk : public CreatureScript else { // me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 0); - me->MonsterYell(YELL_SHIFTEDTOBEAR, LANG_UNIVERSAL, NULL); + me->Yell(YELL_SHIFTEDTOBEAR, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_TOBEAR); DoCast(me, SPELL_BEARFORM, true); LaceratingSlash_Timer = 2000; // dur 18s @@ -426,7 +426,7 @@ class boss_nalorakk : public CreatureScript if (Surge_Timer <= diff) { - me->MonsterYell(YELL_SURGE, LANG_UNIVERSAL, NULL); + me->Yell(YELL_SURGE, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_YELL_SURGE); Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 45, true); if (target) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp index 5b9957cb94d..dfb7f96ec4a 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp @@ -138,7 +138,6 @@ class boss_zuljin : public CreatureScript { Initialize(); instance = creature->GetInstanceScript(); - memset(SpiritGUID, 0, sizeof(SpiritGUID)); health_20 = 0; } @@ -164,15 +163,15 @@ class boss_zuljin : public CreatureScript Flame_Breath_Timer = 6000; Pillar_Of_Fire_Timer = 7000; - ClawTargetGUID = 0; - TankGUID = 0; + ClawTargetGUID.Clear(); + TankGUID.Clear(); } InstanceScript* instance; - uint64 SpiritGUID[4]; - uint64 ClawTargetGUID; - uint64 TankGUID; + ObjectGuid SpiritGUID[4]; + ObjectGuid ClawTargetGUID; + ObjectGuid TankGUID; uint32 Phase; uint32 health_20; @@ -299,7 +298,7 @@ class boss_zuljin : public CreatureScript temp->setDeathState(DEAD); } } - SpiritGUID[i] = 0; + SpiritGUID[i].Clear(); } } @@ -465,7 +464,7 @@ class boss_zuljin : public CreatureScript Claw_Rage_Timer = urand(15000, 20000); me->SetSpeed(MOVE_RUN, 1.2f); AttackStart(ObjectAccessor::GetUnit(*me, TankGUID)); - TankGUID = 0; + TankGUID.Clear(); return; } else @@ -513,7 +512,7 @@ class boss_zuljin : public CreatureScript Lynx_Rush_Timer = urand(15000, 20000); me->SetSpeed(MOVE_RUN, 1.2f); AttackStart(ObjectAccessor::GetUnit(*me, TankGUID)); - TankGUID = 0; + TankGUID.Clear(); } else AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0)); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index 6081887e609..72bd8446972 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -68,19 +68,19 @@ class instance_zulaman : public InstanceMapScript { instance_zulaman_InstanceMapScript(Map* map) : InstanceScript(map) { } - uint64 HarkorsSatchelGUID; - uint64 TanzarsTrunkGUID; - uint64 AshlisBagGUID; - uint64 KrazsPackageGUID; - uint64 StrangeGongGUID; - uint64 HarrisonJonesGUID; - - uint64 HexLordGateGUID; - uint64 ZulJinGateGUID; - uint64 MassiveGateGUID; - uint64 AkilzonDoorGUID; - uint64 ZulJinDoorGUID; - uint64 HalazziDoorGUID; + ObjectGuid HarkorsSatchelGUID; + ObjectGuid TanzarsTrunkGUID; + ObjectGuid AshlisBagGUID; + ObjectGuid KrazsPackageGUID; + ObjectGuid StrangeGongGUID; + ObjectGuid HarrisonJonesGUID; + + ObjectGuid HexLordGateGUID; + ObjectGuid ZulJinGateGUID; + ObjectGuid MassiveGateGUID; + ObjectGuid AkilzonDoorGUID; + ObjectGuid ZulJinDoorGUID; + ObjectGuid HalazziDoorGUID; uint32 QuestTimer; uint16 BossKilled; @@ -95,20 +95,6 @@ class instance_zulaman : public InstanceMapScript SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - HarkorsSatchelGUID = 0; - TanzarsTrunkGUID = 0; - AshlisBagGUID = 0; - KrazsPackageGUID = 0; - StrangeGongGUID = 0; - HexLordGateGUID = 0; - ZulJinGateGUID = 0; - MassiveGateGUID = 0; - AkilzonDoorGUID = 0; - HalazziDoorGUID = 0; - ZulJinDoorGUID = 0; - - HarrisonJonesGUID = 0; - QuestTimer = 0; QuestMinute = 0; BossKilled = 0; @@ -351,7 +337,7 @@ class instance_zulaman : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -361,7 +347,7 @@ class instance_zulaman : public InstanceMapScript return MassiveGateGUID; } - return 0; + return ObjectGuid::Empty; } }; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index 6784ff086c7..958cf0bd899 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -288,7 +288,7 @@ class npc_harrison_jones : public CreatureScript me->RemoveAllAuras(); me->SetEntry(NPC_HARRISON_JONES_2); me->SetDisplayId(MODEL_HARRISON_JONES_2); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); me->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_DEAD); me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); instance->SetData(DATA_GONGEVENT, DONE); @@ -318,14 +318,14 @@ class npc_harrison_jones : public CreatureScript _gongTimer = 4000; break; case GONG_EVENT_3: - if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetData64(GO_STRANGE_GONG))) + if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetGuidData(GO_STRANGE_GONG))) gong->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); _gongEvent = GONG_EVENT_4; _gongTimer = 105000; break; case GONG_EVENT_4: me->RemoveAura(SPELL_BANGING_THE_GONG); - if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetData64(GO_STRANGE_GONG))) + if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetGuidData(GO_STRANGE_GONG))) gong->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); // trigger or gong will need to be scripted to set IN_PROGRESS after enough hits. @@ -387,7 +387,7 @@ class npc_harrison_jones : public CreatureScript } } - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_MASSIVE_GATE))) + if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_MASSIVE_GATE))) gate->SetGoState(GO_STATE_ACTIVE); _gongTimer = 2000; _gongEvent = GONG_EVENT_8; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp index 0d780da6560..32aff72f435 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp @@ -95,8 +95,6 @@ class boss_arlokk : public CreatureScript boss_arlokkAI(Creature* creature) : BossAI(creature, DATA_ARLOKK) { Initialize(); - memset(_triggersSideAGUID, 0, sizeof(_triggersSideAGUID)); - memset(_triggersSideBGUID, 0, sizeof(_triggersSideBGUID)); } void Initialize() @@ -162,7 +160,7 @@ class boss_arlokk : public CreatureScript void EnterEvadeMode() override { BossAI::EnterEvadeMode(); - if (GameObject* object = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_GONG_OF_BETHEKK))) + if (GameObject* object = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GONG_OF_BETHEKK))) object->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); me->DespawnOrUnsummon(4000); } @@ -305,8 +303,8 @@ class boss_arlokk : public CreatureScript private: uint8 _summonCountA; uint8 _summonCountB; - uint64 _triggersSideAGUID[5]; - uint64 _triggersSideBGUID[5]; + ObjectGuid _triggersSideAGUID[5]; + ObjectGuid _triggersSideBGUID[5]; }; CreatureAI* GetAI(Creature* creature) const override @@ -357,7 +355,7 @@ class npc_zulian_prowler : public CreatureScript DoCast(me, SPELL_SNEAK_RANK_1_1); DoCast(me, SPELL_SNEAK_RANK_1_2); - if (Unit* arlokk = ObjectAccessor::GetUnit(*me, _instance->GetData64(NPC_ARLOKK))) + if (Unit* arlokk = ObjectAccessor::GetUnit(*me, _instance->GetGuidData(NPC_ARLOKK))) me->GetMotionMaster()->MovePoint(0, arlokk->GetPositionX(), arlokk->GetPositionY(), arlokk->GetPositionZ()); _events.ScheduleEvent(EVENT_ATTACK, 6000); } @@ -377,7 +375,7 @@ class npc_zulian_prowler : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Unit* arlokk = ObjectAccessor::GetUnit(*me, _instance->GetData64(NPC_ARLOKK))) + if (Unit* arlokk = ObjectAccessor::GetUnit(*me, _instance->GetGuidData(NPC_ARLOKK))) { if (arlokk->IsAlive()) arlokk->GetAI()->SetData(_sideData, 0); diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp index d1c9579c027..3ffdf18d3d4 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp @@ -199,7 +199,7 @@ class npc_healing_ward : public CreatureScript // Heal_Timer if (Heal_Timer <= diff) { - if (Unit* jindo = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JINDO))) + if (Unit* jindo = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JINDO))) DoCast(jindo, SPELL_HEAL); Heal_Timer = 3000; } else Heal_Timer -= diff; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp index 6244d2b72b1..8238bc3d278 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp @@ -115,7 +115,6 @@ class boss_mandokir : public CreatureScript boss_mandokirAI(Creature* creature) : BossAI(creature, DATA_MANDOKIR) { Initialize(); - memset(chainedSpirtGUIDs, 0, sizeof(chainedSpirtGUIDs)); } void Initialize() @@ -131,7 +130,7 @@ class boss_mandokir : public CreatureScript Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); events.ScheduleEvent(EVENT_CHECK_START, 1000); - if (Creature* speaker = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_VILEBRANCH_SPEAKER))) + if (Creature* speaker = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_VILEBRANCH_SPEAKER))) if (!speaker->IsAlive()) speaker->Respawn(true); } @@ -180,7 +179,7 @@ class boss_mandokir : public CreatureScript if (++killCount == 3) { Talk(SAY_DING_KILL); - if (Creature* jindo = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_JINDO))) + if (Creature* jindo = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JINDO))) if (jindo->IsAlive()) jindo->AI()->Talk(SAY_GRATS_JINDO); DoCast(me, SPELL_LEVEL_UP, true); @@ -286,7 +285,7 @@ class boss_mandokir : public CreatureScript private: uint8 killCount; - uint64 chainedSpirtGUIDs[CHAINED_SPIRT_COUNT]; + ObjectGuid chainedSpirtGUIDs[CHAINED_SPIRT_COUNT]; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp index 57a286c1e58..4fa24786f3d 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp @@ -180,7 +180,7 @@ class boss_thekal : public CreatureScript if (instance->GetBossState(DATA_LORKHAN) == SPECIAL) { //Resurrect LorKhan - if (Unit* pLorKhan = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LORKHAN))) + if (Unit* pLorKhan = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LORKHAN))) { pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pLorKhan->setFaction(14); @@ -193,7 +193,7 @@ class boss_thekal : public CreatureScript if (instance->GetBossState(DATA_ZATH) == SPECIAL) { //Resurrect Zath - if (Unit* pZath = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ZATH))) + if (Unit* pZath = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ZATH))) { pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pZath->setFaction(14); @@ -333,8 +333,8 @@ class npc_zealot_lorkhan : public CreatureScript //Casting Greaterheal to Thekal or Zath if they are in meele range. if (GreaterHeal_Timer <= diff) { - Unit* pThekal = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THEKAL)); - Unit* pZath = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ZATH)); + Unit* pThekal = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THEKAL)); + Unit* pZath = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ZATH)); if (!pThekal || !pZath) return; @@ -367,7 +367,7 @@ class npc_zealot_lorkhan : public CreatureScript if (instance->GetBossState(DATA_THEKAL) == SPECIAL) { //Resurrect Thekal - if (Unit* pThekal = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THEKAL))) + if (Unit* pThekal = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THEKAL))) { pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -379,7 +379,7 @@ class npc_zealot_lorkhan : public CreatureScript if (instance->GetBossState(DATA_ZATH) == SPECIAL) { //Resurrect Zath - if (Unit* pZath = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ZATH))) + if (Unit* pZath = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ZATH))) { pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -517,7 +517,7 @@ class npc_zealot_zath : public CreatureScript if (instance->GetBossState(DATA_LORKHAN) == SPECIAL) { //Resurrect LorKhan - if (Unit* pLorKhan = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LORKHAN))) + if (Unit* pLorKhan = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LORKHAN))) { pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -529,7 +529,7 @@ class npc_zealot_zath : public CreatureScript if (instance->GetBossState(DATA_THEKAL) == SPECIAL) { //Resurrect Thekal - if (Unit* pThekal = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THEKAL))) + if (Unit* pThekal = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THEKAL))) { pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp index 5aa37642798..57e4798b2da 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp @@ -46,17 +46,6 @@ class instance_zulgurub : public InstanceMapScript LoadDoorData(doorData); } - void Initialize() override - { - _zealotLorkhanGUID = 0; - _zealotZathGUID = 0; - _highPriestTekalGUID = 0; - _jindoTheHexxerGUID = 0; - _vilebranchSpeakerGUID = 0; - _arlokkGUID = 0; - _goGongOfBethekkGUID = 0; - } - bool IsEncounterInProgress() const override { // not active in Zul'Gurub @@ -119,7 +108,7 @@ class instance_zulgurub : public InstanceMapScript } } - uint64 GetData64(uint32 uiData) const override + ObjectGuid GetGuidData(uint32 uiData) const override { switch (uiData) { @@ -142,20 +131,20 @@ class instance_zulgurub : public InstanceMapScript return _goGongOfBethekkGUID; break; } - return 0; + return ObjectGuid::Empty; } private: //If all High Priest bosses were killed. Lorkhan, Zath and Ohgan are added too. //Storing Lorkhan, Zath and Thekal because we need to cast on them later. Jindo is needed for healfunction too. - uint64 _zealotLorkhanGUID; - uint64 _zealotZathGUID; - uint64 _highPriestTekalGUID; - uint64 _jindoTheHexxerGUID; - uint64 _vilebranchSpeakerGUID; - uint64 _arlokkGUID; - uint64 _goGongOfBethekkGUID; + ObjectGuid _zealotLorkhanGUID; + ObjectGuid _zealotZathGUID; + ObjectGuid _highPriestTekalGUID; + ObjectGuid _jindoTheHexxerGUID; + ObjectGuid _vilebranchSpeakerGUID; + ObjectGuid _arlokkGUID; + ObjectGuid _goGongOfBethekkGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp index 84f650ec9f4..b725712d473 100644 --- a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp +++ b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp @@ -197,13 +197,13 @@ public: { Phase = 0; KillCount = 0; - PlayerGUID = 0; + PlayerGUID.Clear(); } uint32 Phase; int8 KillCount; uint32 WaitTimer; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; SummonList Summons; bool QuestInProgress; @@ -280,7 +280,7 @@ public: { case 0: if (WaitTimer == WAIT_SECS) - me->MonsterSay(NPCSAY_INIT, LANG_UNIVERSAL, NULL); //no blizzlike + me->Say(NPCSAY_INIT, LANG_UNIVERSAL); //no blizzlike if (WaitTimer <= diff) { @@ -310,7 +310,7 @@ public: { if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) { - me->MonsterSay(NPCSAY_END, LANG_UNIVERSAL, NULL); //not blizzlike + me->Say(NPCSAY_END, LANG_UNIVERSAL); //not blizzlike player->GroupEventHappens(QUEST_PYREWOOD_AMBUSH, me); } } diff --git a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp index ee29c0a7b6e..b111923ae15 100644 --- a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp +++ b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp @@ -243,13 +243,13 @@ public: uiTimer = 0; uiPhase = 0; - MarzonGUID = 0; + MarzonGUID.Clear(); } uint32 uiTimer; uint32 uiPhase; - uint64 MarzonGUID; + ObjectGuid MarzonGUID; void Reset() override { diff --git a/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp b/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp index 20e9f28e0b7..c0717958640 100644 --- a/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp +++ b/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp @@ -46,7 +46,7 @@ public: { npc_galen_goodwardAI(Creature* creature) : npc_escortAI(creature) { - galensCageGUID = 0; + galensCageGUID.Clear(); Reset(); } @@ -135,7 +135,7 @@ public: } private: - uint64 galensCageGUID; + ObjectGuid galensCageGUID; uint32 periodicSay; }; diff --git a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp index f953742b864..70d274b9f2f 100644 --- a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp +++ b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp @@ -77,12 +77,12 @@ public: { m_uiPhase = 0; m_uiPhaseTimer = 5000; - m_uiPlayerGUID = 0; + m_uiPlayerGUID.Clear(); } uint32 m_uiPhase; uint32 m_uiPhaseTimer; - uint64 m_uiPlayerGUID; + ObjectGuid m_uiPlayerGUID; void Reset() override { diff --git a/src/server/scripts/EasternKingdoms/zone_undercity.cpp b/src/server/scripts/EasternKingdoms/zone_undercity.cpp index ea997c5563f..48f614a73c0 100644 --- a/src/server/scripts/EasternKingdoms/zone_undercity.cpp +++ b/src/server/scripts/EasternKingdoms/zone_undercity.cpp @@ -108,7 +108,7 @@ public: { LamentEventTimer = 5000; LamentEvent = false; - targetGUID = 0; + targetGUID.Clear(); FadeTimer = 30000; SummonSkeletonTimer = 20000; @@ -119,7 +119,7 @@ public: uint32 LamentEventTimer; bool LamentEvent; - uint64 targetGUID; + ObjectGuid targetGUID; uint32 FadeTimer; uint32 SummonSkeletonTimer; diff --git a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp index d242d17806c..952d191bd1a 100644 --- a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp @@ -322,7 +322,6 @@ public: npc_anchorite_truuenAI(Creature* creature) : npc_escortAI(creature) { Initialize(); - UghostGUID = 0; } void Initialize() @@ -332,7 +331,7 @@ public: uint32 m_uiChatTimer; - uint64 UghostGUID; + ObjectGuid UghostGUID; void Reset() override { diff --git a/src/server/scripts/Events/childrens_week.cpp b/src/server/scripts/Events/childrens_week.cpp index 4bc0642e348..6e95b9351fd 100644 --- a/src/server/scripts/Events/childrens_week.cpp +++ b/src/server/scripts/Events/childrens_week.cpp @@ -131,13 +131,13 @@ enum Misc DISPLAY_INVISIBLE = 11686 }; -uint64 getOrphanGUID(Player* player, uint32 orphan) +ObjectGuid getOrphanGUID(Player* player, uint32 orphan) { if (Aura* orphanOut = player->GetAura(SPELL_ORPHAN_OUT)) if (orphanOut->GetCaster() && orphanOut->GetCaster()->GetEntry() == orphan) return orphanOut->GetCaster()->GetGUID(); - return 0; + return ObjectGuid::Empty; } /*###### @@ -159,8 +159,8 @@ class npc_winterfin_playmate : public CreatureScript { timer = 0; phase = 0; - playerGUID = 0; - orphanGUID = 0; + playerGUID.Clear(); + orphanGUID.Clear(); } void Reset() override @@ -235,8 +235,8 @@ class npc_winterfin_playmate : public CreatureScript private: uint32 timer; int8 phase; - uint64 playerGUID; - uint64 orphanGUID; + ObjectGuid playerGUID; + ObjectGuid orphanGUID; }; @@ -265,8 +265,8 @@ class npc_snowfall_glade_playmate : public CreatureScript { timer = 0; phase = 0; - playerGUID = 0; - orphanGUID = 0; + playerGUID.Clear(); + orphanGUID.Clear(); } void Reset() override @@ -342,8 +342,8 @@ class npc_snowfall_glade_playmate : public CreatureScript private: uint32 timer; int8 phase; - uint64 playerGUID; - uint64 orphanGUID; + ObjectGuid playerGUID; + ObjectGuid orphanGUID; }; CreatureAI* GetAI(Creature* pCreature) const override @@ -372,8 +372,8 @@ class npc_the_biggest_tree : public CreatureScript { timer = 1000; phase = 0; - playerGUID = 0; - orphanGUID = 0; + playerGUID.Clear(); + orphanGUID.Clear(); } void Reset() override @@ -436,8 +436,8 @@ class npc_the_biggest_tree : public CreatureScript private: uint32 timer; uint8 phase; - uint64 playerGUID; - uint64 orphanGUID; + ObjectGuid playerGUID; + ObjectGuid orphanGUID; }; @@ -466,8 +466,8 @@ class npc_high_oracle_soo_roo : public CreatureScript { timer = 0; phase = 0; - playerGUID = 0; - orphanGUID = 0; + playerGUID.Clear(); + orphanGUID.Clear(); } void Reset() override @@ -533,8 +533,8 @@ class npc_high_oracle_soo_roo : public CreatureScript private: uint32 timer; int8 phase; - uint64 playerGUID; - uint64 orphanGUID; + ObjectGuid playerGUID; + ObjectGuid orphanGUID; }; @@ -563,8 +563,8 @@ class npc_elder_kekek : public CreatureScript { timer = 0; phase = 0; - playerGUID = 0; - orphanGUID = 0; + playerGUID.Clear(); + orphanGUID.Clear(); } void Reset() override @@ -628,8 +628,8 @@ class npc_elder_kekek : public CreatureScript private: uint32 timer; int8 phase; - uint64 playerGUID; - uint64 orphanGUID; + ObjectGuid playerGUID; + ObjectGuid orphanGUID; }; @@ -659,8 +659,8 @@ class npc_the_etymidian : public CreatureScript { timer = 0; phase = 0; - playerGUID = 0; - orphanGUID = 0; + playerGUID.Clear(); + orphanGUID.Clear(); } void Reset() override @@ -732,8 +732,8 @@ class npc_the_etymidian : public CreatureScript private: uint32 timer; int8 phase; - uint64 playerGUID; - uint64 orphanGUID; + ObjectGuid playerGUID; + ObjectGuid orphanGUID; }; @@ -762,8 +762,8 @@ class npc_alexstraza_the_lifebinder : public CreatureScript { timer = 0; phase = 0; - playerGUID = 0; - orphanGUID = 0; + playerGUID.Clear(); + orphanGUID.Clear(); } void Reset() override @@ -900,8 +900,8 @@ class npc_alexstraza_the_lifebinder : public CreatureScript private: int8 phase; uint32 timer; - uint64 playerGUID; - uint64 orphanGUID; + ObjectGuid playerGUID; + ObjectGuid orphanGUID; }; diff --git a/src/server/scripts/Examples/example_escort.cpp b/src/server/scripts/Examples/example_escort.cpp index 88188a45296..229d32e6c4a 100644 --- a/src/server/scripts/Examples/example_escort.cpp +++ b/src/server/scripts/Examples/example_escort.cpp @@ -166,7 +166,7 @@ class example_escort : public CreatureScript { if (m_uiChatTimer <= uiDiff) { - if (me->HasAura(SPELL_ELIXIR_OF_FORTITUDE, 0)) + if (me->HasAura(SPELL_ELIXIR_OF_FORTITUDE)) { Talk(SAY_RAND_1); DoCast(me, SPELL_BLUE_FIREWORK, false); diff --git a/src/server/scripts/Examples/example_spell.cpp b/src/server/scripts/Examples/example_spell.cpp index 9097f7cd650..f90cc069780 100644 --- a/src/server/scripts/Examples/example_spell.cpp +++ b/src/server/scripts/Examples/example_spell.cpp @@ -117,11 +117,11 @@ class spell_ex_5581 : public SpellScriptLoader void HandleDummyLaunchTarget(SpellEffIndex /*effIndex*/) { - uint64 targetGUID = 0; + ObjectGuid targetGUID; if (Unit* unitTarget = GetHitUnit()) targetGUID = unitTarget->GetGUID(); // we're handling SPELL_EFFECT_DUMMY in effIndex 0 here - TC_LOG_INFO("misc", "Spell %u with SPELL_EFFECT_DUMMY is just launched at it's target: " UI64FMTD "!", GetSpellInfo()->Id, targetGUID); + TC_LOG_INFO("misc", "Spell %u with SPELL_EFFECT_DUMMY is just launched at it's target: " UI64FMTD "!", GetSpellInfo()->Id, targetGUID.GetRawValue()); } void HandleDummyHit(SpellEffIndex /*effIndex*/) diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp index f8ba2ab6646..0fe3eee2805 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp @@ -210,7 +210,7 @@ public: { Talk(SAY_MORRIDUNE_1); me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - Start(false, false, 0); + Start(false); } void WaypointReached(uint32 waypointId) override diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp index 28b414ba9ca..b23d0cdaa3c 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp @@ -66,14 +66,14 @@ public: { instance_blackfathom_deeps_InstanceMapScript(Map* map) : InstanceScript(map) { } - uint64 twilightLordKelrisGUID; - uint64 shrine1GUID; - uint64 shrine2GUID; - uint64 shrine3GUID; - uint64 shrine4GUID; - uint64 shrineOfGelihastGUID; - uint64 altarOfTheDeepsGUID; - uint64 mainDoorGUID; + ObjectGuid twilightLordKelrisGUID; + ObjectGuid shrine1GUID; + ObjectGuid shrine2GUID; + ObjectGuid shrine3GUID; + ObjectGuid shrine4GUID; + ObjectGuid shrineOfGelihastGUID; + ObjectGuid altarOfTheDeepsGUID; + ObjectGuid mainDoorGUID; uint8 encounter[MAX_ENCOUNTER]; uint8 countFires; @@ -84,14 +84,6 @@ public: SetHeaders(DataHeader); memset(&encounter, 0, sizeof(encounter)); - twilightLordKelrisGUID = 0; - shrine1GUID = 0; - shrine2GUID = 0; - shrine3GUID = 0; - shrine4GUID = 0; - shrineOfGelihastGUID = 0; - altarOfTheDeepsGUID = 0; - mainDoorGUID = 0; countFires = 0; deathTimes = 0; } @@ -137,7 +129,7 @@ public: break; case GO_AKU_MAI_DOOR: if (encounter[2] == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); mainDoorGUID = go->GetGUID(); break; } @@ -234,7 +226,7 @@ public: return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -254,7 +246,7 @@ public: return mainDoorGUID; } - return 0; + return ObjectGuid::Empty; } }; }; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp index 782632602b3..131f875bc05 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp @@ -100,7 +100,7 @@ public: { if (waypointId == 7) { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -194,12 +194,12 @@ public: ImmolationTimer = 5000; CheckTimer = 5000; instance = creature->GetInstanceScript(); - AnetheronGUID = instance->GetData64(DATA_ANETHERON); + AnetheronGUID = instance->GetGuidData(DATA_ANETHERON); } uint32 ImmolationTimer; uint32 CheckTimer; - uint64 AnetheronGUID; + ObjectGuid AnetheronGUID; InstanceScript* instance; void Reset() override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp index 2885a838cee..992b20d2580 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp @@ -97,18 +97,18 @@ public: void Initialize() { CheckTimer = 1000; - ArchimondeGUID = 0; + ArchimondeGUID.Clear(); } InstanceScript* instance; - uint64 ArchimondeGUID; + ObjectGuid ArchimondeGUID; uint32 CheckTimer; void Reset() override { Initialize(); - ArchimondeGUID = instance->GetData64(DATA_ARCHIMONDE); + ArchimondeGUID = instance->GetGuidData(DATA_ARCHIMONDE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } @@ -187,11 +187,11 @@ public: void Initialize() { - TargetGUID = 0; + TargetGUID.Clear(); ChangeTargetTimer = 5000; } - uint64 TargetGUID; + ObjectGuid TargetGUID; uint32 ChangeTargetTimer; void Reset() override @@ -222,7 +222,7 @@ public: if (Unit* temp = ObjectAccessor::GetUnit(*me, TargetGUID)) { me->GetMotionMaster()->MoveFollow(temp, 0.0f, 0.0f); - TargetGUID = 0; + TargetGUID.Clear(); } else { @@ -264,9 +264,9 @@ public: void Initialize() { - DoomfireSpiritGUID = 0; + DoomfireSpiritGUID.Clear(); damageTaken = 0; - WorldTreeGUID = 0; + WorldTreeGUID.Clear(); DrainNordrassilTimer = 0; FearTimer = 42000; @@ -290,8 +290,8 @@ public: InstanceScript* instance; - uint64 DoomfireSpiritGUID; - uint64 WorldTreeGUID; + ObjectGuid DoomfireSpiritGUID; + ObjectGuid WorldTreeGUID; uint32 DrainNordrassilTimer; uint32 FearTimer; @@ -429,7 +429,7 @@ public: if (Unit* DoomfireSpirit = ObjectAccessor::GetUnit(*me, DoomfireSpiritGUID)) { summoned->GetMotionMaster()->MoveFollow(DoomfireSpirit, 0.0f, 0.0f); - DoomfireSpiritGUID = 0; + DoomfireSpiritGUID.Clear(); } } } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp index 7e50fd7b775..aa411707952 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp @@ -105,7 +105,7 @@ public: { if (waypointId == 7 && instance) { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -201,13 +201,13 @@ public: WarstompTimer = 10000; CheckTimer = 5000; instance = creature->GetInstanceScript(); - AzgalorGUID = instance->GetData64(DATA_AZGALOR); + AzgalorGUID = instance->GetGuidData(DATA_AZGALOR); } uint32 CrippleTimer; uint32 WarstompTimer; uint32 CheckTimer; - uint64 AzgalorGUID; + ObjectGuid AzgalorGUID; InstanceScript* instance; void Reset() override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp index d3c137b67e8..baa28dad2a2 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp @@ -100,7 +100,7 @@ public: { if (waypointId == 7 && instance) { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp index 5ce9b30eb58..cecad84e099 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp @@ -95,7 +95,7 @@ public: { if (waypointId == 7 && instance) { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp index a7fa54b12e1..a4745eade7d 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp @@ -321,8 +321,6 @@ hyjalAI::hyjalAI(Creature* creature) : npc_escortAI(creature), Summons(me) instance = creature->GetInstanceScript(); VeinsSpawned[0] = false; VeinsSpawned[1] = false; - for (uint8 i=0; i<14; ++i) - VeinGUID[i] = 0; InfernalCount = 0; TeleportTimer = 1000; Overrun = false; @@ -335,7 +333,6 @@ hyjalAI::hyjalAI(Creature* creature) : npc_escortAI(creature), Summons(me) DoRespawn = false; MassTeleportTimer = 0; DoMassTeleport = false; - DummyGuid = 0; } void hyjalAI::Initialize() @@ -343,9 +340,9 @@ void hyjalAI::Initialize() IsDummy = false; // GUIDs - PlayerGUID = 0; - BossGUID[0] = 0; - BossGUID[1] = 0; + PlayerGUID.Clear(); + BossGUID[0].Clear(); + BossGUID[1].Clear(); // Timers NextWaveTimer = 10000; @@ -651,21 +648,23 @@ void hyjalAI::SpawnVeins() { if (VeinsSpawned[0])//prevent any buggers return; - for (uint8 i = 0; i<7; ++i) + for (uint8 i = 0; i < 7; ++i) { GameObject* gem = me->SummonGameObject(GO_ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7], 0); if (gem) VeinGUID[i]=gem->GetGUID(); } VeinsSpawned[0] = true; - }else{ + } + else + { if (VeinsSpawned[1]) return; - for (uint8 i = 7; i<14; ++i) + for (uint8 i = 7; i < 14; ++i) { GameObject* gem = me->SummonGameObject(GO_ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7], 0); if (gem) - VeinGUID[i]=gem->GetGUID(); + VeinGUID[i] = gem->GetGUID(); } VeinsSpawned[1] = true; } @@ -675,22 +674,25 @@ void hyjalAI::DeSpawnVeins() { if (Faction == 1) { - Creature* unit=ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_JAINAPROUDMOORE)); + Creature* unit=ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (!unit)return; hyjalAI* ai = CAST_AI(hyjalAI, unit->AI()); if (!ai)return; - for (uint8 i = 0; i<7; ++i) + for (uint8 i = 0; i < 7; ++i) { if (GameObject* gem = instance->instance->GetGameObject(ai->VeinGUID[i])) gem->Delete(); } - } else if (Faction) + } + else if (Faction) { - Creature* unit=ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_THRALL)); - if (!unit)return; + Creature* unit=ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_THRALL)); + if (!unit) + return; hyjalAI* ai = CAST_AI(hyjalAI, unit->AI()); - if (!ai)return; - for (uint8 i = 7; i<14; ++i) + if (!ai) + return; + for (uint8 i = 7; i < 14; ++i) { if (GameObject* gem = instance->instance->GetGameObject(ai->VeinGUID[i])) gem->Delete(); @@ -706,7 +708,9 @@ void hyjalAI::UpdateAI(uint32 diff) { DoCast(me, SPELL_MASS_TELEPORT, false); DoMassTeleport = false; - } else MassTeleportTimer -= diff; + } + else + MassTeleportTimer -= diff; return; } if (DoHide) @@ -830,7 +834,7 @@ void hyjalAI::UpdateAI(uint32 diff) EventBegun = false; CheckTimer = 0; me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - BossGUID[i] = 0; + BossGUID[i].Clear(); instance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); // Reset world state for enemies to disable it } } @@ -940,7 +944,7 @@ void hyjalAI::WaypointReached(uint32 waypointId) { if (waypointId == 1 || (waypointId == 0 && me->GetEntry() == THRALL)) { - me->MonsterYell(YELL_HURRY, LANG_UNIVERSAL, NULL); + me->Yell(YELL_HURRY, LANG_UNIVERSAL); WaitForTeleport = true; TeleportTimer = 20000; if (me->GetEntry() == JAINA) diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h index 43afc58879c..468decbd43a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h @@ -160,9 +160,9 @@ struct hyjalAI : public npc_escortAI public: InstanceScript* instance; - uint64 PlayerGUID; - uint64 BossGUID[2]; - uint64 VeinGUID[14]; + ObjectGuid PlayerGUID; + ObjectGuid BossGUID[2]; + ObjectGuid VeinGUID[14]; uint32 NextWaveTimer; uint32 WaveCount; @@ -193,7 +193,7 @@ struct hyjalAI : public npc_escortAI bool IsDummy; uint32 MassTeleportTimer; bool DoMassTeleport; - uint64 DummyGuid; + ObjectGuid DummyGuid; struct Spell { diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp index 8e1a78ea5f2..c6adbd58c4a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp @@ -447,7 +447,7 @@ public: { if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -486,7 +486,7 @@ public: CanMove = true; if (instance->GetData(DATA_ALLIANCE_RETREAT) && !instance->GetData(DATA_HORDE_RETREAT)) { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } else if (instance->GetData(DATA_ALLIANCE_RETREAT) && instance->GetData(DATA_HORDE_RETREAT)){ @@ -563,13 +563,13 @@ public: { if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } else { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -662,13 +662,13 @@ public: { if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } else { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -773,13 +773,13 @@ public: { if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } else { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -886,13 +886,13 @@ public: { if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } else { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -982,13 +982,13 @@ public: { if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } else { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -1068,13 +1068,13 @@ public: { if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } else { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE)); if (target && target->IsAlive()) me->AddThreat(target, 0.0f); } @@ -1160,7 +1160,7 @@ public: { if (waypointId == 2 && !IsOverrun) { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) { me->AddThreat(target, 0.0f); @@ -1281,7 +1281,7 @@ public: { if (waypointId == 2 && !IsOverrun) { - Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL)); + Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL)); if (target && target->IsAlive()) { me->AddThreat(target, 0.0f); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp index 6c718a4a16a..55860d98cc5 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp @@ -29,7 +29,6 @@ EndScriptData */ #include "hyjal_trash.h" #include "Player.h" #include "WorldPacket.h" -#include "Opcodes.h" #include "Chat.h" /* Battle of Mount Hyjal encounters: @@ -62,18 +61,6 @@ public: SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - m_uiAncientGemGUID.clear(); - - RageWinterchill = 0; - Anetheron = 0; - Kazrogal = 0; - Azgalor = 0; - Archimonde = 0; - JainaProudmoore = 0; - Thrall = 0; - TyrandeWhisperwind = 0; - HordeGate = 0; - ElfGate = 0; RaidDamage = 0; Trash = 0; hordeRetreat = 0; @@ -98,16 +85,16 @@ public: case GO_HORDE_ENCAMPMENT_PORTAL: HordeGate = go->GetGUID(); if (allianceRetreat) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); else - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_NIGHT_ELF_VILLAGE_PORTAL: ElfGate = go->GetGUID(); if (hordeRetreat) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); else - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); break; case GO_ANCIENT_GEM: m_uiAncientGemGUID.push_back(go->GetGUID()); @@ -130,7 +117,7 @@ public: } } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -144,7 +131,7 @@ public: case DATA_TYRANDEWHISPERWIND: return TyrandeWhisperwind; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -185,15 +172,12 @@ public: for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { - if (i->GetSource()) + if (Player* player = i->GetSource()) { WorldPacket packet; - ChatHandler::BuildChatPacket(packet, CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, unit, i->GetSource(), YELL_EFFORTS); - i->GetSource()->GetSession()->SendPacket(&packet); - - WorldPacket data2(SMSG_PLAY_SOUND, 4); - data2 << 10986; - i->GetSource()->GetSession()->SendPacket(&data2); + ChatHandler::BuildChatPacket(packet, CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, unit, player, YELL_EFFORTS); + player->SendDirectMessage(&packet); + player->PlayDirectSound(10986, player); } } } @@ -219,7 +203,7 @@ public: { if (!m_uiAncientGemGUID.empty()) { - for (std::list<uint64>::const_iterator itr = m_uiAncientGemGUID.begin(); itr != m_uiAncientGemGUID.end(); ++itr) + for (GuidList::const_iterator itr = m_uiAncientGemGUID.begin(); itr != m_uiAncientGemGUID.end(); ++itr) { //don't know how long it expected DoRespawnGameObject(*itr, DAY); @@ -309,17 +293,17 @@ public: protected: uint32 m_auiEncounter[EncounterCount]; std::string str_data; - std::list<uint64> m_uiAncientGemGUID; - uint64 RageWinterchill; - uint64 Anetheron; - uint64 Kazrogal; - uint64 Azgalor; - uint64 Archimonde; - uint64 JainaProudmoore; - uint64 Thrall; - uint64 TyrandeWhisperwind; - uint64 HordeGate; - uint64 ElfGate; + GuidList m_uiAncientGemGUID; + ObjectGuid RageWinterchill; + ObjectGuid Anetheron; + ObjectGuid Kazrogal; + ObjectGuid Azgalor; + ObjectGuid Archimonde; + ObjectGuid JainaProudmoore; + ObjectGuid Thrall; + ObjectGuid TyrandeWhisperwind; + ObjectGuid HordeGate; + ObjectGuid ElfGate; uint32 Trash; uint32 hordeRetreat; uint32 allianceRetreat; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp index 3d1e9363cd8..3f74ed2eb88 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp @@ -150,7 +150,7 @@ public: return; } - if (Creature* pArthas = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ARTHAS))) + if (Creature* pArthas = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ARTHAS))) if (pArthas->isDead()) { EnterEvadeMode(); @@ -199,7 +199,7 @@ public: uiOutroTimer = 8000; break; case 2: - me->SetTarget(instance->GetData64(DATA_ARTHAS)); + me->SetTarget(instance->GetGuidData(DATA_ARTHAS)); me->HandleEmoteCommand(29); Talk(SAY_ESCAPE_SPEECH_2); ++uiOutroStep; @@ -229,7 +229,7 @@ public: void JustDied(Unit* /*killer*/) override { instance->SetBossState(DATA_MAL_GANIS, DONE); - DoCastAOE(SPELL_MAL_GANIS_KILL_CREDIT); + DoCastAOE(SPELL_MAL_GANIS_KILL_CREDIT, true); // give achievement credit and LFG rewards to players. criteria use spell 58630 which doesn't exist, but it was created in spell_dbc DoCastAOE(SPELL_KILL_CREDIT); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp index 143f901ec0b..10ee66c86d0 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp @@ -70,6 +70,7 @@ class boss_meathook : public CreatureScript if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) DoCast(target, SPELL_CONSTRICTING_CHAINS); events.ScheduleEvent(EVENT_CHAIN, urand(2000, 4000)); + break; case EVENT_DISEASE: DoCastAOE(SPELL_DISEASE_EXPULSION); events.ScheduleEvent(EVENT_DISEASE, urand(1500, 4000)); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp index 6925badf272..1d2ed933243 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp @@ -15,14 +15,6 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* Script Data Start -SDName: Boss salramm -SDAuthor: Tartalo -SD%Complete: 80 -SDComment: @todo Intro -SDCategory: -Script Data End */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "culling_of_stratholme.h" @@ -31,9 +23,7 @@ enum Spells { SPELL_CURSE_OF_TWISTED_FLESH = 58845, SPELL_EXPLODE_GHOUL = 52480, - H_SPELL_EXPLODE_GHOUL = 58825, SPELL_SHADOW_BOLT = 57725, - H_SPELL_SHADOW_BOLT = 58828, SPELL_STEAL_FLESH = 52708, SPELL_SUMMON_GHOULS = 52451 }; @@ -49,114 +39,89 @@ enum Yells SAY_SUMMON_GHOULS = 6 }; -class boss_salramm : public CreatureScript +enum Events { -public: - boss_salramm() : CreatureScript("boss_salramm") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI<boss_salrammAI>(creature); - } - - struct boss_salrammAI : public ScriptedAI - { - boss_salrammAI(Creature* creature) : ScriptedAI(creature) - { - Initialize(); - instance = creature->GetInstanceScript(); - Talk(SAY_SPAWN); - } - - void Initialize() - { - uiCurseFleshTimer = 30000; //30s DBM - uiExplodeGhoulTimer = urand(25000, 28000); //approx 6 sec after summon ghouls - uiShadowBoltTimer = urand(8000, 12000); // approx 10s - uiStealFleshTimer = 12345; - uiSummonGhoulsTimer = urand(19000, 24000); //on a video approx 24s after aggro - } - - uint32 uiCurseFleshTimer; - uint32 uiExplodeGhoulTimer; - uint32 uiShadowBoltTimer; - uint32 uiStealFleshTimer; - uint32 uiSummonGhoulsTimer; - - InstanceScript* instance; - - void Reset() override - { - Initialize(); - - instance->SetBossState(DATA_SALRAMM, NOT_STARTED); - } - - void EnterCombat(Unit* /*who*/) override - { - Talk(SAY_AGGRO); + EVENT_CURSE_FLESH = 1, + EVENT_EXPLODE_GHOUL, + EVENT_SHADOW_BOLT, + EVENT_STEAL_FLESH, + EVENT_SUMMON_GHOULS +}; - instance->SetBossState(DATA_SALRAMM, IN_PROGRESS); - } +class boss_salramm : public CreatureScript +{ + public: + boss_salramm() : CreatureScript("boss_salramm") { } - void UpdateAI(uint32 diff) override + struct boss_salrammAI : public BossAI { - //Return since we have no target - if (!UpdateVictim()) - return; - - //Curse of twisted flesh timer - if (uiCurseFleshTimer <= diff) + boss_salrammAI(Creature* creature) : BossAI(creature, DATA_SALRAMM) { - DoCastVictim(SPELL_CURSE_OF_TWISTED_FLESH); - uiCurseFleshTimer = 37000; - } else uiCurseFleshTimer -= diff; + Talk(SAY_SPAWN); + } - //Shadow bolt timer - if (uiShadowBoltTimer <= diff) + void EnterCombat(Unit* /*who*/) override { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(target, SPELL_SHADOW_BOLT); - uiShadowBoltTimer = urand(8000, 12000); - } else uiShadowBoltTimer -= diff; + Talk(SAY_AGGRO); + _EnterCombat(); - //Steal Flesh timer - if (uiStealFleshTimer <= diff) - { - Talk(SAY_STEAL_FLESH); - if (Unit* random_pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(random_pTarget, SPELL_STEAL_FLESH); - uiStealFleshTimer = 10000; - } else uiStealFleshTimer -= diff; + events.ScheduleEvent(EVENT_CURSE_FLESH, 30000); + events.ScheduleEvent(EVENT_SUMMON_GHOULS, urand(19000, 24000)); + events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(8000, 12000)); + events.ScheduleEvent(EVENT_STEAL_FLESH, 12345); /// @todo: adjust timer + } - //Summon ghouls timer - if (uiSummonGhoulsTimer <= diff) + void ExecuteEvent(uint32 eventId) override { - Talk(SAY_SUMMON_GHOULS); - if (Unit* random_pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(random_pTarget, SPELL_SUMMON_GHOULS); - uiSummonGhoulsTimer = 10000; - } else uiSummonGhoulsTimer -= diff; - - DoMeleeAttackIfReady(); - } - - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); + switch (eventId) + { + case EVENT_CURSE_FLESH: + DoCastVictim(SPELL_CURSE_OF_TWISTED_FLESH); + events.ScheduleEvent(EVENT_CURSE_FLESH, 37000); + break; + case EVENT_SUMMON_GHOULS: + Talk(SAY_SUMMON_GHOULS); + DoCast(me, SPELL_SUMMON_GHOULS); + events.ScheduleEvent(EVENT_SUMMON_GHOULS, 10000); + events.ScheduleEvent(EVENT_EXPLODE_GHOUL, 6000); + break; + case EVENT_SHADOW_BOLT: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true)) + DoCast(target, SPELL_SHADOW_BOLT); + events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(8000, 12000)); + break; + case EVENT_STEAL_FLESH: + Talk(SAY_STEAL_FLESH); + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50.0f, true)) + DoCast(target, SPELL_STEAL_FLESH); + events.ScheduleEvent(EVENT_STEAL_FLESH, 12345); + break; + case EVENT_EXPLODE_GHOUL: + Talk(SAY_EXPLODE_GHOUL); + DoCast(me, SPELL_EXPLODE_GHOUL, true); + break; + default: + break; + } + } + + void JustDied(Unit* /*killer*/) override + { + Talk(SAY_DEATH); + _JustDied(); + } - instance->SetBossState(DATA_SALRAMM, DONE); - } + void KilledUnit(Unit* victim) override + { + if (victim->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); + } + }; - void KilledUnit(Unit* victim) override + CreatureAI* GetAI(Creature* creature) const override { - if (victim->GetTypeId() != TYPEID_PLAYER) - return; - - Talk(SAY_SLAY); + return GetInstanceAI<boss_salrammAI>(creature); } - }; - }; void AddSC_boss_salramm() diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp index 3c80be2734a..ff104a28197 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -360,23 +360,23 @@ public: void Initialize() { - utherGUID = 0; - jainaGUID = 0; + utherGUID.Clear(); + jainaGUID.Clear(); for (uint8 i = 0; i < 2; ++i) - citymenGUID[i] = 0; + citymenGUID[i].Clear(); for (uint8 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i) - waveGUID[i] = 0; + waveGUID[i].Clear(); for (uint8 i = 0; i < ENCOUNTER_DRACONIAN_NUMBER; ++i) - infiniteDraconianGUID[i] = 0; + infiniteDraconianGUID[i].Clear(); - stalkerGUID = 0; - bossGUID = 0; - epochGUID = 0; - malganisGUID = 0; - infiniteGUID = 0; + stalkerGUID.Clear(); + bossGUID.Clear(); + epochGUID.Clear(); + malganisGUID.Clear(); + infiniteGUID.Clear(); phaseTimer = 1000; exorcismTimer = 7300; @@ -393,17 +393,17 @@ public: uint32 wave; uint32 WavesCounter; - uint64 utherGUID; - uint64 jainaGUID; - uint64 citymenGUID[2]; - uint64 waveGUID[ENCOUNTER_WAVES_MAX_SPAWNS]; - uint64 infiniteDraconianGUID[ENCOUNTER_DRACONIAN_NUMBER]; - uint64 stalkerGUID; + ObjectGuid utherGUID; + ObjectGuid jainaGUID; + ObjectGuid citymenGUID[2]; + ObjectGuid waveGUID[ENCOUNTER_WAVES_MAX_SPAWNS]; + ObjectGuid infiniteDraconianGUID[ENCOUNTER_DRACONIAN_NUMBER]; + ObjectGuid stalkerGUID; - uint64 bossGUID; - uint64 epochGUID; - uint64 malganisGUID; - uint64 infiniteGUID; + ObjectGuid bossGUID; + ObjectGuid epochGUID; + ObjectGuid malganisGUID; + ObjectGuid infiniteGUID; uint32 exorcismTimer; @@ -436,7 +436,7 @@ public: instance->SetBossState(DATA_ARTHAS, FAIL); } - void SpawnTimeRift(uint32 timeRiftID, uint64* guidVector) + void SpawnTimeRift(uint32 timeRiftID, ObjectGuid* guidVector) { me->SummonCreature((uint32)RiftAndSpawnsLocations[timeRiftID][0], RiftAndSpawnsLocations[timeRiftID][1], RiftAndSpawnsLocations[timeRiftID][2], RiftAndSpawnsLocations[timeRiftID][3], RiftAndSpawnsLocations[timeRiftID][4], TEMPSUMMON_TIMED_DESPAWN, 11000); @@ -455,7 +455,7 @@ public: } } - void SpawnWaveGroup(uint32 waveID, uint64* guidVector) + void SpawnWaveGroup(uint32 waveID, ObjectGuid* guidVector) { for (uint32 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i) { @@ -568,7 +568,7 @@ public: Talk(SAY_PHASE403); break; case 36: - if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_SHKAF_GATE))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_SHKAF_GATE))) gate->SetGoState(GO_STATE_ACTIVE); break; case 45: @@ -736,7 +736,7 @@ public: case 21: SetEscortPaused(false); bStepping = false; - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); JumpToNextStep(0); break; //After waypoint 3 @@ -756,7 +756,7 @@ public: if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID)) uther->DisappearAndDie(); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); JumpToNextStep(0); break; //After Gossip 1 (waypoint 8) @@ -779,7 +779,7 @@ public: SetEscortPaused(false); bStepping = false; SetRun(false); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); JumpToNextStep(0); break; //After waypoint 9 @@ -938,7 +938,7 @@ public: uint32 deadCounter = 0; for (uint8 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i) { - if (waveGUID[i] == 0) + if (waveGUID[i].IsEmpty()) break; ++mobCounter; Unit* temp = ObjectAccessor::GetCreature(*me, waveGUID[i]); @@ -1168,7 +1168,7 @@ public: malganisGUID = malganis->GetGUID(); malganis->SetReactState(REACT_PASSIVE); } - if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MAL_GANIS_GATE_1))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_MAL_GANIS_GATE_1))) gate->SetGoState(GO_STATE_ACTIVE); SetHoldState(false); bStepping = false; @@ -1208,7 +1208,7 @@ public: break; case 90: instance->SetBossState(DATA_ARTHAS, DONE); //Rewards: Achiev & Chest ;D - me->SetTarget(instance->GetData64(DATA_MAL_GANIS_GATE_2)); //Look behind + me->SetTarget(instance->GetGuidData(DATA_MAL_GANIS_GATE_2)); //Look behind Talk(SAY_PHASE504); bStepping = false; break; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp index b3e8d88bc2a..c25a061d622 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp @@ -61,21 +61,9 @@ class instance_culling_of_stratholme : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - _chromieGUID = 0; - _arthasGUID = 0; - _meathookGUID = 0; - _salrammGUID = 0; - _epochGUID = 0; - _malGanisGUID = 0; - _infiniteGUID = 0; - _shkafGateGUID = 0; - _malGanisGate1GUID = 0; - _malGanisGate2GUID = 0; - _exitGateGUID = 0; - _malGanisChestGUID = 0; - _genericBunnyGUID = 0; _crateCount = 0; _eventTimer = 0; + _infiniteCouterState = NOT_STARTED; } void FillInitialWorldStates(WorldPacket& data) override @@ -175,7 +163,7 @@ class instance_culling_of_stratholme : public InstanceMapScript // Summon Chromie and global whisper if (Creature* chromie = instance->SummonCreature(NPC_CHROMIE_2, ChromieSummonPos[0])) if (!instance->GetPlayers().isEmpty()) - chromie->AI()->TalkToMap(SAY_CRATES_COMPLETED); + chromie->AI()->Talk(SAY_CRATES_COMPLETED); } DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, _crateCount); break; @@ -241,7 +229,7 @@ class instance_culling_of_stratholme : public InstanceMapScript return 0; } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -270,7 +258,7 @@ class instance_culling_of_stratholme : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } void Update(uint32 diff) override @@ -289,17 +277,17 @@ class instance_culling_of_stratholme : public InstanceMapScript case 25: if (instance->HavePlayers()) if (Creature* chromie = instance->GetCreature(_chromieGUID)) - chromie->AI()->TalkToMap(SAY_INFINITE_START); + chromie->AI()->Talk(SAY_INFINITE_START); break; case 5: if (instance->HavePlayers()) if (Creature* chromie = instance->GetCreature(_chromieGUID)) - chromie->AI()->TalkToMap(SAY_INFINITE); + chromie->AI()->Talk(SAY_INFINITE); break; case 0: if (instance->HavePlayers()) if (Creature* chromie = instance->GetCreature(_chromieGUID)) - chromie->AI()->TalkToMap(SAY_INFINITE_FAIL); + chromie->AI()->Talk(SAY_INFINITE_FAIL); if (Creature* infinite = instance->GetCreature(_infiniteGUID)) { @@ -330,19 +318,19 @@ class instance_culling_of_stratholme : public InstanceMapScript } private: - uint64 _chromieGUID; - uint64 _arthasGUID; - uint64 _meathookGUID; - uint64 _salrammGUID; - uint64 _epochGUID; - uint64 _malGanisGUID; - uint64 _infiniteGUID; - uint64 _shkafGateGUID; - uint64 _malGanisGate1GUID; - uint64 _malGanisGate2GUID; - uint64 _exitGateGUID; - uint64 _malGanisChestGUID; - uint64 _genericBunnyGUID; + ObjectGuid _chromieGUID; + ObjectGuid _arthasGUID; + ObjectGuid _meathookGUID; + ObjectGuid _salrammGUID; + ObjectGuid _epochGUID; + ObjectGuid _malGanisGUID; + ObjectGuid _infiniteGUID; + ObjectGuid _shkafGateGUID; + ObjectGuid _malGanisGate1GUID; + ObjectGuid _malGanisGate2GUID; + ObjectGuid _exitGateGUID; + ObjectGuid _malGanisChestGUID; + ObjectGuid _genericBunnyGUID; uint32 _crateCount; uint32 _eventTimer; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp index 32062be6f3c..0220ff98750 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp @@ -58,9 +58,9 @@ public: uint32 mBarrelCount; uint32 mThrallEventCount; - uint64 ThrallGUID; - uint64 TarethaGUID; - uint64 EpochGUID; + ObjectGuid ThrallGUID; + ObjectGuid TarethaGUID; + ObjectGuid EpochGUID; void Initialize() override { @@ -69,9 +69,6 @@ public: mBarrelCount = 0; mThrallEventCount = 0; - ThrallGUID = 0; - TarethaGUID = 0; - EpochGUID = 0; } Player* GetPlayerInMap() @@ -100,7 +97,7 @@ public: for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) { if (Player* player = itr->GetSource()) - player->KilledMonsterCredit(LODGE_QUEST_TRIGGER, 0); + player->KilledMonsterCredit(LODGE_QUEST_TRIGGER); } } } @@ -115,9 +112,9 @@ public: case TARETHA_ENTRY: TarethaGUID = creature->GetGUID(); break; - case EPOCH_ENTRY: - EpochGUID = creature->GetGUID(); - break; + case EPOCH_ENTRY: + EpochGUID = creature->GetGUID(); + break; } } @@ -224,7 +221,7 @@ public: return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -232,10 +229,10 @@ public: return ThrallGUID; case DATA_TARETHA: return TarethaGUID; - case DATA_EPOCH: - return EpochGUID; + case DATA_EPOCH: + return EpochGUID; } - return 0; + return ObjectGuid::Empty; } }; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp index 56e95fafece..66ce5e93720 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp @@ -404,7 +404,7 @@ public: me->SummonCreature(NPC_INN_GUARDSMAN, 2656.39f, 659.77f, 61.93f, 2.61f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); break; case 94: - if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TARETHA))) + if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA))) Taretha->AI()->Talk(SAY_TA_ESCAPED, me); break; case 95: @@ -426,7 +426,7 @@ public: case 106: { //trigger taretha to run down outside - if (Creature* Taretha = instance->instance->GetCreature(instance->GetData64(DATA_TARETHA))) + if (Creature* Taretha = instance->instance->GetCreature(instance->GetGuidData(DATA_TARETHA))) { if (Player* player = GetPlayerForEscort()) ENSURE_AI(npc_escortAI, (Taretha->AI()))->Start(false, true, player->GetGUID()); @@ -440,7 +440,7 @@ public: for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) { if (Player* player = itr->GetSource()) - player->KilledMonsterCredit(20156, 0); + player->KilledMonsterCredit(20156); } } @@ -588,10 +588,10 @@ public: if (instance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS) { instance->SetData(TYPE_THRALL_PART4, IN_PROGRESS); - if (instance->GetData64(DATA_EPOCH) == 0) + if (instance->GetGuidData(DATA_EPOCH).IsEmpty()) creature->SummonCreature(ENTRY_EPOCH, 2639.13f, 698.55f, 65.43f, 4.59f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); - if (Creature* thrall = (ObjectAccessor::GetCreature(*creature, instance->GetData64(DATA_THRALL)))) + if (Creature* thrall = (ObjectAccessor::GetCreature(*creature, instance->GetGuidData(DATA_THRALL)))) ENSURE_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, thrall->AI())->StartWP(); } } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp index 35497b1f9ce..ed49cc41c39 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp @@ -89,13 +89,12 @@ public: uint8 mRiftWaveCount; uint8 mRiftWaveId; - uint64 _medivhGUID; + ObjectGuid _medivhGUID; uint8 _currentRiftId; void Initialize() override { SetHeaders(DataHeader); - _medivhGUID = 0; Clear(); } @@ -253,12 +252,12 @@ public: return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { if (data == DATA_MEDIVH) return _medivhGUID; - return 0; + return ObjectGuid::Empty; } Creature* SummonedPortalBoss(Creature* me) diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp index 1fa104ada00..64d99c03dab 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp @@ -321,7 +321,7 @@ public: pos.m_positionZ = std::max(me->GetMap()->GetHeight(pos.m_positionX, pos.m_positionY, MAX_HEIGHT), me->GetMap()->GetWaterLevel(pos.m_positionX, pos.m_positionY)); if (Unit* Summon = DoSummon(creature_entry, pos, 30000, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT)) - if (Unit* temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MEDIVH))) + if (Unit* temp = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MEDIVH))) Summon->AddThreat(temp, 0.0f); } diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp index 62c85491a20..5c083e43d3d 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp @@ -140,8 +140,8 @@ public: MovePoint = urand(0, 5); PointData = GetMoveData(); SummonWhelpCount = 0; - triggerGUID = 0; - tankGUID = 0; + triggerGUID.Clear(); + tankGUID.Clear(); IsMoving = false; } @@ -153,7 +153,7 @@ public: SetCombatMovement(true); _Reset(); - + me->SetReactState(REACT_AGGRESSIVE); instance->SetData(DATA_ONYXIA_PHASE, Phase); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } @@ -162,12 +162,10 @@ public: { _EnterCombat(); Talk(SAY_AGGRO); - events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000)); events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(15000, 20000)); events.ScheduleEvent(EVENT_CLEAVE, urand(2000, 5000)); events.ScheduleEvent(EVENT_WING_BUFFET, urand(10000, 20000)); - instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } @@ -331,9 +329,10 @@ public: { if (HealthBelowPct(65)) { + if (Unit* target = me->GetVictim()) + tankGUID = target->GetGUID(); SetCombatMovement(false); Phase = PHASE_BREATH; - tankGUID = me->GetVictim()->GetGUID(); me->SetReactState(REACT_PASSIVE); me->AttackStop(); me->GetMotionMaster()->MovePoint(10, Phase2Location); @@ -356,7 +355,7 @@ public: Trinity::GameObjectLastSearcher<Trinity::GameObjectInRangeCheck> searcher(me, Floor, check); me->VisitNearbyGridObject(30, searcher); if (Floor) - instance->SetData64(DATA_FLOOR_ERUPTION_GUID, Floor->GetGUID()); + instance->SetGuidData(DATA_FLOOR_ERUPTION_GUID, Floor->GetGUID()); events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30000); break; } @@ -474,8 +473,8 @@ public: uint8 Phase; uint8 MovePoint; uint8 SummonWhelpCount; - uint64 triggerGUID; - uint64 tankGUID; + ObjectGuid triggerGUID; + ObjectGuid tankGUID; bool IsMoving; }; diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp index 6aa50e71b17..4bbbf26b84e 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp @@ -53,7 +53,6 @@ public: SetHeaders(DataHeader); SetBossNumber(EncounterCount); - onyxiaGUID = 0; onyxiaLiftoffTimer = 0; manyWhelpsCounter = 0; eruptTimer = 0; @@ -102,7 +101,7 @@ public: } } - void FloorEruption(uint64 floorEruptedGUID) + void FloorEruption(ObjectGuid floorEruptedGUID) { if (GameObject* floorEruption = instance->GetGameObject(floorEruptedGUID)) { @@ -121,7 +120,7 @@ public: { if (((*itr)->GetGOInfo()->displayId == 4392 || (*itr)->GetGOInfo()->displayId == 4472) && (*itr)->GetGOInfo()->trap.spellId == 17731) { - uint64 nearFloorGUID = (*itr)->GetGUID(); + ObjectGuid nearFloorGUID = (*itr)->GetGUID(); if (FloorEruptionGUID[1].find(nearFloorGUID) != FloorEruptionGUID[1].end() && (*FloorEruptionGUID[1].find(nearFloorGUID)).second == 0) { (*FloorEruptionGUID[1].find(nearFloorGUID)).second = (*FloorEruptionGUID[1].find(floorEruptedGUID)).second+1; @@ -173,7 +172,7 @@ public: } } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { switch (type) { @@ -185,7 +184,7 @@ public: } } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -193,7 +192,7 @@ public: return onyxiaGUID; } - return 0; + return ObjectGuid::Empty; } void Update(uint32 diff) override @@ -212,8 +211,8 @@ public: { if (eruptTimer <= diff) { - uint64 frontGuid = FloorEruptionGUIDQueue.front(); - std::map<uint64, uint32>::iterator itr = FloorEruptionGUID[1].find(frontGuid); + ObjectGuid frontGuid = FloorEruptionGUIDQueue.front(); + std::map<ObjectGuid, uint32>::iterator itr = FloorEruptionGUID[1].find(frontGuid); if (itr != FloorEruptionGUID[1].end()) { uint32 treeHeight = itr->second; @@ -252,11 +251,9 @@ public: } protected: - std::map<uint64, uint32> FloorEruptionGUID[2]; - std::queue<uint64> FloorEruptionGUIDQueue; - uint64 onyxiaGUID; - uint64 triggerGUID; - uint64 tankGUID; + std::map<ObjectGuid, uint32> FloorEruptionGUID[2]; + std::queue<ObjectGuid> FloorEruptionGUIDQueue; + ObjectGuid onyxiaGUID; uint32 onyxiaLiftoffTimer; uint32 manyWhelpsCounter; uint32 eruptTimer; diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp index ca5e6a9828c..8a82f782918 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp @@ -59,7 +59,6 @@ public: void Initialize() override { - goGongGUID = 0; gongWave = 0; fiendsKilled = 0; reaversKilled = 0; @@ -172,7 +171,7 @@ public: } protected: - uint64 goGongGUID; + ObjectGuid goGongGUID; uint16 gongWave; uint8 fiendsKilled; uint8 reaversKilled; diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp index 6f9ba0afa7b..07cb6e65ee9 100644 --- a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp +++ b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp @@ -44,14 +44,13 @@ public: { instance_razorfen_kraul_InstanceMapScript(Map* map) : InstanceScript(map) { } - uint64 DoorWardGUID; + ObjectGuid DoorWardGUID; int WardKeeperDeath; void Initialize() override { SetHeaders(DataHeader); WardKeeperDeath = 0; - DoorWardGUID = 0; } Player* GetPlayerInMap() diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp index e3021ff7a95..8cbd611a18a 100644 --- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp +++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp @@ -159,13 +159,12 @@ public: npc_snufflenose_gopherAI(Creature* creature) : PetAI(creature) { IsMovementActive = false; - TargetTubberGUID = 0; } void Reset() override { IsMovementActive = false; - TargetTubberGUID = 0; + TargetTubberGUID.Clear(); } void MovementInform(uint32 type, uint32 id) override @@ -227,7 +226,7 @@ public: bool IsMovementActive; - uint64 TargetTubberGUID; + ObjectGuid TargetTubberGUID; }; }; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp index 19cc5316fa4..1a09ef27b04 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp @@ -200,14 +200,14 @@ class boss_ayamiss : public CreatureScript if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true)) { DoCast(target, SPELL_PARALYZE); - instance->SetData64(DATA_PARALYZED, target->GetGUID()); + instance->SetGuidData(DATA_PARALYZED, target->GetGUID()); uint8 Index = urand(0, 1); me->SummonCreature(NPC_LARVA, LarvaPos[Index], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000); } events.ScheduleEvent(EVENT_PARALYZE, 15000); break; case EVENT_SWARMER_ATTACK: - for (std::list<uint64>::iterator i = _swarmers.begin(); i != _swarmers.end(); ++i) + for (GuidList::iterator i = _swarmers.begin(); i != _swarmers.end(); ++i) if (Creature* swarmer = me->GetMap()->GetCreature(*i)) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM)) swarmer->AI()->AttackStart(target); @@ -234,7 +234,7 @@ class boss_ayamiss : public CreatureScript } } private: - std::list<uint64> _swarmers; + GuidList _swarmers; uint8 _phase; bool _enraged; }; @@ -261,7 +261,7 @@ class npc_hive_zara_larva : public CreatureScript { if (type == POINT_MOTION_TYPE) if (id == POINT_PARALYZE) - if (Player* target = ObjectAccessor::GetPlayer(*me, _instance->GetData64(DATA_PARALYZED))) + if (Player* target = ObjectAccessor::GetPlayer(*me, _instance->GetGuidData(DATA_PARALYZED))) DoCast(target, SPELL_FEED); // Omnomnom } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp index cf6703a01f5..d6640b5a0ab 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp @@ -76,8 +76,8 @@ class boss_buru : public CreatureScript { BossAI::EnterEvadeMode(); - for (std::list<uint64>::iterator i = Eggs.begin(); i != Eggs.end(); ++i) - if (Creature* egg = me->GetMap()->GetCreature(*Eggs.begin())) + for (ObjectGuid eggGuid : Eggs) + if (Creature* egg = me->GetMap()->GetCreature(eggGuid)) egg->Respawn(); Eggs.clear(); @@ -127,7 +127,7 @@ class boss_buru : public CreatureScript } } - void ManageRespawn(uint64 EggGUID) + void ManageRespawn(ObjectGuid EggGUID) { ChaseNewVictim(); Eggs.push_back(EggGUID); @@ -183,8 +183,8 @@ class boss_buru : public CreatureScript DoMeleeAttackIfReady(); } private: + GuidList Eggs; uint8 _phase; - std::list<uint64> Eggs; }; CreatureAI* GetAI(Creature* creature) const override @@ -208,7 +208,7 @@ class npc_buru_egg : public CreatureScript void EnterCombat(Unit* attacker) override { - if (Creature* buru = me->GetMap()->GetCreature(_instance->GetData64(DATA_BURU))) + if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU))) if (!buru->IsInCombat()) buru->AI()->AttackStart(attacker); } @@ -216,7 +216,7 @@ class npc_buru_egg : public CreatureScript void JustSummoned(Creature* who) override { if (who->GetEntry() == NPC_HATCHLING) - if (Creature* buru = me->GetMap()->GetCreature(_instance->GetData64(DATA_BURU))) + if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU))) if (Unit* target = buru->AI()->SelectTarget(SELECT_TARGET_RANDOM)) who->AI()->AttackStart(target); } @@ -227,7 +227,7 @@ class npc_buru_egg : public CreatureScript DoCastAOE(SPELL_EXPLODE_2, true); // Unknown purpose DoCast(me, SPELL_SUMMON_HATCHLING, true); - if (Creature* buru = me->GetMap()->GetCreature(_instance->GetData64(DATA_BURU))) + if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU))) if (boss_buru::boss_buruAI* buruAI = dynamic_cast<boss_buru::boss_buruAI*>(buru->AI())) buruAI->ManageRespawn(me->GetGUID()); } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp index adb6723d2af..776971b1f9f 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp @@ -83,7 +83,7 @@ class boss_kurinnaxx : public CreatureScript void JustDied(Unit* /*killer*/) override { _JustDied(); - if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetData64(DATA_OSSIRIAN))) + if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetGuidData(DATA_OSSIRIAN))) sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE); } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp index 0180bbeddac..2ba755d3c4e 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp @@ -95,12 +95,12 @@ class boss_ossirian : public CreatureScript void Initialize() { CrystalIterator = 0; - TriggerGUID = 0; - CrystalGUID = 0; + TriggerGUID.Clear(); + CrystalGUID.Clear(); } - uint64 TriggerGUID; - uint64 CrystalGUID; + ObjectGuid TriggerGUID; + ObjectGuid CrystalGUID; uint8 CrystalIterator; bool SaidIntro; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp index 1b62527dab7..0e34f4a5595 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp @@ -30,14 +30,6 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(NUM_ENCOUNTER); - - _kurinaxxGUID = 0; - _rajaxxGUID = 0; - _moamGUID = 0; - _buruGUID = 0; - _ayamissGUID = 0; - _ossirianGUID = 0; - _paralyzedGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -73,13 +65,13 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript return true; } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { if (type == DATA_PARALYZED) _paralyzedGUID = data; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -99,17 +91,17 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript return _paralyzedGUID; } - return 0; + return ObjectGuid::Empty; } private: - uint64 _kurinaxxGUID; - uint64 _rajaxxGUID; - uint64 _moamGUID; - uint64 _buruGUID; - uint64 _ayamissGUID; - uint64 _ossirianGUID; - uint64 _paralyzedGUID; + ObjectGuid _kurinaxxGUID; + ObjectGuid _rajaxxGUID; + ObjectGuid _moamGUID; + ObjectGuid _buruGUID; + ObjectGuid _ayamissGUID; + ObjectGuid _ossirianGUID; + ObjectGuid _paralyzedGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp index be103541989..4ed4c3c2e26 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp @@ -315,11 +315,11 @@ public: switch (urand(0, 2)) { case 0: - if (Creature* kri = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KRI))) + if (Creature* kri = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KRI))) DoCast(kri, SPELL_HEAL); break; case 1: - if (Creature* vem = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VEM))) + if (Creature* vem = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VEM))) DoCast(vem, SPELL_HEAL); break; case 2: diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index c9795133d14..218aa69304c 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -307,7 +307,7 @@ public: me->SetReactState(REACT_PASSIVE); //Remove any target - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); //Select random target for dark beam to start on if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -384,7 +384,7 @@ public: //Transition phase case PHASE_CTHUN_TRANSITION: //Remove any target - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); me->SetHealth(0); me->SetVisible(false); break; @@ -420,7 +420,7 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE); //Remove Target field - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); //Death animation/respawning; instance->SetData(DATA_CTHUN_PHASE, PHASE_CTHUN_TRANSITION); @@ -475,7 +475,7 @@ public: PhaseTimer = 10000; //Emerge in 10 seconds //No hold player for transition - HoldPlayer = 0; + HoldPlayer.Clear(); //Body Phase EyeTentacleTimer = 30000; @@ -485,7 +485,7 @@ public: StomachAcidTimer = 4000; //Every 4 seconds StomachEnterTimer = 10000; //Every 10 seconds StomachEnterVisTimer = 0; //Always 3.5 seconds after Stomach Enter Timer - StomachEnterTarget = 0; //Target to be teleported to stomach + StomachEnterTarget.Clear(); //Target to be teleported to stomach } InstanceScript* instance; @@ -499,7 +499,7 @@ public: //------------------- //Phase transition - uint64 HoldPlayer; + ObjectGuid HoldPlayer; //Body Phase uint32 EyeTentacleTimer; @@ -509,10 +509,10 @@ public: uint32 StomachAcidTimer; uint32 StomachEnterTimer; uint32 StomachEnterVisTimer; - uint64 StomachEnterTarget; + ObjectGuid StomachEnterTarget; //Stomach map, bool = true then in stomach - std::unordered_map<uint64, bool> Stomach_Map; + std::unordered_map<ObjectGuid, bool> Stomach_Map; void Reset() override { @@ -548,7 +548,7 @@ public: if (Stomach_Map.empty()) return NULL; - std::unordered_map<uint64, bool>::const_iterator i = Stomach_Map.begin(); + std::unordered_map<ObjectGuid, bool>::const_iterator i = Stomach_Map.begin(); std::list<Unit*> temp; std::list<Unit*>::const_iterator j; @@ -610,7 +610,7 @@ public: return; } - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); uint32 currentPhase = instance->GetData(DATA_CTHUN_PHASE); if (currentPhase == PHASE_CTHUN_STOMACH || currentPhase == PHASE_CTHUN_WEAK) @@ -680,7 +680,7 @@ public: //Body Phase case PHASE_CTHUN_STOMACH: //Remove Target field - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); //Weaken if (FleshTentaclesKilled > 1) @@ -692,7 +692,7 @@ public: DoCast(me, SPELL_PURPLE_COLORATION, true); - std::unordered_map<uint64, bool>::iterator i = Stomach_Map.begin(); + std::unordered_map<ObjectGuid, bool>::iterator i = Stomach_Map.begin(); //Kick all players out of stomach while (i != Stomach_Map.end()) @@ -724,7 +724,7 @@ public: if (StomachAcidTimer <= diff) { //Apply aura to all players in stomach - std::unordered_map<uint64, bool>::iterator i = Stomach_Map.begin(); + std::unordered_map<ObjectGuid, bool>::iterator i = Stomach_Map.begin(); while (i != Stomach_Map.end()) { @@ -786,7 +786,7 @@ public: DoTeleportPlayer(unit, STOMACH_X, STOMACH_Y, STOMACH_Z, STOMACH_O); } - StomachEnterTarget = 0; + StomachEnterTarget.Clear(); StomachEnterVisTimer = 0; } else StomachEnterVisTimer -= diff; } @@ -913,7 +913,6 @@ public: MindflayTimer = 500; KillSelfTimer = 35000; - Portal = 0; if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN)) { pPortal->SetReactState(REACT_PASSIVE); @@ -925,7 +924,7 @@ public: uint32 MindflayTimer; uint32 KillSelfTimer; - uint64 Portal; + ObjectGuid Portal; void JustDied(Unit* /*killer*/) override { @@ -995,7 +994,6 @@ public: SetCombatMovement(false); - Portal = 0; if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN)) { pPortal->SetReactState(REACT_PASSIVE); @@ -1006,7 +1004,7 @@ public: uint32 GroundRuptureTimer; uint32 HamstringTimer; uint32 EvadeTimer; - uint64 Portal; + ObjectGuid Portal; void JustDied(Unit* /*killer*/) override { @@ -1111,7 +1109,6 @@ public: SetCombatMovement(false); - Portal = 0; if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN)) { pPortal->SetReactState(REACT_PASSIVE); @@ -1123,7 +1120,7 @@ public: uint32 ThrashTimer; uint32 HamstringTimer; uint32 EvadeTimer; - uint64 Portal; + ObjectGuid Portal; void JustDied(Unit* /*killer*/) override { @@ -1233,7 +1230,6 @@ public: SetCombatMovement(false); - Portal = 0; if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN)) { pPortal->SetReactState(REACT_PASSIVE); @@ -1242,7 +1238,7 @@ public: } uint32 BeamTimer; - uint64 Portal; + ObjectGuid Portal; void JustDied(Unit* /*killer*/) override { diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp index e65dbacc1f2..c653064d62c 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp @@ -110,7 +110,7 @@ struct boss_twinemperorsAI : public ScriptedAI Creature* GetOtherBoss() { - return ObjectAccessor::GetCreature(*me, instance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR)); + return ObjectAccessor::GetCreature(*me, instance->GetGuidData(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR)); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp index 7f223f21269..fe6e0a435a7 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp @@ -272,7 +272,7 @@ class npc_glob_of_viscidus : public CreatureScript { InstanceScript* Instance = me->GetInstanceScript(); - if (Creature* Viscidus = me->GetMap()->GetCreature(Instance->GetData64(DATA_VISCIDUS))) + if (Creature* Viscidus = me->GetMap()->GetCreature(Instance->GetGuidData(DATA_VISCIDUS))) { if (BossAI* ViscidusAI = dynamic_cast<BossAI*>(Viscidus->GetAI())) ViscidusAI->SummonedCreatureDespawn(me); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp index e6d9bd86a4d..456ff749e84 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp @@ -45,12 +45,12 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript bool IsBossDied[3]; //Storing Skeram, Vem and Kri. - uint64 SkeramGUID; - uint64 VemGUID; - uint64 KriGUID; - uint64 VeklorGUID; - uint64 VeknilashGUID; - uint64 ViscidusGUID; + ObjectGuid SkeramGUID; + ObjectGuid VemGUID; + ObjectGuid KriGUID; + ObjectGuid VeklorGUID; + ObjectGuid VeknilashGUID; + ObjectGuid ViscidusGUID; uint32 BugTrioDeathCount; @@ -63,13 +63,6 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript IsBossDied[1] = false; IsBossDied[2] = false; - SkeramGUID = 0; - VemGUID = 0; - KriGUID = 0; - VeklorGUID = 0; - VeknilashGUID = 0; - ViscidusGUID = 0; - BugTrioDeathCount = 0; CthunPhase = 0; @@ -134,7 +127,7 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript return 0; } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -151,8 +144,8 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript case DATA_VISCIDUS: return ViscidusGUID; } - return 0; - } // end GetData64 + return ObjectGuid::Empty; + } // end GetGuidData void SetData(uint32 type, uint32 data) override { diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp index b8f6c0ed80e..7b20e5dd8a9 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp @@ -103,14 +103,16 @@ public: gatherOthersWhenAggro = true; } - uint64 NearbyGUID[3]; + ObjectGuid NearbyGUID[3]; void ClearBuddyList() { - NearbyGUID[0] = NearbyGUID[1] = NearbyGUID[2] = 0; + NearbyGUID[0].Clear(); + NearbyGUID[1].Clear(); + NearbyGUID[2].Clear(); } - void AddBuddyToList(uint64 CreatureGUID) + void AddBuddyToList(ObjectGuid CreatureGUID) { if (CreatureGUID == me->GetGUID()) return; @@ -130,7 +132,7 @@ public: void GiveBuddyMyList(Creature* c) { aqsentinelAI* cai = ENSURE_AI(aqsentinelAI, (c)->AI()); - for (int i=0; i<3; ++i) + for (int32 i = 0; i < 3; ++i) if (NearbyGUID[i] && NearbyGUID[i] != c->GetGUID()) cai->AddBuddyToList(NearbyGUID[i]); cai->AddBuddyToList(me->GetGUID()); @@ -138,14 +140,14 @@ public: void SendMyListToBuddies() { - for (int i=0; i<3; ++i) + for (int32 i = 0; i < 3; ++i) if (Creature* pNearby = ObjectAccessor::GetCreature(*me, NearbyGUID[i])) GiveBuddyMyList(pNearby); } void CallBuddiesToAttack(Unit* who) { - for (int i=0; i<3; ++i) + for (int32 i = 0; i < 3; ++i) { Creature* c = ObjectAccessor::GetCreature(*me, NearbyGUID[i]); if (c) @@ -222,7 +224,7 @@ public: { if (!me->isDead()) { - for (int i=0; i<3; ++i) + for (int i = 0; i < 3; ++i) { if (!NearbyGUID[i]) continue; @@ -252,7 +254,7 @@ public: void JustDied(Unit* /*killer*/) override { - for (int ni=0; ni<3; ++ni) + for (int ni = 0; ni < 3; ++ni) { Creature* sent = ObjectAccessor::GetCreature(*me, NearbyGUID[ni]); if (!sent) diff --git a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp index bb2fc8bca20..5d7202588a9 100644 --- a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp +++ b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp @@ -46,7 +46,7 @@ public: uint32 m_auiEncounter[MAX_ENCOUNTER]; bool yelled; - uint64 NaralexGUID; + ObjectGuid NaralexGUID; void Initialize() override { @@ -54,7 +54,6 @@ public: memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); yelled = false; - NaralexGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -99,10 +98,10 @@ public: return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { if (data == DATA_NARALEX)return NaralexGUID; - return 0; + return ObjectGuid::Empty; } std::string GetSaveData() override diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp index bb872421197..522d6eee464 100644 --- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp +++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp @@ -259,7 +259,7 @@ public: ++eventProgress; eventTimer = 15000; //CAST_AI(npc_escort::npc_escortAI, me->AI())->SetCanDefend(false); - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) DoCast(naralex, SPELL_NARALEXS_AWAKENING, true); Talk(EMOTE_AWAKENING_RITUAL); } @@ -268,7 +268,7 @@ public: { ++eventProgress; eventTimer = 15000; - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) naralex->AI()->Talk(EMOTE_TROUBLED_SLEEP); me->SummonCreature(NPC_DEVIATE_MOCCASIN, 135.943f, 199.701f, -103.529f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000); me->SummonCreature(NPC_DEVIATE_MOCCASIN, 151.08f, 221.13f, -103.609f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000); @@ -279,7 +279,7 @@ public: { ++eventProgress; eventTimer = 30000; - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) naralex->AI()->Talk(EMOTE_WRITHE_IN_AGONY); me->SummonCreature(NPC_NIGHTMARE_ECTOPLASM, 133.413f, 207.188f, -102.469f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000); me->SummonCreature(NPC_NIGHTMARE_ECTOPLASM, 142.857f, 218.645f, -102.905f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000); @@ -293,7 +293,7 @@ public: if (eventProgress == 5) { ++eventProgress; - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) naralex->AI()->Talk(EMOTE_HORRENDOUS_VISION); me->SummonCreature(NPC_MUTANUS_THE_DEVOURER, 150.872f, 262.905f, -103.503f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000); Talk(SAY_MUTANUS_THE_DEVOURER); @@ -304,7 +304,7 @@ public: { ++eventProgress; eventTimer = 3000; - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) { if (me->HasAura(SPELL_NARALEXS_AWAKENING)) me->RemoveAura(SPELL_NARALEXS_AWAKENING); @@ -318,7 +318,7 @@ public: { ++eventProgress; eventTimer = 6000; - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) naralex->AI()->Talk(SAY_THANK_YOU); } else @@ -326,7 +326,7 @@ public: { ++eventProgress; eventTimer = 8000; - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) { naralex->AI()->Talk(SAY_FAREWELL); naralex->AddAura(SPELL_FLIGHT_FORM, naralex); @@ -340,7 +340,7 @@ public: { ++eventProgress; eventTimer = 1500; - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) naralex->GetMotionMaster()->MovePoint(25, naralex->GetPositionX(), naralex->GetPositionY(), naralex->GetPositionZ()); } else @@ -348,7 +348,7 @@ public: { ++eventProgress; eventTimer = 2500; - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) { naralex->GetMotionMaster()->MovePoint(0, 117.095512f, 247.107971f, -96.167870f); naralex->GetMotionMaster()->MovePoint(1, 90.388809f, 276.135406f, -83.389801f); @@ -359,7 +359,7 @@ public: else if (eventProgress == 11) { - if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX))) + if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX))) naralex->SetVisible(false); me->SetVisible(false); instance->SetData(TYPE_NARALEX_PART3, DONE); diff --git a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp index 83f1724130c..393028e0446 100644 --- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp +++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp @@ -111,13 +111,13 @@ public: instance_zulfarrak_InstanceMapScript(Map* map) : InstanceScript(map) { } uint32 GahzRillaEncounter; - uint64 ZumrahGUID; - uint64 BlyGUID; - uint64 WeegliGUID; - uint64 OroGUID; - uint64 RavenGUID; - uint64 MurtaGUID; - uint64 EndDoorGUID; + ObjectGuid ZumrahGUID; + ObjectGuid BlyGUID; + ObjectGuid WeegliGUID; + ObjectGuid OroGUID; + ObjectGuid RavenGUID; + ObjectGuid MurtaGUID; + ObjectGuid EndDoorGUID; uint32 PyramidPhase; uint32 major_wave_Timer; uint32 minor_wave_Timer; @@ -127,14 +127,6 @@ public: void Initialize() override { SetHeaders(DataHeader); - GahzRillaEncounter = NOT_STARTED; - ZumrahGUID = 0; - BlyGUID = 0; - WeegliGUID = 0; - OroGUID = 0; - RavenGUID = 0; - MurtaGUID = 0; - EndDoorGUID = 0; PyramidPhase = 0; major_wave_Timer = 0; minor_wave_Timer = 0; @@ -198,7 +190,7 @@ public: return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -217,7 +209,7 @@ public: case GO_END_DOOR: return EndDoorGUID; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -315,11 +307,11 @@ public: }; } - std::list<uint64> addsAtBase, movedadds; + GuidList addsAtBase, movedadds; void MoveNPCIfAlive(uint32 entry, float x, float y, float z, float o) { - if (Creature* npc = instance->GetCreature(GetData64(entry))) + if (Creature* npc = instance->GetCreature(GetGuidData(entry))) { if (npc->IsAlive()) { @@ -346,7 +338,7 @@ public: bool IsWaveAllDead() { - for (std::list<uint64>::iterator itr = addsAtBase.begin(); itr != addsAtBase.end(); ++itr) + for (GuidList::iterator itr = addsAtBase.begin(); itr != addsAtBase.end(); ++itr) { if (Creature* add = instance->GetCreature((*itr))) { @@ -354,7 +346,7 @@ public: return false; } } - for (std::list<uint64>::iterator itr = movedadds.begin(); itr != movedadds.end(); ++itr) + for (GuidList::iterator itr = movedadds.begin(); itr != movedadds.end(); ++itr) { if (Creature* add = instance->GetCreature(((*itr)))) { diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp index 47d269a00ff..443bd1578d7 100644 --- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp +++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp @@ -108,7 +108,6 @@ public: instance = creature->GetInstanceScript(); postGossipStep = 0; Text_Timer = 0; - PlayerGUID = 0; } void Initialize() @@ -123,7 +122,7 @@ public: uint32 Text_Timer; uint32 ShieldBash_Timer; uint32 Revenge_Timer; //this is wrong, spell should never be used unless me->GetVictim() dodge, parry or block attack. Trinity support required. - uint64 PlayerGUID; + ObjectGuid PlayerGUID; void Reset() override { @@ -142,7 +141,7 @@ public: { case 1: //weegli doesn't fight - he goes & blows up the door - if (Creature* pWeegli = instance->instance->GetCreature(instance->GetData64(ENTRY_WEEGLI))) + if (Creature* pWeegli = instance->instance->GetCreature(instance->GetGuidData(ENTRY_WEEGLI))) pWeegli->AI()->DoAction(0); Talk(SAY_1); Text_Timer = 5000; @@ -195,7 +194,7 @@ public: void switchFactionIfAlive(uint32 entry) { - if (Creature* crew = ObjectAccessor::GetCreature(*me, instance->GetData64(entry))) + if (Creature* crew = ObjectAccessor::GetCreature(*me, instance->GetGuidData(entry))) if (crew->IsAlive()) crew->setFaction(FACTION_HOSTILE); } @@ -230,7 +229,7 @@ public: private: void initBlyCrewMember(InstanceScript* instance, uint32 entry, float x, float y, float z) { - if (Creature* crew = instance->instance->GetCreature(instance->GetData64(entry))) + if (Creature* crew = instance->instance->GetCreature(instance->GetGuidData(entry))) { crew->SetReactState(REACT_AGGRESSIVE); crew->SetWalk(true); @@ -370,7 +369,7 @@ public: else if (destroyingDoor) { - instance->DoUseDoorOrButton(instance->GetData64(GO_END_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_END_DOOR)); /// @todo leave the area... me->DespawnOrUnsummon(); }; diff --git a/src/server/scripts/Kalimdor/zone_azshara.cpp b/src/server/scripts/Kalimdor/zone_azshara.cpp index cec94617454..542e04a7dd5 100644 --- a/src/server/scripts/Kalimdor/zone_azshara.cpp +++ b/src/server/scripts/Kalimdor/zone_azshara.cpp @@ -314,7 +314,7 @@ public: MustDieTimer = 3000; CurrWP = 0; - PlayerGUID = 0; + PlayerGUID.Clear(); MustDie = false; Escape = false; @@ -453,7 +453,7 @@ public: } private: - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 SpellEscapeTimer; uint32 TeleportTimer; uint32 CheckTimer; diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index e6869dbf0f5..c6f4e9d0ee6 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -68,7 +68,7 @@ public: void Initialize() { - pCaster = 0; + pCaster.Clear(); SayThanksTimer = 0; RunAwayTimer = 0; @@ -77,7 +77,7 @@ public: CanSayHelp = true; } - uint64 pCaster; + ObjectGuid pCaster; uint32 SayThanksTimer; uint32 RunAwayTimer; @@ -431,13 +431,13 @@ public: void Initialize() { - SparkGUID = 0; + SparkGUID.Clear(); Step = 0; EventStarted = false; SayTimer = 0; } - uint64 SparkGUID; + ObjectGuid SparkGUID; uint8 Step; uint32 SayTimer; @@ -528,7 +528,7 @@ public: for (std::list<Player*>::const_iterator itr = players.begin(); itr != players.end(); ++itr) if ((*itr)->GetQuestStatus(QUEST_TREES_COMPANY) == QUEST_STATUS_INCOMPLETE && (*itr)->HasAura(SPELL_TREE_DISGUISE)) - (*itr)->KilledMonsterCredit(NPC_SPARK, 0); + (*itr)->KilledMonsterCredit(NPC_SPARK); } void DespawnNagaFlag(bool despawn) @@ -687,7 +687,7 @@ class npc_stillpine_capitive : public CreatureScript void Initialize() { - _playerGUID = 0; + _playerGUID.Clear(); _movementComplete = false; } @@ -737,7 +737,7 @@ class npc_stillpine_capitive : public CreatureScript } private: - uint64 _playerGUID; + ObjectGuid _playerGUID; EventMap _events; bool _movementComplete; }; diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp index 81a175b57b7..5e2f4519b1e 100644 --- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp @@ -64,7 +64,7 @@ public: { case 0: if (Player* player = killer->ToPlayer()) - player->KilledMonsterCredit(NPC_EXPEDITION_RESEARCHER, 0); + player->KilledMonsterCredit(NPC_EXPEDITION_RESEARCHER); break; case 1: case 2: diff --git a/src/server/scripts/Kalimdor/zone_desolace.cpp b/src/server/scripts/Kalimdor/zone_desolace.cpp index 0a56253cabd..7247286388a 100644 --- a/src/server/scripts/Kalimdor/zone_desolace.cpp +++ b/src/server/scripts/Kalimdor/zone_desolace.cpp @@ -103,7 +103,7 @@ public: { if (player->HasAura(SPELL_KODO_KOMBO_PLAYER_BUFF) && creature->HasAura(SPELL_KODO_KOMBO_DESPAWN_BUFF)) { - player->TalkedToCreature(creature->GetEntry(), 0); + player->TalkedToCreature(creature->GetEntry(), ObjectGuid::Empty); player->RemoveAurasDueToSpell(SPELL_KODO_KOMBO_PLAYER_BUFF); } diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp index e2f8dd0854d..93205738534 100644 --- a/src/server/scripts/Kalimdor/zone_durotar.cpp +++ b/src/server/scripts/Kalimdor/zone_durotar.cpp @@ -58,13 +58,10 @@ public: void Initialize() { - PlayerGUID = 0; RebuffTimer = 0; work = false; } - uint64 PlayerGUID; - uint32 RebuffTimer; bool work; @@ -242,8 +239,7 @@ class npc_tiger_matriarch : public CreatureScript struct npc_tiger_matriarchAI : public ScriptedAI { - npc_tiger_matriarchAI(Creature* creature) : ScriptedAI(creature), - _tigerGuid(0) + npc_tiger_matriarchAI(Creature* creature) : ScriptedAI(creature) { } @@ -343,7 +339,7 @@ class npc_tiger_matriarch : public CreatureScript private: EventMap _events; - uint64 _tigerGuid; + ObjectGuid _tigerGuid; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp index ee244e51b09..9f5e7bdf29d 100644 --- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp +++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp @@ -655,7 +655,7 @@ public: if (Creature* prisoner = go->FindNearestCreature(NPC_THERAMORE_PRISONER, 1.0f)) { if (player) - player->KilledMonsterCredit(NPC_THERAMORE_PRISONER, 0); + player->KilledMonsterCredit(NPC_THERAMORE_PRISONER); prisoner->AI()->Talk(SAY_FREE); // We also emote cry here (handled in creature_text.emote) prisoner->DespawnOrUnsummon(6000); diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp index 268db8da779..c8d880e66b7 100644 --- a/src/server/scripts/Kalimdor/zone_moonglade.cpp +++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp @@ -299,7 +299,7 @@ public: npc_clintar_spiritAI(Creature* creature) : npc_escortAI(creature) { Initialize(); - PlayerGUID = 0; + PlayerGUID.Clear(); } void Initialize() @@ -307,7 +307,7 @@ public: Step = 0; CurrWP = 0; EventTimer = 0; - PlayerGUID = 0; + PlayerGUID.Clear(); checkPlayerTimer = 1000; EventOnWait = false; } @@ -317,7 +317,7 @@ public: uint32 EventTimer; uint32 checkPlayerTimer; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; bool EventOnWait; @@ -358,7 +358,7 @@ public: if (player && player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE) { player->FailQuest(10965); - PlayerGUID = 0; + PlayerGUID.Clear(); Reset(); } } @@ -536,7 +536,7 @@ public: break; case 2: player->TalkedToCreature(me->GetEntry(), me->GetGUID()); - PlayerGUID = 0; + PlayerGUID.Clear(); Reset(); me->setDeathState(JUST_DIED); break; diff --git a/src/server/scripts/Kalimdor/zone_mulgore.cpp b/src/server/scripts/Kalimdor/zone_mulgore.cpp index 289d7282ac6..31f3dffe70a 100644 --- a/src/server/scripts/Kalimdor/zone_mulgore.cpp +++ b/src/server/scripts/Kalimdor/zone_mulgore.cpp @@ -71,14 +71,14 @@ public: { EventActive = false; IsMovingToLunch = false; - PlayerGUID = 0; + PlayerGUID.Clear(); EventTimer = 5000; EventPhase = 0; } bool EventActive; bool IsMovingToLunch; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 EventTimer; uint8 EventPhase; diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp index fd666b7fcd7..6097937f9d5 100644 --- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp +++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp @@ -75,14 +75,14 @@ public: CanEmote = false; SaluteTimer = 6000; ResetTimer = 0; - PlayerGUID = 0; + PlayerGUID.Clear(); } bool CanTalk; bool CanEmote; uint32 SaluteTimer; uint32 ResetTimer; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; void Reset() override { diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp index 55f36779145..c977f1aee52 100644 --- a/src/server/scripts/Kalimdor/zone_silithus.cpp +++ b/src/server/scripts/Kalimdor/zone_silithus.cpp @@ -97,7 +97,7 @@ public: case GOSSIP_ACTION_INFO_DEF + 6: player->SEND_GOSSIP_MENU(7761, creature->GetGUID()); //'kill' our trigger to update quest status - player->KilledMonsterCredit(TRIGGER_RUTGAR, 0); + player->KilledMonsterCredit(TRIGGER_RUTGAR); break; case GOSSIP_ACTION_INFO_DEF + 9: @@ -123,7 +123,7 @@ public: case GOSSIP_ACTION_INFO_DEF + 14: player->SEND_GOSSIP_MENU(7767, creature->GetGUID()); //'kill' our trigger to update quest status - player->KilledMonsterCredit(TRIGGER_FRANKAL, 0); + player->KilledMonsterCredit(TRIGGER_FRANKAL); break; } return true; @@ -431,24 +431,24 @@ public: { AnimationTimer = 1500; AnimationCount = 0; - AnachronosQuestTriggerGUID = 0; - MerithraGUID = 0; - ArygosGUID = 0; - CaelestraszGUID = 0; - FandralGUID = 0; - PlayerGUID = 0; + AnachronosQuestTriggerGUID.Clear(); + MerithraGUID.Clear(); + ArygosGUID.Clear(); + CaelestraszGUID.Clear(); + FandralGUID.Clear(); + PlayerGUID.Clear(); eventEnd = false; } uint32 AnimationTimer; uint8 AnimationCount; - uint64 AnachronosQuestTriggerGUID; - uint64 MerithraGUID; - uint64 ArygosGUID; - uint64 CaelestraszGUID; - uint64 FandralGUID; - uint64 PlayerGUID; + ObjectGuid AnachronosQuestTriggerGUID; + ObjectGuid MerithraGUID; + ObjectGuid ArygosGUID; + ObjectGuid CaelestraszGUID; + ObjectGuid FandralGUID; + ObjectGuid PlayerGUID; bool eventEnd; void Reset() override @@ -485,7 +485,7 @@ public: Fandral->AI()->Talk(FANDRAL_SAY_1, me); break; case 2: - Fandral->SetTarget(0); + Fandral->SetTarget(ObjectGuid::Empty); Merithra->AI()->Talk(MERITHRA_EMOTE_1); break; case 3: @@ -502,7 +502,7 @@ public: Merithra->AI()->Talk(MERITHRA_SAY_2); break; case 7: - Caelestrasz->SetTarget(0); + Caelestrasz->SetTarget(ObjectGuid::Empty); Merithra->GetMotionMaster()->MoveCharge(-8065, 1530, 2.61f, 10); break; case 8: @@ -769,14 +769,14 @@ public: void Initialize() { - MobGUID = 0; - PlayerGUID = 0; + MobGUID.Clear(); + PlayerGUID.Clear(); Timers = false; hasTarget = false; } - uint64 MobGUID; - uint64 PlayerGUID; + ObjectGuid MobGUID; + ObjectGuid PlayerGUID; uint32 SpellTimer1, SpellTimer2, SpellTimer3, SpellTimer4; bool Timers; bool hasTarget; @@ -890,7 +890,7 @@ public: void Initialize() { - PlayerGUID = 0; + PlayerGUID.Clear(); WaveTimer = 2000; AnnounceTimer = 1000; @@ -902,7 +902,7 @@ public: Failed = false; } - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 WaveTimer; uint32 AnnounceTimer; diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp index fce0608faaf..dac104a8122 100644 --- a/src/server/scripts/Kalimdor/zone_tanaris.cpp +++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp @@ -49,7 +49,12 @@ enum Aquementas AGGRO_YELL_AQUE = 0, SPELL_AQUA_JET = 13586, - SPELL_FROST_SHOCK = 15089 + SPELL_FROST_SHOCK = 15089, + + ITEM_BOOK_OF_AQUOR = 11169, + ITEM_SILVERY_CLAWS = 11172, + ITEM_IRONTREE_HEART = 11173, + ITEM_SILVER_TOTEM = 11522 }; class npc_aquementas : public CreatureScript @@ -97,15 +102,15 @@ public: { Player* player = receiver->ToPlayer(); - if (player && player->HasItemCount(11169, 1, false) && - player->HasItemCount(11172, 11, false) && - player->HasItemCount(11173, 1, false) && - !player->HasItemCount(11522, 1, true)) + if (player && player->HasItemCount(ITEM_BOOK_OF_AQUOR, 1, false) && + player->HasItemCount(ITEM_SILVERY_CLAWS, 11, false) && + player->HasItemCount(ITEM_IRONTREE_HEART, 1, false) && + !player->HasItemCount(ITEM_SILVER_TOTEM, 1, true)) { ItemPosCountVec dest; uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 11522, 1, NULL); if (msg == EQUIP_ERR_OK) - player->StoreNewItem(dest, 11522, 1, true); + player->StoreNewItem(dest, ITEM_SILVER_TOTEM, true); } } @@ -175,7 +180,10 @@ enum CustodianOfTime WHISPER_CUSTODIAN_11 = 10, WHISPER_CUSTODIAN_12 = 11, WHISPER_CUSTODIAN_13 = 12, - WHISPER_CUSTODIAN_14 = 13 + WHISPER_CUSTODIAN_14 = 13, + + QUEST_CAVERNS_OF_TIME = 10277, + SPELL_QID_10277 = 34883 }; class npc_custodian_of_time : public CreatureScript @@ -251,9 +259,9 @@ public: break; case 24: Talk(WHISPER_CUSTODIAN_14, player); - DoCast(player, 34883); + DoCast(player, SPELL_QID_10277); // below here is temporary workaround, to be removed when spell works properly - player->AreaExploredOrEventHappens(10277); + player->AreaExploredOrEventHappens(QUEST_CAVERNS_OF_TIME); break; } } @@ -546,14 +554,14 @@ public: PostEventTimer = 1000; PhasePostEvent = 0; - TortaGUID = 0; + TortaGUID.Clear(); } uint32 CheckSpeechTimer; uint32 PostEventTimer; uint32 PhasePostEvent; - uint64 TortaGUID; + ObjectGuid TortaGUID; void Reset() override { diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp index 03507c77efb..535253222e0 100644 --- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp +++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp @@ -333,14 +333,14 @@ public: WaveTimer = 600000; ChallengerChecker = 0; Wave = 0; - PlayerGUID = 0; + PlayerGUID.Clear(); for (uint8 i = 0; i < 6; ++i) { - AffrayChallenger[i] = 0; + AffrayChallenger[i].Clear(); ChallengerDown[i] = false; } - BigWill = 0; + BigWill.Clear(); } bool EventInProgress; @@ -350,9 +350,9 @@ public: uint8 Wave; uint32 WaveTimer; uint32 ChallengerChecker; - uint64 PlayerGUID; - uint64 AffrayChallenger[6]; - uint64 BigWill; + ObjectGuid PlayerGUID; + ObjectGuid AffrayChallenger[6]; + ObjectGuid BigWill; void Reset() override { diff --git a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp index ea4c743b8a5..9596f8a04f6 100644 --- a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp +++ b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp @@ -212,14 +212,14 @@ public: FaintTimer = urand(30000, 60000); EndEventProgress = 0; EndEventTimer = 1000; - SpraggleGUID = 0; + SpraggleGUID.Clear(); } uint32 FaintTimer; uint32 EndEventProgress; uint32 EndEventTimer; - uint64 SpraggleGUID; + ObjectGuid SpraggleGUID; void Reset() override { diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp index 58d9b115398..ee73d9b27a9 100644 --- a/src/server/scripts/Kalimdor/zone_winterspring.cpp +++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp @@ -318,11 +318,6 @@ public: DialogueHelper(introDialogue) { Initialize(); - _firstPriestessGUID = 0; - _secondPriestessGUID = 0; - _guardEluneGUID = 0; - _voiceEluneGUID = 0; - _altarGUID = 0; } void Initialize() @@ -332,11 +327,11 @@ public: uint32 _delayTimer; - uint64 _firstPriestessGUID; - uint64 _secondPriestessGUID; - uint64 _guardEluneGUID; - uint64 _voiceEluneGUID; - uint64 _altarGUID; + ObjectGuid _firstPriestessGUID; + ObjectGuid _secondPriestessGUID; + ObjectGuid _guardEluneGUID; + ObjectGuid _voiceEluneGUID; + ObjectGuid _altarGUID; void Reset() override { diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp index 7ae8730d57b..4cb401a6e16 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp @@ -107,8 +107,8 @@ public: if (!bFirstTime) instance->SetBossState(DATA_JEDOGA_SHADOWSEEKER, FAIL); - instance->SetData64(DATA_PL_JEDOGA_TARGET, 0); - instance->SetData64(DATA_ADD_JEDOGA_OPFER, 0); + instance->SetGuidData(DATA_PL_JEDOGA_TARGET, ObjectGuid::Empty); + instance->SetGuidData(DATA_ADD_JEDOGA_OPFER, ObjectGuid::Empty); instance->SetData(DATA_JEDOGA_RESET_INITIANDS, 0); MoveUp(); @@ -215,7 +215,7 @@ public: } else { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PL_JEDOGA_TARGET))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_PL_JEDOGA_TARGET))) { AttackStart(target); instance->SetData(DATA_JEDOGA_RESET_INITIANDS, 0); @@ -248,13 +248,14 @@ public: void OpferRufen() { - uint64 opfer = instance->GetData64(DATA_ADD_JEDOGA_INITIAND); + ObjectGuid opfer = instance->GetGuidData(DATA_ADD_JEDOGA_INITIAND); if (opfer) { Talk(TEXT_SACRIFICE_1); - instance->SetData64(DATA_ADD_JEDOGA_OPFER, opfer); - } else + instance->SetGuidData(DATA_ADD_JEDOGA_OPFER, opfer); + } + else bCanDown = true; } @@ -380,7 +381,7 @@ public: if (bWalking) { - if (Creature* boss = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_JEDOGA_SHADOWSEEKER))) + if (Creature* boss = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JEDOGA_SHADOWSEEKER))) { if (!ENSURE_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerok) ENSURE_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerokFail = true; @@ -389,12 +390,12 @@ public: boss->AI()->DoAction(ACTION_INITIAND_KILLED); } - instance->SetData64(DATA_ADD_JEDOGA_OPFER, 0); + instance->SetGuidData(DATA_ADD_JEDOGA_OPFER, ObjectGuid::Empty); bWalking = false; } if (killer->GetTypeId() == TYPEID_PLAYER) - instance->SetData64(DATA_PL_JEDOGA_TARGET, killer->GetGUID()); + instance->SetGuidData(DATA_PL_JEDOGA_TARGET, killer->GetGUID()); } void EnterCombat(Unit* /*who*/) override @@ -427,7 +428,7 @@ public: { case 1: { - Creature* boss = me->GetMap()->GetCreature(instance->GetData64(DATA_JEDOGA_SHADOWSEEKER)); + Creature* boss = me->GetMap()->GetCreature(instance->GetGuidData(DATA_JEDOGA_SHADOWSEEKER)); if (boss) { ENSURE_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerok = true; @@ -443,7 +444,7 @@ public: { if (bCheckTimer <= diff) { - if (me->GetGUID() == instance->GetData64(DATA_ADD_JEDOGA_OPFER) && !bWalking) + if (me->GetGUID() == instance->GetGuidData(DATA_ADD_JEDOGA_OPFER) && !bWalking) { me->RemoveAurasDueToSpell(SPELL_SPHERE_VISUAL); me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, false); diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp index 9cc8540342f..cf80f21d290 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp @@ -88,16 +88,14 @@ class boss_prince_taldaram : public CreatureScript boss_prince_taldaramAI(Creature* creature) : BossAI(creature, DATA_PRINCE_TALDARAM) { me->SetDisableGravity(true); - _flameSphereTargetGUID = 0; - _embraceTargetGUID = 0; _embraceTakenDamage = 0; } void Reset() override { _Reset(); - _flameSphereTargetGUID = 0; - _embraceTargetGUID = 0; + _flameSphereTargetGUID.Clear(); + _embraceTargetGUID.Clear(); _embraceTakenDamage = 0; } @@ -194,7 +192,7 @@ class boss_prince_taldaram : public CreatureScript events.ScheduleEvent(EVENT_FEEDING, 20000); break; case EVENT_FEEDING: - _embraceTargetGUID = 0; + _embraceTargetGUID.Clear(); break; default: break; @@ -213,7 +211,7 @@ class boss_prince_taldaram : public CreatureScript _embraceTakenDamage += damage; if (_embraceTakenDamage > DUNGEON_MODE<uint32>(DATA_EMBRACE_DMG, H_DATA_EMBRACE_DMG)) { - _embraceTargetGUID = 0; + _embraceTargetGUID.Clear(); me->CastStop(); } } @@ -231,7 +229,7 @@ class boss_prince_taldaram : public CreatureScript return; if (victim->GetGUID() == _embraceTargetGUID) - _embraceTargetGUID = 0; + _embraceTargetGUID.Clear(); Talk(SAY_SLAY); } @@ -263,12 +261,12 @@ class boss_prince_taldaram : public CreatureScript me->SetDisableGravity(false); me->GetMotionMaster()->MoveLand(0, me->GetHomePosition()); Talk(SAY_WARNING); - instance->HandleGameObject(instance->GetData64(DATA_PRINCE_TALDARAM_PLATFORM), true); + instance->HandleGameObject(instance->GetGuidData(DATA_PRINCE_TALDARAM_PLATFORM), true); } private: - uint64 _flameSphereTargetGUID; - uint64 _embraceTargetGUID; + ObjectGuid _flameSphereTargetGUID; + ObjectGuid _embraceTargetGUID; uint32 _embraceTakenDamage; }; @@ -288,7 +286,6 @@ class npc_prince_taldaram_flame_sphere : public CreatureScript { npc_prince_taldaram_flame_sphereAI(Creature* creature) : ScriptedAI(creature) { - _flameSphereTargetGUID = 0; } void Reset() override @@ -296,13 +293,13 @@ class npc_prince_taldaram_flame_sphere : public CreatureScript DoCast(me, SPELL_FLAME_SPHERE_SPAWN_EFFECT, true); DoCast(me, SPELL_FLAME_SPHERE_VISUAL, true); - _flameSphereTargetGUID = 0; + _flameSphereTargetGUID.Clear(); _events.Reset(); _events.ScheduleEvent(EVENT_START_MOVE, 3 * IN_MILLISECONDS); _events.ScheduleEvent(EVENT_DESPAWN, 13 * IN_MILLISECONDS); } - void SetGUID(uint64 guid, int32 /*id = 0*/) override + void SetGUID(ObjectGuid guid, int32 /*id = 0*/) override { _flameSphereTargetGUID = guid; } @@ -364,7 +361,7 @@ class npc_prince_taldaram_flame_sphere : public CreatureScript private: EventMap _events; - uint64 _flameSphereTargetGUID; + ObjectGuid _flameSphereTargetGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -385,7 +382,7 @@ class go_prince_taldaram_sphere : public GameObjectScript if (!instance) return false; - Creature* PrinceTaldaram = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_PRINCE_TALDARAM)); + Creature* PrinceTaldaram = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_PRINCE_TALDARAM)); if (PrinceTaldaram && PrinceTaldaram->IsAlive()) { go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp index 7c9ed240959..0bb2010a9d6 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp @@ -39,21 +39,10 @@ class instance_ahnkahet : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - ElderNadoxGUID = 0; - PrinceTaldaramGUID = 0; - JedogaShadowseekerGUID = 0; - AmanitarGUID = 0; - HeraldVolazjGUID = 0; - - PrinceTaldaramPlatformGUID = 0; - JedogaSacrifices = 0; - JedogaTarget = 0; SwitchTrigger = 0; SpheresState[0] = 0; SpheresState[1] = 0; - - InitiandGUIDs.clear(); } void OnCreatureCreate(Creature* creature) override @@ -90,7 +79,7 @@ class instance_ahnkahet : public InstanceMapScript case GO_PRINCE_TALDARAM_PLATFORM: PrinceTaldaramPlatformGUID = go->GetGUID(); if (GetBossState(DATA_PRINCE_TALDARAM) == DONE) - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); break; case GO_SPHERE_1: if (SpheresState[0]) @@ -142,7 +131,7 @@ class instance_ahnkahet : public InstanceMapScript SwitchTrigger = data; break; case DATA_JEDOGA_RESET_INITIANDS: - for (uint64 guid : InitiandGUIDs) + for (ObjectGuid guid : InitiandGUIDs) { if (Creature* creature = instance->GetCreature(guid)) { @@ -165,7 +154,7 @@ class instance_ahnkahet : public InstanceMapScript case DATA_SPHERE_2: return SpheresState[type - DATA_SPHERE_1]; case DATA_ALL_INITIAND_DEAD: - for (uint64 guid : InitiandGUIDs) + for (ObjectGuid guid : InitiandGUIDs) { Creature* cr = instance->GetCreature(guid); if (!cr || cr->IsAlive()) @@ -180,7 +169,7 @@ class instance_ahnkahet : public InstanceMapScript return 0; } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { switch (type) { @@ -195,7 +184,7 @@ class instance_ahnkahet : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -213,16 +202,16 @@ class instance_ahnkahet : public InstanceMapScript return PrinceTaldaramPlatformGUID; case DATA_ADD_JEDOGA_INITIAND: { - std::vector<uint64> vInitiands; - vInitiands.clear(); - for (uint64 guid : InitiandGUIDs) + GuidVector vInitiands; + vInitiands.reserve(InitiandGUIDs.size()); + for (ObjectGuid guid : InitiandGUIDs) { Creature* cr = instance->GetCreature(guid); if (cr && cr->IsAlive()) vInitiands.push_back(guid); } if (vInitiands.empty()) - return 0; + return ObjectGuid::Empty; return Trinity::Containers::SelectRandomContainerElement(vInitiands); } @@ -233,7 +222,7 @@ class instance_ahnkahet : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -246,11 +235,9 @@ class instance_ahnkahet : public InstanceMapScript case DATA_JEDOGA_SHADOWSEEKER: if (state == DONE) { - for (uint64 guid : InitiandGUIDs) - { + for (ObjectGuid guid : InitiandGUIDs) if (Creature* cr = instance->GetCreature(guid)) cr->DespawnOrUnsummon(); - } } break; default: @@ -271,17 +258,17 @@ class instance_ahnkahet : public InstanceMapScript } protected: - uint64 ElderNadoxGUID; - uint64 PrinceTaldaramGUID; - uint64 JedogaShadowseekerGUID; - uint64 AmanitarGUID; - uint64 HeraldVolazjGUID; + ObjectGuid ElderNadoxGUID; + ObjectGuid PrinceTaldaramGUID; + ObjectGuid JedogaShadowseekerGUID; + ObjectGuid AmanitarGUID; + ObjectGuid HeraldVolazjGUID; - uint64 PrinceTaldaramPlatformGUID; - uint64 JedogaSacrifices; - uint64 JedogaTarget; + ObjectGuid PrinceTaldaramPlatformGUID; + ObjectGuid JedogaSacrifices; + ObjectGuid JedogaTarget; - std::set<uint64> InitiandGUIDs; + GuidSet InitiandGUIDs; uint32 SpheresState[2]; uint8 SwitchTrigger; diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp index 49d0840f08a..1d437fb18a5 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp @@ -96,7 +96,6 @@ public: VenomancerTimer = 0; DatterTimer = 0; DelayTimer = 0; - ImpaleTarget = 0; } void Initialize() @@ -110,6 +109,7 @@ public: UndergroundPhase = 0; Channeling = false; ImpalePhase = IMPALE_PHASE_TARGET; + ImpaleTarget.Clear(); } InstanceScript* instance; @@ -130,7 +130,7 @@ public: uint32 ImpaleTimer; uint32 ImpalePhase; - uint64 ImpaleTarget; + ObjectGuid ImpaleTarget; SummonList Summons; diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp index 00aa2120225..bdb060815d2 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp @@ -441,7 +441,7 @@ class npc_watcher_gashra : public CreatureScript void JustDied(Unit* /*killer*/) override { - Creature* krikthir = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_KRIKTHIR_THE_GATEWATCHER)); + Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER); if (krikthir && krikthir->IsAlive()) krikthir->AI()->Talk(SAY_PREFIGHT); } @@ -514,7 +514,7 @@ class npc_watcher_narjil : public CreatureScript void JustDied(Unit* /*killer*/) override { - Creature* krikthir = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_KRIKTHIR_THE_GATEWATCHER)); + Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER); if (krikthir && krikthir->IsAlive()) krikthir->AI()->Talk(SAY_PREFIGHT); } @@ -591,7 +591,7 @@ class npc_watcher_silthik : public CreatureScript void JustDied(Unit* /*killer*/) override { - Creature* krikthir = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_KRIKTHIR_THE_GATEWATCHER)); + Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER); if (krikthir && krikthir->IsAlive()) krikthir->AI()->Talk(SAY_PREFIGHT); } @@ -645,9 +645,7 @@ class npc_watcher_silthik : public CreatureScript class achievement_watch_him_die : public AchievementCriteriaScript { public: - achievement_watch_him_die() : AchievementCriteriaScript("achievement_watch_him_die") - { - } + achievement_watch_him_die() : AchievementCriteriaScript("achievement_watch_him_die") { } bool OnCheck(Player* /*player*/, Unit* target) override { @@ -660,7 +658,7 @@ class achievement_watch_him_die : public AchievementCriteriaScript for (uint8 n = 0; n < 3; ++n) { - if (Creature* watcher = ObjectAccessor::GetCreature(*target, instance->GetData64(DATA_WATCHER_GASHRA + n))) + if (Creature* watcher = instance->GetCreature(DATA_WATCHER_GASHRA + n)) if (!watcher->IsAlive()) return false; } diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp index 1ae68f5a33e..1f474e5ddd5 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp @@ -28,6 +28,15 @@ DoorData const doorData[] = { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END }; +ObjectData const creatureData[] = +{ + { NPC_KRIKTHIR, DATA_KRIKTHIR_THE_GATEWATCHER }, + { NPC_WATCHER_NARJIL, DATA_WATCHER_GASHRA }, + { NPC_WATCHER_GASHRA, DATA_WATCHER_SILTHIK }, + { NPC_WATCHER_SILTHIK, DATA_WATCHER_NARJIL }, + { 0, 0 } // END +}; + class instance_azjol_nerub : public InstanceMapScript { public: @@ -40,102 +49,8 @@ class instance_azjol_nerub : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - - KrikthirGUID = 0; - HadronoxGUID = 0; - AnubarakGUID = 0; - WatcherGashraGUID = 0; - WatcherSilthikGUID = 0; - WatcherNarjilGUID = 0; - } - - void OnCreatureCreate(Creature* creature) override - { - switch (creature->GetEntry()) - { - case NPC_KRIKTHIR: - KrikthirGUID = creature->GetGUID(); - break; - case NPC_HADRONOX: - HadronoxGUID = creature->GetGUID(); - break; - case NPC_ANUBARAK: - AnubarakGUID = creature->GetGUID(); - break; - case NPC_WATCHER_NARJIL: - WatcherNarjilGUID = creature->GetGUID(); - break; - case NPC_WATCHER_GASHRA: - WatcherGashraGUID = creature->GetGUID(); - break; - case NPC_WATCHER_SILTHIK: - WatcherSilthikGUID = creature->GetGUID(); - break; - default: - break; - } - } - - void OnGameObjectCreate(GameObject* go) override - { - switch (go->GetEntry()) - { - case GO_KRIKTHIR_DOOR: - case GO_ANUBARAK_DOOR_1: - case GO_ANUBARAK_DOOR_2: - case GO_ANUBARAK_DOOR_3: - AddDoor(go, true); - break; - default: - break; - } + LoadObjectData(creatureData, nullptr); } - - void OnGameObjectRemove(GameObject* go) override - { - switch (go->GetEntry()) - { - case GO_KRIKTHIR_DOOR: - case GO_ANUBARAK_DOOR_1: - case GO_ANUBARAK_DOOR_2: - case GO_ANUBARAK_DOOR_3: - AddDoor(go, false); - break; - default: - break; - } - } - - uint64 GetData64(uint32 type) const override - { - switch (type) - { - case DATA_KRIKTHIR_THE_GATEWATCHER: - return KrikthirGUID; - case DATA_HADRONOX: - return HadronoxGUID; - case DATA_ANUBARAK: - return AnubarakGUID; - case DATA_WATCHER_GASHRA: - return WatcherGashraGUID; - case DATA_WATCHER_SILTHIK: - return WatcherSilthikGUID; - case DATA_WATCHER_NARJIL: - return WatcherNarjilGUID; - default: - break; - } - - return 0; - } - - protected: - uint64 KrikthirGUID; - uint64 HadronoxGUID; - uint64 AnubarakGUID; - uint64 WatcherGashraGUID; - uint64 WatcherSilthikGUID; - uint64 WatcherNarjilGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index 77ced6acef1..6afb56316b3 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -184,15 +184,15 @@ public: Talk(SAY_SARTHARION_DEATH); _JustDied(); - if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON))) + if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TENEBRON))) if (tenebron->IsAlive()) tenebron->DisappearAndDie(); - if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON))) + if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADRON))) if (shadron->IsAlive()) shadron->DisappearAndDie(); - if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON))) + if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VESPERON))) if (vesperon->IsAlive()) vesperon->DisappearAndDie(); } @@ -217,7 +217,7 @@ public: void DrakeRespawn() // Drakes respawning system { - if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON))) + if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TENEBRON))) { tenebron->SetHomePosition(3239.07f, 657.235f, 86.8775f, 4.74729f); if (tenebron->IsAlive()) @@ -237,7 +237,7 @@ public: } } - if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON))) + if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADRON))) { shadron->SetHomePosition(3363.06f, 525.28f, 98.362f, 4.76475f); if (shadron->IsAlive()) @@ -257,7 +257,7 @@ public: } } - if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON))) + if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VESPERON))) { vesperon->SetHomePosition(3145.68f, 520.71f, 89.7f, 4.64258f); if (vesperon->IsAlive()) @@ -286,7 +286,7 @@ public: //if at least one of the dragons are alive and are being called bool _canUseWill = false; - if (Creature* fetchTene = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON))) + if (Creature* fetchTene = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TENEBRON))) { if (fetchTene->IsAlive() && !fetchTene->GetVictim()) { @@ -304,7 +304,7 @@ public: } } - if (Creature* fetchShad = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON))) + if (Creature* fetchShad = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADRON))) { if (fetchShad->IsAlive() && !fetchShad->GetVictim()) { @@ -322,7 +322,7 @@ public: } } - if (Creature* fetchVesp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON))) + if (Creature* fetchVesp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VESPERON))) { if (fetchVesp && fetchVesp->IsAlive() && !fetchVesp->GetVictim()) { @@ -346,7 +346,7 @@ public: void CallDragon(uint32 dataId) { - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(dataId))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(dataId))) { if (temp->IsAlive() && !temp->GetVictim()) { diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp index 5e4a31d6b5e..9f55ca8dc17 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp @@ -35,10 +35,6 @@ public: void Initialize() override { SetHeaders(DataHeader); - sartharionGUID = 0; - tenebronGUID = 0; - shadronGUID = 0; - vesperonGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -83,7 +79,7 @@ public: return true; } - uint64 GetData64(uint32 Data) const override + ObjectGuid GetGuidData(uint32 Data) const override { switch (Data) { @@ -96,14 +92,14 @@ public: case DATA_VESPERON: return vesperonGUID; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 sartharionGUID; - uint64 tenebronGUID; - uint64 shadronGUID; - uint64 vesperonGUID; + ObjectGuid sartharionGUID; + ObjectGuid tenebronGUID; + ObjectGuid shadronGUID; + ObjectGuid vesperonGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp index 58d7c6141b4..f4ef869b0b4 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp @@ -359,7 +359,7 @@ struct dummy_dragonAI : public ScriptedAI return; // Twilight Revenge to main boss - if (Unit* sartharion = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SARTHARION))) + if (Unit* sartharion = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_SARTHARION))) if (sartharion->IsAlive()) { sartharion->RemoveAurasDueToSpell(spellId); @@ -635,12 +635,12 @@ class npc_acolyte_of_shadron : public CreatureScript //if not solo fight, buff main boss, else place debuff on mini-boss. both spells TARGET_SCRIPT if (instance->GetBossState(DATA_SARTHARION) == IN_PROGRESS) { - if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION))) + if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION))) sartharion->AddAura(SPELL_GIFT_OF_TWILIGTH_SAR, sartharion); } else { - if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON))) + if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADRON))) shadron->AddAura(SPELL_GIFT_OF_TWILIGTH_SHA, shadron); } @@ -649,7 +649,7 @@ class npc_acolyte_of_shadron : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON))) + if (ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADRON))) instance->SetBossState(DATA_PORTAL_OPEN, NOT_STARTED); Map* map = me->GetMap(); @@ -662,7 +662,7 @@ class npc_acolyte_of_shadron : public CreatureScript for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { - if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_SHIFT, 0) && !i->GetSource()->GetVictim()) + if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_SHIFT) && !i->GetSource()->GetVictim()) { i->GetSource()->CastSpell(i->GetSource(), SPELL_TWILIGHT_SHIFT_REMOVAL_ALL, true); i->GetSource()->CastSpell(i->GetSource(), SPELL_TWILIGHT_RESIDUE, true); @@ -673,12 +673,12 @@ class npc_acolyte_of_shadron : public CreatureScript } // not solo fight, so main boss has debuff - if (Creature* debuffTarget = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION))) + if (Creature* debuffTarget = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION))) if (debuffTarget->IsAlive() && debuffTarget->HasAura(SPELL_GIFT_OF_TWILIGTH_SAR)) debuffTarget->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGTH_SAR); // event not in progress, then solo fight and must remove debuff mini-boss - if (Creature* debuffTarget = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON))) + if (Creature* debuffTarget = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADRON))) if (debuffTarget->IsAlive() && debuffTarget->HasAura(SPELL_GIFT_OF_TWILIGTH_SHA)) debuffTarget->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGTH_SHA); } @@ -732,7 +732,7 @@ class npc_acolyte_of_vesperon : public CreatureScript me->RemoveAurasDueToSpell(SPELL_TWILIGHT_TORMENT_VESP_ACO); // remove twilight torment on Vesperon - if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON))) + if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VESPERON))) { instance->SetBossState(DATA_PORTAL_OPEN, NOT_STARTED); @@ -750,14 +750,14 @@ class npc_acolyte_of_vesperon : public CreatureScript for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { - if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_SHIFT, 0) && !i->GetSource()->GetVictim()) + if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_SHIFT) && !i->GetSource()->GetVictim()) { i->GetSource()->CastSpell(i->GetSource(), SPELL_TWILIGHT_SHIFT_REMOVAL_ALL, true); i->GetSource()->CastSpell(i->GetSource(), SPELL_TWILIGHT_RESIDUE, true); i->GetSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT); i->GetSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT_ENTER); } - if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_TORMENT_VESP, 0) && !i->GetSource()->GetVictim()) + if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_TORMENT_VESP) && !i->GetSource()->GetVictim()) i->GetSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_TORMENT_VESP); } } @@ -836,7 +836,7 @@ public: if (events.ExecuteEvent() == EVENT_TWILIGHT_EGGS) { - if (ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON))) + if (ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TENEBRON))) instance->SetBossState(DATA_PORTAL_OPEN, NOT_STARTED); SpawnWhelps(); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp index 4e02b3ad2e8..c826b8fc9ef 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp @@ -132,7 +132,7 @@ class boss_baltharus_the_warborn : public CreatureScript { _JustDied(); Talk(SAY_DEATH); - if (Creature* xerestrasza = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_XERESTRASZA))) + if (Creature* xerestrasza = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_XERESTRASZA))) xerestrasza->AI()->DoAction(ACTION_BALTHARUS_DEATH); } @@ -190,7 +190,7 @@ class boss_baltharus_the_warborn : public CreatureScript Talk(SAY_BALTHARUS_INTRO); break; case EVENT_OOC_CHANNEL: - if (Creature* channelTarget = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CRYSTAL_CHANNEL_TARGET))) + if (Creature* channelTarget = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CRYSTAL_CHANNEL_TARGET))) DoCast(channelTarget, SPELL_BARRIER_CHANNEL); events.ScheduleEvent(EVENT_OOC_CHANNEL, 7000, 0, PHASE_INTRO); break; @@ -258,7 +258,7 @@ class npc_baltharus_the_warborn_clone : public CreatureScript void JustDied(Unit* killer) override { // This is here because DamageTaken wont trigger if the damage is deadly. - if (Creature* baltharus = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_BALTHARUS_THE_WARBORN))) + if (Creature* baltharus = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_BALTHARUS_THE_WARBORN))) killer->Kill(baltharus); } diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp index e41ea8de38b..f4e36b87f7d 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp @@ -163,10 +163,10 @@ class boss_general_zarithrian : public CreatureScript { case EVENT_SUMMON_ADDS: { - if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_1))) + if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_1))) stalker1->CastSpell(stalker1, SPELL_SUMMON_FLAMECALLER, false); - if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_2))) + if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_2))) stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false); Talk(SAY_ADDS); @@ -236,7 +236,7 @@ class npc_onyx_flamecaller : public CreatureScript void IsSummonedBy(Unit* /*summoner*/) override { // Let Zarithrian count as summoner. - if (Creature* zarithrian = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_GENERAL_ZARITHRIAN))) + if (Creature* zarithrian = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_GENERAL_ZARITHRIAN))) zarithrian->AI()->JustSummoned(me); } diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index 9d44e7d884f..5a1e2adfe06 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -267,7 +267,7 @@ struct generic_halionAI : public BossAI // Rough radius, it is not an exactly perfect circle if (me->GetDistance2d(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY()) > 48.5f) { - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->EnterEvadeMode(); return false; } @@ -352,7 +352,7 @@ class boss_halion : public CreatureScript events.ScheduleEvent(EVENT_METEOR_STRIKE, urand(20000, 25000)); events.ScheduleEvent(EVENT_FIERY_COMBUSTION, urand(15000, 18000)); - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->SetData(DATA_FIGHT_PHASE, PHASE_ONE); } @@ -363,11 +363,11 @@ class boss_halion : public CreatureScript Talk(SAY_DEATH); instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); - if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TWILIGHT_HALION))) + if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TWILIGHT_HALION))) if (twilightHalion->IsAlive()) twilightHalion->Kill(twilightHalion); - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) if (controller->IsAlive()) controller->Kill(controller); } @@ -385,7 +385,7 @@ class boss_halion : public CreatureScript me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); DoCast(me, SPELL_TWILIGHT_PHASING); - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->SetData(DATA_FIGHT_PHASE, PHASE_TWO); return; } @@ -396,7 +396,7 @@ class boss_halion : public CreatureScript if (!me->InSamePhase(attacker)) return; - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->SetData(DATA_MATERIAL_DAMAGE_TAKEN, damage); } } @@ -416,8 +416,8 @@ class boss_halion : public CreatureScript case EVENT_ACTIVATE_FIREWALL: // Flame ring is activated 5 seconds after starting encounter, DOOR_TYPE_ROOM is only instant. for (uint8 i = DATA_FLAME_RING; i <= DATA_TWILIGHT_FLAME_RING; ++i) - if (GameObject* flameRing = ObjectAccessor::GetGameObject(*me, instance->GetData64(i))) - instance->HandleGameObject(instance->GetData64(DATA_FLAME_RING), false, flameRing); + if (GameObject* flameRing = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(i))) + instance->HandleGameObject(instance->GetGuidData(DATA_FLAME_RING), false, flameRing); break; case EVENT_METEOR_STRIKE: { @@ -476,7 +476,7 @@ class boss_twilight_halion : public CreatureScript { boss_twilight_halionAI(Creature* creature) : generic_halionAI(creature, DATA_TWILIGHT_HALION) { - Creature* halion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION)); + Creature* halion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION)); if (!halion) return; @@ -516,7 +516,7 @@ class boss_twilight_halion : public CreatureScript void JustDied(Unit* killer) override { - if (Creature* halion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION))) + if (Creature* halion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION))) { // Ensure looting if (me->IsDamageEnoughForLootingAndReward()) @@ -526,7 +526,7 @@ class boss_twilight_halion : public CreatureScript killer->Kill(halion); } - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) if (controller->IsAlive()) controller->Kill(controller); @@ -550,7 +550,7 @@ class boss_twilight_halion : public CreatureScript if (!me->InSamePhase(attacker)) return; - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->SetData(DATA_TWILIGHT_DAMAGE_TAKEN, damage); } } @@ -560,7 +560,7 @@ class boss_twilight_halion : public CreatureScript switch (spell->Id) { case SPELL_TWILIGHT_DIVISION: - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->DoAction(ACTION_MONITOR_CORPOREALITY); break; default: @@ -644,10 +644,10 @@ class npc_halion_controller : public CreatureScript void JustReachedHome() override { - if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_TWILIGHT_HALION))) + if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_TWILIGHT_HALION))) twilightHalion->DespawnOrUnsummon(); - if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HALION))) + if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_HALION))) { halion->AI()->SetData(DATA_EVADE_METHOD, 1); halion->AI()->EnterEvadeMode(); @@ -669,7 +669,7 @@ class npc_halion_controller : public CreatureScript { for (uint8 itr = DATA_HALION; itr <= DATA_TWILIGHT_HALION; itr++) { - Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(itr)); + Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(itr)); if (!halion) continue; @@ -721,14 +721,14 @@ class npc_halion_controller : public CreatureScript break; case EVENT_INTRO_PROGRESS_1: for (uint8 i = DATA_BURNING_TREE_3; i <= DATA_BURNING_TREE_4; ++i) - if (GameObject* tree = ObjectAccessor::GetGameObject(*me, _instance->GetData64(i))) - _instance->HandleGameObject(_instance->GetData64(i), true, tree); + if (GameObject* tree = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(i))) + _instance->HandleGameObject(_instance->GetGuidData(i), true, tree); _events.ScheduleEvent(EVENT_INTRO_PROGRESS_2, 4000); break; case EVENT_INTRO_PROGRESS_2: for (uint8 i = DATA_BURNING_TREE_1; i <= DATA_BURNING_TREE_2; ++i) - if (GameObject* tree = ObjectAccessor::GetGameObject(*me, _instance->GetData64(i))) - _instance->HandleGameObject(_instance->GetData64(i), true, tree); + if (GameObject* tree = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(i))) + _instance->HandleGameObject(_instance->GetGuidData(i), true, tree); _events.ScheduleEvent(EVENT_INTRO_PROGRESS_3, 4000); break; case EVENT_INTRO_PROGRESS_3: @@ -737,20 +737,20 @@ class npc_halion_controller : public CreatureScript halion->AI()->Talk(SAY_INTRO); break; case EVENT_TWILIGHT_MENDING: - if (ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HALION))) // Just check if physical Halion is spawned - if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_TWILIGHT_HALION))) + if (ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_HALION))) // Just check if physical Halion is spawned + if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_TWILIGHT_HALION))) twilightHalion->CastSpell((Unit*)NULL, SPELL_TWILIGHT_MENDING, true); break; case EVENT_TRIGGER_BERSERK: for (uint8 i = DATA_HALION; i <= DATA_TWILIGHT_HALION; i++) - if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(i))) + if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(i))) halion->CastSpell(halion, SPELL_BERSERK, true); break; case EVENT_SHADOW_PULSARS_SHOOT: - if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_TWILIGHT_HALION))) + if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_TWILIGHT_HALION))) twilightHalion->AI()->Talk(SAY_SPHERE_PULSE); - if (Creature* orbCarrier = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ORB_CARRIER))) + if (Creature* orbCarrier = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ORB_CARRIER))) orbCarrier->AI()->DoAction(ACTION_SHOOT); _events.ScheduleEvent(EVENT_SHADOW_PULSARS_SHOOT, 29000); @@ -861,7 +861,7 @@ class npc_halion_controller : public CreatureScript for (uint8 itr = DATA_HALION; itr <= DATA_TWILIGHT_HALION; itr++) { - if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(itr))) + if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(itr))) { halion->CastSpell(halion, GetSpell(_materialCorporealityValue, itr == DATA_TWILIGHT_HALION), true); @@ -921,7 +921,7 @@ class npc_orb_carrier : public CreatureScript /// we are having two creatures involded here. This attribute is handled clientside, meaning the client /// sends orientation update itself. Here, no packet is sent, and the creature does not rotate. By /// forcing the carrier to always be facing the rotation focus, we ensure everything works as it should. - if (Creature* rotationFocus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ORB_ROTATION_FOCUS))) + if (Creature* rotationFocus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ORB_ROTATION_FOCUS))) me->SetFacingToObject(rotationFocus); // setInFront } @@ -998,7 +998,7 @@ class npc_meteor_strike_initial : public CreatureScript return; // Let Halion Controller count as summoner - if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->JustSummoned(me); DoCast(me, SPELL_METEOR_STRIKE_COUNTDOWN); @@ -1067,7 +1067,7 @@ class npc_meteor_strike : public CreatureScript void IsSummonedBy(Unit* /*summoner*/) override { // Let Halion Controller count as summoner. - if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->JustSummoned(me); } @@ -1084,7 +1084,7 @@ class npc_meteor_strike : public CreatureScript if (Creature* flame = me->SummonCreature(NPC_METEOR_STRIKE_FLAME, pos, TEMPSUMMON_TIMED_DESPAWN, 25000)) { - if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->JustSummoned(flame); flame->CastSpell(flame, SPELL_METEOR_STRIKE_FIRE_AURA_2, true); @@ -1116,7 +1116,7 @@ class npc_combustion_consumption : public CreatureScript struct npc_combustion_consumptionAI : public ScriptedAI { npc_combustion_consumptionAI(Creature* creature) : ScriptedAI(creature), - _instance(creature->GetInstanceScript()), _summonerGuid(0) + _instance(creature->GetInstanceScript()) { SetCombatMovement(false); @@ -1145,7 +1145,7 @@ class npc_combustion_consumption : public CreatureScript void IsSummonedBy(Unit* summoner) override { // Let Halion Controller count as summoner - if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->JustSummoned(me); _summonerGuid = summoner->GetGUID(); @@ -1171,7 +1171,7 @@ class npc_combustion_consumption : public CreatureScript InstanceScript* _instance; uint32 _explosionSpell; uint32 _damageSpell; - uint64 _summonerGuid; + ObjectGuid _summonerGuid; }; CreatureAI* GetAI(Creature* creature) const override @@ -1195,7 +1195,7 @@ class npc_living_inferno : public CreatureScript me->CastSpell(me, SPELL_BLAZING_AURA, true); if (InstanceScript* instance = me->GetInstanceScript()) - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->JustSummoned(me); } @@ -1244,7 +1244,7 @@ class npc_living_ember : public CreatureScript void IsSummonedBy(Unit* /*summoner*/) override { if (InstanceScript* instance = me->GetInstanceScript()) - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HALION_CONTROLLER))) controller->AI()->JustSummoned(me); } @@ -1394,7 +1394,7 @@ class spell_halion_combustion_consumption : public SpellScriptLoader return; if (GetTarget()->HasAura(_markSpell)) - GetTarget()->RemoveAurasDueToSpell(_markSpell, 0, 0, AURA_REMOVE_BY_EXPIRE); + GetTarget()->RemoveAurasDueToSpell(_markSpell, ObjectGuid::Empty, 0, AURA_REMOVE_BY_EXPIRE); } void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1455,7 +1455,7 @@ class spell_halion_marks : public SpellScriptLoader if (Unit* dispelledUnit = GetUnitOwner()) if (dispelledUnit->HasAura(_removeSpellId)) - dispelledUnit->RemoveAurasDueToSpell(_removeSpellId, 0, 0, AURA_REMOVE_BY_EXPIRE); + dispelledUnit->RemoveAurasDueToSpell(_removeSpellId, ObjectGuid::Empty, 0, AURA_REMOVE_BY_EXPIRE); } void OnRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1558,7 +1558,7 @@ class spell_halion_twilight_realm_handlers : public SpellScriptLoader if (!target) return; - target->RemoveAurasDueToSpell(_beforeHitSpellId, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL); + target->RemoveAurasDueToSpell(_beforeHitSpellId, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL); if (InstanceScript* instance = target->GetInstanceScript()) instance->SendEncounterUnit(ENCOUNTER_FRAME_UNK7); } @@ -1654,7 +1654,7 @@ class spell_halion_twilight_cutter : public SpellScriptLoader return; Unit* caster = GetCaster(); - if (Unit* channelTarget = ObjectAccessor::GetUnit(*caster, caster->GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT))) + if (Unit* channelTarget = ObjectAccessor::GetUnit(*caster, caster->GetChannelObjectGuid())) { unitList.remove_if(TwilightCutterSelector(caster, channelTarget)); return; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp index be756a8ab36..98aed37a1d2 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp @@ -41,28 +41,12 @@ class instance_ruby_sanctum : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - BaltharusTheWarbornGUID = 0; - GeneralZarithrianGUID = 0; - SavianaRagefireGUID = 0; - HalionGUID = 0; - TwilightHalionGUID = 0; - OrbCarrierGUID = 0; - OrbRotationFocusGUID = 0; - HalionControllerGUID = 0; - CrystalChannelTargetGUID = 0; - XerestraszaGUID = 0; BaltharusSharedHealth = 0; - FlameWallsGUID = 0; - FlameRingGUID = 0; - TwilightFlameRingGUID = 0; - - memset(ZarithrianSpawnStalkerGUID, 0, 2 * sizeof(uint64)); - memset(BurningTreeGUID, 0, 4 * sizeof(uint64)); } void OnPlayerEnter(Player* /*player*/) { - if (!GetData64(DATA_HALION_CONTROLLER) && GetBossState(DATA_HALION) != DONE && GetBossState(DATA_GENERAL_ZARITHRIAN) == DONE) + if (!GetGuidData(DATA_HALION_CONTROLLER) && GetBossState(DATA_HALION) != DONE && GetBossState(DATA_GENERAL_ZARITHRIAN) == DONE) { instance->LoadGrid(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY()); if (Creature* halionController = instance->SummonCreature(NPC_HALION_CONTROLLER, HalionControllerSpawnPos)) @@ -184,7 +168,7 @@ class instance_ruby_sanctum : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -224,7 +208,7 @@ class instance_ruby_sanctum : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -305,21 +289,21 @@ class instance_ruby_sanctum : public InstanceMapScript } protected: - uint64 BaltharusTheWarbornGUID; - uint64 GeneralZarithrianGUID; - uint64 SavianaRagefireGUID; - uint64 HalionGUID; - uint64 TwilightHalionGUID; - uint64 HalionControllerGUID; - uint64 OrbCarrierGUID; - uint64 OrbRotationFocusGUID; - uint64 CrystalChannelTargetGUID; - uint64 XerestraszaGUID; - uint64 FlameWallsGUID; - uint64 ZarithrianSpawnStalkerGUID[2]; - uint64 BurningTreeGUID[4]; - uint64 FlameRingGUID; - uint64 TwilightFlameRingGUID; + ObjectGuid BaltharusTheWarbornGUID; + ObjectGuid GeneralZarithrianGUID; + ObjectGuid SavianaRagefireGUID; + ObjectGuid HalionGUID; + ObjectGuid TwilightHalionGUID; + ObjectGuid HalionControllerGUID; + ObjectGuid OrbCarrierGUID; + ObjectGuid OrbRotationFocusGUID; + ObjectGuid CrystalChannelTargetGUID; + ObjectGuid XerestraszaGUID; + ObjectGuid FlameWallsGUID; + ObjectGuid ZarithrianSpawnStalkerGUID[2]; + ObjectGuid BurningTreeGUID[4]; + ObjectGuid FlameRingGUID; + ObjectGuid TwilightFlameRingGUID; uint32 BaltharusSharedHealth; }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp index 0d2b98dbd1c..9f088a4cdfa 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp @@ -154,10 +154,10 @@ class at_baltharus_plateau : public AreaTriggerScript // Only trigger once if (InstanceScript* instance = player->GetInstanceScript()) { - if (Creature* xerestrasza = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_XERESTRASZA))) + if (Creature* xerestrasza = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_XERESTRASZA))) xerestrasza->AI()->DoAction(ACTION_INTRO_BALTHARUS); - if (Creature* baltharus = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_BALTHARUS_THE_WARBORN))) + if (Creature* baltharus = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_BALTHARUS_THE_WARBORN))) baltharus->AI()->DoAction(ACTION_INTRO_BALTHARUS); } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp index f2d2c3e3d5b..abf57ad68d1 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -269,7 +269,6 @@ public: Initialize(); instance = creature->GetInstanceScript(); - MemoryGUID = 0; creature->SetReactState(REACT_PASSIVE); creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); creature->RestoreFaction(); @@ -288,7 +287,7 @@ public: } InstanceScript* instance; - uint64 MemoryGUID; + ObjectGuid MemoryGUID; bool bHealth; bool bDone; @@ -584,7 +583,7 @@ public: break; } - Start(false, true, 0); + Start(false, true); uiWaypoint = uiType; } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp index e342b3bbfb1..60b25a649ca 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp @@ -81,7 +81,7 @@ public: struct boss_black_knightAI : public ScriptedAI { - boss_black_knightAI(Creature* creature) : ScriptedAI(creature) + boss_black_knightAI(Creature* creature) : ScriptedAI(creature), summons(creature) { Initialize(); instance = creature->GetInstanceScript(); @@ -110,7 +110,7 @@ public: InstanceScript* instance; - std::list<uint64> SummonList; + SummonList summons; bool bEventInProgress; bool bEvent; @@ -132,31 +132,22 @@ public: void Reset() override { - RemoveSummons(); + summons.DespawnAll(); me->SetDisplayId(me->GetNativeDisplayId()); me->ClearUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED); Initialize(); } - void RemoveSummons() + void JustSummoned(Creature* summon) override { - if (SummonList.empty()) - return; - - for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) - { - if (Creature* temp = ObjectAccessor::GetCreature(*me, *itr)) - if (temp) - temp->DisappearAndDie(); - } - SummonList.clear(); + summons.Summon(summon); + summon->AI()->AttackStart(me->GetVictim()); } - void JustSummoned(Creature* summon) override + void SummonedCreatureDespawn(Creature* summon) override { - SummonList.push_back(summon->GetGUID()); - summon->AI()->AttackStart(me->GetVictim()); + summons.Despawn(summon); } void UpdateAI(uint32 uiDiff) override @@ -281,7 +272,7 @@ public: uiDamage = 0; me->SetHealth(0); me->AddUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED); - RemoveSummons(); + summons.DespawnAll(); switch (uiPhase) { case PHASE_UNDEAD: @@ -367,20 +358,16 @@ public: { npc_black_knight_skeletal_gryphonAI(Creature* creature) : npc_escortAI(creature) { - Start(false, true, 0, NULL); + Start(false, true); } - void WaypointReached(uint32 /*waypointId*/) override - { - - } + void WaypointReached(uint32 /*waypointId*/) override { } void UpdateAI(uint32 uiDiff) override { npc_escortAI::UpdateAI(uiDiff); - if (!UpdateVictim()) - return; + UpdateVictim(); } }; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp index 027238be6d3..7e83c24e0dd 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp @@ -126,9 +126,9 @@ bool GrandChampionsOutVehicle(Creature* me) if (!instance) return false; - Creature* pGrandChampion1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_1)); - Creature* pGrandChampion2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_2)); - Creature* pGrandChampion3 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_3)); + Creature* pGrandChampion1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GRAND_CHAMPION_1)); + Creature* pGrandChampion2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GRAND_CHAMPION_2)); + Creature* pGrandChampion3 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GRAND_CHAMPION_3)); if (pGrandChampion1 && pGrandChampion2 && pGrandChampion3) { @@ -208,7 +208,7 @@ public: } if (uiType <= 3) - Start(false, true, 0, NULL); + Start(false, true); } void WaypointReached(uint32 waypointId) override @@ -375,11 +375,11 @@ public: { bDone = true; - if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_1)) + if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_1)) me->SetHomePosition(739.678f, 662.541f, 412.393f, 4.49f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_2)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_2)) me->SetHomePosition(746.71f, 661.02f, 411.69f, 4.6f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_3)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_3)) me->SetHomePosition(754.34f, 660.70f, 412.39f, 4.79f); EnterEvadeMode(); @@ -514,11 +514,11 @@ public: { bDone = true; - if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_1)) + if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_1)) me->SetHomePosition(739.678f, 662.541f, 412.393f, 4.49f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_2)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_2)) me->SetHomePosition(746.71f, 661.02f, 411.69f, 4.6f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_3)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_3)) me->SetHomePosition(754.34f, 660.70f, 412.39f, 4.79f); instance->SetData(BOSS_GRAND_CHAMPIONS, IN_PROGRESS); @@ -663,11 +663,11 @@ public: { bDone = true; - if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_1)) + if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_1)) me->SetHomePosition(739.678f, 662.541f, 412.393f, 4.49f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_2)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_2)) me->SetHomePosition(746.71f, 661.02f, 411.69f, 4.6f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_3)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_3)) me->SetHomePosition(754.34f, 660.70f, 412.39f, 4.79f); instance->SetData(BOSS_GRAND_CHAMPIONS, IN_PROGRESS); @@ -769,7 +769,7 @@ public: uiMultiShotTimer = 0; uiLightningArrowsTimer = 7000; - uiTargetGUID = 0; + uiTargetGUID.Clear(); bShoot = false; } @@ -783,7 +783,7 @@ public: uint32 uiMultiShotTimer; uint32 uiLightningArrowsTimer; - uint64 uiTargetGUID; + ObjectGuid uiTargetGUID; bool bShoot; bool bDone; @@ -813,11 +813,11 @@ public: { bDone = true; - if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_1)) + if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_1)) me->SetHomePosition(739.678f, 662.541f, 412.393f, 4.49f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_2)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_2)) me->SetHomePosition(746.71f, 661.02f, 411.69f, 4.6f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_3)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_3)) me->SetHomePosition(754.34f, 660.70f, 412.39f, 4.79f); instance->SetData(BOSS_GRAND_CHAMPIONS, IN_PROGRESS); @@ -965,11 +965,11 @@ public: { bDone = true; - if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_1)) + if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_1)) me->SetHomePosition(739.678f, 662.541f, 412.393f, 4.49f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_2)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_2)) me->SetHomePosition(746.71f, 661.02f, 411.69f, 4.6f); - else if (me->GetGUID() == instance->GetData64(DATA_GRAND_CHAMPION_3)) + else if (me->GetGUID() == instance->GetGuidData(DATA_GRAND_CHAMPION_3)) me->SetHomePosition(754.34f, 660.70f, 412.39f, 4.79f); instance->SetData(BOSS_GRAND_CHAMPIONS, IN_PROGRESS); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp index 021947db0f7..94bf20bc41f 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp @@ -49,18 +49,18 @@ public: uint16 uiGrandChampionsDeaths; uint8 uiArgentSoldierDeaths; - uint64 uiAnnouncerGUID; - uint64 uiMainGateGUID; - uint64 uiGrandChampionVehicle1GUID; - uint64 uiGrandChampionVehicle2GUID; - uint64 uiGrandChampionVehicle3GUID; - uint64 uiGrandChampion1GUID; - uint64 uiGrandChampion2GUID; - uint64 uiGrandChampion3GUID; - uint64 uiChampionLootGUID; - uint64 uiArgentChampionGUID; - - std::list<uint64> VehicleList; + ObjectGuid uiAnnouncerGUID; + ObjectGuid uiMainGateGUID; + ObjectGuid uiGrandChampionVehicle1GUID; + ObjectGuid uiGrandChampionVehicle2GUID; + ObjectGuid uiGrandChampionVehicle3GUID; + ObjectGuid uiGrandChampion1GUID; + ObjectGuid uiGrandChampion2GUID; + ObjectGuid uiGrandChampion3GUID; + ObjectGuid uiChampionLootGUID; + ObjectGuid uiArgentChampionGUID; + + GuidList VehicleList; std::string str_data; @@ -73,21 +73,8 @@ public: uiGrandChampionsDeaths = 0; uiArgentSoldierDeaths = 0; - uiAnnouncerGUID = 0; - uiMainGateGUID = 0; - uiGrandChampionVehicle1GUID = 0; - uiGrandChampionVehicle2GUID = 0; - uiGrandChampionVehicle3GUID = 0; - uiGrandChampion1GUID = 0; - uiGrandChampion2GUID = 0; - uiGrandChampion3GUID = 0; - uiChampionLootGUID = 0; - uiArgentChampionGUID = 0; - bDone = false; - VehicleList.clear(); - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); } @@ -183,7 +170,7 @@ public: m_auiEncounter[0] = uiData; if (uiData == IN_PROGRESS) { - for (std::list<uint64>::const_iterator itr = VehicleList.begin(); itr != VehicleList.end(); ++itr) + for (GuidList::const_iterator itr = VehicleList.begin(); itr != VehicleList.end(); ++itr) if (Creature* summon = instance->GetCreature(*itr)) summon->RemoveFromWorld(); }else if (uiData == DONE) @@ -252,7 +239,7 @@ public: return 0; } - uint64 GetData64(uint32 uiData) const override + ObjectGuid GetGuidData(uint32 uiData) const override { switch (uiData) { @@ -264,10 +251,10 @@ public: case DATA_GRAND_CHAMPION_3: return uiGrandChampion3GUID; } - return 0; + return ObjectGuid::Empty; } - void SetData64(uint32 uiType, uint64 uiData) override + void SetGuidData(uint32 uiType, ObjectGuid uiData) override { switch (uiType) { diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp index f601f06e16c..a66096ae615 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp @@ -80,14 +80,6 @@ public: uiPhase = 0; uiTimer = 0; - uiVehicle1GUID = 0; - uiVehicle2GUID = 0; - uiVehicle3GUID = 0; - - Champion1List.clear(); - Champion2List.clear(); - Champion3List.clear(); - me->SetReactState(REACT_PASSIVE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); @@ -111,13 +103,13 @@ public: uint32 uiPhase; uint32 uiTimer; - uint64 uiVehicle1GUID; - uint64 uiVehicle2GUID; - uint64 uiVehicle3GUID; + ObjectGuid uiVehicle1GUID; + ObjectGuid uiVehicle2GUID; + ObjectGuid uiVehicle3GUID; - std::list<uint64> Champion1List; - std::list<uint64> Champion2List; - std::list<uint64> Champion3List; + GuidList Champion1List; + GuidList Champion2List; + GuidList Champion3List; void NextStep(uint32 uiTimerStep, bool bNextStep = true, uint8 uiPhaseStep = 0) { @@ -138,14 +130,14 @@ public: break; case DATA_IN_POSITION: //movement done. me->GetMotionMaster()->MovePoint(1, 735.81f, 661.92f, 412.39f); - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MAIN_GATE))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_MAIN_GATE))) instance->HandleGameObject(go->GetGUID(), false); NextStep(10000, false, 3); break; case DATA_LESSER_CHAMPIONS_DEFEATED: { ++uiLesserChampions; - std::list<uint64> TempList; + GuidList TempList; if (uiLesserChampions == 3 || uiLesserChampions == 6) { switch (uiLesserChampions) @@ -158,7 +150,7 @@ public: break; } - for (std::list<uint64>::const_iterator itr = TempList.begin(); itr != TempList.end(); ++itr) + for (GuidList::const_iterator itr = TempList.begin(); itr != TempList.end(); ++itr) if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr)) AggroAllPlayers(summon); }else if (uiLesserChampions == 9) @@ -230,36 +222,36 @@ public: case 1: { uiVehicle1GUID = pBoss->GetGUID(); - uint64 uiGrandChampionBoss1 = 0; + ObjectGuid uiGrandChampionBoss1; if (Vehicle* pVehicle = pBoss->GetVehicleKit()) if (Unit* unit = pVehicle->GetPassenger(0)) uiGrandChampionBoss1 = unit->GetGUID(); - instance->SetData64(DATA_GRAND_CHAMPION_VEHICLE_1, uiVehicle1GUID); - instance->SetData64(DATA_GRAND_CHAMPION_1, uiGrandChampionBoss1); + instance->SetGuidData(DATA_GRAND_CHAMPION_VEHICLE_1, uiVehicle1GUID); + instance->SetGuidData(DATA_GRAND_CHAMPION_1, uiGrandChampionBoss1); pBoss->AI()->SetData(1, 0); break; } case 2: { uiVehicle2GUID = pBoss->GetGUID(); - uint64 uiGrandChampionBoss2 = 0; + ObjectGuid uiGrandChampionBoss2; if (Vehicle* pVehicle = pBoss->GetVehicleKit()) if (Unit* unit = pVehicle->GetPassenger(0)) uiGrandChampionBoss2 = unit->GetGUID(); - instance->SetData64(DATA_GRAND_CHAMPION_VEHICLE_2, uiVehicle2GUID); - instance->SetData64(DATA_GRAND_CHAMPION_2, uiGrandChampionBoss2); + instance->SetGuidData(DATA_GRAND_CHAMPION_VEHICLE_2, uiVehicle2GUID); + instance->SetGuidData(DATA_GRAND_CHAMPION_2, uiGrandChampionBoss2); pBoss->AI()->SetData(2, 0); break; } case 3: { uiVehicle3GUID = pBoss->GetGUID(); - uint64 uiGrandChampionBoss3 = 0; + ObjectGuid uiGrandChampionBoss3; if (Vehicle* pVehicle = pBoss->GetVehicleKit()) if (Unit* unit = pVehicle->GetPassenger(0)) uiGrandChampionBoss3 = unit->GetGUID(); - instance->SetData64(DATA_GRAND_CHAMPION_VEHICLE_3, uiVehicle3GUID); - instance->SetData64(DATA_GRAND_CHAMPION_3, uiGrandChampionBoss3); + instance->SetGuidData(DATA_GRAND_CHAMPION_VEHICLE_3, uiVehicle3GUID); + instance->SetGuidData(DATA_GRAND_CHAMPION_3, uiGrandChampionBoss3); pBoss->AI()->SetData(3, 0); break; } @@ -414,7 +406,7 @@ public: case 3: if (!Champion1List.empty()) { - for (std::list<uint64>::const_iterator itr = Champion1List.begin(); itr != Champion1List.end(); ++itr) + for (GuidList::const_iterator itr = Champion1List.begin(); itr != Champion1List.end(); ++itr) if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr)) AggroAllPlayers(summon); NextStep(0, false); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp index 2f29e03a2f2..d5bd2bcae7e 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp @@ -196,7 +196,7 @@ class boss_anubarak_trial : public CreatureScript std::list<Creature*> FrostSphereList; me->GetCreatureListWithEntryInGrid(FrostSphereList, NPC_FROST_SPHERE, 150.0f); if (!FrostSphereList.empty()) - for (std::list<Creature*>::iterator itr = FrostSphereList.begin(); itr != FrostSphereList.end(); itr++) + for (std::list<Creature*>::iterator itr = FrostSphereList.begin(); itr != FrostSphereList.end(); ++itr) (*itr)->DespawnOrUnsummon(); _burrowGUID.clear(); @@ -243,7 +243,7 @@ class boss_anubarak_trial : public CreatureScript me->GetCreatureListWithEntryInGrid(AddList, NPC_FROST_SPHERE, 150.0f); me->GetCreatureListWithEntryInGrid(AddList, NPC_BURROWER, 150.0f); if (!AddList.empty()) - for (std::list<Creature*>::iterator itr = AddList.begin(); itr != AddList.end(); itr++) + for (std::list<Creature*>::iterator itr = AddList.begin(); itr != AddList.end(); ++itr) (*itr)->DespawnOrUnsummon(); } @@ -346,7 +346,7 @@ class boss_anubarak_trial : public CreatureScript /* WORKAROUND * - The correct implementation is more likely the comment below but it needs spell knowledge */ - std::list<uint64>::iterator i = _burrowGUID.begin(); + GuidList::iterator i = _burrowGUID.begin(); uint32 at = urand(0, _burrowGUID.size()-1); for (uint32 k = 0; k < at; k++) ++i; @@ -421,8 +421,8 @@ class boss_anubarak_trial : public CreatureScript } private: - std::list<uint64> _burrowGUID; - uint64 _sphereGUID[6]; + GuidList _burrowGUID; + ObjectGuid _sphereGUID[6]; bool _intro; bool _reachedPhase3; }; @@ -458,7 +458,7 @@ class npc_swarm_scarab : public CreatureScript DoCast(me, SPELL_ACID_MANDIBLE); me->SetInCombatWithZone(); if (me->IsInCombat()) - if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK))) + if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_ANUBARAK))) Anubarak->AI()->JustSummoned(me); } @@ -538,7 +538,7 @@ class npc_nerubian_burrower : public CreatureScript DoCast(me, SPELL_AWAKENED); me->SetInCombatWithZone(); if (me->IsInCombat()) - if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK))) + if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_ANUBARAK))) Anubarak->AI()->JustSummoned(me); } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index 3d59f24b6dd..562e67f4b6a 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -483,7 +483,7 @@ class boss_toc_champion_controller : public CreatureScript SummonChampions((Team)uiData); break; case 1: - for (std::list<uint64>::iterator i = _summons.begin(); i != _summons.end(); ++i) + for (SummonList::iterator i = _summons.begin(); i != _summons.end(); ++i) { if (Creature* temp = ObjectAccessor::GetCreature(*me, *i)) { @@ -565,7 +565,7 @@ struct boss_faction_championsAI : public BossAI void JustReachedHome() override { - if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) + if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetGuidData(NPC_CHAMPIONS_CONTROLLER))) pChampionController->AI()->SetData(2, FAIL); me->DespawnOrUnsummon(); } @@ -615,7 +615,7 @@ struct boss_faction_championsAI : public BossAI void JustDied(Unit* /*killer*/) override { if (_aiType != AI_PET) - if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) + if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetGuidData(NPC_CHAMPIONS_CONTROLLER))) pChampionController->AI()->SetData(2, DONE); } @@ -623,7 +623,7 @@ struct boss_faction_championsAI : public BossAI { DoCast(me, SPELL_ANTI_AOE, true); _EnterCombat(); - if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) + if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetGuidData(NPC_CHAMPIONS_CONTROLLER))) pChampionController->AI()->SetData(2, IN_PROGRESS); } @@ -640,11 +640,11 @@ struct boss_faction_championsAI : public BossAI if (TeamInInstance == ALLIANCE) { - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_VARIAN))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_VARIAN))) temp->AI()->Talk(SAY_KILL_PLAYER); } else - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GARROSH))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_GARROSH))) temp->AI()->Talk(SAY_KILL_PLAYER); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp index f4112b7a43b..771151632ff 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -171,7 +171,7 @@ class boss_gormok : public CreatureScript void EnterEvadeMode() override { - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); ScriptedAI::EnterEvadeMode(); } @@ -183,7 +183,7 @@ class boss_gormok : public CreatureScript switch (pointId) { case 0: - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); me->SetInCombatWithZone(); @@ -200,7 +200,7 @@ class boss_gormok : public CreatureScript void JustReachedHome() override { - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); instance->SetData(TYPE_NORTHREND_BEASTS, FAIL); me->DespawnOrUnsummon(); @@ -294,7 +294,6 @@ class npc_snobold_vassal : public CreatureScript { npc_snobold_vassalAI(Creature* creature) : ScriptedAI(creature) { - _targetGUID = 0; _targetDied = false; _instance = creature->GetInstanceScript(); _instance->SetData(DATA_SNOBOLD_COUNT, INCREASE); @@ -305,7 +304,7 @@ class npc_snobold_vassal : public CreatureScript _events.ScheduleEvent(EVENT_BATTER, 5*IN_MILLISECONDS); _events.ScheduleEvent(EVENT_HEAD_CRACK, 25*IN_MILLISECONDS); - _targetGUID = 0; + _targetGUID.Clear(); _targetDied = false; //Workaround for Snobold @@ -378,7 +377,7 @@ class npc_snobold_vassal : public CreatureScript { if (!target->IsAlive()) { - Unit* gormok = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_GORMOK)); + Unit* gormok = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_GORMOK)); if (gormok && gormok->IsAlive()) { SetCombatMovement(false); @@ -442,7 +441,7 @@ class npc_snobold_vassal : public CreatureScript private: EventMap _events; InstanceScript* _instance; - uint64 _targetGUID; + ObjectGuid _targetGUID; bool _targetDied; }; @@ -520,7 +519,7 @@ struct boss_jormungarAI : public BossAI void JustDied(Unit* /*killer*/) override { - if (Creature* otherWorm = ObjectAccessor::GetCreature(*me, instance->GetData64(OtherWormEntry))) + if (Creature* otherWorm = ObjectAccessor::GetCreature(*me, instance->GetGuidData(OtherWormEntry))) { if (!otherWorm->IsAlive()) { @@ -753,7 +752,7 @@ class boss_dreadscale : public CreatureScript switch (pointId) { case 0: - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); me->SetInCombatWithZone(); @@ -765,13 +764,13 @@ class boss_dreadscale : public CreatureScript void EnterEvadeMode() override { - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); boss_jormungarAI::EnterEvadeMode(); } void JustReachedHome() override { - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); boss_jormungarAI::JustReachedHome(); } @@ -877,7 +876,7 @@ class boss_icehowl : public CreatureScript _movementStarted = false; _movementFinish = false; _trampleCast = false; - _trampleTargetGUID = 0; + _trampleTargetGUID.Clear(); _trampleTargetX = 0; _trampleTargetY = 0; _trampleTargetZ = 0; @@ -926,7 +925,7 @@ class boss_icehowl : public CreatureScript _movementFinish = true; break; case 2: - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); me->SetInCombatWithZone(); @@ -938,13 +937,13 @@ class boss_icehowl : public CreatureScript void EnterEvadeMode() override { - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); ScriptedAI::EnterEvadeMode(); } void JustReachedHome() override { - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); instance->SetData(TYPE_NORTHREND_BEASTS, FAIL); me->DespawnOrUnsummon(); } @@ -1077,7 +1076,7 @@ class boss_icehowl : public CreatureScript if (Player* target = ObjectAccessor::GetPlayer(*me, _trampleTargetGUID)) Talk(EMOTE_TRAMPLE_START, target); me->GetMotionMaster()->MoveCharge(_trampleTargetX, _trampleTargetY, _trampleTargetZ, 42, 1); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); _stage = 5; break; case 5: @@ -1134,7 +1133,7 @@ class boss_icehowl : public CreatureScript private: float _trampleTargetX, _trampleTargetY, _trampleTargetZ; - uint64 _trampleTargetGUID; + ObjectGuid _trampleTargetGUID; bool _movementStarted; bool _movementFinish; bool _trampleCast; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp index 1118c1ec27b..a645f3ca666 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -267,7 +267,7 @@ struct boss_twin_baseAI : public BossAI // Called when sister pointer needed Creature* GetSister() { - return ObjectAccessor::GetCreature((*me), instance->GetData64(SisterNpcId)); + return ObjectAccessor::GetCreature((*me), instance->GetGuidData(SisterNpcId)); } void EnterCombat(Unit* /*who*/) override @@ -447,13 +447,13 @@ class boss_fjola : public CreatureScript void EnterEvadeMode() override { - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); boss_twin_baseAI::EnterEvadeMode(); } void JustReachedHome() override { - instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR)); + instance->DoUseDoorOrButton(instance->GetGuidData(GO_MAIN_GATE_DOOR)); boss_twin_baseAI::JustReachedHome(); } @@ -864,7 +864,7 @@ class spell_power_of_the_twins : public SpellScriptLoader { if (InstanceScript* instance = GetCaster()->GetInstanceScript()) { - if (Creature* Valk = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(GetCaster()->GetEntry()))) + if (Creature* Valk = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(GetCaster()->GetEntry()))) ENSURE_AI(boss_twin_baseAI, Valk->AI())->EnableDualWield(true); } } @@ -873,7 +873,7 @@ class spell_power_of_the_twins : public SpellScriptLoader { if (InstanceScript* instance = GetCaster()->GetInstanceScript()) { - if (Creature* Valk = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(GetCaster()->GetEntry()))) + if (Creature* Valk = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(GetCaster()->GetEntry()))) ENSURE_AI(boss_twin_baseAI, Valk->AI())->EnableDualWield(false); } } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp index 949ee652d81..30d831da30c 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp @@ -45,29 +45,6 @@ class instance_trial_of_the_crusader : public InstanceMapScript MistressOfPainCount = 0; TributeToImmortalityEligible = true; NeedSave = false; - - TirionFordringGUID = 0; - BarrentGUID = 0; - TirionGUID = 0; - FizzlebangGUID = 0; - GarroshGUID = 0; - VarianGUID = 0; - GormokGUID = 0; - AcidmawGUID = 0; - DreadscaleGUID = 0; - IcehowlGUID = 0; - JaraxxusGUID = 0; - ChampionsControllerGUID = 0; - DarkbaneGUID = 0; - LightbaneGUID = 0; - AnubarakGUID = 0; - - TributeChestGUID = 0; - MainGateDoorGUID = 0; - EastPortcullisGUID = 0; - WebDoorGUID = 0; - CrusadersCacheGUID = 0; - FloorGUID = 0; } bool IsEncounterInProgress() const override @@ -96,15 +73,15 @@ class instance_trial_of_the_crusader : public InstanceMapScript // make sure Anub'arak isnt missing and floor is destroyed after a crash if (GetBossState(BOSS_LICH_KING) == DONE && TrialCounter && GetBossState(BOSS_ANUBARAK) != DONE) { - if (Creature* anubArak = ObjectAccessor::GetCreature(*player, GetData64(NPC_ANUBARAK))) + if (Creature* anubArak = ObjectAccessor::GetCreature(*player, GetGuidData(NPC_ANUBARAK))) anubArak = player->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); - if (GameObject* floor = ObjectAccessor::GetGameObject(*player, GetData64(GO_ARGENT_COLISEUM_FLOOR))) + if (GameObject* floor = ObjectAccessor::GetGameObject(*player, GetGuidData(GO_ARGENT_COLISEUM_FLOOR))) floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); } } - void OpenDoor(uint64 guid) + void OpenDoor(ObjectGuid guid) { if (!guid) return; @@ -113,7 +90,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); } - void CloseDoor(uint64 guid) + void CloseDoor(ObjectGuid guid) { if (!guid) return; @@ -173,6 +150,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript break; case NPC_ANUBARAK: AnubarakGUID = creature->GetGUID(); + creature->SetRespawnDelay(7 * DAY); break; default: break; @@ -355,13 +333,13 @@ class instance_trial_of_the_crusader : public InstanceMapScript if (IsEncounterInProgress()) { - CloseDoor(GetData64(GO_EAST_PORTCULLIS)); - CloseDoor(GetData64(GO_WEB_DOOR)); + CloseDoor(GetGuidData(GO_EAST_PORTCULLIS)); + CloseDoor(GetGuidData(GO_WEB_DOOR)); } else { - OpenDoor(GetData64(GO_EAST_PORTCULLIS)); - OpenDoor(GetData64(GO_WEB_DOOR)); + OpenDoor(GetGuidData(GO_EAST_PORTCULLIS)); + OpenDoor(GetGuidData(GO_WEB_DOOR)); } if (type < MAX_ENCOUNTERS) @@ -381,10 +359,10 @@ class instance_trial_of_the_crusader : public InstanceMapScript // if theres no more attemps allowed if (!TrialCounter) { - if (Unit* announcer = instance->GetCreature(GetData64(NPC_BARRENT))) + if (Unit* announcer = instance->GetCreature(GetGuidData(NPC_BARRENT))) announcer->ToCreature()->DespawnOrUnsummon(); - if (Creature* anubArak = instance->GetCreature(GetData64(NPC_ANUBARAK))) + if (Creature* anubArak = instance->GetCreature(GetGuidData(NPC_ANUBARAK))) anubArak->DespawnOrUnsummon(); } } @@ -395,7 +373,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript if (state == DONE || NeedSave) { - if (Unit* announcer = instance->GetCreature(GetData64(NPC_BARRENT))) + if (Unit* announcer = instance->GetCreature(GetGuidData(NPC_BARRENT))) announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); Save(); } @@ -472,7 +450,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -520,7 +498,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } uint32 GetData(uint32 type) const override @@ -742,29 +720,29 @@ class instance_trial_of_the_crusader : public InstanceMapScript bool NeedSave; std::string SaveDataBuffer; - uint64 BarrentGUID; - uint64 TirionGUID; - uint64 TirionFordringGUID; - uint64 FizzlebangGUID; - uint64 GarroshGUID; - uint64 VarianGUID; - - uint64 GormokGUID; - uint64 AcidmawGUID; - uint64 DreadscaleGUID; - uint64 IcehowlGUID; - uint64 JaraxxusGUID; - uint64 ChampionsControllerGUID; - uint64 DarkbaneGUID; - uint64 LightbaneGUID; - uint64 AnubarakGUID; - - uint64 CrusadersCacheGUID; - uint64 FloorGUID; - uint64 TributeChestGUID; - uint64 MainGateDoorGUID; - uint64 EastPortcullisGUID; - uint64 WebDoorGUID; + ObjectGuid BarrentGUID; + ObjectGuid TirionGUID; + ObjectGuid TirionFordringGUID; + ObjectGuid FizzlebangGUID; + ObjectGuid GarroshGUID; + ObjectGuid VarianGUID; + + ObjectGuid GormokGUID; + ObjectGuid AcidmawGUID; + ObjectGuid DreadscaleGUID; + ObjectGuid IcehowlGUID; + ObjectGuid JaraxxusGUID; + ObjectGuid ChampionsControllerGUID; + ObjectGuid DarkbaneGUID; + ObjectGuid LightbaneGUID; + ObjectGuid AnubarakGUID; + + ObjectGuid CrusadersCacheGUID; + ObjectGuid FloorGUID; + ObjectGuid TributeChestGUID; + ObjectGuid MainGateDoorGUID; + ObjectGuid EastPortcullisGUID; + ObjectGuid WebDoorGUID; // Achievement stuff uint32 NotOneButTwoJormungarsTimer; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp index b068b458073..d8ec322c57c 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp @@ -173,7 +173,7 @@ class npc_announcer_toc10 : public CreatureScript else if (instance->GetBossState(BOSS_JARAXXUS) != DONE) { // if Jaraxxus is spawned, but the raid wiped - if (Creature* jaraxxus = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_JARAXXUS))) + if (Creature* jaraxxus = ObjectAccessor::GetCreature(*player, instance->GetGuidData(NPC_JARAXXUS))) { jaraxxus->RemoveAurasDueToSpell(SPELL_JARAXXUS_CHAINS); jaraxxus->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -201,13 +201,13 @@ class npc_announcer_toc10 : public CreatureScript } else if (instance->GetBossState(BOSS_LICH_KING) != DONE) { - if (GameObject* floor = ObjectAccessor::GetGameObject(*player, instance->GetData64(GO_ARGENT_COLISEUM_FLOOR))) + if (GameObject* floor = ObjectAccessor::GetGameObject(*player, instance->GetGuidData(GO_ARGENT_COLISEUM_FLOOR))) floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); creature->CastSpell(creature, SPELL_CORPSE_TELEPORT, false); creature->CastSpell(creature, SPELL_DESTROY_FLOOR_KNOCKUP, false); - Creature* anubArak = ObjectAccessor::GetCreature(*creature, instance->GetData64(NPC_ANUBARAK)); + Creature* anubArak = ObjectAccessor::GetCreature(*creature, instance->GetGuidData(NPC_ANUBARAK)); if (!anubArak || !anubArak->IsAlive()) anubArak = creature->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); @@ -318,7 +318,7 @@ class boss_lich_king_toc : public CreatureScript break; case 5080: { - if (GameObject* go = ObjectAccessor::GetGameObject(*me, _instance->GetData64(GO_ARGENT_COLISEUM_FLOOR))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(GO_ARGENT_COLISEUM_FLOOR))) { go->SetDisplayId(DISPLAYID_DESTROYED_FLOOR); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_NODESPAWN); @@ -329,7 +329,7 @@ class boss_lich_king_toc : public CreatureScript me->CastSpell(me, SPELL_DESTROY_FLOOR_KNOCKUP, false); _instance->SetBossState(BOSS_LICH_KING, DONE); - Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK)); + Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_ANUBARAK)); if (!temp || !temp->IsAlive()) temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); @@ -368,21 +368,14 @@ class npc_fizzlebang_toc : public CreatureScript { npc_fizzlebang_tocAI(Creature* creature) : ScriptedAI(creature), _summons(me) { - Initialize(); _instance = me->GetInstanceScript(); - _triggerGUID = 0; - } - - void Initialize() - { - _portalGUID = 0; } void JustDied(Unit* killer) override { Talk(SAY_STAGE_1_06, killer); _instance->SetData(TYPE_EVENT, 1180); - if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_JARAXXUS))) { temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); temp->SetReactState(REACT_AGGRESSIVE); @@ -392,8 +385,8 @@ class npc_fizzlebang_toc : public CreatureScript void Reset() override { + _portalGUID.Clear(); me->SetWalk(true); - Initialize(); me->GetMotionMaster()->MovePoint(1, ToCCommonLoc[10].GetPositionX(), ToCCommonLoc[10].GetPositionY()-60, ToCCommonLoc[10].GetPositionZ()); } @@ -406,7 +399,7 @@ class npc_fizzlebang_toc : public CreatureScript { case 1: me->SetWalk(false); - _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR)); + _instance->DoUseDoorOrButton(_instance->GetGuidData(GO_MAIN_GATE_DOOR)); _instance->SetData(TYPE_EVENT, 1120); _instance->SetData(TYPE_EVENT_TIMER, 1*IN_MILLISECONDS); break; @@ -489,7 +482,7 @@ class npc_fizzlebang_toc : public CreatureScript _updateTimer = 5*IN_MILLISECONDS; break; case 1142: - if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_JARAXXUS))) temp->SetTarget(me->GetGUID()); if (Creature* pTrigger = ObjectAccessor::GetCreature(*me, _triggerGUID)) pTrigger->DespawnOrUnsummon(); @@ -499,13 +492,13 @@ class npc_fizzlebang_toc : public CreatureScript _updateTimer = 10*IN_MILLISECONDS; break; case 1144: - if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_JARAXXUS))) temp->AI()->Talk(SAY_STAGE_1_05); _instance->SetData(TYPE_EVENT, 1150); _updateTimer = 5*IN_MILLISECONDS; break; case 1150: - if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_JARAXXUS))) { //1-shot Fizzlebang temp->CastSpell(me, 67888, false); @@ -526,8 +519,8 @@ class npc_fizzlebang_toc : public CreatureScript private: InstanceScript* _instance; SummonList _summons; - uint64 _portalGUID; - uint64 _triggerGUID; + ObjectGuid _portalGUID; + ObjectGuid _triggerGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -581,7 +574,7 @@ class npc_tirion_toc : public CreatureScript me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); if (_instance->GetBossState(BOSS_BEASTS) != DONE) { - _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR)); + _instance->DoUseDoorOrButton(_instance->GetGuidData(GO_MAIN_GATE_DOOR)); if (Creature* temp = me->SummonCreature(NPC_GORMOK, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30*IN_MILLISECONDS)) { @@ -603,7 +596,7 @@ class npc_tirion_toc : public CreatureScript Talk(SAY_STAGE_0_04); if (_instance->GetBossState(BOSS_BEASTS) != DONE) { - _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR)); + _instance->DoUseDoorOrButton(_instance->GetGuidData(GO_MAIN_GATE_DOOR)); if (Creature* temp = me->SummonCreature(NPC_DREADSCALE, ToCSpawnLoc[1].GetPositionX(), ToCSpawnLoc[1].GetPositionY(), ToCSpawnLoc[1].GetPositionZ(), 5, TEMPSUMMON_MANUAL_DESPAWN)) { temp->GetMotionMaster()->MovePoint(0, ToCCommonLoc[5].GetPositionX(), ToCCommonLoc[5].GetPositionY(), ToCCommonLoc[5].GetPositionZ()); @@ -621,7 +614,7 @@ class npc_tirion_toc : public CreatureScript Talk(SAY_STAGE_0_05); if (_instance->GetBossState(BOSS_BEASTS) != DONE) { - _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR)); + _instance->DoUseDoorOrButton(_instance->GetGuidData(GO_MAIN_GATE_DOOR)); if (Creature* temp = me->SummonCreature(NPC_ICEHOWL, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5, TEMPSUMMON_DEAD_DESPAWN)) { temp->GetMotionMaster()->MovePoint(2, ToCCommonLoc[5].GetPositionX(), ToCCommonLoc[5].GetPositionY(), ToCCommonLoc[5].GetPositionZ()); @@ -649,7 +642,7 @@ class npc_tirion_toc : public CreatureScript case 1010: Talk(SAY_STAGE_1_01); _updateTimer = 7*IN_MILLISECONDS; - _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR)); + _instance->DoUseDoorOrButton(_instance->GetGuidData(GO_MAIN_GATE_DOOR)); me->SummonCreature(NPC_FIZZLEBANG, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 2, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); _instance->SetData(TYPE_EVENT, 0); break; @@ -703,7 +696,7 @@ class npc_tirion_toc : public CreatureScript _instance->SetData(TYPE_EVENT, 3092); break; case 3092: - if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) + if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), _instance->GetGuidData(NPC_CHAMPIONS_CONTROLLER))) pChampionController->AI()->SetData(1, NOT_STARTED); _instance->SetData(TYPE_EVENT, 3095); break; @@ -738,13 +731,13 @@ class npc_tirion_toc : public CreatureScript _instance->SetData(TYPE_EVENT, 4015); break; case 4015: - _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR)); - if (Creature* temp = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_LIGHTBANE))) + _instance->DoUseDoorOrButton(_instance->GetGuidData(GO_MAIN_GATE_DOOR)); + if (Creature* temp = ObjectAccessor::GetCreature((*me), _instance->GetGuidData(NPC_LIGHTBANE))) { temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[8].GetPositionX(), ToCCommonLoc[8].GetPositionY(), ToCCommonLoc[8].GetPositionZ()); temp->SetVisible(true); } - if (Creature* temp = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_DARKBANE))) + if (Creature* temp = ObjectAccessor::GetCreature((*me), _instance->GetGuidData(NPC_DARKBANE))) { temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[9].GetPositionX(), ToCCommonLoc[9].GetPositionY(), ToCCommonLoc[9].GetPositionZ()); temp->SetVisible(true); @@ -753,7 +746,7 @@ class npc_tirion_toc : public CreatureScript _instance->SetData(TYPE_EVENT, 4016); break; case 4016: - _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR)); + _instance->DoUseDoorOrButton(_instance->GetGuidData(GO_MAIN_GATE_DOOR)); _instance->SetData(TYPE_EVENT, 4017); break; case 4040: @@ -783,7 +776,7 @@ class npc_tirion_toc : public CreatureScript _instance->SetData(TYPE_EVENT, 6005); break; case 6005: - if (Creature* tirionFordring = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_TIRION_FORDRING))) + if (Creature* tirionFordring = ObjectAccessor::GetCreature((*me), _instance->GetGuidData(NPC_TIRION_FORDRING))) tirionFordring->AI()->Talk(SAY_STAGE_4_06); _updateTimer = 20*IN_MILLISECONDS; _instance->SetData(TYPE_EVENT, 6010); @@ -791,7 +784,7 @@ class npc_tirion_toc : public CreatureScript case 6010: if (IsHeroic()) { - if (Creature* tirionFordring = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_TIRION_FORDRING))) + if (Creature* tirionFordring = ObjectAccessor::GetCreature((*me), _instance->GetGuidData(NPC_TIRION_FORDRING))) tirionFordring->AI()->Talk(SAY_STAGE_4_07); _updateTimer = 1*MINUTE*IN_MILLISECONDS; _instance->SetBossState(BOSS_ANUBARAK, SPECIAL); diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp index 694e502e508..9c6d9082db4 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp @@ -211,7 +211,7 @@ class npc_drakkari_gutripper : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KING_DRED))) + if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KING_DRED))) Dred->AI()->DoAction(ACTION_RAPTOR_KILLED); } }; @@ -267,7 +267,7 @@ class npc_drakkari_scytheclaw : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KING_DRED))) + if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KING_DRED))) Dred->AI()->DoAction(ACTION_RAPTOR_KILLED); } }; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp index 6b26143745b..6c3b4378bec 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp @@ -216,7 +216,7 @@ public: void SetSummonerStatus(bool active) { for (uint8 i = 0; i < 4; i++) - if (uint64 guid = instance->GetData64(summoners[i].data)) + if (ObjectGuid guid = instance->GetGuidData(summoners[i].data)) if (Creature* crystalChannelTarget = ObjectAccessor::GetCreature(*me, guid)) { if (active) @@ -229,7 +229,7 @@ public: void SetCrystalsStatus(bool active) { for (uint8 i = 0; i < 4; i++) - if (uint64 guid = instance->GetData64(DATA_NOVOS_CRYSTAL_1 + i)) + if (ObjectGuid guid = instance->GetGuidData(DATA_NOVOS_CRYSTAL_1 + i)) if (GameObject* crystal = ObjectAccessor::GetGameObject(*me, guid)) SetCrystalStatus(crystal, active); } @@ -249,7 +249,7 @@ public: void CrystalHandlerDied() { for (uint8 i = 0; i < 4; i++) - if (uint64 guid = instance->GetData64(DATA_NOVOS_CRYSTAL_1 + i)) + if (ObjectGuid guid = instance->GetGuidData(DATA_NOVOS_CRYSTAL_1 + i)) if (GameObject* crystal = ObjectAccessor::GetGameObject(*me, guid)) if (crystal->GetGoState() == GO_STATE_ACTIVE) { @@ -266,7 +266,7 @@ public: if (IsHeroic()) events.ScheduleEvent(EVENT_SUMMON_MINIONS, 15000); } - else if (uint64 guid = instance->GetData64(DATA_NOVOS_SUMMONER_4)) + else if (ObjectGuid guid = instance->GetGuidData(DATA_NOVOS_SUMMONER_4)) if (Creature* crystalChannelTarget = ObjectAccessor::GetCreature(*me, guid)) crystalChannelTarget->AI()->SetData(SPELL_SUMMON_CRYSTAL_HANDLER, 15000); } @@ -330,7 +330,7 @@ public: void JustSummoned(Creature* summon) override { if (InstanceScript* instance = me->GetInstanceScript()) - if (uint64 guid = instance->GetData64(DATA_NOVOS)) + if (ObjectGuid guid = instance->GetGuidData(DATA_NOVOS)) if (Creature* novos = ObjectAccessor::GetCreature(*me, guid)) novos->AI()->JustSummoned(summon); diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp index a8f083c97ee..b91ca893955 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp @@ -135,7 +135,7 @@ class boss_trollgore : public CreatureScript break; case EVENT_SPAWN: for (uint8 i = 0; i < 3; ++i) - if (Creature* trigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TROLLGORE_INVADER_SUMMONER_1 + i))) + if (Creature* trigger = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TROLLGORE_INVADER_SUMMONER_1 + i))) trigger->CastSpell(trigger, RAND(SPELL_SUMMON_INVADER_A, SPELL_SUMMON_INVADER_B, SPELL_SUMMON_INVADER_C), true, NULL, NULL, me->GetGUID()); events.ScheduleEvent(EVENT_SPAWN, urand(30000, 40000)); diff --git a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp index 30b473b6ebc..4e58d4dac03 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp @@ -31,15 +31,6 @@ class instance_drak_tharon_keep : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(EncounterCount); - - TrollgoreGUID = 0; - NovosGUID = 0; - KingDredGUID = 0; - TharonJaGUID = 0; - - memset(TrollgoreInvaderSummonerGuids, 0, 3 * sizeof(uint64)); - memset(NovosCrystalGUIDs, 0, 4 * sizeof(uint64)); - memset(NovosSummonerGUIDs, 0, 4 * sizeof(uint64)); } void OnCreatureCreate(Creature* creature) override @@ -122,7 +113,7 @@ class instance_drak_tharon_keep : public InstanceMapScript NovosSummonerGUIDs[3] = creature->GetGUID(); } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -150,7 +141,7 @@ class instance_drak_tharon_keep : public InstanceMapScript return NovosSummonerGUIDs[type - DATA_NOVOS_SUMMONER_1]; } - return 0; + return ObjectGuid::Empty; } void OnUnitDeath(Unit* unit) override @@ -161,14 +152,14 @@ class instance_drak_tharon_keep : public InstanceMapScript } protected: - uint64 TrollgoreGUID; - uint64 NovosGUID; - uint64 KingDredGUID; - uint64 TharonJaGUID; - - uint64 TrollgoreInvaderSummonerGuids[3]; - uint64 NovosCrystalGUIDs[4]; - uint64 NovosSummonerGUIDs[4]; + ObjectGuid TrollgoreGUID; + ObjectGuid NovosGUID; + ObjectGuid KingDredGUID; + ObjectGuid TharonJaGUID; + + ObjectGuid TrollgoreInvaderSummonerGuids[3]; + ObjectGuid NovosCrystalGUIDs[4]; + ObjectGuid NovosSummonerGUIDs[4]; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp index 670591a058c..77c97cc8342 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp @@ -203,8 +203,8 @@ class npc_corrupted_soul_fragment : public CreatureScript if (TempSummon* summ = me->ToTempSummon()) { - uint64 BronjahmGUID = instance->GetData64(DATA_BRONJAHM); - if (GUID_LOPART(BronjahmGUID) != id) + ObjectGuid BronjahmGUID(instance->GetGuidData(DATA_BRONJAHM)); + if (BronjahmGUID.GetCounter() != id) return; if (Creature* bronjahm = ObjectAccessor::GetCreature(*me, BronjahmGUID)) diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp index 4b4fd398e72..32590135f27 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp @@ -301,7 +301,7 @@ class boss_devourer_of_souls : public CreatureScript me->SetReactState(REACT_PASSIVE); //Remove any target - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); me->GetMotionMaster()->Clear(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp index f3034fa0796..97c9d407622 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp @@ -38,8 +38,6 @@ class instance_forge_of_souls : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTER); - bronjahm = 0; - devourerOfSouls = 0; teamInInstance = 0; } @@ -96,7 +94,7 @@ class instance_forge_of_souls : public InstanceMapScript return 0; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -108,12 +106,12 @@ class instance_forge_of_souls : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } private: - uint64 bronjahm; - uint64 devourerOfSouls; + ObjectGuid bronjahm; + ObjectGuid devourerOfSouls; uint32 teamInInstance; }; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index b4d1ee2f09b..555a75a33a7 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -347,8 +347,6 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript npc_jaina_or_sylvanas_intro_horAI(Creature* creature) : ScriptedAI(creature) { _instance = me->GetInstanceScript(); - _utherGUID = 0; - _lichkingGUID = 0; } void sGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override @@ -376,8 +374,8 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript { _events.Reset(); - _utherGUID = 0; - _lichkingGUID = 0; + _utherGUID.Clear(); + _lichkingGUID.Clear(); me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); me->SetStandState(UNIT_STAND_STATE_STAND); @@ -391,7 +389,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript switch (_events.ExecuteEvent()) { case EVENT_WALK_INTRO1: - if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_KORELN_LORALEN))) + if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_KORELN_LORALEN))) korelnOrLoralen->GetMotionMaster()->MovePoint(0, KorelnOrLoralenPos[0]); if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) @@ -415,7 +413,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); break; case EVENT_START_INTRO: - if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_KORELN_LORALEN))) + if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_KORELN_LORALEN))) korelnOrLoralen->GetMotionMaster()->MovePoint(0, KorelnOrLoralenPos[1]); // Begining of intro is differents between factions as the speech sequence and timers are differents. if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) @@ -441,7 +439,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript case EVENT_INTRO_A2_3: me->CastSpell(me, SPELL_CAST_VISUAL, false); me->CastSpell(me, SPELL_FROSTMOURNE_SOUNDS, true); - _instance->HandleGameObject(_instance->GetData64(DATA_FROSTMOURNE), true); + _instance->HandleGameObject(_instance->GetGuidData(DATA_FROSTMOURNE), true); _events.ScheduleEvent(EVENT_INTRO_A2_4, 10000); break; case EVENT_INTRO_A2_4: @@ -533,7 +531,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript Talk(SAY_SYLVANAS_INTRO_3); me->CastSpell(me, SPELL_CAST_VISUAL, false); me->CastSpell(me, SPELL_FROSTMOURNE_SOUNDS, true); - _instance->HandleGameObject(_instance->GetData64(DATA_FROSTMOURNE), true); + _instance->HandleGameObject(_instance->GetGuidData(DATA_FROSTMOURNE), true); _events.ScheduleEvent(EVENT_INTRO_H2_4, 6000); break; case EVENT_INTRO_H2_4: @@ -627,7 +625,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript { uther->CastSpell(uther, SPELL_UTHER_DESPAWN, true); uther->DespawnOrUnsummon(5000); - _utherGUID = 0; + _utherGUID.Clear(); } _events.ScheduleEvent(EVENT_INTRO_LK_4, 9000); break; @@ -635,7 +633,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript // He steps forward and removes the runeblade from the heap of skulls. if (Creature* lichking = ObjectAccessor::GetCreature(*me, _lichkingGUID)) { - if (GameObject* frostmourne = ObjectAccessor::GetGameObject(*me, _instance->GetData64(DATA_FROSTMOURNE))) + if (GameObject* frostmourne = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(DATA_FROSTMOURNE))) frostmourne->SetPhaseMask(2, true); lichking->CastSpell(lichking, SPELL_TAKE_FROSTMOURNE, true); lichking->CastSpell(lichking, SPELL_FROSTMOURNE_VISUAL, true); @@ -649,12 +647,12 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript break; case EVENT_INTRO_LK_6: // summon Falric and Marwyn. then go back to the door - if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FALRIC))) + if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FALRIC))) { falric->CastSpell(falric, SPELL_BOSS_SPAWN_AURA, true); falric->SetVisible(true); } - if (Creature* marwyn = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MARWYN))) + if (Creature* marwyn = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MARWYN))) { marwyn->CastSpell(marwyn, SPELL_BOSS_SPAWN_AURA, true); marwyn->SetVisible(true); @@ -669,7 +667,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript _events.ScheduleEvent(EVENT_OPEN_IMPENETRABLE_DOOR, 5000); break; case EVENT_INTRO_LK_7: - if (Creature* marwyn = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MARWYN))) + if (Creature* marwyn = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MARWYN))) { marwyn->AI()->Talk(SAY_MARWYN_INTRO_1); marwyn->SetWalk(true); @@ -678,7 +676,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript _events.ScheduleEvent(EVENT_INTRO_LK_8, 1000); break; case EVENT_INTRO_LK_8: - if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FALRIC))) + if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FALRIC))) { falric->AI()->Talk(SAY_FALRIC_INTRO_1); falric->SetWalk(true); @@ -687,7 +685,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript _events.ScheduleEvent(EVENT_INTRO_LK_9, 5000); break; case EVENT_INTRO_LK_9: - if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FALRIC))) + if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FALRIC))) falric->AI()->Talk(SAY_FALRIC_INTRO_2); _instance->ProcessEvent(0, EVENT_SPAWN_WAVES); _events.ScheduleEvent(EVENT_INTRO_LK_10, 4000); @@ -699,7 +697,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript Talk(SAY_SYLVANAS_INTRO_END); me->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos); /// @todo: needs some improvements - if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_KORELN_LORALEN))) + if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_KORELN_LORALEN))) korelnOrLoralen->GetMotionMaster()->MovePoint(1, KorelnOrLoralenPos[2]); _events.ScheduleEvent(EVENT_INTRO_LK_11, 5000); break; @@ -719,7 +717,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript if (Creature* lichking = ObjectAccessor::GetCreature(*me, _lichkingGUID)) { lichking->DespawnOrUnsummon(5000); - _lichkingGUID = 0; + _lichkingGUID.Clear(); } me->DespawnOrUnsummon(10000); _events.ScheduleEvent(EVENT_CLOSE_IMPENETRABLE_DOOR, 7000); @@ -730,7 +728,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript else me->GetMotionMaster()->MovePoint(0, SylvanasIntroPosition[2]); - if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_KORELN_LORALEN))) + if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_KORELN_LORALEN))) korelnOrLoralen->GetMotionMaster()->MovePoint(0, KorelnOrLoralenPos[1]); if (Creature* lichking = me->SummonCreature(NPC_THE_LICH_KING_INTRO, LichKingIntroPosition[0], TEMPSUMMON_MANUAL_DESPAWN)) @@ -745,13 +743,13 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript _events.ScheduleEvent(EVENT_INTRO_LK_4, 15000); break; case EVENT_OPEN_IMPENETRABLE_DOOR: - _instance->HandleGameObject(_instance->GetData64(DATA_IMPENETRABLE_DOOR), true); + _instance->HandleGameObject(_instance->GetGuidData(DATA_IMPENETRABLE_DOOR), true); break; case EVENT_CLOSE_IMPENETRABLE_DOOR: - _instance->HandleGameObject(_instance->GetData64(DATA_IMPENETRABLE_DOOR), false); + _instance->HandleGameObject(_instance->GetGuidData(DATA_IMPENETRABLE_DOOR), false); break; case EVENT_KORELN_LORALEN_DEATH: - if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_KORELN_LORALEN))) + if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_KORELN_LORALEN))) korelnOrLoralen->CastSpell(korelnOrLoralen, SPELL_FEIGN_DEATH); break; default: @@ -762,8 +760,8 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript private: InstanceScript* _instance; EventMap _events; - uint64 _utherGUID; - uint64 _lichkingGUID; + ObjectGuid _utherGUID; + ObjectGuid _lichkingGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -807,7 +805,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) lichking->AI()->EnterEvadeMode(); // event failed } @@ -868,10 +866,10 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript else me->RemoveAurasDueToSpell(SPELL_SYLVANAS_DESTROY_ICE_WALL); - _instance->HandleGameObject(_instance->GetData64(DATA_ICEWALL), true); - me->m_Events.AddEvent(new GameObjectDeleteDelayEvent(me, _instance->GetData64(DATA_ICEWALL)), me->m_Events.CalculateTime(5000)); + _instance->HandleGameObject(_instance->GetGuidData(DATA_ICEWALL), true); + me->m_Events.AddEvent(new GameObjectDeleteDelayEvent(me, _instance->GetGuidData(DATA_ICEWALL)), me->m_Events.CalculateTime(5000)); - if (Creature* wallTarget = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ICEWALL_TARGET))) + if (Creature* wallTarget = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ICEWALL_TARGET))) wallTarget->DespawnOrUnsummon(); } @@ -879,7 +877,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript { if (_icewall < 4) { - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { lichking->StopMoving(); if (Creature* wallTarget = me->SummonCreature(NPC_ICE_WALL_TARGET, IceWallTargetPosition[_icewall], TEMPSUMMON_MANUAL_DESPAWN, 720000)) @@ -895,7 +893,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript if (_icewall < 4) Talk(SAY_JAINA_SYLVANAS_ESCAPE_2 + _icewall); - if (Creature* wallTarget = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ICEWALL_TARGET))) + if (Creature* wallTarget = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ICEWALL_TARGET))) me->SetFacingToObject(wallTarget); if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) @@ -925,7 +923,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript break; case POINT_TRAP: Talk(SAY_JAINA_SYLVANAS_ESCAPE_8); - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) me->SetFacingToObject(lichking); break; default: @@ -933,7 +931,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript } } - void DeleteAllFromThreatList(Unit* target, uint64 except) + void DeleteAllFromThreatList(Unit* target, ObjectGuid except) { ThreatContainer::StorageType threatlist = target->getThreatManager().getThreatList(); for (auto i : threatlist) @@ -959,7 +957,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript else DoCast(me, SPELL_SYLVANAS_CLOAK_OF_DARKNESS); - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { me->CastSpell(lichking, SPELL_TAUNT_ARTHAS, true); lichking->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true); @@ -971,7 +969,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); break; case EVENT_ESCAPE_1: - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) lichking->AI()->Talk(SAY_LK_ESCAPE_1); @@ -990,7 +988,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript else DoCast(me, SPELL_SYLVANAS_BLINDING_RETREAT, true); - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { lichking->SetReactState(REACT_PASSIVE); lichking->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); @@ -1010,7 +1008,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript DoCast(me, SPELL_CREDIT_FINDING_SYLVANAS); Talk(SAY_JAINA_SYLVANAS_ESCAPE_1); - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { lichking->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); lichking->RemoveAllAttackers(); @@ -1024,7 +1022,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript me->GetMotionMaster()->MovePoint(POINT_SHADOW_THRONE_DOOR, SylvanasShadowThroneDoorPosition); break; case EVENT_ESCAPE_6: - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { lichking->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_PACIFIED); @@ -1044,13 +1042,13 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript _events.ScheduleEvent(EVENT_ESCAPE_7, 1000); break; case EVENT_ESCAPE_7: - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) lichking->HandleEmoteCommand(TEXT_EMOTE_ROAR); me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[0]); _events.ScheduleEvent(EVENT_ESCAPE_8, 3000); break; case EVENT_ESCAPE_8: - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) lichking->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[0]); _events.ScheduleEvent(EVENT_ESCAPE_9, 1000); break; @@ -1060,7 +1058,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript break; case EVENT_ESCAPE_10: me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[2]); - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) lichking->GetMotionMaster()->MovePoint(1, LichKingFirstSummon); _events.ScheduleEvent(EVENT_ESCAPE_11, 6000); break; @@ -1069,7 +1067,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript _events.ScheduleEvent(EVENT_ESCAPE_12, 4000); break; case EVENT_ESCAPE_12: - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) lichking->CastSpell(lichking, SPELL_PAIN_AND_SUFFERING, true); me->GetMotionMaster()->MovePoint(POINT_ATTACK_ICEWALL, NpcJainaOrSylvanasEscapeRoute[3]); @@ -1089,7 +1087,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript Talk(SAY_JAINA_SYLVANAS_ESCAPE_6); - if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING_ESCAPE))) + if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { lichking->GetMotionMaster()->MovePoint(2, LichKingFinalPos); lichking->RemoveAurasDueToSpell(SPELL_REMORSELESS_WINTER); @@ -1100,7 +1098,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript me->RemoveAurasDueToSpell(SPELL_HARVEST_SOUL); if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) Talk(SAY_JAINA_ESCAPE_9); - if (Transport* gunship = ObjectAccessor::GetTransport(*me, _instance->GetData64(DATA_GUNSHIP))) + if (Transport* gunship = ObjectAccessor::GetTransport(*me, _instance->GetGuidData(DATA_GUNSHIP))) gunship->EnableMovement(true); _instance->SetBossState(DATA_THE_LICH_KING_ESCAPE, DONE); break; @@ -1163,16 +1161,16 @@ class npc_the_lich_king_escape_hor : public CreatureScript switch (pointId) { case 1: - if (Creature* target = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER))) + if (Creature* target = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ESCAPE_LEADER))) me->GetMotionMaster()->MoveChase(target); break; case 2: Talk(SAY_LK_ESCAPE_HARVEST_SOUL); - if (Creature* target = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER))) + if (Creature* target = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ESCAPE_LEADER))) DoCast(target, SPELL_HARVEST_SOUL); - if (Transport* gunship = ObjectAccessor::GetTransport(*me, _instance->GetData64(DATA_GUNSHIP))) + if (Transport* gunship = ObjectAccessor::GetTransport(*me, _instance->GetGuidData(DATA_GUNSHIP))) gunship->EnableMovement(true); break; default: @@ -1197,7 +1195,7 @@ class npc_the_lich_king_escape_hor : public CreatureScript // All summons dead and no summon events scheduled if (!_summonsCount && _events.Empty()) { - if (Creature* jainaOrSylvanas = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER))) + if (Creature* jainaOrSylvanas = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ESCAPE_LEADER))) jainaOrSylvanas->AI()->DoAction(ACTION_WALL_BROKEN); } } @@ -2023,12 +2021,12 @@ class at_hor_waves_restarter : public AreaTriggerScript { _instance->ProcessEvent(0, EVENT_SPAWN_WAVES); - if (Creature* falric = ObjectAccessor::GetCreature(*player, _instance->GetData64(DATA_FALRIC))) + if (Creature* falric = ObjectAccessor::GetCreature(*player, _instance->GetGuidData(DATA_FALRIC))) { falric->CastSpell(falric, SPELL_BOSS_SPAWN_AURA, true); falric->SetVisible(true); } - if (Creature* marwyn = ObjectAccessor::GetCreature(*player, _instance->GetData64(DATA_MARWYN))) + if (Creature* marwyn = ObjectAccessor::GetCreature(*player, _instance->GetGuidData(DATA_MARWYN))) { marwyn->CastSpell(marwyn, SPELL_BOSS_SPAWN_AURA, true); marwyn->SetVisible(true); @@ -2133,7 +2131,7 @@ struct npc_escape_event_trash : public ScriptedAI void IsSummonedBy(Unit* /*summoner*/) override { DoZoneInCombat(me, 0.0f); - if (Creature* leader = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER))) + if (Creature* leader = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ESCAPE_LEADER))) { me->SetInCombatWith(leader); leader->SetInCombatWith(me); diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h index 578cf4f84fa..e44bf1d5aed 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h @@ -213,7 +213,7 @@ struct boss_horAI : BossAI class GameObjectDeleteDelayEvent : public BasicEvent { public: - GameObjectDeleteDelayEvent(Unit* owner, uint64 gameObjectGUID) : _owner(owner), _gameObjectGUID(gameObjectGUID) { } + GameObjectDeleteDelayEvent(Unit* owner, ObjectGuid gameObjectGUID) : _owner(owner), _gameObjectGUID(gameObjectGUID) { } void DeleteGameObject() { @@ -234,7 +234,7 @@ class GameObjectDeleteDelayEvent : public BasicEvent private: Unit* _owner; - uint64 _gameObjectGUID; + ObjectGuid _gameObjectGUID; }; template<class AI> diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp index 51502b8a336..9dbc801f76d 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp @@ -85,27 +85,6 @@ class instance_halls_of_reflection : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); - JainaOrSylvanasIntroGUID = 0; - KorelnOrLoralenGUID = 0; - TheLichkingIntroGUID = 0; - FalricGUID = 0; - MarwynGUID = 0; - FrostmourneAltarBunnyGUID = 0; - FrostswornGeneralGUID = 0; - JainaOrSylvanasEscapeGUID = 0; - TheLichKingEscapeGUID = 0; - - FrostmourneGUID = 0; - EntranceDoorGUID = 0; - ImpenetrableDoorGUID = 0; - ShadowThroneDoorGUID = 0; - CaveInGUID = 0; - GunshipGUID = 0; - CaptainsChestGUID = 0; - CaptainGUID = 0; - IcewallGUID = 0; - IcewallTargetGUID = 0; - _teamInInstance = 0; _waveCount = 0; _introState = NOT_STARTED; @@ -200,7 +179,7 @@ class instance_halls_of_reflection : public InstanceMapScript break; } case NPC_ICE_WALL_TARGET: - IcewallTargetGUID = 0; + IcewallTargetGUID.Clear(); break; case NPC_WORLD_TRIGGER: case NPC_GUNSHIP_CANNON_HORDE: @@ -256,11 +235,11 @@ class instance_halls_of_reflection : public InstanceMapScript break; case GO_IMPENETRABLE_DOOR: ImpenetrableDoorGUID = go->GetGUID(); - HandleGameObject(0, GetBossState(DATA_MARWYN) == DONE, go); + HandleGameObject(ObjectGuid::Empty, GetBossState(DATA_MARWYN) == DONE, go); break; case GO_SHADOW_THRONE_DOOR: ShadowThroneDoorGUID = go->GetGUID(); - HandleGameObject(0, GetData(DATA_FROSTSWORN_GENERAL) == DONE, go); + HandleGameObject(ObjectGuid::Empty, GetData(DATA_FROSTSWORN_GENERAL) == DONE, go); break; case GO_CAVE_IN: CaveInGUID = go->GetGUID(); @@ -282,7 +261,7 @@ class instance_halls_of_reflection : public InstanceMapScript CaptainsChestGUID = go->GetGUID(); break; case GO_ICE_WALL: - HandleGameObject(0, false, go); + HandleGameObject(ObjectGuid::Empty, false, go); IcewallGUID = go->GetGUID(); break; default: @@ -483,7 +462,7 @@ class instance_halls_of_reflection : public InstanceMapScript case NPC_WAVE_MAGE: { uint32 waveId = creature->AI()->GetData(0); - for (uint64 guid : waveGuidList[waveId]) + for (ObjectGuid guid : waveGuidList[waveId]) { if (Creature* npc = instance->GetCreature(guid)) if (npc->IsAlive()) @@ -539,7 +518,7 @@ class instance_halls_of_reflection : public InstanceMapScript { tempList = possibilityList; - uint64 bossGuid = i <= 3 ? FalricGUID : MarwynGUID; + ObjectGuid bossGuid = i <= 3 ? FalricGUID : MarwynGUID; if (!i) Trinity::Containers::RandomResizeList(tempList, 3); @@ -571,7 +550,7 @@ class instance_halls_of_reflection : public InstanceMapScript if (_waveCount % 5) { uint32 internalWaveId = _waveCount - ((_waveCount < 5) ? 1 : 2); - for (uint64 guid : waveGuidList[internalWaveId]) + for (ObjectGuid guid : waveGuidList[internalWaveId]) { if (Creature* temp = instance->GetCreature(guid)) { @@ -610,7 +589,7 @@ class instance_halls_of_reflection : public InstanceMapScript // despawn wave npcs for (uint8 i = 0; i < 8; ++i) { - for (uint64 guid : waveGuidList[i]) + for (ObjectGuid guid : waveGuidList[i]) if (Creature* creature = instance->GetCreature(guid)) creature->DespawnOrUnsummon(1); waveGuidList[i].clear(); @@ -630,9 +609,9 @@ class instance_halls_of_reflection : public InstanceMapScript if (Creature* captain = instance->GetCreature(CaptainGUID)) captain->AI()->Talk(SAY_CAPTAIN_FIRE); - for (uint64 guid : GunshipCannonGUIDs) + for (ObjectGuid guid : GunshipCannonGUIDs) { - uint32 entry = GUID_ENPART(guid); + uint32 entry = guid.GetEntry(); if ((entry == NPC_WORLD_TRIGGER && _teamInInstance == ALLIANCE) || (entry == NPC_GUNSHIP_CANNON_HORDE && _teamInInstance == HORDE)) if (Creature* cannon = instance->GetCreature(guid)) cannon->CastSpell(cannon, SPELL_GUNSHIP_CANNON_FIRE, true); @@ -642,7 +621,7 @@ class instance_halls_of_reflection : public InstanceMapScript if (Transport* gunship = instance->GetTransport(GunshipGUID)) gunship->EnableMovement(false); - for (uint64 guid : GunshipStairGUIDs) + for (ObjectGuid guid : GunshipStairGUIDs) if (GameObject* stairs = instance->GetGameObject(guid)) stairs->SetRespawnTime(DAY); @@ -677,7 +656,7 @@ class instance_halls_of_reflection : public InstanceMapScript return 0; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -707,7 +686,7 @@ class instance_halls_of_reflection : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } void WriteSaveDataMore(std::ostringstream& data) override @@ -732,21 +711,21 @@ class instance_halls_of_reflection : public InstanceMapScript } private: - uint64 JainaOrSylvanasIntroGUID; // unused - uint64 KorelnOrLoralenGUID; - uint64 TheLichkingIntroGUID; // unused - uint64 FalricGUID; - uint64 MarwynGUID; - uint64 FrostmourneAltarBunnyGUID; - uint64 FrostswornGeneralGUID; - uint64 JainaOrSylvanasEscapeGUID; - uint64 TheLichKingEscapeGUID; - - uint64 FrostmourneGUID; - uint64 EntranceDoorGUID; - uint64 ImpenetrableDoorGUID; - uint64 ShadowThroneDoorGUID; - uint64 CaveInGUID; + ObjectGuid JainaOrSylvanasIntroGUID; // unused + ObjectGuid KorelnOrLoralenGUID; + ObjectGuid TheLichkingIntroGUID; // unused + ObjectGuid FalricGUID; + ObjectGuid MarwynGUID; + ObjectGuid FrostmourneAltarBunnyGUID; + ObjectGuid FrostswornGeneralGUID; + ObjectGuid JainaOrSylvanasEscapeGUID; + ObjectGuid TheLichKingEscapeGUID; + + ObjectGuid FrostmourneGUID; + ObjectGuid EntranceDoorGUID; + ObjectGuid ImpenetrableDoorGUID; + ObjectGuid ShadowThroneDoorGUID; + ObjectGuid CaveInGUID; uint32 _teamInInstance; uint32 _waveCount; @@ -754,16 +733,16 @@ class instance_halls_of_reflection : public InstanceMapScript uint32 _frostswornGeneralState; EventMap events; - std::set<uint64> waveGuidList[8]; + GuidSet waveGuidList[8]; - uint64 GunshipGUID; - uint64 CaptainsChestGUID; - uint64 CaptainGUID; - uint64 IcewallGUID; - uint64 IcewallTargetGUID; + ObjectGuid GunshipGUID; + ObjectGuid CaptainsChestGUID; + ObjectGuid CaptainGUID; + ObjectGuid IcewallGUID; + ObjectGuid IcewallTargetGUID; - std::set<uint64> GunshipCannonGUIDs; - std::set<uint64> GunshipStairGUIDs; + GuidSet GunshipCannonGUIDs; + GuidSet GunshipStairGUIDs; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index 62a6ac41074..3ac5ec3070a 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -121,7 +121,7 @@ class boss_garfrost : public CreatureScript Talk(SAY_DEATH); me->RemoveAllGameObjects(); - if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TYRANNUS))) + if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TYRANNUS))) tyrannus->AI()->Talk(SAY_TYRANNUS_DEATH); } diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp index 5b147344a59..327ea2c9b7b 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp @@ -151,7 +151,7 @@ class boss_ick : public CreatureScript Creature* GetKrick() { - return ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KRICK)); + return ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KRICK)); } void EnterCombat(Unit* /*who*/) override @@ -293,8 +293,8 @@ class boss_krick : public CreatureScript void Initialize() { _phase = PHASE_COMBAT; - _outroNpcGUID = 0; - _tyrannusGUID = 0; + _outroNpcGUID.Clear(); + _tyrannusGUID.Clear(); } void Reset() override @@ -308,7 +308,7 @@ class boss_krick : public CreatureScript Creature* GetIck() { - return ObjectAccessor::GetCreature(*me, _instanceScript->GetData64(DATA_ICK)); + return ObjectAccessor::GetCreature(*me, _instanceScript->GetGuidData(DATA_ICK)); } void KilledUnit(Unit* victim) override @@ -333,7 +333,7 @@ class boss_krick : public CreatureScript { if (actionId == ACTION_OUTRO) { - Creature* tyrannusPtr = ObjectAccessor::GetCreature(*me, _instanceScript->GetData64(DATA_TYRANNUS_EVENT)); + Creature* tyrannusPtr = ObjectAccessor::GetCreature(*me, _instanceScript->GetGuidData(DATA_TYRANNUS_EVENT)); if (tyrannusPtr) tyrannusPtr->NearTeleportTo(outroPos[1].GetPositionX(), outroPos[1].GetPositionY(), outroPos[1].GetPositionZ(), outroPos[1].GetOrientation()); else @@ -369,7 +369,7 @@ class boss_krick : public CreatureScript { case EVENT_OUTRO_1: { - if (Creature* temp = ObjectAccessor::GetCreature(*me, _instanceScript->GetData64(DATA_JAINA_SYLVANAS_1))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, _instanceScript->GetGuidData(DATA_JAINA_SYLVANAS_1))) temp->DespawnOrUnsummon(); Creature* jainaOrSylvanas = NULL; @@ -417,7 +417,7 @@ class boss_krick : public CreatureScript _events.ScheduleEvent(EVENT_OUTRO_6, 1000); break; case EVENT_OUTRO_6: - if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _instanceScript->GetData64(DATA_TYRANNUS_EVENT))) + if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _instanceScript->GetGuidData(DATA_TYRANNUS_EVENT))) { tyrannus->SetSpeed(MOVE_FLIGHT, 3.5f, true); tyrannus->GetMotionMaster()->MovePoint(1, outroPos[4]); @@ -494,8 +494,8 @@ class boss_krick : public CreatureScript EventMap _events; KrickPhase _phase; - uint64 _outroNpcGUID; - uint64 _tyrannusGUID; + ObjectGuid _outroNpcGUID; + ObjectGuid _tyrannusGUID; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index f392b21b173..c2b1b91a200 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -153,7 +153,7 @@ class boss_tyrannus : public CreatureScript Creature* GetRimefang() { - return ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_RIMEFANG)); + return ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_RIMEFANG)); } void EnterCombat(Unit* /*who*/) override @@ -235,7 +235,7 @@ class boss_tyrannus : public CreatureScript me->GetMotionMaster()->MovePoint(0, miscPos); break; case EVENT_COMBAT_START: - if (Creature* rimefang = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_RIMEFANG))) + if (Creature* rimefang = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_RIMEFANG))) rimefang->AI()->DoAction(ACTION_START_RIMEFANG); //set rimefang also infight events.SetPhase(PHASE_COMBAT); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -299,7 +299,7 @@ class boss_rimefang : public CreatureScript void Initialize() { _currentWaypoint = 0; - _hoarfrostTargetGUID = 0; + _hoarfrostTargetGUID.Clear(); } void Reset() override @@ -330,7 +330,7 @@ class boss_rimefang : public CreatureScript _EnterEvadeMode(); } - void SetGUID(uint64 guid, int32 type) override + void SetGUID(ObjectGuid guid, int32 type) override { if (type == GUID_HOARFROST) { @@ -366,7 +366,7 @@ class boss_rimefang : public CreatureScript if (Unit* target = ObjectAccessor::GetUnit(*me, _hoarfrostTargetGUID)) { DoCast(target, SPELL_HOARFROST); - _hoarfrostTargetGUID = 0; + _hoarfrostTargetGUID.Clear(); } break; default: @@ -377,7 +377,7 @@ class boss_rimefang : public CreatureScript private: Vehicle* _vehicle; - uint64 _hoarfrostTargetGUID; + ObjectGuid _hoarfrostTargetGUID; EventMap _events; uint8 _currentWaypoint; }; @@ -391,7 +391,7 @@ class boss_rimefang : public CreatureScript class player_overlord_brandAI : public PlayerAI { public: - player_overlord_brandAI(Player* player, uint64 casterGUID) : PlayerAI(player), _tyrannusGUID(casterGUID) { } + player_overlord_brandAI(Player* player, ObjectGuid casterGUID) : PlayerAI(player), _tyrannusGUID(casterGUID) { } void DamageDealt(Unit* /*victim*/, uint32& damage, DamageEffectType /*damageType*/) override { @@ -409,7 +409,7 @@ class player_overlord_brandAI : public PlayerAI void UpdateAI(uint32 /*diff*/) override { } private: - uint64 _tyrannusGUID; + ObjectGuid _tyrannusGUID; }; class spell_tyrannus_overlord_brand : public SpellScriptLoader @@ -480,7 +480,7 @@ class spell_tyrannus_mark_of_rimefang : public SpellScriptLoader return; if (InstanceScript* instance = caster->GetInstanceScript()) - if (Creature* rimefang = ObjectAccessor::GetCreature(*caster, instance->GetData64(DATA_RIMEFANG))) + if (Creature* rimefang = ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_RIMEFANG))) rimefang->AI()->SetGUID(GetTarget()->GetGUID(), GUID_HOARFROST); } @@ -545,7 +545,7 @@ class at_tyrannus_event_starter : public AreaTriggerScript return false; if (instance->GetBossState(DATA_TYRANNUS) != IN_PROGRESS && instance->GetBossState(DATA_TYRANNUS) != DONE) - if (Creature* tyrannus = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_TYRANNUS))) + if (Creature* tyrannus = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_TYRANNUS))) { tyrannus->AI()->DoAction(ACTION_START_INTRO); return true; diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp index d829b98f926..29fbc0be2b3 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp @@ -44,15 +44,7 @@ class instance_pit_of_saron : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(Doors); - _garfrostGUID = 0; - _krickGUID = 0; - _ickGUID = 0; - _tyrannusGUID = 0; - _rimefangGUID = 0; - _jainaOrSylvanas1GUID = 0; - _jainaOrSylvanas2GUID = 0; _teamInInstance = 0; - _tyrannusEventGUID = 0; } void OnPlayerEnter(Player* player) override @@ -239,7 +231,7 @@ class instance_pit_of_saron : public InstanceMapScript return 0; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -263,19 +255,19 @@ class instance_pit_of_saron : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } private: - uint64 _garfrostGUID; - uint64 _krickGUID; - uint64 _ickGUID; - uint64 _tyrannusGUID; - uint64 _rimefangGUID; + ObjectGuid _garfrostGUID; + ObjectGuid _krickGUID; + ObjectGuid _ickGUID; + ObjectGuid _tyrannusGUID; + ObjectGuid _rimefangGUID; - uint64 _tyrannusEventGUID; - uint64 _jainaOrSylvanas1GUID; - uint64 _jainaOrSylvanas2GUID; + ObjectGuid _tyrannusEventGUID; + ObjectGuid _jainaOrSylvanas1GUID; + ObjectGuid _jainaOrSylvanas2GUID; uint32 _teamInInstance; }; diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp index 4d2ebd44db8..062d6a13390 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp @@ -230,7 +230,7 @@ class spell_trash_npc_glacial_strike : public SpellScriptLoader { if (GetTarget()->IsFullHealth()) { - GetTarget()->RemoveAura(GetId(), 0, 0, AURA_REMOVE_BY_ENEMY_SPELL); + GetTarget()->RemoveAura(GetId(), ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL); PreventDefaultAction(); } } diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp index 001f19679c4..f1fececfa7f 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp @@ -24,6 +24,13 @@ #include "gundrak.h" #include "SpellInfo.h" +enum Texts +{ + // Drakkari Elemental + EMOTE_MOJO = 0, + EMOTE_ACTIVATE_ALTAR = 1 +}; + enum Spells { SPELL_EMERGE = 54850, @@ -80,7 +87,7 @@ class boss_drakkari_colossus : public CreatureScript struct boss_drakkari_colossusAI : public BossAI { - boss_drakkari_colossusAI(Creature* creature) : BossAI(creature, DATA_DRAKKARI_COLOSSUS_EVENT) + boss_drakkari_colossusAI(Creature* creature) : BossAI(creature, DATA_DRAKKARI_COLOSSUS) { Initialize(); me->SetReactState(REACT_PASSIVE); @@ -103,41 +110,20 @@ class boss_drakkari_colossus : public CreatureScript me->RemoveAura(SPELL_FREEZE_ANIM); } - //events.Reset(); -> done in _Reset(); events.ScheduleEvent(EVENT_MIGHTY_BLOW, urand(10000, 30000)); Initialize(); - - // Note: This should not be called, but before use SetBossState function we should use BossAI - // in all the bosses of the instance - instance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, NOT_STARTED); } void EnterCombat(Unit* /*who*/) override { _EnterCombat(); - me->RemoveAura(SPELL_FREEZE_ANIM); - - // Note: This should not be called, but before use SetBossState function we should use BossAI - // in all the bosses of the instance - instance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, IN_PROGRESS); } void JustDied(Unit* /*killer*/) override { _JustDied(); - - // Note: This should not be called, but before use SetBossState function we should use BossAI - // in all the bosses of the instance - instance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, DONE); - } - - void JustReachedHome() override - { - // Note: This should not be called, but before use SetBossState function we should use BossAI - // in all the bosses of the instance - instance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, FAIL); } void DoAction(int32 action) override @@ -181,13 +167,12 @@ class boss_drakkari_colossus : public CreatureScript if (phase == COLOSSUS_PHASE_NORMAL || phase == COLOSSUS_PHASE_FIRST_ELEMENTAL_SUMMON) { - if (HealthBelowPct( phase == COLOSSUS_PHASE_NORMAL ? 50 : 5)) + if (HealthBelowPct(phase == COLOSSUS_PHASE_NORMAL ? 50 : 5)) { damage = 0; phase = (phase == COLOSSUS_PHASE_NORMAL ? COLOSSUS_PHASE_FIRST_ELEMENTAL_SUMMON : COLOSSUS_PHASE_SECOND_ELEMENTAL_SUMMON); DoAction(ACTION_FREEZE_COLOSSUS); DoAction(ACTION_SUMMON_ELEMENTAL); - } } } @@ -248,7 +233,7 @@ class boss_drakkari_colossus : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_drakkari_colossusAI>(creature); + return GetGundrakAI<boss_drakkari_colossusAI>(creature); } }; @@ -275,10 +260,9 @@ class boss_drakkari_elemental : public CreatureScript void JustDied(Unit* killer) override { - if (killer == me) - return; + Talk(EMOTE_ACTIVATE_ALTAR); - if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) + if (Creature* colossus = instance->GetCreature(DATA_DRAKKARI_COLOSSUS)) killer->Kill(colossus); } @@ -313,8 +297,9 @@ class boss_drakkari_elemental : public CreatureScript switch (action) { case ACTION_RETURN_TO_COLOSSUS: + Talk(EMOTE_MOJO); DoCast(SPELL_SURGE_VISUAL); - if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) + if (Creature* colossus = instance->GetCreature(DATA_DRAKKARI_COLOSSUS)) // what if the elemental is more than 80 yards from drakkari colossus ? DoCast(colossus, SPELL_MERGE, true); break; @@ -323,11 +308,11 @@ class boss_drakkari_elemental : public CreatureScript void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - if (HealthBelowPct(50) && instance) + if (HealthBelowPct(50)) { - if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) + if (Creature* colossus = instance->GetCreature(DATA_DRAKKARI_COLOSSUS)) { - if (colossus->AI()->GetData(DATA_COLOSSUS_PHASE) == COLOSSUS_PHASE_FIRST_ELEMENTAL_SUMMON) + if (colossus->AI()->GetData(DATA_COLOSSUS_PHASE) == COLOSSUS_PHASE_FIRST_ELEMENTAL_SUMMON) { damage = 0; @@ -375,7 +360,7 @@ class boss_drakkari_elemental : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_drakkari_elementalAI>(creature); + return GetGundrakAI<boss_drakkari_elementalAI>(creature); } }; @@ -386,7 +371,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_living_mojoAI>(creature); + return GetGundrakAI<npc_living_mojoAI>(creature); } struct npc_living_mojoAI : public ScriptedAI @@ -429,7 +414,7 @@ public: if (id == 1) { - if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) + if (Creature* colossus = instance->GetCreature(DATA_DRAKKARI_COLOSSUS)) { colossus->AI()->DoAction(ACTION_UNFREEZE_COLOSSUS); if (!colossus->AI()->GetData(DATA_INTRO_DONE)) @@ -446,13 +431,11 @@ public: return; // we do this checks to see if the creature is one of the creatures that sorround the boss - if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) + if (Creature* colossus = instance->GetCreature(DATA_DRAKKARI_COLOSSUS)) { Position homePosition = me->GetHomePosition(); - Position colossusHomePosition = colossus->GetHomePosition(); - - float distance = homePosition.GetExactDist(colossusHomePosition.GetPositionX(), colossusHomePosition.GetPositionY(), colossusHomePosition.GetPositionZ()); + float distance = homePosition.GetExactDist(&colossus->GetHomePosition()); if (distance < 12.0f) { @@ -484,6 +467,7 @@ public: DoMeleeAttackIfReady(); } + private: InstanceScript* instance; uint32 mojoWaveTimer; diff --git a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp index 9f8cc818958..baf749fec51 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp @@ -19,13 +19,18 @@ #include "ScriptedCreature.h" #include "gundrak.h" +enum Texts +{ + EMOTE_SPAWN = 0 +}; + enum Spells { - SPELL_ECK_BERSERK = 55816, //Eck goes berserk, increasing his attack speed by 150% and all damage he deals by 500%. - SPELL_ECK_BITE = 55813, //Eck bites down hard, inflicting 150% of his normal damage to an enemy. - SPELL_ECK_SPIT = 55814, //Eck spits toxic bile at enemies in a cone in front of him, inflicting 2970 Nature damage and draining 220 mana every 1 sec for 3 sec. - SPELL_ECK_SPRING_1 = 55815, //Eck leaps at a distant target. --> Drops aggro and charges a random player. Tank can simply taunt him back. - SPELL_ECK_SPRING_2 = 55837 //Eck leaps at a distant target. + SPELL_ECK_BERSERK = 55816, // Eck goes berserk, increasing his attack speed by 150% and all damage he deals by 500%. + SPELL_ECK_BITE = 55813, // Eck bites down hard, inflicting 150% of his normal damage to an enemy. + SPELL_ECK_SPIT = 55814, // Eck spits toxic bile at enemies in a cone in front of him, inflicting 2970 Nature damage and draining 220 mana every 1 sec for 3 sec. + SPELL_ECK_SPRING_1 = 55815, // Eck leaps at a distant target. --> Drops aggro and charges a random player. Tank can simply taunt him back. + SPELL_ECK_SPRING_2 = 55837 // Eck leaps at a distant target. }; enum Events @@ -38,79 +43,80 @@ enum Events class boss_eck : public CreatureScript { -public: - boss_eck() : CreatureScript("boss_eck") { } + public: + boss_eck() : CreatureScript("boss_eck") { } - struct boss_eckAI : public BossAI - { - boss_eckAI(Creature* creature) : BossAI(creature, DATA_ECK_THE_FEROCIOUS_EVENT) + struct boss_eckAI : public BossAI { - Initialize(); - } + boss_eckAI(Creature* creature) : BossAI(creature, DATA_ECK_THE_FEROCIOUS) + { + Initialize(); + Talk(EMOTE_SPAWN); + } - void Initialize() - { - Berserk = false; - } + void Initialize() + { + _berserk = false; + } - void Reset() override - { - _Reset(); - Initialize(); - } + void Reset() override + { + _Reset(); + Initialize(); + } - void EnterCombat(Unit* /*who*/) override - { - _EnterCombat(); - events.ScheduleEvent(EVENT_BITE, 5 * IN_MILLISECONDS); - events.ScheduleEvent(EVENT_SPIT, 10 * IN_MILLISECONDS); - events.ScheduleEvent(EVENT_SPRING, 8 * IN_MILLISECONDS); - events.ScheduleEvent(EVENT_BERSERK, urand(60 * IN_MILLISECONDS, 90 * IN_MILLISECONDS)); //60-90 secs according to wowwiki - } + void EnterCombat(Unit* /*who*/) override + { + _EnterCombat(); + events.ScheduleEvent(EVENT_BITE, 5 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_SPIT, 10 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_SPRING, 8 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_BERSERK, urand(60 * IN_MILLISECONDS, 90 * IN_MILLISECONDS)); // 60-90 secs according to wowwiki + } - void DamageTaken(Unit* /*attacker*/, uint32& damage) override - { - if (me->HealthBelowPctDamaged(20, damage) && !Berserk) + void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - events.RescheduleEvent(EVENT_BERSERK, 1000); - Berserk = true; + if (!_berserk && me->HealthBelowPctDamaged(20, damage)) + { + events.RescheduleEvent(EVENT_BERSERK, 1000); + _berserk = true; + } } - } - void ExecuteEvent(uint32 eventId) override - { - switch (eventId) + void ExecuteEvent(uint32 eventId) override { - case EVENT_BITE: - DoCastVictim(SPELL_ECK_BITE); - events.ScheduleEvent(EVENT_BITE, urand(8 * IN_MILLISECONDS, 12 * IN_MILLISECONDS)); - break; - case EVENT_SPIT: - DoCastVictim(SPELL_ECK_SPIT); - events.ScheduleEvent(EVENT_SPIT, urand(6 * IN_MILLISECONDS, 14 * IN_MILLISECONDS)); - break; - case EVENT_SPRING: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 35.0f, true)) - DoCast(target, RAND(SPELL_ECK_SPRING_1, SPELL_ECK_SPRING_2)); - events.ScheduleEvent(EVENT_SPRING, urand(5 * IN_MILLISECONDS, 10 * IN_MILLISECONDS)); - break; - case EVENT_BERSERK: - DoCast(me, SPELL_ECK_BERSERK); - Berserk = true; - break; - default: - break; + switch (eventId) + { + case EVENT_BITE: + DoCastVictim(SPELL_ECK_BITE); + events.ScheduleEvent(EVENT_BITE, urand(8 * IN_MILLISECONDS, 12 * IN_MILLISECONDS)); + break; + case EVENT_SPIT: + DoCastVictim(SPELL_ECK_SPIT); + events.ScheduleEvent(EVENT_SPIT, urand(6 * IN_MILLISECONDS, 14 * IN_MILLISECONDS)); + break; + case EVENT_SPRING: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 35.0f, true)) + DoCast(target, RAND(SPELL_ECK_SPRING_1, SPELL_ECK_SPRING_2)); + events.ScheduleEvent(EVENT_SPRING, urand(5 * IN_MILLISECONDS, 10 * IN_MILLISECONDS)); + break; + case EVENT_BERSERK: + DoCast(me, SPELL_ECK_BERSERK); + _berserk = true; + break; + default: + break; + } } - } private: - bool Berserk; - }; + bool _berserk; + }; - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI<boss_eckAI>(creature); - } + CreatureAI* GetAI(Creature* creature) const override + { + return GetGundrakAI<boss_eckAI>(creature); + } }; void AddSC_boss_eck() diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp index 22e7ac280fd..c9ea3a26f4d 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp @@ -17,281 +17,272 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "SpellScript.h" #include "gundrak.h" -//Spells +/// @todo: implement stampede + enum Spells { - SPELL_ENRAGE = 55285, - H_SPELL_ENRAGE = 59828, - SPELL_IMPALING_CHARGE = 54956, - H_SPELL_IMPALING_CHARGE = 59827, - SPELL_STOMP = 55292, - H_SPELL_STOMP = 59829, - SPELL_PUNCTURE = 55276, - H_SPELL_PUNCTURE = 59826, - SPELL_STAMPEDE = 55218, - SPELL_WHIRLING_SLASH = 55250, - H_SPELL_WHIRLING_SLASH = 59824, + SPELL_IMPALING_CHARGE = 54956, + SPELL_IMPALING_CHARGE_CONTROL_VEHICLE = 54958, + SPELL_STOMP = 55292, + SPELL_PUNCTURE = 55276, + SPELL_STAMPEDE = 55218, + SPELL_WHIRLING_SLASH = 55250, + SPELL_ENRAGE = 55285, + SPELL_HEARTH_BEAM_VISUAL = 54988, + SPELL_TRANSFORM_RHINO = 55297, + SPELL_TRANSFORM_BACK = 55299 }; -//Yells enum Yells { - SAY_AGGRO = 0, - SAY_SLAY = 1, - SAY_DEATH = 2, - SAY_SUMMON_RHINO = 3, - SAY_TRANSFORM_1 = 4, - SAY_TRANSFORM_2 = 5 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SUMMON_RHINO = 3, + SAY_TRANSFORM_1 = 4, + SAY_TRANSFORM_2 = 5, + EMOTE_IMPALE = 6 }; -enum Displays +enum CombatPhase { - DISPLAY_RHINO = 26265, - DISPLAY_TROLL = 27061 + PHASE_TROLL = 1, + PHASE_RHINO = 2 }; -enum CombatPhase +enum Events { - TROLL, - RHINO + EVENT_IMPALING_CHARGE = 1, + EVENT_STOMP, + EVENT_PUNCTURE, + EVENT_STAMPEDE, + EVENT_WHIRLING_SLASH, + EVENT_ENRAGE, + EVENT_TRANSFORM, + + EVENT_GROUP_TROLL = PHASE_TROLL, + EVENT_GROUP_RHINO = PHASE_RHINO }; enum Misc { - DATA_SHARE_THE_LOVE = 1 + DATA_SHARE_THE_LOVE = 1 }; class boss_gal_darah : public CreatureScript { -public: - boss_gal_darah() : CreatureScript("boss_gal_darah") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI<boss_gal_darahAI>(creature); - } + public: + boss_gal_darah() : CreatureScript("boss_gal_darah") { } - struct boss_gal_darahAI : public ScriptedAI - { - boss_gal_darahAI(Creature* creature) : ScriptedAI(creature) + struct boss_gal_darahAI : public BossAI { - Initialize(); - instance = creature->GetInstanceScript(); - } + boss_gal_darahAI(Creature* creature) : BossAI(creature, DATA_GAL_DARAH) + { + Initialize(); + } - void Initialize() - { - uiStampedeTimer = 10 * IN_MILLISECONDS; - uiWhirlingSlashTimer = 21 * IN_MILLISECONDS; - uiPunctureTimer = 10 * IN_MILLISECONDS; - uiEnrageTimer = 15 * IN_MILLISECONDS; - uiImpalingChargeTimer = 21 * IN_MILLISECONDS; - uiStompTimer = 25 * IN_MILLISECONDS; - uiTransformationTimer = 9 * IN_MILLISECONDS; - uiPhaseCounter = 0; - - shareTheLove = 0; - bStartOfTransformation = true; - Phase = TROLL; - } + void Initialize() + { + _phaseCounter = 0; + } - uint32 uiStampedeTimer; - uint32 uiWhirlingSlashTimer; - uint32 uiPunctureTimer; - uint32 uiEnrageTimer; - uint32 uiImpalingChargeTimer; - uint32 uiStompTimer; - uint32 uiTransformationTimer; - std::list<uint64> impaledList; - uint8 shareTheLove; + void InitializeAI() override + { + BossAI::InitializeAI(); + DoCastAOE(SPELL_HEARTH_BEAM_VISUAL, true); + } - CombatPhase Phase; + void Reset() override + { + Initialize(); + _Reset(); + impaledPlayers.clear(); + } - uint8 uiPhaseCounter; + void JustReachedHome() override + { + _JustReachedHome(); + DoCastAOE(SPELL_HEARTH_BEAM_VISUAL, true); + } - bool bStartOfTransformation; + void EnterCombat(Unit* /*who*/) override + { + _EnterCombat(); + Talk(SAY_AGGRO); - InstanceScript* instance; + SetPhase(PHASE_TROLL); + } - void Reset() override - { - Initialize(); + void SetPhase(CombatPhase phase) + { + events.SetPhase(phase); + switch (phase) + { + case PHASE_TROLL: + events.ScheduleEvent(EVENT_STAMPEDE, 10 * IN_MILLISECONDS, 0, PHASE_TROLL); + events.ScheduleEvent(EVENT_WHIRLING_SLASH, 21 * IN_MILLISECONDS, 0, PHASE_TROLL); + break; + case PHASE_RHINO: + events.ScheduleEvent(EVENT_STOMP, 25 * IN_MILLISECONDS, 0, PHASE_RHINO); + events.ScheduleEvent(EVENT_IMPALING_CHARGE, 21 * IN_MILLISECONDS, 0, PHASE_RHINO); + events.ScheduleEvent(EVENT_ENRAGE, 15 * IN_MILLISECONDS, 0, PHASE_RHINO); + events.ScheduleEvent(EVENT_PUNCTURE, 10 * IN_MILLISECONDS, 0, PHASE_RHINO); + break; + } + } - impaledList.clear(); + void SetGUID(ObjectGuid guid, int32 type /*= 0*/) override + { + if (type == DATA_SHARE_THE_LOVE) + { + if (Unit* target = ObjectAccessor::GetUnit(*me, guid)) + Talk(EMOTE_IMPALE, target); + impaledPlayers.insert(guid); + } + } - me->SetDisplayId(DISPLAY_TROLL); + uint32 GetData(uint32 type) const override + { + if (type == DATA_SHARE_THE_LOVE) + return impaledPlayers.size(); - instance->SetData(DATA_GAL_DARAH_EVENT, NOT_STARTED); - } + return 0; + } - void EnterCombat(Unit* /*who*/) override - { - Talk(SAY_AGGRO); + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + Talk(SAY_DEATH); + } - instance->SetData(DATA_GAL_DARAH_EVENT, IN_PROGRESS); - } + void KilledUnit(Unit* victim) override + { + if (victim->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); + } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + void SpellHit(Unit* /*caster*/, SpellInfo const* spellInfo) override + { + if (spellInfo->Id == SPELL_TRANSFORM_BACK) + me->RemoveAurasDueToSpell(SPELL_TRANSFORM_RHINO); + } - switch (Phase) + void ExecuteEvent(uint32 eventId) override { - case TROLL: - if (uiPhaseCounter == 2) - { - if (uiTransformationTimer <= diff) + switch (eventId) + { + case EVENT_IMPALING_CHARGE: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 60.0f, true)) + DoCast(target, SPELL_IMPALING_CHARGE); + if (++_phaseCounter >= 2) + events.ScheduleEvent(EVENT_TRANSFORM, 5 * IN_MILLISECONDS); + events.ScheduleEvent(eventId, 31 * IN_MILLISECONDS, 0, PHASE_RHINO); + break; + case EVENT_STOMP: + DoCastAOE(SPELL_STOMP); + events.ScheduleEvent(eventId, 20 * IN_MILLISECONDS, 0, PHASE_RHINO); + break; + case EVENT_PUNCTURE: + DoCastVictim(SPELL_PUNCTURE); + events.ScheduleEvent(eventId, 8 * IN_MILLISECONDS, 0, PHASE_RHINO); + break; + case EVENT_STAMPEDE: + Talk(SAY_SUMMON_RHINO); + DoCast(me, SPELL_STAMPEDE); + events.ScheduleEvent(eventId, 15 * IN_MILLISECONDS, 0, PHASE_TROLL); + break; + case EVENT_WHIRLING_SLASH: + DoCastVictim(SPELL_WHIRLING_SLASH); + if (++_phaseCounter >= 2) + events.ScheduleEvent(EVENT_TRANSFORM, 5 * IN_MILLISECONDS); + events.ScheduleEvent(eventId, 21 * IN_MILLISECONDS, 0, PHASE_TROLL); + break; + case EVENT_ENRAGE: + DoCast(me, SPELL_ENRAGE); + events.ScheduleEvent(eventId, 20 * IN_MILLISECONDS, 0, PHASE_RHINO); + break; + case EVENT_TRANSFORM: + if (events.IsInPhase(PHASE_TROLL)) { - me->SetDisplayId(DISPLAY_RHINO); - Phase = RHINO; - uiPhaseCounter = 0; Talk(SAY_TRANSFORM_1); - uiTransformationTimer = 5*IN_MILLISECONDS; - bStartOfTransformation = true; - me->ClearUnitState(UNIT_STATE_STUNNED|UNIT_STATE_ROOT); - me->SetReactState(REACT_AGGRESSIVE); + DoCast(me, SPELL_TRANSFORM_RHINO); + SetPhase(PHASE_RHINO); } - else + else if (events.IsInPhase(PHASE_RHINO)) { - uiTransformationTimer -= diff; - - if (bStartOfTransformation) - { - bStartOfTransformation = false; - me->AddUnitState(UNIT_STATE_STUNNED|UNIT_STATE_ROOT); - me->SetReactState(REACT_PASSIVE); - } - } - } - else - { - if (uiStampedeTimer <= diff) - { - DoCast(me, SPELL_STAMPEDE); - Talk(SAY_SUMMON_RHINO); - uiStampedeTimer = 15*IN_MILLISECONDS; - } else uiStampedeTimer -= diff; - - if (uiWhirlingSlashTimer <= diff) - { - DoCastVictim(SPELL_WHIRLING_SLASH); - uiWhirlingSlashTimer = 21*IN_MILLISECONDS; - ++uiPhaseCounter; - } else uiWhirlingSlashTimer -= diff; - } - break; - case RHINO: - if (uiPhaseCounter == 2) - { - if (uiTransformationTimer <= diff) - { - me->SetDisplayId(DISPLAY_TROLL); - Phase = TROLL; - uiPhaseCounter = 0; Talk(SAY_TRANSFORM_2); - uiTransformationTimer = 9*IN_MILLISECONDS; - bStartOfTransformation = true; - me->ClearUnitState(UNIT_STATE_STUNNED|UNIT_STATE_ROOT); - me->SetReactState(REACT_AGGRESSIVE); + DoCast(me, SPELL_TRANSFORM_BACK); + SetPhase(PHASE_TROLL); } - else - { - uiTransformationTimer -= diff; - - if (bStartOfTransformation) - { - bStartOfTransformation = false; - me->AddUnitState(UNIT_STATE_STUNNED|UNIT_STATE_ROOT); - me->SetReactState(REACT_PASSIVE); - } - } - } - else - { - if (uiPunctureTimer <= diff) - { - DoCastVictim(SPELL_PUNCTURE); - uiPunctureTimer = 8*IN_MILLISECONDS; - } else uiPunctureTimer -= diff; - - if (uiEnrageTimer <= diff) - { - DoCastVictim(SPELL_ENRAGE); - uiEnrageTimer = 20*IN_MILLISECONDS; - } else uiEnrageTimer -= diff; - - if (uiStompTimer <= diff) - { - DoCastVictim(SPELL_STOMP); - uiStompTimer = 20*IN_MILLISECONDS; - } else uiStompTimer -= diff; - - if (uiImpalingChargeTimer <= diff) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - { - DoCast(target, SPELL_IMPALING_CHARGE); - CheckAchievement(target->GetGUID()); - } - uiImpalingChargeTimer = 31*IN_MILLISECONDS; - ++uiPhaseCounter; - } else uiImpalingChargeTimer -= diff; - } - break; + _phaseCounter = 0; + break; + default: + break; + } } - DoMeleeAttackIfReady(); - } + private: + std::set<uint64> impaledPlayers; + uint8 _phaseCounter; + }; - // 5 UNIQUE party members - void CheckAchievement(uint64 guid) + CreatureAI* GetAI(Creature* creature) const override { - bool playerExists = false; - for (std::list<uint64>::iterator itr = impaledList.begin(); itr != impaledList.end(); ++itr) - if (guid != *itr) - playerExists = true; - - if (playerExists) - ++shareTheLove; - - impaledList.push_back(guid); + return GetGundrakAI<boss_gal_darahAI>(creature); } +}; - uint32 GetData(uint32 type) const override +// 54956, 59827 - Impaling Charge +class spell_gal_darah_impaling_charge : public SpellScriptLoader +{ + public: + spell_gal_darah_impaling_charge() : SpellScriptLoader("spell_gal_darah_impaling_charge") { } + + class spell_gal_darah_impaling_charge_SpellScript : public SpellScript { - if (type == DATA_SHARE_THE_LOVE) - return shareTheLove; + PrepareSpellScript(spell_gal_darah_impaling_charge_SpellScript); - return 0; - } + bool Validate(SpellInfo const* /*spellInfo*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_IMPALING_CHARGE_CONTROL_VEHICLE)) + return false; + return true; + } - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); + bool Load() override + { + return GetCaster()->GetVehicleKit() && GetCaster()->GetEntry() == NPC_GAL_DARAH; + } - instance->SetData(DATA_GAL_DARAH_EVENT, DONE); - } + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Unit* target = GetHitUnit()) + { + Unit* caster = GetCaster(); + target->CastSpell(caster, SPELL_IMPALING_CHARGE_CONTROL_VEHICLE, true); + caster->ToCreature()->AI()->SetGUID(target->GetGUID(), DATA_SHARE_THE_LOVE); + } + } - void KilledUnit(Unit* victim) override - { - if (victim->GetTypeId() != TYPEID_PLAYER) - return; + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_gal_darah_impaling_charge_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_CHARGE); + } + }; - Talk(SAY_SLAY); + SpellScript* GetSpellScript() const override + { + return new spell_gal_darah_impaling_charge_SpellScript(); } - }; - }; class achievement_share_the_love : public AchievementCriteriaScript { public: - achievement_share_the_love() : AchievementCriteriaScript("achievement_share_the_love") - { - } + achievement_share_the_love() : AchievementCriteriaScript("achievement_share_the_love") { } bool OnCheck(Player* /*player*/, Unit* target) override { @@ -309,5 +300,6 @@ class achievement_share_the_love : public AchievementCriteriaScript void AddSC_boss_gal_darah() { new boss_gal_darah(); + new spell_gal_darah_impaling_charge(); new achievement_share_the_love(); } diff --git a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp index 255a5ece261..7d7cac5601c 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp @@ -17,170 +17,165 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "SpellInfo.h" #include "gundrak.h" +/// @todo: implement mojo frenzy + enum Spells { - SPELL_DETERMINED_STAB = 55104, - SPELL_GROUND_TREMOR = 55142, - SPELL_NUMBING_SHOUT = 55106, - SPELL_DETERMINED_GORE = 55102, - H_SPELL_DETERMINED_GORE = 59444, - SPELL_QUAKE = 55101, - SPELL_NUMBING_ROAR = 55100, - SPELL_MOJO_FRENZY = 55163, - SPELL_TRANSFORMATION = 55098, //Periodic, The caster transforms into a powerful mammoth, increasing Physical damage done by 25% and granting immunity to Stun effects. + SPELL_DETERMINED_GORE = 55102, + SPELL_DETERMINED_STAB = 55104, + SPELL_GROUND_TREMOR = 55142, + SPELL_NUMBING_SHOUT = 55106, + SPELL_QUAKE = 55101, + SPELL_NUMBING_ROAR = 55100, + SPELL_MOJO_FRENZY = 55163, + SPELL_TRANSFORMATION = 55098, // Periodic, The caster transforms into a powerful mammoth, increasing Physical damage done by 25% and granting immunity to Stun effects. }; enum Says { - SAY_AGGRO = 0, - SAY_SLAY = 1, - SAY_DEATH = 2, - SAY_TRANSFORM = 3, - SAY_QUAKE = 4, - EMOTE_TRANSFORM = 5 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_TRANSFORM = 3, + SAY_QUAKE = 4, + EMOTE_BEGIN_TRANSFORM = 5, + EMOTE_TRANSFORMED = 6, + EMOTE_ACTIVATE_ALTAR = 7 +}; + +enum Events +{ + EVENT_GROUND_TREMOR = 1, + EVENT_NUMBLING_SHOUT, + EVENT_DETERMINED_STAB, + EVENT_TRANFORMATION }; enum Misc { - DATA_LESS_RABI = 1 + DATA_LESS_RABI = 1 }; class boss_moorabi : public CreatureScript { -public: - boss_moorabi() : CreatureScript("boss_moorabi") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI<boss_moorabiAI>(creature); - } - - struct boss_moorabiAI : public ScriptedAI - { - boss_moorabiAI(Creature* creature) : ScriptedAI(creature) - { - Initialize(); - instance = creature->GetInstanceScript(); - } - - void Initialize() - { - uiGroundTremorTimer = 18 * IN_MILLISECONDS; - uiNumblingShoutTimer = 10 * IN_MILLISECONDS; - uiDeterminedStabTimer = 20 * IN_MILLISECONDS; - uiTransformationTImer = 12 * IN_MILLISECONDS; - bPhase = false; - } - - InstanceScript* instance; - - bool bPhase; - - uint32 uiNumblingShoutTimer; - uint32 uiGroundTremorTimer; - uint32 uiDeterminedStabTimer; - uint32 uiTransformationTImer; - - void Reset() override - { - Initialize(); - - instance->SetData(DATA_MOORABI_EVENT, NOT_STARTED); - } - - void EnterCombat(Unit* /*who*/) override - { - Talk(SAY_AGGRO); - DoCast(me, SPELL_MOJO_FRENZY, true); - - instance->SetData(DATA_MOORABI_EVENT, IN_PROGRESS); - } + public: + boss_moorabi() : CreatureScript("boss_moorabi") { } - void UpdateAI(uint32 uiDiff) override + struct boss_moorabiAI : public BossAI { - //Return since we have no target - if (!UpdateVictim()) - return; - - if (!bPhase && me->HasAura(SPELL_TRANSFORMATION)) + boss_moorabiAI(Creature* creature) : BossAI(creature, DATA_MOORABI) { - bPhase = true; - me->RemoveAura(SPELL_MOJO_FRENZY); + Initialize(); } - if (uiGroundTremorTimer <= uiDiff) + void Initialize() { - Talk(SAY_QUAKE); - if (bPhase) - DoCastVictim(SPELL_QUAKE, true); - else - DoCastVictim(SPELL_GROUND_TREMOR, true); - uiGroundTremorTimer = 10*IN_MILLISECONDS; - } else uiGroundTremorTimer -= uiDiff; - - if (uiNumblingShoutTimer <= uiDiff) + _transformed = false; + } + + void Reset() override { - if (bPhase) - DoCastVictim(SPELL_NUMBING_ROAR, true); - else - DoCastVictim(SPELL_NUMBING_SHOUT, true); - uiNumblingShoutTimer = 10*IN_MILLISECONDS; - } else uiNumblingShoutTimer -=uiDiff; - - if (uiDeterminedStabTimer <= uiDiff) + Initialize(); + _Reset(); + } + + void EnterCombat(Unit* /*who*/) override { - if (bPhase) - DoCastVictim(SPELL_DETERMINED_GORE); - else - DoCastVictim(SPELL_DETERMINED_STAB, true); - uiDeterminedStabTimer = 8*IN_MILLISECONDS; - } else uiDeterminedStabTimer -=uiDiff; - - if (!bPhase && uiTransformationTImer <= uiDiff) + _EnterCombat(); + Talk(SAY_AGGRO); + DoCast(me, SPELL_MOJO_FRENZY, true); + + events.ScheduleEvent(EVENT_GROUND_TREMOR, 18 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_NUMBLING_SHOUT, 10 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_DETERMINED_STAB, 20 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_TRANFORMATION, 12 * IN_MILLISECONDS); + } + + uint32 GetData(uint32 type) const override { - Talk(EMOTE_TRANSFORM); - Talk(SAY_TRANSFORM); - DoCast(me, SPELL_TRANSFORMATION, false); - uiTransformationTImer = 10*IN_MILLISECONDS; - } else uiTransformationTImer -= uiDiff; + if (type == DATA_LESS_RABI) + return _transformed ? 0 : 1; + return 0; + } - DoMeleeAttackIfReady(); - } + void KilledUnit(Unit* victim) override + { + if (victim->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); + } - uint32 GetData(uint32 type) const override - { - if (type == DATA_LESS_RABI) - return bPhase ? 0 : 1; + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + Talk(SAY_DEATH); + Talk(EMOTE_ACTIVATE_ALTAR); + } - return 0; - } + void SpellHit(Unit* /*caster*/, SpellInfo const* spellInfo) override + { + if (spellInfo->Id == SPELL_TRANSFORMATION) + { + _transformed = true; + Talk(EMOTE_TRANSFORMED); + events.CancelEvent(EVENT_TRANFORMATION); + me->RemoveAurasDueToSpell(SPELL_MOJO_FRENZY); + } + } - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) + { + case EVENT_GROUND_TREMOR: + Talk(SAY_QUAKE); + if (_transformed) + DoCastAOE(SPELL_QUAKE); + else + DoCastAOE(SPELL_GROUND_TREMOR); + events.ScheduleEvent(eventId, 10 * IN_MILLISECONDS); + break; + case EVENT_NUMBLING_SHOUT: + if (_transformed) + DoCastAOE(SPELL_NUMBING_ROAR); + else + DoCastAOE(SPELL_NUMBING_SHOUT); + events.ScheduleEvent(eventId, 10 * IN_MILLISECONDS); + break; + case EVENT_DETERMINED_STAB: + if (_transformed) + DoCastVictim(SPELL_DETERMINED_GORE); + else + DoCastVictim(SPELL_DETERMINED_STAB); + events.ScheduleEvent(eventId, 8 * IN_MILLISECONDS); + break; + case EVENT_TRANFORMATION: + Talk(EMOTE_BEGIN_TRANSFORM); + Talk(SAY_TRANSFORM); + DoCast(me, SPELL_TRANSFORMATION); + events.ScheduleEvent(eventId, 10 * IN_MILLISECONDS); + break; + default: + break; + } + } - instance->SetData(DATA_MOORABI_EVENT, DONE); - } + private: + bool _transformed; + }; - void KilledUnit(Unit* victim) override + CreatureAI* GetAI(Creature* creature) const override { - if (victim->GetTypeId() != TYPEID_PLAYER) - return; - - Talk(SAY_SLAY); + return GetGundrakAI<boss_moorabiAI>(creature); } - }; - }; class achievement_less_rabi : public AchievementCriteriaScript { public: - achievement_less_rabi() : AchievementCriteriaScript("achievement_less_rabi") - { - } + achievement_less_rabi() : AchievementCriteriaScript("achievement_less_rabi") { } bool OnCheck(Player* /*player*/, Unit* target) override { diff --git a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp index 5db49415604..9520736cdb5 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp @@ -24,11 +24,10 @@ enum Spells { SPELL_POISON_NOVA = 55081, - H_SPELL_POISON_NOVA = 59842, SPELL_POWERFULL_BITE = 48287, - H_SPELL_POWERFULL_BITE = 59840, SPELL_VENOM_BOLT = 54970, - H_SPELL_VENOM_BOLT = 59839 + SPELL_SUMMON_SNAKES = 55060, // NYI + SPELL_SUMMON_CONSTRICTORS = 54969 // NYI }; enum Yells @@ -38,7 +37,8 @@ enum Yells SAY_DEATH = 2, SAY_SUMMON_SNAKES = 3, SAY_SUMMON_CONSTRICTORS = 4, - EMOTE_NOVA = 5 + EMOTE_NOVA = 5, + EMOTE_ACTIVATE_ALTAR = 6 }; enum Creatures @@ -50,18 +50,17 @@ enum Creatures enum ConstrictorSpells { SPELL_GRIP_OF_SLAD_RAN = 55093, - SPELL_SNAKE_WRAP = 55126, - SPELL_VENOMOUS_BITE = 54987, - H_SPELL_VENOMOUS_BITE = 58996 + SPELL_SNAKE_WRAP = 55126, // 55099 -> 55126 + SPELL_VENOMOUS_BITE = 54987 }; static Position SpawnLoc[]= { - {1783.81f, 646.637f, 133.948f, 3.71755f}, - {1775.03f, 606.586f, 134.165f, 1.43117f}, - {1717.39f, 630.041f, 129.282f, 5.96903f}, - {1765.66f, 646.542f, 134.02f, 5.11381f}, - {1716.76f, 635.159f, 129.282f, 0.191986f} + {1783.81f, 646.637f, 133.948f, 3.71755f}, + {1775.03f, 606.586f, 134.165f, 1.43117f}, + {1717.39f, 630.041f, 129.282f, 5.96903f}, + {1765.66f, 646.542f, 134.02f, 5.11381f}, + {1716.76f, 635.159f, 129.282f, 0.191986f} }; enum Misc @@ -74,17 +73,11 @@ class boss_slad_ran : public CreatureScript public: boss_slad_ran() : CreatureScript("boss_slad_ran") { } - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI<boss_slad_ranAI>(creature); - } - - struct boss_slad_ranAI : public ScriptedAI + struct boss_slad_ranAI : public BossAI { - boss_slad_ranAI(Creature* creature) : ScriptedAI(creature), lSummons(me) + boss_slad_ranAI(Creature* creature) : BossAI(creature, DATA_SLAD_RAN) { Initialize(); - instance = creature->GetInstanceScript(); } void Initialize() @@ -103,26 +96,19 @@ public: uint8 uiPhase; - std::set<uint64> lWrappedPlayers; - SummonList lSummons; - - InstanceScript* instance; + GuidSet lWrappedPlayers; void Reset() override { Initialize(); + _Reset(); lWrappedPlayers.clear(); - - lSummons.DespawnAll(); - - instance->SetData(DATA_SLAD_RAN_EVENT, NOT_STARTED); } void EnterCombat(Unit* /*who*/) override { + _EnterCombat(); Talk(SAY_AGGRO); - - instance->SetData(DATA_SLAD_RAN_EVENT, IN_PROGRESS); } void UpdateAI(uint32 diff) override @@ -181,10 +167,9 @@ public: void JustDied(Unit* /*killer*/) override { + _JustDied(); Talk(SAY_DEATH); - lSummons.DespawnAll(); - - instance->SetData(DATA_SLAD_RAN_EVENT, DONE); + Talk(EMOTE_ACTIVATE_ALTAR); } void KilledUnit(Unit* who) override @@ -193,24 +178,28 @@ public: Talk(SAY_SLAY); } - void JustSummoned(Creature* summoned) override + void JustSummoned(Creature* summon) override { - summoned->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); - lSummons.Summon(summoned); + summon->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); + summons.Summon(summon); } - void SetGUID(uint64 guid, int32 type) override + void SetGUID(ObjectGuid guid, int32 type) override { if (type == DATA_SNAKES_WHYD_IT_HAVE_TO_BE_SNAKES) lWrappedPlayers.insert(guid); } - bool WasWrapped(uint64 guid) + bool WasWrapped(ObjectGuid guid) { return lWrappedPlayers.count(guid) != 0; } }; + CreatureAI* GetAI(Creature* creature) const override + { + return GetGundrakAI<boss_slad_ranAI>(creature); + } }; class npc_slad_ran_constrictor : public CreatureScript @@ -310,9 +299,7 @@ public: class achievement_snakes_whyd_it_have_to_be_snakes : public AchievementCriteriaScript { public: - achievement_snakes_whyd_it_have_to_be_snakes() : AchievementCriteriaScript("achievement_snakes_whyd_it_have_to_be_snakes") - { - } + achievement_snakes_whyd_it_have_to_be_snakes() : AchievementCriteriaScript("achievement_snakes_whyd_it_have_to_be_snakes") { } bool OnCheck(Player* player, Unit* target) override { diff --git a/src/server/scripts/Northrend/Gundrak/gundrak.h b/src/server/scripts/Northrend/Gundrak/gundrak.h index fffeca82f39..9963c6caee8 100644 --- a/src/server/scripts/Northrend/Gundrak/gundrak.h +++ b/src/server/scripts/Northrend/Gundrak/gundrak.h @@ -15,59 +15,85 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef DEF_GUNDRAK_H -#define DEF_GUNDRAK_H +#ifndef GUNDRAK_H_ +#define GUNDRAK_H_ +#define GundrakScriptName "instance_gundrak" #define DataHeader "GD" -enum Data +uint32 const EncounterCount = 5; + +enum DataTypes { - DATA_SLAD_RAN_EVENT, - DATA_MOORABI_EVENT, - DATA_DRAKKARI_COLOSSUS_EVENT, - DATA_GAL_DARAH_EVENT, - DATA_ECK_THE_FEROCIOUS_EVENT + // Encounter Ids // Encounter States // Boss GUIDs + DATA_SLAD_RAN = 0, + DATA_DRAKKARI_COLOSSUS = 1, + DATA_MOORABI = 2, + DATA_GAL_DARAH = 3, + DATA_ECK_THE_FEROCIOUS = 4, + + // Additional Objects + DATA_SLAD_RAN_ALTAR = 5, + DATA_DRAKKARI_COLOSSUS_ALTAR = 6, + DATA_MOORABI_ALTAR = 7, + + DATA_SLAD_RAN_STATUE = 8, + DATA_DRAKKARI_COLOSSUS_STATUE = 9, + DATA_MOORABI_STATUE = 10, + DATA_GAL_DARAH_STATUE = 11, + + DATA_TRAPDOOR = 12, + DATA_COLLISION = 13, + DATA_BRIDGE = 14, + + DATA_STATUE_ACTIVATE = 15, }; -enum Data64 +enum CreatureIds { - DATA_SLAD_RAN_ALTAR, - DATA_MOORABI_ALTAR, - DATA_DRAKKARI_COLOSSUS_ALTAR, - DATA_SLAD_RAN_STATUE, - DATA_MOORABI_STATUE, - DATA_DRAKKARI_COLOSSUS_STATUE, - DATA_DRAKKARI_COLOSSUS, - DATA_STATUE_ACTIVATE + NPC_SLAD_RAN = 29304, + NPC_MOORABI = 29305, + NPC_GAL_DARAH = 29306, + NPC_DRAKKARI_COLOSSUS = 29307, + NPC_RUIN_DWELLER = 29920, + NPC_ECK_THE_FEROCIOUS = 29932, + NPC_ALTAR_TRIGGER = 30298 }; -enum mainCreatures +enum GameObjectIds { - CREATURE_RUIN_DWELLER = 29920, - CREATURE_SLAD_RAN = 29304, - CREATURE_MOORABI = 29305, - CREATURE_GALDARAH = 29306, - CREATURE_DRAKKARICOLOSSUS = 29307, - CREATURE_ECK = 29932 + GO_SLAD_RAN_ALTAR = 192518, + GO_MOORABI_ALTAR = 192519, + GO_DRAKKARI_COLOSSUS_ALTAR = 192520, + GO_SLAD_RAN_STATUE = 192564, + GO_MOORABI_STATUE = 192565, + GO_GAL_DARAH_STATUE = 192566, + GO_DRAKKARI_COLOSSUS_STATUE = 192567, + GO_ECK_THE_FEROCIOUS_DOOR = 192632, + GO_ECK_THE_FEROCIOUS_DOOR_BEHIND = 192569, + GO_GAL_DARAH_DOOR_1 = 193208, + GO_GAL_DARAH_DOOR_2 = 193209, + GO_GAL_DARAH_DOOR_3 = 192568, + GO_TRAPDOOR = 193188, + GO_COLLISION = 192633, }; -enum Gameobjects +enum SpellIds { + SPELL_FIRE_BEAM_MAMMOTH = 57068, + SPELL_FIRE_BEAM_SNAKE = 57071, + SPELL_FIRE_BEAM_ELEMENTAL = 57072 +}; - GO_SLADRAN_ALTAR = 192518, - GO_MOORABI_ALTAR = 192519, - GO_DRAKKARI_COLOSSUS_ALTAR = 192520, - GO_SLADRAN_STATUE = 192564, - GO_MOORABI_STATUE = 192565, - GO_GALDARAH_STATUE = 192566, - GO_DRAKKARI_COLOSSUS_STATUE = 192567, - GO_ECK_THE_FEROCIOUS_DOOR = 192632, - GO_ECK_THE_FEROCIOUS_DOOR_BEHIND = 192569, - GO_GALDARAH_DOOR1 = 193208, - GO_GALDARAH_DOOR2 = 193209, - GO_GALDARAH_DOOR3 = 192568, - GO_BRIDGE = 193188, - GO_COLLISION = 192633 +enum InstanceMisc +{ + TIMER_STATUE_ACTIVATION = 3500 }; -#endif +template<class AI> +inline AI* GetGundrakAI(Creature* creature) +{ + return GetInstanceAI<AI>(creature, GundrakScriptName); +} + +#endif // GUNDRAK_H_ diff --git a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp index 388d43e8dca..31722b06be8 100644 --- a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp +++ b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp @@ -15,577 +15,354 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" #include "InstanceScript.h" -#include "gundrak.h" #include "Player.h" -#include "TemporarySummon.h" +#include "ScriptMgr.h" +#include "WorldSession.h" +#include "gundrak.h" + +DoorData const doorData[] = +{ + { GO_GAL_DARAH_DOOR_1, DATA_GAL_DARAH, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { GO_GAL_DARAH_DOOR_2, DATA_GAL_DARAH, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { GO_GAL_DARAH_DOOR_3, DATA_GAL_DARAH, DOOR_TYPE_ROOM, BOUNDARY_NONE }, + { GO_ECK_THE_FEROCIOUS_DOOR, DATA_MOORABI, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { GO_ECK_THE_FEROCIOUS_DOOR_BEHIND, DATA_ECK_THE_FEROCIOUS, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END +}; -#define MAX_ENCOUNTER 5 +ObjectData const creatureData[] = +{ + { NPC_DRAKKARI_COLOSSUS, DATA_DRAKKARI_COLOSSUS }, + { 0, 0 } // END +}; -/* GunDrak encounters: -0 - Slad'Ran -1 - Moorabi -2 - Drakkari Colossus -3 - Gal'Darah -4 - Eck the Ferocious -*/ +ObjectData const gameObjectData[] = +{ + { GO_SLAD_RAN_ALTAR, DATA_SLAD_RAN_ALTAR }, + { GO_MOORABI_ALTAR, DATA_MOORABI_ALTAR }, + { GO_DRAKKARI_COLOSSUS_ALTAR, DATA_DRAKKARI_COLOSSUS_ALTAR }, + { GO_SLAD_RAN_STATUE, DATA_SLAD_RAN_STATUE }, + { GO_MOORABI_STATUE, DATA_MOORABI_STATUE }, + { GO_DRAKKARI_COLOSSUS_STATUE, DATA_DRAKKARI_COLOSSUS_STATUE }, + { GO_GAL_DARAH_STATUE, DATA_GAL_DARAH_STATUE }, + { GO_TRAPDOOR, DATA_TRAPDOOR }, + { GO_COLLISION, DATA_COLLISION }, + { 0, 0 } // END +}; Position const EckSpawnPoint = { 1643.877930f, 936.278015f, 107.204948f, 0.668432f }; class instance_gundrak : public InstanceMapScript { -public: - instance_gundrak() : InstanceMapScript("instance_gundrak", 604) { } - - InstanceScript* GetInstanceScript(InstanceMap* map) const override - { - return new instance_gundrak_InstanceMapScript(map); - } + public: + instance_gundrak() : InstanceMapScript(GundrakScriptName, 604) { } - struct instance_gundrak_InstanceMapScript : public InstanceScript - { - instance_gundrak_InstanceMapScript(Map* map) : InstanceScript(map) + struct instance_gundrak_InstanceMapScript : public InstanceScript { - SetHeaders(DataHeader); - isHeroic = map->IsHeroic(); - } - - bool isHeroic; - bool spawnSupport; - - uint32 timer; - uint32 phase; - uint64 toActivate; - - uint64 sladRanGUID; - uint64 moorabiGUID; - uint64 drakkariColossusGUID; - uint64 galDarahGUID; - uint64 eckTheFerociousGUID; - - uint64 sladRanAltarGUID; - uint64 moorabiAltarGUID; - uint64 drakkariColossusAltarGUID; - uint64 sladRanStatueGUID; - uint64 moorabiStatueGUID; - uint64 drakkariColossusStatueGUID; - uint64 galDarahStatueGUID; - uint64 eckTheFerociousDoorGUID; - uint64 eckTheFerociousDoorBehindGUID; - uint64 galDarahDoor1GUID; - uint64 galDarahDoor2GUID; - uint64 galDarahDoor3GUID; - uint64 bridgeGUID; - uint64 collisionGUID; - - uint32 m_auiEncounter[MAX_ENCOUNTER]; - - GOState sladRanStatueState; - GOState moorabiStatueState; - GOState drakkariColossusStatueState; - GOState galDarahStatueState; - GOState bridgeState; - GOState collisionState; - - std::set<uint64> DwellerGUIDs; - - std::string str_data; - - void Initialize() override - { - spawnSupport = false; - - timer = 0; - phase = 0; - toActivate = 0; - - sladRanGUID = 0; - moorabiGUID = 0; - drakkariColossusGUID = 0; - galDarahGUID = 0; - eckTheFerociousGUID = 0; - - sladRanAltarGUID = 0; - moorabiAltarGUID = 0; - drakkariColossusAltarGUID = 0; - - sladRanStatueGUID = 0; - moorabiStatueGUID = 0; - drakkariColossusStatueGUID = 0; - galDarahStatueGUID = 0; - - eckTheFerociousDoorGUID = 0; - eckTheFerociousDoorBehindGUID = 0; - galDarahDoor1GUID = 0; - galDarahDoor2GUID = 0; - galDarahDoor3GUID = 0; - - bridgeGUID = 0; - collisionGUID = 0; - - sladRanStatueState = GO_STATE_ACTIVE; - moorabiStatueState = GO_STATE_ACTIVE; - drakkariColossusStatueState = GO_STATE_ACTIVE; - galDarahStatueState = GO_STATE_READY; - bridgeState = GO_STATE_ACTIVE; - collisionState = GO_STATE_READY; - - DwellerGUIDs.clear(); - - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - } - - bool IsEncounterInProgress() const override - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - return true; - - return false; - } + instance_gundrak_InstanceMapScript(Map* map) : InstanceScript(map) + { + SetHeaders(DataHeader); + SetBossNumber(EncounterCount); + LoadDoorData(doorData); + LoadObjectData(creatureData, gameObjectData); + + SladRanStatueState = GO_STATE_ACTIVE; + DrakkariColossusStatueState = GO_STATE_ACTIVE; + MoorabiStatueState = GO_STATE_ACTIVE; + } - void OnCreatureCreate(Creature* creature) override - { - switch (creature->GetEntry()) + void OnCreatureCreate(Creature* creature) override { - case CREATURE_SLAD_RAN: - sladRanGUID = creature->GetGUID(); - break; - case CREATURE_MOORABI: - moorabiGUID = creature->GetGUID(); - break; - case CREATURE_GALDARAH: - galDarahGUID = creature->GetGUID(); - break; - case CREATURE_DRAKKARICOLOSSUS: - drakkariColossusGUID = creature->GetGUID(); - break; - case CREATURE_ECK: - eckTheFerociousGUID = creature->GetGUID(); - break; - case CREATURE_RUIN_DWELLER: - if (creature->IsAlive()) - DwellerGUIDs.insert(creature->GetGUID()); - break; + switch (creature->GetEntry()) + { + case NPC_RUIN_DWELLER: + if (creature->IsAlive()) + DwellerGUIDs.insert(creature->GetGUID()); + break; + default: + break; + } + + InstanceScript::OnCreatureCreate(creature); } - } - void OnGameObjectCreate(GameObject* go) override - { - switch (go->GetEntry()) + void OnGameObjectCreate(GameObject* go) override { - case GO_SLADRAN_ALTAR: - sladRanAltarGUID = go->GetGUID(); - // Make sure that they start out as unusuable - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - if (m_auiEncounter[0] == DONE) - { - if (sladRanStatueState == GO_STATE_ACTIVE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - else + switch (go->GetEntry()) + { + case GO_SLAD_RAN_ALTAR: + if (GetBossState(DATA_SLAD_RAN) == DONE) { - ++phase; - go->SetGoState(GO_STATE_ACTIVE); + if (SladRanStatueState == GO_STATE_ACTIVE) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + else + go->SetGoState(GO_STATE_ACTIVE); } - } - break; - case GO_MOORABI_ALTAR: - moorabiAltarGUID = go->GetGUID(); - // Make sure that they start out as unusuable - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - if (m_auiEncounter[0] == DONE) - { - if (moorabiStatueState == GO_STATE_ACTIVE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - else + break; + case GO_MOORABI_ALTAR: + if (GetBossState(DATA_MOORABI) == DONE) { - ++phase; - go->SetGoState(GO_STATE_ACTIVE); + if (MoorabiStatueState == GO_STATE_ACTIVE) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + else + go->SetGoState(GO_STATE_ACTIVE); } - } - break; - case GO_DRAKKARI_COLOSSUS_ALTAR: - drakkariColossusAltarGUID = go->GetGUID(); - // Make sure that they start out as unusuable - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - if (m_auiEncounter[0] == DONE) - { - if (drakkariColossusStatueState == GO_STATE_ACTIVE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - else + break; + case GO_DRAKKARI_COLOSSUS_ALTAR: + if (GetBossState(DATA_DRAKKARI_COLOSSUS) == DONE) { - ++phase; - go->SetGoState(GO_STATE_ACTIVE); + if (DrakkariColossusStatueState == GO_STATE_ACTIVE) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + else + go->SetGoState(GO_STATE_ACTIVE); } - } - break; - case GO_SLADRAN_STATUE: - sladRanStatueGUID = go->GetGUID(); - go->SetGoState(sladRanStatueState); - break; - case GO_MOORABI_STATUE: - moorabiStatueGUID = go->GetGUID(); - go->SetGoState(moorabiStatueState); - break; - case GO_GALDARAH_STATUE: - galDarahStatueGUID = go->GetGUID(); - go->SetGoState(galDarahStatueState); - break; - case GO_DRAKKARI_COLOSSUS_STATUE: - drakkariColossusStatueGUID = go->GetGUID(); - go->SetGoState(drakkariColossusStatueState); - break; - case GO_ECK_THE_FEROCIOUS_DOOR: - eckTheFerociousDoorGUID = go->GetGUID(); - if (isHeroic && m_auiEncounter[1] == DONE) - HandleGameObject(0, true, go); - break; - case GO_ECK_THE_FEROCIOUS_DOOR_BEHIND: - eckTheFerociousDoorBehindGUID = go->GetGUID(); - if (isHeroic && m_auiEncounter[4] == DONE) - HandleGameObject(0, true, go); - break; - case GO_GALDARAH_DOOR1: - galDarahDoor1GUID = go->GetGUID(); - if (m_auiEncounter[3] == DONE) - HandleGameObject(0, true, go); - break; - case GO_GALDARAH_DOOR2: - galDarahDoor2GUID = go->GetGUID(); - if (m_auiEncounter[3] == DONE) - HandleGameObject(0, true, go); - break; - case GO_BRIDGE: - bridgeGUID = go->GetGUID(); - go->SetGoState(bridgeState); - break; - case GO_COLLISION: - collisionGUID = go->GetGUID(); - go->SetGoState(collisionState); - - // Can't spawn here with SpawnGameObject because go isn't added to world yet... - if (collisionState == GO_STATE_ACTIVE_ALTERNATIVE) - spawnSupport = true; - break; - case GO_GALDARAH_DOOR3: - galDarahDoor3GUID = go->GetGUID(); - if (m_auiEncounter[3] != IN_PROGRESS) - HandleGameObject(galDarahDoor3GUID, true, go); - break; + break; + case GO_SLAD_RAN_STATUE: + go->SetGoState(SladRanStatueState); + break; + case GO_MOORABI_STATUE: + go->SetGoState(MoorabiStatueState); + break; + case GO_GAL_DARAH_STATUE: + go->SetGoState(CheckRequiredBosses(DATA_GAL_DARAH) ? GO_STATE_ACTIVE_ALTERNATIVE : GO_STATE_READY); + break; + case GO_DRAKKARI_COLOSSUS_STATUE: + go->SetGoState(DrakkariColossusStatueState); + break; + case GO_ECK_THE_FEROCIOUS_DOOR: + // Don't store door on non-heroic + if (!instance->IsHeroic()) + return; + break; + case GO_TRAPDOOR: + go->SetGoState(CheckRequiredBosses(DATA_GAL_DARAH) ? GO_STATE_READY : GO_STATE_ACTIVE); + break; + case GO_COLLISION: + go->SetGoState(CheckRequiredBosses(DATA_GAL_DARAH) ? GO_STATE_ACTIVE : GO_STATE_READY); + break; + default: + break; + } + + InstanceScript::OnGameObjectCreate(go); } - } - void OnUnitDeath(Unit* unit) override - { - if (unit->GetEntry() == CREATURE_RUIN_DWELLER) + void OnUnitDeath(Unit* unit) override { - DwellerGUIDs.erase(unit->GetGUID()); + if (unit->GetEntry() == NPC_RUIN_DWELLER) + { + DwellerGUIDs.erase(unit->GetGUID()); - if (DwellerGUIDs.empty()) - unit->SummonCreature(CREATURE_ECK, EckSpawnPoint, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300 * IN_MILLISECONDS); + if (DwellerGUIDs.empty()) + unit->SummonCreature(NPC_ECK_THE_FEROCIOUS, EckSpawnPoint, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300 * IN_MILLISECONDS); + } } - } - void SetData(uint32 type, uint32 data) override - { - switch (type) + bool SetBossState(uint32 type, EncounterState state) override { - case DATA_SLAD_RAN_EVENT: - m_auiEncounter[0] = data; - if (data == DONE) - { - GameObject* go = instance->GetGameObject(sladRanAltarGUID); - if (go) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - } - break; - case DATA_MOORABI_EVENT: - m_auiEncounter[1] = data; - if (data == DONE) - { - GameObject* go = instance->GetGameObject(moorabiAltarGUID); - if (go) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - if (isHeroic) - HandleGameObject(eckTheFerociousDoorGUID, true); - } - break; - case DATA_DRAKKARI_COLOSSUS_EVENT: - m_auiEncounter[2] = data; - if (data == DONE) + if (!InstanceScript::SetBossState(type, state)) + return false; + + switch (type) { - GameObject* go = instance->GetGameObject(drakkariColossusAltarGUID); - if (go) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + case DATA_SLAD_RAN: + if (state == DONE) + if (GameObject* go = GetGameObject(DATA_SLAD_RAN_ALTAR)) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + break; + case DATA_DRAKKARI_COLOSSUS: + if (state == DONE) + if (GameObject* go = GetGameObject(DATA_DRAKKARI_COLOSSUS_ALTAR)) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + break; + case DATA_MOORABI: + if (state == DONE) + if (GameObject* go = GetGameObject(DATA_MOORABI_ALTAR)) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + break; + default: + break; } - break; - case DATA_GAL_DARAH_EVENT: - m_auiEncounter[3] = data; - if (data == DONE) + + return true; + } + + bool CheckRequiredBosses(uint32 bossId, Player const* player = nullptr) const override + { + if (player && player->GetSession()->HasPermission(rbac::RBAC_PERM_SKIP_CHECK_INSTANCE_REQUIRED_BOSSES)) + return true; + + switch (bossId) { - HandleGameObject(galDarahDoor1GUID, true); - HandleGameObject(galDarahDoor2GUID, true); + case DATA_ECK_THE_FEROCIOUS: + if (!instance->IsHeroic() || GetBossState(DATA_MOORABI) != DONE) + return false; + break; + case DATA_GAL_DARAH: + if (SladRanStatueState != GO_STATE_ACTIVE_ALTERNATIVE + || DrakkariColossusStatueState != GO_STATE_ACTIVE_ALTERNATIVE + || MoorabiStatueState != GO_STATE_ACTIVE_ALTERNATIVE) + return false; + break; + default: + break; } - HandleGameObject(galDarahDoor3GUID, data == IN_PROGRESS ? false : true); - break; - case DATA_ECK_THE_FEROCIOUS_EVENT: - m_auiEncounter[4] = data; - if (isHeroic && data == DONE) - HandleGameObject(eckTheFerociousDoorBehindGUID, true); - break; - } - if (data == DONE) - SaveToDB(); - } + return true; + } - void SetData64(uint32 type, uint64 data) override - { - if (type == DATA_STATUE_ACTIVATE) + bool IsBridgeReady() const { - toActivate = data; - timer = 3500; - ++phase; + return SladRanStatueState == GO_STATE_READY && DrakkariColossusStatueState == GO_STATE_READY && MoorabiStatueState == GO_STATE_READY; } - } - uint32 GetData(uint32 type) const override - { - switch (type) + void SetData(uint32 type, uint32 data) override { - case DATA_SLAD_RAN_EVENT: - return m_auiEncounter[0]; - case DATA_MOORABI_EVENT: - return m_auiEncounter[1]; - case DATA_GAL_DARAH_EVENT: - return m_auiEncounter[2]; - case DATA_DRAKKARI_COLOSSUS_EVENT: - return m_auiEncounter[3]; - case DATA_ECK_THE_FEROCIOUS_EVENT: - return m_auiEncounter[4]; + if (type == DATA_STATUE_ACTIVATE) + { + switch (data) + { + case GO_SLAD_RAN_ALTAR: + Events.ScheduleEvent(DATA_SLAD_RAN_STATUE, TIMER_STATUE_ACTIVATION); + break; + case GO_DRAKKARI_COLOSSUS_ALTAR: + Events.ScheduleEvent(DATA_DRAKKARI_COLOSSUS_STATUE, TIMER_STATUE_ACTIVATION); + break; + case GO_MOORABI_ALTAR: + Events.ScheduleEvent(DATA_MOORABI_STATUE, TIMER_STATUE_ACTIVATION); + break; + default: + break; + } + } } - return 0; - } - - uint64 GetData64(uint32 type) const override - { - switch (type) + void WriteSaveDataMore(std::ostringstream& data) override { - case DATA_SLAD_RAN_ALTAR: - return sladRanAltarGUID; - case DATA_MOORABI_ALTAR: - return moorabiAltarGUID; - case DATA_DRAKKARI_COLOSSUS_ALTAR: - return drakkariColossusAltarGUID; - case DATA_SLAD_RAN_STATUE: - return sladRanStatueGUID; - case DATA_MOORABI_STATUE: - return moorabiStatueGUID; - case DATA_DRAKKARI_COLOSSUS_STATUE: - return drakkariColossusStatueGUID; - case DATA_DRAKKARI_COLOSSUS: - return drakkariColossusGUID; - case DATA_STATUE_ACTIVATE: - return toActivate; + data << uint32(SladRanStatueState) << ' '; + data << uint32(DrakkariColossusStatueState) << ' '; + data << uint32(MoorabiStatueState) << ' '; } - return 0; - } + void ReadSaveDataMore(std::istringstream& data) override + { + uint32 temp; - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; + data >> temp; + SladRanStatueState = GOState(temp); - std::ostringstream saveStream; - saveStream << "G D " << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' - << m_auiEncounter[2] << ' ' << m_auiEncounter[3] << ' ' << m_auiEncounter[4] << ' ' - << (sladRanStatueGUID ? GetObjState(sladRanStatueGUID) : GO_STATE_ACTIVE) << ' ' << (moorabiStatueGUID ? GetObjState(moorabiStatueGUID) : GO_STATE_ACTIVE) << ' ' - << (drakkariColossusStatueGUID ? GetObjState(drakkariColossusStatueGUID) : GO_STATE_ACTIVE) << ' ' << (galDarahStatueGUID ? GetObjState(galDarahStatueGUID) : GO_STATE_READY) << ' ' - << (bridgeGUID ? GetObjState(bridgeGUID) : GO_STATE_ACTIVE) << ' ' << (collisionGUID ? GetObjState(collisionGUID) : GO_STATE_READY); + data >> temp; + DrakkariColossusStatueState = GOState(temp); - str_data = saveStream.str(); + data >> temp; + MoorabiStatueState = GOState(temp); - OUT_SAVE_INST_DATA_COMPLETE; - return str_data; - } + if (IsBridgeReady()) + Events.ScheduleEvent(DATA_BRIDGE, TIMER_STATUE_ACTIVATION); + } - void Load(const char* in) override - { - if (!in) + void ToggleGameObject(uint32 type, GOState state) { - OUT_LOAD_INST_DATA_FAIL; - return; + if (GameObject* go = GetGameObject(type)) + go->SetGoState(state); + + switch (type) + { + case DATA_SLAD_RAN_STATUE: + SladRanStatueState = state; + break; + case DATA_DRAKKARI_COLOSSUS_STATUE: + DrakkariColossusStatueState = state; + break; + case DATA_MOORABI_STATUE: + MoorabiStatueState = state; + break; + default: + break; + } } - OUT_LOAD_INST_DATA(in); + void Update(uint32 diff) override + { + Events.Update(diff); - char dataHead1, dataHead2; - uint16 data0, data1, data2, data3, data4, data5, data6, data7, data8, data9, data10; + while (uint32 eventId = Events.ExecuteEvent()) + { + uint32 spellId = 0; + uint32 altarId = 0; + switch (eventId) + { + case DATA_SLAD_RAN_STATUE: + spellId = SPELL_FIRE_BEAM_SNAKE; + altarId = DATA_SLAD_RAN_ALTAR; + break; + case DATA_DRAKKARI_COLOSSUS_STATUE: + spellId = SPELL_FIRE_BEAM_ELEMENTAL; + altarId = DATA_DRAKKARI_COLOSSUS_ALTAR; + break; + case DATA_MOORABI_STATUE: + spellId = SPELL_FIRE_BEAM_MAMMOTH; + altarId = DATA_MOORABI_ALTAR; + break; + case DATA_BRIDGE: + for (uint32 type = DATA_SLAD_RAN_STATUE; type <= DATA_GAL_DARAH_STATUE; ++type) + ToggleGameObject(type, GO_STATE_ACTIVE_ALTERNATIVE); + ToggleGameObject(DATA_TRAPDOOR, GO_STATE_READY); + ToggleGameObject(DATA_COLLISION, GO_STATE_ACTIVE); + SaveToDB(); + return; + default: + return; + } - std::istringstream loadStream(in); - loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3 - >> data4 >> data5 >> data6 >> data7 >> data8 >> data9 >> data10; + if (GameObject* altar = GetGameObject(altarId)) + if (Creature* trigger = altar->FindNearestCreature(NPC_ALTAR_TRIGGER, 10.0f)) + trigger->CastSpell((Unit*)nullptr, spellId, true); - if (dataHead1 == 'G' && dataHead2 == 'D') - { - m_auiEncounter[0] = data0; - m_auiEncounter[1] = data1; - m_auiEncounter[2] = data2; - m_auiEncounter[3] = data3; - m_auiEncounter[4] = data4; - sladRanStatueState = GOState(data5); - moorabiStatueState = GOState(data6); - drakkariColossusStatueState = GOState(data7); - galDarahStatueState = GOState(data8); - bridgeState = GOState(data9); - collisionState = GOState(data10); - - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - m_auiEncounter[i] = NOT_STARTED; - } else OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } + // eventId equals statueId + ToggleGameObject(eventId, GO_STATE_READY); - void Update(uint32 diff) override - { - // Spawn the support for the bridge if necessary - if (spawnSupport) - { - if (GameObject* collision = instance->GetGameObject(collisionGUID)) - collision->SummonGameObject(192743, collision->GetPositionX(), collision->GetPositionY(), collision->GetPositionZ(), collision->GetOrientation(), 0, 0, 0, 0, 0); - spawnSupport = false; - } - - // If there is nothing to activate, then return - if (!toActivate) - return; - - if (timer < diff) - { - timer = 0; - if (toActivate == bridgeGUID) - { - GameObject* bridge = instance->GetGameObject(bridgeGUID); - GameObject* collision = instance->GetGameObject(collisionGUID); - GameObject* sladRanStatue = instance->GetGameObject(sladRanStatueGUID); - GameObject* moorabiStatue = instance->GetGameObject(moorabiStatueGUID); - GameObject* drakkariColossusStatue = instance->GetGameObject(drakkariColossusStatueGUID); - GameObject* galDarahStatue = instance->GetGameObject(galDarahStatueGUID); - - toActivate = 0; - - if (bridge && collision && sladRanStatue && moorabiStatue && drakkariColossusStatue && galDarahStatue) - { - bridge->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); - collision->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); - sladRanStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); - moorabiStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); - drakkariColossusStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); - galDarahStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); - - // Add the GO that solidifies the bridge so you can walk on it - spawnSupport = true; - SaveToDB(); - } - } - else - { - uint32 spell = 0; - GameObject* altar = NULL; - if (toActivate == sladRanStatueGUID) - { - spell = 57071; - altar = instance->GetGameObject(sladRanAltarGUID); - } - else if (toActivate == moorabiStatueGUID) - { - spell = 57068; - altar = instance->GetGameObject(moorabiAltarGUID); - } - else if (toActivate == drakkariColossusStatueGUID) - { - spell = 57072; - altar = instance->GetGameObject(drakkariColossusAltarGUID); - } - - // This is a workaround to make the beam cast properly. The caster should be ID 30298 but since the spells - // all are with scripted target for that same ID, it will hit itself. - if (altar) - if (Creature* trigger = altar->SummonCreature(18721, altar->GetPositionX(), altar->GetPositionY(), altar->GetPositionZ() + 3, altar->GetOrientation(), TEMPSUMMON_CORPSE_DESPAWN, 5000)) - { - // Set the trigger model to invisible - trigger->SetDisplayId(11686); - trigger->CastSpell(trigger, spell, false); - } - - if (GameObject* statueGO = instance->GetGameObject(toActivate)) - statueGO->SetGoState(GO_STATE_READY); - - toActivate = 0; - - if (phase == 3) - SetData64(DATA_STATUE_ACTIVATE, bridgeGUID); - else - SaveToDB(); // Don't save in between last statue and bridge turning in case of crash leading to stuck instance + if (IsBridgeReady()) + Events.ScheduleEvent(DATA_BRIDGE, TIMER_STATUE_ACTIVATION); + + SaveToDB(); } } - else - timer -= diff; - } - GOState GetObjState(uint64 guid) - { - if (GameObject* go = instance->GetGameObject(guid)) - return go->GetGoState(); - return GO_STATE_ACTIVE; - } - }; + protected: + EventMap Events; + GuidSet DwellerGUIDs; + + GOState SladRanStatueState; + GOState DrakkariColossusStatueState; + GOState MoorabiStatueState; + }; + InstanceScript* GetInstanceScript(InstanceMap* map) const override + { + return new instance_gundrak_InstanceMapScript(map); + } }; class go_gundrak_altar : public GameObjectScript { -public: - go_gundrak_altar() : GameObjectScript("go_gundrak_altar") { } - - bool OnGossipHello(Player* /*player*/, GameObject* go) override - { - InstanceScript* instance = go->GetInstanceScript(); - uint64 statueGUID = 0; + public: + go_gundrak_altar() : GameObjectScript("go_gundrak_altar") { } - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - go->SetGoState(GO_STATE_ACTIVE); - - if (instance) + bool OnGossipHello(Player* /*player*/, GameObject* go) override { - switch (go->GetEntry()) - { - case GO_SLADRAN_ALTAR: - statueGUID = instance->GetData64(DATA_SLAD_RAN_STATUE); - break; - case GO_MOORABI_ALTAR: - statueGUID = instance->GetData64(DATA_MOORABI_STATUE); - break; - case GO_DRAKKARI_COLOSSUS_ALTAR: - statueGUID = instance->GetData64(DATA_DRAKKARI_COLOSSUS_STATUE); - break; - } + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + go->SetGoState(GO_STATE_ACTIVE); - if (!instance->GetData64(DATA_STATUE_ACTIVATE)) + if (InstanceScript* instance = go->GetInstanceScript()) { - instance->SetData64(DATA_STATUE_ACTIVATE, statueGUID); - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - go->SetGoState(GO_STATE_ACTIVE); + instance->SetData(DATA_STATUE_ACTIVATE, go->GetEntry()); + return true; } - return true; - } - return false; - } + return false; + } }; void AddSC_instance_gundrak() diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp index 4b3c50d1388..640c06b1c28 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp @@ -216,19 +216,19 @@ class boss_blood_council_controller : public CreatureScript DoCast(me, SPELL_INVOCATION_OF_BLOOD_VALANAR); - if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID))) + if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID))) { instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, keleseth); DoZoneInCombat(keleseth); } - if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID))) + if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID))) { instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, taldaram); DoZoneInCombat(taldaram); } - if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID))) + if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID))) { instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, valanar); DoZoneInCombat(valanar); @@ -236,16 +236,16 @@ class boss_blood_council_controller : public CreatureScript events.ScheduleEvent(EVENT_INVOCATION_OF_BLOOD, 46500); - _invocationOrder[0] = InvocationData(instance->GetData64(DATA_PRINCE_VALANAR_GUID), SPELL_INVOCATION_OF_BLOOD_VALANAR, EMOTE_VALANAR_INVOCATION, 71070); + _invocationOrder[0] = InvocationData(instance->GetGuidData(DATA_PRINCE_VALANAR_GUID), SPELL_INVOCATION_OF_BLOOD_VALANAR, EMOTE_VALANAR_INVOCATION, 71070); if (urand(0, 1)) { - _invocationOrder[1] = InvocationData(instance->GetData64(DATA_PRINCE_TALDARAM_GUID), SPELL_INVOCATION_OF_BLOOD_TALDARAM, EMOTE_TALDARAM_INVOCATION, 71081); - _invocationOrder[2] = InvocationData(instance->GetData64(DATA_PRINCE_KELESETH_GUID), SPELL_INVOCATION_OF_BLOOD_KELESETH, EMOTE_KELESETH_INVOCATION, 71080); + _invocationOrder[1] = InvocationData(instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID), SPELL_INVOCATION_OF_BLOOD_TALDARAM, EMOTE_TALDARAM_INVOCATION, 71081); + _invocationOrder[2] = InvocationData(instance->GetGuidData(DATA_PRINCE_KELESETH_GUID), SPELL_INVOCATION_OF_BLOOD_KELESETH, EMOTE_KELESETH_INVOCATION, 71080); } else { - _invocationOrder[1] = InvocationData(instance->GetData64(DATA_PRINCE_KELESETH_GUID), SPELL_INVOCATION_OF_BLOOD_KELESETH, EMOTE_KELESETH_INVOCATION, 71080); - _invocationOrder[2] = InvocationData(instance->GetData64(DATA_PRINCE_TALDARAM_GUID), SPELL_INVOCATION_OF_BLOOD_TALDARAM, EMOTE_TALDARAM_INVOCATION, 71081); + _invocationOrder[1] = InvocationData(instance->GetGuidData(DATA_PRINCE_KELESETH_GUID), SPELL_INVOCATION_OF_BLOOD_KELESETH, EMOTE_KELESETH_INVOCATION, 71080); + _invocationOrder[2] = InvocationData(instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID), SPELL_INVOCATION_OF_BLOOD_TALDARAM, EMOTE_TALDARAM_INVOCATION, 71081); } } @@ -259,13 +259,13 @@ class boss_blood_council_controller : public CreatureScript void JustReachedHome() override { _resetCounter = 0; - if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID))) + if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID))) keleseth->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID))) + if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID))) taldaram->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID))) + if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID))) valanar->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } @@ -335,12 +335,12 @@ class boss_blood_council_controller : public CreatureScript private: struct InvocationData { - uint64 guid; + ObjectGuid guid; uint32 spellId; uint32 textId; uint32 visualSpell; - InvocationData(uint64 _guid, uint32 _spellId, uint32 _textId, uint32 _visualSpell) + InvocationData(ObjectGuid _guid, uint32 _spellId, uint32 _textId, uint32 _visualSpell) { guid = _guid; spellId = _spellId; @@ -348,7 +348,7 @@ class boss_blood_council_controller : public CreatureScript visualSpell = _visualSpell; } - InvocationData() : guid(0), spellId(0), textId(0), visualSpell(0) { } + InvocationData() : spellId(0), textId(0), visualSpell(0) { } } _invocationOrder[3]; uint32 _invocationStage; @@ -400,7 +400,7 @@ class boss_prince_keleseth_icc : public CreatureScript void EnterCombat(Unit* /*who*/) override { - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL))) DoZoneInCombat(controller); events.ScheduleEvent(EVENT_BERSERK, 600000); @@ -428,7 +428,7 @@ class boss_prince_keleseth_icc : public CreatureScript instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); me->SetHealth(_spawnHealth); _isEmpowered = false; - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL))) { me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); controller->AI()->SetData(0, 1); @@ -515,10 +515,10 @@ class boss_prince_keleseth_icc : public CreatureScript if (!CheckBoundary(me)) { EnterEvadeMode(); - if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID))) + if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID))) taldaram->AI()->EnterEvadeMode(); - if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID))) + if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID))) valanar->AI()->EnterEvadeMode(); return false; @@ -620,7 +620,7 @@ class boss_prince_taldaram_icc : public CreatureScript void EnterCombat(Unit* /*who*/) override { - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL))) DoZoneInCombat(controller); events.ScheduleEvent(EVENT_BERSERK, 600000); @@ -644,7 +644,7 @@ class boss_prince_taldaram_icc : public CreatureScript instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); me->SetHealth(_spawnHealth); _isEmpowered = false; - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL))) { me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); controller->AI()->SetData(0, 1); @@ -734,10 +734,10 @@ class boss_prince_taldaram_icc : public CreatureScript if (!CheckBoundary(me)) { EnterEvadeMode(); - if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID))) + if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID))) keleseth->AI()->EnterEvadeMode(); - if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID))) + if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID))) valanar->AI()->EnterEvadeMode(); return false; @@ -844,7 +844,7 @@ class boss_prince_valanar_icc : public CreatureScript void EnterCombat(Unit* /*who*/) override { - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL))) DoZoneInCombat(controller); events.ScheduleEvent(EVENT_BERSERK, 600000); @@ -868,7 +868,7 @@ class boss_prince_valanar_icc : public CreatureScript instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); me->SetHealth(me->GetMaxHealth()); _isEmpowered = false; - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL))) { me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); controller->AI()->SetData(0, 1); @@ -973,10 +973,10 @@ class boss_prince_valanar_icc : public CreatureScript if (!CheckBoundary(me)) { EnterEvadeMode(); - if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID))) + if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID))) keleseth->AI()->EnterEvadeMode(); - if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID))) + if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID))) taldaram->AI()->EnterEvadeMode(); return false; @@ -1112,13 +1112,13 @@ class npc_blood_queen_lana_thel : public CreatureScript _events.Reset(); // remove Feign Death from princes - if (Creature* keleseth = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_PRINCE_KELESETH_GUID))) + if (Creature* keleseth = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_PRINCE_KELESETH_GUID))) keleseth->AI()->DoAction(ACTION_STAND_UP); - if (Creature* taldaram = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_PRINCE_TALDARAM_GUID))) + if (Creature* taldaram = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID))) taldaram->AI()->DoAction(ACTION_STAND_UP); - if (Creature* valanar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_PRINCE_VALANAR_GUID))) + if (Creature* valanar = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_PRINCE_VALANAR_GUID))) { valanar->AI()->DoAction(ACTION_STAND_UP); valanar->SetHealth(valanar->GetMaxHealth()); @@ -1148,7 +1148,6 @@ class npc_ball_of_flame : public CreatureScript npc_ball_of_flameAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { _despawnTimer = 0; - _chaseGUID = 0; } void Reset() override @@ -1163,16 +1162,16 @@ class npc_ball_of_flame : public CreatureScript void MovementInform(uint32 type, uint32 id) override { - if (type == CHASE_MOTION_TYPE && id == GUID_LOPART(_chaseGUID) && _chaseGUID) + if (type == CHASE_MOTION_TYPE && id == _chaseGUID.GetCounter() && _chaseGUID) { me->RemoveAurasDueToSpell(SPELL_BALL_OF_FLAMES_PERIODIC); DoCast(me, SPELL_FLAMES); _despawnTimer = 1000; - _chaseGUID = 0; + _chaseGUID.Clear(); } } - void SetGUID(uint64 guid, int32 /*type*/) override + void SetGUID(ObjectGuid guid, int32 /*type*/) override { _chaseGUID = guid; } @@ -1213,7 +1212,7 @@ class npc_ball_of_flame : public CreatureScript } private: - uint64 _chaseGUID; + ObjectGuid _chaseGUID; InstanceScript* _instance; uint32 _despawnTimer; }; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp index 29d50f1db2a..8a325dee7b4 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp @@ -148,7 +148,7 @@ class boss_blood_queen_lana_thel : public CreatureScript void Initialize() { - _offtankGUID = 0; + _offtankGUID.Clear(); _creditBloodQuickening = false; _killMinchar = false; } @@ -210,7 +210,7 @@ class boss_blood_queen_lana_thel : public CreatureScript minchar->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND); minchar->SetCanFly(false); minchar->RemoveAllAuras(); - minchar->GetMotionMaster()->MoveCharge(4629.3711f, 2782.6089f, 401.5301f, SPEED_CHARGE/3.0f); + minchar->GetMotionMaster()->MoveCharge(4629.3711f, 2782.6089f, 401.5301f, SPEED_CHARGE / 3.0f); } } } @@ -278,7 +278,7 @@ class boss_blood_queen_lana_thel : public CreatureScript Talk(SAY_KILL); } - void SetGUID(uint64 guid, int32 type = 0) override + void SetGUID(ObjectGuid guid, int32 type = 0) override { switch (type) { @@ -390,7 +390,7 @@ class boss_blood_queen_lana_thel : public CreatureScript } } else - _offtankGUID = 0; + _offtankGUID.Clear(); } events.ScheduleEvent(EVENT_BLOOD_MIRROR, 2500, EVENT_GROUP_CANCELLABLE); break; @@ -458,12 +458,12 @@ class boss_blood_queen_lana_thel : public CreatureScript DoMeleeAttackIfReady(); } - bool WasVampire(uint64 guid) + bool WasVampire(ObjectGuid guid) const { return _vampires.count(guid) != 0; } - bool WasBloodbolted(uint64 guid) + bool WasBloodbolted(ObjectGuid guid) const { return _bloodboltedPlayers.count(guid) != 0; } @@ -501,9 +501,9 @@ class boss_blood_queen_lana_thel : public CreatureScript return Trinity::Containers::SelectRandomContainerElement(tempTargets); } - std::set<uint64> _vampires; - std::set<uint64> _bloodboltedPlayers; - uint64 _offtankGUID; + GuidSet _vampires; + GuidSet _bloodboltedPlayers; + ObjectGuid _offtankGUID; bool _creditBloodQuickening; bool _killMinchar; }; @@ -554,7 +554,7 @@ class spell_blood_queen_vampiric_bite : public SpellScriptLoader return; uint32 spellId = sSpellMgr->GetSpellIdForDifficulty(SPELL_FRENZIED_BLOODTHIRST, GetCaster()); - GetCaster()->RemoveAura(spellId, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL); + GetCaster()->RemoveAura(spellId, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL); GetCaster()->CastSpell(GetCaster(), SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR, TRIGGERED_FULL_MASK); // Shadowmourne questline @@ -570,7 +570,7 @@ class spell_blood_queen_vampiric_bite : public SpellScriptLoader } if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL))) + if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL))) bloodQueen->AI()->SetGUID(GetHitUnit()->GetGUID(), GUID_VAMPIRE); } @@ -606,7 +606,7 @@ class spell_blood_queen_frenzied_bloodthirst : public SpellScriptLoader void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { if (InstanceScript* instance = GetTarget()->GetInstanceScript()) - if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetTarget(), instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL))) + if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetTarget(), instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL))) bloodQueen->AI()->Talk(EMOTE_BLOODTHIRST, GetTarget()); } @@ -615,7 +615,7 @@ class spell_blood_queen_frenzied_bloodthirst : public SpellScriptLoader Unit* target = GetTarget(); if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE) if (InstanceScript* instance = target->GetInstanceScript()) - if (Creature* bloodQueen = ObjectAccessor::GetCreature(*target, instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL))) + if (Creature* bloodQueen = ObjectAccessor::GetCreature(*target, instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL))) { // this needs to be done BEFORE charm aura or we hit an assert in Unit::SetCharmedBy if (target->GetVehicleKit()) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp index 2909946a0db..15cf0d31af9 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp @@ -299,7 +299,7 @@ class boss_deathbringer_saurfang : public CreatureScript if (!_introDone) { DoCast(me, SPELL_GRIP_OF_AGONY); - if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SAURFANG_EVENT_NPC))) + if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SAURFANG_EVENT_NPC))) creature->AI()->DoAction(ACTION_INTERRUPT_INTRO); } @@ -375,7 +375,7 @@ class boss_deathbringer_saurfang : public CreatureScript //instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MARK_OF_THE_FALLEN_CHAMPION); DoCast(me, SPELL_PERMANENT_FEIGN_DEATH); - if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SAURFANG_EVENT_NPC))) + if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SAURFANG_EVENT_NPC))) creature->AI()->DoAction(ACTION_START_OUTRO); } } @@ -410,7 +410,7 @@ class boss_deathbringer_saurfang : public CreatureScript if (type != POINT_MOTION_TYPE && id != POINT_SAURFANG) return; - instance->HandleGameObject(instance->GetData64(GO_SAURFANG_S_DOOR), false); + instance->HandleGameObject(instance->GetGuidData(GO_SAURFANG_S_DOOR), false); } void SpellHitTarget(Unit* target, SpellInfo const* spell) override @@ -650,8 +650,8 @@ class npc_high_overlord_saurfang_icc : public CreatureScript Talk(SAY_INTRO_HORDE_1); _events.SetPhase(PHASE_INTRO_H); _events.ScheduleEvent(EVENT_INTRO_HORDE_3, 18500, 0, PHASE_INTRO_H); - _instance->HandleGameObject(_instance->GetData64(GO_SAURFANG_S_DOOR), true); - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + _instance->HandleGameObject(_instance->GetGuidData(GO_SAURFANG_S_DOOR), true); + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) deathbringer->AI()->DoAction(PHASE_INTRO_H); break; } @@ -703,11 +703,11 @@ class npc_high_overlord_saurfang_icc : public CreatureScript _events.ScheduleEvent(EVENT_INTRO_HORDE_6, 29500, 0, PHASE_INTRO_H); _events.ScheduleEvent(EVENT_INTRO_HORDE_7, 43800, 0, PHASE_INTRO_H); _events.ScheduleEvent(EVENT_INTRO_HORDE_8, 47000, 0, PHASE_INTRO_H); - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) deathbringer->AI()->DoAction(ACTION_CONTINUE_INTRO); break; case POINT_CORPSE: - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) { deathbringer->CastSpell(me, SPELL_RIDE_VEHICLE, true); // for the packet logs. deathbringer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -717,7 +717,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript _events.ScheduleEvent(EVENT_OUTRO_HORDE_6, 4000); // say break; case POINT_FINAL: - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) deathbringer->DespawnOrUnsummon(); me->DespawnOrUnsummon(); break; @@ -762,7 +762,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript me->GetMotionMaster()->MoveCharge(chargePos[0].GetPositionX(), chargePos[0].GetPositionY(), chargePos[0].GetPositionZ(), 8.5f, POINT_CHARGE); break; case EVENT_OUTRO_HORDE_2: // say - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) me->SetFacingToObject(deathbringer); Talk(SAY_OUTRO_HORDE_2); break; @@ -770,7 +770,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript Talk(SAY_OUTRO_HORDE_3); break; case EVENT_OUTRO_HORDE_4: // move - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) { float x, y, z; deathbringer->GetClosePoint(x, y, z, deathbringer->GetObjectSize()); @@ -859,8 +859,8 @@ class npc_muradin_bronzebeard_icc : public CreatureScript me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); Talk(SAY_INTRO_ALLIANCE_1); _events.ScheduleEvent(EVENT_INTRO_ALLIANCE_4, 2500+17500+9500, 0, PHASE_INTRO_A); - _instance->HandleGameObject(_instance->GetData64(GO_SAURFANG_S_DOOR), true); - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + _instance->HandleGameObject(_instance->GetGuidData(GO_SAURFANG_S_DOOR), true); + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) deathbringer->AI()->DoAction(PHASE_INTRO_A); break; } @@ -874,7 +874,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript (*itr)->AI()->DoAction(ACTION_DESPAWN); // temp until outro fully done - to put deathbringer on respawn timer (until next reset) - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) deathbringer->DespawnOrUnsummon(5000); break; } @@ -902,7 +902,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript me->SetWalk(false); Talk(SAY_INTRO_ALLIANCE_4); _events.ScheduleEvent(EVENT_INTRO_ALLIANCE_5, 5000, 0, PHASE_INTRO_A); - if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG))) + if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) deathbringer->AI()->DoAction(ACTION_CONTINUE_INTRO); } else if (type == WAYPOINT_MOTION_TYPE && id == POINT_EXIT) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp index 90d91199e7a..b1f6a4a5e83 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp @@ -88,7 +88,6 @@ class boss_festergut : public CreatureScript { _maxInoculatedStack = 0; _inhaleCounter = 0; - _gasDummyGUID = 0; } void Reset() override @@ -126,7 +125,7 @@ class boss_festergut : public CreatureScript Talk(SAY_AGGRO); if (Creature* gasDummy = me->FindNearestCreature(NPC_GAS_DUMMY, 100.0f, true)) _gasDummyGUID = gasDummy->GetGUID(); - if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->DoAction(ACTION_FESTERGUT_COMBAT); DoZoneInCombat(); } @@ -135,7 +134,7 @@ class boss_festergut : public CreatureScript { _JustDied(); Talk(SAY_DEATH); - if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->DoAction(ACTION_FESTERGUT_DEATH); RemoveBlight(); @@ -150,7 +149,7 @@ class boss_festergut : public CreatureScript void EnterEvadeMode() override { ScriptedAI::EnterEvadeMode(); - if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->EnterEvadeMode(); } @@ -189,7 +188,7 @@ class boss_festergut : public CreatureScript Talk(SAY_PUNGENT_BLIGHT); DoCast(me, SPELL_PUNGENT_BLIGHT); _inhaleCounter = 0; - if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->DoAction(ACTION_FESTERGUT_GAS); events.RescheduleEvent(EVENT_GAS_SPORE, urand(20000, 25000)); } @@ -279,7 +278,7 @@ class boss_festergut : public CreatureScript } private: - uint64 _gasDummyGUID; + ObjectGuid _gasDummyGUID; uint32 _maxInoculatedStack; uint32 _inhaleCounter; }; @@ -346,7 +345,7 @@ class npc_stinky_icc : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* festergut = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FESTERGUT))) + if (Creature* festergut = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FESTERGUT))) if (festergut->IsAlive()) festergut->AI()->Talk(SAY_STINKY_DEAD); } @@ -456,7 +455,7 @@ class spell_festergut_blighted_spores : public SpellScriptLoader { GetTarget()->CastSpell(GetTarget(), SPELL_INOCULATED, true); if (InstanceScript* instance = GetTarget()->GetInstanceScript()) - if (Creature* festergut = ObjectAccessor::GetCreature(*GetTarget(), instance->GetData64(DATA_FESTERGUT))) + if (Creature* festergut = ObjectAccessor::GetCreature(*GetTarget(), instance->GetGuidData(DATA_FESTERGUT))) festergut->AI()->SetData(DATA_INOCULATED_STACK, GetStackAmount()); HandleResidue(); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp index 535ace3259c..74a09887dd2 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp @@ -383,7 +383,9 @@ public: void ResetSlots(uint32 team) { _transport = NULL; - memset(_controlledSlots, 0, sizeof(uint64)* MAX_SLOTS); + for (uint32 i = 0; i < MAX_SLOTS; ++i) + _controlledSlots[i].Clear(); + memset(_respawnCooldowns, 0, sizeof(time_t)* MAX_SLOTS); _spawnPoint = team == HORDE ? &OrgrimsHammerAddsSpawnPos : &SkybreakerAddsSpawnPos; _slotInfo = team == HORDE ? OrgrimsHammerSlotInfo : SkybreakerSlotInfo; @@ -422,7 +424,7 @@ public: void ClearSlot(PassengerSlots slot) { - _controlledSlots[slot] = 0; + _controlledSlots[slot].Clear(); _respawnCooldowns[slot] = time(NULL) + _slotInfo[slot].Cooldown; } @@ -448,7 +450,7 @@ private: } Transport* _transport; - uint64 _controlledSlots[MAX_SLOTS]; + ObjectGuid _controlledSlots[MAX_SLOTS]; time_t _respawnCooldowns[MAX_SLOTS]; Position const* _spawnPoint; SlotInfo const* _slotInfo; @@ -482,7 +484,7 @@ private: class ResetEncounterEvent : public BasicEvent { public: - ResetEncounterEvent(Unit* caster, uint32 spellId, uint64 otherTransport) : _caster(caster), _spellId(spellId), _otherTransport(otherTransport) { } + ResetEncounterEvent(Unit* caster, uint32 spellId, ObjectGuid otherTransport) : _caster(caster), _spellId(spellId), _otherTransport(otherTransport) { } bool Execute(uint64, uint32) override { @@ -498,7 +500,7 @@ public: private: Unit* _caster; uint32 _spellId; - uint64 _otherTransport; + ObjectGuid _otherTransport; }; class BattleExperienceEvent : public BasicEvent @@ -744,7 +746,7 @@ class npc_gunship : public CreatureScript cannon->CastSpell(cannon, SPELL_EJECT_ALL_PASSENGERS_BELOW_ZERO, TRIGGERED_FULL_MASK); WorldPacket data(SMSG_PLAYER_VEHICLE_DATA, cannon->GetPackGUID().size() + 4); - data.append(cannon->GetPackGUID()); + data << cannon->GetPackGUID(); data << uint32(0); cannon->SendMessageToSet(&data, true); @@ -767,7 +769,7 @@ class npc_gunship : public CreatureScript if (isVictory) { - if (GameObject* go = HashMapHolder<GameObject>::Find(instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE))) + if (GameObject* go = HashMapHolder<GameObject>::Find(instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE))) if (Transport* otherTransport = go->ToTransport()) otherTransport->EnableMovement(true); @@ -791,17 +793,17 @@ class npc_gunship : public CreatureScript else { uint32 teleportSpellId = _teamInInstance == HORDE ? SPELL_TELEPORT_PLAYERS_ON_RESET_H : SPELL_TELEPORT_PLAYERS_ON_RESET_A; - me->m_Events.AddEvent(new ResetEncounterEvent(me, teleportSpellId, me->GetInstanceScript()->GetData64(DATA_ENEMY_GUNSHIP)), + me->m_Events.AddEvent(new ResetEncounterEvent(me, teleportSpellId, me->GetInstanceScript()->GetGuidData(DATA_ENEMY_GUNSHIP)), me->m_Events.CalculateTime(8000)); } } - void SetGUID(uint64 guid, int32 id/* = 0*/) override + void SetGUID(ObjectGuid guid, int32 id/* = 0*/) override { if (id != ACTION_SHIP_VISITS) return; - std::map<uint64, uint32>::iterator itr = _shipVisits.find(guid); + std::map<ObjectGuid, uint32>::iterator itr = _shipVisits.find(guid); if (itr == _shipVisits.end()) _shipVisits[guid] = 1; else @@ -814,7 +816,7 @@ class npc_gunship : public CreatureScript return 0; uint32 max = 0; - for (std::map<uint64, uint32>::const_iterator itr = _shipVisits.begin(); itr != _shipVisits.end(); ++itr) + for (std::map<ObjectGuid, uint32>::const_iterator itr = _shipVisits.begin(); itr != _shipVisits.end(); ++itr) max = std::max(max, itr->second); return max; @@ -822,7 +824,7 @@ class npc_gunship : public CreatureScript private: uint32 _teamInInstance; - std::map<uint64, uint32> _shipVisits; + std::map<ObjectGuid, uint32> _shipVisits; bool _summonedFirstMage; bool _died; }; @@ -1032,7 +1034,7 @@ class npc_high_overlord_saurfang_igb : public CreatureScript if (Transport* orgrimsHammer = me->GetTransport()) orgrimsHammer->SummonPassenger(NPC_TELEPORT_PORTAL, OrgrimsHammerTeleportPortal, TEMPSUMMON_TIMED_DESPAWN, NULL, 21000); - if (GameObject* go = HashMapHolder<GameObject>::Find(_instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE))) + if (GameObject* go = HashMapHolder<GameObject>::Find(_instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE))) if (Transport* skybreaker = go->ToTransport()) skybreaker->SummonPassenger(NPC_TELEPORT_EXIT, SkybreakerTeleportExit, TEMPSUMMON_TIMED_DESPAWN, NULL, 23000); @@ -1305,7 +1307,7 @@ class npc_muradin_bronzebeard_igb : public CreatureScript if (Transport* skybreaker = me->GetTransport()) skybreaker->SummonPassenger(NPC_TELEPORT_PORTAL, SkybreakerTeleportPortal, TEMPSUMMON_TIMED_DESPAWN, NULL, 21000); - if (GameObject* go = HashMapHolder<GameObject>::Find(_instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE))) + if (GameObject* go = HashMapHolder<GameObject>::Find(_instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE))) if (Transport* orgrimsHammer = go->ToTransport()) orgrimsHammer->SummonPassenger(NPC_TELEPORT_EXIT, OrgrimsHammerTeleportExit, TEMPSUMMON_TIMED_DESPAWN, NULL, 23000); @@ -1451,7 +1453,7 @@ struct npc_gunship_boarding_addAI : public gunship_npc_AI if (!myTransport) return; - if (GameObject* go = HashMapHolder<GameObject>::Find(Instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE))) + if (GameObject* go = HashMapHolder<GameObject>::Find(Instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE))) if (Transport* destTransport = go->ToTransport()) destTransport->CalculatePassengerPosition(x, y, z, &o); @@ -2085,7 +2087,7 @@ class spell_igb_overheat : public SpellScriptLoader if (Player* player = passenger->ToPlayer()) { WorldPacket data(SMSG_CLIENT_CONTROL_UPDATE, GetUnitOwner()->GetPackGUID().size() + 1); - data.append(GetUnitOwner()->GetPackGUID()); + data << GetUnitOwner()->GetPackGUID(); data << uint8(value); player->GetSession()->SendPacket(&data); } @@ -2335,7 +2337,7 @@ class spell_igb_gunship_fall_teleport : public SpellScriptLoader void SelectTransport(WorldObject*& target) { if (InstanceScript* instance = target->GetInstanceScript()) - target = HashMapHolder<GameObject>::Find(instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE)); + target = HashMapHolder<GameObject>::Find(instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE)); } void RelocateDest(SpellEffIndex /*effIndex*/) @@ -2426,7 +2428,7 @@ class spell_igb_teleport_players_on_victory : public SpellScriptLoader InstanceScript* instance = GetCaster()->GetInstanceScript(); targets.remove_if([instance](WorldObject* target) -> bool { - return target->GetTransGUID() != instance->GetData64(DATA_ENEMY_GUNSHIP); + return target->GetTransGUID() != instance->GetGuidData(DATA_ENEMY_GUNSHIP); }); } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp index bbdca1fa8c5..55d6edd7b2d 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp @@ -224,8 +224,8 @@ class boss_lady_deathwhisper : public CreatureScript void Initialize() { _waveCounter = 0; - _nextVengefulShadeTargetGUID = 0; - _darnavanGUID = 0; + _nextVengefulShadeTargetGUID.Clear(); + _darnavanGUID.Clear(); } void Reset() override @@ -329,10 +329,10 @@ class boss_lady_deathwhisper : public CreatureScript { for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next()) if (Player* member = itr->GetSource()) - member->KilledMonsterCredit(NPC_DARNAVAN_CREDIT, 0); + member->KilledMonsterCredit(NPC_DARNAVAN_CREDIT); } else - owner->KilledMonsterCredit(NPC_DARNAVAN_CREDIT, 0); + owner->KilledMonsterCredit(NPC_DARNAVAN_CREDIT); } } } @@ -349,7 +349,7 @@ class boss_lady_deathwhisper : public CreatureScript if (Creature* darnavan = ObjectAccessor::GetCreature(*me, _darnavanGUID)) { darnavan->DespawnOrUnsummon(); - _darnavanGUID = 0; + _darnavanGUID.Clear(); } } @@ -396,7 +396,7 @@ class boss_lady_deathwhisper : public CreatureScript if (summon->GetEntry() == NPC_VENGEFUL_SHADE) { target = ObjectAccessor::GetUnit(*me, _nextVengefulShadeTargetGUID); // Vengeful Shade - _nextVengefulShadeTargetGUID = 0; + _nextVengefulShadeTargetGUID.Clear(); } else target = SelectTarget(SELECT_TARGET_RANDOM); // Wave adds @@ -554,7 +554,7 @@ class boss_lady_deathwhisper : public CreatureScript summon->CastSpell(summon, SPELL_TELEPORT_VISUAL); } - void SetGUID(uint64 guid, int32 id/* = 0*/) override + void SetGUID(ObjectGuid guid, int32 id/* = 0*/) override { if (id != GUID_CULTIST) return; @@ -568,7 +568,7 @@ class boss_lady_deathwhisper : public CreatureScript if (_reanimationQueue.empty()) return; - uint64 cultistGUID = _reanimationQueue.front(); + ObjectGuid cultistGUID = _reanimationQueue.front(); Creature* cultist = ObjectAccessor::GetCreature(*me, cultistGUID); _reanimationQueue.pop_front(); if (!cultist) @@ -615,9 +615,9 @@ class boss_lady_deathwhisper : public CreatureScript } private: - uint64 _nextVengefulShadeTargetGUID; - uint64 _darnavanGUID; - std::deque<uint64> _reanimationQueue; + ObjectGuid _nextVengefulShadeTargetGUID; + ObjectGuid _darnavanGUID; + GuidDeque _reanimationQueue; uint32 _waveCounter; uint8 const _dominateMindCount; bool _introDone; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index b7bf27177ea..7ab8c956757 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -133,7 +133,6 @@ class boss_lord_marrowgar : public CreatureScript _coldflameLastPos.Relocate(creature); _introDone = false; _boneSlice = false; - _coldflameTarget = 0; } void Reset() override @@ -211,7 +210,7 @@ class boss_lord_marrowgar : public CreatureScript break; case EVENT_COLDFLAME: _coldflameLastPos.Relocate(me); - _coldflameTarget = 0LL; + _coldflameTarget.Clear(); if (!me->HasAura(SPELL_BONE_STORM)) DoCastAOE(SPELL_COLDFLAME_NORMAL); else @@ -289,7 +288,7 @@ class boss_lord_marrowgar : public CreatureScript return &_coldflameLastPos; } - uint64 GetGUID(int32 type /*= 0 */) const override + ObjectGuid GetGUID(int32 type /*= 0 */) const override { switch (type) { @@ -307,10 +306,10 @@ class boss_lord_marrowgar : public CreatureScript } } - return 0LL; + return ObjectGuid::Empty; } - void SetGUID(uint64 guid, int32 type /*= 0 */) override + void SetGUID(ObjectGuid guid, int32 type /*= 0 */) override { switch (type) { @@ -333,8 +332,8 @@ class boss_lord_marrowgar : public CreatureScript private: Position _coldflameLastPos; - std::vector<uint64> _boneSpikeImmune; - uint64 _coldflameTarget; + GuidVector _boneSpikeImmune; + ObjectGuid _coldflameTarget; uint32 _boneStormDuration; float _baseSpeed; bool _introDone; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index c1a13c90780..2e353e5f9dc 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -174,7 +174,7 @@ class AbominationDespawner public: explicit AbominationDespawner(Unit* owner) : _owner(owner) { } - bool operator()(uint64 guid) + bool operator()(ObjectGuid guid) { if (Unit* summon = ObjectAccessor::GetUnit(*_owner, guid)) { @@ -373,7 +373,7 @@ class boss_professor_putricide : public CreatureScript instance->SetBossState(DATA_FESTERGUT, IN_PROGRESS); // needed here for delayed gate close me->SetSpeed(MOVE_RUN, _baseSpeed, true); DoAction(ACTION_FESTERGUT_GAS); - if (Creature* festergut = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_FESTERGUT))) + if (Creature* festergut = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_FESTERGUT))) festergut->CastSpell(festergut, SPELL_GASEOUS_BLIGHT_LARGE, false, NULL, NULL, festergut->GetGUID()); break; case POINT_ROTFACE: @@ -386,7 +386,7 @@ class boss_professor_putricide : public CreatureScript // stop attack me->GetMotionMaster()->MoveIdle(); me->SetSpeed(MOVE_RUN, _baseSpeed, true); - if (GameObject* table = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_PUTRICIDE_TABLE))) + if (GameObject* table = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_PUTRICIDE_TABLE))) me->SetFacingToObject(table); // operating on new phase already switch (_phase) @@ -443,7 +443,7 @@ class boss_professor_putricide : public CreatureScript _oozeFloodStage = 0; DoZoneInCombat(me); // init random sequence of floods - if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE))) + if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ROTFACE))) { std::list<Creature*> list; GetCreatureListWithEntryInGrid(list, rotface, NPC_PUDDLE_STALKER, 50.0f); @@ -702,7 +702,7 @@ class boss_professor_putricide : public CreatureScript events.SetPhase(newPhase); } - uint64 _oozeFloodDummyGUIDs[4]; + ObjectGuid _oozeFloodDummyGUIDs[4]; Phases _phase; // external of EventMap because event phase gets reset on evade float const _baseSpeed; uint8 _oozeFloodStage; @@ -1152,7 +1152,7 @@ class spell_putricide_unbound_plague : public SpellScriptLoader if (!GetHitUnit()->HasAura(plagueId)) { - if (Creature* professor = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) { if (Aura* oldPlague = GetCaster()->GetAura(plagueId, professor->GetGUID())) { @@ -1307,7 +1307,7 @@ class spell_putricide_mutation_init : public SpellScriptLoader if (!instance) return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW; - Creature* professor = ObjectAccessor::GetCreature(*GetExplTargetUnit(), instance->GetData64(DATA_PROFESSOR_PUTRICIDE)); + Creature* professor = ObjectAccessor::GetCreature(*GetExplTargetUnit(), instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)); if (!professor) return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW; @@ -1428,7 +1428,7 @@ class spell_putricide_mutated_transformation : public SpellScriptLoader if (!instance) return; - Creature* putricide = ObjectAccessor::GetCreature(*caster, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)); + Creature* putricide = ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)); if (!putricide) return; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp index 2f2889a9cf3..205b90fa159 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp @@ -126,7 +126,7 @@ class boss_rotface : public CreatureScript me->setActive(true); Talk(SAY_AGGRO); - if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->DoAction(ACTION_ROTFACE_COMBAT); DoZoneInCombat(); @@ -138,7 +138,7 @@ class boss_rotface : public CreatureScript instance->DoRemoveAurasDueToSpellOnPlayers(MUTATED_INFECTION); _JustDied(); Talk(SAY_DEATH); - if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->DoAction(ACTION_ROTFACE_DEATH); } @@ -158,7 +158,7 @@ class boss_rotface : public CreatureScript void EnterEvadeMode() override { ScriptedAI::EnterEvadeMode(); - if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->EnterEvadeMode(); } @@ -176,7 +176,7 @@ class boss_rotface : public CreatureScript void JustSummoned(Creature* summon) override { if (summon->GetEntry() == NPC_VILE_GAS_STALKER) - if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE))) professor->CastSpell(summon, SPELL_VILE_GAS_H, true); } @@ -308,13 +308,13 @@ class npc_big_ooze : public CreatureScript DoCast(me, SPELL_GREEN_ABOMINATION_HITTIN__YA_PROC, true); events.ScheduleEvent(EVENT_STICKY_OOZE, 5000); // register in Rotface's summons - not summoned with Rotface as owner - if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE))) + if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ROTFACE))) rotface->AI()->JustSummoned(me); } void JustDied(Unit* /*killer*/) override { - if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE))) + if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ROTFACE))) rotface->AI()->SummonedCreatureDespawn(me); me->DespawnOrUnsummon(); } @@ -395,7 +395,7 @@ class npc_precious_icc : public CreatureScript void JustDied(Unit* /*killer*/) override { _summons.DespawnAll(); - if (Creature* rotface = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ROTFACE))) + if (Creature* rotface = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ROTFACE))) if (rotface->IsAlive()) rotface->AI()->Talk(SAY_PRECIOUS_DIES); } @@ -469,7 +469,7 @@ class spell_rotface_ooze_flood : public SpellScriptLoader return; triggers.sort(Trinity::ObjectDistanceOrderPred(GetHitUnit())); - GetHitUnit()->CastSpell(triggers.back(), uint32(GetEffectValue()), false, NULL, NULL, GetOriginalCaster() ? GetOriginalCaster()->GetGUID() : 0); + GetHitUnit()->CastSpell(triggers.back(), uint32(GetEffectValue()), false, NULL, NULL, GetOriginalCaster() ? GetOriginalCaster()->GetGUID() : ObjectGuid::Empty); } void FilterTargets(std::list<WorldObject*>& targets) @@ -657,7 +657,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE); GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE); if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_ROTFACE))) + if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_ROTFACE))) if (rotface->IsAlive()) { rotface->AI()->Talk(EMOTE_UNSTABLE_EXPLOSION); @@ -748,7 +748,7 @@ class spell_rotface_unstable_ooze_explosion : public SpellScriptLoader GetExplTargetDest()->GetPosition(x, y, z); // let Rotface handle the cast - caster dies before this executes if (InstanceScript* script = GetCaster()->GetInstanceScript()) - if (Creature* rotface = script->instance->GetCreature(script->GetData64(DATA_ROTFACE))) + if (Creature* rotface = script->instance->GetCreature(script->GetGuidData(DATA_ROTFACE))) rotface->CastSpell(x, y, z, triggered_spell_id, true, NULL, NULL, GetCaster()->GetGUID()); } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 3b65c10aaa9..551ec9ad0a2 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -182,7 +182,7 @@ class FrostwyrmLandEvent : public BasicEvent class FrostBombExplosion : public BasicEvent { public: - FrostBombExplosion(Creature* owner, uint64 sindragosaGUID) : _owner(owner), _sindragosaGUID(sindragosaGUID) { } + FrostBombExplosion(Creature* owner, ObjectGuid sindragosaGUID) : _owner(owner), _sindragosaGUID(sindragosaGUID) { } bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) { @@ -193,7 +193,7 @@ class FrostBombExplosion : public BasicEvent private: Creature* _owner; - uint64 _sindragosaGUID; + ObjectGuid _sindragosaGUID; }; class FrostBeaconSelector @@ -563,7 +563,6 @@ class npc_ice_tomb : public CreatureScript { npc_ice_tombAI(Creature* creature) : ScriptedAI(creature) { - _trappedPlayerGUID = 0; _existenceCheckTimer = 0; SetCombatMovement(false); } @@ -573,7 +572,7 @@ class npc_ice_tomb : public CreatureScript me->SetReactState(REACT_PASSIVE); } - void SetGUID(uint64 guid, int32 type/* = 0 */) override + void SetGUID(ObjectGuid guid, int32 type/* = 0 */) override { if (type == DATA_TRAPPED_PLAYER) { @@ -595,7 +594,7 @@ class npc_ice_tomb : public CreatureScript if (Player* player = ObjectAccessor::GetPlayer(*me, _trappedPlayerGUID)) { - _trappedPlayerGUID = 0; + _trappedPlayerGUID.Clear(); player->RemoveAurasDueToSpell(SPELL_ICE_TOMB_DAMAGE); player->RemoveAurasDueToSpell(SPELL_ASPHYXIATION); } @@ -623,7 +622,7 @@ class npc_ice_tomb : public CreatureScript } private: - uint64 _trappedPlayerGUID; + ObjectGuid _trappedPlayerGUID; uint32 _existenceCheckTimer; }; @@ -1574,14 +1573,14 @@ class at_sindragosa_lair : public AreaTriggerScript if (InstanceScript* instance = player->GetInstanceScript()) { if (!instance->GetData(DATA_SPINESTALKER)) - if (Creature* spinestalker = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_SPINESTALKER))) + if (Creature* spinestalker = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_SPINESTALKER))) spinestalker->AI()->DoAction(ACTION_START_FROSTWYRM); if (!instance->GetData(DATA_RIMEFANG)) - if (Creature* rimefang = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_RIMEFANG))) + if (Creature* rimefang = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_RIMEFANG))) rimefang->AI()->DoAction(ACTION_START_FROSTWYRM); - if (!instance->GetData(DATA_SINDRAGOSA_FROSTWYRMS) && !instance->GetData64(DATA_SINDRAGOSA) && instance->GetBossState(DATA_SINDRAGOSA) != DONE) + if (!instance->GetData(DATA_SINDRAGOSA_FROSTWYRMS) && !instance->GetGuidData(DATA_SINDRAGOSA) && instance->GetBossState(DATA_SINDRAGOSA) != DONE) { if (player->GetMap()->IsHeroic() && !instance->GetData(DATA_HEROIC_ATTEMPTS)) return true; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index e2fe441dae2..5addfd672b4 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -567,7 +567,7 @@ class boss_the_lich_king : public CreatureScript // Restore Tirion's gossip only after The Lich King fully resets to prevent // restarting the encounter while LK still runs back to spawn point - if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING))) + if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING))) tirion->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); // Reset any light override @@ -584,7 +584,7 @@ class boss_the_lich_king : public CreatureScript { instance->SetBossState(DATA_THE_LICH_KING, FAIL); BossAI::EnterEvadeMode(); - if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING))) + if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING))) tirion->AI()->EnterEvadeMode(); DoCastAOE(SPELL_KILL_FROSTMOURNE_PLAYERS); EntryCheckPredicate pred(NPC_STRANGULATE_VEHICLE); @@ -823,7 +823,7 @@ class boss_the_lich_king : public CreatureScript events.ScheduleEvent(EVENT_INTRO_MOVE_3, 1, 0, PHASE_INTRO); break; case POINT_LK_INTRO_3: - if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING))) + if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING))) tirion->AI()->DoAction(ACTION_CONTINUE_INTRO); events.ScheduleEvent(EVENT_INTRO_TALK_1, 9000, 0, PHASE_INTRO); break; @@ -864,7 +864,7 @@ class boss_the_lich_king : public CreatureScript events.ScheduleEvent(EVENT_OUTRO_TALK_5, 29000, 0, PHASE_OUTRO); break; case POINT_LK_OUTRO_2: - if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING))) + if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING))) tirion->AI()->Talk(SAY_TIRION_OUTRO_2); if (Creature* frostmourne = me->FindNearestCreature(NPC_FROSTMOURNE_TRIGGER, 50.0f)) frostmourne->AI()->DoAction(ACTION_SUMMON_TERENAS); @@ -1070,7 +1070,7 @@ class boss_the_lich_king : public CreatureScript me->HandleEmoteCommand(EMOTE_ONESHOT_TALK_NO_SHEATHE); break; case EVENT_OUTRO_TALK_3: - if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING))) + if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING))) me->SetFacingToObject(tirion); Talk(SAY_LK_OUTRO_3); break; @@ -1088,12 +1088,12 @@ class boss_the_lich_king : public CreatureScript break; case EVENT_OUTRO_TALK_5: Talk(SAY_LK_OUTRO_5); - if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING))) + if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING))) tirion->AI()->DoAction(ACTION_OUTRO); break; case EVENT_OUTRO_TALK_6: Talk(SAY_LK_OUTRO_6); - if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING))) + if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING))) tirion->SetFacingToObject(me); me->CastSpell((Unit*)NULL, SPELL_SUMMON_BROKEN_FROSTMOURNE_3, TRIGGERED_IGNORE_CAST_IN_PROGRESS); SetEquipmentSlots(false, EQUIP_UNEQUIP); @@ -1163,7 +1163,7 @@ class npc_tirion_fordring_tft : public CreatureScript { case POINT_TIRION_INTRO: me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); - if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) theLichKing->AI()->DoAction(ACTION_START_ENCOUNTER); break; case POINT_TIRION_OUTRO_1: @@ -1249,7 +1249,7 @@ class npc_tirion_fordring_tft : public CreatureScript case EVENT_OUTRO_REMOVE_ICE: me->RemoveAurasDueToSpell(SPELL_ICE_LOCK); SetEquipmentSlots(false, EQUIP_ASHBRINGER_GLOWING); - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) { me->SetFacingToObject(lichKing); lichKing->AI()->DoAction(ACTION_PLAY_MUSIC); @@ -1376,13 +1376,13 @@ class npc_raging_spirit : public CreatureScript void IsSummonedBy(Unit* /*summoner*/) override { // player is the spellcaster so register summon manually - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) lichKing->AI()->JustSummoned(me); } void JustDied(Unit* /*killer*/) override { - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) lichKing->AI()->SummonedCreatureDespawn(me); if (TempSummon* summon = me->ToTempSummon()) summon->SetTempSummonType(TEMPSUMMON_CORPSE_DESPAWN); @@ -1433,7 +1433,7 @@ class npc_valkyr_shadowguard : public CreatureScript struct npc_valkyr_shadowguardAI : public ScriptedAI { npc_valkyr_shadowguardAI(Creature* creature) : ScriptedAI(creature), - _grabbedPlayer(0), _instance(creature->GetInstanceScript()) + _instance(creature->GetInstanceScript()) { } @@ -1495,7 +1495,7 @@ class npc_valkyr_shadowguard : public CreatureScript if (Player* target = ObjectAccessor::GetPlayer(*me, _grabbedPlayer)) { me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - if (GameObject* platform = ObjectAccessor::GetGameObject(*me, _instance->GetData64(DATA_ARTHAS_PLATFORM))) + if (GameObject* platform = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(DATA_ARTHAS_PLATFORM))) { std::list<Creature*> triggers; GetCreatureListWithEntryInGrid(triggers, me, NPC_WORLD_TRIGGER, 150.0f); @@ -1518,7 +1518,7 @@ class npc_valkyr_shadowguard : public CreatureScript } } - void SetGUID(uint64 guid, int32 /* = 0*/) override + void SetGUID(ObjectGuid guid, int32 /* = 0*/) override { _grabbedPlayer = guid; } @@ -1563,7 +1563,7 @@ class npc_valkyr_shadowguard : public CreatureScript private: EventMap _events; Position _dropPoint; - uint64 _grabbedPlayer; + ObjectGuid _grabbedPlayer; InstanceScript* _instance; }; @@ -1594,7 +1594,7 @@ class npc_strangulate_vehicle : public CreatureScript _events.ScheduleEvent(EVENT_TELEPORT, 6000); // this will let us easily access all creatures of this entry on heroic mode when its time to teleport back - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) lichKing->AI()->JustSummoned(me); } @@ -1612,7 +1612,7 @@ class npc_strangulate_vehicle : public CreatureScript } } - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) lichKing->AI()->SummonedCreatureDespawn(me); } @@ -1640,7 +1640,7 @@ class npc_strangulate_vehicle : public CreatureScript else { summoner->CastSpell(summoner, SPELL_HARVEST_SOULS_TELEPORT, true); - summoner->RemoveAurasDueToSpell(HARVEST_SOUL, 0, 0, AURA_REMOVE_BY_EXPIRE); + summoner->RemoveAurasDueToSpell(HARVEST_SOUL, ObjectGuid::Empty, 0, AURA_REMOVE_BY_EXPIRE); } } } @@ -1648,7 +1648,7 @@ class npc_strangulate_vehicle : public CreatureScript _events.ScheduleEvent(EVENT_DESPAWN_SELF, 65000); break; case EVENT_MOVE_TO_LICH_KING: - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) { if (me->GetExactDist(lichKing) > 10.0f) { @@ -1658,7 +1658,7 @@ class npc_strangulate_vehicle : public CreatureScript } break; case EVENT_DESPAWN_SELF: - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) lichKing->AI()->SummonedCreatureDespawn(me); me->DespawnOrUnsummon(1); break; @@ -1758,7 +1758,7 @@ class npc_terenas_menethil : public CreatureScript { _events.Reset(); _events.SetPhase(PHASE_OUTRO); - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) me->SetFacingToObject(lichKing); _events.ScheduleEvent(EVENT_OUTRO_TERENAS_TALK_1, 2000, 0, PHASE_OUTRO); @@ -1792,11 +1792,11 @@ class npc_terenas_menethil : public CreatureScript case EVENT_OUTRO_TERENAS_TALK_2: Talk(SAY_TERENAS_OUTRO_2); DoCastAOE(SPELL_MASS_RESURRECTION); - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) { lichKing->AI()->DoAction(ACTION_FINISH_OUTRO); lichKing->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); - if (Creature* tirion = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING))) + if (Creature* tirion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING))) tirion->AI()->AttackStart(lichKing); } break; @@ -1808,7 +1808,7 @@ class npc_terenas_menethil : public CreatureScript _events.ScheduleEvent(EVENT_TELEPORT_BACK, 1000); break; case EVENT_TELEPORT_BACK: - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) lichKing->AI()->DoAction(ACTION_TELEPORT_BACK); break; default: @@ -1853,7 +1853,7 @@ class npc_spirit_warden : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* terenas = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_TERENAS_MENETHIL))) + if (Creature* terenas = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_TERENAS_MENETHIL))) terenas->AI()->DoAction(ACTION_TELEPORT_BACK); } @@ -2288,7 +2288,7 @@ class spell_the_lich_king_quake : public SpellScriptLoader void FilterTargets(std::list<WorldObject*>& targets) { - if (GameObject* platform = ObjectAccessor::GetGameObject(*GetCaster(), GetCaster()->GetInstanceScript()->GetData64(DATA_ARTHAS_PLATFORM))) + if (GameObject* platform = ObjectAccessor::GetGameObject(*GetCaster(), GetCaster()->GetInstanceScript()->GetGuidData(DATA_ARTHAS_PLATFORM))) targets.remove_if(HeightDifferenceCheck(platform, 5.0f, false)); } @@ -2804,7 +2804,7 @@ class spell_the_lich_king_harvest_soul : public SpellScriptLoader { // m_originalCaster to allow stacking from different casters, meh if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_DEATH) - GetTarget()->CastSpell((Unit*)NULL, SPELL_HARVESTED_SOUL, true, NULL, NULL, GetTarget()->GetInstanceScript()->GetData64(DATA_THE_LICH_KING)); + GetTarget()->CastSpell((Unit*)NULL, SPELL_HARVESTED_SOUL, true, NULL, NULL, GetTarget()->GetInstanceScript()->GetGuidData(DATA_THE_LICH_KING)); } void Register() override @@ -2902,7 +2902,7 @@ class spell_the_lich_king_restore_soul : public SpellScriptLoader void HandleScript(SpellEffIndex /*effIndex*/) { - if (Creature* lichKing = ObjectAccessor::GetCreature(*GetCaster(), _instance->GetData64(DATA_THE_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*GetCaster(), _instance->GetGuidData(DATA_THE_LICH_KING))) lichKing->AI()->DoAction(ACTION_TELEPORT_BACK); if (Creature* spawner = GetCaster()->FindNearestCreature(NPC_WORLD_TRIGGER_INFINITE_AOI, 50.0f)) spawner->RemoveAllAuras(); @@ -2991,7 +2991,7 @@ class spell_the_lich_king_in_frostmourne_room : public SpellScriptLoader { // m_originalCaster to allow stacking from different casters, meh if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_DEATH) - GetTarget()->CastSpell((Unit*)NULL, SPELL_HARVESTED_SOUL, true, NULL, NULL, GetTarget()->GetInstanceScript()->GetData64(DATA_THE_LICH_KING)); + GetTarget()->CastSpell((Unit*)NULL, SPELL_HARVESTED_SOUL, true, NULL, NULL, GetTarget()->GetInstanceScript()->GetGuidData(DATA_THE_LICH_KING)); } void Register() override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp index 2d58a6eeb26..5b3dd67072a 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -175,7 +175,7 @@ struct ManaVoidSelector : public std::unary_function<Unit*, bool> class DelayedCastEvent : public BasicEvent { public: - DelayedCastEvent(Creature* trigger, uint32 spellId, uint64 originalCaster, uint32 despawnTime) : _trigger(trigger), _originalCaster(originalCaster), _spellId(spellId), _despawnTime(despawnTime) + DelayedCastEvent(Creature* trigger, uint32 spellId, ObjectGuid originalCaster, uint32 despawnTime) : _trigger(trigger), _originalCaster(originalCaster), _spellId(spellId), _despawnTime(despawnTime) { } @@ -189,7 +189,7 @@ class DelayedCastEvent : public BasicEvent private: Creature* _trigger; - uint64 _originalCaster; + ObjectGuid _originalCaster; uint32 _spellId; uint32 _despawnTime; }; @@ -353,7 +353,7 @@ class boss_valithria_dreamwalker : public CreatureScript DoCast(me, SPELL_ACHIEVEMENT_CHECK); DoCastAOE(SPELL_DREAMWALKERS_RAGE); _events.ScheduleEvent(EVENT_DREAM_SLIP, 3500); - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_LICH_KING))) lichKing->AI()->EnterEvadeMode(); } else if (!_over75PercentTalkDone && me->HealthAbovePctHealed(75, heal)) @@ -384,7 +384,7 @@ class boss_valithria_dreamwalker : public CreatureScript _justDied = true; Talk(SAY_VALITHRIA_DEATH); _instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); - if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER))) + if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER))) trigger->AI()->DoAction(ACTION_DEATH); } } @@ -401,10 +401,10 @@ class boss_valithria_dreamwalker : public CreatureScript me->SetDisplayId(11686); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->DespawnOrUnsummon(4000); - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_LICH_KING))) lichKing->CastSpell(lichKing, SPELL_SPAWN_CHEST, false); - if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER))) + if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER))) me->Kill(trigger); } } @@ -522,7 +522,7 @@ class npc_green_dragon_combat_trigger : public CreatureScript me->setActive(true); DoZoneInCombat(); instance->SetBossState(DATA_VALITHRIA_DREAMWALKER, IN_PROGRESS); - if (Creature* valithria = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VALITHRIA_DREAMWALKER))) + if (Creature* valithria = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER))) valithria->AI()->DoAction(ACTION_ENTER_COMBAT); } @@ -721,10 +721,10 @@ class npc_risen_archmage : public CreatureScript for (std::list<Creature*>::iterator itr = archmages.begin(); itr != archmages.end(); ++itr) (*itr)->AI()->DoAction(ACTION_ENTER_COMBAT); - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_LICH_KING))) + if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_LICH_KING))) lichKing->AI()->DoZoneInCombat(); - if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER))) + if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER))) trigger->AI()->DoZoneInCombat(); } } @@ -742,7 +742,7 @@ class npc_risen_archmage : public CreatureScript void JustSummoned(Creature* summon) override { if (summon->GetEntry() == NPC_COLUMN_OF_FROST) - summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_COLUMN_OF_FROST_DAMAGE, 0, 8000), summon->m_Events.CalculateTime(2000)); + summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_COLUMN_OF_FROST_DAMAGE, ObjectGuid::Empty, 8000), summon->m_Events.CalculateTime(2000)); else if (summon->GetEntry() == NPC_MANA_VOID) summon->DespawnOrUnsummon(36000); } @@ -880,7 +880,7 @@ class npc_suppresser : public CreatureScript void IsSummonedBy(Unit* /*summoner*/) override { - if (Creature* valithria = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_DREAMWALKER))) + if (Creature* valithria = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER))) AttackStart(valithria); } @@ -1099,7 +1099,7 @@ class npc_dream_cloud : public CreatureScript case EVENT_EXPLODE: me->GetMotionMaster()->MoveIdle(); // must use originalCaster the same for all clouds to allow stacking - me->CastSpell(me, EMERALD_VIGOR, false, NULL, NULL, _instance->GetData64(DATA_VALITHRIA_DREAMWALKER)); + me->CastSpell(me, EMERALD_VIGOR, false, NULL, NULL, _instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER)); me->DespawnOrUnsummon(100); break; default: @@ -1220,7 +1220,7 @@ class spell_dreamwalker_summoner : public SpellScriptLoader if (!GetHitUnit()) return; - GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, GetCaster()->GetInstanceScript()->GetData64(DATA_VALITHRIA_LICH_KING)); + GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, GetCaster()->GetInstanceScript()->GetGuidData(DATA_VALITHRIA_LICH_KING)); } void Register() override @@ -1299,7 +1299,7 @@ class spell_dreamwalker_summon_suppresser_effect : public SpellScriptLoader if (!GetHitUnit()) return; - GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, GetCaster()->GetInstanceScript()->GetData64(DATA_VALITHRIA_LICH_KING)); + GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, GetCaster()->GetInstanceScript()->GetGuidData(DATA_VALITHRIA_LICH_KING)); } void Register() override @@ -1428,7 +1428,7 @@ class spell_dreamwalker_twisted_nightmares : public SpellScriptLoader // return; if (InstanceScript* instance = GetHitUnit()->GetInstanceScript()) - GetHitUnit()->CastSpell((Unit*)NULL, GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, instance->GetData64(DATA_VALITHRIA_DREAMWALKER)); + GetHitUnit()->CastSpell((Unit*)NULL, GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER)); } void Register() override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index 23569ba77c2..c2007730cdc 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -390,9 +390,9 @@ class npc_highlord_tirion_fordring_lh : public CreatureScript void Initialize() { - _theLichKing = 0; - _bolvarFordragon = 0; - _factionNPC = 0; + _theLichKing.Clear(); + _bolvarFordragon.Clear(); + _factionNPC.Clear(); _damnedKills = 0; } @@ -581,9 +581,9 @@ class npc_highlord_tirion_fordring_lh : public CreatureScript private: EventMap _events; InstanceScript* const _instance; - uint64 _theLichKing; - uint64 _bolvarFordragon; - uint64 _factionNPC; + ObjectGuid _theLichKing; + ObjectGuid _bolvarFordragon; + ObjectGuid _factionNPC; uint16 _damnedKills; }; @@ -760,7 +760,7 @@ class boss_sister_svalna : public CreatureScript uint64 delay = 1; for (uint32 i = 0; i < 4; ++i) { - if (Creature* crusader = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CAPTAIN_ARNATH + i))) + if (Creature* crusader = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CAPTAIN_ARNATH + i))) { if (crusader->IsAlive() && crusader->GetEntry() == crusader->GetCreatureData()->id) { @@ -774,7 +774,7 @@ class boss_sister_svalna : public CreatureScript void EnterCombat(Unit* /*attacker*/) override { _EnterCombat(); - if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE))) + if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CROK_SCOURGEBANE))) crok->AI()->Talk(SAY_CROK_COMBAT_SVALNA); events.ScheduleEvent(EVENT_SVALNA_COMBAT, 9000); events.ScheduleEvent(EVENT_IMPALING_SPEAR, urand(40000, 50000)); @@ -979,7 +979,7 @@ class npc_crok_scourgebane : public CreatureScript _isEventDone = true; // Load Grid with Sister Svalna me->GetMap()->LoadGrid(4356.71f, 2484.33f); - if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA))) + if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA))) svalna->AI()->DoAction(ACTION_START_GAUNTLET); Talk(SAY_CROK_INTRO_1); _events.ScheduleEvent(EVENT_ARNATH_INTRO_2, 7000); @@ -987,7 +987,7 @@ class npc_crok_scourgebane : public CreatureScript _events.ScheduleEvent(EVENT_START_PATHING, 37000); me->setActive(true); for (uint32 i = 0; i < 4; ++i) - if (Creature* crusader = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_CAPTAIN_ARNATH + i))) + if (Creature* crusader = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_CAPTAIN_ARNATH + i))) crusader->AI()->DoAction(ACTION_START_GAUNTLET); } else if (action == ACTION_RESET_EVENT) @@ -1000,7 +1000,7 @@ class npc_crok_scourgebane : public CreatureScript } } - void SetGUID(uint64 guid, int32 type/* = 0*/) override + void SetGUID(ObjectGuid guid, int32 type/* = 0*/) override { if (type == ACTION_VRYKUL_DEATH) { @@ -1013,7 +1013,7 @@ class npc_crok_scourgebane : public CreatureScript _isEventActive = false; me->setActive(false); Talk(SAY_CROK_FINAL_WP); - if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA))) + if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA))) svalna->AI()->DoAction(ACTION_RESURRECT_CAPTAINS); } } @@ -1041,7 +1041,7 @@ class npc_crok_scourgebane : public CreatureScript _isEventActive = false; me->setActive(false); Talk(SAY_CROK_FINAL_WP); - if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA))) + if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA))) svalna->AI()->DoAction(ACTION_RESURRECT_CAPTAINS); } break; @@ -1067,7 +1067,7 @@ class npc_crok_scourgebane : public CreatureScript minY -= 50.0f; maxY -= 50.0f; // at waypoints 1 and 2 she kills one captain - if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA))) + if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA))) svalna->AI()->DoAction(ACTION_KILL_CAPTAIN); } else if (waypointId == 4) @@ -1090,7 +1090,7 @@ class npc_crok_scourgebane : public CreatureScript } // at waypoints 1 and 2 she kills one captain case 2: - if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA))) + if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA))) svalna->AI()->DoAction(ACTION_KILL_CAPTAIN); break; default: @@ -1160,7 +1160,7 @@ class npc_crok_scourgebane : public CreatureScript switch (eventId) { case EVENT_ARNATH_INTRO_2: - if (Creature* arnath = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_CAPTAIN_ARNATH))) + if (Creature* arnath = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_CAPTAIN_ARNATH))) arnath->AI()->Talk(SAY_ARNATH_INTRO_2); break; case EVENT_CROK_INTRO_3: @@ -1206,7 +1206,7 @@ class npc_crok_scourgebane : public CreatureScript private: EventMap _events; - std::set<uint64> _aliveTrash; + GuidSet _aliveTrash; InstanceScript* _instance; uint32 _currentWPid; uint32 _wipeCheckTimer; @@ -1254,7 +1254,7 @@ struct npc_argent_captainAI : public ScriptedAI { if (action == ACTION_START_GAUNTLET) { - if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE))) + if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CROK_SCOURGEBANE))) { me->SetReactState(REACT_DEFENSIVE); FollowAngle = me->GetAngle(crok) + me->GetOrientation(); @@ -1298,7 +1298,7 @@ struct npc_argent_captainAI : public ScriptedAI if (!me->GetVehicle()) { me->GetMotionMaster()->Clear(false); - if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE))) + if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CROK_SCOURGEBANE))) me->GetMotionMaster()->MoveFollow(crok, FollowDist, FollowAngle, MOTION_SLOT_IDLE); } @@ -2148,7 +2148,7 @@ class at_icc_start_frostwing_gauntlet : public AreaTriggerScript bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { if (InstanceScript* instance = player->GetInstanceScript()) - if (Creature* crok = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_CROK_SCOURGEBANE))) + if (Creature* crok = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_CROK_SCOURGEBANE))) crok->AI()->DoAction(ACTION_START_GAUNTLET); return true; } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index 3f429183fa0..dd821a5e5e5 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -120,52 +120,6 @@ class instance_icecrown_citadel : public InstanceMapScript LoadDoorData(doorData); TeamInInstance = 0; HeroicAttempts = MaxHeroicAttempts; - LadyDeathwisperElevatorGUID = 0; - GunshipGUID = 0; - EnemyGunshipGUID = 0; - GunshipArmoryGUID = 0; - DeathbringerSaurfangGUID = 0; - DeathbringerSaurfangDoorGUID = 0; - DeathbringerSaurfangEventGUID = 0; - DeathbringersCacheGUID = 0; - TeleporterLichKingGUID = 0; - TeleporterUpperSpireGUID = 0; - TeleporterLightsHammerGUID = 0; - TeleporterRampartsGUID = 0; - TeleporterDeathBringerGUID = 0; - TeleporterOratoryGUID = 0; - TeleporterSindragosaGUID = 0; - PlagueSigilGUID = 0; - BloodwingSigilGUID = 0; - FrostwingSigilGUID = 0; - memset(PutricidePipeGUIDs, 0, 2 * sizeof(uint64)); - memset(PutricideGateGUIDs, 0, 2 * sizeof(uint64)); - PutricideCollisionGUID = 0; - FestergutGUID = 0; - RotfaceGUID = 0; - ProfessorPutricideGUID = 0; - PutricideTableGUID = 0; - memset(BloodCouncilGUIDs, 0, 3 * sizeof(uint64)); - BloodCouncilControllerGUID = 0; - BloodQueenLanaThelGUID = 0; - CrokScourgebaneGUID = 0; - memset(CrokCaptainGUIDs, 0, 4 * sizeof(uint64)); - SisterSvalnaGUID = 0; - ValithriaDreamwalkerGUID = 0; - ValithriaLichKingGUID = 0; - ValithriaTriggerGUID = 0; - SindragosaGUID = 0; - SpinestalkerGUID = 0; - RimefangGUID = 0; - TheLichKingTeleportGUID = 0; - TheLichKingGUID = 0; - HighlordTirionFordringGUID = 0; - TerenasMenethilGUID = 0; - ArthasPlatformGUID = 0; - ArthasPrecipiceGUID = 0; - FrozenThroneEdgeGUID = 0; - FrozenThroneWindGUID = 0; - FrozenThroneWarningGUID = 0; IsBonedEligible = true; IsOozeDanceEligible = true; IsNauseaEligible = true; @@ -174,9 +128,6 @@ class instance_icecrown_citadel : public InstanceMapScript UpperSpireTeleporterActiveState = NOT_STARTED; BloodQuickeningState = NOT_STARTED; BloodQuickeningMinutes = 0; - FrozenBolvarGUID = 0; - PillarsChainedGUID = 0; - PillarsUnchainedGUID = 0; } // A function to help reduce the number of lines for teleporter management. @@ -362,7 +313,7 @@ class instance_icecrown_citadel : public InstanceMapScript void OnCreatureRemove(Creature* creature) override { if (creature->GetEntry() == NPC_SINDRAGOSA) - SindragosaGUID = 0; + SindragosaGUID.Clear(); } // Weekly quest spawn prevention @@ -725,7 +676,7 @@ class instance_icecrown_citadel : public InstanceMapScript break; case GO_THE_SKYBREAKER_A: case GO_ORGRIMS_HAMMER_H: - GunshipGUID = 0; + GunshipGUID.Clear(); break; default: break; @@ -759,7 +710,7 @@ class instance_icecrown_citadel : public InstanceMapScript return 0; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -824,7 +775,7 @@ class instance_icecrown_citadel : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -1168,7 +1119,7 @@ class instance_icecrown_citadel : public InstanceMapScript return false; } - bool CheckRequiredBosses(uint32 bossId, Player const* player = NULL) const override + bool CheckRequiredBosses(uint32 bossId, Player const* player = nullptr) const override { if (player && player->GetSession()->HasPermission(rbac::RBAC_PERM_SKIP_CHECK_INSTANCE_REQUIRED_BOSSES)) return true; @@ -1476,55 +1427,55 @@ class instance_icecrown_citadel : public InstanceMapScript protected: EventMap Events; - uint64 LadyDeathwisperElevatorGUID; - uint64 GunshipGUID; - uint64 EnemyGunshipGUID; - uint64 GunshipArmoryGUID; - uint64 DeathbringerSaurfangGUID; - uint64 DeathbringerSaurfangDoorGUID; - uint64 DeathbringerSaurfangEventGUID; // Muradin Bronzebeard or High Overlord Saurfang - uint64 DeathbringersCacheGUID; - uint64 TeleporterLichKingGUID; - uint64 TeleporterUpperSpireGUID; - uint64 TeleporterLightsHammerGUID; - uint64 TeleporterRampartsGUID; - uint64 TeleporterDeathBringerGUID; - uint64 TeleporterOratoryGUID; - uint64 TeleporterSindragosaGUID; - uint64 PlagueSigilGUID; - uint64 BloodwingSigilGUID; - uint64 FrostwingSigilGUID; - uint64 PutricidePipeGUIDs[2]; - uint64 PutricideGateGUIDs[2]; - uint64 PutricideCollisionGUID; - uint64 FestergutGUID; - uint64 RotfaceGUID; - uint64 ProfessorPutricideGUID; - uint64 PutricideTableGUID; - uint64 BloodCouncilGUIDs[3]; - uint64 BloodCouncilControllerGUID; - uint64 BloodQueenLanaThelGUID; - uint64 CrokScourgebaneGUID; - uint64 CrokCaptainGUIDs[4]; - uint64 SisterSvalnaGUID; - uint64 ValithriaDreamwalkerGUID; - uint64 ValithriaLichKingGUID; - uint64 ValithriaTriggerGUID; - uint64 SindragosaGUID; - uint64 SpinestalkerGUID; - uint64 RimefangGUID; - uint64 TheLichKingTeleportGUID; - uint64 TheLichKingGUID; - uint64 HighlordTirionFordringGUID; - uint64 TerenasMenethilGUID; - uint64 ArthasPlatformGUID; - uint64 ArthasPrecipiceGUID; - uint64 FrozenThroneEdgeGUID; - uint64 FrozenThroneWindGUID; - uint64 FrozenThroneWarningGUID; - uint64 FrozenBolvarGUID; - uint64 PillarsChainedGUID; - uint64 PillarsUnchainedGUID; + ObjectGuid LadyDeathwisperElevatorGUID; + ObjectGuid GunshipGUID; + ObjectGuid EnemyGunshipGUID; + ObjectGuid GunshipArmoryGUID; + ObjectGuid DeathbringerSaurfangGUID; + ObjectGuid DeathbringerSaurfangDoorGUID; + ObjectGuid DeathbringerSaurfangEventGUID; // Muradin Bronzebeard or High Overlord Saurfang + ObjectGuid DeathbringersCacheGUID; + ObjectGuid TeleporterLichKingGUID; + ObjectGuid TeleporterUpperSpireGUID; + ObjectGuid TeleporterLightsHammerGUID; + ObjectGuid TeleporterRampartsGUID; + ObjectGuid TeleporterDeathBringerGUID; + ObjectGuid TeleporterOratoryGUID; + ObjectGuid TeleporterSindragosaGUID; + ObjectGuid PlagueSigilGUID; + ObjectGuid BloodwingSigilGUID; + ObjectGuid FrostwingSigilGUID; + ObjectGuid PutricidePipeGUIDs[2]; + ObjectGuid PutricideGateGUIDs[2]; + ObjectGuid PutricideCollisionGUID; + ObjectGuid FestergutGUID; + ObjectGuid RotfaceGUID; + ObjectGuid ProfessorPutricideGUID; + ObjectGuid PutricideTableGUID; + ObjectGuid BloodCouncilGUIDs[3]; + ObjectGuid BloodCouncilControllerGUID; + ObjectGuid BloodQueenLanaThelGUID; + ObjectGuid CrokScourgebaneGUID; + ObjectGuid CrokCaptainGUIDs[4]; + ObjectGuid SisterSvalnaGUID; + ObjectGuid ValithriaDreamwalkerGUID; + ObjectGuid ValithriaLichKingGUID; + ObjectGuid ValithriaTriggerGUID; + ObjectGuid SindragosaGUID; + ObjectGuid SpinestalkerGUID; + ObjectGuid RimefangGUID; + ObjectGuid TheLichKingTeleportGUID; + ObjectGuid TheLichKingGUID; + ObjectGuid HighlordTirionFordringGUID; + ObjectGuid TerenasMenethilGUID; + ObjectGuid ArthasPlatformGUID; + ObjectGuid ArthasPrecipiceGUID; + ObjectGuid FrozenThroneEdgeGUID; + ObjectGuid FrozenThroneWindGUID; + ObjectGuid FrozenThroneWarningGUID; + ObjectGuid FrozenBolvarGUID; + ObjectGuid PillarsChainedGUID; + ObjectGuid PillarsUnchainedGUID; uint32 TeamInInstance; uint32 ColdflameJetsState; uint32 UpperSpireTeleporterActiveState; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp index ec273d5f6e8..dcb004cc3a0 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp @@ -201,7 +201,7 @@ class npc_faerlina_add : public CreatureScript void JustDied(Unit* /*killer*/) override { if (_instance && GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL) - if (Creature* faerlina = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FAERLINA))) + if (Creature* faerlina = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FAERLINA))) DoCast(faerlina, SPELL_WIDOWS_EMBRACE); } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp index a8de1418cc4..c715bd8aad7 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp @@ -106,7 +106,7 @@ public: void Initialize() { - uiEventStarterGUID = 0; + uiEventStarterGUID.Clear(); nextWP = 0; punishTimer = 2000; nextMovementStarted = false; @@ -118,7 +118,7 @@ public: } Horsemen id; - uint64 uiEventStarterGUID; + ObjectGuid uiEventStarterGUID; uint8 nextWP; uint32 punishTimer; bool caster; @@ -143,10 +143,10 @@ public: bool DoEncounteraction(Unit* who, bool attack, bool reset, bool checkAllDead) { - Creature* Thane = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THANE)); - Creature* Lady = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_LADY)); - Creature* Baron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BARON)); - Creature* Sir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SIR)); + Creature* Thane = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THANE)); + Creature* Lady = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_LADY)); + Creature* Baron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BARON)); + Creature* Sir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SIR)); if (Thane && Lady && Baron && Sir) { diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp index cea4b540f7b..e98e74634e2 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp @@ -75,7 +75,7 @@ public: { SetGazeOn(who); /// @todo use a script text - me->MonsterTextEmote(EMOTE_NEARBY, NULL, true); + me->TextEmote(EMOTE_NEARBY, nullptr, true); } else BossAI::MoveInLineOfSight(who); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp index de9d85db70b..39381f38d67 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp @@ -182,8 +182,8 @@ class boss_gothik : public CreatureScript bool phaseTwo; bool thirtyPercentReached; - std::vector<uint64> LiveTriggerGUID; - std::vector<uint64> DeadTriggerGUID; + GuidVector LiveTriggerGUID; + GuidVector DeadTriggerGUID; void Reset() override { diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp index 2d0e8a6d2b2..aac59761626 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp @@ -135,7 +135,7 @@ public: me->NearTeleportTo(x, y, z, o - (float(M_PI) / 2)); me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MoveIdle(); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); DoCastAOE(SPELL_PLAGUE_CLOUD); events.ScheduleEvent(EVENT_PHASE, 45000); events.ScheduleEvent(EVENT_ERUPT, 8000); @@ -204,7 +204,7 @@ class spell_heigan_eruption : public SpellScriptLoader if (GetHitDamage() >= int32(GetHitPlayer()->GetHealth())) if (InstanceScript* instance = caster->GetInstanceScript()) - if (Creature* Heigan = ObjectAccessor::GetCreature(*caster, instance->GetData64(DATA_HEIGAN))) + if (Creature* Heigan = ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_HEIGAN))) Heigan->AI()->SetData(DATA_SAFETY_DANCE, 0); } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 1c4320fd48b..6fe7bb30056 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -285,13 +285,13 @@ public: uint8 nAbomination; uint8 nWeaver; - std::map<uint64, float> chained; + std::map<ObjectGuid, float> chained; SummonList spawns; // adds spawn by the trigger. kept in separated list (i.e. not in summons) void ResetPlayerScale() { - std::map<uint64, float>::const_iterator itr; + std::map<ObjectGuid, float>::const_iterator itr; for (itr = chained.begin(); itr != chained.end(); ++itr) { if (Player* charmed = ObjectAccessor::GetPlayer(*me, itr->first)) @@ -313,7 +313,7 @@ public: instance->SetData(DATA_ABOMINATION_KILLED, 0); - if (GameObject* trigger = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_KELTHUZAD_TRIGGER))) + if (GameObject* trigger = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_KELTHUZAD_TRIGGER))) { trigger->ResetDoorOrButton(); trigger->SetPhaseMask(1, true); @@ -321,7 +321,7 @@ public: for (uint8 i = 0; i <= 3; ++i) { - if (GameObject* portal = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_KELTHUZAD_PORTAL01 + i))) + if (GameObject* portal = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_KELTHUZAD_PORTAL01 + i))) if (!((portal->getLootState() == GO_READY) || (portal->getLootState() == GO_NOT_READY))) portal->ResetDoorOrButton(); } @@ -349,7 +349,7 @@ public: _EnterCombat(); for (uint8 i = 0; i <= 3; ++i) { - if (GameObject* portal = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_KELTHUZAD_PORTAL01 + i))) + if (GameObject* portal = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_KELTHUZAD_PORTAL01 + i))) portal->ResetDoorOrButton(); } DoCast(me, SPELL_KELTHUZAD_CHANNEL, false); @@ -399,7 +399,7 @@ public: } break; case EVENT_TRIGGER: - if (GameObject* trigger = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_KELTHUZAD_TRIGGER))) + if (GameObject* trigger = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_KELTHUZAD_TRIGGER))) trigger->SetPhaseMask(2, true); break; case EVENT_PHASE: @@ -439,7 +439,7 @@ public: for (uint8 i = 0; i <= 3; ++i) { - if (GameObject* portal = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_KELTHUZAD_PORTAL01 + i))) + if (GameObject* portal = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_KELTHUZAD_PORTAL01 + i))) if (portal->getLootState() == GO_READY) portal->UseDoorOrButton(); } @@ -495,7 +495,7 @@ public: } case EVENT_CHAINED_SPELL: { - std::map<uint64, float>::iterator itr; + std::map<ObjectGuid, float>::iterator itr; for (itr = chained.begin(); itr != chained.end();) { if (Unit* player = ObjectAccessor::GetPlayer(*me, itr->first)) @@ -503,7 +503,7 @@ public: if (!player->IsCharmed()) { player->SetObjectScale(itr->second); - std::map<uint64, float>::iterator next = itr; + std::map<ObjectGuid, float>::iterator next = itr; ++next; chained.erase(itr); itr = next; @@ -639,7 +639,7 @@ public: if (!instance || instance->IsEncounterInProgress() || instance->GetBossState(BOSS_KELTHUZAD) == DONE) return false; - Creature* pKelthuzad = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_KELTHUZAD)); + Creature* pKelthuzad = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_KELTHUZAD)); if (!pKelthuzad) return false; @@ -648,7 +648,7 @@ public: return false; pKelthuzadAI->AttackStart(player); - if (GameObject* trigger = ObjectAccessor::GetGameObject(*player, instance->GetData64(DATA_KELTHUZAD_TRIGGER))) + if (GameObject* trigger = ObjectAccessor::GetGameObject(*player, instance->GetGuidData(DATA_KELTHUZAD_TRIGGER))) { if (trigger->getLootState() == GO_READY) trigger->UseDoorOrButton(); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp index 209e689e615..aa284f1aaee 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp @@ -165,11 +165,11 @@ public: struct npc_webwrapAI : public NullCreatureAI { - npc_webwrapAI(Creature* creature) : NullCreatureAI(creature), victimGUID(0) { } + npc_webwrapAI(Creature* creature) : NullCreatureAI(creature) { } - uint64 victimGUID; + ObjectGuid victimGUID; - void SetGUID(uint64 guid, int32 /*param*/) override + void SetGUID(ObjectGuid guid, int32 /*param*/) override { victimGUID = guid; if (me->m_spells[0] && victimGUID) diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp index ce5010c972f..97c7d7c4052 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp @@ -80,7 +80,7 @@ enum Misc MAX_FROST_RESISTANCE = 100 }; -typedef std::map<uint64, uint64> IceBlockMap; +typedef std::map<ObjectGuid, ObjectGuid> IceBlockMap; class boss_sapphiron : public CreatureScript { @@ -320,7 +320,7 @@ class boss_sapphiron : public CreatureScript { std::vector<Unit*>::const_iterator itr = targets.begin(); advance(itr, rand32() % targets.size()); - _iceblocks.insert(std::make_pair((*itr)->GetGUID(), 0)); + _iceblocks.insert(std::make_pair((*itr)->GetGUID(), ObjectGuid::Empty)); DoCast(*itr, SPELL_ICEBOLT); --_iceboltCount; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp index 8ae3b5790db..650777a8815 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp @@ -120,11 +120,11 @@ public: // Moreover, the adds may not yet be spawn. So just track down the status if mob is spawn // and each mob will send its status at reset (meaning that it is alive) checkFeugenAlive = false; - if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_FEUGEN))) + if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_FEUGEN))) checkFeugenAlive = pFeugen->IsAlive(); checkStalaggAlive = false; - if (Creature* pStalagg = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STALAGG))) + if (Creature* pStalagg = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_STALAGG))) checkStalaggAlive = pStalagg->IsAlive(); if (!checkFeugenAlive && !checkStalaggAlive) @@ -230,12 +230,12 @@ public: { if (!checkStalaggAlive) { - if (Creature* pStalagg = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STALAGG))) + if (Creature* pStalagg = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_STALAGG))) pStalagg->Respawn(); } else { - if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_FEUGEN))) + if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_FEUGEN))) pFeugen->Respawn(); } } @@ -307,7 +307,7 @@ public: void Reset() override { - if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THADDIUS))) + if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS))) if (pThaddius->AI()) pThaddius->AI()->DoAction(ACTION_STALAGG_RESET); Initialize(); @@ -328,7 +328,7 @@ public: void JustDied(Unit* /*killer*/) override { Talk(SAY_STAL_DEATH); - if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THADDIUS))) + if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS))) if (pThaddius->AI()) pThaddius->AI()->DoAction(ACTION_STALAGG_DIED); } @@ -340,7 +340,7 @@ public: if (magneticPullTimer <= uiDiff) { - if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_FEUGEN))) + if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_FEUGEN))) { Unit* pStalaggVictim = me->GetVictim(); Unit* pFeugenVictim = pFeugen->GetVictim(); @@ -403,7 +403,7 @@ public: void Reset() override { - if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THADDIUS))) + if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS))) if (pThaddius->AI()) pThaddius->AI()->DoAction(ACTION_FEUGEN_RESET); Initialize(); @@ -424,7 +424,7 @@ public: void JustDied(Unit* /*killer*/) override { Talk(SAY_FEUG_DEATH); - if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THADDIUS))) + if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS))) if (pThaddius->AI()) pThaddius->AI()->DoAction(ACTION_FEUGEN_DIED); } diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index 2fc49be0903..4151c4a85a7 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -112,27 +112,11 @@ class instance_naxxramas : public InstanceMapScript LoadDoorData(doorData); LoadMinionData(minionData); - GothikGateGUID = 0; - HorsemenChestGUID = 0; - FaerlinaGUID = 0; - ThaneGUID = 0; - LadyGUID = 0; - BaronGUID = 0; - SirGUID = 0; - ThaddiusGUID = 0; - HeiganGUID = 0; - FeugenGUID = 0; - StalaggGUID = 0; - SapphironGUID = 0; - KelthuzadGUID = 0; - KelthuzadTriggerGUID = 0; minHorsemenDiedTime = 0; maxHorsemenDiedTime = 0; AbominationCount = 0; playerDied = 0; - - memset(PortalsGUID, 0, sizeof(PortalsGUID)); } void OnCreatureCreate(Creature* creature) override @@ -309,7 +293,7 @@ class instance_naxxramas : public InstanceMapScript return 0; } - uint64 GetData64(uint32 id) const override + ObjectGuid GetGuidData(uint32 id) const override { switch (id) { @@ -345,7 +329,7 @@ class instance_naxxramas : public InstanceMapScript return KelthuzadTriggerGUID; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 id, EncounterState state) override @@ -372,7 +356,7 @@ class instance_naxxramas : public InstanceMapScript if (i == section) continue; - for (uint64 guid : HeiganEruptionGUID[i]) + for (ObjectGuid guid : HeiganEruptionGUID[i]) { if (GameObject* heiganEruption = instance->GetGameObject(guid)) { @@ -434,38 +418,38 @@ class instance_naxxramas : public InstanceMapScript protected: /* The Arachnid Quarter */ // Grand Widow Faerlina - uint64 FaerlinaGUID; + ObjectGuid FaerlinaGUID; /* The Plague Quarter */ // Heigan the Unclean - std::set<uint64> HeiganEruptionGUID[4]; - uint64 HeiganGUID; + GuidSet HeiganEruptionGUID[4]; + ObjectGuid HeiganGUID; /* The Military Quarter */ // Gothik the Harvester - uint64 GothikGateGUID; + ObjectGuid GothikGateGUID; // The Four Horsemen - uint64 ThaneGUID; - uint64 LadyGUID; - uint64 BaronGUID; - uint64 SirGUID; - uint64 HorsemenChestGUID; + ObjectGuid ThaneGUID; + ObjectGuid LadyGUID; + ObjectGuid BaronGUID; + ObjectGuid SirGUID; + ObjectGuid HorsemenChestGUID; time_t minHorsemenDiedTime; time_t maxHorsemenDiedTime; /* The Construct Quarter */ // Thaddius - uint64 ThaddiusGUID; - uint64 FeugenGUID; - uint64 StalaggGUID; + ObjectGuid ThaddiusGUID; + ObjectGuid FeugenGUID; + ObjectGuid StalaggGUID; /* Frostwyrm Lair */ // Sapphiron - uint64 SapphironGUID; + ObjectGuid SapphironGUID; // Kel'Thuzad - uint64 KelthuzadGUID; - uint64 KelthuzadTriggerGUID; - uint64 PortalsGUID[4]; + ObjectGuid KelthuzadGUID; + ObjectGuid KelthuzadTriggerGUID; + ObjectGuid PortalsGUID[4]; uint8 AbominationCount; /* The Immortal / The Undying */ diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 9ba0806ffd2..bd1a345e55b 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -330,7 +330,7 @@ enum MiscData class VehicleCheckPredicate { public: - bool operator()(uint64 guid) { return IS_VEHICLE_GUID(guid); } + bool operator()(ObjectGuid guid) { return guid.IsVehicle(); } }; class boss_malygos : public CreatureScript @@ -351,9 +351,10 @@ public: { _summonDeaths = 0; _preparingPulsesChecker = 0; - _arcaneOverloadGUID = 0; - _lastHitByArcaneBarrageGUID = 0; - memset(_surgeTargetGUID, 0, sizeof(_surgeTargetGUID)); + _arcaneOverloadGUID.Clear(); + _lastHitByArcaneBarrageGUID.Clear(); + for (ObjectGuid& guid : _surgeTargetGUID) + guid.Clear(); _killSpamFilter = false; _canAttack = false; @@ -423,17 +424,17 @@ public: } } - uint64 GetGUID(int32 type) const override + ObjectGuid GetGUID(int32 type) const override { if (type >= DATA_FIRST_SURGE_TARGET_GUID && type < DATA_FIRST_SURGE_TARGET_GUID + NUM_MAX_SURGE_TARGETS) return _surgeTargetGUID[type - DATA_FIRST_SURGE_TARGET_GUID]; else if (type == DATA_LAST_TARGET_BARRAGE_GUID) return _lastHitByArcaneBarrageGUID; - return 0; + return ObjectGuid::Empty; } - void SetGUID(uint64 guid, int32 type) override + void SetGUID(ObjectGuid guid, int32 type) override { switch (type) { @@ -447,6 +448,7 @@ public: break; case DATA_LAST_TARGET_BARRAGE_GUID: _lastHitByArcaneBarrageGUID = guid; + break; } } @@ -456,7 +458,7 @@ public: { case ACTION_LAND_ENCOUNTER_START: events.CancelEventGroup(1); - if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALEXSTRASZA_BUNNY_GUID))) + if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALEXSTRASZA_BUNNY_GUID))) { Position pos; pos.m_positionZ = alexstraszaBunny->GetPositionZ(); @@ -670,7 +672,7 @@ public: Talk(SAY_BUFF_SPARK); } else if (spell->Id == SPELL_MALYGOS_BERSERK) - TalkToMap(EMOTE_HIT_BERSERKER_TIMER); + Talk(EMOTE_HIT_BERSERKER_TIMER); } void MoveInLineOfSight(Unit* who) override @@ -720,7 +722,7 @@ public: { _firstCyclicMovementStarted = true; me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALEXSTRASZA_BUNNY_GUID))) + if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALEXSTRASZA_BUNNY_GUID))) me->SetFacingToObject(alexstraszaBunny); events.ScheduleEvent(EVENT_SUMMON_ARCANE_BOMB, 1*IN_MILLISECONDS, 0, PHASE_TWO); } @@ -730,7 +732,7 @@ public: break; case POINT_PHASE_ONE_TO_TWO_TRANSITION: me->SetDisableGravity(true); - if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALEXSTRASZA_BUNNY_GUID))) + if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALEXSTRASZA_BUNNY_GUID))) me->SetFacingToObject(alexstraszaBunny); me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_ARCANE_RUNES, 5 * IN_MILLISECONDS); events.ScheduleEvent(EVENT_FLY_OUT_OF_PLATFORM, 18 * IN_MILLISECONDS, 0, PHASE_TWO); @@ -789,7 +791,7 @@ public: me->CastCustomSpell(SPELL_RANDOM_PORTAL, SPELLVALUE_MAX_TARGETS, 1); break; case EVENT_LAND_START_ENCOUNTER: - if (GameObject* iris = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_FOCUSING_IRIS_GUID))) + if (GameObject* iris = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_FOCUSING_IRIS_GUID))) { me->SetFacingToObject(iris); iris->Delete(); // this is not the best way. @@ -846,7 +848,7 @@ public: case EVENT_FLY_OUT_OF_PLATFORM: if (!_performingDestroyPlatform) { - if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALEXSTRASZA_BUNNY_GUID))) + if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALEXSTRASZA_BUNNY_GUID))) { Position randomPosOnRadius; // Hardcodded retail value, reason is Z getters can fail... (TO DO: Change to getter when height calculation works on 100%!) @@ -1002,7 +1004,7 @@ public: { _JustDied(); Talk(SAY_DEATH); - if (Creature* alexstraszaGiftBoxBunny = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GIFT_BOX_BUNNY_GUID))) + if (Creature* alexstraszaGiftBoxBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GIFT_BOX_BUNNY_GUID))) { if (GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL) alexstraszaGiftBoxBunny->SummonGameObject(GO_HEART_OF_MAGIC_10, HeartOfMagicSpawnPos.GetPositionX(), HeartOfMagicSpawnPos.GetPositionY(), @@ -1036,9 +1038,9 @@ public: uint8 _phase; // Counter for phases used with a getter. uint8 _summonDeaths; // Keeps count of arcane trash. uint8 _preparingPulsesChecker; // In retail they use 2 preparing pulses with 7 sec CD, after they pass 2 seconds. - uint64 _arcaneOverloadGUID; // Last Arcane Overload summoned to know to which should visual be cast to (the purple ball, not bubble). - uint64 _lastHitByArcaneBarrageGUID; // Last hit player by Arcane Barrage, will be removed if targets > 1. - uint64 _surgeTargetGUID[3]; // All these three are used to keep current tagets to which warning should be sent. + ObjectGuid _arcaneOverloadGUID; // Last Arcane Overload summoned to know to which should visual be cast to (the purple ball, not bubble). + ObjectGuid _lastHitByArcaneBarrageGUID; // Last hit player by Arcane Barrage, will be removed if targets > 1. + ObjectGuid _surgeTargetGUID[3]; // All these three are used to keep current tagets to which warning should be sent. bool _killSpamFilter; // Prevent text spamming on killed player by helping implement a CD. bool _canAttack; // Used to control attacking (Move Chase not being applied after Stop Attack, only few times should act like this). @@ -1075,7 +1077,7 @@ public: { if (spell->Id == SPELL_PORTAL_OPENED) { - if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MALYGOS))) + if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MALYGOS))) { if (malygos->AI()->GetData(DATA_PHASE) == PHASE_ONE) DoCast(me, SPELL_SUMMON_POWER_PARK, true); @@ -1089,7 +1091,7 @@ public: if (!me->HasAura(SPELL_PORTAL_VISUAL_CLOSED) && !me->HasAura(SPELL_PORTAL_OPENED)) DoCast(me, SPELL_PORTAL_VISUAL_CLOSED, true); - if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MALYGOS))) + if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MALYGOS))) { if (malygos->AI()->GetData(DATA_PHASE) != PHASE_ONE && me->HasAura(SPELL_PORTAL_OPENED)) { @@ -1119,7 +1121,7 @@ public: npc_power_sparkAI(Creature* creature) : ScriptedAI(creature) { _instance = creature->GetInstanceScript(); - TalkToMap(EMOTE_POWER_SPARK_SUMMONED); + Talk(EMOTE_POWER_SPARK_SUMMONED); MoveToMalygos(); } @@ -1127,7 +1129,7 @@ public: { me->GetMotionMaster()->MoveIdle(); - if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MALYGOS))) + if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MALYGOS))) me->GetMotionMaster()->MoveFollow(malygos, 0.0f, 0.0f); } @@ -1136,7 +1138,7 @@ public: if (!_instance) return; - if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MALYGOS))) + if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MALYGOS))) { if (malygos->AI()->GetData(DATA_PHASE) != PHASE_ONE || _instance->GetBossState(DATA_MALYGOS_EVENT) == FAIL) { @@ -1421,7 +1423,7 @@ class npc_nexus_lord : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MALYGOS))) + if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MALYGOS))) malygos->AI()->SetData(DATA_SUMMON_DEATHS, malygos->AI()->GetData(DATA_SUMMON_DEATHS) + 1); } @@ -1488,7 +1490,7 @@ class npc_scion_of_eternity : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MALYGOS))) + if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MALYGOS))) malygos->AI()->SetData(DATA_SUMMON_DEATHS, malygos->AI()->GetData(DATA_SUMMON_DEATHS) + 1); } @@ -1528,7 +1530,7 @@ public: void DoAction(int32 /*action*/) override { - if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MALYGOS))) + if (Creature* malygos = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MALYGOS))) { if (malygos->AI()->GetData(DATA_PHASE) == PHASE_TWO) me->DespawnOrUnsummon(6*IN_MILLISECONDS); @@ -1886,7 +1888,7 @@ class spell_malygos_vortex_visual : public SpellScriptLoader if (InstanceScript* instance = caster->GetInstanceScript()) { // Teleport spell - I'm not sure but might be it must be cast by each vehicle when it's passenger leaves it. - if (Creature* trigger = caster->GetMap()->GetCreature(instance->GetData64(DATA_TRIGGER))) + if (Creature* trigger = caster->GetMap()->GetCreature(instance->GetGuidData(DATA_TRIGGER))) trigger->CastSpell(targetPlayer, SPELL_VORTEX_6, true); } } @@ -2032,7 +2034,7 @@ class spell_scion_of_eternity_arcane_barrage : public SpellScriptLoader Creature* caster = GetCaster()->ToCreature(); InstanceScript* instance = caster->GetInstanceScript(); - Creature* malygos = ObjectAccessor::GetCreature(*caster, instance->GetData64(DATA_MALYGOS)); + Creature* malygos = ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_MALYGOS)); // If max possible targets are more than 1 then Scions wouldn't select previosly selected target, // in longer terms this means if spell picks target X then 2nd cast of this spell will pick smth else @@ -2121,7 +2123,7 @@ class spell_malygos_destroy_platform_channel : public SpellScriptLoader { if (Creature* target = GetTarget()->ToCreature()) if (InstanceScript* instance = target->GetInstanceScript()) - if (Creature* platformTrigger = target->GetMap()->GetCreature(instance->GetData64(DATA_ALEXSTRASZA_BUNNY_GUID))) + if (Creature* platformTrigger = target->GetMap()->GetCreature(instance->GetGuidData(DATA_ALEXSTRASZA_BUNNY_GUID))) platformTrigger->CastSpell(platformTrigger, SPELL_DESTROY_PLATFORM_BOOM_VISUAL); } @@ -2195,7 +2197,7 @@ class spell_alexstrasza_bunny_destroy_platform_event : public SpellScriptLoader { Creature* caster = GetCaster()->ToCreature(); if (InstanceScript* instance = caster->GetInstanceScript()) - if (GameObject* platform = caster->GetMap()->GetGameObject(instance->GetData64(DATA_PLATFORM))) + if (GameObject* platform = caster->GetMap()->GetGameObject(instance->GetGuidData(DATA_PLATFORM))) platform->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED); } @@ -2478,7 +2480,7 @@ class spell_alexstrasza_gift_beam_visual : public SpellScriptLoader if (InstanceScript* instance = GetCaster()->GetInstanceScript()) { _alexstraszaGift->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - if (GameObject* heartMagic = target->GetMap()->GetGameObject(instance->GetData64(DATA_HEART_OF_MAGIC_GUID))) + if (GameObject* heartMagic = target->GetMap()->GetGameObject(instance->GetGuidData(DATA_HEART_OF_MAGIC_GUID))) { heartMagic->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); // TO DO: This is hack, core doesn't have support for these flags, diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp index d8a5cfae60d..834297aa123 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp @@ -37,19 +37,7 @@ public: { SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTER); - - vortexTriggers.clear(); - portalTriggers.clear(); - - malygosGUID = 0; - irisGUID = 0; - lastPortalGUID = 0; - platformGUID = 0; - exitPortalGUID = 0; - alexstraszaBunnyGUID = 0; - heartOfMagicGUID = 0; - giftBoxBunnyGUID = 0; - }; + } bool SetBossState(uint32 type, EncounterState state) override { @@ -60,7 +48,7 @@ public: { if (state == FAIL) { - for (std::list<uint64>::const_iterator itr_trigger = portalTriggers.begin(); itr_trigger != portalTriggers.end(); ++itr_trigger) + for (GuidList::const_iterator itr_trigger = portalTriggers.begin(); itr_trigger != portalTriggers.end(); ++itr_trigger) { if (Creature* trigger = instance->GetCreature(*itr_trigger)) { @@ -191,7 +179,7 @@ public: if (Creature* malygos = instance->GetCreature(malygosGUID)) { std::list<HostileReference*> m_threatlist = malygos->getThreatManager().getThreatList(); - for (std::list<uint64>::const_iterator itr_vortex = vortexTriggers.begin(); itr_vortex != vortexTriggers.end(); ++itr_vortex) + for (GuidList::const_iterator itr_vortex = vortexTriggers.begin(); itr_vortex != vortexTriggers.end(); ++itr_vortex) { if (m_threatlist.empty()) return; @@ -225,7 +213,7 @@ public: { bool next = (lastPortalGUID == portalTriggers.back() || !lastPortalGUID ? true : false); - for (std::list<uint64>::const_iterator itr_trigger = portalTriggers.begin(); itr_trigger != portalTriggers.end(); ++itr_trigger) + for (GuidList::const_iterator itr_trigger = portalTriggers.begin(); itr_trigger != portalTriggers.end(); ++itr_trigger) { if (next) { @@ -258,7 +246,7 @@ public: } } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -278,20 +266,20 @@ public: return giftBoxBunnyGUID; } - return 0; + return ObjectGuid::Empty; } private: - std::list<uint64> vortexTriggers; - std::list<uint64> portalTriggers; - uint64 malygosGUID; - uint64 irisGUID; - uint64 lastPortalGUID; - uint64 platformGUID; - uint64 exitPortalGUID; - uint64 heartOfMagicGUID; - uint64 alexstraszaBunnyGUID; - uint64 giftBoxBunnyGUID; + GuidList vortexTriggers; + GuidList portalTriggers; + ObjectGuid malygosGUID; + ObjectGuid irisGUID; + ObjectGuid lastPortalGUID; + ObjectGuid platformGUID; + ObjectGuid exitPortalGUID; + ObjectGuid heartOfMagicGUID; + ObjectGuid alexstraszaBunnyGUID; + ObjectGuid giftBoxBunnyGUID; Position focusingIrisPosition; Position exitPortalPosition; }; diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp index 399f2eb8ac2..ed08296acd8 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp @@ -85,7 +85,7 @@ class boss_anomalus : public CreatureScript { Phase = 0; uiSparkTimer = 5000; - uiChaoticRiftGUID = 0; + uiChaoticRiftGUID.Clear(); chaosTheory = true; } @@ -93,7 +93,7 @@ class boss_anomalus : public CreatureScript uint8 Phase; uint32 uiSparkTimer; - uint64 uiChaoticRiftGUID; + ObjectGuid uiChaoticRiftGUID; bool chaosTheory; void Reset() override @@ -151,13 +151,13 @@ class boss_anomalus : public CreatureScript if (Rift && Rift->isDead()) { me->RemoveAurasDueToSpell(SPELL_RIFT_SHIELD); - uiChaoticRiftGUID = 0; + uiChaoticRiftGUID.Clear(); } return; } } else - uiChaoticRiftGUID = 0; + uiChaoticRiftGUID.Clear(); if ((Phase == 0) && HealthBelowPct(50)) { @@ -232,7 +232,7 @@ class npc_chaotic_rift : public CreatureScript if (uiChaoticEnergyBurstTimer <= diff) { - Creature* Anomalus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ANOMALUS)); + Creature* Anomalus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ANOMALUS)); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) { if (Anomalus && Anomalus->HasAura(SPELL_RIFT_SHIELD)) @@ -250,7 +250,7 @@ class npc_chaotic_rift : public CreatureScript if (Creature* Wraith = me->SummonCreature(NPC_CRAZED_MANA_WRAITH, me->GetPositionX() + 1, me->GetPositionY() + 1, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000)) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) Wraith->AI()->AttackStart(target); - Creature* Anomalus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ANOMALUS)); + Creature* Anomalus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ANOMALUS)); if (Anomalus && Anomalus->HasAura(SPELL_RIFT_SHIELD)) uiSummonCrazedManaWraithTimer = 5000; else diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp index 7bc4174260b..6b3df5ef665 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp @@ -84,8 +84,8 @@ public: InstanceScript* instance; - std::list<uint64> intenseColdList; - uint64 auiContainmentSphereGUIDs[DATA_CONTAINMENT_SPHERES]; + GuidList intenseColdList; + ObjectGuid auiContainmentSphereGUIDs[DATA_CONTAINMENT_SPHERES]; uint32 uiCrystalfireBreathTimer; uint32 uiCrystalChainsCrystalizeTimer; uint32 uiTailSweepTimer; @@ -127,9 +127,9 @@ public: bool CheckContainmentSpheres(bool remove_prison = false) { - auiContainmentSphereGUIDs[0] = instance->GetData64(ANOMALUS_CONTAINMET_SPHERE); - auiContainmentSphereGUIDs[1] = instance->GetData64(ORMOROKS_CONTAINMET_SPHERE); - auiContainmentSphereGUIDs[2] = instance->GetData64(TELESTRAS_CONTAINMET_SPHERE); + auiContainmentSphereGUIDs[0] = instance->GetGuidData(ANOMALUS_CONTAINMET_SPHERE); + auiContainmentSphereGUIDs[1] = instance->GetGuidData(ORMOROKS_CONTAINMET_SPHERE); + auiContainmentSphereGUIDs[2] = instance->GetGuidData(TELESTRAS_CONTAINMET_SPHERE); GameObject* ContainmentSpheres[DATA_CONTAINMENT_SPHERES]; @@ -163,7 +163,7 @@ public: } } - void SetGUID(uint64 guid, int32 id/* = 0 */) override + void SetGUID(ObjectGuid guid, int32 id/* = 0 */) override { if (id == DATA_INTENSE_COLD) intenseColdList.push_back(guid); @@ -219,7 +219,7 @@ public: { InstanceScript* instance = go->GetInstanceScript(); - Creature* pKeristrasza = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_KERISTRASZA)); + Creature* pKeristrasza = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_KERISTRASZA)); if (pKeristrasza && pKeristrasza->IsAlive()) { // maybe these are hacks :( @@ -277,9 +277,9 @@ class achievement_intense_cold : public AchievementCriteriaScript if (!target) return false; - std::list<uint64> intenseColdList = ENSURE_AI(boss_keristrasza::boss_keristraszaAI, target->ToCreature()->AI())->intenseColdList; + GuidList intenseColdList = ENSURE_AI(boss_keristrasza::boss_keristraszaAI, target->ToCreature()->AI())->intenseColdList; if (!intenseColdList.empty()) - for (std::list<uint64>::iterator itr = intenseColdList.begin(); itr != intenseColdList.end(); ++itr) + for (GuidList::iterator itr = intenseColdList.begin(); itr != intenseColdList.end(); ++itr) if (player->GetGUID() == *itr) return false; diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp index c08fd97a76f..8c58a65cdbe 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp @@ -89,9 +89,9 @@ public: uiGravityWellTimer = 15 * IN_MILLISECONDS; uiCooldown = 0; - uiFireMagusGUID = 0; - uiFrostMagusGUID = 0; - uiArcaneMagusGUID = 0; + uiFireMagusGUID.Clear(); + uiFrostMagusGUID.Clear(); + uiArcaneMagusGUID.Clear(); for (uint8 n = 0; n < 3; ++n) time[n] = 0; @@ -102,9 +102,9 @@ public: InstanceScript* instance; - uint64 uiFireMagusGUID; - uint64 uiFrostMagusGUID; - uint64 uiArcaneMagusGUID; + ObjectGuid uiFireMagusGUID; + ObjectGuid uiFrostMagusGUID; + ObjectGuid uiArcaneMagusGUID; bool bFireMagusDead; bool bFrostMagusDead; @@ -173,7 +173,7 @@ public: return 0; } - uint64 SplitPersonality(uint32 entry) + ObjectGuid SplitPersonality(uint32 entry) { if (Creature* Summoned = me->SummonCreature(entry, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1*IN_MILLISECONDS)) { @@ -199,7 +199,7 @@ public: Summoned->AI()->AttackStart(target); return Summoned->GetGUID(); } - return 0; + return ObjectGuid::Empty; } void SummonedCreatureDespawn(Creature* summon) override @@ -256,9 +256,9 @@ public: Phase = 2; if (Phase == 3) Phase = 4; - uiFireMagusGUID = 0; - uiFrostMagusGUID = 0; - uiArcaneMagusGUID = 0; + uiFireMagusGUID.Clear(); + uiFrostMagusGUID.Clear(); + uiArcaneMagusGUID.Clear(); bIsWaitingToAppear = true; uiIsWaitingToAppearTimer = 4*IN_MILLISECONDS; Talk(SAY_MERGE); diff --git a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp index 663f4bca6ac..91a40d43f12 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp @@ -44,12 +44,12 @@ public: uint32 m_auiEncounter[NUMBER_OF_ENCOUNTERS]; - uint64 Anomalus; - uint64 Keristrasza; + ObjectGuid Anomalus; + ObjectGuid Keristrasza; - uint64 AnomalusContainmentSphere; - uint64 OrmoroksContainmentSphere; - uint64 TelestrasContainmentSphere; + ObjectGuid AnomalusContainmentSphere; + ObjectGuid OrmoroksContainmentSphere; + ObjectGuid TelestrasContainmentSphere; std::string strInstData; @@ -57,12 +57,6 @@ public: { SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - - Anomalus = 0; - Keristrasza = 0; - AnomalusContainmentSphere = 0; - OrmoroksContainmentSphere = 0; - TelestrasContainmentSphere = 0; } void OnCreatureCreate(Creature* creature) override @@ -222,7 +216,7 @@ public: } } - uint64 GetData64(uint32 uiIdentifier) const override + ObjectGuid GetGuidData(uint32 uiIdentifier) const override { switch (uiIdentifier) { @@ -232,7 +226,7 @@ public: case ORMOROKS_CONTAINMET_SPHERE: return OrmoroksContainmentSphere; case TELESTRAS_CONTAINMET_SPHERE: return TelestrasContainmentSphere; } - return 0; + return ObjectGuid::Empty; } std::string GetSaveData() override diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp index 17508517f44..0119b81796e 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp @@ -184,7 +184,7 @@ class npc_azure_ring_captain : public CreatureScript void Initialize() { - targetGUID = 0; + targetGUID.Clear(); } void Reset() override @@ -231,7 +231,7 @@ class npc_azure_ring_captain : public CreatureScript switch (action) { case ACTION_CALL_DRAGON_EVENT: - if (Creature* varos = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VAROS))) + if (Creature* varos = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VAROS))) { if (Unit* victim = varos->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0)) { @@ -246,7 +246,7 @@ class npc_azure_ring_captain : public CreatureScript } private: - uint64 targetGUID; + ObjectGuid targetGUID; InstanceScript* instance; }; diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp index b758f9c678c..1c5aadc3581 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp @@ -44,20 +44,7 @@ class instance_oculus : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - DrakosGUID = 0; - VarosGUID = 0; - UromGUID = 0; - EregosGUID = 0; - CentrifugueConstructCounter = 0; - - EregosCacheGUID = 0; - - GreaterWhelpList.clear(); - - BelgaristraszGUID = 0; - EternosGUID = 0; - VerdisaGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -240,7 +227,7 @@ class instance_oculus : public InstanceMapScript return true; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -256,7 +243,7 @@ class instance_oculus : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } void FreeDragons() @@ -282,26 +269,26 @@ class instance_oculus : public InstanceMapScript void GreaterWhelps() { - for (uint64 guid : GreaterWhelpList) + for (ObjectGuid guid : GreaterWhelpList) if (Creature* gwhelp = instance->GetCreature(guid)) gwhelp->SetPhaseMask(1, true); } protected: - uint64 DrakosGUID; - uint64 VarosGUID; - uint64 UromGUID; - uint64 EregosGUID; + ObjectGuid DrakosGUID; + ObjectGuid VarosGUID; + ObjectGuid UromGUID; + ObjectGuid EregosGUID; - uint64 BelgaristraszGUID; - uint64 EternosGUID; - uint64 VerdisaGUID; + ObjectGuid BelgaristraszGUID; + ObjectGuid EternosGUID; + ObjectGuid VerdisaGUID; uint8 CentrifugueConstructCounter; - uint64 EregosCacheGUID; + ObjectGuid EregosCacheGUID; - std::list<uint64> GreaterWhelpList; + GuidList GreaterWhelpList; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp index 29de693bf3a..b5079d8cf4f 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp @@ -109,7 +109,6 @@ public: Initialize(); instance = creature->GetInstanceScript(); m_uiStance = STANCE_DEFENSIVE; - memset(&m_auiStormforgedLieutenantGUID, 0, sizeof(m_auiStormforgedLieutenantGUID)); canBuff = true; } @@ -158,7 +157,7 @@ public: uint32 m_uiMortalStrike_Timer; uint32 m_uiSlam_Timer; - uint64 m_auiStormforgedLieutenantGUID[2]; + ObjectGuid m_auiStormforgedLieutenantGUID[2]; void Reset() override { @@ -170,6 +169,7 @@ public: for (uint8 i = 0; i < 2; ++i) { + // Something isn't right here - m_auiStormforgedLieutenantGUID is never assinged to if (Creature* pStormforgedLieutenant = ObjectAccessor::GetCreature(*me, m_auiStormforgedLieutenantGUID[i])) if (!pStormforgedLieutenant->IsAlive()) pStormforgedLieutenant->Respawn(); @@ -421,7 +421,7 @@ public: void EnterCombat(Unit* who) override { - if (Creature* pBjarngrim = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BJARNGRIM))) + if (Creature* pBjarngrim = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BJARNGRIM))) { if (pBjarngrim->IsAlive() && !pBjarngrim->GetVictim()) pBjarngrim->AI()->AttackStart(who); @@ -444,7 +444,7 @@ public: if (m_uiRenewSteel_Timer <= uiDiff) { - if (Creature* pBjarngrim = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BJARNGRIM))) + if (Creature* pBjarngrim = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BJARNGRIM))) { if (pBjarngrim->IsAlive()) DoCast(pBjarngrim, SPELL_RENEW_STEEL_N); diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp index ddd88681a05..274fbed0fc9 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp @@ -168,7 +168,7 @@ public: Position pos = me->GetPosition(); - for (uint64 guid : lSparkList) + for (ObjectGuid guid : lSparkList) { if (Creature* pSpark = ObjectAccessor::GetCreature(*me, guid)) { @@ -348,7 +348,7 @@ public: // Prevent them to follow players through the whole instance if (uiCheckTimer <= uiDiff) { - Creature* ionar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_IONAR)); + Creature* ionar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_IONAR)); if (ionar && ionar->IsAlive()) { if (me->GetDistance(ionar) > DATA_MAX_SPARK_DISTANCE) diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp index 4ca94f69c5b..d63d5e87923 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp @@ -100,7 +100,7 @@ public: InstanceScript* instance; - std::list<uint64> m_lGolemGUIDList; + GuidList m_lGolemGUIDList; bool m_bHasTemper; bool m_bIsStriking; @@ -164,7 +164,7 @@ public: if (m_lGolemGUIDList.empty()) return; - for (uint64 guid : m_lGolemGUIDList) + for (ObjectGuid guid : m_lGolemGUIDList) { if (Creature* temp = ObjectAccessor::GetCreature(*me, guid)) if (temp->IsAlive()) @@ -179,7 +179,7 @@ public: if (m_lGolemGUIDList.empty()) return; - for (uint64 guid : m_lGolemGUIDList) + for (ObjectGuid guid : m_lGolemGUIDList) { if (Creature* temp = ObjectAccessor::GetCreature(*me, guid)) { diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp index 0f44f935d24..0d39a8921e8 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp @@ -39,13 +39,6 @@ class instance_halls_of_lightning : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - - GeneralBjarngrimGUID = 0; - VolkhanGUID = 0; - IonarGUID = 0; - LokenGUID = 0; - - LokenGlobeGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -119,7 +112,7 @@ class instance_halls_of_lightning : public InstanceMapScript return true; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -134,16 +127,16 @@ class instance_halls_of_lightning : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 GeneralBjarngrimGUID; - uint64 VolkhanGUID; - uint64 IonarGUID; - uint64 LokenGUID; + ObjectGuid GeneralBjarngrimGUID; + ObjectGuid VolkhanGUID; + ObjectGuid IonarGUID; + ObjectGuid LokenGUID; - uint64 LokenGlobeGUID; + ObjectGuid LokenGlobeGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp index 63000df133e..ac3df1e49aa 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp @@ -281,7 +281,7 @@ class npc_iron_sludge : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* sjonnir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SJONNIR))) + if (Creature* sjonnir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SJONNIR))) sjonnir->AI()->DoAction(ACTION_OOZE_DEAD); } }; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp index 11f616e8550..f98a6e40a07 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp @@ -164,16 +164,16 @@ public: bool bMarnakActivated; bool bAbedneumActivated; - std::list<uint64> KaddrakGUIDList; + GuidList KaddrakGUIDList; void Reset() override { Initialize(); - instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), false); - instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), false); - instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), false); - instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_KADDRAK), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_MARNAK), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_ABEDNEUM), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_SKY_FLOOR), false); KaddrakGUIDList.clear(); } @@ -212,7 +212,7 @@ public: { if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (!KaddrakGUIDList.empty()) - for (std::list<uint64>::const_iterator itr = KaddrakGUIDList.begin(); itr != KaddrakGUIDList.end(); ++itr) + for (GuidList::const_iterator itr = KaddrakGUIDList.begin(); itr != KaddrakGUIDList.end(); ++itr) { if (Creature* pKaddrak = ObjectAccessor::GetCreature(*me, *itr)) { @@ -306,15 +306,15 @@ public: bIsBattle = false; uiStep = 0; uiPhaseTimer = 0; - uiControllerGUID = 0; + uiControllerGUID.Clear(); brannSparklinNews = true; } uint32 uiStep; uint32 uiPhaseTimer; - uint64 uiControllerGUID; - std::list<uint64> lDwarfGUIDList; + ObjectGuid uiControllerGUID; + GuidList lDwarfGUIDList; InstanceScript* instance; @@ -338,9 +338,9 @@ public: { if (lDwarfGUIDList.empty()) return; - for (std::list<uint64>::const_iterator itr = lDwarfGUIDList.begin(); itr != lDwarfGUIDList.end(); ++itr) + for (GuidList::const_iterator itr = lDwarfGUIDList.begin(); itr != lDwarfGUIDList.end(); ++itr) { - Creature* temp = ObjectAccessor::GetCreature(*me, instance ? (*itr) : 0); + Creature* temp = ObjectAccessor::GetCreature(*me, instance ? (*itr) : ObjectGuid::Empty); if (temp && temp->IsAlive()) temp->DespawnOrUnsummon(); } @@ -367,7 +367,7 @@ public: break; case 17: Talk(SAY_EVENT_INTRO_2); - instance->HandleGameObject(instance->GetData64(DATA_GO_TRIBUNAL_CONSOLE), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_TRIBUNAL_CONSOLE), true); me->SetStandState(UNIT_STAND_STATE_KNEEL); SetEscortPaused(true); JumpToNextStep(8500); @@ -455,7 +455,7 @@ public: JumpToNextStep(0); break; case 5: - if (Creature* temp = (ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))) + if (Creature* temp = (ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ABEDNEUM)))) temp->AI()->Talk(SAY_EVENT_INTRO_3_ABED); JumpToNextStep(8500); break; @@ -464,13 +464,13 @@ public: JumpToNextStep(6500); break; case 7: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KADDRAK))) temp->AI()->Talk(SAY_EVENT_A_2_KADD); JumpToNextStep(12500); break; case 8: Talk(SAY_EVENT_A_3); - instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_KADDRAK), true); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiControllerGUID)) ENSURE_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bKaddrakActivated = true; JumpToNextStep(5000); @@ -485,14 +485,14 @@ public: JumpToNextStep(6000); break; case 11: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MARNAK))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MARNAK))) temp->AI()->Talk(SAY_EVENT_B_2_MARN); SpawnDwarf(1); JumpToNextStep(20000); break; case 12: Talk(SAY_EVENT_B_3); - instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_MARNAK), true); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiControllerGUID)) ENSURE_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bMarnakActivated = true; JumpToNextStep(10000); @@ -515,14 +515,14 @@ public: JumpToNextStep(20000); break; case 17: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ABEDNEUM))) temp->AI()->Talk(SAY_EVENT_C_2_ABED); SpawnDwarf(1); JumpToNextStep(20000); break; case 18: Talk(SAY_EVENT_C_3); - instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_ABEDNEUM), true); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiControllerGUID)) ENSURE_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bAbedneumActivated = true; JumpToNextStep(5000); @@ -541,7 +541,7 @@ public: JumpToNextStep(20000); break; case 22: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ABEDNEUM))) temp->AI()->Talk(SAY_EVENT_D_2_ABED); SpawnDwarf(1); JumpToNextStep(5000); @@ -564,7 +564,7 @@ public: JumpToNextStep(10000); break; case 27: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ABEDNEUM))) temp->AI()->Talk(SAY_EVENT_D_4_ABED); SpawnDwarf(1); JumpToNextStep(10000); @@ -573,7 +573,7 @@ public: me->SetReactState(REACT_DEFENSIVE); Talk(SAY_EVENT_END_01); me->SetStandState(UNIT_STAND_STATE_STAND); - instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), true); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_SKY_FLOOR), true); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiControllerGUID)) temp->DealDamage(temp, temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); bIsBattle = true; @@ -587,7 +587,7 @@ public: JumpToNextStep(5500); break; case 30: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ABEDNEUM))) temp->AI()->Talk(SAY_EVENT_END_03_ABED); JumpToNextStep(8500); break; @@ -596,7 +596,7 @@ public: JumpToNextStep(11500); break; case 32: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ABEDNEUM))) temp->AI()->Talk(SAY_EVENT_END_05_ABED); JumpToNextStep(11500); break; @@ -605,7 +605,7 @@ public: JumpToNextStep(4500); break; case 34: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ABEDNEUM))) temp->AI()->Talk(SAY_EVENT_END_07_ABED); JumpToNextStep(22500); break; @@ -614,7 +614,7 @@ public: JumpToNextStep(7500); break; case 36: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KADDRAK))) temp->AI()->Talk(SAY_EVENT_END_09_KADD); JumpToNextStep(18500); break; @@ -623,7 +623,7 @@ public: JumpToNextStep(5500); break; case 38: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KADDRAK))) temp->AI()->Talk(SAY_EVENT_END_11_KADD); JumpToNextStep(20500); break; @@ -632,7 +632,7 @@ public: JumpToNextStep(2500); break; case 40: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KADDRAK))) temp->AI()->Talk(SAY_EVENT_END_13_KADD); JumpToNextStep(19500); break; @@ -641,7 +641,7 @@ public: JumpToNextStep(10500); break; case 42: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MARNAK))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MARNAK))) temp->AI()->Talk(SAY_EVENT_END_15_MARN); JumpToNextStep(6500); break; @@ -650,7 +650,7 @@ public: JumpToNextStep(6500); break; case 44: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MARNAK))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MARNAK))) temp->AI()->Talk(SAY_EVENT_END_17_MARN); JumpToNextStep(25500); break; @@ -659,7 +659,7 @@ public: JumpToNextStep(23500); break; case 46: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MARNAK))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MARNAK))) temp->AI()->Talk(SAY_EVENT_END_19_MARN); JumpToNextStep(3500); break; @@ -668,16 +668,16 @@ public: JumpToNextStep(8500); break; case 48: - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ABEDNEUM))) temp->AI()->Talk(SAY_EVENT_END_21_ABED); JumpToNextStep(5500); break; case 49: { - instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), false); - instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), false); - instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), false); - instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_KADDRAK), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_MARNAK), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_ABEDNEUM), false); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_SKY_FLOOR), false); Player* player = GetPlayerForEscort(); if (player) player->GroupEventHappens(QUEST_HALLS_OF_STONE, me); diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp index b7aa606aeeb..d6c7b18eabd 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp @@ -39,22 +39,6 @@ class instance_halls_of_stone : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - - KrystallusGUID = 0; - MaidenOfGriefGUID = 0; - SjonnirGUID = 0; - - KaddrakGUID = 0; - AbedneumGUID = 0; - MarnakGUID = 0; - BrannGUID = 0; - - TribunalConsoleGUID = 0; - TribunalChestGUID = 0; - TribunalSkyFloorGUID = 0; - KaddrakGoGUID = 0; - AbedneumGoGUID = 0; - MarnakGoGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -132,7 +116,7 @@ class instance_halls_of_stone : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -162,7 +146,7 @@ class instance_halls_of_stone : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -186,7 +170,7 @@ class instance_halls_of_stone : public InstanceMapScript return true; } - bool CheckRequiredBosses(uint32 bossId, Player const* player /*= NULL*/) const override + bool CheckRequiredBosses(uint32 bossId, Player const* player = nullptr) const override { if (player && player->GetSession()->HasPermission(rbac::RBAC_PERM_SKIP_CHECK_INSTANCE_REQUIRED_BOSSES)) return true; @@ -205,21 +189,21 @@ class instance_halls_of_stone : public InstanceMapScript } protected: - uint64 KrystallusGUID; - uint64 MaidenOfGriefGUID; - uint64 SjonnirGUID; - - uint64 KaddrakGUID; - uint64 AbedneumGUID; - uint64 MarnakGUID; - uint64 BrannGUID; - - uint64 TribunalConsoleGUID; - uint64 TribunalChestGUID; - uint64 TribunalSkyFloorGUID; - uint64 KaddrakGoGUID; - uint64 AbedneumGoGUID; - uint64 MarnakGoGUID; + ObjectGuid KrystallusGUID; + ObjectGuid MaidenOfGriefGUID; + ObjectGuid SjonnirGUID; + + ObjectGuid KaddrakGUID; + ObjectGuid AbedneumGUID; + ObjectGuid MarnakGUID; + ObjectGuid BrannGUID; + + ObjectGuid TribunalConsoleGUID; + ObjectGuid TribunalChestGUID; + ObjectGuid TribunalSkyFloorGUID; + ObjectGuid KaddrakGoGUID; + ObjectGuid AbedneumGoGUID; + ObjectGuid MarnakGoGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp index 3c073578d49..bd5b61e227f 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp @@ -403,7 +403,7 @@ class boss_algalon_the_observer : public CreatureScript { _firstPull = false; Talk(SAY_ALGALON_START_TIMER); - if (Creature* brann = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BRANN_BRONZEBEARD_ALG))) + if (Creature* brann = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BRANN_BRONZEBEARD_ALG))) brann->AI()->DoAction(ACTION_FINISH_INTRO); me->setActive(true); @@ -1008,10 +1008,10 @@ class go_celestial_planetarium_access : public GameObjectScript if (InstanceScript* instance = go->GetInstanceScript()) { instance->SetData(DATA_ALGALON_SUMMON_STATE, 1); - if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetData64(DATA_SIGILDOOR_01))) + if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetGuidData(DATA_SIGILDOOR_01))) sigil->SetGoState(GO_STATE_ACTIVE); - if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetData64(DATA_SIGILDOOR_02))) + if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetGuidData(DATA_SIGILDOOR_02))) sigil->SetGoState(GO_STATE_ACTIVE); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp index 80b3882593c..bb7a8592e04 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp @@ -210,11 +210,11 @@ class boss_steelbreaker : public CreatureScript Talk(SAY_STEELBREAKER_DEATH); //DoCastAOE(SPELL_SUPERCHARGE, true); - if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BRUNDIR))) + if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BRUNDIR))) if (Brundir->IsAlive()) Brundir->AI()->DoAction(ACTION_SUPERCHARGE); - if (Creature* Molgeim = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOLGEIM))) + if (Creature* Molgeim = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MOLGEIM))) if (Molgeim->IsAlive()) Molgeim->AI()->DoAction(ACTION_SUPERCHARGE); } @@ -355,11 +355,11 @@ class boss_runemaster_molgeim : public CreatureScript Talk(SAY_MOLGEIM_DEATH); //DoCastAOE(SPELL_SUPERCHARGE, true); - if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BRUNDIR))) + if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BRUNDIR))) if (Brundir->IsAlive()) Brundir->AI()->DoAction(ACTION_SUPERCHARGE); - if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STEELBREAKER))) + if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_STEELBREAKER))) if (Steelbreaker->IsAlive()) Steelbreaker->AI()->DoAction(ACTION_SUPERCHARGE); } @@ -396,12 +396,12 @@ class boss_runemaster_molgeim : public CreatureScript switch (urand(0, 2)) { case 1: - if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STEELBREAKER))) + if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_STEELBREAKER))) if (Steelbreaker->IsAlive()) target = Steelbreaker; break; case 2: - if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STEELBREAKER))) + if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_STEELBREAKER))) if (Brundir->IsAlive()) target = Brundir; break; @@ -528,11 +528,11 @@ class boss_stormcaller_brundir : public CreatureScript Talk(SAY_BRUNDIR_DEATH); //DoCastAOE(SPELL_SUPERCHARGE, true); - if (Creature* Molgeim = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOLGEIM))) + if (Creature* Molgeim = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MOLGEIM))) if (Molgeim->IsAlive()) Molgeim->AI()->DoAction(ACTION_SUPERCHARGE); - if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STEELBREAKER))) + if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_STEELBREAKER))) if (Steelbreaker->IsAlive()) Steelbreaker->AI()->DoAction(ACTION_SUPERCHARGE); } @@ -689,7 +689,7 @@ class spell_assembly_meltdown : public SpellScriptLoader void HandleInstaKill(SpellEffIndex /*effIndex*/) { if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_STEELBREAKER))) + if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_STEELBREAKER))) Steelbreaker->AI()->DoAction(ACTION_ADD_CHARGE); } @@ -724,7 +724,7 @@ class spell_assembly_rune_of_summoning : public SpellScriptLoader void HandlePeriodic(AuraEffect const* aurEff) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_RUNE_OF_SUMMONING_SUMMON, true, NULL, aurEff, GetTarget()->IsSummon() ? GetTarget()->ToTempSummon()->GetSummonerGUID() : 0); + GetTarget()->CastSpell(GetTarget(), SPELL_RUNE_OF_SUMMONING_SUMMON, true, NULL, aurEff, GetTarget()->IsSummon() ? GetTarget()->ToTempSummon()->GetSummonerGUID() : ObjectGuid::Empty); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp index 34c5344e1cf..b84ba45951e 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp @@ -112,7 +112,7 @@ class boss_auriaya : public CreatureScript void Initialize() { - DefenderGUID = 0; + DefenderGUID.Clear(); defenderLives = 8; crazyCatLady = true; nineLives = false; @@ -279,7 +279,7 @@ class boss_auriaya : public CreatureScript } private: - uint64 DefenderGUID; + ObjectGuid DefenderGUID; uint8 defenderLives; bool crazyCatLady; bool nineLives; @@ -385,7 +385,7 @@ class npc_sanctum_sentry : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Auriaya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_AURIAYA))) + if (Creature* Auriaya = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_AURIAYA))) Auriaya->AI()->DoAction(ACTION_CRAZY_CAT_LADY); } @@ -461,7 +461,7 @@ class npc_feral_defender : public CreatureScript void JustDied(Unit* /*killer*/) override { DoCast(me, SPELL_SUMMON_ESSENCE); - if (Creature* Auriaya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_AURIAYA))) + if (Creature* Auriaya = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_AURIAYA))) Auriaya->AI()->DoAction(ACTION_RESPAWN_DEFENDER); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 892634dfc92..959cb73a996 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -227,7 +227,6 @@ class boss_flame_leviathan : public CreatureScript boss_flame_leviathanAI(Creature* creature) : BossAI(creature, BOSS_LEVIATHAN), vehicle(creature->GetVehicleKit()) { Initialize(); - _pursueTarget = 0; } void Initialize() @@ -273,7 +272,7 @@ class boss_flame_leviathan : public CreatureScript _Reset(); //resets shutdown counter to 0. 2 or 4 depending on raid mode Shutdown = 0; - _pursueTarget = 0; + _pursueTarget.Clear(); me->SetReactState(REACT_DEFENSIVE); } @@ -557,7 +556,7 @@ class boss_flame_leviathan : public CreatureScript } } - uint64 _pursueTarget; + ObjectGuid _pursueTarget; }; CreatureAI* GetAI(Creature* creature) const override @@ -1003,7 +1002,7 @@ public: npc_escortAI::UpdateAI(diff); if (!HasEscortState(STATE_ESCORT_ESCORTING)) - Start(false, true, 0, NULL, false, true); + Start(false, true, ObjectGuid::Empty, NULL, false, true); else { if (infernoTimer <= diff) @@ -1208,7 +1207,7 @@ class npc_lorekeeper : public CreatureScript player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+2: - if (Creature* leviathan = instance->instance->GetCreature(instance->GetData64(BOSS_LEVIATHAN))) + if (Creature* leviathan = instance->instance->GetCreature(instance->GetGuidData(BOSS_LEVIATHAN))) { leviathan->AI()->DoAction(ACTION_START_HARD_MODE); creature->SetVisible(false); @@ -1564,11 +1563,11 @@ class spell_auto_repair : public SpellScriptLoader if (!vehicle) return; - Player* driver = vehicle->GetPassenger(0) ? vehicle->GetPassenger(0)->ToPlayer() : NULL; + Unit* driver = vehicle->GetPassenger(0); if (!driver) return; - driver->MonsterTextEmote(EMOTE_REPAIR, driver, true); + driver->TextEmote(EMOTE_REPAIR, driver, true); InstanceScript* instance = driver->GetInstanceScript(); if (!instance) @@ -1670,7 +1669,7 @@ class FlameLeviathanPursuedTargetSelector //! Vehicle must be in use by player bool playerFound = false; for (SeatMap::const_iterator itr = vehicle->Seats.begin(); itr != vehicle->Seats.end() && !playerFound; ++itr) - if (IS_PLAYER_GUID(itr->second.Passenger.Guid)) + if (itr->second.Passenger.Guid.IsPlayer()) playerFound = true; return !playerFound; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index ecebeb8d4e5..93fee8d1964 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -226,7 +226,6 @@ class npc_iron_roots : public CreatureScript me->ApplySpellImmune(0, IMMUNITY_ID, 49560, true); // Death Grip me->setFaction(14); me->SetReactState(REACT_PASSIVE); - summonerGUID = 0; } void IsSummonedBy(Unit* summoner) override @@ -251,7 +250,7 @@ class npc_iron_roots : public CreatureScript } private: - uint64 summonerGUID; + ObjectGuid summonerGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -284,7 +283,7 @@ class boss_freya : public CreatureScript for (uint8 i = 0; i < 3; ++i) for (uint8 n = 0; n < 2; ++n) - ElementalGUID[i][n] = 0; + ElementalGUID[i][n].Clear(); for (uint8 i = 0; i < 6; ++i) for (uint8 n = 0; n < 2; ++n) deforestation[i][n] = 0; @@ -297,7 +296,7 @@ class boss_freya : public CreatureScript random[n] = false; } - uint64 ElementalGUID[3][2]; + ObjectGuid ElementalGUID[3][2]; uint32 deforestation[6][2]; uint32 elementalTimer[2]; @@ -340,7 +339,7 @@ class boss_freya : public CreatureScript Creature* Elder[3]; for (uint8 n = 0; n < 3; ++n) { - Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF + n)); + Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_BRIGHTLEAF + n)); if (Elder[n] && Elder[n]->IsAlive()) { me->AddAura(SPELL_DRAINED_OF_POWER, Elder[n]); @@ -615,7 +614,7 @@ class boss_freya : public CreatureScript Creature* Elder[3]; for (uint8 n = 0; n < 3; ++n) { - Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF + n)); + Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_BRIGHTLEAF + n)); if (Elder[n] && Elder[n]->IsAlive()) { Elder[n]->RemoveAllAuras(); @@ -715,10 +714,10 @@ class boss_elder_brightleaf : public CreatureScript if (killer->GetTypeId() == TYPEID_PLAYER) { - if (Creature* Ironbranch = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_IRONBRANCH))) + if (Creature* Ironbranch = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_IRONBRANCH))) Ironbranch->AI()->DoAction(ACTION_ELDER_DEATH); - if (Creature* Stonebark = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_STONEBARK))) + if (Creature* Stonebark = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_STONEBARK))) Stonebark->AI()->DoAction(ACTION_ELDER_DEATH); } } @@ -822,10 +821,10 @@ class boss_elder_stonebark : public CreatureScript if (killer->GetTypeId() == TYPEID_PLAYER) { - if (Creature* Ironbranch = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_IRONBRANCH))) + if (Creature* Ironbranch = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_IRONBRANCH))) Ironbranch->AI()->DoAction(ACTION_ELDER_DEATH); - if (Creature* Brightleaf = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF))) + if (Creature* Brightleaf = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_BRIGHTLEAF))) Brightleaf->AI()->DoAction(ACTION_ELDER_DEATH); } } @@ -935,10 +934,10 @@ class boss_elder_ironbranch : public CreatureScript if (killer->GetTypeId() == TYPEID_PLAYER) { - if (Creature* Brightleaf = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF))) + if (Creature* Brightleaf = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_BRIGHTLEAF))) Brightleaf->AI()->DoAction(ACTION_ELDER_DEATH); - if (Creature* Stonebark = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_STONEBARK))) + if (Creature* Stonebark = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_STONEBARK))) Stonebark->AI()->DoAction(ACTION_ELDER_DEATH); } } @@ -1076,7 +1075,7 @@ class npc_ancient_water_spirit : public CreatureScript { Initialize(); instance = me->GetInstanceScript(); - if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA))) + if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_FREYA))) waveCount = ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->trioWaveCount; else waveCount = 0; @@ -1114,7 +1113,7 @@ class npc_ancient_water_spirit : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA))) + if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_FREYA))) { ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->checkElementalAlive[waveCount] = false; ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->LasherDead(1); @@ -1144,7 +1143,7 @@ class npc_storm_lasher : public CreatureScript { Initialize(); instance = me->GetInstanceScript(); - if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA))) + if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_FREYA))) waveCount = ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->trioWaveCount; else waveCount = 0; @@ -1188,7 +1187,7 @@ class npc_storm_lasher : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA))) + if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_FREYA))) { ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->checkElementalAlive[waveCount] = false; ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->LasherDead(2); @@ -1218,7 +1217,7 @@ class npc_snaplasher : public CreatureScript npc_snaplasherAI(Creature* creature) : ScriptedAI(creature) { instance = me->GetInstanceScript(); - if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA))) + if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_FREYA))) waveCount = ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->trioWaveCount; else waveCount = 0; @@ -1237,7 +1236,7 @@ class npc_snaplasher : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA))) + if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_FREYA))) { ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->checkElementalAlive[waveCount] = false; ENSURE_AI(boss_freya::boss_freyaAI, Freya->AI())->LasherDead(4); @@ -1543,17 +1542,17 @@ class spell_freya_attuned_to_nature_dose_reduction : public SpellScriptLoader case SPELL_ATTUNED_TO_NATURE_2_DOSE_REDUCTION: if (target->HasAura(GetEffectValue())) for (uint8 n = 0; n < 2; ++n) - target->RemoveAuraFromStack(GetEffectValue(), 0, AURA_REMOVE_BY_DEFAULT); + target->RemoveAuraFromStack(GetEffectValue()); break; case SPELL_ATTUNED_TO_NATURE_10_DOSE_REDUCTION: if (target->HasAura(GetEffectValue())) for (uint8 n = 0; n < 10; ++n) - target->RemoveAuraFromStack(GetEffectValue(), 0, AURA_REMOVE_BY_DEFAULT); + target->RemoveAuraFromStack(GetEffectValue()); break; case SPELL_ATTUNED_TO_NATURE_25_DOSE_REDUCTION: if (target->HasAura(GetEffectValue())) for (uint8 n = 0; n < 25; ++n) - target->RemoveAuraFromStack(GetEffectValue(), 0, AURA_REMOVE_BY_DEFAULT); + target->RemoveAuraFromStack(GetEffectValue()); break; default: break; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp index 5d4ddf1865c..9cb5e71b471 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp @@ -338,7 +338,7 @@ class boss_saronite_animus : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Vezax = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_VEZAX))) + if (Creature* Vezax = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_VEZAX))) Vezax->AI()->DoAction(ACTION_ANIMUS_DIE); } @@ -433,7 +433,7 @@ class npc_saronite_vapors : public CreatureScript DoCast(me, SPELL_SARONITE_VAPORS); me->DespawnOrUnsummon(30000); - if (Creature* Vezax = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_VEZAX))) + if (Creature* Vezax = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_VEZAX))) Vezax->AI()->DoAction(ACTION_VAPORS_DIE); } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index 42c0323a714..f1cfea0e58f 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -189,13 +189,13 @@ class npc_flash_freeze : public CreatureScript void Initialize() { - targetGUID = 0; + targetGUID.Clear(); checkDespawnTimer = 1000; } InstanceScript* instance; - uint64 targetGUID; + ObjectGuid targetGUID; uint32 checkDespawnTimer; void Reset() override @@ -236,7 +236,7 @@ class npc_flash_freeze : public CreatureScript // Prevents to have Ice Block on other place than target is me->NearTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation()); if (target->GetTypeId() == TYPEID_PLAYER) - if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_HODIR))) + if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_HODIR))) Hodir->AI()->DoAction(ACTION_CHEESE_THE_FREEZE); } } @@ -260,12 +260,11 @@ class npc_ice_block : public CreatureScript instance = me->GetInstanceScript(); me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); - targetGUID = 0; } InstanceScript* instance; - uint64 targetGUID; + ObjectGuid targetGUID; void IsSummonedBy(Unit* summoner) override { @@ -288,7 +287,7 @@ class npc_ice_block : public CreatureScript { Helper->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); - if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_HODIR))) + if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_HODIR))) { if (!Hodir->IsInCombat()) { @@ -691,7 +690,7 @@ class npc_hodir_priest : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_HODIR))) + if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_HODIR))) Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS); } @@ -753,7 +752,7 @@ class npc_hodir_shaman : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_HODIR))) + if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_HODIR))) Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS); } @@ -814,7 +813,7 @@ class npc_hodir_druid : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_HODIR))) + if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_HODIR))) Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS); } @@ -894,7 +893,7 @@ class npc_hodir_mage : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_HODIR))) + if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_HODIR))) Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS); } @@ -990,7 +989,7 @@ class spell_biting_cold : public SpellScriptLoader } private: - typedef std::list< std::pair<uint64, uint8> > TargetList; + typedef std::list<std::pair<ObjectGuid, uint8>> TargetList; TargetList listOfTargets; }; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp index f0f918f7e39..d4fbf959c53 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp @@ -124,7 +124,7 @@ class boss_ignis : public CreatureScript void Initialize() { - _slagPotGUID = 0; + _slagPotGUID.Clear(); _shattered = false; _firstConstructKill = 0; } @@ -251,7 +251,7 @@ class boss_ignis : public CreatureScript { slagPotTarget->ExitVehicle(); slagPotTarget = NULL; - _slagPotGUID = 0; + _slagPotGUID.Clear(); events.CancelEvent(EVENT_END_POT); } break; @@ -282,7 +282,7 @@ class boss_ignis : public CreatureScript } private: - uint64 _slagPotGUID; + ObjectGuid _slagPotGUID; Vehicle* _vehicle; time_t _firstConstructKill; bool _shattered; @@ -323,7 +323,7 @@ class npc_iron_construct : public CreatureScript if (me->HasAura(SPELL_BRITTLE) && damage >= 5000) { DoCast(SPELL_SHATTER); - if (Creature* ignis = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_IGNIS))) + if (Creature* ignis = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_IGNIS))) if (ignis->AI()) ignis->AI()->DoAction(ACTION_REMOVE_BUFF); @@ -385,7 +385,7 @@ class npc_scorch_ground : public CreatureScript void Initialize() { _heat = false; - _constructGUID = 0; + _constructGUID.Clear(); _heatTimer = 0; } @@ -429,7 +429,7 @@ class npc_scorch_ground : public CreatureScript } private: - uint64 _constructGUID; + ObjectGuid _constructGUID; uint32 _heatTimer; bool _heat; }; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp index 71a89c0e508..9486d95639f 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp @@ -115,7 +115,7 @@ class boss_kologarn : public CreatureScript Vehicle* vehicle; bool left, right; - uint64 eyebeamTarget; + ObjectGuid eyebeamTarget; void EnterCombat(Unit* /*who*/) override { @@ -139,7 +139,7 @@ class boss_kologarn : public CreatureScript { _Reset(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - eyebeamTarget = 0; + eyebeamTarget.Clear(); } void JustDied(Unit* /*killer*/) override @@ -339,7 +339,7 @@ class spell_ulduar_rubble_summon : public SpellScriptLoader if (!caster) return; - uint64 originalCaster = caster->GetInstanceScript() ? caster->GetInstanceScript()->GetData64(BOSS_KOLOGARN) : 0; + ObjectGuid originalCaster = caster->GetInstanceScript() ? caster->GetInstanceScript()->GetGuidData(BOSS_KOLOGARN) : ObjectGuid::Empty; uint32 spellId = GetEffectValue(); for (uint8 i = 0; i < 5; ++i) caster->CastSpell(caster, spellId, true, NULL, NULL, originalCaster); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index 3a137a8658e..880eeba206b 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -347,9 +347,9 @@ static bool IsEncounterFinished(Unit* who) { InstanceScript* instance = who->GetInstanceScript(); - Creature* mkii = ObjectAccessor::GetCreature(*who, instance->GetData64(DATA_LEVIATHAN_MK_II)); - Creature* vx001 = ObjectAccessor::GetCreature(*who, instance->GetData64(DATA_VX_001)); - Creature* aerial = ObjectAccessor::GetCreature(*who, instance->GetData64(DATA_AERIAL_COMMAND_UNIT)); + Creature* mkii = ObjectAccessor::GetCreature(*who, instance->GetGuidData(DATA_LEVIATHAN_MK_II)); + Creature* vx001 = ObjectAccessor::GetCreature(*who, instance->GetGuidData(DATA_VX_001)); + Creature* aerial = ObjectAccessor::GetCreature(*who, instance->GetGuidData(DATA_AERIAL_COMMAND_UNIT)); if (!mkii || !vx001 || !aerial) return false; @@ -363,7 +363,7 @@ static bool IsEncounterFinished(Unit* who) mkii->DespawnOrUnsummon(120000); vx001->DespawnOrUnsummon(120000); aerial->DespawnOrUnsummon(120000); - if (Creature* mimiron = ObjectAccessor::GetCreature(*who, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*who, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->JustDied(who); return true; } @@ -395,7 +395,7 @@ class boss_mimiron : public CreatureScript break; case DO_ACTIVATE_V0L7R0N_1: Talk(SAY_AERIAL_DEATH); - if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_LEVIATHAN_MK_II))) + if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_LEVIATHAN_MK_II))) mkii->GetMotionMaster()->MovePoint(WP_MKII_P4_POS_1, VehicleRelocation[WP_MKII_P4_POS_1]); break; case DO_ACTIVATE_V0L7R0N_2: @@ -420,7 +420,7 @@ class boss_mimiron : public CreatureScript me->RemoveAurasDueToSpell(SPELL_WELD); DoCast(me->GetVehicleBase(), SPELL_SEAT_6); - if (GameObject* button = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MIMIRON_BUTTON))) + if (GameObject* button = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_MIMIRON_BUTTON))) button->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); if (_fireFighter) @@ -450,14 +450,14 @@ class boss_mimiron : public CreatureScript _Reset(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MIMIRON_ELEVATOR))) + if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_MIMIRON_ELEVATOR))) elevator->SetGoState(GO_STATE_ACTIVE); if (_fireFighter) - if (Creature* computer = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_COMPUTER))) + if (Creature* computer = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_COMPUTER))) computer->AI()->DoAction(DO_DEACTIVATE_COMPUTER); - if (GameObject* button = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MIMIRON_BUTTON))) + if (GameObject* button = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_MIMIRON_BUTTON))) { button->SetGoState(GO_STATE_READY); button->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); @@ -466,7 +466,7 @@ class boss_mimiron : public CreatureScript _fireFighter = false; DoCast(me, SPELL_WELD); - if (Unit* mkii = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LEVIATHAN_MK_II))) + if (Unit* mkii = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LEVIATHAN_MK_II))) DoCast(mkii, SPELL_SEAT_3); } @@ -485,7 +485,7 @@ class boss_mimiron : public CreatureScript switch (eventId) { case EVENT_SUMMON_FLAMES: - if (Unit* worldtrigger = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MIMIRON_WORLD_TRIGGER))) + if (Unit* worldtrigger = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MIMIRON_WORLD_TRIGGER))) worldtrigger->CastCustomSpell(SPELL_SCRIPT_EFFECT_SUMMON_FLAMES_INITIAL, SPELLVALUE_MAX_TARGETS, 3, NULL, true, NULL, NULL, me->GetGUID()); events.RescheduleEvent(EVENT_SUMMON_FLAMES, 28000); break; @@ -521,21 +521,21 @@ class boss_mimiron : public CreatureScript events.ScheduleEvent(EVENT_VX001_ACTIVATION_4, 5000); break; case EVENT_VX001_ACTIVATION_4: - if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MIMIRON_ELEVATOR))) + if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_MIMIRON_ELEVATOR))) elevator->SetGoState(GO_STATE_READY); - if (Unit* worldtrigger = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MIMIRON_WORLD_TRIGGER))) + if (Unit* worldtrigger = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MIMIRON_WORLD_TRIGGER))) worldtrigger->CastSpell(worldtrigger, SPELL_ELEVATOR_KNOCKBACK); events.ScheduleEvent(EVENT_VX001_ACTIVATION_5, 6000); break; case EVENT_VX001_ACTIVATION_5: - if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MIMIRON_ELEVATOR))) + if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_MIMIRON_ELEVATOR))) elevator->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); if (Creature* vx001 = me->SummonCreature(NPC_VX_001, VX001SummonPos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 120000)) vx001->CastSpell(vx001, SPELL_FREEZE_ANIM); events.ScheduleEvent(EVENT_VX001_ACTIVATION_6, 19000); break; case EVENT_VX001_ACTIVATION_6: - if (Unit* vx001 = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_VX_001))) + if (Unit* vx001 = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_VX_001))) DoCast(vx001, SPELL_SEAT_1); events.ScheduleEvent(EVENT_VX001_ACTIVATION_7, 3500); break; @@ -566,7 +566,7 @@ class boss_mimiron : public CreatureScript events.ScheduleEvent(EVENT_AERIAL_ACTIVATION_4, 5000); break; case EVENT_AERIAL_ACTIVATION_4: - if (Unit* aerial = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_AERIAL_COMMAND_UNIT))) + if (Unit* aerial = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_AERIAL_COMMAND_UNIT))) me->CastSpell(aerial, SPELL_SEAT_1); events.ScheduleEvent(EVENT_AERIAL_ACTIVATION_5, 2000); break; @@ -579,14 +579,14 @@ class boss_mimiron : public CreatureScript acu->AI()->DoAction(_fireFighter? DO_HARDMODE_AERIAL : DO_START_AERIAL); break; case EVENT_VOL7RON_ACTIVATION_1: - if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_LEVIATHAN_MK_II))) + if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_LEVIATHAN_MK_II))) mkii->SetFacingTo(float(M_PI)); events.ScheduleEvent(EVENT_VOL7RON_ACTIVATION_2, 1000); break; case EVENT_VOL7RON_ACTIVATION_2: - if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_LEVIATHAN_MK_II))) + if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_LEVIATHAN_MK_II))) { - if (Creature* vx001 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VX_001))) + if (Creature* vx001 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VX_001))) { vx001->RemoveAurasDueToSpell(SPELL_TORSO_DISABLED); vx001->CastSpell(mkii, SPELL_MOUNT_MKII); @@ -595,14 +595,14 @@ class boss_mimiron : public CreatureScript events.ScheduleEvent(EVENT_VOL7RON_ACTIVATION_3, 4500); break; case EVENT_VOL7RON_ACTIVATION_3: - if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_LEVIATHAN_MK_II))) + if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_LEVIATHAN_MK_II))) mkii->GetMotionMaster()->MovePoint(WP_MKII_P4_POS_4, VehicleRelocation[WP_MKII_P4_POS_4]); events.ScheduleEvent(EVENT_VOL7RON_ACTIVATION_4, 5000); break; case EVENT_VOL7RON_ACTIVATION_4: - if (Creature* vx001 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VX_001))) + if (Creature* vx001 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VX_001))) { - if (Creature* aerial = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AERIAL_COMMAND_UNIT))) + if (Creature* aerial = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AERIAL_COMMAND_UNIT))) { aerial->GetMotionMaster()->MoveLand(0, (aerial->GetPositionX(), aerial->GetPositionY(), aerial->GetPositionZMinusOffset())); aerial->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); @@ -617,13 +617,13 @@ class boss_mimiron : public CreatureScript events.ScheduleEvent(EVENT_VOL7RON_ACTIVATION_6, 3000); break; case EVENT_VOL7RON_ACTIVATION_6: - if (Creature* vx001 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VX_001))) + if (Creature* vx001 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VX_001))) DoCast(vx001, SPELL_SEAT_2); events.ScheduleEvent(EVENT_VOL7RON_ACTIVATION_7, 5000); break; case EVENT_VOL7RON_ACTIVATION_7: for (uint8 data = DATA_LEVIATHAN_MK_II; data <= DATA_AERIAL_COMMAND_UNIT; ++data) - if (Creature* mimironVehicle = ObjectAccessor::GetCreature(*me, instance->GetData64(data))) + if (Creature* mimironVehicle = ObjectAccessor::GetCreature(*me, instance->GetGuidData(data))) mimironVehicle->AI()->DoAction(DO_ASSEMBLED_COMBAT); break; case EVENT_OUTTRO_1: @@ -636,7 +636,7 @@ class boss_mimiron : public CreatureScript Talk(SAY_V07TRON_DEATH); if (_fireFighter) { - if (Creature* computer = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_COMPUTER))) + if (Creature* computer = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_COMPUTER))) computer->AI()->DoAction(DO_DEACTIVATE_COMPUTER); me->SummonGameObject(RAID_MODE(GO_CACHE_OF_INNOVATION_FIREFIGHTER, GO_CACHE_OF_INNOVATION_FIREFIGHTER_HERO), 2744.040f, 2569.352f, 364.3135f, 3.124123f, 0.f, 0.f, 0.9999619f, 0.008734641f, 604800); } @@ -772,7 +772,7 @@ class boss_leviathan_mk_ii : public CreatureScript void KilledUnit(Unit* victim) override { if (victim->GetTypeId() == TYPEID_PLAYER) - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->Talk(events.IsInPhase(PHASE_LEVIATHAN_MK_II) ? SAY_MKII_SLAY : SAY_V07TRON_SLAY); } @@ -787,7 +787,7 @@ class boss_leviathan_mk_ii : public CreatureScript me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); DoCast(me, SPELL_HALF_HEAL); - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->DoAction(DO_ACTIVATE_VX001); break; case WP_MKII_P4_POS_1: @@ -797,7 +797,7 @@ class boss_leviathan_mk_ii : public CreatureScript events.ScheduleEvent(EVENT_MOVE_POINT_3, 1); break; case WP_MKII_P4_POS_3: - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->DoAction(DO_ACTIVATE_V0L7R0N_2); break; case WP_MKII_P4_POS_4: @@ -937,7 +937,7 @@ class boss_vx_001 : public CreatureScript me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // | UNIT_FLAG_NOT_SELECTABLE); DoCast(me, SPELL_HALF_HEAL); // has no effect, wat DoCast(me, SPELL_TORSO_DISABLED); - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->DoAction(DO_ACTIVATE_AERIAL); } else if (events.IsInPhase(PHASE_VOL7RON)) @@ -1008,7 +1008,7 @@ class boss_vx_001 : public CreatureScript void KilledUnit(Unit* victim) override { if (victim->GetTypeId() == TYPEID_PLAYER) - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->Talk(events.IsInPhase(PHASE_VX_001) ? SAY_VX001_SLAY : SAY_V07TRON_SLAY); } @@ -1028,7 +1028,7 @@ class boss_vx_001 : public CreatureScript // Handle rotation during SPELL_SPINNING_UP, SPELL_P3WX2_LASER_BARRAGE, SPELL_RAPID_BURST, and SPELL_HAND_PULSE_LEFT/RIGHT if (me->HasUnitState(UNIT_STATE_CASTING)) { - if (Creature* channelTarget = ObjectAccessor::GetCreature(*me, me->GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT))) + if (Creature* channelTarget = ObjectAccessor::GetCreature(*me, me->GetChannelObjectGuid())) me->SetFacingToObject(channelTarget); return; } @@ -1183,7 +1183,7 @@ class boss_aerial_command_unit : public CreatureScript void KilledUnit(Unit* victim) override { if (victim->GetTypeId() == TYPEID_PLAYER) - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->Talk(events.IsInPhase(PHASE_AERIAL_COMMAND_UNIT) ? SAY_AERIAL_SLAY : SAY_V07TRON_SLAY); } @@ -1193,7 +1193,7 @@ class boss_aerial_command_unit : public CreatureScript { me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->DoAction(DO_ACTIVATE_V0L7R0N_1); } } @@ -1414,7 +1414,7 @@ class npc_mimiron_computer : public CreatureScript { case EVENT_SELF_DESTRUCT_10: Talk(SAY_SELF_DESTRUCT_10); - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->DoAction(DO_ACTIVATE_HARD_MODE); events.ScheduleEvent(EVENT_SELF_DESTRUCT_9, 60000); break; @@ -1456,7 +1456,7 @@ class npc_mimiron_computer : public CreatureScript break; case EVENT_SELF_DESTRUCT_FINALIZED: Talk(SAY_SELF_DESTRUCT_FINALIZED); - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_MIMIRON))) mimiron->AI()->DoAction(DO_ACTIVATE_SELF_DESTRUCT); DoCast(me, SPELL_SELF_DESTRUCTION_AURA); DoCast(me, SPELL_SELF_DESTRUCTION_VISUAL); @@ -1634,7 +1634,7 @@ class go_mimiron_hardmode_button : public GameObjectScript if (!instance) return false; - if (Creature* computer = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_COMPUTER))) + if (Creature* computer = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_COMPUTER))) computer->AI()->DoAction(DO_ACTIVATE_COMPUTER); go->SetGoState(GO_STATE_ACTIVE); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); @@ -1656,7 +1656,7 @@ class spell_mimiron_bomb_bot : public SpellScriptLoader { if (GetHitPlayer()) if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (Creature* mkii = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_LEVIATHAN_MK_II))) + if (Creature* mkii = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_LEVIATHAN_MK_II))) mkii->AI()->SetData(DATA_SETUP_BOMB, 0); } @@ -1953,7 +1953,7 @@ class spell_mimiron_p3wx2_laser_barrage : public SpellScriptLoader void OnHit(SpellEffIndex /*effIndex*/) { - GetCaster()->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, GetHitUnit()->GetGUID()); + GetCaster()->SetChannelObjectGuid(GetHitUnit()->GetGUID()); } void Register() override @@ -2022,7 +2022,7 @@ class spell_mimiron_proximity_explosion : public SpellScriptLoader { if (GetHitPlayer()) if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (Creature* mkII = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_LEVIATHAN_MK_II))) + if (Creature* mkII = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_LEVIATHAN_MK_II))) mkII->AI()->SetData(DATA_SETUP_MINE, 0); } @@ -2239,7 +2239,7 @@ class spell_mimiron_rocket_strike_damage : public SpellScriptLoader { if (GetHitPlayer()) if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (Creature* mkii = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_LEVIATHAN_MK_II))) + if (Creature* mkii = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_LEVIATHAN_MK_II))) mkii->AI()->SetData(DATA_SETUP_ROCKET, 0); } @@ -2298,7 +2298,7 @@ class spell_mimiron_rocket_strike_target_select : public SpellScriptLoader void HandleScript(SpellEffIndex /*effIndex*/) { if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - GetCaster()->CastSpell(GetHitUnit(), SPELL_SUMMON_ROCKET_STRIKE, true, NULL, NULL, instance->GetData64(DATA_VX_001)); + GetCaster()->CastSpell(GetHitUnit(), SPELL_SUMMON_ROCKET_STRIKE, true, NULL, NULL, instance->GetGuidData(DATA_VX_001)); GetCaster()->SetDisplayId(11686); } @@ -2357,7 +2357,7 @@ class spell_mimiron_spinning_up : public SpellScriptLoader void OnHit(SpellEffIndex /*effIndex*/) { if (GetHitUnit() != GetCaster()) - GetCaster()->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, GetHitUnit()->GetGUID()); + GetCaster()->SetChannelObjectGuid(GetHitUnit()->GetGUID()); } void Register() override @@ -2394,7 +2394,7 @@ class spell_mimiron_summon_assault_bot : public SpellScriptLoader if (Unit* caster = GetCaster()) if (InstanceScript* instance = caster->GetInstanceScript()) if (instance->GetBossState(BOSS_MIMIRON) == IN_PROGRESS) - caster->CastSpell(caster, SPELL_SUMMON_ASSAULT_BOT, false, NULL, aurEff, instance->GetData64(DATA_AERIAL_COMMAND_UNIT)); + caster->CastSpell(caster, SPELL_SUMMON_ASSAULT_BOT, false, NULL, aurEff, instance->GetGuidData(DATA_AERIAL_COMMAND_UNIT)); } void Register() override @@ -2466,7 +2466,7 @@ class spell_mimiron_summon_fire_bot : public SpellScriptLoader if (Unit* caster = GetCaster()) if (InstanceScript* instance = caster->GetInstanceScript()) if (instance->GetBossState(BOSS_MIMIRON) == IN_PROGRESS) - caster->CastSpell(caster, SPELL_SUMMON_FIRE_BOT, false, NULL, aurEff, instance->GetData64(DATA_AERIAL_COMMAND_UNIT)); + caster->CastSpell(caster, SPELL_SUMMON_FIRE_BOT, false, NULL, aurEff, instance->GetGuidData(DATA_AERIAL_COMMAND_UNIT)); } void Register() override @@ -2662,7 +2662,7 @@ class spell_mimiron_summon_junk_bot : public SpellScriptLoader if (Unit* caster = GetCaster()) if (InstanceScript* instance = caster->GetInstanceScript()) if (instance->GetBossState(BOSS_MIMIRON) == IN_PROGRESS) - caster->CastSpell(caster, SPELL_SUMMON_JUNK_BOT, false, NULL, aurEff, instance->GetData64(DATA_AERIAL_COMMAND_UNIT)); + caster->CastSpell(caster, SPELL_SUMMON_JUNK_BOT, false, NULL, aurEff, instance->GetGuidData(DATA_AERIAL_COMMAND_UNIT)); } void Register() override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp index d53ac6d91d6..cad6b045120 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp @@ -203,13 +203,13 @@ class boss_razorscale_controller : public CreatureScript switch (spell->Id) { case SPELL_FLAMED: - if (GameObject* Harpoon1 = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_RAZOR_HARPOON_1))) + if (GameObject* Harpoon1 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_RAZOR_HARPOON_1))) Harpoon1->RemoveFromWorld(); - if (GameObject* Harpoon2 = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_RAZOR_HARPOON_2))) + if (GameObject* Harpoon2 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_RAZOR_HARPOON_2))) Harpoon2->RemoveFromWorld(); - if (GameObject* Harpoon3 = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_RAZOR_HARPOON_3))) + if (GameObject* Harpoon3 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_RAZOR_HARPOON_3))) Harpoon3->RemoveFromWorld(); - if (GameObject* Harpoon4 = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_RAZOR_HARPOON_4))) + if (GameObject* Harpoon4 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_RAZOR_HARPOON_4))) Harpoon4->RemoveFromWorld(); DoAction(ACTION_HARPOON_BUILD); DoAction(ACTION_PLACE_BROKEN_HARPOON); @@ -312,7 +312,7 @@ class go_razorscale_harpoon : public GameObjectScript bool OnGossipHello(Player* /*player*/, GameObject* go) override { InstanceScript* instance = go->GetInstanceScript(); - if (ObjectAccessor::GetCreature(*go, instance->GetData64(BOSS_RAZORSCALE))) + if (ObjectAccessor::GetCreature(*go, instance->GetGuidData(BOSS_RAZORSCALE))) go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); return false; } @@ -357,14 +357,14 @@ class boss_razorscale : public CreatureScript me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_PASSIVE); Initialize(); - if (Creature* commander = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EXPEDITION_COMMANDER))) + if (Creature* commander = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EXPEDITION_COMMANDER))) commander->AI()->DoAction(ACTION_COMMANDER_RESET); } void EnterCombat(Unit* /*who*/) override { _EnterCombat(); - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_RAZORSCALE_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_RAZORSCALE_CONTROL))) controller->AI()->DoAction(ACTION_HARPOON_BUILD); me->SetSpeed(MOVE_FLIGHT, 3.0f, true); me->SetReactState(REACT_PASSIVE); @@ -379,7 +379,7 @@ class boss_razorscale : public CreatureScript void JustDied(Unit* /*killer*/) override { _JustDied(); - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_RAZORSCALE_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_RAZORSCALE_CONTROL))) controller->AI()->Reset(); } @@ -455,7 +455,7 @@ class boss_razorscale : public CreatureScript me->SetCanFly(false); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); - if (Creature* commander = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EXPEDITION_COMMANDER))) + if (Creature* commander = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EXPEDITION_COMMANDER))) commander->AI()->DoAction(ACTION_GROUND_PHASE); events.ScheduleEvent(EVENT_BREATH, 30000, 0, PHASE_GROUND); events.ScheduleEvent(EVENT_BUFFET, 33000, 0, PHASE_GROUND); @@ -471,7 +471,7 @@ class boss_razorscale : public CreatureScript return; case EVENT_BUFFET: DoCastAOE(SPELL_WINGBUFFET); - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_RAZORSCALE_CONTROL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_RAZORSCALE_CONTROL))) controller->CastSpell(controller, SPELL_FLAMED, true); events.CancelEvent(EVENT_BUFFET); return; @@ -602,12 +602,10 @@ class npc_expedition_commander : public CreatureScript struct npc_expedition_commanderAI : public ScriptedAI { - npc_expedition_commanderAI(Creature* creature) : ScriptedAI(creature) + npc_expedition_commanderAI(Creature* creature) : ScriptedAI(creature), summons(creature) { Initialize(); instance = me->GetInstanceScript(); - memset(Engineer, 0, sizeof(Engineer)); - memset(Defender, 0, sizeof(Defender)); } void Initialize() @@ -618,18 +616,18 @@ class npc_expedition_commander : public CreatureScript } InstanceScript* instance; - std::list<uint64> summons; + SummonList summons; bool Greet; uint32 AttackStartTimer; uint8 Phase; - uint64 Engineer[4]; - uint64 Defender[4]; + ObjectGuid Engineer[4]; + ObjectGuid Defender[4]; void Reset() override { Initialize(); - summons.clear(); + summons.DespawnAll(); } void MoveInLineOfSight(Unit* who) override @@ -644,7 +642,7 @@ class npc_expedition_commander : public CreatureScript void JustSummoned(Creature* summoned) override { - summons.push_back(summoned->GetGUID()); + summons.Summon(summoned); } void DoAction(int32 action) override @@ -655,7 +653,7 @@ class npc_expedition_commander : public CreatureScript Talk(SAY_GROUND_PHASE); break; case ACTION_COMMANDER_RESET: - summons.clear(); + summons.DespawnAll(); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); break; } @@ -669,7 +667,7 @@ class npc_expedition_commander : public CreatureScript { case 1: instance->SetBossState(BOSS_RAZORSCALE, IN_PROGRESS); - summons.clear(); + summons.DespawnAll(); AttackStartTimer = 1000; Phase = 2; break; @@ -715,7 +713,7 @@ class npc_expedition_commander : public CreatureScript Phase = 5; break; case 5: - if (Creature* Razorscale = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_RAZORSCALE))) + if (Creature* Razorscale = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_RAZORSCALE))) { Razorscale->AI()->DoAction(ACTION_EVENT_START); me->SetInCombatWith(Razorscale); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp index 3ec5109cbb9..2032c7b861d 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -397,8 +397,9 @@ class boss_xt002 : public CreatureScript Talk(SAY_HEART_CLOSED); Talk(EMOTE_HEART_CLOSED); - DoCast(me, SPELL_STAND); + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); + DoCast(me, SPELL_STAND); _phase = 1; @@ -459,7 +460,7 @@ class npc_xt002_heart : public CreatureScript void JustDied(Unit* /*killer*/) override { - Creature* xt002 = _instance ? ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002)) : NULL; + Creature* xt002 = _instance ? ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_XT002)) : NULL; if (!xt002 || !xt002->AI()) return; @@ -511,7 +512,7 @@ class npc_scrapbot : public CreatureScript Initialize(); - if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002))) + if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_XT002))) me->GetMotionMaster()->MoveFollow(pXT002, 0.0f, 0.0f); } @@ -519,7 +520,7 @@ class npc_scrapbot : public CreatureScript { if (_rangeCheckTimer <= diff) { - if (Creature* xt002 = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002))) + if (Creature* xt002 = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_XT002))) { if (me->IsWithinMeleeRange(xt002)) { @@ -574,7 +575,7 @@ class npc_pummeller : public CreatureScript { Initialize(); - if (Creature* xt002 = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002))) + if (Creature* xt002 = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_XT002))) { Position pos = xt002->GetPosition(); me->GetMotionMaster()->MovePoint(0, pos); @@ -688,7 +689,7 @@ class npc_boombot : public CreatureScript me->SetFloatValue(UNIT_FIELD_MAXDAMAGE, 18000.0f); /// @todo proper waypoints? - if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002))) + if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_XT002))) me->GetMotionMaster()->MoveFollow(pXT002, 0.0f, 0.0f); } @@ -938,7 +939,7 @@ class spell_xt002_heart_overload_periodic : public SpellScriptLoader { if (InstanceScript* instance = caster->GetInstanceScript()) { - if (Unit* toyPile = ObjectAccessor::GetUnit(*caster, instance->GetData64(DATA_TOY_PILE_0 + urand(0, 3)))) + if (Unit* toyPile = ObjectAccessor::GetUnit(*caster, instance->GetGuidData(DATA_TOY_PILE_0 + urand(0, 3)))) { caster->CastSpell(toyPile, SPELL_ENERGY_ORB, true); @@ -951,7 +952,7 @@ class spell_xt002_heart_overload_periodic : public SpellScriptLoader { uint8 a = urand(0, 4); uint32 spellId = spells[a]; - toyPile->CastSpell(toyPile, spellId, true, NULL, NULL, instance->GetData64(BOSS_XT002)); + toyPile->CastSpell(toyPile, spellId, true, NULL, NULL, instance->GetGuidData(BOSS_XT002)); } } } @@ -1037,37 +1038,6 @@ class spell_xt002_submerged : public SpellScriptLoader } }; -class spell_xt002_stand : public SpellScriptLoader -{ - public: - spell_xt002_stand() : SpellScriptLoader("spell_xt002_stand") { } - - class spell_xt002_stand_SpellScript : public SpellScript - { - PrepareSpellScript(spell_xt002_stand_SpellScript); - - void HandleScript(SpellEffIndex /*eff*/) - { - Creature* target = GetHitCreature(); - if (!target) - return; - - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - target->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_STAND); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_xt002_stand_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_xt002_stand_SpellScript(); - } -}; - class achievement_nerf_engineering : public AchievementCriteriaScript { public: @@ -1126,7 +1096,6 @@ void AddSC_boss_xt002() new spell_xt002_heart_overload_periodic(); new spell_xt002_tympanic_tantrum(); new spell_xt002_submerged(); - new spell_xt002_stand(); new achievement_nerf_engineering(); new achievement_heartbreaker(); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp index d3012dc99ba..391aebf9229 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp @@ -451,7 +451,7 @@ class boss_voice_of_yogg_saron : public CreatureScript BossAI::EnterEvadeMode(); for (uint8 i = DATA_SARA; i <= DATA_MIMIRON_YS; ++i) - if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetData64(i))) + if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(i))) creature->AI()->EnterEvadeMode(); // not sure, spoken by Sara (sound), regarding to wowwiki Voice whispers it @@ -490,11 +490,11 @@ class boss_voice_of_yogg_saron : public CreatureScript void EnterCombat(Unit* /*who*/) override { - if (Creature* sara = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARA))) + if (Creature* sara = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARA))) sara->SetInCombatWith(me); for (uint8 i = DATA_FREYA_YS; i <= DATA_MIMIRON_YS; ++i) - if (Creature* keeper = ObjectAccessor::GetCreature(*me, instance->GetData64(i))) + if (Creature* keeper = ObjectAccessor::GetCreature(*me, instance->GetGuidData(i))) keeper->SetInCombatWith(me); instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); @@ -510,7 +510,7 @@ class boss_voice_of_yogg_saron : public CreatureScript void JustDied(Unit* killer) override { // don't despawn Yogg-Saron's corpse, remove him from SummonList! - if (Creature* yogg = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_YOGG_SARON))) + if (Creature* yogg = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_YOGG_SARON))) summons.Despawn(yogg); BossAI::JustDied(killer); @@ -535,7 +535,7 @@ class boss_voice_of_yogg_saron : public CreatureScript instance->SetBossState(BOSS_YOGG_SARON, IN_PROGRESS); break; case EVENT_EXTINGUISH_ALL_LIFE: - if (Creature* yogg = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_YOGG_SARON))) + if (Creature* yogg = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_YOGG_SARON))) { yogg->AI()->Talk(EMOTE_YOGG_SARON_EXTINGUISH_ALL_LIFE, me); yogg->CastSpell((Unit*)NULL, SPELL_EXTINGUISH_ALL_LIFE, true); @@ -563,7 +563,7 @@ class boss_voice_of_yogg_saron : public CreatureScript break; case EVENT_ILLUSION: { - if (Creature* yogg = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_YOGG_SARON))) + if (Creature* yogg = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_YOGG_SARON))) { yogg->AI()->Talk(EMOTE_YOGG_SARON_MADNESS); yogg->AI()->Talk(SAY_YOGG_SARON_MADNESS); @@ -576,7 +576,7 @@ class boss_voice_of_yogg_saron : public CreatureScript uint8 illusion = urand(CHAMBER_ILLUSION, STORMWIND_ILLUSION); instance->SetData(DATA_ILLUSION, illusion); - if (Creature* brain = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BRAIN_OF_YOGG_SARON))) + if (Creature* brain = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BRAIN_OF_YOGG_SARON))) brain->AI()->DoAction(ACTION_INDUCE_MADNESS); events.ScheduleEvent(EVENT_ILLUSION, 80000, 0, PHASE_TWO); // wowwiki says 80 secs, wowhead says something about 90 secs break; @@ -602,7 +602,7 @@ class boss_voice_of_yogg_saron : public CreatureScript case ACTION_PHASE_TWO: events.SetPhase(PHASE_TWO); me->SummonCreature(NPC_YOGG_SARON, YoggSaronSpawnPos); - if (Creature* brain = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BRAIN_OF_YOGG_SARON))) + if (Creature* brain = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BRAIN_OF_YOGG_SARON))) brain->SetInCombatWithZone(); events.ScheduleEvent(EVENT_SUMMON_CORRUPTOR_TENTACLE, 1, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO); events.ScheduleEvent(EVENT_SUMMON_CONSTRICTOR_TENTACLE, 1, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO); @@ -672,23 +672,23 @@ class boss_sara : public CreatureScript { boss_saraAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } - uint64 GetLinkedPlayerGUID(uint64 guid) const + ObjectGuid GetLinkedPlayerGUID(ObjectGuid guid) const { - std::map<uint64, uint64>::const_iterator itr = _linkData.find(guid); + std::map<ObjectGuid, ObjectGuid>::const_iterator itr = _linkData.find(guid); if (itr != _linkData.end()) return itr->second; - return 0; + return ObjectGuid::Empty; } - void SetLinkBetween(uint64 player1, uint64 player2) + void SetLinkBetween(ObjectGuid player1, ObjectGuid player2) { _linkData[player1] = player2; _linkData[player2] = player1; } // called once for each target on aura remove - void RemoveLinkFrom(uint64 player1) + void RemoveLinkFrom(ObjectGuid player1) { _linkData.erase(player1); } @@ -699,7 +699,7 @@ class boss_sara : public CreatureScript { damage = 0; - if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) voice->AI()->DoAction(ACTION_PHASE_TRANSFORM); Talk(SAY_SARA_TRANSFORM_1); @@ -794,14 +794,14 @@ class boss_sara : public CreatureScript Talk(SAY_SARA_TRANSFORM_4); DoCast(me, SPELL_FULL_HEAL); me->setFaction(16); - if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) voice->AI()->DoAction(ACTION_PHASE_TWO); - if (Creature* mimiron = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MIMIRON_YS))) + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MIMIRON_YS))) mimiron->AI()->DoAction(ACTION_PHASE_TWO); break; case EVENT_TRANSFORM_4: DoCast(me, SPELL_PHASE_2_TRANSFORM); - if (Creature* yogg = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_YOGG_SARON))) + if (Creature* yogg = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_YOGG_SARON))) DoCast(yogg, SPELL_RIDE_YOGG_SARON_VEHICLE); DoCast(me, SPELL_SHADOWY_BARRIER_SARA); _events.SetPhase(PHASE_TWO); @@ -857,7 +857,7 @@ class boss_sara : public CreatureScript break; } - if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) voice->AI()->JustSummoned(summon); } @@ -876,7 +876,7 @@ class boss_sara : public CreatureScript private: EventMap _events; InstanceScript* _instance; - std::map<uint64, uint64> _linkData; + std::map<ObjectGuid, ObjectGuid> _linkData; }; CreatureAI* GetAI(Creature* creature) const override @@ -926,15 +926,15 @@ class boss_yogg_saron : public CreatureScript { Talk(SAY_YOGG_SARON_DEATH); - if (Creature* creature = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* creature = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) me->Kill(creature); for (uint8 i = DATA_SARA; i <= DATA_BRAIN_OF_YOGG_SARON; ++i) - if (Creature* creature = ObjectAccessor::GetCreature(*me, _instance->GetData64(i))) + if (Creature* creature = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(i))) creature->DisappearAndDie(); for (uint8 i = DATA_FREYA_YS; i <= DATA_MIMIRON_YS; ++i) - if (Creature* creature = ObjectAccessor::GetCreature(*me, _instance->GetData64(i))) + if (Creature* creature = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(i))) creature->AI()->EnterEvadeMode(); Map::PlayerList const& players = me->GetMap()->GetPlayers(); @@ -1043,15 +1043,15 @@ class boss_brain_of_yogg_saron : public CreatureScript DoCast(me, SPELL_BRAIN_HURT_VISUAL, true); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE); - if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) voice->AI()->DoAction(ACTION_PHASE_THREE); - if (Creature* sara = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SARA))) + if (Creature* sara = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SARA))) sara->AI()->DoAction(ACTION_PHASE_THREE); - if (Creature* yogg = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_YOGG_SARON))) + if (Creature* yogg = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_YOGG_SARON))) yogg->AI()->DoAction(ACTION_PHASE_THREE); for (uint8 i = DATA_THORIM_YS; i <= DATA_MIMIRON_YS; ++i) - if (Creature* keeper = ObjectAccessor::GetCreature(*me, _instance->GetData64(i))) + if (Creature* keeper = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(i))) keeper->AI()->DoAction(ACTION_PHASE_THREE); } } @@ -1070,7 +1070,7 @@ class boss_brain_of_yogg_saron : public CreatureScript // make sure doors won't be opened for (uint32 i = GO_BRAIN_ROOM_DOOR_1; i <= GO_BRAIN_ROOM_DOOR_3; ++i) - _instance->HandleGameObject(_instance->GetData64(i), false); + _instance->HandleGameObject(_instance->GetGuidData(i), false); DoCastAOE(SPELL_INDUCE_MADNESS); break; @@ -1083,9 +1083,9 @@ class boss_brain_of_yogg_saron : public CreatureScript sCreatureTextMgr->SendChat(me, EMOTE_BRAIN_ILLUSION_SHATTERED, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_AREA); _summons.DespawnAll(); DoCastAOE(SPELL_SHATTERED_ILLUSION, true); - _instance->HandleGameObject(_instance->GetData64(GO_BRAIN_ROOM_DOOR_1 + illusion), true); + _instance->HandleGameObject(_instance->GetGuidData(GO_BRAIN_ROOM_DOOR_1 + illusion), true); - if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) voice->AI()->DoAction(ACTION_TOGGLE_SHATTERED_ILLUSION); } break; @@ -1211,7 +1211,7 @@ class npc_guardian_of_yogg_saron : public CreatureScript return; // Guardian can be summoned both by Voice of Yogg-Saron and by Ominous Cloud - if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) voice->AI()->JustSummoned(me); } @@ -1314,7 +1314,7 @@ class npc_constrictor_tentacle : public CreatureScript void IsSummonedBy(Unit* /*summoner*/) override { - if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) voice->AI()->JustSummoned(me); } @@ -1405,7 +1405,7 @@ class npc_influence_tentacle : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* brain = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_BRAIN_OF_YOGG_SARON))) + if (Creature* brain = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_BRAIN_OF_YOGG_SARON))) brain->AI()->DoAction(ACTION_TENTACLE_KILLED); } @@ -2791,7 +2791,7 @@ class spell_yogg_saron_induce_madness : public SpellScriptLoader // 64059 if (Unit* target = GetHitUnit()) { target->CastSpell(target, SPELL_TELEPORT_BACK_TO_MAIN_ROOM); - target->RemoveAurasDueToSpell(SPELL_SANITY, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL); + target->RemoveAurasDueToSpell(SPELL_SANITY, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL); target->RemoveAurasDueToSpell(uint32(GetEffectValue())); } } @@ -2801,7 +2801,7 @@ class spell_yogg_saron_induce_madness : public SpellScriptLoader // 64059 GetCaster()->CastSpell((Unit*)NULL, SPELL_SHATTERED_ILLUSION_REMOVE); if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (Creature* voice = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_VOICE_OF_YOGG_SARON))) + if (Creature* voice = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_VOICE_OF_YOGG_SARON))) voice->AI()->DoAction(ACTION_TOGGLE_SHATTERED_ILLUSION); } @@ -3081,7 +3081,7 @@ class spell_yogg_saron_in_the_maws_of_the_old_god : public SpellScriptLoader SpellCastResult CheckRequirement() { if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (Creature* yogg = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(BOSS_YOGG_SARON))) + if (Creature* yogg = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(BOSS_YOGG_SARON))) if (yogg->FindCurrentSpellBySpellId(SPELL_DEAFENING_ROAR)) { if (GetCaster()->GetDistance(yogg) > 20.0f) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index 56f5c19c574..016c0bff1e5 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -63,50 +63,50 @@ class instance_ulduar : public InstanceMapScript instance_ulduar_InstanceMapScript(InstanceMap* map) : InstanceScript(map) { } // Creatures - uint64 LeviathanGUID; - uint64 IgnisGUID; - uint64 RazorscaleGUID; - uint64 RazorscaleController; - uint64 ExpeditionCommanderGUID; - uint64 XT002GUID; - uint64 XTToyPileGUIDs[4]; - uint64 AssemblyGUIDs[3]; - uint64 KologarnGUID; - uint64 AuriayaGUID; - uint64 HodirGUID; - uint64 ThorimGUID; - uint64 FreyaGUID; - uint64 ElderGUIDs[3]; - uint64 MimironGUID; - uint64 MimironVehicleGUIDs[3]; - uint64 MimironComputerGUID; - uint64 MimironWorldTriggerGUID; - uint64 VezaxGUID; - uint64 YoggSaronGUID; - uint64 VoiceOfYoggSaronGUID; - uint64 SaraGUID; - uint64 BrainOfYoggSaronGUID; - uint64 KeeperGUIDs[4]; - uint64 AlgalonGUID; - uint64 BrannBronzebeardAlgGUID; + ObjectGuid LeviathanGUID; + ObjectGuid IgnisGUID; + ObjectGuid RazorscaleGUID; + ObjectGuid RazorscaleController; + ObjectGuid ExpeditionCommanderGUID; + ObjectGuid XT002GUID; + ObjectGuid XTToyPileGUIDs[4]; + ObjectGuid AssemblyGUIDs[3]; + ObjectGuid KologarnGUID; + ObjectGuid AuriayaGUID; + ObjectGuid HodirGUID; + ObjectGuid ThorimGUID; + ObjectGuid FreyaGUID; + ObjectGuid ElderGUIDs[3]; + ObjectGuid MimironGUID; + ObjectGuid MimironVehicleGUIDs[3]; + ObjectGuid MimironComputerGUID; + ObjectGuid MimironWorldTriggerGUID; + ObjectGuid VezaxGUID; + ObjectGuid YoggSaronGUID; + ObjectGuid VoiceOfYoggSaronGUID; + ObjectGuid SaraGUID; + ObjectGuid BrainOfYoggSaronGUID; + ObjectGuid KeeperGUIDs[4]; + ObjectGuid AlgalonGUID; + ObjectGuid BrannBronzebeardAlgGUID; // GameObjects - uint64 LeviathanGateGUID; - uint64 RazorHarpoonGUIDs[4]; - uint64 KologarnChestGUID; - uint64 KologarnBridgeGUID; - uint64 ThorimChestGUID; - uint64 HodirRareCacheGUID; - uint64 HodirChestGUID; - uint64 MimironTramGUID; - uint64 MimironElevatorGUID; - uint64 MimironButtonGUID; - uint64 BrainRoomDoorGUIDs[3]; - uint64 AlgalonSigilDoorGUID[3]; - uint64 AlgalonFloorGUID[2]; - uint64 AlgalonUniverseGUID; - uint64 AlgalonTrapdoorGUID; - uint64 GiftOfTheObserverGUID; + ObjectGuid LeviathanGateGUID; + ObjectGuid RazorHarpoonGUIDs[4]; + ObjectGuid KologarnChestGUID; + ObjectGuid KologarnBridgeGUID; + ObjectGuid ThorimChestGUID; + ObjectGuid HodirRareCacheGUID; + ObjectGuid HodirChestGUID; + ObjectGuid MimironTramGUID; + ObjectGuid MimironElevatorGUID; + ObjectGuid MimironButtonGUID; + ObjectGuid BrainRoomDoorGUIDs[3]; + ObjectGuid AlgalonSigilDoorGUID[3]; + ObjectGuid AlgalonFloorGUID[2]; + ObjectGuid AlgalonUniverseGUID; + ObjectGuid AlgalonTrapdoorGUID; + ObjectGuid GiftOfTheObserverGUID; // Miscellaneous uint32 TeamInInstance; @@ -119,47 +119,12 @@ class instance_ulduar : public InstanceMapScript bool Unbroken; bool IsDriveMeCrazyEligible; - std::set<uint64> mRubbleSpawns; - void Initialize() override { SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTER); LoadDoorData(doorData); LoadMinionData(minionData); - LeviathanGUID = 0; - IgnisGUID = 0; - RazorscaleGUID = 0; - RazorscaleController = 0; - ExpeditionCommanderGUID = 0; - XT002GUID = 0; - KologarnGUID = 0; - AuriayaGUID = 0; - MimironGUID = 0; - MimironComputerGUID = 0; - MimironWorldTriggerGUID = 0; - HodirGUID = 0; - ThorimGUID = 0; - FreyaGUID = 0; - VezaxGUID = 0; - YoggSaronGUID = 0; - VoiceOfYoggSaronGUID = 0; - SaraGUID = 0; - BrainOfYoggSaronGUID = 0; - AlgalonGUID = 0; - KologarnChestGUID = 0; - KologarnBridgeGUID = 0; - ThorimChestGUID = 0; - HodirRareCacheGUID = 0; - HodirChestGUID = 0; - MimironTramGUID = 0; - MimironElevatorGUID = 0; - MimironButtonGUID = 0; - LeviathanGateGUID = 0; - AlgalonUniverseGUID = 0; - AlgalonTrapdoorGUID = 0; - BrannBronzebeardAlgGUID = 0; - GiftOfTheObserverGUID = 0; _algalonTimer = 61; _maxArmorItemLevel = 0; _maxWeaponItemLevel = 0; @@ -175,17 +140,8 @@ class instance_ulduar : public InstanceMapScript _algalonSummoned = false; _summonAlgalon = false; - memset(AlgalonSigilDoorGUID, 0, sizeof(AlgalonSigilDoorGUID)); - memset(AlgalonFloorGUID, 0, sizeof(AlgalonFloorGUID)); - memset(XTToyPileGUIDs, 0, sizeof(XTToyPileGUIDs)); - memset(AssemblyGUIDs, 0, sizeof(AssemblyGUIDs)); - memset(RazorHarpoonGUIDs, 0, sizeof(RazorHarpoonGUIDs)); - memset(ElderGUIDs, 0, sizeof(ElderGUIDs)); - memset(MimironVehicleGUIDs, 0, sizeof(MimironVehicleGUIDs)); - memset(BrainRoomDoorGUIDs, 0, sizeof(BrainRoomDoorGUIDs)); - memset(KeeperGUIDs, 0, sizeof(KeeperGUIDs)); - memset(_summonObservationRingKeeper, false, sizeof(_summonObservationRingKeeper)); - memset(_summonYSKeeper, false, sizeof(_summonYSKeeper)); + memset(_summonObservationRingKeeper, 0, sizeof(_summonObservationRingKeeper)); + memset(_summonYSKeeper, 0, sizeof(_summonYSKeeper)); } void FillInitialWorldStates(WorldPacket& packet) override @@ -460,7 +416,7 @@ class instance_ulduar : public InstanceMapScript for (uint8 i = 0; i < 4; ++i) if (XTToyPileGUIDs[i] == creature->GetGUID()) { - XTToyPileGUIDs[i] = 0; + XTToyPileGUIDs[i].Clear(); break; } break; @@ -471,7 +427,7 @@ class instance_ulduar : public InstanceMapScript break; case NPC_BRANN_BRONZBEARD_ALG: if (BrannBronzebeardAlgGUID == creature->GetGUID()) - BrannBronzebeardAlgGUID = 0; + BrannBronzebeardAlgGUID.Clear(); break; default: break; @@ -489,7 +445,7 @@ class instance_ulduar : public InstanceMapScript case GO_KOLOGARN_BRIDGE: KologarnBridgeGUID = gameObject->GetGUID(); if (GetBossState(BOSS_KOLOGARN) == DONE) - HandleGameObject(0, false, gameObject); + HandleGameObject(ObjectGuid::Empty, false, gameObject); break; case GO_THORIM_CHEST_HERO: case GO_THORIM_CHEST: @@ -844,11 +800,11 @@ class instance_ulduar : public InstanceMapScript } } - void SetData64(uint32 /*type*/, uint64 /*data*/) override + void SetGuidData(uint32 /*type*/, ObjectGuid /*data*/) override { } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -975,7 +931,7 @@ class instance_ulduar : public InstanceMapScript return BrannBronzebeardAlgGUID; } - return 0; + return ObjectGuid::Empty; } uint32 GetData(uint32 type) const override diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index ee52df58c80..c08e1934552 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -287,7 +287,7 @@ class npc_annhylde_the_caller : public CreatureScript { case 1: Talk(YELL_RESURRECT); - if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_INGVAR))) + if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_INGVAR))) { ingvar->RemoveAura(SPELL_SUMMON_BANSHEE); ingvar->CastSpell(ingvar, SPELL_SCOURG_RESURRECTION_DUMMY, true); @@ -316,7 +316,7 @@ class npc_annhylde_the_caller : public CreatureScript switch (eventId) { case EVENT_RESURRECT_1: - if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_INGVAR))) + if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_INGVAR))) { ingvar->RemoveAura(SPELL_INGVAR_FEIGN_DEATH); ingvar->CastSpell(ingvar, SPELL_SCOURG_RESURRECTION_HEAL, false); @@ -324,7 +324,7 @@ class npc_annhylde_the_caller : public CreatureScript _events.ScheduleEvent(EVENT_RESURRECT_2, 3000); break; case EVENT_RESURRECT_2: - if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_INGVAR))) + if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_INGVAR))) { ingvar->RemoveAurasDueToSpell(SPELL_SCOURG_RESURRECTION_DUMMY); ingvar->AI()->DoAction(ACTION_START_PHASE_2); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index 6e0dbecafb4..02cf5ade52a 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -94,7 +94,7 @@ class npc_frost_tomb : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* keleseth = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_PRINCE_KELESETH))) + if (Creature* keleseth = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_PRINCE_KELESETH))) keleseth->AI()->SetData(DATA_ON_THE_ROCKS, false); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp index c6a91e3ff33..bf11e3cca7b 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp @@ -116,7 +116,7 @@ struct generic_boss_controllerAI : public BossAI void JustDied(Unit* /*killer*/) override { - if (Creature* otherBoss = ObjectAccessor::GetCreature(*me, instance->GetData64(OtherBossData))) + if (Creature* otherBoss = ObjectAccessor::GetCreature(*me, instance->GetGuidData(OtherBossData))) { if (otherBoss->IsAlive()) { diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp index 78df568d144..360befc02af 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp @@ -45,11 +45,6 @@ class instance_utgarde_keep : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); LoadMinionData(minionData); - - PrinceKelesethGUID = 0; - SkarvaldGUID = 0; - DalronnGUID = 0; - IngvarGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -94,39 +89,39 @@ class instance_utgarde_keep : public InstanceMapScript { case GO_BELLOW_1: Forges[0].BellowGUID = go->GetGUID(); - HandleGameObject(0, Forges[0].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[0].Event != NOT_STARTED, go); break; case GO_BELLOW_2: Forges[1].BellowGUID = go->GetGUID(); - HandleGameObject(0, Forges[1].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[1].Event != NOT_STARTED, go); break; case GO_BELLOW_3: Forges[2].BellowGUID = go->GetGUID(); - HandleGameObject(0, Forges[2].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[2].Event != NOT_STARTED, go); break; case GO_FORGEFIRE_1: Forges[0].FireGUID = go->GetGUID(); - HandleGameObject(0, Forges[0].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[0].Event != NOT_STARTED, go); break; case GO_FORGEFIRE_2: Forges[1].FireGUID = go->GetGUID(); - HandleGameObject(0, Forges[1].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[1].Event != NOT_STARTED, go); break; case GO_FORGEFIRE_3: Forges[2].FireGUID = go->GetGUID(); - HandleGameObject(0, Forges[2].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[2].Event != NOT_STARTED, go); break; case GO_GLOWING_ANVIL_1: Forges[0].AnvilGUID = go->GetGUID(); - HandleGameObject(0, Forges[0].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[0].Event != NOT_STARTED, go); break; case GO_GLOWING_ANVIL_2: Forges[1].AnvilGUID = go->GetGUID(); - HandleGameObject(0, Forges[1].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[1].Event != NOT_STARTED, go); break; case GO_GLOWING_ANVIL_3: Forges[2].AnvilGUID = go->GetGUID(); - HandleGameObject(0, Forges[2].Event != NOT_STARTED, go); + HandleGameObject(ObjectGuid::Empty, Forges[2].Event != NOT_STARTED, go); break; case GO_GIANT_PORTCULLIS_1: case GO_GIANT_PORTCULLIS_2: @@ -150,7 +145,7 @@ class instance_utgarde_keep : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -166,7 +161,7 @@ class instance_utgarde_keep : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -207,10 +202,10 @@ class instance_utgarde_keep : public InstanceMapScript protected: ForgeInfo Forges[3]; - uint64 PrinceKelesethGUID; - uint64 SkarvaldGUID; - uint64 DalronnGUID; - uint64 IngvarGUID; + ObjectGuid PrinceKelesethGUID; + ObjectGuid SkarvaldGUID; + ObjectGuid DalronnGUID; + ObjectGuid IngvarGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h index 751239755cf..5b52072b07f 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h @@ -76,11 +76,11 @@ enum GameObjectIds struct ForgeInfo { - ForgeInfo() : AnvilGUID(0), BellowGUID(0), FireGUID(0), Event(NOT_STARTED) { }; + ForgeInfo() : Event(NOT_STARTED) { }; - uint64 AnvilGUID; - uint64 BellowGUID; - uint64 FireGUID; + ObjectGuid AnvilGUID; + ObjectGuid BellowGUID; + ObjectGuid FireGUID; uint32 Event; }; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp index b3285bd492e..061499f2025 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp @@ -129,11 +129,11 @@ public: me->GetMotionMaster()->MoveTargetedHome(); for (uint8 i = DATA_FRENZIED_WORGEN; i <= DATA_FEROCIOUS_RHINO; ++i) - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(i))) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(i))) if (!temp->IsAlive()) temp->Respawn(); - if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GORTOK_PALEHOOF_SPHERE))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF_SPHERE))) { go->SetGoState(GO_STATE_READY); go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); @@ -224,7 +224,7 @@ public: move = Sequence[AddCount++]; // send orb to summon spot - if (Creature* orb = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_ORB))) + if (Creature* orb = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_ORB))) if (orb->IsAlive()) orb->GetMotionMaster()->MovePoint(move, moveLocs[move]); @@ -293,7 +293,7 @@ public: if (instance->GetBossState(DATA_GORTOK_PALEHOOF) == IN_PROGRESS) { - Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF)); + Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF)); if (palehoof && palehoof->IsAlive()) palehoof->AI()->Reset(); } @@ -345,7 +345,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF))) + if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF))) palehoof->AI()->DoAction(ACTION_NEXT_PHASE); } @@ -407,7 +407,7 @@ public: if (instance->GetBossState(DATA_GORTOK_PALEHOOF) == IN_PROGRESS) { - Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF)); + Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF)); if (palehoof && palehoof->IsAlive()) palehoof->AI()->Reset(); } @@ -460,7 +460,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF))) + if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF))) palehoof->AI()->DoAction(ACTION_NEXT_PHASE); } @@ -523,7 +523,7 @@ public: if (instance->GetBossState(DATA_GORTOK_PALEHOOF) == IN_PROGRESS) { - Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF)); + Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF)); if (palehoof && palehoof->IsAlive()) palehoof->AI()->Reset(); } @@ -576,7 +576,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF))) + if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF))) palehoof->AI()->DoAction(ACTION_NEXT_PHASE); } @@ -644,7 +644,7 @@ public: if (instance->GetBossState(DATA_GORTOK_PALEHOOF) == IN_PROGRESS) { - Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF)); + Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF)); if (palehoof && palehoof->IsAlive()) palehoof->AI()->Reset(); } @@ -698,7 +698,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF))) + if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GORTOK_PALEHOOF))) palehoof->AI()->DoAction(ACTION_NEXT_PHASE); } @@ -778,7 +778,7 @@ public: return; } - if (Creature* nextBoss = ObjectAccessor::GetCreature(*me, instance->GetData64(nextBossId))) + if (Creature* nextBoss = ObjectAccessor::GetCreature(*me, instance->GetGuidData(nextBossId))) { nextBoss->RemoveAurasDueToSpell(SPELL_FREEZE); nextBoss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC); @@ -822,7 +822,7 @@ public: return; } - if (Creature* nextBoss = ObjectAccessor::GetCreature(*me, instance->GetData64(nextBossId))) + if (Creature* nextBoss = ObjectAccessor::GetCreature(*me, instance->GetGuidData(nextBossId))) DoCast(nextBoss, SPELL_ORB_CHANNEL, false); currentPhase = Phase(id); @@ -843,7 +843,7 @@ class go_palehoof_sphere : public GameObjectScript if (!instance) return false; - Creature* palehoof = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_GORTOK_PALEHOOF)); + Creature* palehoof = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_GORTOK_PALEHOOF)); if (palehoof && palehoof->IsAlive()) { go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index af5dc4a4e03..5d6a2416d73 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -171,7 +171,6 @@ public: { Initialize(); instance = creature->GetInstanceScript(); - m_uiGraufGUID = 0; m_uiMovementTimer = 0; m_uiSummonTimer = 0; } @@ -191,8 +190,7 @@ public: InstanceScript* instance; SummonList Summons; - uint64 m_uiGraufGUID; - std::vector<uint64> triggersGUID; + ObjectGuid m_uiGraufGUID; uint32 m_uiCrushTimer; uint32 m_uiPoisonedSpearTimer; @@ -208,8 +206,6 @@ public: void Reset() override { - triggersGUID.clear(); - Initialize(); Summons.DespawnAll(); @@ -274,7 +270,7 @@ public: void SummonedCreatureDespawn(Creature* summoned) override { if (summoned->GetEntry() == NPC_GRAUF) - m_uiGraufGUID = 0; + m_uiGraufGUID.Clear(); Summons.Despawn(summoned); } @@ -477,7 +473,7 @@ public: if (!instance) return false; - if (Creature* pSkadi = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_SKADI_THE_RUTHLESS))) + if (Creature* pSkadi = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_SKADI_THE_RUTHLESS))) player->CastSpell(pSkadi, SPELL_RAPID_FIRE, true); return false; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp index 6ace4eb61a1..bf9d9eaa43b 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp @@ -143,14 +143,14 @@ class boss_svala : public CreatureScript void Initialize() { - _arthasGUID = 0; + _arthasGUID.Clear(); _sacrificed = false; } void Reset() override { _Reset(); - + SetCombatMovement(true); if (_introCompleted) @@ -162,7 +162,7 @@ class boss_svala : public CreatureScript Initialize(); - instance->SetData64(DATA_SACRIFICED_PLAYER, 0); + instance->SetGuidData(DATA_SACRIFICED_PLAYER, ObjectGuid::Empty); } void EnterCombat(Unit* /*who*/) override @@ -188,7 +188,7 @@ class boss_svala : public CreatureScript events.SetPhase(INTRO); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, DATA_UTGARDE_MIRROR)) + if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_UTGARDE_MIRROR))) mirror->SetGoState(GO_STATE_READY); if (Creature* arthas = me->SummonCreature(NPC_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN)) @@ -331,12 +331,12 @@ class boss_svala : public CreatureScript break; } case EVENT_INTRO_DESPAWN_ARTHAS: - if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, DATA_UTGARDE_MIRROR)) + if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_UTGARDE_MIRROR))) mirror->SetGoState(GO_STATE_ACTIVE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); if (Creature* arthas = ObjectAccessor::GetCreature(*me, _arthasGUID)) arthas->DespawnOrUnsummon(); - _arthasGUID = 0; + _arthasGUID.Clear(); events.SetPhase(NORMAL); _introCompleted = true; events.ScheduleEvent(EVENT_SINISTER_STRIKE, 7 * IN_MILLISECONDS, 0, NORMAL); @@ -354,7 +354,7 @@ class boss_svala : public CreatureScript case EVENT_RITUAL_PREPARATION: if (Unit* sacrificeTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 80.0f, true)) { - instance->SetData64(DATA_SACRIFICED_PLAYER, sacrificeTarget->GetGUID()); + instance->SetGuidData(DATA_SACRIFICED_PLAYER, sacrificeTarget->GetGUID()); Talk(SAY_SACRIFICE_PLAYER); DoCast(sacrificeTarget, SPELL_RITUAL_PREPARATION); SetCombatMovement(false); @@ -385,7 +385,7 @@ class boss_svala : public CreatureScript } private: - uint64 _arthasGUID; + ObjectGuid _arthasGUID; bool _sacrificed; bool _introCompleted; }; @@ -434,7 +434,7 @@ class npc_ritual_channeler : public CreatureScript if (paralyzeTimer <= diff) { - if (Unit* victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SACRIFICED_PLAYER))) + if (Unit* victim = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_SACRIFICED_PLAYER))) DoCast(victim, SPELL_PARALYZE, false); paralyzeTimer = 200; @@ -487,7 +487,7 @@ class RitualTargetCheck bool operator() (WorldObject* obj) const { if (InstanceScript* instance = obj->GetInstanceScript()) - if (instance->GetData64(DATA_SACRIFICED_PLAYER) == obj->GetGUID()) + if (instance->GetGuidData(DATA_SACRIFICED_PLAYER) == obj->GetGUID()) return false; return true; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index 60b898e1786..c4312e08704 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -15,22 +15,16 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* Script Data Start -SDName: Boss ymiron -SDAuthor: LordVanMartin -SD%Complete: -SDComment: -SDCategory: -Script Data End */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "utgarde_pinnacle.h" #include "SpellInfo.h" +#include "SpellScript.h" enum Spells { SPELL_BANE = 48294, + SPELL_BANE_HIT = 59203, // Checked for King's Bane achievement. SPELL_DARK_SLASH = 48292, SPELL_FETID_ROT = 48291, SPELL_SCREAMS_OF_THE_DEAD = 51750, @@ -47,8 +41,7 @@ enum Spells SPELL_SPIRIT_FOUNT = 48380 }; -//not in db -enum Yells +enum Texts { SAY_AGGRO = 0, SAY_SLAY = 1, @@ -59,18 +52,27 @@ enum Yells SAY_SUMMON_TORGYN = 6 }; -enum Creatures +enum Events +{ + EVENT_BANE = 1, + EVENT_FETID_ROT, + EVENT_DARK_SLASH, + EVENT_ANCESTORS_VENGEANCE, + EVENT_RESUME_COMBAT, // Handles react state and schedules the next event after roleplay ends. + EVENT_BJORN_SPIRIT_FOUNT, + EVENT_HALDOR_SPIRIT_STRIKE, + EVENT_RANULF_SPIRIT_BURST, + EVENT_TORGYN_SUMMON_AVENGING_SPIRITS +}; + +enum EventGroups { - NPC_BJORN = 27303, - NPC_BJORN_VISUAL = 27304, - NPC_HALDOR = 27307, - NPC_HALDOR_VISUAL = 27310, - NPC_RANULF = 27308, - NPC_RANULF_VISUAL = 27311, - NPC_TORGYN = 27309, - NPC_TORGYN_VISUAL = 27312, - NPC_SPIRIT_FOUNT = 27339, - NPC_AVENGING_SPIRIT = 27386 + EVENT_GROUP_BASE_SPELLS = 1 +}; + +enum MovePoints +{ + POINT_BOAT }; struct ActiveBoatStruct @@ -78,14 +80,15 @@ struct ActiveBoatStruct uint32 npc; int32 say; float MoveX, MoveY, MoveZ, SpawnX, SpawnY, SpawnZ, SpawnO; + uint32 event; }; static ActiveBoatStruct ActiveBoat[4] = { - {NPC_BJORN_VISUAL, SAY_SUMMON_BJORN, 404.379f, -335.335f, 104.756f, 413.594f, -335.408f, 107.995f, 3.157f}, - {NPC_HALDOR_VISUAL, SAY_SUMMON_HALDOR, 380.813f, -335.069f, 104.756f, 369.994f, -334.771f, 107.995f, 6.232f}, - {NPC_RANULF_VISUAL, SAY_SUMMON_RANULF, 381.546f, -314.362f, 104.756f, 370.841f, -314.426f, 107.995f, 6.232f}, - {NPC_TORGYN_VISUAL, SAY_SUMMON_TORGYN, 404.310f, -314.761f, 104.756f, 413.992f, -314.703f, 107.995f, 3.157f} + {NPC_BJORN_VISUAL, SAY_SUMMON_BJORN, 404.379f, -335.335f, 104.756f, 413.594f, -335.408f, 107.995f, 3.157f, EVENT_BJORN_SPIRIT_FOUNT}, + {NPC_HALDOR_VISUAL, SAY_SUMMON_HALDOR, 380.813f, -335.069f, 104.756f, 369.994f, -334.771f, 107.995f, 6.232f, EVENT_HALDOR_SPIRIT_STRIKE}, + {NPC_RANULF_VISUAL, SAY_SUMMON_RANULF, 381.546f, -314.362f, 104.756f, 370.841f, -314.426f, 107.995f, 6.232f, EVENT_RANULF_SPIRIT_BURST}, + {NPC_TORGYN_VISUAL, SAY_SUMMON_TORGYN, 404.310f, -314.761f, 104.756f, 413.992f, -314.703f, 107.995f, 3.157f, EVENT_TORGYN_SUMMON_AVENGING_SPIRITS} }; enum Misc @@ -103,89 +106,48 @@ public: boss_ymironAI(Creature* creature) : BossAI(creature, DATA_KING_YMIRON) { Initialize(); + // This ensures a random sequence of ancestors. Not sure if the order should change on reset or not, reason why this is left out of Initialize(). for (int i = 0; i < 4; ++i) - m_uiActiveOrder[i] = i; + ActiveOrder[i] = i; for (int i = 0; i < 3; ++i) { int r = i + (rand32() % (4 - i)); - int temp = m_uiActiveOrder[i]; - m_uiActiveOrder[i] = m_uiActiveOrder[r]; - m_uiActiveOrder[r] = temp; + int temp = ActiveOrder[i]; + ActiveOrder[i] = ActiveOrder[r]; + ActiveOrder[r] = temp; } } void Initialize() { - m_bIsWalking = false; - m_bIsPause = false; - m_bIsActiveWithBJORN = false; - m_bIsActiveWithHALDOR = false; - m_bIsActiveWithRANULF = false; - m_bIsActiveWithTORGYN = false; kingsBane = true; - - m_uiFetidRot_Timer = urand(8000, 13000); - m_uiBane_Timer = urand(18000, 23000); - m_uiDarkSlash_Timer = urand(28000, 33000); - m_uiAncestors_Vengeance_Timer = DUNGEON_MODE(60000, 45000); - m_uiPause_Timer = 0; - - m_uiAbility_BJORN_Timer = 0; - m_uiAbility_HALDOR_Timer = 0; - m_uiAbility_RANULF_Timer = 0; - m_uiAbility_TORGYN_Timer = 0; - - m_uiActivedNumber = 0; - m_uiHealthAmountModifier = 1; - m_uiHealthAmountMultipler = DUNGEON_MODE(20, 25); - - m_uiActivedCreatureGUID = 0; - m_uiOrbGUID = 0; + ActivedNumber = 0; + HealthAmountModifier = 1; + HealthAmountMultipler = DUNGEON_MODE(20, 25); + ActiveAncestorGUID.Clear(); + SpiritFountGUID.Clear(); } - bool m_bIsWalking; - bool m_bIsPause; - bool m_bIsActiveWithBJORN; - bool m_bIsActiveWithHALDOR; - bool m_bIsActiveWithRANULF; - bool m_bIsActiveWithTORGYN; - bool kingsBane; // Achievement King's Bane - - uint8 m_uiActiveOrder[4]; - uint8 m_uiActivedNumber; - - uint32 m_uiFetidRot_Timer; - uint32 m_uiBane_Timer; - uint32 m_uiDarkSlash_Timer; - uint32 m_uiAncestors_Vengeance_Timer; - - uint32 m_uiAbility_BJORN_Timer; - uint32 m_uiAbility_HALDOR_Timer; - uint32 m_uiAbility_RANULF_Timer; - uint32 m_uiAbility_TORGYN_Timer; - - uint32 m_uiPause_Timer; - uint32 m_uiHealthAmountModifier; - uint32 m_uiHealthAmountMultipler; - - uint64 m_uiActivedCreatureGUID; - uint64 m_uiOrbGUID; - void Reset() override { _Reset(); Initialize(); + me->SetReactState(REACT_AGGRESSIVE); } void EnterCombat(Unit* /*who*/) override { _EnterCombat(); Talk(SAY_AGGRO); + events.ScheduleEvent(EVENT_BANE, urand(18000, 23000), EVENT_GROUP_BASE_SPELLS); + events.ScheduleEvent(EVENT_FETID_ROT, urand(8000, 13000), EVENT_GROUP_BASE_SPELLS); + events.ScheduleEvent(EVENT_DARK_SLASH, urand(28000, 33000), EVENT_GROUP_BASE_SPELLS); + events.ScheduleEvent(EVENT_ANCESTORS_VENGEANCE, DUNGEON_MODE(60000, 45000), EVENT_GROUP_BASE_SPELLS); } void SpellHitTarget(Unit* who, SpellInfo const* spell) override { - if (who && who->GetTypeId() == TYPEID_PLAYER && spell->Id == 59302) + if (who && who->GetTypeId() == TYPEID_PLAYER && spell->Id == SPELL_BANE_HIT) kingsBane = false; } @@ -197,161 +159,115 @@ public: return 0; } - void UpdateAI(uint32 diff) override + void MovementInform(uint32 type, uint32 pointId) override { - if (m_bIsWalking) + if (type != POINT_MOTION_TYPE) + return; + + if (pointId == POINT_BOAT) // Check might not be needed. { - if (m_uiPause_Timer <= diff) + Talk(ActiveBoat[ActiveOrder[ActivedNumber]].say); + if (Creature* ancestor = me->SummonCreature(ActiveBoat[ActiveOrder[ActivedNumber]].npc, ActiveBoat[ActiveOrder[ActivedNumber]].SpawnX, ActiveBoat[ActiveOrder[ActivedNumber]].SpawnY, ActiveBoat[ActiveOrder[ActivedNumber]].SpawnZ, ActiveBoat[ActiveOrder[ActivedNumber]].SpawnO, TEMPSUMMON_CORPSE_DESPAWN, 0)) { - Talk(ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].say); - DoCast(me, SPELL_CHANNEL_YMIRON_TO_SPIRIT); // should be on spirit - if (Creature* temp = me->SummonCreature(ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].npc, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnX, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnY, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnZ, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnO, TEMPSUMMON_CORPSE_DESPAWN, 0)) - { - m_uiActivedCreatureGUID = temp->GetGUID(); - temp->CastSpell(me, SPELL_CHANNEL_SPIRIT_TO_YMIRON, true); - temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); - temp->SetDisableGravity(true); - switch (m_uiActiveOrder[m_uiActivedNumber]) - { - case 0: m_bIsActiveWithBJORN = true; break; - case 1: m_bIsActiveWithHALDOR = true; break; - case 2: m_bIsActiveWithRANULF = true; break; - case 3: m_bIsActiveWithTORGYN = true; break; - } - } - - m_bIsPause = true; - m_bIsWalking = false; - m_uiPause_Timer = 3000; - } else m_uiPause_Timer -= diff; - return; + DoCast(ancestor, SPELL_CHANNEL_YMIRON_TO_SPIRIT); + ancestor->CastSpell(me, SPELL_CHANNEL_SPIRIT_TO_YMIRON, true); + ancestor->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); + ancestor->SetDisableGravity(true); + ActiveAncestorGUID = ancestor->GetGUID(); + } + events.ScheduleEvent(EVENT_RESUME_COMBAT, 5000); } - else if (m_bIsPause) + } + + void JustSummoned(Creature* summon) override + { + switch (summon->GetEntry()) { - if (m_uiPause_Timer <= diff) - { - m_uiAbility_BJORN_Timer = 5000; - m_uiAbility_HALDOR_Timer = 5000; - m_uiAbility_RANULF_Timer = 5000; - m_uiAbility_TORGYN_Timer = 5000; - - m_bIsPause = false; - m_uiPause_Timer = 0; - } else m_uiPause_Timer -= diff; - return; + case NPC_SPIRIT_FOUNT: + summon->CastSpell(summon, SPELL_SPIRIT_FOUNT, true); + summon->SetDisplayId(11686); + SpiritFountGUID = summon->GetGUID(); + break; + case NPC_AVENGING_SPIRIT: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + { + summon->AddThreat(target, 0.0f); + summon->AI()->AttackStart(target); + } + break; + default: + break; } - //Return since we have no target - if (!UpdateVictim()) - return; + summons.Summon(summon); + } - if (!m_bIsPause) + void DamageTaken(Unit* /*attacker*/, uint32& damage) override + { + if (me->HealthBelowPctDamaged(100 - HealthAmountMultipler * HealthAmountModifier, damage)) { - // Normal spells ------------------------------------------------------------------------ - if (m_uiBane_Timer <= diff) - { - DoCast(me, SPELL_BANE); - m_uiBane_Timer = urand(20000, 25000); - } else m_uiBane_Timer -= diff; + uint8 Order = HealthAmountModifier - 1; + ++HealthAmountModifier; - if (m_uiFetidRot_Timer <= diff) - { - DoCastVictim(SPELL_FETID_ROT); - m_uiFetidRot_Timer = urand(10000, 15000); - } else m_uiFetidRot_Timer -= diff; + me->InterruptNonMeleeSpells(true); + DoCast(me, SPELL_SCREAMS_OF_THE_DEAD); - if (m_uiDarkSlash_Timer <= diff) - { - DoCastVictim(SPELL_DARK_SLASH); - m_uiDarkSlash_Timer = urand(30000, 35000); - } else m_uiDarkSlash_Timer -= diff; + me->AttackStop(); + me->SetReactState(REACT_PASSIVE); + me->GetMotionMaster()->MovePoint(POINT_BOAT, ActiveBoat[ActiveOrder[Order]].MoveX, ActiveBoat[ActiveOrder[Order]].MoveY, ActiveBoat[ActiveOrder[Order]].MoveZ); - if (m_uiAncestors_Vengeance_Timer <= diff) - { - DoCast(me, SPELL_ANCESTORS_VENGEANCE); - m_uiAncestors_Vengeance_Timer = DUNGEON_MODE(urand(60000, 65000), urand(45000, 50000)); - } else m_uiAncestors_Vengeance_Timer -= diff; + DespawnBoatGhosts(ActiveAncestorGUID); + DespawnBoatGhosts(SpiritFountGUID); - // Abilities ------------------------------------------------------------------------------ - if (m_bIsActiveWithBJORN && m_uiAbility_BJORN_Timer <= diff) - { - //DoCast(me, SPELL_SUMMON_SPIRIT_FOUNT); // works fine, but using summon has better control - if (Creature* temp = me->SummonCreature(NPC_SPIRIT_FOUNT, 385.0f + rand32() % 10, -330.0f + rand32() % 10, 104.756f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 180000)) - { - temp->SetSpeed(MOVE_RUN, 0.4f); - temp->CastSpell(temp, SPELL_SPIRIT_FOUNT, true); - temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); - temp->SetDisplayId(11686); - m_uiOrbGUID = temp->GetGUID(); - } - m_bIsActiveWithBJORN = false; // only one orb - } else m_uiAbility_BJORN_Timer -= diff; + events.CancelEvent(ActiveBoat[ActiveOrder[ActivedNumber]].event); // Cancels the event started on the previous transition. + events.DelayEvents(10000, EVENT_GROUP_BASE_SPELLS); - if (m_bIsActiveWithHALDOR && m_uiAbility_HALDOR_Timer <= diff) - { - DoCastVictim(SPELL_SPIRIT_STRIKE); - m_uiAbility_HALDOR_Timer = 5000; // overtime - } else m_uiAbility_HALDOR_Timer -= diff; + ActivedNumber = Order; + } + } - if (m_bIsActiveWithRANULF && m_uiAbility_RANULF_Timer <= diff) - { + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) + { + case EVENT_BANE: + DoCast(SPELL_BANE); + events.ScheduleEvent(EVENT_BANE, urand(20000, 25000)); + break; + case EVENT_FETID_ROT: + DoCastVictim(SPELL_FETID_ROT); + events.ScheduleEvent(EVENT_FETID_ROT, urand(10000, 15000)); + break; + case EVENT_DARK_SLASH: + DoCastVictim(SPELL_DARK_SLASH); + events.ScheduleEvent(EVENT_DARK_SLASH, urand(30000, 35000)); + break; + case EVENT_ANCESTORS_VENGEANCE: + DoCast(me, SPELL_ANCESTORS_VENGEANCE); + events.ScheduleEvent(EVENT_ANCESTORS_VENGEANCE, DUNGEON_MODE(urand(60000, 65000), urand(45000, 50000))); + break; + case EVENT_RESUME_COMBAT: + me->SetReactState(REACT_AGGRESSIVE); + events.ScheduleEvent(ActiveBoat[ActiveOrder[ActivedNumber]].event, 5000); + break; + case EVENT_BJORN_SPIRIT_FOUNT: + DoCast(SPELL_SUMMON_SPIRIT_FOUNT); + break; + case EVENT_HALDOR_SPIRIT_STRIKE: + DoCastVictim(SPELL_SPIRIT_STRIKE); + events.ScheduleEvent(EVENT_HALDOR_SPIRIT_STRIKE, 5000); + break; + case EVENT_RANULF_SPIRIT_BURST: DoCast(me, SPELL_SPIRIT_BURST); - m_uiAbility_RANULF_Timer = 10000; // overtime - } else m_uiAbility_RANULF_Timer -= diff; - - if (m_bIsActiveWithTORGYN && m_uiAbility_TORGYN_Timer <= diff) - { - float x, y, z; - x = me->GetPositionX()-5; - y = me->GetPositionY()-5; - z = me->GetPositionZ(); + events.ScheduleEvent(EVENT_RANULF_SPIRIT_BURST, 10000); + break; + case EVENT_TORGYN_SUMMON_AVENGING_SPIRITS: for (uint8 i = 0; i < 4; ++i) - { - //DoCast(me, SPELL_SUMMON_AVENGING_SPIRIT); // works fine, but using summon has better control - if (Creature* temp = me->SummonCreature(NPC_AVENGING_SPIRIT, x + rand32() % 10, y + rand32() % 10, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000)) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - { - temp->AddThreat(target, 0.0f); - temp->AI()->AttackStart(target); - } - } - } - m_uiAbility_TORGYN_Timer = 15000; // overtime - } else m_uiAbility_TORGYN_Timer -= diff; - - // Health check ----------------------------------------------------------------------------- - if (me->HealthBelowPct(100 - m_uiHealthAmountMultipler * m_uiHealthAmountModifier)) - { - uint8 m_uiOrder = m_uiHealthAmountModifier - 1; - ++m_uiHealthAmountModifier; - - me->InterruptNonMeleeSpells(true); - DoCast(me, SPELL_SCREAMS_OF_THE_DEAD); - me->GetMotionMaster()->Clear(); - me->StopMoving(); - me->AttackStop(); - me->GetMotionMaster()->MovePoint(0, ActiveBoat[m_uiActiveOrder[m_uiOrder]].MoveX, ActiveBoat[m_uiActiveOrder[m_uiOrder]].MoveY, ActiveBoat[m_uiActiveOrder[m_uiOrder]].MoveZ); - - DespawnBoatGhosts(m_uiActivedCreatureGUID); - DespawnBoatGhosts(m_uiOrbGUID); - - m_bIsActiveWithBJORN = false; - m_bIsActiveWithHALDOR = false; - m_bIsActiveWithRANULF = false; - m_bIsActiveWithTORGYN = false; - - m_uiBane_Timer += 8000; - m_uiFetidRot_Timer += 8000; - m_uiDarkSlash_Timer += 8000; - m_uiAncestors_Vengeance_Timer += 8000; - - m_uiActivedNumber = m_uiOrder; - m_bIsWalking = true; - m_uiPause_Timer = 2000; - return; - } - DoMeleeAttackIfReady(); + DoCast(SPELL_SUMMON_AVENGING_SPIRIT); + events.ScheduleEvent(EVENT_TORGYN_SUMMON_AVENGING_SPIRITS, 15000); + break; + default: + break; } } @@ -367,14 +283,24 @@ public: Talk(SAY_SLAY); } - void DespawnBoatGhosts(uint64& m_uiCreatureGUID) + void DespawnBoatGhosts(ObjectGuid& CreatureGUID) { - if (m_uiCreatureGUID) - if (Creature* temp = ObjectAccessor::GetCreature(*me, m_uiCreatureGUID)) + // @todo: fire visual after ancestor despawns. + if (CreatureGUID) + if (Creature* temp = ObjectAccessor::GetCreature(*me, CreatureGUID)) temp->DisappearAndDie(); - m_uiCreatureGUID = 0; + CreatureGUID.Clear(); } + + private: + bool kingsBane; // Achievement King's Bane + uint8 ActiveOrder[4]; + uint8 ActivedNumber; + uint32 HealthAmountModifier; + uint32 HealthAmountMultipler; + ObjectGuid ActiveAncestorGUID; + ObjectGuid SpiritFountGUID; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp index 1bc3f20c3fe..519cc3b7202 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp @@ -38,23 +38,6 @@ class instance_utgarde_pinnacle : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - - SvalaSorrowgraveGUID = 0; - GortokPalehoofGUID = 0; - SkadiTheRuthlessGUID = 0; - KingYmironGUID = 0; - - UtgardeMirrorGUID = 0; - GortokPalehoofSphereGUID = 0; - - FrenziedWorgenGUID = 0; - RavenousFurbolgGUID = 0; - FerociousRhinoGUID = 0; - MassiveJormungarGUID = 0; - PalehoofOrbGUID = 0; - - SvalaGUID = 0; - SacrificedPlayerGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -107,7 +90,7 @@ class instance_utgarde_pinnacle : public InstanceMapScript GortokPalehoofSphereGUID = go->GetGUID(); if (GetBossState(DATA_GORTOK_PALEHOOF) == DONE) { - HandleGameObject(0, true, go); + HandleGameObject(ObjectGuid::Empty, true, go); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } break; @@ -133,7 +116,7 @@ class instance_utgarde_pinnacle : public InstanceMapScript } } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { switch (type) { @@ -145,7 +128,7 @@ class instance_utgarde_pinnacle : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -179,27 +162,27 @@ class instance_utgarde_pinnacle : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 SvalaSorrowgraveGUID; - uint64 GortokPalehoofGUID; - uint64 SkadiTheRuthlessGUID; - uint64 KingYmironGUID; + ObjectGuid SvalaSorrowgraveGUID; + ObjectGuid GortokPalehoofGUID; + ObjectGuid SkadiTheRuthlessGUID; + ObjectGuid KingYmironGUID; - uint64 UtgardeMirrorGUID; - uint64 GortokPalehoofSphereGUID; + ObjectGuid UtgardeMirrorGUID; + ObjectGuid GortokPalehoofSphereGUID; - uint64 FrenziedWorgenGUID; - uint64 RavenousFurbolgGUID; - uint64 FerociousRhinoGUID; - uint64 MassiveJormungarGUID; + ObjectGuid FrenziedWorgenGUID; + ObjectGuid RavenousFurbolgGUID; + ObjectGuid FerociousRhinoGUID; + ObjectGuid MassiveJormungarGUID; - uint64 PalehoofOrbGUID; + ObjectGuid PalehoofOrbGUID; - uint64 SvalaGUID; - uint64 SacrificedPlayerGUID; + ObjectGuid SvalaGUID; + ObjectGuid SacrificedPlayerGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h index cccfcede80b..5373446ba02 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h @@ -59,7 +59,19 @@ enum CreatureIds NPC_RAVENOUS_FURBOLG = 26684, NPC_MASSIVE_JORMUNGAR = 26685, NPC_FEROCIOUS_RHINO = 26686, - NPC_PALEHOOF_ORB = 26688 + NPC_PALEHOOF_ORB = 26688, + + // Ymiron + NPC_BJORN = 27303, + NPC_BJORN_VISUAL = 27304, + NPC_HALDOR = 27307, + NPC_HALDOR_VISUAL = 27310, + NPC_RANULF = 27308, + NPC_RANULF_VISUAL = 27311, + NPC_TORGYN = 27309, + NPC_TORGYN_VISUAL = 27312, + NPC_SPIRIT_FOUNT = 27339, + NPC_AVENGING_SPIRIT = 27386 }; enum GameObjectIds diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp index 8a88abb9d06..bacb63b73bc 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp @@ -101,7 +101,7 @@ class boss_emalon : public CreatureScript { if (!summons.empty()) { - for (std::list<uint64>::const_iterator itr = summons.begin(); itr != summons.end(); ++itr) + for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr) { Creature* minion = ObjectAccessor::GetCreature(*me, *itr); if (minion && minion->IsAlive() && !minion->GetVictim() && minion->AI()) @@ -201,7 +201,7 @@ class npc_tempest_minion : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (Creature* emalon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EMALON))) + if (Creature* emalon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EMALON))) { if (emalon->IsAlive()) { @@ -216,7 +216,7 @@ class npc_tempest_minion : public CreatureScript DoZoneInCombat(); events.ScheduleEvent(EVENT_SHOCK, 20000); - if (Creature* pEmalon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EMALON))) + if (Creature* pEmalon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EMALON))) { if (!pEmalon->GetVictim() && pEmalon->AI()) pEmalon->AI()->AttackStart(who); diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp index 36c952d14a1..a7895b8d506 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp @@ -262,7 +262,7 @@ class npc_frozen_orb_stalker : public CreatureScript return; spawned = true; - Unit* toravon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TORAVON)); + Unit* toravon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TORAVON)); if (!toravon) return; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp index 959c8b7724d..846ecc1226a 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp @@ -38,8 +38,6 @@ class instance_vault_of_archavon : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); - EmalonGUID = 0; - ToravonGUID = 0; ArchavonDeath = 0; EmalonDeath = 0; KoralonDeath = 0; @@ -60,7 +58,7 @@ class instance_vault_of_archavon : public InstanceMapScript } } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -72,7 +70,7 @@ class instance_vault_of_archavon : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -127,8 +125,8 @@ class instance_vault_of_archavon : public InstanceMapScript } private: - uint64 EmalonGUID; - uint64 ToravonGUID; + ObjectGuid EmalonGUID; + ObjectGuid ToravonGUID; time_t ArchavonDeath; time_t EmalonDeath; time_t KoralonDeath; diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp index 6cc90bcd4ed..bbb8c758bb1 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp @@ -85,12 +85,12 @@ public: else if (instance->GetData(DATA_WAVE_COUNT) == 12) instance->SetData(DATA_2ND_BOSS_EVENT, NOT_STARTED); - if (Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_1))) + if (Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_1))) { if (!pGuard1->IsAlive()) pGuard1->Respawn(); } - if (Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_2))) + if (Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_2))) { if (!pGuard2->IsAlive()) pGuard2->Respawn(); @@ -109,13 +109,13 @@ public: who->SetInCombatWith(me); DoStartMovement(who); - if (Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_1))) + if (Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_1))) { pGuard1->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NON_ATTACKABLE); if (!pGuard1->GetVictim() && pGuard1->AI()) pGuard1->AI()->AttackStart(who); } - if (Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_2))) + if (Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_2))) { pGuard2->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NON_ATTACKABLE); if (!pGuard2->GetVictim() && pGuard2->AI()) @@ -129,7 +129,7 @@ public: Talk(SAY_AGGRO); DoCast(me, SPELL_EARTH_SHIELD); - if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_EREKEM_CELL))) + if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetGuidData(DATA_EREKEM_CELL))) if (pDoor->GetGoState() == GO_STATE_READY) { EnterEvadeMode(); @@ -154,9 +154,9 @@ public: //spam stormstrike in hc mode if spawns are dead if (IsHeroic()) { - if (Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_1))) + if (Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_1))) { - if (Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_2))) + if (Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_2))) { if (!pGuard1->IsAlive() && !pGuard2->IsAlive()) DoCastVictim(SPELL_STORMSTRIKE); @@ -172,14 +172,14 @@ public: if (uiChainHealTimer <= diff) { - if (uint64 TargetGUID = GetChainHealTargetGUID()) + if (ObjectGuid TargetGUID = GetChainHealTargetGUID()) { if (Creature* target = ObjectAccessor::GetCreature(*me, TargetGUID)) DoCast(target, SPELL_CHAIN_HEAL); //If one of the adds is dead spawn heals faster - Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_1)); - Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_2)); + Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_1)); + Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_2)); uiChainHealTimer = ((pGuard1 && !pGuard1->IsAlive()) || (pGuard2 && !pGuard2->IsAlive()) ? 3000 : 8000) + rand32() % 3000; } } else uiChainHealTimer -= diff; @@ -230,20 +230,20 @@ public: Talk(SAY_SLAY); } - uint64 GetChainHealTargetGUID() + ObjectGuid GetChainHealTargetGUID() { if (HealthBelowPct(85)) return me->GetGUID(); - Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_1)); + Creature* pGuard1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_1)); if (pGuard1 && pGuard1->IsAlive() && !pGuard1->HealthAbovePct(75)) return pGuard1->GetGUID(); - Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EREKEM_GUARD_2)); + Creature* pGuard2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EREKEM_GUARD_2)); if (pGuard2 && pGuard2->IsAlive() && !pGuard2->HealthAbovePct(75)) return pGuard2->GetGUID(); - return 0; + return ObjectGuid::Empty; } }; diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index ba72f6f52ca..50a65920876 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -128,7 +128,7 @@ public: DoCast(me, SPELL_PROTECTIVE_BUBBLE); - if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_ICHORON_CELL))) + if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetGuidData(DATA_ICHORON_CELL))) if (pDoor->GetGoState() == GO_STATE_READY) { EnterEvadeMode(); @@ -227,7 +227,7 @@ public: { if (!bIsExploded) { - if (!me->HasAura(SPELL_PROTECTIVE_BUBBLE, 0)) + if (!me->HasAura(SPELL_PROTECTIVE_BUBBLE)) { Talk(SAY_SHATTER); DoCast(me, SPELL_WATER_BLAST); @@ -247,7 +247,7 @@ public: bool bIsWaterElementsAlive = false; if (!m_waterElements.empty()) { - for (std::list<uint64>::const_iterator itr = m_waterElements.begin(); itr != m_waterElements.end(); ++itr) + for (SummonList::const_iterator itr = m_waterElements.begin(); itr != m_waterElements.end(); ++itr) if (Creature* temp = ObjectAccessor::GetCreature(*me, *itr)) if (temp->IsAlive()) { @@ -308,7 +308,7 @@ public: summoned->SetSpeed(MOVE_RUN, 0.3f); summoned->GetMotionMaster()->MoveFollow(me, 0, 0); m_waterElements.Summon(summoned); - instance->SetData64(DATA_ADD_TRASH_MOB, summoned->GetGUID()); + instance->SetGuidData(DATA_ADD_TRASH_MOB, summoned->GetGUID()); } } @@ -317,7 +317,7 @@ public: if (summoned) { m_waterElements.Despawn(summoned); - instance->SetData64(DATA_DEL_TRASH_MOB, summoned->GetGUID()); + instance->SetGuidData(DATA_DEL_TRASH_MOB, summoned->GetGUID()); } } @@ -374,7 +374,7 @@ public: { if (uiRangeCheck_Timer < uiDiff) { - if (Creature* pIchoron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ICHORON))) + if (Creature* pIchoron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ICHORON))) { if (me->IsWithinDist(pIchoron, 2.0f, false)) { @@ -391,7 +391,7 @@ public: void JustDied(Unit* /*killer*/) override { DoCast(me, SPELL_SPLASH); - if (Creature* pIchoron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ICHORON))) + if (Creature* pIchoron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ICHORON))) if (pIchoron->AI()) pIchoron->AI()->DoAction(ACTION_WATER_ELEMENT_KILLED); } diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp index 3a08a4510ca..23c498a9dc1 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp @@ -44,9 +44,18 @@ public: { boss_lavanthorAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiFireboltTimer = 1000; + uiFlameBreathTimer = 5000; + uiLavaBurnTimer = 10000; + uiCauterizingFlamesTimer = 3000; + } + uint32 uiFireboltTimer; uint32 uiFlameBreathTimer; uint32 uiLavaBurnTimer; @@ -56,10 +65,7 @@ public: void Reset() override { - uiFireboltTimer = 1000; - uiFlameBreathTimer = 5000; - uiLavaBurnTimer = 10000; - uiCauterizingFlamesTimer = 3000; + Initialize(); if (instance->GetData(DATA_WAVE_COUNT) == 6) instance->SetData(DATA_1ST_BOSS_EVENT, NOT_STARTED); else if (instance->GetData(DATA_WAVE_COUNT) == 12) @@ -68,7 +74,7 @@ public: void EnterCombat(Unit* /*who*/) override { - if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_LAVANTHOR_CELL))) + if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetGuidData(DATA_LAVANTHOR_CELL))) if (pDoor->GetGoState() == GO_STATE_READY) { EnterEvadeMode(); diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp index 12ace1b1c38..a9013333ef9 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp @@ -40,9 +40,16 @@ public: { boss_moraggAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiOpticLinkTimer = 10000; + uiCorrosiveSalivaTimer = 5000; + } + uint32 uiOpticLinkTimer; uint32 uiCorrosiveSalivaTimer; @@ -50,8 +57,7 @@ public: void Reset() override { - uiOpticLinkTimer = 10000; - uiCorrosiveSalivaTimer = 5000; + Initialize(); if (instance->GetData(DATA_WAVE_COUNT) == 6) instance->SetData(DATA_1ST_BOSS_EVENT, NOT_STARTED); @@ -61,7 +67,7 @@ public: void EnterCombat(Unit* /*who*/) override { - if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_MORAGG_CELL))) + if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetGuidData(DATA_MORAGG_CELL))) if (pDoor->GetGoState() == GO_STATE_READY) { EnterEvadeMode(); diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp index 734c20000eb..d79e5525650 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp @@ -70,9 +70,17 @@ public: { boss_xevozzAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiSummonEtherealSphere_Timer = urand(10000, 12000); + uiArcaneBarrageVolley_Timer = urand(20000, 22000); + uiArcaneBuffet_Timer = uiSummonEtherealSphere_Timer + urand(5000, 6000); + } + InstanceScript* instance; uint32 uiSummonEtherealSphere_Timer; @@ -86,9 +94,7 @@ public: else if (instance->GetData(DATA_WAVE_COUNT) == 12) instance->SetData(DATA_2ND_BOSS_EVENT, NOT_STARTED); - uiSummonEtherealSphere_Timer = urand(10000, 12000); - uiArcaneBarrageVolley_Timer = urand(20000, 22000); - uiArcaneBuffet_Timer = uiSummonEtherealSphere_Timer + urand(5000, 6000); + Initialize(); DespawnSphere(); } @@ -134,7 +140,7 @@ public: void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); - if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_XEVOZZ_CELL))) + if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetGuidData(DATA_XEVOZZ_CELL))) if (pDoor->GetGoState() == GO_STATE_READY) { EnterEvadeMode(); @@ -229,9 +235,16 @@ public: { npc_ethereal_sphereAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiSummonPlayers_Timer = urand(33000, 35000); + uiRangeCheck_Timer = 1000; + } + InstanceScript* instance; uint32 uiSummonPlayers_Timer; @@ -239,8 +252,7 @@ public: void Reset() override { - uiSummonPlayers_Timer = urand(33000, 35000); - uiRangeCheck_Timer = 1000; + Initialize(); } void UpdateAI(uint32 uiDiff) override @@ -254,7 +266,7 @@ public: if (uiRangeCheck_Timer < uiDiff) { - if (Creature* pXevozz = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_XEVOZZ))) + if (Creature* pXevozz = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_XEVOZZ))) { float fDistance = me->GetDistance2d(pXevozz); if (fDistance <= 3) diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp index 7ae1c7840db..5854d242248 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp @@ -65,9 +65,18 @@ public: { boss_zuramatAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + SpellShroudOfDarknessTimer = 22000; + SpellVoidShiftTimer = 15000; + SpellSummonVoidTimer = 12000; + voidDance = true; + } + InstanceScript* instance; uint32 SpellVoidShiftTimer; @@ -82,10 +91,7 @@ public: else if (instance->GetData(DATA_WAVE_COUNT) == 12) instance->SetData(DATA_2ND_BOSS_EVENT, NOT_STARTED); - SpellShroudOfDarknessTimer = 22000; - SpellVoidShiftTimer = 15000; - SpellSummonVoidTimer = 12000; - voidDance = true; + Initialize(); } void AttackStart(Unit* who) override @@ -105,7 +111,7 @@ public: void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); - if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_ZURAMAT_CELL))) + if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetGuidData(DATA_ZURAMAT_CELL))) if (pDoor->GetGoState() == GO_STATE_READY) { EnterEvadeMode(); diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index 9c81e664fd4..cddf6ce3c25 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -114,35 +114,35 @@ public: { instance_violet_hold_InstanceMapScript(Map* map) : InstanceScript(map) { } - uint64 uiMoragg; - uint64 uiErekem; - uint64 uiErekemGuard[2]; - uint64 uiIchoron; - uint64 uiLavanthor; - uint64 uiXevozz; - uint64 uiZuramat; - uint64 uiCyanigosa; - uint64 uiSinclari; - - uint64 uiMoraggCell; - uint64 uiErekemCell; - uint64 uiErekemLeftGuardCell; - uint64 uiErekemRightGuardCell; - uint64 uiIchoronCell; - uint64 uiLavanthorCell; - uint64 uiXevozzCell; - uint64 uiZuramatCell; - uint64 uiMainDoor; - uint64 uiTeleportationPortal; - uint64 uiSaboteurPortal; - - uint64 uiActivationCrystal[4]; + ObjectGuid uiMoragg; + ObjectGuid uiErekem; + ObjectGuid uiErekemGuard[2]; + ObjectGuid uiIchoron; + ObjectGuid uiLavanthor; + ObjectGuid uiXevozz; + ObjectGuid uiZuramat; + ObjectGuid uiCyanigosa; + ObjectGuid uiSinclari; + + ObjectGuid uiMoraggCell; + ObjectGuid uiErekemCell; + ObjectGuid uiErekemLeftGuardCell; + ObjectGuid uiErekemRightGuardCell; + ObjectGuid uiIchoronCell; + ObjectGuid uiLavanthorCell; + ObjectGuid uiXevozzCell; + ObjectGuid uiZuramatCell; + ObjectGuid uiMainDoor; + ObjectGuid uiTeleportationPortal; + ObjectGuid uiSaboteurPortal; + + ObjectGuid uiActivationCrystal[4]; uint32 uiActivationTimer; uint32 uiCyanigosaEventTimer; uint32 uiDoorSpellTimer; - std::set<uint64> trashMobs; // to kill with crystal + GuidSet trashMobs; // to kill with crystal uint8 uiWaveCount; uint8 uiLocation; @@ -171,28 +171,6 @@ public: void Initialize() override { SetHeaders(DataHeader); - uiMoragg = 0; - uiErekem = 0; - uiIchoron = 0; - uiLavanthor = 0; - uiXevozz = 0; - uiZuramat = 0; - uiCyanigosa = 0; - uiSinclari = 0; - - uiMoraggCell = 0; - uiErekemCell = 0; - uiErekemGuard[0] = 0; - uiErekemGuard[1] = 0; - uiIchoronCell = 0; - uiLavanthorCell = 0; - uiXevozzCell = 0; - uiZuramatCell = 0; - uiMainDoor = 0; - uiTeleportationPortal = 0; - uiSaboteurPortal = 0; - - trashMobs.clear(); uiRemoveNpc = 0; @@ -266,11 +244,14 @@ public: break; } + /* + BEWARE - SHIT. if (creature->GetGUID() == uiFirstBoss || creature->GetGUID() == uiSecondBoss) { creature->AllLootRemovedFromCorpse(); creature->RemoveLootMode(1); } + */ } void OnGameObjectCreate(GameObject* go) override @@ -407,7 +388,7 @@ public: } } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { switch (type) { @@ -441,7 +422,7 @@ public: return 0; } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -468,7 +449,7 @@ public: case DATA_SABOTEUR_PORTAL: return uiSaboteurPortal; } - return 0; + return ObjectGuid::Empty; } void SpawnPortal() @@ -813,8 +794,8 @@ public: // visuals trigger->CastSpell(trigger, spellInfoLightning, true, 0, 0, trigger->GetGUID()); - // Kill all mobs registered with SetData64(ADD_TRASH_MOB) - for (std::set<uint64>::const_iterator itr = trashMobs.begin(); itr != trashMobs.end(); ++itr) + // Kill all mobs registered with SetGuidData(ADD_TRASH_MOB) + for (GuidSet::const_iterator itr = trashMobs.begin(); itr != trashMobs.end(); ++itr) { Creature* creature = instance->GetCreature(*itr); if (creature && creature->IsAlive()) diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 1c106f399de..a28442dc8dd 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -305,9 +305,16 @@ public: { npc_sinclariAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiPhase = 0; + uiTimer = 0; + } + InstanceScript* instance; uint8 uiPhase; @@ -315,8 +322,7 @@ public: void Reset() override { - uiPhase = 0; - uiTimer = 0; + Initialize(); me->SetReactState(REACT_AGGRESSIVE); @@ -526,7 +532,7 @@ public: { me->CastSpell(me, SABOTEUR_SHIELD_DISRUPTION, false); me->DisappearAndDie(); - Creature* pSaboPort = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SABOTEUR_PORTAL)); + Creature* pSaboPort = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_SABOTEUR_PORTAL)); if (pSaboPort) pSaboPort->DisappearAndDie(); instance->SetData(DATA_START_BOSS_ENCOUNTER, 1); @@ -549,8 +555,14 @@ public: { npc_teleportation_portalAI(Creature* creature) : ScriptedAI(creature), listOfMobs(me) { + Initialize(); instance = creature->GetInstanceScript(); uiTypeOfMobsPortal = urand(0, 1); // 0 - elite mobs 1 - portal guardian or portal keeper with regular mobs + } + + void Initialize() + { + uiSpawnTimer = 10000; bPortalGuardianOrKeeperOrEliteSpawn = false; } @@ -564,8 +576,7 @@ public: void Reset() override { - uiSpawnTimer = 10000; - bPortalGuardianOrKeeperOrEliteSpawn = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -653,13 +664,13 @@ public: void JustSummoned(Creature* summoned) override { listOfMobs.Summon(summoned); - instance->SetData64(DATA_ADD_TRASH_MOB, summoned->GetGUID()); + instance->SetGuidData(DATA_ADD_TRASH_MOB, summoned->GetGUID()); } void SummonedCreatureDies(Creature* summoned, Unit* /*killer*/) override { listOfMobs.Despawn(summoned); - instance->SetData64(DATA_DEL_TRASH_MOB, summoned->GetGUID()); + instance->SetGuidData(DATA_DEL_TRASH_MOB, summoned->GetGUID()); } }; @@ -672,7 +683,7 @@ struct violet_hold_trashAI : public npc_escortAI instance = creature->GetInstanceScript(); bHasGotMovingPoints = false; portalLocationID = instance->GetData(DATA_PORTAL_LOCATION); - Reset(); + secondPortalRouteID = 0; } public: @@ -797,9 +808,18 @@ public: { npc_azure_invaderAI(Creature* creature) : violet_hold_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiCleaveTimer = 5000; + uiImpaleTimer = 4000; + uiBrutalStrikeTimer = 5000; + uiSunderArmorTimer = 4000; + } + uint32 uiCleaveTimer; uint32 uiImpaleTimer; uint32 uiBrutalStrikeTimer; @@ -807,10 +827,7 @@ public: void Reset() override { - uiCleaveTimer = 5000; - uiImpaleTimer = 4000; - uiBrutalStrikeTimer = 5000; - uiSunderArmorTimer = 4000; + Initialize(); } void UpdateAI(uint32 diff) override @@ -875,9 +892,18 @@ public: { npc_azure_binderAI(Creature* creature) : violet_hold_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiArcaneExplosionTimer = 5000; + uiArcainBarrageTimer = 4000; + uiFrostNovaTimer = 5000; + uiFrostboltTimer = 4000; + } + uint32 uiArcaneExplosionTimer; uint32 uiArcainBarrageTimer; uint32 uiFrostNovaTimer; @@ -885,10 +911,7 @@ public: void Reset() override { - uiArcaneExplosionTimer = 5000; - uiArcainBarrageTimer = 4000; - uiFrostNovaTimer = 5000; - uiFrostboltTimer = 4000; + Initialize(); } void UpdateAI(uint32 diff) override @@ -953,16 +976,22 @@ public: { npc_azure_mage_slayerAI(Creature* creature) : violet_hold_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiArcaneEmpowermentTimer = 5000; + uiSpellLockTimer = 5000; + } + uint32 uiArcaneEmpowermentTimer; uint32 uiSpellLockTimer; void Reset() override { - uiArcaneEmpowermentTimer = 5000; - uiSpellLockTimer = 5000; + Initialize(); } void UpdateAI(uint32 diff) override @@ -1013,16 +1042,22 @@ public: { npc_azure_raiderAI(Creature* creature) : violet_hold_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiConcussionBlowTimer = 5000; + uiMagicReflectionTimer = 8000; + } + uint32 uiConcussionBlowTimer; uint32 uiMagicReflectionTimer; void Reset() override { - uiConcussionBlowTimer = 5000; - uiMagicReflectionTimer = 8000; + Initialize(); } void UpdateAI(uint32 diff) override @@ -1060,14 +1095,20 @@ public: { npc_azure_stalkerAI(Creature* creature) : violet_hold_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } - void Reset() override + void Initialize() { _backstabTimer = 1300; _tacticalBlinkTimer = 8000; - _tacticalBlinkCast =false; + _tacticalBlinkCast = false; + } + + void Reset() override + { + Initialize(); } void UpdateAI(uint32 diff) override @@ -1125,9 +1166,18 @@ public: { npc_azure_spellbreakerAI(Creature* creature) : violet_hold_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiArcaneBlastTimer = 5000; + uiSlowTimer = 4000; + uiChainsOfIceTimer = 5000; + uiConeOfColdTimer = 4000; + } + uint32 uiArcaneBlastTimer; uint32 uiSlowTimer; uint32 uiChainsOfIceTimer; @@ -1135,10 +1185,7 @@ public: void Reset() override { - uiArcaneBlastTimer = 5000; - uiSlowTimer = 4000; - uiChainsOfIceTimer = 5000; - uiConeOfColdTimer = 4000; + Initialize(); } void UpdateAI(uint32 diff) override @@ -1209,16 +1256,22 @@ public: { npc_azure_captainAI(Creature* creature) : violet_hold_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiMortalStrikeTimer = 5000; + uiWhirlwindTimer = 8000; + } + uint32 uiMortalStrikeTimer; uint32 uiWhirlwindTimer; void Reset() override { - uiMortalStrikeTimer = 5000; - uiWhirlwindTimer = 8000; + Initialize(); } void UpdateAI(uint32 diff) override @@ -1261,18 +1314,24 @@ public: { npc_azure_sorcerorAI(Creature* creature) : violet_hold_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiArcaneStreamTimer = 4000; + uiArcaneStreamTimerStartingValueHolder = uiArcaneStreamTimer; + uiManaDetonationTimer = 5000; + } + uint32 uiArcaneStreamTimer; uint32 uiArcaneStreamTimerStartingValueHolder; uint32 uiManaDetonationTimer; void Reset() override { - uiArcaneStreamTimer = 4000; - uiArcaneStreamTimerStartingValueHolder = uiArcaneStreamTimer; - uiManaDetonationTimer = 5000; + Initialize(); } void UpdateAI(uint32 diff) override @@ -1311,13 +1370,21 @@ public: struct npc_violet_hold_arcane_sphereAI : public ScriptedAI { - npc_violet_hold_arcane_sphereAI(Creature* creature) : ScriptedAI(creature) { } + npc_violet_hold_arcane_sphereAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + DespawnTimer = 3000; + } uint32 DespawnTimer; void Reset() override { - DespawnTimer = 3000; + Initialize(); me->SetDisableGravity(true); DoCast(me, SPELL_ARCANE_SPHERE_PASSIVE, true); diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index f02edbb5584..7824fe86c87 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -71,13 +71,13 @@ public: uint32 phaseTimer; uint8 phase; - uint64 casterGuid; + ObjectGuid casterGuid; void Reset() override { phaseTimer = 500; phase = 0; - casterGuid = 0; + casterGuid.Clear(); } void SpellHit(Unit* caster, const SpellInfo* spell) override @@ -391,7 +391,7 @@ public: if (uiRand < 25) { player->CastSpell(me, SPELL_FREED_WARSONG_PEON, true); - player->KilledMonsterCredit(NPC_WARSONG_PEON, 0); + player->KilledMonsterCredit(NPC_WARSONG_PEON); } else if (uiRand < 75) player->CastSpell(me, nerubarVictims[urand(0, 2)], true); @@ -449,7 +449,7 @@ public: { npc_nesingwary_trapperAI(Creature* creature) : ScriptedAI(creature) { creature->SetVisible(false); } - uint64 go_caribouGUID; + ObjectGuid go_caribouGUID; uint8 phase; uint32 phaseTimer; @@ -458,7 +458,7 @@ public: me->SetVisible(false); phaseTimer = 2500; phase = 1; - go_caribouGUID = 0; + go_caribouGUID.Clear(); } void EnterCombat(Unit* /*who*/) override { } @@ -474,7 +474,7 @@ public: if (summon->IsSummon()) if (Unit* temp = summon->GetSummoner()) if (Player* player = temp->ToPlayer()) - player->KilledMonsterCredit(me->GetEntry(), 0); + player->KilledMonsterCredit(me->GetEntry()); if (GameObject* go_caribou = me->GetMap()->GetGameObject(go_caribouGUID)) go_caribou->SetGoState(GO_STATE_READY); @@ -723,10 +723,9 @@ public: { npc_nexus_drake_hatchlingAI(Creature* creature) : FollowerAI(creature) { - HarpoonerGUID = 0; } - uint64 HarpoonerGUID; + ObjectGuid HarpoonerGUID; bool WithRedDragonBlood; void Reset() override @@ -764,10 +763,10 @@ public: { if (Player* pHarpooner = ObjectAccessor::GetPlayer(*me, HarpoonerGUID)) { - pHarpooner->KilledMonsterCredit(26175, 0); + pHarpooner->KilledMonsterCredit(26175); pHarpooner->RemoveAura(SPELL_DRAKE_HATCHLING_SUBDUED); SetFollowComplete(); - HarpoonerGUID = 0; + HarpoonerGUID.Clear(); me->DisappearAndDie(); } } @@ -793,7 +792,7 @@ public: if ((me->getFaction() == 35) && (!me->HasAura(SPELL_SUBDUED))) { - HarpoonerGUID = 0; + HarpoonerGUID.Clear(); me->DisappearAndDie(); } @@ -865,10 +864,10 @@ public: { npc_thassarianAI(Creature* creature) : npc_escortAI(creature) { } - uint64 arthasGUID; - uint64 talbotGUID; - uint64 leryssaGUID; - uint64 arlosGUID; + ObjectGuid arthasGUID; + ObjectGuid talbotGUID; + ObjectGuid leryssaGUID; + ObjectGuid arlosGUID; bool arthasInPosition; bool arlosInPosition; @@ -883,10 +882,10 @@ public: me->RestoreFaction(); me->RemoveStandFlags(UNIT_STAND_STATE_SIT); - arthasGUID = 0; - talbotGUID = 0; - leryssaGUID = 0; - arlosGUID = 0; + arthasGUID.Clear(); + talbotGUID.Clear(); + leryssaGUID.Clear(); + arlosGUID.Clear(); arthasInPosition = false; arlosInPosition = false; @@ -1242,8 +1241,8 @@ public: { npc_counselor_talbotAI(Creature* creature) : ScriptedAI(creature) { } - uint64 leryssaGUID; - uint64 arlosGUID; + ObjectGuid leryssaGUID; + ObjectGuid arlosGUID; bool bCheck; @@ -1253,8 +1252,8 @@ public: void Reset() override { - leryssaGUID = 0; - arlosGUID = 0; + leryssaGUID.Clear(); + arlosGUID.Clear(); bCheck = false; shadowBoltTimer = urand(5000, 12000); deflectionTimer = urand(20000, 25000); @@ -1609,15 +1608,11 @@ public: void SpellHit(Unit* unit, const SpellInfo* spell) override { if (spell->Id == SPELL_NEURAL_NEEDLE && unit->GetTypeId() == TYPEID_PLAYER) - { if (Player* player = unit->ToPlayer()) - { GotStinged(player->GetGUID()); - } - } } - void GotStinged(uint64 casterGUID) + void GotStinged(ObjectGuid casterGUID) { if (Player* caster = ObjectAccessor::GetPlayer(*me, casterGUID)) { @@ -1644,7 +1639,7 @@ public: break; case 7: Talk(SAY_IMPRISIONED_BERYL_7); - caster->KilledMonsterCredit(NPC_IMPRISONED_BERYL_SORCERER, 0); + caster->KilledMonsterCredit(NPC_IMPRISONED_BERYL_SORCERER); break; } } @@ -1980,7 +1975,7 @@ public: { Quest const* qInfo = sObjectMgr->GetQuestTemplate(QUEST_YOU_RE_NOT_SO_BIG_NOW); if (qInfo) - player->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0], 0); + player->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0]); } } }; @@ -2195,7 +2190,7 @@ public: uint32 uiEventTimer; uint8 uiEventPhase; - uint64 uiPlayerGUID; + ObjectGuid uiPlayerGUID; void Reset() override { @@ -2208,7 +2203,7 @@ public: uiEventTimer = 0; uiEventPhase = 0; - uiPlayerGUID = 0; + uiPlayerGUID.Clear(); DoCast(SPELL_SHROUD_OF_THE_DEATH_CULTIST); @@ -2225,7 +2220,7 @@ public: uiEventPhase = 1; } - void SetGUID(uint64 uiGuid, int32 /*iId*/) override + void SetGUID(ObjectGuid uiGuid, int32 /*iId*/) override { uiPlayerGUID = uiGuid; } diff --git a/src/server/scripts/Northrend/zone_crystalsong_forest.cpp b/src/server/scripts/Northrend/zone_crystalsong_forest.cpp index 7d680ecd071..9cad60f8766 100644 --- a/src/server/scripts/Northrend/zone_crystalsong_forest.cpp +++ b/src/server/scripts/Northrend/zone_crystalsong_forest.cpp @@ -56,11 +56,11 @@ public: SetCombatMovement(false); } - uint64 targetGUID; + ObjectGuid targetGUID; void Reset() override { - targetGUID = 0; + targetGUID.Clear(); } void UpdateAI(uint32 /*diff*/) override diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index 80e496a6e13..eff84365f63 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -158,8 +158,12 @@ class npc_commander_eligor_dawnbringer : public CreatureScript void Reset() override { talkWing = 0; - memset(audienceList, 0, sizeof(audienceList)); - memset(imageList, 0, sizeof(imageList)); + for (ObjectGuid& guid : audienceList) + guid.Clear(); + + for (ObjectGuid& guid : imageList) + guid.Clear(); + _events.ScheduleEvent(EVENT_GET_TARGETS, 5000); _events.ScheduleEvent(EVENT_START_RANDOM, 20000); } @@ -351,8 +355,8 @@ class npc_commander_eligor_dawnbringer : public CreatureScript } private: EventMap _events; - uint64 audienceList[10]; - uint64 imageList[5]; + ObjectGuid audienceList[10]; + ObjectGuid imageList[5]; uint8 talkWing; }; @@ -561,7 +565,18 @@ class npc_wyrmrest_defender : public CreatureScript struct npc_wyrmrest_defenderAI : public VehicleAI { - npc_wyrmrest_defenderAI(Creature* creature) : VehicleAI(creature) { } + npc_wyrmrest_defenderAI(Creature* creature) : VehicleAI(creature) + { + Initialize(); + } + + void Initialize() + { + hpWarningReady = true; + renewRecoveryCanCheck = false; + + RenewRecoveryChecker = 0; + } bool hpWarningReady; bool renewRecoveryCanCheck; @@ -570,10 +585,7 @@ class npc_wyrmrest_defender : public CreatureScript void Reset() override { - hpWarningReady = true; - renewRecoveryCanCheck = false; - - RenewRecoveryChecker = 0; + Initialize(); } void UpdateAI(uint32 diff) override @@ -652,13 +664,12 @@ class npc_torturer_lecraft : public CreatureScript npc_torturer_lecraftAI(Creature* creature) : ScriptedAI(creature) { _textCounter = 1; - _playerGUID = 0; } void Reset() override { _textCounter = 1; - _playerGUID = 0; + _playerGUID.Clear(); } void EnterCombat(Unit* who) override @@ -686,7 +697,7 @@ class npc_torturer_lecraft : public CreatureScript Talk(_textCounter, player); if (_textCounter == 5) - player->KilledMonsterCredit(NPC_TORTURER_LECRAFT, 0); + player->KilledMonsterCredit(NPC_TORTURER_LECRAFT); ++_textCounter; @@ -723,7 +734,7 @@ class npc_torturer_lecraft : public CreatureScript private: EventMap _events; uint8 _textCounter; - uint64 _playerGUID; + ObjectGuid _playerGUID; }; CreatureAI* GetAI(Creature* creature) const diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp index 6d41a2e9b21..e60c2162339 100644 --- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp +++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp @@ -116,7 +116,7 @@ public: case 19: if (Creature* Mrfloppy = ObjectAccessor::GetCreature(*me, _mrfloppyGUID)) { - if (Mrfloppy->HasAura(SPELL_MRFLOPPY, 0)) + if (Mrfloppy->HasAura(SPELL_MRFLOPPY)) { if (Creature* RWORG = ObjectAccessor::GetCreature(*me, _RavenousworgGUID)) Mrfloppy->EnterVehicle(RWORG); @@ -180,13 +180,13 @@ public: void Reset() override { - _mrfloppyGUID = 0; - _RavenousworgGUID = 0; + _mrfloppyGUID.Clear(); + _RavenousworgGUID.Clear(); } private: - uint64 _RavenousworgGUID; - uint64 _mrfloppyGUID; + ObjectGuid _RavenousworgGUID; + ObjectGuid _mrfloppyGUID; }; bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) override @@ -464,7 +464,6 @@ public: void Reset() override { _despawnTimer = 5000; - _playerGUID = 0; } void MovementInform(uint32, uint32 id) override @@ -498,7 +497,6 @@ public: DoMeleeAttackIfReady(); } private: - uint64 _playerGUID; uint32 _despawnTimer; }; @@ -542,7 +540,7 @@ public: void Reset() override { - _playerGUID = 0; + _playerGUID.Clear(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC); me->SetReactState(REACT_AGGRESSIVE); @@ -604,7 +602,7 @@ public: private: EventMap _events; - uint64 _playerGUID; + ObjectGuid _playerGUID; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 96fdcbfe990..53dc2a62f90 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -179,7 +179,7 @@ public: void Reset() override { - uint64 summonerGUID = 0; + ObjectGuid summonerGUID; if (me->IsSummon()) if (Unit* summoner = me->ToTempSummon()->GetSummoner()) @@ -321,15 +321,15 @@ public: npc_daegarnAI(Creature* creature) : ScriptedAI(creature) { } bool bEventInProgress; - uint64 uiPlayerGUID; + ObjectGuid uiPlayerGUID; void Reset() override { bEventInProgress = false; - uiPlayerGUID = 0; + uiPlayerGUID.Clear(); } - void StartEvent(uint64 uiGUID) + void StartEvent(ObjectGuid uiGUID) { if (bEventInProgress) return; diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp index 32b9805470e..7436ac8400f 100644 --- a/src/server/scripts/Northrend/zone_icecrown.cpp +++ b/src/server/scripts/Northrend/zone_icecrown.cpp @@ -91,17 +91,23 @@ public: { npc_argent_valiantAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); creature->GetMotionMaster()->MovePoint(0, 8599.258f, 963.951f, 547.553f); creature->setFaction(35); //wrong faction in db? } + void Initialize() + { + uiChargeTimer = 7000; + uiShieldBreakerTimer = 10000; + } + uint32 uiChargeTimer; uint32 uiShieldBreakerTimer; void Reset() override { - uiChargeTimer = 7000; - uiShieldBreakerTimer = 10000; + Initialize(); } void MovementInform(uint32 uiType, uint32 /*uiId*/) override @@ -234,7 +240,7 @@ public: { if (who->HasAura(SPELL_SUBDUED_LITHE_STALKER)) { - owner->ToPlayer()->KilledMonsterCredit(NPC_GEIST_RETURN_BUNNY_KC, 0); + owner->ToPlayer()->KilledMonsterCredit(NPC_GEIST_RETURN_BUNNY_KC); who->ToCreature()->DisappearAndDie(); } @@ -285,9 +291,15 @@ class npc_tournament_training_dummy : public CreatureScript { npc_tournament_training_dummyAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); SetCombatMovement(false); } + void Initialize() + { + isVulnerable = false; + } + EventMap events; bool isVulnerable; @@ -295,7 +307,7 @@ class npc_tournament_training_dummy : public CreatureScript { me->SetControlled(true, UNIT_STATE_STUNNED); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); - isVulnerable = false; + Initialize(); // Cast Defend spells to max stack size switch (me->GetEntry()) @@ -505,7 +517,6 @@ public: { HalofSpawned = false; PhaseCount = 0; - Summons.DespawnAll(); SetCombatMovement(false); } @@ -518,10 +529,10 @@ public: SummonList Summons; - uint64 guidDalfors; - uint64 guidPriest[3]; - uint64 guidMason[3]; - uint64 guidHalof; + ObjectGuid guidDalfors; + ObjectGuid guidPriest[3]; + ObjectGuid guidMason[3]; + ObjectGuid guidHalof; void Reset() override { @@ -912,7 +923,7 @@ class npc_margrave_dhakar : public CreatureScript struct npc_margrave_dhakarAI : public ScriptedAI { - npc_margrave_dhakarAI(Creature* creature) : ScriptedAI(creature) , _summons(me), _lichKingGuid(0) { } + npc_margrave_dhakarAI(Creature* creature) : ScriptedAI(creature) , _summons(me) { } void Reset() override { @@ -1026,7 +1037,7 @@ class npc_margrave_dhakar : public CreatureScript private: EventMap _events; SummonList _summons; - uint64 _lichKingGuid; + ObjectGuid _lichKingGuid; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index a4d6ab31846..f4275121101 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -229,7 +229,15 @@ public: struct npc_engineer_heliceAI : public npc_escortAI { - npc_engineer_heliceAI(Creature* creature) : npc_escortAI(creature) { } + npc_engineer_heliceAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + } + + void Initialize() + { + m_uiChatTimer = 4000; + } uint32 m_uiChatTimer; @@ -274,7 +282,7 @@ public: void Reset() override { - m_uiChatTimer = 4000; + Initialize(); } void JustDied(Unit* /*killer*/) override @@ -366,16 +374,24 @@ public: struct npc_jungle_punch_targetAI : public ScriptedAI { - npc_jungle_punch_targetAI(Creature* creature) : ScriptedAI(creature) { } + npc_jungle_punch_targetAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { sayTimer = 3500; sayStep = 0; timer = 0; phase = 0; - playerGUID = 0; - orphanGUID = 0; + playerGUID.Clear(); + orphanGUID.Clear(); + } + + void Reset() override + { + Initialize(); } void MoveInLineOfSight(Unit* who) override @@ -489,7 +505,7 @@ public: if (itr->second.CreatureOrGOCount[i] != 0) continue; - player->KilledMonsterCredit(me->GetEntry(), 0); + player->KilledMonsterCredit(me->GetEntry()); player->Say(SAY_OFFER, LANG_UNIVERSAL); sayStep = 1; break; @@ -501,8 +517,8 @@ public: uint8 sayStep; uint32 timer; int8 phase; - uint64 playerGUID; - uint64 orphanGUID; + ObjectGuid playerGUID; + ObjectGuid orphanGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -783,7 +799,7 @@ public: apple->CastSpell(apple, SPELL_APPLE_FALL); wilhelm->AI()->Talk(SAY_WILHELM_HIT); if (Player* player = shooter->ToPlayer()) - player->KilledMonsterCredit(NPC_APPLE, 0); + player->KilledMonsterCredit(NPC_APPLE); apple->DespawnOrUnsummon(); break; @@ -977,15 +993,15 @@ public: void HandleScript(SpellEffIndex /*effIndex*/) { - if (Player* player = GetHitUnit()->ToPlayer()) + if (Unit* target = GetHitUnit()) { switch (GetSpellInfo()->Id) { case SPELL_CORRECT_TRACKS: - player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_CORRECT_TRACKS), LANG_UNIVERSAL, player); + target->Say(SAY_CORRECT_TRACKS, target); break; case SPELL_INCORRECT_TRACKS: - player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_INCORRECT_TRACKS), LANG_UNIVERSAL, player); + target->Say(SAY_INCORRECT_TRACKS, target); break; default: break; diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index cfee2e0f187..e4cff7323b1 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -179,13 +179,21 @@ public: struct npc_brunnhildar_prisonerAI : public ScriptedAI { - npc_brunnhildar_prisonerAI(Creature* creature) : ScriptedAI(creature) { } + npc_brunnhildar_prisonerAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + freed = false; + } bool freed; void Reset() override { - freed = false; + Initialize(); me->CastSpell(me, SPELL_ICE_PRISON, true); } @@ -454,17 +462,16 @@ public: { npc_brann_bronzebeard_keystoneAI(Creature* creature) : ScriptedAI(creature) { - memset(&objectGUID, 0, sizeof(objectGUID)); - playerGUID = 0; - voiceGUID = 0; objectCounter = 0; } void Reset() override { - memset(&objectGUID, 0, sizeof(objectGUID)); - playerGUID = 0; - voiceGUID = 0; + for (ObjectGuid& guid : objectGUID) + guid.Clear(); + + playerGUID.Clear(); + voiceGUID.Clear(); objectCounter = 0; } @@ -583,9 +590,9 @@ public: private: EventMap events; - uint64 playerGUID; - uint64 objectGUID[5]; - uint64 voiceGUID; + ObjectGuid playerGUID; + ObjectGuid objectGUID[5]; + ObjectGuid voiceGUID; uint8 objectCounter; }; @@ -643,13 +650,12 @@ public: { npc_king_jokkum_vehicleAI(Creature* creature) : VehicleAI(creature) { - playerGUID = 0; pathEnd = false; } void Reset() override { - playerGUID = 0; + playerGUID.Clear(); pathEnd = false; } @@ -715,7 +721,7 @@ public: private: EventMap events; - uint64 playerGUID; + ObjectGuid playerGUID; bool pathEnd; }; diff --git a/src/server/scripts/Northrend/zone_wintergrasp.cpp b/src/server/scripts/Northrend/zone_wintergrasp.cpp index fe74997bb39..b0059de7e27 100644 --- a/src/server/scripts/Northrend/zone_wintergrasp.cpp +++ b/src/server/scripts/Northrend/zone_wintergrasp.cpp @@ -198,7 +198,7 @@ class npc_wg_spirit_guide : public CreatureScript GraveyardVect graveyard = wintergrasp->GetGraveyardVector(); for (uint8 i = 0; i < graveyard.size(); i++) if (graveyard[i]->GetControlTeamId() == player->GetTeamId()) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, sObjectMgr->GetTrinityStringForDBCLocale(((BfGraveyardWG*)graveyard[i])->GetTextId()), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + i); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, player->GetSession()->GetTrinityString(((BfGraveyardWG*)graveyard[i])->GetTextId()), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + i); player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); return true; @@ -292,7 +292,7 @@ class npc_wg_queue : public CreatureScript if (wintergrasp->IsWarTime()) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, sObjectMgr->GetTrinityStringForDBCLocale(WG_NPCQUEUE_TEXTOPTION_JOIN), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, player->GetSession()->GetTrinityString(WG_NPCQUEUE_TEXTOPTION_JOIN), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); player->SEND_GOSSIP_MENU(wintergrasp->GetDefenderTeam() ? WG_NPCQUEUE_TEXT_H_WAR : WG_NPCQUEUE_TEXT_A_WAR, creature->GetGUID()); } else @@ -301,7 +301,7 @@ class npc_wg_queue : public CreatureScript player->SendUpdateWorldState(4354, time(NULL) + timer); if (timer < 15 * MINUTE) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, sObjectMgr->GetTrinityStringForDBCLocale(WG_NPCQUEUE_TEXTOPTION_JOIN), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, player->GetSession()->GetTrinityString(WG_NPCQUEUE_TEXTOPTION_JOIN), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); player->SEND_GOSSIP_MENU(wintergrasp->GetDefenderTeam() ? WG_NPCQUEUE_TEXT_H_QUEUE : WG_NPCQUEUE_TEXT_A_QUEUE, creature->GetGUID()); } else diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 2e75b10c0e8..44f559bfa79 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -51,7 +51,7 @@ public: void Reset() override { - _rageclawGUID = 0; + _rageclawGUID.Clear(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); float x, y, z; @@ -104,7 +104,7 @@ public: } private: - uint64 _rageclawGUID; + ObjectGuid _rageclawGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -455,13 +455,12 @@ public: { npc_alchemist_finklesteinAI(Creature* creature) : ScriptedAI(creature) { - _playerGUID = 0; _getingredienttry = 0; } void Reset() override { - _playerGUID = 0; + _playerGUID.Clear(); _getingredienttry = 0; _events.ScheduleEvent(EVENT_TURN_TO_POT, urand(15000, 26000)); } @@ -556,7 +555,7 @@ public: private: EventMap _events; - uint64 _playerGUID; + ObjectGuid _playerGUID; uint8 _getingredienttry; }; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp index 4fb84fa0759..4431a924ac6 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp @@ -85,7 +85,7 @@ void OPvPCapturePointEP_EWT::ChangeState() // complete quest objective if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H) - SendObjectiveComplete(EP_EWT_CM, 0); + SendObjectiveComplete(EP_EWT_CM, ObjectGuid::Empty); } void OPvPCapturePointEP_EWT::FillInitialWorldStates(WorldPacket &data) @@ -195,7 +195,7 @@ void OPvPCapturePointEP_NPT::ChangeState() // complete quest objective if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H) - SendObjectiveComplete(EP_NPT_CM, 0); + SendObjectiveComplete(EP_NPT_CM, ObjectGuid::Empty); } void OPvPCapturePointEP_NPT::FillInitialWorldStates(WorldPacket &data) @@ -289,7 +289,7 @@ void OPvPCapturePointEP_CGT::ChangeState() // complete quest objective if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H) - SendObjectiveComplete(EP_CGT_CM, 0); + SendObjectiveComplete(EP_CGT_CM, ObjectGuid::Empty); } void OPvPCapturePointEP_CGT::FillInitialWorldStates(WorldPacket &data) @@ -390,7 +390,7 @@ void OPvPCapturePointEP_PWT::ChangeState() // complete quest objective if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H) - SendObjectiveComplete(EP_PWT_CM, 0); + SendObjectiveComplete(EP_PWT_CM, ObjectGuid::Empty); } void OPvPCapturePointEP_PWT::FillInitialWorldStates(WorldPacket &data) @@ -537,7 +537,7 @@ void OutdoorPvPEP::HandlePlayerLeaveZone(Player* player, uint32 zone) void OutdoorPvPEP::BuffTeams() { - for (PlayerSet::iterator itr = m_players[0].begin(); itr != m_players[0].end(); ++itr) + for (GuidSet::iterator itr = m_players[0].begin(); itr != m_players[0].end(); ++itr) { if (Player* player = ObjectAccessor::FindPlayer(*itr)) { @@ -547,7 +547,7 @@ void OutdoorPvPEP::BuffTeams() player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled-1], true); } } - for (PlayerSet::iterator itr = m_players[1].begin(); itr != m_players[1].end(); ++itr) + for (GuidSet::iterator itr = m_players[1].begin(); itr != m_players[1].end(); ++itr) { if (Player* player = ObjectAccessor::FindPlayer(*itr)) { diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp index b3492b8334b..252a2cc8e85 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp @@ -255,7 +255,7 @@ void OPvPCapturePointHP::ChangeState() // complete quest objective if (m_State == OBJECTIVESTATE_ALLIANCE || m_State == OBJECTIVESTATE_HORDE) - SendObjectiveComplete(HP_CREDITMARKER[m_TowerType], 0); + SendObjectiveComplete(HP_CREDITMARKER[m_TowerType], ObjectGuid::Empty); } void OPvPCapturePointHP::FillInitialWorldStates(WorldPacket &data) diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp index 1b4828dec51..b16ced348ec 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp @@ -32,7 +32,7 @@ void OutdoorPvPNA::HandleKillImpl(Player* player, Unit* killed) { if (killed->GetTypeId() == TYPEID_PLAYER && player->GetTeam() != killed->ToPlayer()->GetTeam()) { - player->KilledMonsterCredit(NA_CREDIT_MARKER, 0); // 0 guid, btw it isn't even used in killedmonster function :S + player->KilledMonsterCredit(NA_CREDIT_MARKER); // 0 guid, btw it isn't even used in killedmonster function :S if (player->GetTeam() == ALLIANCE) player->CastSpell(player, NA_KILL_TOKEN_ALLIANCE, true); else @@ -43,7 +43,7 @@ void OutdoorPvPNA::HandleKillImpl(Player* player, Unit* killed) uint32 OPvPCapturePointNA::GetAliveGuardsCount() { uint32 cnt = 0; - for (std::map<uint32, uint64>::iterator itr = m_Creatures.begin(); itr != m_Creatures.end(); ++itr) + for (std::map<uint32, ObjectGuid>::iterator itr = m_Creatures.begin(); itr != m_Creatures.end(); ++itr) { switch (itr->first) { @@ -372,7 +372,7 @@ bool OPvPCapturePointNA::HandleCustomSpell(Player* player, uint32 spellId, GameO return false; } -int32 OPvPCapturePointNA::HandleOpenGo(Player* player, uint64 guid) +int32 OPvPCapturePointNA::HandleOpenGo(Player* player, ObjectGuid guid) { int32 retval = OPvPCapturePoint::HandleOpenGo(player, guid); if (retval >= 0) diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h index aa52c8135e7..8d327da4b0f 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h @@ -269,7 +269,7 @@ class OPvPCapturePointNA : public OPvPCapturePoint bool HandleCustomSpell(Player* player, uint32 spellId, GameObject* go); - int32 HandleOpenGo(Player* player, uint64 guid); + int32 HandleOpenGo(Player* player, ObjectGuid guid) override; uint32 GetAliveGuardsCount(); uint32 GetControllingFaction() const; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp index 539f54ab421..cb4a7aebc3d 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp @@ -109,7 +109,7 @@ bool OutdoorPvPSI::HandleAreaTrigger(Player* player, uint32 trigger) // add 20 cenarion circle repu player->GetReputationMgr().ModifyReputation(sFactionStore.LookupEntry(609), 20); // complete quest - player->KilledMonsterCredit(SI_TURNIN_QUEST_CM_A, 0); + player->KilledMonsterCredit(SI_TURNIN_QUEST_CM_A); } return true; case SI_AREATRIGGER_H: @@ -135,7 +135,7 @@ bool OutdoorPvPSI::HandleAreaTrigger(Player* player, uint32 trigger) // add 20 cenarion circle repu player->GetReputationMgr().ModifyReputation(sFactionStore.LookupEntry(609), 20); // complete quest - player->KilledMonsterCredit(SI_TURNIN_QUEST_CM_H, 0); + player->KilledMonsterCredit(SI_TURNIN_QUEST_CM_H); } return true; } diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp index e089dfdb7d5..476abe012ce 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp @@ -281,7 +281,7 @@ void OPvPCapturePointTF::ChangeState() m_PvP->SendDefenseMessage(OutdoorPvPTFBuffZones[0], TEXT_SPIRIT_TOWER_TAKEN_ALLIANCE); - for (PlayerSet::iterator itr = m_activePlayers[0].begin(); itr != m_activePlayers[0].end(); ++itr) + for (GuidSet::iterator itr = m_activePlayers[0].begin(); itr != m_activePlayers[0].end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(*itr)) player->AreaExploredOrEventHappens(TF_ALLY_QUEST); break; @@ -296,7 +296,7 @@ void OPvPCapturePointTF::ChangeState() m_PvP->SendDefenseMessage(OutdoorPvPTFBuffZones[0], TEXT_SPIRIT_TOWER_TAKEN_HORDE); - for (PlayerSet::iterator itr = m_activePlayers[1].begin(); itr != m_activePlayers[1].end(); ++itr) + for (GuidSet::iterator itr = m_activePlayers[1].begin(); itr != m_activePlayers[1].end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(*itr)) player->AreaExploredOrEventHappens(TF_HORDE_QUEST); break; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp index d6ee91ff2a9..89012b56b82 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp @@ -181,7 +181,7 @@ bool OPvPCapturePointZM_GraveYard::Update(uint32 /*diff*/) return retval; } -int32 OPvPCapturePointZM_GraveYard::HandleOpenGo(Player* player, uint64 guid) +int32 OPvPCapturePointZM_GraveYard::HandleOpenGo(Player* player, ObjectGuid guid) { int32 retval = OPvPCapturePoint::HandleOpenGo(player, guid); if (retval >= 0) @@ -218,7 +218,7 @@ OPvPCapturePointZM_GraveYard::OPvPCapturePointZM_GraveYard(OutdoorPvP* pvp) { m_BothControllingFaction = 0; m_GraveYardState = ZM_GRAVEYARD_N; - m_FlagCarrierGUID = 0; + m_FlagCarrierGUID.Clear(); // add field scouts here AddCreature(ZM_ALLIANCE_FIELD_SCOUT, ZM_AllianceFieldScout.entry, ZM_AllianceFieldScout.map, ZM_AllianceFieldScout.x, ZM_AllianceFieldScout.y, ZM_AllianceFieldScout.z, ZM_AllianceFieldScout.o); AddCreature(ZM_HORDE_FIELD_SCOUT, ZM_HordeFieldScout.entry, ZM_HordeFieldScout.map, ZM_HordeFieldScout.x, ZM_HordeFieldScout.y, ZM_HordeFieldScout.z, ZM_HordeFieldScout.o); @@ -286,7 +286,7 @@ void OPvPCapturePointZM_GraveYard::SetBeaconState(uint32 controlling_faction) p->RemoveAurasDueToSpell(ZM_BATTLE_STANDARD_A); p->RemoveAurasDueToSpell(ZM_BATTLE_STANDARD_H); } - m_FlagCarrierGUID = 0; + m_FlagCarrierGUID.Clear(); } } break; @@ -297,8 +297,8 @@ void OPvPCapturePointZM_GraveYard::SetBeaconState(uint32 controlling_faction) bool OPvPCapturePointZM_GraveYard::CanTalkTo(Player* player, Creature* c, GossipMenuItems const& /*gso*/) { - uint64 guid = c->GetGUID(); - std::map<uint64, uint32>::iterator itr = m_CreatureTypes.find(guid); + ObjectGuid guid = c->GetGUID(); + std::map<ObjectGuid, uint32>::iterator itr = m_CreatureTypes.find(guid); if (itr != m_CreatureTypes.end()) { if (itr->second == ZM_ALLIANCE_FIELD_SCOUT && player->GetTeam() == ALLIANCE && m_BothControllingFaction == ALLIANCE && !m_FlagCarrierGUID && m_GraveYardState != ZM_GRAVEYARD_A) @@ -309,9 +309,9 @@ bool OPvPCapturePointZM_GraveYard::CanTalkTo(Player* player, Creature* c, Gossip return false; } -bool OPvPCapturePointZM_GraveYard::HandleGossipOption(Player* player, uint64 guid, uint32 /*gossipid*/) +bool OPvPCapturePointZM_GraveYard::HandleGossipOption(Player* player, ObjectGuid guid, uint32 /*gossipid*/) { - std::map<uint64, uint32>::iterator itr = m_CreatureTypes.find(guid); + std::map<ObjectGuid, uint32>::iterator itr = m_CreatureTypes.find(guid); if (itr != m_CreatureTypes.end()) { Creature* cr = HashMapHolder<Creature>::Find(guid); @@ -342,10 +342,10 @@ bool OPvPCapturePointZM_GraveYard::HandleDropFlag(Player* /*player*/, uint32 spe switch (spellId) { case ZM_BATTLE_STANDARD_A: - m_FlagCarrierGUID = 0; + m_FlagCarrierGUID.Clear(); return true; case ZM_BATTLE_STANDARD_H: - m_FlagCarrierGUID = 0; + m_FlagCarrierGUID.Clear(); return true; } return false; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h index eef1ff9cc3b..5910a88f476 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h @@ -192,11 +192,11 @@ class OPvPCapturePointZM_GraveYard : public OPvPCapturePoint void UpdateTowerState(); - int32 HandleOpenGo(Player* player, uint64 guid); + int32 HandleOpenGo(Player* player, ObjectGuid guid) override; void SetBeaconState(uint32 controlling_team); // not good atm - bool HandleGossipOption(Player* player, uint64 guid, uint32 gossipid); + bool HandleGossipOption(Player* player, ObjectGuid guid, uint32 gossipid); bool HandleDropFlag(Player* player, uint32 spellId); @@ -210,7 +210,7 @@ class OPvPCapturePointZM_GraveYard : public OPvPCapturePoint protected: uint32 m_BothControllingFaction; - uint64 m_FlagCarrierGUID; + ObjectGuid m_FlagCarrierGUID; }; class OutdoorPvPZM : public OutdoorPvP diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp index 7ba0a452941..99cda91b866 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp @@ -174,7 +174,7 @@ public: } uint32 soulmodel; - uint64 soulholder; + ObjectGuid soulholder; uint8 soulclass; uint32 Fear_timer; @@ -187,7 +187,7 @@ public: void Reset() override { soulmodel = 0; - soulholder = 0; + soulholder.Clear(); soulclass = 0; Fear_timer = 15000 + rand32() % 5000; @@ -318,13 +318,21 @@ public: struct npc_avatar_of_martyredAI : public ScriptedAI { - npc_avatar_of_martyredAI(Creature* creature) : ScriptedAI(creature) { } + npc_avatar_of_martyredAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Mortal_Strike_timer = 10000; + } uint32 Mortal_Strike_timer; void Reset() override { - Mortal_Strike_timer = 10000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp index 683b253d8a1..b354df9d63a 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp @@ -62,6 +62,16 @@ public: { boss_shirrak_the_dead_watcherAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + } + + void Initialize() + { + Inhibitmagic_Timer = 0; + Attractmagic_Timer = 28000; + Carnivorousbite_Timer = 10000; + FocusFire_Timer = 17000; + FocusedTargetGUID.Clear(); } uint32 Inhibitmagic_Timer; @@ -69,15 +79,11 @@ public: uint32 Carnivorousbite_Timer; uint32 FocusFire_Timer; - uint64 FocusedTargetGUID; + ObjectGuid FocusedTargetGUID; void Reset() override { - Inhibitmagic_Timer = 0; - Attractmagic_Timer = 28000; - Carnivorousbite_Timer = 10000; - FocusFire_Timer = 17000; - FocusedTargetGUID = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -174,6 +180,13 @@ public: { npc_focus_fireAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + } + + void Initialize() + { + FieryBlast_Timer = 3000 + (rand32() % 1000); + fiery1 = fiery2 = true; } uint32 FieryBlast_Timer; @@ -181,8 +194,7 @@ public: void Reset() override { - FieryBlast_Timer = 3000 + (rand32() % 1000); - fiery1 = fiery2 = true; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp index 67cc6b99e93..5f6fde8ad98 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp @@ -78,7 +78,22 @@ public: struct boss_nexusprince_shaffarAI : public ScriptedAI { - boss_nexusprince_shaffarAI(Creature* creature) : ScriptedAI(creature), summons(me) { HasTaunted = false; } + boss_nexusprince_shaffarAI(Creature* creature) : ScriptedAI(creature), summons(me) + { + Initialize(); + HasTaunted = false; + } + + void Initialize() + { + Blink_Timer = 1500; + Beacon_Timer = 10000; + FireBall_Timer = 8000; + Frostbolt_Timer = 4000; + FrostNova_Timer = 15000; + + CanBlink = false; + } uint32 Blink_Timer; uint32 Beacon_Timer; @@ -93,13 +108,7 @@ public: void Reset() override { - Blink_Timer = 1500; - Beacon_Timer = 10000; - FireBall_Timer = 8000; - Frostbolt_Timer = 4000; - FrostNova_Timer = 15000; - - CanBlink = false; + Initialize(); float dist = 8.0f; float posX, posY, posZ, angle; @@ -241,6 +250,14 @@ public: { npc_ethereal_beaconAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + } + + void Initialize() + { + Apprentice_Timer = DUNGEON_MODE(20000, 10000); + ArcaneBolt_Timer = 1000; + Check_Timer = 1000; } uint32 Apprentice_Timer; @@ -254,9 +271,7 @@ public: void Reset() override { - Apprentice_Timer = DUNGEON_MODE(20000, 10000); - ArcaneBolt_Timer = 1000; - Check_Timer = 1000; + Initialize(); } void EnterCombat(Unit* who) override @@ -331,7 +346,16 @@ public: struct npc_ethereal_apprenticeAI : public ScriptedAI { - npc_ethereal_apprenticeAI(Creature* creature) : ScriptedAI(creature) { } + npc_ethereal_apprenticeAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Cast_Timer = 3000; + isFireboltTurn = true; + } uint32 Cast_Timer; @@ -339,8 +363,7 @@ public: void Reset() override { - Cast_Timer = 3000; - isFireboltTurn = true; + Initialize(); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp index 1787933143c..e2d6bee85ca 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp @@ -67,14 +67,22 @@ class boss_anzu : public CreatureScript struct boss_anzuAI : public BossAI { - boss_anzuAI(Creature* creature) : BossAI(creature, DATA_ANZU) { } + boss_anzuAI(Creature* creature) : BossAI(creature, DATA_ANZU) + { + Initialize(); + } + + void Initialize() + { + _under33Percent = false; + _under66Percent = false; + } void Reset() override { //_Reset(); events.Reset(); - _under33Percent = false; - _under66Percent = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp index 098d35a292e..e6ffa3f8979 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp @@ -71,14 +71,22 @@ public: struct boss_darkweaver_sythAI : public BossAI { - boss_darkweaver_sythAI(Creature* creature) : BossAI(creature, DATA_DARKWEAVER_SYTH) { } + boss_darkweaver_sythAI(Creature* creature) : BossAI(creature, DATA_DARKWEAVER_SYTH) + { + Initialize(); + } + + void Initialize() + { + _summon90 = false; + _summon50 = false; + _summon10 = false; + } void Reset() override { + Initialize(); _Reset(); - summon90 = false; - summon50 = false; - summon10 = false; } void EnterCombat(Unit* /*who*/) override @@ -109,6 +117,29 @@ public: { if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) summoned->AI()->AttackStart(target); + + summons.Summon(summoned); + } + + void DamageTaken(Unit* /*attacker*/, uint32& damage) override + { + if (me->HealthBelowPctDamaged(90, damage) && !_summon90) + { + SythSummoning(); + _summon90 = true; + } + + if (me->HealthBelowPctDamaged(50, damage) && !_summon50) + { + SythSummoning(); + _summon50 = true; + } + + if (me->HealthBelowPctDamaged(10, damage) && !_summon10) + { + SythSummoning(); + _summon10 = true; + } } void SythSummoning() @@ -124,72 +155,44 @@ public: DoCast(me, SPELL_SUMMON_SYTH_SHADOW, true); //right } - void UpdateAI(uint32 diff) override + void ExecuteEvent(uint32 eventId) override { - if (!UpdateVictim()) - return; - - events.Update(diff); - - while (uint32 eventId = events.ExecuteEvent()) + switch (eventId) { - switch (eventId) - { - case EVENT_FLAME_SHOCK: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(target, SPELL_FLAME_SHOCK); - events.ScheduleEvent(EVENT_FLAME_SHOCK, urand(10000, 15000)); - break; - case EVENT_ARCANE_SHOCK: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(target, SPELL_ARCANE_SHOCK); - events.ScheduleEvent(EVENT_ARCANE_SHOCK, urand(10000, 15000)); - break; - case EVENT_FROST_SHOCK: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(target, SPELL_FROST_SHOCK); - events.ScheduleEvent(EVENT_FROST_SHOCK, urand(10000, 15000)); - break; - case EVENT_SHADOW_SHOCK: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(target, SPELL_SHADOW_SHOCK); - events.ScheduleEvent(EVENT_SHADOW_SHOCK, urand(10000, 15000)); - break; - case EVENT_CHAIN_LIGHTNING: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(target, SPELL_CHAIN_LIGHTNING); - events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 25000); - break; - default: - break; - } + case EVENT_FLAME_SHOCK: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + DoCast(target, SPELL_FLAME_SHOCK); + events.ScheduleEvent(EVENT_FLAME_SHOCK, urand(10000, 15000)); + break; + case EVENT_ARCANE_SHOCK: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + DoCast(target, SPELL_ARCANE_SHOCK); + events.ScheduleEvent(EVENT_ARCANE_SHOCK, urand(10000, 15000)); + break; + case EVENT_FROST_SHOCK: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + DoCast(target, SPELL_FROST_SHOCK); + events.ScheduleEvent(EVENT_FROST_SHOCK, urand(10000, 15000)); + break; + case EVENT_SHADOW_SHOCK: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + DoCast(target, SPELL_SHADOW_SHOCK); + events.ScheduleEvent(EVENT_SHADOW_SHOCK, urand(10000, 15000)); + break; + case EVENT_CHAIN_LIGHTNING: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + DoCast(target, SPELL_CHAIN_LIGHTNING); + events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 25000); + break; + default: + break; } - - if (HealthBelowPct(90) && !summon90) - { - SythSummoning(); - summon90 = true; - } - - if (HealthBelowPct(50) && !summon50) - { - SythSummoning(); - summon50 = true; - } - - if (HealthBelowPct(10) && !summon10) - { - SythSummoning(); - summon10 = true; - } - - DoMeleeAttackIfReady(); } private: - bool summon90; - bool summon50; - bool summon10; + bool _summon90; + bool _summon50; + bool _summon10; }; CreatureAI* GetAI(Creature* creature) const override @@ -208,19 +211,20 @@ public: { npc_syth_fireAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); } - uint32 flameshock_timer; - uint32 flamebuffet_timer; - - void Reset() override + void Initialize() { - me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true); flameshock_timer = 2500; flamebuffet_timer = 5000; } - void EnterCombat(Unit* /*who*/) override { } + void Reset() override + { + Initialize(); + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true); + } void UpdateAI(uint32 diff) override { @@ -245,6 +249,10 @@ public: DoMeleeAttackIfReady(); } + + private: + uint32 flameshock_timer; + uint32 flamebuffet_timer; }; CreatureAI* GetAI(Creature* creature) const override @@ -258,28 +266,24 @@ class npc_syth_arcane : public CreatureScript public: npc_syth_arcane() : CreatureScript("npc_syth_arcane") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_syth_arcaneAI(creature); - } - struct npc_syth_arcaneAI : public ScriptedAI { npc_syth_arcaneAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); } - uint32 arcaneshock_timer; - uint32 arcanebuffet_timer; - - void Reset() override + void Initialize() { - me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_ARCANE, true); arcaneshock_timer = 2500; arcanebuffet_timer = 5000; } - void EnterCombat(Unit* /*who*/) override { } + void Reset() override + { + Initialize(); + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_ARCANE, true); + } void UpdateAI(uint32 diff) override { @@ -304,7 +308,16 @@ public: DoMeleeAttackIfReady(); } + + private: + uint32 arcaneshock_timer; + uint32 arcanebuffet_timer; }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_syth_arcaneAI(creature); + } }; class npc_syth_frost : public CreatureScript @@ -312,28 +325,24 @@ class npc_syth_frost : public CreatureScript public: npc_syth_frost() : CreatureScript("npc_syth_frost") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_syth_frostAI(creature); - } - struct npc_syth_frostAI : public ScriptedAI { npc_syth_frostAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); } - uint32 frostshock_timer; - uint32 frostbuffet_timer; - - void Reset() override + void Initialize() { - me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); frostshock_timer = 2500; frostbuffet_timer = 5000; } - void EnterCombat(Unit* /*who*/) override { } + void Reset() override + { + Initialize(); + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); + } void UpdateAI(uint32 diff) override { @@ -358,8 +367,16 @@ public: DoMeleeAttackIfReady(); } + + private: + uint32 frostshock_timer; + uint32 frostbuffet_timer; }; + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_syth_frostAI(creature); + } }; class npc_syth_shadow : public CreatureScript @@ -367,28 +384,24 @@ class npc_syth_shadow : public CreatureScript public: npc_syth_shadow() : CreatureScript("npc_syth_shadow") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_syth_shadowAI(creature); - } - struct npc_syth_shadowAI : public ScriptedAI { npc_syth_shadowAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); } - uint32 shadowshock_timer; - uint32 shadowbuffet_timer; - - void Reset() override + void Initialize() { - me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_SHADOW, true); shadowshock_timer = 2500; shadowbuffet_timer = 5000; } - void EnterCombat(Unit* /*who*/) override { } + void Reset() override + { + Initialize(); + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_SHADOW, true); + } void UpdateAI(uint32 diff) override { @@ -413,8 +426,16 @@ public: DoMeleeAttackIfReady(); } + + private: + uint32 shadowshock_timer; + uint32 shadowbuffet_timer; }; + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_syth_shadowAI(creature); + } }; void AddSC_boss_darkweaver_syth() diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp index a48f5245273..6ff92bcdb0b 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp @@ -115,7 +115,7 @@ class boss_ambassador_hellmaw : public CreatureScript me->RemoveAurasDueToSpell(SPELL_BANISH); Talk(SAY_INTRO); - Start(true, false, 0, NULL, false, true); + Start(true, false, ObjectGuid::Empty, NULL, false, true); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp index 905fe67af97..109174f5807 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp @@ -86,13 +86,19 @@ class boss_grandmaster_vorpil : public CreatureScript { boss_grandmaster_vorpilAI(Creature* creature) : BossAI(creature, DATA_GRANDMASTER_VORPIL) { + Initialize(); _intro = false; } + void Initialize() + { + _helpYell = false; + } + void Reset() override { _Reset(); - _helpYell = false; + Initialize(); } void SummonPortals() @@ -223,22 +229,28 @@ class npc_voidtraveler : public CreatureScript { npc_voidtravelerAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); _instance = creature->GetInstanceScript(); } - void Reset() override + void Initialize() { _moveTimer = 0; _sacrificed = false; } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { } void UpdateAI(uint32 diff) override { if (_moveTimer <= diff) { - Creature* Vorpil = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_GRANDMASTER_VORPIL)); + Creature* Vorpil = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_GRANDMASTER_VORPIL)); if (!Vorpil) return; diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp index 9bd985130a9..6fea892abea 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp @@ -40,8 +40,6 @@ class instance_shadow_labyrinth : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - AmbassadorHellmawGUID = 0; - GrandmasterVorpilGUID = 0; FelOverseerCount = 0; } @@ -123,7 +121,7 @@ class instance_shadow_labyrinth : public InstanceMapScript return 0; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -132,12 +130,12 @@ class instance_shadow_labyrinth : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 AmbassadorHellmawGUID; - uint64 GrandmasterVorpilGUID; + ObjectGuid AmbassadorHellmawGUID; + ObjectGuid GrandmasterVorpilGUID; uint32 FelOverseerCount; }; diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.cpp b/src/server/scripts/Outland/BlackTemple/black_temple.cpp index 3a33561e998..71136f79919 100644 --- a/src/server/scripts/Outland/BlackTemple/black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/black_temple.cpp @@ -95,13 +95,19 @@ public: { npc_wrathbone_flayerAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); _instance = creature->GetInstanceScript(); } + void Initialize() + { + _enteredCombat = false; + } + void Reset() override { _events.ScheduleEvent(EVENT_GET_CHANNELERS, 3000); - _enteredCombat = false; + Initialize(); _bloodmageList.clear(); _deathshaperList.clear(); } @@ -156,11 +162,11 @@ public: } case EVENT_SET_CHANNELERS: { - for (uint64 guid : _bloodmageList) + for (ObjectGuid guid : _bloodmageList) if (Creature* bloodmage = ObjectAccessor::GetCreature(*me, guid)) bloodmage->CastSpell((Unit*)NULL, SPELL_SUMMON_CHANNEL); - for (uint64 guid : _deathshaperList) + for (ObjectGuid guid : _deathshaperList) if (Creature* deathshaper = ObjectAccessor::GetCreature(*me, guid)) deathshaper->CastSpell((Unit*)NULL, SPELL_SUMMON_CHANNEL); @@ -202,8 +208,8 @@ public: private: InstanceScript* _instance; EventMap _events; - std::list<uint64> _bloodmageList; - std::list<uint64> _deathshaperList; + GuidList _bloodmageList; + GuidList _deathshaperList; bool _enteredCombat; }; diff --git a/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp index f03caa37cb2..0b219eeff56 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp @@ -68,12 +68,32 @@ public: { boss_gurtogg_bloodboilAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + TargetGUID.Clear(); + TargetThreat = 0; + + BloodboilTimer = 10000; + BloodboilCount = 0; + AcidGeyserTimer = 1000; + AcidicWoundTimer = 6000; + ArcingSmashTimer = 19000; + EnrageTimer = 600000; + FelAcidTimer = 25000; + EjectTimer = 10000; + BewilderingStrikeTimer = 15000; + PhaseChangeTimer = 60000; + + Phase1 = true; + } + InstanceScript* instance; - uint64 TargetGUID; + ObjectGuid TargetGUID; float TargetThreat; @@ -94,22 +114,7 @@ public: { instance->SetBossState(DATA_GURTOGG_BLOODBOIL, NOT_STARTED); - TargetGUID = 0; - - TargetThreat = 0; - - BloodboilTimer = 10000; - BloodboilCount = 0; - AcidGeyserTimer = 1000; - AcidicWoundTimer = 6000; - ArcingSmashTimer = 19000; - EnrageTimer = 600000; - FelAcidTimer = 25000; - EjectTimer = 10000; - BewilderingStrikeTimer = 15000; - PhaseChangeTimer = 60000; - - Phase1 = true; + Initialize(); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, false); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, false); @@ -134,7 +139,7 @@ public: Talk(SAY_DEATH); } - void RevertThreatOnTarget(uint64 guid) + void RevertThreatOnTarget(ObjectGuid guid) { if (Unit* unit = ObjectAccessor::GetUnit(*me, guid)) { @@ -258,7 +263,7 @@ public: { if (TargetGUID) RevertThreatOnTarget(TargetGUID); - TargetGUID = 0; + TargetGUID.Clear(); Phase1 = true; BloodboilTimer = 10000; BloodboilCount = 0; diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 08fc588e923..aec4e982a49 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -31,8 +31,6 @@ EndScriptData */ #include "Player.h" #include "SpellInfo.h" -#define EMOTE_UNABLE_TO_SUMMON "%s is unable to summon Maiev Shadowsong and enter Phase 4. Resetting Encounter." - // Other defines #define CENTER_X 676.740f #define CENTER_Y 305.297f @@ -377,13 +375,21 @@ public: struct flame_of_azzinothAI : public ScriptedAI { - flame_of_azzinothAI(Creature* creature) : ScriptedAI(creature) { } + flame_of_azzinothAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { FlameBlastTimer = 15000; CheckTimer = 5000; - GlaiveGUID = 0; + GlaiveGUID.Clear(); + } + + void Reset() override + { + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -426,7 +432,7 @@ public: } } - void SetGlaiveGUID(uint64 guid) + void SetGlaiveGUID(ObjectGuid guid) { GlaiveGUID = guid; } @@ -457,7 +463,7 @@ public: private: uint32 FlameBlastTimer; uint32 CheckTimer; - uint64 GlaiveGUID; + ObjectGuid GlaiveGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -476,9 +482,28 @@ public: { boss_illidan_stormrageAI(Creature* creature) : ScriptedAI(creature), Summons(me) { + Initialize(); instance = creature->GetInstanceScript(); DoCast(me, SPELL_DUAL_WIELD, true); - AkamaGUID = 0; + } + + void Initialize() + { + MaievGUID.Clear(); + for (uint8 i = 0; i < 2; ++i) + { + FlameGUID[i].Clear(); + GlaiveGUID[i].Clear(); + } + + Phase = PHASE_ILLIDAN_NULL; + Event = EVENT_NULL; + Timer[EVENT_BERSERK] = 1500000; + + HoverPoint = 0; + TalkCount = 0; + FlightCount = 0; + TransformCount = 0; } void Reset() override; @@ -491,7 +516,7 @@ public: { for (uint8 i = 0; i < 2; ++i) if (summon->GetGUID() == FlameGUID[i]) - FlameGUID[i] = 0; + FlameGUID[i].Clear(); if (!FlameGUID[0] && !FlameGUID[1] && Phase != PHASE_ILLIDAN_NULL) { @@ -544,7 +569,7 @@ public: instance->SetBossState(DATA_ILLIDAN_STORMRAGE, DONE); for (uint8 i = DATA_GO_ILLIDAN_DOOR_R; i < DATA_GO_ILLIDAN_DOOR_L + 1; ++i) - instance->HandleGameObject(instance->GetData64(i), true); + instance->HandleGameObject(instance->GetGuidData(i), true); } void KilledUnit(Unit* victim) override @@ -575,7 +600,7 @@ public: } } - void DeleteFromThreatList(uint64 TargetGUID) + void DeleteFromThreatList(ObjectGuid TargetGUID) { ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) @@ -605,7 +630,7 @@ public: if (Conversation[count].emote) creature->HandleEmoteCommand(Conversation[count].emote); // Make the Creature do some animation! if (Conversation[count].text.size()) - creature->MonsterYell(Conversation[count].text.c_str(), LANG_UNIVERSAL, NULL); // Have the Creature yell out some text + creature->Yell(Conversation[count].text.c_str(), LANG_UNIVERSAL); // Have the Creature yell out some text if (Conversation[count].sound) DoPlaySoundToSet(creature, Conversation[count].sound); // Play some sound on the creature } @@ -761,7 +786,6 @@ public: if (!MaievGUID) // If Maiev cannot be summoned, reset the encounter and post some errors to the console. { EnterEvadeMode(); - me->MonsterTextEmote(EMOTE_UNABLE_TO_SUMMON, NULL); TC_LOG_ERROR("scripts", "SD2 ERROR: Unable to summon Maiev Shadowsong (entry: 23197). Check your database to see if you have the proper SQL for Maiev Shadowsong (entry: 23197)"); } } @@ -852,7 +876,7 @@ public: if (Creature* glaive = ObjectAccessor::GetCreature(*me, GlaiveGUID[i])) glaive->DespawnOrUnsummon(); - GlaiveGUID[i] = 0; + GlaiveGUID[i].Clear(); } } Timer[EVENT_FLIGHT_SEQUENCE] = 2000; @@ -1105,7 +1129,7 @@ public: } public: - uint64 AkamaGUID; + ObjectGuid AkamaGUID; uint32 Timer[EVENT_ENRAGE + 1]; PhaseIllidan Phase; private: @@ -1115,9 +1139,9 @@ public: uint32 TransformCount; uint32 FlightCount; uint32 HoverPoint; - uint64 MaievGUID; - uint64 FlameGUID[2]; - uint64 GlaiveGUID[2]; + ObjectGuid MaievGUID; + ObjectGuid FlameGUID[2]; + ObjectGuid GlaiveGUID[2]; SummonList Summons; }; @@ -1137,16 +1161,24 @@ public: struct boss_maievAI : public ScriptedAI { - boss_maievAI(Creature* creature) : ScriptedAI(creature) { }; + boss_maievAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { MaxTimer = 0; Phase = PHASE_NORMAL_MAIEV; - IllidanGUID = 0; + IllidanGUID.Clear(); Timer[EVENT_MAIEV_STEALTH] = 0; Timer[EVENT_MAIEV_TAUNT] = urand(22, 43) * 1000; Timer[EVENT_MAIEV_SHADOW_STRIKE] = 30000; + } + + void Reset() override + { + Initialize(); SetEquipmentSlots(false, EQUIP_ID_MAIN_HAND_MAIEV, EQUIP_UNEQUIP, EQUIP_NO_CHANGE); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, 45738); } @@ -1156,7 +1188,7 @@ public: void EnterEvadeMode() override { } - void GetIllidanGUID(uint64 guid) + void GetIllidanGUID(ObjectGuid guid) { IllidanGUID = guid; } @@ -1272,7 +1304,7 @@ public: && !Timer[EVENT_MAIEV_STEALTH]) return; - Event = EVENT_MAIEV_NULL; + EventMaiev Event = EVENT_MAIEV_NULL; for (uint8 i = 1; i <= MaxTimer; ++i) if (Timer[i]) { @@ -1336,9 +1368,8 @@ public: } private: - uint64 IllidanGUID; + ObjectGuid IllidanGUID; PhaseIllidan Phase; - EventMaiev Event; uint32 Timer[5]; uint32 MaxTimer; }; @@ -1358,19 +1389,35 @@ public: { npc_akama_illidanAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); JustCreated = true; } - void Reset() override + void Initialize() { + ChannelGUID.Clear(); + SpiritGUID[0].Clear(); + SpiritGUID[1].Clear(); + + Phase = PHASE_AKAMA_NULL; + Timer = 0; + + ChannelCount = 0; + TalkCount = 0; + Check_Timer = 5000; WalkCount = 0; + } + + void Reset() override + { + Initialize(); instance->SetBossState(DATA_ILLIDAN_STORMRAGE, NOT_STARTED); - IllidanGUID = instance->GetData64(DATA_ILLIDAN_STORMRAGE); - GateGUID = instance->GetData64(DATA_GO_ILLIDAN_GATE); - DoorGUID[0] = instance->GetData64(DATA_GO_ILLIDAN_DOOR_R); - DoorGUID[1] = instance->GetData64(DATA_GO_ILLIDAN_DOOR_L); + IllidanGUID = instance->GetGuidData(DATA_ILLIDAN_STORMRAGE); + GateGUID = instance->GetGuidData(DATA_GO_ILLIDAN_GATE); + DoorGUID[0] = instance->GetGuidData(DATA_GO_ILLIDAN_DOOR_R); + DoorGUID[1] = instance->GetGuidData(DATA_GO_ILLIDAN_DOOR_L); if (JustCreated) // close all doors at create { @@ -1388,17 +1435,6 @@ public: instance->HandleGameObject(DoorGUID[i], true); } - ChannelGUID = 0; - SpiritGUID[0] = 0; - SpiritGUID[1] = 0; - - Phase = PHASE_AKAMA_NULL; - Timer = 0; - - ChannelCount = 0; - TalkCount = 0; - Check_Timer = 5000; - KillAllElites(); me->SetUInt32Value(UNIT_NPC_FLAGS, 0); // Database sometimes has strange values.. @@ -1556,7 +1592,6 @@ public: break; } Phase = NextPhase; - Event = false; } void HandleTalkSequence() @@ -1678,7 +1713,7 @@ public: Check_Timer = 5000; } else Check_Timer -= diff; } - Event = false; + bool Event = false; if (Timer) { if (Timer <= diff) @@ -1759,13 +1794,12 @@ public: bool JustCreated; InstanceScript* instance; PhaseAkama Phase; - bool Event; uint32 Timer; - uint64 IllidanGUID; - uint64 ChannelGUID; - uint64 SpiritGUID[2]; - uint64 GateGUID; - uint64 DoorGUID[2]; + ObjectGuid IllidanGUID; + ObjectGuid ChannelGUID; + ObjectGuid SpiritGUID[2]; + ObjectGuid GateGUID; + ObjectGuid DoorGUID[2]; uint32 ChannelCount; uint32 WalkCount; uint32 TalkCount; @@ -1790,21 +1824,7 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::Reset() akama->AI()->EnterEvadeMode(); } - MaievGUID = 0; - for (uint8 i = 0; i < 2; ++i) - { - FlameGUID[i] = 0; - GlaiveGUID[i] = 0; - } - - Phase = PHASE_ILLIDAN_NULL; - Event = EVENT_NULL; - Timer[EVENT_BERSERK] = 1500000; - - HoverPoint = 0; - TalkCount = 0; - FlightCount = 0; - TransformCount = 0; + Initialize(); me->SetDisplayId(MODEL_ILLIDAN); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); @@ -1955,16 +1975,24 @@ public: struct cage_trap_triggerAI : public ScriptedAI { - cage_trap_triggerAI(Creature* creature) : ScriptedAI(creature) { } + cage_trap_triggerAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { - IllidanGUID = 0; + IllidanGUID.Clear(); Active = false; SummonedBeams = false; DespawnTimer = 0; + } + + void Reset() override + { + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } @@ -1988,7 +2016,7 @@ public: DespawnTimer = 5000; if (who->HasAura(SPELL_ENRAGE)) who->RemoveAurasDueToSpell(SPELL_ENRAGE); // Dispel his enrage - // if (GameObject* CageTrap = instance->instance->GetGameObject(instance->GetData64(CageTrapGUID))) + // if (GameObject* CageTrap = instance->instance->GetGameObject(instance->GetGuidData(CageTrapGUID))) // CageTrap->SetLootState(GO_JUST_DEACTIVATED); } @@ -2017,7 +2045,7 @@ public: public: bool Active; private: - uint64 IllidanGUID; + ObjectGuid IllidanGUID; uint32 DespawnTimer; bool SummonedBeams; }; @@ -2062,7 +2090,7 @@ public: void Reset() override { - TargetGUID = 0; + TargetGUID.Clear(); DoCast(me, SPELL_SHADOW_DEMON_PASSIVE, true); } @@ -2093,7 +2121,7 @@ public: } private: - uint64 TargetGUID; + ObjectGuid TargetGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -2134,14 +2162,20 @@ public: { npc_parasitic_shadowfiendAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + CheckTimer = 5000; + } + void Reset() override { - IllidanGUID = instance->GetData64(DATA_ILLIDAN_STORMRAGE); + IllidanGUID = instance->GetGuidData(DATA_ILLIDAN_STORMRAGE); - CheckTimer = 5000; + Initialize(); DoCast(me, SPELL_SHADOWFIEND_PASSIVE, true); } @@ -2198,7 +2232,7 @@ public: private: InstanceScript* instance; - uint64 IllidanGUID; + ObjectGuid IllidanGUID; uint32 CheckTimer; }; diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index 60162188f7e..39aac706acc 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -112,8 +112,8 @@ public: void Initialize() { - for (uint8 i = 0; i<3; ++i) - TargetGUID[i] = 0; + for (uint8 i = 0; i < 3; ++i) + TargetGUID[i].Clear(); BeamCount = 0; CurrentBeam = SINISTER_BEAM; // 0 - Sinister, 1 - Vile, 2 - Wicked, 3 - Sinful @@ -236,7 +236,7 @@ public: { if (Unit* unit = ObjectAccessor::GetUnit(*me, TargetGUID[i])) unit->CastSpell(unit, SPELL_ATTRACTION, true); - TargetGUID[i] = 0; + TargetGUID[i].Clear(); } } ++ExplosionCount; @@ -267,7 +267,7 @@ public: } private: - uint64 TargetGUID[3]; + ObjectGuid TargetGUID[3]; uint32 BeamCount; uint32 CurrentBeam; uint32 ExplosionCount; diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index f3c8af50328..dd0e271a02d 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -113,9 +113,12 @@ public: { npc_enslaved_soulAI(Creature* creature) : ScriptedAI(creature) { } - uint64 ReliquaryGUID; + ObjectGuid ReliquaryGUID; - void Reset() override { ReliquaryGUID = 0; } + void Reset() override + { + ReliquaryGUID.Clear(); + } void EnterCombat(Unit* /*who*/) override { @@ -141,13 +144,22 @@ public: { boss_reliquary_of_soulsAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); - EssenceGUID = 0; + Counter = 0; + Timer = 0; + SoulCount = 0; + SoulDeathCount = 0; + } + + void Initialize() + { + Phase = 0; } InstanceScript* instance; - uint64 EssenceGUID; + ObjectGuid EssenceGUID; uint32 Phase; uint32 Counter; @@ -165,10 +177,10 @@ public: if (Creature* essence = ObjectAccessor::GetCreature(*me, EssenceGUID)) essence->DespawnOrUnsummon(); - EssenceGUID = 0; + EssenceGUID.Clear(); } - Phase = 0; + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); @@ -334,17 +346,15 @@ public: if (Essence) { if (Phase == 1) - { Essence->AI()->Talk(SUFF_SAY_AFTER); - } else - { Essence->AI()->Talk(DESI_SAY_AFTER); - } + Essence->DespawnOrUnsummon(); } + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); - EssenceGUID = 0; + EssenceGUID.Clear(); SoulCount = 0; SoulDeathCount = 0; Timer = 3000; @@ -396,9 +406,19 @@ public: struct boss_essence_of_sufferingAI : public ScriptedAI { - boss_essence_of_sufferingAI(Creature* creature) : ScriptedAI(creature) { } + boss_essence_of_sufferingAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - uint64 StatAuraGUID; + void Initialize() + { + AggroYellTimer = 5000; + FixateTimer = 8000; + EnrageTimer = 30000; + SoulDrainTimer = 45000; + AuraTimer = 5000; + } uint32 AggroYellTimer; uint32 FixateTimer; @@ -408,13 +428,7 @@ public: void Reset() override { - StatAuraGUID = 0; - - AggroYellTimer = 5000; - FixateTimer = 8000; - EnrageTimer = 30000; - SoulDrainTimer = 45000; - AuraTimer = 5000; + Initialize(); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) override @@ -519,7 +533,17 @@ public: struct boss_essence_of_desireAI : public ScriptedAI { - boss_essence_of_desireAI(Creature* creature) : ScriptedAI(creature) { } + boss_essence_of_desireAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + RuneShieldTimer = 60000; + DeadenTimer = 30000; + SoulShockTimer = 5000; + } uint32 RuneShieldTimer; uint32 DeadenTimer; @@ -527,9 +551,7 @@ public: void Reset() override { - RuneShieldTimer = 60000; - DeadenTimer = 30000; - SoulShockTimer = 5000; + Initialize(); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CONFUSE, true); } @@ -622,29 +644,33 @@ public: struct boss_essence_of_angerAI : public ScriptedAI { - boss_essence_of_angerAI(Creature* creature) : ScriptedAI(creature) { } + boss_essence_of_angerAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + AggroTargetGUID.Clear(); - uint64 AggroTargetGUID; + CheckTankTimer = 5000; + SoulScreamTimer = 10000; + SpiteTimer = 30000; + + CheckedAggro = false; + } + + ObjectGuid AggroTargetGUID; uint32 CheckTankTimer; uint32 SoulScreamTimer; uint32 SpiteTimer; - std::list<uint64> SpiteTargetGUID; - bool CheckedAggro; void Reset() override { - AggroTargetGUID = 0; - - CheckTankTimer = 5000; - SoulScreamTimer = 10000; - SpiteTimer = 30000; - - SpiteTargetGUID.clear(); - - CheckedAggro = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp index f1e170c0705..ecc4457e454 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp @@ -165,21 +165,30 @@ public: struct boss_shade_of_akamaAI : public ScriptedAI { - boss_shade_of_akamaAI(Creature* creature) : ScriptedAI(creature), HasKilledAkamaAndReseting(false) + boss_shade_of_akamaAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } + void Initialize() + { + combatStarted = false; + akamaReached = false; + HasKilledAkama = false; + HasKilledAkamaAndReseting = false; + } + void Reset() override { if (!HasKilledAkamaAndReseting) { - for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) + for (GuidList::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) if (Creature* Channeler = ObjectAccessor::GetCreature(*me, *itr)) Channeler->DespawnOrUnsummon(); - for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) + for (GuidList::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) if (Creature* Spawner = ObjectAccessor::GetCreature(*me, *itr)) Spawner->AI()->SetData(SETDATA_DATA, SETDATA_DESPAWN_ALL_SPAWNS); @@ -190,10 +199,7 @@ public: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); me->SetWalk(true); - combatStarted = false; - akamaReached = false; - HasKilledAkama = false; - HasKilledAkamaAndReseting = false; + Initialize(); } void JustDied(Unit* /*killer*/) override @@ -207,7 +213,7 @@ public: { if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) { - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) if (Akama->IsAlive()) ScriptedAI::AttackStart(Akama); } @@ -231,7 +237,7 @@ public: events.ScheduleEvent(EVENT_START_ATTACK_AKAMA, 500); events.ScheduleEvent(EVENT_SET_CHANNELERS_SPAWNERS, 1000); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) me->AddThreat(Akama, 10000000.0f); } else if (spell->Id == SPELL_SHADE_SOUL_CHANNEL_2) @@ -267,7 +273,7 @@ public: switch (eventId) { case EVENT_RESET_ENCOUNTER: - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) if (!Akama->IsAlive()) Akama->Respawn(); break; @@ -307,17 +313,13 @@ public: { case EVENT_SET_CHANNELERS_SPAWNERS: { - for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) - { + for (GuidList::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) if (Creature* Channeler = ObjectAccessor::GetCreature(*me, *itr)) Channeler->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - } - for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) - { + for (GuidList::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) if (Creature* Spawner = ObjectAccessor::GetCreature(*me, *itr)) Spawner->AI()->SetData(SETDATA_DATA, SETDATA_START_SPAWNING); - } break; } case EVENT_START_ATTACK_AKAMA: @@ -347,14 +349,14 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); combatStarted = false; - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) Akama->DespawnOrUnsummon(); - for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) + for (GuidList::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) if (Creature* Channeler = ObjectAccessor::GetCreature(*me, *itr)) Channeler->DespawnOrUnsummon(); - for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) + for (GuidList::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) if (Creature* Spawner = ObjectAccessor::GetCreature(*me, *itr)) Spawner->AI()->SetData(SETDATA_DATA, SETDATA_DESPAWN_ALL_SPAWNS); @@ -365,7 +367,7 @@ public: if (!akamaReached) { - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) { if (me->IsWithinDist(Akama, 2.0f, false)) { @@ -379,7 +381,7 @@ public: events.CancelEvent(EVENT_START_ATTACK_AKAMA); events.ScheduleEvent(EVENT_ADD_THREAT, 100); - for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) + for (GuidList::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) if (Creature* Spawner = ObjectAccessor::GetCreature(*me, *itr)) Spawner->AI()->SetData(SETDATA_DATA, SETDATA_STOP_SPAWNING); } @@ -395,8 +397,8 @@ public: private: InstanceScript* instance; EventMap events; - std::list<uint64> Channelers; - std::list<uint64> Spawners; + GuidList Channelers; + GuidList Spawners; bool akamaReached; bool combatStarted; bool HasKilledAkamaAndReseting; @@ -421,23 +423,29 @@ public: { npc_akamaAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + StartChannel = false; + StartCombat = false; + HasYelledOnce = false; + ShadeHasDied = false; + } + void Reset() override { me->setFaction(FACTION_FRIENDLY); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); DoCast(me, SPELL_STEALTH); - StartChannel = false; - StartCombat = false; - HasYelledOnce = false; - ShadeHasDied = false; + Initialize(); } void JustDied(Unit* /*killer*/) override { - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) if (Shade->IsAlive()) ENSURE_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->HasKilledAkama = true; me->GetMotionMaster()->Clear(true); @@ -451,7 +459,7 @@ public: me->ClearUnitState(UNIT_STATE_ROOT); me->RemoveAura(SPELL_AKAMA_SOUL_CHANNEL); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) Shade->RemoveAura(SPELL_AKAMA_SOUL_CHANNEL); StartCombat = true; } @@ -577,7 +585,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED); } @@ -593,7 +601,7 @@ public: switch (eventId) { case EVENT_CHANNEL: - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) { if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) DoCast(me, SPELL_SHADE_SOUL_CHANNEL); @@ -635,15 +643,21 @@ public: { npc_creature_generator_akamaAI(Creature* creature) : ScriptedAI(creature), Summons(me) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + doSpawning = false; + leftSide = false; + } + void Reset() override { Summons.DespawnAll(); - doSpawning = false; - leftSide = false; + Initialize(); if (me->GetPositionY() < 400.0f) leftSide = true; @@ -743,34 +757,39 @@ public: { npc_ashtongue_sorcererAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); + } + + void Initialize() + { startedBanishing = false; + switchToCombat = false; } void Reset() override { if (!startedBanishing) { - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) { if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) me->GetMotionMaster()->MovePoint(0, Shade->GetPositionX(), Shade->GetPositionY(), Shade->GetPositionZ(), false); else { - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } } } - summonerGuid = 0; - startedBanishing = false; - switchToCombat = false; + summonerGuid.Clear(); + Initialize(); } void JustDied(Unit* /*killer*/) override { - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED); me->DespawnOrUnsummon(5000); } @@ -799,7 +818,7 @@ public: switch (eventId) { case EVENT_SORCERER_CHANNEL: - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) { if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) { @@ -812,7 +831,7 @@ public: me->InterruptSpell(CURRENT_CHANNELED_SPELL); Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED); switchToCombat = true; - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } } @@ -824,7 +843,7 @@ public: if (!startedBanishing) { - Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA)); + Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA)); if (me->IsWithinDist(Shade, 20.0f, false)) { me->StopMoving(); @@ -841,7 +860,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; bool startedBanishing; bool switchToCombat; }; @@ -870,9 +889,9 @@ public: void Reset() override { - summonerGuid = 0; + summonerGuid.Clear(); - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } @@ -933,7 +952,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; }; CreatureAI* GetAI(Creature* creature) const override @@ -960,9 +979,9 @@ public: void Reset() override { - summonerGuid = 0; + summonerGuid.Clear(); - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } @@ -1013,7 +1032,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; }; CreatureAI* GetAI(Creature* creature) const override @@ -1040,9 +1059,9 @@ public: void Reset() override { - summonerGuid = 0; + summonerGuid.Clear(); - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } @@ -1093,7 +1112,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; }; CreatureAI* GetAI(Creature* creature) const override @@ -1115,16 +1134,22 @@ public: { npc_ashtongue_spiritbinderAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } - void Reset() override + void Initialize() { spiritMend = false; - chainHeal = false; - summonerGuid = 0; + chainHeal = false; + summonerGuid.Clear(); + } + + void Reset() override + { + Initialize(); - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } @@ -1188,7 +1213,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; bool spiritMend; bool chainHeal; }; diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index b9b654f8b95..93061a3a57f 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -223,16 +223,22 @@ public: { npc_volcanoAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); SetCombatMovement(false); } + void Initialize() + { + wait = 3000; + } + void Reset() override { me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); //DoCast(me, SPELL_VOLCANIC_ERUPTION); me->SetReactState(REACT_PASSIVE); - wait = 3000; + Initialize(); } uint32 wait; diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 0bbf2cb2a96..aa0f3daeef0 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -63,17 +63,25 @@ public: struct npc_doom_blossomAI : public ScriptedAI { - npc_doom_blossomAI(Creature* creature) : ScriptedAI(creature) { } + npc_doom_blossomAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + CheckTeronTimer = 5000; + ShadowBoltTimer = 12000; + TeronGUID.Clear(); + } uint32 CheckTeronTimer; uint32 ShadowBoltTimer; - uint64 TeronGUID; + ObjectGuid TeronGUID; void Reset() override { - CheckTeronTimer = 5000; - ShadowBoltTimer = 12000; - TeronGUID = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -113,7 +121,7 @@ public: return; } - void SetTeronGUID(uint64 guid) + void SetTeronGUID(ObjectGuid guid) { TeronGUID = guid; } @@ -132,21 +140,29 @@ public: struct npc_shadowy_constructAI : public ScriptedAI { - npc_shadowy_constructAI(Creature* creature) : ScriptedAI(creature) { } + npc_shadowy_constructAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - uint64 GhostGUID; - uint64 TeronGUID; + void Initialize() + { + GhostGUID.Clear(); + TeronGUID.Clear(); + + CheckPlayerTimer = 2000; + CheckTeronTimer = 5000; + } + + ObjectGuid GhostGUID; + ObjectGuid TeronGUID; uint32 CheckPlayerTimer; uint32 CheckTeronTimer; void Reset() override { - GhostGUID = 0; - TeronGUID = 0; - - CheckPlayerTimer = 2000; - CheckTeronTimer = 5000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -224,9 +240,25 @@ public: { boss_teron_gorefiendAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + IncinerateTimer = urand(20000, 31000); + SummonDoomBlossomTimer = 12000; + EnrageTimer = 600000; + CrushingShadowsTimer = 22000; + SummonShadowsTimer = 60000; + RandomYellTimer = 50000; + + AggroTimer = 20000; + AggroTargetGUID.Clear(); + Intro = false; + Done = false; + } + InstanceScript* instance; uint32 IncinerateTimer; @@ -238,8 +270,8 @@ public: uint32 RandomYellTimer; uint32 AggroTimer; - uint64 AggroTargetGUID; - uint64 GhostGUID; // Player that gets killed by Shadow of Death and gets turned into a ghost + ObjectGuid AggroTargetGUID; + ObjectGuid GhostGUID; // Player that gets killed by Shadow of Death and gets turned into a ghost bool Intro; bool Done; @@ -248,21 +280,11 @@ public: { instance->SetBossState(DATA_TERON_GOREFIEND, NOT_STARTED); - IncinerateTimer = urand(20000, 31000); - SummonDoomBlossomTimer = 12000; - EnrageTimer = 600000; - CrushingShadowsTimer = 22000; - SummonShadowsTimer = 60000; - RandomYellTimer = 50000; + Initialize(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); // Start off unattackable so that the intro is done properly me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - - AggroTimer = 20000; - AggroTargetGUID = 0; - Intro = false; - Done = false; } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index c998bfed2dc..0f80e541261 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -1,145 +1,144 @@ -/* - * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "black_temple.h" -#include "Player.h" -#include "SpellInfo.h" - -enum Texts -{ - SAY_AGGRO = 0, - SAY_NEEDLE = 1, - SAY_SLAY = 2, - SAY_SPECIAL = 3, - SAY_ENRAGE = 4, - SAY_DEATH = 5 -}; - -enum Spells -{ - SPELL_NEEDLE_SPINE = 39992, - SPELL_TIDAL_BURST = 39878, - SPELL_TIDAL_SHIELD = 39872, - SPELL_IMPALING_SPINE = 39837, - SPELL_CREATE_NAJENTUS_SPINE = 39956, - SPELL_HURL_SPINE = 39948, - SPELL_BERSERK = 26662 - -}; - -enum Events -{ - EVENT_BERSERK = 1, - EVENT_YELL = 2, - EVENT_NEEDLE = 3, - EVENT_SPINE = 4, - EVENT_SHIELD = 5 -}; - -enum EventGroups -{ - GCD_CAST = 1, - GCD_YELL = 2 -}; - -class boss_najentus : public CreatureScript -{ -public: - boss_najentus() : CreatureScript("boss_najentus") { } - - struct boss_najentusAI : public BossAI - { - boss_najentusAI(Creature* creature) : BossAI(creature, DATA_HIGH_WARLORD_NAJENTUS) - { - SpineTargetGUID = 0; - } - - void Reset() override - { - _Reset(); - SpineTargetGUID = 0; - } - - void KilledUnit(Unit* /*victim*/) override - { - Talk(SAY_SLAY); - events.DelayEvents(5000, GCD_YELL); - } - - void JustDied(Unit* /*killer*/) override - { - _JustDied(); - Talk(SAY_DEATH); - } - - void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override - { - if (spell->Id == SPELL_HURL_SPINE && me->HasAura(SPELL_TIDAL_SHIELD)) - { - me->RemoveAurasDueToSpell(SPELL_TIDAL_SHIELD); - DoCast(me, SPELL_TIDAL_BURST, true); - ResetTimer(); - } - } - - void EnterCombat(Unit* /*who*/) override - { - _EnterCombat(); - Talk(SAY_AGGRO); - events.ScheduleEvent(EVENT_BERSERK, 480000, GCD_CAST); - events.ScheduleEvent(EVENT_YELL, 45000 + (rand32() % 76) * 1000, GCD_YELL); - ResetTimer(); - } - - bool RemoveImpalingSpine() - { - if (!SpineTargetGUID) - return false; - - Unit* target = ObjectAccessor::GetUnit(*me, SpineTargetGUID); - if (target && target->HasAura(SPELL_IMPALING_SPINE)) - target->RemoveAurasDueToSpell(SPELL_IMPALING_SPINE); - SpineTargetGUID=0; - return true; - } - - void ResetTimer(uint32 inc = 0) - { - events.RescheduleEvent(EVENT_NEEDLE, 10000 + inc, GCD_CAST); - events.RescheduleEvent(EVENT_SPINE, 20000 + inc, GCD_CAST); - events.RescheduleEvent(EVENT_SHIELD, 60000 + inc); - } - - void ExecuteEvent(uint32 eventId) override - { - switch (eventId) - { - case EVENT_SHIELD: - DoCast(me, SPELL_TIDAL_SHIELD, true); - ResetTimer(45000); - break; - case EVENT_BERSERK: - Talk(SAY_ENRAGE); - DoCast(me, SPELL_BERSERK, true); - events.DelayEvents(15000, GCD_YELL); - break; - case EVENT_SPINE: +/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "black_temple.h"
+#include "Player.h"
+#include "SpellInfo.h"
+
+enum Texts
+{
+ SAY_AGGRO = 0,
+ SAY_NEEDLE = 1,
+ SAY_SLAY = 2,
+ SAY_SPECIAL = 3,
+ SAY_ENRAGE = 4,
+ SAY_DEATH = 5
+};
+
+enum Spells
+{
+ SPELL_NEEDLE_SPINE = 39992,
+ SPELL_TIDAL_BURST = 39878,
+ SPELL_TIDAL_SHIELD = 39872,
+ SPELL_IMPALING_SPINE = 39837,
+ SPELL_CREATE_NAJENTUS_SPINE = 39956,
+ SPELL_HURL_SPINE = 39948,
+ SPELL_BERSERK = 26662
+
+};
+
+enum Events
+{
+ EVENT_BERSERK = 1,
+ EVENT_YELL = 2,
+ EVENT_NEEDLE = 3,
+ EVENT_SPINE = 4,
+ EVENT_SHIELD = 5
+};
+
+enum EventGroups
+{
+ GCD_CAST = 1,
+ GCD_YELL = 2
+};
+
+class boss_najentus : public CreatureScript
+{
+public:
+ boss_najentus() : CreatureScript("boss_najentus") { }
+
+ struct boss_najentusAI : public BossAI
+ {
+ boss_najentusAI(Creature* creature) : BossAI(creature, DATA_HIGH_WARLORD_NAJENTUS)
+ {
+ }
+
+ void Reset() override
+ {
+ _Reset();
+ SpineTargetGUID.Clear();
+ }
+
+ void KilledUnit(Unit* /*victim*/) override
+ {
+ Talk(SAY_SLAY);
+ events.DelayEvents(5000, GCD_YELL);
+ }
+
+ void JustDied(Unit* /*killer*/) override
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+ }
+
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override
+ {
+ if (spell->Id == SPELL_HURL_SPINE && me->HasAura(SPELL_TIDAL_SHIELD))
+ {
+ me->RemoveAurasDueToSpell(SPELL_TIDAL_SHIELD);
+ DoCast(me, SPELL_TIDAL_BURST, true);
+ ResetTimer();
+ }
+ }
+
+ void EnterCombat(Unit* /*who*/) override
+ {
+ _EnterCombat();
+ Talk(SAY_AGGRO);
+ events.ScheduleEvent(EVENT_BERSERK, 480000, GCD_CAST);
+ events.ScheduleEvent(EVENT_YELL, 45000 + (rand32() % 76) * 1000, GCD_YELL);
+ ResetTimer();
+ }
+
+ bool RemoveImpalingSpine()
+ {
+ if (!SpineTargetGUID)
+ return false;
+
+ Unit* target = ObjectAccessor::GetUnit(*me, SpineTargetGUID);
+ if (target && target->HasAura(SPELL_IMPALING_SPINE))
+ target->RemoveAurasDueToSpell(SPELL_IMPALING_SPINE);
+ SpineTargetGUID.Clear();
+ return true;
+ }
+
+ void ResetTimer(uint32 inc = 0)
+ {
+ events.RescheduleEvent(EVENT_NEEDLE, 10000 + inc, GCD_CAST);
+ events.RescheduleEvent(EVENT_SPINE, 20000 + inc, GCD_CAST);
+ events.RescheduleEvent(EVENT_SHIELD, 60000 + inc);
+ }
+
+ void ExecuteEvent(uint32 eventId) override
+ {
+ switch (eventId)
+ {
+ case EVENT_SHIELD:
+ DoCast(me, SPELL_TIDAL_SHIELD, true);
+ ResetTimer(45000);
+ break;
+ case EVENT_BERSERK:
+ Talk(SAY_ENRAGE);
+ DoCast(me, SPELL_BERSERK, true);
+ events.DelayEvents(15000, GCD_YELL);
+ break;
+ case EVENT_SPINE:
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
@@ -158,59 +157,59 @@ public: }
events.ScheduleEvent(EVENT_SPINE, 21000, GCD_CAST);
return;
- } - case EVENT_NEEDLE: - { - //DoCast(me, SPELL_NEEDLE_SPINE, true); - std::list<Unit*> targets; - SelectTargetList(targets, 3, SELECT_TARGET_RANDOM, 80, true); - for (std::list<Unit*>::const_iterator i = targets.begin(); i != targets.end(); ++i) - DoCast(*i, 39835, true); - events.ScheduleEvent(EVENT_NEEDLE, urand(15000, 25000), GCD_CAST); - events.DelayEvents(1500, GCD_CAST); - return; - } - case EVENT_YELL: - Talk(SAY_SPECIAL); - events.ScheduleEvent(EVENT_YELL, urand(25000, 100000), GCD_YELL); - events.DelayEvents(15000, GCD_YELL); - break; - default: - break; - } - } - - private: - uint64 SpineTargetGUID; - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetBlackTempleAI<boss_najentusAI>(creature); - } -}; - -class go_najentus_spine : public GameObjectScript -{ -public: - go_najentus_spine() : GameObjectScript("go_najentus_spine") { } - - bool OnGossipHello(Player* player, GameObject* go) override - { - if (InstanceScript* instance = go->GetInstanceScript()) - if (Creature* Najentus = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_HIGH_WARLORD_NAJENTUS))) - if (ENSURE_AI(boss_najentus::boss_najentusAI, Najentus->AI())->RemoveImpalingSpine()) - { - player->CastSpell(player, SPELL_CREATE_NAJENTUS_SPINE, true); - go->Delete(); - } - return true; - } - -}; - -void AddSC_boss_najentus() -{ - new boss_najentus(); - new go_najentus_spine(); -} + }
+ case EVENT_NEEDLE:
+ {
+ //DoCast(me, SPELL_NEEDLE_SPINE, true);
+ std::list<Unit*> targets;
+ SelectTargetList(targets, 3, SELECT_TARGET_RANDOM, 80, true);
+ for (std::list<Unit*>::const_iterator i = targets.begin(); i != targets.end(); ++i)
+ DoCast(*i, 39835, true);
+ events.ScheduleEvent(EVENT_NEEDLE, urand(15000, 25000), GCD_CAST);
+ events.DelayEvents(1500, GCD_CAST);
+ return;
+ }
+ case EVENT_YELL:
+ Talk(SAY_SPECIAL);
+ events.ScheduleEvent(EVENT_YELL, urand(25000, 100000), GCD_YELL);
+ events.DelayEvents(15000, GCD_YELL);
+ break;
+ default:
+ break;
+ }
+ }
+
+ private:
+ ObjectGuid SpineTargetGUID;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const override
+ {
+ return GetBlackTempleAI<boss_najentusAI>(creature);
+ }
+};
+
+class go_najentus_spine : public GameObjectScript
+{
+public:
+ go_najentus_spine() : GameObjectScript("go_najentus_spine") { }
+
+ bool OnGossipHello(Player* player, GameObject* go) override
+ {
+ if (InstanceScript* instance = go->GetInstanceScript())
+ if (Creature* Najentus = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_HIGH_WARLORD_NAJENTUS)))
+ if (ENSURE_AI(boss_najentus::boss_najentusAI, Najentus->AI())->RemoveImpalingSpine())
+ {
+ player->CastSpell(player, SPELL_CREATE_NAJENTUS_SPINE, true);
+ go->Delete();
+ }
+ return true;
+ }
+
+};
+
+void AddSC_boss_najentus()
+{
+ new boss_najentus();
+ new go_najentus_spine();
+}
diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index 2c6bac4c9d9..3c4b37165de 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -129,11 +129,20 @@ public: { npc_blood_elf_council_voice_triggerAI(Creature* creature) : ScriptedAI(creature) { - for (uint8 i = 0; i < 4; ++i) - Council[i] = 0; + Initialize(); + } + + void Initialize() + { + EnrageTimer = 900000; // 15 minutes + AggroYellTimer = 500; + + YellCounter = 0; + + EventStarted = false; } - uint64 Council[4]; + ObjectGuid Council[4]; uint32 EnrageTimer; uint32 AggroYellTimer; @@ -144,12 +153,7 @@ public: void Reset() override { - EnrageTimer = 900000; // 15 minutes - AggroYellTimer = 500; - - YellCounter = 0; - - EventStarted = false; + Initialize(); } // finds and stores the GUIDs for each Council member using instance data system. @@ -157,10 +161,10 @@ public: { if (InstanceScript* instance = me->GetInstanceScript()) { - Council[0] = instance->GetData64(DATA_GATHIOS_THE_SHATTERER); - Council[1] = instance->GetData64(DATA_VERAS_DARKSHADOW); - Council[2] = instance->GetData64(DATA_LADY_MALANDE); - Council[3] = instance->GetData64(DATA_HIGH_NETHERMANCER_ZEREVOR); + Council[0] = instance->GetGuidData(DATA_GATHIOS_THE_SHATTERER); + Council[1] = instance->GetGuidData(DATA_VERAS_DARKSHADOW); + Council[2] = instance->GetGuidData(DATA_LADY_MALANDE); + Council[3] = instance->GetGuidData(DATA_HIGH_NETHERMANCER_ZEREVOR); } else TC_LOG_ERROR("scripts", ERROR_INST_DATA); } @@ -225,14 +229,22 @@ public: { npc_illidari_councilAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); - for (uint8 i = 0; i < 4; ++i) - Council[i] = 0; + } + + void Initialize() + { + CheckTimer = 2000; + EndEventTimer = 0; + + DeathCount = 0; + EventBegun = false; } InstanceScript* instance; - uint64 Council[4]; + ObjectGuid Council[4]; uint32 CheckTimer; uint32 EndEventTimer; @@ -243,10 +255,7 @@ public: void Reset() override { - CheckTimer = 2000; - EndEventTimer = 0; - - DeathCount = 0; + Initialize(); Creature* pMember = NULL; for (uint8 i = 0; i < 4; ++i) @@ -264,11 +273,9 @@ public: } instance->SetBossState(DATA_ILLIDARI_COUNCIL, NOT_STARTED); - if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE))) + if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_ELF_COUNCIL_VOICE))) VoiceTrigger->AI()->EnterEvadeMode(); - EventBegun = false; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetDisplayId(11686); @@ -283,13 +290,13 @@ public: { if (target && target->IsAlive()) { - Council[0] = instance->GetData64(DATA_GATHIOS_THE_SHATTERER); - Council[1] = instance->GetData64(DATA_HIGH_NETHERMANCER_ZEREVOR); - Council[2] = instance->GetData64(DATA_LADY_MALANDE); - Council[3] = instance->GetData64(DATA_VERAS_DARKSHADOW); + Council[0] = instance->GetGuidData(DATA_GATHIOS_THE_SHATTERER); + Council[1] = instance->GetGuidData(DATA_HIGH_NETHERMANCER_ZEREVOR); + Council[2] = instance->GetGuidData(DATA_LADY_MALANDE); + Council[3] = instance->GetGuidData(DATA_VERAS_DARKSHADOW); // Start the event for the Voice Trigger - if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE))) + if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_ELF_COUNCIL_VOICE))) { ENSURE_AI(npc_blood_elf_council_voice_trigger::npc_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->LoadCouncilGUIDs(); ENSURE_AI(npc_blood_elf_council_voice_trigger::npc_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->EventStarted = true; @@ -322,7 +329,7 @@ public: { if (DeathCount > 3) { - if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE))) + if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_ELF_COUNCIL_VOICE))) VoiceTrigger->DealDamage(VoiceTrigger, VoiceTrigger->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); instance->SetBossState(DATA_ILLIDARI_COUNCIL, DONE); //me->SummonCreature(AKAMAID, 746.466980f, 304.394989f, 311.90208f, 6.272870f, TEMPSUMMON_DEAD_DESPAWN, 0); @@ -379,12 +386,10 @@ struct boss_illidari_councilAI : public ScriptedAI boss_illidari_councilAI(Creature* creature) : ScriptedAI(creature) { instance = creature->GetInstanceScript(); - for (uint8 i = 0; i < 4; ++i) - Council[i] = 0; LoadedGUIDs = false; } - uint64 Council[4]; + ObjectGuid Council[4]; InstanceScript* instance; @@ -392,7 +397,7 @@ struct boss_illidari_councilAI : public ScriptedAI void EnterCombat(Unit* who) override { - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ILLIDARI_COUNCIL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ILLIDARI_COUNCIL))) ENSURE_AI(npc_illidari_council::npc_illidari_councilAI, controller->AI())->StartEvent(who); DoZoneInCombat(); // Load GUIDs on first aggro because the Creature guids are only set as the creatures are created in world- @@ -436,10 +441,10 @@ struct boss_illidari_councilAI : public ScriptedAI void LoadGUIDs() { - Council[0] = instance->GetData64(DATA_LADY_MALANDE); - Council[1] = instance->GetData64(DATA_HIGH_NETHERMANCER_ZEREVOR); - Council[2] = instance->GetData64(DATA_GATHIOS_THE_SHATTERER); - Council[3] = instance->GetData64(DATA_VERAS_DARKSHADOW); + Council[0] = instance->GetGuidData(DATA_LADY_MALANDE); + Council[1] = instance->GetGuidData(DATA_HIGH_NETHERMANCER_ZEREVOR); + Council[2] = instance->GetGuidData(DATA_GATHIOS_THE_SHATTERER); + Council[3] = instance->GetGuidData(DATA_VERAS_DARKSHADOW); LoadedGUIDs = true; } @@ -457,7 +462,19 @@ public: struct boss_gathios_the_shattererAI : public boss_illidari_councilAI { - boss_gathios_the_shattererAI(Creature* creature) : boss_illidari_councilAI(creature) { } + boss_gathios_the_shattererAI(Creature* creature) : boss_illidari_councilAI(creature) + { + Initialize(); + } + + void Initialize() + { + ConsecrationTimer = 40000; + HammerOfJusticeTimer = 10000; + SealTimer = 40000; + AuraTimer = 90000; + BlessingTimer = 60000; + } uint32 ConsecrationTimer; uint32 HammerOfJusticeTimer; @@ -467,11 +484,7 @@ public: void Reset() override { - ConsecrationTimer = 40000; - HammerOfJusticeTimer = 10000; - SealTimer = 40000; - AuraTimer = 90000; - BlessingTimer = 60000; + Initialize(); } void KilledUnit(Unit* /*victim*/) override @@ -589,7 +602,20 @@ public: struct boss_high_nethermancer_zerevorAI : public boss_illidari_councilAI { - boss_high_nethermancer_zerevorAI(Creature* creature) : boss_illidari_councilAI(creature) { } + boss_high_nethermancer_zerevorAI(Creature* creature) : boss_illidari_councilAI(creature) + { + Initialize(); + } + + void Initialize() + { + BlizzardTimer = urand(30, 91) * 1000; + FlamestrikeTimer = urand(30, 91) * 1000; + ArcaneBoltTimer = 10000; + DampenMagicTimer = 2000; + ArcaneExplosionTimer = 14000; + Cooldown = 0; + } uint32 BlizzardTimer; uint32 FlamestrikeTimer; @@ -600,12 +626,7 @@ public: void Reset() override { - BlizzardTimer = urand(30, 91) * 1000; - FlamestrikeTimer = urand(30, 91) * 1000; - ArcaneBoltTimer = 10000; - DampenMagicTimer = 2000; - ArcaneExplosionTimer = 14000; - Cooldown = 0; + Initialize(); } void KilledUnit(Unit* /*victim*/) override @@ -693,7 +714,18 @@ public: struct boss_lady_malandeAI : public boss_illidari_councilAI { - boss_lady_malandeAI(Creature* creature) : boss_illidari_councilAI(creature) { } + boss_lady_malandeAI(Creature* creature) : boss_illidari_councilAI(creature) + { + Initialize(); + } + + void Initialize() + { + EmpoweredSmiteTimer = 38000; + CircleOfHealingTimer = 20000; + DivineWrathTimer = 40000; + ReflectiveShieldTimer = 0; + } uint32 EmpoweredSmiteTimer; uint32 CircleOfHealingTimer; @@ -702,10 +734,7 @@ public: void Reset() override { - EmpoweredSmiteTimer = 38000; - CircleOfHealingTimer = 20000; - DivineWrathTimer = 40000; - ReflectiveShieldTimer = 0; + Initialize(); } void KilledUnit(Unit* /*victim*/) override @@ -771,9 +800,19 @@ public: struct boss_veras_darkshadowAI : public boss_illidari_councilAI { - boss_veras_darkshadowAI(Creature* creature) : boss_illidari_councilAI(creature) { } + boss_veras_darkshadowAI(Creature* creature) : boss_illidari_councilAI(creature) + { + Initialize(); + } + + void Initialize() + { + DeadlyPoisonTimer = 20000; + VanishTimer = urand(60, 121) * 1000; + AppearEnvenomTimer = 150000; - uint64 EnvenomTargetGUID; + HasVanished = false; + } uint32 DeadlyPoisonTimer; uint32 VanishTimer; @@ -783,13 +822,7 @@ public: void Reset() override { - EnvenomTargetGUID = 0; - - DeadlyPoisonTimer = 20000; - VanishTimer = urand(60, 121) * 1000; - AppearEnvenomTimer = 150000; - - HasVanished = false; + Initialize(); me->SetVisible(true); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } diff --git a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp index 55ad45597ea..7067ca659d3 100644 --- a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp @@ -47,23 +47,6 @@ class instance_black_temple : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - - NajentusGUID = 0; - SupremusGUID = 0; - ShadeOfAkamaGUID = 0; - AkamaShadeGUID = 0; - AkamaGUID = 0; - GathiosTheShattererGUID = 0; - HighNethermancerZerevorGUID = 0; - LadyMalandeGUID = 0; - VerasDarkshadowGUID = 0; - IllidariCouncilGUID = 0; - BloodElfCouncilVoiceGUID = 0; - IllidanStormrageGUID = 0; - - IllidanGateGUID = 0; - - memset(IllidanDoorGUIDs, 0, 2 * sizeof(uint64)); } void OnCreatureCreate(Creature* creature) override @@ -162,7 +145,7 @@ class instance_black_temple : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -200,28 +183,28 @@ class instance_black_temple : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 NajentusGUID; - uint64 SupremusGUID; - uint64 ShadeOfAkamaGUID; - uint64 AkamaShadeGUID; - uint64 AkamaGUID; + ObjectGuid NajentusGUID; + ObjectGuid SupremusGUID; + ObjectGuid ShadeOfAkamaGUID; + ObjectGuid AkamaShadeGUID; + ObjectGuid AkamaGUID; - uint64 GathiosTheShattererGUID; - uint64 HighNethermancerZerevorGUID; - uint64 LadyMalandeGUID; - uint64 VerasDarkshadowGUID; + ObjectGuid GathiosTheShattererGUID; + ObjectGuid HighNethermancerZerevorGUID; + ObjectGuid LadyMalandeGUID; + ObjectGuid VerasDarkshadowGUID; - uint64 IllidariCouncilGUID; - uint64 BloodElfCouncilVoiceGUID; + ObjectGuid IllidariCouncilGUID; + ObjectGuid BloodElfCouncilVoiceGUID; - uint64 IllidanStormrageGUID; + ObjectGuid IllidanStormrageGUID; - uint64 IllidanGateGUID; - uint64 IllidanDoorGUIDs[2]; + ObjectGuid IllidanGateGUID; + ObjectGuid IllidanDoorGUIDs[2]; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp index 7e24f4b54b2..ca04d41e3c8 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp @@ -111,10 +111,17 @@ public: { boss_fathomlord_karathressAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); - Advisors[0] = 0; - Advisors[1] = 0; - Advisors[2] = 0; + } + + void Initialize() + { + CataclysmicBolt_Timer = 10000; + Enrage_Timer = 600000; //10 minutes + SearNova_Timer = 20000 + rand32() % 40000; // 20 - 60 seconds + + BlessingOfTides = false; } InstanceScript* instance; @@ -125,20 +132,16 @@ public: bool BlessingOfTides; - uint64 Advisors[MAX_ADVISORS]; + ObjectGuid Advisors[MAX_ADVISORS]; void Reset() override { - CataclysmicBolt_Timer = 10000; - Enrage_Timer = 600000; //10 minutes - SearNova_Timer = 20000 + rand32() % 40000; // 20 - 60 seconds - - BlessingOfTides = false; + Initialize(); - uint64 RAdvisors[MAX_ADVISORS]; - RAdvisors[0] = instance->GetData64(DATA_SHARKKIS); - RAdvisors[1] = instance->GetData64(DATA_TIDALVESS); - RAdvisors[2] = instance->GetData64(DATA_CARIBDIS); + ObjectGuid RAdvisors[MAX_ADVISORS]; + RAdvisors[0] = instance->GetGuidData(DATA_SHARKKIS); + RAdvisors[1] = instance->GetGuidData(DATA_TIDALVESS); + RAdvisors[2] = instance->GetGuidData(DATA_CARIBDIS); // Respawn of the 3 Advisors for (uint8 i = 0; i < MAX_ADVISORS; ++i) if (RAdvisors[i]) @@ -175,9 +178,9 @@ public: void GetAdvisors() { - Advisors[0] = instance->GetData64(DATA_SHARKKIS); - Advisors[1] = instance->GetData64(DATA_TIDALVESS); - Advisors[2] = instance->GetData64(DATA_CARIBDIS); + Advisors[0] = instance->GetGuidData(DATA_SHARKKIS); + Advisors[1] = instance->GetGuidData(DATA_TIDALVESS); + Advisors[2] = instance->GetGuidData(DATA_CARIBDIS); } void StartEvent(Unit* who) @@ -187,7 +190,7 @@ public: Talk(SAY_AGGRO); DoZoneInCombat(); - instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); } @@ -216,7 +219,7 @@ public: //Only if not incombat check if the event is started if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT)) { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESSEVENT_STARTER))) { AttackStart(target); GetAdvisors(); @@ -281,7 +284,7 @@ public: if (continueTriggering) { DoCast(me, SPELL_BLESSING_OF_THE_TIDES); - me->MonsterYell(SAY_GAIN_BLESSING_OF_TIDES, LANG_UNIVERSAL, NULL); + me->Yell(SAY_GAIN_BLESSING_OF_TIDES, LANG_UNIVERSAL); DoPlaySoundToSet(me, SOUND_GAIN_BLESSING_OF_TIDES); } } @@ -307,8 +310,18 @@ public: { boss_fathomguard_sharkkisAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); - SummonedPet = 0; + } + + void Initialize() + { + LeechingThrow_Timer = 20000; + TheBeastWithin_Timer = 30000; + Multishot_Timer = 15000; + Pet_Timer = 10000; + + pet = false; } InstanceScript* instance; @@ -320,35 +333,30 @@ public: bool pet; - uint64 SummonedPet; + ObjectGuid SummonedPet; void Reset() override { - LeechingThrow_Timer = 20000; - TheBeastWithin_Timer = 30000; - Multishot_Timer = 15000; - Pet_Timer = 10000; - - pet = false; + Initialize(); Creature* Pet = ObjectAccessor::GetCreature(*me, SummonedPet); if (Pet && Pet->IsAlive()) Pet->DealDamage(Pet, Pet->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - SummonedPet = 0; + SummonedPet.Clear(); instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED); } void JustDied(Unit* /*killer*/) override { - if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KARATHRESS))) + if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KARATHRESS))) ENSURE_AI(boss_fathomlord_karathress::boss_fathomlord_karathressAI, Karathress->AI())->EventSharkkisDeath(); } void EnterCombat(Unit* who) override { - instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); } @@ -357,7 +365,7 @@ public: //Only if not incombat check if the event is started if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT)) { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESSEVENT_STARTER))) AttackStart(target); } @@ -446,9 +454,18 @@ public: { boss_fathomguard_tidalvessAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + FrostShock_Timer = 25000; + Spitfire_Timer = 60000; + PoisonCleansing_Timer = 30000; + Earthbind_Timer = 45000; + } + InstanceScript* instance; uint32 FrostShock_Timer; @@ -458,23 +475,20 @@ public: void Reset() override { - FrostShock_Timer = 25000; - Spitfire_Timer = 60000; - PoisonCleansing_Timer = 30000; - Earthbind_Timer = 45000; + Initialize(); instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED); } void JustDied(Unit* /*killer*/) override { - if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KARATHRESS))) + if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KARATHRESS))) ENSURE_AI(boss_fathomlord_karathress::boss_fathomlord_karathressAI, Karathress->AI())->EventTidalvessDeath(); } void EnterCombat(Unit* who) override { - instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); DoCast(me, SPELL_WINDFURY_WEAPON); } @@ -484,7 +498,7 @@ public: //Only if not incombat check if the event is started if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT)) { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESSEVENT_STARTER))) AttackStart(target); } @@ -515,7 +529,7 @@ public: if (Spitfire_Timer <= diff) { DoCast(me, SPELL_SPITFIRE_TOTEM); - if (Unit* SpitfireTotem = ObjectAccessor::GetUnit(*me, CREATURE_SPITFIRE_TOTEM)) + if (Unit* SpitfireTotem = me->FindNearestCreature(CREATURE_SPITFIRE_TOTEM, 100.0f)) SpitfireTotem->ToCreature()->AI()->AttackStart(me->GetVictim()); Spitfire_Timer = 60000; @@ -562,9 +576,18 @@ public: { boss_fathomguard_caribdisAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + WaterBoltVolley_Timer = 35000; + TidalSurge_Timer = 15000 + rand32() % 5000; + Heal_Timer = 55000; + Cyclone_Timer = 30000 + rand32() % 10000; + } + InstanceScript* instance; uint32 WaterBoltVolley_Timer; @@ -574,23 +597,20 @@ public: void Reset() override { - WaterBoltVolley_Timer = 35000; - TidalSurge_Timer = 15000 + rand32() % 5000; - Heal_Timer = 55000; - Cyclone_Timer = 30000 + rand32() % 10000; + Initialize(); instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED); } void JustDied(Unit* /*killer*/) override { - if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KARATHRESS))) + if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KARATHRESS))) ENSURE_AI(boss_fathomlord_karathress::boss_fathomlord_karathressAI, Karathress->AI())->EventCaribdisDeath(); } void EnterCombat(Unit* who) override { - instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); } @@ -599,7 +619,7 @@ public: //Only if not incombat check if the event is started if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT)) { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESSEVENT_STARTER))) AttackStart(target); } @@ -675,13 +695,13 @@ public: switch (rand32() % 4) { case 0: - unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESS)); + unit = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESS)); break; case 1: - unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SHARKKIS)); + unit = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_SHARKKIS)); break; case 2: - unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_TIDALVESS)); + unit = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_TIDALVESS)); break; case 3: unit = me; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp index bcde75584fb..d6117c9053f 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp @@ -93,14 +93,30 @@ public: { boss_hydross_the_unstableAI(Creature* creature) : ScriptedAI(creature), Summons(me) { + Initialize(); instance = creature->GetInstanceScript(); - beams[0] = 0; - beams[1] = 0; + } + + void Initialize() + { + beams[0].Clear(); + beams[1].Clear(); + PosCheck_Timer = 2500; + MarkOfHydross_Timer = 15000; + MarkOfCorruption_Timer = 15000; + WaterTomb_Timer = 7000; + VileSludge_Timer = 7000; + MarkOfHydross_Count = 0; + MarkOfCorruption_Count = 0; + EnrageTimer = 600000; + + CorruptedForm = false; + beam = false; } InstanceScript* instance; - uint64 beams[2]; + ObjectGuid beams[2]; uint32 PosCheck_Timer; uint32 MarkOfHydross_Timer; uint32 MarkOfCorruption_Timer; @@ -116,18 +132,8 @@ public: void Reset() override { DeSummonBeams(); - beams[0] = 0; - beams[1] = 0; - PosCheck_Timer = 2500; - MarkOfHydross_Timer = 15000; - MarkOfCorruption_Timer = 15000; - WaterTomb_Timer = 7000; - VileSludge_Timer = 7000; - MarkOfHydross_Count = 0; - MarkOfCorruption_Count = 0; - EnrageTimer = 600000; + Initialize(); - CorruptedForm = false; me->SetMeleeDamageSchool(SPELL_SCHOOL_FROST); me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, false); @@ -135,7 +141,6 @@ public: me->SetDisplayId(MODEL_CLEAN); instance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, NOT_STARTED); - beam = false; Summons.DespawnAll(); } @@ -147,7 +152,7 @@ public: beamer->CastSpell(me, SPELL_BLUE_BEAM, true); beamer->SetDisplayId(11686); //invisible beamer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - beams[0]=beamer->GetGUID(); + beams[0] = beamer->GetGUID(); } beamer = me->SummonCreature(ENTRY_BEAM_DUMMY, -219.918f, -371.308f, 22.0042f, 2.73072f, TEMPSUMMON_CORPSE_DESPAWN, 0); if (beamer) @@ -155,7 +160,7 @@ public: beamer->CastSpell(me, SPELL_BLUE_BEAM, true); beamer->SetDisplayId(11686); //invisible beamer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - beams[1]=beamer->GetGUID(); + beams[1] = beamer->GetGUID(); } } void DeSummonBeams() diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp index a241f2bea37..450ac350f0c 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp @@ -147,17 +147,37 @@ public: { boss_lady_vashjAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); Intro = false; JustCreated = true; + CanAttack = false; creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // set it only once on Creature create (no need do intro if wiped) - for (uint8 i = 0; i < 4; ++i) - ShieldGeneratorChannel[i] = 0; + } + + void Initialize() + { + AggroTimer = 19000; + ShockBlastTimer = 1 + rand32() % 60000; + EntangleTimer = 30000; + StaticChargeTimer = 10000 + rand32() % 15000; + ForkedLightningTimer = 2000; + CheckTimer = 15000; + EnchantedElementalTimer = 5000; + TaintedElementalTimer = 50000; + CoilfangEliteTimer = 45000 + rand32() % 5000; + CoilfangStriderTimer = 60000 + rand32() % 10000; + SummonSporebatTimer = 10000; + SummonSporebatStaticTimer = 30000; + EnchantedElementalPos = 0; + Phase = 0; + + Entangle = false; } InstanceScript* instance; - uint64 ShieldGeneratorChannel[4]; + ObjectGuid ShieldGeneratorChannel[4]; uint32 AggroTimer; uint32 ShockBlastTimer; @@ -181,22 +201,8 @@ public: void Reset() override { - AggroTimer = 19000; - ShockBlastTimer = 1 + rand32() % 60000; - EntangleTimer = 30000; - StaticChargeTimer = 10000 + rand32() % 15000; - ForkedLightningTimer = 2000; - CheckTimer = 15000; - EnchantedElementalTimer = 5000; - TaintedElementalTimer = 50000; - CoilfangEliteTimer = 45000 + rand32() % 5000; - CoilfangStriderTimer = 60000 + rand32() % 10000; - SummonSporebatTimer = 10000; - SummonSporebatStaticTimer = 30000; - EnchantedElementalPos = 0; - Phase = 0; + Initialize(); - Entangle = false; if (JustCreated) { CanAttack = false; @@ -210,7 +216,7 @@ public: if (Unit* remo = ObjectAccessor::GetUnit(*me, ShieldGeneratorChannel[i])) { remo->setDeathState(JUST_DIED); - ShieldGeneratorChannel[i] = 0; + ShieldGeneratorChannel[i].Clear(); } } } @@ -557,26 +563,32 @@ public: { npc_enchanted_elementalAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Move = 0; + Phase = 1; + + X = ElementWPPos[0][0]; + Y = ElementWPPos[0][1]; + Z = ElementWPPos[0][2]; + } + InstanceScript* instance; uint32 Move; uint32 Phase; float X, Y, Z; - uint64 VashjGUID; + ObjectGuid VashjGUID; void Reset() override { me->SetSpeed(MOVE_WALK, 0.6f); // walk me->SetSpeed(MOVE_RUN, 0.6f); // run - Move = 0; - Phase = 1; - - X = ElementWPPos[0][0]; - Y = ElementWPPos[0][1]; - Z = ElementWPPos[0][2]; + Initialize(); //search for nearest waypoint (up on stairs) for (uint32 i = 1; i < 8; ++i) @@ -589,7 +601,7 @@ public: } } - VashjGUID = instance->GetData64(DATA_LADYVASHJ); + VashjGUID = instance->GetGuidData(DATA_LADYVASHJ); } void EnterCombat(Unit* /*who*/) override { } @@ -646,9 +658,16 @@ public: { npc_tainted_elementalAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + PoisonBoltTimer = 5000 + rand32() % 5000; + DespawnTimer = 30000; + } + InstanceScript* instance; uint32 PoisonBoltTimer; @@ -656,13 +675,12 @@ public: void Reset() override { - PoisonBoltTimer = 5000 + rand32() % 5000; - DespawnTimer = 30000; + Initialize(); } void JustDied(Unit* /*killer*/) override { - if (Creature* vashj = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_LADYVASHJ))) + if (Creature* vashj = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_LADYVASHJ))) ENSURE_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->EventTaintedElementalDeath(); } @@ -714,10 +732,19 @@ public: { npc_toxic_sporebatAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); EnterEvadeMode(); } + void Initialize() + { + MovementTimer = 0; + ToxicSporeTimer = 5000; + BoltTimer = 5500; + CheckTimer = 1000; + } + InstanceScript* instance; uint32 MovementTimer; @@ -729,10 +756,7 @@ public: { me->SetDisableGravity(true); me->setFaction(14); - MovementTimer = 0; - ToxicSporeTimer = 5000; - BoltTimer = 5500; - CheckTimer = 1000; + Initialize(); } void MoveInLineOfSight(Unit* /*who*/) override @@ -778,7 +802,7 @@ public: if (CheckTimer <= diff) { // check if vashj is death - Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ)); + Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LADYVASHJ)); if (!Vashj || !Vashj->IsAlive() || ENSURE_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3) { // remove @@ -810,17 +834,23 @@ public: { npc_shield_generator_channelAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + CheckTimer = 0; + Cast = false; + } + InstanceScript* instance; uint32 CheckTimer; bool Cast; void Reset() override { - CheckTimer = 0; - Cast = false; + Initialize(); me->SetDisplayId(11686); // invisible me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -833,7 +863,7 @@ public: { if (CheckTimer <= diff) { - Unit* vashj = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ)); + Unit* vashj = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LADYVASHJ)); if (vashj && vashj->IsAlive()) { @@ -865,7 +895,7 @@ public: return true; } - Creature* vashj = ObjectAccessor::GetCreature((*player), instance->GetData64(DATA_LADYVASHJ)); + Creature* vashj = ObjectAccessor::GetCreature((*player), instance->GetGuidData(DATA_LADYVASHJ)); if (vashj && (ENSURE_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->Phase == 2)) { if (GameObject* gObj = targets.GetGOTarget()) diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp index fb5b4579942..9f51155b334 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp @@ -83,13 +83,12 @@ public: { npc_inner_demonAI(Creature* creature) : ScriptedAI(creature) { - victimGUID = 0; } uint32 ShadowBolt_Timer; uint32 Link_Timer; - uint64 victimGUID; + ObjectGuid victimGUID; void Reset() override { @@ -97,17 +96,17 @@ public: Link_Timer = 1000; } - void SetGUID(uint64 guid, int32 id/* = 0 */) override + void SetGUID(ObjectGuid guid, int32 id/* = 0 */) override { if (id == INNER_DEMON_VICTIM) victimGUID = guid; } - uint64 GetGUID(int32 id/* = 0 */) const override + ObjectGuid GetGUID(int32 id/* = 0 */) const override { if (id == INNER_DEMON_VICTIM) return victimGUID; - return 0; + return ObjectGuid::Empty; } void JustDied(Unit* /*killer*/) override @@ -190,10 +189,6 @@ public: { creature->GetPosition(x, y, z); instance = creature->GetInstanceScript(); - Demon = 0; - - for (uint8 i = 0; i < 3; ++i)//clear guids - SpellBinderGUID[i] = 0; } InstanceScript* instance; @@ -213,10 +208,10 @@ public: bool EnrageUsed; float x, y, z; - uint64 InnderDemon[5]; + ObjectGuid InnderDemon[5]; uint32 InnerDemon_Count; - uint64 Demon; - uint64 SpellBinderGUID[3]; + ObjectGuid Demon; + ObjectGuid SpellBinderGUID[3]; void Reset() override { @@ -317,10 +312,10 @@ public: // and reseting equipment me->LoadEquipment(); - if (instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)) + if (instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)) { Unit* victim = NULL; - victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)); + victim = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)); if (victim) me->getThreatManager().addThreat(victim, 1); StartEvent(); @@ -349,13 +344,12 @@ public: { if (InnderDemon[i]) { - //delete creature - Creature* creature = ObjectAccessor::GetCreature((*me), InnderDemon[i]); - if (creature && creature->IsAlive()) - { - creature->DespawnOrUnsummon(); - } - InnderDemon[i] = 0; + //delete creature + Creature* creature = ObjectAccessor::GetCreature((*me), InnderDemon[i]); + if (creature && creature->IsAlive()) + creature->DespawnOrUnsummon(); + + InnderDemon[i].Clear(); } } @@ -364,9 +358,9 @@ public: void CastConsumingMadness() //remove this once SPELL_INSIDIOUS_WHISPER is supported by core { - for (uint8 i=0; i<5; ++i) + for (uint8 i = 0; i < 5; ++i) { - if (InnderDemon[i] > 0) + if (InnderDemon[i]) { Creature* unit = ObjectAccessor::GetCreature((*me), InnderDemon[i]); if (unit && unit->IsAlive()) @@ -481,7 +475,7 @@ public: if (SwitchToDemon_Timer <= diff) { //switch to demon form - me->RemoveAurasDueToSpell(SPELL_WHIRLWIND, 0); + me->RemoveAurasDueToSpell(SPELL_WHIRLWIND); me->SetDisplayId(MODEL_DEMON); Talk(SAY_SWITCH_TO_DEMON); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0); @@ -576,8 +570,8 @@ public: Creature* Copy = NULL; Copy = DoSpawnCreature(DEMON_FORM, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 6000); if (Copy) - { - Demon = Copy->GetGUID(); + { + Demon = Copy->GetGUID(); if (me->GetVictim()) Copy->AI()->AttackStart(me->GetVictim()); } @@ -682,13 +676,12 @@ public: npc_greyheart_spellbinderAI(Creature* creature) : ScriptedAI(creature) { instance = creature->GetInstanceScript(); - leotherasGUID = 0; AddedBanish = false; } InstanceScript* instance; - uint64 leotherasGUID; + ObjectGuid leotherasGUID; uint32 Mindblast_Timer; uint32 Earthshock_Timer; @@ -700,7 +693,7 @@ public: Mindblast_Timer = urand(3000, 8000); Earthshock_Timer = urand(5000, 10000); - instance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, 0); + instance->SetGuidData(DATA_LEOTHERAS_EVENT_STARTER, ObjectGuid::Empty); Creature* leotheras = ObjectAccessor::GetCreature(*me, leotherasGUID); if (leotheras && leotheras->IsAlive()) ENSURE_AI(boss_leotheras_the_blind::boss_leotheras_the_blindAI, leotheras->AI())->CheckChannelers(/*false*/); @@ -709,7 +702,7 @@ public: void EnterCombat(Unit* who) override { me->InterruptNonMeleeSpells(false); - instance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_LEOTHERAS_EVENT_STARTER, who->GetGUID()); } void JustRespawned() override @@ -734,12 +727,12 @@ public: void UpdateAI(uint32 diff) override { if (!leotherasGUID) - leotherasGUID = instance->GetData64(DATA_LEOTHERAS); + leotherasGUID = instance->GetGuidData(DATA_LEOTHERAS); - if (!me->IsInCombat() && instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)) + if (!me->IsInCombat() && instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)) { Unit* victim = NULL; - victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)); + victim = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)); if (victim) AttackStart(victim); } @@ -750,7 +743,7 @@ public: return; } - if (!instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)) + if (!instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)) { EnterEvadeMode(); return; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp index a0ff469733c..83b8722ce47 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp @@ -234,7 +234,7 @@ public: if (SpoutTimer <= diff) { - me->MonsterTextEmote(EMOTE_SPOUT, NULL, true); + me->TextEmote(EMOTE_SPOUT, nullptr, true); me->SetReactState(REACT_PASSIVE); me->GetMotionMaster()->MoveRotate(20000, urand(0, 1) ? ROTATE_DIRECTION_LEFT : ROTATE_DIRECTION_RIGHT); SpoutTimer = 45000; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp index d501b919614..0a538ac0c39 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp @@ -215,8 +215,8 @@ public: { //Teleport 4 players under the waterfalls Unit* target; - std::set<uint64> list; - std::set<uint64>::const_iterator itr; + GuidSet targets; + GuidSet::const_iterator itr; for (uint8 i = 0; i < 4; ++i) { counter = 0; @@ -226,13 +226,13 @@ public: if (counter < Playercount) break; if (target) - itr = list.find(target->GetGUID()); + itr = targets.find(target->GetGUID()); ++counter; - } while (itr != list.end()); + } while (itr != targets.end()); if (target) { - list.insert(target->GetGUID()); + targets.insert(target->GetGUID()); ApplyWateryGrave(target, i); } } @@ -253,8 +253,8 @@ public: if (WateryGlobules_Timer <= diff) { Unit* pGlobuleTarget; - std::set<uint64> globulelist; - std::set<uint64>::const_iterator itr; + GuidSet globules; + GuidSet::const_iterator itr; for (uint8 g = 0; g < 4; g++) //one unit can't cast more than one spell per update, so some players have to cast for us XD { counter = 0; @@ -262,14 +262,14 @@ public: { pGlobuleTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true); if (pGlobuleTarget) - itr = globulelist.find(pGlobuleTarget->GetGUID()); + itr = globules.find(pGlobuleTarget->GetGUID()); if (counter > Playercount) break; ++counter; - } while (itr != globulelist.end()); + } while (itr != globules.end()); if (pGlobuleTarget) { - globulelist.insert(pGlobuleTarget->GetGUID()); + globules.insert(pGlobuleTarget->GetGUID()); pGlobuleTarget->CastSpell(pGlobuleTarget, globulespell[g], true); } } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp index a3577f40d68..3fb090ab94c 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp @@ -94,20 +94,6 @@ class instance_serpent_shrine : public InstanceMapScript { memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - LurkerBelow = 0; - Sharkkis = 0; - Tidalvess = 0; - Caribdis = 0; - LadyVashj = 0; - Karathress = 0; - KarathressEvent_Starter = 0; - LeotherasTheBlind = 0; - LeotherasEventStarter = 0; - - ControlConsole = 0; - BridgePart[0] = 0; - BridgePart[1] = 0; - BridgePart[2] = 0; StrangePool = 0; Water = WATERSTATE_FRENZY; @@ -247,7 +233,7 @@ class instance_serpent_shrine : public InstanceMapScript } } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { if (type == DATA_KARATHRESSEVENT_STARTER) KarathressEvent_Starter = data; @@ -255,7 +241,7 @@ class instance_serpent_shrine : public InstanceMapScript LeotherasEventStarter = data; } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -280,7 +266,7 @@ class instance_serpent_shrine : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -297,7 +283,6 @@ class instance_serpent_shrine : public InstanceMapScript HandleGameObject(BridgePart[0], true); HandleGameObject(BridgePart[0], true); } - ControlConsole = data; break; case DATA_TRASH: if (data == 1 && TrashCount < MIN_KILLS) @@ -424,18 +409,18 @@ class instance_serpent_shrine : public InstanceMapScript } private: - uint64 LurkerBelow; - uint64 Sharkkis; - uint64 Tidalvess; - uint64 Caribdis; - uint64 LadyVashj; - uint64 Karathress; - uint64 KarathressEvent_Starter; - uint64 LeotherasTheBlind; - uint64 LeotherasEventStarter; - - uint64 ControlConsole; - uint64 BridgePart[3]; + ObjectGuid LurkerBelow; + ObjectGuid Sharkkis; + ObjectGuid Tidalvess; + ObjectGuid Caribdis; + ObjectGuid LadyVashj; + ObjectGuid Karathress; + ObjectGuid KarathressEvent_Starter; + ObjectGuid LeotherasTheBlind; + ObjectGuid LeotherasEventStarter; + + ObjectGuid ControlConsole; + ObjectGuid BridgePart[3]; uint32 StrangePool; uint32 FishingTimer; uint32 WaterCheckTimer; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp index 78a14539e25..3207727b5d1 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp @@ -226,7 +226,7 @@ public: { if (instance->GetBossState(DATA_MEKGINEER_STEAMRIGGER) == IN_PROGRESS) { - if (Creature* mekgineer = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MEKGINEER_STEAMRIGGER))) + if (Creature* mekgineer = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MEKGINEER_STEAMRIGGER))) { if (me->IsWithinDistInMap(mekgineer, MAX_REPAIR_RANGE)) { diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp index 40bc8dd69d7..f0884e83baa 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp @@ -58,11 +58,6 @@ class instance_steam_vault : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); - ThespiaGUID = 0; - MekgineerGUID = 0; - KalithreshGUID = 0; - - MainChambersDoorGUID = 0; DistillerState = 0; } @@ -96,7 +91,7 @@ class instance_steam_vault : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -109,7 +104,7 @@ class instance_steam_vault : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -158,11 +153,11 @@ class instance_steam_vault : public InstanceMapScript } protected: - uint64 ThespiaGUID; - uint64 MekgineerGUID; - uint64 KalithreshGUID; + ObjectGuid ThespiaGUID; + ObjectGuid MekgineerGUID; + ObjectGuid KalithreshGUID; - uint64 MainChambersDoorGUID; + ObjectGuid MainChambersDoorGUID; uint8 DistillerState; }; diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp index 7090a693876..d3b11d481fb 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp @@ -54,7 +54,7 @@ public: struct boss_the_black_stalkerAI : public ScriptedAI { - boss_the_black_stalkerAI(Creature* creature) : ScriptedAI(creature) + boss_the_black_stalkerAI(Creature* creature) : ScriptedAI(creature), Striders(creature) { } @@ -62,11 +62,11 @@ public: uint32 Levitate_Timer; uint32 ChainLightning_Timer; uint32 StaticCharge_Timer; - uint64 LevitatedTarget; + ObjectGuid LevitatedTarget; uint32 LevitatedTarget_Timer; bool InAir; uint32 check_Timer; - std::list<uint64> Striders; + SummonList Striders; void Reset() override { @@ -75,9 +75,9 @@ public: StaticCharge_Timer = 10000; SporeStriders_Timer = 10000 + rand32() % 5000; check_Timer = 5000; - LevitatedTarget = 0; + LevitatedTarget.Clear(); LevitatedTarget_Timer = 0; - Striders.clear(); + Striders.DespawnAll(); } void EnterCombat(Unit* /*who*/) override { } @@ -86,7 +86,7 @@ public: { if (summon && summon->GetEntry() == ENTRY_SPORE_STRIDER) { - Striders.push_back(summon->GetGUID()); + Striders.Summon(summon); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1)) summon->AI()->AttackStart(target); else @@ -97,9 +97,7 @@ public: void JustDied(Unit* /*killer*/) override { - for (std::list<uint64>::const_iterator i = Striders.begin(); i != Striders.end(); ++i) - if (Creature* strider = ObjectAccessor::GetCreature(*me, *i)) - strider->DisappearAndDie(); + Striders.DespawnAll(); } void UpdateAI(uint32 diff) override @@ -136,13 +134,13 @@ public: { if (!target->HasAura(SPELL_LEVITATE)) { - LevitatedTarget = 0; + LevitatedTarget.Clear(); return; } if (InAir) { target->AddAura(SPELL_SUSPENSION, target); - LevitatedTarget = 0; + LevitatedTarget.Clear(); } else { @@ -152,7 +150,7 @@ public: } } else - LevitatedTarget = 0; + LevitatedTarget.Clear(); } else LevitatedTarget_Timer -= diff; } if (Levitate_Timer <= diff) diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp index 3b7bb0c4312..0fcc7310d07 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp @@ -250,7 +250,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MAULGAR))) + if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MAULGAR))) maulgar->AI()->DoAction(ACTION_ADD_DEATH); instance->SetBossState(DATA_MAULGAR, DONE); @@ -333,7 +333,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MAULGAR))) + if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MAULGAR))) maulgar->AI()->DoAction(ACTION_ADD_DEATH); instance->SetBossState(DATA_MAULGAR, DONE); @@ -419,7 +419,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MAULGAR))) + if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MAULGAR))) maulgar->AI()->DoAction(ACTION_ADD_DEATH); instance->SetBossState(DATA_MAULGAR, DONE); @@ -496,7 +496,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MAULGAR))) + if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MAULGAR))) maulgar->AI()->DoAction(ACTION_ADD_DEATH); instance->SetBossState(DATA_MAULGAR, DONE); diff --git a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp index 3337ce47fd6..5f8bafc736b 100644 --- a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp +++ b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp @@ -48,8 +48,6 @@ class instance_gruuls_lair : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); LoadMinionData(minionData); - - MaulgarGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -112,7 +110,7 @@ class instance_gruuls_lair : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -121,11 +119,11 @@ class instance_gruuls_lair : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 MaulgarGUID; + ObjectGuid MaulgarGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp index 15c660b4ad7..a0673d4aced 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp @@ -133,7 +133,7 @@ class go_broggok_lever : public GameObjectScript if (instance->GetBossState(DATA_BROGGOK) != DONE && instance->GetBossState(DATA_BROGGOK) != IN_PROGRESS) { instance->SetBossState(DATA_BROGGOK, IN_PROGRESS); - if (Creature* broggok = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_BROGGOK))) + if (Creature* broggok = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_BROGGOK))) broggok->AI()->DoAction(ACTION_PREPARE_BROGGOK); } diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp index b2f199008d0..da7074b131f 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp @@ -65,8 +65,6 @@ class boss_kelidan_the_breaker : public CreatureScript { boss_kelidan_the_breakerAI(Creature* creature) : BossAI(creature, DATA_KELIDAN_THE_BREAKER) { - for (uint8 i = 0; i < 5; ++i) - Channelers[i] = 0; } uint32 ShadowVolley_Timer; @@ -76,7 +74,7 @@ class boss_kelidan_the_breaker : public CreatureScript uint32 check_Timer; bool Firenova; bool addYell; - uint64 Channelers[5]; + ObjectGuid Channelers[5]; void Reset() override { @@ -116,7 +114,7 @@ class boss_kelidan_the_breaker : public CreatureScript addYell = true; Talk(SAY_ADD_AGGRO); } - for (uint8 i=0; i<5; ++i) + for (uint8 i = 0; i<5; ++i) { Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]); if (who && channeler && !channeler->IsInCombat()) @@ -126,7 +124,7 @@ class boss_kelidan_the_breaker : public CreatureScript void ChannelerDied(Unit* killer) { - for (uint8 i=0; i<5; ++i) + for (uint8 i = 0; i < 5; ++i) { Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]); if (channeler && channeler->IsAlive()) @@ -138,25 +136,25 @@ class boss_kelidan_the_breaker : public CreatureScript AttackStart(killer); } - uint64 GetChanneled(Creature* channeler1) + ObjectGuid GetChanneled(Creature* channeler1) { SummonChannelers(); if (!channeler1) - return 0; + return ObjectGuid::Empty; uint8 i; - for (i=0; i<5; ++i) + for (i = 0; i < 5; ++i) { Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]); if (channeler && channeler->GetGUID() == channeler1->GetGUID()) break; } - return Channelers[(i+2)%5]; + return Channelers[(i + 2) % 5]; } void SummonChannelers() { - for (uint8 i=0; i<5; ++i) + for (uint8 i = 0; i < 5; ++i) { Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]); if (!channeler || channeler->isDead()) @@ -164,7 +162,7 @@ class boss_kelidan_the_breaker : public CreatureScript if (channeler) Channelers[i] = channeler->GetGUID(); else - Channelers[i] = 0; + Channelers[i].Clear(); } } @@ -310,16 +308,19 @@ class npc_shadowmoon_channeler : public CreatureScript if (check_Timer <= diff) { if (!me->IsNonMeleeSpellCast(false)) + { if (Creature* Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100)) { - uint64 channeler = ENSURE_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->GetChanneled(me); + ObjectGuid channeler = ENSURE_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->GetChanneled(me); if (Unit* channeled = ObjectAccessor::GetUnit(*me, channeler)) DoCast(channeled, SPELL_CHANNELING); } + } check_Timer = 5000; } else check_Timer -= diff; + return; } diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp index d88594d9c1e..8e9018a99c9 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp @@ -44,20 +44,6 @@ class instance_blood_furnace : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - TheMakerGUID = 0; - BroggokGUID = 0; - KelidanTheBreakerGUID = 0; - - BroggokLeverGUID = 0; - PrisonDoor4GUID = 0; - - memset(PrisonCellGUIDs, 0, 8 * sizeof(uint64)); - - PrisonersCell5.clear(); - PrisonersCell6.clear(); - PrisonersCell7.clear(); - PrisonersCell8.clear(); - PrisonerCounter5 = 0; PrisonerCounter6 = 0; PrisonerCounter7 = 0; @@ -154,7 +140,7 @@ class instance_blood_furnace : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -168,7 +154,7 @@ class instance_blood_furnace : public InstanceMapScript return BroggokLeverGUID; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -219,9 +205,9 @@ class instance_blood_furnace : public InstanceMapScript HandleGameObject(PrisonCellGUIDs[DATA_PRISON_CELL8 - DATA_PRISON_CELL1], false); } - void ResetPrisoners(const std::set<uint64>& prisoners) + void ResetPrisoners(GuidSet const& prisoners) { - for (std::set<uint64>::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) + for (GuidSet::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) if (Creature* prisoner = instance->GetCreature(*i)) ResetPrisoner(prisoner); } @@ -273,7 +259,7 @@ class instance_blood_furnace : public InstanceMapScript ResetPrisoner(creature); } - void PrisonerDied(uint64 guid) + void PrisonerDied(ObjectGuid guid) { if (PrisonersCell5.find(guid) != PrisonersCell5.end() && --PrisonerCounter5 <= 0) ActivateCell(DATA_PRISON_CELL6); @@ -313,9 +299,9 @@ class instance_blood_furnace : public InstanceMapScript } } - void ActivatePrisoners(std::set<uint64> const& prisoners) + void ActivatePrisoners(GuidSet const& prisoners) { - for (std::set<uint64>::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) + for (GuidSet::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) if (Creature* prisoner = instance->GetCreature(*i)) { prisoner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE); @@ -324,19 +310,19 @@ class instance_blood_furnace : public InstanceMapScript } protected: - uint64 TheMakerGUID; - uint64 BroggokGUID; - uint64 KelidanTheBreakerGUID; + ObjectGuid TheMakerGUID; + ObjectGuid BroggokGUID; + ObjectGuid KelidanTheBreakerGUID; - uint64 BroggokLeverGUID; - uint64 PrisonDoor4GUID; + ObjectGuid BroggokLeverGUID; + ObjectGuid PrisonDoor4GUID; - uint64 PrisonCellGUIDs[8]; + ObjectGuid PrisonCellGUIDs[8]; - std::set<uint64>PrisonersCell5; - std::set<uint64>PrisonersCell6; - std::set<uint64>PrisonersCell7; - std::set<uint64>PrisonersCell8; + GuidSet PrisonersCell5; + GuidSet PrisonersCell6; + GuidSet PrisonersCell7; + GuidSet PrisonersCell8; uint8 PrisonerCounter5; uint8 PrisonerCounter6; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp index 237aa506589..061d6a6a9a8 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp @@ -74,7 +74,7 @@ class boss_omor_the_unscarred : public CreatureScript Shadowbolt_Timer = 2000; Summon_Timer = 10000; SummonedCount = 0; - PlayerGUID = 0; + PlayerGUID.Clear(); CanPullBack = false; _Reset(); @@ -141,7 +141,7 @@ class boss_omor_the_unscarred : public CreatureScript DoCast(temp, SPELL_SHADOW_WHIP); } } - PlayerGUID = 0; + PlayerGUID.Clear(); ShadowWhip_Timer = 2000; CanPullBack = false; } @@ -218,7 +218,7 @@ class boss_omor_the_unscarred : public CreatureScript uint32 Shadowbolt_Timer; uint32 Summon_Timer; uint32 SummonedCount; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; bool CanPullBack; }; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp index d2a93caf7a3..44c93dc77c9 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp @@ -70,7 +70,6 @@ class boss_nazan : public CreatureScript { boss_nazanAI(Creature* creature) : BossAI(creature, DATA_NAZAN) { - VazrudenGUID = 0; flight = true; } @@ -183,7 +182,7 @@ class boss_nazan : public CreatureScript uint32 Fly_Timer; uint32 Turn_Timer; bool flight; - uint64 VazrudenGUID; + ObjectGuid VazrudenGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -282,8 +281,6 @@ class boss_vazruden_the_herald : public CreatureScript summoned = false; sentryDown = false; lootSpawned = false; - NazanGUID = 0; - VazrudenGUID = 0; } void Reset() override @@ -304,7 +301,7 @@ class boss_vazruden_the_herald : public CreatureScript if (Nazan) { Nazan->DisappearAndDie(); - NazanGUID = 0; + NazanGUID.Clear(); } Creature* Vazruden = ObjectAccessor::GetCreature(*me, VazrudenGUID); @@ -313,7 +310,7 @@ class boss_vazruden_the_herald : public CreatureScript if (Vazruden) { Vazruden->DisappearAndDie(); - VazrudenGUID = 0; + VazrudenGUID.Clear(); } summoned = false; me->ClearUnitState(UNIT_STATE_ROOT); @@ -435,8 +432,8 @@ class boss_vazruden_the_herald : public CreatureScript uint32 waypoint; uint32 check; bool sentryDown; - uint64 NazanGUID; - uint64 VazrudenGUID; + ObjectGuid NazanGUID; + ObjectGuid VazrudenGUID; bool summoned; bool lootSpawned; }; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp index 82f101980fe..5baaebc0d7b 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp @@ -40,7 +40,6 @@ enum Says enum Spells { SPELL_MORTAL_WOUND = 30641, - H_SPELL_MORTAL_WOUND = 36814, SPELL_SURGE = 34645, SPELL_RETALIATION = 22857 }; @@ -78,7 +77,6 @@ class boss_watchkeeper_gargolmar : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (!me->GetVictim() && me->CanCreatureAttack(who)) { diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp index c8ffc7d495a..1c3eb6d8c34 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp @@ -40,7 +40,6 @@ class instance_ramparts : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(EncounterCount); - felIronChestGUID = 0; } void OnGameObjectCreate(GameObject* go) override @@ -74,7 +73,7 @@ class instance_ramparts : public InstanceMapScript } protected: - uint64 felIronChestGUID; + ObjectGuid felIronChestGUID; bool spawned; }; diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp index 8a5d6e41780..50cdcfe121b 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp @@ -85,7 +85,7 @@ enum Spells //count of clickers needed to interrupt blast nova #define CLICKERS_COUNT 5 -typedef std::map<uint64, uint64> CubeMap; +typedef std::map<ObjectGuid, ObjectGuid> CubeMap; class npc_abyssal : public CreatureScript { @@ -253,10 +253,10 @@ class boss_magtheridon : public CreatureScript instance->SetData(DATA_COLLAPSE, false); } - void SetClicker(uint64 cubeGUID, uint64 clickerGUID) + void SetClicker(ObjectGuid cubeGUID, ObjectGuid clickerGUID) { // to avoid multiclicks from 1 cube - if (uint64 guid = Cube[cubeGUID]) + if (ObjectGuid guid = Cube[cubeGUID]) DebuffClicker(ObjectAccessor::GetUnit(*me, guid)); Cube[cubeGUID] = clickerGUID; NeedCheckCube = true; @@ -284,7 +284,7 @@ class boss_magtheridon : public CreatureScript if (!clicker || !clicker->HasAura(SPELL_SHADOW_GRASP)) { DebuffClicker(clicker); - (*i).second = 0; + (*i).second.Clear(); } else ++ClickerNum; @@ -588,7 +588,7 @@ public: if (instance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS) return true; - Creature* Magtheridon =ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_MAGTHERIDON)); + Creature* Magtheridon =ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_MAGTHERIDON)); if (!Magtheridon || !Magtheridon->IsAlive()) return true; diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp index ae5ad009942..db0159d1a2d 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp @@ -58,10 +58,10 @@ class instance_magtheridons_lair : public InstanceMapScript uint32 m_auiEncounter[MAX_ENCOUNTER]; - uint64 MagtheridonGUID; - std::set<uint64> ChannelerGUID; - uint64 DoorGUID; - std::set<uint64> ColumnGUID; + ObjectGuid MagtheridonGUID; + GuidSet ChannelerGUID; + ObjectGuid DoorGUID; + GuidSet ColumnGUID; uint32 CageTimer; uint32 RespawnTimer; @@ -71,11 +71,6 @@ class instance_magtheridons_lair : public InstanceMapScript SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - MagtheridonGUID = 0; - ChannelerGUID.clear(); - DoorGUID = 0; - ColumnGUID.clear(); - CageTimer = 0; RespawnTimer = 0; } @@ -124,14 +119,14 @@ class instance_magtheridons_lair : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { case DATA_MAGTHERIDON: return MagtheridonGUID; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -152,7 +147,7 @@ class instance_magtheridons_lair : public InstanceMapScript if (m_auiEncounter[1] != NOT_STARTED) { m_auiEncounter[1] = NOT_STARTED; - for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + for (GuidSet::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { if (Creature* Channeler = instance->GetCreature(*i)) { @@ -171,7 +166,7 @@ class instance_magtheridons_lair : public InstanceMapScript { m_auiEncounter[1] = IN_PROGRESS; // Let all five channelers aggro. - for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + for (GuidSet::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { Creature* Channeler = instance->GetCreature(*i); if (Channeler && Channeler->IsAlive()) @@ -181,14 +176,14 @@ class instance_magtheridons_lair : public InstanceMapScript Creature* Magtheridon = instance->GetCreature(MagtheridonGUID); if (Magtheridon && Magtheridon->IsAlive()) { - Magtheridon->MonsterTextEmote(EMOTE_BONDS_WEAKEN, NULL); + Magtheridon->TextEmote(EMOTE_BONDS_WEAKEN); CageTimer = 120000; } HandleGameObject(DoorGUID, false); } break; case DONE: // Add buff and check if all channelers are dead. - for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + for (GuidSet::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { Creature* Channeler = instance->GetCreature(*i); if (Channeler && Channeler->IsAlive()) @@ -204,7 +199,7 @@ class instance_magtheridons_lair : public InstanceMapScript break; case DATA_COLLAPSE: // true - collapse / false - reset - for (std::set<uint64>::const_iterator i = ColumnGUID.begin(); i != ColumnGUID.end(); ++i) + for (GuidSet::const_iterator i = ColumnGUID.begin(); i != ColumnGUID.end(); ++i) DoUseDoorOrButton(*i); break; default: @@ -239,7 +234,7 @@ class instance_magtheridons_lair : public InstanceMapScript { if (RespawnTimer <= diff) { - for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + for (GuidSet::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { if (Creature* Channeler = instance->GetCreature(*i)) { diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp index 9a8f83fa1c2..741d5b78285 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp @@ -323,7 +323,7 @@ class npc_fel_orc_convert : public CreatureScript { events.ScheduleEvent(EVENT_HEMORRHAGE, 3000); - if (Creature* Kurse = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE))) + if (Creature* Kurse = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_GRAND_WARLOCK_NETHEKURSE))) if (me->IsWithinDist(Kurse, 45.0f)) Kurse->AI()->SetData(SETDATA_DATA, SETDATA_PEON_AGGRO); } @@ -333,7 +333,7 @@ class npc_fel_orc_convert : public CreatureScript if (instance->GetBossState(DATA_NETHEKURSE) != IN_PROGRESS) return; - if (Creature* Kurse = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE))) + if (Creature* Kurse = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_GRAND_WARLOCK_NETHEKURSE))) Kurse->AI()->SetData(SETDATA_DATA, SETDATA_PEON_DEATH); } diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp index d61c40f8e3b..f60c65b0b7a 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -136,8 +136,6 @@ class boss_warbringer_omrogg : public CreatureScript { boss_warbringer_omroggAI(Creature* creature) : BossAI(creature, DATA_OMROGG) { - LeftHeadGUID = 0; - RightHeadGUID = 0; } void Reset() override @@ -145,13 +143,13 @@ class boss_warbringer_omrogg : public CreatureScript if (Unit* LeftHead = ObjectAccessor::GetUnit(*me, LeftHeadGUID)) { LeftHead->setDeathState(JUST_DIED); - LeftHeadGUID = 0; + LeftHeadGUID.Clear(); } if (Unit* RightHead = ObjectAccessor::GetUnit(*me, RightHeadGUID)) { RightHead->setDeathState(JUST_DIED); - RightHeadGUID = 0; + RightHeadGUID.Clear(); } AggroYell = false; @@ -363,8 +361,8 @@ class boss_warbringer_omrogg : public CreatureScript } private: - uint64 LeftHeadGUID; - uint64 RightHeadGUID; + ObjectGuid LeftHeadGUID; + ObjectGuid RightHeadGUID; int iaggro; int ithreat; int ikilling; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp index f1dfcc2b391..7145ebfd7aa 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp @@ -143,7 +143,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript void removeAdds() { - for (std::vector<uint64>::const_iterator itr = adds.begin(); itr!= adds.end(); ++itr) + for (GuidVector::const_iterator itr = adds.begin(); itr!= adds.end(); ++itr) { Creature* creature = ObjectAccessor::GetCreature(*me, *itr); if (creature && creature->IsAlive()) @@ -155,7 +155,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript } adds.clear(); - for (std::vector<uint64>::const_iterator itr = assassins.begin(); itr!= assassins.end(); ++itr) + for (GuidVector::const_iterator itr = assassins.begin(); itr!= assassins.end(); ++itr) { Creature* creature = ObjectAccessor::GetCreature(*me, *itr); if (creature && creature->IsAlive()) @@ -295,8 +295,8 @@ class boss_warchief_kargath_bladefist : public CreatureScript } private: - std::vector<uint64> adds; - std::vector<uint64> assassins; + GuidVector adds; + GuidVector assassins; uint32 Charge_timer; uint32 Blade_Dance_Timer; uint32 Summon_Assistant_Timer; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp index 8ee63ff03a2..838297aa21f 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp @@ -45,9 +45,6 @@ class instance_shattered_halls : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(EncounterCount); - nethekurseGUID = 0; - nethekurseDoor1GUID = 0; - nethekurseDoor2GUID = 0; } void OnGameObjectCreate(GameObject* go) override @@ -98,7 +95,7 @@ class instance_shattered_halls : public InstanceMapScript return true; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -112,13 +109,13 @@ class instance_shattered_halls : public InstanceMapScript return nethekurseDoor2GUID; break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 nethekurseGUID; - uint64 nethekurseDoor1GUID; - uint64 nethekurseDoor2GUID; + ObjectGuid nethekurseGUID; + ObjectGuid nethekurseDoor1GUID; + ObjectGuid nethekurseDoor2GUID; }; }; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp index 09cb72f1a47..8dd1aad5d4d 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp @@ -178,7 +178,7 @@ class boss_alar : public CreatureScript me->RemoveAllAuras(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->AttackStop(); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); me->SetSpeed(MOVE_RUN, 5.0f); me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MovePoint(0, waypoint[5][0], waypoint[5][1], waypoint[5][2]); @@ -494,7 +494,7 @@ class npc_ember_of_alar : public CreatureScript me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); if (instance->GetData(DATA_ALAREVENT) == 2) { - if (Unit* Alar = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ALAR))) + if (Unit* Alar = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ALAR))) { int32 AlarHealth = int32(Alar->GetHealth()) - int32(Alar->CountPctFromMaxHealth(3)); if (AlarHealth > 0) diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp index 63c01540af2..0a9e5665ec8 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp @@ -464,7 +464,7 @@ class npc_solarium_priest : public CreatureScript switch (urand(0, 1)) { case 0: - target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ASTROMANCER)); + target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ASTROMANCER)); break; case 1: target = me; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index 64deebce8b8..8b23ee172af 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -163,7 +163,7 @@ struct advisorbase_ai : public ScriptedAI bool FakeDeath; bool m_bDoubled_Health; uint32 DelayRes_Timer; - uint64 DelayRes_Target; + ObjectGuid DelayRes_Target; void Reset() override { @@ -175,7 +175,7 @@ struct advisorbase_ai : public ScriptedAI FakeDeath = false; DelayRes_Timer = 0; - DelayRes_Target = 0; + DelayRes_Target.Clear(); me->SetStandState(UNIT_STAND_STATE_STAND); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -183,7 +183,7 @@ struct advisorbase_ai : public ScriptedAI //reset encounter if (instance->GetData(DATA_KAELTHASEVENT) == 1 || instance->GetData(DATA_KAELTHASEVENT) == 3) - if (Creature* Kaelthas = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KAELTHAS))) + if (Creature* Kaelthas = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KAELTHAS))) Kaelthas->AI()->EnterEvadeMode(); } @@ -245,7 +245,7 @@ struct advisorbase_ai : public ScriptedAI me->ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->ClearAllReactives(); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MoveIdle(); me->SetStandState(UNIT_STAND_STATE_DEAD); @@ -290,7 +290,6 @@ class boss_kaelthas : public CreatureScript boss_kaelthasAI(Creature* creature) : ScriptedAI(creature), summons(me) { instance = creature->GetInstanceScript(); - memset(&m_auiAdvisorGuid, 0, sizeof(m_auiAdvisorGuid)); } InstanceScript* instance; @@ -316,7 +315,7 @@ class boss_kaelthas : public CreatureScript SummonList summons; - uint64 m_auiAdvisorGuid[MAX_ADVISORS]; + ObjectGuid m_auiAdvisorGuid[MAX_ADVISORS]; void Reset() override { @@ -363,10 +362,10 @@ class boss_kaelthas : public CreatureScript void StartEvent() { - m_auiAdvisorGuid[0] = instance->GetData64(DATA_THALADREDTHEDARKENER); - m_auiAdvisorGuid[1] = instance->GetData64(DATA_LORDSANGUINAR); - m_auiAdvisorGuid[2] = instance->GetData64(DATA_GRANDASTROMANCERCAPERNIAN); - m_auiAdvisorGuid[3] = instance->GetData64(DATA_MASTERENGINEERTELONICUS); + m_auiAdvisorGuid[0] = instance->GetGuidData(DATA_THALADREDTHEDARKENER); + m_auiAdvisorGuid[1] = instance->GetGuidData(DATA_LORDSANGUINAR); + m_auiAdvisorGuid[2] = instance->GetGuidData(DATA_GRANDASTROMANCERCAPERNIAN); + m_auiAdvisorGuid[3] = instance->GetGuidData(DATA_MASTERENGINEERTELONICUS); if (!m_auiAdvisorGuid[0] || !m_auiAdvisorGuid[1] || !m_auiAdvisorGuid[2] || !m_auiAdvisorGuid[3]) { @@ -927,7 +926,7 @@ class boss_kaelthas : public CreatureScript //Using packet workaround WorldPacket data(SMSG_MOVE_SET_CAN_FLY, 12); - data.append(unit->GetPackGUID()); + data << unit->GetPackGUID(); data << uint32(0); unit->SendMessageToSet(&data, true); } @@ -953,7 +952,7 @@ class boss_kaelthas : public CreatureScript { //Using packet workaround WorldPacket data(SMSG_MOVE_UNSET_CAN_FLY, 12); - data.append(unit->GetPackGUID()); + data << unit->GetPackGUID(); data << uint32(0); unit->SendMessageToSet(&data, true); } diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp index 6b78706b437..b518eb1cb8b 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp @@ -137,7 +137,7 @@ class boss_void_reaver : public CreatureScript target = me->GetVictim(); if (target) - me->CastSpell(target, SPELL_ARCANE_ORB, false, NULL, NULL, 0); + me->CastSpell(target, SPELL_ARCANE_ORB, false, NULL, NULL); ArcaneOrb_Timer = 3000; } else diff --git a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp index 07cbd68f741..2234547c76a 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp @@ -48,13 +48,13 @@ class instance_the_eye : public InstanceMapScript { instance_the_eye_InstanceMapScript(Map* map) : InstanceScript(map) { } - uint64 ThaladredTheDarkener; - uint64 LordSanguinar; - uint64 GrandAstromancerCapernian; - uint64 MasterEngineerTelonicus; - uint64 Kaelthas; - uint64 Astromancer; - uint64 Alar; + ObjectGuid ThaladredTheDarkener; + ObjectGuid LordSanguinar; + ObjectGuid GrandAstromancerCapernian; + ObjectGuid MasterEngineerTelonicus; + ObjectGuid Kaelthas; + ObjectGuid Astromancer; + ObjectGuid Alar; uint8 KaelthasEventPhase; uint8 AlarEventPhase; @@ -65,14 +65,6 @@ class instance_the_eye : public InstanceMapScript SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - ThaladredTheDarkener = 0; - LordSanguinar = 0; - GrandAstromancerCapernian = 0; - MasterEngineerTelonicus = 0; - Kaelthas = 0; - Astromancer = 0; - Alar = 0; - KaelthasEventPhase = 0; AlarEventPhase = 0; } @@ -114,7 +106,7 @@ class instance_the_eye : public InstanceMapScript } } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -126,7 +118,7 @@ class instance_the_eye : public InstanceMapScript case DATA_ASTROMANCER: return Astromancer; case DATA_ALAR: return Alar; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp index 3befc3742ff..1a8658c8fbc 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp @@ -322,7 +322,7 @@ class npc_warden_mellichar : public CreatureScript DoCast(me, SPELL_BUBBLE_VISUAL); instance->SetBossState(DATA_HARBINGER_SKYRISS, IN_PROGRESS); - instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); + instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), false); IsRunning = true; } @@ -356,7 +356,7 @@ class npc_warden_mellichar : public CreatureScript case 2: DoCast(me, SPELL_TARGET_ALPHA); instance->SetData(DATA_WARDEN_1, IN_PROGRESS); - instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); + instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), false); break; case 3: DoCast(me, SPELL_TARGET_BETA); diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp index 41bc93cfdfe..71e23a65d66 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp @@ -77,7 +77,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES))) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->SetData(1, 1); } @@ -163,7 +163,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000)); break; case EVENT_ME_FIRST: - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES))) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST); break; @@ -174,7 +174,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript if (HealthBelowPct(25) && !soccothratesTaunt) { - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES))) soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT); soccothratesTaunt = true; } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index 7563ecb40db..ec22baf2d4e 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -158,18 +158,18 @@ class boss_harbinger_skyriss : public CreatureScript { case 1: Talk(SAY_INTRO); - instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), true); + instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), true); ++Intro_Phase; Intro_Timer = 25000; break; case 2: Talk(SAY_AGGRO); - if (Unit* mellic = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MELLICHAR))) + if (Unit* mellic = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MELLICHAR))) { //should have a better way to do this. possibly spell exist. mellic->setDeathState(JUST_DIED); mellic->SetHealth(0); - instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); + instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), false); } ++Intro_Phase; Intro_Timer = 3000; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp index a519ec7207c..27de2786243 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp @@ -103,7 +103,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->SetData(1, 1); } @@ -161,7 +161,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript switch (eventId) { case EVENT_PREFIGHT_1: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1); events.ScheduleEvent(EVENT_PREFIGHT_2, 3000); break; @@ -170,7 +170,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_3, 3000); break; case EVENT_PREFIGHT_3: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2); events.ScheduleEvent(EVENT_PREFIGHT_4, 6000); break; @@ -179,7 +179,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_5, 2000); break; case EVENT_PREFIGHT_5: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3); events.ScheduleEvent(EVENT_PREFIGHT_6, 3000); break; @@ -188,7 +188,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_7, 2000); break; case EVENT_PREFIGHT_7: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f); events.ScheduleEvent(EVENT_PREFIGHT_8, 4000); break; @@ -197,7 +197,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_9, 4000); break; case EVENT_PREFIGHT_9: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) { dalliah->SetFacingToObject(me); me->SetFacingToObject(dalliah); @@ -251,7 +251,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000)); break; case EVENT_ME_FIRST: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST); break; @@ -262,7 +262,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript if (HealthBelowPct(25) && !dalliahTaunt) { - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT); dalliahTaunt = true; } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp index b092243637b..984af86e645 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp @@ -39,14 +39,8 @@ class instance_arcatraz : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - DalliahGUID = 0; - SoccothratesGUID = 0; - MellicharGUID = 0; - WardensShieldGUID = 0; - ConversationState = NOT_STARTED; - memset(StasisPodGUIDs, 0, 5 * sizeof(uint64)); memset(StasisPodStates, NOT_STARTED, 5 * sizeof(uint8)); } @@ -151,7 +145,7 @@ class instance_arcatraz : public InstanceMapScript return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -166,7 +160,7 @@ class instance_arcatraz : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -193,11 +187,11 @@ class instance_arcatraz : public InstanceMapScript } protected: - uint64 DalliahGUID; - uint64 SoccothratesGUID; - uint64 StasisPodGUIDs[5]; - uint64 MellicharGUID; - uint64 WardensShieldGUID; + ObjectGuid DalliahGUID; + ObjectGuid SoccothratesGUID; + ObjectGuid StasisPodGUIDs[5]; + ObjectGuid MellicharGUID; + ObjectGuid WardensShieldGUID; uint8 ConversationState; uint8 StasisPodStates[5]; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp index 0c322877808..c0591f7b874 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp @@ -66,8 +66,6 @@ class boss_high_botanist_freywinn : public CreatureScript { boss_high_botanist_freywinnAI(Creature* creature) : BossAI(creature, DATA_HIGH_BOTANIST_FREYWINN) { } - std::list<uint64> Adds_List; - uint32 SummonSeedling_Timer; uint32 TreeForm_Timer; uint32 MoveCheck_Timer; @@ -76,7 +74,7 @@ class boss_high_botanist_freywinn : public CreatureScript void Reset() override { - Adds_List.clear(); + summons.DespawnAll(); SummonSeedling_Timer = 6000; TreeForm_Timer = 30000; @@ -93,7 +91,12 @@ class boss_high_botanist_freywinn : public CreatureScript void JustSummoned(Creature* summoned) override { if (summoned->GetEntry() == NPC_FRAYER) - Adds_List.push_back(summoned->GetGUID()); + summons.Summon(summoned); + } + + void SummonedCreatureDespawn(Creature* summon) override + { + summons.Despawn(summon); } void DoSummonSeedling() @@ -147,18 +150,15 @@ class boss_high_botanist_freywinn : public CreatureScript { if (MoveCheck_Timer <= diff) { - if (!Adds_List.empty()) + for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr) { - for (std::list<uint64>::iterator itr = Adds_List.begin(); itr != Adds_List.end(); ++itr) + if (Unit* temp = ObjectAccessor::GetUnit(*me, *itr)) { - if (Unit* temp = ObjectAccessor::GetUnit(*me, *itr)) + if (!temp->IsAlive()) { - if (!temp->IsAlive()) - { - Adds_List.erase(itr); - ++DeadAddsCount; - break; - } + summons.erase(itr); + ++DeadAddsCount; + break; } } } @@ -168,7 +168,7 @@ class boss_high_botanist_freywinn : public CreatureScript if (DeadAddsCount >= 3) { - Adds_List.clear(); + summons.DespawnAll(); DeadAddsCount = 0; me->InterruptNonMeleeSpells(true); diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp index 8bc9d0982e3..56c62bbf50f 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp @@ -74,10 +74,9 @@ class npc_warp_splinter_treant : public CreatureScript { npc_warp_splinter_treantAI(Creature* creature) : ScriptedAI(creature) { - WarpGuid = 0; } - uint64 WarpGuid; + ObjectGuid WarpGuid; uint32 check_Timer; void Reset() override diff --git a/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp b/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp index eb46211fa59..19453bd3925 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp @@ -29,11 +29,6 @@ class instance_the_botanica : public InstanceMapScript instance_the_botanica_InstanceMapScript(Map* map) : InstanceScript(map) { SetHeaders(DataHeader); - CommanderSarannisGUID = 0; - HighBotanistFreywinnGUID = 0; - ThorngrinTheTenderGUID = 0; - LajGUID = 0; - WarpSplinterGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -60,7 +55,7 @@ class instance_the_botanica : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -78,7 +73,7 @@ class instance_the_botanica : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -102,11 +97,11 @@ class instance_the_botanica : public InstanceMapScript } protected: - uint64 CommanderSarannisGUID; - uint64 HighBotanistFreywinnGUID; - uint64 ThorngrinTheTenderGUID; - uint64 LajGUID; - uint64 WarpSplinterGUID; + ObjectGuid CommanderSarannisGUID; + ObjectGuid HighBotanistFreywinnGUID; + ObjectGuid ThorngrinTheTenderGUID; + ObjectGuid LajGUID; + ObjectGuid WarpSplinterGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/boss_doomwalker.cpp b/src/server/scripts/Outland/boss_doomwalker.cpp index a193e8ff880..7b72da0b02e 100644 --- a/src/server/scripts/Outland/boss_doomwalker.cpp +++ b/src/server/scripts/Outland/boss_doomwalker.cpp @@ -94,7 +94,7 @@ class boss_doomwalker : public CreatureScript { if (who && who->GetTypeId() == TYPEID_PLAYER && me->IsValidAttackTarget(who)) - if (who->HasAura(SPELL_MARK_DEATH, 0)) + if (who->HasAura(SPELL_MARK_DEATH)) who->CastSpell(who, SPELL_AURA_DEATH, 1); } diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index 03b8e7e69c8..5c95376cdfc 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -73,13 +73,6 @@ public: } } - uint64 OgreGUID; - - void Reset() override - { - OgreGUID = 0; - } - void UpdateAI(uint32 /*diff*/) override { } }; @@ -115,13 +108,12 @@ public: { npc_bloodmaul_bruteAI(Creature* creature) : ScriptedAI(creature) { - PlayerGUID = 0; hp30 = false; } void Reset() override { - PlayerGUID = 0; + PlayerGUID.Clear(); hp30 = false; } @@ -207,7 +199,7 @@ public: private: EventMap events; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; bool hp30; }; @@ -617,7 +609,7 @@ class npc_simon_bunny : public CreatureScript uint8 gameLevel; uint8 fails; uint8 gameTicks; - uint64 playerGUID; + ObjectGuid playerGUID; uint32 clusterIds[SIMON_MAX_COLORS]; float zCoordCorrection; float searchDistance; @@ -727,7 +719,7 @@ class npc_simon_bunny : public CreatureScript } // Used for getting involved player guid. Parameter id is used for defining if is a large(Monument) or small(Relic) node - void SetGUID(uint64 guid, int32 id) override + void SetGUID(ObjectGuid guid, int32 id) override { me->SetCanFly(true); @@ -1131,7 +1123,6 @@ public: { npc_oscillating_frequency_scanner_master_bunnyAI(Creature* creature) : ScriptedAI(creature) { - playerGuid = 0; timer = 500; } @@ -1170,7 +1161,7 @@ public: } private: - uint64 playerGuid; + ObjectGuid playerGuid; uint32 timer; }; diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index 0da70207a04..01ad2ce334f 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -310,7 +310,7 @@ public: void Reset() override { checkTimer = 5000; //check for creature every 5 sec - helboarGUID = 0; + helboarGUID.Clear(); } void MovementInform(uint32 type, uint32 id) override @@ -352,7 +352,7 @@ public: private: uint32 checkTimer; - uint64 helboarGUID; + ObjectGuid helboarGUID; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Outland/zone_nagrand.cpp b/src/server/scripts/Outland/zone_nagrand.cpp index a8a99d757e7..b8dd1393600 100644 --- a/src/server/scripts/Outland/zone_nagrand.cpp +++ b/src/server/scripts/Outland/zone_nagrand.cpp @@ -299,7 +299,7 @@ public: { corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()+5, go->GetPositionY(), go->GetPositionZ()); if (player) - player->KilledMonsterCredit(NPC_CORKI_CREDIT_1, 0); + player->KilledMonsterCredit(NPC_CORKI_CREDIT_1); } } @@ -309,7 +309,7 @@ public: { corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()-5, go->GetPositionY(), go->GetPositionZ()); if (player) - player->KilledMonsterCredit(NPC_CORKI_2, 0); + player->KilledMonsterCredit(NPC_CORKI_2); } } @@ -319,7 +319,7 @@ public: { corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()+4, go->GetPositionY(), go->GetPositionZ()); if (player) - player->KilledMonsterCredit(NPC_CORKI_CREDIT_3, 0); + player->KilledMonsterCredit(NPC_CORKI_CREDIT_3); } } return true; @@ -594,7 +594,7 @@ class go_warmaul_prison : public GameObjectScript if (Creature* prisoner = go->FindNearestCreature(NPC_MAGHAR_PRISONER, 5.0f)) { - player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0); + player->KilledMonsterCredit(NPC_MAGHAR_PRISONER); prisoner->AI()->Talk(SAY_FREE, player); prisoner->DespawnOrUnsummon(6000); diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp index f82c1f5fb58..eb2fae03202 100644 --- a/src/server/scripts/Outland/zone_netherstorm.cpp +++ b/src/server/scripts/Outland/zone_netherstorm.cpp @@ -83,9 +83,9 @@ public: { npc_commander_dawnforgeAI(Creature* creature) : ScriptedAI(creature) { } - uint64 PlayerGUID; - uint64 ardonisGUID; - uint64 pathaleonGUID; + ObjectGuid PlayerGUID; + ObjectGuid ardonisGUID; + ObjectGuid pathaleonGUID; uint32 Phase; uint32 PhaseSubphase; @@ -94,9 +94,9 @@ public: void Reset() override { - PlayerGUID = 0; - ardonisGUID = 0; - pathaleonGUID = 0; + PlayerGUID.Clear(); + ardonisGUID.Clear(); + pathaleonGUID.Clear(); Phase = 1; PhaseSubphase = 0; @@ -415,7 +415,6 @@ public: Materialize = false; Drained = false; WeakPercent = 25; - PlayerGUID = 0; ManaBurnTimer = 5000; } @@ -424,7 +423,7 @@ public: bool Drained; uint8 WeakPercent; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 ManaBurnTimer; @@ -435,7 +434,7 @@ public: Drained = false; WeakPercent = 25 + (rand32() % 16); // 25-40 - PlayerGUID = 0; + PlayerGUID.Clear(); ManaBurnTimer = 5000 + (rand32() % 3 * 1000); // 5-8 sec cd @@ -725,7 +724,7 @@ class go_captain_tyralius_prison : public GameObjectScript go->UseDoorOrButton(); if (Creature* tyralius = go->FindNearestCreature(NPC_CAPTAIN_TYRALIUS, 1.0f)) { - player->KilledMonsterCredit(NPC_CAPTAIN_TYRALIUS, 0); + player->KilledMonsterCredit(NPC_CAPTAIN_TYRALIUS); tyralius->AI()->Talk(SAY_FREE); tyralius->DespawnOrUnsummon(8000); } diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index db34665e641..fe323452c29 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -24,6 +24,8 @@ SDCategory: Shadowmoon Valley EndScriptData */ /* ContentData +npc_invis_infernal_caster +npc_infernal_attacker npc_mature_netherwing_drake npc_enslaved_netherwing_drake npc_drake_dealer_hurlunk @@ -48,6 +50,141 @@ EndContentData */ #include "WorldSession.h" /*##### +# npc_invis_infernal_caster +#####*/ + +enum InvisInfernalCaster +{ + EVENT_CAST_SUMMON_INFERNAL = 1, + NPC_INFERNAL_ATTACKER = 21419, + MODEL_INVISIBLE = 20577, + MODEL_INFERNAL = 17312, + SPELL_SUMMON_INFERNAL = 37277, + TYPE_INFERNAL = 1, + DATA_DIED = 1 +}; + +class npc_invis_infernal_caster : public CreatureScript +{ +public: + npc_invis_infernal_caster() : CreatureScript("npc_invis_infernal_caster") { } + + struct npc_invis_infernal_casterAI : public ScriptedAI + { + npc_invis_infernal_casterAI(Creature* creature) : ScriptedAI(creature) { } + + void Reset() override + { + ground = me->GetMap()->GetHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZMinusOffset()); + SummonInfernal(); + events.ScheduleEvent(EVENT_CAST_SUMMON_INFERNAL, urand(1000, 3000)); + } + + void SetData(uint32 id, uint32 data) override + { + if (id == TYPE_INFERNAL && data == DATA_DIED) + SummonInfernal(); + } + + void SummonInfernal() + { + Creature* infernal = me->SummonCreature(NPC_INFERNAL_ATTACKER, me->GetPositionX(), me->GetPositionY(), ground + 0.05f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000); + infernalGUID = infernal->GetGUID(); + } + + void UpdateAI(uint32 diff) override + { + events.Update(diff); + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_CAST_SUMMON_INFERNAL: + { + if (Unit* infernal = ObjectAccessor::GetUnit(*me, infernalGUID)) + if (infernal->GetDisplayId() == MODEL_INVISIBLE) + me->CastSpell(infernal, SPELL_SUMMON_INFERNAL, true); + events.ScheduleEvent(EVENT_CAST_SUMMON_INFERNAL, 12000); + break; + } + default: + break; + } + } + } + + private: + EventMap events; + ObjectGuid infernalGUID; + float ground; + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_invis_infernal_casterAI(creature); + } +}; + +/*##### +# npc_infernal_attacker +#####*/ + +class npc_infernal_attacker : public CreatureScript +{ +public: + npc_infernal_attacker() : CreatureScript("npc_infernal_attacker") { } + + struct npc_infernal_attackerAI : public ScriptedAI + { + npc_infernal_attackerAI(Creature* creature) : ScriptedAI(creature) { } + + void Reset() override + { + me->SetDisplayId(MODEL_INVISIBLE); + me->GetMotionMaster()->MoveRandom(5.0f); + } + + void IsSummonedBy(Unit* summoner) override + { + if (summoner->ToCreature()) + caster = summoner->ToCreature(); + } + + void JustDied(Unit* /*killer*/) override + { + if (caster) + caster->AI()->SetData(TYPE_INFERNAL, DATA_DIED); + } + + void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override + { + if (spell->Id == SPELL_SUMMON_INFERNAL) + { + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_PACIFIED | UNIT_FLAG_NOT_SELECTABLE); + me->SetDisplayId(MODEL_INFERNAL); + } + } + + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + DoMeleeAttackIfReady(); + } + + private: + Creature* caster; + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_infernal_attackerAI(creature); + } +}; + +/*##### # npc_mature_netherwing_drake #####*/ @@ -80,7 +217,7 @@ public: { npc_mature_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature) { } - uint64 uiPlayerGUID; + ObjectGuid uiPlayerGUID; bool bCanEat; bool bIsEating; @@ -90,7 +227,7 @@ public: void Reset() override { - uiPlayerGUID = 0; + uiPlayerGUID.Clear(); bCanEat = false; bIsEating = false; @@ -154,7 +291,7 @@ public: if (Player* player = ObjectAccessor::GetPlayer(*me, uiPlayerGUID)) { - player->KilledMonsterCredit(NPC_EVENT_PINGER, 0); + player->KilledMonsterCredit(NPC_EVENT_PINGER); if (GameObject* go = player->FindNearestGameObject(GO_CARCASS, 10)) go->Delete(); @@ -218,12 +355,11 @@ public: { npc_enslaved_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature) { - PlayerGUID = 0; Tapped = false; Reset(); } - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 FlyTimer; bool Tapped; @@ -276,7 +412,7 @@ public: if (player) DoCast(player, SPELL_FORCE_OF_NELTHARAKU, true); - PlayerGUID = 0; + PlayerGUID.Clear(); } me->SetVisible(false); me->SetDisableGravity(false); @@ -349,13 +485,13 @@ public: { npc_dragonmaw_peonAI(Creature* creature) : ScriptedAI(creature) { } - uint64 PlayerGUID; + ObjectGuid PlayerGUID; bool Tapped; uint32 PoisonTimer; void Reset() override { - PlayerGUID = 0; + PlayerGUID.Clear(); Tapped = false; PoisonTimer = 0; } @@ -400,7 +536,7 @@ public: { Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID); if (player && player->GetQuestStatus(11020) == QUEST_STATUS_INCOMPLETE) - player->KilledMonsterCredit(23209, 0); + player->KilledMonsterCredit(23209); } PoisonTimer = 0; me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); @@ -460,7 +596,7 @@ public: uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 30658, 1, NULL); if (msg == EQUIP_ERR_OK) { - player->StoreNewItem(dest, 30658, 1, true); + player->StoreNewItem(dest, 30658, true); player->PlayerTalkClass->ClearMenus(); } } @@ -470,7 +606,7 @@ public: uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 30659, 1, NULL); if (msg == EQUIP_ERR_OK) { - player->StoreNewItem(dest, 30659, 1, true); + player->StoreNewItem(dest, 30659, true); player->PlayerTalkClass->ClearMenus(); } } @@ -583,8 +719,8 @@ public: { npc_overlord_morghorAI(Creature* creature) : ScriptedAI(creature) { } - uint64 PlayerGUID; - uint64 IllidanGUID; + ObjectGuid PlayerGUID; + ObjectGuid IllidanGUID; uint32 ConversationTimer; uint32 Step; @@ -593,8 +729,8 @@ public: void Reset() override { - PlayerGUID = 0; - IllidanGUID = 0; + PlayerGUID.Clear(); + IllidanGUID.Clear(); ConversationTimer = 0; Step = 0; @@ -798,7 +934,7 @@ public: case 30: { if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f)) - Yarzill->SetTarget(0); + Yarzill->SetTarget(ObjectGuid::Empty); return 5000; } break; @@ -814,7 +950,7 @@ public: return 5000; break; case 33: - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); Reset(); return 100; break; @@ -1123,8 +1259,8 @@ public: uint8 AnimationCount; - uint64 LordIllidanGUID; - uint64 AggroTargetGUID; + ObjectGuid LordIllidanGUID; + ObjectGuid AggroTargetGUID; bool Timers; @@ -1132,13 +1268,13 @@ public: { AnimationTimer = 4000; AnimationCount = 0; - LordIllidanGUID = 0; - AggroTargetGUID = 0; + LordIllidanGUID.Clear(); + AggroTargetGUID.Clear(); Timers = false; me->AddUnitState(UNIT_STATE_ROOT); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); } void EnterCombat(Unit* /*who*/) override { } @@ -1274,7 +1410,7 @@ public: { npc_lord_illidan_stormrageAI(Creature* creature) : ScriptedAI(creature) { } - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 WaveTimer; uint32 AnnounceTimer; @@ -1288,7 +1424,7 @@ public: void Reset() override { - PlayerGUID = 0; + PlayerGUID.Clear(); WaveTimer = 10000; AnnounceTimer = 7000; @@ -1416,13 +1552,13 @@ public: { npc_illidari_spawnAI(Creature* creature) : ScriptedAI(creature) { } - uint64 LordIllidanGUID; + ObjectGuid LordIllidanGUID; uint32 SpellTimer1, SpellTimer2, SpellTimer3; bool Timers; void Reset() override { - LordIllidanGUID = 0; + LordIllidanGUID.Clear(); Timers = false; } @@ -1727,7 +1863,7 @@ public: if (Unit* owner = totemOspirits->GetOwner()) if (Player* player = owner->ToPlayer()) - player->KilledMonsterCredit(credit, 0); + player->KilledMonsterCredit(credit); DoCast(totemOspirits, SPELL_SOUL_CAPTURED); } } @@ -1827,6 +1963,8 @@ public: void AddSC_shadowmoon_valley() { + new npc_invis_infernal_caster(); + new npc_infernal_attacker(); new npc_mature_netherwing_drake(); new npc_enslaved_netherwing_drake(); new npc_dragonmaw_peon(); diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp index da7ae03a8ee..223a144e33b 100644 --- a/src/server/scripts/Outland/zone_terokkar_forest.cpp +++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp @@ -323,7 +323,7 @@ public: if (rand32() % 100 < 25) { me->SummonCreature(QUEST_TARGET, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000); - player->KilledMonsterCredit(QUEST_TARGET, 0); + player->KilledMonsterCredit(QUEST_TARGET); } else me->SummonCreature(netherwebVictims[rand32() % 6], 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000); diff --git a/src/server/scripts/Pet/pet_dk.cpp b/src/server/scripts/Pet/pet_dk.cpp index b24336cb33c..edbec51f4b1 100644 --- a/src/server/scripts/Pet/pet_dk.cpp +++ b/src/server/scripts/Pet/pet_dk.cpp @@ -59,7 +59,7 @@ class npc_pet_dk_ebon_gargoyle : public CreatureScript Initialize(); CasterAI::InitializeAI(); - uint64 ownerGuid = me->GetOwnerGUID(); + ObjectGuid ownerGuid = me->GetOwnerGUID(); if (!ownerGuid) return; @@ -69,7 +69,7 @@ class npc_pet_dk_ebon_gargoyle : public CreatureScript Trinity::UnitListSearcher<Trinity::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, targets, u_check); me->VisitNearbyObject(30.0f, searcher); for (std::list<Unit*>::const_iterator iter = targets.begin(); iter != targets.end(); ++iter) - if ((*iter)->GetAura(SPELL_DK_SUMMON_GARGOYLE_1, ownerGuid)) + if ((*iter)->HasAura(SPELL_DK_SUMMON_GARGOYLE_1, ownerGuid)) { me->Attack((*iter), false); break; diff --git a/src/server/scripts/Pet/pet_generic.cpp b/src/server/scripts/Pet/pet_generic.cpp index d0e950dec32..538dca8e4b9 100644 --- a/src/server/scripts/Pet/pet_generic.cpp +++ b/src/server/scripts/Pet/pet_generic.cpp @@ -41,17 +41,11 @@ class npc_pet_gen_mojo : public CreatureScript { npc_pet_gen_mojoAI(Creature* creature) : ScriptedAI(creature) { - Initialize(); - } - - void Initialize() - { - _victimGUID = 0; } void Reset() override { - Initialize(); + _victimGUID.Clear(); if (Unit* owner = me->GetOwner()) me->GetMotionMaster()->MoveFollow(owner, 0.0f, 0.0f); @@ -84,7 +78,7 @@ class npc_pet_gen_mojo : public CreatureScript } private: - uint64 _victimGUID; + ObjectGuid _victimGUID; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 681a659ae71..36bf8389cc2 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -353,7 +353,7 @@ class spell_dk_bloodworms : public SpellScriptLoader class CorpseExplosionCheck { public: - explicit CorpseExplosionCheck(uint64 casterGUID, bool allowGhoul) : _casterGUID(casterGUID), + explicit CorpseExplosionCheck(ObjectGuid casterGUID, bool allowGhoul) : _casterGUID(casterGUID), _allowGhoul(allowGhoul) { } bool operator()(WorldObject* obj) const @@ -370,7 +370,7 @@ public: } private: - uint64 _casterGUID; + ObjectGuid _casterGUID; bool _allowGhoul; }; diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index 5f432bb8b61..dbcc7716f32 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -211,7 +211,10 @@ class spell_dru_innervate : public SpellScriptLoader void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/) { - amount = CalculatePct(int32(GetUnitOwner()->GetCreatePowers(POWER_MANA) / aurEff->GetTotalTicks()), amount); + if (Unit* caster = GetCaster()) + amount = int32(CalculatePct(caster->GetCreatePowers(POWER_MANA), amount) / aurEff->GetTotalTicks()); + else + amount = 0; } void Register() override diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index e198a6a0c61..e5ef3d5b7b7 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -217,7 +217,7 @@ class spell_gen_animal_blood : public SpellScriptLoader void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { // Remove all auras with spell id 46221, except the one currently being applied - while (Aura* aur = GetUnitOwner()->GetOwnedAura(SPELL_ANIMAL_BLOOD, 0, 0, 0, GetAura())) + while (Aura* aur = GetUnitOwner()->GetOwnedAura(SPELL_ANIMAL_BLOOD, ObjectGuid::Empty, ObjectGuid::Empty, 0, GetAura())) GetUnitOwner()->RemoveOwnedAura(aur); } @@ -1866,7 +1866,7 @@ class spell_gen_mount : public SpellScriptLoader if (Player* target = GetHitPlayer()) { // Prevent stacking of mounts and client crashes upon dismounting - target->RemoveAurasByType(SPELL_AURA_MOUNTED, 0, GetHitAura()); + target->RemoveAurasByType(SPELL_AURA_MOUNTED, ObjectGuid::Empty, GetHitAura()); // Triggered spell id dependent on riding skill and zone bool canFly = false; @@ -3682,6 +3682,37 @@ class spell_gen_gm_freeze : public SpellScriptLoader } }; +class spell_gen_stand : public SpellScriptLoader +{ +public: + spell_gen_stand() : SpellScriptLoader("spell_gen_stand") { } + + class spell_gen_stand_SpellScript : public SpellScript + { + PrepareSpellScript(spell_gen_stand_SpellScript); + + void HandleScript(SpellEffIndex /*eff*/) + { + Creature* target = GetHitCreature(); + if (!target) + return; + + target->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_STAND); + target->HandleEmoteCommand(EMOTE_STATE_NONE); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_gen_stand_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_gen_stand_SpellScript(); + } +}; + void AddSC_generic_spell_scripts() { new spell_gen_absorb0_hitlimit1(); @@ -3763,4 +3794,5 @@ void AddSC_generic_spell_scripts() new spell_gen_whisper_gulch_yogg_saron_whisper(); new spell_gen_eject_all_passengers(); new spell_gen_gm_freeze(); + new spell_gen_stand(); } diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index a128c30ad50..ba3d6ce490a 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -504,7 +504,7 @@ class spell_pri_mind_sear : public SpellScriptLoader void FilterTargets(std::list<WorldObject*>& unitList) { - unitList.remove_if(Trinity::ObjectGUIDCheck(GetCaster()->GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT))); + unitList.remove_if(Trinity::ObjectGUIDCheck(GetCaster()->GetChannelObjectGuid())); } void Register() override diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index e135bb08e73..9c65567fe7f 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -280,8 +280,8 @@ class spell_q11396_11399_force_shield_arcane_purple_x3 : public SpellScriptLoade void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - target->AddUnitState(UNIT_STATE_ROOT); + target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + target->AddUnitState(UNIT_STATE_ROOT); } void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -754,7 +754,7 @@ class spell_q12937_relief_for_the_fallen : public SpellScriptLoader if (Creature* target = GetHitCreature()) { caster->CastSpell(caster, SPELL_TRIGGER_AID_OF_THE_EARTHEN, true, NULL); - caster->KilledMonsterCredit(NPC_FALLEN_EARTHEN_DEFENDER, 0); + caster->KilledMonsterCredit(NPC_FALLEN_EARTHEN_DEFENDER); target->DespawnOrUnsummon(); } } @@ -885,7 +885,7 @@ class spell_q12659_ahunaes_knife : public SpellScriptLoader if (Creature* target = GetHitCreature()) { target->DespawnOrUnsummon(); - caster->KilledMonsterCredit(NPC_SCALPS_KC_BUNNY, 0); + caster->KilledMonsterCredit(NPC_SCALPS_KC_BUNNY); } } @@ -929,7 +929,7 @@ class spell_q9874_liquid_fire : public SpellScriptLoader if (Creature* target = GetHitCreature()) if (target && !target->HasAura(SPELL_FLAMES)) { - caster->KilledMonsterCredit(NPC_VILLAGER_KILL_CREDIT, 0); + caster->KilledMonsterCredit(NPC_VILLAGER_KILL_CREDIT); target->CastSpell(target, SPELL_FLAMES, true); target->DespawnOrUnsummon(60000); } @@ -973,7 +973,7 @@ class spell_q12805_lifeblood_dummy : public SpellScriptLoader Player* caster = GetCaster()->ToPlayer(); if (Creature* target = GetHitCreature()) { - caster->KilledMonsterCredit(NPC_SHARD_KILL_CREDIT, 0); + caster->KilledMonsterCredit(NPC_SHARD_KILL_CREDIT); target->CastSpell(target, uint32(GetEffectValue()), true); target->DespawnOrUnsummon(2000); } @@ -1016,7 +1016,7 @@ class spell_q13280_13283_plant_battle_standard: public SpellScriptLoader Unit* caster = GetCaster(); if (caster->IsVehicle()) if (Unit* player = caster->GetVehicleKit()->GetPassenger(0)) - player->ToPlayer()->KilledMonsterCredit(NPC_KING_OF_THE_MOUNTAINT_KC, 0); + player->ToPlayer()->KilledMonsterCredit(NPC_KING_OF_THE_MOUNTAINT_KC); } void Register() override @@ -1356,7 +1356,7 @@ class spell_q12372_destabilize_azure_dragonshrine_dummy : public SpellScriptLoad if (Vehicle* vehicle = caster->GetVehicleKit()) if (Unit* passenger = vehicle->GetPassenger(0)) if (Player* player = passenger->ToPlayer()) - player->KilledMonsterCredit(NPC_WYRMREST_TEMPLE_CREDIT, 0); + player->KilledMonsterCredit(NPC_WYRMREST_TEMPLE_CREDIT); } void Register() override @@ -1777,7 +1777,7 @@ class spell_q12847_summon_soul_moveto_bunny : public SpellScriptLoader } }; - SpellScript *GetSpellScript() const override + SpellScript* GetSpellScript() const override { return new spell_q12847_summon_soul_moveto_bunny_SpellScript(); } @@ -2348,6 +2348,52 @@ class spell_q14100_q14111_make_player_destroy_totems : public SpellScriptLoader } }; +enum Fumping +{ + SPELL_SUMMON_SAND_GNOME = 39240, + SPELL_SUMMON_BONE_SLICER = 39241 +}; + +// 39238 - Fumping +class spell_q10929_fumping : SpellScriptLoader +{ + public: + spell_q10929_fumping() : SpellScriptLoader("spell_q10929_fumping") { } + + class spell_q10929_fumpingAuraScript : public AuraScript + { + PrepareAuraScript(spell_q10929_fumpingAuraScript); + + bool Validate(SpellInfo const* /*spell*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_SAND_GNOME)) + return false; + if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_BONE_SLICER)) + return false; + return true; + } + + void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE) + return; + + if (Unit* caster = GetCaster()) + caster->CastSpell(caster, urand(SPELL_SUMMON_SAND_GNOME, SPELL_SUMMON_BONE_SLICER), true); + } + + void Register() override + { + OnEffectRemove += AuraEffectRemoveFn(spell_q10929_fumpingAuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } + }; + + AuraScript* GetAuraScript() const override + { + return new spell_q10929_fumpingAuraScript(); + } +}; + void AddSC_quest_spell_scripts() { new spell_q55_sacred_cleansing(); @@ -2405,4 +2451,5 @@ void AddSC_quest_spell_scripts() new spell_q12919_gymers_throw(); new spell_q13400_illidan_kill_master(); new spell_q14100_q14111_make_player_destroy_totems(); + new spell_q10929_fumping(); } diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp index a04fdba57b9..9c9a75d853b 100644 --- a/src/server/scripts/Spells/spell_rogue.cpp +++ b/src/server/scripts/Spells/spell_rogue.cpp @@ -314,7 +314,7 @@ class spell_rog_killing_spree : public SpellScriptLoader { while (!_targets.empty()) { - uint64 guid = Trinity::Containers::SelectRandomContainerElement(_targets); + ObjectGuid guid = Trinity::Containers::SelectRandomContainerElement(_targets); if (Unit* target = ObjectAccessor::GetUnit(*GetTarget(), guid)) { GetTarget()->CastSpell(target, SPELL_ROGUE_KILLING_SPREE_TELEPORT, true); @@ -345,7 +345,7 @@ class spell_rog_killing_spree : public SpellScriptLoader } private: - std::list<uint64> _targets; + GuidList _targets; }; AuraScript* GetAuraScript() const override diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index 58820b1e215..9709532f56f 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -271,13 +271,13 @@ class spell_warr_deep_wounds : public SpellScriptLoader ApplyPct(damage, 16 * GetSpellInfo()->GetRank()); SpellInfo const* spellInfo = sSpellMgr->EnsureSpellInfo(SPELL_WARRIOR_DEEP_WOUNDS_PERIODIC); - uint32 ticks = spellInfo->GetDuration() / spellInfo->Effects[EFFECT_0].Amplitude; + uint32 ticks = uint32(spellInfo->GetDuration()) / spellInfo->Effects[EFFECT_0].Amplitude; // Add remaining ticks to damage done if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_WARRIOR_DEEP_WOUNDS_PERIODIC, EFFECT_0, caster->GetGUID())) - damage += aurEff->GetDamage() * (ticks - aurEff->GetTickNumber()); + damage += aurEff->GetDamage() * int32(ticks - aurEff->GetTickNumber()); - damage /= ticks; + damage /= int32(ticks); caster->CastCustomSpell(target, SPELL_WARRIOR_DEEP_WOUNDS_PERIODIC, &damage, NULL, NULL, true); } diff --git a/src/server/scripts/World/action_ip_logger.cpp b/src/server/scripts/World/action_ip_logger.cpp index 057f3d6ee36..2977f4e974a 100644 --- a/src/server/scripts/World/action_ip_logger.cpp +++ b/src/server/scripts/World/action_ip_logger.cpp @@ -252,24 +252,24 @@ public: CharacterDeleteActionIpLogger() : PlayerScript("CharacterDeleteActionIpLogger") { } // CHARACTER_DELETE = 10 - void OnDelete(uint64 guid, uint32 accountId) override + void OnDelete(ObjectGuid guid, uint32 accountId) override { DeleteIPLogAction(guid, accountId, CHARACTER_DELETE); } // CHARACTER_FAILED_DELETE = 11 - void OnFailedDelete(uint64 guid, uint32 accountId) override + void OnFailedDelete(ObjectGuid guid, uint32 accountId) override { DeleteIPLogAction(guid, accountId, CHARACTER_FAILED_DELETE); } - void DeleteIPLogAction(uint64 guid, uint32 playerGuid, IPLoggingTypes aType) + void DeleteIPLogAction(ObjectGuid guid, uint32 playerGuid, IPLoggingTypes aType) { // Action IP Logger is only intialized if config is set up // Else, this script isn't loaded in the first place: We require no config check. // We declare all the required variables - uint32 characterGuid = GUID_LOPART(guid); // We have no access to any member function of Player* or WorldSession*. So use old-fashioned way. + uint32 characterGuid = guid.GetCounter(); // We have no access to any member function of Player* or WorldSession*. So use old-fashioned way. // Query playerGuid/accountId, as we only have characterGuid std::string systemNote = "ERROR"; // "ERROR" is a placeholder here. We change it later. diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp index dcba4cf9573..a1e328ebaf0 100644 --- a/src/server/scripts/World/areatrigger_scripts.cpp +++ b/src/server/scripts/World/areatrigger_scripts.cpp @@ -431,8 +431,8 @@ class AreaTrigger_at_frostgrips_hollow : public AreaTriggerScript public: AreaTrigger_at_frostgrips_hollow() : AreaTriggerScript("at_frostgrips_hollow") { - stormforgedMonitorGUID = 0; - stormforgedEradictorGUID = 0; + stormforgedMonitorGUID.Clear(); + stormforgedEradictorGUID.Clear(); } bool OnTrigger(Player* player, AreaTriggerEntry const* /* trigger */) override @@ -469,8 +469,8 @@ public: } private: - uint64 stormforgedMonitorGUID; - uint64 stormforgedEradictorGUID; + ObjectGuid stormforgedMonitorGUID; + ObjectGuid stormforgedEradictorGUID; }; void AddSC_areatrigger_scripts() diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp index a00c9465a05..01d36783d20 100644 --- a/src/server/scripts/World/boss_emerald_dragons.cpp +++ b/src/server/scripts/World/boss_emerald_dragons.cpp @@ -418,7 +418,7 @@ class npc_spirit_shade : public CreatureScript struct npc_spirit_shadeAI : public PassiveAI { - npc_spirit_shadeAI(Creature* creature) : PassiveAI(creature), _summonerGuid(0) + npc_spirit_shadeAI(Creature* creature) : PassiveAI(creature), _summonerGuid() { } @@ -430,7 +430,7 @@ class npc_spirit_shade : public CreatureScript void MovementInform(uint32 moveType, uint32 data) override { - if (moveType == FOLLOW_MOTION_TYPE && data == _summonerGuid) + if (moveType == FOLLOW_MOTION_TYPE && data == _summonerGuid.GetCounter()) { me->CastSpell((Unit*)NULL, SPELL_DARK_OFFERING, false); me->DespawnOrUnsummon(1000); @@ -438,7 +438,7 @@ class npc_spirit_shade : public CreatureScript } private: - uint64 _summonerGuid; + ObjectGuid _summonerGuid; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index 7ba043f2a2e..63562436196 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -770,7 +770,7 @@ public: return false; pPrisoner->DisappearAndDie(); - player->KilledMonsterCredit(NPC_EBON_BLADE_PRISONER_HUMAN, 0); + player->KilledMonsterCredit(NPC_EBON_BLADE_PRISONER_HUMAN); switch (pPrisoner->GetEntry()) { case NPC_EBON_BLADE_PRISONER_HUMAN: @@ -988,7 +988,7 @@ public: if (qInfo) { /// @todo prisoner should help player for a short period of time - player->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0], 0); + player->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0]); pPrisoner->DisappearAndDie(); } return true; @@ -1020,7 +1020,7 @@ public: if (pTadpole) { pTadpole->DisappearAndDie(); - player->KilledMonsterCredit(NPC_WINTERFIN_TADPOLE, 0); + player->KilledMonsterCredit(NPC_WINTERFIN_TADPOLE); //FIX: Summon minion tadpole } } @@ -1154,7 +1154,7 @@ class go_gjalerbron_cage : public GameObjectScript { if (Creature* prisoner = go->FindNearestCreature(NPC_GJALERBRON_PRISONER, 5.0f)) { - player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, 0); + player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER); prisoner->AI()->Talk(SAY_FREE); prisoner->DespawnOrUnsummon(6000); diff --git a/src/server/scripts/World/guards.cpp b/src/server/scripts/World/guards.cpp index bd953a285ab..13d811f3ff1 100644 --- a/src/server/scripts/World/guards.cpp +++ b/src/server/scripts/World/guards.cpp @@ -280,7 +280,7 @@ public: { banishTimer = 5000; exileTimer = 8500; - playerGUID = 0; + playerGUID.Clear(); canTeleport = false; } @@ -303,7 +303,7 @@ public: temp->CastSpell(temp, SPELL_EXILE, true); temp->CastSpell(temp, SPELL_BANISH_TELEPORT, true); } - playerGUID = 0; + playerGUID.Clear(); exileTimer = 8500; canTeleport = false; } else exileTimer -= diff; @@ -327,7 +327,7 @@ public: private: uint32 exileTimer; uint32 banishTimer; - uint64 playerGUID; + ObjectGuid playerGUID; bool canTeleport; }; @@ -353,7 +353,7 @@ public: { banishTimer = 5000; exileTimer = 8500; - playerGUID = 0; + playerGUID.Clear(); canTeleport = false; } @@ -376,7 +376,7 @@ public: temp->CastSpell(temp, SPELL_EXILE, true); temp->CastSpell(temp, SPELL_BANISH_TELEPORT, true); } - playerGUID = 0; + playerGUID.Clear(); exileTimer = 8500; canTeleport = false; } else exileTimer -= diff; @@ -399,7 +399,7 @@ public: private: uint32 exileTimer; uint32 banishTimer; - uint64 playerGUID; + ObjectGuid playerGUID; bool canTeleport; }; diff --git a/src/server/scripts/World/item_scripts.cpp b/src/server/scripts/World/item_scripts.cpp index a191f37c76c..423ac2e7c54 100644 --- a/src/server/scripts/World/item_scripts.cpp +++ b/src/server/scripts/World/item_scripts.cpp @@ -351,7 +351,7 @@ public: { pMammoth->AI()->DoAction(1); pTrap->SetGoState(GO_STATE_READY); - player->KilledMonsterCredit(NPC_TRAPPED_MAMMOTH_CALF, 0); + player->KilledMonsterCredit(NPC_TRAPPED_MAMMOTH_CALF); return true; } } diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index ff42743c496..f613704164e 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -124,7 +124,7 @@ public: npc_air_force_botsAI(Creature* creature) : ScriptedAI(creature) { SpawnAssoc = NULL; - SpawnedGUID = 0; + SpawnedGUID.Clear(); // find the correct spawnhandling static uint32 entryCount = sizeof(spawnAssociations) / sizeof(SpawnAssociation); @@ -154,7 +154,7 @@ public: } SpawnAssociation* SpawnAssoc; - uint64 SpawnedGUID; + ObjectGuid SpawnedGUID; void Reset() override { } @@ -196,11 +196,11 @@ public: if (!playerTarget) return; - Creature* lastSpawnedGuard = SpawnedGUID == 0 ? NULL : GetSummonedGuard(); + Creature* lastSpawnedGuard = SpawnedGUID.IsEmpty() ? NULL : GetSummonedGuard(); // prevent calling Unit::GetUnit at next MoveInLineOfSight call - speedup if (!lastSpawnedGuard) - SpawnedGUID = 0; + SpawnedGUID.Clear(); switch (SpawnAssoc->spawnType) { @@ -597,7 +597,7 @@ public: void Initialize() { - PlayerGUID = 0; + PlayerGUID.Clear(); SummonPatientTimer = 10000; SummonPatientCount = 0; @@ -610,7 +610,7 @@ public: Event = false; } - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 SummonPatientTimer; uint32 SummonPatientCount; @@ -619,7 +619,7 @@ public: bool Event; - std::list<uint64> Patients; + GuidList Patients; std::vector<Location*> Coordinates; void Reset() override @@ -690,10 +690,9 @@ public: { if (!Patients.empty()) { - std::list<uint64>::const_iterator itr; - for (itr = Patients.begin(); itr != Patients.end(); ++itr) + for (GuidList::const_iterator itr = Patients.begin(); itr != Patients.end(); ++itr) { - if (Creature* patient = ObjectAccessor::GetCreature((*me), *itr)) + if (Creature* patient = ObjectAccessor::GetCreature(*me, *itr)) patient->setDeathState(JUST_DIED); } } @@ -749,11 +748,11 @@ public: void Initialize() { - DoctorGUID = 0; + DoctorGUID.Clear(); Coord = NULL; } - uint64 DoctorGUID; + ObjectGuid DoctorGUID; Location* Coord; void Reset() override @@ -950,7 +949,7 @@ public: Reset(); } - uint64 CasterGUID; + ObjectGuid CasterGUID; bool IsHealed; bool CanRun; @@ -959,7 +958,7 @@ public: void Reset() override { - CasterGUID = 0; + CasterGUID.Clear(); IsHealed = false; CanRun = false; @@ -1107,7 +1106,7 @@ public: break; } - Start(false, true, true); + Start(false, true); } else EnterEvadeMode(); //something went wrong @@ -1479,7 +1478,7 @@ public: } EventMap _events; - std::unordered_map<uint64, time_t> _damageTimes; + std::unordered_map<ObjectGuid, time_t> _damageTimes; void Reset() override { @@ -1526,7 +1525,7 @@ public: case EVENT_TD_CHECK_COMBAT: { time_t now = time(NULL); - for (std::unordered_map<uint64, time_t>::iterator itr = _damageTimes.begin(); itr != _damageTimes.end();) + for (std::unordered_map<ObjectGuid, time_t>::iterator itr = _damageTimes.begin(); itr != _damageTimes.end();) { // If unit has not dealt damage to training dummy for 5 seconds, remove him from combat if (itr->second < now - 5) @@ -2262,7 +2261,7 @@ public: void Initialize() { inLove = false; - rabbitGUID = 0; + rabbitGUID.Clear(); jumpTimer = urand(5000, 10000); bunnyTimer = urand(10000, 20000); searchTimer = urand(5000, 10000); @@ -2272,7 +2271,7 @@ public: uint32 jumpTimer; uint32 bunnyTimer; uint32 searchTimer; - uint64 rabbitGUID; + ObjectGuid rabbitGUID; void Reset() override { @@ -2347,7 +2346,7 @@ public: { npc_imp_in_a_ballAI(Creature* creature) : ScriptedAI(creature) { - summonerGUID = 0; + summonerGUID.Clear(); } void IsSummonedBy(Unit* summoner) override @@ -2375,7 +2374,7 @@ public: private: EventMap events; - uint64 summonerGUID; + ObjectGuid summonerGUID; }; CreatureAI* GetAI(Creature* creature) const override |