Browse Source

Fix black screen introduced by #507

Adam Johnson 10 years ago
parent
commit
29792b92d1
  1. 22
      Sources/Plasma/Apps/plClient/plClient.cpp
  2. 2
      Sources/Plasma/Apps/plClient/plClient.h

22
Sources/Plasma/Apps/plClient/plClient.cpp

@ -812,10 +812,9 @@ bool plClient::MsgReceive(plMessage* msg)
//============================================================================ //============================================================================
if (plNetCommAuthMsg* authMsg = plNetCommAuthMsg::ConvertNoRef(msg)) { if (plNetCommAuthMsg* authMsg = plNetCommAuthMsg::ConvertNoRef(msg)) {
plgDispatch::Dispatch()->UnRegisterForExactType(plNetCommAuthMsg::Index(), GetKey()); plgDispatch::Dispatch()->UnRegisterForExactType(plNetCommAuthMsg::Index(), GetKey());
if (IS_NET_SUCCESS(authMsg->result)) { if (IS_NET_SUCCESS(authMsg->result))
SetFlag(kFlagInitialAuthComplete);
IPatchGlobalAgeFiles(); IPatchGlobalAgeFiles();
} return true;
} }
return hsKeyedObject::MsgReceive(msg); return hsKeyedObject::MsgReceive(msg);
@ -1477,21 +1476,24 @@ bool plClient::BeginGame()
{ {
plNetClientMgr::GetInstance()->Init(); plNetClientMgr::GetInstance()->Init();
IPlayIntroMovie("avi/CyanWorlds.webm", 0.f, 0.f, 0.f, 1.f, 1.f, 0.75); IPlayIntroMovie("avi/CyanWorlds.webm", 0.f, 0.f, 0.f, 1.f, 1.f, 0.75);
SetFlag(kFlagIntroComplete);
if (GetDone()) return false; if (GetDone()) return false;
IPatchGlobalAgeFiles(); if (NetCommGetStartupAge()->ageDatasetName.CompareI("StartUp") == 0) {
// This is needed because there is no auth step in this case
plNetCommAuthMsg* msg = new plNetCommAuthMsg();
msg->result = kNetSuccess;
msg->param = nullptr;
msg->Send();
}
return true; return true;
} }
//============================================================================ //============================================================================
void plClient::IPatchGlobalAgeFiles( void ) void plClient::IPatchGlobalAgeFiles( void )
{ {
if (HasFlag(kFlagIntroComplete) && HasFlag(kFlagInitialAuthComplete)) { plgDispatch::Dispatch()->RegisterForExactType(plResPatcherMsg::Index(), GetKey());
plgDispatch::Dispatch()->RegisterForExactType(plResPatcherMsg::Index(), GetKey());
plResPatcher* patcher = plResPatcher::GetInstance(); plResPatcher* patcher = plResPatcher::GetInstance();
patcher->Update(plManifest::EssentialGameManifests()); patcher->Update(plManifest::EssentialGameManifests());
}
} }
void plClient::InitDLLs() void plClient::InitDLLs()

2
Sources/Plasma/Apps/plClient/plClient.h

@ -248,8 +248,6 @@ public:
kFlagDBGDisableRRequests, kFlagDBGDisableRRequests,
kFlagAsyncInitComplete, kFlagAsyncInitComplete,
kFlagGlobalDataLoaded, kFlagGlobalDataLoaded,
kFlagInitialAuthComplete,
kFlagIntroComplete,
}; };
bool HasFlag(int f) const { return fFlags.IsBitSet(f); } bool HasFlag(int f) const { return fFlags.IsBitSet(f); }

Loading…
Cancel
Save