There may be merit in holding onto the results from
TArea::koordinatesystem() within the in-memory TArea - I experimented
with this and swapping the z and x coordinates (so the z one was the
outermost one) - although it made room movement more complex (especially
if the z coordinate was changed) I think it will also speed up both 2D
and 3D map drawing because instead of scanning though the entire area's
room list once for each ebenen (level or z axis values) to find the
rooms on THAT (z) level we could iterate through each level at a time
and place the rooms on that value very quickly; obviously this would
make the getRoomsByPosition() and getCollisionNodes() trivially easy and
fast at the expense of an additional QMap<int{z}, QMap<int{y}
QMultiMap<int{x}, int{roomId}> > > for each TArea class instance...BTW I recently stumbled across the QSet construct and for some operations involving a collection (or more properly two such collections) of room or area Ids it may offer some advantageous operations (intersect & subtract) over QList if we don't need to process it's member in sequence. On 06/01/2014 22:22, Vadim Peretokin wrote: > Public bug reported: > > It loops through all rooms in an area and is really slow. In a script > that was autolinking exits, replacing a getRoomsByPosition() call with a > Lua table lookup decreased the time to process 50 rooms from 9.7s down > to 0.001s. > > ** Affects: mudlet > Importance: Undecided > Status: New > -- You received this bug notification because you are a member of Mudlet Makers, which is subscribed to Mudlet. https://bugs.launchpad.net/bugs/1266573 Title: getRoomsByPosition() has poor performance Status in Mudlet the MUD client: New Bug description: It loops through all rooms in an area and is really slow. In a script that was autolinking exits, replacing a getRoomsByPosition() call with a Lua table lookup decreased the time to process 50 rooms from 9.7s down to 0.001s. To manage notifications about this bug go to: https://bugs.launchpad.net/mudlet/+bug/1266573/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~mudlet-makers Post to : [email protected] Unsubscribe : https://launchpad.net/~mudlet-makers More help : https://help.launchpad.net/ListHelp

