home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume15 / gtetris / part01 / data.h < prev    next >
Text File  |  1993-01-27  |  20KB  |  471 lines

  1. /*
  2. # GENERIC X-WINDOW-BASED TETRIS
  3. #
  4. #    data.h
  5. #
  6. ###
  7. #
  8. #  Copyright (C) 1992    Qiang Alex Zhao
  9. #            Computer Science Dept, University of Arizona
  10. #            azhao@cs.arizona.edu
  11. #
  12. #            All Rights Reserved
  13. #
  14. #  Permission to use, copy, modify, and distribute this software and
  15. #  its documentation for any purpose and without fee is hereby granted,
  16. #  provided that the above copyright notice appear in all copies and
  17. #  that both that copyright notice and this permission notice appear in
  18. #  supporting documentation, and that the name of the author not be
  19. #  used in advertising or publicity pertaining to distribution of the
  20. #  software without specific, written prior permission.
  21. #
  22. #  This program is distributed in the hope that it will be "playable",
  23. #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  24. #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  25. #
  26. */
  27.  
  28. #define rot00_width 30
  29. #define rot00_height 30
  30. static char rot00_bits[] = {
  31.    0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x03, 0xf8, 0xff, 0xff, 0x07,
  32.    0x5c, 0x55, 0x55, 0x0f, 0xae, 0xaa, 0xaa, 0x1e, 0x56, 0x55, 0x55, 0x1d,
  33.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  34.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  35.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0x6a, 0xaa, 0x1a,
  36.    0x56, 0x95, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  37.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  38.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  39.    0xae, 0xaa, 0xaa, 0x1a, 0x5e, 0x55, 0x55, 0x1d, 0xbc, 0xaa, 0xaa, 0x0e,
  40.    0xf8, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00};
  41.  
  42. #define rot01_width 30
  43. #define rot01_height 30
  44. static char rot01_bits[] = {
  45.    0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x07,
  46.    0x55, 0x55, 0x55, 0x0f, 0xaa, 0xaa, 0xaa, 0x1e, 0x55, 0x55, 0x55, 0x1d,
  47.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  48.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  49.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0x6a, 0xaa, 0x1a,
  50.    0x55, 0x95, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  51.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  52.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  53.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x0e,
  54.    0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00};
  55.  
  56. #define rot02_width 30
  57. #define rot02_height 30
  58. static char rot02_bits[] = {
  59.    0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x03, 0xf8, 0xff, 0xff, 0x07,
  60.    0x5c, 0x55, 0x55, 0x0f, 0xae, 0xaa, 0xaa, 0x1e, 0x56, 0x55, 0x55, 0x1d,
  61.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  62.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  63.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0x6a, 0xaa, 0x1a,
  64.    0x56, 0x95, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  65.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  66.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  67.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  68.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d};
  69.  
  70. #define rot03_width 30
  71. #define rot03_height 30
  72. static char rot03_bits[] = {
  73.    0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x07,
  74.    0x55, 0x55, 0x55, 0x0f, 0xaa, 0xaa, 0xaa, 0x1e, 0x55, 0x55, 0x55, 0x1d,
  75.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  76.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  77.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0x6a, 0xaa, 0x1a,
  78.    0x55, 0x95, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  79.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  80.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  81.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  82.    0x57, 0x55, 0x55, 0x1d, 0xaf, 0xaa, 0xaa, 0x1a, 0x57, 0x55, 0x55, 0x1d};
  83.  
  84. #define rot04_width 30
  85. #define rot04_height 30
  86. static char rot04_bits[] = {
  87.    0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0xf8, 0xff, 0xff, 0x3f,
  88.    0x5c, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  89.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  90.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  91.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0x6a, 0xaa, 0x2a,
  92.    0x56, 0x95, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  93.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  94.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  95.    0xae, 0xaa, 0xaa, 0x2a, 0x5e, 0x55, 0x55, 0x15, 0xbc, 0xaa, 0xaa, 0x2a,
  96.    0xf8, 0xff, 0xff, 0x3f, 0xf0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00};
  97.  
  98. #define rot05_width 30
  99. #define rot05_height 30
  100. static char rot05_bits[] = {
  101.    0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x3f,
  102.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  103.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  104.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  105.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0x6a, 0xaa, 0x2a,
  106.    0x55, 0x95, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  107.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  108.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  109.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  110.    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00};
  111.  
  112. #define rot06_width 30
  113. #define rot06_height 30
  114. static char rot06_bits[] = {
  115.    0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0xf8, 0xff, 0xff, 0x3f,
  116.    0x5c, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  117.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  118.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  119.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0x6a, 0xaa, 0x2a,
  120.    0x56, 0x95, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  121.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  122.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  123.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  124.    0x56, 0x55, 0x55, 0x3d, 0xae, 0xaa, 0xaa, 0x3a, 0x56, 0x55, 0x55, 0x3d};
  125.  
  126. #define rot07_width 30
  127. #define rot07_height 30
  128. static char rot07_bits[] = {
  129.    0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x3f,
  130.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  131.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  132.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  133.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0x6a, 0xaa, 0x2a,
  134.    0x55, 0x95, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  135.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  136.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  137.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  138.    0x57, 0x55, 0x55, 0x3d, 0xaf, 0xaa, 0xaa, 0x3a, 0x57, 0x55, 0x55, 0x3d};
  139.  
  140. #define rot08_width 30
  141. #define rot08_height 30
  142. static char rot08_bits[] = {
  143.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  144.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  145.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  146.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  147.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0x6a, 0xaa, 0x1a,
  148.    0x56, 0x95, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  149.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  150.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  151.    0xae, 0xaa, 0xaa, 0x1a, 0x5e, 0x55, 0x55, 0x1d, 0xbc, 0xaa, 0xaa, 0x0e,
  152.    0xf8, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00};
  153.  
  154. #define rot09_width 30
  155. #define rot09_height 30
  156. static char rot09_bits[] = {
  157.    0xaf, 0xaa, 0xaa, 0x1a, 0x57, 0x55, 0x55, 0x1d, 0xaf, 0xaa, 0xaa, 0x1a,
  158.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  159.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  160.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  161.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0x6a, 0xaa, 0x1a,
  162.    0x55, 0x95, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  163.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  164.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  165.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x0e,
  166.    0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00};
  167.  
  168. #define rot10_width 30
  169. #define rot10_height 30
  170. static char rot10_bits[] = {
  171.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  172.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  173.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  174.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  175.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0x6a, 0xaa, 0x1a,
  176.    0x56, 0x95, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  177.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  178.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d,
  179.    0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a,
  180.    0x56, 0x55, 0x55, 0x1d, 0xae, 0xaa, 0xaa, 0x1a, 0x56, 0x55, 0x55, 0x1d};
  181.  
  182. #define rot11_width 30
  183. #define rot11_height 30
  184. static char rot11_bits[] = {
  185.    0xaf, 0xaa, 0xaa, 0x1a, 0x57, 0x55, 0x55, 0x1d, 0xaf, 0xaa, 0xaa, 0x1a,
  186.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  187.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  188.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  189.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0x6a, 0xaa, 0x1a,
  190.    0x55, 0x95, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  191.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  192.    0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d,
  193.    0xaa, 0xaa, 0xaa, 0x1a, 0x55, 0x55, 0x55, 0x1d, 0xaa, 0xaa, 0xaa, 0x1a,
  194.    0x57, 0x55, 0x55, 0x1d, 0xaf, 0xaa, 0xaa, 0x1a, 0x57, 0x55, 0x55, 0x1d};
  195.  
  196. #define rot12_width 30
  197. #define rot12_height 30
  198. static char rot12_bits[] = {
  199.    0xae, 0xaa, 0xaa, 0x3a, 0x56, 0x55, 0x55, 0x3d, 0xae, 0xaa, 0xaa, 0x3a,
  200.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  201.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  202.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  203.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0x6a, 0xaa, 0x2a,
  204.    0x56, 0x95, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  205.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  206.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  207.    0xae, 0xaa, 0xaa, 0x2a, 0x5e, 0x55, 0x55, 0x15, 0xbc, 0xaa, 0xaa, 0x2a,
  208.    0xf8, 0xff, 0xff, 0x3f, 0xf0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00};
  209.  
  210. #define rot13_width 30
  211. #define rot13_height 30
  212. static char rot13_bits[] = {
  213.    0xaf, 0xaa, 0xaa, 0x3a, 0x57, 0x55, 0x55, 0x3d, 0xaf, 0xaa, 0xaa, 0x3a,
  214.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  215.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  216.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  217.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0x6a, 0xaa, 0x2a,
  218.    0x55, 0x95, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  219.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  220.    0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15,
  221.    0xaa, 0xaa, 0xaa, 0x2a, 0x55, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0x2a,
  222.    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00};
  223.  
  224. #define rot14_width 30
  225. #define rot14_height 30
  226. static char rot14_bits[] = {
  227.    0xae, 0xaa, 0xaa, 0x3a, 0x56, 0x55, 0x55, 0x3d, 0xae, 0xaa, 0xaa, 0x3a,
  228.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  229.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  230.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  231.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0x6a, 0xaa, 0x2a,
  232.    0x56, 0x95, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  233.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  234.    0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15,
  235.    0xae, 0xaa, 0xaa, 0x2a, 0x56, 0x55, 0x55, 0x15, 0xae, 0xaa, 0xaa, 0x2a,
  236.    0x56, 0x55, 0x55, 0x3d, 0xae, 0xaa, 0xaa, 0x3a, 0x56, 0x55, 0x55, 0x3d};
  237.  
  238. struct bitmap_datum {
  239.     char           *data;
  240.     int             height, width;
  241. }               bitmap_data[] = {
  242.  
  243.     {
  244.     rot00_bits, rot00_height, rot00_width
  245.     },
  246.     {
  247.     rot01_bits, rot01_height, rot01_width
  248.     },
  249.     {
  250.     rot02_bits, rot02_height, rot02_width
  251.     },
  252.     {
  253.     rot03_bits, rot03_height, rot03_width
  254.     },
  255.     {
  256.     rot04_bits, rot04_height, rot04_width
  257.     },
  258.     {
  259.     rot05_bits, rot05_height, rot05_width
  260.     },
  261.     {
  262.     rot06_bits, rot06_height, rot06_width
  263.     },
  264.     {
  265.     rot07_bits, rot07_height, rot07_width
  266.     },
  267.     {
  268.     rot08_bits, rot08_height, rot08_width
  269.     },
  270.     {
  271.     rot09_bits, rot09_height, rot09_width
  272.     },
  273.     {
  274.     rot10_bits, rot10_height, rot10_width
  275.     },
  276.     {
  277.     rot11_bits, rot11_height, rot11_width
  278.     },
  279.     {
  280.     rot12_bits, rot12_height, rot12_width
  281.     },
  282.     {
  283.     rot13_bits, rot13_height, rot13_width
  284.     },
  285.     {
  286.     rot14_bits, rot14_height, rot14_width
  287.     }
  288. };
  289.  
  290. pattern_t       patterns[] = {
  291.     {0, "magenta", "white", 0, 0, 0},
  292.     {1, "magenta", "white", 0, 0, 0},
  293.     {2, "magenta", "white", 0, 0, 0},
  294.     {3, "magenta", "white", 0, 0, 0},
  295.     {4, "magenta", "white", 0, 0, 0},
  296.     {5, "magenta", "white", 0, 0, 0},
  297.     {6, "magenta", "white", 0, 0, 0},
  298.     {7, "magenta", "white", 0, 0, 0},
  299.     {8, "magenta", "white", 0, 0, 0},
  300.     {9, "magenta", "white", 0, 0, 0},
  301.     {10, "magenta", "white", 0, 0, 0},
  302.     {11, "magenta", "white", 0, 0, 0},
  303.     {12, "magenta", "white", 0, 0, 0},
  304.     {13, "magenta", "white", 0, 0, 0},
  305.     {14, "magenta", "white", 0, 0, 0},
  306.     {0, "magenta", "white", 0, 0, 0},
  307.     {0, "forest green", "white", 0, 0, 0},
  308.     {1, "forest green", "white", 0, 0, 0},
  309.     {2, "forest green", "white", 0, 0, 0},
  310.     {3, "forest green", "white", 0, 0, 0},
  311.     {4, "forest green", "white", 0, 0, 0},
  312.     {5, "forest green", "white", 0, 0, 0},
  313.     {6, "forest green", "white", 0, 0, 0},
  314.     {7, "forest green", "white", 0, 0, 0},
  315.     {8, "forest green", "white", 0, 0, 0},
  316.     {9, "forest green", "white", 0, 0, 0},
  317.     {10, "forest green", "white", 0, 0, 0},
  318.     {11, "forest green", "white", 0, 0, 0},
  319.     {12, "forest green", "white", 0, 0, 0},
  320.     {13, "forest green", "white", 0, 0, 0},
  321.     {14, "forest green", "white", 0, 0, 0},
  322.     {0, "forest green", "white", 0, 0, 0},
  323.     {0, "blue", "white", 0, 0, 0},
  324.     {1, "blue", "white", 0, 0, 0},
  325.     {2, "blue", "white", 0, 0, 0},
  326.     {3, "blue", "white", 0, 0, 0},
  327.     {4, "blue", "white", 0, 0, 0},
  328.     {5, "blue", "white", 0, 0, 0},
  329.     {6, "blue", "white", 0, 0, 0},
  330.     {7, "blue", "white", 0, 0, 0},
  331.     {8, "blue", "white", 0, 0, 0},
  332.     {9, "blue", "white", 0, 0, 0},
  333.     {10, "blue", "white", 0, 0, 0},
  334.     {11, "blue", "white", 0, 0, 0},
  335.     {12, "blue", "white", 0, 0, 0},
  336.     {13, "blue", "white", 0, 0, 0},
  337.     {14, "blue", "white", 0, 0, 0},
  338.     {0, "blue", "white", 0, 0, 0},
  339.     {0, "red", "white", 0, 0, 0},
  340.     {1, "red", "white", 0, 0, 0},
  341.     {2, "red", "white", 0, 0, 0},
  342.     {3, "red", "white", 0, 0, 0},
  343.     {4, "red", "white", 0, 0, 0},
  344.     {5, "red", "white", 0, 0, 0},
  345.     {6, "red", "white", 0, 0, 0},
  346.     {7, "red", "white", 0, 0, 0},
  347.     {8, "red", "white", 0, 0, 0},
  348.     {9, "red", "white", 0, 0, 0},
  349.     {10, "red", "white", 0, 0, 0},
  350.     {11, "red", "white", 0, 0, 0},
  351.     {12, "red", "white", 0, 0, 0},
  352.     {13, "red", "white", 0, 0, 0},
  353.     {14, "red", "white", 0, 0, 0},
  354.     {0, "red", "white", 0, 0, 0},
  355.     {0, "dark turquoise", "white", 0, 0, 0},
  356.     {1, "dark turquoise", "white", 0, 0, 0},
  357.     {2, "dark turquoise", "white", 0, 0, 0},
  358.     {3, "dark turquoise", "white", 0, 0, 0},
  359.     {4, "dark turquoise", "white", 0, 0, 0},
  360.     {5, "dark turquoise", "white", 0, 0, 0},
  361.     {6, "dark turquoise", "white", 0, 0, 0},
  362.     {7, "dark turquoise", "white", 0, 0, 0},
  363.     {8, "dark turquoise", "white", 0, 0, 0},
  364.     {9, "dark turquoise", "white", 0, 0, 0},
  365.     {10, "dark turquoise", "white", 0, 0, 0},
  366.     {11, "dark turquoise", "white", 0, 0, 0},
  367.     {12, "dark turquoise", "white", 0, 0, 0},
  368.     {13, "dark turquoise", "white", 0, 0, 0},
  369.     {14, "dark turquoise", "white", 0, 0, 0},
  370.     {0, "dark turquoise", "white", 0, 0, 0},
  371.     {0, "black", "white", 0, 0, 0},
  372.     {1, "black", "white", 0, 0, 0},
  373.     {2, "black", "white", 0, 0, 0},
  374.     {3, "black", "white", 0, 0, 0},
  375.     {4, "black", "white", 0, 0, 0},
  376.     {5, "black", "white", 0, 0, 0},
  377.     {6, "black", "white", 0, 0, 0},
  378.     {7, "black", "white", 0, 0, 0},
  379.     {8, "black", "white", 0, 0, 0},
  380.     {9, "black", "white", 0, 0, 0},
  381.     {10, "black", "white", 0, 0, 0},
  382.     {11, "black", "white", 0, 0, 0},
  383.     {12, "black", "white", 0, 0, 0},
  384.     {13, "black", "white", 0, 0, 0},
  385.     {14, "black", "white", 0, 0, 0},
  386.     {0, "brown", "white", 0, 0, 0},
  387.     {0, "brown", "white", 0, 0, 0},
  388.     {1, "brown", "white", 0, 0, 0},
  389.     {2, "brown", "white", 0, 0, 0},
  390.     {3, "brown", "white", 0, 0, 0},
  391.     {4, "brown", "white", 0, 0, 0},
  392.     {5, "brown", "white", 0, 0, 0},
  393.     {6, "brown", "white", 0, 0, 0},
  394.     {7, "brown", "white", 0, 0, 0},
  395.     {8, "brown", "white", 0, 0, 0},
  396.     {9, "brown", "white", 0, 0, 0},
  397.     {10, "brown", "white", 0, 0, 0},
  398.     {11, "brown", "white", 0, 0, 0},
  399.     {12, "brown", "white", 0, 0, 0},
  400.     {13, "brown", "white", 0, 0, 0},
  401.     {14, "brown", "white", 0, 0, 0},
  402.     {0, "brown", "white", 0, 0, 0}
  403. };
  404.  
  405. #define NUM_PATTERNS    (sizeof (patterns) / sizeof (patterns[0]))
  406.  
  407. int             num_patterns = NUM_PATTERNS;
  408.  
  409. thing_t         possible[] = {
  410.  
  411.     {{{0, 0, 0, 0},
  412.     {1, 1, 1, 1},
  413.     {0, 0, 0, 0},
  414.     {0, 0, 0, 0}}, 0, 0, 4, 1},
  415.  
  416.     {{{0, 1, 0, 0},
  417.     {0, 1, 0, 0},
  418.     {1, 1, 0, 0},
  419.     {0, 0, 0, 0}}, 0, 0, 3, 1},
  420.  
  421.     {{{1, 0, 0, 0},
  422.     {1, 0, 0, 0},
  423.     {1, 1, 0, 0},
  424.     {0, 0, 0, 0}}, 0, 0, 3, 1},
  425.  
  426.     {{{0, 1, 0, 0},
  427.     {1, 1, 0, 0},
  428.     {1, 0, 0, 0},
  429.     {0, 0, 0, 0}}, 0, 0, 3, 1},
  430.  
  431.     {{{1, 0, 0, 0},
  432.     {1, 1, 0, 0},
  433.     {0, 1, 0, 0},
  434.     {0, 0, 0, 0}}, 0, 0, 3, 1},
  435.  
  436.     {{{1, 1, 0, 0},
  437.     {1, 1, 0, 0},
  438.     {0, 0, 0, 0},
  439.     {0, 0, 0, 0}}, 0, 0, 2, 1},
  440.  
  441.     {{{0, 1, 0, 0},
  442.     {1, 1, 1, 0},
  443.     {0, 0, 0, 0},
  444.     {0, 0, 0, 0}}, 0, 0, 3, 2},
  445. };
  446.  
  447. #define NUM_POSSIBLE    (sizeof (possible) / sizeof (possible[0]))
  448.  
  449. int             speeds[NUM_LEVELS] =
  450.     {100, 80, 65, 50, 40, 33, 26, 20, 15, 10, 7, 5};
  451.  
  452. int             thresh[NUM_LEVELS] =
  453.     {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, INF};
  454.  
  455. /* variables used in tetris.c */
  456.  
  457. XColor          bgcolor, bdcolor, titlecolor, textcolor;
  458. Colormap        cmap;
  459.  
  460. Display        *disp;
  461. GC              gc_t;
  462. GC              gc_w;
  463. GC              gc_w2;
  464. GC              gc_ttx;
  465. GC              gc_wtx;
  466. GC              gc_pat[NUM_PATTERNS];
  467. XGCValues       gcv;
  468. XGCValues       color;
  469. XGCValues       text;
  470.  
  471.