diff options
author | Naios <naios-dev@live.de> | 2015-04-26 23:45:52 +0200 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2015-04-26 23:45:52 +0200 |
commit | 800d5d893964a82265577d3352d683035b589f78 (patch) | |
tree | 7b68f59be62a5df207c158a3f70fbf5860b91f69 /src/server/game/Handlers/AuthHandler.cpp | |
parent | f4a4e5de3d7d89116bc6eda20c0d37361fdd2023 (diff) |
Core/Misc: Replace tc's optional with boost::optional.
* benefits from empty optimization (objects are only constructed if needed).
* supports r-value references (move semantics) (boost >= 1.56.0).
* preparation for c++14/17's std::optional and std::none_t.
* add move constructor to CompactArray.
Diffstat (limited to 'src/server/game/Handlers/AuthHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/AuthHandler.cpp | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp index 10db667c549..233a0346c9c 100644 --- a/src/server/game/Handlers/AuthHandler.cpp +++ b/src/server/game/Handlers/AuthHandler.cpp @@ -24,27 +24,33 @@ void WorldSession::SendAuthResponse(uint8 code, bool queued, uint32 queuePos) { WorldPackets::Auth::AuthResponse response; - response.SuccessInfo.HasValue = code == AUTH_OK; response.Result = code; - response.WaitInfo.HasValue = queued; - response.WaitInfo.Value.WaitCount = queuePos; + + if (queued) + { + response.WaitInfo = WorldPackets::Auth::AuthResponse::AuthWaitInfo(); + response.WaitInfo->WaitCount = queuePos; + } + if (code == AUTH_OK) { - response.SuccessInfo.Value.AccountExpansionLevel = GetExpansion(); - response.SuccessInfo.Value.ActiveExpansionLevel = GetExpansion(); - response.SuccessInfo.Value.VirtualRealmAddress = GetVirtualRealmAddress(); + response.SuccessInfo = WorldPackets::Auth::AuthResponse::AuthSuccessInfo(); + + response.SuccessInfo->AccountExpansionLevel = GetExpansion(); + response.SuccessInfo->ActiveExpansionLevel = GetExpansion(); + response.SuccessInfo->VirtualRealmAddress = GetVirtualRealmAddress(); std::string realmName = sObjectMgr->GetRealmName(realmHandle.Index); // Send current home realm. Also there is no need to send it later in realm queries. - response.SuccessInfo.Value.VirtualRealms.emplace_back(GetVirtualRealmAddress(), true, false, realmName, realmName); + response.SuccessInfo->VirtualRealms.emplace_back(GetVirtualRealmAddress(), true, false, realmName, realmName); if (HasPermission(rbac::RBAC_PERM_USE_CHARACTER_TEMPLATES)) for (auto& templ : sObjectMgr->GetCharacterTemplates()) - response.SuccessInfo.Value.Templates.emplace_back(templ.second); + response.SuccessInfo->Templates.emplace_back(templ.second); - response.SuccessInfo.Value.AvailableClasses = &sObjectMgr->GetClassExpansionRequirements(); - response.SuccessInfo.Value.AvailableRaces = &sObjectMgr->GetRaceExpansionRequirements(); + response.SuccessInfo->AvailableClasses = &sObjectMgr->GetClassExpansionRequirements(); + response.SuccessInfo->AvailableRaces = &sObjectMgr->GetRaceExpansionRequirements(); } SendPacket(response.Write()); @@ -55,16 +61,11 @@ void WorldSession::SendAuthWaitQue(uint32 position) WorldPackets::Auth::AuthResponse response; if (position == 0) - { response.Result = AUTH_OK; - response.SuccessInfo.HasValue = false; - response.WaitInfo.HasValue = false; - } else { - response.WaitInfo.HasValue = true; - response.SuccessInfo.HasValue = false; - response.WaitInfo.Value.WaitCount = position; + response.WaitInfo = WorldPackets::Auth::AuthResponse::AuthWaitInfo(); + response.WaitInfo->WaitCount = position; response.Result = AUTH_WAIT_QUEUE; } |