locomotive code only:
Code: Select all
/* ------------------------------------------------- LOCOMOTORA TRAM 1 VLT CARIOCA ------------------------------------------------- */
/* Sprite template for a realtram full*/
template tmpl_realtram_full(x) {
[18, 8, 48, 70, -26, -40, NOANIM]
[82, 8, 81, 60, -58, -21, NOANIM]
[178, 8, 103, 48, -56, -27, NOANIM]
[290, 8, 79, 63, -27, -25, NOANIM]
[386, 8, 48, 75, -27, -48, NOANIM]
[445, 8, 80, 63, -54, -23, NOANIM]
[532, 8, 94, 48, -50, -26, NOANIM]
[635, 8, 80, 60, -27, -26, NOANIM]
}
template tmpl_32_realtram_full(x) {
[0, 0, 48, 93, -24, -46, NOANIM]
[51, 0, 116, 93, -67, -36, NOANIM]
[171, 0, 127, 93, -67, -43, NOANIM]
[303, 0, 116, 93, -47, -38, NOANIM]
[423, 0, 48, 93, -23, -43, NOANIM]
[474, 0, 116, 93, -69, -35, NOANIM]
[594, 0, 131, 93, -65, -57, NOANIM]
[728, 0, 116, 93, -46, -39, NOANIM]
}
template tmpl_32_realtram_full_MASK(x) {
[0, 0, 48, 93, -24, -46, NOANIM, mask]
[51, 0, 116, 93, -67, -36, NOANIM, mask]
[171, 0, 127, 93, -67, -43, NOANIM, mask]
[303, 0, 116, 93, -47, -38, NOANIM, mask]
[423, 0, 48, 93, -23, -43, NOANIM, mask]
[474, 0, 116, 93, -69, -35, NOANIM, mask]
[594, 0, 131, 93, -65, -57, NOANIM, mask]
[728, 0, 116, 93, -46, -39, NOANIM, mask]
}
/* Sprite template for a realtram empty*/
template tmpl_realtram_empty(x) {
[18, 8, 48, 70, -26, -40, NOANIM]
[82, 8, 81, 60, -58, -21, NOANIM]
[178, 8, 103, 48, -56, -27, NOANIM]
[290, 8, 79, 63, -27, -25, NOANIM]
[386, 8, 48, 75, -27, -48, NOANIM]
[445, 8, 80, 63, -54, -23, NOANIM]
[532, 8, 94, 48, -50, -26, NOANIM]
[635, 8, 80, 60, -27, -26, NOANIM]
}
template tmpl_32_realtram_empty(x) {
[0, 96, 48, 93, -24, -46, NOANIM]
[51, 96, 116, 93, -67, -36, NOANIM]
[171, 96, 127, 93, -67, -43, NOANIM]
[303, 96, 116, 93, -47, -38, NOANIM]
[423, 96, 48, 93, -23, -43, NOANIM]
[474, 96, 116, 93, -69, -35, NOANIM]
[594, 96, 131, 93, -65, -57, NOANIM]
[728, 96, 116, 93, -46, -39, NOANIM]
}
template tmpl_32_realtram_empty_MASK(x) {
[0, 96, 48, 93, -24, -46, NOANIM, mask]
[51, 96, 116, 93, -67, -36, NOANIM, mask]
[171, 96, 127, 93, -67, -43, NOANIM, mask]
[303, 96, 116, 93, -47, -38, NOANIM, mask]
[423, 96, 48, 93, -23, -43, NOANIM, mask]
[474, 96, 116, 93, -69, -35, NOANIM, mask]
[594, 96, 131, 93, -65, -57, NOANIM, mask]
[728, 96, 116, 93, -46, -39, NOANIM, mask]
}
/* Define various cargo-specific graphics */
/* Goods */
spriteset(realtram_empty, "gfx/realtrams.png") { tmpl_realtram_empty(0) }
alternative_sprites(realtram_empty, ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "gfx/realtrams_32.png","gfx/real_trams_mask.png")
{ tmpl_32_realtram_empty(0) }
spriteset(realtram_full, "gfx/realtrams.png") { tmpl_realtram_full(0) }
alternative_sprites(realtram_full, ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, "gfx/realtrams_32.png","gfx/real_trams_mask.png")
{ tmpl_32_realtram_full(0) }
spritegroup realtram {
loaded: [realtram_empty,realtram_full];
loading: [realtram_empty,realtram_full];
}
/* ARTICULATED PART START */
switch (FEAT_ROADVEHS, SELF, switch_realtram_1_trailer, position_in_consist ) {
1: realtram2;
2: realtram3;
3: realtram4;
4: realtram3;
5: realtram;
}
//set number of articulated parts
switch (FEAT_ROADVEHS, SELF, switch_articulated_realtram_1_trailer, extra_callback_info1) {
1: return flatbed_realtram3_1;
2: return flatbed_realtram4_1;
3: return flatbed_realtram3_1;
4: return flatbed_realtram2_1;
// return CB_RESULT_NO_MORE_ARTICULATED_PARTS; //stop adding vehicle parts
}
//set length of each part
switch (FEAT_ROADVEHS, SELF, switch_length_realtram_1, position_in_consist) {
1: return 8;
2: return 7;
3: return 2;
4: return 7;
5: return 8;
}
//set capacity of each part
switch (FEAT_ROADVEHS, SELF, switch_capacity_realtram_1, position_in_consist ) {
1: return 26;
return 38; //default
}
/* ARTICULATED PART END */
/* Purchase Menu Image */
spriteset(spriteset_realtram_purchase, "gfx/realtrams.png") {[0,0,1,1,0,0]}
alternative_sprites(spriteset_realtram_purchase, ZOOM_LEVEL_IN_2X, BIT_DEPTH_32BPP, "gfx/realtrams_32.png","gfx/real_trams_mask.png") {[0,794,494,93,-247,-55]}
/* Properties */
/* Define the road vehicle */
item(FEAT_ROADVEHS, flatbed_realtram_1) {
property {
/* Properties common to all vehicle types */
name: string(STR_NAME_realtram_1);
climates_available: ALL_CLIMATES;
road_type: ELRL;
introduction_date: date(1980,01,01);
model_life: VEHICLE_NEVER_EXPIRES;
/* retire_early not set, use default retirement behaviour */
vehicle_life: 15;
reliability_decay: 20;
non_refittable_cargo_classes: bitmask(CC_PASSENGERS);
default_cargo_type: PASS;
cargo_allow_refit: [];
cargo_disallow_refit: []; // we allow other cargoes, if class matches
loading_speed: 8;
cost_factor: 20;
running_cost_factor: 170;
/* cargo_age_period is left at default */
/* RV-specific properties */
sprite_id: SPRITE_ID_NEW_ROADVEH;
speed: 90 km/h;
misc_flags: bitmask(ROADVEH_FLAG_TRAM);
refit_cost: 0; // Refitting is free
/* callback_flags are not set, no need to manually enable callbacks */
running_cost_base: RUNNING_COST_ROADVEH;
power: 103 hp;
weight: 5.5 ton;
/* TE and air drag coefficient is left at default */
cargo_capacity: 25;
sound_effect: SOUND_BUS_START_PULL_AWAY;
/* Visual effect is left at default (no effect) */
}
/* Define graphics for various cargo types, as well as the capacity callback */
graphics {
default: realtram; // Default to Passengers.
purchase: spriteset_realtram_purchase;
articulated_part: switch_articulated_realtram_1_trailer;
length: switch_length_realtram_1;
cargo_capacity: switch_capacity_realtram_1;
}
}