Commit graph

  • 0335e317d2 fix(anim): remove frame swap — cursor now traverses all frames in reverse Erik 2026-04-13 13:15:27 +02:00
  • a57c5ccb76 feat(anim): carefully integrate AnimationSequencer into TickAnimations Erik 2026-04-13 13:02:54 +02:00
  • 78aef6d575 refactor(anim): rewrite AnimationSequencer as faithful decompiled-client port Erik 2026-04-13 12:59:32 +02:00
  • 8402aee703 research: full animation pseudocode from decompiled acclient.exe Erik 2026-04-13 12:43:44 +02:00
  • ca7ae45518 fix(anim): handle reversed frame range in BuildBlendedFrame Erik 2026-04-13 12:31:32 +02:00
  • 67b51a3e6f fix(anim): implement adjust_motion — TurnLeft/SideStepLeft play backward Erik 2026-04-13 12:17:26 +02:00
  • 0e66078e57 chore: leave ANIM-DIAG logging for next session Erik 2026-04-13 00:54:19 +02:00
  • 1b4fdac13c fix(anim): pass resolved command (not original) to sequencer SetCycle Erik 2026-04-13 00:51:39 +02:00
  • 0868849b3d fix(anim): left-side motion fallback to right-side animation Erik 2026-04-13 00:49:47 +02:00
  • e77dc1a0e8 fix(anim): call Sequencer.SetCycle on motion changes Erik 2026-04-13 00:44:38 +02:00
  • ed37f0969b feat(anim): carefully integrate AnimationSequencer into TickAnimations Erik 2026-04-13 00:40:52 +02:00
  • 53a4bf4225 Revert "feat(anim): integrate AnimationSequencer into GameWindow rendering loop" Erik 2026-04-13 00:30:25 +02:00
  • e4dae3d217 feat(anim): integrate AnimationSequencer into GameWindow rendering loop Erik 2026-04-13 00:27:11 +02:00
  • f48f2745c4 feat(anim): AnimationSequencer with transition links + retail slerp Erik 2026-04-13 00:22:42 +02:00
  • 14569558fb refactor(physics): wire PhysicsBody + MotionInterpreter into PlayerMovementController Erik 2026-04-13 00:08:02 +02:00
  • e3f8f95dfc feat(core): port decompiled AC client MotionInterpreter — 10 methods, 45 tests Erik 2026-04-13 00:00:39 +02:00
  • 6a5d8c1580 feat(core): port decompiled AC client physics — CollisionPrimitives + PhysicsBody Erik 2026-04-12 23:54:51 +02:00
  • 21fd550909 feat(physics): port 9 collision primitives from acclient.exe (chunk_00530000.c) Erik 2026-04-12 23:53:47 +02:00
  • 50c0704ada research: complete acclient.exe function map — 70+ identified functions Erik 2026-04-12 23:46:22 +02:00
  • 4d36756b91 research: full acclient.exe decompilation — 22,225 functions, 688K lines Erik 2026-04-12 23:25:51 +02:00
  • 370c6e3133 research: decompile acclient.exe terrain/physics via Ghidra headless Erik 2026-04-12 23:18:27 +02:00
  • 9d4967a461 fix(core): ACME cross-check fixes — normals, placement, scenery Erik 2026-04-12 22:52:08 +02:00
  • 05749f52e0 test: port ACME ClientReference + conformance tests Erik 2026-04-12 22:45:20 +02:00
  • 112aa4a3ae docs(CLAUDE.md): consolidated reference hierarchy + never-guess policy Erik 2026-04-12 22:42:04 +02:00
  • 624f55d60d docs: add WorldBuilder-ACME-Edition to CLAUDE.md reference repos Erik 2026-04-12 22:35:47 +02:00
  • 131594d91b fix(core): correct triangle boundary conditions in TerrainSurface.SampleZ Erik 2026-04-12 22:27:16 +02:00
  • 3ae7f5e7ae fix(physics): correct terrain Z sampling triangle layout in TerrainSurface Erik 2026-04-12 22:25:32 +02:00
  • 78d43a0914 fix(core+app): slope gradient compensation for feet clipping Erik 2026-04-12 22:13:16 +02:00
  • c5de445e5c fix(core): AC2D render split formula + triangle-aware Z sampling Erik 2026-04-12 22:08:42 +02:00
  • 5cd776914a docs: movement deep dive — AC2D + holtburger cross-reference Erik 2026-04-12 21:52:12 +02:00
  • 29fe0c0714 fix(app): terrain cull exempt + yaw preservation on Tab toggle Erik 2026-04-12 21:35:40 +02:00
  • a3b389603d fix(app): multi-point Z sampling + never-cull player landblock Erik 2026-04-12 21:29:54 +02:00
  • 6f05c298cf fix(app+core): Phase B.3 — streaming follows player, AC jump physics Erik 2026-04-12 21:06:42 +02:00
  • 192e066182 fix(app+core): Phase B.3 — player cull-exempt, jump height, slope Z Erik 2026-04-12 19:24:50 +02:00
  • dc0341e85a fix(core): Phase B.3 — add centroid + radius bounds to PortalPlane crossing test Erik 2026-04-12 19:08:46 +02:00
  • 41013ce3e3 fix(core+app): Phase B.3 — Setup.StepUpHeight + scenery road exclusion Erik 2026-04-12 18:56:45 +02:00
  • 9dbb2cbd5c fix(core): Phase B.3 — add centroid + radius bounds to PortalPlane crossing test Erik 2026-04-12 18:39:50 +02:00
  • ae06f9c0ff feat(net+app): Phase B.3 — portal-space state machine for teleports Erik 2026-04-12 18:32:41 +02:00
  • 777893783a fix(core): Phase B.3 — restore SceneryGenerator road exclusion check Erik 2026-04-12 18:29:20 +02:00
  • 768a9a0619 fix(app+core): Phase B.3 — Setup.StepUpHeight + scenery road exclusion Erik 2026-04-12 18:27:36 +02:00
  • 8252523b8b feat(core): Phase B.3 — CellPortal-based indoor/outdoor transitions in PhysicsEngine Erik 2026-04-12 18:22:55 +02:00
  • cb46d892d5 feat(core): Phase B.3 — PortalPlane (plane math + crossing detection) Erik 2026-04-12 18:17:48 +02:00
  • e4f3f6bfab docs(plans): Phase B.3 Complete — movement + world navigation plan Erik 2026-04-12 15:59:29 +02:00
  • cc5ab683ea docs(specs): Phase B.3 Complete — movement and world navigation design Erik 2026-04-12 15:54:12 +02:00
  • 8b4d69fa8d docs(roadmap): mark Phase B.2 (player movement) as shipped Erik 2026-04-12 15:29:28 +02:00
  • 228eecbb31 chore(app): Phase B.2 — strip diagnostic logging + fix indoor-transition test Erik 2026-04-12 15:27:49 +02:00
  • 980e79dae9 fix(app): Phase B.2 — fix camera rotation offset + pass server MotionTableId to walk animation Erik 2026-04-12 15:17:55 +02:00
  • b341193cfe fix(app+core): Phase B.2 — increase step height + resolve initial Z from terrain Erik 2026-04-12 15:11:50 +02:00
  • 3b2f56c531 fix(core): Phase B.2 MVP — disable outdoor→indoor transition entirely Erik 2026-04-12 15:08:36 +02:00
  • 5280950806 fix(core): Phase B.2 — require indoor floor below terrain for outdoor→indoor transition Erik 2026-04-12 15:05:54 +02:00
  • 05d835ff33 fix(core): Phase B.2 — mask cellId to low 16 bits in PhysicsEngine.Resolve Erik 2026-04-12 15:04:24 +02:00
  • 97c17c5bc3 fix(app): Phase B.2 — use server position directly, fix yaw wrap + turn spam Erik 2026-04-12 14:58:25 +02:00
  • 6202c5d153 fix(app): Phase B.2 — three first-run bugs in player movement mode Erik 2026-04-12 14:44:11 +02:00
  • 4ce7b65ee8 feat(app): Phase B.2 — wire player movement into GameWindow Erik 2026-04-12 14:33:53 +02:00
  • e5e1245efb feat(app): Phase B.2 — CameraController chase mode Erik 2026-04-12 14:29:47 +02:00
  • fe1c949775 feat(net): Phase B.2 — MoveToState + AutonomousPosition message builders Erik 2026-04-12 14:28:35 +02:00
  • d9cd2b0b1d feat(app): Phase B.2 — PlayerMovementController (input → physics → motion state) Erik 2026-04-12 14:27:07 +02:00
  • 84d7d06008 feat(app): Phase B.2 — ChaseCamera (third-person follow camera) Erik 2026-04-12 14:26:20 +02:00
  • 631fd3c9bb docs(plans): Phase B.2 player movement implementation plan Erik 2026-04-12 14:10:13 +02:00
  • fe0c76364c docs(specs): Phase B.2 — player movement mode design Erik 2026-04-12 14:05:07 +02:00
  • 0aaededdd7 docs(roadmap): mark Phase B.1 + B.3 as shipped Erik 2026-04-12 09:59:10 +02:00
  • 9bd4d1eed8 feat(app): Phase B.3 — wire PhysicsEngine into streaming pipeline Erik 2026-04-12 09:58:07 +02:00
  • 88d446d11d feat(core): Phase B.3 — PhysicsEngine (top-level collision resolver) Erik 2026-04-12 09:54:28 +02:00
  • 19aa8ce5d0 feat(core): Phase B.3 — TerrainSurface (outdoor heightmap Z + cell ID) Erik 2026-04-12 09:51:54 +02:00
  • 520589911b feat(core): Phase B.3 — CellSurface (indoor floor polygon projection) Erik 2026-04-12 09:51:22 +02:00
  • 7ced94b138 docs(plans): Phase B.3 physics collision engine implementation plan Erik 2026-04-12 09:48:06 +02:00
  • fdc568a4a0 docs(specs): Phase B.3 — physics collision engine design Erik 2026-04-12 09:42:31 +02:00
  • 0a20090eba docs(roadmap): mark Phase A.3 (background net receive thread) as shipped Erik 2026-04-12 09:24:59 +02:00
  • 5e96521f92 chore(app): disable VSync during development Erik 2026-04-12 09:22:54 +02:00
  • ae43531866 feat(net): Phase A.3 — background net receive thread Erik 2026-04-12 09:20:56 +02:00
  • e8c4ac25ba docs(roadmap): mark Phase A.2 (frustum culling) as shipped Erik 2026-04-12 09:13:05 +02:00
  • a33f3c4c7f feat(app): performance overlay in window title Erik 2026-04-12 09:02:00 +02:00
  • 3c9fc63af7 feat(app): Phase A.2 — wire frustum culling into terrain + static-mesh renderers Erik 2026-04-12 08:53:18 +02:00
  • 07fde88534 feat(app): Phase A.2 — FrustumCuller + FrustumPlanes (Gribb-Hartmann) Erik 2026-04-12 08:49:17 +02:00
  • fb3c8ebdaa feat(net): graceful CharacterLogOff + DISCONNECT on session Dispose Erik 2026-04-12 08:38:15 +02:00
  • 5666e05a85 fix(core+app): Phase 6.8 — keep NPCs animated when post-spawn motion update is unmappable Erik 2026-04-12 00:05:23 +02:00
  • 8c14e0207c feat(net): Phase 4.10 — DddInterrogationResponse + correct LoginComplete trigger Erik 2026-04-11 23:48:37 +02:00
  • af381ac6fb feat(net): Phase 4.9 — send ACK_SEQUENCE for every received server packet Erik 2026-04-11 23:42:41 +02:00
  • 8744bd6179 feat(net): Phase 4.8 — send GameAction.LoginComplete after EnterWorld Erik 2026-04-11 23:36:19 +02:00
  • bb9ff774dc docs(roadmap): mark Phase A.1 (streaming) shipped; note sync-loader caveat Erik 2026-04-11 23:31:20 +02:00
  • 133c22ed2f fix(app): Phase A.1 — restore MaxCompletionsPerFrame=4 (uncap caused OOM) Erik 2026-04-11 23:23:11 +02:00
  • f792931d21 fix(app): Phase A.1 — pending-spawn list in GpuWorldState (proper fix) Erik 2026-04-11 23:19:40 +02:00
  • 4b01c95ecb fix(app): Phase A.1 — run StreamingController.Tick before WorldSession.Tick Erik 2026-04-11 23:13:25 +02:00
  • 8941447204 fix(app): Phase A.1 — canonicalize live spawn landblockId in AppendLiveEntity Erik 2026-04-11 23:10:18 +02:00
  • f83a8c1674 fix(app): Phase A.1 — encode landblock IDs with 0xFFFF terminator, not 0xFFFE Erik 2026-04-11 22:59:21 +02:00
  • 531c9f9349 fix(app): Phase A.1 — make LandblockStreamer synchronous (DatCollection isn't thread-safe) Erik 2026-04-11 22:56:19 +02:00
  • c991fb23ce fix(app): Phase A.1 — serialize DatCollection access behind _datLock Erik 2026-04-11 22:49:37 +02:00
  • fca299780c feat(app): Phase A.1 Task 8 — restore scenery + interior in streamed loads Erik 2026-04-11 22:39:33 +02:00
  • efcf0c30d0 feat(app): Phase A.1 — wire StreamingController into GameWindow (MVP) Erik 2026-04-11 22:34:34 +02:00
  • 9067c4f60b feat(app): Phase A.1 — StreamingController glue Erik 2026-04-11 22:26:55 +02:00
  • 6b70b1201d feat(app): Phase A.1 — GpuWorldState render-thread entity registry Erik 2026-04-11 22:24:26 +02:00
  • 495f87a4ad feat(app): Phase A.1 — TerrainRenderer.RemoveLandblock for streaming unloads Erik 2026-04-11 22:22:49 +02:00
  • c5e207a51f fix(app): Phase A.1 — LandblockStreamer lifecycle + threading hardening Erik 2026-04-11 22:20:41 +02:00
  • 0904372af6 feat(app): Phase A.1 — LandblockStreamer (background worker + channels) Erik 2026-04-11 22:14:18 +02:00
  • 9d1c2c45e5 feat(app): Phase A.1 — job + result records for LandblockStreamer Erik 2026-04-11 22:11:35 +02:00
  • 449c2caf8b fix(app): Phase A.1 — separate Visible from Resident in StreamingRegion Erik 2026-04-11 22:08:17 +02:00
  • 11df7930fc feat(app): Phase A.1 — StreamingRegion (window set + diff with hysteresis) Erik 2026-04-11 22:01:45 +02:00
  • fcfe8f1ce0 docs(plans): Phase A.1 streaming implementation plan Erik 2026-04-11 21:55:46 +02:00
  • 50de6b5de4 docs(claude): tighten operating instructions + roadmap discipline + subagent policy Erik 2026-04-11 21:48:19 +02:00
  • 2c1c784c8c docs: refresh strategic roadmap + Foundation phase design spec Erik 2026-04-11 21:43:33 +02:00