More menu navigation
This commit is contained in:
@@ -21,14 +21,24 @@ func (o *Ordoor) mainDriver() (*ui.Driver, error) {
|
|||||||
return nil, err
|
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)
|
options, err := o.optionsDriver(main)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: clicking these buttons should load other interfaces
|
// TODO: clicking these buttons should load other interfaces
|
||||||
try(main.OnClick("2.1", func() {}), &err) // New game
|
try(main.OnClick("2.1", func() { o.driver = newGame }), &err) // New game
|
||||||
try(main.OnClick("2.2", func() {}), &err) // Load 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.SetFreeze("2.3", true), &err) // Multiplayer - disable for now
|
||||||
try(main.OnClick("2.4", func() { o.driver = options }), &err) // Options
|
try(main.OnClick("2.4", func() { o.driver = options }), &err) // Options
|
||||||
try(main.OnClick("2.5", func() { o.nextState = StateExit }), &err) // Quit
|
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
|
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
|
// Options needs to know how to go back to main
|
||||||
func (o *Ordoor) optionsDriver(main *ui.Driver) (*ui.Driver, error) {
|
func (o *Ordoor) optionsDriver(main *ui.Driver) (*ui.Driver, error) {
|
||||||
options, err := o.buildDriver("options")
|
options, err := o.buildDriver("options")
|
||||||
@@ -82,6 +140,52 @@ func (o *Ordoor) optionsDriver(main *ui.Driver) (*ui.Driver, error) {
|
|||||||
return options, err
|
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) {
|
func (o *Ordoor) keyboardDriver(options *ui.Driver) (*ui.Driver, error) {
|
||||||
kbd, err := o.buildDriver("keyboard")
|
kbd, err := o.buildDriver("keyboard")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user