mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-29 06:51:30 -04:00
Opening the New Game screen from within a game saves the previous game parameters, map generation parameters work again
@alkorolyov
This commit is contained in:
parent
604a41ca6c
commit
1b73aab856
@ -17,7 +17,7 @@ import kotlin.concurrent.thread
|
|||||||
|
|
||||||
class GameParametersScreen(var mapEditorScreen: MapEditorScreen): PickerScreen() {
|
class GameParametersScreen(var mapEditorScreen: MapEditorScreen): PickerScreen() {
|
||||||
var playerPickerTable = PlayerPickerTable(mapEditorScreen, mapEditorScreen.gameSetupInfo.gameParameters)
|
var playerPickerTable = PlayerPickerTable(mapEditorScreen, mapEditorScreen.gameSetupInfo.gameParameters)
|
||||||
var gameOptionsTable = GameOptionsTable(mapEditorScreen) { desiredCiv: String -> playerPickerTable.update(desiredCiv) }
|
var gameOptionsTable = GameOptionsTable(mapEditorScreen.gameSetupInfo) { desiredCiv: String -> playerPickerTable.update(desiredCiv) }
|
||||||
|
|
||||||
init {
|
init {
|
||||||
setDefaultCloseAction(mapEditorScreen)
|
setDefaultCloseAction(mapEditorScreen)
|
||||||
|
@ -27,7 +27,7 @@ class MapEditorScreen(): PreviousScreenInterface, CameraStageBaseScreen() {
|
|||||||
var scenarioName = ""
|
var scenarioName = ""
|
||||||
var scenario: Scenario? = null
|
var scenario: Scenario? = null
|
||||||
|
|
||||||
override var gameSetupInfo = GameSetupInfo()
|
override val gameSetupInfo = GameSetupInfo()
|
||||||
lateinit var mapHolder: EditorMapHolder
|
lateinit var mapHolder: EditorMapHolder
|
||||||
|
|
||||||
val tileEditorOptions = TileEditorOptionsTable(this)
|
val tileEditorOptions = TileEditorOptionsTable(this)
|
||||||
|
@ -10,10 +10,10 @@ import com.unciv.models.ruleset.VictoryType
|
|||||||
import com.unciv.models.translations.tr
|
import com.unciv.models.translations.tr
|
||||||
import com.unciv.ui.utils.*
|
import com.unciv.ui.utils.*
|
||||||
|
|
||||||
class GameOptionsTable(previousScreen: PreviousScreenInterface, val updatePlayerPickerTable:(desiredCiv:String)->Unit)
|
class GameOptionsTable(gameSetupInfo: GameSetupInfo, val updatePlayerPickerTable:(desiredCiv:String)->Unit)
|
||||||
: Table(CameraStageBaseScreen.skin) {
|
: Table(CameraStageBaseScreen.skin) {
|
||||||
var gameParameters = previousScreen.gameSetupInfo.gameParameters
|
var gameParameters = gameSetupInfo.gameParameters
|
||||||
val ruleset = previousScreen.gameSetupInfo.ruleset
|
val ruleset = gameSetupInfo.ruleset
|
||||||
var locked = false
|
var locked = false
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
@ -52,7 +52,6 @@ class MapOptionsTable(val newGameScreen: NewGameScreen): Table() {
|
|||||||
mapParameters.type = MapType.custom
|
mapParameters.type = MapType.custom
|
||||||
mapParameters.name = mapFileSelectBox.selected
|
mapParameters.name = mapFileSelectBox.selected
|
||||||
mapTypeSpecificTable.add(savedMapOptionsTable)
|
mapTypeSpecificTable.add(savedMapOptionsTable)
|
||||||
newGameScreen.gameSetupInfo = GameSetupInfo()
|
|
||||||
newGameScreen.unlockTables()
|
newGameScreen.unlockTables()
|
||||||
newGameScreen.updateTables()
|
newGameScreen.updateTables()
|
||||||
} else if (mapTypeSelectBox.selected.value == MapType.scenario) {
|
} else if (mapTypeSelectBox.selected.value == MapType.scenario) {
|
||||||
@ -69,7 +68,6 @@ class MapOptionsTable(val newGameScreen: NewGameScreen): Table() {
|
|||||||
mapParameters.name = ""
|
mapParameters.name = ""
|
||||||
mapParameters.type = generatedMapOptionsTable.mapTypeSelectBox.selected.value
|
mapParameters.type = generatedMapOptionsTable.mapTypeSelectBox.selected.value
|
||||||
mapTypeSpecificTable.add(generatedMapOptionsTable)
|
mapTypeSpecificTable.add(generatedMapOptionsTable)
|
||||||
newGameScreen.gameSetupInfo = GameSetupInfo()
|
|
||||||
newGameScreen.unlockTables()
|
newGameScreen.unlockTables()
|
||||||
newGameScreen.updateTables()
|
newGameScreen.updateTables()
|
||||||
}
|
}
|
||||||
|
@ -28,11 +28,12 @@ class GameSetupInfo(var gameId:String, var gameParameters: GameParameters, var m
|
|||||||
}
|
}
|
||||||
|
|
||||||
class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSetupInfo?=null): PreviousScreenInterface, PickerScreen() {
|
class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSetupInfo?=null): PreviousScreenInterface, PickerScreen() {
|
||||||
override var gameSetupInfo: GameSetupInfo = _gameSetupInfo ?: GameSetupInfo()
|
override val gameSetupInfo = _gameSetupInfo ?: GameSetupInfo()
|
||||||
var playerPickerTable = PlayerPickerTable(this, gameSetupInfo.gameParameters)
|
var playerPickerTable = PlayerPickerTable(this, gameSetupInfo.gameParameters)
|
||||||
var newGameOptionsTable = GameOptionsTable(this) { desiredCiv: String -> playerPickerTable.update(desiredCiv) }
|
var newGameOptionsTable = GameOptionsTable(gameSetupInfo) { desiredCiv: String -> playerPickerTable.update(desiredCiv) }
|
||||||
var mapOptionsTable = MapOptionsTable(this)
|
var mapOptionsTable = MapOptionsTable(this)
|
||||||
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
setDefaultCloseAction(previousScreen)
|
setDefaultCloseAction(previousScreen)
|
||||||
scrollPane.setScrollingDisabled(true, true)
|
scrollPane.setScrollingDisabled(true, true)
|
||||||
|
@ -12,7 +12,7 @@ import com.unciv.ui.utils.CameraStageBaseScreen
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
interface PreviousScreenInterface {
|
interface PreviousScreenInterface {
|
||||||
var gameSetupInfo: GameSetupInfo
|
val gameSetupInfo: GameSetupInfo
|
||||||
var stage: Stage
|
var stage: Stage
|
||||||
|
|
||||||
// added for compatibility with NewGameScreen: PickerScreen
|
// added for compatibility with NewGameScreen: PickerScreen
|
||||||
|
Loading…
x
Reference in New Issue
Block a user