[DRLG] 第五幕户外关卡改用 D2MOO 1:1 移植(关卡 110–112、117、134) #498

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

背景

#455 的第一幕部分已完成(b6fc251,D2MOO 逐函数 1:1 移植,32 个随机种子与原生 oracle 全阶段 0 差异)。本 issue 用同样的方法处理第五幕。

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

110 Bloody Foothills、111 Frigid Highlands(LevelName Rigid Highlands)、112 Arreat Plateau、117 Frozen Tundra(LevelName Tundra Wastelands)、134 Forgotten Sands(Uber,LevelName Pandemonium Run 2,LevelType 16)。

注意 111、112 在 Levels.txt 中 SizeX/SizeY 为 -1,尺寸由运行时决定,必须照 D2MOO 实现,不能写死。

需要移植的 D2MOO 函数

  • DrlgOutSiege.cpp:DRLGOUTSIEGE_InitAct5OutdoorLevel、DRLGOUTSIEGE_ConnectBarricadeAndSiege 及其辅助函数。
  • DrlgOutPlace.cpp:DRLGOUTPLACE_CreateLevelConnections 的第五幕分支、DRLGOUTPLACE_LinkAct5Ubers。
  • DrlgOutdoors.cpp:DRLGOUTDOORS_GenerateLevel 的第五幕分派。

目前这些分支在 src/game/drlg/ 中直接 throw(未移植),第五幕仍走旧生成器。

同时删除(不留 fallback)

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

验收

  1. oracle 扩展到第五幕;npx tsx scripts/drlg-diff.ts --levels 110-112,117,134 --seeds 32 全阶段 0 差异,另跑 --isolated。
  2. 重新烘焙;对比图 XOR 为空,缺失瓦片 0。
  3. 136 关无头浏览器审计通过;verify:world-graph、verify:world-walk 通过。
## 背景 #455 的第一幕部分已完成(b6fc251,D2MOO 逐函数 1:1 移植,32 个随机种子与原生 oracle 全阶段 0 差异)。本 issue 用同样的方法处理第五幕。 ## 范围(Levels.txt `DrlgType = 3`,第五幕) 110 Bloody Foothills、111 Frigid Highlands(`LevelName` Rigid Highlands)、112 Arreat Plateau、117 Frozen Tundra(`LevelName` Tundra Wastelands)、134 Forgotten Sands(Uber,`LevelName` Pandemonium Run 2,LevelType 16)。 注意 111、112 在 Levels.txt 中 `SizeX`/`SizeY` 为 -1,尺寸由运行时决定,必须照 D2MOO 实现,不能写死。 ## 需要移植的 D2MOO 函数 - `DrlgOutSiege.cpp`:`DRLGOUTSIEGE_InitAct5OutdoorLevel`、`DRLGOUTSIEGE_ConnectBarricadeAndSiege` 及其辅助函数。 - `DrlgOutPlace.cpp`:`DRLGOUTPLACE_CreateLevelConnections` 的第五幕分支、`DRLGOUTPLACE_LinkAct5Ubers`。 - `DrlgOutdoors.cpp`:`DRLGOUTDOORS_GenerateLevel` 的第五幕分派。 目前这些分支在 `src/game/drlg/` 中直接 throw(未移植),第五幕仍走旧生成器。 ## 同时删除(不留 fallback) - `wilderness.ts` 旧生成器中第五幕的路径;`world-graph.ts` 中第五幕臆造的门朝向(`assignGateSides`)和缝合边。 ## 验收 1. oracle 扩展到第五幕;`npx tsx scripts/drlg-diff.ts --levels 110-112,117,134 --seeds 32` 全阶段 0 差异,另跑 `--isolated`。 2. 重新烘焙;对比图 XOR 为空,缺失瓦片 0。 3. 136 关无头浏览器审计通过;`verify:world-graph`、`verify:world-walk` 通过。
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#498
No description provided.