eliteships.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. static flash_int8_t ADDER_vertices[] = {
  2. -28,0,63, 28,0,63, 47,0,-37, 47,0,-63, 28,-11,-63, -28,-11,-63, -47,0,-63, -47,0,-37, -28,11,-63, 28,11,-63, -28,11,20, 28,11,20, -28,-11,20, 28,-11,20, -17,4,45, 17,4,45, 17,6,37, -17,6,37
  3. };
  4. static flash_uint8_t ADDER_edges[] = {
  5. 14,17, 10,11, 5,6, 0,7, 8,9, 0,10, 1,11, 1,2, 6,7, 12,13, 5,12, 8,10, 4,13, 7,12, 2,13, 9,11, 7,10, 16,17, 4,5, 1,13, 0,12, 3,9, 2,3, 0,1, 6,8, 15,16, 2,11, 14,15, 3,4
  6. };
  7. static flash_int8_t ANACONDA_vertices[] = {
  8. 0,1,-14, -10,-3,-9, -6,-11,0, 6,-11,0, 10,-3,-9, 0,11,-12, -17,3,-3, -10,-9,9, 10,-9,9, 17,3,-3, -10,13,-5, -17,0,7, 0,0,63, 17,0,7, 10,13,-5
  9. };
  10. static flash_uint8_t ANACONDA_edges[] = {
  11. 8,13, 7,12, 1,6, 7,11, 1,2, 5,14, 4,9, 12,13, 6,10, 10,12, 0,4, 2,7, 9,14, 12,14, 6,11, 2,3, 11,12, 0,1, 9,13, 5,10, 8,12, 3,8, 10,14, 0,5, 3,4
  12. };
  13. static flash_int8_t ASP_vertices[] = {
  14. 0,-15,0, 0,-7,-38, 37,0,-38, 59,-2,0, 37,-12,24, -37,0,-38, -59,-2,0, -37,-12,24, 22,-6,63, -22,-6,63, 37,12,24, -37,12,24, 0,7,-38, -14,0,-38, 14,0,-38, 0,-3,-38, 0,3,-38
  15. };
  16. static flash_uint8_t ASP_edges[] = {
  17. 6,9, 10,11, 4,8, 5,6, 0,7, 8,10, 8,9, 2,12, 1,2, 6,7, 5,12, 10,12, 13,16, 1,5, 9,11, 0,4, 6,11, 13,15, 2,3, 11,12, 7,9, 0,1, 14,16, 3,8, 14,15, 3,4, 3,10
  18. };
  19. static flash_int8_t ASTEROID_vertices[] = {
  20. 0,63,0, -63,-7,0, 0,-63,0, 55,-31,0, 47,39,0, 39,0,47, -31,0,55, 0,23,-59, 0,-39,-47
  21. };
  22. static flash_uint8_t ASTEROID_edges[] = {
  23. 0,1, 1,2, 4,7, 2,6, 3,7, 5,6, 7,8, 0,4, 2,8, 0,7, 1,7, 3,8, 0,6, 1,8, 0,5, 4,5, 2,3, 1,6, 2,5, 3,4, 3,5
  24. };
  25. static flash_int8_t BARREL_vertices[] = {
  26. 63,42,0, 63,13,39, 63,-34,23, 63,-34,-23, 63,13,-39, -63,42,0, -63,13,39, -63,-34,23, -63,-34,-23, -63,13,-39
  27. };
  28. static flash_uint8_t BARREL_edges[] = {
  29. 0,1, 1,2, 6,7, 5,9, 5,6, 7,8, 2,7, 1,6, 3,8, 2,3, 0,4, 0,5, 8,9, 4,9, 3,4
  30. };
  31. static flash_int8_t BOA_vertices[] = {
  32. 0,0,54, 0,23,-51, 22,-14,-58, -22,-14,-58, -22,23,-34, 22,23,-34, 36,0,-39, 14,-38,-46, -14,-38,-46, -36,0,-39, 0,4,-62, 7,-5,-62, -7,-5,-62
  33. };
  34. static flash_uint8_t BOA_edges[] = {
  35. 10,11, 5,6, 0,7, 8,9, 6,7, 10,12, 1,5, 0,4, 1,10, 2,6, 4,5, 1,4, 3,9, 0,5, 4,9, 0,8, 11,12, 2,7, 3,12, 2,11, 3,8, 0,6, 0,9, 7,8
  36. };
  37. static flash_int8_t BOULDER_vertices[] = {
  38. -29,59,-17, 48,11,19, 45,-11,-19, 3,0,-63, -45,54,-48, 8,-16,21, 32,27,-48
  39. };
  40. static flash_uint8_t BOULDER_edges[] = {
  41. 0,1, 1,2, 2,6, 4,6, 0,6, 4,5, 1,6, 1,5, 0,5, 3,6, 0,4, 2,3, 2,5, 3,4, 3,5
  42. };
  43. static flash_int8_t CAPSULE_vertices[] = {
  44. -12,0,63, -12,-24,-21, -12,24,-21, 36,0,0
  45. };
  46. static flash_uint8_t CAPSULE_edges[] = {
  47. 1,2, 0,1, 1,3, 2,3, 0,3, 0,2
  48. };
  49. static flash_int8_t COBRA_vertices[] = {
  50. 15,0,37, -15,0,37, 0,12,11, -59,-1,-3, 59,-1,-3, -43,7,-19, 43,7,-19, 63,-3,-19, -63,-3,-19, 0,12,-19, -15,-11,-19, 15,-11,-19, -17,3,-19, -3,5,-19, 3,5,-19, 17,3,-19, 17,-5,-19, 3,-7,-19, -3,-7,-19, -17,-5,-19, 0,0,37, 0,0,44, -39,-2,-19, -39,2,-19, -43,0,-19, 39,2,-19, 43,0,-19, 39,-2,-19
  51. };
  52. static flash_uint8_t COBRA_edges[] = {
  53. 5,9, 6,9, 1,3, 10,11, 4,7, 14,17, 25,27, 18,19, 7,11, 2,5, 5,8, 1,2, 6,7, 2,9, 12,13, 8,10, 25,26, 1,5, 0,11, 0,4, 1,10, 16,17, 2,6, 22,24, 22,23, 14,15, 23,24, 3,5, 0,1, 26,27, 4,6, 12,19, 3,8, 0,6, 13,18, 15,16, 0,2
  54. };
  55. static flash_int8_t COBRAMK1_vertices[] = {
  56. -17,0,47, 17,0,47, -63,0,6, 63,0,6, -30,11,-36, 30,11,-36, -51,-11,-36, 51,-11,-36, 0,11,-5, 0,0,47, 0,0,57
  57. };
  58. static flash_uint8_t COBRAMK1_edges[] = {
  59. 0,1, 2,6, 6,7, 4,6, 4,8, 4,5, 5,7, 2,4, 0,6, 1,8, 1,3, 1,7, 3,7, 0,8, 0,2, 5,8, 3,5
  60. };
  61. static flash_int8_t CONSTRICTOR_vertices[] = {
  62. 15,-5,63, -15,-5,63, -42,-5,31, -42,-5,-31, -15,10,-31, 15,10,-31, 42,-5,-31, 42,-5,31, 15,10,3, -15,10,3, 15,-5,48, -15,-5,48, 19,-5,-19, -19,-5,-19, 11,-5,-11, -11,-5,-11, 0,-5,0
  63. };
  64. static flash_uint8_t CONSTRICTOR_edges[] = {
  65. 5,6, 0,7, 8,9, 5,8, 1,2, 6,7, 2,9, 10,12, 3,6, 11,13, 12,14, 4,5, 13,15, 3,9, 2,3, 1,9, 4,9, 0,8, 0,1, 6,8, 7,8, 10,14, 11,15, 3,4
  66. };
  67. static flash_int8_t CORIOLIS_vertices[] = {
  68. 63,0,63, 0,63,63, -63,0,63, 0,-63,63, 63,-63,0, 63,63,0, -63,63,0, -63,-63,0, 63,0,-63, 0,63,-63, -63,0,-63, 0,-63,-63, 3,-11,63, 3,11,63, -3,11,63, -3,-11,63
  69. };
  70. static flash_uint8_t CORIOLIS_edges[] = {
  71. 5,9, 6,9, 10,11, 4,8, 8,9, 1,6, 7,11, 3,7, 0,3, 5,8, 1,2, 12,13, 6,10, 1,5, 7,10, 0,4, 14,15, 2,7, 2,6, 8,11, 9,10, 2,3, 4,11, 0,1, 12,15, 13,14, 0,5, 3,4
  72. };
  73. static flash_int8_t COUGAR_vertices[] = {
  74. 0,4,63, -18,0,37, -37,0,-37, 0,13,-37, 0,-13,-37, 18,0,37, 37,0,-37, -33,0,52, -56,0,-18, 33,0,52, 56,0,-18, 0,6,32, 0,7,23, -11,1,42, 11,1,42, -9,5,-37, -9,-5,-37, 9,-5,-37, 9,5,-37, 0,0,-37
  75. };
  76. static flash_uint8_t COUGAR_edges[] = {
  77. 5,9, 5,6, 2,8, 18,19, 11,14, 15,19, 0,3, 1,2, 12,13, 6,10, 3,6, 11,13, 17,18, 17,19, 12,14, 4,5, 1,4, 9,10, 2,3, 16,19, 11,12, 0,1, 4,6, 7,8, 1,7, 0,5, 15,16, 2,4
  78. };
  79. static flash_int8_t DODO_vertices[] = {
  80. 0,38,50, 37,11,50, 22,-31,50, -22,-31,50, -37,11,50, 0,63,11, 59,19,11, 37,-50,11, -37,-50,11, -59,19,11, 37,50,-11, 59,-19,-11, 0,-63,-11, -59,-19,-11, -37,50,-11, 22,31,-50, 37,-11,-50, 0,-38,-50, -37,-11,-50, -22,31,-50, -4,8,50, -4,-8,50, 4,8,50, 4,-8,50
  81. };
  82. static flash_uint8_t DODO_edges[] = {
  83. 11,16, 8,13, 7,12, 10,15, 1,6, 7,11, 15,19, 18,19, 1,2, 5,14, 4,9, 20,21, 6,10, 14,19, 12,17, 0,4, 2,7, 9,14, 20,22, 6,11, 21,23, 22,23, 2,3, 17,18, 16,17, 0,1, 9,13, 5,10, 8,12, 15,16, 3,8, 13,18, 0,5, 3,4
  84. };
  85. static flash_int8_t FERDELANCE_vertices[] = {
  86. 0,-8,63, -23,-8,-2, -7,-8,-30, 7,-8,-30, 23,-8,-2, -23,8,-2, -7,1,-30, 7,1,-30, 23,8,-2, 0,10,-11, -1,-6,56, -15,4,10, -9,8,-2, 1,-6,56, 15,4,10, 9,8,-2, 0,-8,-11, -8,-8,25, 8,-8,25
  87. };
  88. static flash_uint8_t FERDELANCE_edges[] = {
  89. 5,9, 6,9, 10,11, 4,8, 5,6, 8,9, 3,7, 1,2, 6,7, 10,12, 1,5, 0,4, 7,9, 16,18, 17,18, 2,6, 13,15, 14,15, 0,5, 0,8, 11,12, 16,17, 0,1, 13,14, 7,8, 2,3, 3,4
  90. };
  91. static flash_int8_t GECKO_vertices[] = {
  92. -9,-3,44, 9,-3,44, -15,7,-21, 15,7,-21, -63,0,-2, 63,0,-2, -19,-13,-21, 19,-13,-21, -7,-5,31, 7,-5,31, -7,-12,-15, 7,-12,-15
  93. };
  94. static flash_uint8_t GECKO_edges[] = {
  95. 0,1, 1,3, 6,7, 4,6, 0,6, 5,7, 2,4, 3,7, 1,5, 2,6, 2,3, 1,7, 0,4, 0,2, 3,5
  96. };
  97. static flash_int8_t KRAIT_vertices[] = {
  98. 0,0,63, 0,11,-31, 0,-11,-31, 59,0,-1, -59,0,-1, 59,0,57, -59,0,57, 0,3,34, 0,4,24, -11,4,12, 11,4,12, 11,7,-25, 11,-7,-25, 23,0,-19, -11,7,-25, -11,-7,-25, -23,0,-19
  99. };
  100. static flash_uint8_t KRAIT_edges[] = {
  101. 0,1, 1,2, 1,3, 14,16, 12,13, 15,16, 8,10, 1,4, 2,4, 8,9, 2,3, 7,10, 0,4, 14,15, 0,3, 7,9, 11,12, 0,2, 7,8, 11,13
  102. };
  103. static flash_int8_t MAMBA_vertices[] = {
  104. 0,0,63, -63,-7,-31, -31,7,-31, 31,7,-31, 63,-7,-31, -3,3,15, 3,3,15, 7,2,27, -7,2,27, -19,-3,15, 19,-3,15, -23,-6,-19, -15,-6,-19, 15,-6,-19, 23,-6,-19, -7,3,-31, 7,3,-31, 7,-3,-31, -7,-3,-31, -31,3,-31, 31,3,-31, 35,-3,-31, -35,-3,-31, -37,0,-31, 37,0,-31
  105. };
  106. static flash_uint8_t MAMBA_edges[] = {
  107. 22,23, 5,6, 19,22, 0,3, 5,8, 1,2, 6,7, 20,21, 9,11, 15,18, 0,4, 17,18, 10,13, 1,4, 2,3, 3,4, 11,12, 16,17, 0,1, 20,24, 13,14, 15,16, 10,14, 21,24, 19,23, 7,8, 0,2, 9,12
  108. };
  109. static flash_int8_t MISSILE_vertices[] = {
  110. 0,0,63, 7,7,33, -7,7,33, -7,-7,33, 7,-7,33, 7,7,-40, -7,7,-40, -7,-7,-40, 7,-7,-40, 11,11,-40, -11,11,-40, -11,-11,-40, 11,-11,-40, 7,7,-11, -7,7,-11, -7,-7,-11, 7,-7,-11
  111. };
  112. static flash_uint8_t MISSILE_edges[] = {
  113. 5,9, 4,8, 5,6, 12,16, 5,13, 7,11, 3,7, 0,3, 5,8, 6,14, 1,2, 6,7, 7,15, 6,10, 1,5, 0,4, 8,16, 2,6, 1,4, 2,3, 0,1, 9,13, 8,12, 3,4, 10,14, 11,15, 7,8, 0,2
  114. };
  115. static flash_int8_t MORAY_vertices[] = {
  116. 14,0,63, -14,0,63, 0,17,-38, -58,0,0, 58,0,0, 29,-26,-9, -29,-26,-9, -8,-3,-24, 8,-3,-24, 0,-17,-15, 12,2,47, 5,0,63, -12,2,47, -5,0,63
  117. };
  118. static flash_uint8_t MORAY_edges[] = {
  119. 1,2, 0,1, 1,3, 0,5, 5,6, 2,4, 8,9, 4,5, 2,6, 2,3, 3,6, 0,4, 1,6, 2,5, 7,8, 0,2, 7,9
  120. };
  121. static flash_int8_t PLATELET_vertices[] = {
  122. -20,-30,-12, -20,52,-12, 26,43,15, 13,-63,8
  123. };
  124. static flash_uint8_t PLATELET_edges[] = {
  125. 0,1, 1,2, 0,3, 2,3
  126. };
  127. static flash_int8_t PYTHON_vertices[] = {
  128. 0,0,63, 0,13,13, 27,0,-4, -27,0,-4, 0,13,-9, 0,6,-31, -13,0,-31, 13,0,-31, 0,-13,13, 0,-13,-9, 0,-6,-31
  129. };
  130. static flash_uint8_t PYTHON_edges[] = {
  131. 1,3, 5,6, 2,8, 8,9, 0,3, 1,2, 2,9, 6,10, 3,6, 2,7, 7,10, 4,5, 1,4, 9,10, 3,9, 0,8, 0,1, 5,7, 0,2, 3,8, 3,4, 2,4
  132. };
  133. static flash_int8_t SIDEWINDER_vertices[] = {
  134. -31,0,35, 31,0,35, 63,0,-27, -63,0,-27, 0,15,-27, 0,-15,-27, -11,5,-27, 11,5,-27, 11,-5,-27, -11,-5,-27
  135. };
  136. static flash_uint8_t SIDEWINDER_edges[] = {
  137. 0,1, 1,2, 2,5, 6,7, 7,8, 6,9, 1,4, 8,9, 1,5, 0,5, 0,4, 0,3, 3,4, 2,4, 3,5
  138. };
  139. static flash_int8_t SHUTTLE_vertices[] = {
  140. 0,-30,41, -30,0,41, 0,32,41, 32,0,41, -36,-36,-48, -36,36,-48, 36,36,-48, 36,-36,-48, 9,0,-48, 0,-3,-48, -9,0,-48, 0,5,-48, 0,-16,63, 5,-1,55, 7,19,45, 19,7,45, -5,-1,55, -5,19,45, -18,7,45
  141. };
  142. static flash_uint8_t SHUTTLE_edges[] = {
  143. 4,7, 10,11, 5,6, 0,7, 8,9, 2,12, 3,7, 2,5, 0,3, 1,2, 6,7, 1,5, 3,6, 0,4, 16,18, 16,17, 2,6, 4,5, 8,11, 13,15, 1,4, 0,12, 9,10, 2,3, 0,1, 3,12, 1,12, 13,14, 17,18, 14,15
  144. };
  145. static flash_int8_t THARGLET_vertices[] = {
  146. -14,0,63, -14,-59,18, -14,-37,-50, -14,37,-50, -14,59,18, 14,0,-12, 14,-15,-23, 14,-9,-40, 14,9,-40, 14,15,-23
  147. };
  148. static flash_uint8_t THARGLET_edges[] = {
  149. 0,1, 1,2, 6,7, 5,9, 5,6, 7,8, 2,7, 1,6, 3,8, 2,3, 0,4, 0,5, 8,9, 4,9, 3,4
  150. };
  151. static flash_int8_t THARGOID_vertices[] = {
  152. 12,-18,18, 12,-26,0, 12,-18,-18, 12,0,-26, 12,18,-18, 12,26,0, 12,18,18, 12,0,26, -9,-44,44, -9,-63,0, -9,-44,-44, -9,0,-63, -9,44,-44, -9,63,0, -9,44,44, -9,0,63, -9,24,30, -9,24,-30, -9,-24,-30, -9,-24,30
  153. };
  154. static flash_uint8_t THARGOID_edges[] = {
  155. 10,11, 5,6, 5,13, 0,7, 8,9, 4,12, 6,14, 1,2, 0,8, 6,7, 7,15, 12,13, 8,15, 4,5, 3,11, 9,10, 2,3, 1,9, 2,10, 11,12, 0,1, 13,14, 14,15, 3,4
  156. };
  157. static flash_int8_t TRANSPORTER_vertices[] = {
  158. 0,19,-49, -47,7,-49, -53,-5,-49, -47,-15,-49, 49,-15,-49, 55,-5,-49, 49,7,-49, 0,11,22, -57,-1,22, -63,-15,22, 63,-15,22, 57,-1,22, -21,-3,57, -24,-15,57, 26,-15,57, 21,-3,57, -9,11,3, -34,5,3, -9,13,-13, -34,7,-13, -21,11,-26, -21,9,-13, 9,13,-26, 34,7,-26, 21,9,-13, 9,11,-5, 34,5,-5, 21,7,15, 21,9,-5, -30,-15,-24, -30,-15,30, 32,-15,-24, 32,-15,30, -24,-5,-49, 24,-5,-49, 17,5,-49, -15,5,-49
  159. };
  160. static flash_uint8_t TRANSPORTER_edges[] = {
  161. 10,11, 5,6, 0,7, 8,9, 34,35, 7,11, 1,2, 7,15, 2,9, 12,13, 6,11, 35,36, 4,10, 4,5, 33,34, 3,9, 2,3, 33,36, 7,12, 11,15, 0,1, 9,13, 12,15, 5,10, 8,12, 13,14, 3,4, 0,6, 1,8, 10,14, 14,15, 7,8
  162. };
  163. static flash_int8_t VIPER_vertices[] = {
  164. 0,0,63, 0,14,21, 0,-14,21, 42,0,-21, -42,0,-21, 21,-14,-21, -21,-14,-21, 21,14,-21, -21,14,-21, -28,0,-21, 28,0,-21, 7,7,-21, -7,7,-21, -7,-7,-21, 7,-7,-21
  165. };
  166. static flash_uint8_t VIPER_edges[] = {
  167. 0,1, 9,13, 2,5, 2,6, 10,11, 4,6, 4,8, 5,6, 1,7, 12,13, 1,8, 10,14, 11,14, 0,4, 3,7, 0,3, 7,8, 0,2, 9,12, 3,5
  168. };
  169. static flash_int8_t WORM_vertices[] = {
  170. 18,-18,63, -18,-18,63, 9,10,27, -9,10,27, 27,-18,45, -27,-18,45, 46,-18,-45, -46,-18,-45, 14,25,-45, -14,25,-45
  171. };
  172. static flash_uint8_t WORM_edges[] = {
  173. 0,1, 1,3, 6,7, 6,8, 4,6, 2,8, 5,7, 2,4, 8,9, 1,5, 3,9, 2,3, 0,4, 7,9, 0,2, 3,5
  174. };
  175. struct ship
  176. {
  177. const char *name;
  178. byte nvertices;
  179. flash_int8_t *vertices;
  180. byte nedges;
  181. flash_uint8_t *edges;
  182. };
  183. static struct ship eliteships[] = {
  184. { "ADDER", 18, ADDER_vertices, 29, ADDER_edges },
  185. { "ANACONDA", 15, ANACONDA_vertices, 25, ANACONDA_edges },
  186. { "ASP", 17, ASP_vertices, 27, ASP_edges },
  187. { "ASTEROID", 9, ASTEROID_vertices, 21, ASTEROID_edges },
  188. { "BARREL", 10, BARREL_vertices, 15, BARREL_edges },
  189. { "BOA", 13, BOA_vertices, 24, BOA_edges },
  190. { "BOULDER", 7, BOULDER_vertices, 15, BOULDER_edges },
  191. { "CAPSULE", 4, CAPSULE_vertices, 6, CAPSULE_edges },
  192. { "COBRA", 28, COBRA_vertices, 37, COBRA_edges },
  193. { "COBRAMK1", 11, COBRAMK1_vertices, 17, COBRAMK1_edges },
  194. { "CONSTRICTOR", 17, CONSTRICTOR_vertices, 24, CONSTRICTOR_edges },
  195. { "CORIOLIS", 16, CORIOLIS_vertices, 28, CORIOLIS_edges },
  196. { "COUGAR", 20, COUGAR_vertices, 28, COUGAR_edges },
  197. { "DODO", 24, DODO_vertices, 34, DODO_edges },
  198. { "FERDELANCE", 19, FERDELANCE_vertices, 27, FERDELANCE_edges },
  199. { "GECKO", 12, GECKO_vertices, 15, GECKO_edges },
  200. { "KRAIT", 17, KRAIT_vertices, 20, KRAIT_edges },
  201. { "MAMBA", 25, MAMBA_vertices, 28, MAMBA_edges },
  202. { "MISSILE", 17, MISSILE_vertices, 28, MISSILE_edges },
  203. { "MORAY", 14, MORAY_vertices, 17, MORAY_edges },
  204. { "PLATELET", 4, PLATELET_vertices, 4, PLATELET_edges },
  205. { "PYTHON", 11, PYTHON_vertices, 22, PYTHON_edges },
  206. { "SIDEWINDER", 10, SIDEWINDER_vertices, 15, SIDEWINDER_edges },
  207. { "SHUTTLE", 19, SHUTTLE_vertices, 30, SHUTTLE_edges },
  208. { "THARGLET", 10, THARGLET_vertices, 15, THARGLET_edges },
  209. { "THARGOID", 20, THARGOID_vertices, 24, THARGOID_edges },
  210. { "TRANSPORTER", 37, TRANSPORTER_vertices, 32, TRANSPORTER_edges },
  211. { "VIPER", 15, VIPER_vertices, 20, VIPER_edges },
  212. { "WORM", 10, WORM_vertices, 16, WORM_edges },
  213. };