diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-05-21 22:15:58 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2020-05-21 22:15:58 +0200 |
commit | 4d69cc1c567180b408ddbadb9edf26859cf4c006 (patch) | |
tree | a40d455e3b460861541f1d1d3f44943d07b9fbd1 | |
parent | 92a289e45518e6a4c3a34fed6d28f09002e53352 (diff) |
Core/Misc: GCC build and warning fixes
48 files changed, 101 insertions, 127 deletions
diff --git a/cmake/compiler/gcc/settings.cmake b/cmake/compiler/gcc/settings.cmake index f827f53b3de..f5a249bfba0 100644 --- a/cmake/compiler/gcc/settings.cmake +++ b/cmake/compiler/gcc/settings.cmake @@ -33,6 +33,10 @@ if( WITH_WARNINGS ) -Wfatal-errors -Woverloaded-virtual) + target_compile_options(trinity-warning-interface + INTERFACE + -Wno-deprecated-copy) # warning in g3d + message(STATUS "GCC: All warnings enabled") endif() diff --git a/src/common/Configuration/Config.cpp b/src/common/Configuration/Config.cpp index c8403a0e666..00869ee9400 100644 --- a/src/common/Configuration/Config.cpp +++ b/src/common/Configuration/Config.cpp @@ -85,12 +85,12 @@ T ConfigMgr::GetValueDefault(std::string const& name, T def) const { return _config.get<T>(bpt::ptree::path_type(name, '/')); } - catch (bpt::ptree_bad_path) + catch (bpt::ptree_bad_path const&) { TC_LOG_WARN("server.loading", "Missing name %s in config file %s, add \"%s = %s\" to this file", name.c_str(), _filename.c_str(), name.c_str(), std::to_string(def).c_str()); } - catch (bpt::ptree_bad_data) + catch (bpt::ptree_bad_data const&) { TC_LOG_ERROR("server.loading", "Bad value defined for name %s in config file %s, going to use %s instead", name.c_str(), _filename.c_str(), std::to_string(def).c_str()); @@ -106,12 +106,12 @@ std::string ConfigMgr::GetValueDefault<std::string>(std::string const& name, std { return _config.get<std::string>(bpt::ptree::path_type(name, '/')); } - catch (bpt::ptree_bad_path) + catch (bpt::ptree_bad_path const&) { TC_LOG_WARN("server.loading", "Missing name %s in config file %s, add \"%s = %s\" to this file", name.c_str(), _filename.c_str(), name.c_str(), def.c_str()); } - catch (bpt::ptree_bad_data) + catch (bpt::ptree_bad_data const&) { TC_LOG_ERROR("server.loading", "Bad value defined for name %s in config file %s, going to use %s instead", name.c_str(), _filename.c_str(), def.c_str()); diff --git a/src/common/Logging/LogMessage.cpp b/src/common/Logging/LogMessage.cpp index fd5285efba8..143203946e8 100644 --- a/src/common/Logging/LogMessage.cpp +++ b/src/common/Logging/LogMessage.cpp @@ -16,6 +16,7 @@ */ #include "LogMessage.h" +#include "StringFormat.h" #include "Util.h" LogMessage::LogMessage(LogLevel _level, std::string const& _type, std::string&& _text) @@ -32,9 +33,7 @@ std::string LogMessage::getTimeStr(time_t time) { tm aTm; localtime_r(&time, &aTm); - char buf[20]; - snprintf(buf, 20, "%04d-%02d-%02d_%02d:%02d:%02d", aTm.tm_year + 1900, aTm.tm_mon + 1, aTm.tm_mday, aTm.tm_hour, aTm.tm_min, aTm.tm_sec); - return std::string(buf); + return Trinity::StringFormat("%04d-%02d-%02d_%02d:%02d:%02d", aTm.tm_year + 1900, aTm.tm_mon + 1, aTm.tm_mday, aTm.tm_hour, aTm.tm_min, aTm.tm_sec); } std::string LogMessage::getTimeStr() diff --git a/src/common/Utilities/Util.cpp b/src/common/Utilities/Util.cpp index 1776815a247..f5ca8a6ac4e 100644 --- a/src/common/Utilities/Util.cpp +++ b/src/common/Utilities/Util.cpp @@ -18,6 +18,7 @@ #include "Util.h" #include "Common.h" #include "IpAddress.h" +#include "StringFormat.h" #include <utf8.h> #include <algorithm> #include <sstream> @@ -203,9 +204,7 @@ std::string TimeToTimestampStr(time_t t) // HH hour (2 digits 00-23) // MM minutes (2 digits 00-59) // SS seconds (2 digits 00-59) - char buf[20]; - snprintf(buf, 20, "%04d-%02d-%02d_%02d-%02d-%02d", aTm.tm_year+1900, aTm.tm_mon+1, aTm.tm_mday, aTm.tm_hour, aTm.tm_min, aTm.tm_sec); - return std::string(buf); + return Trinity::StringFormat("%04d-%02d-%02d_%02d-%02d-%02d", aTm.tm_year + 1900, aTm.tm_mon + 1, aTm.tm_mday, aTm.tm_hour, aTm.tm_min, aTm.tm_sec); } /// Check if the string is a valid ip address representation @@ -251,7 +250,7 @@ size_t utf8length(std::string& utf8str) { return utf8::distance(utf8str.c_str(), utf8str.c_str()+utf8str.size()); } - catch(std::exception) + catch (std::exception const&) { utf8str.clear(); return 0; @@ -273,7 +272,7 @@ void utf8truncate(std::string& utf8str, size_t len) char* oend = utf8::utf16to8(wstr.c_str(), wstr.c_str()+wstr.size(), &utf8str[0]); utf8str.resize(oend-(&utf8str[0])); // remove unused tail } - catch(std::exception) + catch (std::exception const&) { utf8str.clear(); } @@ -296,7 +295,7 @@ bool Utf8toWStr(char const* utf8str, size_t csize, wchar_t* wstr, size_t& wsize) utf8::utf8to16(utf8str, utf8str+csize, wstr); wstr[len] = L'\0'; } - catch(std::exception) + catch (std::exception const&) { if (wsize > 0) wstr[0] = L'\0'; @@ -317,7 +316,7 @@ bool Utf8toWStr(const std::string& utf8str, std::wstring& wstr) utf8::utf8to16(utf8str.c_str(), utf8str.c_str()+utf8str.size(), &wstr[0]); } } - catch(std::exception) + catch (std::exception const&) { wstr.clear(); return false; @@ -340,7 +339,7 @@ bool WStrToUtf8(wchar_t* wstr, size_t size, std::string& utf8str) } utf8str = utf8str2; } - catch(std::exception) + catch (std::exception const&) { utf8str.clear(); return false; @@ -363,7 +362,7 @@ bool WStrToUtf8(std::wstring const& wstr, std::string& utf8str) } utf8str = utf8str2; } - catch(std::exception) + catch (std::exception const&) { utf8str.clear(); return false; diff --git a/src/server/database/Database/MySQLConnection.cpp b/src/server/database/Database/MySQLConnection.cpp index 466e00e35e4..bde2004afdf 100644 --- a/src/server/database/Database/MySQLConnection.cpp +++ b/src/server/database/Database/MySQLConnection.cpp @@ -513,7 +513,6 @@ bool MySQLConnection::_HandleMySQLErrno(uint32 errNo, uint8 attempts /*= 5*/) case CR_SERVER_GONE_ERROR: case CR_SERVER_LOST: case CR_SERVER_LOST_EXTENDED: - { if (m_Mysql) { TC_LOG_ERROR("sql.sql", "Lost the connection to the MySQL server!"); @@ -521,9 +520,7 @@ bool MySQLConnection::_HandleMySQLErrno(uint32 errNo, uint8 attempts /*= 5*/) mysql_close(m_Mysql); m_Mysql = nullptr; } - - /*no break*/ - } + /* fallthrough */ case CR_CONN_HOST_ERROR: { TC_LOG_INFO("sql.sql", "Attempting to reconnect to the MySQL server..."); diff --git a/src/server/database/Updater/UpdateFetcher.cpp b/src/server/database/Updater/UpdateFetcher.cpp index 123bb6dc711..3241d7feea6 100644 --- a/src/server/database/Updater/UpdateFetcher.cpp +++ b/src/server/database/Updater/UpdateFetcher.cpp @@ -307,7 +307,7 @@ UpdateResult UpdateFetcher::Update(bool const redundancyChecks, { case MODE_APPLY: speed = Apply(availableQuery.first); - /*no break*/ + /* fallthrough */ case MODE_REHASH: UpdateEntry(file, speed); break; diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 24c5dd6c646..04af075e9af 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -2685,6 +2685,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u break; } } + /* fallthrough */ case SMART_ACTION_SET_CORPSE_DELAY: { ObjectList* targets = GetTargets(e, unit); diff --git a/src/server/game/Battlefield/Zones/BattlefieldTB.cpp b/src/server/game/Battlefield/Zones/BattlefieldTB.cpp index 1d610373c94..be6072a2b8c 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldTB.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldTB.cpp @@ -850,14 +850,14 @@ void TolBaradCapturePoint::ChangeTeam(TeamId /*oldTeam*/) break; case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE: m_Bf->SendWarning(TBCapturePoints[iBase].textLost[TEAM_HORDE]); - //no break here! + /* fallthrough */ case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE: SendUpdateWorldState(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], uint32(1)); GetCapturePointGo()->SetGoArtKit(TB_GO_ARTKIT_FLAG_NONE); break; case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE: m_Bf->SendWarning(TBCapturePoints[iBase].textLost[TEAM_ALLIANCE]); - //no break here! + /* fallthrough */ case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE: SendUpdateWorldState(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], uint32(1)); GetCapturePointGo()->SetGoArtKit(TB_GO_ARTKIT_FLAG_NONE); diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp index 402b223841c..3fc2cd2ad8d 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp @@ -193,6 +193,7 @@ void BattlegroundAV::HandleQuestComplete(uint32 questid, Player* player) case AV_QUEST_A_BOSS1: case AV_QUEST_H_BOSS1: m_Team_QuestStatus[team][4] += 9; //you can turn in 10 or 1 item.. + /* fallthrough */ case AV_QUEST_A_BOSS2: case AV_QUEST_H_BOSS2: m_Team_QuestStatus[team][4]++; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp index 3bd0712b39f..3099006cf18 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp @@ -736,11 +736,11 @@ bool BattlegroundSA::CanInteractWithObject(uint32 objectId) case BG_SA_TITAN_RELIC: if (GateStatus[BG_SA_ANCIENT_GATE] != BG_SA_GATE_DESTROYED || GateStatus[BG_SA_YELLOW_GATE] != BG_SA_GATE_DESTROYED) return false; - // no break + /* fallthrough */ case BG_SA_CENTRAL_FLAG: if (GateStatus[BG_SA_RED_GATE] != BG_SA_GATE_DESTROYED && GateStatus[BG_SA_PURPLE_GATE] != BG_SA_GATE_DESTROYED) return false; - // no break + /* fallthrough */ case BG_SA_LEFT_FLAG: case BG_SA_RIGHT_FLAG: if (GateStatus[BG_SA_GREEN_GATE] != BG_SA_GATE_DESTROYED && GateStatus[BG_SA_BLUE_GATE] != BG_SA_GATE_DESTROYED) diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 25031d5c04c..f47af683485 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -1975,7 +1975,7 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) const TC_LOG_ERROR("sql.sql", "%s has invalid state mask (%u), skipped.", cond->ToString(true).c_str(), cond->ConditionValue2); return false; } - // intentional missing break + /* fallthrough */ case CONDITION_QUESTREWARDED: case CONDITION_QUESTTAKEN: case CONDITION_QUEST_NONE: diff --git a/src/server/game/DataStores/M2Stores.cpp b/src/server/game/DataStores/M2Stores.cpp index 7bf97b44ed4..a14f9ae8121 100644 --- a/src/server/game/DataStores/M2Stores.cpp +++ b/src/server/game/DataStores/M2Stores.cpp @@ -147,7 +147,6 @@ bool readCamera(M2Camera const* cam, uint32 buffSize, M2Header const* header, Ci float x = lastTarget.locations.GetPositionX(); float y = lastTarget.locations.GetPositionY(); - float z = lastTarget.locations.GetPositionZ(); // Now, the timestamps for target cam and position can be different. So, if they differ we interpolate if (lastTarget.timeStamp != posTimestamps[i]) @@ -156,10 +155,8 @@ bool readCamera(M2Camera const* cam, uint32 buffSize, M2Header const* header, Ci uint32 timeDiffThis = posTimestamps[i] - lastTarget.timeStamp; float xDiff = nextTarget.locations.GetPositionX() - lastTarget.locations.GetPositionX(); float yDiff = nextTarget.locations.GetPositionY() - lastTarget.locations.GetPositionY(); - float zDiff = nextTarget.locations.GetPositionZ() - lastTarget.locations.GetPositionZ(); x = lastTarget.locations.GetPositionX() + (xDiff * (float(timeDiffThis) / float(timeDiffTarget))); y = lastTarget.locations.GetPositionY() + (yDiff * (float(timeDiffThis) / float(timeDiffTarget))); - z = lastTarget.locations.GetPositionZ() + (zDiff * (float(timeDiffThis) / float(timeDiffTarget))); } float xDiff = x - thisCam.locations.GetPositionX(); float yDiff = y - thisCam.locations.GetPositionY(); @@ -197,10 +194,10 @@ TC_GAME_API void LoadM2Cameras(std::string const& dataPath) // Get file size m2file.seekg(0, std::ios::end); - std::streamoff const fileSize = m2file.tellg(); + std::streamoff fileSize = m2file.tellg(); // Reject if not at least the size of the header - if (static_cast<uint32 const>(fileSize) < sizeof(M2Header) + 4) + if (static_cast<uint32>(fileSize) < sizeof(M2Header) + 4) { TC_LOG_ERROR("server.loading", "Camera file %s is damaged. File is smaller than header size", filename.string().c_str()); m2file.close(); @@ -234,7 +231,7 @@ TC_GAME_API void LoadM2Cameras(std::string const& dataPath) bool fileValid = true; uint32 m2start = 0; char const* ptr = buffer.data(); - while (m2start + 4 < buffer.size() && *reinterpret_cast<uint32 const*>(ptr) != '02DM') + while (m2start + 4 < buffer.size() && memcmp(ptr, "MD20", 4) != 0) { ++m2start; ++ptr; @@ -254,7 +251,7 @@ TC_GAME_API void LoadM2Cameras(std::string const& dataPath) // Read header M2Header const* header = reinterpret_cast<M2Header const*>(buffer.data() + m2start); - if (m2start + header->ofsCameras + sizeof(M2Camera) > static_cast<uint32 const>(fileSize)) + if (m2start + header->ofsCameras + sizeof(M2Camera) > static_cast<uint32>(fileSize)) { TC_LOG_ERROR("server.loading", "Camera file %s is damaged. Camera references position beyond file end", filename.string().c_str()); continue; diff --git a/src/server/game/DungeonFinding/LFGGroupData.cpp b/src/server/game/DungeonFinding/LFGGroupData.cpp index ca36e89e268..b1386a43c80 100644 --- a/src/server/game/DungeonFinding/LFGGroupData.cpp +++ b/src/server/game/DungeonFinding/LFGGroupData.cpp @@ -40,10 +40,11 @@ void LfgGroupData::SetState(LfgState state) case LFG_STATE_NONE: m_Dungeon = 0; m_KicksLeft = LFG_GROUP_MAX_KICKS; + /* fallthrough */ case LFG_STATE_FINISHED_DUNGEON: case LFG_STATE_DUNGEON: m_OldState = state; - // No break on purpose + /* fallthrough */ default: m_State = state; } diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 8413803a646..72299af8e40 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -486,6 +486,7 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons) else rDungeonId = (*dungeons.begin()); // No break on purpose (Random can only be dungeon or heroic dungeon) + /* fallthrough */ case LFG_TYPE_HEROIC: case LFG_TYPE_DUNGEON: if (isRaid) diff --git a/src/server/game/DungeonFinding/LFGPlayerData.cpp b/src/server/game/DungeonFinding/LFGPlayerData.cpp index acdaf99939d..6d8612ed9fc 100644 --- a/src/server/game/DungeonFinding/LFGPlayerData.cpp +++ b/src/server/game/DungeonFinding/LFGPlayerData.cpp @@ -39,10 +39,10 @@ void LfgPlayerData::SetState(LfgState state) case LFG_STATE_FINISHED_DUNGEON: m_Roles = 0; m_SelectedDungeons.clear(); - // No break on purpose + /* fallthrough */ case LFG_STATE_DUNGEON: m_OldState = state; - // No break on purpose + /* fallthrough */ default: m_State = state; } diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 1a3fbe69bee..8cb05644006 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -602,8 +602,8 @@ void GameObject::Update(uint32 diff) m_lootState = GO_READY; // for other GOis same switched without delay to GO_READY break; } - // NO BREAK for switch (m_lootState) } + /* fallthrough */ case GO_READY: { if (m_respawnTime > 0) // timer on diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 56eabab98d1..c8245b14795 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -2453,7 +2453,6 @@ void Item::InitArtifactPowers(uint8 artifactId, uint8 artifactTier) continue; ArtifactPowerData powerData; - memset(&powerData, 0, sizeof(powerData)); powerData.ArtifactPowerId = artifactPower->ID; powerData.PurchasedRank = 0; powerData.CurrentRankWithBonus = (artifactPower->Flags & ARTIFACT_POWER_FLAG_FIRST) == ARTIFACT_POWER_FLAG_FIRST ? 1 : 0; @@ -2502,11 +2501,6 @@ void Item::ApplyArtifactPowerEnchantmentBonuses(EnchantmentSlot slot, uint32 enc break; case ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_BY_ID: { - auto indexItr = m_artifactPowerIdToIndex.find(enchant->EffectArg[i]); - uint16 index; - if (indexItr != m_artifactPowerIdToIndex.end()) - index = indexItr->second; - if (uint16 const* artifactPowerIndex = Trinity::Containers::MapGetValuePtr(m_artifactPowerIdToIndex, enchant->EffectArg[i])) { uint8 newRank = m_itemData->ArtifactPowers[*artifactPowerIndex].CurrentRankWithBonus; diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h index 564787bd3fd..a1fb875fcc6 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.h +++ b/src/server/game/Entities/Object/Updates/UpdateFields.h @@ -537,7 +537,7 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField<bool, 0, 2> BankAutoSortDisabled; UpdateField<bool, 0, 3> SortBagsRightToLeft; UpdateField<bool, 0, 4> InsertItemsLeftToRight; - UpdateFieldArray<DynamicUpdateField<UF::Research, -1, -1>, 1, 22, 23> Research; + UpdateFieldArray<DynamicUpdateField<UF::Research, 4294967295, 4294967295>, 1, 22, 23> Research; DynamicUpdateField<uint64, 0, 5> KnownTitles; DynamicUpdateField<uint16, 0, 6> ResearchSites; DynamicUpdateField<uint32, 0, 7> ResearchSiteProgress; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index c2e5e8b02e1..2ad9cd137b6 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5691,7 +5691,7 @@ void Player::InitializeSkillFields() uint32 i = 0; for (SkillLineEntry const* skillLine : sSkillLineStore) { - if (SkillRaceClassInfoEntry const* rcEntry = sDB2Manager.GetSkillRaceClassInfo(skillLine->ID, getRace(), getClass())) + if (sDB2Manager.GetSkillRaceClassInfo(skillLine->ID, getRace(), getClass())) { SetSkillLineId(i, skillLine->ID); SetSkillStartingRank(i, 1); @@ -9737,7 +9737,7 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) case 4197: if (bf && bf->GetTypeId() == BATTLEFIELD_WG) bf->FillInitialWorldStates(packet); - // No break here, intended. + /* fallthrough */ default: packet.Worldstates.emplace_back(0x914, 0x0); // 7 packet.Worldstates.emplace_back(0x913, 0x0); // 8 diff --git a/src/server/game/Entities/Player/RestMgr.cpp b/src/server/game/Entities/Player/RestMgr.cpp index e93890fac4d..123e09a108d 100644 --- a/src/server/game/Entities/Player/RestMgr.cpp +++ b/src/server/game/Entities/Player/RestMgr.cpp @@ -30,8 +30,6 @@ RestMgr::RestMgr(Player* player) : _player(player), _restTime(0), _innAreaTrigge void RestMgr::SetRestBonus(RestTypes restType, float restBonus) { - uint8 rest_rested_offset; - uint8 rest_state_offset; int32 next_level_xp; bool affectedByRaF = false; @@ -42,8 +40,6 @@ void RestMgr::SetRestBonus(RestTypes restType, float restBonus) if (_player->getLevel() >= sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) restBonus = 0; - rest_rested_offset = REST_RESTED_XP; - rest_state_offset = REST_STATE_XP; next_level_xp = _player->m_activePlayerData->NextLevelXP; affectedByRaF = true; break; @@ -52,8 +48,6 @@ void RestMgr::SetRestBonus(RestTypes restType, float restBonus) if (_player->IsMaxHonorLevel()) restBonus = 0; - rest_rested_offset = REST_RESTED_HONOR; - rest_state_offset = REST_STATE_HONOR; next_level_xp = _player->m_activePlayerData->HonorNextLevel; break; default: diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e3441184188..43ae9f624d0 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6935,6 +6935,7 @@ float Unit::GetUnitSpellCriticalChance(Unit* victim, SpellInfo const* spellProto return 0.0f; } // Do not add a break here, case fallthrough is intentional! Adding a break will make above spells unable to crit. + /* fallthrough */ case SPELL_DAMAGE_CLASS_MAGIC: { if (schoolMask & SPELL_SCHOOL_MASK_NORMAL) @@ -13536,7 +13537,7 @@ void Unit::SendClearTarget() int32 Unit::GetResistance(SpellSchoolMask mask) const { - Optional<int32> resist; + Optional<int32> resist = boost::make_optional(false, 0); for (int32 i = SPELL_SCHOOL_NORMAL; i < MAX_SPELL_SCHOOL; ++i) { int32 schoolResistance = GetResistance(SpellSchools(i)) + GetBonusResistanceMod(SpellSchools(i)); diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 73bc95f2caf..7428cb9994e 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -277,7 +277,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe case REACT_PASSIVE: //passive pet->AttackStop(); pet->ClearInPetCombat(); - // no break; + /* fallthrough */ case REACT_DEFENSIVE: //recovery case REACT_AGGRESSIVE: //activete if (pet->GetTypeId() == TYPEID_UNIT) diff --git a/src/server/game/Movement/Spline/Spline.cpp b/src/server/game/Movement/Spline/Spline.cpp index 0e1f631acc6..b6318b6c63d 100644 --- a/src/server/game/Movement/Spline/Spline.cpp +++ b/src/server/game/Movement/Spline/Spline.cpp @@ -27,7 +27,7 @@ SplineBase::EvaluationMethtod SplineBase::evaluators[SplineBase::ModesEnd] = &SplineBase::EvaluateLinear, &SplineBase::EvaluateCatmullRom, &SplineBase::EvaluateBezier3, - (EvaluationMethtod)&SplineBase::UninitializedSpline, + &SplineBase::UninitializedSplineEvaluationMethod, }; SplineBase::EvaluationMethtod SplineBase::derivative_evaluators[SplineBase::ModesEnd] = @@ -35,7 +35,7 @@ SplineBase::EvaluationMethtod SplineBase::derivative_evaluators[SplineBase::Mode &SplineBase::EvaluateDerivativeLinear, &SplineBase::EvaluateDerivativeCatmullRom, &SplineBase::EvaluateDerivativeBezier3, - (EvaluationMethtod)&SplineBase::UninitializedSpline, + &SplineBase::UninitializedSplineEvaluationMethod, }; SplineBase::SegLenghtMethtod SplineBase::seglengths[SplineBase::ModesEnd] = @@ -43,7 +43,7 @@ SplineBase::SegLenghtMethtod SplineBase::seglengths[SplineBase::ModesEnd] = &SplineBase::SegLengthLinear, &SplineBase::SegLengthCatmullRom, &SplineBase::SegLengthBezier3, - (SegLenghtMethtod)&SplineBase::UninitializedSpline, + &SplineBase::UninitializedSplineSegLenghtMethod, }; SplineBase::InitMethtod SplineBase::initializers[SplineBase::ModesEnd] = @@ -52,7 +52,7 @@ SplineBase::InitMethtod SplineBase::initializers[SplineBase::ModesEnd] = &SplineBase::InitCatmullRom, // we should use catmullrom initializer even for linear mode! (client's internal structure limitation) &SplineBase::InitCatmullRom, &SplineBase::InitBezier3, - (InitMethtod)&SplineBase::UninitializedSpline, + &SplineBase::UninitializedSplineInitMethod, }; /////////// diff --git a/src/server/game/Movement/Spline/Spline.h b/src/server/game/Movement/Spline/Spline.h index 5134c0d1b46..5f31115b2af 100644 --- a/src/server/game/Movement/Spline/Spline.h +++ b/src/server/game/Movement/Spline/Spline.h @@ -83,7 +83,9 @@ protected: typedef void (SplineBase::*InitMethtod)(const Vector3*, index_type, index_type); static InitMethtod initializers[ModesEnd]; - void UninitializedSpline() const { ABORT();} + void UninitializedSplineEvaluationMethod(index_type, float, Vector3&) const { ABORT(); } + float UninitializedSplineSegLenghtMethod(index_type) const { ABORT(); return 0.0f; } + void UninitializedSplineInitMethod(Vector3 const*, index_type, index_type) { ABORT(); } public: diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h index 8d5e28a2b18..5762f2b7971 100644 --- a/src/server/game/Server/Packets/GuildPackets.h +++ b/src/server/game/Server/Packets/GuildPackets.h @@ -931,7 +931,7 @@ namespace WorldPackets uint32 CompletedDate = 0; int32 Type = 0; int32 Flags = 0; - std::array<int32, 2> Data; + std::array<int32, 2> Data = { }; ObjectGuid MemberGuid; std::vector<ObjectGuid> MemberList; Optional<Item::ItemInstance> Item; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 9281d012f55..7e02a18cb82 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -671,6 +671,7 @@ void AuraEffect::CalculatePeriodic(Unit* caster, bool resetPeriodicTimer /*= tru // 3 spells have no amplitude set if (!m_period) m_period = 1 * IN_MILLISECONDS; + /* fallthrough */ case SPELL_AURA_PERIODIC_DAMAGE: case SPELL_AURA_PERIODIC_HEAL: case SPELL_AURA_OBS_MOD_HEALTH: diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 175959a15d4..54f520b5e85 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -2334,7 +2334,7 @@ void UnitAura::FillTargetMap(std::unordered_map<Unit*, uint32>& targets, Unit* c } case SPELL_EFFECT_APPLY_AREA_AURA_PET: units.push_back(GetUnitOwner()); - // no break + /* fallthrough */ case SPELL_EFFECT_APPLY_AREA_AURA_OWNER: { if (Unit* owner = GetUnitOwner()->GetCharmerOrOwner()) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index aa4454de7f9..290361471da 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3035,7 +3035,7 @@ void Spell::cancel() { case SPELL_STATE_PREPARING: CancelGlobalCooldown(); - // no break + /* fallthrough */ case SPELL_STATE_DELAYED: SendInterrupted(0); SendCastResult(SPELL_FAILED_INTERRUPTED); @@ -5454,7 +5454,8 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint case SUMMON_CATEGORY_PET: if (!m_spellInfo->HasAttribute(SPELL_ATTR1_DISMISS_PET) && !m_caster->GetPetGUID().IsEmpty()) return SPELL_FAILED_ALREADY_HAVE_SUMMON; - // intentional missing break, check both GetPetGUID() and GetCharmGUID for SUMMON_CATEGORY_PET + /* fallthrough */ + // intentional, check both GetPetGUID() and GetCharmGUID for SUMMON_CATEGORY_PET case SUMMON_CATEGORY_PUPPET: if (!m_caster->GetCharmGUID().IsEmpty()) return SPELL_FAILED_ALREADY_HAVE_CHARM; @@ -6508,7 +6509,7 @@ SpellCastResult Spell::CheckItems(uint32* param1 /*= nullptr*/, uint32* param2 / return SPELL_FAILED_DONT_REPORT; } } - // no break + /* fallthrough */ case SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC: { Item* targetItem = m_targets.GetItemTarget(); @@ -7862,7 +7863,7 @@ bool WorldObjectSpellTargetCheck::operator()(WorldObject* target) case TARGET_CHECK_RAID_CLASS: if (_referer->getClass() != unitTarget->getClass()) return false; - // nobreak; + /* fallthrough */ case TARGET_CHECK_RAID: if (unitTarget->IsTotem()) return false; diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index b9f26ed4e08..04134692877 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -2713,6 +2713,7 @@ void SpellInfo::_LoadSpellSpecific() /// @workaround For non-stacking tracking spells (We need generic solution) if (Id == 30645) // Gas Cloud Tracking return SPELL_SPECIFIC_NORMAL; + /* fallthrough */ case SPELL_AURA_TRACK_RESOURCES: case SPELL_AURA_TRACK_STEALTHED: return SPELL_SPECIFIC_TRACKER; @@ -3244,7 +3245,7 @@ void SpellInfo::_LoadImmunityInfo() immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE); immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR); immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2); - // no break intended + /* fallthrough */ case 61869: // Overload case 63481: case 61887: // Lightning Tendrils diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index eb2621954cf..c00b07a157f 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2646,7 +2646,6 @@ void SpellMgr::LoadSpellInfoCustomAttributes() case SPELL_EFFECT_APPLY_AREA_AURA_ENEMY: case SPELL_EFFECT_APPLY_AREA_AURA_PET: case SPELL_EFFECT_APPLY_AREA_AURA_OWNER: - { if (effect->ApplyAuraName == SPELL_AURA_PERIODIC_DAMAGE || effect->ApplyAuraName == SPELL_AURA_PERIODIC_DAMAGE_PERCENT || effect->ApplyAuraName == SPELL_AURA_DUMMY || @@ -2654,7 +2653,7 @@ void SpellMgr::LoadSpellInfoCustomAttributes() effect->ApplyAuraName == SPELL_AURA_PERIODIC_HEALTH_FUNNEL || effect->ApplyAuraName == SPELL_AURA_PERIODIC_DUMMY) break; - } + /* fallthrough */ default: { // No value and not interrupt cast or crowd control without SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY flag diff --git a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp index bc96be615eb..d14fa3065e1 100644 --- a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp +++ b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp @@ -116,11 +116,8 @@ enum AnimKits ANIM_KIT_ID_CANNON_DESTROYED = 13264 }; -enum TargetSize : uint8 -{ - MIN_TARGETS_SIZE = 2, - MAX_TARGETS_SIZE = 6 -}; +constexpr uint8 MIN_TARGETS_SIZE = 2; +constexpr uint8 MAX_TARGETS_SIZE = 6; enum Misc { @@ -866,7 +863,7 @@ class spell_garothi_cannon_chooser : public SpellScript else if ((lastCannonEntry == NPC_DECIMATOR && annihilator) || (annihilator && !decimator)) { uint8 count = caster->GetMap()->GetDifficultyID() == DIFFICULTY_MYTHIC_RAID ? MAX_TARGETS_SIZE : - std::max<uint8>(MIN_TARGETS_SIZE, std::ceil(caster->GetMap()->GetPlayersCountExceptGMs() / 5)); + std::max<uint8>(MIN_TARGETS_SIZE, std::ceil(float(caster->GetMap()->GetPlayersCountExceptGMs()) / 5)); for (uint8 i = 0; i < count; i++) { diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp index 5ef89e39c47..4de12767b62 100644 --- a/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp +++ b/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp @@ -61,7 +61,7 @@ class instance_halls_of_origination : public InstanceMapScript { case GO_ANHUURS_BRIDGE: AnhuursBridgeGUID = go->GetGUID(); - // no break + /* fallthrough */ case GO_DOODAD_ULDUM_ELEVATOR_COL01: case GO_VAULT_OF_LIGHTS_DOOR: case GO_DOODAD_ULDUM_LIGHTMACHINE_01: diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp index 20d5fb31681..640fcfa3d23 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp @@ -779,7 +779,7 @@ struct npc_hadronox_foeAI : public ScriptedAI me->GetMotionMaster()->MovePoint(MOVE_DOWNSTAIRS_2, downstairsMoves2[_mySpawn]); break; } - // intentional missing break + /* fallthrough */ case MOVE_HADRONOX: case MOVE_HADRONOX_REAL: { 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 334b91eff20..8dddd60e7ff 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp @@ -136,7 +136,7 @@ class boss_general_zarithrian : public CreatureScript { case EVENT_SUMMON_ADDS: Talk(SAY_ADDS); - // no break + /* fallthrough */ case EVENT_SUMMON_ADDS2: { if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_1))) 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 4a344e9a9e2..483a82898be 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 @@ -163,7 +163,7 @@ class instance_halls_of_reflection : public InstanceMapScript case NPC_WORLD_TRIGGER: if (!creature->GetTransport()) break; - // no break + /* fallthrough */ case NPC_GUNSHIP_CANNON_HORDE: GunshipCannonGUIDs.insert(creature->GetGUID()); break; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index 1ab35165e5a..11b5ad24e9a 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -231,7 +231,7 @@ class boss_lord_marrowgar : public CreatureScript me->SetSpeedRate(MOVE_RUN, _baseSpeed*3.0f); Talk(SAY_BONE_STORM); events.ScheduleEvent(EVENT_BONE_STORM_END, _boneStormDuration+1); - // no break here + /* fallthrough */ case EVENT_BONE_STORM_MOVE: { events.ScheduleEvent(EVENT_BONE_STORM_MOVE, _boneStormDuration/3); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index 7c776cc1df4..5dce834d7b5 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -248,7 +248,7 @@ class instance_icecrown_citadel : public InstanceMapScript case NPC_SE_HIGH_OVERLORD_SAURFANG: if (TeamInInstance == ALLIANCE) creature->UpdateEntry(NPC_SE_MURADIN_BRONZEBEARD, creature->GetCreatureData()); - // no break; + /* fallthrough */ case NPC_SE_MURADIN_BRONZEBEARD: DeathbringerSaurfangEventGUID = creature->GetGUID(); creature->LastUsedScriptID = creature->GetScriptId(); @@ -1208,7 +1208,7 @@ class instance_icecrown_citadel : public InstanceMapScript case DATA_THE_LICH_KING: if (GetBossState(DATA_PROFESSOR_PUTRICIDE) != DONE) return false; - // no break + /* fallthrough */ case DATA_PROFESSOR_PUTRICIDE: if (GetBossState(DATA_FESTERGUT) != DONE || GetBossState(DATA_ROTFACE) != DONE) return false; @@ -1227,7 +1227,7 @@ class instance_icecrown_citadel : public InstanceMapScript case DATA_THE_LICH_KING: if (GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) != DONE) return false; - // no break + /* fallthrough */ case DATA_BLOOD_QUEEN_LANA_THEL: if (GetBossState(DATA_BLOOD_PRINCE_COUNCIL) != DONE) return false; @@ -1246,7 +1246,7 @@ class instance_icecrown_citadel : public InstanceMapScript case DATA_THE_LICH_KING: if (GetBossState(DATA_SINDRAGOSA) != DONE) return false; - // no break + /* fallthrough */ case DATA_SINDRAGOSA: if (GetBossState(DATA_VALITHRIA_DREAMWALKER) != DONE) return false; @@ -1272,19 +1272,19 @@ class instance_icecrown_citadel : public InstanceMapScript case DATA_FESTERGUT: if (GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE) return false; - // no break + /* fallthrough */ case DATA_DEATHBRINGER_SAURFANG: if (GetBossState(DATA_ICECROWN_GUNSHIP_BATTLE) != DONE) return false; - // no break + /* fallthrough */ case DATA_ICECROWN_GUNSHIP_BATTLE: if (GetBossState(DATA_LADY_DEATHWHISPER) != DONE) return false; - // no break + /* fallthrough */ case DATA_LADY_DEATHWHISPER: if (GetBossState(DATA_LORD_MARROWGAR) != DONE) return false; - // no break + /* fallthrough */ case DATA_LORD_MARROWGAR: default: break; @@ -1415,7 +1415,7 @@ class instance_icecrown_citadel : public InstanceMapScript case EVENT_ENEMY_GUNSHIP_COMBAT: if (Creature* captain = source->FindNearestCreature(TeamInInstance == HORDE ? NPC_IGB_HIGH_OVERLORD_SAURFANG : NPC_IGB_MURADIN_BRONZEBEARD, 100.0f)) captain->AI()->DoAction(ACTION_ENEMY_GUNSHIP_TALK); - // no break; + /* fallthrough */ case EVENT_PLAYERS_GUNSHIP_SPAWN: case EVENT_PLAYERS_GUNSHIP_COMBAT: if (GameObject* go = source->ToGameObject()) diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp index 1d31e977a4d..46da6614e39 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp @@ -589,7 +589,7 @@ struct npc_gothik_minion_baseAI : public ScriptedAI { case ACTION_GATE_OPENED: _gateIsOpen = true; - // intentional missing break + /* fallthrough */ case ACTION_ACQUIRE_TARGET: if (Player* target = FindEligibleTarget(me, _gateIsOpen)) { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index 20fee82c3b5..690a1ecdbfc 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -735,7 +735,7 @@ class boss_leviathan_mk_ii : public CreatureScript DoCast(me, SPELL_EMERGENCY_MODE); DoCastAOE(SPELL_EMERGENCY_MODE_TURRET); events.ScheduleEvent(EVENT_FLAME_SUPPRESSANT_MK, 60000, 0, PHASE_LEVIATHAN_MK_II); - // Missing break intended. + /* fallthrough */ case DO_START_MKII: me->SetReactState(REACT_AGGRESSIVE); events.SetPhase(PHASE_LEVIATHAN_MK_II); @@ -979,7 +979,7 @@ class boss_vx_001 : public CreatureScript DoCast(me, SPELL_EMERGENCY_MODE); events.ScheduleEvent(EVENT_FROST_BOMB, 1000); events.ScheduleEvent(EVENT_FLAME_SUPPRESSANT_VX, 6000); - // Missing break intended. + /* fallthrough */ case DO_START_VX001: me->RemoveUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC)); me->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM); @@ -1156,7 +1156,7 @@ class boss_aerial_command_unit : public CreatureScript fireFigther = true; DoCast(me, SPELL_EMERGENCY_MODE); events.ScheduleEvent(EVENT_SUMMON_FIRE_BOTS, 1000, 0, PHASE_AERIAL_COMMAND_UNIT); - // Missing break intended. + /* fallthrough */ case DO_START_AERIAL: me->RemoveUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC)); me->SetReactState(REACT_AGGRESSIVE); diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index 26fd92db4b9..ab209d3287c 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -738,7 +738,7 @@ class instance_violet_hold : public InstanceMapScript guard->AddUnitFlag(UnitFlags(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC)); } } - // no break + /* fallthrough */ default: if (boss->isDead()) { diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index acbbb2bc802..01285e18a61 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -791,9 +791,7 @@ public: Creature* crunchy = shooter->FindNearestCreature(NPC_CRUNCHY, 30); Creature* bird = shooter->FindNearestCreature(NPC_THICKBIRD, 30); - if (!bird || !crunchy) - ; // fall to EVENT_MISS - else + if (bird && crunchy) { shooter->CastSpell(bird, SPELL_MISS_BIRD_APPLE); bird->CastSpell(bird, SPELL_BIRD_FALL); @@ -804,10 +802,10 @@ public: crunchy->GetMotionMaster()->MovePoint(0, bird->GetPositionX(), bird->GetPositionY(), bird->GetMap()->GetWaterOrGroundLevel(bird->GetPhaseShift(), bird->GetPositionX(), bird->GetPositionY(), bird->GetPositionZ())); /// @todo Make crunchy perform emote eat when he reaches the bird - break; } } + /* fallthrough */ case EVENT_MISS: { shooter->CastSpell(wilhelm, SPELL_MISS_APPLE); diff --git a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp index 66600ccb4d0..21197f01c81 100644 --- a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp @@ -176,7 +176,7 @@ class instance_black_temple : public InstanceMapScript for (ObjectGuid ashtongueGuid : AshtongueGUIDs) if (Creature* ashtongue = instance->GetCreature(ashtongueGuid)) ashtongue->SetFaction(ASHTONGUE_FACTION_FRIEND); - // no break + /* fallthrough */ case DATA_TERON_GOREFIEND: case DATA_GURTOGG_BLOODBOIL: case DATA_RELIQUARY_OF_SOULS: diff --git a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp index 1c03c169efd..b413d805e0f 100644 --- a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp +++ b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp @@ -59,7 +59,7 @@ class instance_gruuls_lair : public InstanceMapScript { case NPC_MAULGAR: MaulgarGUID = creature->GetGUID(); - // no break; + /* fallthrough */ case NPC_KROSH_FIREHAND: case NPC_OLM_THE_SUMMONER: case NPC_KIGGLER_THE_CRAZED: 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 d0fabf1dd5b..8d52d7dd09b 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp @@ -86,7 +86,7 @@ class instance_blood_furnace : public InstanceMapScript { case GO_PRISON_DOOR_04: PrisonDoor4GUID = go->GetGUID(); - // no break + /* fallthrough */ case GO_PRISON_DOOR_01: case GO_PRISON_DOOR_02: case GO_PRISON_DOOR_03: diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp index 7f3aab941af..3a065b246ac 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp @@ -143,10 +143,13 @@ class boss_shattered_executioner : public CreatureScript { case 3: me->RemoveLootMode(LOOT_MODE_HARD_MODE_1); + /* fallthrough */ case 2: me->RemoveLootMode(LOOT_MODE_HARD_MODE_2); + /* fallthrough */ case 1: me->RemoveLootMode(LOOT_MODE_HARD_MODE_3); + break; } } } diff --git a/src/tools/vmap4_extractor/gameobject_extract.cpp b/src/tools/vmap4_extractor/gameobject_extract.cpp index f96c0fd2c08..6575f5129dd 100644 --- a/src/tools/vmap4_extractor/gameobject_extract.cpp +++ b/src/tools/vmap4_extractor/gameobject_extract.cpp @@ -62,13 +62,6 @@ bool ExtractSingleModel(std::string& fname) extern std::shared_ptr<CASC::Storage> CascStorage; -enum ModelTypes : uint32 -{ - MODEL_MD20 = '02DM', - MODEL_MD21 = '12DM', - MODEL_WMO = 'MVER' -}; - bool GetHeaderMagic(std::string const& fileName, uint32* magic) { *magic = 0; @@ -125,12 +118,12 @@ void ExtractGameobjectModels() continue; uint8 isWmo = 0; - if (header == MODEL_WMO) + if (!memcmp(&header, "REVM", 4)) { isWmo = 1; result = ExtractSingleWmo(fileName); } - else if (header == MODEL_MD20 || header == MODEL_MD21) + else if (!memcmp(&header, "MD20", 4) || !memcmp(&header, "MD21", 4)) result = ExtractSingleModel(fileName); else ASSERT(false, "%s header: %d - %c%c%c%c", fileName.c_str(), header, (header >> 24) & 0xFF, (header >> 16) & 0xFF, (header >> 8) & 0xFF, header & 0xFF); diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp index 81f1e332d75..3dd206968f3 100644 --- a/src/tools/vmap4_extractor/model.cpp +++ b/src/tools/vmap4_extractor/model.cpp @@ -29,9 +29,8 @@ extern std::shared_ptr<CASC::Storage> CascStorage; -Model::Model(std::string &filename) : filename(filename), vertices(0), indices(0) +Model::Model(std::string &filename) : filename(filename), header(), vertices(nullptr), indices(nullptr) { - memset(&header, 0, sizeof(header)); } bool Model::open() @@ -50,7 +49,7 @@ bool Model::open() uint32 m2start = 0; char const* ptr = f.getBuffer(); - while (m2start + 4 < f.getSize() && *reinterpret_cast<uint32 const*>(ptr) != '02DM') + while (m2start + 4 < f.getSize() && memcmp(ptr, "MD20", 4) != 0) { ++m2start; ++ptr; @@ -154,7 +153,7 @@ Vec3D fixCoordSystem(Vec3D const& v) void Doodad::Extract(ADT::MDDF const& doodadDef, char const* ModelInstName, uint32 mapID, uint32 originalMapId, FILE* pDirfile, std::vector<ADTOutputCache>* dirfileCache) { - char tempname[512]; + char tempname[1036]; sprintf(tempname, "%s/%s", szWorkDirWmo, ModelInstName); FILE* input = fopen(tempname, "r+b"); @@ -262,7 +261,7 @@ void Doodad::ExtractSet(WMODoodadData const& doodadData, ADT::MODF const& wmo, b } } - char tempname[512]; + char tempname[1036]; sprintf(tempname, "%s/%s", szWorkDirWmo, ModelInstName); FILE* input = fopen(tempname, "r+b"); if (!input) diff --git a/src/tools/vmap4_extractor/vec3d.h b/src/tools/vmap4_extractor/vec3d.h index 2c93018091c..8bb822d9d4c 100644 --- a/src/tools/vmap4_extractor/vec3d.h +++ b/src/tools/vmap4_extractor/vec3d.h @@ -28,14 +28,9 @@ public: Vec3D(float x0 = 0.0f, float y0 = 0.0f, float z0 = 0.0f) : x(x0), y(y0), z(z0) {} - Vec3D(const Vec3D& v) : x(v.x), y(v.y), z(v.z) {} + Vec3D(const Vec3D& v) = default; - Vec3D& operator= (const Vec3D &v) { - x = v.x; - y = v.y; - z = v.z; - return *this; - } + Vec3D& operator= (const Vec3D &v) = default; Vec3D operator+ (const Vec3D &v) const { @@ -157,13 +152,9 @@ public: Vec2D(float x0 = 0.0f, float y0 = 0.0f) : x(x0), y(y0) {} - Vec2D(const Vec2D& v) : x(v.x), y(v.y) {} + Vec2D(const Vec2D& v) = default; - Vec2D& operator= (const Vec2D &v) { - x = v.x; - y = v.y; - return *this; - } + Vec2D& operator= (const Vec2D &v) = default; Vec2D operator+ (const Vec2D &v) const { |