News:

Want to praise Simutrans?
Your feedback is important for us ;D.

[freeze 9.x] freeze when rotating

Started by sdog, December 30, 2010, 07:47:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

sdog

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.

jamespetts

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.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Brambo

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 :)

jamespetts

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.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Brambo

Too bad :( but then maybe there could be a way to speed it up for non-network games?

jamespetts

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.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.