開発雑記

ソースが物凄くスパゲッティまたはスパゲリィになってしまう。

致命的なトラブルになりそうで怖いのは
とくに、
do_select_command()
draw_select_command()
の二つを書くのがダラダラと長くなって把握できなくなる点。
do_〜のほうはキー操作とそれによるカーソルや変数等の「操作」をしていて、
draw_〜はその操作によって変化した変数や画面を描画する、「描画するだけ」のルーチン。
毎フレーム更新するタイプのゲームでない場合(getch()を使うような多くのローグライクやら)、「操作」と「描画」が同時的に続けて書けて気持ちいいのに。
マルチスレッドとか手は有りそうだけど恐くて手を出していない。
ほかにある手のなかには、
「do_select_command(DO_ACT)」「do_select_command(DO_DRAW)」などと同じ関数の中でやる以下のようなのがあるが、これは余計にどうしようもない状態になるかもしれない。

do_select_command(int yarukoto)
{
	bool act = (yarukot == DO_ACT ? TRUE : FALSE);
	...
	switch(コマンド入力の状態)
	{
	case 最初の選択:
	{
		if (act)
		{...
		}
		else if(draw)
		{...
		}
	}
	break;
	case スキル選択:
	{
		if (act)
		{...
		}
		else if(draw)
		{...
		}
	}
	break;
	}
}