code: public void mouseMoved (MouseEvent e)
      {
          int x = e.getX(), y = e.getY();
  
          // update the mouse's tile coordinates
          updateTileCoords(x, y, _hcoords);
  
          // stop now if we're not responsive
          if (!isResponsive()) {
              return;
          }
  
          // give derived classes a chance to start with a hover object
          Object hobject = computeOverHover(x, y);
  
          // if they came up with nothing, compute the list of objects over
          // which the mouse is hovering
          if (hobject == null) {
              // start with the sprites that contain the point
              _spritemgr.getHitSprites(_hitSprites, x, y);
              int hslen = _hitSprites.size();
              for (int ii = 0; ii < hslen; ii++) {
                  Sprite sprite = _hitSprites.get(ii);
                  appendDirtySprite(_hitList, sprite);
              }
  
              // add the object tiles that contain the point
              getHitObjects(_hitList, x, y);
  
              // sort the list of hit items by rendering order
              _hitList.sort();
  
              // the last element in the array is what we want (assuming
              // there are any items in the array)
              int icount = _hitList.size();
              if (icount > 0) {
                  DirtyItem item = _hitList.get(icount-1);
                  hobject = item.obj;
              }
  
              // clear out the hitlists
              _hitList.clear();
              _hitSprites.clear();
          }
  
          // if the user isn't hovering over a sprite or object with an
          // action, allow derived classes to provide some other hover
          if (hobject == null) {
              hobject = computeUnderHover(x, y);
          }
  
          changeHoverObject(hobject);
      }
docs: documentation inherited from interface