private void checkplmove() {
        Gob pl;
        long now = System.currentTimeMillis();
        if ((playergob >= 0) && ((pl = glob.oc.getgob(playergob)) != null)
                && (pl.sc != null)) {
            Coord plp = pl.position();
            if ((plfpos == null) || !plfpos.equals(plp)) {
                lastmove = now;
                plfpos = plp;
                if ((obscpart != null)
                        && !obscpart.checkhit(pl.sc.add(obscgob.sc.inv()))) {
                    obscpart = null;
                    obscgob = null;
                }
            } else if (now - lastmove > 500) {
                for (Sprite.Part p : clickable) {
                    Gob gob = (Gob) p.owner;
                    if ((gob == null) || (gob.sc == null))
                        continue;
                    if (gob == pl)
                        break;
                    if (p.checkhit(pl.sc.add(gob.sc.inv()))) {
                        obscpart = p;
                        obscgob = gob;
                        break;
                    }
                }
            }
        }
        player_moving = ((now - lastmove) < 400);
    }