Some of you know that, with encouragement from other devs, I'm doing a
cleanup and reorganization of the Wesnoth directory layout. The immediate
motivation is to make correct behavior easier for tools like wmlscope
and wmllint, but there are long-standing issues about our data layout
beneath these symptoms.
After staring at the layout for a while, I think one source of
grubbiness is that we've used directories to create a sort of
half-baked package structure without making them package objects.
The way capaigns are laid out is representative; for a campaign
named "Battle of Foobar" there will be a Battle_of_Foobar.cfg
and a Battle_of_Foobar directory, with the directory sort of
accidentally a package by virtue of {}-inclusions in the .cfg.
I have a proposal for a small extension of preprocessor behavior to
make things cleaner.
New rule: When a directory reference like {foodir/} resolves
to a directory containing a file named "%main.cfg", it is treated
as though the reference had been {foodir/%main.cfg}.
With this rule, Battle_of_Foobar.cfg can move to Battle_of_Foobar/%main.cfg.
The directory Battle_of_Foobar becomes a self-contained package. Including
it processes %main.cfg and whatever files %main.cfg chooses to include.
--
>>esr>>
_______________________________________________
Wesnoth-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-dev