- // default spriteset templates
- template spriteset_template_asymmetric_unreversed_moor_gallop_unflipped(y) {
- //[left_x, upper_y, width, height, offset_x, offset_y]
- [60, y, 8, 29, -3, -16 ]
- [73, y, 26, 24, -14, -15 ]
- [104, y, 33, 16, -16, -12 ]
- [143, y, 26, 24, -7, -16 ]
- [180, y, 8, 29, -3, -16 ]
- [193, y, 26, 24, -13, -16 ]
- [224, y, 33, 16, -16, -12 ]
- [263, y, 26, 24, -7, -16 ]
- }
- template spriteset_template_asymmetric_reversed_moor_gallop_unflipped(y) {
- //[left_x, upper_y, width, height, offset_x, offset_y]
- [180, y, 8, 29, -3, -16 ]
- [193, y, 26, 24, -14, -15 ]
- [224, y, 33, 16, -16, -12 ]
- [263, y, 26, 24, -7, -16 ]
- [60, y, 8, 29, -3, -16 ]
- [73, y, 26, 24, -13, -16 ]
- [104, y, 33, 16, -16, -12 ]
- [143, y, 26, 24, -7, -16 ]
- }
- template spriteset_template_asymmetric_unreversed_moor_gallop_flipped(y) {
- //[left_x, upper_y, width, height, offset_x, offset_y]
- [60, y, 8, 29, -3, -16 ]
- [73, y, 26, 24, -13, -16 ]
- [104, y, 33, 16, -16, -12 ]
- [143, y, 26, 24, -7, -16 ]
- [180, y, 8, 29, -3, -16 ]
- [193, y, 26, 24, -14, -15 ]
- [224, y, 33, 16, -16, -12 ]
- [263, y, 26, 24, -7, -16 ]
- }
- template spriteset_template_asymmetric_reversed_moor_gallop_flipped(y) {
- //[left_x, upper_y, width, height, offset_x, offset_y]
- [180, y, 8, 29, -3, -16 ]
- [193, y, 26, 24, -13, -16 ]
- [224, y, 33, 16, -16, -12 ]
- [263, y, 26, 24, -7, -16 ]
- [60, y, 8, 29, -3, -16 ]
- [73, y, 26, 24, -14, -15 ]
- [104, y, 33, 16, -16, -12 ]
- [143, y, 26, 24, -7, -16 ]
- }
- // buy menu spriteset template
- template spriteset_template_purchase_moor_gallop(y) {
- //[left_x, upper_y, width, height, offset_x, offset_y]
- [60, 10, 1, 1, 0, 0]
- [60, 10, 1, 1, 0, 0]
- [107, 10, 1, 1, 0, 0]
- [60, 10, 1, 1, 0, 0]
- [60, 10, 1, 1, 0, 0]
- [60, 10, 1, 1, 0, 0]
- // allow for buffers/couplings being 1px additional to the unit (they overlap in consists, but show in buy menu)
- [360, y, 33, 16, -16, -11 ]
- [60, 10, 1, 1, 0, 0]
- }
- // default graphics chain
- spriteset(moor_gallop_ss_unreversed_unflipped, "generated/graphics/moor_gallop.png") {
- spriteset_template_asymmetric_unreversed_moor_gallop_unflipped(10 + 0)
- }
- spriteset(moor_gallop_ss_pantographs_down_unreversed_unflipped, "generated/graphics/moor_gallop_pantographs.png") {
- spriteset_template_asymmetric_unreversed_moor_gallop_unflipped(10 + 0)
- }
- spriteset(moor_gallop_ss_pantographs_up_unreversed_unflipped, "generated/graphics/moor_gallop_pantographs.png") {
- spriteset_template_asymmetric_unreversed_moor_gallop_unflipped(40 + 0)
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_pantographs_unreversed_unflipped, current_railtype) {
- ELRL: return moor_gallop_ss_pantographs_up_unreversed_unflipped;
- return moor_gallop_ss_pantographs_down_unreversed_unflipped;
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_vehicle_layers_unreversed_unflipped, getbits(extra_callback_info1, 8, 8)) {
- 0: return moor_gallop_ss_unreversed_unflipped;
- 1: return moor_gallop_switch_graphics_pantographs_unreversed_unflipped;
- }
- spriteset(moor_gallop_ss_unreversed_flipped, "generated/graphics/moor_gallop.png") {
- spriteset_template_asymmetric_unreversed_moor_gallop_flipped(10 + 0)
- }
- spriteset(moor_gallop_ss_pantographs_down_unreversed_flipped, "generated/graphics/moor_gallop_pantographs.png") {
- spriteset_template_asymmetric_unreversed_moor_gallop_flipped(10 + 0)
- }
- spriteset(moor_gallop_ss_pantographs_up_unreversed_flipped, "generated/graphics/moor_gallop_pantographs.png") {
- spriteset_template_asymmetric_unreversed_moor_gallop_flipped(40 + 0)
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_pantographs_unreversed_flipped, current_railtype) {
- ELRL: return moor_gallop_ss_pantographs_up_unreversed_flipped;
- return moor_gallop_ss_pantographs_down_unreversed_flipped;
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_vehicle_layers_unreversed_flipped, getbits(extra_callback_info1, 8, 8)) {
- 0: return moor_gallop_ss_unreversed_flipped;
- 1: return moor_gallop_switch_graphics_pantographs_unreversed_flipped;
- }
- // handle user flipped state
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_unreversed, vehicle_is_flipped) {
- 1: return moor_gallop_switch_graphics_vehicle_layers_unreversed_flipped;
- return moor_gallop_switch_graphics_vehicle_layers_unreversed_unflipped;
- }
- random_switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_vehicle) {
- 1: return moor_gallop_switch_graphics_unreversed;
- }
- // buy menu graphics chain
- spriteset(moor_gallop_ss_purchase, "generated/graphics/moor_gallop.png") {
- spriteset_template_purchase_moor_gallop(10)
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_purchase, 0) {
- return moor_gallop_ss_purchase;
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_set_layers_register_more_sprites, STORE_TEMP(CB_FLAG_MORE_SPRITES | PALETTE_USE_DEFAULT, 0x100)) {
- return moor_gallop_switch_graphics_vehicle;
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_rear_light, position_in_consist_from_end) {
- 0: return ss_rear_light_32px;
- return ss_rear_light_empty;
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics_layer_rear_light, STORE_TEMP(PALETTE_USE_DEFAULT, 0x100)) {
- return moor_gallop_switch_graphics_rear_light;
- }
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_graphics, getbits(extra_callback_info1, 8, 8)) {
- 0: return moor_gallop_switch_set_layers_register_more_sprites;
- 1: return moor_gallop_switch_set_layers_register_more_sprites;
- return moor_gallop_switch_graphics_layer_rear_light;
- }
- // -- smoke etc -- //
- switch (FEAT_TRAINS, SELF, moor_gallop_switch_visual_effect_and_powered_by_variant_unreversed, current_railtype) {
- return visual_effect_and_powered(VISUAL_EFFECT_ELECTRIC, 0, DISABLE_WAGON_POWER);
- }
- item(FEAT_TRAINS, moor_gallop, 170) {
- property {
- name: string(STR_NAME_CONSIST_PARENTHESES, string(STR_NAME_moor_gallop), string(STR_NAME_SUFFIX_ELECTRIC));
- climates_available: NO_CLIMATE; // nml constant
- engine_class: ENGINE_CLASS_ELECTRIC;
- visual_effect_and_powered: visual_effect_and_powered(VISUAL_EFFECT_DISABLE, 0, DISABLE_WAGON_POWER);
- introduction_date: date(1935,01,01); // consist just supplies intro year - openttd randomises intro dates a bit anyway
- cargo_capacity: 0;
- sprite_id: SPRITE_ID_NEW_TRAIN; //enable new graphics - nml constant
- power: 2400hp;
- speed: 90mph;
- weight: 105ton;
- tractive_effort_coefficient: 0.25;
- cost_factor: 0; // use the CB to set this, the prop is capped to max 255, cb is 32k
- running_cost_base: RUNNING_COST_ELECTRIC;
- running_cost_factor: 0; // use the CB to set this, the prop is capped to max 255, cb is 32k
- refit_cost: 0; // btw this needs to be 0 if we want autorefit without using cb
- refittable_cargo_classes: bitmask();
- non_refittable_cargo_classes: bitmask(); // don't set non-refittable classes, increases likelihood of breaking cargo support
- cargo_allow_refit: [];
- cargo_disallow_refit: [];
- cargo_age_period: 185;
- misc_flags: bitmask(TRAIN_FLAG_2CC,TRAIN_FLAG_SPRITE_STACK,TRAIN_FLAG_AUTOREFIT); // nml constants
- dual_headed: 0;
- model_life: 30;
- retire_early: -10;
- reliability_decay: 20; // default value
- vehicle_life: 40;
- length: 8;
- track_type: ELRL;
- }
- graphics {
- default: moor_gallop_switch_graphics;
- purchase: moor_gallop_switch_graphics_purchase;
- cost_factor: 97; // CB used as it is capped to max 32k, prop is only 255
- running_cost_factor: 70; // CB used as it is capped to max 32k, prop is only 255
- visual_effect_and_powered: moor_gallop_switch_visual_effect_and_powered_by_variant_unreversed;
- }
- }
- if (param[1]==0) {
- item(FEAT_TRAINS, moor_gallop, 170) {
- property {
- climates_available: ALL_CLIMATES;
- }
- }
- }
- // -- end 170 --