diff --git a/core/src/com/unciv/ui/popups/options/DebugTab.kt b/core/src/com/unciv/ui/popups/options/DebugTab.kt index 3b4957a032..f350b3175a 100644 --- a/core/src/com/unciv/ui/popups/options/DebugTab.kt +++ b/core/src/com/unciv/ui/popups/options/DebugTab.kt @@ -1,5 +1,6 @@ package com.unciv.ui.popups.options +import com.badlogic.gdx.Gdx import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.scenes.scene2d.ui.TextButton.TextButtonStyle import com.unciv.GUI @@ -16,7 +17,9 @@ import com.unciv.ui.components.extensions.toLabel import com.unciv.ui.components.extensions.toTextButton import com.unciv.ui.components.input.onClick import com.unciv.ui.components.widgets.UncivSlider +import com.unciv.ui.popups.ToastPopup import com.unciv.ui.screens.basescreen.BaseScreen +import com.unciv.utils.Concurrency import com.unciv.utils.DebugUtils fun debugTab( @@ -125,6 +128,21 @@ fun debugTab( } add(giveResourcesButton).colspan(2).row() + add("Load online multiplayer game as hotseat from clipboard".toTextButton().onClick { + // Code duplication : LoadGameScreen.getLoadFromClipboardButton + Concurrency.run { + try { + val clipboardContentsString = Gdx.app.clipboard.contents.trim() + val loadedGame = UncivFiles.gameInfoFromString(clipboardContentsString) + loadedGame.gameParameters.isOnlineMultiplayer = false + optionsPopup.game.loadGame(loadedGame, true) + optionsPopup.close() + } catch (ex: Exception) { + ToastPopup(ex.message ?: ex::class.java.simpleName, optionsPopup.stageToShowOn).open(true) + } + } + }).colspan(2).row() + addSeparator() add("* Crash Unciv! *".toTextButton(skin.get("negative", TextButtonStyle::class.java)).onClick { throw UncivShowableException("Intentional crash") diff --git a/core/src/com/unciv/ui/popups/options/OptionsPopup.kt b/core/src/com/unciv/ui/popups/options/OptionsPopup.kt index 1e2bc64037..cef4c35527 100644 --- a/core/src/com/unciv/ui/popups/options/OptionsPopup.kt +++ b/core/src/com/unciv/ui/popups/options/OptionsPopup.kt @@ -120,7 +120,7 @@ class OptionsPopup( tabs.addPage("Locate mod errors", content, ImageGetter.getImage("OtherIcons/Mods"), 24f) } if (withDebug || Gdx.input.areSecretKeysPressed()) { - tabs.addPage("Debug", debugTab(this), ImageGetter.getImage("OtherIcons/SecretOptions"), 24f, secret = true) + tabs.addPage("Debug", debugTab(this), ImageGetter.getImage("OtherIcons/SecretOptions"), 24f) } addCloseButton { @@ -142,7 +142,6 @@ class OptionsPopup( override fun setVisible(visible: Boolean) { super.setVisible(visible) if (!visible) return - tabs.askForPassword(secretHashCode = 2747985) if (tabs.activePage < 0) tabs.selectPage(selectPage) } diff --git a/core/src/com/unciv/ui/screens/worldscreen/WorldScreen.kt b/core/src/com/unciv/ui/screens/worldscreen/WorldScreen.kt index 0b5c38dfff..5ea7fc59eb 100644 --- a/core/src/com/unciv/ui/screens/worldscreen/WorldScreen.kt +++ b/core/src/com/unciv/ui/screens/worldscreen/WorldScreen.kt @@ -192,7 +192,7 @@ class WorldScreen( globalShortcuts.add(KeyCharAndCode.BACK) { backButtonAndESCHandler() } - globalShortcuts.add('`'){ + globalShortcuts.add('`') { // No cheating unless you're by yourself if (gameInfo.civilizations.count { it.isHuman() } > 1) return@add val consolePopup = DevConsolePopup(this)