У меня есть набор # определить годов в сгенерированном заголовке, например, как это:Сжатый способ расчета #define
#define SFX_SOIL_DESTROY_1 2
#define SFX_SOIL_DESTROY_2 14
#define SFX_SOIL_PLACE_1 32
#define SFX_SOIL_PLACE_2 33
#define SFX_WOOD_DESTROY_1 5
У меня есть метод, который должен возвращать правильный определить для типа материала и типа звучания. Вот длинный, inconcise решение:
int getSfx (MaterialType material, SoundType sound)
{
switch (material)
{
case SOIL:
{
switch (sound)
{
case DESTROY:
return rand()%2 ? SFX_SOIL_DESTROY_1 : SFX_SOIL_DESTROY_2;
case PLACE:
// And so on
Есть ли какие-то макро-хака, который может конденсироваться это? Любая помощь приветствуется.
Вы говорите, что заголовок создан. Вы считали, что генерируете «длинное, неудобное решение»? – zwol
@zwol Определения создаются из внешнего инструмента, поэтому я не могу редактировать этот инструмент. С другой стороны, Im не возражал против написания препроцессорного взлома или что-то в этом роде для «генерации» метода длинных неудобств. –
Я думал больше о линиях дополнительного инструмента, который бы сгенерировал нужный вам код. Одноразовые генераторы кода являются недооцененной техникой. – zwol