From 881f532bf7be1f5fb25bd12c68ad5412f4eb278f Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 10 Mar 2019 23:04:04 +0200 Subject: [PATCH] Memory-saving tweak --- core/src/com/unciv/UnCivGame.kt | 1 + core/src/com/unciv/ui/CivilopediaScreen.kt | 2 +- core/src/com/unciv/ui/EmpireOverviewScreen.kt | 2 +- core/src/com/unciv/ui/cityscreen/CityScreen.kt | 2 +- core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt | 2 +- core/src/com/unciv/ui/pickerscreens/PromotionPickerScreen.kt | 2 +- core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt | 2 +- core/src/com/unciv/ui/trade/DiplomacyScreen.kt | 2 +- 8 files changed, 8 insertions(+), 7 deletions(-) diff --git a/core/src/com/unciv/UnCivGame.kt b/core/src/com/unciv/UnCivGame.kt index c98d93a2ea..199948fdd4 100644 --- a/core/src/com/unciv/UnCivGame.kt +++ b/core/src/com/unciv/UnCivGame.kt @@ -58,6 +58,7 @@ class UnCivGame : Game() { } fun setWorldScreen() { + if(screen != null && screen != worldScreen) screen.dispose() setScreen(worldScreen) Gdx.input.inputProcessor = worldScreen.stage worldScreen.shouldUpdate=true // This can set the screen to the policy picker or tech picker screen, so the input processor must come before diff --git a/core/src/com/unciv/ui/CivilopediaScreen.kt b/core/src/com/unciv/ui/CivilopediaScreen.kt index f8a9d8fafa..db8e22b9af 100644 --- a/core/src/com/unciv/ui/CivilopediaScreen.kt +++ b/core/src/com/unciv/ui/CivilopediaScreen.kt @@ -17,7 +17,7 @@ import java.util.* class CivilopediaScreen : CameraStageBaseScreen() { init { - onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() } + onBackButtonClicked { UnCivGame.Current.setWorldScreen() } val buttonTable = Table() buttonTable.pad(15f) val entryTable = Table() diff --git a/core/src/com/unciv/ui/EmpireOverviewScreen.kt b/core/src/com/unciv/ui/EmpireOverviewScreen.kt index b9c3fee8e5..3151634e78 100644 --- a/core/src/com/unciv/ui/EmpireOverviewScreen.kt +++ b/core/src/com/unciv/ui/EmpireOverviewScreen.kt @@ -22,7 +22,7 @@ class EmpireOverviewScreen : CameraStageBaseScreen(){ val currentPlayerCivInfo = UnCivGame.Current.gameInfo.getCurrentPlayerCivilization() init { - onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() } + onBackButtonClicked { UnCivGame.Current.setWorldScreen() } val topTable = Table().apply { defaults().pad(10f) } val centerTable=Table().apply { defaults().pad(20f) } diff --git a/core/src/com/unciv/ui/cityscreen/CityScreen.kt b/core/src/com/unciv/ui/cityscreen/CityScreen.kt index a758aef033..2cabee20e0 100644 --- a/core/src/com/unciv/ui/cityscreen/CityScreen.kt +++ b/core/src/com/unciv/ui/cityscreen/CityScreen.kt @@ -42,7 +42,7 @@ class CityScreen(internal val city: CityInfo) : CameraStageBaseScreen() { private var tileGroups = ArrayList() init { - onBackButtonClicked { game.setWorldScreen(); dispose() } + onBackButtonClicked { game.setWorldScreen() } addTiles() val tableBackgroundColor = ImageGetter.getBlue().lerp(Color.BLACK,0.5f) diff --git a/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt index 9c2bcd51d1..793b28619b 100644 --- a/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt @@ -27,7 +27,7 @@ class PolicyPickerScreen(internal val civInfo: CivilizationInfo) : PickerScreen( rightSideButton.setText("Adopt free policy".tr()) closeButton.disable() } - else onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() } + else onBackButtonClicked { UnCivGame.Current.setWorldScreen() } rightSideButton.onClick("policy") { civInfo.policies.adopt(pickedPolicy!!) diff --git a/core/src/com/unciv/ui/pickerscreens/PromotionPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/PromotionPickerScreen.kt index 1f2e2a6cdc..490801d8cf 100644 --- a/core/src/com/unciv/ui/pickerscreens/PromotionPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/PromotionPickerScreen.kt @@ -16,7 +16,7 @@ class PromotionPickerScreen(mapUnit: MapUnit) : PickerScreen() { init { - onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() } + onBackButtonClicked { UnCivGame.Current.setWorldScreen() } setDefaultCloseAction() rightSideButton.setText("Pick promotion".tr()) rightSideButton.onClick("promote") { diff --git a/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt index ffefd9068c..c442d4c1d9 100644 --- a/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt @@ -40,7 +40,7 @@ class TechPickerScreen(internal val civInfo: CivilizationInfo) : PickerScreen() init { setDefaultCloseAction() - onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() } + onBackButtonClicked { UnCivGame.Current.setWorldScreen() } tempTechsToResearch = ArrayList(civTech.techsToResearch) diff --git a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt index acde7d7d92..e03ad18554 100644 --- a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt +++ b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt @@ -14,7 +14,7 @@ class DiplomacyScreen:CameraStageBaseScreen(){ val rightSideTable = Table() init{ - onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() } + onBackButtonClicked { UnCivGame.Current.setWorldScreen() } val splitPane = SplitPane(ScrollPane(leftSideTable),rightSideTable,false, skin) splitPane.splitAmount = 0.2f