View Single Post
11-12-08, 08:14 AM   #16
lieandswell
A Cyclonian
 
lieandswell's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2007
Posts: 45
I'd like to use metatables for default settings, but I never got it to work. Instead, I do a version check at VARIABLES_LOADED, and if the user has an older version, I do something like this:
Code:
function MyAddOn.AddNewSettings(settings, defaults)
	for k, v in pairs(defaults) do
		if ( not settings[k] ) then
			if ( type(v) == "table" ) then
				settings[k] = {};
				settings[k] = MyAddOn.AddNewSettings(settings[k], defaults[k]);
			else
				settings[k] = v;
			end
		elseif ( type(v) == "table" ) then
			settings[k] = MyAddOn.AddNewSettings(settings[k], defaults[k]);
		end
	end
	return settings;
end
It goes through the settings table and adds any new ones that may have appeared in more recent versions.
  Reply With Quote