画像データを転送する関数を作りました。画像データとは、マウスカーソルとかクローズボタンみたいなアレです。
アルファベットのa?pをパレット番号0?15に置き換えて描画するようにしたので、画像データもすべて作り直しました。ちなみに、OSAkkieカラーはrとsで対応していますし、透過色は’.’、何も転送しない場合は’ ‘などの適当な文字を入れればいいことになっています。
これのおかげで、50.5KB前後あったosakkie.sysが49.1KBにまで減りました。ソースも超スッキリになりましたよ?。多色対応でサイズがぶくぶく増える中で、似たような処理をまとめていくのは重要だなぁと思いました。
2次元配列になっている画像データの受け渡しに苦労しました。ポインタでやり取りする形で作ったものの、うまく画像が表示されなくて、2次元配列のまま受け渡しする方法を考えてみたり(これは色々決まりごとがあってダメだった)、秘儀・適当ポインタ(でたらめに色々なポインタを入れてみる技)を試したり、最後の手段でCSVVの時のように構造体でくるんでしまおうか考えたりしていましたが、結局、データの受け渡しと全然関係ないところを書き間違えていて、最初に作ったポインタ形でうまく画像が表示されました……。何が言いたいかというと、CSVVではできなかった2次元配列の関数間の受け渡しができるようになった、ということなのです。これもOS自作入門のおかげなのです!
さて、画像データ転送がうまくできたので、新たに画像を一つ増やして、OSAkkie三大野望の一つを実現しようかと思っています。そして、osakkie.sysのサイズがまた50KBを超える……。