[difficulty] : add params for image + var
Moderator: Forum Moderators
Forum rules
Before posting a new idea, you must read the following:
Before posting a new idea, you must read the following:
[difficulty] : add params for image + var
[Not sure whether this is the place for proposals about language evolution (WML)... If not, just move this thread: and tell me!]
Hello,
I was very pleased to discover the new [difficulty] tag. However, there still remain obscure notations about image variants or modifs. Mainly, I guess, we commonly need to indicate a color or a gender. Exemple I would like to be able to code:
Note that this simplifies the C++ side of the affair, since it is no more needed to analyse the image definition.
I don't know if there are more image modifications, or wishable params for other elements than about the image.
I take the opportunity to ask for a real "diff" var (WML and Lua?) in addition to, and later instead of, a preprocessor symbol. This would allow the use of standard WML conditions and conditional actions, thus making both language and coding more simple & coherent.
Thank you for reading !
Hello,
I was very pleased to discover the new [difficulty] tag. However, there still remain obscure notations about image variants or modifs. Mainly, I guess, we commonly need to indicate a color or a gender. Exemple I would like to be able to code:
Code: Select all
[difficulty]
define=EASY
# no more that:
# mage="units/human-magi/mage+female.png~RC(magenta>red)"
image="units/human-magi/mage"
gender=female
color=red
label= _ "easy"
description = _ "novice player"
[/difficulty]
I don't know if there are more image modifications, or wishable params for other elements than about the image.
I take the opportunity to ask for a real "diff" var (WML and Lua?) in addition to, and later instead of, a preprocessor symbol. This would allow the use of standard WML conditions and conditional actions, thus making both language and coding more simple & coherent.
Thank you for reading !
- Elvish_Hunter
- Posts: 1585
- Joined: September 4th, 2009, 2:39 pm
- Location: Lintanir Forest...
Re: [difficulty] : add params for image + var
The Ideas forum seems better suited for this proposal (and you're likely to get more feedback there), so I moved your topic.
What do you find "obscure"? The "+female" is just part of the filename, while all the available image modification functions are documented here: https://wiki.wesnoth.org/ImagePathFunctions.
That's very easy to do on your own with WML, and a prestart event sounds like the best one for this purpose.denispir wrote: ↑October 30th, 2019, 10:25 am I take the opportunity to ask for a real "diff" var (WML and Lua?) in addition to, and later instead of, a preprocessor symbol. This would allow the use of standard WML conditions and conditional actions, thus making both language and coding more simple & coherent.
Code: Select all
[set_variable]
name=diff
#ifdef EASY
value=easy
#endif
#ifdef NORMAL
value=normal
#endif
#ifdef HARD
value=hard
#endif
[/set_variable]
Current maintainer of these add-ons, all on 1.16:
The Sojournings of Grog, Children of Dragons, A Rough Life, Wesnoth Lua Pack, The White Troll (co-author)
The Sojournings of Grog, Children of Dragons, A Rough Life, Wesnoth Lua Pack, The White Troll (co-author)
Re: [difficulty] : add params for image + var
Thank you Elvish_Hunter!
All right.Elvish_Hunter wrote: ↑October 30th, 2019, 11:41 am The Ideas forum seems better suited for this proposal (and you're likely to get more feedback there), so I moved your topic.
That it's indeed obscure in itself (if you don't agree, well, try to judge it fairly); that it's 2 special syntactic structures only for this special use about images; that it's incoherent with all the rest (WML or Lua).Elvish_Hunter wrote: ↑October 30th, 2019, 11:41 am What do you find "obscure"? The "+female" is just part of the filename, while all the available image modification functions are documented here: https://wiki.wesnoth.org/ImagePathFunctions.
Sure, and that is word-for-word what I do. But AFAIK we have to place that in scenarios, while it is a whole-campaign information. (Actually, I did not try to place that somewhere in _main; should it work? and where?)Elvish_Hunter wrote: ↑October 30th, 2019, 11:41 amThat's very easy to do on your own with WML, and a prestart event sounds like the best one for this purpose.denispir wrote: ↑October 30th, 2019, 10:25 am I take the opportunity to ask for a real "diff" var (WML and Lua?) in addition to, and later instead of, a preprocessor symbol. This would allow the use of standard WML conditions and conditional actions, thus making both language and coding more simple & coherent.Code: Select all
[set_variable] name=diff #ifdef EASY value=easy #endif #ifdef NORMAL value=normal #endif #ifdef HARD value=hard #endif [/set_variable]
-
- Inactive Developer
- Posts: 503
- Joined: April 24th, 2016, 4:18 pm
Re: [difficulty] : add params for image + var
diff? color? I do wish people would use more descriptive terms.
Is if diff-erence or diff-icult or diif-ussion? Or maybe it's something obsure like "default, if, and only if". It's not like we have to stay inside a 72-column limit or make things easier for the key-punch department any more.
"replace_with_team_color = red" means something even to someone who has no idea what is going on.
Is if diff-erence or diff-icult or diif-ussion? Or maybe it's something obsure like "default, if, and only if". It's not like we have to stay inside a 72-column limit or make things easier for the key-punch department any more.
"replace_with_team_color = red" means something even to someone who has no idea what is going on.
I forked real life and now I'm getting merge conflicts.
- Elvish_Hunter
- Posts: 1585
- Joined: September 4th, 2009, 2:39 pm
- Location: Lintanir Forest...
Re: [difficulty] : add params for image + var
This is exactly why I asked you what did you find obscure: because I wanted to read your opinion on that . While the +female is just a naming convention (nobody forbids you from using -f in you add-ons, for example), I agree that the ImagePathFunction is different from the rest of WML. What can be done about that? I'm not really sure: keep in mind that we had such functions (well, back then there was only the ~TC() function) since Wesnoth 1.2. What would be a decent alternative syntax, considering that such functions work everywhere there's an image and not just inside [difficulty] tags?denispir wrote: ↑October 30th, 2019, 12:48 pmThat it's indeed obscure in itself (if you don't agree, well, try to judge it fairly); that it's 2 special syntactic structures only for this special use about images; that it's incoherent with all the rest (WML or Lua).Elvish_Hunter wrote: ↑October 30th, 2019, 11:41 am What do you find "obscure"? The "+female" is just part of the filename, while all the available image modification functions are documented here: https://wiki.wesnoth.org/ImagePathFunctions.
In the 1.14 series you can place global events directly inside the [campaign] tag: https://wiki.wesnoth.org/CampaignWML (search for [event] in that page, because it can be hard to see).
I know! I tend to even use "index" instead of "i" in loops, because it's much clearer. However, this becomes a problem when I have two nested loops, whose index variables are usually named "i" and "j": should I call the innermost one "jndex" then?Tad_Carlucci wrote: ↑October 30th, 2019, 1:12 pm diff? color? I do wish people would use more descriptive terms.
Is if diff-erence or diff-icult or diif-ussion? Or maybe it's something obsure like "default, if, and only if". It's not like we have to stay inside a 72-column limit or make things easier for the key-punch department any more.
Current maintainer of these add-ons, all on 1.16:
The Sojournings of Grog, Children of Dragons, A Rough Life, Wesnoth Lua Pack, The White Troll (co-author)
The Sojournings of Grog, Children of Dragons, A Rough Life, Wesnoth Lua Pack, The White Troll (co-author)
Re: [difficulty] : add params for image + var
I would default
source color palette
to magenta.Re: [difficulty] : add params for image + var
Hem, what is wrong about something like my proposal: adding keys to tags that contain an image? I agree with Tad_Carlucci that "color" is not clear enough. Rather "image_color" or "team_color" (or even "image_team_color") depending on case.Elvish_Hunter wrote: What can be done about that? I'm not really sure: keep in mind that we had such functions (well, back then there was only the ~TC() function) since Wesnoth 1.2. What would be a decent alternative syntax, considering that such functions work everywhere there's an image and not just inside [difficulty] tags?
(I also agree with him that "diff" is a very bad name for "difficulty".)
Yes, thank you! That is really great to be able to define global events that way. (But IIUC, it's not a big deal to define a macro, inserted at start of each scenario, just like the special ToD of UtBS for instance).Elvish_Hunter wrote: n the 1.14 series you can place global events directly inside the [campaign] tag: https://wiki.wesnoth.org/CampaignWML (search for [event] in that page, because it can be hard to see).
For everyone's information, I also discovered that we can now write [option] tags in _main ! This allows 2 features I was looking for a way to do simply:
* This issue of having a real "difficulty" var instead of a #symbol: just make the dif-menu that way. I will try, first to see how it looks like in UI. I would happily get rid of all preprocessor pollution, macros included. We have enough confusion and complication with the WML/Lua pair. I'm not speaking for myself, having practiced C and the like for years, but for amateur programmers who should be able to author Wesnoth games without dealing with such horrible mess.
* Even better: add a "trial" checkbox for authors and "trial players. This allows coding a jump to scenarion to be tried, plus giving decent troop forces.
I opened yesterday a thread on the latter topic: https://forums.wesnoth.org/viewtopic.php?f=8&t=51072. I will try when I have the time, and say more if it works well.
Re: [difficulty] : add params for image + var
Personally I use #ifhave or wesnoth.have_file as the trial toggle (depending on whether the toggle should be synced). https://github.com/ProditorMagnus/Agele ... ad.lua#L43 https://github.com/ProditorMagnus/Oroci ... d.cfg#L121
And something on topic too - the gender key seems unlikely to be useful. You need to know the filename in order to know about "units/human-magi/mage", so you might as well add +female.png yourself.
Color - could be, though it would just be indication to append color shift function to image.
All addon WML can be in _main.cfg, it is specific tags that might support [option].we can now write [option] tags in _main
And something on topic too - the gender key seems unlikely to be useful. You need to know the filename in order to know about "units/human-magi/mage", so you might as well add +female.png yourself.
Color - could be, though it would just be indication to append color shift function to image.
Re: [difficulty] : add params for image + var
You are right indeed, but only once we know that '+' is part of the name, not a special code; just like '~' is precisely. There is no way to know or guess that, even less because this char is so rare in filenames; and less so to know it for sure, which you need to avoid bugs. The case would be much if the convention used '_' or '-' or '.', what do you think?
Re: [difficulty] : add params for image + var
> I know! I tend to even use "index" instead of "i" in loops, because it's much clearer.
I think the name "index" is better than "i".
In ruby I tend to prefer long names, but I also tend to use a style such as this:
def foobar(i)
Simply because I know that "i" stands for "input" and I just want to work with the first
argument. When there is more than one argument, I tend to give them real names,
which tend to be longer - but for simple methods/functions, I prefer a short name.
For loops/iterators such as:
hash.each_pair {|key, value|
I tend to use longer names too. Many others use {|k, v| instead which I can understand,
but in these cases I prefer the longer names.
IMO readability is a good thing and the typical REAL explanation as to why short names
are chosen, is laziness by the developer at hand who wrote the code.
As for "diff" versus "difficulty": I think the longer name, difficulty, is better, but in particular
XML can be hugely annoying. You need the same closing tag, and there long names
are ... annoying. I am not a fan of XML at all. Evidently WML is its own beast - I
applaude you guys for having the patience to waddle through it. I am a way too
impatient person to want to get my head to adjust to that. (Lua is better but
I prefer ruby ... I don't think mruby will be anywhere close to lua in use in general
though for the short term future ... but it would be great if we could use different
languages, and have some unified base standard that could then be used by different
languages; a bit like JVM for java or WebAssembly for the www. But I digress.)
I think the name "index" is better than "i".
In ruby I tend to prefer long names, but I also tend to use a style such as this:
def foobar(i)
Simply because I know that "i" stands for "input" and I just want to work with the first
argument. When there is more than one argument, I tend to give them real names,
which tend to be longer - but for simple methods/functions, I prefer a short name.
For loops/iterators such as:
hash.each_pair {|key, value|
I tend to use longer names too. Many others use {|k, v| instead which I can understand,
but in these cases I prefer the longer names.
IMO readability is a good thing and the typical REAL explanation as to why short names
are chosen, is laziness by the developer at hand who wrote the code.
As for "diff" versus "difficulty": I think the longer name, difficulty, is better, but in particular
XML can be hugely annoying. You need the same closing tag, and there long names
are ... annoying. I am not a fan of XML at all. Evidently WML is its own beast - I
applaude you guys for having the patience to waddle through it. I am a way too
impatient person to want to get my head to adjust to that. (Lua is better but
I prefer ruby ... I don't think mruby will be anywhere close to lua in use in general
though for the short term future ... but it would be great if we could use different
languages, and have some unified base standard that could then be used by different
languages; a bit like JVM for java or WebAssembly for the www. But I digress.)
-
- Inactive Developer
- Posts: 503
- Joined: April 24th, 2016, 4:18 pm
Re: [difficulty] : add params for image + var
In an array of weapons, the index would be better named "weapon_index" so you're not confused about which "index" this is, if you also have an array of armor (hence armor_index), and units (unit_index).
But, then, how are we to keep the noobs on their toes if we don't name them all, just "i"!!!
I forked real life and now I'm getting merge conflicts.