From 5fd0cd811e8cdcd3f508a4375147e5c56b05fa59 Mon Sep 17 00:00:00 2001 From: Jon Date: Sat, 30 Mar 2024 02:03:33 +0000 Subject: [PATCH] Most changes for RMTPO and BR47 to work in push pull (length needs changing to 8) --- gfx/freight/RM_TPO.png | Bin 12920 -> 14901 bytes src/trains/_spriteset/Diesel_Sprites/47.pnml | 97 +++++++++++++++++ src/trains/_spriteset/PushPull.pnml | 24 +++++ .../Rolling Stock_Sprites/Mk4DVT.pnml | 2 +- .../Rolling Stock_Sprites/RM_TPO.pnml | 34 ++++++ src/trains/diesel/BR047.pnml | 102 ++---------------- src/trains/rollingstock/RM_TPO.pnml | 38 ++----- 7 files changed, 178 insertions(+), 119 deletions(-) create mode 100644 src/trains/_spriteset/Diesel_Sprites/47.pnml create mode 100644 src/trains/_spriteset/Rolling Stock_Sprites/RM_TPO.pnml diff --git a/gfx/freight/RM_TPO.png b/gfx/freight/RM_TPO.png index b73f75ff32e307b8379da20ab1fa07e9e178bacd..5386735c78c60a3b234a1b771c230f5982322bc7 100644 GIT binary patch delta 14002 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 x-FKHI~e*lF+(2)QD delta 11992 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 diff --git a/src/trains/_spriteset/Diesel_Sprites/47.pnml b/src/trains/_spriteset/Diesel_Sprites/47.pnml new file mode 100644 index 00000000..89581b21 --- /dev/null +++ b/src/trains/_spriteset/Diesel_Sprites/47.pnml @@ -0,0 +1,97 @@ +spriteset(spriteset_BR47_Purchase, "gfx/BR47_BR57.png") { + template_purchase(0, 0) +} + +spriteset(spriteset_BR47_BRGreen, "gfx/BR47_BR57.png") { + template_train32px(0, 463) +} + +spriteset(spriteset_BR47_BRBlue, "gfx/BR47_BR57.png") { + template_train32px(0, 13) +} + +spriteset(spriteset_BR47_Porterbrook, "gfx/BR47_BR57.png") { + template_train32px(0, 38) +} + +spriteset(spriteset_BR47_EWS, "gfx/BR47_BR57.png") { + template_train32px(0, 63) +} + +spriteset(spriteset_BR47_BRLLogo, "gfx/BR47_BR57.png") { + template_train32px(0, 113) +} + +spriteset(spriteset_BR47_BRLLogoAlt, "gfx/BR47_BR57.png") { + template_train32px(0, 88) +} + +spriteset(spriteset_BR47_Anglia, "gfx/BR47_BR57.png") { + template_train32px(0, 138) +} + +spriteset(spriteset_BR47_Intercity, "gfx/BR47_BR57.png") { + template_train32px(0, 163) +} + +spriteset(spriteset_BR47_WCRC, "gfx/BR47_BR57.png") { + template_train32px(0, 238) +} + +spriteset(spriteset_BR47_GWR, "gfx/BR47_BR57.png") { + template_train32px(0, 313) +} + +spriteset(spriteset_BR47_Virgin, "gfx/BR47_BR57.png") { + template_train32px(0, 513) +} + +spriteset(spriteset_BR47_Colas, "gfx/BR47_BR57.png") { + template_train32px(0, 538) +} + +spriteset(spriteset_BR47_One, "gfx/BR47_BR57.png") { + template_train32px(0, 263) +} + +spriteset(spriteset_BR47_Freightliner, "gfx/BR47_BR57.png") { + template_train32px(0, 213) +} + +// This switch called when displaying as this locomotive +// WARNING: If editing this, also edit PushPull.pnml in the Spritesets folder +switch(FEAT_TRAINS,SELF, sw_BR47,cargo_subtype){ + 0: spriteset_BR47_BRGreen; + 1: spriteset_BR47_BRBlue; + 2: spriteset_BR47_Porterbrook; + 3: spriteset_BR47_EWS; + 4: spriteset_BR47_BRLLogo; + 5: spriteset_BR47_BRLLogoAlt; + 6: spriteset_BR47_Anglia; + 7: spriteset_BR47_Intercity; + 8: spriteset_BR47_WCRC; + 9: spriteset_BR47_GWR; + 10: spriteset_BR47_Virgin; + 11: spriteset_BR47_Colas; + 12: spriteset_BR47_One; + 13: spriteset_BR47_Freightliner; + return CB_RESULT_NO_TEXT; +} + +switch(FEAT_TRAINS,SELF,sw_BR47_cargo_subtype_text,cargo_subtype){ + 0: return string(str_BRGreen); + 1: return string(str_BRBlue); + 2: return string(str_Purple); + 3: return string(str_EWSCentre); + 4: return string(str_BRLLogo); + 5: return string(str_BRLLogoAlt); + 6: return string(str_Anglia); + 7: return string(str_Intercity); + 8: return string(str_WCRC); + 9: return string(str_GWRGreen); + 10: return string(str_Virgin); + 11: return string(str_ColasRail); + 12: return string(str_One); + 13: return string(str_Freightliner); + return CB_RESULT_NO_TEXT; +} \ No newline at end of file diff --git a/src/trains/_spriteset/PushPull.pnml b/src/trains/_spriteset/PushPull.pnml index 65855214..5f7973c6 100644 --- a/src/trains/_spriteset/PushPull.pnml +++ b/src/trains/_spriteset/PushPull.pnml @@ -30,6 +30,30 @@ switch(FEAT_TRAINS, PARENT, sw_PUSHPULL_LocomotiveAsMk4DVT, [STORE_TEMP(num_vehs spriteset_BR91_IntercitySwallowr; } +// Not a mirror for once, as RMTPO PCV only has one livery +switch(FEAT_TRAINS, PARENT, sw_PUSHPULL_LocomotiveAsRMTPO, [STORE_TEMP(num_vehs_in_consist - 1, 0x10F), var[0x61, 0, 0x0000FFFF, 0xF2]]){ + spriteset_RMTPO_PCVr; +} + +// Mirror of BR47 +switch(FEAT_TRAINS, PARENT, sw_PUSHPULL_DMSOasBR47,cargo_subtype){ + 0: spriteset_BR47_BRGreen; + 1: spriteset_BR47_BRBlue; + 2: spriteset_BR47_Porterbrook; + 3: spriteset_BR47_EWS; + 4: spriteset_BR47_BRLLogo; + 5: spriteset_BR47_BRLLogoAlt; + 6: spriteset_BR47_Anglia; + 7: spriteset_BR47_Intercity; + 8: spriteset_BR47_WCRC; + 9: spriteset_BR47_GWR; + 10: spriteset_BR47_Virgin; + 11: spriteset_BR47_Colas; + 12: spriteset_BR47_One; + 13: spriteset_BR47_Freightliner; + return CB_RESULT_NO_TEXT; +} + // Mirror of BR67 switch(FEAT_TRAINS, PARENT, sw_PUSHPULL_DVTasBR67,cargo_subtype){ 0: spriteset_BR67_EWS; diff --git a/src/trains/_spriteset/Rolling Stock_Sprites/Mk4DVT.pnml b/src/trains/_spriteset/Rolling Stock_Sprites/Mk4DVT.pnml index 6d4fab36..8f7c0542 100644 --- a/src/trains/_spriteset/Rolling Stock_Sprites/Mk4DVT.pnml +++ b/src/trains/_spriteset/Rolling Stock_Sprites/Mk4DVT.pnml @@ -63,7 +63,7 @@ switch(FEAT_TRAINS, PARENT, sw_BRMk4DVT_PushPUll, [STORE_TEMP(0 - position_in_ar sw_BRMk4DVT; // No compatible locomotive found, show normal sprites } -switch(FEAT_TRAINS,PARENT,sw_BRMk4DVT_CheckPosition, position_in_articulated_veh_from_end){ +switch(FEAT_TRAINS, SELF,sw_BRMk4DVT_CheckPosition, position_in_articulated_veh_from_end){ 0: sw_BRMk4DVT_PushPUll; // Attempt push pull sw_BRMk4DVT; // We aren't at the back of theconsist, show normal sprites } diff --git a/src/trains/_spriteset/Rolling Stock_Sprites/RM_TPO.pnml b/src/trains/_spriteset/Rolling Stock_Sprites/RM_TPO.pnml new file mode 100644 index 00000000..0ddc68a8 --- /dev/null +++ b/src/trains/_spriteset/Rolling Stock_Sprites/RM_TPO.pnml @@ -0,0 +1,34 @@ +spriteset(spriteset_RMTPO_Purchase, "gfx/freight/RM_TPO.png") { + template_purchase(0, 0) +} + +spriteset(spriteset_RMTPO_NoDoors, "gfx/freight/RM_TPO.png") { + template_train28px(0, 13) +} +spriteset(spriteset_RMTPO_2Door, "gfx/freight/RM_TPO.png") { + template_train28px(0, 36) +} +spriteset(spriteset_RMTPO_3Door, "gfx/freight/RM_TPO.png") { + template_train28px(0, 59) +} + +spriteset(spriteset_RMTPO_PCV, "gfx/freight/RM_TPO.png") { + template_train28px(0, 82) +} + +spriteset(spriteset_RMTPO_PCVr, "gfx/freight/RM_TPO.png") { + template_train28px(0, 105) +} + +random_switch(FEAT_TRAINS, SELF, sw_RMTPO_Random) +{ + 1: spriteset_RMTPO_NoDoors; + 1: spriteset_RMTPO_2Door; + 1: spriteset_RMTPO_3Door; +} + +switch(FEAT_TRAINS, SELF, sw_RMTPO, position_in_consist_from_end) +{ + 0: spriteset_RMTPO_PCV; + sw_RMTPO_Random; +} \ No newline at end of file diff --git a/src/trains/diesel/BR047.pnml b/src/trains/diesel/BR047.pnml index 07c9658b..e50fe309 100644 --- a/src/trains/diesel/BR047.pnml +++ b/src/trains/diesel/BR047.pnml @@ -1,97 +1,17 @@ -spriteset(spriteset_BR47_Purchase, "gfx/BR47_BR57.png") { - template_purchase(0, 0) +// If the rear of this consist is a compatible Driving Trailer, call that vehicles's remote sprite call switch +switch(FEAT_TRAINS, PARENT, sw_BR47_PushPUll, [STORE_TEMP(num_vehs_in_consist - 1, 0x10F), var[0x61, 0, 0x0000FFFF, 0xC6]]) { + //483: sw_PUSHPULL_LocomotiveAsRMTPO; // Royal Mail TPO, uncommen this line when RMTPO has been changed to length 8 + sw_BR47; // No compatible locomotive found, show normal sprites } -spriteset(spriteset_BR47_BRGreen, "gfx/BR47_BR57.png") { - template_train32px(0, 463) +switch(FEAT_TRAINS, SELF,sw_BR47_CheckPosition, position_in_consist){ + 0: sw_BR47_PushPUll; // Attempt push pull + sw_BR47; // We aren't at the front of the consist, show normal sprites } -spriteset(spriteset_BR47_BRBlue, "gfx/BR47_BR57.png") { - template_train32px(0, 13) -} - -spriteset(spriteset_BR47_Porterbrook, "gfx/BR47_BR57.png") { - template_train32px(0, 38) -} - -spriteset(spriteset_BR47_EWS, "gfx/BR47_BR57.png") { - template_train32px(0, 63) -} - -spriteset(spriteset_BR47_BRLLogo, "gfx/BR47_BR57.png") { - template_train32px(0, 113) -} - -spriteset(spriteset_BR47_BRLLogoAlt, "gfx/BR47_BR57.png") { - template_train32px(0, 88) -} - -spriteset(spriteset_BR47_Anglia, "gfx/BR47_BR57.png") { - template_train32px(0, 138) -} - -spriteset(spriteset_BR47_Intercity, "gfx/BR47_BR57.png") { - template_train32px(0, 163) -} - -spriteset(spriteset_BR47_WCRC, "gfx/BR47_BR57.png") { - template_train32px(0, 238) -} - -spriteset(spriteset_BR47_GWR, "gfx/BR47_BR57.png") { - template_train32px(0, 313) -} - -spriteset(spriteset_BR47_Virgin, "gfx/BR47_BR57.png") { - template_train32px(0, 513) -} - -spriteset(spriteset_BR47_Colas, "gfx/BR47_BR57.png") { - template_train32px(0, 538) -} - -spriteset(spriteset_BR47_One, "gfx/BR47_BR57.png") { - template_train32px(0, 263) -} - -spriteset(spriteset_BR47_Freightliner, "gfx/BR47_BR57.png") { - template_train32px(0, 213) -} - -switch(FEAT_TRAINS,SELF, sw_BR47,cargo_subtype){ - 0: spriteset_BR47_BRGreen; - 1: spriteset_BR47_BRBlue; - 2: spriteset_BR47_Porterbrook; - 3: spriteset_BR47_EWS; - 4: spriteset_BR47_BRLLogo; - 5: spriteset_BR47_BRLLogoAlt; - 6: spriteset_BR47_Anglia; - 7: spriteset_BR47_Intercity; - 8: spriteset_BR47_WCRC; - 9: spriteset_BR47_GWR; - 10: spriteset_BR47_Virgin; - 11: spriteset_BR47_Colas; - 12: spriteset_BR47_One; - 13: spriteset_BR47_Freightliner; - return CB_RESULT_NO_TEXT; -} - -switch(FEAT_TRAINS,SELF,sw_BR47_cargo_subtype_text,cargo_subtype){ - 0: return string(str_BRGreen); - 1: return string(str_BRBlue); - 2: return string(str_Purple); - 3: return string(str_EWSCentre); - 4: return string(str_BRLLogo); - 5: return string(str_BRLLogoAlt); - 6: return string(str_Anglia); - 7: return string(str_Intercity); - 8: return string(str_WCRC); - 9: return string(str_GWRGreen); - 10: return string(str_Virgin); - 11: return string(str_ColasRail); - 12: return string(str_One); - 13: return string(str_Freightliner); - return CB_RESULT_NO_TEXT; +switch(FEAT_TRAINS,PARENT,sw_BR47_Sprites ,vehicle_is_reversed){ + 0: sw_BR47; // We're heading foward, show normal sprites + 1: sw_BR47_CheckPosition; // Attempt push pull } item (FEAT_TRAINS, item_BR47, 440) { @@ -133,7 +53,7 @@ item (FEAT_TRAINS, item_BR47, 440) { can_attach_wagon: CB_RESULT_ATTACH_ALLOW; cargo_capacity: return 0; cargo_subtype_text: sw_BR47_cargo_subtype_text; - default: sw_BR47; + default: sw_BR47_Sprites; purchase: spriteset_BR47_Purchase; colour_mapping: return PALETTE_CC_FIRST; create_effect: diesel_create_visual_effect; diff --git a/src/trains/rollingstock/RM_TPO.pnml b/src/trains/rollingstock/RM_TPO.pnml index 0d4d85b1..220bc79c 100644 --- a/src/trains/rollingstock/RM_TPO.pnml +++ b/src/trains/rollingstock/RM_TPO.pnml @@ -1,35 +1,19 @@ -spriteset(spriteset_RMTPO_Purchase, "gfx/freight/RM_TPO.png") { - template_purchase(0, 0) +// If the front of this consist is a compatible locomotive, call that locomotive's remote sprite call switch +switch(FEAT_TRAINS, PARENT, sw_RMTPO_PushPUll, [STORE_TEMP(0 - position_in_articulated_veh, 0x10F), var[0x61, 0, 0x0000FFFF, 0xC6]]) { + 440: sw_PUSHPULL_DMSOasBR47; // Class 47 + sw_RMTPO; // No compatible locomotive found, show normal sprites } -spriteset(spriteset_RMTPO_NoDoors, "gfx/freight/RM_TPO.png") { - template_train28px(0, 13) -} -spriteset(spriteset_RMTPO_2Door, "gfx/freight/RM_TPO.png") { - template_train28px(0, 36) -} -spriteset(spriteset_RMTPO_3Door, "gfx/freight/RM_TPO.png") { - template_train28px(0, 59) -} - -spriteset(spriteset_RMTPO_PCV, "gfx/freight/RM_TPO.png") { - template_train28px(0, 82) +switch(FEAT_TRAINS, PARENT, sw_RMTPO_CheckDirection,vehicle_is_reversed){ + 0: sw_RMTPO; // We're heading foward, show normal sprites + 1: sw_RMTPO_PushPUll; // Attempt push pull (skipping check position for now for testing) } -random_switch(FEAT_TRAINS, SELF, sw_RMTPO_Random) -{ - 1: spriteset_RMTPO_NoDoors; - 1: spriteset_RMTPO_2Door; - 1: spriteset_RMTPO_3Door; +switch(FEAT_TRAINS, SELF, sw_RMTPO_Sprites, position_in_consist_from_end){ + 0: sw_RMTPO_CheckDirection; // Attempt push pull + sw_RMTPO_Random; // We aren't at the back of theconsist, show normal sprites } -switch(FEAT_TRAINS, SELF, sw_RMTPO, position_in_consist_from_end) -{ - 0: spriteset_RMTPO_PCV; - sw_RMTPO_Random; -} - - item (FEAT_TRAINS, item_RMTPO, 483) { property { name: string(STR_NAME_RMTPO); @@ -54,7 +38,7 @@ item (FEAT_TRAINS, item_RMTPO, 483) { graphics { additional_text: return(string(str_purchase_coach,string(str_RMTPO_liveries))); can_attach_wagon: CB_RESULT_ATTACH_ALLOW; - default: sw_RMTPO; + default: sw_RMTPO; // Switch to sw_RMTPO_Sprites when length changed to 8 for push pull purchase: spriteset_RMTPO_Purchase; colour_mapping: return PALETTE_CC_FIRST; cargo_capacity: return(50);