aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-10-26 23:58:29 +0200
committerShauren <shauren.trinity@gmail.com>2019-10-27 00:12:45 +0200
commit3ac790287aba5f7d7c3bccf79e608de9119e461a (patch)
tree430abdcd4e7e17288c9edaf71980863e77518de9 /src/server/game/Entities
parentee2e49429f4383732b4e0f39b493470b9c1dd10c (diff)
Core/DataStores: Updated db2 structures to 8.2.5
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Item/Item.cpp95
-rw-r--r--src/server/game/Entities/Item/Item.h2
-rw-r--r--src/server/game/Entities/Item/ItemDefines.h6
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp55
-rw-r--r--src/server/game/Entities/Player/Player.h10
6 files changed, 73 insertions, 97 deletions
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 6bd47efb600..cecf6d8b103 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -414,7 +414,6 @@ void Item::SaveToDB(CharacterDatabaseTransaction& trans)
stmt->setUInt16(++index, m_itemData->Durability);
stmt->setUInt32(++index, m_itemData->CreatePlayedTime);
stmt->setString(++index, m_text);
- stmt->setUInt32(++index, GetModifier(ITEM_MODIFIER_UPGRADE_ID));
stmt->setUInt32(++index, GetModifier(ITEM_MODIFIER_BATTLE_PET_SPECIES_ID));
stmt->setUInt32(++index, GetModifier(ITEM_MODIFIER_BATTLE_PET_BREED_DATA));
stmt->setUInt32(++index, GetModifier(ITEM_MODIFIER_BATTLE_PET_LEVEL));
@@ -545,7 +544,7 @@ void Item::SaveToDB(CharacterDatabaseTransaction& trans)
static ItemModifier const modifiersTable[] =
{
- ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL,
+ ITEM_MODIFIER_TIMEWALKER_LEVEL,
ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL
};
@@ -557,7 +556,7 @@ void Item::SaveToDB(CharacterDatabaseTransaction& trans)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ITEM_INSTANCE_MODIFIERS);
stmt->setUInt64(0, GetGUID().GetCounter());
- stmt->setUInt32(1, GetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL));
+ stmt->setUInt32(1, GetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL));
stmt->setUInt32(2, GetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL));
trans->Append(stmt);
}
@@ -621,15 +620,15 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid ownerGuid, Field* fie
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12
// SELECT guid, itemEntry, creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text,
- // 13 14 15 16 17 18 19
- // upgradeId, battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs,
- // 20 21 22 23 24
+ // 13 14 15 16 17 18
+ // battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs,
+ // 19 20 21 22 23
// itemModifiedAppearanceAllSpecs, itemModifiedAppearanceSpec1, itemModifiedAppearanceSpec2, itemModifiedAppearanceSpec3, itemModifiedAppearanceSpec4,
- // 25 26 27 28 29
+ // 24 25 26 27 28
// spellItemEnchantmentAllSpecs, spellItemEnchantmentSpec1, spellItemEnchantmentSpec2, spellItemEnchantmentSpec3, spellItemEnchantmentSpec4,
- // 30 31 32 33 34 35 36 37 38 39 40 41
+ // 29 30 31 32 33 34 35 36 37 38 39 40
// gemItemId1, gemBonuses1, gemContext1, gemScalingLevel1, gemItemId2, gemBonuses2, gemContext2, gemScalingLevel2, gemItemId3, gemBonuses3, gemContext3, gemScalingLevel3
- // 42 43
+ // 41 42
// fixedScalingLevel, artifactKnowledgeLevel FROM item_instance
// create item before any checks for store correct guid
@@ -692,67 +691,51 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid ownerGuid, Field* fie
SetCreatePlayedTime(fields[11].GetUInt32());
SetText(fields[12].GetString());
- uint32 upgradeId = fields[13].GetUInt32();
- ItemUpgradeEntry const* rulesetUpgrade = sItemUpgradeStore.LookupEntry(sDB2Manager.GetRulesetItemUpgrade(entry));
- ItemUpgradeEntry const* upgrade = sItemUpgradeStore.LookupEntry(upgradeId);
- if (!rulesetUpgrade || !upgrade || rulesetUpgrade->ItemUpgradePathID != upgrade->ItemUpgradePathID)
- {
- upgradeId = 0;
- need_save = true;
- }
-
- if (rulesetUpgrade && !upgradeId)
- {
- upgradeId = rulesetUpgrade->ID;
- need_save = true;
- }
-
- SetModifier(ITEM_MODIFIER_UPGRADE_ID, upgradeId);
- SetModifier(ITEM_MODIFIER_BATTLE_PET_SPECIES_ID, fields[14].GetUInt32());
- SetModifier(ITEM_MODIFIER_BATTLE_PET_BREED_DATA, fields[15].GetUInt32());
- SetModifier(ITEM_MODIFIER_BATTLE_PET_LEVEL, fields[16].GetUInt16());
- SetModifier(ITEM_MODIFIER_BATTLE_PET_DISPLAY_ID, fields[17].GetUInt32());
+ SetModifier(ITEM_MODIFIER_BATTLE_PET_SPECIES_ID, fields[13].GetUInt32());
+ SetModifier(ITEM_MODIFIER_BATTLE_PET_BREED_DATA, fields[14].GetUInt32());
+ SetModifier(ITEM_MODIFIER_BATTLE_PET_LEVEL, fields[15].GetUInt16());
+ SetModifier(ITEM_MODIFIER_BATTLE_PET_DISPLAY_ID, fields[16].GetUInt32());
- SetContext(fields[18].GetUInt8());
+ SetContext(fields[17].GetUInt8());
- Tokenizer bonusListString(fields[19].GetString(), ' ');
+ Tokenizer bonusListString(fields[18].GetString(), ' ');
std::vector<int32> bonusListIDs;
bonusListIDs.reserve(bonusListString.size());
for (char const* token : bonusListString)
bonusListIDs.push_back(atoi(token));
SetBonuses(std::move(bonusListIDs));
- SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_ALL_SPECS, fields[20].GetUInt32());
- SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_1, fields[21].GetUInt32());
- SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_2, fields[22].GetUInt32());
- SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_3, fields[23].GetUInt32());
- SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_4, fields[24].GetUInt32());
+ SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_ALL_SPECS, fields[19].GetUInt32());
+ SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_1, fields[20].GetUInt32());
+ SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_2, fields[21].GetUInt32());
+ SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_3, fields[22].GetUInt32());
+ SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_4, fields[23].GetUInt32());
- SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_ALL_SPECS, fields[25].GetUInt32());
- SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_1, fields[26].GetUInt32());
- SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_2, fields[27].GetUInt32());
- SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_3, fields[28].GetUInt32());
- SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_4, fields[29].GetUInt32());
+ SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_ALL_SPECS, fields[24].GetUInt32());
+ SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_1, fields[25].GetUInt32());
+ SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_2, fields[26].GetUInt32());
+ SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_3, fields[27].GetUInt32());
+ SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_4, fields[28].GetUInt32());
uint32 const gemFields = 4;
ItemDynamicFieldGems gemData[MAX_GEM_SOCKETS];
memset(gemData, 0, sizeof(gemData));
for (uint32 i = 0; i < MAX_GEM_SOCKETS; ++i)
{
- gemData[i].ItemId = fields[30 + i * gemFields].GetUInt32();
- Tokenizer gemBonusListIDs(fields[31 + i * gemFields].GetString(), ' ');
+ gemData[i].ItemId = fields[29 + i * gemFields].GetUInt32();
+ Tokenizer gemBonusListIDs(fields[30 + i * gemFields].GetString(), ' ');
uint32 b = 0;
for (char const* token : gemBonusListIDs)
if (uint32 bonusListID = atoul(token))
gemData[i].BonusListIDs[b++] = bonusListID;
- gemData[i].Context = fields[32 + i * gemFields].GetUInt8();
+ gemData[i].Context = fields[31 + i * gemFields].GetUInt8();
if (gemData[i].ItemId)
- SetGem(i, &gemData[i], fields[33 + i * gemFields].GetUInt32());
+ SetGem(i, &gemData[i], fields[32 + i * gemFields].GetUInt32());
}
- SetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL, fields[42].GetUInt32());
- SetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL, fields[43].GetUInt32());
+ SetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL, fields[41].GetUInt32());
+ SetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL, fields[42].GetUInt32());
// Enchants must be loaded after all other bonus/scaling data
Tokenizer enchantmentTokens(fields[8].GetString(), ' ');
@@ -782,7 +765,6 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid ownerGuid, Field* fie
stmt->setUInt32(index++, m_itemData->Expiration);
stmt->setUInt32(index++, m_itemData->DynamicFlags);
stmt->setUInt32(index++, m_itemData->Durability);
- stmt->setUInt32(index++, GetModifier(ITEM_MODIFIER_UPGRADE_ID));
stmt->setUInt64(index++, guid);
CharacterDatabase.Execute(stmt);
}
@@ -1319,7 +1301,8 @@ uint8 Item::GetGemCountWithLimitCategory(uint32 limitCategory) const
bool Item::IsLimitedToAnotherMapOrZone(uint32 cur_mapId, uint32 cur_zoneId) const
{
ItemTemplate const* proto = GetTemplate();
- return proto && ((proto->GetMap() && proto->GetMap() != cur_mapId) || (proto->GetArea() && proto->GetArea() != cur_zoneId));
+ return proto && ((proto->GetMap() && proto->GetMap() != cur_mapId) ||
+ ((proto->GetArea(0) && proto->GetArea(0) != cur_zoneId) && (proto->GetArea(1) && proto->GetArea(1) != cur_zoneId)));
}
void Item::SendUpdateSockets()
@@ -2134,11 +2117,11 @@ uint32 Item::GetItemLevel(Player const* owner) const
uint32 minItemLevelCutoff = owner->m_unitData->MinItemLevelCutoff;
uint32 maxItemLevel = GetTemplate()->GetFlags3() & ITEM_FLAG3_IGNORE_ITEM_LEVEL_CAP_IN_PVP ? 0 : owner->m_unitData->MaxItemLevel;
bool pvpBonus = owner->IsUsingPvpItemLevels();
- return Item::GetItemLevel(GetTemplate(), _bonusData, owner->getLevel(), GetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL), GetModifier(ITEM_MODIFIER_UPGRADE_ID),
+ return Item::GetItemLevel(GetTemplate(), _bonusData, owner->getLevel(), GetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL),
minItemLevel, minItemLevelCutoff, maxItemLevel, pvpBonus);
}
-uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel, uint32 upgradeId,
+uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel,
uint32 minItemLevel, uint32 minItemLevelCutoff, uint32 maxItemLevel, bool pvpBonus)
{
if (!itemTemplate)
@@ -2166,8 +2149,6 @@ uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bon
itemLevel += bonusData.GemItemLevelBonus[i];
uint32 itemLevelBeforeUpgrades = itemLevel;
- if (ItemUpgradeEntry const* upgrade = sItemUpgradeStore.LookupEntry(upgradeId))
- itemLevel += upgrade->ItemLevelIncrement;
if (pvpBonus)
itemLevel += sDB2Manager.GetPvpItemLevelBonus(itemTemplate->GetId());
@@ -2210,7 +2191,7 @@ ItemDisenchantLootEntry const* Item::GetDisenchantLoot(ItemTemplate const* itemT
if (itemTemplate->GetFlags() & (ITEM_FLAG_CONJURED | ITEM_FLAG_NO_DISENCHANT) || itemTemplate->GetBonding() == BIND_QUEST)
return nullptr;
- if (itemTemplate->GetArea() || itemTemplate->GetMap() || itemTemplate->GetMaxStackSize() > 1)
+ if (itemTemplate->GetArea(0) || itemTemplate->GetArea(1) || itemTemplate->GetMap() || itemTemplate->GetMaxStackSize() > 1)
return nullptr;
if (!Item::GetSellPrice(itemTemplate, quality, itemLevel) && !sDB2Manager.HasItemCurrencyCost(itemTemplate->GetId()))
@@ -2578,7 +2559,7 @@ void Item::GiveArtifactXp(uint64 amount, Item* sourceItem, uint32 artifactCatego
void Item::SetFixedLevel(uint8 level)
{
- if (!_bonusData.HasFixedLevel || GetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL))
+ if (!_bonusData.HasFixedLevel || GetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL))
return;
if (ScalingStatDistributionEntry const* ssd = sScalingStatDistributionStore.LookupEntry(_bonusData.ScalingStatDistribution))
@@ -2589,7 +2570,7 @@ void Item::SetFixedLevel(uint8 level)
if ((contentTuning->Flags & 2 || contentTuning->MinLevel || contentTuning->MaxLevel) && !(contentTuning->Flags & 4))
level = std::min(std::max(int32(level), contentTuning->MinLevel), contentTuning->MaxLevel);
- SetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL, level);
+ SetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL, level);
}
}
@@ -2598,7 +2579,7 @@ int32 Item::GetRequiredLevel() const
if (_bonusData.RequiredLevelOverride)
return _bonusData.RequiredLevelOverride;
else if (_bonusData.HasFixedLevel)
- return GetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL);
+ return GetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL);
else
return _bonusData.RequiredLevel;
}
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
index b5f9897a3e8..b8a8c242ba1 100644
--- a/src/server/game/Entities/Item/Item.h
+++ b/src/server/game/Entities/Item/Item.h
@@ -280,7 +280,7 @@ class TC_GAME_API Item : public Object
bool IsRangedWeapon() const { return GetTemplate()->IsRangedWeapon(); }
uint32 GetQuality() const { return _bonusData.Quality; }
uint32 GetItemLevel(Player const* owner) const;
- static uint32 GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel, uint32 upgradeId,
+ static uint32 GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel,
uint32 minItemLevel, uint32 minItemLevelCutoff, uint32 maxItemLevel, bool pvpBonus);
int32 GetRequiredLevel() const;
int32 GetItemStatType(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return _bonusData.ItemStatType[index]; }
diff --git a/src/server/game/Entities/Item/ItemDefines.h b/src/server/game/Entities/Item/ItemDefines.h
index 594071587c3..47887c869df 100644
--- a/src/server/game/Entities/Item/ItemDefines.h
+++ b/src/server/game/Entities/Item/ItemDefines.h
@@ -194,7 +194,7 @@ enum ItemModifier : uint16
ITEM_MODIFIER_BATTLE_PET_DISPLAY_ID = 6,
ITEM_MODIFIER_ENCHANT_ILLUSION_ALL_SPECS = 7,
ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID = 8,
- ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL = 9,
+ ITEM_MODIFIER_TIMEWALKER_LEVEL = 9,
ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_1 = 10,
ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_2 = 11,
ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_2 = 12,
@@ -207,9 +207,11 @@ enum ItemModifier : uint16
ITEM_MODIFIER_CHALLENGE_KEYSTONE_AFFIX_ID_1 = 19,
ITEM_MODIFIER_CHALLENGE_KEYSTONE_AFFIX_ID_2 = 20,
ITEM_MODIFIER_CHALLENGE_KEYSTONE_AFFIX_ID_3 = 21,
- ITEM_MODIFIER_CHALLENGE_KEYSTONE_IS_CHARGED = 22,
+ ITEM_MODIFIER_CHALLENGE_KEYSTONE_AFFIX_ID_4 = 22,
ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL = 23,
ITEM_MODIFIER_ARTIFACT_TIER = 24,
+ ITEM_MODIFIER_UNUSED_25 = 25,
+ ITEM_MODIFIER_PVP_RATING = 26,
MAX_ITEM_MODIFIERS
};
diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h
index e44d33063cf..2f3d5b805a4 100644
--- a/src/server/game/Entities/Item/ItemTemplate.h
+++ b/src/server/game/Entities/Item/ItemTemplate.h
@@ -766,7 +766,7 @@ struct TC_GAME_API ItemTemplate
uint32 GetStartQuest() const { return ExtendedData->StartQuestID; }
uint32 GetLockID() const { return ExtendedData->LockID; }
uint32 GetItemSet() const { return ExtendedData->ItemSet; }
- uint32 GetArea() const { return ExtendedData->ZoneBound; }
+ uint32 GetArea(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_ZONES); return ExtendedData->ZoneBound[index]; }
uint32 GetMap() const { return ExtendedData->InstanceBound; }
uint32 GetBagFamily() const { return ExtendedData->BagFamily; }
uint32 GetTotemCategory() const { return ExtendedData->TotemCategoryID; }
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 6b1d82452d7..1512b07540e 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -4738,12 +4738,12 @@ void Player::RepopAtGraveyard()
// and don't show spirit healer location
if (ClosestGrave)
{
- TeleportTo(ClosestGrave->MapID, ClosestGrave->Loc.X, ClosestGrave->Loc.Y, ClosestGrave->Loc.Z, (ClosestGrave->Facing * M_PI) / 180); // Orientation is initially in degrees
+ TeleportTo(ClosestGrave->Loc);
if (isDead()) // not send if alive, because it used in TeleportTo()
{
WorldPackets::Misc::DeathReleaseLoc packet;
- packet.MapID = ClosestGrave->MapID;
- packet.Loc = Position(ClosestGrave->Loc.X, ClosestGrave->Loc.Y, ClosestGrave->Loc.Z);
+ packet.MapID = ClosestGrave->Loc.GetMapId();
+ packet.Loc = ClosestGrave->Loc;
GetSession()->SendPacket(packet.Write());
}
}
@@ -11801,9 +11801,6 @@ Item* Player::StoreNewItem(ItemPosCountVec const& pos, uint32 itemId, bool updat
item->AddItemFlag(ITEM_FIELD_FLAG_NEW_ITEM);
- if (uint32 upgradeID = sDB2Manager.GetRulesetItemUpgrade(itemId))
- item->SetModifier(ITEM_MODIFIER_UPGRADE_ID, upgradeID);
-
item->SetContext(context);
item->SetBonuses(bonusListIDs);
@@ -18575,17 +18572,17 @@ void Player::_LoadInventory(PreparedQueryResult result, PreparedQueryResult arti
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12
// SELECT guid, itemEntry, creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text,
- // 13 14 15 16 17 18 19
- // upgradeId, battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs,
- // 20 21 22 23 24
+ // 13 14 15 16 17 18
+ // battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs,
+ // 19 20 21 22 23
// itemModifiedAppearanceAllSpecs, itemModifiedAppearanceSpec1, itemModifiedAppearanceSpec2, itemModifiedAppearanceSpec3, itemModifiedAppearanceSpec4,
- // 25 26 27 28 29
+ // 24 25 26 27 28
// spellItemEnchantmentAllSpecs, spellItemEnchantmentSpec1, spellItemEnchantmentSpec2, spellItemEnchantmentSpec3, spellItemEnchantmentSpec4,
- // 30 31 32 33 34 35 36 37 38 39 40 41
+ // 29 30 31 32 33 34 35 36 37 38 39 40
// gemItemId1, gemBonuses1, gemContext1, gemScalingLevel1, gemItemId2, gemBonuses2, gemContext2, gemScalingLevel2, gemItemId3, gemBonuses3, gemContext3, gemScalingLevel3
- // 42 43
+ // 41 42
// fixedScalingLevel, artifactKnowledgeLevel FROM item_instance
- // 45 46
+ // 43 44
// bag, slot
// FROM character_inventory ci
// JOIN item_instance ii ON ci.item = ii.guid
@@ -18654,8 +18651,8 @@ void Player::_LoadInventory(PreparedQueryResult result, PreparedQueryResult arti
if (item->GetTemplate()->GetArtifactID() && artifactDataItr != artifactData.end())
item->LoadArtifactData(this, std::get<0>(artifactDataItr->second), std::get<1>(artifactDataItr->second), std::get<2>(artifactDataItr->second), std::get<3>(artifactDataItr->second));
- ObjectGuid bagGuid = fields[44].GetUInt64() ? ObjectGuid::Create<HighGuid::Item>(fields[44].GetUInt64()) : ObjectGuid::Empty;
- uint8 slot = fields[45].GetUInt8();
+ ObjectGuid bagGuid = fields[43].GetUInt64() ? ObjectGuid::Create<HighGuid::Item>(fields[43].GetUInt64()) : ObjectGuid::Empty;
+ uint8 slot = fields[44].GetUInt8();
GetSession()->GetCollectionMgr()->CheckHeirloomUpgrades(item);
GetSession()->GetCollectionMgr()->AddItemAppearance(item);
@@ -18782,7 +18779,7 @@ void Player::_LoadVoidStorage(PreparedQueryResult result)
do
{
- // SELECT itemId, itemEntry, slot, creatorGuid, randomBonusListId, upgradeId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs FROM character_void_storage WHERE playerGuid = ?
+ // SELECT itemId, itemEntry, slot, creatorGuid, randomBonusListId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs FROM character_void_storage WHERE playerGuid = ?
Field* fields = result->Fetch();
uint64 itemId = fields[0].GetUInt64();
@@ -18790,12 +18787,11 @@ void Player::_LoadVoidStorage(PreparedQueryResult result)
uint8 slot = fields[2].GetUInt8();
ObjectGuid creatorGuid = fields[3].GetUInt64() ? ObjectGuid::Create<HighGuid::Player>(fields[3].GetUInt64()) : ObjectGuid::Empty;
ItemRandomBonusListId randomBonusListId = fields[4].GetUInt32();
- uint32 upgradeId = fields[5].GetUInt32();
- uint32 fixedScalingLevel = fields[6].GetUInt32();
- uint32 artifactKnowledgeLevel = fields[7].GetUInt32();
- uint8 context = fields[8].GetUInt8();
+ uint32 fixedScalingLevel = fields[5].GetUInt32();
+ uint32 artifactKnowledgeLevel = fields[6].GetUInt32();
+ uint8 context = fields[7].GetUInt8();
std::vector<int32> bonusListIDs;
- Tokenizer bonusListIdTokens(fields[9].GetString(), ' ');
+ Tokenizer bonusListIdTokens(fields[8].GetString(), ' ');
for (char const* token : bonusListIdTokens)
bonusListIDs.push_back(atoul(token));
@@ -18820,7 +18816,7 @@ void Player::_LoadVoidStorage(PreparedQueryResult result)
continue;
}
- _voidStorageItems[slot] = new VoidStorageItem(itemId, itemEntry, creatorGuid, randomBonusListId, upgradeId, fixedScalingLevel, artifactKnowledgeLevel,
+ _voidStorageItems[slot] = new VoidStorageItem(itemId, itemEntry, creatorGuid, randomBonusListId, fixedScalingLevel, artifactKnowledgeLevel,
context, bonusListIDs);
WorldPackets::Item::ItemInstance voidInstance;
@@ -18997,7 +18993,7 @@ void Player::_LoadMailedItems(Mail* mail)
Item* item = NewItemOrBag(proto);
- ObjectGuid ownerGuid = fields[44].GetUInt64() ? ObjectGuid::Create<HighGuid::Player>(fields[44].GetUInt64()) : ObjectGuid::Empty;
+ ObjectGuid ownerGuid = fields[43].GetUInt64() ? ObjectGuid::Create<HighGuid::Player>(fields[43].GetUInt64()) : ObjectGuid::Empty;
if (!item->LoadFromDB(itemGuid, ownerGuid, fields, itemEntry))
{
TC_LOG_ERROR("entities.player", "Player::_LoadMailedItems: Item (GUID: " UI64FMTD ") in mail (%u) doesn't exist, deleted from mail.", itemGuid, mail->messageID);
@@ -20593,14 +20589,13 @@ void Player::_SaveVoidStorage(CharacterDatabaseTransaction& trans)
stmt->setUInt8(3, i);
stmt->setUInt64(4, _voidStorageItems[i]->CreatorGuid.GetCounter());
stmt->setUInt32(5, _voidStorageItems[i]->RandomBonusListId);
- stmt->setUInt32(6, _voidStorageItems[i]->ItemUpgradeId);
- stmt->setUInt32(7, _voidStorageItems[i]->FixedScalingLevel);
- stmt->setUInt32(8, _voidStorageItems[i]->ArtifactKnowledgeLevel);
- stmt->setUInt8(9, _voidStorageItems[i]->Context);
+ stmt->setUInt32(6, _voidStorageItems[i]->FixedScalingLevel);
+ stmt->setUInt32(7, _voidStorageItems[i]->ArtifactKnowledgeLevel);
+ stmt->setUInt8(8, _voidStorageItems[i]->Context);
std::ostringstream bonusListIDs;
for (int32 bonusListID : _voidStorageItems[i]->BonusListIDs)
bonusListIDs << bonusListID << ' ';
- stmt->setString(10, bonusListIDs.str());
+ stmt->setString(9, bonusListIDs.str());
}
trans->Append(stmt);
@@ -23149,8 +23144,8 @@ void Player::SetBattlegroundEntryPoint()
// If map is dungeon find linked graveyard
if (GetMap()->IsDungeon())
{
- if (const WorldSafeLocsEntry* entry = sObjectMgr->GetClosestGraveYard(*this, GetTeam(), this))
- m_bgData.joinPos = WorldLocation(entry->MapID, entry->Loc.X, entry->Loc.Y, entry->Loc.Z, 0.0f);
+ if (WorldSafeLocsEntry const* entry = sObjectMgr->GetClosestGraveYard(*this, GetTeam(), this))
+ m_bgData.joinPos.WorldRelocate(entry->Loc.GetMapId(), entry->Loc.GetPositionX(), entry->Loc.GetPositionY(), entry->Loc.GetPositionZ());
else
TC_LOG_ERROR("entities.player", "Player::SetBattlegroundEntryPoint: Dungeon (MapID: %u) has no linked graveyard, setting home location as entry point.", GetMapId());
}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 83a0e5fb60c..f7c8ae952d1 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -899,23 +899,21 @@ struct BGData
struct VoidStorageItem
{
- VoidStorageItem() : ItemId(0), ItemEntry(0), RandomBonusListId(0), ItemUpgradeId(0), FixedScalingLevel(0), ArtifactKnowledgeLevel(0), Context(0) { }
+ VoidStorageItem() : ItemId(0), ItemEntry(0), RandomBonusListId(0), FixedScalingLevel(0), ArtifactKnowledgeLevel(0), Context(0) { }
VoidStorageItem(uint64 id, uint32 entry, ObjectGuid const& creator, ItemRandomBonusListId randomBonusListId,
- uint32 upgradeId, uint32 fixedScalingLevel, uint32 artifactKnowledgeLevel, uint8 context, std::vector<int32> const& bonuses)
+ uint32 fixedScalingLevel, uint32 artifactKnowledgeLevel, uint8 context, std::vector<int32> const& bonuses)
: ItemId(id), ItemEntry(entry), CreatorGuid(creator), RandomBonusListId(randomBonusListId),
- ItemUpgradeId(upgradeId), FixedScalingLevel(fixedScalingLevel), ArtifactKnowledgeLevel(artifactKnowledgeLevel), Context(context)
+ FixedScalingLevel(fixedScalingLevel), ArtifactKnowledgeLevel(artifactKnowledgeLevel), Context(context)
{
BonusListIDs.insert(BonusListIDs.end(), bonuses.begin(), bonuses.end());
}
VoidStorageItem(VoidStorageItem&& vsi) noexcept : ItemId(vsi.ItemId), ItemEntry(vsi.ItemEntry), CreatorGuid(vsi.CreatorGuid), RandomBonusListId(vsi.RandomBonusListId),
- ItemUpgradeId(vsi.ItemUpgradeId), FixedScalingLevel(vsi.FixedScalingLevel),
- ArtifactKnowledgeLevel(vsi.ArtifactKnowledgeLevel), Context(vsi.Context), BonusListIDs(std::move(vsi.BonusListIDs)) { }
+ FixedScalingLevel(vsi.FixedScalingLevel), ArtifactKnowledgeLevel(vsi.ArtifactKnowledgeLevel), Context(vsi.Context), BonusListIDs(std::move(vsi.BonusListIDs)) { }
uint64 ItemId;
uint32 ItemEntry;
ObjectGuid CreatorGuid;
ItemRandomBonusListId RandomBonusListId;
- uint32 ItemUpgradeId;
uint32 FixedScalingLevel;
uint32 ArtifactKnowledgeLevel;
uint8 Context;