Resolved #3427 - "player ready" screen appears when loading game in Hotseat multiplayer

This commit is contained in:
Yair Morgenstern 2020-12-19 21:15:12 +02:00
parent 2b36ad679a
commit 78513b87c1

View File

@ -9,6 +9,7 @@ import com.badlogic.gdx.scenes.scene2d.actions.Actions
import com.badlogic.gdx.utils.Align import com.badlogic.gdx.utils.Align
import com.unciv.logic.GameInfo import com.unciv.logic.GameInfo
import com.unciv.logic.GameSaver import com.unciv.logic.GameSaver
import com.unciv.logic.civilization.PlayerType
import com.unciv.models.metadata.GameSettings import com.unciv.models.metadata.GameSettings
import com.unciv.models.ruleset.RulesetCache import com.unciv.models.ruleset.RulesetCache
import com.unciv.models.translations.Translations import com.unciv.models.translations.Translations
@ -17,6 +18,7 @@ import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.CrashController import com.unciv.ui.utils.CrashController
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.center import com.unciv.ui.utils.center
import com.unciv.ui.worldscreen.PlayerReadyScreen
import com.unciv.ui.worldscreen.WorldScreen import com.unciv.ui.worldscreen.WorldScreen
import java.util.* import java.util.*
import kotlin.concurrent.thread import kotlin.concurrent.thread
@ -119,9 +121,12 @@ class UncivGame(parameters: UncivGameParameters) : Game() {
ImageGetter.ruleset = gameInfo.ruleSet ImageGetter.ruleset = gameInfo.ruleSet
ImageGetter.reload() ImageGetter.reload()
Gdx.input.inputProcessor = null // Since we will set the world screen when we're ready, Gdx.input.inputProcessor = null // Since we will set the world screen when we're ready,
// This is to avoid ANRs when loading. if (gameInfo.civilizations.count { it.playerType == PlayerType.Human } > 1 && !gameInfo.gameParameters.isOnlineMultiplayer)
worldScreen = WorldScreen(gameInfo.getPlayerToViewAs()) setScreen(PlayerReadyScreen(gameInfo.getPlayerToViewAs()))
setWorldScreen() else {
worldScreen = WorldScreen(gameInfo.getPlayerToViewAs())
setWorldScreen()
}
} }
fun loadGame(gameName: String) { fun loadGame(gameName: String) {