diff --git a/src/table/newgrf_debug_data.h b/src/table/newgrf_debug_data.h index a1f5e11eed..7fd8a40c4c 100644 --- a/src/table/newgrf_debug_data.h +++ b/src/table/newgrf_debug_data.h @@ -856,6 +856,34 @@ class NIHObject : public NIHelper { if (spec) { seprintf(buffer, lastof(buffer), " animation: frames: %u, status: %u, speed: %u, triggers: 0x%X", spec->animation.frames, spec->animation.status, spec->animation.speed, spec->animation.triggers); output.print(buffer); + seprintf(buffer, lastof(buffer), " size: %ux%u, height: %u, views: %u", GB(spec->size, 4, 4), GB(spec->size, 0, 4), spec->height, spec->views); + output.print(buffer); + + output.register_next_line_click_flag_toggle(1); + seprintf(buffer, lastof(buffer), " [%c] flags: 0x%X", output.flags & 1 ? '-' : '+', spec->flags); + output.print(buffer); + if (output.flags & 1) { + auto check_flag = [&](ObjectFlags flag, const char *name) { + if (spec->flags & flag) { + seprintf(buffer, lastof(buffer), " %s", name); + output.print(buffer); + } + }; + check_flag(OBJECT_FLAG_ONLY_IN_SCENEDIT, "OBJECT_FLAG_ONLY_IN_SCENEDIT"); + check_flag(OBJECT_FLAG_CANNOT_REMOVE, "OBJECT_FLAG_CANNOT_REMOVE"); + check_flag(OBJECT_FLAG_AUTOREMOVE, "OBJECT_FLAG_AUTOREMOVE"); + check_flag(OBJECT_FLAG_BUILT_ON_WATER, "OBJECT_FLAG_BUILT_ON_WATER"); + check_flag(OBJECT_FLAG_CLEAR_INCOME, "OBJECT_FLAG_CLEAR_INCOME"); + check_flag(OBJECT_FLAG_HAS_NO_FOUNDATION, "OBJECT_FLAG_HAS_NO_FOUNDATION"); + check_flag(OBJECT_FLAG_ANIMATION, "OBJECT_FLAG_ANIMATION"); + check_flag(OBJECT_FLAG_ONLY_IN_GAME, "OBJECT_FLAG_ONLY_IN_GAME"); + check_flag(OBJECT_FLAG_2CC_COLOUR, "OBJECT_FLAG_2CC_COLOUR"); + check_flag(OBJECT_FLAG_NOT_ON_LAND, "OBJECT_FLAG_NOT_ON_LAND"); + check_flag(OBJECT_FLAG_DRAW_WATER, "OBJECT_FLAG_DRAW_WATER"); + 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"); + } } } };