Skip to content

handlers: cutscene viewed-state and world-map entry acknowledgements - #38

Open
Seltraeh wants to merge 1 commit into
decompfrontier:devfrom
Seltraeh:split/09-scenario
Open

handlers: cutscene viewed-state and world-map entry acknowledgements#38
Seltraeh wants to merge 1 commit into
decompfrontier:devfrom
Seltraeh:split/09-scenario

Conversation

@Seltraeh

@Seltraeh Seltraeh commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

handlers: cutscene viewed-state and world-map entry acknowledgements

Branch: split/09-scenario
Base: dev
Merge position: 09 of 13

Part of the PR #28 split. Each PR branches from dev and contains only its
own changes, so this diff is exactly one subsystem. The set is designed to be
merged in numeric order; merging all 13 reproduces PR #28 byte for byte
(verified against tree 79a4e065).

Later PRs in the series touch Handlers.hpp, GmeControllerHandlers.cpp and
UserInfo.cpp too, so once earlier ones land this branch may need a rebase.
Those conflicts are always additions on both sides — keep both. Maintainer
edits are enabled, so feel free to push the rebase directly to this branch.

Adds persistent cutscene state plus four keepalive stubs.

What's included

  • GetScenarioPlayingInfo (VRfsv4e3) returns the recorded set of watched scenarios; RaidUpScenarioInfo (R38qvphm) appends to it. Both backed by user_scenarios.
  • Four acknowledgement stubs fired during the Grand Gaia entry sequence: DungeonEventUpdate, UpdatePermitPlaceInfo, UpdateEventInfo, Chronology.

Why the stubs matter

An unregistered handler returns GmeError{cmd=Close}, which the client retries at roughly 20 requests a second. These stubs exist to stop that spam, not to implement a feature.

Safety

user_scenarios is structural and never seeded — a fresh account still sees every cutscene once.

Verification

Enter Grand Gaia; confirm no Close-error retry storm in the request log.

Adds persistent cutscene viewed-state so the client can skip scenarios the
player has already watched. GetScenarioPlayingInfo returns the recorded set
and RaidUpScenarioInfo appends to it, both backed by a new user_scenarios
table (17072026_CreateUserScenariosTable).

The table is structural and never seeded, so a fresh account still sees every
cutscene once.

Also registers four acknowledgement stubs fired during the Grand Gaia entry
sequence — DungeonEventUpdate, UpdatePermitPlaceInfo, UpdateEventInfo and
Chronology. Without them the client receives a Close error and retries at
roughly 20 requests a second.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant