Link various screens accessible from the bridge

This kind of linking is starting to creak...
This commit is contained in:
2020-03-27 02:07:28 +00:00
parent 316db89148
commit c090fd32e9
8 changed files with 133 additions and 27 deletions

View File

@@ -11,7 +11,9 @@ func init() {
registerBuilder(menus.TypeSimpleButton, registerSimpleButton)
registerBuilder(menus.TypeInvokeButton, registerInvokeButton)
registerBuilder(menus.TypeMainButton, registerMainButton)
registerBuilder(menus.TypeDoorHotspot, registerDebug("Unimplemented DoorHotspot", nil))
registerBuilder(menus.TypeDoorHotspot, registerDoorHotspot)
registerBuilder(menus.TypeDoorHotspot2, registerDoorHotspot)
registerBuilder(menus.TypeDoorHotspot3, registerDoorHotspot)
}
// A button without hover animation
@@ -79,6 +81,29 @@ func registerMainButton(d *Driver, r *menus.Record) error {
return nil
}
func registerDoorHotspot(d *Driver, r *menus.Record) error {
sprites, err := d.menu.Sprites(r.Share, 2) // base, pressed
if err != nil {
return err
}
btn := &button{
path: r.Path(),
baseSpr: sprites[0],
clickSpr: sprites[1],
frozenSpr: sprites[0], // No disabled sprite
hoverImpl: hoverImpl{text: r.Text},
}
d.clickables = append(d.clickables, btn)
d.freezables = append(d.freezables, btn)
d.hoverables = append(d.hoverables, btn)
d.paintables = append(d.paintables, btn)
return nil
}
func registerButton(d *Driver, r *menus.Record, spriteId int) error {
sprites, err := d.menu.Sprites(spriteId, 3) // base, pressed, disabled
if err != nil {