ad055dc60e
The conditional is a bit ugly due to the D1 test. -------- #include <cstdio> void hud_printf_vulcan_ammo(int mline, int x, int y, int line = __builtin_LINE()) { printf("mline=%2i line=%2i x=%2i y=%2i\n", mline, line, x, y); } void expanded_form(int full, int vertical, int mline = __builtin_LINE()) { const int x = 10, y = 20, line_spacing = 5; if (full) { if (!vertical) hud_printf_vulcan_ammo(mline, x, y - line_spacing); #if defined(DXX_BUILD_DESCENT_I) else hud_printf_vulcan_ammo(mline, x, y); #endif } else hud_printf_vulcan_ammo(mline, x - 2, y - 3); } void folded_form(int full, int vertical, int mline = __builtin_LINE()) { const int x = 10, y = 20, line_spacing = 5; int vx, vy; if (full ? ( vertical ? #if defined(DXX_BUILD_DESCENT_I) (vx = x, vy = y, true) #else false #endif : (vx = x, vy = y - line_spacing, true) ) : (vx = x - 2, vy = y - 3, true)) hud_printf_vulcan_ammo(mline, vx, vy); } int main() { #define run(f) \ f(0, 0); \ f(1, 0); \ f(0, 1); \ f(1, 1) run(expanded_form); run(folded_form); } -------- |
||
---|---|---|
.. | ||
2d | ||
3d | ||
arch | ||
editor | ||
main | ||
misc |