Commit graph

  • 4e60c03a74 feat(D.2b): chat text selection + Ctrl-C copy Erik 2026-06-14 23:21:28 +02:00
  • 36bd3522f4 feat(D.2b): retail dat-font (Font 0x40000000) for vitals numbers Erik 2026-06-14 23:02:35 +02:00
  • ff29787f12 fix(D.2b): vitals from the real stacked-window LayoutDesc (0x2100006C) Erik 2026-06-14 22:50:17 +02:00
  • ada863980c feat(D.2b): scrollable retail chat window (read-only foundation) Erik 2026-06-14 22:12:12 +02:00
  • 1453ff7da2 feat(D.2b): retail 3-slice vital bars + headless mockup verifier Erik 2026-06-14 21:40:11 +02:00
  • d2b8a51426 docs: wrap-up — file #137 (dungeon collision) + #138 (teleport-out world loading); close #135/#136 Erik 2026-06-14 21:08:40 +02:00
  • 84630517e3 feat(D.2b): vital bars use retail dat sprites (back track + fill-cropped front) Erik 2026-06-14 19:45:54 +02:00
  • 56ee5eff60 chore(D.2b): CLI dump-vitals-bars — read vitals LayoutDesc meter sprites Erik 2026-06-14 19:39:33 +02:00
  • b303baf4a1 fix(D.2b): windows not anchor-managed (regression: move/resize was reset each frame) Erik 2026-06-14 19:06:58 +02:00
  • fd0ecfcf2e docs: close #136 — red cone was an editor-only placement marker (fixed 6f81e2c) Erik 2026-06-14 19:05:03 +02:00
  • 6f81e2c91d fix(render): hide editor-only placement markers in dungeons — port retail's degrade-to-nothing (#136) Erik 2026-06-14 19:03:08 +02:00
  • f911b5f0af feat(D.2b): anchor layout — vital bars stretch with window; drop Vitals heading Erik 2026-06-14 18:58:58 +02:00
  • af91b8432a feat(D.2b): per-window resize-axis lock; vitals window is X-only (retail) Erik 2026-06-14 18:51:56 +02:00
  • 0500646f08 fix(D.2b): draw UI chrome behind content (TextRenderer Flush layer order) Erik 2026-06-14 18:49:52 +02:00
  • de4f0167ef feat(D.2b): window resize (UiRoot edge-grip resize-drag mode) Erik 2026-06-14 18:27:57 +02:00
  • b4ed8e7908 docs: file #136 — red-cone dungeon decoration renders red (frozen-phase render divergence) Erik 2026-06-14 18:11:15 +02:00
  • 4acecffcd6 feat(D.2b): wire UiHost input + moveable windows (UiRoot window-drag + WantCapture gate) Erik 2026-06-14 18:02:27 +02:00
  • 2f4520ee12 docs(D.2b): mark D.2b + D.4 shipped (Spec 1 — markup engine + retail vitals) Erik 2026-06-14 17:50:42 +02:00
  • 019350fa31 feat(D.2b): IUiRegistry plugin UI surface + buffered drain into UiHost Erik 2026-06-14 17:46:37 +02:00
  • 07bf6cbf60 feat(D.2b): MarkupDocument (XML -> UiElement tree); vitals panel from vitals.xml Erik 2026-06-14 17:38:07 +02:00
  • 97bd1d2f09 feat(D.2b): controls.ini stylesheet loader + apply title color Erik 2026-06-14 17:31:55 +02:00
  • 2c923755c4 fix(G.3): place the player on the cell floor for an indoor dungeon login (#135 follow-up) Erik 2026-06-14 17:13:12 +02:00
  • b18403da02 feat(D.2b): wire UiHost + live retail Vitals panel (render-only); retire TS-30 Erik 2026-06-14 16:56:57 +02:00
  • 712f17f0f2 fix(G.3): pre-collapse dungeon streaming at login/teleport — kill the login FPS ramp (#135) Erik 2026-06-14 16:46:56 +02:00
  • 064ef41ce4 feat(D.2b): UiMeter vital bar + fill-geometry tests Erik 2026-06-14 16:38:07 +02:00
  • 0bf790c8bf feat(D.2b): UiNineSlicePanel — 8-piece retail window frame + geometry test Erik 2026-06-14 16:36:11 +02:00
  • 8e91805206 feat(D.2b): Step-0 chrome sprites confirmed + direct-RenderSurface upload path Erik 2026-06-14 16:32:27 +02:00
  • 66888d2c8e fix(textures): DecodeSolidColor null-safe against null ColorValue Erik 2026-06-14 14:36:07 +02:00
  • a100bc37a7 docs(G.3): file #134 (ramp slide) + #135 (login FPS); record #133 grey+FPS fixes Erik 2026-06-14 14:33:07 +02:00
  • c9eef1d7cd feat(D.2b): textured-sprite path in TextRenderer + UV-rect DrawSprite Erik 2026-06-14 14:28:29 +02:00
  • 3b93f91ebe feat(A7): LightBake Core — verified per-vertex static-light burn-in (foundation, not wired) Erik 2026-06-14 14:27:45 +02:00
  • 3e641339e9 chore(G.3): strip the #133 temp diagnostics Erik 2026-06-14 14:27:45 +02:00
  • 626d06ebc1 feat(D.2b): RuntimeOptions.RetailUi + AcDir toggles Erik 2026-06-14 14:25:21 +02:00
  • 35152248f1 docs(D.2b): implementation plan — retail panel frame + live Vitals Erik 2026-06-14 14:21:56 +02:00
  • 3e006d372a fix(G.3): register connector cells in the PHYSICS graph too — viewer-cell transit (#133) Erik 2026-06-14 14:21:41 +02:00
  • d50023f6d9 docs(D.2b): re-ground spec onto existing AcDream.App/UI scaffold Erik 2026-06-14 14:13:30 +02:00
  • de9229eed5 docs(D.2b): design spec — retail panel frame + live Vitals (Approach C) Erik 2026-06-14 14:00:14 +02:00
  • d90c5385d2 fix(G.3): register portals-only connector cells for visibility (#133 ramp grey) Erik 2026-06-14 13:49:02 +02:00
  • 7d8da99f79 fix(G.3): collapse dungeon streaming at the snap, not after landblock finalize (#133) Erik 2026-06-14 10:06:17 +02:00
  • 53e22a350d fix(G.3): relocate the player entity to its CELL landblock indoors, not position-derived (#133) Erik 2026-06-14 09:52:01 +02:00
  • 2561918a70 fix(G.3): pin dungeon collapse to the cell's landblock, not the position-derived one (#133) Erik 2026-06-13 22:51:50 +02:00
  • d9e7dd65e9 fix(G.3): hysteresis on the dungeon streaming gate — stop collapse↔expand thrash (#133) Erik 2026-06-13 22:43:18 +02:00
  • 56860501b6 fix(G.3): collapse streaming to the single dungeon landblock indoors (#133 FPS) Erik 2026-06-13 22:32:56 +02:00
  • 007e287309 fix(A7): port retail calc_point_light (1-dist/falloff) ramp — kill the "spotlight" hard edge (#133) Erik 2026-06-13 21:48:46 +02:00
  • 5872bcf075 perf(lighting): allocation-free nearest-N light selection (#133 FPS) Erik 2026-06-13 21:26:17 +02:00
  • 0fe479ba06 docs(A7): pin the GENERAL light over-saturation cause (intensity=100 mis-read) + FPS note Erik 2026-06-13 21:19:47 +02:00
  • 1e70a5a484 fix(G.3 A7): torch range = Falloff x 1.5 (retail rangeAdjust) — wider pools (#133) Erik 2026-06-13 20:58:03 +02:00
  • 9e809bc661 diag: ACDREAM_PROBE_LIGHT [light-detail] — per-light range/intensity/cone (#133 A7) Erik 2026-06-13 20:55:14 +02:00
  • 167f05c4fa docs(G.3 A7): record dungeon light-selection fix (activeLights 2->8) + the 0.30 ambient follow-up Erik 2026-06-13 20:45:29 +02:00
  • a80061b0c2 fix(G.3 A7): dungeon lighting — select 8 NEAREST lights, not viewer-in-range (#133) Erik 2026-06-13 20:35:01 +02:00
  • d6fb788c96 diag: ACDREAM_PROBE_LIGHT — log dungeon ambient/sun/active-light state (#133 A7) Erik 2026-06-13 19:43:27 +02:00
  • a40c38e8bd milestone(G.3): dungeons RENDER — #95 was a Bug-A symptom, not an unbounded flood Erik 2026-06-13 19:36:04 +02:00
  • 47ae237e7b fix(G.3): recenter streaming onto the spawn landblock at login (#133) Erik 2026-06-13 19:00:14 +02:00
  • 95d9dab4bb test(#95): headless dungeon-flood diagnostic — measure visible-cell count on 0x0007 Erik 2026-06-13 18:52:00 +02:00
  • dd7b73a837 docs(G.3): file login-INTO-a-dungeon gap (streaming not recentered at login) Erik 2026-06-13 18:39:45 +02:00
  • c8188e0ed6 docs: correct stale UCG CellGraph comments — the graph is active, not inert Erik 2026-06-13 18:35:58 +02:00
  • 70c559c1ba docs(G.3): gate correction — G.3a core landed; #95 CONFIRMED LIVE (not superseded) Erik 2026-06-13 18:30:43 +02:00
  • 2ce5e5c862 fix(G.3a): validated-claim placement keeps the claim's landblock prefix (#133) Erik 2026-06-13 18:27:45 +02:00
  • e7058caa79 Revert "fix(G.3a): hydrate EnvCell physics + visibility independent of render mesh (#133)" Erik 2026-06-13 18:05:36 +02:00
  • 3238f1fde4 docs(G.3a): note CacheCellStruct's unconditional UCG CellGraph add is inert (#133) Erik 2026-06-13 17:33:52 +02:00
  • ab050a015f fix(G.3a): hydrate EnvCell physics + visibility independent of render mesh (#133) Erik 2026-06-13 17:26:34 +02:00
  • f22121bd7d feat(G.3a): hold teleport arrival until dungeon hydrates, then place (#133) Erik 2026-06-13 17:16:12 +02:00
  • aca4b4645a refactor(G.3a): Place flips Idle before delegate; test mid-hold reset (#133) Erik 2026-06-13 17:11:40 +02:00
  • 7947d7ad0a feat(G.3a): TeleportArrivalController hold-until-hydration state machine (#133) Erik 2026-06-13 17:06:33 +02:00
  • c9650bd3bd plan(G.3a): core teleport-into-dungeon implementation plan (#133) Erik 2026-06-13 17:02:03 +02:00
  • 6680fd42b2 spec: G.3 dungeon support design (M1.5 exit-gate) — phased, retail-faithful Erik 2026-06-13 16:43:39 +02:00
  • 90786c19e2 handoff: M1.5 dungeon support (G.3) grounded — design research + the terrain-less-premise refutation claude/thirsty-goldberg-51bb9b Erik 2026-06-13 14:53:27 +02:00
  • 9c2ceb2336 milestone: re-open M1.5 — dungeon support (full G.3) pulled into scope; M2 re-deferred Erik 2026-06-13 14:45:53 +02:00
  • 1bf037a1c9 milestone: M1.5 LANDED (building/cellar demo); dungeon demo -> #133/G.3; start M2 Erik 2026-06-13 10:45:00 +02:00
  • 8682a8db70 close #125: bounded upload retry kills the sticky-drop debt (failed GL uploads were never re-staged) Erik 2026-06-13 10:27:26 +02:00
  • bf18a54369 fix #116 (partial, Ghidra-confirmed): slide_sphere degenerate guard uses F_EPSILON, not EpsilonSq Erik 2026-06-13 10:21:51 +02:00
  • 35961f2039 #116 oracle desk read: slide-response leads pinned, needs a live cdb to finish Erik 2026-06-13 10:11:34 +02:00
  • fbfecd20ca docs: CLAUDE.md current-state - #108-residual + #127 closed, ledger down to #116 + #125 Erik 2026-06-13 10:05:23 +02:00
  • 4ad6fb9184 close #127 (user-gated + desk pin): distant-building flood flap died with the W=0 clip port Erik 2026-06-13 10:03:33 +02:00
  • bf800677f0 close #108-residual (user-gated): terrain backface cull fixed the cellar grass window Erik 2026-06-13 09:54:58 +02:00
  • 96a425a9a5 fix #108-residual (root cause): terrain drew DOUBLE-SIDED - port retail landPolysDraw eye-side gate as terrain backface cull Erik 2026-06-12 22:05:31 +02:00
  • 007af1391c #108-residual apparatus: vertical cellar-ascent viewer harness - membership/viewer layer EXONERATED Erik 2026-06-12 22:05:06 +02:00
  • bf965000da handoff: add the M1.5 dungeon-demo exit gate to the next-session work order Erik 2026-06-12 21:21:51 +02:00
  • 5622d56fe8 handoff: night session - 9 user-gated closes; NEXT = #108-residual (queue, the #131 entity-first lesson, apparatus, pickup prompt) Erik 2026-06-12 21:02:10 +02:00
  • 49cffe6565 close #131 + #132 (user-gated) + CLAUDE.md current-state ledger refresh Erik 2026-06-12 20:55:13 +02:00
  • d208002bf8 fix #131 (root cause 4, structurally forced): look-in cells draw their DYNAMICS - the town portal is a server object in the hall's porch cell Erik 2026-06-12 20:52:34 +02:00
  • 47f32cd45c fix #131 (root cause): look-in cells draw their emitters - the cell-particles pass was missing from the #124 sub-pass Erik 2026-06-12 20:44:24 +02:00
  • a07279dfd1 131 probe: print matched emitter owner ids + the setup-dump diagnostic (portal identification capture) Erik 2026-06-12 19:48:53 +02:00
  • 87afbc0a42 fix #132 (outdoor sibling): outdoor attached scene emitters move to the post-frame pass; sharpen the #131 probe Erik 2026-06-12 19:26:04 +02:00
  • 20d17304d7 fix #131+#132: landscape translucents drawn AFTER the #124 look-ins (FlushAlphaList deferral) Erik 2026-06-12 19:16:40 +02:00
  • 1d3f9a8c97 fix #131: unattached emitters had NO particle pass under interior roots Erik 2026-06-12 19:04:12 +02:00
  • eeb1c59ded file #131 (portal swirl gone through doorways) + #132 (candle flame vs aperture background) + the [outstage] capture probe Erik 2026-06-12 18:54:56 +02:00
  • 77cef4cd86 fix #124: interior-root building look-ins as a landscape-stage sub-pass Erik 2026-06-12 15:59:29 +02:00
  • 5135066733 fix #130 (the real strip): drawn-shell lift vs draw-space portal consumers Erik 2026-06-12 14:28:16 +02:00
  • 4ba714835d fix #129: cap the punch mark bias's eye-space reach (was unbounded at distance) Erik 2026-06-12 13:38:59 +02:00
  • 6c4b6d64d9 fix #130: doorway-slice scissor cut the aperture's top/right pixel row Erik 2026-06-12 13:31:43 +02:00
  • 0cb97aa594 UN-2 RESOLVED: GetMaxSpeed x4 is byte-verified retail; doc-comment was the misread Erik 2026-06-12 13:17:50 +02:00
  • f6a30f4aae handoff: doorway artifacts #130/#129 + #113 re-check + UN-2 desk work (queue, leads, apparatus, pickup prompt) Erik 2026-06-12 12:51:32 +02:00
  • c007f5a962 CLAUDE.md: adopt the condensed structure, updated to current truth (-503/+176) Erik 2026-06-12 12:42:27 +02:00
  • 3c3293aebb divergence register -> docs/architecture (living doc) + CLAUDE.md rules: same-commit row discipline, symptom-scan trigger, phase-checklist hook Erik 2026-06-12 12:25:47 +02:00
  • ebf61f9eeb retail divergence register: 108 audited rows (14 IA / 27 AD / 31 DA / 30 TS / 6 UN) - deviations found by audit, not playtesting Erik 2026-06-12 12:11:29 +02:00
  • 0664cba925 #112 CLOSED: threshold tick-skip absorbing state fixed by the retail growing-walk port (user-gated 2026-06-12) Erik 2026-06-12 11:45:41 +02:00
  • be03146e30 #112 ROOT CAUSE: outdoor-seed pick lacked retail's growing-array walk - threshold tick-skip became absorbing Erik 2026-06-12 11:35:52 +02:00
  • 756ea61e30 file #129 (door/doorway leak through terrain at distance) + #130 (background strip at doorway top edge) Erik 2026-06-12 09:06:02 +02:00
  • 0b214d673a #119 + #128 CLOSED: tower stairs/barrel resolution chain recorded (user-gated 2026-06-12) Erik 2026-06-12 09:01:27 +02:00