acdream/src/AcDream.Core/World
Erik 18fce7bb5a fix #28: port retail's sky default-script playback (aurora) and the particle facing law
The aurora was never missing data — it was a missing mechanism plus a
misread. New decompile evidence closes the April-2026 contradiction:
retail plays the sky carriers' PES through the Setup's own DefaultScript
(GameSky::MakeObject @0x00506EE0 -> CPhysicsObj::makeObject @0x00513970
sets state|=0x80000; animate_static_object @0x00513DF0 ticks
ScriptManager + ParticleManager). The pes_id column stays dead — that
half of the April finding stands; the ids are byte-equal mirrors.

- SkyPesFrameController is now the production owner (ACDREAM_ENABLE_SKY_PES
  deleted): script ids resolve from the Setup DefaultScript
  (SkyObjectData.DefaultScriptId; the pes_id column is a one-time-logged
  cross-check), slots persist by (index, gfx id, properties) per
  CreateDeletePhysicsObjects @0x005073C0 — a day-group swap keeping the
  carrier no longer restarts its emitters — and stale slots stop before
  replacements claim the slot-derived owner id.
- RetailParticleFacing ports calc_draw_frame @0x0050DFA0: degrade mode 2
  faces the viewer roll-free (set_vector_heading) instead of the camera
  plane; modes 3/4/5 spin the authored frame around one local axis
  (rotate_around_axis_to_vector) — Dereth authors 54 mode-5 emitters that
  previously got no facing at all; 1,583 mode-2 emitters get the exact
  law; authored/mode-1 paths are unchanged.
- The 2026-08-23 'whole-sky tint' was the Rainy-group lightning/thunder
  PES playing at the debug anchor inside their 0.03-0.19 window, not the
  aurora: the aurora is nine faint viewer-facing glows pulsing on
  6.7/15/55-minute rebirth cycles, in every day group, all day.

Research: docs/research/2026-08-23-sky-default-script-port.md.
Register: AD-112 filed (camera-anchored synthetic owners vs sky-cell
physics objects). ISSUES #2 corrected (the playback ban is lifted by the
new evidence); #28 fix landed pending the connected night gate.
Tests: RetailParticleFacingTests (16), SkyPesFrameControllerTests (6);
hermetic suites App 6,076/0, Core 4,905/0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 15:28:59 +02:00
..
Cells wip(physics): collision O(changed) delta-commit (O1-O3) - ON HOLD, feel-test failed 2026-08-02 20:06:59 +02:00
DerethCalendar.cs refactor(runtime): own world environment state 2026-07-26 16:45:04 +02:00
DerethDateTime.cs refactor(runtime): own world environment state 2026-07-26 16:45:04 +02:00
InteriorEntityIdAllocator.cs feat(vfx): port retail effect scheduling and delivery 2026-07-14 09:25:44 +02:00
LandblockCollisionBuild.cs feat(streaming): shadow-publish flat collision assets 2026-07-25 16:38:54 +02:00
LandblockLoader.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
LandblockStaticEntityIdAllocator.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
LoadedLandblock.cs feat(streaming): PhysicsDatBundle on LoadedLandblock (datLock fix scaffold) 2026-06-23 09:31:26 +02:00
MeshRef.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
PaletteOverride.cs feat(net+app): SubPalette overlays applied to palette-indexed textures (Phase 5b) 2026-04-11 16:30:08 +02:00
PhysicsDatBundle.cs refactor(physics): remove parsed collision graphs 2026-07-25 18:21:19 +02:00
ProceduralSceneryIdAllocator.cs fix(render): correct foliage-wind classification, receiver/caster desync, and frame binding (Campaign VM VM6 review) 2026-08-23 01:54:36 +02:00
SceneryGenerator.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
SkyDayGroupSelector.cs refactor(runtime): own world environment state 2026-07-26 16:45:04 +02:00
SkyDescLoader.cs fix #28: port retail's sky default-script playback (aurora) and the particle facing law 2026-08-23 15:28:59 +02:00
SkyState.cs fix(diag): Campaign V slice V7 commit 2 - pin the world clock, because the route never did 2026-07-28 19:34:13 +02:00
StreamingReadinessGate.cs fix(#192): close login streaming race — gate on a known real position, not session state 2026-07-09 15:57:43 +02:00
TeleportAnimSequencer.cs fix(runtime): align portal and movement presentation 2026-07-17 08:48:27 +02:00
WbSceneryAdapter.cs feat(O-T2): extract pure stateless helpers to AcDream.Core.Rendering.Wb 2026-05-21 15:13:26 +02:00
WeatherState.cs feat(ui): Campaign OP slice OP4 — the Character tab 2026-08-11 04:31:34 +02:00
WorldEntity.cs fix(vfx): resolve an entity's cell through one owner so effects follow it 2026-08-03 14:02:03 +02:00
WorldView.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00