Hello y'all. I hope you are all doing well.
Here attached you can find a small Lazarus project that can be a starting point for a launcher app.
Just posting this here for information and comments/suggestions as it still requires polishing and finishing.
at the moment it can read Q3config.cfg from the player's home directory (C:/Users/...AppData/Roaming/OpenArena/baseoa on Windows), change the variables and write the configuration back. Basic GUI configuration is available (sound volume, fov, nickname, mouse sensitivity... other parts still in the works). once you click to start OA you should see the OA logo and land on the OA's main menu.
It can contact the master server, download and display the list of available Internet servers and connect to a multiplayer game on them. list of favourite servers is a ToDo.
TODO: It can already now scan the baseoa folder within the OA installation path and create a list of available maps which then could be used to create a local server with map rotation etc. but as I have never created a script for a server, actual creation of the server is not implemented yet (if someone can post a simple script that could be created by hand using the data provided on the 'Local server' tab then this should not be difficult to program in the launcher and would be good help). Some basic configuraion GUI is available here as well mostly as a placeholder for ideas, comments and suggestions. 'Local server' tab choices are saved between launcher app runs (this is by design in planning for the server profiles feature).
I've only done this for Windows, changing to Linux of Mac should require minimal change, I hope, mainly related to the player's home path. opening the project and compiling it in Lazarus works without additional libraries (though someone will need to confirm this).
The launcher works with SQLite3 library, so sqlite3.dll is required on Windows. Both OALauncher.exe and sqlite3.dll need to be placed in the root folder of your OA installation to work correctly. The OALauncher.exe is naturally created by process of compilation in Lazarus.
The idea of multiple player profiles is OK though I am not completely sure it would not end up confusing some of the newer players. (todo)
Anyways, if you find the time and think this could be useful please try the launcher app. In the meantime I will try to cleanup the bugs.
Upload here did not work,
https://www.dropbox.com/s/1vjjfo0wp8r3qbj/OALauncher_LazarusProject.zip?dl=0