* Fixed CG not being hidden at the end
* Fixed hide character calls
* Smoothened camera animation
* Fixed outfit checks
* Fixed lockhart tattoo item checks and calls
* Replaced old calls in added clothing choice.
* Added clothing state check for strip so it won't play the sound if she's already naked.
* Minor writing tweaks.
* Added arbitrary cum layers support for dolls
* Improved camera handling during Hermione sex scene
* Added additional clothing options during Hermione sex scene
* Fixed texture leak in Hermione sex scene
* Fixed image prediction in Hermione sex scene
* Converted Hermione face calls during sex scene to layered images
* Reorganized hermione sex scene assets
* Added support for all Doll features, including colourable clothes and modding
* Added cache
* Simplified animation generation
* Added 'register_pose'
* Fixed sprite positioning in some events
* Fixed story inconsistencies, spelling mistakes, and grammar in some events
* Fixed leading house checks in some events
* Fixed Cho's Sweater 2
* Added sanity check for mismatched number of textures and colours for clothing items, with a user-friendly warning rather than a hard crash
* Fixed pulse_hover animation resetting
* Fixed Hermione's hold book pose
* Fixed minor story inconsistencies and spelling
* Fixed Tonks' hair colour not resetting
* Blocked Hermione from being summoned during Tonks' investigation
* Blocked Snape from being summoned during the day (It's not like he'd help anyway)
* Updated tutorials to reflect these changes
* 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 the ability to add fan-made characters, and to modify the existing ones through modpath overrides
* Changed modpath initialisation to automatically add 'mods/' directory
* 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
* Converted Hermione's potion body changes into clothing items for better maintainability and to provide modding support
* Composited body images of characters into singular files to reduce layering complexity and overhead
* Fixed Luna's eyemasks
* Added dynamic cum layering based on clothing and facial states w/ backwards compatibility
* Fixed layers zordering
* Refactored default layer dicts
* Fixed repr class name in DollClothDynamic
* Added back and front zorder modifiers to cum layers
* Fixed cum layers not updating on call
* Fixed skin layers fighting for zorder with the body
* 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...
* Disabled detection of orphaned scripts for non-devs
* Added cache to renpy.list_files to reduce IO overhead (~14s -> ~0.01s per 10k calls)
* Fixed wrong module call in weather.
* Fixed Genie flashing his goods in stats menu
* Fixed lipstick causing a crash in saved outfits due to missing zlayers
* Fixed debug print spam
* Version bump
* Added new Genie Stripper Santa Outfit.
* Added experimental Genie Outfit cheat.
* Refactored santa speaker to utilize a single `gen` speaker and applied the change to all affected events.
* Improved base Genie model, the default robes outfit and image creation code.
* Added new Genie Stripper Santa Outfit.
* Added experimental Genie Outfit cheat.
* Refactored santa speaker to utilize a single `gen` speaker and applied the change to all affected events.
* Improved base Genie model, the default robes outfit and image creation code.
* Split 'Inspect her body' into sections, to make the events more manageable.
* Added new content for Tier 2.
* Added new content for Tier 3.
* Added a flag for Cho's blowjob events.
* Fixed Luna sprite persisting throughout Wardrobe context
* Fixed regression related to wardrobe chit-chats due to the mixing of renpy and python scopes
Mirror of Erised:
* Set doll positioning at start of mirror stories to ensure dolls are correct.
* Adjusted Doll flip on "A booty at sea" story.
* Removed Doll Cum layers on "A booty at sea" story as genie cums inside/on her back.
* Improved "A bad time to disrobe" writing.
* "Flash your tits", Minor writing fix
* Added custom animation/transform support
* Added Rollback support
* Added special layers support
* Rewritten parts of code responsible for displaying the animation
* Rewritten animation creator to mirror Doll-like file behaviour
* Fixed mouse button events handling
* Fixed raise error type
* Fixed inability to add more than one layer for each frame
* Replaced PY2 format with f strings for clarity
* Implemented automatic clothing system
* Implemented Skipping support
* Implemented interrupt support
* Implemented pause support
* Implemented Loop Pathfinding (A -> B -> A)
* Implemented Loop Pathfinding with Reverse (A -> B -> C -> B -> A)
* Implemented Repeat Pathfinding (A -> B x2)
* Implemented Repeat Pathfinding with wrap (A -> B -> A x2)
* Implemented Repeat Pathfinding with Reverse (A -> B -> C -> B -> A x2)
* Added Cho chibi placeholders
* Added squirting to Hermione masturbate favour.
* Added "squirt_transition" image variants (mix of "squirt" and "squirt_post" for when she cums multiple times).
* Removed unnecessary code that's already part of end label.
* Removed "set music volume" for one of the events.
* Posed Low level Public event and intro.
* Added alternative low public tier intro writing when Hermione's personal tier is higher.
* Added clothing equips at start of public return to avoid it being overwritten by outfit scheduler.
* Adjusted some wording to improve flow of conversation.
* Posed Vibrator event Main Intro section.
* Added repeat writing variants at start of event
* Adjusted stripping/equipping sections.
* Adjusted some writing slightly about her taping on the vibrators.
* Fixed leaking color on basic bra.
* Posed part of the personal vibrator event
* Adjusted "closed" eyes slightly on personal vibrator CG
* Fixed "base underwear" so it matches "vibrator underwear"
* Removed itertools dependency
* Removed substitution for variables (redundant)
* Fixed a crash caused by anonymous variable assignment inside a nested lambda function, inside list comprehension due to unsupported ast magic (what a mouthful)
* Improved styling
* Fixed Xray displayable not updating when its children supplied no image attributes.
* Defined default zorders on children of Xray displayable
* Posed parts of the event