コルーチンの中から効果音
player_routineを関数オブジェクトにして、player_routineの中から効果音を指定できるようにしました。
今日の差分
今度はしゃがみジャンプでもちゃんと効果音が再生されます。
class player_routine { public: player_routine(const stage_map& map, sound_engine& sound); routine_result operator()( routine_type::self& self, move_info mv, input_command cmd) const; };
sound_engineは、コルーチンの呼出し毎に変化するわけではないstage_mapと共にコンストラクタで設定するようにしています。
その分、コルーチンの引数は減っています。
コンストラクタを使って任意の引数を渡せる半面、移動ルーチンのプラグイン化は難しくなりました。
この辺のインタフェースはまだ流動的なので、とりあえずプラグイン化は考えないことにします。