big work
what was reliable before is now not, in recent versions of renpy, which is why we added that new config (which I put in say.rpy, but it can be moved somewhere else)
Also fixes the game_menu's title position, incidentally
some changes are incompatible with my diary and achievement branches, respectively, they will need to be merged with a bit of manual care
don't use single-underscore names
if available, use the thread-safer invoke_in_main_thread (not required when setting the global variables)
set __lock to True outside of the thread, otherwise if the thread starts late, the while loop is skipped
call get_character_object in the main thread
(cherry picked from commit 7a25a13926)
- don't use a reserved name (starting with an underscore)
- use a file-local mangled name (starting with two underscores
- use renpy.dynamx to cleanup the variable automatically
(cherry picked from commit 3e86094b0b)
* Fixed outfit deletion tab not updating the list of items
* Fixed Tonks' public requests menu crashing due to an omitted result type
* Removed manual image rebuilding in wardrobe (superseded)
* Added a UI lock mechanism to avoid render stalls
* Fixed initialization issue due to python init offset for android devices
* Fixed a hang caused by joining threads on android devices
* Fixed a race condition when forcefully stopping threads
* Implemented threading and lazyloading for the main doll
* Added global rebuild method for the dolls
* Updated save compatibility patch
* Fixed wardrobe categories showing locked items
* Fixed Cho's suspenders invalid image
* Fixed rebuild_wardrobe_icons referencing a global instead of a local
* Fixed get_equipped_wardrobe_item nulls
* Added debug info for debugging threaded icons
* Implemented new DollThread method with thread-safe locking mechanism and pickling support for thread event queues
* Added memoization for wardrobe elements
* Added threading for various wardrobe-related methods
* Added lazyloading (to avoid render stalls)
* Added button generation for DollCloth and DollOutfit instances
* Significantly reduced code repetition inside the wardrobe loop
* Added new methods for the Doll, and improved others.
* Fixed viewport adjustment values resetting on interaction
* Fixed character chit-chats performance issues
* Updated saves compatibility patch
* Fixed character cheeks and tears layers being stuck in both gameplay and character studio
* Fixed missing reset properties during end event labels
* Improved updater hint for potential edge cases
* Added indicator for unscheduled items in the wardrobe's schedule tab
* Fixed var references
* Fixed characters not displaying in certain events.
* Fixed characters positioning in certain events.
* Fixed Madam Hooch refusing to exit the office.
* Fixed and replaced getattr methods in some instances referencing character states
* Fixed get_character_unlock, and get_character_mood referencing wrong var and store
* Fixed lint self defining character tag instead of using a global func
* Added missing hooch head icon
* Removed leftover references to update_interface functionality
* Fixed missing directory for expressions causing crashes in character studio
* Fixed unlock state detection in character studio
* Fixed hooch studio crash
* Fixed double fade effect when give_reward label was called
* Fixed Susan's face cum layers not displaying due to wrong file structure
* Fixed card game tutorial highlight placement
* Fixed wardrobe vertical scrollbar styling not adhering to time of day
* Fixed card game tutorial being covered by narrator fade
* Fixed parcel icon references
* Fixed character studio pose reference
* Fixed and updated expression editor to work with new paths, and disabled editor initialization until it is explicitly executed
* Fixed common wardrobe functions initialization offset
* Fixed typos
* Overhauled colour codes support with Ren'py supplied Color class
* Added support for hexadecimals alongside colour tuples w/ backwards compatibility
* Reduced colour assignments overhead
* Converted all colour lists into hexadecimals for all characters
* Added DollBodypart class to allow more extensive modding support for characters, along with dedicates layers for breasts, hips and so on...
* Added more bangs into DollClothDynamic, allowing tracking of singular objects and the ability to chainload the IDs
* Added get_character_body global method
* Added istype global method
* Improved caching, layering for dynamic clothes
* Improved hashing for Doll instances
* Improved readability and improved internal naming convention for Doll-type classes
* Removed dedicated buttplug slot (superseded by multislot reimplementation)
* Fixed clothing supplied skin layer issues with zorders
* Fixed DollClothDynamic __repr__ lack of quotes
* Fixed Hermione's open_wide_tongue mouth
* Fixed Hermione's tattoos missing images
* Fixed Cho's 'goodbye' after-summon skit using wrong number of expressions
* Refactored DollFace
* Refactored DollBody
* Refactored DollCum
* Refactored DollCloth
* Refactored Doll
* Refactored clothing item zorders
* Refactored implementation of body, face, cum, clothing layers
* Refactored function calls
* Removed DollLipstick
* Added DollMakeup class, allowing adding dynamic clothes tracking face states
* Added DollClothDynamic, allowing dynamic clothes tracking other cloth states with bangs support
* Added cache to frequently called functions, drastically reducing the overhead
* Added hash system, reducing clone redundancy
* Added layer modifiers support for all types (face, body, cum, clothes etc.)
* Added support for an arbitrary number of equipped multislot clothing items (makeup, tattoos, piercings, etc.)
* Simplified initialization for clothing items and dolls
* Simplified class function calls
* Reduced the number of image creation calls
* Added hue support for additional skin layers
* Added displayable support to image cropping function
* Replaced store cache with built-in functools cache for _list_files function
* Refactored all character files
* and more...
* Fixed Luna sprite persisting throughout Wardrobe context
* Fixed regression related to wardrobe chit-chats due to the mixing of renpy and python scopes
* Rewritten and re-implemented color picker in shading language
* Vastly improved performance
* Added live preview back
* Overhauled interface
* Code Cleanup
* Reduced import overhead