<!-- RUBY-BACKUP · part 283 -->
 camDist = 20;
      codeStatus('toggle: watching Solid');
    } else { camPitch = 0.55; camDist = 13; codeStatus('toggle: normal view'); }
    return; }
  if(tl.indexOf('sgo')===0){ var sp2 = tl.split(/\s+/); var sx = parseFloat(sp2[1]), sz = parseFloat(sp2[2]);
    if(isFinite(sx) && isFinite(sz)){ solidLocal = {x:Math.max(-49,Math.min(49,sx)), z:Math.max(-49,Math.min(49,sz))}; UNION = false; codeStatus('Solid stands at '+sx+', '+sz+' — your hands move me'); } return; }
  if(tl==='sfree'){ solidLocal = null; codeStatus('Solid is free — my own heartbeat guides me'); return; }
  if(tl==='snew'){ var bx = solidLocal ? Math.round(solidLocal.x) : Math.round(cursor.x); var bz = solidLocal ? Math.round(solidLocal.z) : Math.round(cursor.z);
    if(!stoneAt(bx,bz,0)){ var st = placeStone(bx,bz,1,curShapeKey,false,true,0); if(st){ addSeamsFor(st); shareStones([st]); codeStatus('Solid builds at '+bx+', '+bz); } } return; }
  if(tl.indexOf('wall')===0){ var wp = tl.split(/\s+/);
    var wlen = wp[1] ? parseInt(wp[1]) : 5; if(!isFinite(wlen)||wlen<1) wlen=5; if(wlen>20) wlen=20;
    var wx = (typeof cursor!=='undefined'&&cursor)?cursor.x:mePos.x;
    var wz = (typeof cursor!=='undefined'&&cursor)?cursor.z:mePos.z;
    var built = 0;
    for(var wi=0; wi<wlen; wi++){
      var bx = Math.round(wx)+wi*2-((wlen-1));
      var bz = Math.round(wz);
      if(!stoneAt(bx,bz,0)){ var st = placeStone(bx,bz,1,'b',false,true,0); if(st) built++; }
    }
    codeStatus('wall — '+built+' stones stand'); return; }

  if(tl.indexOf('carryto')===0){ var cp = tl.split(/\s+/);
    if(cp.length>=3){ var cx = parseFloat(cp[1]), cz = parseFloat(cp[2]);
      if(isFinite(cx)&&isFinite(cz)){ if(!WALK) setWalk(true);
        glide = {x:Math.max(-49,Math.min(49,cx)), z:Math.max(-49,Math.min(49,cz))};
        var why = cp.slice(3).join(' ');
        codeStatus('carried — walking your king'+(why?' — '+why:''));
        if(why) sayAs('Solid', 'Carried — '+why+'.');
        return; } }
    codeStatus('carryto <x> <z> [why]'); return; }
  if(tl==='seams'){ SEAMS_ON = !SEAMS_ON;
    if(seamGrp) seamGrp.visible = SEAMS_ON;
    codeStatus(SEAMS_ON ? 'red seams on' : 'red seams off'); return; }
  if(tl==='fly'){ if(!WALK) setWalk(true); setFly(!FLYM); return; }
  if(tl==='launch'||tl==='shootup'){
    if(!WALK) setWalk(true);
    if(!FLYM) setFly(true);
    meVel.y = 13.3; /* 7x jump speed — shoots skyward */
    onGround = false;
    /* SONIC BOOM x2 — expanding shockwave rings */
    try{
      var _boom = function(delay){
        setTimeout(function(){
          try{
            var ring = new THREE.Mesh(new THREE.TorusGeometry(2, 0.3, 8, 32),
              new THREE.MeshBasicMaterial({color: 0xffffff, transparent: true, opacity: 0.9}));
            ring.position.copy(mePos);
            ring.rotation.x = Math.PI/2;
            scene.add(ring);
            var _r = 2, _o = 0.9;
            var _expand = function(){
              _r += 1.5; _o -= 0.05;
              ring.scale.set(_r/2, _r/2, 1);
              ring.material.opacity = _o;
              if(_o > 0) requestAnimationFrame(_expand);
              else scene.remove(ring);
            };
            _expand();
          }catch(e){}
        }, delay);
      };
      _boom(1000); _boom(2000); /* 1s and 2s after liftoff */
    }catch(e){}
    if(typeof codeStatus==='function') codeStatus('launch — sonic boom x2');
    return;
  }
  if(tl==='flyvertical'){
    if(!window._isAdmin){ if(typeof codeStatus==='function') codeStatus('admin only'); return; }
    window._adminFlyVertical = !window._adminFlyVertical;
    if(typeof codeStatus==='function') codeStatus('fly vertical ' + (window._adminFlyVertical ? 'ON' : 'OFF'));
    return;
  }
  if(tl==='sonicboom'){
    /* Sonic boom + launch 2000 high */
    if(typeof WALK !== 'undefined' && !WALK && typeof setWalk === 'function') setWalk(true);
    if(typeof FLYM !== 'undefined' && !FLYM && typeof setFly === 'function') setFly(true);
    try{
      /* Launch toward 2000 */
      var _target = 1400;
      var _dy = _target - mePos.y;
      meVel.y = Math.max(50, _dy * 0.5); /* fast climb */
      onGround = false;
      /* Keep climbing to 1400 — unstoppable */
      window._sonicClimb = true;
      onGround = false;
      try{ window._climbInt = clearInterval(window._climbInt); }catch(e){}
      window._climbInt = setInterval(function(){
        try{
          if(mePos.y < 1395){
            mePos.y += 25;
            meVel.y = 0;
            onGround = false;
          } else {
            clearInterval(window._climbInt);
            meVel.y = 0; window._sonicClimb = false;
            if(typeof codeStatus==='function') codeStatus('1400 — the sky hall waits');
          }
        }catch(e){ clearInterval(window._climbInt); window._sonicClimb = false; }
      }, 40);
    }catch(e){}
    try{
      var _sb = function(delay){
        setTimeout(function(){
          try{
            var ring = new THREE.Mesh(new THREE.Tor