(At least part of) the problem seems to be in that citizen sets stuff is not initialized as the ruleset loads (number of city styles get set etc), if it had not been available at the time tileset was loaded ( tilespec_reread() was not able to set that stuff up )
The current patch breaks the opposite, and more common case, that the ruleset is *not* sent after tileset load.
Reply To cazfi
The current patch breaks the opposite, and more common case, that the ruleset is *not* sent after tileset load.
That was because of tileset_setup_city_tiles() refusing to handle anything but the current last style - when style count has already gone up there was no handling earlier ones.
Attached patch is a quick fix. No refactoring for that design at this point. Should work for both cases now.
Starting alien ruleset game, accepting the tileset suggestion (don't know if it's relevant that the tileset was not correct one to begin with), and then trying to add an ocean city in editor mode (maybe relevant: in my tests the only ocean tiles revealed by initial vision radius were under FoW) -> client crash.
get_citizen_sprite (t=0x55555d485e50, type=CITIZEN_CONTENT, citizen_index=<optimized out>,
6516 if (graphic == NULL || graphic->count == 0) {