Add NewGRF object property/flag to use land as object ground sprite
This handles variable ground densities, snow/desert, etc.
This commit is contained in:
@@ -868,11 +868,15 @@ class NIHObject : public NIHelper {
|
||||
seprintf(buffer, lastof(buffer), " [%c] flags: 0x%X", output.flags & 1 ? '-' : '+', spec->flags);
|
||||
output.print(buffer);
|
||||
if (output.flags & 1) {
|
||||
auto print = [&](const char *name) {
|
||||
seprintf(buffer, lastof(buffer), " %s", name);
|
||||
output.print(buffer);
|
||||
};
|
||||
auto check_flag = [&](ObjectFlags flag, const char *name) {
|
||||
if (spec->flags & flag) {
|
||||
seprintf(buffer, lastof(buffer), " %s", name);
|
||||
output.print(buffer);
|
||||
}
|
||||
if (spec->flags & flag) print(name);
|
||||
};
|
||||
auto check_ctrl_flag = [&](ObjectCtrlFlags flag, const char *name) {
|
||||
if (spec->ctrl_flags & flag) print(name);
|
||||
};
|
||||
check_flag(OBJECT_FLAG_ONLY_IN_SCENEDIT, "OBJECT_FLAG_ONLY_IN_SCENEDIT");
|
||||
check_flag(OBJECT_FLAG_CANNOT_REMOVE, "OBJECT_FLAG_CANNOT_REMOVE");
|
||||
@@ -888,6 +892,7 @@ class NIHObject : public NIHelper {
|
||||
check_flag(OBJECT_FLAG_ALLOW_UNDER_BRIDGE, "OBJECT_FLAG_ALLOW_UNDER_BRIDGE");
|
||||
check_flag(OBJECT_FLAG_ANIM_RANDOM_BITS, "OBJECT_FLAG_ANIM_RANDOM_BITS");
|
||||
check_flag(OBJECT_FLAG_SCALE_BY_WATER, "OBJECT_FLAG_SCALE_BY_WATER");
|
||||
check_ctrl_flag(OBJECT_CTRL_FLAG_USE_LAND_GROUND, "OBJECT_CTRL_FLAG_USE_LAND_GROUND");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -121,7 +121,7 @@ static const DrawTileSprites _object_hq[] = {
|
||||
|
||||
#undef TILE_SPRITE_LINE
|
||||
|
||||
#define M(name, size, build_cost_multiplier, clear_cost_multiplier, height, climate, gen_amount, flags) { GRFFilePropsBase<2>(), INVALID_OBJECT_CLASS, name, climate, size, build_cost_multiplier, clear_cost_multiplier, 0, MAX_DAY + 1, flags, {0, 0, 0, 0}, 0, height, 1, gen_amount, true }
|
||||
#define M(name, size, build_cost_multiplier, clear_cost_multiplier, height, climate, gen_amount, flags) { GRFFilePropsBase<2>(), INVALID_OBJECT_CLASS, name, climate, size, build_cost_multiplier, clear_cost_multiplier, 0, MAX_DAY + 1, flags, OBJECT_CTRL_FLAG_NONE, {0, 0, 0, 0}, 0, height, 1, gen_amount, true }
|
||||
|
||||
/* Climates
|
||||
* T = Temperate
|
||||
|
Reference in New Issue
Block a user