local KarmaObj = KarmaAvEnK; local KCfg = KarmaObj.Cfg; local KarmaConfigLocal = nil; KCfg.ColorSpaces = { Default1 = { Min = { r = 1.0, g = 0.0, b = 0.0 }, Avg = { r = 0.5, g = 0.5, b = 1.0 }, Max = { r = 0.0, g = 1.0, b = 0.0 }, }, Default2 = { Min = { r = 0.7, g = 0.7, b = 0.7 }, Avg = { r = 0.5, g = 0.5, b = 1.0 }, Max = { r = 0.3, g = 1.0, b = 0.3 }, }, }; -- CONFIG FIELDS (all local) local KARMA_CONFIG = { -- Options: "Sort/Color" SORTFUNCTION = "SORTFUNCTION", SORTFUNCTION_TYPE_KARMA = "KARMASORT", SORTFUNCTION_TYPE_NAME = "NAMESORT", SORTFUNCTION_TYPE_XP = "XPSORT", SORTFUNCTION_TYPE_PLAYED = "PLAYEDSORT", SORTFUNCTION_TYPE_CLASS = "CLASSSORT", SORTFUNCTION_TYPE_JOINED = "JOINEDSORT", SORTFUNCTION_TYPE_JOINEDTHIS = "SRT_JOINEDTHIS", SORTFUNCTION_TYPE_SEEN = "SRT_SEEN", SORTFUNCTION_TYPE_TALENT = "TALENTSORT", SORTFUNCTION_TYPE_XPALL = "XPALLSORT", SORTFUNCTION_TYPE_PLAYEDALL = "PLAYEDALLSORT", SORTFUNCTION_TYPE_GUILD_TOP = "BYGUILD_TOP", SORTFUNCTION_TYPE_GUILD_BOTTOM = "BYGUILD_BTM", COLORFUNCTION = "COLORFUNCTION", COLORFUNCTION_TYPE_XP = "XPCOLOR", COLORFUNCTION_TYPE_PLAYED = "PLAYEDCOLOR", COLORFUNCTION_TYPE_KARMA = "KARMACOLOR", COLORFUNCTION_TYPE_CLASS = "CLASSCOLOR", COLORFUNCTION_TYPE_XPALL = "XPALLCOLOR", COLORFUNCTION_TYPE_PLAYEDALL = "PLAYEDALLCOLOR", COLORFUNCTION_TYPE_XPLVL = "XPLVLCOLOR"; COLORFUNCTION_TYPE_XPLVLALL = "XPLVLALLCOLOR"; COLORSPACE_ENABLE = "COLORSPACE_ENABLE", COLORSPACE_KARMA = "COLORSPACE_KARMA", COLORSPACE_TIME = "COLORSPACE_TIME", COLORSPACE_XP = "COLORSPACE_XP", -- Options: "Tooltip" TOOLTIP_SHIFTREQ = "TT_SHREQ", TOOLTIP_KARMA = "TT_KARMA", TOOLTIP_PLAYEDTOTAL = "TT_PLAYEDTOTAL", TOOLTIP_PLAYEDTHIS = "TT_PLAYEDTHIS", TOOLTIP_NOTES = "TT_NOTES", TOOLTIP_SKILL = "TT_SKILL", TOOLTIP_GEAR = "TT_GEAR", TOOLTIP_TALENTS = "TT_TALENTS", TOOLTIP_TERROR = "TT_TERROR", TOOLTIP_ALTS = "TT_ALTS", TOOLTIP_HELP = "TT_HELP", TOOLTIP_LFMADDKARMA = "TT_LFMADDKARMA", -- Options: "auto.Ign/Warn" AUTOIGNORE_THRESHOLD = "AUTOIGNORE_THRESHOLD", AUTOIGNORE = "AUTOIGNORE", AUTOIGNORE_INVITES = "AUTOIGNORE_INVITES", JOINWARN_THRESHOLD = "JOINWARN_THRESHOLD", JOINWARN_ENABLED = "JOINWARN_ENABLED", -- Options: "Chat windows" CHAT_DEFAULT = "CHAT_DEFAULT", CHAT_SECONDARY = "CHAT_SECONDARY", CHAT_DEBUG = "CHAT_DEBUG", MARKUP_ENABLED = "MARKUP", MARKUP_VERSION = "MARKUP_VERSION", MARKUP_COLOUR_NAME = "COLOUR_NAME", -- missing in UI MARKUP_COLOUR_KARMA = "COLOUR_KARMA", -- missing in UI MARKUP_SHOW_KARMA = "SHOW_KARMA", -- missing in UI MARKUP_WHISPERS = "MARKUP_WHISPERS", MARKUP_CHANNELS = "MARKUP_CHANNELS", MARKUP_GUILD = "MARKUP_GUILD", MARKUP_RAID = "MARKUP_RAID", MARKUP_BG = "MARKUP_BG", MARKUP_YELLSAYEMOTE = "MARKUP_YSE", -- Options: "virtual Karma" TIME_KARMA_DEFAULT = "K_TIME_DEFAULT", TIME_KARMA_MINVAL = "K_TIME_MINVAL", TIME_KARMA_FACTOR = "K_TIME_FACTOR", TIME_KARMA_SKIPBGTIME = "K_TIME_NOTBG", -- Options: "Other" TARGET_COLORED = "TARGET_COLORED", QUESTWARNCOLLAPSED = "QUESTWARN", MAINWND_INITIALTAB = "MAINWND_INITTAB", TALENTS_AUTOFETCH = "TALENTS_AUTOFETCH", MINIMAP_HIDE = "MINIMAP_HIDE", QUESTSIGNOREDAILIES = "Q_IGN_DAILY", UPDATEWHILEAFK = "UPD_ON_AFK", DB_SPARSE = "SPARSEDB", -- Options: "DB cleaning" CLEAN_AUTO = "AUTOCLEAN", CLEAN_AUTOPVP = "AUTOCLEANPVP", CLEAN_KEEPIFNOTE = "CLEAN_KEEPIFNOTE", CLEAN_REMOVEPVPJOINS = "CLEAN_REM_PVP", CLEAN_REMOVEXSERVER = "CLEAN_REMOVEXSERVER", CLEAN_KEEPIFKARMA = "CLEAN_KEEPIFKARMA", CLEAN_KEEPIFREGIONCOUNT = "CLEAN_KEEPIFREGIONCOUNT", CLEAN_KEEPIFZONECOUNT = "CLEAN_KEEPIFZONECOUNT", CLEAN_KEEPIFQUESTCOUNT = "CLEAN_KEEPIFQUESTCOUNT", CLEAN_IGNOREPVPZONES = "CLEAN_IGNOREPVPZONES", -- Options: "Sharing" SHARE_ONREQ_KARMA = "SHARE_ONREQ_KARMA", SHARE_ONREQ_PUBLICNOTE = "SHARE_ONREQ_PUBNOTE", SHARE_CHANNEL_NAME = "SHARE_CHAN_NAME", SHARE_CHANNEL_AUTO = "SHARE_CHAN_AUTO", -- Options: "Tracking" (UI part TODO) RAID_TRACKALL = "RAID_TRACKALL", RAID_NOGROUP = "RAID_NOGROUP", TRACK_DISABLEACHIEVEMENT = "TRACK_NOACHIEVEMENT", TRACK_DISABLEACHIEV_TERROR = "TRACK_NOACH_TERROR", TRACK_DISABLEQUEST = "TRACK_NOQUEST", TRACK_DISABLEREGION = "TRACK_NOREGION", TRACK_DISABLEZONE = "TRACK_NOZONE", TRACK_DISABLEPVPAREAS = "TRACK_NOPVPAREA", TRACK_DISABLEWARNING_VERSION = "TRACK_WARNVERSION", MENU_DEACTIVATE = "MENU_OFF", MENU_WARN = "MENU_WARN", -- not in Option window: MINIMAPPOS = "MINIMAP_ANGLE", SKILL_MODEL = "SKILL_MODEL", MAINWND_LIST_ = "MWND_L_", MAINWND_LIST_R = "MWND_L_R", MAINWND_LIST_Z = "MWND_L_Z", MAINWND_LIST_Q = "MWND_L_Q", MAINWND_LIST_A = "MWND_L_A", -- internal DEBUG_ENABLED = "DEBUG", -- == last entry no ",", add to previous == -- BETA = "BETA" }; function KCfg.Init() if (KarmaConfig == nil) then KarmaConfig = {}; end KarmaConfigLocal = KarmaConfig; Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.AUTOIGNORE_THRESHOLD, 10); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.AUTOIGNORE, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.AUTOIGNORE_INVITES, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.JOINWARN_ENABLED, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.JOINWARN_THRESHOLD, 35); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.SORTFUNCTION, KARMA_CONFIG.SORTFUNCTION_TYPE_KARMA); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.COLORFUNCTION, KARMA_CONFIG.COLORFUNCTION_TYPE_KARMA); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.COLORSPACE_ENABLE, false); if (not KCfg.Get("COLORSPACE_ENABLE")) then KarmaConfig[KARMA_CONFIG.COLORSPACE_KARMA] = nil; KarmaConfig[KARMA_CONFIG.COLORSPACE_TIME] = nil; KarmaConfig[KARMA_CONFIG.COLORSPACE_XP] = nil; end Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.COLORSPACE_KARMA, KCfg.ColorSpaces.Default1, nil, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.COLORSPACE_TIME, KCfg.ColorSpaces.Default2, nil, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.COLORSPACE_XP, KCfg.ColorSpaces.Default2, nil, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_ENABLED, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_VERSION, 3); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_WHISPERS, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_CHANNELS, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_GUILD, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_RAID, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_BG, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_YELLSAYEMOTE, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_COLOUR_NAME, true); -- TODO: !UI Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_COLOUR_KARMA, true); -- TODO: !UI Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MARKUP_SHOW_KARMA, true); -- TODO: !UI -- Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_AUTO, false); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_KEEPIFNOTE, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_REMOVEPVPJOINS, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_REMOVEXSERVER, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_KEEPIFKARMA, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_KEEPIFQUESTCOUNT, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_KEEPIFREGIONCOUNT, 2); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_KEEPIFZONECOUNT, 4); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.CLEAN_IGNOREPVPZONES, 1); -- 0: never, 1: always, 2: via GUILD, 3: with trusted people only Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.SHARE_ONREQ_KARMA, 3); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.SHARE_ONREQ_PUBLICNOTE, 2); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.SHARE_CHANNEL_NAME, "CommGlobal"); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.SHARE_CHANNEL_AUTO, false); -- Tracking: Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.RAID_TRACKALL, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.RAID_NOGROUP, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TRACK_DISABLEACHIEVEMENT, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TRACK_DISABLEACHIEV_TERROR, 1); -- default off since 30300.09 Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TRACK_DISABLEQUEST, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TRACK_DISABLEREGION, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TRACK_DISABLEZONE, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TRACK_DISABLEPVPAREAS, 1); -- Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TARGET_COLORED, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_SHIFTREQ, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_KARMA, true); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_SKILL, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_TALENTS, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_TERROR, 0); -- default off since 30300.09 Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_ALTS, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_NOTES, false); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_HELP, 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TOOLTIP_LFMADDKARMA, 1); -- Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MINIMAP_HIDE, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.QUESTSIGNOREDAILIES, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.UPDATEWHILEAFK, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.DB_SPARSE, 0); -- Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TIME_KARMA_DEFAULT, 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TIME_KARMA_MINVAL, 50); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TIME_KARMA_FACTOR, 0.4); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.TIME_KARMA_SKIPBGTIME, 1); -- Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MENU_DEACTIVATE, 1); -- Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MAINWND_LIST_ .. "R", 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MAINWND_LIST_ .. "Z", 0); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MAINWND_LIST_ .. "Q", 1); Karma_FieldInitialize(KarmaConfig, KARMA_CONFIG.MAINWND_LIST_ .. "A", 1); end function KCfg.Get(sCfgName) if (KarmaConfigLocal == nil) then return nil; end if (sCfgName == nil) then KarmaChatDebug("Oops? Requested to get <nil> config. Doh! >> " .. debugstack()); return nil; end local sCfgKey = KARMA_CONFIG[sCfgName]; if (sCfgKey == nil) then KarmaChatDebug("Oops? Requested to get unknown (misspelled?) config: <" .. tostring(sCfgName) .. "> Doh! >> " .. debugstack()); return nil; end return KarmaConfigLocal[sCfgKey]; end function KCfg.Set(sCfgName, value) if (KarmaConfigLocal == nil) then return; end if (sCfgName == nil) then KarmaChatDebug("Oops? Requested to set <nil> config. Doh! >> " .. debugstack()); return nil; end local sCfgKey = KARMA_CONFIG[sCfgName]; if (sCfgKey == nil) then KarmaChatDebug("Oops? Requested to set unknown (misspelled?) config: <" .. tostring(sCfgName) .. "> Doh! >> " .. debugstack()); return nil; end KarmaChatDebug("Setting " .. sCfgKey .. " to value " .. tostring(value)); KarmaConfigLocal[sCfgKey] = value; end function KCfg.GetPerChar(sCfgName) if (KarmaConfigLocal == nil) then return nil; end if (sCfgName == nil) then KarmaChatDebug("Oops? Requested to get <nil> config. Doh! >> " .. debugstack()); return nil; end local sCfgKey = KARMA_CONFIG[sCfgName]; if (sCfgKey == nil) then KarmaChatDebug("Oops? Requested to get unknown (misspelled?) config: <" .. tostring(sCfgName) .. "> Doh! >> " .. debugstack()); return nil; end if (KARMA_LOADED == 1) then if Karma_EverythingLoaded() then local CharConfig = KarmaObj.DB.CharacterConfigObjectGet(); local CharConfigValue = CharConfig[sCfgKey]; if (CharConfigValue ~= nil) then KarmaChatDebug("Using per-char value of " .. sCfgKey); return CharConfigValue; end return KarmaConfigLocal[sCfgKey]; end else return nil; end end function KCfg.SetPerChar(sCfgName, value) if (KarmaConfigLocal == nil) then return; end if (sCfgName == nil) then KarmaChatDebug("Oops? Requested to set <nil> config. Doh! >> " .. debugstack()); return nil; end local sCfgKey = KARMA_CONFIG[sCfgName]; if (sCfgKey == nil) then KarmaChatDebug("Oops? Requested to set unknown (misspelled?) config: <" .. tostring(sCfgName) .. "> Doh! >> " .. debugstack()); return nil; end KarmaChatDebug("Setting " .. sCfgKey .. " to value " .. tostring(value)); KarmaConfigLocal[sCfgKey] = value; if (KARMA_LOADED == 1) then if Karma_EverythingLoaded() then local CharConfig = KarmaObj.DB.CharacterConfigObjectGet(); KarmaChatDebug("Storing per-char value for " .. sCfgKey); CharConfig[sCfgKey] = value; end end end -- values for "Sort/Color" local KARMA_VALUES = { SORTFUNCTION_TYPE_KARMA = "KARMASORT", SORTFUNCTION_TYPE_NAME = "NAMESORT", SORTFUNCTION_TYPE_XP = "XPSORT", SORTFUNCTION_TYPE_PLAYED = "PLAYEDSORT", SORTFUNCTION_TYPE_CLASS = "CLASSSORT", SORTFUNCTION_TYPE_JOINED = "JOINEDSORT", SORTFUNCTION_TYPE_JOINEDTHIS = "SRT_JOINEDTHIS", SORTFUNCTION_TYPE_SEEN = "SRT_SEEN", SORTFUNCTION_TYPE_TALENT = "TALENTSORT", SORTFUNCTION_TYPE_XPALL = "XPALLSORT", SORTFUNCTION_TYPE_PLAYEDALL = "PLAYEDALLSORT", SORTFUNCTION_TYPE_GUILD_TOP = "BYGUILD_TOP", SORTFUNCTION_TYPE_GUILD_BOTTOM = "BYGUILD_BTM", COLORFUNCTION_TYPE_XP = "XPCOLOR", COLORFUNCTION_TYPE_PLAYED = "PLAYEDCOLOR", COLORFUNCTION_TYPE_KARMA = "KARMACOLOR", COLORFUNCTION_TYPE_CLASS = "CLASSCOLOR", COLORFUNCTION_TYPE_XPALL = "XPALLCOLOR", COLORFUNCTION_TYPE_PLAYEDALL = "PLAYEDALLCOLOR", COLORFUNCTION_TYPE_XPLVL = "XPLVLCOLOR"; COLORFUNCTION_TYPE_XPLVLALL = "XPLVLALLCOLOR"; }; function KCfg.EqualsIndirect(sValueA, sValueBName) local sValueB = KARMA_VALUES[sValueBName]; if (sValueB) then return sValueA == sValueB; end end function KCfg.SetIndirect(sCfgName, sValueName) if (type(sValueName) ~= "string") then KarmaChatDebug("Oops? Requested to set <nil> indirect value. Doh! >> " .. debugstack()); return end local sValue = KARMA_VALUES[sValueName]; if (sValue) then KCfg.Set(sCfgName, sValue); else KarmaChatDebug("Oops? Requested to set unknown indirect value. Doh! >> " .. debugstack()); end end