diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-02-20 23:57:25 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-02-20 23:57:25 +0100 |
commit | ff6a107ac0e7a82d728f8fd2fd8423743233a474 (patch) | |
tree | 45476d82901a66b7da996c17f3ba50736572e726 | |
parent | 12197b7cff832e6d3197c6a5fb109ebb6aeefbec (diff) |
Core/Misc: Reduce differences between branches
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Handlers/QueryHandler.cpp | 18 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SpellPackets.h | 8 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 13 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuras.cpp | 11 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuras.h | 3 |
8 files changed, 38 insertions, 30 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 49046d960f5..85bee3bc042 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -485,7 +485,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac SetInventorySlotCount(INVENTORY_DEFAULT_SIZE); // set starting level - SetLevel(GetStartLevel(createInfo->Race, createInfo->Class, createInfo->TemplateSet)); + SetLevel(GetStartLevel(createInfo->Race, createInfo->Class, createInfo->TemplateSet), false); InitRunes(); @@ -10966,7 +10966,7 @@ InventoryResult Player::CanEquipItem(uint8 slot, uint16 &dest, Item* pItem, bool { // Do not allow polearm to be equipped in the offhand (rare case for the only 1h polearm 41750) if (type == INVTYPE_WEAPON && pProto->GetSubClass() == ITEM_SUBCLASS_WEAPON_POLEARM) - return EQUIP_ERR_2HSKILLNOTFOUND; + return EQUIP_ERR_WRONG_SLOT; else if (type == INVTYPE_WEAPON) { if (!CanDualWield()) diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 5c9ab449f93..bf48d936f62 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -7425,14 +7425,14 @@ void ObjectMgr::SetHighestGuids() result = CharacterDatabase.Query("SELECT MAX(guid) FROM item_instance"); if (result) - GetGuidSequenceGenerator(HighGuid::Item).Set((*result)[0].GetUInt64() + 1); + GetGenerator<HighGuid::Item>().Set((*result)[0].GetUInt64() + 1); // Cleanup other tables from nonexistent guids ( >= _hiItemGuid) - CharacterDatabase.PExecute("DELETE FROM character_inventory WHERE item >= '{}'", GetGuidSequenceGenerator(HighGuid::Item).GetNextAfterMaxUsed()); // One-time query - CharacterDatabase.PExecute("DELETE FROM mail_items WHERE item_guid >= '{}'", GetGuidSequenceGenerator(HighGuid::Item).GetNextAfterMaxUsed()); // One-time query + CharacterDatabase.PExecute("DELETE FROM character_inventory WHERE item >= '{}'", GetGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query + CharacterDatabase.PExecute("DELETE FROM mail_items WHERE item_guid >= '{}'", GetGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query CharacterDatabase.PExecute("DELETE a, ab, ai FROM auctionhouse a LEFT JOIN auction_bidders ab ON ab.auctionId = a.id LEFT JOIN auction_items ai ON ai.auctionId = a.id WHERE ai.itemGuid >= '{}'", - GetGuidSequenceGenerator(HighGuid::Item).GetNextAfterMaxUsed()); // One-time query - CharacterDatabase.PExecute("DELETE FROM guild_bank_item WHERE item_guid >= '{}'", GetGuidSequenceGenerator(HighGuid::Item).GetNextAfterMaxUsed()); // One-time query + GetGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query + CharacterDatabase.PExecute("DELETE FROM guild_bank_item WHERE item_guid >= '{}'", GetGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query result = WorldDatabase.Query("SELECT MAX(guid) FROM transports"); if (result) diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp index 511a6b57766..21d10291a62 100644 --- a/src/server/game/Handlers/QueryHandler.cpp +++ b/src/server/game/Handlers/QueryHandler.cpp @@ -31,6 +31,7 @@ #include "QueryPackets.h" #include "RealmList.h" #include "TerrainMgr.h" +#include "Transport.h" #include "World.h" void WorldSession::BuildNameQueryData(ObjectGuid guid, WorldPackets::Query::NameCacheLookupResult& lookupData) @@ -168,7 +169,7 @@ void WorldSession::HandleQueryCorpseLocation(WorldPackets::Query::QueryCorpseLoc packet.MapID = corpseMapID; packet.ActualMapID = mapID; packet.Position = Position(x, y, z); - packet.Transport = ObjectGuid::Empty; + packet.Transport = ObjectGuid::Empty; // TODO: If corpse is on transport, send transport offsets and transport guid SendPacket(packet.Write()); } @@ -236,13 +237,18 @@ void WorldSession::HandleQueryCorpseTransport(WorldPackets::Query::QueryCorpseTr { WorldPackets::Query::CorpseTransportQuery response; response.Player = queryCorpseTransport.Player; - if (Player* player = ObjectAccessor::FindConnectedPlayer(queryCorpseTransport.Player)) + if (Player* player = ObjectAccessor::FindConnectedPlayer(queryCorpseTransport.Player); player && _player->IsInSameRaidWith(player)) { - Corpse* corpse = player->GetCorpse(); - if (_player->IsInSameRaidWith(player) && corpse && !corpse->GetTransGUID().IsEmpty() && corpse->GetTransGUID() == queryCorpseTransport.Transport) + if (Corpse const* corpse = _player->GetCorpse()) { - response.Position = corpse->GetTransOffset(); - response.Facing = corpse->GetTransOffsetO(); + if (Transport const* transport = dynamic_cast<Transport const*>(corpse->GetTransport())) + { + if (transport->GetGUID() == queryCorpseTransport.Transport) + { + response.Position = transport->GetPosition(); + response.Facing = transport->GetOrientation(); + } + } } } diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 383c2b13445..30d9f8505b5 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -376,20 +376,20 @@ namespace WorldPackets SpellHealPrediction Predict; }; - class SpellGo final : public CombatLog::CombatLogServerPacket + class SpellStart final : public ServerPacket { public: - SpellGo() : CombatLog::CombatLogServerPacket(SMSG_SPELL_GO) { } + SpellStart() : ServerPacket(SMSG_SPELL_START) { } WorldPacket const* Write() override; SpellCastData Cast; }; - class SpellStart final : public ServerPacket + class SpellGo final : public CombatLog::CombatLogServerPacket { public: - SpellStart() : ServerPacket(SMSG_SPELL_START) { } + SpellGo() : CombatLog::CombatLogServerPacket(SMSG_SPELL_GO) { } WorldPacket const* Write() override; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index bb013a0c46d..849044832c4 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -6093,20 +6093,9 @@ void AuraEffect::HandlePeriodicPowerBurnAuraTick(Unit* target, Unit* caster) con caster->SendSpellNonMeleeDamageLog(&damageInfo); } -bool AuraEffect::CanPeriodicTickCrit() const -{ - if (GetSpellInfo()->HasAttribute(SPELL_ATTR2_CANT_CRIT)) - return false; - - if (GetSpellInfo()->HasAttribute(SPELL_ATTR8_PERIODIC_CAN_CRIT)) - return true; - - return false; -} - float AuraEffect::CalcPeriodicCritChance(Unit const* caster) const { - if (!caster || !CanPeriodicTickCrit()) + if (!caster || !GetBase()->CanPeriodicTickCrit()) return 0.0f; Player* modOwner = caster->GetSpellModOwner(); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.h b/src/server/game/Spells/Auras/SpellAuraEffects.h index 78b45cfd5c4..f739a9793f8 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.h +++ b/src/server/game/Spells/Auras/SpellAuraEffects.h @@ -355,7 +355,6 @@ class TC_GAME_API AuraEffect void HandlePeriodicEnergizeAuraTick(Unit* target, Unit* caster) const; void HandlePeriodicPowerBurnAuraTick(Unit* target, Unit* caster) const; - bool CanPeriodicTickCrit() const; float CalcPeriodicCritChance(Unit const* caster) const; // aura effect proc handlers diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 338be7fe1c1..9e571e355ad 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -512,6 +512,17 @@ void Aura::_InitEffects(uint32 effMask, Unit* caster, int32 const* baseAmount) _effects.pop_back(); } +bool Aura::CanPeriodicTickCrit() const +{ + if (GetSpellInfo()->HasAttribute(SPELL_ATTR2_CANT_CRIT)) + return false; + + if (GetSpellInfo()->HasAttribute(SPELL_ATTR8_PERIODIC_CAN_CRIT)) + return true; + + return false; +} + Aura::~Aura() { // unload scripts diff --git a/src/server/game/Spells/Auras/SpellAuras.h b/src/server/game/Spells/Auras/SpellAuras.h index 208c966bd58..76e17de7313 100644 --- a/src/server/game/Spells/Auras/SpellAuras.h +++ b/src/server/game/Spells/Auras/SpellAuras.h @@ -225,6 +225,9 @@ class TC_GAME_API Aura AuraKey GenerateKey(uint32& recalculateMask) const; void SetLoadedState(int32 maxDuration, int32 duration, int32 charges, uint8 stackAmount, uint32 recalculateMask, int32* amount); + // helpers for aura effects + bool CanPeriodicTickCrit() const; + bool HasEffect(uint8 effIndex) const { return GetEffect(effIndex) != nullptr; } bool HasEffectType(AuraType type) const; static bool EffectTypeNeedsSendingAmount(AuraType type); |