Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interpreter timing issues #1606

Closed
fmatthew5876 opened this issue Jan 27, 2019 · 1 comment

Comments

@fmatthew5876
Copy link
Contributor

commented Jan 27, 2019

Here are a list of issues discovered that are related to the event interpreter timing. These have to do with different events running at the wrong time or incorrect frame delays in execution timing.

  • Parallel events triggering off of airship aboard during ascent are off by 1 frame

Create this parallel map event

If boarded airship:
  OpenSaveMenu

Start a new game, and make the player board the airship.

In the save game, remaining_ascent will be 248 in RPG_RT, but 240 in Player. That is because 1 frame has passed between when the player boarded (ascent started) and when the conditional triggers. Once the conditional branch is entered, ascending will complete in 32 frames in RPG_RT and 31 frames in Player. This can cause bugs in event code which wants to do things immediately after ascent finishes.

This also occurs if you wrap the above event in a Loop:

  • Movement is not processed on the first frame of a new game for Player and Vehicles

Many examples in #1567 show strange behavior on very the first frame of a new game. Move routes and GetOnOffVehicle on the first frame setup the action, but don't animate it for that frame like they would when executed any other time.

  • Move Route: cases where stop_count=65535, move_route_overwritten=1, and move_route_index=0 on first frame.
  • GetOnOffVehicle: cases where remaining_step=256 on first frame

Adding any kind of delay such as Wait 0.0s to the beginning of the event avoids these behaviors.

This is also the likely cause of #1588

  • Timing error with touch events and Vehicles

Setup these vertical tiles:

Tile Event
Grass
Water
Water Event (see below)
Water Player aboard ship

Create this touch event

Move Ship, Freq=8, Up
Wait 0.0s
GetOnOffVehicle

In RPG_RT, the player will disembark into the top water tile and the ship will also be in the top water tile. In Player (with #1601), the player will disembark into the top water tile and the ship will remain on the event's water tile.

Removing the wait or waiting for more than 1 frame, the behaviors are the same.

@fmatthew5876

This comment has been minimized.

Copy link
Contributor Author

commented Mar 13, 2019

The third test case is fixed by #1628 and the first test case is fixed by #1687

So after #1687 this issue is fixed

@fmatthew5876 fmatthew5876 referenced this issue Mar 13, 2019
1 of 1 task complete

@carstene1ns carstene1ns added this to the 0.6.1 milestone Apr 7, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.