Display and performance issues caused by GDI handle leaks
When getting TEXTMETRIC, SelectObject does not save the default handle and restore it on cleanup
Filter method when handling format strings uses a NULL font handle, causing invalid caches to be created.
GDI handle leak when getting DPI Scaling
Typing effect does an extra out-of-bounds check for length when processing format control commands in text (although the length is exactly the length of the current display string when called, and it won't crash without checking, but looking at a dump file of a random crash says Access violation here, and it really doesn't validate the input, so it's better to protect it, and maybe it's running away somewhere! )
When moving the installation path or using cloud archiving to another computer, voice files in the history are not played because they are saved as absolute paths
Unlock Appreciation is now `/` compatible
Debugging hierarchy information is now output in positive order
Reading an illegal archive now goes back to the beginning of the chapter the archive is in.
End of text display state is not reset when loading a new script, i.e. if you go back to the title page after the end of text display and restart the game, the text is still considered to be end of display, resulting in no text being displayed until you click the mouse
Optimized memory usage estimation during garbage collection
If the text starts with a line break, archive, read the archive and archive again, the archive message changes to #NULL.
Can't skip performance using space & mouse wheel
When continuous vibration is turned off, the shutdown animation also happens in fast-forward mode
Zooming, rotating, and moving performances can now be skipped.
Memory leak when saving images if the image to be saved is not legal
command to reset fonts in font control doesn't work
If save without recording a character and reading the save file after recording the character, the character's individual voice sequence ID is incorrectly calculated from zero
Adjusted video processing logic when switching CGs
EndlessShinyBlues
When entering the save page, the default "System will load save file #1" will be displayed in the lower left corner before the mouse operation causes a refresh.
2.7.4 Update
Hibiscus
protect if `LockBitmap` returns nullptr
when you click mouse or space that will trigger page change during fast forwarding, will not exit fast forward if not clicked during display routine, which is hard to achieve in FF mode
history reused text splitter but didn't protect it's original value, if you open history page, close, then save, the info in save data is not current line displayed
`@Forward` / `@Backward` used param that only updated during performance routine during parsing routine, which causes order update error
parse error if current line is not current language
parse error if blank character follows the language prefix
2.7.2 Update
EndlessShinyBlues
`FFJmp` parameter is not adapted, causing location-specific `/~` jumps in some chapters to not work correctly!
Hibiscus
Empty names with commas are incorrectly displayed in `Screenshot Tag` when the role mapping does not exist and there are more than two non-existing gig objects
Using the internal value handling hierarchy, objects now participate in sorting before the end of the destruction transition
Sortable transitions are not destroyed when history jumps
`PatternFade` does not take `KeepResize` into account
String object Shader control
`#OperationWait`, player operation wait
2.5.2 Update
EndlessShinyBlues
Allow button clicks before the end of the title screen transition animation
Hibiscus
Text consisting of line breaks only, incorrectly used parser internal text during escape phase
Text disappeared when DPI scaling was not `100%`, `125%`, `150%`, `200%`
Video playback with `@VideoWait` enabled now allows to specify if skipping is allowed or not, and a prompt is displayed when the player enters an action.
The state specified by `@VideoWait` is now automatically reset after video playback ends.
The three components of RGB overlay now change at a percentage rate.
New RGB parameter control commands.
`@Backward` and `@Forward` will not be executed when ignoring order parameters.
Rotation parameters are not copied after transition is complete.
Rotation is not updated based on back
2.2.3 Update
fix shake issues
2.2.2 Update
you can use mouse or keyboard to call an unclickable exit confirm in title before animation finishes
[Debug]box viewer not ordered
[Debug]box viewer now will be destroyed when history jump
2.2.0 update
Now you can use the side buttons to return to previous page. Note that it needs to send the message by WM_APPCOMMAND
Due to legacy codes are not cleaned up, when starting / restarting applications, app will try to shut down steam, and may cause random crash sometimes.
When moving to SDL Mixer as audio backend to support multi-instance playing of FFMpeg, forget to reset the finish flag of packet queue. When video is short enough, decode part will though it's finished by reading the flag, but loop condition will not be met as it checks the time stamp, which causes video will be paused incorrectly at the beginning after random times of loops.
2.1.0 update
When changing resolution, title bar won't be moved out of all screens
Now allows user to adjust the size of application, when user finish adjusting, app will auto make the ratio correct
2.0.1 update
fix resolution auto resizes to 720P on hi-resolution devices with big DPI scaling factors, e.g., 2K+ notebooks.