[DRLG] 第三幕户外关卡改用 D2MOO 1:1 移植(关卡 76–83) #499

Open
opened 2026-09-27 15:29:41 +00:00 by troytt · 0 comments
Owner

背景

#455 的第一幕部分已完成(b6fc251,D2MOO 逐函数 1:1 移植,32 个随机种子与原生 oracle 全阶段 0 差异)。本 issue 用同样的方法处理第三幕。第三幕的丛林和库拉斯特与其他幕的户外算法差别最大,放在最后做。

范围(Levels.txt DrlgType = 3,第三幕)

76 Spider Forest、77 Great Marsh、78 Flayer Jungle、79 Lower Kurast、80 Kurast Bazaar、81 Upper Kurast、82 Kurast Causeway、83 Travincal。

需要移植的 D2MOO 函数

  • DrlgOutPlace.cpp:DRLGOUTPLACE_InitAct3OutdoorLevel、DRLGOUTPLACE_BuildKurast,以及 DRLGOUTPLACE_CreateLevelConnections 的第三幕分支。
  • DrlgOutJung.cpp:DRLGOUTJUNG_BuildJungle、DRLGOUTJUNG_BuildLowerKurast、DRLGOUTJUNG_BuildKurastBazaar、DRLGOUTJUNG_BuildUpperKurast。
  • DrlgOutdoors.cpp:DRLGOUTDOORS_GenerateLevel 的第三幕分派。

目前这些分支在 src/game/drlg/ 中直接 throw(未移植),第三幕仍走旧生成器。82、83 在 verify:generators 里本来就失败,移植后应一并消失。

同时删除(不留 fallback)

  • wilderness.ts 旧生成器中第三幕的路径;world-graph.ts 中第三幕臆造的门朝向(assignGateSides)和缝合边。

验收

  1. oracle 扩展到第三幕;npx tsx scripts/drlg-diff.ts --levels 76-83 --seeds 32 全阶段 0 差异,另跑 --isolated。
  2. 重新烘焙;对比图 XOR 为空,缺失瓦片 0。
  3. 136 关无头浏览器审计通过;verify:world-graph、verify:world-walk、verify:generators 通过。
## 背景 #455 的第一幕部分已完成(b6fc251,D2MOO 逐函数 1:1 移植,32 个随机种子与原生 oracle 全阶段 0 差异)。本 issue 用同样的方法处理第三幕。第三幕的丛林和库拉斯特与其他幕的户外算法差别最大,放在最后做。 ## 范围(Levels.txt `DrlgType = 3`,第三幕) 76 Spider Forest、77 Great Marsh、78 Flayer Jungle、79 Lower Kurast、80 Kurast Bazaar、81 Upper Kurast、82 Kurast Causeway、83 Travincal。 ## 需要移植的 D2MOO 函数 - `DrlgOutPlace.cpp`:`DRLGOUTPLACE_InitAct3OutdoorLevel`、`DRLGOUTPLACE_BuildKurast`,以及 `DRLGOUTPLACE_CreateLevelConnections` 的第三幕分支。 - `DrlgOutJung.cpp`:`DRLGOUTJUNG_BuildJungle`、`DRLGOUTJUNG_BuildLowerKurast`、`DRLGOUTJUNG_BuildKurastBazaar`、`DRLGOUTJUNG_BuildUpperKurast`。 - `DrlgOutdoors.cpp`:`DRLGOUTDOORS_GenerateLevel` 的第三幕分派。 目前这些分支在 `src/game/drlg/` 中直接 throw(未移植),第三幕仍走旧生成器。82、83 在 `verify:generators` 里本来就失败,移植后应一并消失。 ## 同时删除(不留 fallback) - `wilderness.ts` 旧生成器中第三幕的路径;`world-graph.ts` 中第三幕臆造的门朝向(`assignGateSides`)和缝合边。 ## 验收 1. oracle 扩展到第三幕;`npx tsx scripts/drlg-diff.ts --levels 76-83 --seeds 32` 全阶段 0 差异,另跑 `--isolated`。 2. 重新烘焙;对比图 XOR 为空,缺失瓦片 0。 3. 136 关无头浏览器审计通过;`verify:world-graph`、`verify:world-walk`、`verify:generators` 通过。
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#499
No description provided.