by normal means and then walks them in a straight line from there (when
the straight line part will invariably be off-screen, this is OK).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2937 542714f4-19e9-0310-aa3c-eee0fc999fb1
object tips, replaced it with a system whereby custom tip layout
mechanisms can be registered for object action prefixes. The default tip
layout centers the tip in the object exactly as before minus the height
limitation business (which is actually no longer needed as the sailing
duty stations are no longer assigned to the rigging but to the wall below
the rigging).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2932 542714f4-19e9-0310-aa3c-eee0fc999fb1
for an action (we already let them have a crack at the icon).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2930 542714f4-19e9-0310-aa3c-eee0fc999fb1
if they are fringed on by any SPECIFIED tileId (ie, not the default tileId)
that is impassible.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2852 542714f4-19e9-0310-aa3c-eee0fc999fb1
space, it ends up considering up to 10,000 nodes with a max path length of
50 which causes the client to hang for like 5 seconds. Not so good. With a
max path length of 20, that comes down to about 1,300 nodes which ends up
being non-linearly faster.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2825 542714f4-19e9-0310-aa3c-eee0fc999fb1
- Tiles are initialized after being constructed which makes life simpler
for custom tiles which no longer have to have their own constructor that
passes Tile's stuff down to it.
- Tiles are no longer LRU cached (because we blow through that cache
instantly on all but the smallest of scenes), and are now tracked by
weak references so that we guarantee that only one instance of a tile is
ever in memory.
- Added code to track and report memory usage of weak cached tiles as well
as "stray" tiles which are created through other means than asking a
TileSet for a tile (fringe tiles being the most prolific example).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2628 542714f4-19e9-0310-aa3c-eee0fc999fb1
Random, instead it relies on a duplicatable hashing method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2621 542714f4-19e9-0310-aa3c-eee0fc999fb1
code to log when we're not painting for lack of blocks and when we restore
painting so that we can further debug the proverbial blue screen situation.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2598 542714f4-19e9-0310-aa3c-eee0fc999fb1
can be serious popping when entire buildings don't come into view until
after we've started displaying.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2597 542714f4-19e9-0310-aa3c-eee0fc999fb1
aren't (we can't truly know if a block is visible until we resolve it
because objects of arbitrary height can overlap the view bounds even if
the block's footprint does not); resolve the definitely visible ones first
and go ahead and start drawing once the known visible blocks are ready.
This cuts the time spent on the "blue screen" by about 75%.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2595 542714f4-19e9-0310-aa3c-eee0fc999fb1
we do allow derived classes to dictate whether or not unresolved tiles are
passable. Additionally, we sanity check the number of nodes searched when
computing paths.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2581 542714f4-19e9-0310-aa3c-eee0fc999fb1
resolved; adjusted influential bounds based on new strategy for scrolling
around and resolving blocks.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2567 542714f4-19e9-0310-aa3c-eee0fc999fb1
its bounds immediately rather than waiting for the remaining queued blocks
to be resolved.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2525 542714f4-19e9-0310-aa3c-eee0fc999fb1
traversable so that if a sprite claims to have relocated somewhere outside
your resolved scene bounds, we'll just bee line them to their new
location. Since the user can never click outside their resolved view
bounds, we won't ever compute an invalid path for them. Joy.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2522 542714f4-19e9-0310-aa3c-eee0fc999fb1
blocks resolved. In the future, we could attempt to resolve the blocks
that are needed to repaint the visible view first and allow repaint as
soon as those blocks are resolved.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2486 542714f4-19e9-0310-aa3c-eee0fc999fb1
same mechanism for including and excluding blocks.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2464 542714f4-19e9-0310-aa3c-eee0fc999fb1
upper left which is something they're already much more likely to be
making use of directly.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2443 542714f4-19e9-0310-aa3c-eee0fc999fb1
scene model and associated business to store scene data in an arbitrary
set of blocks rather than fixed arrays; finally stuck a fork in scene
width and height as well as view width and height along with origin offset
and a few other now obsolete bits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2434 542714f4-19e9-0310-aa3c-eee0fc999fb1
bounds to preserve the current center point when we are resized. Deep
sixed "bounded" and some other needless fiddling.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2430 542714f4-19e9-0310-aa3c-eee0fc999fb1