04/08/28 19:20 jcHl+d+n
うーん・・・それも保守性悪そうだな。改正案
struct Code{
enum group_t{ DAMAGE, ALHPA, MOTION,ETC1,ETC2 };
group_t group;
union{
struct{ int value; } damage;
struct{ float value; } alpha;
struct{ short x; short y; } motion;
struct{ int value; } etc1;
struct{ short first; short second; } etc2;
};
};
Code code ;//= ReadFromMap(); // マップからアトリビュートを読む
switch(code.group){
case Code::DAMAGE:
CalcDamage(code.damage.value); // ダメージ計算
break;
case Code::ALHPA:
CalcAlpha(code.alpha.value); // アルファ演算
break;
case Code::MOTION:
CalcMove(code.motion.x,code.motion.y); // 移動計算
break;
case Code::ETC1: // その他(引数1つバージョン)
CalcMisc1(code.etc1.value); // 引数一つの雑処理
break;
case Code::ETC2: // その他(引数2つバージョン)
CalcMisc2(code.etc2.first,code.etc2.second); // 引数二つの雑処理
break;
}