// ****************************************************************************
//
// Logic 7: Rotate piece clockwise
//
// ****************************************************************************

#include "defines.txt"

if (piece_type == 1) {
      set(f100);   set(f101); reset(f102); reset(f103);
      set(f104);   set(f105); reset(f106); reset(f107);
    reset(f108); reset(f109); reset(f110); reset(f111);
    reset(f112); reset(f113); reset(f114); reset(f115);
}

if (piece_type == 2) {
  if (rotate_clockwise) { piece_rotation += 1; } else { piece_rotation -= 1; }
  if (piece_rotation == 4) { piece_rotation = 0; }
  if (piece_rotation == 255) { piece_rotation = 3; }
  if (piece_rotation == 0) {
    reset(f100);   set(f101); reset(f102); reset(f103);
    reset(f104);   set(f105); reset(f106); reset(f107);
    reset(f108);   set(f109);   set(f110); reset(f111);
    reset(f112); reset(f113); reset(f114); reset(f115);
  }
  else {
    if (piece_rotation == 1) {
      reset(f100); reset(f101); reset(f102); reset(f103);
        set(f104);   set(f105);   set(f106); reset(f107);
        set(f108); reset(f109); reset(f110); reset(f111);
      reset(f112); reset(f113); reset(f114); reset(f115);
    }
    else {
      if (piece_rotation == 2) {
          set(f100);   set(f101); reset(f102); reset(f103);
        reset(f104);   set(f105); reset(f106); reset(f107);
        reset(f108);   set(f109); reset(f110); reset(f111);
        reset(f112); reset(f113); reset(f114); reset(f115);
      }
      else {
        if (piece_rotation == 3) {
          reset(f100); reset(f101);   set(f102); reset(f103);
            set(f104);   set(f105);   set(f106); reset(f107);
          reset(f108); reset(f109); reset(f110); reset(f111);
          reset(f112); reset(f113); reset(f114); reset(f115);
        }
        else { print(m1);  quit(1); }
      }
    }
  }
}

if (piece_type == 3) {
  if (rotate_clockwise) { piece_rotation += 1; } else { piece_rotation -= 1; }
  if (piece_rotation == 4) { piece_rotation = 0; }
  if (piece_rotation == 255) { piece_rotation = 3; }
  if (piece_rotation == 0) {
    reset(f100);   set(f101); reset(f102); reset(f103);
    reset(f104);   set(f105); reset(f106); reset(f107);
      set(f108);   set(f109); reset(f110); reset(f111);
    reset(f112); reset(f113); reset(f114); reset(f115);
  }
  else {
    if (piece_rotation == 1) {
        set(f100); reset(f101); reset(f102); reset(f103);
        set(f104);   set(f105);   set(f106); reset(f107);
      reset(f108); reset(f109); reset(f110); reset(f111);
      reset(f112); reset(f113); reset(f114); reset(f115);
    }
    else {
      if (piece_rotation == 2) {
        reset(f100);   set(f101);   set(f102); reset(f103);
        reset(f104);   set(f105); reset(f106); reset(f107);
        reset(f108);   set(f109); reset(f110); reset(f111);
        reset(f112); reset(f113); reset(f114); reset(f115);
      }
      else {
        if (piece_rotation == 3) {
          reset(f100); reset(f101); reset(f102); reset(f103);
            set(f104);   set(f105);   set(f106); reset(f107);
          reset(f108); reset(f109);   set(f110); reset(f111);
          reset(f112); reset(f113); reset(f114); reset(f115);
        }
        else { print(m1);  quit(1); }
      }
    }
  }
}

if (piece_type == 4) {
  if (rotate_clockwise) { piece_rotation += 1; } else { piece_rotation -= 1; }
  if (piece_rotation == 4) { piece_rotation = 0; }
  if (piece_rotation == 255) { piece_rotation = 3; }
  if (piece_rotation == 0) {
    reset(f100); reset(f101); reset(f102); reset(f103);
      set(f104);   set(f105);   set(f106); reset(f107);
    reset(f108);   set(f109); reset(f110); reset(f111);
    reset(f112); reset(f113); reset(f114); reset(f115);
  }
  else {
    if (piece_rotation == 1) {
      reset(f100);   set(f101); reset(f102); reset(f103);
        set(f104);   set(f105); reset(f106); reset(f107);
      reset(f108);   set(f109); reset(f110); reset(f111);
      reset(f112); reset(f113); reset(f114); reset(f115);
    }
    else {
      if (piece_rotation == 2) {
        reset(f100);   set(f101); reset(f102); reset(f103);
          set(f104);   set(f105);   set(f106); reset(f107);
        reset(f108); reset(f109); reset(f110); reset(f111);
        reset(f112); reset(f113); reset(f114); reset(f115);
      }
      else {
        if (piece_rotation == 3) {
          reset(f100);   set(f101); reset(f102); reset(f103);
          reset(f104);   set(f105);   set(f106); reset(f107);
          reset(f108);   set(f109); reset(f110); reset(f111);
          reset(f112); reset(f113); reset(f114); reset(f115);
        }
        else { print(m1);  quit(1); }
      }
    }
  }
}

if (piece_type == 5) {
  if (piece_rotation == 0) { piece_rotation = 1; } else { piece_rotation = 0; }
  if (piece_rotation == 0) {
    reset(f100); reset(f101);   set(f102); reset(f103);
    reset(f104);   set(f105);   set(f106); reset(f107);
    reset(f108);   set(f109); reset(f110); reset(f111);
    reset(f112); reset(f113); reset(f114); reset(f115);
  }
  else {
    if (piece_rotation == 1) {
        set(f100);   set(f101); reset(f102); reset(f103);
      reset(f104);   set(f105);   set(f106); reset(f107);
      reset(f108); reset(f109); reset(f110); reset(f111);
      reset(f112); reset(f113); reset(f114); reset(f115);
    }
    else { print(m1);  quit(1); }
  }
}

if (piece_type == 6) {
  if (piece_rotation == 0) { piece_rotation = 1; } else { piece_rotation = 0; }
  if (piece_rotation == 0) {
      set(f100); reset(f101); reset(f102); reset(f103);
      set(f104);   set(f105); reset(f106); reset(f107);
    reset(f108);   set(f109); reset(f110); reset(f111);
    reset(f112); reset(f113); reset(f114); reset(f115);
  }
  else {
    if (piece_rotation == 1) {
      reset(f100);   set(f101);   set(f102); reset(f103);
        set(f104);   set(f105); reset(f106); reset(f107);
      reset(f108); reset(f109); reset(f110); reset(f111);
      reset(f112); reset(f113); reset(f114); reset(f115);
    }
    else { print(m1);  quit(1); }
  }
}

if (piece_type == 7) {
  if (piece_rotation == 0) { piece_rotation = 1; } else { piece_rotation = 0; }
  if (piece_rotation == 0) {
    reset(f100); reset(f101); reset(f102); reset(f103);
      set(f104);   set(f105);   set(f106);   set(f107);
    reset(f108); reset(f109); reset(f110); reset(f111);
    reset(f112); reset(f113); reset(f114); reset(f115);
  }
  else {
    if (piece_rotation == 1) {
      reset(f100);   set(f101); reset(f102); reset(f103);
      reset(f104);   set(f105); reset(f106); reset(f107);
      reset(f108);   set(f109); reset(f110); reset(f111);
      reset(f112);   set(f113); reset(f114); reset(f115);
    }
    else { print(m1);  quit(1); }
  }
}

#message 1 "Internal error: Could not rotate piece.\npiece_type=%v235\npiece_rotation=%v238\nPress ENTER to quit"

return();