Debug: Show ObjectSpec flags and more fields in debug window

pull/341/head
Jonathan G Rennison 3 years ago
parent 431d33f149
commit bc75c3af6f

@ -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");
}
}
}
};

Loading…
Cancel
Save