More menu navigation
This commit is contained in:
@@ -21,14 +21,24 @@ func (o *Ordoor) mainDriver() (*ui.Driver, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
newGame, err := o.newGameDriver(main)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
loadGame, err := o.loadGameDriver(main)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
options, err := o.optionsDriver(main)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// TODO: clicking these buttons should load other interfaces
|
||||
try(main.OnClick("2.1", func() {}), &err) // New game
|
||||
try(main.OnClick("2.2", func() {}), &err) // Load game
|
||||
try(main.OnClick("2.1", func() { o.driver = newGame }), &err) // New game
|
||||
try(main.OnClick("2.2", func() { o.driver = loadGame }), &err) // Load game
|
||||
try(main.SetFreeze("2.3", true), &err) // Multiplayer - disable for now
|
||||
try(main.OnClick("2.4", func() { o.driver = options }), &err) // Options
|
||||
try(main.OnClick("2.5", func() { o.nextState = StateExit }), &err) // Quit
|
||||
@@ -36,6 +46,54 @@ func (o *Ordoor) mainDriver() (*ui.Driver, error) {
|
||||
return main, err
|
||||
}
|
||||
|
||||
func (o *Ordoor) newGameDriver(main *ui.Driver) (*ui.Driver, error) {
|
||||
newGame, err := o.buildDriver("newgame")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
levelPly, err := o.levelPlyDriver(newGame)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
singles, err := o.singlesDriver(newGame)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
randomMap, err := o.randomMapDriver(newGame)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
try(newGame.OnClick("2.1", func() { o.driver = levelPly }), &err) // New campaign button
|
||||
try(newGame.OnClick("2.2", func() { o.driver = singles }), &err) // Single scenario button
|
||||
try(newGame.OnClick("2.3", func() { o.driver = randomMap }), &err) // Random scenario button
|
||||
try(newGame.OnClick("2.4", func() { o.driver = main }), &err) // Back button
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return newGame, nil
|
||||
}
|
||||
|
||||
func (o *Ordoor) loadGameDriver(main *ui.Driver) (*ui.Driver, error) {
|
||||
loadGame, err := o.buildDriver("loadgame")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
try(loadGame.OnClick("3.3", func() { o.driver = main }), &err) // Cancel button
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return loadGame, nil
|
||||
}
|
||||
|
||||
// Options needs to know how to go back to main
|
||||
func (o *Ordoor) optionsDriver(main *ui.Driver) (*ui.Driver, error) {
|
||||
options, err := o.buildDriver("options")
|
||||
@@ -82,6 +140,52 @@ func (o *Ordoor) optionsDriver(main *ui.Driver) (*ui.Driver, error) {
|
||||
return options, err
|
||||
}
|
||||
|
||||
// "Level of play menu when starting a new campaign
|
||||
func (o *Ordoor) levelPlyDriver(newGame *ui.Driver) (*ui.Driver, error) {
|
||||
levelPly, err := o.buildDriver("levelply")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
try(levelPly.OnClick("2.5", func() { o.driver = newGame }), &err) // Back button
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return levelPly, nil
|
||||
}
|
||||
|
||||
func (o *Ordoor) singlesDriver(newGame *ui.Driver) (*ui.Driver, error) {
|
||||
singles, err := o.buildDriver("singles")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
try(singles.OnClick("4.11", func() { o.driver = newGame }), &err) // Back button
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return singles, nil
|
||||
}
|
||||
|
||||
func (o *Ordoor) randomMapDriver(newGame *ui.Driver) (*ui.Driver, error) {
|
||||
randomMap, err := o.buildDriver("randommap")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
try(randomMap.OnClick("2.19", func() { o.driver = newGame }), &err) // Back button
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return randomMap, nil
|
||||
}
|
||||
|
||||
func (o *Ordoor) keyboardDriver(options *ui.Driver) (*ui.Driver, error) {
|
||||
kbd, err := o.buildDriver("keyboard")
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user