diff --git a/game/engines/default/engine/HotkeysDisplay.lua b/game/engines/default/engine/HotkeysDisplay.lua index 0c37e9f2ef9933175aee4c4d988af7d6f4f06e89..fc00c757f0fec21ae76280679533563a806f3caa 100644 --- a/game/engines/default/engine/HotkeysDisplay.lua +++ b/game/engines/default/engine/HotkeysDisplay.lua @@ -135,18 +135,30 @@ end --- Call when a mouse event arrives in this zone -- This is optional, only if you need mouse support -function _M:onMouse(button, mx, my, click) +function _M:onMouse(button, mx, my, click, on_over) + local a = self.actor mx, my = mx - self.display_x, my - self.display_y for i, zone in pairs(self.clics) do if mx >= zone[1] and mx < zone[1] + zone[3] and my >= zone[2] and my < zone[2] + zone[4] then if button == "left" and click then - self.actor:activateHotkey(i) + a:activateHotkey(i) elseif button == "right" and click then - self.actor.hotkey[i] = nil - self.actor.changed = true + a.hotkey[i] = nil + a.changed = true else - self.actor.changed = true + a.changed = true self.cur_sel = i + if on_over then + local text = "" + if a.hotkey[i] and a.hotkey[i][1] == "talent" then + local t = self.actor:getTalentFromId(a.hotkey[i][2]) + text = "#GOLD#"..t.name.."#LAST#\n"..self.actor:getTalentFullDescription(t) + elseif a.hotkey[i] and a.hotkey[i][1] == "inventory" then + local o = a:findInAllInventories(a.hotkey[i][2]) + text = o:getDesc() + end + on_over(text) + end end return end diff --git a/game/engines/default/engine/Tooltip.lua b/game/engines/default/engine/Tooltip.lua index cbdbb201d707faebd2d54c3faec1d20371256fab..fba0268d93fb2face4e33223be894d0f23d0eed3 100644 --- a/game/engines/default/engine/Tooltip.lua +++ b/game/engines/default/engine/Tooltip.lua @@ -123,7 +123,6 @@ function _M:displayAtMap(tmx, tmy, mx, my, text) if text ~= self.old_text then self:set("%s", text) self:display() - print("set", text) self.old_text = text end else diff --git a/game/engines/default/engine/utils.lua b/game/engines/default/engine/utils.lua index 376d4f9d1811a34d2acac1a23ab95c1159022f84..047210ac7cba4550b01d0546d3c91ece9be68b37 100644 --- a/game/engines/default/engine/utils.lua +++ b/game/engines/default/engine/utils.lua @@ -477,11 +477,11 @@ function util.findFreeGrid(sx, sy, radius, block, what) local ok = true if not game.level.map:isBound(x, y) then ok = false end for w, _ in pairs(what) do - print("findFreeGrid test", x, y, w, ":=>", game.level.map(x, y, w)) +-- print("findFreeGrid test", x, y, w, ":=>", game.level.map(x, y, w)) if game.level.map(x, y, w) then ok = false end end if game.level.map:checkEntity(x, y, game.level.map.TERRAIN, "block_move") then ok = false end - print("findFreeGrid", x, y, "from", sx,sy,"=>", ok) +-- print("findFreeGrid", x, y, "from", sx,sy,"=>", ok) if ok then gs[#gs+1] = {x, y, math.floor(core.fov.distance(sx, sy, x, y)), rng.range(1, 1000)} end diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 3cc9ef7c5f8550ee9d79e4ece2114192f4577bb3..89ebd68bff99b75726a4c3a35a9b57255103bfc9 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -777,7 +777,7 @@ function _M:setupMouse(reset) end, {button=true}) -- Use hotkeys with mouse self.mouse:registerZone(self.hotkeys_display.display_x, self.hotkeys_display.display_y, self.w, self.h, function(button, mx, my, xrel, yrel) - self.hotkeys_display:onMouse(button, mx, my, not xrel) + self.hotkeys_display:onMouse(button, mx, my, not xrel, function(text) self.tooltip:displayAtMap(nil, nil, self.w, self.h, text) end) end) -- Use icons self.mouse:registerZone(self.icons.display_x, self.icons.display_y, self.icons.w, self.icons.h, function(button, mx, my, xrel, yrel, bx, by)