- 665 名前:名前は開発中のものです。 mailto:sage [04/08/28 19:20 ID: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; }
|

|