We can reach the bridge \o/

This commit is contained in:
2020-03-26 23:35:34 +00:00
parent e4ce932324
commit 79bfab7d6b
9 changed files with 230 additions and 69 deletions

View File

@@ -21,36 +21,35 @@ func init() {
// FIXME: these need implementing
// Needed for Keyboard.mnu (main -> options -> keyboard)
registerBuilder(menus.TypeLineKbd, nil)
registerBuilder(menus.TypeDialogue, nil)
registerBuilder(menus.TypeLineKbd, registerDebug("Unimplemented LineKbd", nil))
registerBuilder(menus.TypeDialogue, registerDebug("Unimplemented Dialogue", nil))
// Needed for Arrange.mnu (???)
registerBuilder(menus.TypeSquadButton, nil)
registerBuilder(menus.TypeAnimationToo, nil)
registerBuilder(menus.TypeSquadButton, registerDebug("Unimplemented SquadButton", nil))
registerBuilder(menus.TypeAnimationToo, registerDebug("Unimplemented AnimationToo", nil))
// Needed for Bridge.mnu
registerBuilder(menus.TypeDoorHotspot, nil)
registerBuilder(menus.TypeDoorHotspot, registerDebug("Unimplemented DoorHotspot", nil))
// Needed for Briefing.mnu
registerBuilder(menus.TypeLineBriefing, nil)
registerBuilder(menus.TypeLineBriefing, registerDebug("Unimplemented LineBriefing", nil))
// Needed for ChaEquip.mnu
registerBuilder(menus.TypeUnknown1, nil)
registerBuilder(menus.TypeThumb, nil)
registerBuilder(menus.TypeInventorySelect, nil)
registerBuilder(menus.TypeUnknown1, registerDebug("Unimplemented Unknown1", nil))
registerBuilder(menus.TypeThumb, registerDebug("Unimplemented Thumb", nil))
// Needed for MainGameChaos.mnu
registerBuilder(menus.TypeStatusBar, nil)
registerBuilder(menus.TypeStatusBar, registerDebug("Unimplemented StatusBar", nil))
// Needed for Multiplayer_Choose.mnu
registerBuilder(menus.TypeComboBoxItem, nil)
registerBuilder(menus.TypeDropdownButton, nil)
registerBuilder(menus.TypeComboBoxItem, registerDebug("Unimplemented ComboBoxItem", nil))
registerBuilder(menus.TypeDropdownButton, registerDebug("Unimplemented DropdownButton", nil))
// Needed for Multiplayer_Configure.mnu
registerBuilder(menus.TypeEditBox, nil)
registerBuilder(menus.TypeEditBox, registerDebug("Unimplemented EditBox", nil))
// Needed for Multiplayer_Connect.mnu
registerBuilder(menus.TypeRadioButton, nil)
registerBuilder(menus.TypeRadioButton, registerDebug("Unimplemented RadioButton", nil))
}
const (
@@ -66,6 +65,19 @@ var (
// Used to add widgets to a driver
type builderFunc func(d *Driver, r *menus.Record) error
func registerDebug(reason string, onward builderFunc) builderFunc {
return func(d *Driver, r *menus.Record) error {
log.Printf("%v: %#+v", reason, r)
if onward == nil {
return registerStatic(d, r)
} else {
return onward(d, r)
}
return nil
}
}
func registerBuilder(t menus.MenuType, f builderFunc) {
if _, ok := widgetBuilders[t]; ok {
panic(fmt.Sprintf("A builder for menu type %v already exists", t))
@@ -187,7 +199,6 @@ func (d *Driver) ConfigureSlider(id string, steps map[int]int) error {
for _, clickable := range d.clickables {
if slider, ok := clickable.(*slider); ok && slider.id() == id {
slider.steps = steps
log.Printf("Found slider %#+v", slider)
return nil
}