Commit graph

  • 8d49042909 fix(D.5.1): read empty-slot background digits from composite 0x10000341 (0x1000005e) Erik 2026-06-17 15:34:18 +02:00
  • 8a42066192 feat(D.5.1): parse item IconOverlay/IconUnderlay from CreateObject -> faithful icon overlay layer Erik 2026-06-17 14:34:47 +02:00
  • a7cad5566b fix(D.5.1): occupancy-gated slot numbers (empty=0x1000005e bg digit) + bottom-right rect probe Erik 2026-06-17 14:27:27 +02:00
  • 7d5a88cd15 fix(D.5.1): toolbar digit-array log reports post-fallback final state (review) Erik 2026-06-17 13:58:07 +02:00
  • b2a812d1fa feat(D.5.1): faithful toolbar slot numbers 1-9 (SetShortcutNum digit sprites, peace/war) Erik 2026-06-17 13:52:50 +02:00
  • f21dbfad80 feat(D.5.1): faithful item-icon type-default underlay (EnumIDMap 0x10000004) — opaque icon backing Erik 2026-06-17 13:37:53 +02:00
  • bfc452d610 fix(D.5.1): toolbar movable + chrome-grab + peace-only indicator + no prototype square Erik 2026-06-17 13:03:07 +02:00
  • b3e5e8b0f7 fix(D.5.1): toolbar use-item gates on in-world + logs; store controller field (review) Erik 2026-06-16 22:52:28 +02:00
  • 3b6f293dc8 feat(D.5.1): mount the toolbar window under ACDREAM_RETAIL_UI Erik 2026-06-16 22:44:52 +02:00
  • 383a969c70 feat(D.5.1): ToolbarController — bind 18 slots, populate, deferred rebind, click-to-use Erik 2026-06-16 22:36:48 +02:00
  • 9327fb64bf fix(D.5.1): UiItemList.Cell guards empty list with a diagnostic (review) Erik 2026-06-16 22:32:53 +02:00
  • 9c8db0d577 feat(D.5.1): UiItemList widget + factory branch for class 0x10000031 Erik 2026-06-16 22:28:37 +02:00
  • 28d5837309 test(D.5.1): cover UiItemSlot.Clear (review — hot path in ToolbarController) Erik 2026-06-16 22:25:59 +02:00
  • 1270596f30 feat(D.5.1): UiItemSlot widget (UIElement_UIItem cell port) Erik 2026-06-16 22:21:21 +02:00
  • e9a5248972 fix(D.5.1): dispose IconComposer + RenderSurface GL handles (review) Erik 2026-06-16 22:18:20 +02:00
  • 6e82807863 feat(D.5.1): IconComposer — CPU alpha-over icon composite + cache Erik 2026-06-16 22:09:41 +02:00
  • 6c485c2f06 feat(D.5.1): persist PlayerDescription shortcuts (were parsed then discarded) Erik 2026-06-16 22:01:40 +02:00
  • 5382d0a9d2 feat(D.5.1): thread CreateObject IconId into ItemRepository via spawn event Erik 2026-06-16 21:54:48 +02:00
  • 998a0bd408 docs(D.5.1): clarify EnrichItem fires-on-found (review nit) Erik 2026-06-16 21:52:15 +02:00
  • f8da98b67f feat(D.5.1): ItemRepository.EnrichItem (icon/name/type from CreateObject) Erik 2026-06-16 21:48:44 +02:00
  • da171cb4e3 feat(D.5.1): capture IconId in CreateObject.Parsed (was discarded at cs:516) Erik 2026-06-16 21:44:01 +02:00
  • 30b28c248a docs(D.5.1): register toolbar phase-1 in the roadmap Erik 2026-06-16 21:40:46 +02:00
  • 44fabd350e docs(D.5.1): toolbar phase-1 implementation plan (+ spec wiring-delta note) Erik 2026-06-16 21:27:49 +02:00
  • 0b5e849325 docs(D.5.1): toolbar phase-1 design spec Erik 2026-06-16 21:05:04 +02:00
  • a5c5126e8d docs(D.5): action bar / inventory / paperdoll research drop Erik 2026-06-16 21:04:57 +02:00
  • 37911ed510 merge: A7 lighting (Fix A point-light shape + Fix B per-object selection) into main Erik 2026-06-16 20:50:22 +02:00
  • 78c91875b8 docs: file #139 — D.2b retail UI polish (chat text colors + buttons) Erik 2026-06-16 19:01:50 +02:00
  • 9e4faae9d2 docs(D.2b): roadmap — widget generalization (Plan 2) shipped Erik 2026-06-16 18:55:06 +02:00
  • 89626cd400 feat(D.2b): vitals numbers as UiText (widget-generalization Task 8) Erik 2026-06-16 18:52:42 +02:00
  • d7002552bc fix(D.2b): behavioral widgets are leaf — ConsumesDatChildren (chat menu open) Erik 2026-06-16 18:36:40 +02:00
  • 83076cdbb6 docs(D.2b): spec correction — input is Variant B, Type 3 not registered Erik 2026-06-16 17:54:52 +02:00
  • ee2e0fafa0 fix(D.2b): do NOT register Type 3 -> UiField (review fix for Task 6) Erik 2026-06-16 17:53:56 +02:00
  • e059a3f6ef feat(D.2b): UiField (Type 3) — editable input as a generic field; remove the stray Type-12 input placeholder (widget-generalization Task 6) Erik 2026-06-16 17:48:51 +02:00
  • cb082b59e4 feat(D.2b): UiText (Type 12) -- generic text + Type-12 flip; transcript factory-built (widget-generalization Task 5) Erik 2026-06-16 17:39:02 +02:00
  • 67e5b8cff2 fix(D.2b): UiMenu — controller owns Selected (review fix for Task 4) Erik 2026-06-16 17:27:30 +02:00
  • 955f7a69a8 feat(D.2b): UiMenu (Type 6) — generic dropdown; channel knowledge moves to controller (widget-generalization Task 4) Erik 2026-06-16 17:18:27 +02:00
  • 805ab5f40b feat(D.2b): UiButton (Type 1) — Send + Max/Min as generic buttons (widget-generalization Task 3) Erik 2026-06-16 17:07:58 +02:00
  • 3593d6623d feat(D.2b): UiScrollbar (Type 11) — promote the generic chat scrollbar (widget-generalization Task 2) Erik 2026-06-16 17:02:49 +02:00
  • d1b13a7dbf test(D.2b): chat golden fixture + resolved-Type conformance (widget-generalization Task 1) Erik 2026-06-16 16:55:51 +02:00
  • 34e79096f3 docs(D.2b): widget-generalization implementation plan Erik 2026-06-16 16:47:32 +02:00
  • 56f5bc7aa1 docs(D.2b): add strategic-purpose section to widget-generalization design Erik 2026-06-16 16:33:14 +02:00
  • b7f7e2b4ef docs(D.2b): widget-generalization design (Plan 2 widget piece) Erik 2026-06-16 16:26:32 +02:00
  • fed838847b chore(cli): dump-font-atlas tool for headless font inspection Erik 2026-06-16 15:24:37 +02:00
  • ce848c154d feat(D.2b): chat wiring — menu/input sprites, button reflow, char-wrap, panel wash fix Erik 2026-06-16 15:24:30 +02:00
  • 2284a376ae feat(D.2b): write-mode movement gate that preserves autorun Erik 2026-06-16 15:24:19 +02:00
  • 367a752078 feat(D.2b): chat input — write mode, selection, clipboard, key-repeat, scroll-clip Erik 2026-06-16 15:24:09 +02:00
  • 260507e33c feat(D.2b): channel menu — retail colors, 8-piece border, checkbox align, autosize button Erik 2026-06-16 15:23:59 +02:00
  • ebfeaff840 feat(D.2b): UI render infra — overlay layer, DrawFill, crisp text, write-mode focus Erik 2026-06-16 15:23:48 +02:00
  • 828bec5fb5 @ fix(D.2b): point-sample the dat-font atlas so UI text is pixel-crisp Erik 2026-06-16 12:02:07 +02:00
  • 621a4ab468 @ fix(D.2b): arrow swap, centered menu text, scrollbar-to-top, Send caption Erik 2026-06-16 11:56:07 +02:00
  • bb983ae850 @ feat(D.2b): data-driven channel menu chrome + greying + scroll-arrow fix Erik 2026-06-16 11:33:38 +02:00
  • 7094a1c847 @ fix(D.2b): channel menu popup opaque + button label tracks selected target Erik 2026-06-16 10:38:56 +02:00
  • ccaf188e41 @ feat(D.2b): exact retail chat colors from a live cdb dump Erik 2026-06-16 10:08:42 +02:00
  • 1da697ec2a @ feat(D.2b): chat polish — typing fix, opacity, scrollbar 3-slice, retail channel menu Erik 2026-06-16 09:37:40 +02:00
  • 0ec36f6197 fix(D.2b): chat input resolves the live command bus lazily (was bound to null) + register thumb-3-slice row Erik 2026-06-15 23:24:44 +02:00
  • 12ab9663d2 feat(D.2b): cut GameWindow over to the data-driven chat window Erik 2026-06-15 23:15:04 +02:00
  • 9d9e036e4c feat(D.2b): ChatWindowController — bind chat LayoutDesc, place widgets, route chat Erik 2026-06-15 23:04:57 +02:00
  • 6e6339b026 feat(D.2b): importer renders Type-12-with-sprites + carries DefaultState Erik 2026-06-15 22:54:37 +02:00
  • 4345e77d62 fix(render): A7 Fix B — per-OBJECT point-light selection (minimize_object_lighting) Erik 2026-06-15 22:47:40 +02:00
  • c2170ab18f feat(D.2b): UiChannelMenu — channel selector popup (UIElement_Menu port) Erik 2026-06-15 22:42:22 +02:00
  • bcc45d668e feat(D.2b): UiChatInput — editable field, caret, 100-entry history (UIElement_Text port) Erik 2026-06-15 22:36:44 +02:00
  • 2940b4e3b2 feat(D.2b): UiChatScrollbar — track/thumb/buttons driving UiScrollable Erik 2026-06-15 22:31:12 +02:00
  • aa94cedc38 fix(render): A7 point-light shape — per-vertex Gouraud + faithful calc_point_light (wrap + norm) Erik 2026-06-15 22:27:27 +02:00
  • 0eaef67b9d feat(D.2b): UiChatView drives the shared UiScrollable model Erik 2026-06-15 22:23:17 +02:00
  • 9f273c9343 feat(D.2b): UiScrollable — pixel scroll model (UIElement_Scrollable port) Erik 2026-06-15 22:19:29 +02:00
  • 7552dcba39 feat(D.2b): UiChatView dat-font transcript + 1-line wheel quantum Erik 2026-06-15 22:14:56 +02:00
  • 50883e445b feat(D.2b): extract ChatCommandRouter — shared chat submit pipeline Erik 2026-06-15 22:09:27 +02:00
  • 3d25e8760f @ docs(D.2b): chat-window re-drive implementation plan (8 tasks A-H) Erik 2026-06-15 22:04:35 +02:00
  • 26cb34f126 @ docs(D.2b): chat-window re-drive design spec + list-ui-layouts research tool Erik 2026-06-15 19:38:27 +02:00
  • 50758d4795 docs(D.2b): chat-window re-drive session handoff (Plan 2 chat piece) Erik 2026-06-15 19:07:05 +02:00
  • 0474feb6ca docs(D.2b): correct roadmap/plan — vitals window IS resizable (resize shipped 8aa643f) Erik 2026-06-15 18:35:29 +02:00
  • 34243f2c26 fix(D.2b): pixel-snap dat-font glyphs so vitals numbers stay sharp on resize Erik 2026-06-15 18:31:58 +02:00
  • 43064bab09 fix(D.2b): draw UI sprites in submission order so stamina/mana numbers render Erik 2026-06-15 18:27:13 +02:00
  • 8aa643f3e0 fix(D.2b): correct edge-anchor mapping (RightEdge==1=stretch) + enable vitals horizontal resize Erik 2026-06-15 17:05:04 +02:00
  • 825536a2bd docs(D.2b): re-retire TS-30 in register (restore branch state lost in --theirs merge) Erik 2026-06-15 16:41:41 +02:00
  • c1004847a2 docs(D.2b): record vitals default-flip shipped (importer is now the default vitals) Erik 2026-06-15 16:36:47 +02:00
  • bf77a23ad3 feat(D.2b): flip vitals to the LayoutDesc importer; retire hand-authored vitals.xml Erik 2026-06-15 16:30:24 +02:00
  • 5ac9d8c19c merge: bring main into claude/hopeful-maxwell-214a12 (LayoutDesc importer branch) Erik 2026-06-15 16:19:15 +02:00
  • 07cf120939 docs(D.2b): mark LayoutDesc importer Plan 1 shipped; defer default-flip to Plan 2 (drag/resize) Erik 2026-06-15 15:03:31 +02:00
  • 4dcc90cb51 docs(D.2b): register AP-32 + IA-15 amend for importer; doc/test review fixes (N1/N4) Erik 2026-06-15 14:55:01 +02:00
  • 2b653b8fc0 test(D.2b): conformance polish — table-driven slice asserts + BOM-safe loader Erik 2026-06-15 14:38:55 +02:00
  • 3567135a04 test(D.2b): vitals importer conformance — golden fixture + tree/slice/chrome checks Erik 2026-06-15 14:29:30 +02:00
  • 25be30b1a7 style(D.2b): split two-statement line in importer wiring (review nit) Erik 2026-06-15 14:23:01 +02:00
  • ab3ab79380 feat(D.2b): run importer-built vitals window under ACDREAM_RETAIL_UI_IMPORTER (A/B) Erik 2026-06-15 14:18:16 +02:00
  • e8ddb68801 feat(D.2b): factory propagates ReadOrder→ZOrder for faithful draw layering Erik 2026-06-15 14:14:28 +02:00
  • 7e56eff884 refactor(D.2b): VitalsController review fixes — cite format doc + use consts in test Erik 2026-06-15 14:10:17 +02:00
  • 9d2527d9c8 feat(D.2b): VitalsController — bind live vitals data by element id Erik 2026-06-15 14:06:14 +02:00
  • 9a55a688ca refactor(D.2b): LayoutImporter review fixes — root-fallback trace + cursor-discard note Erik 2026-06-15 14:03:24 +02:00
  • bd01a29eb2 feat(D.2b): LayoutImporter — read layout + resolve inheritance + build tree Erik 2026-06-15 13:52:50 +02:00
  • fc79fd519d refactor(D.2b): DatWidgetFactory review fixes — single lookup + malformed-meter trace Erik 2026-06-15 13:45:38 +02:00
  • 38855e7a7b feat(D.2b): DatWidgetFactory — Type→widget hybrid + meter slice extraction Erik 2026-06-15 13:39:31 +02:00
  • 70dc391c41 test(D.2b): UiDatElement — cover DrawMode passthrough + media fallbacks Erik 2026-06-15 13:34:50 +02:00
  • cc4de3ef77 feat(D.2b): UiDatElement — generic per-drawmode element renderer Erik 2026-06-15 13:29:16 +02:00
  • 55239575e6 refactor(D.2b): ElementReader review fixes — defensive Children copy + sentinel doc Erik 2026-06-15 13:25:44 +02:00
  • f73422a79a feat(D.2b): ElementReader — layout inheritance merge + edge-flag anchors Erik 2026-06-15 13:20:23 +02:00
  • 67819f35a4 docs(D.2b): LayoutDesc format enumeration (importer groundwork) Erik 2026-06-15 13:05:53 +02:00
  • a7875cde22 docs(D.2b): LayoutDesc importer implementation plan (Plan 1 — vitals conformance) Erik 2026-06-15 12:46:55 +02:00
  • 64146bfc2a docs(D.2b): LayoutDesc importer design spec (data-driven retail windows) Erik 2026-06-15 12:38:34 +02:00
  • 0f55599ba5 feat(D.2b): draw the window resize-grip overlay (gold ridges + corner studs) Erik 2026-06-15 11:05:18 +02:00
  • 73468be02a fix(D.2b): tile the vital-bar middle instead of stretching it Erik 2026-06-15 10:39:56 +02:00