From 867657bdf04b3187a0bd5d606c110174c4012edc Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 22 Aug 2024 02:54:38 +0100 Subject: [PATCH] Flip Class 28 (to run Bo-Co) if it's the second vehicle in the consist --- src/templates_trains.pnml | 12 ++++++++++++ src/trains/diesel_loco/28.pnml | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/templates_trains.pnml b/src/templates_trains.pnml index 6613db5..bcf4d06 100644 --- a/src/templates_trains.pnml +++ b/src/templates_trains.pnml @@ -87,6 +87,18 @@ template template_train28px(x,y){ [ x+111, y, 29, 13, -15, -9] //w [ x+141, y, 20, 18, -5, -11] //nw } +// This is NOT just a top-4-bottom-4 swap, note that the X+n offset changes but the offset_x and offset_y do not, unlike on the 32px reversed sprite +template template_train28px_reversed(x,y){ + //left_x, upper_y, width, height, offset_x, offset_y + [ x+81, y, 8, 23, -3, -12] //s as n + [ x+90, y, 20, 18, -11, -12] //sw as ne + [ x+111, y, 29, 13, -16, -9] //w as e + [ x+141, y, 20, 18, -3, -10] //nw as se + [ x, y, 8, 23, -3, -17] //n as s + [ x+9, y, 20, 18, -13, -11] //ne as sw + [ x+30, y, 29, 13, -15, -9] //e as w + [ x+60, y, 20, 18, -5, -11] //se as nw +} template template_train32px(x,y){ //left_x, upper_y, width, height, offset_x, offset_y diff --git a/src/trains/diesel_loco/28.pnml b/src/trains/diesel_loco/28.pnml index 07481de..ecbaf80 100644 --- a/src/trains/diesel_loco/28.pnml +++ b/src/trains/diesel_loco/28.pnml @@ -5,24 +5,39 @@ spriteset(spriteset_BR28_Purchase, "gfx/Diesel/28.png") { spriteset(spriteset_BR28_BRGreen, "gfx/Diesel/28.png") { template_train28px(0, 13) } +spriteset(spriteset_BR28_reversed_BRGreen, "gfx/Diesel/28.png") { + template_train28px_reversed(0, 13) +} spriteset(spriteset_BR28_BRGreenPanel, "gfx/Diesel/28.png") { template_train28px(0, 39) } +spriteset(spriteset_BR28_reversed_BRGreenPanel, "gfx/Diesel/28.png") { + template_train28px_reversed(0, 39) +} spriteset(spriteset_BR28_BRGreenYellow, "gfx/Diesel/28.png") { template_train28px(0, 65) } +spriteset(spriteset_BR28_reversed_BRGreenYellow, "gfx/Diesel/28.png") { + template_train28px_reversed(0, 65) +} spriteset(spriteset_BR28_BRBlue, "gfx/Diesel/28.png") { template_train28px(0, 91) } +spriteset(spriteset_BR28_reversed_BRBlue, "gfx/Diesel/28.png") { + template_train28px_reversed(0, 91) +} spriteset(spriteset_BR28_BRResearch, "gfx/Diesel/28.png") { template_train28px(0, 117) } +spriteset(spriteset_BR28_reversed_BRResearch, "gfx/Diesel/28.png") { + template_train28px_reversed(0, 117) +} -switch(FEAT_TRAINS,SELF, sw_BR28,cargo_subtype){ +switch(FEAT_TRAINS,SELF, sw_BR28_normal,cargo_subtype){ 0: spriteset_BR28_BRGreen; 1: spriteset_BR28_BRGreenPanel; 2: spriteset_BR28_BRGreenYellow; @@ -30,6 +45,21 @@ switch(FEAT_TRAINS,SELF, sw_BR28,cargo_subtype){ 4: spriteset_BR28_BRResearch; } +switch(FEAT_TRAINS,SELF, sw_BR28_reversed,cargo_subtype){ + 0: spriteset_BR28_reversed_BRGreen; + 1: spriteset_BR28_reversed_BRGreenPanel; + 2: spriteset_BR28_reversed_BRGreenYellow; + 3: spriteset_BR28_reversed_BRBlue; + 4: spriteset_BR28_reversed_BRResearch; +} + +// Automatically flip second vehicle +switch(FEAT_TRAINS,SELF, sw_BR28, position_in_consist){ + 1: sw_BR28_reversed; + sw_BR28_normal; +} + + switch(FEAT_TRAINS,SELF,sw_BR28_cargo_subtype_text,cargo_subtype){ 0: return string(str_BRGreen); 1: return string(str_BRGreenPanel); @@ -67,7 +97,7 @@ item (FEAT_TRAINS, item_BR28, 692) { engine_class: ENGINE_CLASS_DIESEL; tractive_effort_coefficient: 0.229; air_drag_coefficient: 0.1; - length: 5; + length: 7; effect_spawn_model_and_powered: EFFECT_SPAWN_MODEL_DIESEL; extra_weight_per_wagon: 0; bitmask_vehicle_info: 0;