[Parity][automap][S1][R] Tab 键与迷你面板自动地图按钮在 off → level → act 三态揭图间循环,原版仅切换开关且只显示已探索区域 #584
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?
来源审计项:
motion-input#4— [S1][R] 4. Tab 被做成"揭图"三态循环(off → level → act),原版"只显示已探索区域"的 automap 永远看不到command-mapper.ts:715-726;ui-model/hud-model.ts:539-547(toggleAutomap);scene/world-renderer.ts:1138-1143(mode 为'off'时minimap.visible = false);automap/automap-view.ts:200-207('level'揭示整层全部 DRLG 房间,'act'生成并揭示整幕);settings/client-settings.ts:15, 23, 40-44, 59(automapReveal设置,默认'off');session/online-session.ts:295-298(initialMode取自设置)const next = cur === 'off' ? 'level' : cur === 'level' ? 'act' : 'off'automap-view.ts:204文档说'off'只显示 0x07 已揭示的房间,但渲染端在'off'时直接把 automap 隐藏了,这个模式永远到不了。玩家还能在设置里把揭图模式设成默认。来源审计项:
map#4— [S1][R] Tab 变成三态循环 off→level→act→off:第二次按 Tab 进入自创的"整幕"视图,而不是关闭地图位置:
src/client/ui-model/hud-model.ts:542-547(toggleAutomap):cur === 'off' ? 'level' : cur === 'level' ? 'act' : 'off'。src/client/input/command-mapper.ts:716-723:Tab 走这条路径,回退分支也是同样的三态。src/client/scene/world-renderer.ts:1139-1143:可见性跟随 mode。src/client/automap/automap-view.ts:48-54:ACT_PRIMARY_LEVEL_IDS,手写的每幕关卡清单。automap-view.ts:379-390(applyRevealModeToViews):在 'act' 模式下对清单中每个关卡同步调用ensureLevelView(主线程同步跑 DRLG)。automap-view.ts:412-421:'act' 模式把这些关卡都设为可见。代码:
原版:
default.key把 Tab 绑定为 func7(自动地图)。V-data:本地解析$S/excel/default.key。原版行为是开/关自动地图(K,高把握)。原版不存在"整幕"显示模式,自动地图永远只画当前关卡(以及同层可见房间)。影响:
ensureLevelView会通过mapService.loadAct/getLevelView改写MapService.activeView。map-service.ts:452-456的注释已承认这个副作用(#539)。建议: Tab 只做 off ↔ on 切换,删除 'act' 模式和
ACT_PRIMARY_LEVEL_IDS。已有 issue: —(#534 讲的是按键冲突和重复处理器,没有涉及这里的三态语义)
来源审计项:
hud#4— [S2][R] 4. Tab 键和迷你面板"自动地图"按钮在 off → level → act 三种揭示模式间循环src/client/ui-model/hud-model.ts:540-547(toggleAutomap)。调用方:src/client/input/command-mapper.ts:716-727(Tab)、src/client/main.ts:209-211加src/client/ui/hud-manager.ts:1676(迷你面板)。模式语义见src/client/automap/automap-view.ts:200-207、:430-437;显示条件见src/client/scene/world-renderer.ts:1139-1142。const next = cur === 'off' ? 'level' : cur === 'level' ? 'act' : 'off''off'就等于"隐藏"。第一次按 Tab 进入'level',数据源变成当前关卡的全部 DRLG 房间,不再按服务器 0x07 AddMapRoom 过滤;第二次进入'act',加载整幕主要关卡和跨关卡出口标签;第三次才关闭。服务器揭示过滤只在不显示地图的'off'模式下生效。最终画出多少,还要看 minimap 自己的 explored 掩码(属于 automap 区域,这里没有深究)。但"第二次按 Tab 不关地图,而是切到整幕揭示"本身就和原版不同。toolbar 的automapReveal设置(默认 off)共用同一个状态。