diablo2-web/src
troytt ca3512f195 feat(wilderness): 还原边界顶点链表与格子级土路算法替换 Catmull-Rom 样条 (Issue #82)
- 实现 DRLGVER_CreateVertices (D2MOO DrlgDrlgVer.cpp:15-226):
  * 构建关卡边界矩形封闭双向循环链表 (顺时针 V0(0,0), V1(w,0), V2(w,h), V3(0,h))
  * 对边界连接/门/预置插入 1-2 个顶点 (支持 span [v15, v16])
  * 设置标识: dwFlags |= 1 (连接), 预置房 dwFlags |= 2
  * 采用相对坐标 (x - originX, y - originY)
  * 消耗 0 次随机数 rolls
  * 从 UNIMPLEMENTED_PASSES 移除 DRLGVER_CreateVertices
- 实现 DRLGOUTDOORS_CalculatePathCoordinates (DrlgOutdoors.cpp:1139-1168):
  * 边界顶点 8 格吸附 (ALTDIR_WEST: +11, ALTDIR_NORTH: +11, ALTDIR_EAST: -5, ALTDIR_SOUTH: -5)
  * Math.trunc 保持 C 整数截断一致性
  * 兼容 (pLevel, pVertex1, pVertex2) 与 (vertex, origin) 调用签名
- 实现 DRLGOUTDOORS_CalculateHubCoordinates (DrlgOutdoors.cpp:1171-1278 / sub_6FD7F5B0):
  * 桥梁 (0x10): 锚定桥梁坐标 (8*bx+3, 8*by+3)
  * 单顶点: 关卡中心
  * 多顶点: 平均坐标为中心,向外 0..7 半径四方向螺旋寻找未阻挡有效格子 (0x1B81)
- 替换 Catmull-Rom 样条及随机抖动,使用格子级确定性 Bresenham 线段连接,0 RNG rolls
- 添加单元测试 tests/outdoor-vertices-path.test.ts 覆盖全部算法特性

TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
2026-09-18 11:37:20 +00:00
..
audio feat(mpq): 实现 ADPCM 与 Huffman 音频解码并接入 Web Audio (fixes #13) 2026-09-14 12:30:21 +00:00
formats feat(renderer/map): support animated tiles loop playback (fixes #43) 2026-09-17 06:34:02 +00:00
game feat(wilderness): 还原边界顶点链表与格子级土路算法替换 Catmull-Rom 样条 (Issue #82) 2026-09-18 11:37:20 +00:00
mpq fix(formats): 替换原始缓冲区的未检查读取 2026-09-14 13:19:01 +00:00
net refactor(lockstep): 按项目规范彻底移除 any 约束逃逸并优化哈希分配性能 (refs #7) 2026-09-14 13:05:18 +00:00
render fix(render): 还原原版暗黑2建筑与城门屋顶过道遮挡消失机制 (#72) 2026-09-18 02:12:37 +00:00
scene feat(anim): 接入 LvlPrest.txt 的 Animate 列还原逐关卡动画速度 (Issue #85) 2026-09-18 10:57:00 +00:00
sim feat(sim/loop): decouple simulation from rAF with independent timer and separate TPS/FPS metrics (fixes #19) 2026-09-17 08:12:57 +00:00
ui feat(world): 全局世界连通、关卡无缝切换、传送点、传送门与小地图 (fixes #23) 2026-09-16 23:39:33 +00:00
arena.ts feat(combat): implement Diablo II 1.10+ combat math & PvE depth mechanics (fixes #24, fixes #39) 2026-09-17 02:52:00 +00:00
main.ts 初始提交:从零实现的暗黑破坏神 II WebGL2 引擎(TypeScript + Vite,零运行时依赖) 2026-09-13 18:10:28 +08:00
walk.ts perf(render): 视口剔除 + 单批次合图 + 零分配顶点写入 (refs #16) 2026-09-15 01:30:39 +00:00