/* * 2CC CargoTram Set * Copyright (C) 2014-2020 2CC Tram Set Developers * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ // define the newgrf grf { grfid: "AW\01\01"; name: string(STR_GRF_NAME); desc: string(STR_GRF_DESCRIPTION); url: string(STR_GRF_URL); version: 5777; min_compatible_version: 5722; } cargotable { FOOD, // food PAPR, // Paper STEL, // steel COAL, // coal GOOD, // goods VALU, // valuables WOOD, // wood LVST, // livestock WHEA, // wheat IORE, // iron ore CORE, // copper ore FRUT, // fruit MAIL, // mail } /* ==== Define tram track Types ==== */ //only define ELRL if you want to exclude vehicles from it tramtypetable { RAIL } //adds unelectrified tram track template template_roadvehicle_8(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x , y, 4, 12, -4, -9] [x+5 , y, 11, 10, -14, -11] [x+17 , y, 16, 8, -18, -11] [x+34 , y, 11, 10, -10, -11] [x+46 , y, 4, 12, -4, -17] [x+51 , y, 11, 10, -12, -11] [x+63 , y, 16, 8, -14, -11] [x+80 , y, 11, 10, -8, -11] } template template_roadvehicle_7(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x , y, 8, 24, -4, -9] [x+9 , y, 22, 20, -14, -11] [x+32 , y, 32, 16, -18, -11] [x+65 , y, 22, 20, -10, -11] [x+88 , y, 8, 24, -4, -17] [x+97 , y, 22, 20, -12, -11] [x+120, y, 32, 16, -14, -11] [x+153, y, 22, 20, -8, -11] } template template_roadvehicle_6(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x , y, 8, 24, -4, -9] [x+9 , y, 22, 20, -14, -11] [x+32 , y, 32, 16, -18, -11] [x+65 , y, 22, 20, -10, -11] [x+88 , y, 8, 24, -4, -17] [x+97 , y, 22, 20, -12, -11] [x+120, y, 32, 16, -14, -11] [x+153, y, 22, 20, -8, -11] } template template_roadvehicle_5(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x , y, 8, 24, -4, -9] [x+9 , y, 22, 20, -14, -11] [x+32 , y, 32, 16, -18, -11] [x+65 , y, 22, 20, -10, -11] [x+88 , y, 8, 24, -4, -17] [x+97 , y, 22, 20, -12, -11] [x+120, y, 32, 16, -14, -11] [x+153, y, 22, 20, -8, -11] } template template_roadvehicle_4(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x , y, 8, 24, -4, -9] [x+9 , y, 22, 20, -14, -11] [x+32 , y, 32, 16, -18, -11] [x+65 , y, 22, 20, -10, -11] [x+88 , y, 8, 24, -4, -17] [x+97 , y, 22, 20, -12, -11] [x+120, y, 32, 16, -14, -11] [x+153, y, 22, 20, -8, -11] } template template_roadvehicle_3(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x , y, 8, 24, -4, -9] [x+9 , y, 22, 20, -14, -11] [x+32 , y, 32, 16, -18, -11] [x+65 , y, 22, 20, -10, -11] [x+88 , y, 8, 24, -4, -17] [x+97 , y, 22, 20, -12, -11] [x+120, y, 32, 16, -14, -11] [x+153, y, 22, 20, -8, -11] } template template_roadvehicle_2(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x , y, 8, 24, -4, -9] [x+9 , y, 22, 20, -14, -11] [x+32 , y, 32, 16, -18, -11] [x+65 , y, 22, 20, -10, -11] [x+88 , y, 8, 24, -4, -17] [x+97 , y, 22, 20, -12, -11] [x+120, y, 32, 16, -14, -11] [x+153, y, 22, 20, -8, -11] } template template_roadvehicle_1(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x , y, 8, 24, -4, -9] [x+9 , y, 22, 20, -14, -11] [x+32 , y, 32, 16, -18, -11] [x+65 , y, 22, 20, -10, -11] [x+88 , y, 8, 24, -4, -17] [x+97 , y, 22, 20, -12, -11] [x+120, y, 32, 16, -14, -11] [x+153, y, 22, 20, -8, -11] } template template_roadvehicle_purchase(x, y) { //[left_x, upper_y, width, height, offset_x, offset_y] [x, y, 78, 12, -25, -6] } template template_roadvehicle_gui() { //[offset_x, offset_y] [-16, -6] } spriteset(spriteset_blank, "gfx/blank.png") { [0,0,NOCROP] } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_Amst491_purchase, "gfx/Freight Trams/Amsterdam CityCargo 9G.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_Amst491_default, "gfx/Freight Trams/Amsterdam CityCargo 9G.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_Amst491_default_part1, "gfx/Freight Trams/Amsterdam CityCargo 9G.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_Amst491_default_part2, "gfx/Freight Trams/Amsterdam CityCargo 9G.PNG") { template_roadvehicle_5(1, 128) } switch (FEAT_ROADVEHS, SELF, switch_spriteset_Amst491_default, position_in_consist ) { 1: spriteset_Amst491_default_part1; 2: spriteset_Amst491_default_part2; spriteset_Amst491_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_Amst491_articulated, extra_callback_info1 ) { 0..2: return item_roadvehicle_Amst491; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_Amst491_length, position_in_consist ) { 0: return 4; 1: return 3; return 5; } switch (FEAT_ROADVEHS, SELF, switch_Amst491_capacity, position_in_consist ) { 0: return 480 / cargo_unit_weight; return 480 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_Amst491_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_ELECTRIC, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_Amst491, 258) { property { name: string(STR_NAME_AMST491); introduction_date: date(2007,01,01); model_life: 99; retire_early: 36; vehicle_life: 28; loading_speed: 25; //should be 5*number of doors cost_factor: 33; running_cost_factor: 55; speed: 55 km/h; power: 288 kW; weight: 31; cargo_capacity: 9; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_MAIL, CC_ARMOURED, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_BULK, CC_OVERSIZED, CC_LIQUID ); cargo_allow_refit: [GOOD, MAIL, VALU, PAPR, FOOD]; cargo_disallow_refit: [WOOD, STEL, LVST]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_Amst491_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_Amst491_articulated; length: switch_Amst491_length; cargo_capacity: switch_Amst491_capacity; purchase_cargo_capacity: return 30; default: switch_spriteset_Amst491_default; visual_effect: switch_Amst491_visual_effect; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_bochum_purchase, "gfx/Freight Trams/Bochum Tanker Tram.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_bochum_default, "gfx/Freight Trams/Bochum Tanker Tram.PNG") { template_roadvehicle_5(1, 1) } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_bochum_length, position_in_consist ) { return 4; } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_bochum, 270) { property { name: string(STR_NAME_bochum); introduction_date: date(1914,01,01); model_life: 35; retire_early: 36; vehicle_life: 35; loading_speed: 25; //should be 5*number of doors cost_factor: 23; running_cost_factor: 23; speed: 40 km/h; power: 120 kW; weight: 11; cargo_capacity: 20; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented visual_effect: visual_effect(VISUAL_EFFECT_ELECTRIC, 0); reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_LIQUID ); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_MAIL, CC_BULK, CC_PIECE_GOODS); sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_bochum_purchase; //additional_text: //return string(STR_DESC_); length: switch_bochum_length; purchase_cargo_capacity: return 20; default: spriteset_bochum_default; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_budapest_purchase, "gfx/Freight Trams/Budapest MUKI Wagon.PNG") { template_roadvehicle_purchase(1, 128) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_budapest_default, "gfx/Freight Trams/Budapest MUKI Wagon.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_budapest_default_empty, "gfx/Freight Trams/Budapest MUKI Wagon.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_budapest_default_barrels, "gfx/Freight Trams/Budapest MUKI Wagon.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_budapest_default_steel, "gfx/Freight Trams/Budapest MUKI Wagon.PNG") { template_roadvehicle_5(1, 96) } spritegroup spritegroup_budapest_default_barrels { loaded: [spriteset_budapest_default_empty, spriteset_budapest_default_barrels]; loading: [spriteset_budapest_default_empty, spriteset_budapest_default_barrels]; } spritegroup spritegroup_budapest_default_steel { loaded: [spriteset_budapest_default_empty, spriteset_budapest_default_steel]; loading: [spriteset_budapest_default_empty, spriteset_budapest_default_steel]; } switch (FEAT_ROADVEHS, SELF, switch_spriteset_budapest_default, position_in_consist ) { 1: spritegroup_budapest_default_barrels; 2: spritegroup_budapest_default_barrels; spriteset_budapest_default; //default } switch (FEAT_ROADVEHS, SELF, switch_spriteset_budapest_steel, position_in_consist ) { 1: spritegroup_budapest_default_steel; 2: spritegroup_budapest_default_steel; spriteset_budapest_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_budapest_articulated, extra_callback_info1 ) { 0..2: return item_roadvehicle_budapest; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_budapest_length, position_in_consist ) { 0: return 4; return 3; } switch (FEAT_ROADVEHS, SELF, switch_budapest_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 352 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_budapest_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_ELECTRIC, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_budapest, 277) { property { name: string(STR_NAME_budapest); introduction_date: date(1926,01,01); model_life: 59; retire_early: 36; vehicle_life: 64; loading_speed: 25; //should be 5*number of doors cost_factor: 30; running_cost_factor: 30; speed: 30 km/h; power: 76 kW; weight: 21; cargo_capacity: 44; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS,CC_MAIL, CC_BULK, CC_OVERSIZED, CC_LIQUID, CC_ARMOURED ); cargo_allow_refit: [GOOD, FRUT, FOOD, STEL]; cargo_disallow_refit: [LVST]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_budapest_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_budapest_articulated; length: switch_budapest_length; cargo_capacity: switch_budapest_capacity; visual_effect: switch_budapest_visual_effect; purchase_cargo_capacity: return 15; default: switch_spriteset_budapest_default; STEL: switch_spriteset_budapest_steel; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_DresdenCargo_purchase, "gfx/Freight Trams/Dresden CarGoTram.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_DresdenCargo_default, "gfx/Freight Trams/Dresden CarGoTram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_DresdenCargo_default_part1, "gfx/Freight Trams/Dresden CarGoTram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_DresdenCargo_default_part2, "gfx/Freight Trams/Dresden CarGoTram.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_DresdenCargo_default_part3, "gfx/Freight Trams/Dresden CarGoTram.PNG") { template_roadvehicle_5(1, 96) } spriteset(spriteset_DresdenCargo_default_part4, "gfx/Freight Trams/Dresden CarGoTram.PNG") { template_roadvehicle_5(1, 128) } switch (FEAT_ROADVEHS, SELF, switch_spriteset_DresdenCargo_default, position_in_consist ) { 1: spriteset_DresdenCargo_default_part1; 2: spriteset_DresdenCargo_default_part2; 3: spriteset_DresdenCargo_default_part3; 4: spriteset_DresdenCargo_default_part4; spriteset_DresdenCargo_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_DresdenCargo_articulated, extra_callback_info1 ) { 0..4: return item_roadvehicle_DresdenCargo; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_DresdenCargo_length, position_in_consist ) { 0: return 6; 4: return 6; return 6; } switch (FEAT_ROADVEHS, SELF, switch_DresdenCargo_capacity, position_in_consist ) { 0: return 480 / cargo_unit_weight; return 480 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_dresdencargo_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_ELECTRIC, 1); 4: return visual_effect(VISUAL_EFFECT_ELECTRIC, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_DresdenCargo, 259) { property { name: string(STR_NAME_DresdenCargo); introduction_date: date(2000,01,01); model_life: 99; retire_early: 36; vehicle_life: 28; loading_speed: 25; //should be 5*number of doors cost_factor: 40; running_cost_factor: 67; speed: 50 km/h; power: 1205 kW; weight: 60; cargo_capacity: 15; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_MAIL, CC_ARMOURED, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_BULK, CC_OVERSIZED, CC_LIQUID ); cargo_allow_refit: [GOOD, MAIL, VALU, PAPR, FOOD]; cargo_disallow_refit: [WOOD, STEL, LVST]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_DresdenCargo_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_DresdenCargo_articulated; length: switch_DresdenCargo_length; cargo_capacity: switch_DresdenCargo_capacity; purchase_cargo_capacity: return 30; default: switch_spriteset_DresdenCargo_default; visual_effect: switch_dresdencargo_visual_effect; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_dublin_purchase, "gfx/Freight Trams/Dublin Guinness 0-4-0 Tram.PNG") { template_roadvehicle_purchase(1, 224) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_dublin_default, "gfx/Freight Trams/Dublin Guinness 0-4-0 Tram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_dublin_default_part1, "gfx/Freight Trams/Dublin Guinness 0-4-0 Tram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_dublin_default_part2, "gfx/Freight Trams/Dublin Guinness 0-4-0 Tram.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_dublin_default_part3, "gfx/Freight Trams/Dublin Guinness 0-4-0 Tram.PNG") { template_roadvehicle_5(1, 96) } spriteset(spriteset_dublin_default_part1full, "gfx/Freight Trams/Dublin Guinness 0-4-0 Tram.PNG") { template_roadvehicle_5(1, 128) } spriteset(spriteset_dublin_default_part2full, "gfx/Freight Trams/Dublin Guinness 0-4-0 Tram.PNG") { template_roadvehicle_5(1, 160) } spriteset(spriteset_dublin_default_part3full, "gfx/Freight Trams/Dublin Guinness 0-4-0 Tram.PNG") { template_roadvehicle_5(1, 192) } spritegroup spritegroup_dublin_default_part1 { loaded: [spriteset_dublin_default_part1, spriteset_dublin_default_part1full]; loading: [spriteset_dublin_default_part1, spriteset_dublin_default_part1full]; } spritegroup spritegroup_dublin_default_part2 { loaded: [spriteset_dublin_default_part2, spriteset_dublin_default_part2full]; loading: [spriteset_dublin_default_part2, spriteset_dublin_default_part2full]; } spritegroup spritegroup_dublin_default_part3 { loaded: [spriteset_dublin_default_part3, spriteset_dublin_default_part3full]; loading: [spriteset_dublin_default_part3, spriteset_dublin_default_part3full]; } switch (FEAT_ROADVEHS, SELF, switch_spriteset_dublin_default, position_in_consist ) { 1: spritegroup_dublin_default_part1; 2: spritegroup_dublin_default_part2; 3: spritegroup_dublin_default_part3; spriteset_dublin_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_dublin_articulated, extra_callback_info1 ) { 0..3: return item_roadvehicle_dublin; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_dublin_length, position_in_consist ) { 0: return 3; return 3; } switch (FEAT_ROADVEHS, SELF, switch_dublin_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 380 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_dublin_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_STEAM, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_dublin, 273) { property { name: string(STR_NAME_dublin); introduction_date: date(1887,01,01); model_life: 75; retire_early: 36; vehicle_life: 64; loading_speed: 25; //should be 5*number of doors cost_factor: 30; running_cost_factor: 30; speed: 12 km/h; power: 32 kW; weight: 7; cargo_capacity: 60; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented road_type: RAIL; reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_LIQUID ); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_MAIL, CC_BULK, CC_PIECE_GOODS); sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_dublin_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_dublin_articulated; length: switch_dublin_length; cargo_capacity: switch_dublin_capacity; visual_effect: switch_dublin_visual_effect; purchase_cargo_capacity: return 15; default: switch_spriteset_dublin_default; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_frazer_purchase, "gfx/Freight Trams/Frazer Island Logging Tram.PNG") { template_roadvehicle_purchase(1, 224) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_frazer_default, "gfx/Freight Trams/Frazer Island Logging Tram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_frazer_default_part1, "gfx/Freight Trams/Frazer Island Logging Tram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_frazer_default_part2, "gfx/Freight Trams/Frazer Island Logging Tram.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_frazer_default_part3, "gfx/Freight Trams/Frazer Island Logging Tram.PNG") { template_roadvehicle_5(1, 96) } spriteset(spriteset_frazer_default_part1full, "gfx/Freight Trams/Frazer Island Logging Tram.PNG") { template_roadvehicle_5(1, 128) } spriteset(spriteset_frazer_default_part2full, "gfx/Freight Trams/Frazer Island Logging Tram.PNG") { template_roadvehicle_5(1, 160) } spriteset(spriteset_frazer_default_part3full, "gfx/Freight Trams/Frazer Island Logging Tram.PNG") { template_roadvehicle_5(1, 192) } spritegroup spritegroup_frazer_default_part1 { loaded: [spriteset_frazer_default_part1, spriteset_frazer_default_part1full]; loading: [spriteset_frazer_default_part1, spriteset_frazer_default_part1full]; } spritegroup spritegroup_frazer_default_part2 { loaded: [spriteset_frazer_default_part2, spriteset_frazer_default_part2full]; loading: [spriteset_frazer_default_part2, spriteset_frazer_default_part2full]; } spritegroup spritegroup_frazer_default_part3 { loaded: [spriteset_frazer_default_part3, spriteset_frazer_default_part3full]; loading: [spriteset_frazer_default_part3, spriteset_frazer_default_part3full]; } switch (FEAT_ROADVEHS, SELF, switch_spriteset_frazer_default, position_in_consist ) { 1: spritegroup_frazer_default_part1; 2: spritegroup_frazer_default_part2; 3: spritegroup_frazer_default_part3; spriteset_frazer_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_frazer_articulated, extra_callback_info1 ) { 0..3: return item_roadvehicle_frazer; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_frazer_length, position_in_consist ) { 0: return 4; return 3; } switch (FEAT_ROADVEHS, SELF, switch_frazer_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 320 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_frazer_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_STEAM, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_frazer, 274) { property { name: string(STR_NAME_frazer); introduction_date: date(1905,01,01); model_life: 31; retire_early: 30; vehicle_life: 64; loading_speed: 25; //should be 5*number of doors cost_factor: 30; running_cost_factor: 30; speed: 30 km/h; power: 50 kW; weight: 26; cargo_capacity: 60; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented road_type: RAIL; reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_PIECE_GOODS); non_refittable_cargo_classes: bitmask(CC_PASSENGERS,CC_MAIL, CC_BULK, CC_OVERSIZED, CC_LIQUID, CC_ARMOURED, CC_EXPRESS, CC_REFRIGERATED ); cargo_allow_refit: [WOOD, GOOD, FOOD]; cargo_disallow_refit: [LVST, PAPR, STEL]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_frazer_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_frazer_articulated; length: switch_frazer_length; cargo_capacity: switch_frazer_capacity; visual_effect: switch_frazer_visual_effect; purchase_cargo_capacity: return 15; default: switch_spriteset_frazer_default; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_kaliningrad_purchase, "gfx/Freight Trams/Kaliningrad Tatra T4 Tanker Tram.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_kaliningrad_default, "gfx/Freight Trams/Kaliningrad Tatra T4 Tanker Tram.PNG") { template_roadvehicle_5(1, 1) } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_kaliningrad_length, position_in_consist ) { return 6; } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_kaliningrad, 271) { property { name: string(STR_NAME_kaliningrad); introduction_date: date(1975,01,01); model_life: 35; retire_early: 36; vehicle_life: 35; loading_speed: 25; //should be 5*number of doors cost_factor: 23; running_cost_factor: 23; speed: 65 km/h; power: 176 kW; weight: 15; cargo_capacity: 25; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented visual_effect: visual_effect(VISUAL_EFFECT_ELECTRIC, 0); reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_LIQUID ); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_MAIL, CC_BULK, CC_PIECE_GOODS); sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_kaliningrad_purchase; //additional_text: //return string(STR_DESC_); length: switch_kaliningrad_length; purchase_cargo_capacity: return 25; default: spriteset_kaliningrad_default; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_kiso_purchase, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_purchase(1, 288) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_kiso_default, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_kiso_default_part1, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_kiso_default_part2, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_kiso_default_part3, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 96) } spriteset(spriteset_kiso_default_part4, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 128) } spriteset(spriteset_kiso_default_part1full, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 160) } spriteset(spriteset_kiso_default_part2full, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 192) } spriteset(spriteset_kiso_default_part3full, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 224) } spriteset(spriteset_kiso_default_part4full, "gfx/Freight Trams/Kiso Logging Tram.PNG") { template_roadvehicle_5(1, 256) } spritegroup spritegroup_kiso_default_part1 { loaded: [spriteset_kiso_default_part1, spriteset_kiso_default_part1full]; loading: [spriteset_kiso_default_part1, spriteset_kiso_default_part1full]; } spritegroup spritegroup_kiso_default_part2 { loaded: [spriteset_kiso_default_part2, spriteset_kiso_default_part2full]; loading: [spriteset_kiso_default_part2, spriteset_kiso_default_part2full]; } spritegroup spritegroup_kiso_default_part3 { loaded: [spriteset_kiso_default_part3, spriteset_kiso_default_part3full]; loading: [spriteset_kiso_default_part3, spriteset_kiso_default_part3full]; } spritegroup spritegroup_kiso_default_part4 { loaded: [spriteset_kiso_default_part4, spriteset_kiso_default_part4full]; loading: [spriteset_kiso_default_part4, spriteset_kiso_default_part4full]; } switch (FEAT_ROADVEHS, SELF, switch_spriteset_kiso_default, position_in_consist ) { 1: spritegroup_kiso_default_part1; 2: spritegroup_kiso_default_part2; 3: spritegroup_kiso_default_part3; 4: spritegroup_kiso_default_part4; spriteset_kiso_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_kiso_articulated, extra_callback_info1 ) { 0..4: return item_roadvehicle_kiso; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_kiso_length, position_in_consist ) { 0: return 3; return 3; } switch (FEAT_ROADVEHS, SELF, switch_kiso_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 320 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_kiso_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_DIESEL, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_kiso, 255) { property { name: string(STR_NAME_kiso); introduction_date: date(1916,01,01); model_life: 60; retire_early: 36; vehicle_life: 60; loading_speed: 25; //should be 5*number of doors cost_factor: 30; running_cost_factor: 30; speed: 30 km/h; power: 126 kW; weight: 32; cargo_capacity: 80; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented road_type: RAIL; reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_PIECE_GOODS); non_refittable_cargo_classes: bitmask(CC_PASSENGERS,CC_MAIL, CC_BULK, CC_OVERSIZED, CC_LIQUID, CC_ARMOURED, CC_EXPRESS, CC_REFRIGERATED ); cargo_allow_refit: [WOOD, GOOD, FOOD]; cargo_disallow_refit: [STEL, LVST, PAPR]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_kiso_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_kiso_articulated; length: switch_kiso_length; cargo_capacity: switch_kiso_capacity; purchase_cargo_capacity: return 16; default: switch_spriteset_kiso_default; visual_effect: switch_kiso_visual_effect; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_manchester_purchase, "gfx/Freight Trams/Manchester Parcels Tram.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_manchester_default, "gfx/Freight Trams/Manchester Parcels Tram.PNG") { template_roadvehicle_5(1, 1) } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_manchester_length, position_in_consist ) { return 6; } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_manchester, 262) { property { name: string(STR_NAME_manchester); introduction_date: date(1905,01,01); model_life: 44; retire_early: 36; vehicle_life: 44; loading_speed: 25; //should be 5*number of doors cost_factor: 20; running_cost_factor: 20; speed: 30 km/h; power: 94 kW; weight: 12; cargo_capacity: 40; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented visual_effect: visual_effect(VISUAL_EFFECT_ELECTRIC, 0); reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_MAIL, CC_ARMOURED, CC_PIECE_GOODS,CC_BULK, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_LIQUID ); cargo_allow_refit: [GOOD, MAIL, VALU, PAPR, FOOD]; cargo_disallow_refit: [WOOD, STEL, COAL, IORE, WHEA, CORE]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_manchester_purchase; //additional_text: //return string(STR_DESC_); length: switch_manchester_length; purchase_cargo_capacity: return 40; default: spriteset_manchester_default; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_melbourne_purchase, "gfx/Freight Trams/Melbourne Class U Freight Car.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_melbourne_default, "gfx/Freight Trams/Melbourne Class U Freight Car.PNG") { template_roadvehicle_5(1, 1) } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_melbourne_length, position_in_consist ) { return 6; } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_melbourne, 272) { property { name: string(STR_NAME_melbourne); introduction_date: date(1938,01,01); model_life: 40; retire_early: 36; vehicle_life: 44; loading_speed: 25; //should be 5*number of doors cost_factor: 20; running_cost_factor: 20; speed: 40 km/h; power: 94 kW; weight: 13; cargo_capacity: 40; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented visual_effect: visual_effect(VISUAL_EFFECT_ELECTRIC, 0); reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_MAIL, CC_ARMOURED, CC_PIECE_GOODS,CC_BULK, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_LIQUID ); cargo_allow_refit: [GOOD, MAIL, VALU, PAPR, FOOD]; cargo_disallow_refit: [WOOD, STEL, COAL, IORE, WHEA, CORE]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_melbourne_purchase; //additional_text: //return string(STR_DESC_); length: switch_melbourne_length; purchase_cargo_capacity: return 40; default: spriteset_melbourne_default; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_oradea_purchase, "gfx/Freight Trams/Oradea Freight Service Tram.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_oradea_default, "gfx/Freight Trams/Oradea Freight Service Tram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_oradea_default_part1, "gfx/Freight Trams/Oradea Freight Service Tram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_oradea_default_part2, "gfx/Freight Trams/Oradea Freight Service Tram.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_oradea_default_part3, "gfx/Freight Trams/Oradea Freight Service Tram.PNG") { template_roadvehicle_5(1, 96) } spriteset(spriteset_oradea_default_part4, "gfx/Freight Trams/Oradea Freight Service Tram.PNG") { template_roadvehicle_5(1, 128) } switch (FEAT_ROADVEHS, SELF, switch_spriteset_oradea_default, position_in_consist ) { 1: spriteset_oradea_default_part1; 2: spriteset_oradea_default_part2; 3: spriteset_oradea_default_part3; 4: spriteset_oradea_default_part4; spriteset_oradea_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_oradea_articulated, extra_callback_info1 ) { 0..4: return item_roadvehicle_oradea; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_oradea_length, position_in_consist ) { 0: return 3; 4: return 3; return 3; } switch (FEAT_ROADVEHS, SELF, switch_oradea_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 320 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_oradea_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_ELECTRIC, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_oradea, 264) { property { name: string(STR_NAME_oradea); introduction_date: date(1906,01,01); model_life: 88; retire_early: 36; vehicle_life: 88; loading_speed: 25; //should be 5*number of doors cost_factor: 35; running_cost_factor: 35; speed: 40 km/h; power: 90 kW; weight: 19; cargo_capacity: 80; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_MAIL, CC_BULK, CC_ARMOURED, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_LIQUID ); cargo_allow_refit: [GOOD, MAIL, VALU, PAPR, FOOD]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_oradea_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_oradea_articulated; length: switch_oradea_length; cargo_capacity: switch_oradea_capacity; purchase_cargo_capacity: return 16; default: switch_spriteset_oradea_default; visual_effect: switch_oradea_visual_effect; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_lohberg_purchase, "gfx/Freight Trams/Lohberg RD-60HST Mining Tram.PNG") { template_roadvehicle_purchase(1, 96) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_lohberg_default, "gfx/Freight Trams/Lohberg RD-60HST Mining Tram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_lohberg_default_empty, "gfx/Freight Trams/Lohberg RD-60HST Mining Tram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_lohberg_default_full, "gfx/Freight Trams/Lohberg RD-60HST Mining Tram.PNG") { template_roadvehicle_5(1, 64) } spritegroup spritegroup_lohberg_default { loaded: [spriteset_lohberg_default_empty, spriteset_lohberg_default_full]; loading: [spriteset_lohberg_default_empty, spriteset_lohberg_default_full]; } switch (FEAT_ROADVEHS, SELF, switch_spriteset_lohberg_default, position_in_consist ) { 1: spritegroup_lohberg_default; 2: spritegroup_lohberg_default; 3: spritegroup_lohberg_default; 4: spritegroup_lohberg_default; 5: spritegroup_lohberg_default; 6: spritegroup_lohberg_default; 7: spritegroup_lohberg_default; 8: spritegroup_lohberg_default; spriteset_lohberg_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_lohberg_articulated, extra_callback_info1 ) { 0..8: return item_roadvehicle_lohberg; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_lohberg_length, position_in_consist ) { 0: return 4; return 3; } switch (FEAT_ROADVEHS, SELF, switch_lohberg_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 320 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_lohberg_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_DIESEL, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_lohberg, 276) { property { name: string(STR_NAME_lohberg); introduction_date: date(1980,01,01); model_life: 25; retire_early: 20; vehicle_life: 25; loading_speed: 25; //should be 5*number of doors cost_factor: 30; running_cost_factor: 30; speed: 15 km/h; power: 90 kW; weight: 12; cargo_capacity: 16; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented road_type: RAIL; reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask(CC_BULK ); non_refittable_cargo_classes: bitmask(CC_PASSENGERS,CC_MAIL, CC_OVERSIZED, CC_LIQUID, CC_ARMOURED, CC_EXPRESS, CC_PIECE_GOODS, CC_REFRIGERATED ); cargo_allow_refit: [COAL, IORE, CORE]; cargo_disallow_refit: [LVST, FRUT, WHEA]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_lohberg_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_lohberg_articulated; length: switch_lohberg_length; cargo_capacity: switch_lohberg_capacity; visual_effect: switch_lohberg_visual_effect; purchase_cargo_capacity: return 18; default: switch_spriteset_lohberg_default; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_ParisArp_purchase, "gfx/Freight Trams/Paris L'Arpajonnais.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_ParisArp_default, "gfx/Freight Trams/Paris L'Arpajonnais.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_ParisArp_default_part1, "gfx/Freight Trams/Paris L'Arpajonnais.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_ParisArp_default_part2, "gfx/Freight Trams/Paris L'Arpajonnais.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_ParisArp_default_part3, "gfx/Freight Trams/Paris L'Arpajonnais.PNG") { template_roadvehicle_5(1, 96) } spriteset(spriteset_ParisArp_default_part4, "gfx/Freight Trams/Paris L'Arpajonnais.PNG") { template_roadvehicle_5(1, 128) } switch (FEAT_ROADVEHS, SELF, switch_spriteset_ParisArp_default, position_in_consist ) { 1: spriteset_ParisArp_default_part1; 2: spriteset_ParisArp_default_part2; 3: spriteset_ParisArp_default_part3; 4: spriteset_ParisArp_default_part4; spriteset_ParisArp_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_ParisArp_articulated, extra_callback_info1 ) { 0..4: return item_roadvehicle_ParisArp; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_ParisArp_length, position_in_consist ) { 0: return 4; 1: return 3; return 3; } switch (FEAT_ROADVEHS, SELF, switch_ParisArp_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; 1: return 320 / cargo_unit_weight; return 320 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_ParisArp_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_STEAM, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_ParisArp, 260) { property { name: string(STR_NAME_ParisArp); introduction_date: date(1881,01,01); model_life: 43; retire_early: 36; vehicle_life: 43; loading_speed: 25; //should be 5*number of doors cost_factor: 33; running_cost_factor: 33; speed: 20 km/h; power: 36 kW; weight: 45; cargo_capacity: 80; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented road_type: RAIL; reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_MAIL, CC_ARMOURED, CC_BULK, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_LIQUID ); cargo_allow_refit: [GOOD, MAIL, VALU, PAPR, FOOD]; cargo_disallow_refit: [WOOD, LVST]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_ParisArp_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_ParisArp_articulated; length: switch_ParisArp_length; cargo_capacity: switch_ParisArp_capacity; purchase_cargo_capacity: return 16; default: switch_spriteset_ParisArp_default; visual_effect: switch_ParisArp_visual_effect; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_portsmouth_purchase, "gfx/Freight Trams/Portsmouth Tanker Tram.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_portsmouth_default, "gfx/Freight Trams/Portsmouth Tanker Tram.PNG") { template_roadvehicle_5(1, 1) } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_portsmouth_length, position_in_consist ) { return 5; } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_portsmouth, 263) { property { name: string(STR_NAME_portsmouth); introduction_date: date(1903,01,01); model_life: 35; retire_early: 36; vehicle_life: 35; loading_speed: 25; //should be 5*number of doors cost_factor: 23; running_cost_factor: 23; speed: 18 km/h; power: 26 kW; weight: 8; cargo_capacity: 25; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented visual_effect: visual_effect(VISUAL_EFFECT_ELECTRIC, 0); reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_LIQUID ); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_MAIL, CC_BULK, CC_PIECE_GOODS); sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_portsmouth_purchase; //additional_text: //return string(STR_DESC_); length: switch_portsmouth_length; purchase_cargo_capacity: return 25; default: spriteset_portsmouth_default; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_prague_purchase, "gfx/Freight Trams/Prague Stresovice Cargo Tram.PNG") { template_roadvehicle_purchase(1, 128) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_prague_default, "gfx/Freight Trams/Prague Stresovice Cargo Tram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_prague_default_empty, "gfx/Freight Trams/Prague Stresovice Cargo Tram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_prague_default_barrels, "gfx/Freight Trams/Prague Stresovice Cargo Tram.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_prague_default_steel, "gfx/Freight Trams/Prague Stresovice Cargo Tram.PNG") { template_roadvehicle_5(1, 96) } spritegroup spritegroup_prague_default_barrels { loaded: [spriteset_prague_default_empty, spriteset_prague_default_barrels]; loading: [spriteset_prague_default_empty, spriteset_prague_default_barrels]; } spritegroup spritegroup_prague_default_steel { loaded: [spriteset_prague_default_empty, spriteset_prague_default_steel]; loading: [spriteset_prague_default_empty, spriteset_prague_default_steel]; } switch (FEAT_ROADVEHS, SELF, switch_spriteset_prague_default, position_in_consist ) { 1: spritegroup_prague_default_barrels; 2: spritegroup_prague_default_barrels; 3: spritegroup_prague_default_barrels; spriteset_prague_default; //default } switch (FEAT_ROADVEHS, SELF, switch_spriteset_prague_steel, position_in_consist ) { 1: spritegroup_prague_default_steel; 2: spritegroup_prague_default_steel; 3: spritegroup_prague_default_steel; spriteset_prague_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_prague_articulated, extra_callback_info1 ) { 0..3: return item_roadvehicle_prague; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_prague_length, position_in_consist ) { 0: return 5; return 3; } switch (FEAT_ROADVEHS, SELF, switch_prague_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 320 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_prague_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_ELECTRIC, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_prague, 275) { property { name: string(STR_NAME_prague); introduction_date: date(1917,01,01); model_life: 59; retire_early: 36; vehicle_life: 64; loading_speed: 25; //should be 5*number of doors cost_factor: 30; running_cost_factor: 30; speed: 30 km/h; power: 186 kW; weight: 31; cargo_capacity: 60; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS,CC_MAIL, CC_BULK, CC_OVERSIZED, CC_LIQUID, CC_ARMOURED ); cargo_allow_refit: [GOOD, FRUT, FOOD, STEL]; cargo_disallow_refit: [LVST]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_prague_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_prague_articulated; length: switch_prague_length; cargo_capacity: switch_prague_capacity; visual_effect: switch_prague_visual_effect; purchase_cargo_capacity: return 15; default: switch_spriteset_prague_default; STEL: switch_spriteset_prague_steel; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_denhaag_purchase, "gfx/Freight Trams/The Hague 2310.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_denhaag_default, "gfx/Freight Trams/The Hague 2310.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_denhaag_default_part1, "gfx/Freight Trams/The Hague 2310.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_denhaag_default_part2, "gfx/Freight Trams/The Hague 2310.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_denhaag_default_part3, "gfx/Freight Trams/The Hague 2310.PNG") { template_roadvehicle_5(1, 96) } spriteset(spriteset_denhaag_default_part4, "gfx/Freight Trams/The Hague 2310.PNG") { template_roadvehicle_5(1, 128) } switch (FEAT_ROADVEHS, SELF, switch_spriteset_denhaag_default, position_in_consist ) { 1: spriteset_denhaag_default_part1; 2: spriteset_denhaag_default_part2; 3: spriteset_denhaag_default_part3; 4: spriteset_denhaag_default_part4; spriteset_denhaag_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_denhaag_articulated, extra_callback_info1 ) { 0..4: return item_roadvehicle_denhaag; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_denhaag_length, position_in_consist ) { 0: return 5; 4: return 5; return 5; } switch (FEAT_ROADVEHS, SELF, switch_denhaag_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 480 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_denhaag_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_ELECTRIC, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_denhaag, 265) { property { name: string(STR_NAME_denhaag); introduction_date: date(1927,01,01); model_life: 47; retire_early: 36; vehicle_life: 47; loading_speed: 25; //should be 5*number of doors cost_factor: 38; running_cost_factor: 38; speed: 50 km/h; power: 200 kW; weight: 40; cargo_capacity: 120; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_MAIL, CC_BULK, CC_ARMOURED, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_OVERSIZED, CC_LIQUID ); cargo_allow_refit: [GOOD, MAIL, VALU, PAPR, FOOD]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_denhaag_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_denhaag_articulated; length: switch_denhaag_length; cargo_capacity: switch_denhaag_capacity; purchase_cargo_capacity: return 24; default: switch_spriteset_denhaag_default; visual_effect: switch_denhaag_visual_effect; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_wantage_purchase, "gfx/Freight Trams/Wantage Freight Tram.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_wantage_default, "gfx/Freight Trams/Wantage Freight Tram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_wantage_default_empty, "gfx/Freight Trams/Wantage Freight Tram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_wantage_default_barrels, "gfx/Freight Trams/Wantage Freight Tram.PNG") { template_roadvehicle_5(1, 64) } spriteset(spriteset_wantage_default_steel, "gfx/Freight Trams/Wantage Freight Tram.PNG") { template_roadvehicle_5(1, 96) } spriteset(spriteset_wantage_default_wood, "gfx/Freight Trams/Wantage Freight Tram.PNG") { template_roadvehicle_5(1, 128) } spritegroup spritegroup_wantage_default_barrels { loaded: [spriteset_wantage_default_empty, spriteset_wantage_default_barrels]; loading: [spriteset_wantage_default_empty, spriteset_wantage_default_barrels]; } spritegroup spritegroup_wantage_default_steel { loaded: [spriteset_wantage_default_empty, spriteset_wantage_default_steel]; loading: [spriteset_wantage_default_empty, spriteset_wantage_default_steel]; } spritegroup spritegroup_wantage_default_wood { loaded: [spriteset_wantage_default_empty, spriteset_wantage_default_wood]; loading: [spriteset_wantage_default_empty, spriteset_wantage_default_wood]; } switch (FEAT_ROADVEHS, SELF, switch_spriteset_wantage_default, position_in_consist ) { 1: spritegroup_wantage_default_barrels; 2: spritegroup_wantage_default_barrels; 3: spritegroup_wantage_default_barrels; spriteset_wantage_default; //default } switch (FEAT_ROADVEHS, SELF, switch_spriteset_wantage_steel, position_in_consist ) { 1: spritegroup_wantage_default_steel; 2: spritegroup_wantage_default_steel; 3: spritegroup_wantage_default_steel; spriteset_wantage_default; //default } switch (FEAT_ROADVEHS, SELF, switch_spriteset_wantage_wood, position_in_consist ) { 1: spritegroup_wantage_default_wood; 2: spritegroup_wantage_default_wood; 3: spritegroup_wantage_default_wood; spriteset_wantage_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_wantage_articulated, extra_callback_info1 ) { 0..3: return item_roadvehicle_wantage; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_wantage_length, position_in_consist ) { 0: return 3; return 3; } switch (FEAT_ROADVEHS, SELF, switch_wantage_capacity, position_in_consist ) { 0: return 0 / cargo_unit_weight; return 320 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_wantage_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_STEAM, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_wantage, 266) { property { name: string(STR_NAME_wantage); introduction_date: date(1881,01,01); model_life: 64; retire_early: 36; vehicle_life: 64; loading_speed: 25; //should be 5*number of doors cost_factor: 30; running_cost_factor: 30; speed: 15 km/h; power: 36 kW; weight: 32; cargo_capacity: 60; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented road_type: RAIL; reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS,CC_MAIL, CC_BULK, CC_OVERSIZED, CC_LIQUID, CC_ARMOURED ); cargo_allow_refit: [GOOD, FRUT, FOOD, STEL, WOOD]; cargo_disallow_refit: [LVST]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_wantage_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_wantage_articulated; length: switch_wantage_length; cargo_capacity: switch_wantage_capacity; visual_effect: switch_wantage_visual_effect; purchase_cargo_capacity: return 20; default: switch_spriteset_wantage_default; STEL: switch_spriteset_wantage_steel; WOOD: switch_spriteset_wantage_wood; } } //////////////////////// //Pre-purchase sprites// //////////////////////// spriteset(spriteset_zutphen_purchase, "gfx/Freight Trams/Zutphen Vriijland Steam Tram.PNG") { template_roadvehicle_purchase(1, 160) } /////////////////// //Vehicle sprites// /////////////////// spriteset(spriteset_zutphen_default, "gfx/Freight Trams/Zutphen Vriijland Steam Tram.PNG") { template_roadvehicle_5(1, 1) } spriteset(spriteset_zutphen_default_part1, "gfx/Freight Trams/Zutphen Vriijland Steam Tram.PNG") { template_roadvehicle_5(1, 32) } spriteset(spriteset_zutphen_default_part2, "gfx/Freight Trams/Zutphen Vriijland Steam Tram.PNG") { template_roadvehicle_5(1, 64) } switch (FEAT_ROADVEHS, SELF, switch_spriteset_zutphen_default, position_in_consist ) { 1: spriteset_zutphen_default_part1; 2: spriteset_zutphen_default_part2; spriteset_zutphen_default; //default } ///////////////////// //vehicle callbacks// ///////////////////// switch (FEAT_ROADVEHS, SELF, switch_zutphen_articulated, extra_callback_info1 ) { 0..2: return item_roadvehicle_zutphen; return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts } switch (FEAT_ROADVEHS, SELF, switch_zutphen_length, position_in_consist ) { 0: return 3; 1: return 4; return 4; } switch (FEAT_ROADVEHS, SELF, switch_zutphen_capacity, position_in_consist ) { 0: return 2 / cargo_unit_weight; return 400 / cargo_unit_weight; } switch(FEAT_ROADVEHS, SELF, switch_zutphen_visual_effect, position_in_consist ) { 0: return visual_effect(VISUAL_EFFECT_STEAM, 1); return visual_effect(VISUAL_EFFECT_DEFAULT, 0); } ////////////////////// //vehicle properties// ////////////////////// item (FEAT_ROADVEHS, item_roadvehicle_zutphen, 261) { property { name: string(STR_NAME_zutphen); introduction_date: date(1904,01,01); model_life: 71; retire_early: 36; vehicle_life: 28; loading_speed: 25; //should be 5*number of doors cost_factor: 15; running_cost_factor: 67; speed: 35 km/h; power: 80 kW; weight: 26; cargo_capacity: 50; tractive_effort_coefficient: 0.5; //percentage of powered axles air_drag_coefficient: 0; //0=default //sound_effect: ; //not implemented road_type: RAIL; reliability_decay: 20; climates_available: ALL_CLIMATES; refittable_cargo_classes: bitmask( CC_EXPRESS, CC_MAIL, CC_ARMOURED, CC_PIECE_GOODS, CC_REFRIGERATED); non_refittable_cargo_classes: bitmask(CC_PASSENGERS, CC_BULK, CC_OVERSIZED, CC_LIQUID ); cargo_allow_refit: [GOOD, MAIL, VALU, PAPR, FOOD]; cargo_disallow_refit: [WOOD, STEL, LVST]; sprite_id: SPRITE_ID_NEW_ROADVEH; misc_flags: bitmask(ROADVEH_FLAG_TRAM, ROADVEH_FLAG_2CC, ROADVEH_FLAG_AUTOREFIT); refit_cost: 0; running_cost_base: RUNNING_COST_ROADVEH; } graphics { purchase: spriteset_zutphen_purchase; //additional_text: //return string(STR_DESC_); articulated_part: switch_zutphen_articulated; length: switch_zutphen_length; cargo_capacity: switch_zutphen_capacity; purchase_cargo_capacity: return 17; default: switch_spriteset_zutphen_default; visual_effect: switch_zutphen_visual_effect; } } //sort the vehicle list sort(FEAT_ROADVEHS, [item_roadvehicle_Amst491, item_roadvehicle_DresdenCargo, item_roadvehicle_ParisArp, item_roadvehicle_zutphen, item_roadvehicle_denhaag, item_roadvehicle_kiso, item_roadvehicle_manchester, item_roadvehicle_portsmouth, item_roadvehicle_oradea, item_roadvehicle_wantage, item_roadvehicle_dublin, item_roadvehicle_bochum, item_roadvehicle_melbourne, item_roadvehicle_kaliningrad, item_roadvehicle_frazer ]);