Advertisement
Guest User

Royal Tetris

a guest
Aug 26th, 2016
639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 67.18 KB | None | 0 0
  1. /*
  2. #  blockType 1   = 2x2 block
  3. #  blockType 2   = vertical 1x4 block
  4. #  blockType 2.1 = horizontal 1x4 block
  5. #  blockType 3   = vertical Z block
  6. #  blockType 3.1 = horizontal Z block
  7. #  blockType 4   = flipped vertical Z block
  8. #  blockType 4.1 = flipped horizontal Z block
  9. #  blockType 5   = L block
  10. #  blockType 5.1 = L block 90 degrees left
  11. #  blockType 5.2 = L block 180 degrees left
  12. #  blockType 5.3 = L block 270 degrees left
  13. #  blockType 6   = flipped L block
  14. #  blockType 6.1 = flipped L block 90 degrees left
  15. #  blockType 6.2 = flipped L block 180 degrees left
  16. #  blockType 6.3 = flipped L block 270 degrees left
  17. */
  18.  
  19. #include <allegro.h>
  20. #include <cstdlib>
  21.  
  22. volatile int timer;
  23. void inc_timer()
  24. {
  25.     timer++;
  26. }
  27.  
  28. BITMAP *buffer;
  29. BITMAP *buffer2;
  30. BITMAP *bgSprite;
  31. BITMAP *menuBgSprite;
  32. BITMAP *optionsBgSprite;
  33. BITMAP *block1;
  34. BITMAP *block2;
  35. BITMAP *block3;
  36. BITMAP *block4;
  37. BITMAP *block5;
  38. BITMAP *block6;
  39. BITMAP *block7;
  40. BITMAP *nextBlock1;
  41. BITMAP *nextBlock2;
  42. BITMAP *nextBlock3;
  43. BITMAP *nextBlock4;
  44. BITMAP *nextBlock5;
  45. BITMAP *nextBlock6;
  46. BITMAP *nextBlock7;
  47. BITMAP *gameOverSprite;
  48. BITMAP *mouseSprite;
  49. BITMAP *onSprite;
  50. BITMAP *offSprite;
  51.  
  52. SAMPLE *clickSample;
  53. SAMPLE *click2Sample;
  54. SAMPLE *pauseSample;
  55. SAMPLE *menuSample;
  56.  
  57. int main()
  58. {
  59.     srand(time(NULL));
  60.    
  61.     allegro_init();
  62.     install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT , "q");
  63.     install_keyboard();
  64.     install_mouse();
  65.     set_color_depth(16);
  66.     set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0);
  67.     install_timer();
  68.     LOCK_VARIABLE(timer);
  69.     LOCK_FUNCTION(inc_timer);
  70.     install_int_ex(inc_timer, BPS_TO_TIMER(60));
  71.    
  72.     buffer = create_bitmap(640,480);
  73.     buffer2 = create_bitmap(640,480);
  74.     bgSprite = load_bitmap("Graphics/Backgrounds/bg.bmp", NULL);
  75.     menuBgSprite = load_bitmap("Graphics/Backgrounds/menubg.bmp", NULL);
  76.     optionsBgSprite = load_bitmap("Graphics/Backgrounds/optionsbg.bmp", NULL);
  77.     block1 = load_bitmap("Graphics/Blocks/block1.bmp", NULL);
  78.     block2 = load_bitmap("Graphics/Blocks/block2.bmp", NULL);
  79.     block3 = load_bitmap("Graphics/Blocks/block3.bmp", NULL);
  80.     block4 = load_bitmap("Graphics/Blocks/block4.bmp", NULL);
  81.     block5 = load_bitmap("Graphics/Blocks/block5.bmp", NULL);
  82.     block6 = load_bitmap("Graphics/Blocks/block6.bmp", NULL);
  83.     block7 = load_bitmap("Graphics/Blocks/block7.bmp", NULL);
  84.     nextBlock1 = load_bitmap("Graphics/Blocks/nextBlock1.bmp", NULL);
  85.     nextBlock2 = load_bitmap("Graphics/Blocks/nextBlock2.bmp", NULL);
  86.     nextBlock3 = load_bitmap("Graphics/Blocks/nextBlock3.bmp", NULL);
  87.     nextBlock4 = load_bitmap("Graphics/Blocks/nextBlock4.bmp", NULL);
  88.     nextBlock5 = load_bitmap("Graphics/Blocks/nextBlock5.bmp", NULL);
  89.     nextBlock6 = load_bitmap("Graphics/Blocks/nextBlock6.bmp", NULL);
  90.     nextBlock7 = load_bitmap("Graphics/Blocks/nextBlock7.bmp", NULL);
  91.     gameOverSprite = load_bitmap("Graphics/Others/gameover.bmp", NULL);
  92.     mouseSprite = load_bitmap("Graphics/Others/mouse.bmp", NULL);
  93.     onSprite = load_bitmap("Graphics/Others/on.bmp", NULL);
  94.     offSprite = load_bitmap("Graphics/Others/off.bmp", NULL);
  95.    
  96.     clickSample = load_wav("Sounds/click.wav");
  97.     click2Sample = load_wav("Sounds/click2.wav");
  98.     pauseSample = load_wav("Sounds/pause.wav");
  99.     menuSample = load_wav("Sounds/menu.wav");
  100.  
  101.     int gameArea[11][14];
  102.     for(int i = 0; i < 11; i++)
  103.     {
  104.         for(int t = 0; t < 14; t++)
  105.         {
  106.             gameArea[i][t] = 0;
  107.         }
  108.     }
  109.  
  110.     int score = 0;
  111.     double combo = 1;
  112.     double maxCombo = 1;
  113.     int posX[11] = {10,42,74,106,138,170,202,234,266,298,330};
  114.     int posY[14] = {10,42,74,106,138,170,202,234,266,298,330,362,394,426};
  115.     int tempY = 0;
  116.     int tempX = 4;
  117.     int blocks = 0;
  118.     int blockY = 0;
  119.     int blockX = 0;
  120.     int blockRotate = 0;
  121.     int pause = 0;
  122.     int pauseGame = 0;
  123.     int playSound = 1;
  124.     int menuTimer = 0;
  125.     int sound = 1;
  126.     bool moveBlock = 0;
  127.     double blockType = rand() % 7 + 1;
  128.     double blockType2 = rand() % 7 + 1;
  129.     double blockType3 = rand() % 7 + 1;
  130.      
  131.     int animationY[7] = {0,68,136,204,272,340,408};
  132.    
  133.     int game = 0;
  134.     int menu = 1;
  135.     int options = 0;
  136.    
  137.     while (true)
  138.     {
  139.         while (timer > 0)
  140.         {
  141.             if(key[KEY_LEFT] && blockX > 7 && pause == 0 || key[KEY_LEFT] && moveBlock == 0 && pause == 0)
  142.             {
  143.                 moveBlock = 1;
  144.                
  145.                 if(blockType == 1 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0)
  146.                 {
  147.                     tempX--;
  148.                     blockX = 0;
  149.                 }
  150.                 if(blockType == 2.1 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0 && gameArea[tempX-1][tempY+2] == 0 && gameArea[tempX-1][tempY+3] == 0)
  151.                 {
  152.                     tempX--;
  153.                     blockX = 0;
  154.                 }
  155.                 if(blockType == 2 && tempX > 0 && gameArea[tempX-1][tempY] == 0)
  156.                 {
  157.                     tempX--;
  158.                     blockX = 0;
  159.                 }
  160.                 if(blockType == 3 && tempX > 0 && gameArea[tempX][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0 && gameArea[tempX-1][tempY+2] == 0)
  161.                 {
  162.                     tempX--;
  163.                     blockX = 0;
  164.                 }
  165.                 if(blockType == 3.1 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX][tempY+1] == 0)
  166.                 {
  167.                     tempX--;
  168.                     blockX = 0;
  169.                 }
  170.                 if(blockType == 4 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0)
  171.                 {
  172.                     tempX--;
  173.                     blockX = 0;
  174.                 }
  175.                 if(blockType == 4.1 && tempX > 0 && gameArea[tempX][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0)
  176.                 {
  177.                     tempX--;
  178.                     blockX = 0;
  179.                 }
  180.                 if(blockType == 5 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0 && gameArea[tempX-1][tempY+2] == 0)
  181.                 {
  182.                     tempX--;
  183.                     blockX = 0;
  184.                 }
  185.                 if(blockType == 5.1 && tempX > 0 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0)
  186.                 {
  187.                     tempX--;
  188.                     blockX = 0;
  189.                 }
  190.                 if(blockType == 5.2 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0)
  191.                 {
  192.                     tempX--;
  193.                     blockX = 0;
  194.                 }
  195.                 if(blockType == 5.3 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0)
  196.                 {
  197.                     tempX--;
  198.                     blockX = 0;
  199.                 }
  200.                 if(blockType == 6 && tempX > 0 && gameArea[tempX][tempY] == 0 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX-1][tempY+2] == 0)
  201.                 {
  202.                     tempX--;
  203.                     blockX = 0;
  204.                 }
  205.                 if(blockType == 6.1 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX+1][tempY+1] == 0)
  206.                 {
  207.                     tempX--;
  208.                     blockX = 0;
  209.                 }
  210.                 if(blockType == 6.2 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0 && gameArea[tempX-1][tempY+2] == 0)
  211.                 {
  212.                     tempX--;
  213.                     blockX = 0;
  214.                 }
  215.                 if(blockType == 6.3 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0)
  216.                 {
  217.                     tempX--;
  218.                     blockX = 0;
  219.                 }
  220.                 if(blockType == 7 && tempX > 0 && gameArea[tempX][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0)
  221.                 {
  222.                     tempX--;
  223.                     blockX = 0;
  224.                 }
  225.                 if(blockType == 7.1 && tempX > 0 && gameArea[tempX][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0)
  226.                 {
  227.                     tempX--;
  228.                     blockX = 0;
  229.                 }
  230.                 if(blockType == 7.2 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX][tempY+1] == 0)
  231.                 {
  232.                     tempX--;
  233.                     blockX = 0;
  234.                 }
  235.                 if(blockType == 7.3 && tempX > 0 && gameArea[tempX-1][tempY] == 0 && gameArea[tempX-1][tempY+1] == 0 && gameArea[tempX-1][tempY+2] == 0)
  236.                 {
  237.                     tempX--;
  238.                     blockX = 0;
  239.                 }
  240.             }
  241.             if(key[KEY_RIGHT] && blockX > 7 && pause == 0 || key[KEY_RIGHT] && moveBlock == 0 && pause == 0)
  242.             {
  243.                 moveBlock = 1;
  244.                              
  245.                 if(blockType == 1 && tempX < 9 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  246.                 {
  247.                     tempX++;
  248.                     blockX = 0;
  249.                 }
  250.                 if(blockType == 2.1 && tempX < 10 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+1][tempY+3] == 0)
  251.                 {
  252.                     tempX++;
  253.                     blockX = 0;
  254.                 }
  255.                 if(blockType == 2 && tempX < 7 && gameArea[tempX+4][tempY] == 0)
  256.                 {
  257.                     tempX++;
  258.                     blockX = 0;
  259.                 }
  260.                 if(blockType == 3 && tempX < 9 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0)
  261.                 {
  262.                     tempX++;
  263.                     blockX = 0;
  264.                 }
  265.                 if(blockType == 3.1 && tempX < 8 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+3][tempY+1] == 0)
  266.                 {
  267.                     tempX++;
  268.                     blockX = 0;
  269.                 }
  270.                 if(blockType == 4 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0 && gameArea[tempX+2][tempY+2] == 0)
  271.                 {
  272.                     tempX++;
  273.                     blockX = 0;
  274.                 }
  275.                 if(blockType == 4.1 && tempX < 8 && gameArea[tempX+3][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  276.                 {
  277.                     tempX++;
  278.                     blockX = 0;
  279.                 }
  280.                 if(blockType == 5 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+2][tempY+2] == 0)
  281.                 {
  282.                     tempX++;
  283.                     blockX = 0;
  284.                 }
  285.                 if(blockType == 5.1 && tempX < 8 && gameArea[tempX+3][tempY] == 0 && gameArea[tempX+3][tempY+1] == 0)
  286.                 {
  287.                     tempX++;
  288.                     blockX = 0;
  289.                 }
  290.                 if(blockType == 5.2 && tempX < 9 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0 && gameArea[tempX+2][tempY+2] == 0)
  291.                 {
  292.                     tempX++;
  293.                     blockX = 0;
  294.                 }
  295.                 if(blockType == 5.3 && tempX < 8 && gameArea[tempX+3][tempY] == 0 && gameArea[tempX+1][tempY+1] == 0)
  296.                 {
  297.                     tempX++;
  298.                     blockX = 0;
  299.                 }
  300.                 if(blockType == 6 && tempX < 9 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0 && gameArea[tempX+2][tempY+2] == 0)
  301.                 {
  302.                     tempX++;
  303.                     blockX = 0;
  304.                 }
  305.                 if(blockType == 6.1 && tempX < 8 && gameArea[tempX+3][tempY] == 0 && gameArea[tempX+3][tempY+1] == 0)
  306.                 {
  307.                     tempX++;
  308.                     blockX = 0;
  309.                 }
  310.                 if(blockType == 6.2 && tempX < 9 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0)
  311.                 {
  312.                     tempX++;
  313.                     blockX = 0;
  314.                 }
  315.                 if(blockType == 6.3 && tempX < 8 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+3][tempY+1] == 0)
  316.                 {
  317.                     tempX++;
  318.                     blockX = 0;
  319.                 }
  320.                 if(blockType == 7 && tempX < 8 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+3][tempY+1] == 0)
  321.                 {
  322.                     tempX++;
  323.                     blockX = 0;
  324.                 }
  325.                 if(blockType == 7.1 && tempX < 9 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0 && gameArea[tempX+2][tempY+2] == 0)
  326.                 {
  327.                     tempX++;
  328.                     blockX = 0;
  329.                 }
  330.                 if(blockType == 7.2 && tempX < 8 && gameArea[tempX+3][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  331.                 {
  332.                     tempX++;
  333.                     blockX = 0;
  334.                 }
  335.                 if(blockType == 7.3 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0)
  336.                 {
  337.                     tempX++;
  338.                     blockX = 0;
  339.                 }
  340.             }
  341.            
  342.             if(key[KEY_UP] && pause == 0)
  343.             {
  344.                 for(int i = 0; i < 14; i++)
  345.                 {
  346.                     if(blockType == 1 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0)
  347.                     {
  348.                         tempY++;
  349.                         blockY = 0;
  350.                         playSound = 1;
  351.                     }
  352.                     if(blockType == 2.1 && tempY < 10 && gameArea[tempX][tempY+4] == 0)
  353.                     {
  354.                         tempY++;
  355.                         blockY = 0;
  356.                         playSound = 1;
  357.                     }
  358.                     if(blockType == 2 && tempY < 13 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+2][tempY+1] == 0 && gameArea[tempX+3][tempY+1] == 0)
  359.                     {
  360.                         tempY++;
  361.                         blockY = 0;
  362.                         playSound = 1;
  363.                     }
  364.                     if(blockType == 3 && tempY < 11 && gameArea[tempX][tempY+3] == 0 && gameArea[tempX+1][tempY+2] == 0)
  365.                     {
  366.                         tempY++;
  367.                         blockY = 0;
  368.                         playSound = 1;
  369.                     }
  370.                     if(blockType == 3.1 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+2] == 0)
  371.                     {
  372.                         tempY++;
  373.                         blockY = 0;
  374.                         playSound = 1;
  375.                     }
  376.                     if(blockType == 4 && tempY < 11 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+3] == 0)
  377.                     {
  378.                         tempY++;
  379.                         blockY = 0;
  380.                         playSound = 1;
  381.                     }
  382.                     if(blockType == 4.1 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+1] == 0)
  383.                     {
  384.                         tempY++;
  385.                         blockY = 0;
  386.                         playSound = 1;
  387.                     }
  388.                     if(blockType == 5 && tempY < 11 && gameArea[tempX][tempY+3] == 0 && gameArea[tempX+1][tempY+3] == 0)
  389.                     {
  390.                         tempY++;
  391.                         blockY = 0;
  392.                         playSound = 1;
  393.                     }
  394.                     if(blockType == 5.1 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+2] == 0)
  395.                     {
  396.                         tempY++;
  397.                         blockY = 0;
  398.                         playSound = 1;
  399.                     }
  400.                     if(blockType == 5.2 && tempY < 11 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+3] == 0)
  401.                     {
  402.                         tempY++;
  403.                         blockY = 0;
  404.                         playSound = 1;
  405.                     }
  406.                     if(blockType == 5.3 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+2][tempY+1] == 0)
  407.                     {
  408.                         tempY++;
  409.                         blockY = 0;
  410.                         playSound = 1;
  411.                     }
  412.                     if(blockType == 6 && tempY < 11 && gameArea[tempX+1][tempY+3] == 0 && gameArea[tempX][tempY+3] == 0)
  413.                     {
  414.                         tempY++;
  415.                         blockY = 0;
  416.                         playSound = 1;
  417.                     }
  418.                     if(blockType == 6.1 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+2][tempY+2] == 0)
  419.                     {
  420.                         tempY++;
  421.                         blockY = 0;
  422.                         playSound = 1;
  423.                     }
  424.                     if(blockType == 6.2 && tempY < 11 && gameArea[tempX][tempY+3] == 0 && gameArea[tempX+1][tempY+1] == 0)
  425.                     {
  426.                         tempY++;
  427.                         blockY = 0;
  428.                         playSound = 1;
  429.                     }
  430.                     if(blockType == 6.3 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+2] == 0)
  431.                     {
  432.                         tempY++;
  433.                         blockY = 0;
  434.                         playSound = 1;
  435.                     }
  436.                     if(blockType == 7 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+2] == 0)
  437.                     {
  438.                         tempY++;
  439.                         blockY = 0;
  440.                         playSound = 1;
  441.                     }
  442.                     if(blockType == 7.1 && tempY < 11 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+3] == 0)
  443.                     {
  444.                         tempY++;
  445.                         blockY = 0;
  446.                         playSound = 1;
  447.                     }
  448.                     if(blockType == 7.2 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+1] == 0)
  449.                     {
  450.                         tempY++;
  451.                         blockY = 0;
  452.                         playSound = 1;
  453.                     }
  454.                     if(blockType == 7.3 && tempY < 11 && gameArea[tempX][tempY+3] == 0 && gameArea[tempX+1][tempY+2] == 0)
  455.                     {
  456.                         tempY++;
  457.                         blockY = 0;
  458.                         playSound = 1;
  459.                     }
  460.                 }
  461.             }
  462.            
  463.             if(key[KEY_DOWN] && blockY > (2-(blocks/600)) && pause == 0 || blockY > (60-(blocks/5)) && pause == 0)
  464.             {
  465.                 if(blockType == 1 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0)
  466.                 {
  467.                     tempY++;
  468.                     blockY = 0;
  469.                     playSound = 1;
  470.                 }
  471.                 if(blockType == 2.1 && tempY < 10 && gameArea[tempX][tempY+4] == 0)
  472.                 {
  473.                     tempY++;
  474.                     blockY = 0;
  475.                     playSound = 1;
  476.                 }
  477.                 if(blockType == 2 && tempY < 13 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+2][tempY+1] == 0 && gameArea[tempX+3][tempY+1] == 0)
  478.                 {
  479.                     tempY++;
  480.                     blockY = 0;
  481.                     playSound = 1;
  482.                 }
  483.                 if(blockType == 3 && tempY < 11 && gameArea[tempX][tempY+3] == 0 && gameArea[tempX+1][tempY+2] == 0)
  484.                 {
  485.                     tempY++;
  486.                     blockY = 0;
  487.                     playSound = 1;
  488.                 }
  489.                 if(blockType == 3.1 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+2] == 0)
  490.                 {
  491.                     tempY++;
  492.                     blockY = 0;
  493.                     playSound = 1;
  494.                 }
  495.                 if(blockType == 4 && tempY < 11 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+3] == 0)
  496.                 {
  497.                     tempY++;
  498.                     blockY = 0;
  499.                     playSound = 1;
  500.                 }
  501.                 if(blockType == 4.1 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+1] == 0)
  502.                 {
  503.                     tempY++;
  504.                     blockY = 0;
  505.                     playSound = 1;
  506.                 }
  507.                 if(blockType == 5 && tempY < 11 && gameArea[tempX][tempY+3] == 0 && gameArea[tempX+1][tempY+3] == 0)
  508.                 {
  509.                     tempY++;
  510.                     blockY = 0;
  511.                     playSound = 1;
  512.                 }
  513.                 if(blockType == 5.1 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+2] == 0)
  514.                 {
  515.                     tempY++;
  516.                     blockY = 0;
  517.                     playSound = 1;
  518.                 }
  519.                 if(blockType == 5.2 && tempY < 11 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+3] == 0)
  520.                 {
  521.                     tempY++;
  522.                     blockY = 0;
  523.                     playSound = 1;
  524.                 }
  525.                 if(blockType == 5.3 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+2][tempY+1] == 0)
  526.                 {
  527.                     tempY++;
  528.                     blockY = 0;
  529.                     playSound = 1;
  530.                 }
  531.                 if(blockType == 6 && tempY < 11 && gameArea[tempX+1][tempY+3] == 0 && gameArea[tempX][tempY+3] == 0)
  532.                 {
  533.                     tempY++;
  534.                     blockY = 0;
  535.                     playSound = 1;
  536.                 }
  537.                 if(blockType == 6.1 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+2][tempY+2] == 0)
  538.                 {
  539.                     tempY++;
  540.                     blockY = 0;
  541.                     playSound = 1;
  542.                 }
  543.                 if(blockType == 6.2 && tempY < 11 && gameArea[tempX][tempY+3] == 0 && gameArea[tempX+1][tempY+1] == 0)
  544.                 {
  545.                     tempY++;
  546.                     blockY = 0;
  547.                     playSound = 1;
  548.                 }
  549.                 if(blockType == 6.3 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+2] == 0)
  550.                 {
  551.                     tempY++;
  552.                     blockY = 0;
  553.                     playSound = 1;
  554.                 }
  555.                 if(blockType == 7 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+2] == 0)
  556.                 {
  557.                     tempY++;
  558.                     blockY = 0;
  559.                     playSound = 1;
  560.                 }
  561.                 if(blockType == 7.1 && tempY < 11 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+3] == 0)
  562.                 {
  563.                     tempY++;
  564.                     blockY = 0;
  565.                     playSound = 1;
  566.                 }
  567.                 if(blockType == 7.2 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0 && gameArea[tempX+2][tempY+1] == 0)
  568.                 {
  569.                     tempY++;
  570.                     blockY = 0;
  571.                     playSound = 1;
  572.                 }
  573.                 if(blockType == 7.3 && tempY < 11 && gameArea[tempX][tempY+3] == 0 && gameArea[tempX+1][tempY+2] == 0)
  574.                 {
  575.                     tempY++;
  576.                     blockY = 0;
  577.                     playSound = 1;
  578.                 }
  579.             }
  580.            
  581.             if(key[KEY_A] && blockRotate > 13 && pause == 0 || key[KEY_A] && moveBlock == 0 && pause == 0)
  582.             {
  583.                 moveBlock = 1;
  584.                          
  585.                 if(blockType == 2.1 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+3][tempY] == 0)
  586.                 {
  587.                     blockType = 2;
  588.                     blockRotate = 0;
  589.                 }
  590.                 else if(blockType == 2 && tempY < 11 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX][tempY+3] == 0)
  591.                 {
  592.                     blockType = 2.1;
  593.                     blockRotate = 0;
  594.                 }
  595.                 else if(blockType == 3 && tempX < 9 && gameArea[tempX][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  596.                 {
  597.                     blockType = 3.1;
  598.                     blockRotate = 0;
  599.                 }
  600.                 else if(blockType == 3.1 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0)
  601.                 {
  602.                     blockType = 3;
  603.                     blockRotate = 0;
  604.                 }
  605.                 else if(blockType == 4 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY] == 0)
  606.                 {
  607.                     blockType = 4.1;
  608.                     blockRotate = 0;
  609.                 }
  610.                 else if(blockType == 4.1 && tempY < 12 && gameArea[tempX][tempY] == 0 && gameArea[tempX+1][tempY+2] == 0)
  611.                 {
  612.                     blockType = 4;
  613.                     blockRotate = 0;
  614.                 }
  615.                 else if(blockType == 5 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY-1] == 0)
  616.                 {
  617.                     blockType = 5.1;
  618.                     blockRotate = 0;
  619.                 }
  620.                 else if(blockType == 5.1 && tempY < 12 && gameArea[tempX][tempY] == 0 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+1][tempY+2] == 0)
  621.                 {
  622.                     blockType = 5.2;
  623.                     blockRotate = 0;
  624.                 }
  625.                 else if(blockType == 5.2 && tempX < 9 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+2][tempY] == 0)
  626.                 {
  627.                     blockType = 5.3;
  628.                     blockRotate = 0;
  629.                 }
  630.                 else if(blockType == 5.3 && tempY < 12 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0)
  631.                 {
  632.                     blockType = 5;
  633.                     blockRotate = 0;
  634.                 }
  635.                 else if(blockType == 6 && tempX < 9 && gameArea[tempX][tempY] == 0 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  636.                 {
  637.                     blockType = 6.1;
  638.                     blockRotate = 0;
  639.                 }
  640.                 else if(blockType == 6.1 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0)
  641.                 {
  642.                     blockType = 6.2;
  643.                     blockRotate = 0;
  644.                 }
  645.                 else if(blockType == 6.2 && tempX < 9 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+2][tempY+1] == 0)
  646.                 {
  647.                    blockType = 6.3;
  648.                    blockRotate = 0;
  649.                 }
  650.                 else if(blockType == 6.3 && tempY < 12 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0)
  651.                 {
  652.                     blockType = 6;
  653.                     blockRotate = 0;
  654.                 }
  655.                 else if(blockType == 7 && tempY < 12 && gameArea[tempX+1][tempY+2] == 0)
  656.                 {
  657.                     blockType = 7.1;
  658.                     blockRotate = 0;
  659.                 }
  660.                 else if(blockType == 7.1 && tempX < 9 && gameArea[tempX][tempY] == 0 && gameArea[tempX+2][tempY] == 0)
  661.                 {
  662.                     blockType = 7.2;
  663.                     blockRotate = 0;
  664.                 }
  665.                 else if(blockType == 7.2 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0)
  666.                 {
  667.                     blockType = 7.3;
  668.                     blockRotate = 0;
  669.                 }
  670.                 else if(blockType == 7.3 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  671.                 {
  672.                     blockType = 7;
  673.                     blockRotate = 0;
  674.                 }
  675.             }
  676.            
  677.             if(key[KEY_S] && blockRotate > 13 && pause == 0 || key[KEY_S] && moveBlock == 0 && pause == 0)
  678.             {
  679.                 moveBlock = 1;
  680.                          
  681.                 if(blockType == 2.1 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+3][tempY] == 0)
  682.                 {
  683.                     blockType = 2;
  684.                     blockRotate = 0;
  685.                 }
  686.                 else if(blockType == 2 && tempY < 11 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX][tempY+3] == 0)
  687.                 {
  688.                     blockType = 2.1;
  689.                     blockRotate = 0;
  690.                 }
  691.                 else if(blockType == 3 && tempX < 9 && gameArea[tempX][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  692.                 {
  693.                     blockType = 3.1;
  694.                     blockRotate = 0;
  695.                 }
  696.                 else if(blockType == 3.1 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX][tempY+2] == 0)
  697.                 {
  698.                     blockType = 3;
  699.                     blockRotate = 0;
  700.                 }
  701.                 else if(blockType == 4 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY] == 0)
  702.                 {
  703.                     blockType = 4.1;
  704.                     blockRotate = 0;
  705.                 }
  706.                 else if(blockType == 4.1 && tempY < 12 && gameArea[tempX][tempY] == 0 && gameArea[tempX+1][tempY+2] == 0)
  707.                 {
  708.                     blockType = 4;
  709.                     blockRotate = 0;
  710.                 }
  711.                 else if(blockType == 5 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY] == 0)
  712.                 {
  713.                     blockType = 5.3;
  714.                     blockRotate = 0;
  715.                 }
  716.                 else if(blockType == 5.1 && tempY < 12 && gameArea[tempX][tempY] == 0 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0)
  717.                 {
  718.                     blockType = 5;
  719.                     blockRotate = 0;
  720.                 }
  721.                 else if(blockType == 5.2 && tempX < 9 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  722.                 {
  723.                     blockType = 5.1;
  724.                     blockRotate = 0;
  725.                 }
  726.                 else if(blockType == 5.3 && tempY < 12 && gameArea[tempX+1][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0)
  727.                 {
  728.                     blockType = 5.2;
  729.                     blockRotate = 0;
  730.                 }
  731.                 else if(blockType == 6 && tempX < 9 && gameArea[tempX][tempY] == 0 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+2][tempY+1] == 0)
  732.                 {
  733.                     blockType = 6.3;
  734.                     blockRotate = 0;
  735.                 }
  736.                 else if(blockType == 6.1 && tempY < 12 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX][tempY+2] == 0 && gameArea[tempX+1][tempY+2] == 0)
  737.                 {
  738.                     blockType = 6;
  739.                     blockRotate = 0;
  740.                 }
  741.                 else if(blockType == 6.2 && tempX < 9 && gameArea[tempX+2][tempY] == 0 && gameArea[tempX+2][tempY+1] == 0)
  742.                 {
  743.                     blockType = 6.1;
  744.                     blockRotate = 0;
  745.                 }
  746.                 else if(blockType == 6.3 && tempY < 12 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX][tempY+2] == 0)
  747.                 {
  748.                     blockType = 6.2;
  749.                     blockRotate = 0;
  750.                 }
  751.                 else if(blockType == 7 && tempY < 12 && gameArea[tempX+1][tempY+2] == 0)
  752.                 {
  753.                     blockType = 7.3;
  754.                     blockRotate = 0;
  755.                 }
  756.                 else if(blockType == 7.1 && tempX < 9 && gameArea[tempX+2][tempY+1] == 0)
  757.                 {
  758.                     blockType = 7;
  759.                     blockRotate = 0;
  760.                 }
  761.                 else if(blockType == 7.2 && tempY < 12 && gameArea[tempX][tempY+1] == 0 && gameArea[tempX+1][tempY+2] == 0)
  762.                 {
  763.                     blockType = 7.1;
  764.                     blockRotate = 0;
  765.                 }
  766.                 else if(blockType == 7.3 && tempX < 9 && gameArea[tempX+1][tempY] == 0 && gameArea[tempX+2][tempY] == 0)
  767.                 {
  768.                     blockType = 7.2;
  769.                     blockRotate = 0;
  770.                 }
  771.             }
  772.            
  773.             if(!key[KEY_LEFT] && !key[KEY_RIGHT] && !key[KEY_A] && !key[KEY_S])
  774.             {
  775.                 moveBlock = 0;
  776.             }
  777.            
  778.             if(playSound == 1 && sound == 1)
  779.             {    
  780.                 if(blockType == 1 && tempY == 12 || blockType == 1 && (gameArea[tempX][tempY+2] != 0 || gameArea[tempX+1][tempY+2] != 0))
  781.                 {
  782.                     play_sample(click2Sample, 100, 128, 1000, 0);
  783.                     playSound = 0;
  784.                 }
  785.                 if(blockType == 2.1 && tempY == 10 || blockType == 2.1 && (gameArea[tempX][tempY+4] != 0))
  786.                 {
  787.                     play_sample(click2Sample, 100, 128, 1000, 0);
  788.                     playSound = 0;
  789.                 }
  790.                 if(blockType == 2 && tempY == 13 || blockType == 2 && (gameArea[tempX][tempY+1] != 0 || gameArea[tempX+1][tempY+1] != 0 || gameArea[tempX+2][tempY+1] != 0 || gameArea[tempX+3][tempY+1] != 0))
  791.                 {
  792.                     play_sample(click2Sample, 100, 128, 1000, 0);
  793.                     playSound = 0;
  794.                 }
  795.                 if(blockType == 3 && tempY == 11 || blockType == 3 && (gameArea[tempX][tempY+3] != 0 || gameArea[tempX+1][tempY+2] != 0))
  796.                 {
  797.                     play_sample(click2Sample, 100, 128, 1000, 0);
  798.                     playSound = 0;
  799.                 }
  800.                 if(blockType == 3.1 && tempY == 12 || blockType == 3.1 && (gameArea[tempX][tempY+1] != 0 || gameArea[tempX+1][tempY+2] != 0 || gameArea[tempX+2][tempY+2] != 0))
  801.                 {
  802.                     play_sample(click2Sample, 100, 128, 1000, 0);
  803.                     playSound = 0;
  804.                 }
  805.                 if(blockType == 4 && tempY == 11 || blockType == 4 && (gameArea[tempX][tempY+2] != 0 || gameArea[tempX+1][tempY+3] != 0))
  806.                 {
  807.                     play_sample(click2Sample, 100, 128, 1000, 0);
  808.                     playSound = 0;
  809.                 }
  810.                 if(blockType == 4.1 && tempY == 12 || blockType == 4.1 && (gameArea[tempX][tempY+2] != 0 || gameArea[tempX+1][tempY+2] != 0 || gameArea[tempX+2][tempY+1] != 0))
  811.                 {
  812.                     play_sample(click2Sample, 100, 128, 1000, 0);
  813.                     playSound = 0;
  814.                 }
  815.                 if(blockType == 5 && tempY == 11 || blockType == 5 && (gameArea[tempX][tempY+3] != 0 || gameArea[tempX+1][tempY+3] != 0))
  816.                 {
  817.                     play_sample(click2Sample, 100, 128, 1000, 0);
  818.                     playSound = 0;
  819.                 }
  820.                 if(blockType == 5.1 && tempY == 12 || blockType == 5.1 && (gameArea[tempX][tempY+2] != 0 || gameArea[tempX+1][tempY+2] != 0 || gameArea[tempX+2][tempY+2] != 0))
  821.                 {
  822.                     play_sample(click2Sample, 100, 128, 1000, 0);
  823.                     playSound = 0;
  824.                 }
  825.                 if(blockType == 5.2 && tempY == 11 || blockType == 5.2 && (gameArea[tempX][tempY+1] != 0 || gameArea[tempX+1][tempY+3] != 0))
  826.                 {
  827.                     play_sample(click2Sample, 100, 128, 1000, 0);
  828.                     playSound = 0;
  829.                 }
  830.                 if(blockType == 5.3 && tempY == 12 || blockType == 5.3 && (gameArea[tempX][tempY+2] != 0 || gameArea[tempX+1][tempY+1] != 0 || gameArea[tempX+2][tempY+1] != 0))
  831.                 {
  832.                     play_sample(click2Sample, 100, 128, 1000, 0);
  833.                     playSound = 0;
  834.                 }
  835.                 if(blockType == 6 && tempY == 11 || blockType == 6 && (gameArea[tempX+1][tempY+3] != 0 || gameArea[tempX][tempY+3] != 0))
  836.                 {
  837.                     play_sample(click2Sample, 100, 128, 1000, 0);
  838.                     playSound = 0;
  839.                 }
  840.                 if(blockType == 6.1 && tempY == 12 || blockType == 6.1 && (gameArea[tempX][tempY+1] != 0 || gameArea[tempX+1][tempY+1] != 0 || gameArea[tempX+2][tempY+2] != 0))
  841.                 {
  842.                     play_sample(click2Sample, 100, 128, 1000, 0);
  843.                     playSound = 0;
  844.                 }
  845.                 if(blockType == 6.2 && tempY == 11 || blockType == 6.2 && (gameArea[tempX][tempY+3] != 0 || gameArea[tempX+1][tempY+1] != 0))
  846.                 {
  847.                     play_sample(click2Sample, 100, 128, 1000, 0);
  848.                     playSound = 0;
  849.                 }
  850.                 if(blockType == 6.3 && tempY == 12 || blockType == 6.3 && (gameArea[tempX][tempY+2] != 0 || gameArea[tempX+1][tempY+2] != 0 || gameArea[tempX+2][tempY+2] != 0))
  851.                 {
  852.                     play_sample(click2Sample, 100, 128, 1000, 0);
  853.                     playSound = 0;
  854.                 }
  855.                 if(blockType == 7 && tempY == 12 || blockType == 7 && (gameArea[tempX][tempY+2] != 0 || gameArea[tempX+1][tempY+2] != 0 || gameArea[tempX+2][tempY+2] != 0))
  856.                 {
  857.                     play_sample(click2Sample, 100, 128, 1000, 0);
  858.                     playSound = 0;
  859.                 }
  860.                 if(blockType == 7.1 && tempY == 11 || blockType == 7.1 && (gameArea[tempX][tempY+2] != 0 || gameArea[tempX+1][tempY+3] != 0))
  861.                 {
  862.                     play_sample(click2Sample, 100, 128, 1000, 0);
  863.                     playSound = 0;
  864.                 }
  865.                 if(blockType == 7.2 && tempY == 12 || blockType == 7.2 && (gameArea[tempX][tempY+1] != 0 || gameArea[tempX+1][tempY+2] != 0 || gameArea[tempX+2][tempY+1] != 0))
  866.                 {
  867.                     play_sample(click2Sample, 100, 128, 1000, 0);
  868.                     playSound = 0;
  869.                 }
  870.                 if(blockType == 7.3 && tempY == 11 || blockType == 7.3 && (gameArea[tempX][tempY+3] != 0 || gameArea[tempX+1][tempY+2] != 0))
  871.                 {
  872.                     play_sample(click2Sample, 100, 128, 1000, 0);
  873.                     playSound = 0;
  874.                 }
  875.             }
  876.            
  877.             if(blockType == 1 && gameArea[tempX][tempY] > 0 || blockType == 1 && gameArea[tempX+1][tempY] > 0 || blockType == 1 && gameArea[tempX][tempY+1] > 0 || blockType == 1 && gameArea[tempX+1][tempY+1] > 0 ||
  878.                blockType == 2 && gameArea[tempX][tempY] > 0 || blockType == 2 && gameArea[tempX+1][tempY] > 0 || blockType == 2 && gameArea[tempX+2][tempY] > 0 || blockType == 2 && gameArea[tempX+3][tempY] > 0 ||
  879.                blockType == 2.1 && gameArea[tempX][tempY] > 0 || blockType == 2.1 && gameArea[tempX][tempY+1] > 0 || blockType == 2.1 && gameArea[tempX][tempY+2] > 0 || blockType == 2.1 && gameArea[tempX][tempY+3] > 0 ||
  880.                blockType == 3 && gameArea[tempX+1][tempY] > 0 || blockType == 3 && gameArea[tempX+1][tempY+1] > 0 || blockType == 3 && gameArea[tempX][tempY+1] > 0 || blockType == 3 && gameArea[tempX][tempY+2] > 0 ||
  881.                blockType == 3.1 && gameArea[tempX][tempY] > 0 || blockType == 3.1 && gameArea[tempX+1][tempY] > 0 || blockType == 3.1 && gameArea[tempX+1][tempY+1] > 0 || blockType == 3.1 && gameArea[tempX+2][tempY+1] > 0 ||
  882.                blockType == 4 && gameArea[tempX][tempY] > 0 || blockType == 4 && gameArea[tempX][tempY+1] > 0 || blockType == 4 && gameArea[tempX+1][tempY+1] > 0 || blockType == 4 && gameArea[tempX+1][tempY+2] > 0 ||
  883.                blockType == 4.1 && gameArea[tempX+1][tempY] > 0 || blockType == 4.1 && gameArea[tempX+2][tempY] > 0 || blockType == 4.1 && gameArea[tempX+1][tempY+1] > 0 || blockType == 4.1 && gameArea[tempX][tempY+1] > 0 ||
  884.                blockType == 5 && gameArea[tempX][tempY] > 0 || blockType == 5 && gameArea[tempX][tempY+1] > 0 || blockType == 5 && gameArea[tempX][tempY+2] > 0 || blockType == 5 && gameArea[tempX+1][tempY+2] > 0 ||
  885.                blockType == 5.1 && gameArea[tempX][tempY+1] > 0 || blockType == 5.1 && gameArea[tempX+1][tempY+1] > 0 || blockType == 5.1 && gameArea[tempX+2][tempY+1] > 0 || blockType == 5.1 && gameArea[tempX+2][tempY] > 0 ||
  886.                blockType == 5.2 && gameArea[tempX][tempY] > 0 || blockType == 5.2 && gameArea[tempX+1][tempY] > 0 || blockType == 5.2 && gameArea[tempX+1][tempY+1] > 0 || blockType == 5.2 && gameArea[tempX+1][tempY+2] > 0 ||
  887.                blockType == 5.3 && gameArea[tempX][tempY] > 0 || blockType == 5.3 && gameArea[tempX+1][tempY] > 0 || blockType == 5.3 && gameArea[tempX+2][tempY] > 0 || blockType == 5.3 && gameArea[tempX][tempY+1] > 0 ||
  888.                blockType == 6 && gameArea[tempX+1][tempY] > 0 || blockType == 6 && gameArea[tempX+1][tempY+1] > 0 || blockType == 6 && gameArea[tempX+1][tempY+2] > 0 || blockType == 6 && gameArea[tempX][tempY+2] > 0 ||
  889.                blockType == 6.1 && gameArea[tempX][tempY] > 0 || blockType == 6.1 && gameArea[tempX+1][tempY] > 0 || blockType == 6.1 && gameArea[tempX+2][tempY] > 0 || blockType == 6.1 && gameArea[tempX+2][tempY+1] > 0 ||
  890.                blockType == 6.2 && gameArea[tempX][tempY] > 0 || blockType == 6.2 && gameArea[tempX+1][tempY] > 0 || blockType == 6.2 && gameArea[tempX][tempY+1] > 0 || blockType == 6.2 && gameArea[tempX][tempY+2] > 0 ||
  891.                blockType == 6.3 && gameArea[tempX][tempY] > 0 || blockType == 6.3 && gameArea[tempX][tempY+1] > 0 || blockType == 6.3 && gameArea[tempX+1][tempY+1] > 0 || blockType == 6.3 && gameArea[tempX+2][tempY+1] > 0 ||
  892.                blockType == 7 && gameArea[tempX+1][tempY] > 0 || blockType == 7 && gameArea[tempX][tempY+1] > 0 || blockType == 7 && gameArea[tempX+1][tempY+1] > 0 || blockType == 7 && gameArea[tempX+2][tempY+1] > 0 ||
  893.                blockType == 7.1 && gameArea[tempX+1][tempY] > 0 || blockType == 7.1 && gameArea[tempX][tempY+1] > 0 || blockType == 7.1 && gameArea[tempX+1][tempY+1] > 0 || blockType == 7.1 && gameArea[tempX+1][tempY+2] > 0 ||
  894.                blockType == 7.2 && gameArea[tempX][tempY] > 0 || blockType == 7.2 && gameArea[tempX+1][tempY] > 0 || blockType == 7.2 && gameArea[tempX+2][tempY] > 0 || blockType == 7.2 && gameArea[tempX+1][tempY+1] > 0 ||
  895.                blockType == 7.3 && gameArea[tempX][tempY] > 0 || blockType == 7.3 && gameArea[tempX][tempY+1] > 0 || blockType == 7.3 && gameArea[tempX+1][tempY+1] > 0 || blockType == 7.3 && gameArea[tempX][tempY+2] > 0 || key[KEY_ESC])
  896.             {
  897.                 for(int i = 0; i < 11; i++)
  898.                 {
  899.                     for(int t = 0; t < 14; t++)
  900.                     {
  901.                         gameArea[i][t] = 0;
  902.                     }
  903.                 }
  904.            
  905.                 tempX = 4;
  906.                 tempY = 0;
  907.                 game = 0;
  908.                 blocks = 0;
  909.                
  910.                 if(key[KEY_ESC])
  911.                 {
  912.                     menu = 1;
  913.                     score = 0;
  914.                     combo = 1;
  915.                     maxCombo = 1;
  916.                     pause = 0;
  917.                     blocks = 0;
  918.                 }
  919.             }
  920.            
  921.             if(blockY > (60-(blocks/5)+1))
  922.             {
  923.                 if(blockType == 1)
  924.                 {
  925.                     gameArea[tempX][tempY] = 1;
  926.                     gameArea[tempX+1][tempY] = 1;
  927.                     gameArea[tempX][tempY+1] = 1;
  928.                     gameArea[tempX+1][tempY+1] = 1;
  929.                 }
  930.            
  931.                 else if(blockType == 2.1)
  932.                 {
  933.                     gameArea[tempX][tempY] = 2;
  934.                     gameArea[tempX][tempY+1] = 2;
  935.                     gameArea[tempX][tempY+2] = 2;
  936.                     gameArea[tempX][tempY+3] = 2;
  937.                 }
  938.            
  939.                 else if(blockType == 2)
  940.                 {
  941.                     gameArea[tempX][tempY] = 2;
  942.                     gameArea[tempX+1][tempY] = 2;
  943.                     gameArea[tempX+2][tempY] = 2;
  944.                     gameArea[tempX+3][tempY] = 2;
  945.                 }
  946.            
  947.                 else if(blockType == 3)
  948.                 {
  949.                     gameArea[tempX+1][tempY] = 3;
  950.                     gameArea[tempX][tempY+1] = 3;
  951.                     gameArea[tempX+1][tempY+1] = 3;
  952.                     gameArea[tempX][tempY+2] = 3;
  953.                 }
  954.            
  955.                 else if(blockType == 3.1)
  956.                 {
  957.                     gameArea[tempX][tempY] = 3;
  958.                     gameArea[tempX+1][tempY] = 3;
  959.                     gameArea[tempX+1][tempY+1] = 3;
  960.                     gameArea[tempX+2][tempY+1] = 3;
  961.                 }
  962.            
  963.                 else if(blockType == 4)
  964.                 {
  965.                     gameArea[tempX][tempY] = 4;
  966.                     gameArea[tempX][tempY+1] = 4;
  967.                     gameArea[tempX+1][tempY+1] = 4;
  968.                     gameArea[tempX+1][tempY+2] = 4;
  969.                 }
  970.            
  971.                 else if(blockType == 4.1)
  972.                 {
  973.                     gameArea[tempX+1][tempY] = 4;
  974.                     gameArea[tempX+2][tempY] = 4;
  975.                     gameArea[tempX+1][tempY+1] = 4;
  976.                     gameArea[tempX][tempY+1] = 4;
  977.                 }
  978.            
  979.                 else if(blockType == 5)
  980.                 {
  981.                     gameArea[tempX][tempY] = 5;
  982.                     gameArea[tempX][tempY+1] = 5;
  983.                     gameArea[tempX][tempY+2] = 5;
  984.                     gameArea[tempX+1][tempY+2] = 5;
  985.                 }
  986.            
  987.                 else if(blockType == 5.1)
  988.                 {
  989.                     gameArea[tempX][tempY+1] = 5;
  990.                     gameArea[tempX+1][tempY+1] = 5;
  991.                     gameArea[tempX+2][tempY+1] = 5;
  992.                     gameArea[tempX+2][tempY] = 5;
  993.                 }
  994.  
  995.                 else if(blockType == 5.2)
  996.                 {
  997.                     gameArea[tempX][tempY] = 5;
  998.                     gameArea[tempX+1][tempY] = 5;
  999.                     gameArea[tempX+1][tempY+1] = 5;
  1000.                     gameArea[tempX+1][tempY+2] = 5;
  1001.                 }
  1002.  
  1003.                 else if(blockType == 5.3)
  1004.                 {
  1005.                     gameArea[tempX][tempY] = 5;
  1006.                     gameArea[tempX+1][tempY] = 5;
  1007.                     gameArea[tempX+2][tempY] = 5;
  1008.                     gameArea[tempX][tempY+1] = 5;
  1009.                 }
  1010.  
  1011.                 else if(blockType == 6)
  1012.                 {
  1013.                     gameArea[tempX+1][tempY] = 6;
  1014.                     gameArea[tempX+1][tempY+1] = 6;
  1015.                     gameArea[tempX+1][tempY+2] = 6;
  1016.                     gameArea[tempX][tempY+2] = 6;
  1017.                 }
  1018.  
  1019.                 else if(blockType == 6.1)
  1020.                 {
  1021.                     gameArea[tempX][tempY] = 6;
  1022.                     gameArea[tempX+1][tempY] = 6;
  1023.                     gameArea[tempX+2][tempY] = 6;
  1024.                     gameArea[tempX+2][tempY+1] = 6;
  1025.                 }
  1026.  
  1027.                 else if(blockType == 6.2)
  1028.                 {
  1029.                     gameArea[tempX][tempY] = 6;
  1030.                     gameArea[tempX+1][tempY] = 6;
  1031.                     gameArea[tempX][tempY+1] = 6;
  1032.                     gameArea[tempX][tempY+2] = 6;
  1033.                 }
  1034.  
  1035.                 else if(blockType == 6.3)
  1036.                 {
  1037.                     gameArea[tempX][tempY] = 6;
  1038.                     gameArea[tempX][tempY+1] = 6;
  1039.                     gameArea[tempX+1][tempY+1] = 6;
  1040.                     gameArea[tempX+2][tempY+1] = 6;
  1041.                 }
  1042.            
  1043.                 else if(blockType == 7)
  1044.                 {
  1045.                     gameArea[tempX+1][tempY] = 7;
  1046.                     gameArea[tempX][tempY+1] = 7;
  1047.                     gameArea[tempX+1][tempY+1] = 7;
  1048.                     gameArea[tempX+2][tempY+1] = 7;
  1049.                 }
  1050.            
  1051.                 else if(blockType == 7.1)
  1052.                 {
  1053.                     gameArea[tempX+1][tempY] = 7;
  1054.                     gameArea[tempX][tempY+1] = 7;
  1055.                     gameArea[tempX+1][tempY+1] = 7;
  1056.                     gameArea[tempX+1][tempY+2] = 7;
  1057.                 }
  1058.            
  1059.                 else if(blockType == 7.2)
  1060.                 {
  1061.                     gameArea[tempX][tempY] = 7;
  1062.                     gameArea[tempX+1][tempY] = 7;
  1063.                     gameArea[tempX+2][tempY] = 7;
  1064.                     gameArea[tempX+1][tempY+1] = 7;
  1065.                 }
  1066.            
  1067.                 else if(blockType == 7.3)
  1068.                 {
  1069.                     gameArea[tempX][tempY] = 7;
  1070.                     gameArea[tempX][tempY+1] = 7;
  1071.                     gameArea[tempX+1][tempY+1] = 7;
  1072.                     gameArea[tempX][tempY+2] = 7;
  1073.                 }
  1074.            
  1075.                 tempY = 0;
  1076.                 tempX = 4;
  1077.                 blocks++;
  1078.                 blockY = 0;
  1079.                 blockType = blockType2;
  1080.                 blockType2 = blockType3;
  1081.                 blockType3 = rand() % 7 + 1;
  1082.                 if(sound == 1)
  1083.                 {
  1084.                     play_sample(clickSample, 100, 128, 1000, 0);
  1085.                 }
  1086.             }
  1087.            
  1088.             for(int q = 13; q > 0; q--)
  1089.             {
  1090.                 if(gameArea[0][q] != 0 && gameArea[1][q] != 0 && gameArea[2][q] != 0 && gameArea[3][q] != 0 && gameArea[4][q] != 0 && gameArea[5][q] != 0 && gameArea[6][q] != 0 && gameArea[7][q] != 0 && gameArea[8][q] != 0 && gameArea[9][q] != 0 && gameArea[10][q] != 0)
  1091.                 {
  1092.                     score += int(1000*combo);
  1093.                     combo += 0.15;
  1094.                     for(int i = 0; i < 11; i++)
  1095.                     {
  1096.                         for(int t = q; t > 0; t--)
  1097.                         {
  1098.                             gameArea[i][t] = gameArea[i][t-1];
  1099.                         }
  1100.                     }
  1101.                 }
  1102.             }
  1103.            
  1104.             if(combo > maxCombo)
  1105.             {
  1106.                 maxCombo = combo;
  1107.             }
  1108.            
  1109.             if(key[KEY_P] && pauseGame > 30)
  1110.             {
  1111.                 if(sound == 1)
  1112.                 {
  1113.                     play_sample(pauseSample, 100, 128, 1000, 0);
  1114.                 }
  1115.                 pause++;
  1116.                 if(pause > 1)
  1117.                 {
  1118.                     pause = 0;
  1119.                 }
  1120.                 pauseGame = 0;
  1121.             }
  1122.            
  1123.             if(combo >= 1.0005 && pause == 0)
  1124.             {
  1125.                 combo -= 0.0005;
  1126.             }
  1127.            
  1128.             if(game == 1 && menu == 0 && pause == 0)
  1129.             {
  1130.                 blockX++;
  1131.                 blockY++;
  1132.                 blockRotate++;
  1133.             }
  1134.             menuTimer++;
  1135.             pauseGame++;
  1136.             timer--;
  1137.         }
  1138.  
  1139.         draw_sprite(buffer, bgSprite, 0, 0);
  1140.         textprintf_ex(buffer, font, 405, 433, makecol(0,0,0), -1, "%d", score);
  1141.         textprintf_ex(buffer, font, 485, 380, makecol(128,128,128), -1, "Combo   X%f", combo);
  1142.         textprintf_ex(buffer, font, 485, 400, makecol(128,128,128), -1, "Highest X%f", maxCombo);
  1143.  
  1144.         if(blockType == 1 && game == 1)
  1145.         {
  1146.             draw_sprite(buffer, block1, posX[tempX], posY[tempY]);
  1147.             draw_sprite(buffer, block1, posX[tempX+1], posY[tempY]);
  1148.             draw_sprite(buffer, block1, posX[tempX], posY[tempY+1]);
  1149.             draw_sprite(buffer, block1, posX[tempX+1], posY[tempY+1]);
  1150.         }
  1151.        
  1152.         if(blockType == 2.1 && game == 1)
  1153.         {
  1154.             draw_sprite(buffer, block2, posX[tempX], posY[tempY]);
  1155.             draw_sprite(buffer, block2, posX[tempX], posY[tempY+1]);
  1156.             draw_sprite(buffer, block2, posX[tempX], posY[tempY+2]);
  1157.             draw_sprite(buffer, block2, posX[tempX], posY[tempY+3]);
  1158.         }
  1159.        
  1160.         if(blockType == 2 && game == 1)
  1161.         {
  1162.             draw_sprite(buffer, block2, posX[tempX], posY[tempY]);
  1163.             draw_sprite(buffer, block2, posX[tempX+1], posY[tempY]);
  1164.             draw_sprite(buffer, block2, posX[tempX+2], posY[tempY]);
  1165.             draw_sprite(buffer, block2, posX[tempX+3], posY[tempY]);
  1166.         }
  1167.        
  1168.         if(blockType == 3 && game == 1)
  1169.         {
  1170.             draw_sprite(buffer, block3, posX[tempX+1], posY[tempY]);
  1171.             draw_sprite(buffer, block3, posX[tempX], posY[tempY+1]);
  1172.             draw_sprite(buffer, block3, posX[tempX+1], posY[tempY+1]);
  1173.             draw_sprite(buffer, block3, posX[tempX], posY[tempY+2]);
  1174.         }
  1175.        
  1176.         if(blockType == 3.1 && game == 1)
  1177.         {
  1178.             draw_sprite(buffer, block3, posX[tempX], posY[tempY]);
  1179.             draw_sprite(buffer, block3, posX[tempX+1], posY[tempY]);
  1180.             draw_sprite(buffer, block3, posX[tempX+1], posY[tempY+1]);
  1181.             draw_sprite(buffer, block3, posX[tempX+2], posY[tempY+1]);
  1182.         }
  1183.        
  1184.         if(blockType == 4 && game == 1)
  1185.         {
  1186.             draw_sprite(buffer, block4, posX[tempX], posY[tempY]);
  1187.             draw_sprite(buffer, block4, posX[tempX], posY[tempY+1]);
  1188.             draw_sprite(buffer, block4, posX[tempX+1], posY[tempY+1]);
  1189.             draw_sprite(buffer, block4, posX[tempX+1], posY[tempY+2]);
  1190.         }
  1191.        
  1192.         if(blockType == 4.1 && game == 1)
  1193.         {
  1194.             draw_sprite(buffer, block4, posX[tempX+1], posY[tempY]);
  1195.             draw_sprite(buffer, block4, posX[tempX+2], posY[tempY]);
  1196.             draw_sprite(buffer, block4, posX[tempX+1], posY[tempY+1]);
  1197.             draw_sprite(buffer, block4, posX[tempX], posY[tempY+1]);
  1198.         }
  1199.        
  1200.         if(blockType == 5 && game == 1)
  1201.         {
  1202.             draw_sprite(buffer, block5, posX[tempX], posY[tempY]);
  1203.             draw_sprite(buffer, block5, posX[tempX], posY[tempY+1]);
  1204.             draw_sprite(buffer, block5, posX[tempX], posY[tempY+2]);
  1205.             draw_sprite(buffer, block5, posX[tempX+1], posY[tempY+2]);
  1206.         }
  1207.        
  1208.         if(blockType == 5.1 && game == 1)
  1209.         {
  1210.             draw_sprite(buffer, block5, posX[tempX], posY[tempY+1]);
  1211.             draw_sprite(buffer, block5, posX[tempX+1], posY[tempY+1]);
  1212.             draw_sprite(buffer, block5, posX[tempX+2], posY[tempY+1]);
  1213.             draw_sprite(buffer, block5, posX[tempX+2], posY[tempY]);
  1214.         }
  1215.        
  1216.         if(blockType == 5.2 && game == 1)
  1217.         {
  1218.             draw_sprite(buffer, block5, posX[tempX], posY[tempY]);
  1219.             draw_sprite(buffer, block5, posX[tempX+1], posY[tempY]);
  1220.             draw_sprite(buffer, block5, posX[tempX+1], posY[tempY+1]);
  1221.             draw_sprite(buffer, block5, posX[tempX+1], posY[tempY+2]);
  1222.         }
  1223.                        
  1224.         if(blockType == 5.3 && game == 1)
  1225.         {
  1226.             draw_sprite(buffer, block5, posX[tempX], posY[tempY]);
  1227.             draw_sprite(buffer, block5, posX[tempX+1], posY[tempY]);
  1228.             draw_sprite(buffer, block5, posX[tempX+2], posY[tempY]);
  1229.             draw_sprite(buffer, block5, posX[tempX], posY[tempY+1]);
  1230.         }
  1231.  
  1232.         if(blockType == 6 && game == 1)
  1233.         {
  1234.             draw_sprite(buffer, block6, posX[tempX+1], posY[tempY]);
  1235.             draw_sprite(buffer, block6, posX[tempX+1], posY[tempY+1]);
  1236.             draw_sprite(buffer, block6, posX[tempX+1], posY[tempY+2]);
  1237.             draw_sprite(buffer, block6, posX[tempX], posY[tempY+2]);
  1238.         }
  1239.  
  1240.         if(blockType == 6.1 && game == 1)
  1241.         {
  1242.             draw_sprite(buffer, block6, posX[tempX], posY[tempY]);
  1243.             draw_sprite(buffer, block6, posX[tempX+1], posY[tempY]);
  1244.             draw_sprite(buffer, block6, posX[tempX+2], posY[tempY]);
  1245.             draw_sprite(buffer, block6, posX[tempX+2], posY[tempY+1]);
  1246.         }
  1247.  
  1248.         if(blockType == 6.2 && game == 1)
  1249.         {
  1250.             draw_sprite(buffer, block6, posX[tempX], posY[tempY]);
  1251.             draw_sprite(buffer, block6, posX[tempX+1], posY[tempY]);
  1252.             draw_sprite(buffer, block6, posX[tempX], posY[tempY+1]);
  1253.             draw_sprite(buffer, block6, posX[tempX], posY[tempY+2]);
  1254.         }
  1255.  
  1256.         if(blockType == 6.3 && game == 1)
  1257.         {
  1258.             draw_sprite(buffer, block6, posX[tempX], posY[tempY]);
  1259.             draw_sprite(buffer, block6, posX[tempX], posY[tempY+1]);
  1260.             draw_sprite(buffer, block6, posX[tempX+1], posY[tempY+1]);
  1261.             draw_sprite(buffer, block6, posX[tempX+2], posY[tempY+1]);
  1262.         }
  1263.        
  1264.         if(blockType == 7 && game == 1)
  1265.         {
  1266.             draw_sprite(buffer, block7, posX[tempX+1], posY[tempY]);
  1267.             draw_sprite(buffer, block7, posX[tempX], posY[tempY+1]);
  1268.             draw_sprite(buffer, block7, posX[tempX+1], posY[tempY+1]);
  1269.             draw_sprite(buffer, block7, posX[tempX+2], posY[tempY+1]);
  1270.         }
  1271.        
  1272.         if(blockType == 7.1 && game == 1)
  1273.         {
  1274.             draw_sprite(buffer, block7, posX[tempX+1], posY[tempY]);
  1275.             draw_sprite(buffer, block7, posX[tempX], posY[tempY+1]);
  1276.             draw_sprite(buffer, block7, posX[tempX+1], posY[tempY+1]);
  1277.             draw_sprite(buffer, block7, posX[tempX+1], posY[tempY+2]);
  1278.         }
  1279.        
  1280.         if(blockType == 7.2 && game == 1)
  1281.         {
  1282.             draw_sprite(buffer, block7, posX[tempX], posY[tempY]);
  1283.             draw_sprite(buffer, block7, posX[tempX+1], posY[tempY]);
  1284.             draw_sprite(buffer, block7, posX[tempX+2], posY[tempY]);
  1285.             draw_sprite(buffer, block7, posX[tempX+1], posY[tempY+1]);
  1286.         }
  1287.        
  1288.         if(blockType == 7.3 && game == 1)
  1289.         {
  1290.             draw_sprite(buffer, block7, posX[tempX], posY[tempY]);
  1291.             draw_sprite(buffer, block7, posX[tempX], posY[tempY+1]);
  1292.             draw_sprite(buffer, block7, posX[tempX+1], posY[tempY+1]);
  1293.             draw_sprite(buffer, block7, posX[tempX], posY[tempY+2]);
  1294.         }
  1295.        
  1296.         for(int i = 0; i < 12; i++)
  1297.         {
  1298.             for(int t = 0; t < 14; t++)
  1299.             {
  1300.                 if(gameArea[i][t] == 1)
  1301.                 {
  1302.                     draw_sprite(buffer, block1, posX[i], posY[t]);
  1303.                 }
  1304.                 if(gameArea[i][t] == 2)
  1305.                 {
  1306.                     draw_sprite(buffer, block2, posX[i], posY[t]);
  1307.                 }
  1308.                 if(gameArea[i][t] == 3)
  1309.                 {
  1310.                     draw_sprite(buffer, block3, posX[i], posY[t]);
  1311.                 }
  1312.                 if(gameArea[i][t] == 4)
  1313.                 {
  1314.                     draw_sprite(buffer, block4, posX[i], posY[t]);
  1315.                 }
  1316.                 if(gameArea[i][t] == 5)
  1317.                 {
  1318.                     draw_sprite(buffer, block5, posX[i], posY[t]);
  1319.                 }
  1320.                 if(gameArea[i][t] == 6)
  1321.                 {
  1322.                     draw_sprite(buffer, block6, posX[i], posY[t]);
  1323.                 }
  1324.                 if(gameArea[i][t] == 7)
  1325.                 {
  1326.                     draw_sprite(buffer, block7, posX[i], posY[t]);
  1327.                 }
  1328.             }
  1329.         }
  1330.        
  1331.         if(blockType2 == 1)
  1332.         {
  1333.             draw_sprite(buffer, nextBlock1, 368, 9);
  1334.         }
  1335.         else if(blockType2 == 2)
  1336.         {
  1337.             draw_sprite(buffer, nextBlock2, 368, 9);
  1338.         }
  1339.         else if(blockType2 == 3)
  1340.         {
  1341.             draw_sprite(buffer, nextBlock3, 368, 9);
  1342.         }
  1343.         else if(blockType2 == 4)
  1344.         {
  1345.             draw_sprite(buffer, nextBlock4, 368, 9);
  1346.         }
  1347.         else if(blockType2 == 5)
  1348.         {
  1349.             draw_sprite(buffer, nextBlock5, 368, 9);
  1350.         }
  1351.         else if(blockType2 == 6)
  1352.         {
  1353.             draw_sprite(buffer, nextBlock6, 368, 9);
  1354.         }
  1355.         else if(blockType2 == 7)
  1356.         {
  1357.             draw_sprite(buffer, nextBlock7, 368, 9);
  1358.         }
  1359.        
  1360.         if(blockType3 == 1)
  1361.         {
  1362.             draw_sprite(buffer, nextBlock1, 504, 9);
  1363.         }
  1364.         else if(blockType3 == 2)
  1365.         {
  1366.             draw_sprite(buffer, nextBlock2, 504, 9);
  1367.         }
  1368.         else if(blockType3 == 3)
  1369.         {
  1370.             draw_sprite(buffer, nextBlock3, 504, 9);
  1371.         }
  1372.         else if(blockType3 == 4)
  1373.         {
  1374.             draw_sprite(buffer, nextBlock4, 504, 9);
  1375.         }
  1376.         else if(blockType3 == 5)
  1377.         {
  1378.             draw_sprite(buffer, nextBlock5, 504, 9);
  1379.         }
  1380.         else if(blockType3 == 6)
  1381.         {
  1382.             draw_sprite(buffer, nextBlock6, 504, 9);
  1383.         }
  1384.         else if(blockType3 == 7)
  1385.         {
  1386.             draw_sprite(buffer, nextBlock7, 504, 9);
  1387.         }
  1388.        
  1389.         if(game == 0 && menu == 0)
  1390.         {
  1391.             draw_sprite(buffer, gameOverSprite, 135, 140);
  1392.            
  1393.             if(key[KEY_ENTER])
  1394.             {
  1395.                 menu = 1;
  1396.                 score = 0;
  1397.                 combo = 1;
  1398.                 maxCombo = 1;
  1399.                 pause = 0;
  1400.                 blocks = 0;
  1401.             }
  1402.         }
  1403.        
  1404. ///////////////////////////////////
  1405.        
  1406.         if(menu == 1)
  1407.         {
  1408.                
  1409.             draw_sprite(buffer2, block1, 40, animationY[0]);
  1410.             draw_sprite(buffer2, block2, 124, animationY[1]);
  1411.             draw_sprite(buffer2, block3, 208, animationY[2]);
  1412.             draw_sprite(buffer2, block4, 292, animationY[3]);
  1413.             draw_sprite(buffer2, block5, 376, animationY[4]);
  1414.             draw_sprite(buffer2, block6, 460, animationY[5]);
  1415.             draw_sprite(buffer2, block7, 544, animationY[6]);
  1416.  
  1417.             if(options == 0)
  1418.             {
  1419.                 draw_sprite(buffer2, menuBgSprite, 0, 0);
  1420.             }
  1421.             else if(options == 1)
  1422.             {
  1423.                 draw_sprite(buffer2, optionsBgSprite, 0, 0);
  1424.                
  1425.                 if(sound == 0)
  1426.                 {
  1427.                     draw_sprite(buffer2, offSprite, 350, 173);
  1428.                 }
  1429.                 else if(sound == 1)
  1430.                 {
  1431.                     draw_sprite(buffer2, onSprite, 350, 174);
  1432.                 }
  1433.             }
  1434.            
  1435.             if(mouse_x > 239 && mouse_x < 399)
  1436.             {
  1437.                 if(options == 0)
  1438.                 {
  1439.                     if(mouse_y > 163 && mouse_y < 196)
  1440.                     {
  1441.                         rect(buffer2, 239, 163, 399, 196, makecol(255,0,0));
  1442.                         floodfill(buffer2, 240, 164, makecol(255,255,0));
  1443.                         floodfill(buffer2, 284, 182, makecol(255,255,0));
  1444.                         floodfill(buffer2, 349, 182, makecol(255,255,0));
  1445.                         floodfill(buffer2, 375, 179, makecol(255,255,0));
  1446.                
  1447.                         if(mouse_b & 1)
  1448.                         {
  1449.                             menu = 0;
  1450.                             game = 1;
  1451.                             if(sound == 1)
  1452.                             {
  1453.                                 play_sample(menuSample, 100, 128, 1000, 0);
  1454.                             }
  1455.                         }
  1456.                     }
  1457.                     if(mouse_y > 196 && mouse_y < 234)
  1458.                     {
  1459.                         rect(buffer2, 239, 196, 399, 234, makecol(255,0,0));
  1460.                         floodfill(buffer2, 240, 197, makecol(255,255,0));
  1461.                         floodfill(buffer2, 278, 210, makecol(255,255,0));
  1462.                         floodfill(buffer2, 291, 213, makecol(255,255,0));
  1463.                         floodfill(buffer2, 329, 213, makecol(255,255,0));
  1464.                    
  1465.                         if(mouse_b & 1 && menuTimer > 15)
  1466.                         {
  1467.                             options = 1;
  1468.                             if(sound == 1)
  1469.                             {
  1470.                                 play_sample(menuSample, 100, 128, 1000, 0);
  1471.                             }
  1472.                             menuTimer = 0;
  1473.                         }
  1474.                     }
  1475.                     if(mouse_y > 234 && mouse_y < 271)
  1476.                     {
  1477.                         rect(buffer2, 239, 234, 399, 271, makecol(255,0,0));
  1478.                         floodfill(buffer2, 240, 235, makecol(255,255,0));
  1479.                         floodfill(buffer2, 296, 248, makecol(255,255,0));
  1480.                    
  1481.                         if(mouse_b & 1)
  1482.                         {
  1483.                             return 0;
  1484.                         }
  1485.                     }
  1486.                 }
  1487.                 else if(options == 1)
  1488.                 {
  1489.                     if(mouse_y > 163 && mouse_y < 196)
  1490.                     {
  1491.                         rect(buffer2, 239, 163, 399, 196, makecol(255,0,0));
  1492.                         floodfill(buffer2, 240, 164, makecol(255,255,0));
  1493.                         floodfill(buffer2, 272, 179, makecol(255,255,0));
  1494.                         floodfill(buffer2, 311, 179, makecol(255,255,0));
  1495.                         floodfill(buffer2, 354, 177, makecol(255,255,0));
  1496.                        
  1497.                         if(mouse_b & 1 && menuTimer > 15)
  1498.                         {
  1499.                             sound++;
  1500.                             play_sample(menuSample, 100, 128, 1000, 0);
  1501.                             menuTimer = 0;
  1502.                            
  1503.                             if(sound > 1)
  1504.                             {
  1505.                                 sound = 0;
  1506.                             }
  1507.                         }
  1508.                     }
  1509.                     if(mouse_y > 196 && mouse_y < 234)
  1510.                     {
  1511.                         rect(buffer2, 239, 196, 399, 234, makecol(255,0,0));
  1512.                         floodfill(buffer2, 240, 197, makecol(255,255,0));
  1513.                         floodfill(buffer2, 307, 217, makecol(255,255,0));
  1514.                         floodfill(buffer2, 294, 211, makecol(255,255,0));
  1515.                         floodfill(buffer2, 294, 216, makecol(255,255,0));
  1516.                        
  1517.                         if(mouse_b & 1 && menuTimer > 15)
  1518.                         {
  1519.                             options = 0;
  1520.                             if(sound == 1)
  1521.                             {
  1522.                                 play_sample(menuSample, 100, 128, 1000, 0);
  1523.                             }
  1524.                             menuTimer = 0;
  1525.                         }
  1526.                     }
  1527.                 }
  1528.             }
  1529.             draw_sprite(buffer2, mouseSprite, mouse_x, mouse_y);
  1530.            
  1531.             for(int i = 0; i < 7; i++)
  1532.             {
  1533.                 if(animationY[i] > 480)
  1534.                 {
  1535.                     animationY[i] = -32;
  1536.                 }
  1537.                
  1538.                 animationY[i] += 1;
  1539.             }
  1540.            
  1541.             draw_sprite(buffer, buffer2, 0, 0);
  1542.         }
  1543.        
  1544.         acquire_screen();
  1545.         draw_sprite(screen, buffer, 0, 0);
  1546.         release_screen();
  1547.         clear_to_color(buffer, makecol(0,0,0));
  1548.         clear_to_color(buffer2, makecol(0,0,0));
  1549.  
  1550.         rest(1);        
  1551.     }
  1552.  
  1553. }
  1554. END_OF_MAIN();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement