-
Notifications
You must be signed in to change notification settings - Fork 212
Open
Description
Our messaging system needs a refactor. We need to determine frame accuracy for messages and what is / is not prohibited when they are up.
Timing from Cherry:
Main update methods for common events run (they just check if they are parallel process and the condition is met and then invoke the parallel process worker for them)
Main update methods for map events run (they do a bunch of things, described in my previous post - but actually even more, because after the check for whether there is any active event page, they will run their parallel process worker and then check once more for active)
Message window updates
Timer updates
Screen effects update
Pictures update
Foreground worker runs
Panorama updates
Test cases still broken:
- 17 - message box glitch not fully animated, need to affect on show screen.
- 27 Test 2 - box doesn't close.
- 42 - We don't interrupt the message
- 43 - Currently off by 1 frame.
- 44 - We set show_message chunk but it gets cleared every frame due to Game_Map::UpdateForegroundEvents() always calling Game_Interpreter::Clear() even when no events run.
- 45 - Wrong timing
TBD:
- Do another performance testing pass
- Test performance of overflow window width.
- Test show screen against window animation
- Backspace timing? Peuteris Grey Intro
Things to verify from RPG_RT:
- Move show choice continuation into message class and handle
subcommand_path
properly. - EV01: Save, EV02: Choices -> Save and load the game message window dissapears RPG_RT bug ❗
- Interpreter execution test cases #1707 Test case 6, save game runs an extra frame while message box is closing, before the continuation triggers.
- How is foreground interpreter execution blocked by active message?
- Only when message is pending, not when closing
- How is parallel interpreter execution blocked by active message?
- Only when its own message is pending and visible
- Behavior of "Allow other events to move"
- What event commands blocked by an active message?
- See Test 19
- What active event commands / conditions block a message from starting?
- Only other messages, with specific rules for FG and Parallel
- How does RPG_RT handle message ownership and
show_message
chunk- Caller of message sets this chunk
- Appears to be cleared when message ends?
- When is face reset
- On foreground event finish
- How many frames to open and close message box
- 8 frames
- How does open and closing behave with foreground events?
- New messages can appear instantly if created on last frame, otherwise wait for close
- How does open and closing behave with parallel events?
- New messages blocked until close finishes
- Do messages have any wierd effects when triggered during pre-update?
- No, they just wait until the first frame to start animating
- message update not run during preupdate
- How to messages behave when called when screen is erased?
- When msg is updated in the main loop?
- After all events, before timers
- Frame timing of different message speed settings?
- Can we cleanup and refactor the code to improve code quality?
- When you substitute an actor name with
\n[]
and it has an escape character like\^
? - Level up message timing
- Class change message timing
- Does the inn use show message chunk?
- Message conditions blocking ShowMessage
- Message conditions blocking ShowChoices
- Message conditions blocking ShowNumberInput
- Message conditions blocking ShowInn
- Change EXP / Level spawning a box while other box active?
- ChangeHP kills party while message is up?
- Check all scenes, what about gameover?
- Race conditions with parallel change system graphic
- Inn cancels pending message
- GetOnOffVehicle behavior with message up?
- VehicleTeleport while message up?
- Interaction with Wait For Key
- Interaction with KeyInputProc
- ChangeClass Message with message
- Can FG run other commands while msg box closing?
- yes
- Message behavior blocking timers?
- Test delay of full width japanese characters
- Figure out skip frame logic for speed 1 w.r.t. wide chars vs half chars