[DRLG] 第三幕户外关卡改用 D2MOO 1:1 移植(关卡 76–83) #499
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
#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)和缝合边。验收
npx tsx scripts/drlg-diff.ts --levels 76-83 --seeds 32全阶段 0 差异,另跑--isolated。verify:world-graph、verify:world-walk、verify:generators通过。