diff --git a/game/engines/default/data/sound/ui/subtle_button_sound.ogg b/game/engines/default/data/sound/ui/subtle_button_sound.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d903090157e053afe728d016a696704960b53bef Binary files /dev/null and b/game/engines/default/data/sound/ui/subtle_button_sound.ogg differ diff --git a/game/engines/default/engine/ui/Base.lua b/game/engines/default/engine/ui/Base.lua index 541e23bbdcee8c6f2363232108a8a7d1511273da..f090411bbf7089d9d28cf748544fb75a812d4af6 100644 --- a/game/engines/default/engine/ui/Base.lua +++ b/game/engines/default/engine/ui/Base.lua @@ -41,6 +41,10 @@ _M.font_bold_h = _M.font_bold:lineSkip() _M.ui = "stone" _M.defaultui = "stone" +sounds = { + button = "ui/subtle_button_sound", +} + _M.ui_conf = { stone = { frame_shadow = {x=15, y=15, a=0.5}, @@ -162,3 +166,9 @@ end function _M:positioned(x, y) end + +function _M:sound(name) + if game.playSound and sounds[name] then + game:playSound(sounds[name]) + end +end diff --git a/game/engines/default/engine/ui/Button.lua b/game/engines/default/engine/ui/Button.lua index ca2470614c6df7dbf58488b0667c3015f3c94031..5d51e52c61335192cd43ef8b176a086b0770edca 100644 --- a/game/engines/default/engine/ui/Button.lua +++ b/game/engines/default/engine/ui/Button.lua @@ -53,8 +53,8 @@ function _M:generate() self.font:setStyle("normal") -- Add UI controls - self.mouse:registerZone(0, 0, self.w+6, self.h+6, function(button, x, y, xrel, yrel, bx, by, event) if button == "left" and event == "button" then self.fct() end end) - self.key:addBind("ACCEPT", function() self.fct() end) + self.mouse:registerZone(0, 0, self.w+6, self.h+6, function(button, x, y, xrel, yrel, bx, by, event) if button == "left" and event == "button" then self:sound("button") self.fct() end end) + self.key:addBind("ACCEPT", function() self:sound("button") self.fct() end) self.rw, self.rh = w, h self.frame = self:makeFrame("ui/button", self.w, self.h) diff --git a/game/engines/default/engine/ui/Checkbox.lua b/game/engines/default/engine/ui/Checkbox.lua index 138568e3ab5f8c73a1a205c6057797818ff18e05..b16481b3ed81fcc973769c7ef89767188ef06963 100644 --- a/game/engines/default/engine/ui/Checkbox.lua +++ b/game/engines/default/engine/ui/Checkbox.lua @@ -65,6 +65,7 @@ end function _M:select() self.checked = not self.checked + self:sound("button") if self.on_change then self.on_change(self.checked) end end diff --git a/game/engines/default/engine/ui/Dropdown.lua b/game/engines/default/engine/ui/Dropdown.lua index 2982985e5c2d8fb5ec56b3bf038532028663bda5..7a26748dfdd01946ee33a404517d5735deca3125 100644 --- a/game/engines/default/engine/ui/Dropdown.lua +++ b/game/engines/default/engine/ui/Dropdown.lua @@ -60,6 +60,7 @@ end function _M:positioned(x, y, sx, sy) self.c_list = List.new{width=self.w, list=self.list, select=self.on_select, display_prop=self.display_prop, scrollbar=self.scrollbar, nb_items=self.nb_items, fct=function() game:unregisterDialog(self.popup) + self:sound("button") self.fct(self.c_list.list[self.c_list.sel]) end} self.popup = Dialog.new(nil, self.w, self.c_list.h, sx, sy + self.h, nil, nil, false, "simple") @@ -69,6 +70,7 @@ function _M:positioned(x, y, sx, sy) self.popup.key:addBind("EXIT", function() game:unregisterDialog(self.popup) self.c_list.sel = self.previous + self:sound("button") self.fct(self.c_list.list[self.c_list.sel]) end) end diff --git a/game/engines/default/engine/ui/ImageList.lua b/game/engines/default/engine/ui/ImageList.lua index 6521e5b93c6d36838b74a8db4c13cb1c191ff030..b6875f96e04d37cf70fca2ab0e38847ade0cf409 100644 --- a/game/engines/default/engine/ui/ImageList.lua +++ b/game/engines/default/engine/ui/ImageList.lua @@ -135,6 +135,7 @@ end function _M:onUse(button) local item = self.dlist[self.sel_j] and self.dlist[self.sel_j][self.sel_i] + self:sound("button") if item then self.fct(item) end end diff --git a/game/engines/default/engine/ui/List.lua b/game/engines/default/engine/ui/List.lua index 8bf254d4f4e547bb87f5ae1ab969e6d59e708f81..df28ed7b4c8125d3ff6f87212a5136efee29a94e 100644 --- a/game/engines/default/engine/ui/List.lua +++ b/game/engines/default/engine/ui/List.lua @@ -147,6 +147,7 @@ end function _M:onUse(...) local item = self.list[self.sel] if not item then return end + self:sound("button") if item.fct then item:fct(item, self.sel, ...) else self.fct(item, self.sel, ...) end end diff --git a/game/engines/default/engine/ui/ListColumns.lua b/game/engines/default/engine/ui/ListColumns.lua index d185e3cfe6fca07883b7a74df915ee0e746661e8..f7a1d84277ba8e430b411a258983d99f58b55a63 100644 --- a/game/engines/default/engine/ui/ListColumns.lua +++ b/game/engines/default/engine/ui/ListColumns.lua @@ -250,6 +250,7 @@ end function _M:onUse(...) local item = self.list[self.sel] if not item then return end + self:sound("button") if item.fct then item:fct(item, self.sel, ...) else self.fct(item, self.sel, ...) end end diff --git a/game/engines/default/engine/ui/Tab.lua b/game/engines/default/engine/ui/Tab.lua index e13e840bf9048e9f0978d481c2494054fb705c31..67fc6ab80f28d96cdfe88400ea5b51d8933113d8 100644 --- a/game/engines/default/engine/ui/Tab.lua +++ b/game/engines/default/engine/ui/Tab.lua @@ -64,7 +64,10 @@ function _M:generate() self.frame_sel = self:makeFrame("ui/button_sel", self.w, self.h) - self.key:addBind("ACCEPT", function() self.fct(self.selected) end) + self.key:addBind("ACCEPT", function() + self:sound("button") + self.fct(self.selected) + end) self.key:addCommands{ _SPACE = function() self:select() end, } diff --git a/game/engines/default/engine/ui/TreeList.lua b/game/engines/default/engine/ui/TreeList.lua index f552583f1e40555e9ce2110960b3068fba2ff09d..314b0ff761757639d7fe0f126148bb4eb67efe24 100644 --- a/game/engines/default/engine/ui/TreeList.lua +++ b/game/engines/default/engine/ui/TreeList.lua @@ -295,6 +295,7 @@ end function _M:onUse(...) local item = self.list[self.sel] if not item then return end + self:sound("button") if item.fct then item.fct(item, self.sel, ...) else self.fct(item, self.sel, ...) end end diff --git a/game/engines/default/engine/ui/VariableList.lua b/game/engines/default/engine/ui/VariableList.lua index cf92b37a6b331c536fdf279eba87a5c27b8d5575..82400a17e9e4947e6aee4bd9fc077e07388f2392 100644 --- a/game/engines/default/engine/ui/VariableList.lua +++ b/game/engines/default/engine/ui/VariableList.lua @@ -92,6 +92,7 @@ end function _M:onUse() local item = self.list[self.sel] if not item then return end + self:sound("button") if item.fct then item:fct() else self.fct(item, self.sel) end end