Loading

Paste #puyzaw735

  1. grf {
  2.   grfid: "frVS";
  3.   name: string(STR_GRF_NAME);
  4.   desc: string(STR_GRF_DESC);
  5.   version: 1;
  6.   min_compatible_version: 1;
  7. }
  8.  
  9. template templ(row) {
  10.   [  128, 128*row, 128, 128, -60, -98]
  11.   [  256, 128*row, 128, 128, -72, -89]
  12.   [  384, 128*row, 128, 128, -64, -95]
  13.   [  512, 128*row, 128, 128, -52, -91]
  14.   [  640, 128*row, 128, 128, -60, -98]
  15.   [  768, 128*row, 128, 128, -72, -89]
  16.   [  896, 128*row, 128, 128, -64, -95]
  17.   [ 1024, 128*row, 128, 128, -52, -91]
  18. }
  19. template templ_back(row) {
  20.   [  640, 128*row, 128, 128, -60, -98]
  21.   [  768, 128*row, 128, 128, -72, -89]
  22.   [  896, 128*row, 128, 128, -64, -95]
  23.   [ 1024, 128*row, 128, 128, -52, -91]
  24.   [  128, 128*row, 128, 128, -60, -98]
  25.   [  256, 128*row, 128, 128, -72, -89]
  26.   [  384, 128*row, 128, 128, -64, -95]
  27.   [  512, 128*row, 128, 128, -52, -91]
  28. }
  29.  
  30. spriteset(set_empty) { [] [] [] [] [] [] [] [] }
  31.  
  32. spriteset          (set_base_front,                                     "dummy.png")                               { templ( 0) }
  33. alternative_sprites(set_base_front,  ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_base.png")                           { templ( 0) }
  34. spriteset          (set_base_back,                                      "dummy.png")                               { templ_back( 1) }
  35. alternative_sprites(set_base_back,   ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_base.png")                           { templ_back( 1) }
  36. spriteset          (set_base_middle,                                    "dummy.png")                               { templ( 2) }
  37. alternative_sprites(set_base_middle, ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_base.png")                           { templ( 2) }
  38.  
  39. spriteset          (set_cc_front,                                       "dummy.png")                               { templ( 0) }
  40. alternative_sprites(set_cc_front,    ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_cc_shading.png", "slug_cc_mask.png") { templ( 0) }
  41. spriteset          (set_cc_back,                                        "dummy.png")                               { templ_back( 1) }
  42. alternative_sprites(set_cc_back,     ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_cc_shading.png", "slug_cc_mask.png") { templ_back( 1) }
  43. spriteset          (set_cc_middle,                                      "dummy.png")                               { templ( 2) }
  44. alternative_sprites(set_cc_middle,   ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_cc_shading.png", "slug_cc_mask.png") { templ( 2) }
  45.  
  46. spriteset          (set_pilot0,                                         "dummy.png")                               { templ( 4) }
  47. alternative_sprites(set_pilot0,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ( 4) }
  48. spriteset          (set_pilot1,                                         "dummy.png")                               { templ( 5) }
  49. alternative_sprites(set_pilot1,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ( 5) }
  50. spriteset          (set_pilot2,                                         "dummy.png")                               { templ( 6) }
  51. alternative_sprites(set_pilot2,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ( 6) }
  52. spriteset          (set_pilot3,                                         "dummy.png")                               { templ( 7) }
  53. alternative_sprites(set_pilot3,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ( 7) }
  54. spriteset          (set_pilot4,                                         "dummy.png")                               { templ( 8) }
  55. alternative_sprites(set_pilot4,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ( 8) }
  56. spriteset          (set_pilot5,                                         "dummy.png")                               { templ( 9) }
  57. alternative_sprites(set_pilot5,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ( 9) }
  58. spriteset          (set_pilot6,                                         "dummy.png")                               { templ(10) }
  59. alternative_sprites(set_pilot6,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ(10) }
  60. spriteset          (set_pilot7,                                         "dummy.png")                               { templ(11) }
  61. alternative_sprites(set_pilot7,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ(11) }
  62. spriteset          (set_pilot8,                                         "dummy.png")                               { templ(12) }
  63. alternative_sprites(set_pilot8,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ(12) }
  64. spriteset          (set_pilot9,                                         "dummy.png")                               { templ(13) }
  65. alternative_sprites(set_pilot9,      ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "slug_pilot.png")                          { templ(13) }
  66.  
  67. spritegroup group_pilot0 { loading: set_empty; loaded:  set_pilot0; }
  68. spritegroup group_pilot1 { loading: set_empty; loaded:  set_pilot1; }
  69. spritegroup group_pilot2 { loading: set_empty; loaded:  set_pilot2; }
  70. spritegroup group_pilot3 { loading: set_empty; loaded:  set_pilot3; }
  71. spritegroup group_pilot4 { loading: set_empty; loaded:  set_pilot4; }
  72. spritegroup group_pilot5 { loading: set_empty; loaded:  set_pilot5; }
  73. spritegroup group_pilot6 { loading: set_empty; loaded:  set_pilot6; }
  74. spritegroup group_pilot7 { loading: set_empty; loaded:  set_pilot7; }
  75. spritegroup group_pilot8 { loading: set_empty; loaded:  set_pilot8; }
  76. spritegroup group_pilot9 { loading: set_empty; loaded:  set_pilot9; }
  77.  
  78. switch(FEAT_TRAINS, SELF, switch_pilot, getbits(random_bits, 4, 4)) {
  79.    0: group_pilot0;
  80.    1: group_pilot0;
  81.    2: group_pilot1;
  82.    3: group_pilot2;
  83.    4: group_pilot2;
  84.    5: group_pilot3;
  85.    6: group_pilot4;
  86.    7: group_pilot4;
  87.    8: group_pilot5;
  88.    9: group_pilot6;
  89.   10: group_pilot6;
  90.   11: group_pilot7;
  91.   12: group_pilot7;
  92.   13: group_pilot8;
  93.   14: group_pilot8;
  94.   default: group_pilot9;
  95. }
  96.  
  97. switch(FEAT_TRAINS, SELF, switch_front, [
  98.   STORE_TEMP((getbits(extra_callback_info1, 8, 8) <= 1 ? 0x80000000 : 0x00000000) + PALETTE_CC_FIRST + getbits(random_bits, 0, 4), 0x100),
  99.   getbits(extra_callback_info1, 8, 8)
  100. ]) {
  101.   0: set_base_front;
  102.   1: set_cc_front;
  103.   2: switch_pilot;
  104. }
  105.  
  106. switch(FEAT_TRAINS, SELF, switch_middle, [
  107.   STORE_TEMP((getbits(extra_callback_info1, 8, 8) == 0 ? 0x80000000 : 0x00000000) + PALETTE_CC_FIRST + getbits(random_bits, 0, 4), 0x100),
  108.   getbits(extra_callback_info1, 8, 8)
  109. ]) {
  110.   0: set_base_middle;
  111.   1: set_cc_middle;
  112. }
  113.  
  114. switch(FEAT_TRAINS, SELF, switch_back, [
  115.   STORE_TEMP((getbits(extra_callback_info1, 8, 8) == 0 ? 0x80000000 : 0x00000000) + PALETTE_CC_FIRST + getbits(random_bits, 0, 4), 0x100),
  116.   getbits(extra_callback_info1, 8, 8)
  117. ]) {
  118.   0: set_base_back;
  119.   1: set_cc_back;
  120. }
  121.  
  122. switch(FEAT_TRAINS, SELF, switch_position2, position_in_vehid_chain_from_end) {
  123.   0: switch_back;
  124.   default: switch_middle;
  125. }
  126.  
  127. switch(FEAT_TRAINS, SELF, switch_position, position_in_vehid_chain) {
  128.   0: switch_front;
  129.   default: switch_position2;
  130. }
  131.  
  132. item(FEAT_TRAINS, test_vehicle, 0) {
  133.   property {
  134.     misc_flags: 0x80; // enable sprite stacks
  135.     sprite_id:  SPRITE_ID_NEW_TRAIN;
  136.   }
  137.   graphics {
  138.     default: switch_position;
  139.   }
  140. }

Comments