aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-06-22 21:56:58 +0200
committerShauren <shauren.trinity@gmail.com>2025-06-22 21:56:58 +0200
commite59059e1bd2f67691e2da0105771b0cb55b123a4 (patch)
tree4f4864f8aae63eeafac29f440e0ce64a027c4108 /src/server/game/Server
parent7ca6b226a7420ff38e3a4f17a3758393d68629e3 (diff)
Core/Players: PlayerChoice improvements
* Add missing choice properties to database (InfiniteRange, ShowChoicesAsList) * Allow limiiting the number of responses sent at the same time * Fixed duration sent in SMSG_DISPLAY_PLAYER_CHOICE * Remove dynamically generated response identifiers from database * Remove auto rewarding choice responses * Change response scripts to be bound to scriptname
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/QuestPackets.cpp8
-rw-r--r--src/server/game/Server/Packets/QuestPackets.h8
-rw-r--r--src/server/game/Server/WorldSession.h2
3 files changed, 9 insertions, 9 deletions
diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp
index 016efd60f97..bef3ef35892 100644
--- a/src/server/game/Server/Packets/QuestPackets.cpp
+++ b/src/server/game/Server/Packets/QuestPackets.cpp
@@ -765,7 +765,7 @@ ByteBuffer& operator<<(ByteBuffer& data, PlayerChoiceResponseMawPower const& pla
{
data << int32(playerChoiceResponseMawPower.Unused901_1);
data << int32(playerChoiceResponseMawPower.TypeArtFileID);
- data << int32(playerChoiceResponseMawPower.Unused901_2);
+ data << int32(playerChoiceResponseMawPower.BorderUiTextureAtlasMemberID);
data << int32(playerChoiceResponseMawPower.SpellID);
data << int32(playerChoiceResponseMawPower.MaxStacks);
data << OptionalInit(playerChoiceResponseMawPower.Rarity);
@@ -828,14 +828,14 @@ WorldPacket const* DisplayPlayerChoice::Write()
_worldPacket << uint32(SoundKitID);
_worldPacket << uint32(CloseUISoundKitID);
_worldPacket << uint8(NumRerolls);
- _worldPacket << Duration;
+ _worldPacket << ExpireTime;
_worldPacket << SizedString::BitsSize<8>(Question);
_worldPacket << SizedString::BitsSize<8>(PendingChoiceText);
_worldPacket << Bits<1>(InfiniteRange);
_worldPacket << Bits<1>(HideWarboardHeader);
_worldPacket << Bits<1>(KeepOpenAfterChoice);
- _worldPacket << Bits<1>(Unknown_1115_1);
- _worldPacket << Bits<1>(Unknown_1115_2);
+ _worldPacket << Bits<1>(ShowChoicesAsList);
+ _worldPacket << Bits<1>(ForceDontShowChoicesAsList);
_worldPacket.FlushBits();
for (PlayerChoiceResponse const& response : Responses)
diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h
index 8f3b1b76438..7c14b336127 100644
--- a/src/server/game/Server/Packets/QuestPackets.h
+++ b/src/server/game/Server/Packets/QuestPackets.h
@@ -730,7 +730,7 @@ namespace WorldPackets
int32 Unused901_1 = 0;
int32 TypeArtFileID = 0;
Optional<int32> Rarity;
- int32 Unused901_2 = 0;
+ int32 BorderUiTextureAtlasMemberID = 0;
int32 SpellID = 0;
int32 MaxStacks = 0;
};
@@ -770,15 +770,15 @@ namespace WorldPackets
uint32 SoundKitID = 0;
uint32 CloseUISoundKitID = 0;
uint8 NumRerolls = 0;
- WorldPackets::Duration<Seconds> Duration;
+ WorldPackets::Timestamp<> ExpireTime;
std::string_view Question;
std::string_view PendingChoiceText;
std::vector<PlayerChoiceResponse> Responses;
bool InfiniteRange = false;
bool HideWarboardHeader = false;
bool KeepOpenAfterChoice = false;
- bool Unknown_1115_1 = false;
- bool Unknown_1115_2 = false;
+ bool ShowChoicesAsList = false;
+ bool ForceDontShowChoicesAsList = false;
};
class ChoiceResponse final : public ClientPacket
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 29ccc49f3f1..a6c96948101 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -1578,7 +1578,7 @@ class TC_GAME_API WorldSession
void HandlePushQuestToParty(WorldPackets::Quest::PushQuestToParty& packet);
void HandleQuestPushResult(WorldPackets::Quest::QuestPushResult& packet);
void HandleRequestWorldQuestUpdate(WorldPackets::Quest::RequestWorldQuestUpdate& packet);
- void HandlePlayerChoiceResponse(WorldPackets::Quest::ChoiceResponse& choiceResponse);
+ void HandlePlayerChoiceResponse(WorldPackets::Quest::ChoiceResponse const& choiceResponse);
void HandleUiMapQuestLinesRequest(WorldPackets::Quest::UiMapQuestLinesRequest& uiMapQuestLinesRequest);
void HandleQueryTreasurePicker(WorldPackets::Query::QueryTreasurePicker const& queryTreasurePicker);
void HandleSpawnTrackingUpdate(WorldPackets::Quest::SpawnTrackingUpdate& spawnTrackingUpdate);