diff --git a/src/game/Group.cpp b/src/game/Group.cpp index 4f7213bf7..d55329051 100644 --- a/src/game/Group.cpp +++ b/src/game/Group.cpp @@ -908,7 +908,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, uint32 NumberOfPlayers) delete roll; } -void Group::SetTargetIcon(uint8 id, uint64 guid) +void Group::SetTargetIcon(uint8 id, uint64 whoGuid, uint64 targetGuid) { if(id >= TARGETICONCOUNT) return; @@ -917,12 +917,13 @@ void Group::SetTargetIcon(uint8 id, uint64 guid) if( guid != 0 ) for(int i = 0; i < TARGETICONCOUNT; ++i) if( m_targetIcons[i] == guid ) - SetTargetIcon(i, 0); + SetTargetIcon(i, 0, 0); m_targetIcons[id] = guid; - WorldPacket data(MSG_RAID_TARGET_UPDATE, (2+8)); - data << uint8(0); + WorldPacket data(MSG_RAID_TARGET_UPDATE, (1+8+1+8)); + data << uint8(0); // set targets + data << uint64(whoGuid); data << uint8(id); data << uint64(guid); BroadcastPacket(&data, true); @@ -957,7 +958,7 @@ void Group::SendTargetIconList(WorldSession *session) return; WorldPacket data(MSG_RAID_TARGET_UPDATE, (1+TARGETICONCOUNT*9)); - data << (uint8)1; + data << uint8(1); // list targets for(int i = 0; i < TARGETICONCOUNT; ++i) { diff --git a/src/game/Group.h b/src/game/Group.h index dc22b184f..5f3b3d7ba 100644 --- a/src/game/Group.h +++ b/src/game/Group.h @@ -286,7 +286,7 @@ class MANGOS_DLL_SPEC Group SendUpdate(); } - void SetTargetIcon(uint8 id, uint64 guid); + void SetTargetIcon(uint8 id, uint64 whoGuid, uint64 targetGuid); Difficulty GetDifficulty(bool isRaid) const { return isRaid ? m_raidDifficulty : m_dungeonDifficulty; } Difficulty GetDungeonDifficulty() const { return m_dungeonDifficulty; } diff --git a/src/game/GroupHandler.cpp b/src/game/GroupHandler.cpp index 3bd4f73e7..e7c204b67 100644 --- a/src/game/GroupHandler.cpp +++ b/src/game/GroupHandler.cpp @@ -469,7 +469,7 @@ void WorldSession::HandleRaidTargetUpdateOpcode( WorldPacket & recv_data ) uint64 guid; recv_data >> guid; - group->SetTargetIcon(x, guid); + group->SetTargetIcon(x, _player->GetGUID(), guid); } } diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index 9d3ce66e7..e655eee0c 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -576,7 +576,7 @@ enum Opcodes SMSG_GMTICKET_SYSTEMSTATUS = 0x21B, CMSG_SPIRIT_HEALER_ACTIVATE = 0x21C, CMSG_SET_STAT_CHEAT = 0x21D, - SMSG_SET_REST_START_OBSOLETE = 0x21E, + SMSG_QUEST_FORCE_REMOVE = 0x21E, // uint32 questid CMSG_SKILL_BUY_STEP = 0x21F, CMSG_SKILL_BUY_RANK = 0x220, CMSG_XP_CHEAT = 0x221, diff --git a/src/game/QuestDef.h b/src/game/QuestDef.h index 188c385c7..a10188f06 100644 --- a/src/game/QuestDef.h +++ b/src/game/QuestDef.h @@ -121,6 +121,7 @@ enum __QuestGiverStatus enum __QuestFlags { // Flags used at server and sent to client + QUEST_FLAGS_NONE = 0x00000000, QUEST_FLAGS_STAY_ALIVE = 0x00000001, // Not used currently QUEST_FLAGS_PARTY_ACCEPT = 0x00000002, // If player in party, all players that can accept this quest will receive confirmation box to accept quest CMSG_QUEST_CONFIRM_ACCEPT/SMSG_QUEST_CONFIRM_ACCEPT QUEST_FLAGS_EXPLORATION = 0x00000004, // Not used currently @@ -137,7 +138,9 @@ enum __QuestFlags QUEST_FLAGS_UNK3 = 0x00002000, // activates PvP? QUEST_FLAGS_UNK4 = 0x00004000, // ? Membership Card Renewal QUEST_FLAGS_WEEKLY = 0x00008000, // Not used currently: Weekly quests - // 0x20000 - 1 quest in 3.3, 0x40000 - 1 quest in 3.3 + QUEST_FLAGS_AUTOCOMPLETE = 0x00010000, // auto complete + QUEST_FLAGS_UNK5 = 0x00020000, // has something to do with ReqItemId and SrcItemId + QUEST_FLAGS_UNK6 = 0x00040000, // use Objective text as Complete text QUEST_FLAGS_LOW_LEVEL = 0x00080000, // quests in starting areas // Mangos flags for set SpecialFlags in DB if required but used only at server