New database function: addon:AddRecipeWorldDrop()
James D. Callahan III [03-28-10 - 02:15]
New database function: addon:AddRecipeWorldDrop()
diff --git a/ARL.lua b/ARL.lua
index a4d5f67..95f0a55 100644
--- a/ARL.lua
+++ b/ARL.lua
@@ -1062,18 +1062,29 @@ do
acquire[id_num] = true
- if not unit_list[id_num] then
+ if unit_list and not unit_list[id_num] then
--@alpha@
self:Printf("Spell ID %d: %s ID %d does not exist in the database.", spell_id, type_string, id_num)
--@end-alpha@
else
- local unit = unit_list[id_num]
+ if not unit_list then
+ location = type(id_num) == "string" and BZ[id_num] or nil
- affiliation = unit.faction
- location = unit.location
+ if location then
+ affiliation = "world_drop"
+ addon:Debug("GenericAddRecipeAcquire(): location set as \"%s\".", location)
+ else
+ addon:Debug("WORLD_DROP with no location: %d %s", spell_id, private.recipe_list[spell_id].name)
+ end
+ else
+ local unit = unit_list[id_num]
+
+ affiliation = unit.faction
+ location = unit.location
- unit.item_list = unit.item_list or {}
- unit.item_list[spell_id] = true
+ unit.item_list = unit.item_list or {}
+ unit.item_list[spell_id] = true
+ end
end
acquire_list[acquire_type] = acquire_list[acquire_type] or {}
acquire_list[acquire_type].recipes = acquire_list[acquire_type].recipes or {}
@@ -1103,6 +1114,10 @@ do
GenericAddRecipeAcquire(spell_id, A.VENDOR, "Vendor", private.vendor_list, ...)
end
+ function addon:AddRecipeWorldDrop(spell_id, ...)
+ GenericAddRecipeAcquire(spell_id, A.WORLD_DROP, nil, nil, ...)
+ end
+
-- This function can NOT use GenericAddRecipeAcquire() - reputation vendors are more complicated than the other acquire types.
function addon:AddRecipeRepVendor(spell_id, faction_id, rep_level, ...)
local num_vars = select('#', ...)
diff --git a/Datamine.lua b/Datamine.lua
index 77d8a4d..2ec832e 100644
--- a/Datamine.lua
+++ b/Datamine.lua
@@ -1477,6 +1477,7 @@ do
[A.TRAINER] = "self:AddRecipeTrainer(%d, %s)",
[A.VENDOR] = "self:AddRecipeVendor(%d, %s)",
[A.MOB_DROP] = "self:AddRecipeMobDrop(%d, %s)",
+ [A.WORLD_DROP] = "self:AddRecipeWorldDrop(%d, %s)",
}
local function RecipeDump(id, single)
@@ -1532,7 +1533,8 @@ do
local values
for id_num in pairs(acquire_info) do
- values = values and (values..", "..id_num) or id_num
+ local saved_id = (type(id_num) == "string" and ("\""..id_num.."\"") or id_num)
+ values = values and (values..", "..saved_id) or saved_id
end
tinsert(output, string.format(FUNCTION_FORMATS[acquire_type], recipe.spell_id, values))
else