fix(app): #106 gate-3 — unblock in-world streaming before chase entry (entry-hold deadlock)
Gate-3 never entered player mode: the new spawn-ground entry hold
(6dbbf95) waits for terrain under the spawn, but the K-fix1 streaming
gate skipped streaming entirely until the chase camera first engaged —
which requires player-mode entry. Circular wait; the user sat in the
fly camera with an empty world (the probe log has zero [cell-transit]
lines and no "auto-entered player mode").
K-fix1's intent was narrower than its implementation: suppress the
hardcoded-Holtburg center flash BEFORE LOGIN. The streaming tick even
has a dedicated in-world fly-camera branch (observer from
_lastLivePlayerLandblockId) that the outer gate made unreachable. The
fix gates streaming on pre-login only: once the live session reaches
InWorld, streaming runs (centered on the server-known player landblock
or the fly camera), terrain hydrates, the spawn-ground predicate flips,
and auto-entry fires. The world-geometry RENDER gate is untouched — the
pre-entry screen still shows sky only, exactly K-fix1's visual.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
6dbbf953c6
commit
e6913ac2f9
1 changed files with 15 additions and 1 deletions
|
|
@ -6563,8 +6563,22 @@ public sealed class GameWindow : IDisposable
|
|||
// the orbit camera at startup centers on the hardcoded
|
||||
// 0xA9B4 (Holtburg) and Holtburg landblocks render briefly
|
||||
// until the player spawn arrives + auto-entry switches to chase.
|
||||
//
|
||||
// #106 gate-3 (2026-06-09): narrowed to PRE-LOGIN only. The original
|
||||
// form also blocked the in-world window between EnterWorld and
|
||||
// auto-entry, which deadlocked the spawn-ground entry hold:
|
||||
// auto-entry waits for terrain under the spawn, terrain streaming
|
||||
// waited for chase mode. Once the session is InWorld the player's
|
||||
// landblock is known (the fly-camera else-if below was written for
|
||||
// exactly this window) — stream it. Pre-login, streaming stays
|
||||
// blocked, which is the hardcoded-Holtburg flash K-fix1 targeted.
|
||||
// The world-geometry RENDER gate (IsLiveModeWaitingForLogin at the
|
||||
// draw site) is unchanged — the pre-entry screen still shows sky
|
||||
// only.
|
||||
bool liveInWorld = _liveSession is not null
|
||||
&& _liveSession.CurrentState == AcDream.Core.Net.WorldSession.State.InWorld;
|
||||
if (_streamingController is not null && _cameraController is not null
|
||||
&& !IsLiveModeWaitingForLogin)
|
||||
&& (!IsLiveModeWaitingForLogin || liveInWorld))
|
||||
{
|
||||
int observerCx = _liveCenterX;
|
||||
int observerCy = _liveCenterY;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue