diff --git a/Lailloken UI.ahk b/Lailloken UI.ahk index 718f7384..f34d39dc 100644 --- a/Lailloken UI.ahk +++ b/Lailloken UI.ahk @@ -168,7 +168,7 @@ Exit() If !vars.poe_version && IsNumber(timer.current_split) && (timer.current_split != timer.current_split0) IniWrite, % vars.leveltracker.timer.current_split, ini\leveling tracker.ini, % "current run" settings.leveltracker.profile, time - If !vars.poe_version && vars.maptracker.map.date_time + If vars.maptracker.map.date_time Maptracker_Save() } @@ -472,6 +472,10 @@ Init_vars() vars.client := {} vars.GUI := [] vars.omnikey := {} + vars.omnikey.poedb := {"Claws": 1,"Daggers": 1, "Wands": 1, "One Hand Swords": 1, "One Hand Axes": 1, "One Hand Maces": 1, "Sceptres": 1, "Spears": 1, "Flails": 1 + , "Bows": 1, "Staves": 1, "Two Hand Swords": 1, "Two Hand Axes": 1, "Two Hand Maces": 1, "Quarterstaves": 1, "Crossbows": 1, "Traps": 1 + , "Amulets": 1, "Rings": 1, "Belts": 1, "Gloves": 2, "Boots": 2, "Body Armours": 2, "Helmets": 2 + , "Quivers": 1, "Foci": 1, "Shields": 2, "Jewels": 1, "Life Flasks": 1, "Mana Flasks": 1, "Charms": 1} vars.leveltracker := {} vars.lang := {}, vars.lang2 := {} vars.log := {} ;store data related to the game's log here @@ -1046,7 +1050,7 @@ Loop_main() location := vars.log.areaID ;short-cut variable If (vars.cloneframes.enabled && ((settings.cloneframes.pixelchecks && Screenchecks_PixelSearch("gamescreen")) || !settings.cloneframes.pixelchecks)) ;user is on gamescreen, or auto-toggle is disabled - && (!settings.cloneframes.hide || (settings.cloneframes.hide && !InStr(location, "hideout") && !InStr(location, "_town") && !InStr(location, "heisthub") && (location != "login"))) ;outside hideout/town/login, or auto-toggle is disabled + && (!settings.cloneframes.hide || (settings.cloneframes.hide && !LLK_StringCompare(location, ["hideout"]) && !InStr(location, "_town") && !InStr(location, "heisthub") && (location != "login"))) ;outside hideout/town/login, or auto-toggle is disabled && !vars.sanctum.active || (vars.settings.active = "clone-frames") ;accessing the clone-frames section of the settings Cloneframes_Show() diff --git a/README.md b/README.md index e4c7bcd9..ebfd2ada 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ## About: -A light-weight AHK script with UI and QoL features for Path of Exile, emphasizing ease-of-use, minimalist design, low hotkey requirements, and seamless integration into the game-client. **`This project is not affiliated with or endorsed by Grinding Gear Games (GGG) in any way`**. +A light-weight AHK script with UI and QoL features for Path of Exile 1 and 2, emphasizing ease-of-use, minimalist design, low hotkey requirements, and seamless integration into the game-client. **`This project is not affiliated with or endorsed by Grinding Gear Games (GGG) in any way`**.
## Download & Setup @@ -7,8 +7,8 @@ A light-weight AHK script with UI and QoL features for Path of Exile, emphasizin |---|---|---|---| ## Contributions -| [![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/_translations.png)](https://github.com/Lailloken/Lailloken-UI/discussions/326) | [![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/_issues.png)](https://github.com/Lailloken/Lailloken-UI/issues/339) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/_code.png) | -|---|---|---| +| [![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/_issues.png)](https://github.com/Lailloken/Lailloken-UI/issues/339) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/_code.png) | +|---|---|
## Context: What is this project? @@ -56,12 +56,14 @@ A light-weight AHK script with UI and QoL features for Path of Exile, emphasizin
### [Clone-frames](https://github.com/Lailloken/Lailloken-UI/wiki/Clone-frames): pseudo interface-customization, functionally similar to 'Weakauras' +**`Path of Exile 2 compatible`** | example: rage meter | example: cooldowns / charges | example: flask status | |---|---|---| | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/cloneframes_001.jpg) | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/cloneframes_002.jpg) | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/cloneframes_003.jpg) |
-### [Item-info](https://github.com/Lailloken/Lailloken-UI/wiki/Item-info): compact & customizable tooltip to determine loot quality at a glance +### [Item-info](https://github.com/Lailloken/Lailloken-UI/wiki/Item-info): compact & customizable tooltip to determine loot quality at a glance +**`Path of Exile 2 compatible (but limited by the game's clipboard-copy)`** | example: rare | example: unique| example: anointed | |---|---|---| | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/iteminfo_001.png) | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/iteminfo_002.png) | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/iteminfo_003.png) | @@ -92,23 +94,27 @@ A light-weight AHK script with UI and QoL features for Path of Exile, emphasizin
### [Context-menu](https://github.com/Lailloken/Lailloken-UI/wiki/Minor-Features) for items: single-hotkey access to features and popular 3rd-party websites +**`Path of Exile 2 compatible`** | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/contextmenu_001.jpg) | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/contextmenu_002.jpg) | ![img](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/contextmenu_003.jpg) | |---|---|---|
### \*[Map-Tracker](https://github.com/Lailloken/Lailloken-UI/wiki/Map%E2%80%90Tracker): collect, save, view, and export mapping-related data for statistical analysis +**`Path of Exile 2 compatible`** | in-game log viewer | |---| | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/maptracker_001.png) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/maptracker_002.png) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/maptracker_003.png) |
### Overhauled [map-info panel](https://github.com/Lailloken/Lailloken-UI/wiki/Map-info-panel): streamlined & customizable map-mod tooltip and panel +**`Path of Exile 2 compatible`** | tooltip for rolling maps | re-check mods on demand in maps | search/pin mods for quick access when switching builds | |---|---|---| | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/mapinfo_001.png) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/mapinfo_002.png) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/mapinfo_003.png) |
### [Search-strings](https://github.com/Lailloken/Lailloken-UI/wiki/Search-strings): customizable, single-hotkey menu for every individual in-game search +**`Path of Exile 2 compatible`** | built-in: beast-crafting | example: Gwennen | example: vendor | |---|---|---| | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/searchstrings_001.jpg) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/searchstrings_002.jpg) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/searchstrings_003.jpg) | @@ -118,10 +124,12 @@ A light-weight AHK script with UI and QoL features for Path of Exile, emphasizin | essence tooltip to check the next tier's stats | orb of horizons tooltips | countdown & stopwatch | |---|---|---| | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/qol_001.png) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/qol_002.png) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/qol_003.png) | +||| **Path of Exile 2 compatible** | | in-client notepad & sticky-notes | quick-access overlay and tracker for casual lab-runs | |---|---| | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/qol_004.png) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/qol_005.jpg) | +| **Path of Exile 2 compatible** ||
### [Seed-explorer](https://github.com/Lailloken/Lailloken-UI/wiki/Seed-explorer): in-client UI to quickly test a legion jewel in every socket @@ -131,6 +139,7 @@ A light-weight AHK script with UI and QoL features for Path of Exile, emphasizin
### [Cheat-sheet Overlay Toolkit](https://github.com/Lailloken/Lailloken-UI/wiki/Cheat-sheet-Overlay-Toolkit): create customizable, context-sensitive overlays +**`Path of Exile 2 compatible`** | image overlay | app "overlay" | custom/advanced overlay | |---|---|---| | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/cheatsheets_001.jpg) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/cheatsheets_002.jpg) | ![image](https://raw.githubusercontent.com/Lailloken/Lailloken-UI/main/img/readme/cheatsheets_003.jpg) | @@ -158,6 +167,8 @@ A light-weight AHK script with UI and QoL features for Path of Exile, emphasizin ### Acknowledgements - `item-info` uses a custom version of [Path of Building's](https://github.com/PathOfBuildingCommunity/PathOfBuilding) datamined resources +- several features use data provided by poedb + - `leveling tracker` uses leveling guides generated via [exile-leveling](https://github.com/HeartofPhos/exile-leveling) and was implemented with the help of its maintainer - `stash-ninja` uses price-data provided by [poe.ninja](https://poe.ninja/), and bulk-exchange support was implemented with [BocikPG](https://github.com/BocikPG)'s help diff --git a/data/changelog.json b/data/changelog.json index 7061759a..fec9c76c 100644 --- a/data/changelog.json +++ b/data/changelog.json @@ -1,4 +1,11 @@ [ + [ + ["1.56.2", 15602], + "still beta, mainly poe2 changes", + "item-info: now poe2 compatible (but limited)", + "map-tracker: now poe2 compatible", + "omni-key context menu: added poe2db links" + ], [ ["1.56.1", 15601], "still beta, mainly poe2 changes", diff --git a/data/english/client.txt b/data/english/client.txt index ddcb50ac..b93bd2f8 100644 --- a/data/english/client.txt +++ b/data/english/client.txt @@ -190,6 +190,11 @@ log_expedition = "Rog:" ;## for some reason, Rog is always displayed as simply "Rog", regardless of when he speaks (at least in English) log_expedition = "Tujen, the Haggler:" + log_expedition 2 = "Dannig:" ;## PoE2 only displays the names + log_expedition 2 = "Gwennen:" + log_expedition 2 = "Rog:" + log_expedition 2 = "Tujen:" + ;##################################################### diff --git a/data/english/help tooltips.json b/data/english/help tooltips.json index 922dca5c..360873cc 100644 --- a/data/english/help tooltips.json +++ b/data/english/help tooltips.json @@ -50,7 +50,7 @@ ], "ascendancy": [ "the game only logs ascendancies when a character levels up", - "this label will be out of sync if you have recently (re)specced but not leveled up yet" + "this label will be out of sync if you have recently (re)specced but not leveled up yet: in that case, click the refresh button on the left" ], "active build": [ "optional: type in a name/description of your build and press ", @@ -247,6 +247,14 @@ "adds the ilvl requirement to each mod, which exposes high-tier but low-lvl mods", "this option caters more to advanced users because it adds even more information" ], + "iteminfo marking global": [ + "colors used to highlight globally (un)desired mods", + "click a box to open the color-palette, right click to reset" + ], + "iteminfo marking class": [ + "colors used to highlight class-specificly (un)desired mods", + "click a box to open the color-palette, right click to reset" + ], "iteminfo item-tier": [ "click a box to open the color-palette, right click to reset", " refers to fractured, <#> to untiered mods", @@ -256,7 +264,8 @@ "click a box to open the color-palette, right click to reset" ], "iteminfo override": [ - "undesired mods will always be highlighted like t6 ones, except fractured ones" + "tiers/ilvl on undesired mods (except fractured) will be highlighted by the color instead of the usual color", + "this will also hide icons on undesired mods to improve visual clarity" ], "iteminfo rules": [ "single-click solution to mark larger mod groups as (un)desired", @@ -995,6 +1004,9 @@ "supported inputs:\n\"xyz\" (search), \"!abc\" (exclude), \"xyz !abc\" (search xyz, exclude abc), \"abc, xyz, ...\" (search abc, and xyz, ...)", "you can search for mods and also general rolls, e.g. \"100q\" for 100% quantity\n(for general rolls, it will always search for \"x and above\")" ], + "logviewer search mapinfo 2": [ + "supported inputs:\n\"xyz\" (search), \"!abc\" (exclude), \"xyz !abc\" (search xyz, exclude abc), \"abc, xyz, ...\" (search abc, and xyz, ...)" + ], "logviewer header mapinfo": [ "mods rolled on a map (optional, has to be enabled first):\nclick highlighted cells in this column to view a list of logged mods", "header is clickable for searching:\nclick to paste \"yes\" into the search, r-click to paste \"no\", double-(r-)click to search immediately" @@ -1017,6 +1029,9 @@ "supported inputs:\n\"xyz\" (search), \"!abc\" (exclude), \"xyz !abc\" (search xyz, exclude abc), \"abc, xyz, ...\" (search abc, and xyz, ...)", "available short-hand inputs: \"elder\" for elder guardians, \"sirus\" for conquerors" ], + "logviewer search content 2": [ + "supported inputs:\n\"xyz\" (search), \"!abc\" (exclude), \"xyz !abc\" (search xyz, exclude abc), \"abc, xyz, ...\" (search abc, and xyz, ...)" + ], "logviewer header content": [ "side-content you encountered in a map (optional, has to be enabled first)", "header & icons are clickable for searching:\nclick to paste \"\" into the search, r-click to paste \"!\", double-(r-)click to search immediately" diff --git a/data/versions.json b/data/versions.json index 021c5e00..27cbc574 100644 --- a/data/versions.json +++ b/data/versions.json @@ -1,3 +1,3 @@ { - "_release": [15601, "https://github.com/Lailloken/Lailloken-UI/archive/refs/heads/main.zip"] + "_release": [15602, "https://github.com/Lailloken/Lailloken-UI/archive/refs/heads/main.zip"] } \ No newline at end of file diff --git a/modules/client log.ahk b/modules/client log.ahk index c81a9628..a3318a86 100644 --- a/modules/client log.ahk +++ b/modules/client log.ahk @@ -66,6 +66,8 @@ Loop, Parse, % vars.log.parsing, `,, %A_Space% If Blank(vars.log[A_LoopField]) && !Blank(%A_LoopField%) vars.log[A_LoopField] := %A_LoopField% + If vars.poe_version && Blank(vars.log.areaname) && !Blank(areaID) + vars.log.areaname := Log_Get(areaID, "areaname") vars.log.level := !vars.log.level ? 0 : vars.log.level, settings.general.lang_client := settings.general.lang_client ? settings.general.lang_client : "unknown" If !mode vars.log.access_time := A_TickCount - start @@ -203,6 +205,24 @@ Log_FindLines(log_array, data) Return found } +Log_Get(log_text, data) +{ + local + + If (data = "areaname") + If !LLK_StringCompare(log_text, ["map"]) + %data% := log_text + Else + { + If RegExMatch(log_text, "Hideout.*_Claimable") + Return LLK_StringCase(StrReplace(StrReplace(log_text, "_claimable"), "maphideout") . " hideout") + %data% := StrReplace(SubStr(log_text, 4), "_noboss") . (!InStr(log_text, "_noboss") && !InStr(log_text, "unique") && !InStr(log_text, "losttowers") ? " (boss)" : "") + Loop, Parse, % %data% + %data% := (A_Index = 1) ? "" : %data%, %data% .= (A_Index != 1 && RegExMatch(A_LoopField, "[A-Z]") ? " " : "") . A_LoopField + } + Return LLK_StringCase(%data%) +} + Log_Loop(mode := 0) { local @@ -218,9 +238,6 @@ Log_Loop(mode := 0) Alarm("", "", vars.alarm.toggle ? "" : expired) } - If vars.poe_version && !vars.cloneframes.enabled - Return - If vars.log.file_location ;for the unlikely event where the user manually deletes the client.txt while the tool is still running If IsObject(vars.log.file) && !FileExist(vars.log.file_location) vars.log.file.Close(), vars.log.file := "" @@ -244,12 +261,14 @@ Log_Loop(mode := 0) If !Blank(%A_LoopField%) vars.log[A_LoopField] := %A_LoopField% If (A_Index = 1) && !Blank(%A_LoopField%) - vars.log.areaname := "" ;make it blank because there sometimes is a desync between it and areaID, i.e. they are parsed in two separate loop-ticks + If !vars.poe_version + vars.log.areaname := "" ;make it blank because there sometimes is a desync between it and areaID, i.e. they are parsed in two separate loop-ticks + Else vars.log.areaname := Log_Get(areaID, "areaname") } If settings.features.leveltracker && !LLK_HasVal(vars.leveltracker.guide.group1, "an_end_to_hunger", 1) && !InStr(vars.log.areaID, "labyrinth_") && (!Blank(areaID) && (areaID != vars.leveltracker.guide.target_area) || IsNumber(level) && (level0 != level)) && LLK_Overlay(vars.hwnd.leveltracker.main, "check") ;player has leveled up or moved to a different location: update overlay for zone-layouts, exp-gain, and act clarifications Leveltracker_Progress() - If settings.qol.alarm && (areaID = "1_1_1") && IsNumber(StrReplace((check := LLK_HasVal(vars.alarm.timers, "oni", 1)), "|")) ;for oni-goroshi farming: re-entering Twilight Strand resets timer to 0:00 + If !vars.poe_version && settings.qol.alarm && (areaID = "1_1_1") && IsNumber(StrReplace((check := LLK_HasVal(vars.alarm.timers, "oni", 1)), "|")) ;for oni-goroshi farming: re-entering Twilight Strand resets timer to 0:00 vars.alarm.timers.Delete(check), vars.alarm.timers[A_Now "|"] := "oni" If settings.qol.lab && InStr(areaID, "labyrinth_airlock") ;entering Aspirants' Plaza: reset previous lab-progress (if there is any) @@ -277,7 +296,7 @@ Log_Loop(mode := 0) Settings_menu("general",, 0) } - If mode || vars.poe_version + If mode Return If settings.qol.lab && InStr(vars.log.areaID, "labyrinth_") && !InStr(vars.log.areaID, "Airlock") && vars.log.areaseed && vars.lab.rooms.Count() && !vars.lab.rooms[vars.lab.room.1].seed @@ -286,7 +305,7 @@ Log_Loop(mode := 0) If settings.features.leveltracker && (A_TickCount > vars.leveltracker.last_manual + 2000) && vars.hwnd.leveltracker.main && (vars.log.areaID = vars.leveltracker.guide.target_area) && !vars.leveltracker.fast ;advance the guide when entering target-location vars.leveltracker.guide.target_area := "", Leveltracker(vars.log.areaID = "login" ? "mule" : "+") - If settings.features.mapinfo && vars.mapinfo.expedition_areas && vars.log.areaname && !Blank(LLK_HasVal(vars.mapinfo.expedition_areas, vars.log.areaname)) && !vars.mapinfo.active_map.expedition_filter + If !vars.poe_version && settings.features.mapinfo && vars.mapinfo.expedition_areas && vars.log.areaname && !Blank(LLK_HasVal(vars.mapinfo.expedition_areas, vars.log.areaname)) && !vars.mapinfo.active_map.expedition_filter { Loop, % vars.mapinfo.categories.Count() { @@ -300,16 +319,17 @@ Log_Loop(mode := 0) Maptracker_Timer() Leveltracker_Timer() - If settings.leveltracker.geartracker && vars.leveltracker.gear_ready && (vars.leveltracker.gear_ready != vars.leveltracker.gear_counter) - { - GuiControl, Text, % vars.hwnd.LLK_panel.leveltracker_text, % vars.leveltracker.gear_ready - vars.leveltracker.gear_counter := vars.leveltracker.gear_ready - } - Else If (!vars.leveltracker.gear_ready || !settings.leveltracker.geartracker) && vars.leveltracker.gear_counter - { - GuiControl, Text, % vars.hwnd.LLK_panel.leveltracker_text, % "" - vars.leveltracker.gear_counter := 0 - } + If !vars.poe_version + If settings.leveltracker.geartracker && vars.leveltracker.gear_ready && (vars.leveltracker.gear_ready != vars.leveltracker.gear_counter) + { + GuiControl, Text, % vars.hwnd.LLK_panel.leveltracker_text, % vars.leveltracker.gear_ready + vars.leveltracker.gear_counter := vars.leveltracker.gear_ready + } + Else If (!vars.leveltracker.gear_ready || !settings.leveltracker.geartracker) && vars.leveltracker.gear_counter + { + GuiControl, Text, % vars.hwnd.LLK_panel.leveltracker_text, % "" + vars.leveltracker.gear_counter := 0 + } } Log_Parse(content, ByRef areaID, ByRef areaname, ByRef areaseed, ByRef arealevel, ByRef areatier, ByRef act, ByRef level, ByRef date_time, ByRef character_class) @@ -326,8 +346,10 @@ Log_Parse(content, ByRef areaID, ByRef areaname, ByRef areaseed, ByRef arealevel date_time := SubStr(loopfield, 1, InStr(loopfield, " ",,, 2) - 1) act := db.leveltracker.areas[areaID].act ;store current act arealevel := parse := SubStr(loopfield, InStr(loopfield, "level ") + 6, InStr(loopfield, " area """) - InStr(loopfield, "level ") - 6) - If (parse - 67 > 0) + If !vars.poe_version && (parse - 67 > 0) areatier := (parse - 67 < 10 ? "0" : "") parse - 67 + Else If vars.poe_version && (parse - 64 > 0) + areatier := (parse - 64 < 10 ? "0" : "") parse - 64 Else areatier := arealevel } Else If InStr(loopfield, " connected to ") && InStr(loopfield, ".login.") || InStr(loopfield, "*****") diff --git a/modules/hotkeys.ahk b/modules/hotkeys.ahk index b4100f50..99913887 100644 --- a/modules/hotkeys.ahk +++ b/modules/hotkeys.ahk @@ -277,7 +277,7 @@ Hotkeys_Tab() } map := vars.mapinfo.active_map While settings.features.mapinfo && settings.mapinfo.tabtoggle && map.name && GetKeyState(vars.hotkeys.tab, "P") - && (LLK_HasVal(vars.mapinfo.categories, vars.log.areaname, 1) || InStr(map.name, vars.log.areaname) || InStr(vars.log.areaID, "hideout") || InStr(vars.log.areaID, "heisthub") || InStr(map.english, "invitation") && LLK_PatternMatch(vars.log.areaID, "", ["MavenHub", "PrimordialBoss"])) + && (LLK_HasVal(vars.mapinfo.categories, vars.log.areaname, 1) || (InStr(map.name, vars.log.areaname) || vars.poe_version && LLK_StringCompare(vars.log.areaID, ["map"])) || LLK_StringCompare(vars.log.areaID, ["hideout"]) || InStr(vars.log.areaID, "heisthub") || InStr(map.english, "invitation") && LLK_PatternMatch(vars.log.areaID, "", ["MavenHub", "PrimordialBoss"])) If (A_TickCount >= start + 200) { active .= " mapinfo", vars.mapinfo.toggle := 1, Mapinfo_GUI(2) diff --git a/modules/item-checker.ahk b/modules/item-checker.ahk index 0f01665f..599a239c 100644 --- a/modules/item-checker.ahk +++ b/modules/item-checker.ahk @@ -3,27 +3,24 @@ local global vars, settings, db, Json - If vars.poe_version - Return - If !FileExist("ini" vars.poe_version "\item-checker.ini") IniWrite, % "", % "ini" vars.poe_version "\item-checker.ini", settings If !FileExist("ini" vars.poe_version "\item-checker gear.ini") IniWrite, % "", % "ini" vars.poe_version "\item-checker gear.ini", amulet lang := settings.general.lang_client - If !IsObject(db.anoints) + If !vars.poe_version && !IsObject(db.anoints) db.anoints := Json.Load(LLK_FileRead("data\" (FileExist("data\" lang "\anoints.json") ? lang : "english") "\anoints.json",, "65001")) , db.essences := Json.Load(LLK_FileRead("data\" (FileExist("data\" lang "\essences.json") ? lang : "english") "\essences.json",, "65001")) settings.iteminfo := {}, ini := IniBatchRead("ini" vars.poe_version "\item-checker.ini") settings.iteminfo.profile := !Blank(check := ini.settings["current profile"]) ? check : 1 - settings.iteminfo.modrolls := !Blank(check := ini.settings["hide roll-ranges"]) ? check : 1 + settings.iteminfo.modrolls := !Blank(check := ini.settings["hide roll-ranges"]) ? check : (vars.poe_version ? 0 : 1) settings.iteminfo.trigger := !Blank(check := ini.settings["enable wisdom-scroll trigger"]) ? check : 0 - settings.iteminfo.ilvl := (settings.general.lang_client != "english") ? 0 : !Blank(check := ini.settings["enable item-levels"]) ? check : 0 - settings.iteminfo.itembase := !Blank(check := ini.settings["enable base-info"]) ? check : 1 - settings.iteminfo.override := !Blank(check := ini.settings["enable blacklist-override"]) ? check : 0 - settings.iteminfo.compare := (settings.general.lang_client != "english") ? 0 : !Blank(check := ini.settings["enable gear-tracking"]) ? check : 0 + settings.iteminfo.ilvl := (settings.general.lang_client != "english") || vars.poe_version ? 0 : !Blank(check := ini.settings["enable item-levels"]) ? check : 0 + settings.iteminfo.itembase := !Blank(check := ini.settings["enable base-info"]) ? check : (vars.poe_version ? 0 : 1) + settings.iteminfo.override := !Blank(check := ini.settings["enable blacklist-override"]) ? check : (vars.poe_version ? 1 : 0) + settings.iteminfo.compare := (settings.general.lang_client != "english") || vars.poe_version ? 0 : !Blank(check := ini.settings["enable gear-tracking"]) ? check : 0 settings.iteminfo.rules := {} settings.iteminfo.rules.res_weapons := (settings.general.lang_client != "english") ? 0 : !Blank(check := ini.settings["weapon res override"]) ? check : 0 @@ -36,10 +33,10 @@ settings.iteminfo.fSize := !Blank(check := ini.settings["font-size"]) ? check : settings.general.fSize LLK_FontDimensions(settings.iteminfo.fSize, height, width), settings.iteminfo.fWidth := width, settings.iteminfo.fHeight := height - settings.iteminfo.dColors_tier := ["00bb00", "008000", "ffff00", "ff8c00", "ff4040", "aa0000", "00eeee"] - settings.iteminfo.dColors_tier[0] := "3399ff" - settings.iteminfo.colors_tier := [], settings.iteminfo.colors_ilvl := [] - settings.iteminfo.dColors_ilvl := ["ffffff", "00bb00", "008000", "ffff00", "ff8c00", "ff4040", "aa0000", "ff00ff"] + settings.iteminfo.dColors_marking := ["00FF00", "990000", "00FFFF", "FF00FF"] + settings.iteminfo.dColors_tier := ["00FF00", "006600", "FFFF00", "FF8000", "FF3333", "990000", "00FFFF"], settings.iteminfo.dColors_tier[0] := "3399ff" + settings.iteminfo.colors_tier := [], settings.iteminfo.colors_ilvl := [], settings.iteminfo.colors_marking := [] + settings.iteminfo.dColors_ilvl := ["FFFFFF", "00FF00", "006600", "FFFF00", "FF8000", "FF3333", "990000", "FF00FF"] settings.iteminfo.ilevels := ["80", "70", "60", "50", "40", "30", "20", "10"] Loop 8 ;load custom colors @@ -47,6 +44,8 @@ settings.iteminfo.colors_tier[A_Index - 1] := !Blank(check := ini.UI[(A_Index = 8) ? "fractured" : "tier " A_Index - 1]) ? check : settings.iteminfo.dColors_tier[A_Index - 1] settings.iteminfo.colors_ilvl[A_Index] := !Blank(check := ini.UI["ilvl tier " A_Index]) ? check : settings.iteminfo.dColors_ilvl[A_Index] } + For index, val in ["desired", "undesired", "desired class", "undesired class"] + settings.iteminfo.colors_marking[index] := !Blank(check := ini.UI[val " highlighting"]) ? check : settings.iteminfo.dColors_marking[index] If !IsObject(vars.iteminfo) ;only do this when the function is called for the very first time (i.e. at startup) ;this function is used whenever major features are toggled on/off { @@ -241,14 +240,22 @@ Iteminfo(refresh := 0) ; refresh: 1 to refresh it normally, 2 for clipboard pars If (refresh = 2) Return - If !db.item_bases.HasKey(item.class) || (item.itembase = "Timeless Jewel") ;|| (item.name = "Impossible Escape") + If !vars.poe_version && !db.item_bases.HasKey(item.class) || (item.itembase = "Timeless Jewel") || vars.poe_version && (item.rarity = "unique" || !vars.omnikey.poedb[item.class]) ;|| (item.name = "Impossible Escape") { LLK_ToolTip(Lang_Trans("ms_item-info") ":`n" Lang_Trans("iteminfo_unsupported"), 2,,,, "red"), LLK_Overlay(vars.hwnd.iteminfo.main, "destroy") Return } - Iteminfo_Stats() ;calculate data related to base-stats (defenses) - Iteminfo_Mods() ;parse item's mods + If vars.poe_version + { + Iteminfo_Stats2() + Iteminfo_Mods2() + } + Else + { + Iteminfo_Stats() ;calculate data related to base-stats (defenses) + Iteminfo_Mods() ;parse item's mods + } Iteminfo_GUI() ;use parsed data to build the tooltip } @@ -490,6 +497,94 @@ Iteminfo_Stats() } } +Iteminfo_Stats2() +{ + local + global vars, settings + + clip := vars.iteminfo.clipboard, item := vars.iteminfo.item, defenses := {} + Loop, Parse, clip, `n, `r ;get the raw defense values and store them + { + If InStr(A_LoopField, Lang_Trans("items_armour")) + defenses.armor := StrReplace(SubStr(A_LoopField, InStr(A_LoopField, ": ") + 2), " (augmented)") + If InStr(A_LoopField, Lang_Trans("items_evasion")) + defenses.evasion := StrReplace(SubStr(A_LoopField, InStr(A_LoopField, ": ") + 2), " (augmented)") + If InStr(A_LoopField, Lang_Trans("items_energy")) + defenses.energy := StrReplace(SubStr(A_LoopField, InStr(A_LoopField, ": ") + 2), " (augmented)") + If InStr(A_LoopField, Lang_Trans("items_ward")) + defenses.ward := StrReplace(SubStr(A_LoopField, InStr(A_LoopField, ": ") + 2), " (augmented)") + If InStr(A_LoopField, Lang_Trans("items_requirements")) + break + } + + If InStr(clip, Lang_Trans("items_aps")) + item.type := "attack" + Else If defenses.armor || defenses.evasion || defenses.energy || defenses.ward + item.type := "defense" + Else If InStr("rings,belts,amulets,", item.class) || InStr(item.class, "jewels") + item.type := "jewelry" + Else item.type := "" + + If (item.type = "attack") + { + phys_dmg := pdps := ele_count := ele_dmg := ele_dmg1 := ele_dmg2 := ele_dmg3 := edps0 := chaos_dmg := cdps := speed := 0 + Loop, Parse, clip, `n, `r + { + If InStr(A_LoopField, Lang_Trans("items_phys_dmg")) + phys_dmg := SubStr(StrReplace(A_LoopField, " (augmented)"), InStr(A_LoopField, ":") + 2) + Else If InStr(A_LoopField, Lang_Trans("items_chaos_dmg")) + chaos_dmg := SubStr(StrReplace(A_LoopField, " (augmented)"), InStr(A_LoopField, ":") + 2) + Else If InStr(A_LoopField, " damage:") + { + ele_dmg := SubStr(StrReplace(A_LoopField, " (augmented)"), InStr(A_LoopField, ":") + 2) + Loop, Parse, ele_dmg, % "," + ele_count += 1, ele_dmg%ele_count% := A_LoopField + } + + If InStr(A_LoopField, Lang_Trans("items_aps")) + { + speed := SubStr(StrReplace(A_LoopField, " (augmented)"), InStr(A_LoopField, ":") + 2) + break + } + } + If phys_dmg + { + Loop, Parse, phys_dmg, % "-" + phys%A_Index% := A_LoopField + pdps := Format("{:0.2f}", ((phys1+phys2)/2)*speed) + } + If ele_dmg + { + edps2 := 0 + edps3 := 0 + Loop, Parse, ele_dmg1, % "-" + ele_dmg1_%A_Index% := A_LoopField + edps1 := ((ele_dmg1_1+ele_dmg1_2)/2)*speed + If ele_dmg2 + { + Loop, Parse, ele_dmg2, % "-" + ele_dmg2_%A_Index% := A_LoopField + edps2 := ((ele_dmg2_1+ele_dmg2_2)/2)*speed + } + If ele_dmg3 + { + Loop, Parse, ele_dmg3, % "-" + ele_dmg3_%A_Index% := A_LoopField + edps3 := ((ele_dmg3_1+ele_dmg3_2)/2)*speed + } + edps0 := Format("{:0.2f}", edps1 + edps2 + edps3) + } + If chaos_dmg + { + Loop, Parse, chaos_dmg, % "-" + chaos_dmg%A_Index% := A_LoopField + cdps := Format("{:0.2f}", ((chaos_dmg1+chaos_dmg2)/2)*speed) + } + item.dps := {"total": Format("{:0.2f}", pdps + edps0 + cdps), "phys": pdps, "ele": edps0, "chaos": cdps, "speed": speed} + item.dps0 := {"cdps": cdps, "pdps": pdps, "edps": edps0, "speed": speed, "dps": pdps + edps0 + cdps} ;secondary object for dps-comparison that uses a very rigid format (ini-format) + } +} + Iteminfo_Mods() { local @@ -697,6 +792,28 @@ Iteminfo_Mods() vars.iteminfo.clipboard2 := clip2 } +Iteminfo_Mods2() +{ + local + global vars, settings + + clip := vars.iteminfo.clipboard, item := vars.iteminfo.item + clip2 := SubStr(clip, InStr(clip, Lang_Trans("items_ilevel"))), clip2 := SubStr(clip2, InStr(clip2, "--`r`n") + 4), clip2 := Trim(LLK_StringCase(clip2), " `r`n") + + Loop, Parse, clip2, `n, % "`r " + { + If (A_Index = 1) + clip2 := "" + If clip2 && InStr(A_LoopField, "---") + Break + If LLK_PatternMatch(A_LoopField, "", ["(", "---"]) + Continue + clip2 .= (!clip2 ? "" : "|") A_LoopField + } + + vars.iteminfo.clipboard2 := clip2 +} + Iteminfo_GUI() { local @@ -1031,7 +1148,7 @@ Iteminfo_GUI() ;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ;////////////////////////////////////////// implicit area - tColors := settings.iteminfo.colors_tier, iColors := settings.iteminfo.colors_ilvl ;short-cut variables + tColors := settings.iteminfo.colors_tier, iColors := settings.iteminfo.colors_ilvl, mColors := settings.iteminfo.colors_marking ;short-cut variables For index, implicit in item.implicits ;add segments to the GUI { ;determine if there's a suitable icon for the implicit @@ -1062,7 +1179,7 @@ Iteminfo_GUI() highlight := Iteminfo_ModHighlight(implicit, 0, 1) If !highlight ;mod is neither desired nor undesired color := "Black" - Else color := (highlight = 1) ? tColors.1 : tColors.6 + Else color := (highlight = 1) ? mColors.1 : mColors.2 color1 := (color = "Black") ? "White" : "Black" Gui, %GUI_name%: Add, Text, % "xs Center Hidden Border w"UI.wSegment*(UI.segments - 1.25) " HWNDhwnd c"color1, % Iteminfo_ModRemoveRange(implicit) ;add hidden text label as dummy to get the correct height @@ -1125,7 +1242,7 @@ Iteminfo_GUI() highlight := Iteminfo_ModHighlight(StrReplace(item.cluster.enchant, "`n", ";"), 0, 1) If (highlight = 0) ;mod is neither desired nor undesired color := "Black" - Else color := (highlight = 1) ? tColors.1 : tColors.6 ;determine which is the case + Else color := (highlight = 1) ? mColors.1 : mColors.2 ;determine which is the case Gui, %GUI_name%: Add, Text, % "xs Section Border Hidden Center BackgroundTrans w"UI.wSegment*(UI.segments - 1.25) " cWhite HWNDmain_text", % item.cluster.enchant ;dummy panel to get the correct height GuiControlGet, check_, Pos, %main_text% @@ -1152,7 +1269,7 @@ Iteminfo_GUI() roll_stats := [], roll_colors := {0: tColors[1], 10: tColors[2], 20: tColors[3], 30: tColors[4], 40: tColors[5], 50: tColors[6]} Loop, Parse, clip2, | ;parse the item-info affix by affix { - If (item.class != "base jewels") + If !vars.poe_version && (item.class != "base jewels") tier := unique ? "u" : InStr(A_LoopField, Lang_Trans("items_tier")) ? SubStr(A_LoopField, InStr(A_LoopField, Lang_Trans("items_tier")) + StrLen(Lang_Trans("items_tier")) + 1, 2) : InStr(A_LoopField, "(crafted)") ? "c" : "#", tier := InStr(tier, ")") ? StrReplace(tier, ")") : tier ;determine affix tier for non-jewel items Else tier := "?" @@ -1257,7 +1374,7 @@ Iteminfo_GUI() Else ;add (un)desired rectangle for non-uniques { highlights .= highlight := Iteminfo_ModHighlight(A_LoopField) ;highlights = (un)desired highlighting for the whole mod-group, highlight = highlighting for the single part - color := !highlight ? "Black" : (highlight = -2) ? iColors.8 : (highlight = -1) ? tColors.6 : (highlight = 1) ? tColors.1 : tColors.7 ;determine the right color + color := !highlight ? "Black" : (highlight = -2) ? mColors.4 : (highlight = -1) ? mColors.2 : (highlight = 1) ? mColors.1 : mColors.3 ;determine the right color Gui, %GUI_name%: Add, Text, % "ys hp w"UI.wSegment/4 " Border BackgroundTrans Center", % " " ;add the rectangle Gui, %GUI_name%: Add, Progress, % "xp yp wp hp HWNDhwnd Disabled Border BackgroundBlack c"color, 100 ;color the rectangle vars.hwnd.iteminfo[StrReplace(StrReplace(A_LoopField, " (crafted)"), " (fractured)")] := hwnd ;store the rectangle's HWND and include the mod-text @@ -1274,17 +1391,17 @@ Iteminfo_GUI() If InStr(A_LoopField, " (fractured)") { color := tColors.7 ;fractured mods have a specific color - If InStr(highlights, "+",,, LLK_InStrCount(A_LoopField, "`n")) && ((tier = 1) || item.class = "base jewels") ;if the fractured mod is also desired, add red highlighting to the text and make it bold + If InStr(highlights, "+",,, vars.poe_version ? 1 : LLK_InStrCount(A_LoopField, "`n")) && ((tier = 1) || item.class = "base jewels") ;if the fractured mod is also desired, add red highlighting to the text and make it bold { color_t := "Red" Gui, %GUI_name%: Font, bold } } - Else If InStr(highlights, "-",,, LLK_InStrCount(A_LoopField, "`n")) && settings.iteminfo.override ;if the override-option is enabled and the mod is undesired, apply t6 color - color := tColors.6 - Else If InStr(highlights, "+",,, LLK_InStrCount(A_LoopField, "`n")) && (item.class = "base jewels") ;if the item is a base/generic jewel and the mod is desired, override cell colors with t1 color - color := tColors.1 - Else If InStr(highlights, "+",,, LLK_InStrCount(A_LoopField, "`n")) && (tier = 1 || tier = "#") ;if the mod is desired and t1 or untiered, apply white background and red text (Neversink's t1 color-scheme) + Else If InStr(highlights, "-",,, vars.poe_version ? 1 : LLK_InStrCount(A_LoopField, "`n")) && settings.iteminfo.override ;if the override-option is enabled and the mod is undesired, apply t6 color + color := mColors.2 + Else If InStr(highlights, "+",,, vars.poe_version ? 1 : LLK_InStrCount(A_LoopField, "`n")) && (item.class = "base jewels") ;if the item is a base/generic jewel and the mod is desired, override cell colors with t1 color + color := mColors.1 + Else If InStr(highlights, "+",,, vars.poe_version ? 1 : LLK_InStrCount(A_LoopField, "`n")) && (tier = 1 || tier = "#") ;if the mod is desired and t1 or untiered, apply white background and red text (Neversink's t1 color-scheme) color := "White", color_t := "Red" Else If (item.class = "base jewels") ;for base/generic jewel mods, use shades of gray (lighter shade = lower weight/probability) color := IsNumber(tier) ? 119-tier*2 . 119-tier*2 . 119-tier*2 : "Black", color_t := (tier < 10) ? "Red" : "White" @@ -1292,9 +1409,9 @@ Iteminfo_GUI() label := Iteminfo_ModgroupCheck(name, 1) ? Iteminfo_ModgroupCheck(name, 1) : Iteminfo_ModCheck(mod, item.type), label := InStr(A_LoopField, " (crafted)") ? "mastercraft" : label ;check for suitable icon width := (label || settings.iteminfo.ilvl && item.class != "base jewels" && ilvl != "??") ? UI.wSegment/2 : UI.wSegment ;determine the width of the cell, and whether it needs to be divided into two parts - width := (settings.iteminfo.override && InStr(highlights, "-",,, LLK_InStrCount(A_LoopField, "`n")) && !InStr(A_LoopField, " (fractured)")) ? UI.wSegment : width + width := (settings.iteminfo.override && InStr(highlights, "-",,, vars.poe_version ? 1 : LLK_InStrCount(A_LoopField, "`n")) && !InStr(A_LoopField, " (fractured)")) ? UI.wSegment : width - Gui, %GUI_name%: Add, Text, % "x"x " y"y " h"height " w"width " BackgroundTrans Border 0x200 Center cBlack c"color_t, % tier ;add tier-cell + Gui, %GUI_name%: Add, Text, % "x"x " y"y " h"height " w"width " BackgroundTrans Border 0x200 Center c" (color = "black" ? "White" : color_t), % tier ;add tier-cell Gui, %GUI_name%: Add, Progress, % "xp yp wp hp Border Disabled BackgroundBlack c"color, 100 Gui, %GUI_name%: Font, norm @@ -1694,18 +1811,18 @@ Iteminfo_ModHighlight(string, mode := 0, implicit := 0) ;check if mod is highlig If !highlight[implicit_check].HasKey(string) ;mod is not highlighted: add it to highlighted mods and save { highlight[implicit_check][string] := 1 - IniWrite, % Iteminfo_ModHighlightString(highlight[implicit_check]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % !implicit ? "highlight" : "highlight implicits" + IniWrite, % Iteminfo_ModHighlightString(highlight[implicit_check]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % !implicit ? "highlight" : "highlight implicits" If blacklist[implicit_check].HasKey(string) ;if mod was previously blacklisted, remove it from there and save the blacklist { blacklist[implicit_check].Delete(string) - IniWrite, % Iteminfo_ModHighlightString(blacklist[implicit_check]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % !implicit ? "blacklist" : "blacklist implicits" + IniWrite, % Iteminfo_ModHighlightString(blacklist[implicit_check]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % !implicit ? "blacklist" : "blacklist implicits" } Return 1 } Else ;mod is highlighted: remove it from highlighted mods and save { highlight[implicit_check].Delete(string) - IniWrite, % Iteminfo_ModHighlightString(highlight[implicit_check]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % !implicit ? "highlight" : "highlight implicits" + IniWrite, % Iteminfo_ModHighlightString(highlight[implicit_check]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % !implicit ? "highlight" : "highlight implicits" Return 0 } } @@ -1716,18 +1833,18 @@ Iteminfo_ModHighlight(string, mode := 0, implicit := 0) ;check if mod is highlig If !highlight[item.class_copy].HasKey(string) ;mod is not highlighted: add it to class-specific highlighted mods and save { highlight[item.class_copy][string] := 1 - IniWrite, % Iteminfo_ModHighlightString(highlight[item.class_copy]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % "highlight "item.class_copy + IniWrite, % Iteminfo_ModHighlightString(highlight[item.class_copy]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % "highlight "item.class_copy If blacklist[item.class_copy].HasKey(string) ;if mod was previously blacklisted, remove it from there and save the blacklist { blacklist[item.class_copy].Delete(string) - IniWrite, % Iteminfo_ModHighlightString(blacklist[item.class_copy]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % "blacklist "item.class_copy + IniWrite, % Iteminfo_ModHighlightString(blacklist[item.class_copy]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % "blacklist "item.class_copy } Return 2 } Else ;mod is highlighted: remove it from class-specific highlighted mods and save { highlight[item.class_copy].Delete(string) - IniWrite, % Iteminfo_ModHighlightString(highlight[item.class_copy]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % "highlight "item.class_copy + IniWrite, % Iteminfo_ModHighlightString(highlight[item.class_copy]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % "highlight "item.class_copy Return 0 } } @@ -1743,18 +1860,18 @@ Iteminfo_ModHighlight(string, mode := 0, implicit := 0) ;check if mod is highlig If !blacklist[implicit_check].HasKey(string) ;mod is not blacklisted: add it to blacklisted mods and save { blacklist[implicit_check][string] := 1 - IniWrite, % Iteminfo_ModHighlightString(blacklist[implicit_check]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % !implicit ? "blacklist" : "blacklist implicits" + IniWrite, % Iteminfo_ModHighlightString(blacklist[implicit_check]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % !implicit ? "blacklist" : "blacklist implicits" If highlight[implicit_check].HasKey(string) ;if mod was previously highlighted, remove it from there and save the highlights { highlight[implicit_check].Delete(string) - IniWrite, % Iteminfo_ModHighlightString(highlight[implicit_check]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % !implicit ? "highlight" : "highlight implicits" + IniWrite, % Iteminfo_ModHighlightString(highlight[implicit_check]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % !implicit ? "highlight" : "highlight implicits" } Return 1 } Else ;mod is blacklisted: remove it from blacklisted mods and save { blacklist[implicit_check].Delete(string) - IniWrite, % Iteminfo_ModHighlightString(blacklist[implicit_check]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % !implicit ? "blacklist" : "blacklist implicits" + IniWrite, % Iteminfo_ModHighlightString(blacklist[implicit_check]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % !implicit ? "blacklist" : "blacklist implicits" Return 0 } } @@ -1765,18 +1882,18 @@ Iteminfo_ModHighlight(string, mode := 0, implicit := 0) ;check if mod is highlig If !blacklist[item.class_copy].HasKey(string) ;mod is not blacklisted: add it to class-specific blacklisted mods and save { blacklist[item.class_copy][string] := 1 - IniWrite, % Iteminfo_ModHighlightString(blacklist[item.class_copy]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % "blacklist "item.class_copy + IniWrite, % Iteminfo_ModHighlightString(blacklist[item.class_copy]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % "blacklist "item.class_copy If highlight[item.class_copy].HasKey(string) ;if mod was previously highlighted, remove it from there and save the highlights { highlight[item.class_copy].Delete(string) - IniWrite, % Iteminfo_ModHighlightString(highlight[item.class_copy]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % "highlight "item.class_copy + IniWrite, % Iteminfo_ModHighlightString(highlight[item.class_copy]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % "highlight "item.class_copy } Return 2 } Else ;mod is blacklisted: remove it from class-specific blacklist and save { blacklist[item.class_copy].Delete(string) - IniWrite, % Iteminfo_ModHighlightString(blacklist[item.class_copy]), ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % "blacklist "item.class_copy + IniWrite, % Iteminfo_ModHighlightString(blacklist[item.class_copy]), % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % "blacklist "item.class_copy Return 0 } } @@ -1806,7 +1923,7 @@ Iteminfo_ModInvert(cHWND) Else vars.iteminfo.inverted_mods[mod] := 1 For key, val in vars.iteminfo.inverted_mods string .= "|" key "|" - IniWrite, % string, ini\item-checker.ini, inverted mods, invert + IniWrite, % string, % "ini" vars.poe_version "\item-checker.ini", inverted mods, invert Iteminfo(1) } @@ -1872,8 +1989,8 @@ Iteminfo_GearParse(slot) ;parse the info of an equipped item and save it for ite If (hotkey = "RButton") ;clear the info for the hovered gear-slot { vars.iteminfo.compare.slots[slot].equipped := "" - If FileExist("ini\item-checker gear.ini") - IniDelete, ini\item-checker gear.ini, % slot + If FileExist("ini" vars.poe_version "\item-checker gear.ini") + IniDelete, % "ini" vars.poe_version "\item-checker gear.ini", % slot LLK_ToolTip(slot " cleared") If WinExist("ahk_id "vars.hwnd.iteminfo.main) Iteminfo(1) @@ -2090,7 +2207,7 @@ Iteminfo_GearParse(slot) ;parse the info of an equipped item and save it for ite itemcheck_clip := SubStr(itemcheck_clip, 1, -1) vars.iteminfo.compare.slots[slot].equipped := (item_type = "attack") ? "dps="tdps "`npdps="pdps "`nedps="edps0 "`ncdps="cdps "`nspeed=" speed "`n" Iteminfo_Compare(implicits "`n" itemcheck_clip, item_type) : defenses Iteminfo_Compare(implicits "`n" itemcheck_clip, item_type) - IniWrite, % vars.iteminfo.compare.slots[slot].equipped, ini\item-checker gear.ini, % slot + IniWrite, % vars.iteminfo.compare.slots[slot].equipped, % "ini" vars.poe_version "\item-checker gear.ini", % slot Loop, Parse, % vars.iteminfo.compare.slots[slot].equipped, `n { If (A_Index = 1) @@ -2151,7 +2268,7 @@ Iteminfo_Marker() ;placing markers while using the shift-trigger feature Iteminfo_ModCheck(string, item_type := "") ;checks a mod's text to determine if there's a suitable icon to represent the mod { local - global settings + global vars, settings If (settings.general.lang_client != "english") Return @@ -2209,7 +2326,7 @@ Iteminfo_ModCheck(string, item_type := "") ;checks a mod's text to determine if If InStr(string, "physical") Return "phys" } - Else If InStr(string, "critical strike") + Else If !vars.poe_version && InStr(string, "critical strike") || vars.poe_version && InStr(string, "critical") Return "crit" Else If InStr(string, "attack speed") Return "speed" diff --git a/modules/leveling tracker.ahk b/modules/leveling tracker.ahk index d86beece..65a349bb 100644 --- a/modules/leveling tracker.ahk +++ b/modules/leveling tracker.ahk @@ -469,6 +469,8 @@ Leveltracker_Experience(arealevel := "", safe := 0, feature := "") If !vars.log.level Return + Else If vars.poe_version + Return "???" arealevel := !arealevel ? vars.log.arealevel : arealevel, exp_penalty := {95: 1.069518717, 96: 1.129943503, 97: 1.2300123, 98: 1.393728223, 99: 1.666666667} If (vars.log.level > 94) diff --git a/modules/map tracker.ahk b/modules/map tracker.ahk index 5c42cb9e..bc06280c 100644 --- a/modules/map tracker.ahk +++ b/modules/map tracker.ahk @@ -3,9 +3,6 @@ local global vars, settings - If vars.poe_version - Return - If !FileExist("ini" vars.poe_version "\map tracker.ini") IniWrite, % "", % "ini" vars.poe_version "\map tracker.ini", settings If !FileExist("ini" vars.poe_version "\map tracker log.ini") @@ -24,7 +21,7 @@ LLK_FontDimensions(settings.maptracker.fSize, height, width), settings.maptracker.fWidth := width, settings.maptracker.fHeight := height settings.maptracker.fSize2 := !Blank(check := ini.settings["font-size2"]) ? check : settings.general.fSize LLK_FontDimensions(settings.maptracker.fSize2, height, width), settings.maptracker.fWidth2 := width, settings.maptracker.fHeight2 := height - settings.maptracker.rename := !Blank(check := ini.settings["rename boss maps"]) ? check : 1 + settings.maptracker.rename := !Blank(check := ini.settings["rename boss maps"]) ? check : (vars.poe_version ? 0 : 1) settings.maptracker.sidecontent := !Blank(check := ini.settings["track side-areas"]) ? check : 0 settings.maptracker.character := !Blank(check := ini.settings["log character info"]) ? check : 0 settings.maptracker.mechanics := !Blank(check := ini.settings["track league mechanics"]) ? check : 0 @@ -48,8 +45,14 @@ settings.maptracker.dColors := {"date_unselected": "404040", "date_selected": "606060", "league 1": "330000", "league 2": "001933", "league 3": "003300", "league 4": "330066", "league 5": "009999", "league 6": "99004C", "league 7": "666600"} settings.maptracker.colors := {} If !IsObject(vars.maptracker) - vars.maptracker := {"keywords": [], "mechanics": {"blight": 1, "delirium": 1, "expedition": 1, "legion": 2, "ritual": 2, "harvest": 1, "incursion": 1, "bestiary": 1, "betrayal": 1, "delve": 1, "ultimatum": 1, "maven": 1}} - , vars.maptracker.leagues := [["crucible", 20230407, 20230815], ["ancestor", 20230818, 20231205], ["affliction", 20231208, 20240401], ["necropolis", 20240329, 20240722], ["settlers", 20240726, 20260101]] + { + If !vars.poe_version + vars.maptracker := {"keywords": [], "mechanics": {"blight": 1, "delirium": 1, "expedition": 1, "legion": 2, "ritual": 2, "harvest": 1, "incursion": 1, "bestiary": 1, "betrayal": 1, "delve": 1, "ultimatum": 1, "maven": 1}} + Else vars.maptracker := {"keywords": [], "mechanics": {"delirium": 1, "expedition": 1, "ritual": 2}} + If vars.poe_version + vars.maptracker.leagues := [["early access", 20241206, 20251231]] + Else vars.maptracker.leagues := [["crucible", 20230407, 20230815], ["ancestor", 20230818, 20231205], ["affliction", 20231208, 20240401], ["necropolis", 20240329, 20240722], ["settlers", 20240726, 20260101]] + } For mechanic in vars.maptracker.mechanics settings.maptracker[mechanic] := !Blank(check := ini.mechanics[mechanic]) ? check : 0 @@ -90,8 +93,8 @@ Maptracker(cHWND := "", hotkey := "") settings.maptracker.xCoord := Blank(xPos) ? "center" : xPos + (xPos >= vars.monitor.w / 2 ? 1 : 0), settings.maptracker.yCoord := yPos + (yPos >= vars.monitor.h / 2 ? 1 : 0), write := 1 If write { - IniWrite, % settings.maptracker.xCoord, ini\map tracker.ini, Settings, x-coordinate - IniWrite, % settings.maptracker.yCoord, ini\map tracker.ini, Settings, y-coordinate + IniWrite, % settings.maptracker.xCoord, % "ini" vars.poe_version "\map tracker.ini", Settings, x-coordinate + IniWrite, % settings.maptracker.yCoord, % "ini" vars.poe_version "\map tracker.ini", Settings, y-coordinate Maptracker_GUI(), vars.maptracker.drag := 0 } Return @@ -147,7 +150,7 @@ Maptracker_Check(mode := 0) ;checks if player is in a map or map-related content global vars, settings mode_check := ["abyssleague", "endgame_labyrinth_trials", "mapsidearea"] - For key, val in {"mapworlds": 0, "maven": 0, "betrayal": 0, "incursion": 0, "heist": "heisthub", "mapatziri": 0, "legionleague": 0, "expedition": 0, "atlasexilesboss": 0, "breachboss": 0, "affliction": 0, "bestiary": 0, "sanctum": "sanctumfoyer", "synthesis": 0, "abyssleague": 0, "endgame_labyrinth_trials": 0, "mapsidearea": 0} + For key, val in (vars.poe_version ? {"map": 0} : {"mapworlds": 0, "maven": 0, "betrayal": 0, "incursion": 0, "heist": "heisthub", "mapatziri": 0, "legionleague": 0, "expedition": 0, "atlasexilesboss": 0, "breachboss": 0, "affliction": 0, "bestiary": 0, "sanctum": "sanctumfoyer", "synthesis": 0, "abyssleague": 0, "endgame_labyrinth_trials": 0, "mapsidearea": 0}) { If !mode && !Blank(LLK_HasVal(mode_check, key)) || (mode = 1) && Blank(LLK_HasVal(mode_check, key)) Continue @@ -325,10 +328,10 @@ Maptracker_DateSelect() { delDate := LLK_HasVal(vars.hwnd.maptracker_dates, vars.general.cMouse) league_check := LLK_HasVal(leagues, delDate,,,, 1) - Loop, Parse, % LLK_IniRead("ini\map tracker log.ini"), `n, `r + Loop, Parse, % LLK_IniRead("ini" vars.poe_version "\map tracker log.ini"), `n, `r If (league_check && LLK_IsBetween(StrReplace(SubStr(A_LoopField, 1, InStr(A_LoopField, " ") - 1), "/"), leagues[league_check].2, leagues[league_check].3) || StrMatch(A_LoopField, delDate) || (delDate = "all")) && runs.HasKey(StrReplace(A_LoopField, " ", ",")) { - IniDelete, ini\map tracker log.ini, % A_LoopField + IniDelete, % "ini" vars.poe_version "\map tracker log.ini", % A_LoopField If vars.maptracker.entries.HasKey(pCheck := SubStr(A_LoopField, 1, InStr(A_LoopField, " ") - 1)) vars.maptracker.entries.Delete(pCheck) } @@ -373,7 +376,7 @@ Maptracker_Edit(cHWND := "") text := SubStr(text, 1, -1) If Blank(text) Return - IniWrite, % text, ini\map tracker log.ini, % edit.1, map + IniWrite, % text, % "ini" vars.poe_version "\map tracker log.ini", % edit.1, map If IsObject(vars.maptracker.entries) { date := SubStr(edit.1, 1, InStr(edit.1, " ") - 1), time := SubStr(edit.1, InStr(edit.1, " ") + 1), check := LLK_HasVal(vars.maptracker.entries[date], time,,,, 1) @@ -692,7 +695,7 @@ Maptracker_Logs(mode := "") run_count += array.Count() If (max_lines < settings.maptracker.page_entries) - IniWrite, % (settings.maptracker.page_entries := 0), ini\map tracker.ini, settings, entries per page + IniWrite, % (settings.maptracker.page_entries := 0), % "ini" vars.poe_version "\map tracker.ini", settings, entries per page page_entries := !(pCheck := settings.maptracker.page_entries) ? max_lines : pCheck @@ -788,7 +791,7 @@ Maptracker_Logs(mode := "") Else { Gui, %GUI_name%: Add, Edit, % "ys Section cBlack HWNDhwnd_search gMaptracker_Logs2 w" width " h" hEdit (!Blank(pCheck := vars.maptracker.keywords[header]) ? " cGreen" : ""), % pCheck - vars.hwnd.maptracker_logs.searches[header] := vars.hwnd.help_tooltips["maptracker_logviewer search " header] := hwnd_search + vars.hwnd.maptracker_logs.searches[header] := vars.hwnd.help_tooltips["maptracker_logviewer search " header (InStr("mapinfo,content", header) ? vars.poe_version : "")] := hwnd_search } Gui, %GUI_name%: Font, % "s" settings.maptracker.fSize2 + 4 Gui, %GUI_name%: Add, Text, % "xs y+-1 BackgroundTrans Border Center HWNDhwnd w"width . gLabel, % icon ? "" : (header = "#") ? "" : Lang_Trans("maptracker_" header . (InStr("kills,loot", header) ? 1 : ""), (header = "time" && date_check) ? 2 : 1) @@ -930,14 +933,14 @@ Maptracker_Logs2(cHWND) settings.maptracker.fSize2 := settings.general.fSize Else settings.maptracker.fSize2 += (control = "plus") ? 1 : (settings.maptracker.fSize2 > 6) ? -1 : 0 LLK_FontDimensions(settings.maptracker.fSize2, height, width), settings.maptracker.fWidth2 := width, settings.maptracker.fHeight2 := height - IniWrite, % settings.maptracker.fSize2, ini\map tracker.ini, settings, font-size2 - IniWrite, % (settings.maptracker.page_entries := 0), ini\map tracker.ini, settings, entries per page + IniWrite, % settings.maptracker.fSize2, % "ini" vars.poe_version "\map tracker.ini", settings, font-size2 + IniWrite, % (settings.maptracker.page_entries := 0), % "ini" vars.poe_version "\map tracker.ini", settings, entries per page Maptracker_Logs() } Else If InStr(check, "entries_") { KeyWait, LButton - IniWrite, % (settings.maptracker.page_entries := control), ini\map tracker.ini, settings, entries per page + IniWrite, % (settings.maptracker.page_entries := control), % "ini" vars.poe_version "\map tracker.ini", settings, entries per page Maptracker_Logs() } Else If InStr(check, "loot_") @@ -982,7 +985,7 @@ Maptracker_Logs2(cHWND) date := SubStr(control, 1, InStr(control, " ") - 1), time := SubStr(control, InStr(control, " ") + 1), check0 := LLK_HasVal(vars.maptracker.entries[date], time,,,, 1) If check0 vars.maptracker.entries[date].RemoveAt(check0) - IniDelete, ini\map tracker log.ini, % control + IniDelete, % "ini" vars.poe_version "\map tracker log.ini", % control KeyWait, RButton Maptracker_Logs("DEL") Return @@ -1136,7 +1139,7 @@ Maptracker_LogsLoad() global vars, settings vars.maptracker.entries := {}, entries := vars.maptracker.entries - FileRead, ini, ini\map tracker log.ini + FileRead, ini, % "ini" vars.poe_version "\map tracker log.ini" StringLower, ini, ini Loop, Parse, ini, `n, `r { @@ -1305,7 +1308,7 @@ Maptracker_LogsTooltip(ini_section, ini_key, cHWND) { If (column = "notes" || column = "character") && (ini_section = "avgsum") LLK_PanelDimensions([boxes2[index]], settings.maptracker.fSize2, wRow, hRow) - style := (ini_section = "avgsum") ? " 0x200" (index = 1 ? " Center" : " Right") : (ini_key = "mapinfo" && index = 1) ? " Center" : "" + style := (ini_section = "avgsum") ? " 0x200" (index = 1 ? " Center" : " Right") : (ini_key = "mapinfo" && index = 1 && !vars.poe_version) ? " Center" : "" Gui, maptracker_tooltip: Add, Text, % "Section HWNDhwnd" (index = 1 ? "" : " xs y+-1") . style " Border w" width . (hRow ? " h" hRow : ""), % " " text " " If (ini_section = "avgsum") { @@ -1406,23 +1409,23 @@ Maptracker_Mapinfo() global vars, settings map := vars.mapinfo.active_map ;short-cut variable - parse := map.summary "; " + parse := !vars.poe_version ? map.summary "; " : "" For index0, category in vars.mapinfo.categories { check := 0 - Loop 4 + Loop 5 { - index1 := A_Index, check += map[category][A_Index].Count() ? 1 : 0 - check += map[category].0[A_Index].Count() ? 1 : 0 + index1 := A_Index, check += map[category][5 - A_Index].Count() ? 1 : 0 + check += map[category][-1][A_Index].Count() ? 1 : 0 } If !check Continue parse .= "- " category ":; " - Loop 4 + Loop 5 { For index, val in map[category][5 - A_Index] parse .= val.1 "; " - For index, val in map[category].0[5 - A_Index] + For index, val in map[category][-1][5 - A_Index] parse .= val.1 "; " } } @@ -1443,7 +1446,7 @@ Maptracker_MechanicsCheck() check := 0, start := A_TickCount For mechanic, type in vars.maptracker.mechanics If (type = 2) - check += !settings.maptracker[mechanic] || !FileExist("img\Recognition ("vars.client.h "p)\Mapping Tracker\"mechanic ".bmp") ? 0 : 1 + check += !settings.maptracker[mechanic] || !FileExist("img\Recognition ("vars.client.h "p)\Mapping Tracker\"mechanic . vars.poe_version ".bmp") ? 0 : 1 If wait || !check ;|| !LLK_IsBetween(vars.general.xMouse - vars.client.x, vars.client.x, vars.client.x + vars.client.w) || !LLK_IsBetween(vars.general.yMouse - vars.client.y, vars.client.y, vars.client.y + vars.client.h) Return wait := 1, pScreen := Gdip_BitmapFromHWND(vars.hwnd.poe_client, 1) @@ -1454,7 +1457,7 @@ Maptracker_MechanicsCheck() { If (type != 2) || !Blank(LLK_HasVal(vars.maptracker.map.content, mechanic)) Continue - pNeedle := Gdip_LoadImageFromFile("img\Recognition ("vars.client.h "p)\Mapping Tracker\"mechanic ".bmp") + pNeedle := Gdip_LoadImageFromFile("img\Recognition ("vars.client.h "p)\Mapping Tracker\"mechanic . vars.poe_version ".bmp") If (0 < Gdip_ImageSearch(pScreen, pNeedle, LIST,,,,, 10)) vars.maptracker.map.content.Push(mechanic) Gdip_DisposeImage(pNeedle) @@ -1478,9 +1481,14 @@ Maptracker_NoteAdd(cHWND := "") Clipboard := LLK_StringCase(Clipboard) Loop, Parse, Clipboard, `n, `r - If (A_Index = 3) - item := A_LoopField + { + item := InStr(A_LoopField, "---") ? item : A_LoopField + If (A_Index = 3) || InStr(A_LoopField, "---") + Break + } + If Blank(item) + Return add := (InStr(Clipboard, Lang_Trans("items_class") " " Lang_Trans("items_map fragments")) ? "" : "1#") item, LLK_ToolTip(Lang_Trans("global_success"), 0.5,,,, "Lime") Maptracker_NoteEdit(,, [add, InStr(Clipboard, Lang_Trans("items_class") " " Lang_Trans("items_map fragments"))]) } @@ -1562,7 +1570,7 @@ Maptracker_NoteEdit(cHWND := "", array0 := "", add := "") ;array0 = [xPos, yPos, ini_string .= (index = 1 ? "" : "§") . StrReplace(note, "`n", "(n)") ini_string .= "¢" } - IniWrite, % """" ini_string """", ini\map tracker log.ini, % section, notes + IniWrite, % """" ini_string """", % "ini" vars.poe_version "\map tracker log.ini", % section, notes pDate := SubStr(section, 1, InStr(section, " ") - 1), pTime := SubStr(section, InStr(section, " ") + 1), pCheck := LLK_HasVal(vars.maptracker.entries[pDate], pTime,,,, 1) If pCheck vars.maptracker.entries[pDate][pCheck].notes := (ini_string = "¢¢¢") ? "" : StrReplace(ini_string, "(n)", "`n") @@ -1654,7 +1662,7 @@ Maptracker_ParseDialogue(line) { If (type != 1) || !settings.maptracker[mechanic] || !Blank(LLK_HasVal(vars.maptracker.map.content, mechanic)) Continue - For index, identifier in vars.lang["log_" mechanic] + For index, identifier in vars.lang["log_" mechanic (InStr("expedition", mechanic) ? vars.poe_version : "")] If InStr(line, identifier, 1) { vars.maptracker.map.content.Push(mechanic) @@ -1746,11 +1754,11 @@ Maptracker_Save(mode := 0) If settings.maptracker.character && vars.log.level character := settings.general.character "(n)" vars.log.character_class " (" vars.log.level ")" (settings.general.build ? "(n)" settings.general.build : "") IniWrite, % "map=" map.name "`ntier=" map.tier "`nrun=" map.time "`nportals=" map.portals "`ndeaths=" map.deaths "`nkills=" map.kills "`ncontent=" (!content ? 0 : content) "`nloot=" (!loot ? 0 : loot) - . "`nmapinfo=" vars.maptracker.map.mapinfo "`ne-exp="map.experience (map.experience ? "%" : "") "`nnotes=""" (settings.maptracker.notes ? notes : "") """`ncharacter=""" character """" - , ini\map tracker log.ini, % map.date_time + . "`nmapinfo=" vars.maptracker.map.mapinfo "`ne-exp="map.experience (map.experience && !InStr(map.experience, "?") ? "%" : "") "`nnotes=""" (settings.maptracker.notes ? notes : "") """`ncharacter=""" character """" + , % "ini" vars.poe_version "\map tracker log.ini", % map.date_time If IsObject(vars.maptracker.entries) { - object := {"content": !content ? 0 : content, "deaths": map.deaths, "e-exp": Blank(map.experience) ? "" : map.experience "%", "kills": map.kills, "loot": !loot ? 0 : loot, "map": map.name, "mapinfo": vars.maptracker.map.mapinfo, "notes": settings.maptracker.notes ? StrReplace(notes, "(n)", "`n") : "", "portals": map.portals, "run": map.time, "tier": map.tier + 0, "time": SubStr(map.date_time, InStr(map.date_time, " ") + 1), "character" : StrReplace(character, "(n)", "`n")} + object := {"content": !content ? 0 : content, "deaths": map.deaths, "e-exp": Blank(map.experience) ? "" : map.experience (!InStr(map.experience, "?") ? "%" : ""), "kills": map.kills, "loot": !loot ? 0 : loot, "map": map.name, "mapinfo": vars.maptracker.map.mapinfo, "notes": settings.maptracker.notes ? StrReplace(notes, "(n)", "`n") : "", "portals": map.portals, "run": map.time, "tier": map.tier + 0, "time": SubStr(map.date_time, InStr(map.date_time, " ") + 1), "character" : StrReplace(character, "(n)", "`n")} If !IsObject(vars.maptracker.entries[SubStr(map.date_time, 1, InStr(map.date_time, " ") - 1)]) vars.maptracker.entries[SubStr(map.date_time, 1, InStr(map.date_time, " ") - 1)] := [] vars.maptracker.entries[SubStr(map.date_time, 1, InStr(map.date_time, " ") - 1)].InsertAt(1, object) @@ -1784,7 +1792,8 @@ Maptracker_Timer() Else If WinExist("ahk_id "vars.hwnd.maptracker.main) && (Maptracker_Check(2) && !vars.maptracker.toggle && !vars.maptracker.pause || settings.maptracker.hide && vars.maptracker.pause || WinExist("ahk_id " vars.hwnd.maptracker_logs.main) || vars.hwnd.recombination.main) ;else hide it inactive += 1 Else inactive := 0 - If WinExist("ahk_id "vars.hwnd.maptracker.main) && (inactive = 2) + + If WinExist("ahk_id " vars.hwnd.maptracker.main) && (inactive = 2) LLK_Overlay(vars.hwnd.maptracker.main, "destroy") If Maptracker_Check() && (vars.maptracker.refresh_kills > 2) ;when re-entering a map after updating the kill-tracker, set its state to 2 so it starts flashing again the next time the hideout is entered @@ -1842,8 +1851,8 @@ Maptracker_Timer() vars.maptracker.map.content.Push(key) } - If settings.features.mapinfo && settings.maptracker.mapinfo && !vars.maptracker.map.mapinfo && !vars.mapinfo.active_map.expired && vars.mapinfo.active_map.name - && (vars.maptracker.map.name && InStr(vars.mapinfo.active_map.name, vars.maptracker.map.name) || LLK_HasVal(vars.mapinfo.categories, vars.log.areaname, 1) || vars.mapinfo.active_map.tag && InStr(vars.log.areaID, vars.mapinfo.active_map.tag)) + If settings.features.mapinfo && settings.maptracker.mapinfo && !vars.maptracker.map.mapinfo && !vars.mapinfo.active_map.expired && (vars.mapinfo.active_map.name || vars.poe_version) + && (vars.poe_version || vars.maptracker.map.name && InStr(vars.mapinfo.active_map.name, vars.maptracker.map.name) || LLK_HasVal(vars.mapinfo.categories, vars.log.areaname, 1) || vars.mapinfo.active_map.tag && InStr(vars.log.areaID, vars.mapinfo.active_map.tag)) { If LLK_PatternMatch(vars.mapinfo.active_map.tag, "", ["mavenhub", "heist", "blight"]) vars.maptracker.map.name := (settings.maptracker.rename && vars.mapinfo.active_map.tag = "mavenhub" ? Lang_Trans("maps_boss") ": " : "") LLK_StringCase(vars.mapinfo.active_map.name) @@ -1863,6 +1872,6 @@ Maptracker_Towncheck() local global vars, settings - If InStr(vars.log.areaID, "hideout") || InStr(vars.log.areaID, "heisthub") || InStr(vars.log.areaID, "menagerie") || InStr(vars.log.areaID, "sanctumfoyer") + If LLK_StringCompare(vars.log.areaID, ["hideout"]) || InStr(vars.log.areaID, "heisthub") || InStr(vars.log.areaID, "menagerie") || InStr(vars.log.areaID, "sanctumfoyer") Return 1 } diff --git a/modules/map-info.ahk b/modules/map-info.ahk index 2887c8db..f479f994 100644 --- a/modules/map-info.ahk +++ b/modules/map-info.ahk @@ -113,7 +113,7 @@ Mapinfo_GUI(mode := 1) If !vars.poe_version summary := summary0 := map.mods . Lang_Trans("maps_stats", 1) " | " map.quantity . Lang_Trans("maps_stats", 2) " | " map.rarity . Lang_Trans("maps_stats", 3) . (!Blank(map.packsize) ? " | " map.packsize . Lang_Trans("maps_stats", 4) : "") - Else summary := summary0 := (map.tier >= 11 ? "-20% ele res (t11+)" : map.tier >= 6 ? "-10% ele res (t6+)" : "no res penalty") + Else summary := summary0 := "waystones: " (Blank(map.waystones) ? "+0%" : map.waystones) ;(map.tier >= 11 ? "-20% ele res (t11+)" : map.tier >= 6 ? "-10% ele res (t6+)" : "no res penalty") If StrLen(map.maps . map.scarabs . map.currency) { @@ -570,14 +570,16 @@ Mapinfo_Parse2(mode) Loop, Parse, clip, `n, `r { - If !tier + If !map.name If !InStr(A_LoopField, "(") Continue - Else tier := SubStr(A_LoopField, InStr(A_LoopField, "(") + 1), tier := SubStr(tier, InStr(tier, " ") + 1), tier := map.tier := SubStr(tier, 1, InStr(tier, ")") - 1), map.name := A_LoopField + Else map.name := A_LoopField If !item_level - If !InStr(A_LoopField, Lang_Trans("items_ilevel")) + If !InStr(A_LoopField, Lang_Trans("items_ilevel")) && !InStr(A_LoopField, "waystone drop chance:") Continue + Else If InStr(A_LoopField, "waystone drop chance:") + map.waystones := SubStr(A_LoopField, InStr(A_LoopField, "+")), map.waystones := (check := InStr(map.waystones, " (")) ? SubStr(map.waystones, 1, check - 1) : map.waystones Else { item_level := SubStr(A_LoopField, InStr(A_LoopField, ":") + 2) @@ -600,7 +602,7 @@ Mapinfo_Parse2(mode) map.mods += 1 Loop, Parse, key, % "|" map_mods[key] .= (!map_mods[key] ? "" : "/") . parsed_lines[A_LoopField], raw_text := StrReplace(raw_text, A_LoopField, "",, 1) - If InStr(map_mods[key], "freeze buildup") + If InStr(key, "freeze buildup") map_mods[key] := SubStr(map_mods[key], 1, InStr(map_mods[key], "/") - 1) ;freeze/ignite/shock hybrid mod is always X/X/X %, so simply display as X% } diff --git a/modules/omni-key.ahk b/modules/omni-key.ahk index bd57fb3a..3d81ecc3 100644 --- a/modules/omni-key.ahk +++ b/modules/omni-key.ahk @@ -279,14 +279,13 @@ Omni_Context(mode := 0) Return } } - If !vars.poe_version - { - If WinExist("ahk_id " vars.hwnd.iteminfo.main) + + If WinExist("ahk_id " vars.hwnd.iteminfo.main) + Return "iteminfo" + While GetKeyState(vars.omnikey.hotkey, "P") || !Blank(vars.omnikey.hotkey2) && GetKeyState(vars.omnikey.hotkey2, "P") + If (A_TickCount >= vars.omnikey.start + 200) Return "iteminfo" - While GetKeyState(vars.omnikey.hotkey, "P") || !Blank(vars.omnikey.hotkey2) && GetKeyState(vars.omnikey.hotkey2, "P") - If (A_TickCount >= vars.omnikey.start + 200) - Return "iteminfo" - } + If WinExist("ahk_id " vars.hwnd.geartracker.main) Return "geartracker" If !LLK_PatternMatch(item.name "`n" item.itembase, "", ["Map", "Invitation", "Blueprint:", "Contract:", "Expedition Logbook"]) || LLK_PatternMatch(item.name "`n" item.itembase, "", ["Doryani", "Maple"]) @@ -312,7 +311,7 @@ Omni_ContextMenu() && (check := InStr(clip, Lang_Trans("items_mapreward"))) { reward := SubStr(clip, check + StrLen(Lang_Trans("items_mapreward")) + 1), reward := StrReplace(SubStr(reward, 1, InStr(reward, "`r") - 1), Lang_Trans("items_mapreward_foil")) - Gui, omni_context: Add, Text, % "Section gOmni_ContextMenuPick HWNDhwnd" style, % "poe.wiki: " LLK_StringCase(reward) + Gui, omni_context: Add, Text, % "Section gOmni_ContextMenuPick HWNDhwnd" style, % "wiki: " LLK_StringCase(reward) ControlGetPos,,, w1,,, % "ahk_id " hwnd vars.hwnd.omni_context.wiki_exact := hwnd, vars.omni_context[hwnd] := reward } @@ -320,13 +319,13 @@ Omni_ContextMenu() { If !(item.unid && item.rarity = Lang_Trans("items_unique")) && (LLK_PatternMatch(item.name, "", ["Splinter"]) || item.itembase || !LLK_PatternMatch(item.rarity, "", [Lang_Trans("items_magic"), Lang_Trans("items_rare"), Lang_Trans("items_currency")])) { - Gui, omni_context: Add, Text, % "Section gOmni_ContextMenuPick HWNDhwnd" style, % "poe.wiki: " LLK_StringCase(item[item.itembase && item.rarity != Lang_Trans("items_unique") ? "itembase" : "name"]) + Gui, omni_context: Add, Text, % "Section gOmni_ContextMenuPick HWNDhwnd" style, % "wiki: " LLK_StringCase(item[item.itembase && item.rarity != Lang_Trans("items_unique") ? "itembase" : "name"]) ControlGetPos,,, w1,,, % "ahk_id " hwnd vars.hwnd.omni_context.wiki_exact := hwnd, vars.omni_context[hwnd] := item[item.itembase && item.rarity != Lang_Trans("items_unique") ? "itembase" : "name"] } If (item.rarity != Lang_Trans("items_unique")) && !Blank(item.class) - && (settings.general.lang_client = "english" && !InStr(item.class, "currency") || LLK_HasVal(db.item_bases._classes, item.class) || LLK_PatternMatch(item.name, "", ["Essence of", "Scarab", "Catalyst", " Oil", "Memory of "])) + && (settings.general.lang_client = "english" && !InStr(item.class, "currency") || (LLK_HasVal(db.item_bases._classes, item.class) || vars.poe_version && vars.omnikey.poedb[item.class]) || LLK_PatternMatch(item.name, "", ["Essence of", "Scarab", "Catalyst", " Oil", "Memory of "])) { If !Blank(LLK_HasVal(db.item_bases._classes, item.class)) class := db.item_bases._classes[LLK_HasVal(db.item_bases._classes, item.class)] @@ -334,9 +333,9 @@ Omni_ContextMenu() class := LLK_PatternMatch(item.name, "", ["Essence of", "Scarab", "Catalyst", " Oil", "Memory of "]) Else If (settings.general.lang_client = "english") class := item.class - Gui, omni_context: Add, Text, % "Section" (hwnd ? " xs " : " ") "gOmni_ContextMenuPick HWNDhwnd" style, % "poe.wiki: " LLK_StringCase((InStr(item.itembase, "Runic ") ? "runic " : "") . class) + Gui, omni_context: Add, Text, % "Section" (hwnd ? " xs " : " ") "gOmni_ContextMenuPick HWNDhwnd" style, % "wiki: " LLK_StringCase((InStr(item.itembase, "Runic ") ? "runic " : "") . class) ControlGetPos,,, w2,,, % "ahk_id " hwnd - If (class != "cluster jewels") && (!Blank(LLK_HasVal(db.item_bases._classes, item.class)) || InStr(item.class, "heist") && item.itembase) + If (class != "cluster jewels") && (!Blank(LLK_HasVal(db.item_bases._classes, item.class)) || vars.poe_version && vars.omnikey.poedb[item.class] || InStr(item.class, "heist") && item.itembase) { Gui, omni_context: Add, Text, % "Section xs gOmni_ContextMenuPick HWNDhwnd1" style, % "poe.db: " Lang_Trans("system_poedb_lang", 2) ControlGetPos,,, w3,,, % "ahk_id " hwnd1 @@ -443,7 +442,7 @@ Omni_ContextMenuPick(cHWND) Else If !Blank(LLK_HasVal(["unset ring", "iron flask", "bone ring", "convoking wand", "bone spirit shield", "silver flask"], item.itembase)) || InStr(item.class, "jewels") || InStr(item.class, "heist") page := StrReplace(item.itembase, " ", "_") Else page := StrReplace(item.class, " ", "_") . item.attributes - Run, % "https://poedb.tw/" . Lang_Trans("system_poedb_lang") . "/" . page . (InStr(page, "cluster_jewel") ? "#EnchantmentModifiers" : "#ModifiersCalc") + Run, % "https://poe" Trim(vars.poe_version, " ") "db.tw/" . Lang_Trans("system_poedb_lang") . "/" . page . (InStr(page, "cluster_jewel") ? "#EnchantmentModifiers" : "#ModifiersCalc") Clipboard := item.ilvl If InStr(page, "cluster_jewel") && settings.features.browser { @@ -482,7 +481,7 @@ Omni_ItemInfo() Iteminfo(2) item := vars.omnikey.item, clip := vars.omnikey.clipboard ;short-cut variables - If item.itembase + If !vars.poe_version && item.itembase { item.attributes := "" For class, val in db.item_bases @@ -491,6 +490,23 @@ Omni_ItemInfo() If val1.HasKey(item.itembase) item.attributes .= InStr(subtype, "armour") ? "_str" : "", item.attributes .= InStr(subtype, "evasion") ? "_dex" : "", item.attributes .= InStr(subtype, "energy") ? "_int" : "" } + Else If vars.poe_version && item.class && (vars.omnikey.poedb[item.class] = 2) + { + item.attributes := "" + Loop, Parse, % vars.omnikey.clipboard, `n, % "`r " + { + If !requirements + { + If InStr(A_LoopField, "Requirements:") + requirements := 1 + Continue + } + If requirements && InStr(A_LoopField, "---") + Break + If !InStr(A_LoopField, "Level:") && InStr(A_LoopField, ":") + item.attributes .= "_" LLK_StringCase(SubStr(A_LoopField, 1, 3)) + } + } Loop, Parse, clip, `n, % "`r " ;store the item's class, rarity, and miscellaneous info { diff --git a/modules/settings menu.ahk b/modules/settings menu.ahk index 3b5a7681..aa55d981 100644 --- a/modules/settings menu.ahk +++ b/modules/settings menu.ahk @@ -578,7 +578,7 @@ Settings_general() Gui, %GUI%: Add, Checkbox, % "ys HWNDhwnd gSettings_general2 Checked" settings.general.capslock, % Lang_Trans("m_general_capslock") vars.hwnd.settings.capslock := hwnd, vars.hwnd.help_tooltips["settings_capslock toggling"] := hwnd, check := "" - If !vars.poe_version && vars.log.file_location + If vars.log.file_location { dimensions := [Lang_Trans("m_general_character"), vars.log.level && settings.features.maptracker && settings.maptracker.character ? Lang_Trans("m_general_build") : ""] LLK_PanelDimensions(dimensions, settings.general.fSize, wChar, hChar,,, 0), wName := settings.general.fWidth2 * 18 @@ -864,7 +864,8 @@ Settings_general2(cHWND := "") } Else { - GuiControl, +cWhite, % hwnd + GuiControl, +cBlack, % hwnd + GuiControl, movedraw, % hwnd Return } Init_log("refresh") @@ -1194,12 +1195,12 @@ Settings_iteminfo() } Gui, %GUI%: Add, Text, % "xs Section Center HWNDhwnd0", % Lang_Trans("m_iteminfo_profiles", 3) - Gui, %GUI%: Add, Text, % "ys x+" settings.general.fWidth/2 " Center Border BackgroundTrans cBlack HWNDhwnd gSettings_iteminfo2", % " " Lang_Trans("m_iteminfo_desired") " " + Gui, %GUI%: Add, Text, % "ys x+" settings.general.fWidth/2 " Center Border BackgroundTrans HWNDhwnd gSettings_iteminfo2", % " " Lang_Trans("m_iteminfo_desired") " " vars.hwnd.help_tooltips["settings_iteminfo reset"] := hwnd0, vars.hwnd.settings.desired := hwnd - Gui, %GUI%: Add, Progress, % "xp yp wp hp Border Disabled range0-500 cRed HWNDhwnd Background"settings.iteminfo.colors_tier.1, 0 + Gui, %GUI%: Add, Progress, % "xp yp wp hp Border Disabled Vertical range0-500 BackgroundBlack cRed HWNDhwnd", 0 vars.hwnd.settings.delbar_desired := vars.hwnd.help_tooltips["settings_iteminfo reset|"] := hwnd - Gui, %GUI%: Add, Text, % "ys x+"settings.general.fWidth/4 " Center Border BackgroundTrans cBlack HWNDhwnd0 gSettings_iteminfo2", % " " Lang_Trans("m_iteminfo_undesired") " " - Gui, %GUI%: Add, Progress, % "xp yp wp hp Border Disabled range0-500 cRed HWNDhwnd Background"settings.iteminfo.colors_tier.6, 0 + Gui, %GUI%: Add, Text, % "ys x+"settings.general.fWidth/4 " Center Border BackgroundTrans HWNDhwnd0 gSettings_iteminfo2", % " " Lang_Trans("m_iteminfo_undesired") " " + Gui, %GUI%: Add, Progress, % "xp yp wp hp Border Disabled Vertical range0-500 BackgroundBlack cRed HWNDhwnd", 0 vars.hwnd.settings.undesired := hwnd0, vars.hwnd.settings.delbar_undesired := vars.hwnd.help_tooltips["settings_iteminfo reset||"] := hwnd Gui, %GUI%: Font, bold underline @@ -1213,54 +1214,75 @@ Settings_iteminfo() Gui, %GUI%: Add, Text, % "ys x+"settings.general.fWidth/4 " Center gSettings_iteminfo2 Border HWNDhwnd w"settings.general.fWidth*2, % "+" vars.hwnd.settings.font_plus := vars.hwnd.help_tooltips["settings_font-size|||"] := hwnd - Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.modrolls, % Lang_Trans("m_iteminfo_modrolls") - vars.hwnd.settings.modrolls := hwnd, vars.hwnd.help_tooltips["settings_iteminfo modrolls"] := hwnd - Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.trigger, % Lang_Trans("m_iteminfo_shift") vars.hwnd.settings.trigger := hwnd, vars.hwnd.help_tooltips["settings_iteminfo shift-click"] := hwnd - Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.compare (settings.general.lang_client != "english" ? " cGray" : ""), % Lang_Trans("m_iteminfo_league") - vars.hwnd.settings.compare := hwnd, vars.hwnd.help_tooltips["settings_" (settings.general.lang_client = "english" ? "iteminfo league-start" : "lang unavailable") ] := hwnd - - If !settings.iteminfo.compare + If !vars.poe_version { - Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.itembase, % Lang_Trans("m_iteminfo_base") - vars.hwnd.settings.itembase := hwnd, vars.hwnd.help_tooltips["settings_iteminfo base-info"] := hwnd + Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.modrolls, % Lang_Trans("m_iteminfo_modrolls") + vars.hwnd.settings.modrolls := hwnd, vars.hwnd.help_tooltips["settings_iteminfo modrolls"] := hwnd + Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.compare (settings.general.lang_client != "english" ? " cGray" : ""), % Lang_Trans("m_iteminfo_league") + vars.hwnd.settings.compare := hwnd, vars.hwnd.help_tooltips["settings_" (settings.general.lang_client = "english" ? "iteminfo league-start" : "lang unavailable") ] := hwnd + If !settings.iteminfo.compare + { + Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.itembase, % Lang_Trans("m_iteminfo_base") + vars.hwnd.settings.itembase := hwnd, vars.hwnd.help_tooltips["settings_iteminfo base-info"] := hwnd + } + Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.ilvl (settings.general.lang_client != "english" ? " cGray" : ""), % Lang_Trans("m_iteminfo_ilvl") + vars.hwnd.settings.ilvl := hwnd, vars.hwnd.help_tooltips["settings_" (settings.general.lang_client = "english" ? "iteminfo enable item-level" : "lang unavailable||")] := hwnd } - Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.ilvl (settings.general.lang_client != "english" ? " cGray" : ""), % Lang_Trans("m_iteminfo_ilvl") - vars.hwnd.settings.ilvl := hwnd, vars.hwnd.help_tooltips["settings_" (settings.general.lang_client = "english" ? "iteminfo enable item-level" : "lang unavailable||")] := hwnd - Gui, %GUI%: Font, bold underline Gui, %GUI%: Add, Text, % "xs Section Center BackgroundTrans y+"vars.settings.spacing, % Lang_Trans("m_iteminfo_highlight") Gui, %GUI%: Font, norm LLK_PanelDimensions([Lang_Trans("global_tier"), Lang_Trans("global_ilvl")], settings.general.fSize, wText, hText,,, 0) - Loop 8 + Gui, %GUI%: Add, Text, % "xs Section", % "(un)desired: " + + Loop 2 { - parse := (A_Index = 1) ? 7 : A_Index - 2 - If (A_Index = 1) - Gui, %GUI%: Add, Text, % "xs Section HWNDhwnd0 w" wText, % Lang_Trans("global_tier") - Gui, %GUI%: Add, Text, % "ys x+"settings.general.fWidth/(A_Index = 1 ? 2 : 4) " w"settings.general.fWidth*3 " cBlack Center Border BackgroundTrans gSettings_iteminfo2 HWNDhwnd", % (A_Index = 1) ? Lang_Trans("m_iteminfo_fractured") : (A_Index = 2) ? "#" : parse - vars.hwnd.help_tooltips["settings_iteminfo item-tier"] := hwnd0, vars.hwnd.settings["tier_"parse] := hwnd, handle := (A_Index = 1) ? "|" : handle "|" - Gui, %GUI%: Add, Progress, % "xp yp wp hp BackgroundBlack HWNDhwnd Disabled c"settings.iteminfo.colors_tier[parse], 100 - vars.hwnd.settings["tierbar_"parse] := vars.hwnd.help_tooltips["settings_iteminfo item-tier"handle] := hwnd + Gui, %GUI%: Add, Text, % "ys HWNDhwnd0" (A_Index = 1 ? " x+0" : ""), % (A_Index = 1) ? "global" : "item-class" + Gui, %GUI%: Add, Text, % "ys Border BackgroundTrans gSettings_iteminfo2 HWNDhwnd x+" settings.general.fWidth//2 " w" settings.general.fWidth//2 + Gui, %GUI%: Add, Progress, % "Disabled xp yp wp hp Border BackgroundBlack HWNDhwnd2 c" settings.iteminfo.colors_marking[A_Index + A_Index//2], 100 + Gui, %GUI%: Add, Text, % "ys x+-1 Border BackgroundTrans gSettings_iteminfo2 HWNDhwnd3 w" settings.general.fWidth//2 + Gui, %GUI%: Add, Progress, % "Disabled xp yp wp hp Border BackgroundBlack HWNDhwnd4 c" settings.iteminfo.colors_marking[A_Index + A_Index//2 + 1], 100 + vars.hwnd.settings["marking_desired" (A_Index = 1 ? "" : "_class")] := hwnd, vars.hwnd.settings["marking_desired" (A_Index = 1 ? "" : "_class") "_bar"] := hwnd2 + vars.hwnd.settings["marking_undesired" (A_Index = 1 ? "" : "_class")] := hwnd3, vars.hwnd.settings["marking_undesired" (A_Index = 1 ? "" : "_class") "_bar"] := hwnd4 + vars.hwnd.help_tooltips["settings_iteminfo marking " (A_Index = 1 ? "global" : "class")] := hwnd0 + vars.hwnd.help_tooltips["settings_iteminfo marking " (A_Index = 1 ? "global" : "class") "|"] := hwnd2, vars.hwnd.help_tooltips["settings_iteminfo marking " (A_Index = 1 ? "global" : "class") "||"] := hwnd4 } - If settings.iteminfo.ilvl + If !vars.poe_version + { Loop 8 { + parse := (A_Index = 1) ? 7 : A_Index - 2 If (A_Index = 1) - Gui, %GUI%: Add, Text, % "xs Section Center BackgroundTrans HWNDhwnd00 w" wText, % Lang_Trans("global_ilvl") - color := (settings.iteminfo.colors_ilvl[A_Index] = "ffffff") && (A_Index = 1) ? "Red" : "Black", vars.hwnd.help_tooltips["settings_iteminfo item-level"] := hwnd00, handle := (A_Index = 1) ? "|" : handle "|" - Gui, %GUI%: Add, Text, % "ys x+" settings.general.fWidth/(A_Index = 1 ? 2 : 4) " w"settings.general.fWidth*3 " c"color " Border Center BackgroundTrans gSettings_iteminfo2 HWNDhwnd0", % settings.iteminfo.ilevels[A_Index] - Gui, %GUI%: Add, Progress, % "xp yp wp hp BackgroundBlack HWNDhwnd Disabled c"settings.iteminfo.colors_ilvl[A_Index], 100 - vars.hwnd.settings["ilvl_"A_Index] := hwnd0, vars.hwnd.settings["ilvlbar_"A_Index] := vars.hwnd.help_tooltips["settings_iteminfo item-level"handle] := hwnd + Gui, %GUI%: Add, Text, % "xs Section HWNDhwnd0 w" wText, % Lang_Trans("global_tier") + Gui, %GUI%: Add, Text, % "ys x+"settings.general.fWidth/(A_Index = 1 ? 2 : 4) " w"settings.general.fWidth*3 " cBlack Center Border BackgroundTrans gSettings_iteminfo2 HWNDhwnd", % (A_Index = 1) ? Lang_Trans("m_iteminfo_fractured") : (A_Index = 2) ? "#" : parse + vars.hwnd.help_tooltips["settings_iteminfo item-tier"] := hwnd0, vars.hwnd.settings["tier_"parse] := hwnd, handle := (A_Index = 1) ? "|" : handle "|" + Gui, %GUI%: Add, Progress, % "xp yp wp hp BackgroundBlack HWNDhwnd Disabled c"settings.iteminfo.colors_tier[parse], 100 + vars.hwnd.settings["tierbar_"parse] := vars.hwnd.help_tooltips["settings_iteminfo item-tier"handle] := hwnd } + If settings.iteminfo.ilvl + Loop 8 + { + If (A_Index = 1) + Gui, %GUI%: Add, Text, % "xs Section Center BackgroundTrans HWNDhwnd00 w" wText, % Lang_Trans("global_ilvl") + color := (settings.iteminfo.colors_ilvl[A_Index] = "ffffff") && (A_Index = 1) ? "Red" : "Black", vars.hwnd.help_tooltips["settings_iteminfo item-level"] := hwnd00, handle := (A_Index = 1) ? "|" : handle "|" + Gui, %GUI%: Add, Text, % "ys x+" settings.general.fWidth/(A_Index = 1 ? 2 : 4) " w"settings.general.fWidth*3 " c"color " Border Center BackgroundTrans gSettings_iteminfo2 HWNDhwnd0", % settings.iteminfo.ilevels[A_Index] + Gui, %GUI%: Add, Progress, % "xp yp wp hp BackgroundBlack HWNDhwnd Disabled c"settings.iteminfo.colors_ilvl[A_Index], 100 + vars.hwnd.settings["ilvl_"A_Index] := hwnd0, vars.hwnd.settings["ilvlbar_"A_Index] := vars.hwnd.help_tooltips["settings_iteminfo item-level"handle] := hwnd + } + } + Gui, %GUI%: Add, Checkbox, % "xs Section hp gSettings_iteminfo2 HWNDhwnd Checked"settings.iteminfo.override, % Lang_Trans("m_iteminfo_override") vars.hwnd.settings.override := hwnd, vars.hwnd.help_tooltips["settings_iteminfo override"] := hwnd, colors := (settings.general.lang_client != "english") ? ["Gray", "Gray"] : [settings.iteminfo.colors_tier.1, settings.iteminfo.colors_tier.6] + If vars.poe_version + Return + Gui, %GUI%: Font, bold underline Gui, %GUI%: Add, Text, % "xs Section Center BackgroundTrans HWNDhwnd0 y+"vars.settings.spacing, % Lang_Trans("m_iteminfo_rules") Gui, %GUI%: Add, Pic, % "ys hp w-1 BackgroundTrans HWNDhwnd0", % "HBitmap:*" vars.pics.global.help @@ -1303,19 +1325,19 @@ Settings_iteminfo2(cHWND) GuiControl, +cFuchsia, % vars.hwnd.settings[check] GuiControl, movedraw, % vars.hwnd.settings[check] settings.iteminfo.profile := control - IniWrite, % control, ini\item-checker.ini, settings, current profile + IniWrite, % control, % "ini" vars.poe_version "\item-checker.ini", settings, current profile Init_iteminfo() } Else If (check = "desired") { If LLK_Progress(vars.hwnd.settings.delbar_desired, "LButton", cHWND) { - IniRead, parse, ini\item-checker.ini, % "highlighting "settings.iteminfo.profile + IniRead, parse, % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile Loop, Parse, parse, `n { key := SubStr(A_LoopField, 1, InStr(A_LoopField, "=") - 1) If InStr(key, "highlight") - IniWrite, % "", ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % key + IniWrite, % "", % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % key } Init_iteminfo() } @@ -1325,12 +1347,12 @@ Settings_iteminfo2(cHWND) { If LLK_Progress(vars.hwnd.settings.delbar_undesired, "LButton", cHWND) { - IniRead, parse, ini\item-checker.ini, % "highlighting "settings.iteminfo.profile + IniRead, parse, % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile Loop, Parse, parse, `n { key := SubStr(A_LoopField, 1, InStr(A_LoopField, "=") - 1) If InStr(key, "blacklist") - IniWrite, % "", ini\item-checker.ini, % "highlighting "settings.iteminfo.profile, % key + IniWrite, % "", % "ini" vars.poe_version "\item-checker.ini", % "highlighting "settings.iteminfo.profile, % key } Init_iteminfo() } @@ -1349,19 +1371,19 @@ Settings_iteminfo2(cHWND) Sleep 150 } LLK_FontDimensions(settings.iteminfo.fSize, height, width), settings.iteminfo.fWidth := width, settings.iteminfo.fHeight := height, vars.iteminfo.UI := {} - IniWrite, % settings.iteminfo.fSize, ini\item-checker.ini, settings, font-size + IniWrite, % settings.iteminfo.fSize, % "ini" vars.poe_version "\item-checker.ini", settings, font-size If !WinExist("ahk_id "vars.hwnd.iteminfo.main) Iteminfo(1) } Else If (check = "trigger") { settings.iteminfo.trigger := LLK_ControlGet(cHWND), Settings_ScreenChecksValid() - IniWrite, % settings.iteminfo.trigger, ini\item-checker.ini, settings, enable wisdom-scroll trigger + IniWrite, % settings.iteminfo.trigger, % "ini" vars.poe_version "\item-checker.ini", settings, enable wisdom-scroll trigger } Else If (check = "modrolls") { settings.iteminfo.modrolls := LLK_ControlGet(cHWND) - IniWrite, % settings.iteminfo.modrolls, ini\item-checker.ini, settings, hide roll-ranges + IniWrite, % settings.iteminfo.modrolls, % "ini" vars.poe_version "\item-checker.ini", settings, hide roll-ranges } Else If (check = "compare") { @@ -1371,14 +1393,14 @@ Settings_iteminfo2(cHWND) Return } settings.iteminfo.compare := LLK_ControlGet(cHWND) - IniWrite, % settings.iteminfo.compare, ini\item-checker.ini, settings, enable gear-tracking + IniWrite, % settings.iteminfo.compare, % "ini" vars.poe_version "\item-checker.ini", settings, enable gear-tracking Init_iteminfo() Settings_menu("item-info") } Else If (check = "itembase") { settings.iteminfo.itembase := LLK_ControlGet(cHWND) - IniWrite, % settings.iteminfo.itembase, ini\item-checker.ini, settings, enable base-info + IniWrite, % settings.iteminfo.itembase, % "ini" vars.poe_version "\item-checker.ini", settings, enable base-info } Else If (check = "ilvl") { @@ -1388,9 +1410,22 @@ Settings_iteminfo2(cHWND) Return } settings.iteminfo.ilvl := LLK_ControlGet(cHWND) - IniWrite, % settings.iteminfo.ilvl, ini\item-checker.ini, settings, enable item-levels + IniWrite, % settings.iteminfo.ilvl, % "ini" vars.poe_version "\item-checker.ini", settings, enable item-levels Settings_menu("item-info") } + Else If InStr(check, "marking_") + { + type := (InStr(control, "class") ? (InStr(control, "undesired") ? 4 : 3) : (control = "desired" ? 1 : 2)) + If (vars.system.click = 1) + picked_rgb := RGB_Picker(settings.iteminfo.colors_marking[type]) + Else picked_rgb := settings.iteminfo.dColors_marking[type] + + If Blank(picked_rgb) + Return + IniWrite, % """" (settings.iteminfo.colors_marking[type] := picked_rgb) """", % "ini" vars.poe_version "\item-checker.ini", UI, % StrReplace(control, "_", " ") " highlighting" + GuiControl, % "+c" picked_rgb, % vars.hwnd.settings[check "_bar"] + ;GuiControl, % "movedraw", % vars.hwnd.settings[check "_bar"] + } Else If InStr(check, "tier_") { If (vars.system.click = 1) @@ -1399,24 +1434,21 @@ Settings_iteminfo2(cHWND) Return Else color := (vars.system.click = 2) ? settings.iteminfo.dColors_tier[control] : picked_rgb GuiControl, +c%color%, % vars.hwnd.settings["tierbar_"control] - GuiControl, movedraw, % vars.hwnd.settings["tierbar_"control] If (control = 1 || control = 6) { - GuiControl, +Background%color%, % vars.hwnd.settings[(control = 1) ? "delbar_desired" : "delbar_undesired"] - GuiControl, movedraw, % vars.hwnd.settings[(control = 1) ? "delbar_desired" : "delbar_undesired"] If (control = 6) Loop, Parse, % "res_weapons, attacks, spells, hitgain, crit", `,, %A_Space% { GuiControl, +c%color%, % vars.hwnd.settings["rule_"A_LoopField] GuiControl, movedraw, % vars.hwnd.settings["rule_"A_LoopField] } - If (control = 1) + Else { GuiControl, +c%color%, % vars.hwnd.settings.rule_res GuiControl, movedraw, % vars.hwnd.settings.rule_res } } - IniWrite, % color, ini\item-checker.ini, UI, % (control = 7) ? "fractured" : "tier "control + IniWrite, % """" color """", % "ini" vars.poe_version "\item-checker.ini", UI, % (control = 7) ? "fractured" : "tier "control settings.iteminfo.colors_tier[control] := color } Else If InStr(check, "ilvl_") @@ -1433,13 +1465,13 @@ Settings_iteminfo2(cHWND) GuiControl, % "+c"(color = "FFFFFF" ? "Red" : "Black"), % cHWND GuiControl, movedraw, % cHWND } - IniWrite, % color, ini\item-checker.ini, UI, % "ilvl tier "control + IniWrite, % """" color """", % "ini" vars.poe_version "\item-checker.ini", UI, % "ilvl tier "control settings.iteminfo.colors_ilvl[control] := color } Else If (check = "override") { settings.iteminfo.override := LLK_ControlGet(cHWND) - IniWrite, % settings.iteminfo.override, ini\item-checker.ini, settings, enable blacklist-override + IniWrite, % settings.iteminfo.override, % "ini" vars.poe_version "\item-checker.ini", settings, enable blacklist-override } Else If InStr(check, "rule_") { @@ -1450,7 +1482,7 @@ Settings_iteminfo2(cHWND) } settings.iteminfo.rules[control] := LLK_ControlGet(cHWND) parse := (control = "res_weapons") ? "weapon res" : (control = "hitgain") ? "lifemana gain" : control - IniWrite, % settings.iteminfo.rules[control], ini\item-checker.ini, settings, % parse " override" + IniWrite, % settings.iteminfo.rules[control], % "ini" vars.poe_version "\item-checker.ini", settings, % parse " override" } Else LLK_ToolTip("no action") @@ -2165,22 +2197,30 @@ Settings_maptracker() Gui, %GUI%: Font, norm Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.hide, % Lang_Trans("m_maptracker_hide") vars.hwnd.settings.hide := vars.hwnd.help_tooltips["settings_maptracker hide"] := hwnd - Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.loot, % Lang_Trans("m_maptracker_loot") - vars.hwnd.settings.loot := hwnd, vars.hwnd.help_tooltips["settings_maptracker loot-tracker"] := hwnd - Gui, %GUI%: Add, Checkbox, % "ys gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.kills, % Lang_Trans("m_maptracker_kills") + If !vars.poe_version + { + Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.loot, % Lang_Trans("m_maptracker_loot") + vars.hwnd.settings.loot := hwnd, vars.hwnd.help_tooltips["settings_maptracker loot-tracker"] := hwnd + } + Gui, %GUI%: Add, Checkbox, % (!vars.poe_version ? "ys" : "xs Section") " gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.kills, % Lang_Trans("m_maptracker_kills") vars.hwnd.settings.kills := vars.hwnd.help_tooltips["settings_maptracker kill-tracker"] := hwnd Gui, %GUI%: Add, Checkbox, % "ys gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.mapinfo (!settings.features.mapinfo ? " cGray" : ""), % Lang_Trans("m_maptracker_mapinfo") vars.hwnd.settings.mapinfo := hwnd, vars.hwnd.help_tooltips["settings_maptracker mapinfo"] := hwnd Gui, %GUI%: Add, Checkbox, % "ys gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.notes, % Lang_Trans("m_maptracker_notes") vars.hwnd.settings.notes := vars.hwnd.help_tooltips["settings_maptracker notes"] := hwnd - Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.sidecontent, % Lang_Trans("m_maptracker_sidearea") - vars.hwnd.settings.sidecontent := vars.hwnd.help_tooltips["settings_maptracker side-content"] := hwnd - Gui, %GUI%: Add, Checkbox, % "ys gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.rename, % Lang_Trans("m_maptracker_rename") - vars.hwnd.settings.rename := vars.hwnd.help_tooltips["settings_maptracker rename"] := hwnd + If !vars.poe_version + { + Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.sidecontent, % Lang_Trans("m_maptracker_sidearea") + vars.hwnd.settings.sidecontent := vars.hwnd.help_tooltips["settings_maptracker side-content"] := hwnd + Gui, %GUI%: Add, Checkbox, % "ys gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.rename, % Lang_Trans("m_maptracker_rename") + vars.hwnd.settings.rename := vars.hwnd.help_tooltips["settings_maptracker rename"] := hwnd + } + Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.character, % Lang_Trans("m_maptracker_character") vars.hwnd.settings.character := vars.hwnd.help_tooltips["settings_maptracker character"] := hwnd Gui, %GUI%: Add, Checkbox, % "xs Section gSettings_maptracker2 HWNDhwnd Checked"settings.maptracker.mechanics, % Lang_Trans("m_maptracker_content") vars.hwnd.settings.mechanics := vars.hwnd.help_tooltips["settings_maptracker mechanics"] := hwnd + If settings.maptracker.mechanics { Gui, %GUI%: Add, Text, % "xs Section Center xp+" settings.general.fWidth * 2, % Lang_Trans("m_maptracker_dialogue") @@ -2205,7 +2245,7 @@ Settings_maptracker() { If (type != 2) Continue - added += 1, color := !FileExist("img\Recognition ("vars.client.h "p)\Mapping Tracker\"mechanic ".bmp") ? "red" : settings.maptracker[mechanic] ? " cLime" : "" + added += 1, color := !FileExist("img\Recognition ("vars.client.h "p)\Mapping Tracker\"mechanic . vars.poe_version ".bmp") ? "red" : settings.maptracker[mechanic] ? " cLime" : "" Gui, %GUI%: Add, Text, % (added = 1 || !Mod(added - 1, 4) ? "xs Section" : "ys x+"settings.general.fWidth/4) " Border Center gSettings_maptracker2 HWNDhwnd c"color, % " " Lang_Trans("mechanic_" mechanic) " " vars.hwnd.settings["screenmechanic_"mechanic] := vars.hwnd.help_tooltips["settings_maptracker screenmechanic"handle] := hwnd, handle .= "|" } @@ -2261,21 +2301,21 @@ Settings_maptracker2(cHWND) { Case "enable": settings.features.maptracker := LLK_ControlGet(cHWND) - IniWrite, % settings.features.maptracker, ini\config.ini, features, enable map tracker + IniWrite, % settings.features.maptracker, % "ini" vars.poe_version "\config.ini", features, enable map tracker If !settings.features.maptracker vars.maptracker.Delete("map"), LLK_Overlay(vars.hwnd.maptracker.main, "destroy") Init_GUI(), Settings_menu("mapping tracker") Case "hide": settings.maptracker.hide := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.hide, ini\map tracker.ini, settings, hide panel when paused + IniWrite, % settings.maptracker.hide, % "ini" vars.poe_version "\map tracker.ini", settings, hide panel when paused If LLK_Overlay(vars.hwnd.maptracker.main, "check") Maptracker_GUI() Case "loot": settings.maptracker.loot := LLK_ControlGet(cHWND), Settings_ScreenChecksValid() - IniWrite, % settings.maptracker.loot, ini\map tracker.ini, settings, enable loot tracker + IniWrite, % settings.maptracker.loot, % "ini" vars.poe_version "\map tracker.ini", settings, enable loot tracker Case "kills": settings.maptracker.kills := LLK_ControlGet(cHWND), vars.maptracker.refresh_kills := "" - IniWrite, % settings.maptracker.kills, ini\map tracker.ini, settings, enable kill tracker + IniWrite, % settings.maptracker.kills, % "ini" vars.poe_version "\map tracker.ini", settings, enable kill tracker Case "mapinfo": If !settings.features.mapinfo { @@ -2283,28 +2323,28 @@ Settings_maptracker2(cHWND) Return } settings.maptracker.mapinfo := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.mapinfo, ini\map tracker.ini, settings, log mods from map-info panel + IniWrite, % settings.maptracker.mapinfo, % "ini" vars.poe_version "\map tracker.ini", settings, log mods from map-info panel Case "notes": settings.maptracker.notes := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.notes, ini\map tracker.ini, settings, enable notes + IniWrite, % settings.maptracker.notes, % "ini" vars.poe_version "\map tracker.ini", settings, enable notes Maptracker_GUI() Case "sidecontent": settings.maptracker.sidecontent := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.sidecontent, ini\map tracker.ini, settings, track side-areas + IniWrite, % settings.maptracker.sidecontent, % "ini" vars.poe_version "\map tracker.ini", settings, track side-areas Case "rename": settings.maptracker.rename := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.rename, ini\map tracker.ini, settings, rename boss maps + IniWrite, % settings.maptracker.rename, % "ini" vars.poe_version "\map tracker.ini", settings, rename boss maps Case "character": settings.maptracker.character := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.character, ini\map tracker.ini, settings, log character info + IniWrite, % settings.maptracker.character, % "ini" vars.poe_version "\map tracker.ini", settings, log character info Maptracker_GUI() Case "mechanics": settings.maptracker.mechanics := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.mechanics, ini\map tracker.ini, settings, track league mechanics + IniWrite, % settings.maptracker.mechanics, % "ini" vars.poe_version "\map tracker.ini", settings, track league mechanics Settings_menu("mapping tracker") Case "portal_reminder": settings.maptracker.portal_reminder := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.portal_reminder, ini\map tracker.ini, settings, portal-scroll reminder + IniWrite, % settings.maptracker.portal_reminder, % "ini" vars.poe_version "\map tracker.ini", settings, portal-scroll reminder Settings_menu("mapping tracker") Case "portal_hotkey": input := LLK_ControlGet(cHWND) @@ -2314,7 +2354,7 @@ Settings_maptracker2(cHWND) If !Blank(input) && GetKeyVK(input) { settings.maptracker.portal_hotkey := LLK_ControlGet(cHWND) - IniWrite, % settings.maptracker.portal_hotkey, ini\map tracker.ini, settings, portal-scroll hotkey + IniWrite, % settings.maptracker.portal_hotkey, % "ini" vars.poe_version "\map tracker.ini", settings, portal-scroll hotkey GuiControl, +cBlack, % cHWND Init_maptracker() } @@ -2334,7 +2374,7 @@ Settings_maptracker2(cHWND) Sleep 150 } LLK_FontDimensions(settings.maptracker.fSize, height, width), settings.maptracker.fWidth := width, settings.maptracker.fHeight := height - IniWrite, % settings.maptracker.fSize, ini\map tracker.ini, settings, font-size + IniWrite, % settings.maptracker.fSize, % "ini" vars.poe_version "\map tracker.ini", settings, font-size If WinExist("ahk_id "vars.hwnd.maptracker.main) Maptracker_GUI() If WinExist("ahk_id "vars.hwnd.maptracker_logs.main) @@ -2347,12 +2387,12 @@ Settings_maptracker2(cHWND) pClipboard := Screenchecks_ImageRecalibrate() If (pClipboard <= 0) Return - Gdip_SaveBitmapToFile(pClipboard, "img\Recognition ("vars.client.h "p)\Mapping Tracker\"control ".bmp", 100), Gdip_DisposeImage(pClipboard) + Gdip_SaveBitmapToFile(pClipboard, "img\Recognition ("vars.client.h "p)\Mapping Tracker\"control . vars.poe_version ".bmp", 100), Gdip_DisposeImage(pClipboard) GuiControl, % "+c"(settings.maptracker[control] ? "Lime" : "505050"), % vars.hwnd.settings["screenmechanic_"control] GuiControl, movedraw, % vars.hwnd.settings["screenmechanic_"control] Return } - If InStr(check, "screen") && !FileExist("img\Recognition ("vars.client.h "p)\Mapping Tracker\"control ".bmp") + If InStr(check, "screen") && !FileExist("img\Recognition ("vars.client.h "p)\Mapping Tracker\"control . vars.poe_version ".bmp") Return If !InStr(check, "screen") && !vars.maptracker.dialog { @@ -2360,7 +2400,7 @@ Settings_maptracker2(cHWND) Return } settings.maptracker[control] := !settings.maptracker[control] ? 1 : 0 - IniWrite, % settings.maptracker[control], ini\map tracker.ini, mechanics, % control + IniWrite, % settings.maptracker[control], % "ini" vars.poe_version "\map tracker.ini", mechanics, % control GuiControl, % "+c"(settings.maptracker[control] ? "Lime" : "505050"), % cHWND GuiControl, movedraw, % cHWND } @@ -2373,7 +2413,7 @@ Settings_maptracker2(cHWND) Return } settings.maptracker.colors[control] := (vars.system.click = 1) ? picked_rgb : settings.maptracker.dColors[control] - IniWrite, % settings.maptracker.colors[control], ini\map tracker.ini, UI, % control " color" + IniWrite, % settings.maptracker.colors[control], % "ini" vars.poe_version "\map tracker.ini", UI, % control " color" GuiControl, % "+c" settings.maptracker.colors[control], % vars.hwnd.settings[check "_bar"] If InStr(check, "selected") && WinExist("ahk_id " vars.hwnd.maptracker_logs.main) Maptracker_Logs() @@ -2394,7 +2434,7 @@ Settings_menu(section, mode := 0, NA := 1) ;mode parameter is used when manually { If !vars.poe_version vars.settings := {"sections": ["general", "hotkeys", "screen-checks", "updater", "donations", "leveling tracker", "betrayal-info", "cheat-sheets", "clone-frames", "filterspoon", "item-info", "map-info", "mapping tracker", "minor qol tools", "sanctum", "search-strings", "stash-ninja", "tldr-tooltips"], "sections2": []} - Else vars.settings := {"sections": ["general", "hotkeys", "screen-checks", "updater", "donations", "cheat-sheets", "clone-frames", "filterspoon", "map-info", "minor qol tools", "search-strings"], "sections2": []} + Else vars.settings := {"sections": ["general", "hotkeys", "screen-checks", "updater", "donations", "cheat-sheets", "clone-frames", "filterspoon", "item-info", "map-info", "mapping tracker", "minor qol tools", "search-strings"], "sections2": []} For index, val in vars.settings.sections vars.settings.sections2.Push(Lang_Trans("ms_" val)) } @@ -3265,7 +3305,7 @@ Settings_searchstrings() Gui, %GUI%: Add, Button, % "xp yp wp hp Hidden default HWNDhwnd gSettings_searchstrings2", ok vars.hwnd.help_tooltips["settings_searchstrings add"] := hwnd0, vars.hwnd.settings.add := hwnd Gui, %GUI%: Font, % "s"settings.general.fSize - 4 - Gui, %GUI%: Add, Edit, % "ys cBlack x+" settings.general.fWidth/2 " hp HWNDhwnd w"settings.general.fWidth*15 + Gui, %GUI%: Add, Edit, % "ys cBlack x+" settings.general.fWidth/2 " hp HWNDhwnd w"settings.general.fWidth*20 If !vars.searchstrings.list.Count() { Gui, %GUI%: Add, Pic, % "ys hp w-1 BackgroundTrans HWNDhwnd69", % "HBitmap:*" vars.pics.global.help