Program froze when rotating the map. I could not repeat the freeze.
Program received signal SIGINT, Interrupt.
0x0000000000559665 in hashtable_tpl<koord, unsigned short, koordhash_tpl<koord> >::remove(koord) ()
(gdb) bt
#0 0x0000000000559665 in hashtable_tpl<koord, unsigned short, koordhash_tpl<koord> >::remove(koord) ()
#1 0x000000000054ecd2 in stadt_t::rotate90(short) ()
#2 0x00000000005c1e34 in karte_t::rotate90() ()
#3 0x000000000059b003 in wkz_rotate90_t::init(karte_t*, spieler_t*) ()
#4 0x00000000005bf4b1 in karte_t::local_set_werkzeug(werkzeug_t*, spieler_t*)
()
#5 0x00000000005bf6c7 in karte_t::set_werkzeug(werkzeug_t*, spieler_t*) ()
#6 0x000000000052d65d in werkzeug_waehler_t::infowin_event(event_t const*) ()
#7 0x00000000005bac48 in check_pos_win(event_t*) ()
#8 0x00000000005ce581 in karte_t::interactive(unsigned int) ()
#9 0x0000000000593492 in simu_main(int, char**) ()
#10 0x00000000005fca93 in main ()
tested with linux 64 compiled from simutrans-experimental 9.x git repository, at version 9.1 state. Using pak128-britain-exp 7.1.
ps.: james, if this is an issue inherited from standard, please move it there. I post it here as i encountered it in experimental.
I know that 9.1 has new code relating to rotation in the city class because pointer hashtables were replaced with koordhashtables, the latter of which need specific rotation to work. It might conceivably be that this was not an infinite loop, just one that took a very long time (with your developed game), although, if it can't be repeated, it's difficult to imagine what the issue is. Thank you for the report, however.
I have notice dramatically increased rotation times in 9.1 in my developed game. This is very annoying, the rotating times were long in older versions, but having to wait 1 minute is too much. Is there a way this could be improved? Note that so far, it hasn't crashed on me yet :)
Unless somebody can think of a better way of storing lists of cities, factories and attractions other than (1) pointers; and (2) co-ordinates then it won't be possible to speed up rotation and at the same time have Simutrans work in network mode, as, with every rotation, all of the co-ordinates need to be recalculated. This comes from Simutrans's system of rotation: instead of rotating the view, it rotates the whole world and keeps the view in the same place.
Too bad :( but then maybe there could be a way to speed it up for non-network games?
Quote from: Brambo on January 05, 2011, 06:31:05 PM
Too bad :( but then maybe there could be a way to speed it up for non-network games?
I'm afraid that I don't think that that'd be practical in programming terms.