// default spriteset templates template spriteset_template_asymmetric_unreversed_athena_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, -8, -16 ] [180, y, 8, 29, -3, -16 ] [193, y, 26, 24, -14, -15 ] [224, y, 33, 16, -16, -12 ] [263, y, 26, 24, -8, -16 ] } template spriteset_template_asymmetric_reversed_athena_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, -8, -16 ] [60, y, 8, 29, -3, -16 ] [73, y, 26, 24, -14, -15 ] [104, y, 33, 16, -16, -12 ] [143, y, 26, 24, -8, -16 ] } template spriteset_template_asymmetric_unreversed_athena_flipped(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, -8, -16 ] [180, y, 8, 29, -3, -16 ] [193, y, 26, 24, -14, -15 ] [224, y, 33, 16, -16, -12 ] [263, y, 26, 24, -8, -16 ] } template spriteset_template_asymmetric_reversed_athena_flipped(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, -8, -16 ] [60, y, 8, 29, -3, -16 ] [73, y, 26, 24, -14, -15 ] [104, y, 33, 16, -16, -12 ] [143, y, 26, 24, -8, -16 ] } // buy menu spriteset template template spriteset_template_purchase_athena(y) { //[left_x, upper_y, width, height, offset_x, offset_y] [60, 10, 1, 1, 0, 0] [60, 10, 1, 1, 0, 0] [60, 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) [224, y, 33, 16, -16, -11 ] [60, 10, 1, 1, 0, 0] } // default graphics chain spriteset(athena_ss_doors_closed_livery_1_0_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 0) } spriteset(athena_ss_doors_open_livery_1_0_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 0 + 30) } spriteset(athena_ss_doors_closed_livery_2_0_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 0 + 60) } spriteset(athena_ss_doors_open_livery_2_0_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 0 + 90) } spritegroup athena_sg_part_load_or_empty_livery_1_0_unflipped { loaded: [ athena_ss_doors_closed_livery_1_0_unflipped, ]; loading: [ athena_ss_doors_open_livery_1_0_unflipped, ]; } spritegroup athena_sg_full_load_livery_1_0_unflipped { loaded: [ athena_ss_doors_closed_livery_1_0_unflipped, ]; loading: [ athena_ss_doors_closed_livery_1_0_unflipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_1_0_unflipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_1_0_unflipped; return athena_sg_full_load_livery_1_0_unflipped; } spritegroup athena_sg_part_load_or_empty_livery_2_0_unflipped { loaded: [ athena_ss_doors_closed_livery_2_0_unflipped, ]; loading: [ athena_ss_doors_open_livery_2_0_unflipped, ]; } spritegroup athena_sg_full_load_livery_2_0_unflipped { loaded: [ athena_ss_doors_closed_livery_2_0_unflipped, ]; loading: [ athena_ss_doors_closed_livery_2_0_unflipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_2_0_unflipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_2_0_unflipped; return athena_sg_full_load_livery_2_0_unflipped; } spriteset(athena_ss_pantographs_down_0_unflipped, "generated/graphics/athena_pantographs_down.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 0) } spriteset(athena_ss_pantographs_up_0_unflipped, "generated/graphics/athena_pantographs_up.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 0) } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_0_unflipped, current_railtype) { ELRL: return athena_ss_pantographs_up_0_unflipped; return athena_ss_pantographs_down_0_unflipped; } spriteset(athena_ss_doors_closed_livery_1_0_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 0) } spriteset(athena_ss_doors_open_livery_1_0_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 0 + 30) } spriteset(athena_ss_doors_closed_livery_2_0_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 0 + 60) } spriteset(athena_ss_doors_open_livery_2_0_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 0 + 90) } spritegroup athena_sg_part_load_or_empty_livery_1_0_flipped { loaded: [ athena_ss_doors_closed_livery_1_0_flipped, ]; loading: [ athena_ss_doors_open_livery_1_0_flipped, ]; } spritegroup athena_sg_full_load_livery_1_0_flipped { loaded: [ athena_ss_doors_closed_livery_1_0_flipped, ]; loading: [ athena_ss_doors_closed_livery_1_0_flipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_1_0_flipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_1_0_flipped; return athena_sg_full_load_livery_1_0_flipped; } spritegroup athena_sg_part_load_or_empty_livery_2_0_flipped { loaded: [ athena_ss_doors_closed_livery_2_0_flipped, ]; loading: [ athena_ss_doors_open_livery_2_0_flipped, ]; } spritegroup athena_sg_full_load_livery_2_0_flipped { loaded: [ athena_ss_doors_closed_livery_2_0_flipped, ]; loading: [ athena_ss_doors_closed_livery_2_0_flipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_2_0_flipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_2_0_flipped; return athena_sg_full_load_livery_2_0_flipped; } spriteset(athena_ss_pantographs_down_0_flipped, "generated/graphics/athena_pantographs_down.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 0) } spriteset(athena_ss_pantographs_up_0_flipped, "generated/graphics/athena_pantographs_up.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 0) } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_0_flipped, current_railtype) { ELRL: return athena_ss_pantographs_up_0_flipped; return athena_ss_pantographs_down_0_flipped; } // handle user flipped state switch (FEAT_TRAINS, SELF, athena_switch_graphics_livery_1_0, vehicle_is_flipped) { 1: return athena_switch_graphics_percent_loaded_livery_2_0_flipped; return athena_switch_graphics_percent_loaded_livery_1_0_unflipped; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_livery_2_0, vehicle_is_flipped) { 1: return athena_switch_graphics_percent_loaded_livery_1_0_flipped; return athena_switch_graphics_percent_loaded_livery_2_0_unflipped; } switch (FEAT_TRAINS, PARENT, athena_switch_graphics_engine_id_0, vehicle_type_id) { lark: return athena_switch_graphics_livery_2_0; merrylegs: return athena_switch_graphics_livery_2_0; proper_job: return athena_switch_graphics_livery_2_0; shoebox: return athena_switch_graphics_livery_2_0; super_shoebox: return athena_switch_graphics_livery_2_0; ultra_shoebox: return athena_switch_graphics_livery_2_0; hurly_burly: return athena_switch_graphics_livery_2_0; moor_gallop: return athena_switch_graphics_livery_2_0; roarer: return athena_switch_graphics_livery_2_0; screamer: return athena_switch_graphics_livery_2_0; sizzler: return athena_switch_graphics_livery_2_0; athena: return athena_switch_graphics_livery_2_0; geronimo: return athena_switch_graphics_livery_2_0; breeze: return athena_switch_graphics_livery_2_0; zeus: return athena_switch_graphics_livery_2_0; ares: return athena_switch_graphics_livery_2_0; dover: return athena_switch_graphics_livery_2_0; jupiter: return athena_switch_graphics_livery_2_0; pylon: return athena_switch_graphics_livery_2_0; return athena_switch_graphics_livery_1_0; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_0, vehicle_is_flipped) { 1: return athena_switch_graphics_pantographs_0_flipped; return athena_switch_graphics_pantographs_0_unflipped; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_vehicle_layers_0, getbits(extra_callback_info1, 8, 8)) { 0: return athena_switch_graphics_engine_id_0; 1: return athena_switch_graphics_pantographs_0; } spriteset(athena_ss_doors_closed_livery_1_1_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 120) } spriteset(athena_ss_doors_open_livery_1_1_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 120 + 30) } spriteset(athena_ss_doors_closed_livery_2_1_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 120 + 60) } spriteset(athena_ss_doors_open_livery_2_1_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 120 + 90) } spritegroup athena_sg_part_load_or_empty_livery_1_1_unflipped { loaded: [ athena_ss_doors_closed_livery_1_1_unflipped, ]; loading: [ athena_ss_doors_open_livery_1_1_unflipped, ]; } spritegroup athena_sg_full_load_livery_1_1_unflipped { loaded: [ athena_ss_doors_closed_livery_1_1_unflipped, ]; loading: [ athena_ss_doors_closed_livery_1_1_unflipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_1_1_unflipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_1_1_unflipped; return athena_sg_full_load_livery_1_1_unflipped; } spritegroup athena_sg_part_load_or_empty_livery_2_1_unflipped { loaded: [ athena_ss_doors_closed_livery_2_1_unflipped, ]; loading: [ athena_ss_doors_open_livery_2_1_unflipped, ]; } spritegroup athena_sg_full_load_livery_2_1_unflipped { loaded: [ athena_ss_doors_closed_livery_2_1_unflipped, ]; loading: [ athena_ss_doors_closed_livery_2_1_unflipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_2_1_unflipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_2_1_unflipped; return athena_sg_full_load_livery_2_1_unflipped; } spriteset(athena_ss_pantographs_down_1_unflipped, "generated/graphics/athena_pantographs_down.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 60) } spriteset(athena_ss_pantographs_up_1_unflipped, "generated/graphics/athena_pantographs_up.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 60) } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_1_unflipped, current_railtype) { ELRL: return athena_ss_pantographs_up_1_unflipped; return athena_ss_pantographs_down_1_unflipped; } spriteset(athena_ss_doors_closed_livery_1_1_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 120) } spriteset(athena_ss_doors_open_livery_1_1_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 120 + 30) } spriteset(athena_ss_doors_closed_livery_2_1_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 120 + 60) } spriteset(athena_ss_doors_open_livery_2_1_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 120 + 90) } spritegroup athena_sg_part_load_or_empty_livery_1_1_flipped { loaded: [ athena_ss_doors_closed_livery_1_1_flipped, ]; loading: [ athena_ss_doors_open_livery_1_1_flipped, ]; } spritegroup athena_sg_full_load_livery_1_1_flipped { loaded: [ athena_ss_doors_closed_livery_1_1_flipped, ]; loading: [ athena_ss_doors_closed_livery_1_1_flipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_1_1_flipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_1_1_flipped; return athena_sg_full_load_livery_1_1_flipped; } spritegroup athena_sg_part_load_or_empty_livery_2_1_flipped { loaded: [ athena_ss_doors_closed_livery_2_1_flipped, ]; loading: [ athena_ss_doors_open_livery_2_1_flipped, ]; } spritegroup athena_sg_full_load_livery_2_1_flipped { loaded: [ athena_ss_doors_closed_livery_2_1_flipped, ]; loading: [ athena_ss_doors_closed_livery_2_1_flipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_2_1_flipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_2_1_flipped; return athena_sg_full_load_livery_2_1_flipped; } spriteset(athena_ss_pantographs_down_1_flipped, "generated/graphics/athena_pantographs_down.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 60) } spriteset(athena_ss_pantographs_up_1_flipped, "generated/graphics/athena_pantographs_up.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 60) } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_1_flipped, current_railtype) { ELRL: return athena_ss_pantographs_up_1_flipped; return athena_ss_pantographs_down_1_flipped; } // handle user flipped state switch (FEAT_TRAINS, SELF, athena_switch_graphics_livery_1_1, vehicle_is_flipped) { 1: return athena_switch_graphics_percent_loaded_livery_2_1_flipped; return athena_switch_graphics_percent_loaded_livery_1_1_unflipped; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_livery_2_1, vehicle_is_flipped) { 1: return athena_switch_graphics_percent_loaded_livery_1_1_flipped; return athena_switch_graphics_percent_loaded_livery_2_1_unflipped; } switch (FEAT_TRAINS, PARENT, athena_switch_graphics_engine_id_1, vehicle_type_id) { lark: return athena_switch_graphics_livery_2_1; merrylegs: return athena_switch_graphics_livery_2_1; proper_job: return athena_switch_graphics_livery_2_1; shoebox: return athena_switch_graphics_livery_2_1; super_shoebox: return athena_switch_graphics_livery_2_1; ultra_shoebox: return athena_switch_graphics_livery_2_1; hurly_burly: return athena_switch_graphics_livery_2_1; moor_gallop: return athena_switch_graphics_livery_2_1; roarer: return athena_switch_graphics_livery_2_1; screamer: return athena_switch_graphics_livery_2_1; sizzler: return athena_switch_graphics_livery_2_1; athena: return athena_switch_graphics_livery_2_1; geronimo: return athena_switch_graphics_livery_2_1; breeze: return athena_switch_graphics_livery_2_1; zeus: return athena_switch_graphics_livery_2_1; ares: return athena_switch_graphics_livery_2_1; dover: return athena_switch_graphics_livery_2_1; jupiter: return athena_switch_graphics_livery_2_1; pylon: return athena_switch_graphics_livery_2_1; return athena_switch_graphics_livery_1_1; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_1, vehicle_is_flipped) { 1: return athena_switch_graphics_pantographs_1_flipped; return athena_switch_graphics_pantographs_1_unflipped; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_vehicle_layers_1, getbits(extra_callback_info1, 8, 8)) { 0: return athena_switch_graphics_engine_id_1; 1: return athena_switch_graphics_pantographs_1; } spriteset(athena_ss_doors_closed_livery_1_2_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 240) } spriteset(athena_ss_doors_open_livery_1_2_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 240 + 30) } spriteset(athena_ss_doors_closed_livery_2_2_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 240 + 60) } spriteset(athena_ss_doors_open_livery_2_2_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 240 + 90) } spritegroup athena_sg_part_load_or_empty_livery_1_2_unflipped { loaded: [ athena_ss_doors_closed_livery_1_2_unflipped, ]; loading: [ athena_ss_doors_open_livery_1_2_unflipped, ]; } spritegroup athena_sg_full_load_livery_1_2_unflipped { loaded: [ athena_ss_doors_closed_livery_1_2_unflipped, ]; loading: [ athena_ss_doors_closed_livery_1_2_unflipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_1_2_unflipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_1_2_unflipped; return athena_sg_full_load_livery_1_2_unflipped; } spritegroup athena_sg_part_load_or_empty_livery_2_2_unflipped { loaded: [ athena_ss_doors_closed_livery_2_2_unflipped, ]; loading: [ athena_ss_doors_open_livery_2_2_unflipped, ]; } spritegroup athena_sg_full_load_livery_2_2_unflipped { loaded: [ athena_ss_doors_closed_livery_2_2_unflipped, ]; loading: [ athena_ss_doors_closed_livery_2_2_unflipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_2_2_unflipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_2_2_unflipped; return athena_sg_full_load_livery_2_2_unflipped; } spriteset(athena_ss_pantographs_down_2_unflipped, "generated/graphics/athena_pantographs_down.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 120) } spriteset(athena_ss_pantographs_up_2_unflipped, "generated/graphics/athena_pantographs_up.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 120) } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_2_unflipped, current_railtype) { ELRL: return athena_ss_pantographs_up_2_unflipped; return athena_ss_pantographs_down_2_unflipped; } spriteset(athena_ss_doors_closed_livery_1_2_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 240) } spriteset(athena_ss_doors_open_livery_1_2_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 240 + 30) } spriteset(athena_ss_doors_closed_livery_2_2_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 240 + 60) } spriteset(athena_ss_doors_open_livery_2_2_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 240 + 90) } spritegroup athena_sg_part_load_or_empty_livery_1_2_flipped { loaded: [ athena_ss_doors_closed_livery_1_2_flipped, ]; loading: [ athena_ss_doors_open_livery_1_2_flipped, ]; } spritegroup athena_sg_full_load_livery_1_2_flipped { loaded: [ athena_ss_doors_closed_livery_1_2_flipped, ]; loading: [ athena_ss_doors_closed_livery_1_2_flipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_1_2_flipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_1_2_flipped; return athena_sg_full_load_livery_1_2_flipped; } spritegroup athena_sg_part_load_or_empty_livery_2_2_flipped { loaded: [ athena_ss_doors_closed_livery_2_2_flipped, ]; loading: [ athena_ss_doors_open_livery_2_2_flipped, ]; } spritegroup athena_sg_full_load_livery_2_2_flipped { loaded: [ athena_ss_doors_closed_livery_2_2_flipped, ]; loading: [ athena_ss_doors_closed_livery_2_2_flipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_2_2_flipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_2_2_flipped; return athena_sg_full_load_livery_2_2_flipped; } spriteset(athena_ss_pantographs_down_2_flipped, "generated/graphics/athena_pantographs_down.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 120) } spriteset(athena_ss_pantographs_up_2_flipped, "generated/graphics/athena_pantographs_up.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 120) } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_2_flipped, current_railtype) { ELRL: return athena_ss_pantographs_up_2_flipped; return athena_ss_pantographs_down_2_flipped; } // handle user flipped state switch (FEAT_TRAINS, SELF, athena_switch_graphics_livery_1_2, vehicle_is_flipped) { 1: return athena_switch_graphics_percent_loaded_livery_2_2_flipped; return athena_switch_graphics_percent_loaded_livery_1_2_unflipped; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_livery_2_2, vehicle_is_flipped) { 1: return athena_switch_graphics_percent_loaded_livery_1_2_flipped; return athena_switch_graphics_percent_loaded_livery_2_2_unflipped; } switch (FEAT_TRAINS, PARENT, athena_switch_graphics_engine_id_2, vehicle_type_id) { lark: return athena_switch_graphics_livery_2_2; merrylegs: return athena_switch_graphics_livery_2_2; proper_job: return athena_switch_graphics_livery_2_2; shoebox: return athena_switch_graphics_livery_2_2; super_shoebox: return athena_switch_graphics_livery_2_2; ultra_shoebox: return athena_switch_graphics_livery_2_2; hurly_burly: return athena_switch_graphics_livery_2_2; moor_gallop: return athena_switch_graphics_livery_2_2; roarer: return athena_switch_graphics_livery_2_2; screamer: return athena_switch_graphics_livery_2_2; sizzler: return athena_switch_graphics_livery_2_2; athena: return athena_switch_graphics_livery_2_2; geronimo: return athena_switch_graphics_livery_2_2; breeze: return athena_switch_graphics_livery_2_2; zeus: return athena_switch_graphics_livery_2_2; ares: return athena_switch_graphics_livery_2_2; dover: return athena_switch_graphics_livery_2_2; jupiter: return athena_switch_graphics_livery_2_2; pylon: return athena_switch_graphics_livery_2_2; return athena_switch_graphics_livery_1_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_2, vehicle_is_flipped) { 1: return athena_switch_graphics_pantographs_2_flipped; return athena_switch_graphics_pantographs_2_unflipped; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_vehicle_layers_2, getbits(extra_callback_info1, 8, 8)) { 0: return athena_switch_graphics_engine_id_2; 1: return athena_switch_graphics_pantographs_2; } spriteset(athena_ss_doors_closed_livery_1_3_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 360) } spriteset(athena_ss_doors_open_livery_1_3_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 360 + 30) } spriteset(athena_ss_doors_closed_livery_2_3_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 360 + 60) } spriteset(athena_ss_doors_open_livery_2_3_unflipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 360 + 90) } spritegroup athena_sg_part_load_or_empty_livery_1_3_unflipped { loaded: [ athena_ss_doors_closed_livery_1_3_unflipped, ]; loading: [ athena_ss_doors_open_livery_1_3_unflipped, ]; } spritegroup athena_sg_full_load_livery_1_3_unflipped { loaded: [ athena_ss_doors_closed_livery_1_3_unflipped, ]; loading: [ athena_ss_doors_closed_livery_1_3_unflipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_1_3_unflipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_1_3_unflipped; return athena_sg_full_load_livery_1_3_unflipped; } spritegroup athena_sg_part_load_or_empty_livery_2_3_unflipped { loaded: [ athena_ss_doors_closed_livery_2_3_unflipped, ]; loading: [ athena_ss_doors_open_livery_2_3_unflipped, ]; } spritegroup athena_sg_full_load_livery_2_3_unflipped { loaded: [ athena_ss_doors_closed_livery_2_3_unflipped, ]; loading: [ athena_ss_doors_closed_livery_2_3_unflipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_2_3_unflipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_2_3_unflipped; return athena_sg_full_load_livery_2_3_unflipped; } spriteset(athena_ss_pantographs_down_3_unflipped, "generated/graphics/athena_pantographs_down.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 180) } spriteset(athena_ss_pantographs_up_3_unflipped, "generated/graphics/athena_pantographs_up.png") { spriteset_template_asymmetric_unreversed_athena_unflipped(10 + 180) } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_3_unflipped, current_railtype) { ELRL: return athena_ss_pantographs_up_3_unflipped; return athena_ss_pantographs_down_3_unflipped; } spriteset(athena_ss_doors_closed_livery_1_3_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 360) } spriteset(athena_ss_doors_open_livery_1_3_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 360 + 30) } spriteset(athena_ss_doors_closed_livery_2_3_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 360 + 60) } spriteset(athena_ss_doors_open_livery_2_3_flipped, "generated/graphics/athena.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 360 + 90) } spritegroup athena_sg_part_load_or_empty_livery_1_3_flipped { loaded: [ athena_ss_doors_closed_livery_1_3_flipped, ]; loading: [ athena_ss_doors_open_livery_1_3_flipped, ]; } spritegroup athena_sg_full_load_livery_1_3_flipped { loaded: [ athena_ss_doors_closed_livery_1_3_flipped, ]; loading: [ athena_ss_doors_closed_livery_1_3_flipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_1_3_flipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_1_3_flipped; return athena_sg_full_load_livery_1_3_flipped; } spritegroup athena_sg_part_load_or_empty_livery_2_3_flipped { loaded: [ athena_ss_doors_closed_livery_2_3_flipped, ]; loading: [ athena_ss_doors_open_livery_2_3_flipped, ]; } spritegroup athena_sg_full_load_livery_2_3_flipped { loaded: [ athena_ss_doors_closed_livery_2_3_flipped, ]; loading: [ athena_ss_doors_closed_livery_2_3_flipped, ]; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_percent_loaded_livery_2_3_flipped, cargo_count*100/cargo_capacity) { 0..99: return athena_sg_part_load_or_empty_livery_2_3_flipped; return athena_sg_full_load_livery_2_3_flipped; } spriteset(athena_ss_pantographs_down_3_flipped, "generated/graphics/athena_pantographs_down.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 180) } spriteset(athena_ss_pantographs_up_3_flipped, "generated/graphics/athena_pantographs_up.png") { spriteset_template_asymmetric_reversed_athena_flipped(10 + 180) } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_3_flipped, current_railtype) { ELRL: return athena_ss_pantographs_up_3_flipped; return athena_ss_pantographs_down_3_flipped; } // handle user flipped state switch (FEAT_TRAINS, SELF, athena_switch_graphics_livery_1_3, vehicle_is_flipped) { 1: return athena_switch_graphics_percent_loaded_livery_2_3_flipped; return athena_switch_graphics_percent_loaded_livery_1_3_unflipped; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_livery_2_3, vehicle_is_flipped) { 1: return athena_switch_graphics_percent_loaded_livery_1_3_flipped; return athena_switch_graphics_percent_loaded_livery_2_3_unflipped; } switch (FEAT_TRAINS, PARENT, athena_switch_graphics_engine_id_3, vehicle_type_id) { lark: return athena_switch_graphics_livery_2_3; merrylegs: return athena_switch_graphics_livery_2_3; proper_job: return athena_switch_graphics_livery_2_3; shoebox: return athena_switch_graphics_livery_2_3; super_shoebox: return athena_switch_graphics_livery_2_3; ultra_shoebox: return athena_switch_graphics_livery_2_3; hurly_burly: return athena_switch_graphics_livery_2_3; moor_gallop: return athena_switch_graphics_livery_2_3; roarer: return athena_switch_graphics_livery_2_3; screamer: return athena_switch_graphics_livery_2_3; sizzler: return athena_switch_graphics_livery_2_3; athena: return athena_switch_graphics_livery_2_3; geronimo: return athena_switch_graphics_livery_2_3; breeze: return athena_switch_graphics_livery_2_3; zeus: return athena_switch_graphics_livery_2_3; ares: return athena_switch_graphics_livery_2_3; dover: return athena_switch_graphics_livery_2_3; jupiter: return athena_switch_graphics_livery_2_3; pylon: return athena_switch_graphics_livery_2_3; return athena_switch_graphics_livery_1_3; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_pantographs_3, vehicle_is_flipped) { 1: return athena_switch_graphics_pantographs_3_flipped; return athena_switch_graphics_pantographs_3_unflipped; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_vehicle_layers_3, getbits(extra_callback_info1, 8, 8)) { 0: return athena_switch_graphics_engine_id_3; 1: return athena_switch_graphics_pantographs_3; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_1_DFLT, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_0; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_2_DFLT, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_3_DFLT, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; 1: return athena_switch_graphics_vehicle_layers_3; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_4_DFLT, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; 1: return athena_switch_graphics_vehicle_layers_2; 2: return athena_switch_graphics_vehicle_layers_1; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_5_DFLT, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; 1: return athena_switch_graphics_vehicle_layers_3; 2: return athena_switch_graphics_vehicle_layers_2; 3: return athena_switch_graphics_vehicle_layers_1; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_6_DFLT, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; 1: return athena_switch_graphics_vehicle_layers_3; 2: return athena_switch_graphics_vehicle_layers_2; 3: return athena_switch_graphics_vehicle_layers_1; 4: return athena_switch_graphics_vehicle_layers_3; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_less_than_6_remaining_DFLT, num_vehs_in_vehid_chain % 6) { 1: return athena_switch_graphics_modulo_num_units_in_consist_1_DFLT; 2: return athena_switch_graphics_modulo_num_units_in_consist_2_DFLT; 3: return athena_switch_graphics_modulo_num_units_in_consist_3_DFLT; 4: return athena_switch_graphics_modulo_num_units_in_consist_4_DFLT; 5: return athena_switch_graphics_modulo_num_units_in_consist_5_DFLT; return athena_switch_graphics_modulo_num_units_in_consist_6_DFLT; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_position_in_consist_entry_point_DFLT, position_in_vehid_chain >= (num_vehs_in_vehid_chain - (num_vehs_in_vehid_chain % 6))) { 1: return athena_switch_graphics_less_than_6_remaining_DFLT; return athena_switch_graphics_modulo_num_units_in_consist_6_DFLT; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_1_PASS, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_0; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_2_PASS, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_3_PASS, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; 1: return athena_switch_graphics_vehicle_layers_3; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_4_PASS, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; 1: return athena_switch_graphics_vehicle_layers_2; 2: return athena_switch_graphics_vehicle_layers_1; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_5_PASS, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; 1: return athena_switch_graphics_vehicle_layers_3; 2: return athena_switch_graphics_vehicle_layers_2; 3: return athena_switch_graphics_vehicle_layers_1; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_modulo_num_units_in_consist_6_PASS, position_in_vehid_chain % 6) { 0: return athena_switch_graphics_vehicle_layers_1; 1: return athena_switch_graphics_vehicle_layers_3; 2: return athena_switch_graphics_vehicle_layers_2; 3: return athena_switch_graphics_vehicle_layers_1; 4: return athena_switch_graphics_vehicle_layers_3; return athena_switch_graphics_vehicle_layers_2; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_less_than_6_remaining_PASS, num_vehs_in_vehid_chain % 6) { 1: return athena_switch_graphics_modulo_num_units_in_consist_1_PASS; 2: return athena_switch_graphics_modulo_num_units_in_consist_2_PASS; 3: return athena_switch_graphics_modulo_num_units_in_consist_3_PASS; 4: return athena_switch_graphics_modulo_num_units_in_consist_4_PASS; 5: return athena_switch_graphics_modulo_num_units_in_consist_5_PASS; return athena_switch_graphics_modulo_num_units_in_consist_6_PASS; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_position_in_consist_entry_point_PASS, position_in_vehid_chain >= (num_vehs_in_vehid_chain - (num_vehs_in_vehid_chain % 6))) { 1: return athena_switch_graphics_less_than_6_remaining_PASS; return athena_switch_graphics_modulo_num_units_in_consist_6_PASS; } switch (FEAT_TRAINS, PARENT, athena_switch_graphics_vehicle, most_common_cargo_type) { PASS: return athena_switch_graphics_position_in_consist_entry_point_PASS; return athena_switch_graphics_position_in_consist_entry_point_DFLT; } // buy menu graphics chain spriteset(athena_ss_vehicle_purchase, "generated/graphics/athena.png") { spriteset_template_purchase_athena(10 + 60) } spriteset(athena_ss_pantograph_purchase, "generated/graphics/athena_pantographs_down.png") { spriteset_template_purchase_athena(10) } switch (FEAT_TRAINS, SELF, athena_switch_set_layers_register_more_sprites_purchase, STORE_TEMP(CB_FLAG_MORE_SPRITES | PALETTE_USE_DEFAULT, 0x100)) { return athena_ss_vehicle_purchase; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_purchase, getbits(extra_callback_info1, 8, 8)) { 0: return athena_switch_set_layers_register_more_sprites_purchase; 1: return athena_ss_pantograph_purchase; } switch (FEAT_TRAINS, SELF, athena_switch_set_layers_register_more_sprites, STORE_TEMP(CB_FLAG_MORE_SPRITES | PALETTE_USE_DEFAULT, 0x100)) { return athena_switch_graphics_vehicle; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_rear_light, position_in_consist_from_end) { 0: return ss_rear_light_32px; return ss_rear_light_empty; } switch (FEAT_TRAINS, SELF, athena_switch_graphics_layer_rear_light, STORE_TEMP(PALETTE_USE_DEFAULT, 0x100)) { return athena_switch_graphics_rear_light; } switch (FEAT_TRAINS, SELF, athena_switch_graphics, getbits(extra_callback_info1, 8, 8)) { 0: return athena_switch_set_layers_register_more_sprites; 1: return athena_switch_set_layers_register_more_sprites; return athena_switch_graphics_layer_rear_light; } // -- capacity determined according to specific labels that might need to be handled, and otherwise cargo class -- // switch (FEAT_TRAINS, SELF, athena_switch_cargo_capacity_by_cargo_0, cargo_classes & bitmask(CC_PASSENGERS, CC_MAIL, CC_ARMOURED)) { bitmask(CC_MAIL): return 54; bitmask(CC_ARMOURED): return 54; return 27; } switch (FEAT_TRAINS, SELF, athena_switch_cargo_capacity_by_cargo_1, cargo_classes & bitmask(CC_PASSENGERS, CC_MAIL, CC_ARMOURED)) { bitmask(CC_MAIL): return 80; bitmask(CC_ARMOURED): return 80; return 40; } switch (FEAT_TRAINS, SELF, athena_switch_cargo_capacity_by_cargo_2, cargo_classes & bitmask(CC_PASSENGERS, CC_MAIL, CC_ARMOURED)) { bitmask(CC_MAIL): return 108; bitmask(CC_ARMOURED): return 108; return 54; } switch (FEAT_TRAINS, SELF, athena_switch_cargo_capacity, param[0]) { 0: athena_switch_cargo_capacity_by_cargo_0; 1: athena_switch_cargo_capacity_by_cargo_1; 2: athena_switch_cargo_capacity_by_cargo_2; } // -- loading speed also determined by capacity, which varies by cargo -- // switch (FEAT_TRAINS, SELF, athena_switch_loading_speed_by_cargo_0, cargo_classes & bitmask(CC_PASSENGERS, CC_MAIL, CC_ARMOURED)) { bitmask(CC_PASSENGERS): return 5; bitmask(CC_MAIL): return 5; bitmask(CC_ARMOURED): return 5; return 5; } switch (FEAT_TRAINS, SELF, athena_switch_loading_speed_by_cargo_1, cargo_classes & bitmask(CC_PASSENGERS, CC_MAIL, CC_ARMOURED)) { bitmask(CC_PASSENGERS): return 7; bitmask(CC_MAIL): return 7; bitmask(CC_ARMOURED): return 7; return 7; } switch (FEAT_TRAINS, SELF, athena_switch_loading_speed_by_cargo_2, cargo_classes & bitmask(CC_PASSENGERS, CC_MAIL, CC_ARMOURED)) { bitmask(CC_PASSENGERS): return 9; bitmask(CC_MAIL): return 9; bitmask(CC_ARMOURED): return 9; return 9; } switch (FEAT_TRAINS, SELF, athena_switch_loading_speed, param[0]) { 0: athena_switch_loading_speed_by_cargo_0; 1: athena_switch_loading_speed_by_cargo_1; 2: athena_switch_loading_speed_by_cargo_2; } // -- smoke etc -- // switch (FEAT_TRAINS, SELF, athena_switch_visual_effect_and_powered_by_variant_unreversed, current_railtype) { return visual_effect_and_powered(VISUAL_EFFECT_ELECTRIC, 0, DISABLE_WAGON_POWER); } switch (FEAT_TRAINS, PARENT, athena_switch_speed_21, [count_veh_id(sizzler) > 0]) { 1: return 144; return 96; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_20, [count_veh_id(screamer) > 0]) { 1: return 144; return athena_switch_speed_21; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_19, [count_veh_id(roarer) > 0]) { 1: return 144; return athena_switch_speed_20; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_18, [count_veh_id(moor_gallop) > 0]) { 1: return 144; return athena_switch_speed_19; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_17, [count_veh_id(hurly_burly) > 0]) { 1: return 144; return athena_switch_speed_18; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_16, [count_veh_id(turtle) > 0]) { 1: return 144; return athena_switch_speed_17; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_15, [count_veh_id(thunderbird) > 0]) { 1: return 144; return athena_switch_speed_16; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_14, [count_veh_id(dragon) > 0]) { 1: return 144; return athena_switch_speed_15; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_13, [count_veh_id(pegasus) > 0]) { 1: return 144; return athena_switch_speed_14; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_12, [count_veh_id(upcountry) > 0]) { 1: return 144; return athena_switch_speed_13; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_11, [count_veh_id(shredder) > 0]) { 1: return 144; return athena_switch_speed_12; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_10, [count_veh_id(griffon) > 0]) { 1: return 144; return athena_switch_speed_11; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_9, [count_veh_id(kelpie) > 0]) { 1: return 144; return athena_switch_speed_10; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_8, [count_veh_id(tencendur) > 0]) { 1: return 144; return athena_switch_speed_9; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_7, [count_veh_id(carrack) > 0]) { 1: return 144; return athena_switch_speed_8; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_6, [count_veh_id(spinner) > 0]) { 1: return 144; return athena_switch_speed_7; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_5, [count_veh_id(ultra_shoebox) > 0]) { 1: return 144; return athena_switch_speed_6; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_4, [count_veh_id(super_shoebox) > 0]) { 1: return 144; return athena_switch_speed_5; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_3, [count_veh_id(shoebox) > 0]) { 1: return 144; return athena_switch_speed_4; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_2, [count_veh_id(proper_job) > 0]) { 1: return 144; return athena_switch_speed_3; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_1, [count_veh_id(merrylegs) > 0]) { 1: return 144; return athena_switch_speed_2; } switch (FEAT_TRAINS, PARENT, athena_switch_speed_0, [count_veh_id(lark) > 0]) { 1: return 144; return athena_switch_speed_1; } item(FEAT_TRAINS, athena, 2150) { property { name: string(STR_NAME_CONSIST_PARENTHESES, string(STR_NAME_athena), 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(1927,01,01); // consist just supplies intro year - openttd randomises intro dates a bit anyway cargo_capacity: 40; sprite_id: SPRITE_ID_NEW_TRAIN; //enable new graphics - nml constant power: 350hp; speed: 60mph; weight: 32ton; tractive_effort_coefficient: 0.3; cost_factor: 0; // use the CB to set this, the prop is capped to max 255, cb is 32k running_cost_base: RUNNING_COST_STEAM; 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(CC_PASSENGERS); 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: 56; default_cargo_type: PASS; misc_flags: bitmask(TRAIN_FLAG_2CC,TRAIN_FLAG_SPRITE_STACK,TRAIN_FLAG_FLIP,TRAIN_FLAG_AUTOREFIT,TRAIN_FLAG_MU); // nml constants model_life: 30; retire_early: -10; reliability_decay: 20; // default value vehicle_life: 40; length: 8; track_type: ELRL; } graphics { default: athena_switch_graphics; purchase: athena_switch_graphics_purchase; cost_factor: 25; // CB used as it is capped to max 32k, prop is only 255 running_cost_factor: 803; // CB used as it is capped to max 32k, prop is only 255 cargo_capacity: athena_switch_cargo_capacity; purchase_cargo_capacity: athena_switch_cargo_capacity; loading_speed: athena_switch_loading_speed; speed: athena_switch_speed_0; purchase_speed: 96; visual_effect_and_powered: athena_switch_visual_effect_and_powered_by_variant_unreversed; additional_text: string(STR_SPRITES_COMPLETE); } } if (param[1]==0) { item(FEAT_TRAINS, athena, 2150) { property { climates_available: ALL_CLIMATES; } } } // -- end 2150 --