diff options
-rw-r--r-- | src/server/bnetserver/Main.cpp | 19 | ||||
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 26 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ItemPackets.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ItemPackets.h | 12 | ||||
-rw-r--r-- | src/server/game/Server/Packets/LootPackets.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Server/Packets/LootPackets.h | 12 | ||||
-rw-r--r-- | src/server/game/Server/Packets/TicketPackets.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.h | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_pet.cpp | 56 | ||||
-rw-r--r-- | src/server/shared/Logging/AppenderDB.cpp | 2 | ||||
-rw-r--r-- | src/server/shared/Logging/Log.cpp | 2 | ||||
-rw-r--r-- | src/server/worldserver/Main.cpp | 22 |
17 files changed, 78 insertions, 108 deletions
diff --git a/src/server/bnetserver/Main.cpp b/src/server/bnetserver/Main.cpp index ab7c91512e2..5f4f63287e5 100644 --- a/src/server/bnetserver/Main.cpp +++ b/src/server/bnetserver/Main.cpp @@ -61,7 +61,7 @@ boost::asio::deadline_timer _dbPingTimer(_ioService); uint32 _dbPingInterval; LoginDatabaseWorkerPool LoginDatabase; -int mainImpl(int argc, char** argv) +int main(int argc, char** argv) { std::string configFile = _TRINITY_BNET_CONFIG; auto vm = GetConsoleArguments(argc, argv, configFile); @@ -156,23 +156,6 @@ int mainImpl(int argc, char** argv) return 0; } -int main(int argc, char** argv) -{ - try - { - return mainImpl(argc, argv); - } - catch (std::exception& ex) - { - std::cerr << "Top-level exception caught:" << ex.what() << "\n"; - -#ifndef NDEBUG // rethrow exception for the debugger - throw; -#else - return 1; -#endif - } -} /// Initialize connection to the database bool StartDB() diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 108e5cedd09..b80e861c4df 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3199,7 +3199,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui std::list<Creature*> list; me->GetCreatureListWithEntryInGrid(list, e.event.distance.entry, (float)e.event.distance.dist); - if (list.size() > 0) + if (!list.empty()) creature = list.front(); } @@ -3230,7 +3230,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui std::list<GameObject*> list; me->GetGameObjectListWithEntryInGrid(list, e.event.distance.entry, (float)e.event.distance.dist); - if (list.size() > 0) + if (!list.empty()) gameobject = list.front(); } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 093efd0ac55..7c5d5911161 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -8744,12 +8744,26 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type) if (permission != NONE_PERMISSION) { + LootMethod _lootMethod = FREE_FOR_ALL; + if (Group* group = GetGroup()) + { + if (Creature* creature = GetMap()->GetCreature(guid)) + { + if (Player* recipient = creature->GetLootRecipient()) + { + if (group == recipient->GetGroup()) + _lootMethod = group->GetLootMethod(); + } + } + } + SetLootGUID(guid); WorldPackets::Loot::LootResponse packet; packet.LootObj = guid; packet.Owner = loot->GetGUID(); - packet.LootMethod = loot_type; + packet.LootMethod = _lootMethod; + packet.AcquireReason = loot_type; if (!GetGroup()) packet.PersonalLooting = true; else @@ -12918,11 +12932,11 @@ void Player::SendBuyError(BuyResult msg, Creature* creature, uint32 item, uint32 void Player::SendSellError(SellResult msg, Creature* creature, ObjectGuid guid) { TC_LOG_DEBUG("network", "WORLD: Sent SMSG_SELL_RESPONSE"); - WorldPacket data(SMSG_SELL_RESPONSE, (8+8+1)); // last check 4.3.4 - data << (creature ? creature->GetGUID() : ObjectGuid::Empty); - data << guid; - data << uint8(msg); - GetSession()->SendPacket(&data); + WorldPackets::Item::SellResponse sellResponse; + sellResponse.VendorGUID = (creature ? creature->GetGUID() : ObjectGuid::Empty); + sellResponse.ItemGUID = guid; + sellResponse.Reason = msg; + GetSession()->SendPacket(sellResponse.Write()); } bool Player::IsUseEquipedWeapon(bool mainhand) const diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 735328a0f1f..dd996ee0f50 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -182,9 +182,8 @@ struct TSpellSummary uint8 Effects; // set of enum SelectEffect } *SpellSummary; -ScriptMgr::ScriptMgr() : _scriptCount(0) +ScriptMgr::ScriptMgr() : _scriptCount(0), _scheduledScripts(0) { - _scheduledScripts = 0; } ScriptMgr::~ScriptMgr() { } diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp index 9277e0b73d5..e9a0c213aee 100644 --- a/src/server/game/Server/Packets/ItemPackets.cpp +++ b/src/server/game/Server/Packets/ItemPackets.cpp @@ -271,3 +271,12 @@ void WorldPackets::Item::DestroyItem::Read() >> ContainerId >> SlotNum; } + +WorldPacket const* WorldPackets::Item::SellResponse::Write() +{ + _worldPacket << VendorGUID + << ItemGUID + << uint8(Reason); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h index 1645af8275a..dedc3a389ce 100644 --- a/src/server/game/Server/Packets/ItemPackets.h +++ b/src/server/game/Server/Packets/ItemPackets.h @@ -258,6 +258,18 @@ namespace WorldPackets uint8 ContainerId = 0; }; + class SellResponse final : public ServerPacket + { + public: + SellResponse() : ServerPacket(SMSG_SELL_RESPONSE, 8 + 8 + 1) { } + + WorldPacket const* Write() override; + + ObjectGuid VendorGUID; + ObjectGuid ItemGUID; + SellResult Reason; + }; + ByteBuffer& operator>>(ByteBuffer& data, InvUpdate& invUpdate); } } diff --git a/src/server/game/Server/Packets/LootPackets.cpp b/src/server/game/Server/Packets/LootPackets.cpp index e8c365ea45b..62bae290cce 100644 --- a/src/server/game/Server/Packets/LootPackets.cpp +++ b/src/server/game/Server/Packets/LootPackets.cpp @@ -26,10 +26,10 @@ WorldPacket const* WorldPackets::Loot::LootResponse::Write() { _worldPacket << LootObj; _worldPacket << Owner; - _worldPacket << Threshold; - _worldPacket << LootMethod; - _worldPacket << AcquireReason; _worldPacket << FailureReason; + _worldPacket << AcquireReason; + _worldPacket << LootMethod; + _worldPacket << Threshold; _worldPacket << Coins; _worldPacket << uint32(Items.size()); _worldPacket << uint32(Currencies.size()); diff --git a/src/server/game/Server/Packets/LootPackets.h b/src/server/game/Server/Packets/LootPackets.h index 74a5c58d649..02e367b1fd7 100644 --- a/src/server/game/Server/Packets/LootPackets.h +++ b/src/server/game/Server/Packets/LootPackets.h @@ -64,16 +64,16 @@ namespace WorldPackets ObjectGuid LootObj; ObjectGuid Owner; - uint8 Threshold = 17; // Most common value - uint8 LootMethod = 0; - uint8 AcquireReason = 0; - uint8 FailureReason = 2; // Most common value - uint32 Coins = 0; + uint8 Threshold = 2; // Most common value, 2 = Uncommon + uint8 LootMethod = 0; + uint8 AcquireReason = 0; + uint8 FailureReason = 17; // Most common value + uint32 Coins = 0; std::vector<LootItem> Items; std::vector<LootCurrency> Currencies; bool PersonalLooting = false; bool Acquired = false; - bool AELooting = false; + bool AELooting = false; }; struct LootRequest diff --git a/src/server/game/Server/Packets/TicketPackets.cpp b/src/server/game/Server/Packets/TicketPackets.cpp index c33511a0fc4..70ef53551da 100644 --- a/src/server/game/Server/Packets/TicketPackets.cpp +++ b/src/server/game/Server/Packets/TicketPackets.cpp @@ -203,10 +203,9 @@ WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine::Suppo Text = data.ReadString(textLength); } -WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine::SupportTicketChatLine(uint32 timestamp, std::string const& text) +WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine::SupportTicketChatLine(uint32 timestamp, std::string const& text) : + Timestamp(timestamp), Text(text) { - Timestamp = timestamp; - Text = text; } ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine& line) diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 79692367573..15a96c5c621 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1712,7 +1712,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCRIPT_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SELL_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SELL_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_ITEM_PASSIVES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_MAIL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_RAID_TARGET_UPDATE_ALL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 9a9febc41b7..910c1892f83 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -1659,7 +1659,7 @@ enum OpcodeServer : uint32 SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT = 0xBADD, SMSG_SCRIPT_CAST = 0xBADD, SMSG_SCRIPT_MESSAGE = 0xBADD, - SMSG_SELL_RESPONSE = 0xBADD, + SMSG_SELL_RESPONSE = 0x0933, SMSG_SEND_ITEM_PASSIVES = 0xBADD, SMSG_SEND_MAIL_RESULT = 0xBADD, SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0xBADD, diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index a307b60f76b..919f11a5db4 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -7229,7 +7229,7 @@ void Spell::CallScriptDestinationTargetSelectHandlers(SpellDestination& target, bool Spell::CheckScriptEffectImplicitTargets(uint32 effIndex, uint32 effIndexToCheck) { // Skip if there are not any script - if (!m_loadedScripts.size()) + if (m_loadedScripts.empty()) return true; for (std::list<SpellScript*>::iterator itr = m_loadedScripts.begin(); itr != m_loadedScripts.end(); ++itr) diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index c5e2deaac24..8105f7de5ff 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -1301,7 +1301,7 @@ class spell_mage_ring_of_frost : public SpellScriptLoader GetTarget()->GetAllMinionsByEntry(MinionList, GetSpellInfo()->GetEffect(EFFECT_0)->MiscValue); // Get the last summoned RoF, save it and despawn older ones - for (std::list<TempSummon*>::iterator itr = MinionList.begin(); itr != MinionList.end(); itr++) + for (std::list<TempSummon*>::iterator itr = MinionList.begin(); itr != MinionList.end(); ++itr) { TempSummon* summon = (*itr); diff --git a/src/server/scripts/Spells/spell_pet.cpp b/src/server/scripts/Spells/spell_pet.cpp index d8b63150e3c..9a7ebc9625c 100644 --- a/src/server/scripts/Spells/spell_pet.cpp +++ b/src/server/scripts/Spells/spell_pet.cpp @@ -392,9 +392,7 @@ public: if (pet->IsPet()) if (Unit* owner = pet->ToPet()->GetOwner()) { - float ownerBonus = 0.0f; - - ownerBonus = CalculatePct(owner->GetStat(STAT_INTELLECT), 30); + int32 const ownerBonus = CalculatePct(owner->GetStat(STAT_INTELLECT), 30); amount += ownerBonus; _tempBonus = ownerBonus; @@ -445,8 +443,7 @@ public: if (pet->IsPet()) if (Unit* owner = pet->ToPet()->GetOwner()) { - float ownerBonus = 0.0f; - ownerBonus = CalculatePct(owner->GetArmor(), 35); + int32 const ownerBonus = CalculatePct(owner->GetArmor(), 35); amount += ownerBonus; } } @@ -457,8 +454,7 @@ public: if (pet->IsPet()) if (Unit* owner = pet->ToPet()->GetOwner()) { - float ownerBonus = 0.0f; - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_FIRE), 40); + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_FIRE), 40); amount += ownerBonus; } } @@ -504,8 +500,7 @@ public: if (pet->IsPet()) if (Unit* owner = pet->ToPet()->GetOwner()) { - float ownerBonus = 0.0f; - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_FROST), 40); + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_FROST), 40); amount += ownerBonus; } } @@ -516,8 +511,7 @@ public: if (pet->IsPet()) if (Unit* owner = pet->ToPet()->GetOwner()) { - float ownerBonus = 0.0f; - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_ARCANE), 40); + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_ARCANE), 40); amount += ownerBonus; } } @@ -528,8 +522,7 @@ public: if (pet->IsPet()) if (Unit* owner = pet->ToPet()->GetOwner()) { - float ownerBonus = 0.0f; - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_NATURE), 40); + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_NATURE), 40); amount += ownerBonus; } } @@ -570,8 +563,7 @@ public: if (pet->IsPet()) if (Unit* owner = pet->ToPet()->GetOwner()) { - float ownerBonus = 0.0f; - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_SHADOW), 40); + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_SHADOW), 40); amount += ownerBonus; } } @@ -906,7 +898,6 @@ public: if (Unit* owner = pet->ToPet()->GetOwner()) { float mod = 0.45f; - float ownerBonus = 0.0f; PetSpellMap::const_iterator itr = (pet->ToPet()->m_spells.find(62758)); // Wild Hunt rank 1 if (itr == pet->ToPet()->m_spells.end()) @@ -918,8 +909,7 @@ public: AddPct(mod, spellInfo->GetEffect(EFFECT_0)->CalcValue()); } - ownerBonus = owner->GetStat(STAT_STAMINA)*mod; - + int32 const ownerBonus = owner->GetStat(STAT_STAMINA) * mod; amount += ownerBonus; } } @@ -1043,10 +1033,7 @@ public: if (!owner) return; - float ownerBonus = 0.0f; - - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_FROST), 40); - + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_FROST), 40); amount += ownerBonus; } } @@ -1062,10 +1049,7 @@ public: if (!owner) return; - float ownerBonus = 0.0f; - - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_FIRE), 40); - + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_FIRE), 40); amount += ownerBonus; } } @@ -1081,10 +1065,7 @@ public: if (!owner) return; - float ownerBonus = 0.0f; - - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_NATURE), 40); - + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_NATURE), 40); amount += ownerBonus; } } @@ -1130,10 +1111,7 @@ public: if (!owner) return; - float ownerBonus = 0.0f; - - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_SHADOW), 40); - + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_SHADOW), 40); amount += ownerBonus; } } @@ -1149,10 +1127,7 @@ public: if (!owner) return; - float ownerBonus = 0.0f; - - ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_ARCANE), 40); - + int32 const ownerBonus = CalculatePct(owner->GetResistance(SPELL_SCHOOL_ARCANE), 40); amount += ownerBonus; } } @@ -1168,10 +1143,7 @@ public: if (!owner) return; - float ownerBonus = 0.0f; - - ownerBonus = CalculatePct(owner->GetArmor(), 35); - + int32 const ownerBonus = CalculatePct(owner->GetArmor(), 35); amount += ownerBonus; } } diff --git a/src/server/shared/Logging/AppenderDB.cpp b/src/server/shared/Logging/AppenderDB.cpp index d297d6d08d3..99ae822af34 100644 --- a/src/server/shared/Logging/AppenderDB.cpp +++ b/src/server/shared/Logging/AppenderDB.cpp @@ -26,7 +26,7 @@ AppenderDB::~AppenderDB() { } void AppenderDB::_write(LogMessage const& message) { // Avoid infinite loop, PExecute triggers Logging with "sql.sql" type - if (!enabled || !message.type.find("sql")) + if (!enabled || (message.type.find("sql") != std::string::npos)) return; PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_LOG); diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index 4bf4dacb302..aa432128171 100644 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -376,7 +376,7 @@ void Log::SetRealmId(uint32 id) { for (AppenderMap::iterator it = appenders.begin(); it != appenders.end(); ++it) if (it->second && it->second->getType() == APPENDER_DB) - ((AppenderDB *)it->second)->setRealmId(id); + static_cast<AppenderDB*>(it->second)->setRealmId(id); } void Log::Close() diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index 362b5b05168..15d08a903b9 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -97,7 +97,8 @@ void ShutdownThreadPool(std::vector<std::thread>& threadPool); bool LoadRealmInfo(); variables_map GetConsoleArguments(int argc, char** argv, std::string& cfg_file, std::string& cfg_service); -int mainImpl(int argc, char** argv) +/// Launch the Trinity server +extern int main(int argc, char** argv) { std::string configFile = _TRINITY_CORE_CONFIG; std::string configService; @@ -305,25 +306,6 @@ int mainImpl(int argc, char** argv) return World::GetExitCode(); } -/// Launch the Trinity server -extern int main(int argc, char** argv) -{ - try - { - return mainImpl(argc, argv); - } - catch (std::exception& ex) - { - std::cerr << "Top-level exception caught:" << ex.what() << "\n"; - -#ifndef NDEBUG // rethrow exception for the debugger - throw; -#else - return 1; -#endif - } -} - void ShutdownCLIThread(std::thread* cliThread) { if (cliThread != nullptr) |