Reply To cazfi
Reply To cazfi
Loading savegame from #47493 to S3_0 (+ local patches, still needs to confirm with pure S3_0) gives "assertion 'really_gives_vision(pplayer, pplayer2)' failed."
Happens with S3_0 HEAD, but did not see it with 3.0.7 -> regression?
No. My stored 3.0.7 was a non-debug build (these sanity checks not enabled). With debug build the failure is there.
Looking at diplstates in the savegame, players in question (Charlotte and Galba) are in a team (the sanity check is checking exactly that the teamed players do share vision), both of them agree that they are "Never Met", and one of them shares vision to the other, but the other one does not share vision back.
One place where remove_shared_vision() might get called for teamed players is after this reversed alliance check:
/* A spaceship victory is always one single player's or team's victory */ if (aplayer->spaceship.state == SSHIP_LAUNCHED && adv->dipl.spacerace_leader == aplayer && pplayers_allied(pplayer, aplayer)) {
That might explain also some issues with how AI just waits for non-allied player to win by spaceship.
Reply To cazfi
One place where remove_shared_vision() might get called for teamed players is after this reversed alliance check: {{{ /* A spaceship victory is always one single player's or team's victory */ if (aplayer->spaceship.state == SSHIP_LAUNCHED && adv->dipl.spacerace_leader == aplayer && pplayers_allied(pplayer, aplayer)) { }}}
Misread that part. 1) This particular block was about cancelling the alliance, so the players indeed should be allied to begin with. 2) Teams are checked earlier already (and "continue;")
This isn't a regression after all + the fix is going to be rather involved / risky -> postpone over the 3.0.8 release.
Pushed to branches other than S3_0 (in soft freeze). Will be pushed there after 3.0.8 release.
isn't this related to https://osdn.net/projects/freeciv/ticket/47495#comment:12505:47495:1679572056 ?
Reply To alain_bkr
isn't this related to https://osdn.net/projects/freeciv/ticket/47495#comment:12505:47495:1679572056 ?
Seems to me that this could be part of it, yes, but can not explain all the error messages there. What you saw might be a combination of this ( #48152 ) and #48295.
Reply To cazfi
Pushed to branches other than S3_0 (in soft freeze). Will be pushed there after 3.0.8 release.
I think this caused a regression on branches where it was pushed. Savegame loading now complains about players not providing shared vision *to themselves*.
Reply To cazfi
Reply To cazfi
Pushed to branches other than S3_0 (in soft freeze). Will be pushed there after 3.0.8 release.
I think this caused a regression on branches where it was pushed. Savegame loading now complains about players not providing shared vision *to themselves*.
Fix from #48311 rolled in to the new version of S3_0 patch. Old version of the patch was also missing savegame3 sanity check part completely - likely a mistake made when backporting the patch (the file path is different from later branches, so likely proper backporting would have required manual adjustments which I had failed to do)
Loading savegame from #47493 to S3_0 (+ local patches, still needs to confirm with pure S3_0) gives "assertion 'really_gives_vision(pplayer, pplayer2)' failed."