I see that these flags weren't introduced well and common modders may find them too abstract and unsure about their use.
It'll be best if you follow my train of thoughts and I'll try to explain everything slowly. Sorry for yet another walls of text!
Well, there are two different kinds of huds, each with specific needs.
One kind is mod-specific, mostly inflexible hud, usually complex ACS hybrid. Great example for that is one in Project MSX. Such huds often offers great and unique effects, but it has it's cost - they are more or less hardcoded to work well only with known mod(s). To be specific, we're talking about IsSelected/InInventory blocks used for non-generic actors. I must admit that majority of current huds are designed in this fashion, in various degree.
Another kind tries to be generic and as most cross compatible as possible, default Zdoom fullscreen hud is one of them. I've made one too, and can safely say that it looks well in anything from FreeDoom though Strife with Samsara up to Pirate mod. I personally believe that custom hud should be player's choice, unless it's part of the mod's gameplay (like in already mentioned Project MSX). These flags may not be important for modder that can modify any actors he wants compatible, but allows huds that work with many, if not all mods, out of the box.
Let's see more specific examples:
- I want to make fancy hud that look similiar to one in Serious Sam 1. Everything should be more or less green and ammo/weapon icon should be drawn as green silhouette. Obviously, this means it can't work with every weapon out there, so I decide I'll support Vanilla,Brutal Doom and Samsara,for example. I can draw these icons and assign them via ALTHUDCF lump. In case player would use my hud with unsupported mod or simply plays something like KDIZD, he can aquire gun without proper icon. Well, I'd rather draw nothing in that case, so I'll use flags "skipIcons|skipspawn|skipready". That way, I have mod-specific mod that performs well enough in every situation.
I've made my own mod about magic and created thematically fitting hud. This hud draws current spell (weapon) as page in opened magic book,which is part of the painting on status bar. I've drawn these special icons (book pages) for all weapons and set them as their Icon property, but, again, don't want to draw anything with unknown gun, as it would break the layout. I'll use "skipAltIcons|skipspawn|skipready". I'll probably need to draw book's background in a way that looks fine even with no weaponicon drawn.
I want to make mostly common, all compatible hud, that just can draw current weapon. I don't, however, want to see disembodied hand holding weapon in first person. Let's say that my hud tries to look in-universe, and drawing current weapon is feature of marine's spacesuit. I'll use just "skipready" and I'm done with it!
And in case it's really important to me that weapons must always look in unified way (always pickups) I can override modder's wishes with "skipIcon|skipAltIcon|skipReady". AltIcons are quite often firing/ready frames anyway.
I probably can come up with much more and much less obscure examples, yet I hope it's enough to reconsider usefulness of these flags. In short, it opens icon searching process to modders and offers customizeability to fit needs of individual huds.
Blzut, thanks for your feedback, I'm only puzzled by your remarks about skipspawn being useful just for vanilla. In fact, I think the opposite, as all these flags are designed to increase cross-mod compatibility. Maybe it was just little misunderstanding and it's cleared now, if not, please explain it in more detail.
NOTE: I didn't even dare to suggest it,but even better than automatic "draw nothing on failure" would be if DrawImage could work as flow control element,in this fashion:
Code: Select all
DrawImage <arguments>
{
//Executed when image was succesfully drawn
}
Else
{
//Executed if nothing was drawn
}
I believe that's completely impossible in the way how current SBARINFO code works, but it would allow for example conditionaly drawing background behind weapon, offseting other elements based on presence of the icon and so on.