I now have the Raylib functions working by using `toStrinz`.
I pushed some updates to the repository. I made the main project a source library so that I can experiment with different graphics library front-ends. I put have the front-end using Raylib in the `raylib_frontend` directory. It doesn't yet have any interactivity, but it should build and run successfully IIRC.
I don't know how best to organize the code. So far I have been putting the loop that runs during gameplay in the `Mission` function in `mission.d`. This function contains the arrays where sprites are stored. The code for unloading data from files is split between this function and `maps.d`. I was going to have a file in the main `source/` (not `raylib_frontend/source`) called `loadData.d` which would handle unloading from files, but then I realized that those functions would need write access to multiple variables, making it a not very tidy approach.
One possibility is to turn `Mission` into a class. The Mission object would control the Map object and other things during gameplay. The other possibility is to make a derived class of Map with more graphics-related functionality and more.