Commit graph

  • 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
  • 6f1971aa9c fix(app): Phase 9.2 — enable back-face cull in translucent pass Erik 2026-04-11 21:18:42 +02:00
  • 3fd774515a fix(core): emit both sides of double-sided polygons in GfxObjMesh Erik 2026-04-11 20:59:10 +02:00
  • 7375f7ad32 feat(app+core): Phase 6.6+6.7 — wire UpdateMotion/UpdatePosition into GameWindow Erik 2026-04-11 20:40:17 +02:00
  • 333a7c197a feat(net): Phase 6.7 — parse UpdatePosition (0xF748) into PositionUpdated event Erik 2026-04-11 20:37:32 +02:00
  • a71db90310 feat(net): Phase 6.6 — parse UpdateMotion (0xF74C) into MotionUpdated event Erik 2026-04-11 20:33:26 +02:00
  • 4752b8a528 chore(app): drop per-spawn animation diagnostic dump now that breathing works Erik 2026-04-11 20:27:24 +02:00
  • 49c1a9d29e fix(core): resolve AnimData HighFrame=-1 sentinel before filtering cycles Erik 2026-04-11 20:25:22 +02:00
  • 5253c7bfe8 fix(app): lift cell meshes 2cm + diagnose animation-registration rejections Erik 2026-04-11 20:20:49 +02:00
  • d379a75984 feat(core): SurfaceDecoder — add PFID_P8, PFID_R8G8B8, and PFID_X8R8G8B8 Erik 2026-04-11 19:23:57 +02:00
  • 979802c49c feat(app): slow default fly speed and add Shift-boost Erik 2026-04-11 19:19:12 +02:00
  • a538183caa feat(core+app): Phase 7.1 — render EnvCell room geometry (walls/floors/ceilings) Erik 2026-04-11 19:16:45 +02:00
  • 225e75b8b4 feat(app): Phase 6.5 — slerp between adjacent keyframes for smooth animation Erik 2026-04-11 19:09:36 +02:00
  • f0fa067566 feat(core+app): Phase 6.4 — per-frame animation playback (breathing/idle cycles) Erik 2026-04-11 19:08:08 +02:00
  • b96167e066 feat(net+app): Phase 6.3 — extract server MotionTableId and use as resolver override Erik 2026-04-11 19:03:00 +02:00
  • 120e801ecf feat(net+core): Phase 6.2 — honor server CurrentMotionState for idle pose Erik 2026-04-11 18:48:33 +02:00
  • 090d265a4e feat(core+app): Phase 6.1 — resolve idle motion frame from MotionTable Erik 2026-04-11 18:36:59 +02:00
  • ac2af96b15 docs(plan): roadmap with every observed defect mapped to a phase Erik 2026-04-11 18:30:55 +02:00
  • 82aa2ba1d9 fix(core): SetupMesh prefers Placement.Resting over Default (Phase 5d) Erik 2026-04-11 18:21:13 +02:00
  • e4a5b8a51a fix(app): scale order for live entities + FlyCamera speed tune (Phase 5c-fix) Erik 2026-04-11 18:06:52 +02:00
  • f67f7851e6 feat(net+app): apply ObjScale from PhysicsData (Phase 5c) Erik 2026-04-11 18:01:14 +02:00
  • 733f8ff601 feat(net+app): SubPalette overlays applied to palette-indexed textures (Phase 5b) Erik 2026-04-11 16:30:08 +02:00
  • b69d776179 feat(net+app): TextureChanges applied via Surface→OrigTex resolution (Phase 5a) Erik 2026-04-11 16:22:23 +02:00
  • 6ab24c9982 feat(net+app): AnimPartChanges + Name extraction — characters clothed, statue identified (Phase 4.7h/i/j/k/l) Erik 2026-04-11 15:48:13 +02:00
  • fc6c9dc240 diag(app): full CreateObject spawn logging + drop reason breakdown Erik 2026-04-11 15:38:26 +02:00
  • 713bec256b feat(net+app): WorldSession class + GameWindow live-mode wiring (Phase 4.7e/f) Erik 2026-04-11 15:25:41 +02:00
  • 9e4313f3d3 feat(net): CreateObject body parser — GUID + Position + SetupId extracted (Phase 4.7d) Erik 2026-04-11 15:18:54 +02:00
  • 94da385ff4 feat(net): acdream enters the world — CharacterList parsed + CharacterEnterWorld sent + 68 CreateObject received (Phase 4.7) Erik 2026-04-11 15:14:31 +02:00
  • 0aea24c78e feat(net): extract GameMessage opcodes from live fragment stream (Phase 4.6f) Erik 2026-04-11 14:53:08 +02:00
  • a961d842d4 feat(net): full 3-way handshake + ISAAC-encrypted decode proven live (Phase 4.6e) Erik 2026-04-11 14:51:41 +02:00
  • 0cb30aa0c8 feat(net): live ACE handshake verified — ConnectRequest received and parsed (Phase 4.6a/b/c/d) Erik 2026-04-11 14:46:19 +02:00
  • 6cda431eae feat(net): PacketCodec.Encode — full outbound datagram assembly Erik 2026-04-11 14:38:14 +02:00
  • 44c335469a feat(net): PacketWriter + LoginRequest payload builder (Phase 4.5a/b) Erik 2026-04-11 14:36:39 +02:00
  • c64bbf29e4 feat(net): PacketHeaderOptional + full packet decode + CRC verify (Phase 4.4) Erik 2026-04-11 14:24:29 +02:00
  • 3226c4bcab feat(net): message fragment header + fragment + assembler (Phase 4.3) Erik 2026-04-11 14:20:53 +02:00
  • 18e308fe85 feat(net): PacketHeader + PacketHeaderFlags + Hash32 checksum (Phase 4.2) Erik 2026-04-11 14:17:37 +02:00