From dcb0e2f046724272e5f4546d903ed949c2d80c24 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 27 May 2013 23:52:09 -0400 Subject: [PATCH] Ensure there is always book-spinning while linking This should help people realize that things are happening... Even if whatever server they're connected to takes a very long time to process a join request. At some point in the future, the linking process should be de-serialized. --- .../PubUtilLib/plNetClient/plNetCliAgeJoiner.cpp | 1 + .../PubUtilLib/plNetClient/plNetCliAgeLeaver.cpp | 1 + .../PubUtilLib/plNetClient/plNetClientMgr.cpp | 15 ++++++++++++--- .../PubUtilLib/plNetClient/plNetClientMgr.h | 11 ++++++----- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.cpp b/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.cpp index 8288317f..582e3599 100644 --- a/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.cpp +++ b/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.cpp @@ -338,6 +338,7 @@ void plNCAgeJoiner::ExecNextOp () { ((plResManager*)hsgResMgr::ResMgr())->SetProgressBarProc(nil); delete progressBar; progressBar = nil; + nc->EndTask(); nextOp = kEnableClickables; } diff --git a/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.cpp b/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.cpp index 5cc98ed7..c15310e0 100644 --- a/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.cpp +++ b/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.cpp @@ -216,6 +216,7 @@ void plNCAgeLeaver::ExecNextOp () { //==================================================================== case kUnloadAge: { + nc->BeginTask(); NetCliGameDisconnect(); // Cull nodes that were part of this age vault (but not shared by the player's vault) diff --git a/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp b/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp index 5e10ef77..16c60dce 100644 --- a/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp +++ b/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp @@ -131,8 +131,7 @@ plNetClientMgr::plNetClientMgr() : fLocalPlayerKey(nil), fMsgHandler(this), fJoinOrder(0), - // fProgressBar( nil ), - fTaskProgBar( nil ), + fTaskProgBar(nullptr), fMsgRecorder(nil), fServerTimeOffset(0), fTimeSamples(0), @@ -168,8 +167,8 @@ plNetClientMgr::~plNetClientMgr() if (this==GetInstance()) SetInstance(nil); // we're going down boys - IClearPendingLoads(); + delete fTaskProgBar; } // @@ -1467,6 +1466,16 @@ void plNetClientMgr::ClearPendingPagingRoomMsgs() fPendingPagingRoomMsgs.clear(); } +void plNetClientMgr::BeginTask() +{ + fTaskProgBar = plProgressMgr::GetInstance()->RegisterOverallOperation(0.f); +} + +void plNetClientMgr::EndTask() +{ + delete fTaskProgBar; + fTaskProgBar = nullptr; +} bool plNetClientMgr::DebugMsgV(const char* fmt, va_list args) const { diff --git a/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h b/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h index 7d034687..4cac0c0f 100644 --- a/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h +++ b/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h @@ -134,9 +134,8 @@ public: }; private: - // plOperationProgress *fProgressBar; - plOperationProgress *fTaskProgBar; - + plOperationProgress* fTaskProgBar; + typedef std::list PendingLoadsList; PendingLoadsList fPendingLoads; @@ -369,8 +368,10 @@ public: void NotifyRcvdAllSDLStates(); - plOperationProgress* GetTaskProgBar() { return fTaskProgBar; } - + plOperationProgress* GetTaskProgBar() { return fTaskProgBar; } + void BeginTask(); + void EndTask(); + bool DebugMsgV(const char* fmt, va_list args) const; bool ErrorMsgV(const char* fmt, va_list args) const; bool WarningMsgV(const char* fmt, va_list args) const;