From ddd0392bfce458070ff459e5f27e599745a5fce1 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Mon, 16 Jan 2017 18:17:13 +0100 Subject: [PATCH] bugfix, library change --- core/disenchant.lua | 116 ++++++++++++++++++++-------------------- core/history.lua | 2 +- core/tooltip.lua | 2 +- gui/auction_listing.lua | 4 +- libs/T.lua | 12 +---- util/info.lua | 10 ++-- util/persistence.lua | 4 +- 7 files changed, 71 insertions(+), 79 deletions(-) diff --git a/core/disenchant.lua b/core/disenchant.lua index 2ec351c..10e5724 100644 --- a/core/disenchant.lua +++ b/core/disenchant.lua @@ -73,7 +73,7 @@ local WEAPON = S( function M.value(slot, quality, level) local expectation - for _, event in temp-distribution(slot, quality, level) do + for _, event in distribution(slot, quality, level) do local value = history.value(event.item_id .. ':' .. 0) if not value then return @@ -99,102 +99,102 @@ function M.distribution(slot, quality, level) if quality == UNCOMMON then if level <= 10 then - return A( - weak-O('item_id', 10940, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.8, .2)), - weak-O('item_id', 10938, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .8)) + return temp-A( + temp-O('item_id', 10940, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.8, .2)), + temp-O('item_id', 10938, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .8)) ) elseif level <= 15 then - return A( - weak-O('item_id', 10940, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.75, .2)), - weak-O('item_id', 10939, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), - weak-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + return temp-A( + temp-O('item_id', 10940, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.75, .2)), + temp-O('item_id', 10939, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + temp-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) ) elseif level <= 20 then - return A( - weak-O('item_id', 10940, 'min_quantity', 4, 'max_quantity', 6, 'probability', p(.75, .15)), - weak-O('item_id', 10998, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.15, .75)), - weak-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .10) + return temp-A( + temp-O('item_id', 10940, 'min_quantity', 4, 'max_quantity', 6, 'probability', p(.75, .15)), + temp-O('item_id', 10998, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.15, .75)), + temp-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .10) ) elseif level <= 25 then - return A( - weak-O('item_id', 11083, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), - weak-O('item_id', 11082, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), - weak-O('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + return temp-A( + temp-O('item_id', 11083, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), + temp-O('item_id', 11082, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + temp-O('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) ) elseif level <= 30 then - return A( - weak-O('item_id', 11083, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)), - weak-O('item_id', 11134, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), - weak-O('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + return temp-A( + temp-O('item_id', 11083, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)), + temp-O('item_id', 11134, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + temp-O('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) ) elseif level <= 35 then - return A( - weak-O('item_id', 11137, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), - weak-O('item_id', 11135, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), - weak-O('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + return temp-A( + temp-O('item_id', 11137, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), + temp-O('item_id', 11135, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + temp-O('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) ) elseif level <= 40 then - return A( - weak-O('item_id', 11137, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)), - weak-O('item_id', 11174, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), - weak-O('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + return temp-A( + temp-O('item_id', 11137, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)), + temp-O('item_id', 11174, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + temp-O('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) ) elseif level <= 45 then - return A( - weak-O('item_id', 11176, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), - weak-O('item_id', 11175, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), - weak-O('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + return temp-A( + temp-O('item_id', 11176, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), + temp-O('item_id', 11175, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + temp-O('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) ) elseif level <= 50 then - return A( - weak-O('item_id', 11176, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)), - weak-O('item_id', 16202, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), - weak-O('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) + return temp-A( + temp-O('item_id', 11176, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)), + temp-O('item_id', 16202, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + temp-O('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) ) elseif level <= 55 then - return A( - weak-O('item_id', 16204, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .22)), - weak-O('item_id', 16203, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), - weak-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) + return temp-A( + temp-O('item_id', 16204, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .22)), + temp-O('item_id', 16203, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + temp-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) ) elseif level <= 60 then - return A( - weak-O('item_id', 16204, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)), - weak-O('item_id', 16203, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.2, .75)), - weak-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) + return temp-A( + temp-O('item_id', 16204, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)), + temp-O('item_id', 16203, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.2, .75)), + temp-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) ) end elseif quality == RARE then if level <= 20 then - return A(weak-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) + return temp-A(temp-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) elseif level <= 25 then - return A(weak-O('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) + return temp-A(temp-O('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) elseif level <= 30 then - return A(weak-O('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) + return temp-A(temp-O('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) elseif level <= 35 then - return A(weak-O('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) + return temp-A(temp-O('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) elseif level <= 40 then - return A(weak-O('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) + return temp-A(temp-O('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) elseif level <= 45 then - return A(weak-O('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) + return temp-A(temp-O('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) elseif level <= 50 then - return A(weak-O('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) + return temp-A(temp-O('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) elseif level <= 55 then - return A(weak-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', .995), weak-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', .005)) + return temp-A(temp-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', .995), temp-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', .005)) elseif level <= 60 then - return A(weak-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', .995), weak-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', .005)) + return temp-A(temp-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', .995), temp-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', .005)) end elseif quality == EPIC then if level <= 40 then - return A(weak-O('item_id', 11177, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1)) + return temp-A(temp-O('item_id', 11177, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1)) elseif level <= 45 then - return A(weak-O('item_id', 11178, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1)) + return temp-A(temp-O('item_id', 11178, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1)) elseif level <= 50 then - return A(weak-O('item_id', 14343, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1)) + return temp-A(temp-O('item_id', 14343, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1)) elseif level <= 55 then - return A(weak-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) + return temp-A(temp-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1)) elseif level <= 60 then - return A(weak-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 2, 'probability', 1)) + return temp-A(temp-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 2, 'probability', 1)) end end return T diff --git a/core/history.lua b/core/history.lua index 90ef580..1feee86 100644 --- a/core/history.lua +++ b/core/history.lua @@ -107,7 +107,7 @@ end function push_record(item_record) if item_record.daily_min_buyout then - tinsert(item_record.data_points, 1, weak-O('value', item_record.daily_min_buyout, 'time', item_record.next_push)) + tinsert(item_record.data_points, 1, O('value', item_record.daily_min_buyout, 'time', item_record.next_push)) while getn(item_record.data_points) > 11 do release(item_record.data_points[getn(item_record.data_points)]) tremove(item_record.data_points) diff --git a/core/tooltip.lua b/core/tooltip.lua index 4e2b50f..8c08b81 100644 --- a/core/tooltip.lua +++ b/core/tooltip.lua @@ -70,7 +70,7 @@ function extend_tooltip(tooltip, link, quantity) end local item_info = temp-info.item(item_id) if item_info then - local distribution = temp-disenchant.distribution(item_info.slot, item_info.quality, item_info.level) + local distribution = disenchant.distribution(item_info.slot, item_info.quality, item_info.level) if getn(distribution) > 0 then if aux_tooltip_disenchant_distribution then tooltip:AddLine('Disenchants into:', color.tooltip.disenchant.distribution()) diff --git a/gui/auction_listing.lua b/gui/auction_listing.lua index 2945412..58a9813 100644 --- a/gui/auction_listing.lua +++ b/gui/auction_listing.lua @@ -584,7 +584,9 @@ local methods = { local rt = this:GetParent().row.rt local rowData = this:GetParent().row.data if rowData and rowData.record then - info.set_tooltip(rowData.record.itemstring, this, 'ANCHOR_RIGHT') + GameTooltip:SetOwner(this, 'ANCHOR_RIGHT') + info.load_tooltip(GameTooltip, rowData.record.tooltip) + GameTooltip:Show() info.set_shopping_tooltip(rowData.record.slot) end end, diff --git a/libs/T.lua b/libs/T.lua index 0394faa..13f212c 100644 --- a/libs/T.lua +++ b/libs/T.lua @@ -4,12 +4,11 @@ module 'T' local next, getn, setn, tremove, setmetatable = next, getn, table.setn, tremove, setmetatable local wipe, acquire, release -local pool, pool_size, overflow_pool, auto_release, dep_release = {}, 0, setmetatable({}, {__mode='k'}), {}, setmetatable({}, {__mode='k'}) +local pool, pool_size, overflow_pool, auto_release = {}, 0, setmetatable({}, {__mode='k'}), {} function wipe(t) setmetatable(t, nil) for k, v in t do - if dep_release[v] then release(v) end t[k] = nil end t.reset, t.reset = nil, 1 @@ -39,7 +38,6 @@ M.acquire = acquire function release(t) wipe(t) auto_release[t] = nil - dep_release[t] = nil if pool_size < 50 then pool_size = pool_size + 1 pool[pool_size] = t @@ -57,14 +55,6 @@ do local function f(_, v) if v then auto_release[v] = nil; return v end end M.static = setmetatable({}, {__metatable=false, __newindex=nop, __call=f, __sub=f}) end -do - local function f(_, v) if v then dep_release[v] = true; return v end end - M.weak = setmetatable({}, {__metatable=false, __newindex=nop, __call=f, __sub=f}) -end -do - local function f(_, v) if v then dep_release[v] = nil; return v end end - M.strong = setmetatable({}, {__metatable=false, __newindex=nop, __call=f, __sub=f}) -end M.get_T = acquire diff --git a/util/info.lua b/util/info.lua index a954514..fdbb057 100644 --- a/util/info.lua +++ b/util/info.lua @@ -77,7 +77,7 @@ function M.container_item(bag, slot) 'readable', readable, 'lootable', lootable, - 'tooltip', weak-tooltip, + 'tooltip', tooltip, 'tooltip_money', tooltip_money, 'max_charges', max_charges, 'charges', charges, @@ -154,7 +154,7 @@ function M.auction(index, query_type) 'duration', duration, 'usable', usable, - 'tooltip', weak-tooltip, + 'tooltip', tooltip, 'tooltip_money', tooltip_money, 'max_charges', max_charges, 'charges', charges, @@ -287,11 +287,11 @@ function M.tooltip(setter, arg1, arg2) end local tooltip = T for i = 1, AuxTooltip:NumLines() do - tinsert(tooltip, weak-O( + tinsert(tooltip, O( 'left_text', _G['AuxTooltipTextLeft' .. i]:GetText(), - 'left_color', weak-A(_G['AuxTooltipTextLeft' .. i]:GetTextColor()), + 'left_color', A(_G['AuxTooltipTextLeft' .. i]:GetTextColor()), 'right_text', _G['AuxTooltipTextRight' .. i]:IsVisible() and _G['AuxTooltipTextRight' .. i]:GetText(), - 'right_color', weak-A(_G['AuxTooltipTextRight' .. i]:GetTextColor()) + 'right_color', A(_G['AuxTooltipTextRight' .. i]:GetTextColor()) )) end return tooltip, AuxTooltip.money diff --git a/util/persistence.lua b/util/persistence.lua index 5f85627..97e6835 100644 --- a/util/persistence.lua +++ b/util/persistence.lua @@ -25,9 +25,9 @@ function M.read(schema, str) elseif schema == 'number' then return tonumber(str) elseif type(schema) == 'table' and schema[1] == 'list' then - return weak-read_list(schema, str) + return read_list(schema, str) elseif type(schema) == 'table' and schema[1] == 'tuple' then - return weak-read_tuple(schema, str) + return read_tuple(schema, str) else error('Invalid schema.', 2) end