== Changelog == * v2.74 - Enhancements to ocr to recognize space between letters when it's smaller than expected due to anti-aliasing - OCR enhancement so it works even when 'Hotkeys are editable' is enabled - Can now press CTRL-C to detach the console window - srMouseWheel() requires an x,y position (the new safeScroll() in common_click should be used) - srClickMouseNoMove() returns the mouse cursor back to its original position in Linux now - overload for srReadScreen() now takes a region and will only update that portion of the screen specified - overload for lsCheckBox() added to accept a scale parameter - overload for lsButtonText added to accept a scale parameter - overload for srTrainTextReader() to include a character width to scan - Fix rendering issue on Intel UHD Graphics v27/28 drivers * v2.72 - Add lsGetLocalTimeString() to return the current system time pre-formatted for use in scripts - Add lsGetLocalTimeTable(includeDate) to return the current system time as a Lua table * v2.71 - Add lsEditBoxSetText to be able to update existing edit boxes in scripts * v2.70 - Add srMouseWheel to handle scrolling the mouse wheel - Allow multi-character matching in charTemplate.txt - Hide ATITD10 repository * v2.69 - Add ATITD11 repository - Allow comments in charTemplate.txt - Add additional validation to charTemplate.txt * v2.68 - Fix Thistle Mode not working since last update * v2.67 - Fix buffer overrun if there are a very large number of entries in OCR training data * v2.66 - Add optional index to srSetWindowBorderColorRange to support matching multiple window border color ranges * v2.65 - Better support scripts in sub-folders * v2.64 - Fix srGetWindowBorders and srFindTextRegion* not finding windows on the exact edges of the screen - Change srGetWindowBorders to return exactly the full window if it does not find a window border in each direction * v2.63 - Fix layout issues on Linux - srTrainTextReader now returns the resulting data * v2.61 - Fix occasional error reloading OCR data during update - Fix OCR to return actual X value of found text * v2.60 - Change OCR screen stripping to not destroy the screen buffer for later calls to srFindImage, etc - Add srReadScreenID * v2.59 - OCR improvements for ATITD10 * v2.57 - Automatically reload OCR training data (charTemplate.txt) when it changes (while training, or when downloading a new update) * v2.56 - Revert window capture method. The experimental mode can be enabled with -mode 0 or srCaptureMode(0). * v2.54 - Update text region finding for ATITD10 - Change window capture method slightly for improved performance. Running with -mode 1 will use the old mode - Add functions to modify the style of the target window for debugging capturing issues: srWindowGet/SetStyle[EX] * v2.53 - Auto-create ATITD10 game folder * v2.52 - Dropdown and selection box improvements: - Can now type first letter(s) to select elements (in dropdowns and script selection menu) - Automatically add scrollbar if it would go off the screen - Automatically scroll to show selected element * v2.51 - Disable GitReports link - causing too much spam :( * v2.50 - Add srSaveImageDebug, lsRGBAtoHSV, lsHSVtoRGBA * v2.49 - Change Thistle Mode to output history as thistle_history.txt in the current game instead of the root * v2.48 - Fix Thistle Mode to use the currently selected game (e.g. ATIT9) instead of hardcoded to ATITD * v2.47 - Hide old "ATITD" script repo; you can manually show it again by renaming it (e.g. to OldATITD) - Allow patching of .luacheckrc into scripts folder * v2.46 - Fix re-opening previously selected game to work better when manually re-launching as Admin * v2.45 - Automatically reload searched-for images if they change (restart no longer required) - Automatically re-open the previously selected game when re-launching Automato - Fix "Open Folder" not respecting Explorer replacements * v2.44 - Fix crash if negative width/height is passed to srStripRegion() * v2.43 - Fix touch events not being treated as clicks * v2.42 - Add xoffs/yoffs/woffs/hoffs settings for Linux calibration * v2.41 - Catch and display errors (such as lsRequireVersion) inside of dofile() calls. - Make more things controlled by global color ranges: srSetWindowInvertColorRange, srSetWindowBackgroundColorRange, srSetWindowBorderColorRange - Remove color range parameters from srGetWindowBorders and srFind*TextRegion * v2.40 - Add lsMouseOver * v2.39 - Add lsRequireVersion(major,minor) - Add lsDrawRect/Line/Circle - Update srGetWindowBorders() to take color range parameter * v2.38 - Load charTemplate.txt per-game * v2.37 - Add additional color range parameters to srFind*TextRegion() * v2.36 - Work around scaling bug in recent NVIDIA drivers for High DPI displays * v2.35 - Update lsEditBox to obey specified scales if the height passed is 0 (previously scales were ignored) - Add lsKeyHeld() * v2.34 - Respond correctly to per-monitor DPI settings and dynamic DPI changes (Win10) - Add "custom_dpi_scale" to settings.txt to override DPI scaling behavior * v2.33 - Fix initial click (to gain focus) not activating buttons * v2.32 - Add lsAnalyzeCustom * v2.31 - Restored Windows XP support, for real, again (broken since v2.22, probably) * v2.30 - Attempted restoration of Windows XP support (failed) * v2.29 - Add Linux support * v2.27 - Update ATITD's Thistle Mode to load from config_thistle_local.txt before config_thistle.txt - Fix some key up events missing a parameter causing some key combinations not to register * v2.26 - Fix for orphaned files and updates happening at the same time More strict filtering on orphans (only .lua, .inc, and .png are considered now) * v2.25 - Add "Orphaned Files" cleanup screen after applying an update * v2.24 - Fix OCR not working on windows taller than they are wide - Fix Automato crashing if nil is passed to text/button/UI functions * v2.23 - Fix issues with new LUA integer/float conversions to/from the C API * v2.22 - Update to LUA 5.3 and latest versions of luasocket, luasec, and openssl - Fix lsAnalyzeSilt which has been broken since v2.09 * v2.21 - Fix Automato thinking it is out of date when it is not * v2.19 - Fix crash when declining to update, add Discord link * v2.18 - Fix Console window output not working * v2.17 - Fix updating scripts with spaces in their names * v2.16 - Restored Windows XP support * v2.15 - Respect OS high DPI scaling - this can be disabled in settings.txt by setting no_high_dpi to 1 * v2.14 - Fix crash launching Automato without existing settings.txt file * v2.13 - Add settings to configuring which shift/control/alt keys to use * v2.12 - Add luasec lib for https communication (Skyfeather) * v2.11 - Add details display of which items will be updated * v2.10 - Add link to anonymous support page on GitReports; fix uninstaller missing fmod.dll * v2.09 - Updates from SkyFeather for ATITD: Bugfixes: - text searches now work on windows at the far right of the screen - text searching refactored and returns fewer false positives and false negatives - return error instead of crashing when many text events are called before readScreen. New Features: - Functions srXorScreen(), srXorScreenRegion(int x, int y, int w, int h) added - These functions modify the screen buffer by xor'ing the last read screen with the current screen, and is designed to detect changes on the screen. - Function srFunctionKeyEvent(int fKeyNum) added. Triggers a key event for keys F1-F12. * v2.08 - Updates to ATITD OCR code for Tale 7 (Skyfeather) * v2.07 - Add lsKeyDownHit, lsKeyDownUnhit, lsKeyUpHit, lsKeyDown * v2.06 - Fix issue with srClickMouseNoMove sometimes causing a drag event * v2.05 - Fix some possible issues with automatic updating * v2.04 - Add srCharEvent for sending WM_CHAR instead of WM_KEY * v2.03 - Fixed crash with "custom image" generation (multi_click.lua) Support High-DPI displays. * v2.02 - Fixed automatic migration not being triggered appropriately * v2.01 - Fixed audio not working due to new folder structure * v2.00 - Rebranded to "Automato" Added support for multiple games backed by multiple GitHub repositories. Renamed a bunch of folders around and cleaned up some common practices in scripts. Please see the wiki at https://github.com/DashingStrike/Automato/wiki for details and porting information. * v1.78 - Fixed missing .lua files for luaSocket support * v1.77 - Added luaSocket support * v1.76 - Updated ScriptingReference.txt, added additional key event automation for other kinds of programs * v1.75 - Added "run as administrator" option, and automatic detection of needing this while patching, executable is digitally signed by Dashing Strike, LLC * v1.74 - Fix automatic update code to deal with newer HTTP servers/proxies * v1.73 - Fixes from cpeds - fixed crash in findNextTextRegion(), bug in keyDown(), added srMatchHue() and srFindNearestPixel() * v1.72 - Roll back to 1.69 * v1.70 - Fixes/optimizations from cpeds * v1.69 - Added support for file renaming respecting changes in uppercase/lowercase * v1.68 - Fix for alpha issue with OCR (Tallow) * v1.67 - Added OCR (text recognition) functions (Skyfeather) * v1.65 - Fixed slow srGetWindowBorders (window_manager.lua). Added lsClipboardGet, lsClipboardSet. * v1.64 - Added integrated self-update of program executable. Executable updates can only be pushed from Jimbly, not GitHub. * v1.63 - Added lsMouseIsDown for polling mouse state (use lsMouseClick if you actually want to detect a click event on the VeggieTales window though!) Updated ScriptingReference to include srGetWindowBorders (larame) Fixed various screen scraping functions to throw an error if they are called before srReadScreen instead of crashing * v1.62 - Secured LUA execution so that it does not allow access to the OS module (running external programs) nor file I/O outside of text files in the VeggieTales directory. * v1.61 - Moved all script resources (images, wav files) into an images/ subfolder for a cleaner root * v1.60 - Added TaleScripts integration. TaleScripts is maintained by Vae, Cegaiel, and others. Added srLeftArrow, srRightArrow, srUpArrow, srDownArrow to send keypresses for those special keys (larame) * v1.59 - updated "start macro" text to indicate that putting the ATITD window in focus or changing the priority mode is required. Integrated script changes from Cegaiel, KasumiGhia, Skyfeather, Mazaki: flax improvements, clay gather, CC helper, essence creation, paper press fix. * v1.58 - added srKeyEvent function for sending keyboard presses * v1.57 - changed flax_seeds to be able to rip out beds upon finishing, and also able to repeat multiple times. Added optional support for adding to a bonfire and eating carrots to wood.lua. * v1.56 - added Fine Glass Rods/Pipes and Glass Blades to glass macro. Fixed numpad input in text entries. Added Kasiya's barley macro. * v1.55 - fixed issue in 1.54 that was causing it to hang out while "refocusing" for most users * v1.54 - updated flax macros to be more resilient to client stalls, shouldn't skip over flax as often, got Silt macro working for T5, updated single_click_stat_mon to work at 3 different font sizes. Some people reported problems with the new version, you can grab the old flax macros here: [[http://bigscreensmallgames.com/ATITD/v1.52/]] * v1.53 - updated flax macros to not care if you have "make all planted crops guild owned" * v1.52 - updated flax macros to work with any kind of flax (repeatedly does whatever option becomes present on the flax window), added easily configurable grid size and number of passes * v1.5 - First T5 release