Return-To-The-Roots / s25client

Return To The Roots (Settlers II(R) Clone)
http://www.rttr.info
GNU General Public License v2.0
476 stars 75 forks source link

Do not call GetHome() on all dependent_figures #1567

Closed wichern closed 1 year ago

wichern commented 1 year ago

In case a ship just unloaded soldiers at a harbour which is under attack and destroyed, then there are soldiers that are at the same position as the destroyed harbour but still on the way to it.

The GoHome method in noFigure::GoHome() does not cover this case. Since noFigure does not know about the destroyed hardbour, this case is catched in nobBaseWarehouse::DestroyBuilding()

Fix #1559

wichern commented 1 year ago

Hi @Flamefire I'm afraid this PR broke Test_autoplay which is not part of make test

Running 2 test cases...
/home/paul/repos/s25client/tests/s25Main/autoplay/main.cpp(90): fatal error: in "Play200kReplay": critical check msgChecksum == checksum has failed [RandCS = 3,643,546,517,    objects/ID = 14,038/97,298,     events/ID = 4,797/3,597,661 != RandCS = 3,643,546,517,  objects/ID = 14,038/97,298,     events/ID = 4,798/3,597,663]
Failure occurred in a following context:
    Current GF: 121,352
Replay "SeaMap300kGfs.rpl" took 20.6217s

*** 1 failure is detected in the test module "RTTR_AutoplayTest"

Fix in #1569