home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume11 / blockbuster / part01 / bricks.c < prev    next >
C/C++ Source or Header  |  1990-08-10  |  7KB  |  378 lines

  1. /*
  2.  * File:       bricks.c
  3.  * Author:     Eric Van Gestel
  4.  *
  5.  * For:                blockbuster
  6.  */
  7.  
  8. #include "blockbuster.h"
  9.  
  10. /*** normal images (rectangular) ***/
  11.  
  12. short           clear_image[] = {
  13. #include "icons/clear.pr"
  14. };
  15.  
  16. mpr_static( clear_pr, 64, 16, 1, clear_image );
  17.  
  18. short           solid_image[] = {
  19. #include "icons/solid.pr"
  20. };
  21.  
  22. mpr_static( solid_pr, 64, 16, 1, solid_image );
  23.  
  24. short           launchNE_image[] = {
  25. #include "icons/launchNE.pr"
  26. };
  27.  
  28. mpr_static( launchNE_pr, 64, 16, 1, launchNE_image );
  29.  
  30. short           launchNW_image[] = {
  31. #include "icons/launchNW.pr"
  32. };
  33.  
  34. mpr_static( launchNW_pr, 64, 16, 1, launchNW_image );
  35.  
  36.  
  37. short           brick_0_image[] = {
  38. #include "icons/brick_0.pr"
  39. };
  40.  
  41. mpr_static( brick_0_pr, 64, 16, 1, brick_0_image );
  42.  
  43. short           brick_1_image[] = {
  44. #include "icons/brick_1.pr"
  45. };
  46.  
  47. mpr_static( brick_1_pr, 64, 16, 1, brick_1_image );
  48.  
  49. short           brick_2_image[] = {
  50. #include "icons/brick_2.pr"
  51. };
  52.  
  53. mpr_static( brick_2_pr, 64, 16, 1, brick_2_image );
  54.  
  55. short           brick_3_image[] = {
  56. #include "icons/brick_3.pr"
  57. };
  58.  
  59. mpr_static( brick_3_pr, 64, 16, 1, brick_3_image );
  60.  
  61. short           brick_4_image[] = {
  62. #include "icons/brick_4.pr"
  63. };
  64.  
  65. mpr_static( brick_4_pr, 64, 16, 1, brick_4_image );
  66.  
  67. short           brick_5_image[] = {
  68. #include "icons/brick_5.pr"
  69. };
  70.  
  71. mpr_static( brick_5_pr, 64, 16, 1, brick_5_image );
  72.  
  73. short           brick_6_image[] = {
  74. #include "icons/brick_6.pr"
  75. };
  76.  
  77. mpr_static( brick_6_pr, 64, 16, 1, brick_6_image );
  78.  
  79. short           brick_7_image[] = {
  80. #include "icons/brick_7.pr"
  81. };
  82.  
  83. mpr_static( brick_7_pr, 64, 16, 1, brick_7_image );
  84.  
  85. short           brick_8_image[] = {
  86. #include "icons/brick_8.pr"
  87. };
  88.  
  89. mpr_static( brick_8_pr, 64, 16, 1, brick_8_image );
  90.  
  91. short           brick_9_image[] = {
  92. #include "icons/brick_9.pr"
  93. };
  94.  
  95. mpr_static( brick_9_pr, 64, 16, 1, brick_9_image );
  96.  
  97.  
  98. short           brick_a_image[] = {
  99. #include "icons/brick_a.pr"
  100. };
  101.  
  102. mpr_static( brick_a_pr, 64, 16, 1, brick_a_image );
  103.  
  104. short           brick_b_image[] = {
  105. #include "icons/brick_b.pr"
  106. };
  107.  
  108. mpr_static( brick_b_pr, 64, 16, 1, brick_b_image );
  109.  
  110. short           brick_c_image[] = {
  111. #include "icons/brick_c.pr"
  112. };
  113.  
  114. mpr_static( brick_c_pr, 64, 16, 1, brick_c_image );
  115.  
  116. short           brick_d_image[] = {
  117. #include "icons/brick_d.pr"
  118. };
  119.  
  120. mpr_static( brick_d_pr, 64, 16, 1, brick_d_image );
  121.  
  122. short           brick_e_image[] = {
  123. #include "icons/brick_e.pr"
  124. };
  125.  
  126. mpr_static( brick_e_pr, 64, 16, 1, brick_e_image );
  127.  
  128. short           brick_j_image[] = {
  129. #include "icons/brick_j.pr"
  130. };
  131.  
  132. mpr_static( brick_j_pr, 64, 16, 1, brick_j_image );
  133.  
  134.  
  135. short           brick_A_image[] = {
  136. #include "icons/brick_A.pr"
  137. };
  138.  
  139. mpr_static( brick_A_pr, 64, 16, 1, brick_A_image );
  140.  
  141. short           brick_C_image[] = {
  142. #include "icons/brick_C.pr"
  143. };
  144.  
  145. mpr_static( brick_C_pr, 64, 16, 1, brick_C_image );
  146.  
  147. short           brick_D_image[] = {
  148. #include "icons/brick_D.pr"
  149. };
  150.  
  151. mpr_static( brick_D_pr, 64, 16, 1, brick_D_image );
  152.  
  153. short           brick_E_image[] = {
  154. #include "icons/brick_E.pr"
  155. };
  156.  
  157. mpr_static( brick_E_pr, 64, 16, 1, brick_E_image );
  158.  
  159. short           brick_G_image[] = {
  160. #include "icons/brick_G.pr"
  161. };
  162.  
  163. mpr_static( brick_G_pr, 64, 16, 1, brick_G_image );
  164.  
  165. short           brick_H_image[] = {
  166. #include "icons/brick_H.pr"
  167. };
  168.  
  169. mpr_static( brick_H_pr, 64, 16, 1, brick_H_image );
  170.  
  171. /* short brick_I_image[] == clear_image */
  172.  
  173. short           brick_L_image[] = {
  174. #include "icons/brick_L.pr"
  175. };
  176.  
  177. mpr_static( brick_L_pr, 64, 16, 1, brick_L_image );
  178.  
  179. short           brick_M_image[] = {
  180. #include "icons/brick_M.pr"
  181. };
  182.  
  183. mpr_static( brick_M_pr, 64, 16, 1, brick_M_image );
  184.  
  185. short           brick_P_image[] = {
  186. #include "icons/brick_P.pr"
  187. };
  188.  
  189. mpr_static( brick_P_pr, 64, 16, 1, brick_P_image );
  190.  
  191. short           brick_R_image[] = {
  192. #include "icons/brick_R.pr"
  193. };
  194.  
  195. mpr_static( brick_R_pr, 64, 16, 1, brick_R_image );
  196.  
  197. short           brick_S_image[] = {
  198. #include "icons/brick_S.pr"
  199. };
  200.  
  201. mpr_static( brick_S_pr, 64, 16, 1, brick_S_image );
  202.  
  203. short           brick_T_image[] = {
  204. #include "icons/brick_T.pr"
  205. };
  206.  
  207. mpr_static( brick_T_pr, 64, 16, 1, brick_T_image );
  208.  
  209. short           brick_U_image[] = {
  210. #include "icons/brick_U.pr"
  211. };
  212.  
  213. mpr_static( brick_U_pr, 64, 16, 1, brick_U_image );
  214.  
  215. short           brick_W_image[] = {
  216. #include "icons/brick_W.pr"
  217. };
  218.  
  219. mpr_static( brick_W_pr, 64, 16, 1, brick_W_image );
  220.  
  221. short           brick_X_image[] = {
  222. #include "icons/brick_X.pr"
  223. };
  224.  
  225. mpr_static( brick_X_pr, 64, 16, 1, brick_X_image );
  226.  
  227.  
  228. /*** side images (square) ***/
  229.  
  230. short           clear0_image[] = {
  231. #include "icons/clear0.pr"
  232. };
  233.  
  234. mpr_static( clear0_pr, 16, 16, 1, clear0_image );
  235.  
  236. short           solid0_image[] = {
  237. #include "icons/solid0.pr"
  238. };
  239.  
  240. mpr_static( solid0_pr, 16, 16, 1, solid0_image );
  241.  
  242. short           launchNE0_image[] = {
  243. #include "icons/launchNE0.pr"
  244. };
  245.  
  246. mpr_static( launchNE0_pr, 16, 16, 1, launchNE0_image );
  247.  
  248. short           launchNW0_image[] = {
  249. #include "icons/launchNW0.pr"
  250. };
  251.  
  252. mpr_static( launchNW0_pr, 16, 16, 1, launchNW0_image );
  253.  
  254.  
  255. /*** address functions ***/
  256.  
  257. Pixrect        *
  258. brick_addr( row, col )
  259.     int             row, col;    /* col > 0 && col < MAX_COL */
  260. {
  261.     int             tmp = stage[row][col].nhits;
  262.  
  263.     switch ( stage[row][col].code ) {
  264.     case ' ':
  265.         return ( &clear_pr );
  266.     case '#':
  267.         return ( &solid_pr );
  268.     case '/':
  269.         return ( &launchNE_pr );
  270.     case '\\':
  271.         return ( &launchNW_pr );
  272.  
  273.     case '9':
  274.         if ( !tmp-- )
  275.             return ( &brick_9_pr );
  276.     case '8':
  277.         if ( !tmp-- )
  278.             return ( &brick_8_pr );
  279.     case '7':
  280.         if ( !tmp-- )
  281.             return ( &brick_7_pr );
  282.     case '6':
  283.         if ( !tmp-- )
  284.             return ( &brick_6_pr );
  285.     case '5':
  286.         if ( !tmp-- )
  287.             return ( &brick_5_pr );
  288.     case '4':
  289.         if ( !tmp-- )
  290.             return ( &brick_4_pr );
  291.     case '3':
  292.         if ( !tmp-- )
  293.             return ( &brick_3_pr );
  294.     case '2':
  295.         if ( !tmp-- )
  296.             return ( &brick_2_pr );
  297.     case '1':
  298.         return ( &brick_1_pr );
  299.  
  300.     case '0':
  301.         return ( &brick_0_pr );
  302.  
  303.     case 'a':
  304.         return ( &brick_a_pr );
  305.     case 'b':
  306.         return ( &brick_b_pr );
  307.     case 'c':
  308.         return ( &brick_c_pr );
  309.     case 'd':
  310.         return ( &brick_d_pr );
  311.     case 'e':
  312.         return ( &brick_e_pr );
  313.     case 'j':
  314.         return ( &brick_j_pr );
  315.  
  316.     case 'A':
  317.         return ( &brick_A_pr );
  318.     case '^':
  319.         return ( &solid_pr );
  320.     case 'C':
  321.         return ( &brick_C_pr );
  322.     case 'D':
  323.         return ( &brick_D_pr );
  324.     case 'E':
  325.         return ( &brick_E_pr );
  326.     case 'G':
  327.         return ( &brick_G_pr );
  328.     case 'H':
  329.         return ( &brick_H_pr );
  330.     case 'I':
  331.         return ( &clear_pr );
  332.     case 'L':
  333.         return ( &brick_L_pr );
  334.     case 'M':
  335.         return ( &brick_M_pr );
  336.     case 'P':
  337.         return ( &brick_P_pr );
  338.     case 'R':
  339.         return ( &brick_R_pr );
  340.     case 'S':
  341.         return ( &brick_S_pr );
  342.     case 'T':
  343.         return ( &brick_T_pr );
  344.     case 'U':
  345.         return ( &brick_U_pr );
  346.     case 'W':
  347.         return ( &brick_W_pr );
  348.     case '%':
  349.         return ( &solid_pr );
  350.     case 'X':
  351.         return ( &brick_X_pr );
  352.  
  353.     default:
  354.         perror( "Illegal map code" );
  355.         exit( 1 );
  356.     }
  357. }
  358.  
  359. Pixrect        *
  360. brick_addr0( row, col )
  361.     int             row, col;    /* col == 0 || col == MAX_COL */
  362. {
  363.     switch ( stage[row][col].code ) {
  364.     case ' ':
  365.         return ( &clear0_pr );
  366.     case '#':
  367.         return ( &solid0_pr );
  368.     case '/':
  369.         return ( &launchNE0_pr );
  370.     case '\\':
  371.         return ( &launchNW0_pr );
  372.  
  373.     default:
  374.         perror( "Illegal map code" );
  375.         exit( 1 );
  376.     };
  377. }
  378.