// 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 --