2
0
nordsoft 2 жил өмнө
parent
commit
a60d503078

+ 1 - 0
client/LobbyClientNetPackVisitors.h

@@ -52,6 +52,7 @@ public:
 	virtual void visitLobbyClientDisconnected(LobbyClientDisconnected & pack) override;
 	virtual void visitLobbyChatMessage(LobbyChatMessage & pack) override;
 	virtual void visitLobbyGuiAction(LobbyGuiAction & pack) override;
+	virtual void visitLobbyStartGame(LobbyStartGame & pack) override;
 	virtual void visitLobbyLoadProgress(LobbyLoadProgress & pack) override;
 	virtual void visitLobbyUpdateState(LobbyUpdateState & pack) override;
 	virtual void visitLobbyShowMessage(LobbyShowMessage & pack) override;

+ 11 - 0
client/NetPacksLobbyClient.cpp

@@ -128,6 +128,17 @@ void ApplyOnLobbyHandlerNetPackVisitor::visitLobbyStartGame(LobbyStartGame & pac
 	handler.startGameplay(pack.initializedGameState);
 }
 
+void ApplyOnLobbyScreenNetPackVisitor::visitLobbyStartGame(LobbyStartGame & pack)
+{
+	if(auto w = GH.windows().topWindow<CLoadingScreen>())
+	{
+		w->finish();
+		w->redraw();
+	}
+	else
+		GH.windows().createAndPushWindow<CLoadingScreen>();
+}
+
 void ApplyOnLobbyScreenNetPackVisitor::visitLobbyLoadProgress(LobbyLoadProgress & pack)
 {
 	if(auto w = GH.windows().topWindow<CLoadingScreen>())

+ 1 - 1
client/mainmenu/CMainMenu.cpp

@@ -614,7 +614,7 @@ void CLoadingScreen::showAll(Canvas & to)
 	//CSDL_Ext::fillRect(to, rect, Colors::TRANSPARENCY);
 	if(!progressBlocks.empty())
 	{
-		int status = float(get()) / (2.55f * progressBlocks.size());
+		int status = float(get()) / 255.f * progressBlocks.size();
 		
 		for(int i = 0; i < status; ++i)
 		{