I think NML is a very good tool to make NewGRF and thanks for developer.
In this time, I have a problem with applying something.
I want this:
1. Add a locomotive.
2. Add a default passenger wagon behind that.
3. Then passenger wagon's graphic changes according to locomotive.
(Is this called 'livery override'?)
NML Documents(http://newgrf-specs.tt-wiki.net/wiki/NM ... y_override) say
Code: Select all
livery_override (vehicleID) {
callback_name: switch_name;
callback_name2: return value;
default: spritegroup_name;
}
I tried to make an engine ('KTX' in screenshot) and attached that codes just behind graphics block.
But it doesn't apply to game.
I know that I'm bothering you but please see my NML codes and what is the problem with my codes.
Here's Screenshots (The above one is the result that I made. And the below one is what I intend.)
Code: Select all
grf {
grfid : "TK\05\01";
name : string(STR_GRF_NAME);
desc : string(STR_GRF_DESC);
version : 1;
min_compatible_version : 1;
}
railtypetable {
ELRL
}
template tmpl_vehicle_basic(x, y) {
//xpos ypos xsize ysize xoff yoff
[x, y, 8, 22, -3, -12]
[x + 9, y, 22, 16, -14, -10]
[x + 32, y, 32, 12, -16, -6]
[x + 65, y, 22, 16, -6, -10]
}
template tmpl_vehicle_4_views(line_num) {
tmpl_vehicle_basic(1, 30 * line_num)
}
template tmpl_vehicle_8_views(line_num) {
tmpl_vehicle_basic(1, 30 * line_num)
tmpl_vehicle_basic(89, 30 * line_num)
}
spriteset(set_ktx_engine_f, "./tk_KTX/gfx/rKTX.png") { tmpl_vehicle_8_views(0) }
spriteset(set_ktx_middle_r, "./tk_KTX/gfx/rKTX.png") { tmpl_vehicle_8_views(2) }
spriteset(set_ktx_center, "./tk_KTX/gfx/rKTX.png") { tmpl_vehicle_4_views(4) }
spriteset(set_ktx_center2, "./tk_KTX/gfx/rKTX.png") { tmpl_vehicle_8_views(4) }
spriteset(set_ktx_middle_f, "./tk_KTX/gfx/rKTX.png") { tmpl_vehicle_8_views(3) }
spriteset(set_ktx_engine_r, "./tk_KTX/gfx/rKTX.png") { tmpl_vehicle_8_views(1) }
spriteset(set_ktx_purchase_f, "./tk_KTX/gfx/rKTX.png") { [121, 0, 32, 12, -24, -4] }
spriteset(set_ktx_purchase_r, "./tk_KTX/gfx/rKTX.png") { [33, 0, 32, 12, -24, -4] }
spriteset(set_ktx_invisible, "./tk_KTX/gfx/rKTX.png") { [1, 180, 1, 1, 0, 0] }
spriteset(set_ktx_middle_purchase, "./tk_KTX/gfx/rKTX.png") { [33, 120, 32, 12, -24, -4] }
// Sprites
switch(FEAT_TRAINS, SELF, sw_ktx_middle2, cargo_subtype) {
set_ktx_center;
}
switch(FEAT_TRAINS, SELF, sw_ktx_middle1, position_in_consist_from_end) {
0: set_ktx_engine_f;
1: set_ktx_middle_f;
sw_ktx_middle2;
}
switch(FEAT_TRAINS, SELF, sw_ktx_graphics, position_in_consist) {
0: set_ktx_engine_f;
1: set_ktx_middle_f;
sw_ktx_middle1;
}
switch(FEAT_TRAINS, SELF, sw_ktx_can_attach_wagon, vehicle_type_id) {
train_ktx: return CB_RESULT_ATTACH_ALLOW;
return string(STR_KTX_ERROR_CANNOT_ATTACH_OTHER);
}
// Define a KTX train
item(FEAT_TRAINS, train_ktx) {
property {
name: string(STR_KTX_NAME);
climates_available: ALL_CLIMATES & ~bitmask(CLIMATE_TOYLAND);
introduction_date: date(2000, 1, 1);
model_life: VEHICLE_NEVER_EXPIRES;
vehicle_life: 30;
reliability_decay: 1;
refittable_cargo_classes: bitmask(CC_PASSENGERS);
non_refittable_cargo_classes: bitmask();
loading_speed: 20;
cost_factor: 1;
running_cost_factor: 100;
sprite_id: SPRITE_ID_NEW_TRAIN;
speed: 330 km/h;
// misc_flags: bitmask(TRAIN_FLAG_MU);
misc_flags: bitmask(TRAIN_FLAG_TILT, TRAIN_FLAG_2CC, TRAIN_FLAG_MU, TRAIN_FLAG_AUTOREFIT);
refit_cost: 0;
track_type: ELRL;
ai_special_flag: AI_FLAG_PASSENGER;
power: 1130 kW;
running_cost_base: RUNNING_COST_ELECTRIC;
dual_headed: 1;
cargo_capacity: 58;
weight: 17 ton;
engine_class: ENGINE_CLASS_ELECTRIC;
extra_power_per_wagon: 0 kW;
tractive_effort_coefficient: 1;
visual_effect_and_powered: VISUAL_EFFECT_ELECTRIC;
// Overridden by callback to disable for non-powered wagons:
// visual_effect_and_powered: visual_effect_and_powered(VISUAL_EFFECT_ELECTRIC, 0, ENABLE_WAGON_POWER);
extra_weight_per_wagon: 0 ton;
bitmask_vehicle_info: 0;
}
// define graphics
graphics {
default: sw_ktx_graphics;
purchase: set_ktx_purchase_f;
// articulated_part: sw_ktx_articulated_part;
// start_stop: sw_ktx_start_stop;
// can_attach_wagon: sw_ktx_can_attach_wagon;
// speed: sw_ktx_speed;
}
// I heard that the default passenger wagon's vehicleID is 27 from http://newgrf-specs.tt-wiki.net/wiki/NML:List_of_default_vehicle_IDs
livery_override(27) {
default: set_ktx_center;
}
}