// 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; 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; 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; 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; 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_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, 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, 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) } 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; }