Skip to content

Commit 1ff3f6e

Browse files
committed
Added Mk3 DVT, added push-pull between BR90 and Mk3DVT
1 parent deb84bb commit 1ff3f6e

File tree

7 files changed

+168
-10
lines changed

7 files changed

+168
-10
lines changed

gfx/BRMk3DVT.png

-3.87 KB
Loading

lang/english.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,6 +1055,9 @@ str_BRMK3DMB_liveries :BR Blue, Intercity Executive, Intercity Swallow, Midlan
10551055
STR_NAME_BRMk3Sleeper :BR Mark 3 Sleeper Coach
10561056
str_BRMk3Sleeper_liveries :BR Blue, Intercity, First Scotrail, Scotrail, Caledonian Sleaper, Great Western, GWR
10571057

1058+
STR_NAME_BRMk3DVT :BR Mark 3 Driving Van Trailer
1059+
str_BRMk3DVT_liveries :Intercity Swallow, Virgin, ONE, Chiltern, Greater Anglia, Transport for Wales, Virgin "Pretendolino", Arriva Wales, Network Rail
1060+
10581061
STR_NAME_BRMK4FO :BR Mark 4 Coach (First Open)
10591062
str_BRMK4FO_liveries :Intercity Swallow, National Express, GNER, East Coast, Virgin East Coast
10601063

src/trains/_spriteset/PushPull.pnml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,19 @@ It is recommended to always include a default...
66

77
*/
88

9+
// Mirror of Mk3DVT
10+
switch(FEAT_TRAINS, PARENT, sw_PUSHPULL_LocomotiveAsMk3DVT, [STORE_TEMP(num_vehs_in_consist - 1, 0x10F), var[0x61, 0, 0x0000FFFF, 0xF2]]){
11+
0: spriteset_BRMk3DVT_IntercitySwallow;
12+
1: spriteset_BRMk3DVT_Virgin;
13+
2: spriteset_BRMk3DVT_ONE;
14+
3: spriteset_BRMk3DVT_Chiltern;
15+
4: spriteset_BRMk3DVT_GA;
16+
5: spriteset_BRMk3DVT_TfW;
17+
6: spriteset_BRMk3DVT_VirginPretendolino;
18+
7: spriteset_BRMk3DVT_ArrivaWales;
19+
8: spriteset_BRMk3DVT_NetworkRail;
20+
}
21+
922
// Mirror of Mk4DVT
1023
switch(FEAT_TRAINS, PARENT, sw_PUSHPULL_LocomotiveAsMk4DVT, [STORE_TEMP(num_vehs_in_consist - 1, 0x10F), var[0x61, 0, 0x0000FFFF, 0xF2]]){
1124
0: spriteset_BR91_IntercitySwallow;
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
spriteset(spriteset_BRMk3DVT_purchase, "gfx/BRMk3DVT.png") {
2+
template_purchase(0, 0)
3+
}
4+
5+
spriteset(spriteset_BRMk3DVT_IntercitySwallow, "gfx/BRMk3DVT.png") {
6+
template_train32px(0, 13)
7+
}
8+
spriteset(spriteset_BRMk3DVT_IntercitySwallow_reversed, "gfx/BRMk3DVT.png") {
9+
template_train32px(0, 38)
10+
}
11+
12+
spriteset(spriteset_BRMk3DVT_Virgin, "gfx/BRMk3DVT.png") {
13+
template_train32px(0, 63)
14+
}
15+
spriteset(spriteset_BRMk3DVT_Virgin_reversed, "gfx/BRMk3DVT.png") {
16+
template_train32px(0, 88)
17+
}
18+
19+
spriteset(spriteset_BRMk3DVT_ONE, "gfx/BRMk3DVT.png") {
20+
template_train32px(0, 113)
21+
}
22+
spriteset(spriteset_BRMk3DVT_ONE_reversed, "gfx/BRMk3DVT.png") {
23+
template_train32px(0, 138)
24+
}
25+
26+
spriteset(spriteset_BRMk3DVT_Chiltern, "gfx/BRMk3DVT.png") {
27+
template_train32px(0, 163)
28+
}
29+
spriteset(spriteset_BRMk3DVT_Chiltern_reversed, "gfx/BRMk3DVT.png") {
30+
template_train32px(0, 188)
31+
}
32+
33+
spriteset(spriteset_BRMk3DVT_GA, "gfx/BRMk3DVT.png") {
34+
template_train32px(0, 213)
35+
}
36+
spriteset(spriteset_BRMk3DVT_GA_reversed, "gfx/BRMk3DVT.png") {
37+
template_train32px(0, 238)
38+
}
39+
40+
spriteset(spriteset_BRMk3DVT_TfW, "gfx/BRMk3DVT.png") {
41+
template_train32px(0, 263)
42+
}
43+
spriteset(spriteset_BRMk3DVT_TfW_reversed, "gfx/BRMk3DVT.png") {
44+
template_train32px(0, 288)
45+
}
46+
47+
spriteset(spriteset_BRMk3DVT_VirginPretendolino, "gfx/BRMk3DVT.png") {
48+
template_train32px(0, 313)
49+
}
50+
spriteset(spriteset_BRMk3DVT_VirginPretendolino_reversed, "gfx/BRMk3DVT.png") {
51+
template_train32px(0, 338)
52+
}
53+
54+
spriteset(spriteset_BRMk3DVT_ArrivaWales, "gfx/BRMk3DVT.png") {
55+
template_train32px(0, 363)
56+
}
57+
spriteset(spriteset_BRMk3DVT_ArrivaWales_reversed, "gfx/BRMk3DVT.png") {
58+
template_train32px(0, 388)
59+
}
60+
61+
spriteset(spriteset_BRMk3DVT_NetworkRail, "gfx/BRMk3DVT.png") {
62+
template_train32px(0, 413)
63+
}
64+
spriteset(spriteset_BRMk3DVT_NetworkRail_reversed, "gfx/BRMk3DVT.png") {
65+
template_train32px(0, 438)
66+
}
67+
68+
69+
switch(FEAT_TRAINS,SELF,sw_BRMk3DVT_cargo_subtype_text,cargo_subtype){
70+
0: return string(str_IntercitySwallow);
71+
1: return string(str_Virgin);
72+
2: return string(str_One);
73+
3: return string(str_Chiltern);
74+
4: return string(str_GreaterAnglia);
75+
5: return string(str_TfW);
76+
6: return string(str_VirginPretendolino);
77+
7: return string(str_ArrivaWales);
78+
8: return string(str_NetworkRail);
79+
return CB_RESULT_NO_TEXT;
80+
}
81+
82+
83+
// Show own graphics when facing forward
84+
// WARNING: If editing this, also edit PushPull.pnml in the Spritesets folder
85+
switch(FEAT_TRAINS,SELF, sw_BRMk3DVT,cargo_subtype){
86+
0: spriteset_BRMk3DVT_IntercitySwallow_reversed;
87+
1: spriteset_BRMk3DVT_Virgin_reversed;
88+
2: spriteset_BRMk3DVT_ONE_reversed;
89+
3: spriteset_BRMk3DVT_Chiltern_reversed;
90+
4: spriteset_BRMk3DVT_GA_reversed;
91+
5: spriteset_BRMk3DVT_TfW_reversed;
92+
6: spriteset_BRMk3DVT_VirginPretendolino_reversed;
93+
7: spriteset_BRMk3DVT_ArrivaWales_reversed;
94+
8: spriteset_BRMk3DVT_NetworkRail_reversed;
95+
}
96+
97+
// If the front of this consist is a compatible locomotive, call that locomotive's remote sprite call switch
98+
switch(FEAT_TRAINS, PARENT, sw_BRMk3DVT_PushPUll, [STORE_TEMP(0 - position_in_articulated_veh, 0x10F), var[0x61, 0, 0x0000FFFF, 0xC6]]) {
99+
543: sw_PUSHPULL_DVTasBR90; // Class 90
100+
sw_BRMk3DVT; // No compatible locomotive found, show normal sprites
101+
}
102+
103+
switch(FEAT_TRAINS,PARENT,sw_Mk3DVT_CheckPosition, position_in_articulated_veh_from_end){
104+
0: sw_BRMk3DVT_PushPUll; // Attempt push pull
105+
sw_BRMk3DVT; // We aren't at the back of theconsist, show normal sprites
106+
}
107+
108+
switch(FEAT_TRAINS,PARENT,sw_BRMk3DVT_Sprites ,vehicle_is_reversed){
109+
0: sw_BRMk3DVT; // We're heading foward, show normal sprites
110+
1: sw_Mk3DVT_CheckPosition; // Attempt push pull (skipping check position for now for testing)
111+
}

src/trains/_spriteset/Rolling Stock_Sprites/Mk4DVT.pnml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,6 @@ spriteset(spriteset_BRMk4DVT_LNERr, "gfx/BR91.png") {
4444
template_train32px(172, 738)
4545
}
4646

47-
switch(FEAT_TRAINS,SELF,sw_BRMk4DVT_cargo_subtype_text,cargo_subtype){
48-
0: return string(str_IntercitySwallow);
49-
1: return string(str_NatEx);
50-
2: return string(str_GNER);
51-
3: return string(str_EastCoast);
52-
4: return string(str_VirginECLNER);
53-
5: return string(str_LNER);
54-
return CB_RESULT_NO_TEXT;
55-
}
56-
5747
// Show own graphics when facing forward
5848
// WARNING: If editing this, also edit PushPull.pnml in the Spritesets folder
5949
switch(FEAT_TRAINS,SELF, sw_BRMk4DVT,cargo_subtype){

src/trains/electric/BR90.pnml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ switch(FEAT_TRAINS,SELF,sw_BR90_cargo_subtype_text,cargo_subtype){
9090

9191
// If the rear of this consist is a compatible Driving Trailer, call that vehicles's remote sprite call switch
9292
switch(FEAT_TRAINS, PARENT, sw_BR90_PushPUll, [STORE_TEMP(num_vehs_in_consist - 1, 0x10F), var[0x61, 0, 0x0000FFFF, 0xC6]]) {
93+
586: sw_PUSHPULL_LocomotiveAsMk3DVT; // Mk3 DVT
9394
585: sw_PUSHPULL_LocomotiveAsMk4DVT; // Mk4 DVT
9495
sw_BR90; // No compatible locomotive found, show normal sprites
9596
}

src/trains/rollingstock/Mk3DVT.pnml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
item (FEAT_TRAINS, item_BRMk3DVT, 586) {
2+
property {
3+
name: string(STR_NAME_BRMk3DVT);
4+
climates_available: ALL_CLIMATES;
5+
refittable_cargo_classes: CC_PASSENGERS;
6+
introduction_date: date(1989,1,1);
7+
cargo_allow_refit: [MAIL];
8+
loading_speed: 14;
9+
cost_factor: 30;
10+
running_cost_factor: 12;
11+
sprite_id: SPRITE_ID_NEW_TRAIN;
12+
refit_cost: 0;
13+
track_type: RAIL;
14+
speed: 140 mph;
15+
power: 0;
16+
running_cost_base: RUNNING_COST_STEAM;
17+
dual_headed: 0;
18+
default_cargo_type: MAIL;
19+
cargo_capacity: 1;
20+
weight: 43 ton;
21+
tractive_effort_coefficient: 0;
22+
air_drag_coefficient: 0;
23+
length: 8;
24+
effect_spawn_model_and_powered: EFFECT_SPAWN_MODEL_NONE;
25+
extra_weight_per_wagon: 0;
26+
bitmask_vehicle_info: 0;
27+
cargo_age_period: 185;
28+
}
29+
graphics {
30+
can_attach_wagon: CB_RESULT_ATTACH_ALLOW;
31+
default: sw_BRMk3DVT_Sprites;
32+
colour_mapping: return PALETTE_CC_FIRST;
33+
cargo_subtype_text: sw_BRMk3DVT_cargo_subtype_text;
34+
purchase: spriteset_BRMk3DVT_purchase;
35+
speed: 160;
36+
cargo_capacity: return(0);
37+
cost_factor: return(GetAdjustedCost(52));
38+
running_cost_factor: return(GetAdjustedCost(17));
39+
}
40+
}

0 commit comments

Comments
 (0)