diff options
Diffstat (limited to 'src')
23 files changed, 173 insertions, 146 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 8400e4cee00..25fbef2ca86 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -100,7 +100,8 @@ ConditionMgr::ConditionTypeInfo const ConditionMgr::StaticConditionTypeData[COND { "Alive", false, false, false }, { "Health Value", true, true, false }, { "Health Pct", true, true, false }, - { "Realm Achievement", true, false, false } + { "Realm Achievement", true, false, false }, + { "In Water", false, false, false } }; // Checks if object meets the condition @@ -424,6 +425,12 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo) condMeets = true; break; } + case CONDITION_IN_WATER: + { + if (Unit* unit = object->ToUnit()) + condMeets = unit->IsInWater(); + break; + } default: condMeets = false; break; @@ -591,6 +598,9 @@ uint32 Condition::GetSearcherTypeMaskForCondition() case CONDITION_REALM_ACHIEVEMENT: mask |= GRID_MAP_TYPE_MASK_ALL; break; + case CONDITION_IN_WATER: + mask |= GRID_MAP_TYPE_MASK_CREATURE | GRID_MAP_TYPE_MASK_PLAYER; + break; default: ASSERT(false && "Condition::GetSearcherTypeMaskForCondition - missing condition handling!"); break; @@ -2077,6 +2087,8 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) } break; } + case CONDITION_IN_WATER: + break; default: break; } diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h index 1fdd011633e..27983782bdc 100644 --- a/src/server/game/Conditions/ConditionMgr.h +++ b/src/server/game/Conditions/ConditionMgr.h @@ -73,7 +73,8 @@ enum ConditionTypes CONDITION_HP_VAL = 37, // hpVal ComparisonType 0 true if unit's hp matches given value CONDITION_HP_PCT = 38, // hpPct ComparisonType 0 true if unit's hp matches given pct CONDITION_REALM_ACHIEVEMENT = 39, // achievement_id 0 0 true if realm achievement is complete - CONDITION_MAX = 40 // MAX + CONDITION_IN_WATER = 40, // 0 0 0 true if unit in water + CONDITION_MAX = 41 // MAX }; /*! Documentation on implementing a new ConditionSourceType: diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 024002ab88f..f07e4e7113f 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -1266,14 +1266,6 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false* if (player->GetMapId() == uint32(dungeon->map)) player->TeleportToBGEntryPoint(); - // in the case were we are the last in lfggroup then we must disband when porting out of the instance - if (group && group->GetMembersCount() == 1) - { - group->Disband(); - TC_LOG_DEBUG("lfg.teleport", "Player %s is last in lfggroup so we disband the group.", - player->GetName().c_str()); - } - return; } diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp index ae64e59936f..852eb7d8c5f 100644 --- a/src/server/game/DungeonFinding/LFGScripts.cpp +++ b/src/server/game/DungeonFinding/LFGScripts.cpp @@ -99,7 +99,17 @@ void LFGPlayerScript::OnMapChanged(Player* player) player->CastSpell(player, LFG_SPELL_LUCK_OF_THE_DRAW, true); } else + { + Group* group = player->GetGroup(); + if (group && group->GetMembersCount() == 1) + { + sLFGMgr->LeaveLfg(group->GetGUID()); + group->Disband(); + TC_LOG_DEBUG("lfg", "LFGPlayerScript::OnMapChanged, Player %s(%s) is last in the lfggroup so we disband the group.", + player->GetName().c_str(), player->GetGUID().ToString().c_str()); + } player->RemoveAurasDueToSpell(LFG_SPELL_LUCK_OF_THE_DRAW); + } } LFGGroupScript::LFGGroupScript() : GroupScript("LFGGroupScript") { } diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index cf0579200f7..05de671830e 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1479,6 +1479,8 @@ void Creature::setDeathState(DeathState s) SetTarget(ObjectGuid::Empty); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState) SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0); // if creature is mounted on a virtual mount, remove it at death + setActive(false); if (HasSearchedAssistance()) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 5f864210e8f..7c2272c0d08 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5930,7 +5930,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere case 55677: { // Dispel Magic shares spellfamilyflag with abolish disease - if (procSpell->SpellIconID != 74) + if (!procSpell || procSpell->SpellIconID != 74) return false; if (!target || !target->IsFriendlyTo(this)) return false; @@ -11807,7 +11807,7 @@ void Unit::ClearInCombat() if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TAPPED)) SetUInt32Value(UNIT_DYNAMIC_FLAGS, creature->GetCreatureTemplate()->dynamicflags); - if (creature->IsPet()) + if (creature->IsPet() || creature->IsGuardian()) { if (Unit* owner = GetOwner()) for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i) @@ -14173,7 +14173,6 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u uint32 Id = i->aura->GetId(); AuraApplication* aurApp = i->aura->GetApplicationOfTarget(GetGUID()); - ASSERT(aurApp); bool prepare = i->aura->CallScriptPrepareProcHandlers(aurApp, eventInfo); diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index e30a9601bdb..9cb9077c5ff 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1253,7 +1253,7 @@ void WorldSession::HandleAlterAppearance(WorldPacket& recvData) if (bs_skinColor && (bs_skinColor->type != 3 || bs_skinColor->race != _player->getRace() || bs_skinColor->gender != _player->getGender())) return; - if (!Player::ValidateAppearance(_player->getRace(), _player->getClass(), _player->getGender(), bs_hair->hair_id, Color, uint8(_player->GetUInt32Value(PLAYER_FLAGS) >> 8), bs_facialHair->hair_id, bs_skinColor ? bs_skinColor->hair_id : 0)) + if (!Player::ValidateAppearance(_player->getRace(), _player->getClass(), _player->getGender(), bs_hair->hair_id, Color, _player->GetByteValue(PLAYER_BYTES, 1), bs_facialHair->hair_id, bs_skinColor ? bs_skinColor->hair_id : _player->GetByteValue(PLAYER_BYTES, 0))) return; GameObject* go = _player->FindNearestGameObjectOfType(GAMEOBJECT_TYPE_BARBER_CHAIR, 5.0f); diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index 52b866850a6..ba4e4713458 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -853,7 +853,7 @@ ByteBuffer& operator<<(ByteBuffer& b, LootItem const& li) { b << uint32(li.itemid); b << uint32(li.count); // nr of items of this type - b << uint32(sObjectMgr->GetItemTemplate(li.itemid)->DisplayInfoID); + b << uint32(ASSERT_NOTNULL(sObjectMgr->GetItemTemplate(li.itemid))->DisplayInfoID); b << uint32(li.randomSuffix); b << uint32(li.randomPropertyId); //b << uint8(0); // slot type - will send after this function call diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 7651278346f..de2dc26b643 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -6417,6 +6417,9 @@ void AuraEffect::HandleProcTriggerSpellWithValueAuraProc(AuraApplication* aurApp void AuraEffect::HandleProcTriggerDamageAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo) { + if (!aurApp) + return; + Unit* target = aurApp->GetTarget(); Unit* triggerTarget = eventInfo.GetProcTarget(); SpellNonMeleeDamage damageInfo(target, triggerTarget, GetId(), GetSpellInfo()->SchoolMask); diff --git a/src/server/scripts/Commands/cs_lfg.cpp b/src/server/scripts/Commands/cs_lfg.cpp index 747d84de9c5..d1662f3a97c 100644 --- a/src/server/scripts/Commands/cs_lfg.cpp +++ b/src/server/scripts/Commands/cs_lfg.cpp @@ -19,7 +19,9 @@ #include "Chat.h" #include "Language.h" #include "LFGMgr.h" +#include "ObjectMgr.h" #include "Group.h" +#include "GroupMgr.h" #include "Player.h" void GetPlayerInfo(ChatHandler* handler, Player* player) @@ -74,25 +76,55 @@ public: static bool HandleLfgGroupInfoCommand(ChatHandler* handler, char const* args) { - Player* target = NULL; - std::string playerName; - if (!handler->extractPlayerTarget((char*)args, &target, NULL, &playerName)) + Player* playerTarget; + ObjectGuid guidTarget; + std::string nameTarget; + + ObjectGuid parseGUID(HIGHGUID_PLAYER, uint32(atoul(args))); + + if (sObjectMgr->GetPlayerNameByGUID(parseGUID, nameTarget)) + { + playerTarget = ObjectAccessor::FindPlayer(parseGUID); + guidTarget = parseGUID; + } + else if (!handler->extractPlayerTarget((char*)args, &playerTarget, &guidTarget, &nameTarget)) return false; - Group* grp = target->GetGroup(); - if (!grp) + Group* groupTarget = NULL; + + if (playerTarget) + groupTarget = playerTarget->GetGroup(); + else + { + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GROUP_MEMBER); + stmt->setUInt32(0, guidTarget.GetCounter()); + PreparedQueryResult resultGroup = CharacterDatabase.Query(stmt); + if (resultGroup) + groupTarget = sGroupMgr->GetGroupByDbStoreId((*resultGroup)[0].GetUInt32()); + } + if (!groupTarget) { - handler->PSendSysMessage(LANG_LFG_NOT_IN_GROUP, playerName.c_str()); - return true; + handler->PSendSysMessage(LANG_LFG_NOT_IN_GROUP, nameTarget.c_str()); + handler->SetSentErrorMessage(true); + return false; } - ObjectGuid guid = grp->GetGUID(); + ObjectGuid guid = groupTarget->GetGUID(); std::string const& state = lfg::GetStateString(sLFGMgr->GetState(guid)); - handler->PSendSysMessage(LANG_LFG_GROUP_INFO, grp->isLFGGroup(), + handler->PSendSysMessage(LANG_LFG_GROUP_INFO, groupTarget->isLFGGroup(), state.c_str(), sLFGMgr->GetDungeon(guid)); - for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next()) - GetPlayerInfo(handler, itr->GetSource()); + Group::MemberSlotList const& members = groupTarget->GetMemberSlots(); + + for (Group::MemberSlotList::const_iterator itr = members.begin(); itr != members.end(); ++itr) + { + Group::MemberSlot const& slot = *itr; + Player* p = ObjectAccessor::FindPlayer((*itr).guid); + if (p) + GetPlayerInfo(handler, p); + else + handler->PSendSysMessage("%s is offline.", slot.name.c_str()); + } return true; } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp index 0311ed61c6a..ecda065fda9 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp @@ -32,8 +32,7 @@ enum Spells SPELL_CURSE_OF_EXERTION = 52772, SPELL_TIME_WARP = 52766, //Time slows down, reducing attack, casting and movement speed by 70% for 6 sec. SPELL_TIME_STOP = 58848, //Stops time in a 50 yard sphere for 2 sec. - SPELL_WOUNDING_STRIKE = 52771, //Used only on the tank - H_SPELL_WOUNDING_STRIKE = 58830 + SPELL_WOUNDING_STRIKE = 52771 //Used only on the tank }; enum Yells @@ -45,109 +44,78 @@ enum Yells SAY_DEATH = 4 }; -class boss_epoch : public CreatureScript +enum Events { -public: - boss_epoch() : CreatureScript("boss_epoch") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI<boss_epochAI>(creature); - } - - struct boss_epochAI : public ScriptedAI - { - boss_epochAI(Creature* creature) : ScriptedAI(creature) - { - Initialize(); - instance = creature->GetInstanceScript(); - } - - void Initialize() - { - uiStep = 1; - uiStepTimer = 26000; - uiCurseOfExertionTimer = 9300; - uiTimeWarpTimer = 25300; - uiTimeStopTimer = 21300; - uiWoundingStrikeTimer = 5300; - } - - uint8 uiStep; - - uint32 uiStepTimer; - uint32 uiWoundingStrikeTimer; - uint32 uiTimeWarpTimer; - uint32 uiTimeStopTimer; - uint32 uiCurseOfExertionTimer; - - InstanceScript* instance; - - void Reset() override - { - Initialize(); - - instance->SetBossState(DATA_EPOCH, NOT_STARTED); - } - - void EnterCombat(Unit* /*who*/) override - { - Talk(SAY_AGGRO); + EVENT_CURSE_OF_EXERTION = 1, + EVENT_TIME_WARP, + EVENT_TIME_STOP, + EVENT_WOUNDING_STRIKE +}; - instance->SetBossState(DATA_EPOCH, IN_PROGRESS); - } +class boss_epoch : public CreatureScript +{ + public: + boss_epoch() : CreatureScript("boss_epoch") { } - void UpdateAI(uint32 diff) override + struct boss_epochAI : public BossAI { - //Return since we have no target - if (!UpdateVictim()) - return; + boss_epochAI(Creature* creature) : BossAI(creature, DATA_EPOCH) { } - if (uiCurseOfExertionTimer < diff) + void EnterCombat(Unit* /*who*/) override { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(target, SPELL_CURSE_OF_EXERTION); - uiCurseOfExertionTimer = 9300; - } else uiCurseOfExertionTimer -= diff; + Talk(SAY_AGGRO); + _EnterCombat(); - if (uiWoundingStrikeTimer < diff) - { - DoCastVictim(SPELL_WOUNDING_STRIKE); - uiWoundingStrikeTimer = 5300; - } else uiWoundingStrikeTimer -= diff; + events.ScheduleEvent(EVENT_CURSE_OF_EXERTION, 9300); + events.ScheduleEvent(EVENT_TIME_WARP, 25300); + events.ScheduleEvent(EVENT_TIME_STOP, 21300); + events.ScheduleEvent(EVENT_WOUNDING_STRIKE, 5300); + } - if (uiTimeStopTimer < diff) + void ExecuteEvent(uint32 eventId) override { - DoCastAOE(SPELL_TIME_STOP); - uiTimeStopTimer = 21300; - } else uiTimeStopTimer -= diff; - - if (uiTimeWarpTimer < diff) + switch (eventId) + { + case EVENT_CURSE_OF_EXERTION: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) + DoCast(target, SPELL_CURSE_OF_EXERTION); + events.ScheduleEvent(EVENT_CURSE_OF_EXERTION, 9300); + break; + case EVENT_TIME_WARP: + Talk(SAY_TIME_WARP); + DoCastAOE(SPELL_TIME_WARP); + events.ScheduleEvent(EVENT_TIME_WARP, 25300); + break; + case EVENT_TIME_STOP: + DoCastAOE(SPELL_TIME_STOP); + events.ScheduleEvent(EVENT_TIME_STOP, 21300); + break; + case EVENT_WOUNDING_STRIKE: + DoCastVictim(SPELL_WOUNDING_STRIKE); + events.ScheduleEvent(EVENT_WOUNDING_STRIKE, 5300); + break; + default: + break; + } + } + + void JustDied(Unit* /*killer*/) override { - Talk(SAY_TIME_WARP); - DoCastAOE(SPELL_TIME_WARP); - uiTimeWarpTimer = 25300; - } else uiTimeWarpTimer -= diff; + Talk(SAY_DEATH); + _JustDied(); + } - DoMeleeAttackIfReady(); - } - - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); - - instance->SetBossState(DATA_EPOCH, DONE); - } + void KilledUnit(Unit* victim) override + { + if (victim->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); + } + }; - void KilledUnit(Unit* victim) override + CreatureAI* GetAI(Creature* creature) const override { - if (victim->GetTypeId() != TYPEID_PLAYER) - return; - - Talk(SAY_SLAY); + return GetInstanceAI<boss_epochAI>(creature); } - }; - }; void AddSC_boss_epoch() diff --git a/src/server/scripts/Kalimdor/zone_desolace.cpp b/src/server/scripts/Kalimdor/zone_desolace.cpp index d5ff4c45d09..bb17de4fd6a 100644 --- a/src/server/scripts/Kalimdor/zone_desolace.cpp +++ b/src/server/scripts/Kalimdor/zone_desolace.cpp @@ -88,12 +88,20 @@ public: DoCast(me, SPELL_KODO_KOMBO_DESPAWN_BUFF, true); me->UpdateEntry(NPC_TAMED_KODO); + me->CombatStop(); + me->DeleteThreatList(); + me->SetSpeed(MOVE_RUN, 0.6f, true); me->GetMotionMaster()->MoveFollow(caster, PET_FOLLOW_DIST, me->GetFollowAngle()); + me->setActive(true); } } else if (spell->Id == SPELL_KODO_KOMBO_GOSSIP) { me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); + me->GetMotionMaster()->Clear(); + me->GetMotionMaster()->MoveIdle(); + me->setActive(false); me->DespawnOrUnsummon(60000); } } diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp index 1e2ca666378..6233c7e8953 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp @@ -330,7 +330,7 @@ public: DespawnDwarf(); - instance->SetBossState(DATA_BRANN_EVENT, NOT_STARTED); + instance->SetBossState(DATA_TRIBUNAL_OF_AGES, NOT_STARTED); } } @@ -362,8 +362,10 @@ public: break; case 13: Talk(SAY_EVENT_INTRO_1); + instance->SetBossState(DATA_TRIBUNAL_OF_AGES, IN_PROGRESS); SetEscortPaused(true); JumpToNextStep(20000); + // @todo: There should be a pause here and a gossip should start the next step. break; case 17: Talk(SAY_EVENT_INTRO_2); @@ -421,9 +423,9 @@ public: Start(); } - void DamageTaken(Unit* /*done_by*/, uint32 & /*damage*/) override + void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/) override { - if (brannSparklinNews) + if (instance->GetBossState(DATA_TRIBUNAL_OF_AGES) == IN_PROGRESS) brannSparklinNews = false; } @@ -442,9 +444,8 @@ public: switch (uiStep) { case 1: - if (instance->GetBossState(DATA_BRANN_EVENT) != NOT_STARTED) + if (instance->GetBossState(DATA_TRIBUNAL_OF_AGES) != NOT_STARTED) return; - instance->SetBossState(DATA_BRANN_EVENT, IN_PROGRESS); bIsBattle = false; Talk(SAY_ESCORT_START); SetRun(true); @@ -582,7 +583,7 @@ public: break; case 29: Talk(SAY_EVENT_END_02); - instance->SetBossState(DATA_BRANN_EVENT, DONE); + instance->SetBossState(DATA_TRIBUNAL_OF_AGES, DONE); me->CastSpell(me, SPELL_REWARD_ACHIEVEMENT, true); JumpToNextStep(5500); break; @@ -715,9 +716,7 @@ public: class achievement_brann_spankin_new : public AchievementCriteriaScript { public: - achievement_brann_spankin_new() : AchievementCriteriaScript("achievement_brann_spankin_new") - { - } + achievement_brann_spankin_new() : AchievementCriteriaScript("achievement_brann_spankin_new") { } bool OnCheck(Player* /*player*/, Unit* target) override { diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h index 2ed47b42bbc..df56aadfe22 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h @@ -28,7 +28,7 @@ enum DataTypes // Encounter States/Boss GUIDs DATA_KRYSTALLUS = 0, DATA_MAIDEN_OF_GRIEF = 1, - DATA_BRANN_EVENT = 2, + DATA_TRIBUNAL_OF_AGES = 2, DATA_SJONNIR = 3, // Additional data diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp index a70d1ff3a0d..c67e31c4cc0 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp @@ -23,8 +23,8 @@ DoorData const doorData[] = { - { GO_SJONNIR_DOOR, DATA_BRANN_EVENT, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, - { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END + { GO_SJONNIR_DOOR, DATA_TRIBUNAL_OF_AGES, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END }; class instance_halls_of_stone : public InstanceMapScript @@ -90,7 +90,7 @@ class instance_halls_of_stone : public InstanceMapScript case GO_TRIBUNAL_CHEST: case GO_TRIBUNAL_CHEST_HERO: TribunalChestGUID = go->GetGUID(); - if (GetBossState(DATA_BRANN_EVENT) == DONE) + if (GetBossState(DATA_TRIBUNAL_OF_AGES) == DONE) go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; case GO_TRIBUNAL_SKY_FLOOR: @@ -156,7 +156,7 @@ class instance_halls_of_stone : public InstanceMapScript switch (type) { - case DATA_BRANN_EVENT: + case DATA_TRIBUNAL_OF_AGES: if (state == DONE) { if (GameObject* go = instance->GetGameObject(TribunalChestGUID)) @@ -178,7 +178,7 @@ class instance_halls_of_stone : public InstanceMapScript switch (bossId) { case DATA_SJONNIR: - if (GetBossState(DATA_BRANN_EVENT) != DONE) + if (GetBossState(DATA_TRIBUNAL_OF_AGES) != DONE) return false; break; default: diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index 4aea36e3fe7..280a94aa21f 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -1706,7 +1706,7 @@ public: break; } creature->SetStandState(UNIT_STAND_STATE_STAND); - creature->AI()->Talk(SAY_1); + creature->AI()->Talk(SAY_1, player); ENSURE_AI(npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID()); } return true; diff --git a/src/server/shared/Database/AdhocStatement.h b/src/server/shared/Database/AdhocStatement.h index 8d9365900d9..8195d9add98 100644 --- a/src/server/shared/Database/AdhocStatement.h +++ b/src/server/shared/Database/AdhocStatement.h @@ -40,4 +40,4 @@ class BasicStatementTask : public SQLOperation QueryResultPromise* m_result; }; -#endif
\ No newline at end of file +#endif diff --git a/src/server/shared/Database/Transaction.h b/src/server/shared/Database/Transaction.h index 43850b1d016..a51c96ea93b 100644 --- a/src/server/shared/Database/Transaction.h +++ b/src/server/shared/Database/Transaction.h @@ -61,8 +61,8 @@ class TransactionTask : public SQLOperation friend class DatabaseWorker; public: - TransactionTask(SQLTransaction trans) : m_trans(trans) { } ; - ~TransactionTask(){ }; + TransactionTask(SQLTransaction trans) : m_trans(trans) { } + ~TransactionTask() { } protected: bool Execute() override; diff --git a/src/server/shared/Define.h b/src/server/shared/Define.h index add7995ad8f..97e07cef8b3 100644 --- a/src/server/shared/Define.h +++ b/src/server/shared/Define.h @@ -78,9 +78,9 @@ #endif //!COREDEBUG #if COMPILER == COMPILER_GNU -# define ATTR_NORETURN __attribute__((noreturn)) -# define ATTR_PRINTF(F, V) __attribute__ ((format (printf, F, V))) -# define ATTR_DEPRECATED __attribute__((deprecated)) +# define ATTR_NORETURN __attribute__((__noreturn__)) +# define ATTR_PRINTF(F, V) __attribute__ ((__format__ (__printf__, F, V))) +# define ATTR_DEPRECATED __attribute__((__deprecated__)) #else //COMPILER != COMPILER_GNU # define ATTR_NORETURN # define ATTR_PRINTF(F, V) diff --git a/src/server/shared/Logging/Appender.cpp b/src/server/shared/Logging/Appender.cpp index ba23d879ec2..31db3ae1b86 100644 --- a/src/server/shared/Logging/Appender.cpp +++ b/src/server/shared/Logging/Appender.cpp @@ -88,7 +88,7 @@ void Appender::write(LogMessage* message) if (flags & APPENDER_FLAGS_PREFIX_LOGFILTERTYPE) ss << '[' << message->type << "] "; - message->prefix = std::move(ss.str()); + message->prefix = ss.str(); _write(message); } diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp index 3892adbe3be..5a8d610a36b 100644 --- a/src/server/shared/Logging/AppenderFile.cpp +++ b/src/server/shared/Logging/AppenderFile.cpp @@ -55,7 +55,7 @@ void AppenderFile::_write(LogMessage const* message) FILE* file = OpenFile(namebuf, "a", backup || exceedMaxSize); if (!file) return; - fprintf(file, "%s%s", message->prefix.c_str(), message->text.c_str()); + fprintf(file, "%s%s\n", message->prefix.c_str(), message->text.c_str()); fflush(file); fileSize += uint64(message->Size()); fclose(file); diff --git a/src/server/shared/Utilities/Util.h b/src/server/shared/Utilities/Util.h index 0a4e5e4a4a0..cd523511c1d 100644 --- a/src/server/shared/Utilities/Util.h +++ b/src/server/shared/Utilities/Util.h @@ -688,8 +688,9 @@ class EventMap /** * @name RepeatEvent - * @brief Repeats the mostly recently executed event. - * @param time Time until the event occurs. Equivalent to Repeat(urand(minTime, maxTime). + * @brief Repeats the mostly recently executed event, Equivalent to Repeat(urand(minTime, maxTime). + * @param minTime Minimum time until the event occurs. + * @param maxTime Maximum time until the event occurs. */ void Repeat(uint32 minTime, uint32 maxTime) { @@ -839,7 +840,7 @@ class EventMap /** * @name GetTimeUntilEvent * @brief Returns time in milliseconds until next event. - * @param Id of the event. + * @param eventId of the event. * @return Time of next event. */ uint32 GetTimeUntilEvent(uint32 eventId) const; diff --git a/src/tools/vmap4_extractor/vec3d.h b/src/tools/vmap4_extractor/vec3d.h index a0c22729052..211f5f26c72 100644 --- a/src/tools/vmap4_extractor/vec3d.h +++ b/src/tools/vmap4_extractor/vec3d.h @@ -103,7 +103,7 @@ public: float length() const { - return sqrt(x*x+y*y+z*z); + return std::sqrt(x*x+y*y+z*z); } Vec3D& normalize() @@ -209,7 +209,7 @@ public: float length() const { - return sqrt(x*x+y*y); + return std::sqrt(x*x+y*y); } Vec2D& normalize() |