* Reorganize update sequence
* Add debug logging to debug frame timing issues
* Simplify and streamline
* Add hacks to match RPG_RT open/close timing and intpreter
* Fix waits for printable and non-printable characters.
It appears that RPG_RT animates the message open and close *after*
the main loop. This causes a lot of complications for us, because much
code depends on whether the message window is visible or closing.
To workaround this difference we add close started and close finished
flags and wrap them.
Make Cache::System() return null and add
Cache::SystemOrBlack().
This would avoid potential flickering in cases where
async system graphic change from nothing to something.
Also, consistent with Cache::System2()
* RPG_RT compatible LSD chunks
* If graphics_name.empty(), message_stretch and font_id are 0
and we fallback to database
* If !graphics_name.empty(), all 3 parameters are taken literally
* Refactor the Game_System Set() interface to uphold these invariants
* Refactor the Game_System Get() interface to fallback
* Encapsulate graphic change logic within the Cache to simplify users of
system graphics.
* Reset system graphic when returning the to the title screen.
* Refactor interface to be more user friendly
* Frame accurate timer behavior See #1702 test cases
* Fix : visibily to use timer frames, so that it is save game
compatible.
This fixes a bug when code checks for "Timer >= 1s" followed by "Timer <= 0".
Because EasyRPG checked the frames both tests failed for the frames 1-59 (less then 1s, more then 0s).
The value is now rounded up to next second, to match RPG_RT behaviour.
Thix fixes another bug in CommandControlVariable: For Timer reads the variable was set to the frames, not to seconds.
Fix#1165